diff --git a/404.css b/404.css deleted file mode 100644 index e63f2889..00000000 --- a/404.css +++ /dev/null @@ -1,35 +0,0 @@ -html, body, .row { - height: 100%; - -webkit-font-smoothing: antialiased; -} - -h2 { - font-size: 25px; - margin-bottom: 12.5px; - font-weight: 500; - line-height: 1.1; -} - -.brand { - font-size: 23px; - line-height: 25px; - color: #fff; - font-family: "Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif; -} - -.banner { - background-color: #175DDC; - height: 56px; -} - -.content { - padding-top: 20px; - padding-bottom: 20px; - padding-left: 15px; - padding-right: 15px; -} - -.footer { - padding: 40px 0 40px 0; - border-top: 1px solid #dee2e6; -} diff --git a/404.html b/404.html index dae3951b..eba36375 100644 --- a/404.html +++ b/404.html @@ -5,15 +5,11 @@ - - - - - + + + diff --git a/404/bootstrap.min.css b/404/bootstrap.min.css new file mode 100644 index 00000000..ef399d21 --- /dev/null +++ b/404/bootstrap.min.css @@ -0,0 +1,7 @@ +/*! + * Bootstrap v4.6.0 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */: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","Liberation 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","Liberation 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]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):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;-ms-overflow-style:scrollbar}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;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus:not(:focus-visible){outline:0}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}[role=button]{cursor:pointer}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}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,.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}input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{-webkit-appearance:none;-moz-appearance:none;appearance:none}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%;left:0;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}.form-row>.col>.valid-tooltip,.form-row>[class*=col-]>.valid-tooltip{left:5px}.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") right .75rem center/8px 10px no-repeat,#fff 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") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat}.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%;left:0;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}.form-row>.col>.invalid-tooltip,.form-row>[class*=col-]>.invalid-tooltip{left:5px}.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") right .75rem center/8px 10px no-repeat,#fff 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") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat}.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;-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}.btn:not(:disabled):not(.disabled){cursor:pointer}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}.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:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;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 auto;flex:1 1 auto;width:1%;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(: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(:first-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label::after,.input-group:not(.has-validation)>.custom-select:not(:last-child),.input-group:not(.has-validation)>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label::after,.input-group.has-validation>.custom-select:nth-last-child(n+3),.input-group.has-validation>.form-control:nth-last-child(n+3){border-top-right-radius:0;border-bottom-right-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.has-validation>.input-group-append:nth-last-child(n+3)>.btn,.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.input-group-text,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.btn,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.input-group-text,.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-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;z-index:1;display:block;min-height:1.5rem;padding-left:1.5rem;-webkit-print-color-adjust:exact;color-adjust:exact}.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:50%/50% 50% no-repeat}.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") right .75rem center/8px 10px no-repeat;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;overflow:hidden;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;overflow:hidden;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-link{margin-bottom:-1px;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,.nav-fill>.nav-link{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{-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:50%/100% 100% no-repeat}.navbar-nav-scroll{max-height:75vh;overflow-y:auto}@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-nav-scroll{overflow:visible}.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-nav-scroll{overflow:visible}.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-nav-scroll{overflow:visible}.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-nav-scroll{overflow:visible}.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-nav-scroll{overflow:visible}.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%280, 0, 0, 0.5%29' 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%28255, 255, 255, 0.5%29' 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{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.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-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;border-radius:calc(.25rem - 1px)}.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{overflow-anchor:none}.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{float:left;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;z-index:2;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;line-height:0;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:1s linear infinite progress-bar-stripes;animation:1s linear infinite progress-bar-stripes}@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;border-radius:.25rem}.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:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.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{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.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}a.close.disabled{pointer-events:none}.toast{-ms-flex-preferred-size:350px;flex-basis:350px;max-width:350px;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);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);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.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);height:-webkit-min-content;height:-moz-min-content;height:min-content;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);height:-webkit-min-content;height:-moz-min-content;height:min-content}.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","Liberation 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","Liberation 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:50%/100% 100% no-repeat}.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:.75s linear infinite spinner-border;animation:.75s linear infinite spinner-border}.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;-webkit-transform:none;transform:none}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:.75s linear infinite spinner-grow;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}.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}}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select: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}.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}}.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)}.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;word-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}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/404/font-awesome.min.css b/404/font-awesome.min.css new file mode 100644 index 00000000..540440ce --- /dev/null +++ b/404/font-awesome.min.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.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(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} diff --git a/404/styles.css b/404/styles.css new file mode 100644 index 00000000..530e3faf --- /dev/null +++ b/404/styles.css @@ -0,0 +1,119 @@ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 300; + src: url(../fonts/Open_Sans-italic-300.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 400; + src: url(../fonts/Open_Sans-italic-400.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 600; + src: url(../fonts/Open_Sans-italic-600.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 700; + src: url(../fonts/Open_Sans-italic-700.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 800; + src: url(../fonts/Open_Sans-italic-800.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 300; + src: url(../fonts/Open_Sans-normal-300.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: url(../fonts/Open_Sans-normal-400.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 600; + src: url(../fonts/Open_Sans-normal-600.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + src: url(../fonts/Open_Sans-normal-700.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 800; + src: url(../fonts/Open_Sans-normal-800.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +body { + font-family: 'Open Sans'; +} + +html, body, .row { + height: 100%; + -webkit-font-smoothing: antialiased; +} + +h2 { + font-size: 25px; + margin-bottom: 12.5px; + font-weight: 500; + line-height: 1.1; +} + +.brand { + font-size: 23px; + line-height: 25px; + color: #fff; + font-family: "Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif; +} + +.banner { + background-color: #175DDC; + height: 56px; +} + +.content { + padding-top: 20px; + padding-bottom: 20px; + padding-left: 15px; + padding-right: 15px; +} + +.footer { + padding: 40px 0 40px 0; + border-top: 1px solid #dee2e6; +} diff --git a/app/main.a34068436143996e1f65.css b/app/main.a34068436143996e1f65.css new file mode 100644 index 00000000..08def54e --- /dev/null +++ b/app/main.a34068436143996e1f65.css @@ -0,0 +1,88 @@ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 300; + src: url(../fonts/Open_Sans-italic-300.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 400; + src: url(../fonts/Open_Sans-italic-400.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 600; + src: url(../fonts/Open_Sans-italic-600.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 700; + src: url(../fonts/Open_Sans-italic-700.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 800; + src: url(../fonts/Open_Sans-italic-800.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 300; + src: url(../fonts/Open_Sans-normal-300.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: url(../fonts/Open_Sans-normal-400.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 600; + src: url(../fonts/Open_Sans-normal-600.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + src: url(../fonts/Open_Sans-normal-700.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 800; + src: url(../fonts/Open_Sans-normal-800.woff) format('woff'); + unicode-range: U+0-10FFFF; +} + + +: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: #175DDC;--secondary: #ced4da;--success: #00a65a;--info: #555;--warning: #bf7e16;--danger: #dd4b39;--light: #f8f9fa;--dark: #343a40;--primary-accent: #1252A3;--secondary-alt: #1A3B66;--breakpoint-xs: 0;--breakpoint-sm: 1px;--breakpoint-md: 2px;--breakpoint-lg: 3px;--breakpoint-xl: 4px;--font-family-sans-serif: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}*,*::before,*::after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1rem;font-weight:400;line-height:1.5;color:#333;text-align:left;background-color:#fff}[tabindex="-1"]:focus{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[title],abbr[data-original-title]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{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:#175DDC;text-decoration:none;background-color:transparent}a:hover{color:#104097;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):hover,a:not([href]):not([tabindex]):focus{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}pre,code,kbd,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}input,button,select,optgroup,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}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button:not(:disabled),[type="button"]:not(:disabled),[type="reset"]:not(:disabled),[type="submit"]:not(:disabled){cursor:pointer}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{padding:0;border-style:none}input[type="radio"],input[type="checkbox"]{box-sizing:border-box;padding:0}input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"]{-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:1.7rem}h2,.h2{font-size:1.3rem}h3,.h3{font-size:1rem}h4,.h4{font-size:1rem}h5,.h5{font-size:1rem}h6,.h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:normal}.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,0.1)}small,.small{font-size:90%;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:90%;color:#6c757d}.blockquote-footer::before{content:"\2014\A0"}.img-fluid,.table.table-list td.table-list-icon img{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:100%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:100%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:100%;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:10px;padding-left:10px;margin-right:auto;margin-left:auto}@media (min-width: 1px){.container{max-width:540px}}@media (min-width: 2px){.container{max-width:720px}}@media (min-width: 3px){.container{max-width:960px}}@media (min-width: 4px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:10px;padding-left:10px;margin-right:auto;margin-left:auto}.row{display:flex;flex-wrap:wrap;margin-right:-10px;margin-left:-10px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*="col-"]{padding-right:0;padding-left:0}.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col,.col-auto,.col-sm-1,.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-10,.col-sm-11,.col-sm-12,.col-sm,.col-sm-auto,.col-md-1,.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-10,.col-md-11,.col-md-12,.col-md,.col-md-auto,.col-lg-1,.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-10,.col-lg-11,.col-lg-12,.col-lg,.col-lg-auto,.col-xl-1,.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-10,.col-xl-11,.col-xl-12,.col-xl,.col-xl-auto{position:relative;width:100%;padding-right:10px;padding-left:10px}.col{flex-basis:0;flex-grow:1;max-width:100%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.33333%;max-width:8.33333%}.col-2{flex:0 0 16.66667%;max-width:16.66667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.33333%;max-width:33.33333%}.col-5{flex:0 0 41.66667%;max-width:41.66667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.33333%;max-width:58.33333%}.col-8{flex:0 0 66.66667%;max-width:66.66667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.33333%;max-width:83.33333%}.col-11{flex:0 0 91.66667%;max-width:91.66667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.33333%}.offset-2{margin-left:16.66667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333%}.offset-5{margin-left:41.66667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333%}.offset-8{margin-left:66.66667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333%}.offset-11{margin-left:91.66667%}@media (min-width: 1px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.33333%;max-width:8.33333%}.col-sm-2{flex:0 0 16.66667%;max-width:16.66667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.33333%;max-width:33.33333%}.col-sm-5{flex:0 0 41.66667%;max-width:41.66667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.33333%;max-width:58.33333%}.col-sm-8{flex:0 0 66.66667%;max-width:66.66667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.33333%;max-width:83.33333%}.col-sm-11{flex:0 0 91.66667%;max-width:91.66667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333%}.offset-sm-2{margin-left:16.66667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333%}.offset-sm-5{margin-left:41.66667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333%}.offset-sm-8{margin-left:66.66667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333%}.offset-sm-11{margin-left:91.66667%}}@media (min-width: 2px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.33333%;max-width:8.33333%}.col-md-2{flex:0 0 16.66667%;max-width:16.66667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.33333%;max-width:33.33333%}.col-md-5{flex:0 0 41.66667%;max-width:41.66667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.33333%;max-width:58.33333%}.col-md-8{flex:0 0 66.66667%;max-width:66.66667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.33333%;max-width:83.33333%}.col-md-11{flex:0 0 91.66667%;max-width:91.66667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333%}.offset-md-2{margin-left:16.66667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333%}.offset-md-5{margin-left:41.66667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333%}.offset-md-8{margin-left:66.66667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333%}.offset-md-11{margin-left:91.66667%}}@media (min-width: 3px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.33333%;max-width:8.33333%}.col-lg-2{flex:0 0 16.66667%;max-width:16.66667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.33333%;max-width:33.33333%}.col-lg-5{flex:0 0 41.66667%;max-width:41.66667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.33333%;max-width:58.33333%}.col-lg-8{flex:0 0 66.66667%;max-width:66.66667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.33333%;max-width:83.33333%}.col-lg-11{flex:0 0 91.66667%;max-width:91.66667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333%}.offset-lg-2{margin-left:16.66667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333%}.offset-lg-5{margin-left:41.66667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333%}.offset-lg-8{margin-left:66.66667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333%}.offset-lg-11{margin-left:91.66667%}}@media (min-width: 4px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.33333%;max-width:8.33333%}.col-xl-2{flex:0 0 16.66667%;max-width:16.66667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.33333%;max-width:33.33333%}.col-xl-5{flex:0 0 41.66667%;max-width:41.66667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.33333%;max-width:58.33333%}.col-xl-8{flex:0 0 66.66667%;max-width:66.66667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.33333%;max-width:83.33333%}.col-xl-11{flex:0 0 91.66667%;max-width:91.66667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333%}.offset-xl-2{margin-left:16.66667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333%}.offset-xl-5{margin-left:41.66667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333%}.offset-xl-8{margin-left:66.66667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333%}.offset-xl-11{margin-left:91.66667%}}.table{width:100%;margin-bottom:1rem;color:#333}.table th,.table td{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 th,.table-sm td{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered th,.table-bordered td{border:1px solid #dee2e6}.table-bordered thead th,.table-bordered thead td{border-bottom-width:2px}.table-borderless th,.table-borderless td,.table-borderless thead th,.table-borderless tbody+tbody{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,0.02)}.table-hover tbody tr:hover{color:#333;background-color:rgba(0,0,0,0.03)}.table-primary,.table-primary>th,.table-primary>td{background-color:#bed2f5}.table-primary th,.table-primary td,.table-primary thead th,.table-primary tbody+tbody{border-color:#86abed}.table-hover .table-primary:hover{background-color:#a8c3f2}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#a8c3f2}.table-secondary,.table-secondary>th,.table-secondary>td{background-color:#f1f3f5}.table-secondary th,.table-secondary td,.table-secondary thead th,.table-secondary tbody+tbody{border-color:#e6e9ec}.table-hover .table-secondary:hover{background-color:#e2e6ea}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#e2e6ea}.table-success,.table-success>th,.table-success>td{background-color:#b8e6d1}.table-success th,.table-success td,.table-success thead th,.table-success tbody+tbody{border-color:#7ad1a9}.table-hover .table-success:hover{background-color:#a5dfc5}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#a5dfc5}.table-info,.table-info>th,.table-info>td{background-color:#cfcfcf}.table-info th,.table-info td,.table-info thead th,.table-info tbody+tbody{border-color:#a7a7a7}.table-hover .table-info:hover{background-color:#c2c2c2}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#c2c2c2}.table-warning,.table-warning>th,.table-warning>td{background-color:#eddbbe}.table-warning th,.table-warning td,.table-warning thead th,.table-warning tbody+tbody{border-color:#debc86}.table-hover .table-warning:hover{background-color:#e7d0aa}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#e7d0aa}.table-danger,.table-danger>th,.table-danger>td{background-color:#f5cdc8}.table-danger th,.table-danger td,.table-danger thead th,.table-danger tbody+tbody{border-color:#eda198}.table-hover .table-danger:hover{background-color:#f1b9b2}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b9b2}.table-light,.table-light>th,.table-light>td{background-color:#fdfdfe}.table-light th,.table-light td,.table-light thead th,.table-light tbody+tbody{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>th,.table-dark>td{background-color:#c6c8ca}.table-dark th,.table-dark td,.table-dark thead th,.table-dark tbody+tbody{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-primary-accent,.table-primary-accent>th,.table-primary-accent>td{background-color:#bdcfe5}.table-primary-accent th,.table-primary-accent td,.table-primary-accent thead th,.table-primary-accent tbody+tbody{border-color:#84a5cf}.table-hover .table-primary-accent:hover{background-color:#abc2de}.table-hover .table-primary-accent:hover>td,.table-hover .table-primary-accent:hover>th{background-color:#abc2de}.table-secondary-alt,.table-secondary-alt>th,.table-secondary-alt>td{background-color:#bfc8d4}.table-secondary-alt th,.table-secondary-alt td,.table-secondary-alt thead th,.table-secondary-alt tbody+tbody{border-color:#8899af}.table-hover .table-secondary-alt:hover{background-color:#b0bbca}.table-hover .table-secondary-alt:hover>td,.table-hover .table-secondary-alt:hover>th{background-color:#b0bbca}.table-active,.table-active>th,.table-active>td{background-color:rgba(0,0,0,0.03)}.table-hover .table-active:hover{background-color:rgba(0,0,0,0.03)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,0.03)}.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 th,.table-dark td,.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,0.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,0.075)}@media (max-width: 0.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: 1.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: 2.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: 3.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:#fbfbfb;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#81a9f2;outline:0;box-shadow:0 0 0 .2rem rgba(23,93,220,0.25)}.form-control::placeholder{color:#b4b4b4;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e0e0e0;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fbfbfb}.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.15rem;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-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#333;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{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.15rem;line-height:1.5;border-radius:.3rem}select.form-control[size],select.form-control[multiple]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;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{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;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:90%;color:#00a65a}.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(0,166,90,0.9);border-radius:.25rem}.was-validated .form-control:valid,.form-control.is-valid{border-color:#00a65a;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2300a65a' 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:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#00a65a;box-shadow:0 0 0 .2rem rgba(0,166,90,0.25)}.was-validated .form-control:valid ~ .valid-feedback,.was-validated .form-control:valid ~ .valid-tooltip,.form-control.is-valid ~ .valid-feedback,.form-control.is-valid ~ .valid-tooltip{display:block}.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)}.was-validated .custom-select:valid,.custom-select.is-valid{border-color:#00a65a;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' 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' viewBox='0 0 8 8'%3e%3cpath fill='%2300a65a' 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") #fbfbfb no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .custom-select:valid:focus,.custom-select.is-valid:focus{border-color:#00a65a;box-shadow:0 0 0 .2rem rgba(0,166,90,0.25)}.was-validated .custom-select:valid ~ .valid-feedback,.was-validated .custom-select:valid ~ .valid-tooltip,.custom-select.is-valid ~ .valid-feedback,.custom-select.is-valid ~ .valid-tooltip{display:block}.was-validated .form-control-file:valid ~ .valid-feedback,.was-validated .form-control-file:valid ~ .valid-tooltip,.form-control-file.is-valid ~ .valid-feedback,.form-control-file.is-valid ~ .valid-tooltip{display:block}.was-validated .form-check-input:valid ~ .form-check-label,.form-check-input.is-valid ~ .form-check-label{color:#00a65a}.was-validated .form-check-input:valid ~ .valid-feedback,.was-validated .form-check-input:valid ~ .valid-tooltip,.form-check-input.is-valid ~ .valid-feedback,.form-check-input.is-valid ~ .valid-tooltip{display:block}.was-validated .custom-control-input:valid ~ .custom-control-label,.custom-control-input.is-valid ~ .custom-control-label{color:#00a65a}.was-validated .custom-control-input:valid ~ .custom-control-label::before,.custom-control-input.is-valid ~ .custom-control-label::before{border-color:#00a65a}.was-validated .custom-control-input:valid ~ .valid-feedback,.was-validated .custom-control-input:valid ~ .valid-tooltip,.custom-control-input.is-valid ~ .valid-feedback,.custom-control-input.is-valid ~ .valid-tooltip{display:block}.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before,.custom-control-input.is-valid:checked ~ .custom-control-label::before{border-color:#00d976;background-color:#00d976}.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before,.custom-control-input.is-valid:focus ~ .custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,166,90,0.25)}.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before,.custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before{border-color:#00a65a}.was-validated .custom-file-input:valid ~ .custom-file-label,.custom-file-input.is-valid ~ .custom-file-label{border-color:#00a65a}.was-validated .custom-file-input:valid ~ .valid-feedback,.was-validated .custom-file-input:valid ~ .valid-tooltip,.custom-file-input.is-valid ~ .valid-feedback,.custom-file-input.is-valid ~ .valid-tooltip{display:block}.was-validated .custom-file-input:valid:focus ~ .custom-file-label,.custom-file-input.is-valid:focus ~ .custom-file-label{border-color:#00a65a;box-shadow:0 0 0 .2rem rgba(0,166,90,0.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:90%;color:#dd4b39}.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(221,75,57,0.9);border-radius:.25rem}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:#dd4b39;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dd4b39' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dd4b39' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#dd4b39;box-shadow:0 0 0 .2rem rgba(221,75,57,0.25)}.was-validated .form-control:invalid ~ .invalid-feedback,.was-validated .form-control:invalid ~ .invalid-tooltip,.form-control.is-invalid ~ .invalid-feedback,.form-control.is-invalid ~ .invalid-tooltip{display:block}.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)}.was-validated .custom-select:invalid,.custom-select.is-invalid{border-color:#dd4b39;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' 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' fill='%23dd4b39' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dd4b39' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E") #fbfbfb no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .custom-select:invalid:focus,.custom-select.is-invalid:focus{border-color:#dd4b39;box-shadow:0 0 0 .2rem rgba(221,75,57,0.25)}.was-validated .custom-select:invalid ~ .invalid-feedback,.was-validated .custom-select:invalid ~ .invalid-tooltip,.custom-select.is-invalid ~ .invalid-feedback,.custom-select.is-invalid ~ .invalid-tooltip{display:block}.was-validated .form-control-file:invalid ~ .invalid-feedback,.was-validated .form-control-file:invalid ~ .invalid-tooltip,.form-control-file.is-invalid ~ .invalid-feedback,.form-control-file.is-invalid ~ .invalid-tooltip{display:block}.was-validated .form-check-input:invalid ~ .form-check-label,.form-check-input.is-invalid ~ .form-check-label{color:#dd4b39}.was-validated .form-check-input:invalid ~ .invalid-feedback,.was-validated .form-check-input:invalid ~ .invalid-tooltip,.form-check-input.is-invalid ~ .invalid-feedback,.form-check-input.is-invalid ~ .invalid-tooltip{display:block}.was-validated .custom-control-input:invalid ~ .custom-control-label,.custom-control-input.is-invalid ~ .custom-control-label{color:#dd4b39}.was-validated .custom-control-input:invalid ~ .custom-control-label::before,.custom-control-input.is-invalid ~ .custom-control-label::before{border-color:#dd4b39}.was-validated .custom-control-input:invalid ~ .invalid-feedback,.was-validated .custom-control-input:invalid ~ .invalid-tooltip,.custom-control-input.is-invalid ~ .invalid-feedback,.custom-control-input.is-invalid ~ .invalid-tooltip{display:block}.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before,.custom-control-input.is-invalid:checked ~ .custom-control-label::before{border-color:#e47365;background-color:#e47365}.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before,.custom-control-input.is-invalid:focus ~ .custom-control-label::before{box-shadow:0 0 0 .2rem rgba(221,75,57,0.25)}.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before,.custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before{border-color:#dd4b39}.was-validated .custom-file-input:invalid ~ .custom-file-label,.custom-file-input.is-invalid ~ .custom-file-label{border-color:#dd4b39}.was-validated .custom-file-input:invalid ~ .invalid-feedback,.was-validated .custom-file-input:invalid ~ .invalid-tooltip,.custom-file-input.is-invalid ~ .invalid-feedback,.custom-file-input.is-invalid ~ .invalid-tooltip{display:block}.was-validated .custom-file-input:invalid:focus ~ .custom-file-label,.custom-file-input.is-invalid:focus ~ .custom-file-label{border-color:#dd4b39;box-shadow:0 0 0 .2rem rgba(221,75,57,0.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width: 1px){.form-inline label{display:flex;align-items:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:flex;flex:0 0 auto;flex-flow:row wrap;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 .input-group,.form-inline .custom-select{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn,.swal2-popup .swal2-actions button{display:inline-block;font-weight:600;color:#333;text-align:center;vertical-align:middle;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 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.btn,.swal2-popup .swal2-actions button{transition:none}}.btn:hover,.swal2-popup .swal2-actions button:hover{color:#333;text-decoration:none}.btn:focus,.swal2-popup .swal2-actions button:focus,.btn.focus,.swal2-popup .swal2-actions button.focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,93,220,0.25)}.btn.disabled,.swal2-popup .swal2-actions button.disabled,.btn:disabled,.swal2-popup .swal2-actions button:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary,.swal2-popup .swal2-actions button.swal2-confirm{color:#fff;background-color:#175DDC;border-color:#175DDC}.btn-primary:hover,.swal2-popup .swal2-actions button.swal2-confirm:hover{color:#fff;background-color:#134eb9;border-color:#1249ae}.btn-primary:focus,.swal2-popup .swal2-actions button.swal2-confirm:focus,.btn-primary.focus,.swal2-popup .swal2-actions button.focus.swal2-confirm{box-shadow:0 0 0 .2rem rgba(58,117,225,0.5)}.btn-primary.disabled,.swal2-popup .swal2-actions button.disabled.swal2-confirm,.btn-primary:disabled,.swal2-popup .swal2-actions button.swal2-confirm:disabled{color:#fff;background-color:#175DDC;border-color:#175DDC}.btn-primary:not(:disabled):not(.disabled):active,.swal2-popup .swal2-actions button.swal2-confirm:not(:disabled):not(.disabled):active,.btn-primary:not(:disabled):not(.disabled).active,.swal2-popup .swal2-actions button.swal2-confirm:not(:disabled):not(.disabled).active,.show>.btn-primary.dropdown-toggle,.swal2-popup .swal2-actions .show>button.dropdown-toggle.swal2-confirm{color:#fff;background-color:#1249ae;border-color:#1145a2}.btn-primary:not(:disabled):not(.disabled):active:focus,.swal2-popup .swal2-actions button.swal2-confirm:not(:disabled):not(.disabled):active:focus,.btn-primary:not(:disabled):not(.disabled).active:focus,.swal2-popup .swal2-actions button.swal2-confirm:not(:disabled):not(.disabled).active:focus,.show>.btn-primary.dropdown-toggle:focus,.swal2-popup .swal2-actions .show>button.dropdown-toggle.swal2-confirm:focus{box-shadow:0 0 0 .2rem rgba(58,117,225,0.5)}.btn-secondary{color:#212529;background-color:#ced4da;border-color:#ced4da}.btn-secondary:hover{color:#212529;background-color:#b8c1ca;border-color:#b1bbc4}.btn-secondary:focus,.btn-secondary.focus{box-shadow:0 0 0 .2rem rgba(180,186,191,0.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#212529;background-color:#ced4da;border-color:#ced4da}.btn-secondary:not(:disabled):not(.disabled):active,.btn-secondary:not(:disabled):not(.disabled).active,.show>.btn-secondary.dropdown-toggle{color:#212529;background-color:#b1bbc4;border-color:#aab4bf}.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(180,186,191,0.5)}.btn-success{color:#fff;background-color:#00a65a;border-color:#00a65a}.btn-success:hover{color:#fff;background-color:#008045;border-color:#00733e}.btn-success:focus,.btn-success.focus{box-shadow:0 0 0 .2rem rgba(38,179,115,0.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#00a65a;border-color:#00a65a}.btn-success:not(:disabled):not(.disabled):active,.btn-success:not(:disabled):not(.disabled).active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#00733e;border-color:#006637}.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(38,179,115,0.5)}.btn-info{color:#fff;background-color:#555;border-color:#555}.btn-info:hover{color:#fff;background-color:#424242;border-color:#3c3c3c}.btn-info:focus,.btn-info.focus{box-shadow:0 0 0 .2rem rgba(111,111,111,0.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#555;border-color:#555}.btn-info:not(:disabled):not(.disabled):active,.btn-info:not(:disabled):not(.disabled).active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#3c3c3c;border-color:#353535}.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(111,111,111,0.5)}.btn-warning{color:#fff;background-color:#bf7e16;border-color:#bf7e16}.btn-warning:hover{color:#fff;background-color:#9d6712;border-color:#916011}.btn-warning:focus,.btn-warning.focus{box-shadow:0 0 0 .2rem rgba(201,145,57,0.5)}.btn-warning.disabled,.btn-warning:disabled{color:#fff;background-color:#bf7e16;border-color:#bf7e16}.btn-warning:not(:disabled):not(.disabled):active,.btn-warning:not(:disabled):not(.disabled).active,.show>.btn-warning.dropdown-toggle{color:#fff;background-color:#916011;border-color:#86580f}.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(201,145,57,0.5)}.btn-danger{color:#fff;background-color:#dd4b39;border-color:#dd4b39}.btn-danger:hover{color:#fff;background-color:#cd3623;border-color:#c23321}.btn-danger:focus,.btn-danger.focus{box-shadow:0 0 0 .2rem rgba(226,102,87,0.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dd4b39;border-color:#dd4b39}.btn-danger:not(:disabled):not(.disabled):active,.btn-danger:not(:disabled):not(.disabled).active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#c23321;border-color:#b7301f}.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(226,102,87,0.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{box-shadow:0 0 0 .2rem rgba(216,217,219,0.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,0.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{box-shadow:0 0 0 .2rem rgba(82,88,93,0.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,0.5)}.btn-primary-accent{color:#fff;background-color:#1252A3;border-color:#1252A3}.btn-primary-accent:hover{color:#fff;background-color:#0e4181;border-color:#0d3b75}.btn-primary-accent:focus,.btn-primary-accent.focus{box-shadow:0 0 0 .2rem rgba(54,108,177,0.5)}.btn-primary-accent.disabled,.btn-primary-accent:disabled{color:#fff;background-color:#1252A3;border-color:#1252A3}.btn-primary-accent:not(:disabled):not(.disabled):active,.btn-primary-accent:not(:disabled):not(.disabled).active,.show>.btn-primary-accent.dropdown-toggle{color:#fff;background-color:#0d3b75;border-color:#0c356a}.btn-primary-accent:not(:disabled):not(.disabled):active:focus,.btn-primary-accent:not(:disabled):not(.disabled).active:focus,.show>.btn-primary-accent.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(54,108,177,0.5)}.btn-secondary-alt{color:#fff;background-color:#1A3B66;border-color:#1A3B66}.btn-secondary-alt:hover{color:#fff;background-color:#122948;border-color:#10233d}.btn-secondary-alt:focus,.btn-secondary-alt.focus{box-shadow:0 0 0 .2rem rgba(60,88,125,0.5)}.btn-secondary-alt.disabled,.btn-secondary-alt:disabled{color:#fff;background-color:#1A3B66;border-color:#1A3B66}.btn-secondary-alt:not(:disabled):not(.disabled):active,.btn-secondary-alt:not(:disabled):not(.disabled).active,.show>.btn-secondary-alt.dropdown-toggle{color:#fff;background-color:#10233d;border-color:#0d1e33}.btn-secondary-alt:not(:disabled):not(.disabled):active:focus,.btn-secondary-alt:not(:disabled):not(.disabled).active:focus,.show>.btn-secondary-alt.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(60,88,125,0.5)}.btn-outline-primary{color:#175DDC;border-color:#175DDC}.btn-outline-primary:hover{color:#fff;background-color:#175DDC;border-color:#175DDC}.btn-outline-primary:focus,.btn-outline-primary.focus{box-shadow:0 0 0 .2rem rgba(23,93,220,0.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#175DDC;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:#175DDC;border-color:#175DDC}.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(23,93,220,0.5)}.btn-outline-secondary,.swal2-popup .swal2-actions button.swal2-cancel{color:#ced4da;border-color:#ced4da}.btn-outline-secondary:hover,.swal2-popup .swal2-actions button.swal2-cancel:hover{color:#212529;background-color:#ced4da;border-color:#ced4da}.btn-outline-secondary:focus,.swal2-popup .swal2-actions button.swal2-cancel:focus,.btn-outline-secondary.focus,.swal2-popup .swal2-actions button.focus.swal2-cancel{box-shadow:0 0 0 .2rem rgba(206,212,218,0.5)}.btn-outline-secondary.disabled,.swal2-popup .swal2-actions button.disabled.swal2-cancel,.btn-outline-secondary:disabled,.swal2-popup .swal2-actions button.swal2-cancel:disabled{color:#ced4da;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled):active,.swal2-popup .swal2-actions button.swal2-cancel:not(:disabled):not(.disabled):active,.btn-outline-secondary:not(:disabled):not(.disabled).active,.swal2-popup .swal2-actions button.swal2-cancel:not(:disabled):not(.disabled).active,.show>.btn-outline-secondary.dropdown-toggle,.swal2-popup .swal2-actions .show>button.dropdown-toggle.swal2-cancel{color:#212529;background-color:#ced4da;border-color:#ced4da}.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.swal2-popup .swal2-actions button.swal2-cancel:not(:disabled):not(.disabled):active:focus,.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.swal2-popup .swal2-actions button.swal2-cancel:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus,.swal2-popup .swal2-actions .show>button.dropdown-toggle.swal2-cancel:focus{box-shadow:0 0 0 .2rem rgba(206,212,218,0.5)}.btn-outline-success{color:#00a65a;border-color:#00a65a}.btn-outline-success:hover{color:#fff;background-color:#00a65a;border-color:#00a65a}.btn-outline-success:focus,.btn-outline-success.focus{box-shadow:0 0 0 .2rem rgba(0,166,90,0.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#00a65a;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:#00a65a;border-color:#00a65a}.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(0,166,90,0.5)}.btn-outline-info{color:#555;border-color:#555}.btn-outline-info:hover{color:#fff;background-color:#555;border-color:#555}.btn-outline-info:focus,.btn-outline-info.focus{box-shadow:0 0 0 .2rem rgba(85,85,85,0.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#555;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:#555;border-color:#555}.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(85,85,85,0.5)}.btn-outline-warning{color:#bf7e16;border-color:#bf7e16}.btn-outline-warning:hover{color:#fff;background-color:#bf7e16;border-color:#bf7e16}.btn-outline-warning:focus,.btn-outline-warning.focus{box-shadow:0 0 0 .2rem rgba(191,126,22,0.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#bf7e16;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:#fff;background-color:#bf7e16;border-color:#bf7e16}.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(191,126,22,0.5)}.btn-outline-danger{color:#dd4b39;border-color:#dd4b39}.btn-outline-danger:hover{color:#fff;background-color:#dd4b39;border-color:#dd4b39}.btn-outline-danger:focus,.btn-outline-danger.focus{box-shadow:0 0 0 .2rem rgba(221,75,57,0.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dd4b39;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:#dd4b39;border-color:#dd4b39}.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(221,75,57,0.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,0.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,0.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,0.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,0.5)}.btn-outline-primary-accent{color:#1252A3;border-color:#1252A3}.btn-outline-primary-accent:hover{color:#fff;background-color:#1252A3;border-color:#1252A3}.btn-outline-primary-accent:focus,.btn-outline-primary-accent.focus{box-shadow:0 0 0 .2rem rgba(18,82,163,0.5)}.btn-outline-primary-accent.disabled,.btn-outline-primary-accent:disabled{color:#1252A3;background-color:transparent}.btn-outline-primary-accent:not(:disabled):not(.disabled):active,.btn-outline-primary-accent:not(:disabled):not(.disabled).active,.show>.btn-outline-primary-accent.dropdown-toggle{color:#fff;background-color:#1252A3;border-color:#1252A3}.btn-outline-primary-accent:not(:disabled):not(.disabled):active:focus,.btn-outline-primary-accent:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-primary-accent.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(18,82,163,0.5)}.btn-outline-secondary-alt{color:#1A3B66;border-color:#1A3B66}.btn-outline-secondary-alt:hover{color:#fff;background-color:#1A3B66;border-color:#1A3B66}.btn-outline-secondary-alt:focus,.btn-outline-secondary-alt.focus{box-shadow:0 0 0 .2rem rgba(26,59,102,0.5)}.btn-outline-secondary-alt.disabled,.btn-outline-secondary-alt:disabled{color:#1A3B66;background-color:transparent}.btn-outline-secondary-alt:not(:disabled):not(.disabled):active,.btn-outline-secondary-alt:not(:disabled):not(.disabled).active,.show>.btn-outline-secondary-alt.dropdown-toggle{color:#fff;background-color:#1A3B66;border-color:#1A3B66}.btn-outline-secondary-alt:not(:disabled):not(.disabled):active:focus,.btn-outline-secondary-alt:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-secondary-alt.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(26,59,102,0.5)}.btn-link{font-weight:400;color:#175DDC;text-decoration:none}.btn-link:hover{color:#104097;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-lg,.btn-group-lg>.btn,.swal2-popup .swal2-actions .btn-group-lg>button{padding:.5rem 1rem;font-size:1.15rem;line-height:1.5;border-radius:.3rem}.btn-sm,.btn-group-sm>.btn,.swal2-popup .swal2-actions .btn-group-sm>button{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="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{transition:opacity 0.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 0.35s ease}@media (prefers-reduced-motion: reduce){.collapsing{transition:none}}.dropup,.dropright,.dropdown,.dropleft{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:#333;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width: 1px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width: 2px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width: 3px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width: 4px){.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^="top"],.dropdown-menu[x-placement^="right"],.dropdown-menu[x-placement^="bottom"],.dropdown-menu[x-placement^="left"]{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 1rem;clear:both;font-weight:400;color:#333;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:hover,.dropdown-item:focus{color:#16181b;text-decoration:none;background-color:rgba(0,0,0,0.06)}.dropdown-item.active,.dropdown-item:active{color:#333;text-decoration:none;background-color:rgba(0,0,0,0.1)}.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 1rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1rem;color:#333}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.swal2-popup .swal2-actions .btn-group>button,.btn-group-vertical>.btn,.swal2-popup .swal2-actions .btn-group-vertical>button{position:relative;flex:1 1 auto}.btn-group>.btn:hover,.swal2-popup .swal2-actions .btn-group>button:hover,.btn-group-vertical>.btn:hover,.swal2-popup .swal2-actions .btn-group-vertical>button:hover{z-index:1}.btn-group>.btn:focus,.swal2-popup .swal2-actions .btn-group>button:focus,.btn-group>.btn:active,.swal2-popup .swal2-actions .btn-group>button:active,.btn-group>.btn.active,.swal2-popup .swal2-actions .btn-group>button.active,.btn-group-vertical>.btn:focus,.swal2-popup .swal2-actions .btn-group-vertical>button:focus,.btn-group-vertical>.btn:active,.swal2-popup .swal2-actions .btn-group-vertical>button:active,.btn-group-vertical>.btn.active,.swal2-popup .swal2-actions .btn-group-vertical>button.active{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:not(:first-child),.swal2-popup .swal2-actions .btn-group>button:not(:first-child),.btn-group>.btn-group:not(:first-child){margin-left:-1px}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.swal2-popup .swal2-actions .btn-group>button:not(:last-child):not(.dropdown-toggle),.btn-group>.btn-group:not(:last-child)>.btn,.swal2-popup .swal2-actions .btn-group>.btn-group:not(:last-child)>button{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:not(:first-child),.swal2-popup .swal2-actions .btn-group>button:not(:first-child),.btn-group>.btn-group:not(:first-child)>.btn,.swal2-popup .swal2-actions .btn-group>.btn-group:not(:first-child)>button{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split,.swal2-popup .swal2-actions .btn-group-sm>button+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split,.swal2-popup .swal2-actions .btn-group-lg>button+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.swal2-popup .swal2-actions .btn-group-vertical>button,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.swal2-popup .swal2-actions .btn-group-vertical>button:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.swal2-popup .swal2-actions .btn-group-vertical>button:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn,.swal2-popup .swal2-actions .btn-group-vertical>.btn-group:not(:last-child)>button{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:not(:first-child),.swal2-popup .swal2-actions .btn-group-vertical>button:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child)>.btn,.swal2-popup .swal2-actions .btn-group-vertical>.btn-group:not(:first-child)>button{border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.swal2-popup .swal2-actions .btn-group-toggle>button,.btn-group-toggle>.btn-group>.btn,.swal2-popup .swal2-actions .btn-group-toggle>.btn-group>button{margin-bottom:0}.btn-group-toggle>.btn input[type="radio"],.swal2-popup .swal2-actions .btn-group-toggle>button input[type="radio"],.btn-group-toggle>.btn input[type="checkbox"],.swal2-popup .swal2-actions .btn-group-toggle>button input[type="checkbox"],.btn-group-toggle>.btn-group>.btn input[type="radio"],.swal2-popup .swal2-actions .btn-group-toggle>.btn-group>button input[type="radio"],.btn-group-toggle>.btn-group>.btn input[type="checkbox"],.swal2-popup .swal2-actions .btn-group-toggle>.btn-group>button input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-control-plaintext,.input-group>.custom-select,.input-group>.custom-file{position:relative;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.form-control+.form-control,.input-group>.form-control+.custom-select,.input-group>.form-control+.custom-file,.input-group>.form-control-plaintext+.form-control,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.custom-file,.input-group>.custom-select+.form-control,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.custom-file,.input-group>.custom-file+.form-control,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.custom-file{margin-left:-1px}.input-group>.form-control:focus,.input-group>.custom-select:focus,.input-group>.custom-file .custom-file-input:focus ~ .custom-file-label{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.form-control:not(:last-child),.input-group>.custom-select:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.form-control:not(:first-child),.input-group>.custom-select:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;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-prepend,.input-group-append{display:flex}.input-group-prepend .btn,.input-group-prepend .swal2-popup .swal2-actions button,.swal2-popup .swal2-actions .input-group-prepend button,.input-group-append .btn,.input-group-append .swal2-popup .swal2-actions button,.swal2-popup .swal2-actions .input-group-append button{position:relative;z-index:2}.input-group-prepend .btn:focus,.input-group-prepend .swal2-popup .swal2-actions button:focus,.swal2-popup .swal2-actions .input-group-prepend button:focus,.input-group-append .btn:focus,.input-group-append .swal2-popup .swal2-actions button:focus,.swal2-popup .swal2-actions .input-group-append button:focus{z-index:3}.input-group-prepend .btn+.btn,.input-group-prepend .swal2-popup .swal2-actions button+.btn,.swal2-popup .swal2-actions .input-group-prepend button+.btn,.input-group-prepend .swal2-popup .swal2-actions .btn+button,.swal2-popup .swal2-actions .input-group-prepend .btn+button,.input-group-prepend .swal2-popup .swal2-actions button+button,.swal2-popup .swal2-actions .input-group-prepend button+button,.input-group-prepend .btn+.input-group-text,.input-group-prepend .swal2-popup .swal2-actions button+.input-group-text,.swal2-popup .swal2-actions .input-group-prepend button+.input-group-text,.input-group-prepend .input-group-text+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .swal2-popup .swal2-actions .input-group-text+button,.swal2-popup .swal2-actions .input-group-prepend .input-group-text+button,.input-group-append .btn+.btn,.input-group-append .swal2-popup .swal2-actions button+.btn,.swal2-popup .swal2-actions .input-group-append button+.btn,.input-group-append .swal2-popup .swal2-actions .btn+button,.swal2-popup .swal2-actions .input-group-append .btn+button,.input-group-append .swal2-popup .swal2-actions button+button,.swal2-popup .swal2-actions .input-group-append button+button,.input-group-append .btn+.input-group-text,.input-group-append .swal2-popup .swal2-actions button+.input-group-text,.swal2-popup .swal2-actions .input-group-append button+.input-group-text,.input-group-append .input-group-text+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .swal2-popup .swal2-actions .input-group-text+button,.swal2-popup .swal2-actions .input-group-append .input-group-text+button{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;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="radio"],.input-group-text input[type="checkbox"]{margin-top:0}.input-group-lg>.form-control:not(textarea),.input-group-lg>.custom-select{height:calc(1.5em + 1rem + 2px)}.input-group-lg>.form-control,.input-group-lg>.custom-select,.input-group-lg>.input-group-prepend>.input-group-text,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.swal2-popup .swal2-actions .input-group-lg>.input-group-prepend>button,.input-group-lg>.input-group-append>.btn,.swal2-popup .swal2-actions .input-group-lg>.input-group-append>button{padding:.5rem 1rem;font-size:1.15rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.form-control:not(textarea),.input-group-sm>.custom-select{height:calc(1.5em + .5rem + 2px)}.input-group-sm>.form-control,.input-group-sm>.custom-select,.input-group-sm>.input-group-prepend>.input-group-text,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.swal2-popup .swal2-actions .input-group-sm>.input-group-prepend>button,.input-group-sm>.input-group-append>.btn,.swal2-popup .swal2-actions .input-group-sm>.input-group-append>button{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-prepend>.btn,.swal2-popup .swal2-actions .input-group>.input-group-prepend>button,.input-group>.input-group-prepend>.input-group-text,.input-group>.input-group-append:not(:last-child)>.btn,.swal2-popup .swal2-actions .input-group>.input-group-append:not(:last-child)>button,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.swal2-popup .swal2-actions .input-group>.input-group-append:last-child>button:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.swal2-popup .swal2-actions .input-group>.input-group-append>button,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:not(:first-child)>.btn,.swal2-popup .swal2-actions .input-group>.input-group-prepend:not(:first-child)>button,.input-group>.input-group-prepend:not(:first-child)>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.swal2-popup .swal2-actions .input-group>.input-group-prepend:first-child>button:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child){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:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked ~ .custom-control-label::before{color:#fff;border-color:#175DDC;background-color:#175DDC}.custom-control-input:focus ~ .custom-control-label::before{box-shadow:0 0 0 .2rem rgba(23,93,220,0.25)}.custom-control-input:focus:not(:checked) ~ .custom-control-label::before{border-color:#81a9f2}.custom-control-input:not(:disabled):active ~ .custom-control-label::before{color:#fff;background-color:#afc8f7;border-color:#afc8f7}.custom-control-input:disabled ~ .custom-control-label{color:#6c757d}.custom-control-input:disabled ~ .custom-control-label::before{background-color:#e0e0e0}.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:#fbfbfb;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' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before{border-color:#175DDC;background-color:#175DDC}.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' 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(23,93,220,0.5)}.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before{background-color:rgba(23,93,220,0.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' 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(23,93,220,0.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:transform 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.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:#fbfbfb;transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before{background-color:rgba(23,93,220,0.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:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' 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;background-color:#fbfbfb;border:1px solid #ced4da;border-radius:.25rem;appearance:none}.custom-select:focus{border-color:#81a9f2;outline:0;box-shadow:0 0 0 .2rem rgba(23,93,220,0.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fbfbfb}.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-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.15rem}.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:#81a9f2;box-shadow:0 0 0 .2rem rgba(23,93,220,0.25)}.custom-file-input:disabled ~ .custom-file-label{background-color:#e0e0e0}.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:#fbfbfb;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:calc(1rem + .4rem);padding:0;background-color:transparent;appearance:none}.custom-range:focus{outline:none}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(23,93,220,0.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(23,93,220,0.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(23,93,220,0.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#175DDC;border:0;border-radius:1rem;transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;appearance:none}@media (prefers-reduced-motion: reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#afc8f7}.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:#175DDC;border:0;border-radius:1rem;transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;appearance:none}@media (prefers-reduced-motion: reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#afc8f7}.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:#175DDC;border:0;border-radius:1rem;transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;appearance:none}@media (prefers-reduced-motion: reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#afc8f7}.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 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:hover,.nav-link:focus{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:hover,.nav-tabs .nav-link:focus{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{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:#175DDC}.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:.75rem 1rem}.navbar>.container,.navbar>.container-fluid{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:0;padding-bottom:0;margin-right:1rem;font-size:2.1875rem;line-height:inherit;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-nav{display:flex;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{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.15rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:hover,.navbar-toggler:focus{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: 0.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width: 1px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.8rem;padding-left:.8rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width: 1.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width: 2px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.8rem;padding-left:.8rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width: 2.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width: 3px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.8rem;padding-left:.8rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width: 3.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width: 4px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.8rem;padding-left:.8rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.8rem;padding-left:.8rem}.navbar-expand>.container,.navbar-expand>.container-fluid{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,0.9)}.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:focus{color:rgba(0,0,0,0.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,0.5)}.navbar-light .navbar-nav .nav-link:hover,.navbar-light .navbar-nav .nav-link:focus{color:rgba(0,0,0,0.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,0.3)}.navbar-light .navbar-nav .show>.nav-link,.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .nav-link.active{color:rgba(0,0,0,0.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,0.5);border-color:rgba(0,0,0,0.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0,0,0,0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,0.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,0.9)}.navbar-light .navbar-text a:hover,.navbar-light .navbar-text a:focus{color:rgba(0,0,0,0.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:hover,.navbar-dark .navbar-brand:focus{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,0.7)}.navbar-dark .navbar-nav .nav-link:hover,.navbar-dark .navbar-nav .nav-link:focus{color:rgba(255,255,255,0.9)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,0.25)}.navbar-dark .navbar-nav .show>.nav-link,.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .nav-link.active{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,0.7);border-color:rgba(255,255,255,0.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255,255,255,0.7)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,0.7)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:hover,.navbar-dark .navbar-text a:focus{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,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{flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.6rem}.card-subtitle{margin-top:-.3rem;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:.6rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,0.03);border-bottom:1px solid rgba(0,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:.6rem 1.25rem;background-color:rgba(0,0,0,0.03);border-top:1px solid rgba(0,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:-.6rem;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{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:flex;flex-direction:column}.card-deck .card{margin-bottom:10px}@media (min-width: 1px){.card-deck{flex-flow:row wrap;margin-right:-10px;margin-left:-10px}.card-deck .card{display:flex;flex:1 0 0%;flex-direction:column;margin-right:10px;margin-bottom:0;margin-left:10px}}.card-group{display:flex;flex-direction:column}.card-group>.card{margin-bottom:10px}@media (min-width: 1px){.card-group{flex-flow:row wrap}.card-group>.card{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-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{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-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.6rem}@media (min-width: 1px){.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion>.card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion>.card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.accordion>.card .card-header{margin-bottom:-1px}.breadcrumb{display:flex;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: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:#175DDC;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#104097;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(23,93,220,0.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:1;color:#fff;background-color:#175DDC;border-color:#175DDC}.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.15rem;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 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.badge{transition:none}}a.badge:hover,a.badge:focus{text-decoration:none}.badge:empty{display:none}.btn .badge,.swal2-popup .swal2-actions button .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#175DDC}a.badge-primary:hover,a.badge-primary:focus{color:#fff;background-color:#1249ae}a.badge-primary:focus,a.badge-primary.focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,93,220,0.5)}.badge-secondary{color:#212529;background-color:#ced4da}a.badge-secondary:hover,a.badge-secondary:focus{color:#212529;background-color:#b1bbc4}a.badge-secondary:focus,a.badge-secondary.focus{outline:0;box-shadow:0 0 0 .2rem rgba(206,212,218,0.5)}.badge-success{color:#fff;background-color:#00a65a}a.badge-success:hover,a.badge-success:focus{color:#fff;background-color:#00733e}a.badge-success:focus,a.badge-success.focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,166,90,0.5)}.badge-info{color:#fff;background-color:#555}a.badge-info:hover,a.badge-info:focus{color:#fff;background-color:#3c3c3c}a.badge-info:focus,a.badge-info.focus{outline:0;box-shadow:0 0 0 .2rem rgba(85,85,85,0.5)}.badge-warning{color:#fff;background-color:#bf7e16}a.badge-warning:hover,a.badge-warning:focus{color:#fff;background-color:#916011}a.badge-warning:focus,a.badge-warning.focus{outline:0;box-shadow:0 0 0 .2rem rgba(191,126,22,0.5)}.badge-danger{color:#fff;background-color:#dd4b39}a.badge-danger:hover,a.badge-danger:focus{color:#fff;background-color:#c23321}a.badge-danger:focus,a.badge-danger.focus{outline:0;box-shadow:0 0 0 .2rem rgba(221,75,57,0.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:hover,a.badge-light:focus{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,0.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:hover,a.badge-dark:focus{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,0.5)}.badge-primary-accent{color:#fff;background-color:#1252A3}a.badge-primary-accent:hover,a.badge-primary-accent:focus{color:#fff;background-color:#0d3b75}a.badge-primary-accent:focus,a.badge-primary-accent.focus{outline:0;box-shadow:0 0 0 .2rem rgba(18,82,163,0.5)}.badge-secondary-alt{color:#fff;background-color:#1A3B66}a.badge-secondary-alt:hover,a.badge-secondary-alt:focus{color:#fff;background-color:#10233d}a.badge-secondary-alt:focus,a.badge-secondary-alt.focus{outline:0;box-shadow:0 0 0 .2rem rgba(26,59,102,0.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width: 1px){.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:#0c3072;background-color:#d1dff8;border-color:#bed2f5}.alert-primary hr{border-top-color:#a8c3f2}.alert-primary .alert-link{color:#071d44}.alert-secondary{color:#6b6e71;background-color:#f5f6f8;border-color:#f1f3f5}.alert-secondary hr{border-top-color:#e2e6ea}.alert-secondary .alert-link{color:#525557}.alert-success{color:#00562f;background-color:#ccedde;border-color:#b8e6d1}.alert-success hr{border-top-color:#a5dfc5}.alert-success .alert-link{color:#002313}.alert-info{color:#2c2c2c;background-color:#ddd;border-color:#cfcfcf}.alert-info hr{border-top-color:#c2c2c2}.alert-info .alert-link{color:#131313}.alert-warning{color:#63420b;background-color:#f2e5d0;border-color:#eddbbe}.alert-warning hr{border-top-color:#e7d0aa}.alert-warning .alert-link{color:#352306}.alert-danger{color:#73271e;background-color:#f8dbd7;border-color:#f5cdc8}.alert-danger hr{border-top-color:#f1b9b2}.alert-danger .alert-link{color:#4b1913}.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}.alert-primary-accent{color:#092b55;background-color:#d0dced;border-color:#bdcfe5}.alert-primary-accent hr{border-top-color:#abc2de}.alert-primary-accent .alert-link{color:#041427}.alert-secondary-alt{color:#0e1f35;background-color:#d1d8e0;border-color:#bfc8d4}.alert-secondary-alt hr{border-top-color:#b0bbca}.alert-secondary-alt .alert-link{color:#03070d}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#175DDC;transition:width 0.6s ease}@media (prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:1rem 1rem}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#333;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.6rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,0.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;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:#333;background-color:#fff;border-color:rgba(0,0,0,0.125)}.list-group-horizontal{flex-direction:row}.list-group-horizontal .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}@media (min-width: 1px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-sm .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width: 2px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-md .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width: 3px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-lg .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width: 4px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-xl .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush .list-group-item:last-child{margin-bottom:-1px}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{margin-bottom:0;border-bottom:0}.list-group-item-primary{color:#0c3072;background-color:#bed2f5}.list-group-item-primary.list-group-item-action:hover,.list-group-item-primary.list-group-item-action:focus{color:#0c3072;background-color:#a8c3f2}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#0c3072;border-color:#0c3072}.list-group-item-secondary{color:#6b6e71;background-color:#f1f3f5}.list-group-item-secondary.list-group-item-action:hover,.list-group-item-secondary.list-group-item-action:focus{color:#6b6e71;background-color:#e2e6ea}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#6b6e71;border-color:#6b6e71}.list-group-item-success{color:#00562f;background-color:#b8e6d1}.list-group-item-success.list-group-item-action:hover,.list-group-item-success.list-group-item-action:focus{color:#00562f;background-color:#a5dfc5}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#00562f;border-color:#00562f}.list-group-item-info{color:#2c2c2c;background-color:#cfcfcf}.list-group-item-info.list-group-item-action:hover,.list-group-item-info.list-group-item-action:focus{color:#2c2c2c;background-color:#c2c2c2}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#2c2c2c;border-color:#2c2c2c}.list-group-item-warning{color:#63420b;background-color:#eddbbe}.list-group-item-warning.list-group-item-action:hover,.list-group-item-warning.list-group-item-action:focus{color:#63420b;background-color:#e7d0aa}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#63420b;border-color:#63420b}.list-group-item-danger{color:#73271e;background-color:#f5cdc8}.list-group-item-danger.list-group-item-action:hover,.list-group-item-danger.list-group-item-action:focus{color:#73271e;background-color:#f1b9b2}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#73271e;border-color:#73271e}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:hover,.list-group-item-light.list-group-item-action:focus{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:hover,.list-group-item-dark.list-group-item-action:focus{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.list-group-item-primary-accent{color:#092b55;background-color:#bdcfe5}.list-group-item-primary-accent.list-group-item-action:hover,.list-group-item-primary-accent.list-group-item-action:focus{color:#092b55;background-color:#abc2de}.list-group-item-primary-accent.list-group-item-action.active{color:#fff;background-color:#092b55;border-color:#092b55}.list-group-item-secondary-alt{color:#0e1f35;background-color:#bfc8d4}.list-group-item-secondary-alt.list-group-item-action:hover,.list-group-item-secondary-alt.list-group-item-action:focus{color:#0e1f35;background-color:#b0bbca}.list-group-item-secondary-alt.list-group-item-action.active{color:#fff;background-color:#0e1f35;border-color:#0e1f35}.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):hover,.close:not(:disabled):not(.disabled):focus{opacity:.75}button.close{padding:0;background-color:transparent;border:0;appearance:none}a.close.disabled{pointer-events:none}.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:transform 0.3s ease-out;transform:translate(0, -50px)}@media (prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-header,.modal-dialog-scrollable .modal-footer{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;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{flex-direction:column;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:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,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:.3}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;align-items:center;justify-content:flex-end;padding:1rem;border-top:1px solid #dee2e6;border-bottom-right-radius:.3rem;border-bottom-left-radius:.3rem}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width: 1px){.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: 3px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width: 4px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";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-top,.bs-tooltip-auto[x-placement^="top"]{padding:.4rem 0}.bs-tooltip-top .arrow,.bs-tooltip-auto[x-placement^="top"] .arrow{bottom:0}.bs-tooltip-top .arrow::before,.bs-tooltip-auto[x-placement^="top"] .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-right,.bs-tooltip-auto[x-placement^="right"]{padding:0 .4rem}.bs-tooltip-right .arrow,.bs-tooltip-auto[x-placement^="right"] .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-right .arrow::before,.bs-tooltip-auto[x-placement^="right"] .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-bottom,.bs-tooltip-auto[x-placement^="bottom"]{padding:.4rem 0}.bs-tooltip-bottom .arrow,.bs-tooltip-auto[x-placement^="bottom"] .arrow{top:0}.bs-tooltip-bottom .arrow::before,.bs-tooltip-auto[x-placement^="bottom"] .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-left,.bs-tooltip-auto[x-placement^="left"]{padding:0 .4rem}.bs-tooltip-left .arrow,.bs-tooltip-auto[x-placement^="left"] .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-left .arrow::before,.bs-tooltip-auto[x-placement^="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:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";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,0.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::before,.popover .arrow::after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-top,.bs-popover-auto[x-placement^="top"]{margin-bottom:.5rem}.bs-popover-top>.arrow,.bs-popover-auto[x-placement^="top"]>.arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-top>.arrow::before,.bs-popover-auto[x-placement^="top"]>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,0.25)}.bs-popover-top>.arrow::after,.bs-popover-auto[x-placement^="top"]>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-right,.bs-popover-auto[x-placement^="right"]{margin-left:.5rem}.bs-popover-right>.arrow,.bs-popover-auto[x-placement^="right"]>.arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-right>.arrow::before,.bs-popover-auto[x-placement^="right"]>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,0.25)}.bs-popover-right>.arrow::after,.bs-popover-auto[x-placement^="right"]>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-bottom,.bs-popover-auto[x-placement^="bottom"]{margin-top:.5rem}.bs-popover-bottom>.arrow,.bs-popover-auto[x-placement^="bottom"]>.arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-bottom>.arrow::before,.bs-popover-auto[x-placement^="bottom"]>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,0.25)}.bs-popover-bottom>.arrow::after,.bs-popover-auto[x-placement^="bottom"]>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-bottom .popover-header::before,.bs-popover-auto[x-placement^="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-left,.bs-popover-auto[x-placement^="left"]{margin-right:.5rem}.bs-popover-left>.arrow,.bs-popover-auto[x-placement^="left"]>.arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-left>.arrow::before,.bs-popover-auto[x-placement^="left"]>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,0.25)}.bs-popover-left>.arrow::after,.bs-popover-auto[x-placement^="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:#333}.carousel{position:relative}.carousel.pointer-event{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%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-left),.active.carousel-item-right{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-right),.active.carousel-item-left{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:0s .6s opacity}@media (prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity 0.15s ease}@media (prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-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' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%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' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;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 0.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}@keyframes spinner-border{to{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%;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{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;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:#175DDC !important}a.bg-primary:hover,a.bg-primary:focus,button.bg-primary:hover,button.bg-primary:focus{background-color:#1249ae !important}.bg-secondary{background-color:#ced4da !important}a.bg-secondary:hover,a.bg-secondary:focus,button.bg-secondary:hover,button.bg-secondary:focus{background-color:#b1bbc4 !important}.bg-success{background-color:#00a65a !important}a.bg-success:hover,a.bg-success:focus,button.bg-success:hover,button.bg-success:focus{background-color:#00733e !important}.bg-info{background-color:#555 !important}a.bg-info:hover,a.bg-info:focus,button.bg-info:hover,button.bg-info:focus{background-color:#3c3c3c !important}.bg-warning{background-color:#bf7e16 !important}a.bg-warning:hover,a.bg-warning:focus,button.bg-warning:hover,button.bg-warning:focus{background-color:#916011 !important}.bg-danger{background-color:#dd4b39 !important}a.bg-danger:hover,a.bg-danger:focus,button.bg-danger:hover,button.bg-danger:focus{background-color:#c23321 !important}.bg-light{background-color:#f8f9fa !important}a.bg-light:hover,a.bg-light:focus,button.bg-light:hover,button.bg-light:focus{background-color:#dae0e5 !important}.bg-dark{background-color:#343a40 !important}a.bg-dark:hover,a.bg-dark:focus,button.bg-dark:hover,button.bg-dark:focus{background-color:#1d2124 !important}.bg-primary-accent{background-color:#1252A3 !important}a.bg-primary-accent:hover,a.bg-primary-accent:focus,button.bg-primary-accent:hover,button.bg-primary-accent:focus{background-color:#0d3b75 !important}.bg-secondary-alt{background-color:#1A3B66 !important}a.bg-secondary-alt:hover,a.bg-secondary-alt:focus,button.bg-secondary-alt:hover,button.bg-secondary-alt:focus{background-color:#10233d !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:#175DDC !important}.border-secondary{border-color:#ced4da !important}.border-success{border-color:#00a65a !important}.border-info{border-color:#555 !important}.border-warning{border-color:#bf7e16 !important}.border-danger{border-color:#dd4b39 !important}.border-light{border-color:#f8f9fa !important}.border-dark{border-color:#343a40 !important}.border-primary-accent{border-color:#1252A3 !important}.border-secondary-alt{border-color:#1A3B66 !important}.border-white{border-color:#fff !important}.rounded-sm{border-radius:.2rem !important}.rounded,.table.table-list td.table-list-icon img,app-avatar img{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:flex !important}.d-inline-flex{display:inline-flex !important}@media (min-width: 1px){.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:flex !important}.d-sm-inline-flex{display:inline-flex !important}}@media (min-width: 2px){.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:flex !important}.d-md-inline-flex{display:inline-flex !important}}@media (min-width: 3px){.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:flex !important}.d-lg-inline-flex{display:inline-flex !important}}@media (min-width: 4px){.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:flex !important}.d-xl-inline-flex{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:flex !important}.d-print-inline-flex{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 iframe,.embed-responsive embed,.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.85714%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-fill{flex:1 1 auto !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}@media (min-width: 1px){.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}}@media (min-width: 2px){.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}}@media (min-width: 3px){.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}}@media (min-width: 4px){.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}}.float-left{float:left !important}.float-right{float:right !important}.float-none{float:none !important}@media (min-width: 1px){.float-sm-left{float:left !important}.float-sm-right{float:right !important}.float-sm-none{float:none !important}}@media (min-width: 2px){.float-md-left{float:left !important}.float-md-right{float:right !important}.float-md-none{float:none !important}}@media (min-width: 3px){.float-lg-left{float:left !important}.float-lg-right{float:right !important}.float-lg-none{float:none !important}}@media (min-width: 4px){.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: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: sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only,.table.table-list tr:not(:hover) td.table-list-options>.dropdown:not(.show) button:not(:focus):not(:active),.table.table-list tr:not(:hover) td.table-list-options>button:not(:focus):not(:active){position:absolute;width:1px;height:1px;padding:0;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 0.125rem 0.25rem rgba(0,0,0,0.075) !important}.shadow{box-shadow:0 0.5rem 1rem rgba(0,0,0,0.15) !important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,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,.form-check-block .form-check-label>span,.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,.form-check-block+.form-check-block:not(.mt-2),.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,.card-body-header,.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: 1px){.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: 2px){.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: 3px){.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: 4px){.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,.totp .totp-code{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: 1px){.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}.text-sm-center{text-align:center !important}}@media (min-width: 2px){.text-md-left{text-align:left !important}.text-md-right{text-align:right !important}.text-md-center{text-align:center !important}}@media (min-width: 3px){.text-lg-left{text-align:left !important}.text-lg-right{text-align:right !important}.text-lg-center{text-align:center !important}}@media (min-width: 4px){.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:#175DDC !important}a.text-primary:hover,a.text-primary:focus{color:#104097 !important}.text-secondary{color:#ced4da !important}a.text-secondary:hover,a.text-secondary:focus{color:#a2aeb9 !important}.text-success{color:#00a65a !important}a.text-success:hover,a.text-success:focus{color:#005a31 !important}.text-info{color:#555 !important}a.text-info:hover,a.text-info:focus{color:#2f2f2f !important}.text-warning{color:#bf7e16 !important}a.text-warning:hover,a.text-warning:focus{color:#7a510e !important}.text-danger{color:#dd4b39 !important}a.text-danger:hover,a.text-danger:focus{color:#ac2d1e !important}.text-light{color:#f8f9fa !important}a.text-light:hover,a.text-light:focus{color:#cbd3da !important}.text-dark{color:#343a40 !important}a.text-dark:hover,a.text-dark:focus{color:#121416 !important}.text-primary-accent{color:#1252A3 !important}a.text-primary-accent:hover,a.text-primary-accent:focus{color:#0a2f5e !important}.text-secondary-alt{color:#1A3B66 !important}a.text-secondary-alt:hover,a.text-secondary-alt:focus{color:#0a1829 !important}.text-body{color:#333 !important}.text-muted,.card-header small,.modal-header small{color:#6c757d !important}.text-black-50{color:rgba(0,0,0,0.5) !important}.text-white-50{color:rgba(255,255,255,0.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{*,*::before,*::after{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}pre,blockquote{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:3px !important}.container{min-width:3px !important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #dee2e6 !important}.table-dark{color:inherit}.table-dark th,.table-dark td,.table-dark thead th,.table-dark tbody+tbody{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url(../fonts/fontawesome-webfont.eot);src:url(../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0) format("embedded-opentype"),url(../fonts/fontawesome-webfont.woff2) format("woff2"),url(../fonts/fontawesome-webfont.woff) format("woff"),url(../fonts/fontawesome-webfont.ttf) format("truetype"),url(../fonts/fontawesome-webfont.svg#fontawesomeregular) format("svg");font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.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(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\F000"}.fa-music:before{content:"\F001"}.fa-search:before{content:"\F002"}.fa-envelope-o:before{content:"\F003"}.fa-heart:before{content:"\F004"}.fa-star:before{content:"\F005"}.fa-star-o:before{content:"\F006"}.fa-user:before{content:"\F007"}.fa-film:before{content:"\F008"}.fa-th-large:before{content:"\F009"}.fa-th:before{content:"\F00A"}.fa-th-list:before{content:"\F00B"}.fa-check:before{content:"\F00C"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\F00D"}.fa-search-plus:before{content:"\F00E"}.fa-search-minus:before{content:"\F010"}.fa-power-off:before{content:"\F011"}.fa-signal:before{content:"\F012"}.fa-gear:before,.fa-cog:before{content:"\F013"}.fa-trash-o:before{content:"\F014"}.fa-home:before{content:"\F015"}.fa-file-o:before{content:"\F016"}.fa-clock-o:before{content:"\F017"}.fa-road:before{content:"\F018"}.fa-download:before{content:"\F019"}.fa-arrow-circle-o-down:before{content:"\F01A"}.fa-arrow-circle-o-up:before{content:"\F01B"}.fa-inbox:before{content:"\F01C"}.fa-play-circle-o:before{content:"\F01D"}.fa-rotate-right:before,.fa-repeat:before{content:"\F01E"}.fa-refresh:before{content:"\F021"}.fa-list-alt:before{content:"\F022"}.fa-lock:before{content:"\F023"}.fa-flag:before{content:"\F024"}.fa-headphones:before{content:"\F025"}.fa-volume-off:before{content:"\F026"}.fa-volume-down:before{content:"\F027"}.fa-volume-up:before{content:"\F028"}.fa-qrcode:before{content:"\F029"}.fa-barcode:before{content:"\F02A"}.fa-tag:before{content:"\F02B"}.fa-tags:before{content:"\F02C"}.fa-book:before{content:"\F02D"}.fa-bookmark:before{content:"\F02E"}.fa-print:before{content:"\F02F"}.fa-camera:before{content:"\F030"}.fa-font:before{content:"\F031"}.fa-bold:before{content:"\F032"}.fa-italic:before{content:"\F033"}.fa-text-height:before{content:"\F034"}.fa-text-width:before{content:"\F035"}.fa-align-left:before{content:"\F036"}.fa-align-center:before{content:"\F037"}.fa-align-right:before{content:"\F038"}.fa-align-justify:before{content:"\F039"}.fa-list:before{content:"\F03A"}.fa-dedent:before,.fa-outdent:before{content:"\F03B"}.fa-indent:before{content:"\F03C"}.fa-video-camera:before{content:"\F03D"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\F03E"}.fa-pencil:before{content:"\F040"}.fa-map-marker:before{content:"\F041"}.fa-adjust:before{content:"\F042"}.fa-tint:before{content:"\F043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\F044"}.fa-share-square-o:before{content:"\F045"}.fa-check-square-o:before{content:"\F046"}.fa-arrows:before{content:"\F047"}.fa-step-backward:before{content:"\F048"}.fa-fast-backward:before{content:"\F049"}.fa-backward:before{content:"\F04A"}.fa-play:before{content:"\F04B"}.fa-pause:before{content:"\F04C"}.fa-stop:before{content:"\F04D"}.fa-forward:before{content:"\F04E"}.fa-fast-forward:before{content:"\F050"}.fa-step-forward:before{content:"\F051"}.fa-eject:before{content:"\F052"}.fa-chevron-left:before{content:"\F053"}.fa-chevron-right:before{content:"\F054"}.fa-plus-circle:before{content:"\F055"}.fa-minus-circle:before{content:"\F056"}.fa-times-circle:before{content:"\F057"}.fa-check-circle:before{content:"\F058"}.fa-question-circle:before{content:"\F059"}.fa-info-circle:before{content:"\F05A"}.fa-crosshairs:before{content:"\F05B"}.fa-times-circle-o:before{content:"\F05C"}.fa-check-circle-o:before{content:"\F05D"}.fa-ban:before{content:"\F05E"}.fa-arrow-left:before{content:"\F060"}.fa-arrow-right:before{content:"\F061"}.fa-arrow-up:before{content:"\F062"}.fa-arrow-down:before{content:"\F063"}.fa-mail-forward:before,.fa-share:before{content:"\F064"}.fa-expand:before{content:"\F065"}.fa-compress:before{content:"\F066"}.fa-plus:before{content:"\F067"}.fa-minus:before{content:"\F068"}.fa-asterisk:before{content:"\F069"}.fa-exclamation-circle:before{content:"\F06A"}.fa-gift:before{content:"\F06B"}.fa-leaf:before{content:"\F06C"}.fa-fire:before{content:"\F06D"}.fa-eye:before{content:"\F06E"}.fa-eye-slash:before{content:"\F070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\F071"}.fa-plane:before{content:"\F072"}.fa-calendar:before{content:"\F073"}.fa-random:before{content:"\F074"}.fa-comment:before{content:"\F075"}.fa-magnet:before{content:"\F076"}.fa-chevron-up:before{content:"\F077"}.fa-chevron-down:before{content:"\F078"}.fa-retweet:before{content:"\F079"}.fa-shopping-cart:before{content:"\F07A"}.fa-folder:before{content:"\F07B"}.fa-folder-open:before{content:"\F07C"}.fa-arrows-v:before{content:"\F07D"}.fa-arrows-h:before{content:"\F07E"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\F080"}.fa-twitter-square:before{content:"\F081"}.fa-facebook-square:before{content:"\F082"}.fa-camera-retro:before{content:"\F083"}.fa-key:before{content:"\F084"}.fa-gears:before,.fa-cogs:before{content:"\F085"}.fa-comments:before{content:"\F086"}.fa-thumbs-o-up:before{content:"\F087"}.fa-thumbs-o-down:before{content:"\F088"}.fa-star-half:before{content:"\F089"}.fa-heart-o:before{content:"\F08A"}.fa-sign-out:before{content:"\F08B"}.fa-linkedin-square:before{content:"\F08C"}.fa-thumb-tack:before{content:"\F08D"}.fa-external-link:before{content:"\F08E"}.fa-sign-in:before{content:"\F090"}.fa-trophy:before{content:"\F091"}.fa-github-square:before{content:"\F092"}.fa-upload:before{content:"\F093"}.fa-lemon-o:before{content:"\F094"}.fa-phone:before{content:"\F095"}.fa-square-o:before{content:"\F096"}.fa-bookmark-o:before{content:"\F097"}.fa-phone-square:before{content:"\F098"}.fa-twitter:before{content:"\F099"}.fa-facebook-f:before,.fa-facebook:before{content:"\F09A"}.fa-github:before{content:"\F09B"}.fa-unlock:before{content:"\F09C"}.fa-credit-card:before{content:"\F09D"}.fa-feed:before,.fa-rss:before{content:"\F09E"}.fa-hdd-o:before{content:"\F0A0"}.fa-bullhorn:before{content:"\F0A1"}.fa-bell:before{content:"\F0F3"}.fa-certificate:before{content:"\F0A3"}.fa-hand-o-right:before{content:"\F0A4"}.fa-hand-o-left:before{content:"\F0A5"}.fa-hand-o-up:before{content:"\F0A6"}.fa-hand-o-down:before{content:"\F0A7"}.fa-arrow-circle-left:before{content:"\F0A8"}.fa-arrow-circle-right:before{content:"\F0A9"}.fa-arrow-circle-up:before{content:"\F0AA"}.fa-arrow-circle-down:before{content:"\F0AB"}.fa-globe:before{content:"\F0AC"}.fa-wrench:before{content:"\F0AD"}.fa-tasks:before{content:"\F0AE"}.fa-filter:before{content:"\F0B0"}.fa-briefcase:before{content:"\F0B1"}.fa-arrows-alt:before{content:"\F0B2"}.fa-group:before,.fa-users:before{content:"\F0C0"}.fa-chain:before,.fa-link:before{content:"\F0C1"}.fa-cloud:before{content:"\F0C2"}.fa-flask:before{content:"\F0C3"}.fa-cut:before,.fa-scissors:before{content:"\F0C4"}.fa-copy:before,.fa-files-o:before{content:"\F0C5"}.fa-paperclip:before{content:"\F0C6"}.fa-save:before,.fa-floppy-o:before{content:"\F0C7"}.fa-square:before{content:"\F0C8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\F0C9"}.fa-list-ul:before{content:"\F0CA"}.fa-list-ol:before{content:"\F0CB"}.fa-strikethrough:before{content:"\F0CC"}.fa-underline:before{content:"\F0CD"}.fa-table:before{content:"\F0CE"}.fa-magic:before{content:"\F0D0"}.fa-truck:before{content:"\F0D1"}.fa-pinterest:before{content:"\F0D2"}.fa-pinterest-square:before{content:"\F0D3"}.fa-google-plus-square:before{content:"\F0D4"}.fa-google-plus:before{content:"\F0D5"}.fa-money:before{content:"\F0D6"}.fa-caret-down:before{content:"\F0D7"}.fa-caret-up:before{content:"\F0D8"}.fa-caret-left:before{content:"\F0D9"}.fa-caret-right:before{content:"\F0DA"}.fa-columns:before{content:"\F0DB"}.fa-unsorted:before,.fa-sort:before{content:"\F0DC"}.fa-sort-down:before,.fa-sort-desc:before{content:"\F0DD"}.fa-sort-up:before,.fa-sort-asc:before{content:"\F0DE"}.fa-envelope:before{content:"\F0E0"}.fa-linkedin:before{content:"\F0E1"}.fa-rotate-left:before,.fa-undo:before{content:"\F0E2"}.fa-legal:before,.fa-gavel:before{content:"\F0E3"}.fa-dashboard:before,.fa-tachometer:before{content:"\F0E4"}.fa-comment-o:before{content:"\F0E5"}.fa-comments-o:before{content:"\F0E6"}.fa-flash:before,.fa-bolt:before{content:"\F0E7"}.fa-sitemap:before{content:"\F0E8"}.fa-umbrella:before{content:"\F0E9"}.fa-paste:before,.fa-clipboard:before{content:"\F0EA"}.fa-lightbulb-o:before{content:"\F0EB"}.fa-exchange:before{content:"\F0EC"}.fa-cloud-download:before{content:"\F0ED"}.fa-cloud-upload:before{content:"\F0EE"}.fa-user-md:before{content:"\F0F0"}.fa-stethoscope:before{content:"\F0F1"}.fa-suitcase:before{content:"\F0F2"}.fa-bell-o:before{content:"\F0A2"}.fa-coffee:before{content:"\F0F4"}.fa-cutlery:before{content:"\F0F5"}.fa-file-text-o:before{content:"\F0F6"}.fa-building-o:before{content:"\F0F7"}.fa-hospital-o:before{content:"\F0F8"}.fa-ambulance:before{content:"\F0F9"}.fa-medkit:before{content:"\F0FA"}.fa-fighter-jet:before{content:"\F0FB"}.fa-beer:before{content:"\F0FC"}.fa-h-square:before{content:"\F0FD"}.fa-plus-square:before{content:"\F0FE"}.fa-angle-double-left:before{content:"\F100"}.fa-angle-double-right:before{content:"\F101"}.fa-angle-double-up:before{content:"\F102"}.fa-angle-double-down:before{content:"\F103"}.fa-angle-left:before{content:"\F104"}.fa-angle-right:before{content:"\F105"}.fa-angle-up:before{content:"\F106"}.fa-angle-down:before{content:"\F107"}.fa-desktop:before{content:"\F108"}.fa-laptop:before{content:"\F109"}.fa-tablet:before{content:"\F10A"}.fa-mobile-phone:before,.fa-mobile:before{content:"\F10B"}.fa-circle-o:before{content:"\F10C"}.fa-quote-left:before{content:"\F10D"}.fa-quote-right:before{content:"\F10E"}.fa-spinner:before{content:"\F110"}.fa-circle:before{content:"\F111"}.fa-mail-reply:before,.fa-reply:before{content:"\F112"}.fa-github-alt:before{content:"\F113"}.fa-folder-o:before{content:"\F114"}.fa-folder-open-o:before{content:"\F115"}.fa-smile-o:before{content:"\F118"}.fa-frown-o:before{content:"\F119"}.fa-meh-o:before{content:"\F11A"}.fa-gamepad:before{content:"\F11B"}.fa-keyboard-o:before{content:"\F11C"}.fa-flag-o:before{content:"\F11D"}.fa-flag-checkered:before{content:"\F11E"}.fa-terminal:before{content:"\F120"}.fa-code:before{content:"\F121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\F122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\F123"}.fa-location-arrow:before{content:"\F124"}.fa-crop:before{content:"\F125"}.fa-code-fork:before{content:"\F126"}.fa-unlink:before,.fa-chain-broken:before{content:"\F127"}.fa-question:before{content:"\F128"}.fa-info:before{content:"\F129"}.fa-exclamation:before{content:"\F12A"}.fa-superscript:before{content:"\F12B"}.fa-subscript:before{content:"\F12C"}.fa-eraser:before{content:"\F12D"}.fa-puzzle-piece:before{content:"\F12E"}.fa-microphone:before{content:"\F130"}.fa-microphone-slash:before{content:"\F131"}.fa-shield:before{content:"\F132"}.fa-calendar-o:before{content:"\F133"}.fa-fire-extinguisher:before{content:"\F134"}.fa-rocket:before{content:"\F135"}.fa-maxcdn:before{content:"\F136"}.fa-chevron-circle-left:before{content:"\F137"}.fa-chevron-circle-right:before{content:"\F138"}.fa-chevron-circle-up:before{content:"\F139"}.fa-chevron-circle-down:before{content:"\F13A"}.fa-html5:before{content:"\F13B"}.fa-css3:before{content:"\F13C"}.fa-anchor:before{content:"\F13D"}.fa-unlock-alt:before{content:"\F13E"}.fa-bullseye:before{content:"\F140"}.fa-ellipsis-h:before{content:"\F141"}.fa-ellipsis-v:before{content:"\F142"}.fa-rss-square:before{content:"\F143"}.fa-play-circle:before{content:"\F144"}.fa-ticket:before{content:"\F145"}.fa-minus-square:before{content:"\F146"}.fa-minus-square-o:before{content:"\F147"}.fa-level-up:before{content:"\F148"}.fa-level-down:before{content:"\F149"}.fa-check-square:before{content:"\F14A"}.fa-pencil-square:before{content:"\F14B"}.fa-external-link-square:before{content:"\F14C"}.fa-share-square:before{content:"\F14D"}.fa-compass:before{content:"\F14E"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\F150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\F151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\F152"}.fa-euro:before,.fa-eur:before{content:"\F153"}.fa-gbp:before{content:"\F154"}.fa-dollar:before,.fa-usd:before{content:"\F155"}.fa-rupee:before,.fa-inr:before{content:"\F156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\F157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\F158"}.fa-won:before,.fa-krw:before{content:"\F159"}.fa-bitcoin:before,.fa-btc:before{content:"\F15A"}.fa-file:before{content:"\F15B"}.fa-file-text:before{content:"\F15C"}.fa-sort-alpha-asc:before{content:"\F15D"}.fa-sort-alpha-desc:before{content:"\F15E"}.fa-sort-amount-asc:before{content:"\F160"}.fa-sort-amount-desc:before{content:"\F161"}.fa-sort-numeric-asc:before{content:"\F162"}.fa-sort-numeric-desc:before{content:"\F163"}.fa-thumbs-up:before{content:"\F164"}.fa-thumbs-down:before{content:"\F165"}.fa-youtube-square:before{content:"\F166"}.fa-youtube:before{content:"\F167"}.fa-xing:before{content:"\F168"}.fa-xing-square:before{content:"\F169"}.fa-youtube-play:before{content:"\F16A"}.fa-dropbox:before{content:"\F16B"}.fa-stack-overflow:before{content:"\F16C"}.fa-instagram:before{content:"\F16D"}.fa-flickr:before{content:"\F16E"}.fa-adn:before{content:"\F170"}.fa-bitbucket:before{content:"\F171"}.fa-bitbucket-square:before{content:"\F172"}.fa-tumblr:before{content:"\F173"}.fa-tumblr-square:before{content:"\F174"}.fa-long-arrow-down:before{content:"\F175"}.fa-long-arrow-up:before{content:"\F176"}.fa-long-arrow-left:before{content:"\F177"}.fa-long-arrow-right:before{content:"\F178"}.fa-apple:before{content:"\F179"}.fa-windows:before{content:"\F17A"}.fa-android:before{content:"\F17B"}.fa-linux:before{content:"\F17C"}.fa-dribbble:before{content:"\F17D"}.fa-skype:before{content:"\F17E"}.fa-foursquare:before{content:"\F180"}.fa-trello:before{content:"\F181"}.fa-female:before{content:"\F182"}.fa-male:before{content:"\F183"}.fa-gittip:before,.fa-gratipay:before{content:"\F184"}.fa-sun-o:before{content:"\F185"}.fa-moon-o:before{content:"\F186"}.fa-archive:before{content:"\F187"}.fa-bug:before{content:"\F188"}.fa-vk:before{content:"\F189"}.fa-weibo:before{content:"\F18A"}.fa-renren:before{content:"\F18B"}.fa-pagelines:before{content:"\F18C"}.fa-stack-exchange:before{content:"\F18D"}.fa-arrow-circle-o-right:before{content:"\F18E"}.fa-arrow-circle-o-left:before{content:"\F190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\F191"}.fa-dot-circle-o:before{content:"\F192"}.fa-wheelchair:before{content:"\F193"}.fa-vimeo-square:before{content:"\F194"}.fa-turkish-lira:before,.fa-try:before{content:"\F195"}.fa-plus-square-o:before{content:"\F196"}.fa-space-shuttle:before{content:"\F197"}.fa-slack:before{content:"\F198"}.fa-envelope-square:before{content:"\F199"}.fa-wordpress:before{content:"\F19A"}.fa-openid:before{content:"\F19B"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\F19C"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\F19D"}.fa-yahoo:before{content:"\F19E"}.fa-google:before{content:"\F1A0"}.fa-reddit:before{content:"\F1A1"}.fa-reddit-square:before{content:"\F1A2"}.fa-stumbleupon-circle:before{content:"\F1A3"}.fa-stumbleupon:before{content:"\F1A4"}.fa-delicious:before{content:"\F1A5"}.fa-digg:before{content:"\F1A6"}.fa-pied-piper-pp:before{content:"\F1A7"}.fa-pied-piper-alt:before{content:"\F1A8"}.fa-drupal:before{content:"\F1A9"}.fa-joomla:before{content:"\F1AA"}.fa-language:before{content:"\F1AB"}.fa-fax:before{content:"\F1AC"}.fa-building:before{content:"\F1AD"}.fa-child:before{content:"\F1AE"}.fa-paw:before{content:"\F1B0"}.fa-spoon:before{content:"\F1B1"}.fa-cube:before{content:"\F1B2"}.fa-cubes:before{content:"\F1B3"}.fa-behance:before{content:"\F1B4"}.fa-behance-square:before{content:"\F1B5"}.fa-steam:before{content:"\F1B6"}.fa-steam-square:before{content:"\F1B7"}.fa-recycle:before{content:"\F1B8"}.fa-automobile:before,.fa-car:before{content:"\F1B9"}.fa-cab:before,.fa-taxi:before{content:"\F1BA"}.fa-tree:before{content:"\F1BB"}.fa-spotify:before{content:"\F1BC"}.fa-deviantart:before{content:"\F1BD"}.fa-soundcloud:before{content:"\F1BE"}.fa-database:before{content:"\F1C0"}.fa-file-pdf-o:before{content:"\F1C1"}.fa-file-word-o:before{content:"\F1C2"}.fa-file-excel-o:before{content:"\F1C3"}.fa-file-powerpoint-o:before{content:"\F1C4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\F1C5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\F1C6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\F1C7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\F1C8"}.fa-file-code-o:before{content:"\F1C9"}.fa-vine:before{content:"\F1CA"}.fa-codepen:before{content:"\F1CB"}.fa-jsfiddle:before{content:"\F1CC"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\F1CD"}.fa-circle-o-notch:before{content:"\F1CE"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\F1D0"}.fa-ge:before,.fa-empire:before{content:"\F1D1"}.fa-git-square:before{content:"\F1D2"}.fa-git:before{content:"\F1D3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\F1D4"}.fa-tencent-weibo:before{content:"\F1D5"}.fa-qq:before{content:"\F1D6"}.fa-wechat:before,.fa-weixin:before{content:"\F1D7"}.fa-send:before,.fa-paper-plane:before{content:"\F1D8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\F1D9"}.fa-history:before{content:"\F1DA"}.fa-circle-thin:before{content:"\F1DB"}.fa-header:before{content:"\F1DC"}.fa-paragraph:before{content:"\F1DD"}.fa-sliders:before{content:"\F1DE"}.fa-share-alt:before{content:"\F1E0"}.fa-share-alt-square:before{content:"\F1E1"}.fa-bomb:before{content:"\F1E2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\F1E3"}.fa-tty:before{content:"\F1E4"}.fa-binoculars:before{content:"\F1E5"}.fa-plug:before{content:"\F1E6"}.fa-slideshare:before{content:"\F1E7"}.fa-twitch:before{content:"\F1E8"}.fa-yelp:before{content:"\F1E9"}.fa-newspaper-o:before{content:"\F1EA"}.fa-wifi:before{content:"\F1EB"}.fa-calculator:before{content:"\F1EC"}.fa-paypal:before{content:"\F1ED"}.fa-google-wallet:before{content:"\F1EE"}.fa-cc-visa:before{content:"\F1F0"}.fa-cc-mastercard:before{content:"\F1F1"}.fa-cc-discover:before{content:"\F1F2"}.fa-cc-amex:before{content:"\F1F3"}.fa-cc-paypal:before{content:"\F1F4"}.fa-cc-stripe:before{content:"\F1F5"}.fa-bell-slash:before{content:"\F1F6"}.fa-bell-slash-o:before{content:"\F1F7"}.fa-trash:before{content:"\F1F8"}.fa-copyright:before{content:"\F1F9"}.fa-at:before{content:"\F1FA"}.fa-eyedropper:before{content:"\F1FB"}.fa-paint-brush:before{content:"\F1FC"}.fa-birthday-cake:before{content:"\F1FD"}.fa-area-chart:before{content:"\F1FE"}.fa-pie-chart:before{content:"\F200"}.fa-line-chart:before{content:"\F201"}.fa-lastfm:before{content:"\F202"}.fa-lastfm-square:before{content:"\F203"}.fa-toggle-off:before{content:"\F204"}.fa-toggle-on:before{content:"\F205"}.fa-bicycle:before{content:"\F206"}.fa-bus:before{content:"\F207"}.fa-ioxhost:before{content:"\F208"}.fa-angellist:before{content:"\F209"}.fa-cc:before{content:"\F20A"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\F20B"}.fa-meanpath:before{content:"\F20C"}.fa-buysellads:before{content:"\F20D"}.fa-connectdevelop:before{content:"\F20E"}.fa-dashcube:before{content:"\F210"}.fa-forumbee:before{content:"\F211"}.fa-leanpub:before{content:"\F212"}.fa-sellsy:before{content:"\F213"}.fa-shirtsinbulk:before{content:"\F214"}.fa-simplybuilt:before{content:"\F215"}.fa-skyatlas:before{content:"\F216"}.fa-cart-plus:before{content:"\F217"}.fa-cart-arrow-down:before{content:"\F218"}.fa-diamond:before{content:"\F219"}.fa-ship:before{content:"\F21A"}.fa-user-secret:before{content:"\F21B"}.fa-motorcycle:before{content:"\F21C"}.fa-street-view:before{content:"\F21D"}.fa-heartbeat:before{content:"\F21E"}.fa-venus:before{content:"\F221"}.fa-mars:before{content:"\F222"}.fa-mercury:before{content:"\F223"}.fa-intersex:before,.fa-transgender:before{content:"\F224"}.fa-transgender-alt:before{content:"\F225"}.fa-venus-double:before{content:"\F226"}.fa-mars-double:before{content:"\F227"}.fa-venus-mars:before{content:"\F228"}.fa-mars-stroke:before{content:"\F229"}.fa-mars-stroke-v:before{content:"\F22A"}.fa-mars-stroke-h:before{content:"\F22B"}.fa-neuter:before{content:"\F22C"}.fa-genderless:before{content:"\F22D"}.fa-facebook-official:before{content:"\F230"}.fa-pinterest-p:before{content:"\F231"}.fa-whatsapp:before{content:"\F232"}.fa-server:before{content:"\F233"}.fa-user-plus:before{content:"\F234"}.fa-user-times:before{content:"\F235"}.fa-hotel:before,.fa-bed:before{content:"\F236"}.fa-viacoin:before{content:"\F237"}.fa-train:before{content:"\F238"}.fa-subway:before{content:"\F239"}.fa-medium:before{content:"\F23A"}.fa-yc:before,.fa-y-combinator:before{content:"\F23B"}.fa-optin-monster:before{content:"\F23C"}.fa-opencart:before{content:"\F23D"}.fa-expeditedssl:before{content:"\F23E"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\F240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\F241"}.fa-battery-2:before,.fa-battery-half:before{content:"\F242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\F243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\F244"}.fa-mouse-pointer:before{content:"\F245"}.fa-i-cursor:before{content:"\F246"}.fa-object-group:before{content:"\F247"}.fa-object-ungroup:before{content:"\F248"}.fa-sticky-note:before{content:"\F249"}.fa-sticky-note-o:before{content:"\F24A"}.fa-cc-jcb:before{content:"\F24B"}.fa-cc-diners-club:before{content:"\F24C"}.fa-clone:before{content:"\F24D"}.fa-balance-scale:before{content:"\F24E"}.fa-hourglass-o:before{content:"\F250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\F251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\F252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\F253"}.fa-hourglass:before{content:"\F254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\F255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\F256"}.fa-hand-scissors-o:before{content:"\F257"}.fa-hand-lizard-o:before{content:"\F258"}.fa-hand-spock-o:before{content:"\F259"}.fa-hand-pointer-o:before{content:"\F25A"}.fa-hand-peace-o:before{content:"\F25B"}.fa-trademark:before{content:"\F25C"}.fa-registered:before{content:"\F25D"}.fa-creative-commons:before{content:"\F25E"}.fa-gg:before{content:"\F260"}.fa-gg-circle:before{content:"\F261"}.fa-tripadvisor:before{content:"\F262"}.fa-odnoklassniki:before{content:"\F263"}.fa-odnoklassniki-square:before{content:"\F264"}.fa-get-pocket:before{content:"\F265"}.fa-wikipedia-w:before{content:"\F266"}.fa-safari:before{content:"\F267"}.fa-chrome:before{content:"\F268"}.fa-firefox:before{content:"\F269"}.fa-opera:before{content:"\F26A"}.fa-internet-explorer:before{content:"\F26B"}.fa-tv:before,.fa-television:before{content:"\F26C"}.fa-contao:before{content:"\F26D"}.fa-500px:before{content:"\F26E"}.fa-amazon:before{content:"\F270"}.fa-calendar-plus-o:before{content:"\F271"}.fa-calendar-minus-o:before{content:"\F272"}.fa-calendar-times-o:before{content:"\F273"}.fa-calendar-check-o:before{content:"\F274"}.fa-industry:before{content:"\F275"}.fa-map-pin:before{content:"\F276"}.fa-map-signs:before{content:"\F277"}.fa-map-o:before{content:"\F278"}.fa-map:before{content:"\F279"}.fa-commenting:before{content:"\F27A"}.fa-commenting-o:before{content:"\F27B"}.fa-houzz:before{content:"\F27C"}.fa-vimeo:before{content:"\F27D"}.fa-black-tie:before{content:"\F27E"}.fa-fonticons:before{content:"\F280"}.fa-reddit-alien:before{content:"\F281"}.fa-edge:before{content:"\F282"}.fa-credit-card-alt:before{content:"\F283"}.fa-codiepie:before{content:"\F284"}.fa-modx:before{content:"\F285"}.fa-fort-awesome:before{content:"\F286"}.fa-usb:before{content:"\F287"}.fa-product-hunt:before{content:"\F288"}.fa-mixcloud:before{content:"\F289"}.fa-scribd:before{content:"\F28A"}.fa-pause-circle:before{content:"\F28B"}.fa-pause-circle-o:before{content:"\F28C"}.fa-stop-circle:before{content:"\F28D"}.fa-stop-circle-o:before{content:"\F28E"}.fa-shopping-bag:before{content:"\F290"}.fa-shopping-basket:before{content:"\F291"}.fa-hashtag:before{content:"\F292"}.fa-bluetooth:before{content:"\F293"}.fa-bluetooth-b:before{content:"\F294"}.fa-percent:before{content:"\F295"}.fa-gitlab:before{content:"\F296"}.fa-wpbeginner:before{content:"\F297"}.fa-wpforms:before{content:"\F298"}.fa-envira:before{content:"\F299"}.fa-universal-access:before{content:"\F29A"}.fa-wheelchair-alt:before{content:"\F29B"}.fa-question-circle-o:before{content:"\F29C"}.fa-blind:before{content:"\F29D"}.fa-audio-description:before{content:"\F29E"}.fa-volume-control-phone:before{content:"\F2A0"}.fa-braille:before{content:"\F2A1"}.fa-assistive-listening-systems:before{content:"\F2A2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\F2A3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\F2A4"}.fa-glide:before{content:"\F2A5"}.fa-glide-g:before{content:"\F2A6"}.fa-signing:before,.fa-sign-language:before{content:"\F2A7"}.fa-low-vision:before{content:"\F2A8"}.fa-viadeo:before{content:"\F2A9"}.fa-viadeo-square:before{content:"\F2AA"}.fa-snapchat:before{content:"\F2AB"}.fa-snapchat-ghost:before{content:"\F2AC"}.fa-snapchat-square:before{content:"\F2AD"}.fa-pied-piper:before{content:"\F2AE"}.fa-first-order:before{content:"\F2B0"}.fa-yoast:before{content:"\F2B1"}.fa-themeisle:before{content:"\F2B2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\F2B3"}.fa-fa:before,.fa-font-awesome:before{content:"\F2B4"}.fa-handshake-o:before{content:"\F2B5"}.fa-envelope-open:before{content:"\F2B6"}.fa-envelope-open-o:before{content:"\F2B7"}.fa-linode:before{content:"\F2B8"}.fa-address-book:before{content:"\F2B9"}.fa-address-book-o:before{content:"\F2BA"}.fa-vcard:before,.fa-address-card:before{content:"\F2BB"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\F2BC"}.fa-user-circle:before{content:"\F2BD"}.fa-user-circle-o:before{content:"\F2BE"}.fa-user-o:before{content:"\F2C0"}.fa-id-badge:before{content:"\F2C1"}.fa-drivers-license:before,.fa-id-card:before{content:"\F2C2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\F2C3"}.fa-quora:before{content:"\F2C4"}.fa-free-code-camp:before{content:"\F2C5"}.fa-telegram:before{content:"\F2C6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\F2C7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\F2C8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\F2C9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\F2CA"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\F2CB"}.fa-shower:before{content:"\F2CC"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\F2CD"}.fa-podcast:before{content:"\F2CE"}.fa-window-maximize:before{content:"\F2D0"}.fa-window-minimize:before{content:"\F2D1"}.fa-window-restore:before{content:"\F2D2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\F2D3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\F2D4"}.fa-bandcamp:before{content:"\F2D5"}.fa-grav:before{content:"\F2D6"}.fa-etsy:before{content:"\F2D7"}.fa-imdb:before{content:"\F2D8"}.fa-ravelry:before{content:"\F2D9"}.fa-eercast:before{content:"\F2DA"}.fa-microchip:before{content:"\F2DB"}.fa-snowflake-o:before{content:"\F2DC"}.fa-superpowers:before{content:"\F2DD"}.fa-wpexplorer:before{content:"\F2DE"}.fa-meetup:before{content:"\F2E0"}.sr-only,.table.table-list tr:not(:hover) td.table-list-options>.dropdown:not(.show) button:not(:focus):not(:active),.table.table-list tr:not(:hover) td.table-list-options>button:not(:focus):not(:active){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.toaster-icon{position:absolute;left:0.0em;top:0.0em;font-weight:normal;color:#ffffff}.toast-title{font-weight:bold}.toast-message{-ms-word-wrap:break-word;word-wrap:break-word}.toast-message a,.toast-message label{color:#ffffff}.toast-message a:hover{color:#cccccc;text-decoration:none}.toast-close-button{position:relative;right:-0.3em;top:-0.3em;float:right;font-size:20px;font-weight:bold;color:#ffffff;-webkit-text-shadow:0 1px 0 #ffffff;text-shadow:0 1px 0 #ffffff;opacity:0.8;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80);z-index:999}.toast-close-button:hover,.toast-close-button:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.4;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40)}button.toast-close-button{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.toast-content{display:inline-block;width:95%}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-center{top:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-center{bottom:12px}.toast-bottom-left{bottom:12px;left:12px}.toast-center{top:45%}#toast-container{position:fixed;z-index:999999;pointer-events:auto}#toast-container.toast-center,#toast-container.toast-top-center,#toast-container.toast-bottom-center{width:100%;pointer-events:none;left:0;right:0}#toast-container.toast-center>div,#toast-container.toast-top-center>div,#toast-container.toast-bottom-center>div{margin:6px auto;pointer-events:auto}#toast-container.toast-center>button,#toast-container.toast-top-center>button,#toast-container.toast-bottom-center>button{pointer-events:auto}#toast-container *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#toast-container>div{margin:0 0 6px;padding:15px 15px 15px 50px;width:300px;-moz-border-radius:3px 3px 3px 3px;-webkit-border-radius:3px 3px 3px 3px;border-radius:3px 3px 3px 3px;background-position:15px center;background-repeat:no-repeat;-moz-box-shadow:0 0 12px #999999;-webkit-box-shadow:0 0 12px #999999;box-shadow:0 0 12px #999999;color:#ffffff;opacity:0.8;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80)}#toast-container>:hover{-moz-box-shadow:0 0 12px #000000;-webkit-box-shadow:0 0 12px #000000;box-shadow:0 0 12px #000000;opacity:1;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);filter:alpha(opacity=100);cursor:pointer}.icon-success{width:35px;height:100%;display:inline-block;background-repeat:no-repeat;background-position:100% 50%;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==") !important}.icon-error{width:35px;height:100%;display:inline-block;background-repeat:no-repeat;background-position:100% 50%;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=") !important}.icon-info{width:35px;height:100%;display:inline-block;background-repeat:no-repeat;background-position:100% 50%;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=") !important}.icon-wait{width:35px;height:100%;display:inline-block;background-repeat:no-repeat;background-position:100% 50%;background-image:url("data:image/gif;base64,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") !important}.icon-warning{width:35px;height:100%;display:inline-block;background-repeat:no-repeat;background-position:100% 50%;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=") !important}#toast-container.toast-top-full-width>div,#toast-container.toast-bottom-full-width>div{width:96%;margin:auto}.toast{position:relative;background-color:#030303}.toast-success{background-color:#51a351}.toast-error{background-color:#bd362f}.toast-info{background-color:#2f96b4}.toast-wait{background-color:#2f96b4}.toast-warning{background-color:#f89406}@media all and (max-width: 240px){#toast-container>div{padding:8px 8px 8px 50px;width:11em}#toast-container .toast-close-button{right:-0.1em;top:-0.2em}.toast-content{width:94%}}@media all and (min-width: 241px) and (max-width: 480px){#toast-container>div{padding:8px 8px 8px 50px;width:18em}#toast-container .toast-close-button{right:-0.1em;top:-0.2em}.toast-content{width:94%}}@media all and (min-width: 481px) and (max-width: 768px){#toast-container>div{padding:15px 15px 15px 50px;width:25em}}.swal2-popup.swal2-toast{flex-direction:row;align-items:center;width:auto;padding:.625em;overflow-y:hidden;background:#fff;box-shadow:0 0 0.625em #d9d9d9}.swal2-popup.swal2-toast .swal2-header{flex-direction:row;padding:0}.swal2-popup.swal2-toast .swal2-title{flex-grow:1;justify-content:flex-start;margin:0 0.6em;font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:0.5em 0 0;padding:0.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{position:static;width:.8em;height:.8em;line-height:.8}.swal2-popup.swal2-toast .swal2-content{justify-content:flex-start;padding:0;font-size:1em}.swal2-popup.swal2-toast .swal2-icon{width:2em;min-width:2em;height:2em;margin:0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:bold}@media all and (-ms-high-contrast: none), (-ms-high-contrast: active){.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{font-size:.25em}}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line']{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='left']{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='right']{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{flex-basis:auto !important;width:auto;height:auto;margin:0 .3125em;padding:0}.swal2-popup.swal2-toast .swal2-styled{margin:.125em .3125em;padding:.3125em .625em;font-size:1em}.swal2-popup.swal2-toast .swal2-styled:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(100,150,200,0.5)}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line']{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'][class$='left']{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'][class$='right']{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line']{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'][class$='tip']{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'][class$='long']{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{animation:swal2-toast-show 0.5s}.swal2-popup.swal2-toast.swal2-hide{animation:swal2-toast-hide 0.1s forwards}.swal2-container{display:flex;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;flex-direction:row;align-items:center;justify-content:center;padding:.625em;overflow-x:hidden;transition:background-color 0.1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,0.4)}.swal2-container.swal2-backdrop-hide{background:transparent !important}.swal2-container.swal2-top{align-items:flex-start}.swal2-container.swal2-top-start,.swal2-container.swal2-top-left{align-items:flex-start;justify-content:flex-start}.swal2-container.swal2-top-end,.swal2-container.swal2-top-right{align-items:flex-start;justify-content:flex-end}.swal2-container.swal2-center{align-items:center}.swal2-container.swal2-center-start,.swal2-container.swal2-center-left{align-items:center;justify-content:flex-start}.swal2-container.swal2-center-end,.swal2-container.swal2-center-right{align-items:center;justify-content:flex-end}.swal2-container.swal2-bottom{align-items:flex-end}.swal2-container.swal2-bottom-start,.swal2-container.swal2-bottom-left{align-items:flex-end;justify-content:flex-start}.swal2-container.swal2-bottom-end,.swal2-container.swal2-bottom-right{align-items:flex-end;justify-content:flex-end}.swal2-container.swal2-bottom>:first-child,.swal2-container.swal2-bottom-start>:first-child,.swal2-container.swal2-bottom-left>:first-child,.swal2-container.swal2-bottom-end>:first-child,.swal2-container.swal2-bottom-right>:first-child{margin-top:auto}.swal2-container.swal2-grow-fullscreen>.swal2-modal{display:flex !important;flex:1;align-self:stretch;justify-content:center}.swal2-container.swal2-grow-row>.swal2-modal{display:flex !important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-grow-column{flex:1;flex-direction:column}.swal2-container.swal2-grow-column.swal2-top,.swal2-container.swal2-grow-column.swal2-center,.swal2-container.swal2-grow-column.swal2-bottom{align-items:center}.swal2-container.swal2-grow-column.swal2-top-start,.swal2-container.swal2-grow-column.swal2-center-start,.swal2-container.swal2-grow-column.swal2-bottom-start,.swal2-container.swal2-grow-column.swal2-top-left,.swal2-container.swal2-grow-column.swal2-center-left,.swal2-container.swal2-grow-column.swal2-bottom-left{align-items:flex-start}.swal2-container.swal2-grow-column.swal2-top-end,.swal2-container.swal2-grow-column.swal2-center-end,.swal2-container.swal2-grow-column.swal2-bottom-end,.swal2-container.swal2-grow-column.swal2-top-right,.swal2-container.swal2-grow-column.swal2-center-right,.swal2-container.swal2-grow-column.swal2-bottom-right{align-items:flex-end}.swal2-container.swal2-grow-column>.swal2-modal{display:flex !important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-no-transition{transition:none !important}.swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen)>.swal2-modal{margin:auto}@media all and (-ms-high-contrast: none), (-ms-high-contrast: active){.swal2-container .swal2-modal{margin:0 !important}}.swal2-popup{display:none;position:relative;box-sizing:border-box;flex-direction:column;justify-content:center;width:32em;max-width:100%;padding:1.25em;border:none;border-radius:5px;background:#fff;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:none}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-header{display:flex;flex-direction:column;align-items:center;padding:0 1.8em}.swal2-title{position:relative;max-width:100%;margin:0 0 0.4em;padding:0;color:#595959;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:100%;margin:1.25em auto 0;padding:0 1.6em}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,0.1), rgba(0,0,0,0.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,0.2), rgba(0,0,0,0.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 transparent #2778c4 transparent}.swal2-styled{margin:.3125em;padding:0.625em 1.1em;box-shadow:none;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#2778c4;color:#fff;font-size:1.0625em}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#d14529;color:#fff;font-size:1.0625em}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#757575;color:#fff;font-size:1.0625em}.swal2-styled:focus{outline:none;box-shadow:0 0 0 3px rgba(100,150,200,0.5)}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1.25em 0 0;padding:1em 0 0;border-top:1px solid #eee;color:#545454;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;height:.25em;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,0.2)}.swal2-image{max-width:100%;margin:1.25em auto}.swal2-close{position:absolute;z-index:2;top:0;right:0;align-items:center;justify-content:center;width:1.2em;height:1.2em;padding:0;overflow:hidden;transition:color 0.1s ease-out;border:none;border-radius:5px;background:rgba(0,0,0,0);color:#ccc;font-family:serif;font-size:2.5em;line-height:1.2;cursor:pointer}.swal2-close:hover{transform:none;background:rgba(0,0,0,0);color:#f27474}.swal2-close:focus{outline:none;box-shadow:inset 0 0 0 3px rgba(100,150,200,0.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-content{z-index:1;justify-content:center;margin:0;padding:0 1.6em;color:#545454;font-size:1.125em;font-weight:normal;line-height:normal;text-align:center;word-wrap:break-word}.swal2-input,.swal2-file,.swal2-textarea,.swal2-select,.swal2-radio,.swal2-checkbox{margin:1em auto}.swal2-input,.swal2-file,.swal2-textarea{box-sizing:border-box;width:100%;transition:border-color 0.3s,box-shadow 0.3s;border:1px solid #d9d9d9;border-radius:.1875em;background:inherit;box-shadow:inset 0 1px 1px rgba(0,0,0,0.06);color:inherit;font-size:1.125em}.swal2-input.swal2-inputerror,.swal2-file.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474 !important;box-shadow:0 0 2px #f27474 !important}.swal2-input:focus,.swal2-file:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:none;box-shadow:0 0 0 3px rgba(100,150,200,0.5)}.swal2-input::placeholder,.swal2-file::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em auto;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 0.75em}.swal2-input[type='number']{max-width:10em}.swal2-file{background:inherit;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:inherit;color:inherit;font-size:1.125em}.swal2-radio,.swal2-checkbox{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-radio label,.swal2-checkbox label{margin:0 .6em;font-size:1.125em}.swal2-radio input,.swal2-checkbox input{margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto}.swal2-validation-message{display:none;align-items:center;justify-content:center;margin:0 -2.7em;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:'!';display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:1.25em auto 1.875em;border:0.25em solid transparent;border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^='swal2-x-mark-line']{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='left']{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='right']{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^='swal2-success-circular-line']{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='left']{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='right']{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:0.25em solid rgba(165,220,134,0.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^='swal2-success-line']{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^='swal2-success-line'][class$='tip']{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^='swal2-success-line'][class$='long']{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:0 0 1.25em;padding:0;background:inherit;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^='swal2']{-webkit-tap-highlight-color:transparent}.swal2-show{animation:swal2-show 0.3s}.swal2-hide{animation:swal2-hide 0.15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{right:auto;left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@supports (-ms-accelerator: true){.swal2-range input{width:100% !important}.swal2-range output{display:none}}@media all and (-ms-high-contrast: none), (-ms-high-contrast: active){.swal2-range input{width:100% !important}.swal2-range output{display:none}}@keyframes swal2-toast-show{0%{transform:translateY(-0.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(0.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0deg)}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-show{0%{transform:scale(0.7)}45%{transform:scale(1.05)}80%{transform:scale(0.95)}100%{transform:scale(1)}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(0.5);opacity:0}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(0.4);opacity:0}50%{margin-top:1.625em;transform:scale(0.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0deg);opacity:1}}@keyframes swal2-rotate-loading{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto !important}body.swal2-no-backdrop .swal2-container{top:auto;right:auto;bottom:auto;left:auto;max-width:calc(100% - .625em * 2);background-color:transparent !important}body.swal2-no-backdrop .swal2-container>.swal2-modal{box-shadow:0 0 10px rgba(0,0,0,0.4)}body.swal2-no-backdrop .swal2-container.swal2-top{top:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-top-start,body.swal2-no-backdrop .swal2-container.swal2-top-left{top:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-top-end,body.swal2-no-backdrop .swal2-container.swal2-top-right{top:0;right:0}body.swal2-no-backdrop .swal2-container.swal2-center{top:50%;left:50%;transform:translate(-50%, -50%)}body.swal2-no-backdrop .swal2-container.swal2-center-start,body.swal2-no-backdrop .swal2-container.swal2-center-left{top:50%;left:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-end,body.swal2-no-backdrop .swal2-container.swal2-center-right{top:50%;right:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom{bottom:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom-start,body.swal2-no-backdrop .swal2-container.swal2-bottom-left{bottom:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-bottom-end,body.swal2-no-backdrop .swal2-container.swal2-bottom-right{right:0;bottom:0}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll !important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden='true']{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static !important}}body.swal2-toast-shown .swal2-container{background-color:transparent}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-start,body.swal2-toast-shown .swal2-container.swal2-top-left{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-start,body.swal2-toast-shown .swal2-container.swal2-center-left{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%, -50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-start,body.swal2-toast-shown .swal2-container.swal2-bottom-left{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}body.swal2-toast-column .swal2-toast{flex-direction:column;align-items:stretch}body.swal2-toast-column .swal2-toast .swal2-actions{flex:1;align-self:stretch;height:2.2em;margin-top:.3125em}body.swal2-toast-column .swal2-toast .swal2-loading{justify-content:center}body.swal2-toast-column .swal2-toast .swal2-input{height:2em;margin:.3125em auto;font-size:1em}body.swal2-toast-column .swal2-toast .swal2-validation-message{font-size:1em}#toast-container.toast-top-right{top:76px}#toast-container .toast-close-button{right:-0.15em}#toast-container .toast{opacity:1 !important;background-image:none !important;border-radius:.25rem;box-shadow:0 0 8px rgba(0,0,0,0.35);display:flex;align-items:center}#toast-container .toast:hover{box-shadow:0 0 10px rgba(0,0,0,0.6)}#toast-container .toast:before{font-family:FontAwesome;font-size:25px;line-height:20px;float:left;color:#ffffff;padding-right:10px;margin:auto 0 auto -36px}#toast-container .toast .toaster-icon{display:none}#toast-container .toast .toast-message p{margin-bottom:0.5rem}#toast-container .toast .toast-message p:last-child{margin-bottom:0}#toast-container .toast.toast-danger,#toast-container .toast.toast-error{background-image:none !important;background-color:#dd4b39}#toast-container .toast.toast-danger:before,#toast-container .toast.toast-error:before{content:"\F0E7";margin-left:-30px}#toast-container .toast.toast-warning{background-image:none !important;background-color:#bf7e16}#toast-container .toast.toast-warning:before{content:"\F071"}#toast-container .toast.toast-info{background-image:none !important;background-color:#555}#toast-container .toast.toast-info:before{content:"\F05A"}#toast-container .toast.toast-success{background-image:none !important;background-color:#00a65a}#toast-container .toast.toast-success:before{content:"\F00C"}.swal2-container{background-color:rgba(0,0,0,0.3)}.swal2-popup{padding:15px 0 0;background-color:#fff;color:#333;border:1px solid #9a9a9a;border-radius:.3rem;width:34em}.swal2-popup .swal2-header{padding:0 15px}.swal2-popup .swal2-icon{margin:0 auto;width:auto;height:auto;border:none}.swal2-popup .swal2-content{padding-bottom:15px;font-size:1rem;border-bottom:1px solid #dee2e6}.swal2-popup i.swal-custom-icon{display:block;margin:0 auto;font-size:35px}.swal2-popup .swal2-title{padding:10px 0 15px;margin:0;font-size:1.15rem;color:#333}.swal2-popup .swal2-content{font-size:1rem;color:#333;padding:0 15px 15px}.swal2-popup .swal2-actions{padding:15px;margin:0;background-color:#fbfbfb;border-radius:.3rem;display:flex;flex-direction:row;justify-content:flex-start;font-size:1rem}.swal2-popup .swal2-actions button{margin-right:10px}.swal2-popup .swal2-actions button.swal2-confirm{font-weight:bold}.swal2-popup .swal2-actions button.swal2-cancel{background-color:#ffffff}date-input-polyfill[data-open="true"]{z-index:10000 !important}html{font-size:14px}body{min-width:1010px}body.layout_frontend{background-color:#ecf0f5}body.full-width:not(.layout_frontend) .container{min-width:980px;width:90%}.page-header,.secondary-header{border-bottom:1px solid #dee2e6;padding-bottom:0.6rem;margin-bottom:0.5rem}.page-header h1,.page-header h2,.page-header h3,.page-header h4,.secondary-header h1,.secondary-header h2,.secondary-header h3,.secondary-header h4{margin:0}h1 small,h2 small,h3 small,h4 small,h5 small{font-size:80%}input:required,select:required,textarea:required{box-shadow:none}.secondary-header,.spaced-header{margin-top:4rem}.navbar{padding-left:0;padding-right:0}.navbar .dropdown-menu{min-width:200px;max-width:300px}.navbar .dropdown-menu .dropdown-item-text{line-height:1.3}.navbar .dropdown-menu .dropdown-item-text span,.navbar .dropdown-menu .dropdown-item-text small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navbar .nav-link{font-weight:600}.navbar-brand{margin-top:-20px;margin-bottom:-20px}.dropdown-menu button{cursor:pointer}.container{width:980px;max-width:none !important;margin:0 auto;padding:0}.page-content{margin-top:20px}.footer{margin-top:40px;padding:40px 0 40px 0;border-top:1px solid #dee2e6}.list-group-item.active{border-left:3px solid #175DDC;font-weight:bold;padding-left:calc(1.25rem - 3px)}.card-header,.modal-header{font-weight:bold;text-transform:uppercase}.card-header small,.modal-header small{font-weight:normal;text-transform:none}.card-body-header{font-size:1.15rem}.card ul.fa-ul.card-ul{margin-left:1.9em}.card ul.fa-ul.card-ul li{word-break:break-all}.card ul.fa-ul.card-ul .fa-li{top:4px}.card ul.fa-ul.card-ul.carets{margin-left:1.1em}.card ul.fa-ul.card-ul.carets .fa-li{left:-17px;width:1.1em}.card ul.fa-ul.card-ul ul.carets{margin-left:0.85em}.card-org-plans h2{font-size:1.15rem}.modal-dialog{width:500px}.modal-sm{width:300px}.modal-lg{width:800px}.modal-body h3,.modal-body .section-header>*{font-weight:normal;text-transform:uppercase;color:#6c757d}.modal .list-group-flush :first-child{border-top:none}.modal .list-group-flush :last-child{border-bottom:none}.modal-footer{justify-content:flex-start;background-color:#fbfbfb;border-radius:.3rem}label:not(.form-check-label):not(.btn),label.bold{font-weight:600}input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:searchfield-cancel-button}.btn[class*="btn-outline-"]:not(:hover),.swal2-popup .swal2-actions button[class*="btn-outline-"]:not(:hover){border-color:#ced4da;background-color:#fbfbfb}.btn-link:focus,.btn-link.focus{outline-color:-webkit-focus-ring-color;outline-offset:1px;outline-style:auto;outline-width:1px}.btn-outline-secondary,.swal2-popup .swal2-actions button.swal2-cancel{color:#6c757d}.btn-outline-secondary:hover:not(:disabled),.swal2-popup .swal2-actions button.swal2-cancel:hover:not(:disabled){color:#333}.btn-outline-secondary:disabled,.swal2-popup .swal2-actions button.swal2-cancel:disabled{opacity:1}.btn-outline-secondary:focus,.swal2-popup .swal2-actions button.swal2-cancel:focus,.btn-outline-secondary.focus,.swal2-popup .swal2-actions button.focus.swal2-cancel{box-shadow:0 0 0 .2rem rgba(58,117,225,0.5)}.btn-submit{position:relative}.btn-submit .fa-spinner{position:absolute;display:none;align-items:center;justify-content:center;bottom:0;top:0;left:0;right:0}.btn-submit:disabled:not(.manual) .fa-spinner,.btn-submit.loading .fa-spinner{display:flex}.btn-submit:disabled:not(.manual) span,.btn-submit.loading span{visibility:hidden}.list-group-item:focus,.list-group-item.focus{z-index:100}.fa-icon-above-input{height:1.5em}.table.table-list thead th{border-top:none}.table.table-list tr:first-child td{border:none}.table.table-list td{vertical-align:middle}.table.table-list td.reduced-lh{line-height:1}.table.table-list td.reduced-lh small{font-size:80%}.table.table-list td small,.table.table-list td>.fa,.table.table-list td .icon{color:#6c757d}.table.table-list td.wrap{word-break:break-all}.table.table-list td.table-list-options{width:76px;max-width:76px;text-align:right;height:50px}.table.table-list td.table-list-options.wider{width:100px;max-width:100px}.table.table-list td.table-list-options .btn,.table.table-list td.table-list-options .swal2-popup .swal2-actions button,.swal2-popup .swal2-actions .table.table-list td.table-list-options button{line-height:1;transition:initial}.table.table-list td.table-list-options .dropdown-menu{line-height:1.5}.table.table-list td.table-list-icon{width:45px;max-width:45px;text-align:center}.table.table-list td.table-list-icon img{max-height:24px}.table.table-list td.table-list-checkbox{width:35px;max-width:35px}.table.table-list td.table-list-strike{color:#6c757d;text-decoration:line-through}.text-lg{font-size:1.15rem}.text-strike{text-decoration:line-through}.font-weight-semibold{font-weight:600}.password-wrapper{word-break:break-all;white-space:pre-wrap;min-width:0}.password-row{min-width:0}.password-number{color:#007fde}.password-special{color:#c40800}app-vault-groupings .card #search,app-org-vault-groupings .card #search,.groupings .card #search{margin-bottom:1rem}app-vault-groupings .card h3,app-org-vault-groupings .card h3,.groupings .card h3{font-weight:normal;text-transform:uppercase;color:#6c757d}app-vault-groupings .card ul:last-child,app-org-vault-groupings .card ul:last-child,.groupings .card ul:last-child{margin-bottom:0}app-vault-groupings .card .card-body a,app-org-vault-groupings .card .card-body a,.groupings .card .card-body a{color:#333}app-vault-groupings .card .card-body a:hover.text-muted,app-org-vault-groupings .card .card-body a:hover.text-muted,.groupings .card .card-body a:hover.text-muted{color:#333 !important}app-vault-groupings .card .show-active,app-org-vault-groupings .card .show-active,.groupings .card .show-active{display:none}app-vault-groupings .card li>.fa,app-vault-groupings .card li>div>.fa,app-org-vault-groupings .card li>.fa,app-org-vault-groupings .card li>div>.fa,.groupings .card li>.fa,.groupings .card li>div>.fa{cursor:pointer}app-vault-groupings .card li.active>.show-active,app-vault-groupings .card li.active>div .show-active,app-org-vault-groupings .card li.active>.show-active,app-org-vault-groupings .card li.active>div .show-active,.groupings .card li.active>.show-active,.groupings .card li.active>div .show-active{display:inline}app-vault-groupings .card li.active>a:first-of-type,app-vault-groupings .card li.active>div a:first-of-type,app-org-vault-groupings .card li.active>a:first-of-type,app-org-vault-groupings .card li.active>div a:first-of-type,.groupings .card li.active>a:first-of-type,.groupings .card li.active>div a:first-of-type{font-weight:bold;color:#175DDC}app-vault-groupings .card li.active>.fa,app-vault-groupings .card li.active>div>.fa,app-org-vault-groupings .card li.active>.fa,app-org-vault-groupings .card li.active>div>.fa,.groupings .card li.active>.fa,.groupings .card li.active>div>.fa{color:#175DDC}app-password-generator #lengthRange{width:100%}app-password-generator .card-password .card-body{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;text-align:center;font-size:1.15rem;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}app-password-generator-history .list-group-item{line-height:1}app-password-generator-history .list-group-item .password{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}app-import textarea{height:150px}app-user-billing .progress{height:20px}app-user-billing .progress .progress-bar{min-width:50px}#duo-frame{background:url(../images/loading.svg) 0 0 no-repeat;height:330px}#duo-frame iframe{width:100%;height:100%;border:none}#web-authn-frame{background:url(../images/loading.svg) 0 0 no-repeat;height:290px}#web-authn-frame iframe{width:100%;height:100%;border:none}#bt-dropin-container{background:url(../images/loading.svg) 0 0 no-repeat;min-height:50px}.braintree-placeholder,.braintree-sheet__header{display:none}.braintree-sheet__content--button{text-align:left;padding:0;min-height:0}.braintree-sheet__container{margin-bottom:0}.braintree-sheet{border:none}.totp .totp-code{font-size:1.2rem}.totp .totp-countdown{margin:3px 3px 0 0;display:block;user-select:none}.totp .totp-countdown .totp-sec{font-size:0.85em;position:absolute;line-height:32px;width:32px;text-align:center}.totp .totp-countdown svg{width:32px;height:32px;transform:rotate(-90deg)}.totp .totp-countdown .totp-circle{fill:none;stroke:#175DDC}.totp .totp-countdown .totp-circle.inner{stroke-width:3;stroke-dasharray:78.6;stroke-dashoffset:0}.totp .totp-countdown .totp-circle.outer{stroke-width:2;stroke-dasharray:88;stroke-dashoffset:0}.totp>.align-items-center{margin-bottom:-5px}.totp.low .totp-sec,.totp.low .totp-code{color:#dd4b39}.totp.low .totp-circle{stroke:#dd4b39}.callout{padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid rgba(0,0,0,0.125);border-left-width:5px;border-radius:calc(.25rem - 1px);background-color:#fafafa}.callout .callout-heading{margin-top:0}.callout h3.callout-heading{font-weight:bold;text-transform:uppercase}.callout.callout-primary{border-left-color:#175DDC}.callout.callout-primary .callout-heading{color:#175DDC}.callout.callout-info{border-left-color:#343a40}.callout.callout-info .callout-heading{color:#343a40}.callout.callout-danger{border-left-color:#dd4b39}.callout.callout-danger .callout-heading{color:#dd4b39}.callout.callout-success{border-left-color:#00a65a}.callout.callout-success .callout-heading{color:#00a65a}.callout.callout-warning{border-left-color:#bf7e16}.callout.callout-warning .callout-heading{color:#bf7e16}.list-group-2fa .logo-2fa{min-width:100px}.form-check-block .form-check-label{font-weight:600}.form-check-block .form-check-label>small{display:block;color:#6c757d;font-weight:normal}.form-check-block .form-check-label>span{display:block;font-weight:normal}.form-inline input[type='datetime-local']{width:200px}.form-control.stripe-form-control{padding-top:0.55rem}.form-control.stripe-form-control.is-focused{color:#495057;background-color:#fff;border-color:#81a9f2;outline:0;box-shadow:0 0 0 .2rem rgba(23,93,220,0.25)}.form-control.stripe-form-control.is-focused.is-invalid{box-shadow:0 0 0 .2rem rgba(221,75,57,0.25)}.form-control.stripe-form-control.is-invalid{border-color:#dd4b39}.org-nav{background-color:#fbfbfb;border-bottom:1px solid #dee2e6;height:100px;min-height:100px}.org-nav .container{height:100%}.org-nav .nav-tabs{border-bottom:none}.org-nav .nav-tabs a{color:#333}.org-nav .nav-tabs a:not(.active){border-color:transparent}.org-nav .nav-tabs a.active{border-top:3px solid #175DDC;font-weight:bold;padding-top:calc(.5rem - 2px)}.org-nav .nav-tabs a.disabled{color:#b4b4b4}.org-nav .org-name{line-height:1}.org-nav .org-name span{font-size:1.15rem;display:block}img.logo{width:284px;height:43px;margin:0 auto;display:block}.min-height-fix{min-height:1px}.overflow-hidden{overflow:hidden}.cdk-drag-preview{z-index:1070 !important;opacity:0.8;background-color:#fff;border-radius:.25rem}.cursor-move{cursor:move !important}.layout.enterprise2 header{color:#ced4da;background-color:#175DDC}.layout.enterprise2 header:before{content:"";position:absolute;z-index:-1;width:100%;height:340px;left:0;transform:skewY(-3deg);background:#175DDC}.layout.enterprise2 header img.logo{margin:12px 0 0;width:284px;max-width:284px;height:auto}.layout.enterprise2 h2{color:#ffffff;font-size:1.8rem;margin:100px 0 150px 0}.layout.enterprise2 p{margin:20px 0 40px 0;font-size:1.4rem}.layout.enterprise2 p:before{content:"/";padding-right:12px}.layout.enterprise2 p:not(.highlight):before{color:#1252A3}.layout.enterprise2 p b:after{content:"\27F6";font-size:2rem;padding-left:6px}.layout.enterprise2 blockquote{margin:20px 0 0 0;font-size:1.4rem;padding-right:40px} + + +/*# sourceMappingURL=main.a34068436143996e1f65.css.map*/ \ No newline at end of file diff --git a/app/main.a34068436143996e1f65.css.map b/app/main.a34068436143996e1f65.css.map new file mode 100644 index 00000000..51cfdc1c --- /dev/null +++ b/app/main.a34068436143996e1f65.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./src/css/webfonts.css","webpack:///./src/scss/styles.scss"],"names":[],"mappings":"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","file":"app/main.a34068436143996e1f65.css","sourcesContent":["@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: italic;\n\tfont-weight: 300;\n\tsrc: url(../fonts/Open_Sans-italic-300.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: italic;\n\tfont-weight: 400;\n\tsrc: url(../fonts/Open_Sans-italic-400.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: italic;\n\tfont-weight: 600;\n\tsrc: url(../fonts/Open_Sans-italic-600.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: italic;\n\tfont-weight: 700;\n\tsrc: url(../fonts/Open_Sans-italic-700.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: italic;\n\tfont-weight: 800;\n\tsrc: url(../fonts/Open_Sans-italic-800.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: normal;\n\tfont-weight: 300;\n\tsrc: url(../fonts/Open_Sans-normal-300.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: normal;\n\tfont-weight: 400;\n\tsrc: url(../fonts/Open_Sans-normal-400.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: normal;\n\tfont-weight: 600;\n\tsrc: url(../fonts/Open_Sans-normal-600.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: normal;\n\tfont-weight: 700;\n\tsrc: url(../fonts/Open_Sans-normal-700.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: normal;\n\tfont-weight: 800;\n\tsrc: url(../fonts/Open_Sans-normal-800.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n",":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: #175DDC;--secondary: #ced4da;--success: #00a65a;--info: #555;--warning: #bf7e16;--danger: #dd4b39;--light: #f8f9fa;--dark: #343a40;--primary-accent: #1252A3;--secondary-alt: #1A3B66;--breakpoint-xs: 0;--breakpoint-sm: 1px;--breakpoint-md: 2px;--breakpoint-lg: 3px;--breakpoint-xl: 4px;--font-family-sans-serif: \"Open Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";--font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace}*,*::before,*::after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:\"Open Sans\",\"Helvetica Neue\",Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\";font-size:1rem;font-weight:400;line-height:1.5;color:#333;text-align:left;background-color:#fff}[tabindex=\"-1\"]:focus{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[title],abbr[data-original-title]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{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:#175DDC;text-decoration:none;background-color:transparent}a:hover{color:#104097;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):hover,a:not([href]):not([tabindex]):focus{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}pre,code,kbd,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}input,button,select,optgroup,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}button,[type=\"button\"],[type=\"reset\"],[type=\"submit\"]{-webkit-appearance:button}button:not(:disabled),[type=\"button\"]:not(:disabled),[type=\"reset\"]:not(:disabled),[type=\"submit\"]:not(:disabled){cursor:pointer}button::-moz-focus-inner,[type=\"button\"]::-moz-focus-inner,[type=\"reset\"]::-moz-focus-inner,[type=\"submit\"]::-moz-focus-inner{padding:0;border-style:none}input[type=\"radio\"],input[type=\"checkbox\"]{box-sizing:border-box;padding:0}input[type=\"date\"],input[type=\"time\"],input[type=\"datetime-local\"],input[type=\"month\"]{-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:1.7rem}h2,.h2{font-size:1.3rem}h3,.h3{font-size:1rem}h4,.h4{font-size:1rem}h5,.h5{font-size:1rem}h6,.h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:normal}.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,0.1)}small,.small{font-size:90%;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:90%;color:#6c757d}.blockquote-footer::before{content:\"\\2014\\A0\"}.img-fluid,.table.table-list td.table-list-icon img{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:100%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:100%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:100%;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:10px;padding-left:10px;margin-right:auto;margin-left:auto}@media (min-width: 1px){.container{max-width:540px}}@media (min-width: 2px){.container{max-width:720px}}@media (min-width: 3px){.container{max-width:960px}}@media (min-width: 4px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:10px;padding-left:10px;margin-right:auto;margin-left:auto}.row{display:flex;flex-wrap:wrap;margin-right:-10px;margin-left:-10px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=\"col-\"]{padding-right:0;padding-left:0}.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col,.col-auto,.col-sm-1,.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-10,.col-sm-11,.col-sm-12,.col-sm,.col-sm-auto,.col-md-1,.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-10,.col-md-11,.col-md-12,.col-md,.col-md-auto,.col-lg-1,.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-10,.col-lg-11,.col-lg-12,.col-lg,.col-lg-auto,.col-xl-1,.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-10,.col-xl-11,.col-xl-12,.col-xl,.col-xl-auto{position:relative;width:100%;padding-right:10px;padding-left:10px}.col{flex-basis:0;flex-grow:1;max-width:100%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.33333%;max-width:8.33333%}.col-2{flex:0 0 16.66667%;max-width:16.66667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.33333%;max-width:33.33333%}.col-5{flex:0 0 41.66667%;max-width:41.66667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.33333%;max-width:58.33333%}.col-8{flex:0 0 66.66667%;max-width:66.66667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.33333%;max-width:83.33333%}.col-11{flex:0 0 91.66667%;max-width:91.66667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.33333%}.offset-2{margin-left:16.66667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333%}.offset-5{margin-left:41.66667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333%}.offset-8{margin-left:66.66667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333%}.offset-11{margin-left:91.66667%}@media (min-width: 1px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.33333%;max-width:8.33333%}.col-sm-2{flex:0 0 16.66667%;max-width:16.66667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.33333%;max-width:33.33333%}.col-sm-5{flex:0 0 41.66667%;max-width:41.66667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.33333%;max-width:58.33333%}.col-sm-8{flex:0 0 66.66667%;max-width:66.66667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.33333%;max-width:83.33333%}.col-sm-11{flex:0 0 91.66667%;max-width:91.66667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333%}.offset-sm-2{margin-left:16.66667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333%}.offset-sm-5{margin-left:41.66667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333%}.offset-sm-8{margin-left:66.66667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333%}.offset-sm-11{margin-left:91.66667%}}@media (min-width: 2px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.33333%;max-width:8.33333%}.col-md-2{flex:0 0 16.66667%;max-width:16.66667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.33333%;max-width:33.33333%}.col-md-5{flex:0 0 41.66667%;max-width:41.66667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.33333%;max-width:58.33333%}.col-md-8{flex:0 0 66.66667%;max-width:66.66667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.33333%;max-width:83.33333%}.col-md-11{flex:0 0 91.66667%;max-width:91.66667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333%}.offset-md-2{margin-left:16.66667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333%}.offset-md-5{margin-left:41.66667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333%}.offset-md-8{margin-left:66.66667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333%}.offset-md-11{margin-left:91.66667%}}@media (min-width: 3px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.33333%;max-width:8.33333%}.col-lg-2{flex:0 0 16.66667%;max-width:16.66667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.33333%;max-width:33.33333%}.col-lg-5{flex:0 0 41.66667%;max-width:41.66667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.33333%;max-width:58.33333%}.col-lg-8{flex:0 0 66.66667%;max-width:66.66667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.33333%;max-width:83.33333%}.col-lg-11{flex:0 0 91.66667%;max-width:91.66667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333%}.offset-lg-2{margin-left:16.66667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333%}.offset-lg-5{margin-left:41.66667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333%}.offset-lg-8{margin-left:66.66667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333%}.offset-lg-11{margin-left:91.66667%}}@media (min-width: 4px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.33333%;max-width:8.33333%}.col-xl-2{flex:0 0 16.66667%;max-width:16.66667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.33333%;max-width:33.33333%}.col-xl-5{flex:0 0 41.66667%;max-width:41.66667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.33333%;max-width:58.33333%}.col-xl-8{flex:0 0 66.66667%;max-width:66.66667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.33333%;max-width:83.33333%}.col-xl-11{flex:0 0 91.66667%;max-width:91.66667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333%}.offset-xl-2{margin-left:16.66667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333%}.offset-xl-5{margin-left:41.66667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333%}.offset-xl-8{margin-left:66.66667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333%}.offset-xl-11{margin-left:91.66667%}}.table{width:100%;margin-bottom:1rem;color:#333}.table th,.table td{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 th,.table-sm td{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered th,.table-bordered td{border:1px solid #dee2e6}.table-bordered thead th,.table-bordered thead td{border-bottom-width:2px}.table-borderless th,.table-borderless td,.table-borderless thead th,.table-borderless tbody+tbody{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,0.02)}.table-hover tbody tr:hover{color:#333;background-color:rgba(0,0,0,0.03)}.table-primary,.table-primary>th,.table-primary>td{background-color:#bed2f5}.table-primary th,.table-primary td,.table-primary thead th,.table-primary tbody+tbody{border-color:#86abed}.table-hover .table-primary:hover{background-color:#a8c3f2}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#a8c3f2}.table-secondary,.table-secondary>th,.table-secondary>td{background-color:#f1f3f5}.table-secondary th,.table-secondary td,.table-secondary thead th,.table-secondary tbody+tbody{border-color:#e6e9ec}.table-hover .table-secondary:hover{background-color:#e2e6ea}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#e2e6ea}.table-success,.table-success>th,.table-success>td{background-color:#b8e6d1}.table-success th,.table-success td,.table-success thead th,.table-success tbody+tbody{border-color:#7ad1a9}.table-hover .table-success:hover{background-color:#a5dfc5}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#a5dfc5}.table-info,.table-info>th,.table-info>td{background-color:#cfcfcf}.table-info th,.table-info td,.table-info thead th,.table-info tbody+tbody{border-color:#a7a7a7}.table-hover .table-info:hover{background-color:#c2c2c2}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#c2c2c2}.table-warning,.table-warning>th,.table-warning>td{background-color:#eddbbe}.table-warning th,.table-warning td,.table-warning thead th,.table-warning tbody+tbody{border-color:#debc86}.table-hover .table-warning:hover{background-color:#e7d0aa}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#e7d0aa}.table-danger,.table-danger>th,.table-danger>td{background-color:#f5cdc8}.table-danger th,.table-danger td,.table-danger thead th,.table-danger tbody+tbody{border-color:#eda198}.table-hover .table-danger:hover{background-color:#f1b9b2}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b9b2}.table-light,.table-light>th,.table-light>td{background-color:#fdfdfe}.table-light th,.table-light td,.table-light thead th,.table-light tbody+tbody{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>th,.table-dark>td{background-color:#c6c8ca}.table-dark th,.table-dark td,.table-dark thead th,.table-dark tbody+tbody{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-primary-accent,.table-primary-accent>th,.table-primary-accent>td{background-color:#bdcfe5}.table-primary-accent th,.table-primary-accent td,.table-primary-accent thead th,.table-primary-accent tbody+tbody{border-color:#84a5cf}.table-hover .table-primary-accent:hover{background-color:#abc2de}.table-hover .table-primary-accent:hover>td,.table-hover .table-primary-accent:hover>th{background-color:#abc2de}.table-secondary-alt,.table-secondary-alt>th,.table-secondary-alt>td{background-color:#bfc8d4}.table-secondary-alt th,.table-secondary-alt td,.table-secondary-alt thead th,.table-secondary-alt tbody+tbody{border-color:#8899af}.table-hover .table-secondary-alt:hover{background-color:#b0bbca}.table-hover .table-secondary-alt:hover>td,.table-hover .table-secondary-alt:hover>th{background-color:#b0bbca}.table-active,.table-active>th,.table-active>td{background-color:rgba(0,0,0,0.03)}.table-hover .table-active:hover{background-color:rgba(0,0,0,0.03)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,0.03)}.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 th,.table-dark td,.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,0.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,0.075)}@media (max-width: 0.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: 1.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: 2.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: 3.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:#fbfbfb;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#81a9f2;outline:0;box-shadow:0 0 0 .2rem rgba(23,93,220,0.25)}.form-control::placeholder{color:#b4b4b4;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e0e0e0;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fbfbfb}.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.15rem;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-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#333;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{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.15rem;line-height:1.5;border-radius:.3rem}select.form-control[size],select.form-control[multiple]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;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{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;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:90%;color:#00a65a}.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(0,166,90,0.9);border-radius:.25rem}.was-validated .form-control:valid,.form-control.is-valid{border-color:#00a65a;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2300a65a' 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:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#00a65a;box-shadow:0 0 0 .2rem rgba(0,166,90,0.25)}.was-validated .form-control:valid ~ .valid-feedback,.was-validated .form-control:valid ~ .valid-tooltip,.form-control.is-valid ~ .valid-feedback,.form-control.is-valid ~ .valid-tooltip{display:block}.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)}.was-validated .custom-select:valid,.custom-select.is-valid{border-color:#00a65a;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' 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' viewBox='0 0 8 8'%3e%3cpath fill='%2300a65a' 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\") #fbfbfb no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .custom-select:valid:focus,.custom-select.is-valid:focus{border-color:#00a65a;box-shadow:0 0 0 .2rem rgba(0,166,90,0.25)}.was-validated .custom-select:valid ~ .valid-feedback,.was-validated .custom-select:valid ~ .valid-tooltip,.custom-select.is-valid ~ .valid-feedback,.custom-select.is-valid ~ .valid-tooltip{display:block}.was-validated .form-control-file:valid ~ .valid-feedback,.was-validated .form-control-file:valid ~ .valid-tooltip,.form-control-file.is-valid ~ .valid-feedback,.form-control-file.is-valid ~ .valid-tooltip{display:block}.was-validated .form-check-input:valid ~ .form-check-label,.form-check-input.is-valid ~ .form-check-label{color:#00a65a}.was-validated .form-check-input:valid ~ .valid-feedback,.was-validated .form-check-input:valid ~ .valid-tooltip,.form-check-input.is-valid ~ .valid-feedback,.form-check-input.is-valid ~ .valid-tooltip{display:block}.was-validated .custom-control-input:valid ~ .custom-control-label,.custom-control-input.is-valid ~ .custom-control-label{color:#00a65a}.was-validated .custom-control-input:valid ~ .custom-control-label::before,.custom-control-input.is-valid ~ .custom-control-label::before{border-color:#00a65a}.was-validated .custom-control-input:valid ~ .valid-feedback,.was-validated .custom-control-input:valid ~ .valid-tooltip,.custom-control-input.is-valid ~ .valid-feedback,.custom-control-input.is-valid ~ .valid-tooltip{display:block}.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before,.custom-control-input.is-valid:checked ~ .custom-control-label::before{border-color:#00d976;background-color:#00d976}.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before,.custom-control-input.is-valid:focus ~ .custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,166,90,0.25)}.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before,.custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before{border-color:#00a65a}.was-validated .custom-file-input:valid ~ .custom-file-label,.custom-file-input.is-valid ~ .custom-file-label{border-color:#00a65a}.was-validated .custom-file-input:valid ~ .valid-feedback,.was-validated .custom-file-input:valid ~ .valid-tooltip,.custom-file-input.is-valid ~ .valid-feedback,.custom-file-input.is-valid ~ .valid-tooltip{display:block}.was-validated .custom-file-input:valid:focus ~ .custom-file-label,.custom-file-input.is-valid:focus ~ .custom-file-label{border-color:#00a65a;box-shadow:0 0 0 .2rem rgba(0,166,90,0.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:90%;color:#dd4b39}.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(221,75,57,0.9);border-radius:.25rem}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:#dd4b39;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dd4b39' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dd4b39' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#dd4b39;box-shadow:0 0 0 .2rem rgba(221,75,57,0.25)}.was-validated .form-control:invalid ~ .invalid-feedback,.was-validated .form-control:invalid ~ .invalid-tooltip,.form-control.is-invalid ~ .invalid-feedback,.form-control.is-invalid ~ .invalid-tooltip{display:block}.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)}.was-validated .custom-select:invalid,.custom-select.is-invalid{border-color:#dd4b39;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' 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' fill='%23dd4b39' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dd4b39' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\") #fbfbfb no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .custom-select:invalid:focus,.custom-select.is-invalid:focus{border-color:#dd4b39;box-shadow:0 0 0 .2rem rgba(221,75,57,0.25)}.was-validated .custom-select:invalid ~ .invalid-feedback,.was-validated .custom-select:invalid ~ .invalid-tooltip,.custom-select.is-invalid ~ .invalid-feedback,.custom-select.is-invalid ~ .invalid-tooltip{display:block}.was-validated .form-control-file:invalid ~ .invalid-feedback,.was-validated .form-control-file:invalid ~ .invalid-tooltip,.form-control-file.is-invalid ~ .invalid-feedback,.form-control-file.is-invalid ~ .invalid-tooltip{display:block}.was-validated .form-check-input:invalid ~ .form-check-label,.form-check-input.is-invalid ~ .form-check-label{color:#dd4b39}.was-validated .form-check-input:invalid ~ .invalid-feedback,.was-validated .form-check-input:invalid ~ .invalid-tooltip,.form-check-input.is-invalid ~ .invalid-feedback,.form-check-input.is-invalid ~ .invalid-tooltip{display:block}.was-validated .custom-control-input:invalid ~ .custom-control-label,.custom-control-input.is-invalid ~ .custom-control-label{color:#dd4b39}.was-validated .custom-control-input:invalid ~ .custom-control-label::before,.custom-control-input.is-invalid ~ .custom-control-label::before{border-color:#dd4b39}.was-validated .custom-control-input:invalid ~ .invalid-feedback,.was-validated .custom-control-input:invalid ~ .invalid-tooltip,.custom-control-input.is-invalid ~ .invalid-feedback,.custom-control-input.is-invalid ~ .invalid-tooltip{display:block}.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before,.custom-control-input.is-invalid:checked ~ .custom-control-label::before{border-color:#e47365;background-color:#e47365}.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before,.custom-control-input.is-invalid:focus ~ .custom-control-label::before{box-shadow:0 0 0 .2rem rgba(221,75,57,0.25)}.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before,.custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before{border-color:#dd4b39}.was-validated .custom-file-input:invalid ~ .custom-file-label,.custom-file-input.is-invalid ~ .custom-file-label{border-color:#dd4b39}.was-validated .custom-file-input:invalid ~ .invalid-feedback,.was-validated .custom-file-input:invalid ~ .invalid-tooltip,.custom-file-input.is-invalid ~ .invalid-feedback,.custom-file-input.is-invalid ~ .invalid-tooltip{display:block}.was-validated .custom-file-input:invalid:focus ~ .custom-file-label,.custom-file-input.is-invalid:focus ~ .custom-file-label{border-color:#dd4b39;box-shadow:0 0 0 .2rem rgba(221,75,57,0.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width: 1px){.form-inline label{display:flex;align-items:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:flex;flex:0 0 auto;flex-flow:row wrap;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 .input-group,.form-inline .custom-select{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn,.swal2-popup .swal2-actions button{display:inline-block;font-weight:600;color:#333;text-align:center;vertical-align:middle;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 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.btn,.swal2-popup .swal2-actions button{transition:none}}.btn:hover,.swal2-popup .swal2-actions button:hover{color:#333;text-decoration:none}.btn:focus,.swal2-popup .swal2-actions button:focus,.btn.focus,.swal2-popup .swal2-actions button.focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,93,220,0.25)}.btn.disabled,.swal2-popup .swal2-actions button.disabled,.btn:disabled,.swal2-popup .swal2-actions button:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary,.swal2-popup .swal2-actions button.swal2-confirm{color:#fff;background-color:#175DDC;border-color:#175DDC}.btn-primary:hover,.swal2-popup .swal2-actions button.swal2-confirm:hover{color:#fff;background-color:#134eb9;border-color:#1249ae}.btn-primary:focus,.swal2-popup .swal2-actions button.swal2-confirm:focus,.btn-primary.focus,.swal2-popup .swal2-actions button.focus.swal2-confirm{box-shadow:0 0 0 .2rem rgba(58,117,225,0.5)}.btn-primary.disabled,.swal2-popup .swal2-actions button.disabled.swal2-confirm,.btn-primary:disabled,.swal2-popup .swal2-actions button.swal2-confirm:disabled{color:#fff;background-color:#175DDC;border-color:#175DDC}.btn-primary:not(:disabled):not(.disabled):active,.swal2-popup .swal2-actions button.swal2-confirm:not(:disabled):not(.disabled):active,.btn-primary:not(:disabled):not(.disabled).active,.swal2-popup .swal2-actions button.swal2-confirm:not(:disabled):not(.disabled).active,.show>.btn-primary.dropdown-toggle,.swal2-popup .swal2-actions .show>button.dropdown-toggle.swal2-confirm{color:#fff;background-color:#1249ae;border-color:#1145a2}.btn-primary:not(:disabled):not(.disabled):active:focus,.swal2-popup .swal2-actions button.swal2-confirm:not(:disabled):not(.disabled):active:focus,.btn-primary:not(:disabled):not(.disabled).active:focus,.swal2-popup .swal2-actions button.swal2-confirm:not(:disabled):not(.disabled).active:focus,.show>.btn-primary.dropdown-toggle:focus,.swal2-popup .swal2-actions .show>button.dropdown-toggle.swal2-confirm:focus{box-shadow:0 0 0 .2rem rgba(58,117,225,0.5)}.btn-secondary{color:#212529;background-color:#ced4da;border-color:#ced4da}.btn-secondary:hover{color:#212529;background-color:#b8c1ca;border-color:#b1bbc4}.btn-secondary:focus,.btn-secondary.focus{box-shadow:0 0 0 .2rem rgba(180,186,191,0.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#212529;background-color:#ced4da;border-color:#ced4da}.btn-secondary:not(:disabled):not(.disabled):active,.btn-secondary:not(:disabled):not(.disabled).active,.show>.btn-secondary.dropdown-toggle{color:#212529;background-color:#b1bbc4;border-color:#aab4bf}.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(180,186,191,0.5)}.btn-success{color:#fff;background-color:#00a65a;border-color:#00a65a}.btn-success:hover{color:#fff;background-color:#008045;border-color:#00733e}.btn-success:focus,.btn-success.focus{box-shadow:0 0 0 .2rem rgba(38,179,115,0.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#00a65a;border-color:#00a65a}.btn-success:not(:disabled):not(.disabled):active,.btn-success:not(:disabled):not(.disabled).active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#00733e;border-color:#006637}.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(38,179,115,0.5)}.btn-info{color:#fff;background-color:#555;border-color:#555}.btn-info:hover{color:#fff;background-color:#424242;border-color:#3c3c3c}.btn-info:focus,.btn-info.focus{box-shadow:0 0 0 .2rem rgba(111,111,111,0.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#555;border-color:#555}.btn-info:not(:disabled):not(.disabled):active,.btn-info:not(:disabled):not(.disabled).active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#3c3c3c;border-color:#353535}.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(111,111,111,0.5)}.btn-warning{color:#fff;background-color:#bf7e16;border-color:#bf7e16}.btn-warning:hover{color:#fff;background-color:#9d6712;border-color:#916011}.btn-warning:focus,.btn-warning.focus{box-shadow:0 0 0 .2rem rgba(201,145,57,0.5)}.btn-warning.disabled,.btn-warning:disabled{color:#fff;background-color:#bf7e16;border-color:#bf7e16}.btn-warning:not(:disabled):not(.disabled):active,.btn-warning:not(:disabled):not(.disabled).active,.show>.btn-warning.dropdown-toggle{color:#fff;background-color:#916011;border-color:#86580f}.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(201,145,57,0.5)}.btn-danger{color:#fff;background-color:#dd4b39;border-color:#dd4b39}.btn-danger:hover{color:#fff;background-color:#cd3623;border-color:#c23321}.btn-danger:focus,.btn-danger.focus{box-shadow:0 0 0 .2rem rgba(226,102,87,0.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dd4b39;border-color:#dd4b39}.btn-danger:not(:disabled):not(.disabled):active,.btn-danger:not(:disabled):not(.disabled).active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#c23321;border-color:#b7301f}.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(226,102,87,0.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{box-shadow:0 0 0 .2rem rgba(216,217,219,0.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,0.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{box-shadow:0 0 0 .2rem rgba(82,88,93,0.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,0.5)}.btn-primary-accent{color:#fff;background-color:#1252A3;border-color:#1252A3}.btn-primary-accent:hover{color:#fff;background-color:#0e4181;border-color:#0d3b75}.btn-primary-accent:focus,.btn-primary-accent.focus{box-shadow:0 0 0 .2rem rgba(54,108,177,0.5)}.btn-primary-accent.disabled,.btn-primary-accent:disabled{color:#fff;background-color:#1252A3;border-color:#1252A3}.btn-primary-accent:not(:disabled):not(.disabled):active,.btn-primary-accent:not(:disabled):not(.disabled).active,.show>.btn-primary-accent.dropdown-toggle{color:#fff;background-color:#0d3b75;border-color:#0c356a}.btn-primary-accent:not(:disabled):not(.disabled):active:focus,.btn-primary-accent:not(:disabled):not(.disabled).active:focus,.show>.btn-primary-accent.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(54,108,177,0.5)}.btn-secondary-alt{color:#fff;background-color:#1A3B66;border-color:#1A3B66}.btn-secondary-alt:hover{color:#fff;background-color:#122948;border-color:#10233d}.btn-secondary-alt:focus,.btn-secondary-alt.focus{box-shadow:0 0 0 .2rem rgba(60,88,125,0.5)}.btn-secondary-alt.disabled,.btn-secondary-alt:disabled{color:#fff;background-color:#1A3B66;border-color:#1A3B66}.btn-secondary-alt:not(:disabled):not(.disabled):active,.btn-secondary-alt:not(:disabled):not(.disabled).active,.show>.btn-secondary-alt.dropdown-toggle{color:#fff;background-color:#10233d;border-color:#0d1e33}.btn-secondary-alt:not(:disabled):not(.disabled):active:focus,.btn-secondary-alt:not(:disabled):not(.disabled).active:focus,.show>.btn-secondary-alt.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(60,88,125,0.5)}.btn-outline-primary{color:#175DDC;border-color:#175DDC}.btn-outline-primary:hover{color:#fff;background-color:#175DDC;border-color:#175DDC}.btn-outline-primary:focus,.btn-outline-primary.focus{box-shadow:0 0 0 .2rem rgba(23,93,220,0.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#175DDC;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:#175DDC;border-color:#175DDC}.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(23,93,220,0.5)}.btn-outline-secondary,.swal2-popup .swal2-actions button.swal2-cancel{color:#ced4da;border-color:#ced4da}.btn-outline-secondary:hover,.swal2-popup .swal2-actions button.swal2-cancel:hover{color:#212529;background-color:#ced4da;border-color:#ced4da}.btn-outline-secondary:focus,.swal2-popup .swal2-actions button.swal2-cancel:focus,.btn-outline-secondary.focus,.swal2-popup .swal2-actions button.focus.swal2-cancel{box-shadow:0 0 0 .2rem rgba(206,212,218,0.5)}.btn-outline-secondary.disabled,.swal2-popup .swal2-actions button.disabled.swal2-cancel,.btn-outline-secondary:disabled,.swal2-popup .swal2-actions button.swal2-cancel:disabled{color:#ced4da;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled):active,.swal2-popup .swal2-actions button.swal2-cancel:not(:disabled):not(.disabled):active,.btn-outline-secondary:not(:disabled):not(.disabled).active,.swal2-popup .swal2-actions button.swal2-cancel:not(:disabled):not(.disabled).active,.show>.btn-outline-secondary.dropdown-toggle,.swal2-popup .swal2-actions .show>button.dropdown-toggle.swal2-cancel{color:#212529;background-color:#ced4da;border-color:#ced4da}.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.swal2-popup .swal2-actions button.swal2-cancel:not(:disabled):not(.disabled):active:focus,.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.swal2-popup .swal2-actions button.swal2-cancel:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus,.swal2-popup .swal2-actions .show>button.dropdown-toggle.swal2-cancel:focus{box-shadow:0 0 0 .2rem rgba(206,212,218,0.5)}.btn-outline-success{color:#00a65a;border-color:#00a65a}.btn-outline-success:hover{color:#fff;background-color:#00a65a;border-color:#00a65a}.btn-outline-success:focus,.btn-outline-success.focus{box-shadow:0 0 0 .2rem rgba(0,166,90,0.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#00a65a;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:#00a65a;border-color:#00a65a}.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(0,166,90,0.5)}.btn-outline-info{color:#555;border-color:#555}.btn-outline-info:hover{color:#fff;background-color:#555;border-color:#555}.btn-outline-info:focus,.btn-outline-info.focus{box-shadow:0 0 0 .2rem rgba(85,85,85,0.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#555;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:#555;border-color:#555}.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(85,85,85,0.5)}.btn-outline-warning{color:#bf7e16;border-color:#bf7e16}.btn-outline-warning:hover{color:#fff;background-color:#bf7e16;border-color:#bf7e16}.btn-outline-warning:focus,.btn-outline-warning.focus{box-shadow:0 0 0 .2rem rgba(191,126,22,0.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#bf7e16;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:#fff;background-color:#bf7e16;border-color:#bf7e16}.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(191,126,22,0.5)}.btn-outline-danger{color:#dd4b39;border-color:#dd4b39}.btn-outline-danger:hover{color:#fff;background-color:#dd4b39;border-color:#dd4b39}.btn-outline-danger:focus,.btn-outline-danger.focus{box-shadow:0 0 0 .2rem rgba(221,75,57,0.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dd4b39;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:#dd4b39;border-color:#dd4b39}.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(221,75,57,0.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,0.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,0.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,0.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,0.5)}.btn-outline-primary-accent{color:#1252A3;border-color:#1252A3}.btn-outline-primary-accent:hover{color:#fff;background-color:#1252A3;border-color:#1252A3}.btn-outline-primary-accent:focus,.btn-outline-primary-accent.focus{box-shadow:0 0 0 .2rem rgba(18,82,163,0.5)}.btn-outline-primary-accent.disabled,.btn-outline-primary-accent:disabled{color:#1252A3;background-color:transparent}.btn-outline-primary-accent:not(:disabled):not(.disabled):active,.btn-outline-primary-accent:not(:disabled):not(.disabled).active,.show>.btn-outline-primary-accent.dropdown-toggle{color:#fff;background-color:#1252A3;border-color:#1252A3}.btn-outline-primary-accent:not(:disabled):not(.disabled):active:focus,.btn-outline-primary-accent:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-primary-accent.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(18,82,163,0.5)}.btn-outline-secondary-alt{color:#1A3B66;border-color:#1A3B66}.btn-outline-secondary-alt:hover{color:#fff;background-color:#1A3B66;border-color:#1A3B66}.btn-outline-secondary-alt:focus,.btn-outline-secondary-alt.focus{box-shadow:0 0 0 .2rem rgba(26,59,102,0.5)}.btn-outline-secondary-alt.disabled,.btn-outline-secondary-alt:disabled{color:#1A3B66;background-color:transparent}.btn-outline-secondary-alt:not(:disabled):not(.disabled):active,.btn-outline-secondary-alt:not(:disabled):not(.disabled).active,.show>.btn-outline-secondary-alt.dropdown-toggle{color:#fff;background-color:#1A3B66;border-color:#1A3B66}.btn-outline-secondary-alt:not(:disabled):not(.disabled):active:focus,.btn-outline-secondary-alt:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-secondary-alt.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(26,59,102,0.5)}.btn-link{font-weight:400;color:#175DDC;text-decoration:none}.btn-link:hover{color:#104097;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-lg,.btn-group-lg>.btn,.swal2-popup .swal2-actions .btn-group-lg>button{padding:.5rem 1rem;font-size:1.15rem;line-height:1.5;border-radius:.3rem}.btn-sm,.btn-group-sm>.btn,.swal2-popup .swal2-actions .btn-group-sm>button{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=\"submit\"].btn-block,input[type=\"reset\"].btn-block,input[type=\"button\"].btn-block{width:100%}.fade{transition:opacity 0.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 0.35s ease}@media (prefers-reduced-motion: reduce){.collapsing{transition:none}}.dropup,.dropright,.dropdown,.dropleft{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:#333;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width: 1px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width: 2px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width: 3px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width: 4px){.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^=\"top\"],.dropdown-menu[x-placement^=\"right\"],.dropdown-menu[x-placement^=\"bottom\"],.dropdown-menu[x-placement^=\"left\"]{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 1rem;clear:both;font-weight:400;color:#333;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:hover,.dropdown-item:focus{color:#16181b;text-decoration:none;background-color:rgba(0,0,0,0.06)}.dropdown-item.active,.dropdown-item:active{color:#333;text-decoration:none;background-color:rgba(0,0,0,0.1)}.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 1rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1rem;color:#333}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.swal2-popup .swal2-actions .btn-group>button,.btn-group-vertical>.btn,.swal2-popup .swal2-actions .btn-group-vertical>button{position:relative;flex:1 1 auto}.btn-group>.btn:hover,.swal2-popup .swal2-actions .btn-group>button:hover,.btn-group-vertical>.btn:hover,.swal2-popup .swal2-actions .btn-group-vertical>button:hover{z-index:1}.btn-group>.btn:focus,.swal2-popup .swal2-actions .btn-group>button:focus,.btn-group>.btn:active,.swal2-popup .swal2-actions .btn-group>button:active,.btn-group>.btn.active,.swal2-popup .swal2-actions .btn-group>button.active,.btn-group-vertical>.btn:focus,.swal2-popup .swal2-actions .btn-group-vertical>button:focus,.btn-group-vertical>.btn:active,.swal2-popup .swal2-actions .btn-group-vertical>button:active,.btn-group-vertical>.btn.active,.swal2-popup .swal2-actions .btn-group-vertical>button.active{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:not(:first-child),.swal2-popup .swal2-actions .btn-group>button:not(:first-child),.btn-group>.btn-group:not(:first-child){margin-left:-1px}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.swal2-popup .swal2-actions .btn-group>button:not(:last-child):not(.dropdown-toggle),.btn-group>.btn-group:not(:last-child)>.btn,.swal2-popup .swal2-actions .btn-group>.btn-group:not(:last-child)>button{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:not(:first-child),.swal2-popup .swal2-actions .btn-group>button:not(:first-child),.btn-group>.btn-group:not(:first-child)>.btn,.swal2-popup .swal2-actions .btn-group>.btn-group:not(:first-child)>button{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split,.swal2-popup .swal2-actions .btn-group-sm>button+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split,.swal2-popup .swal2-actions .btn-group-lg>button+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.swal2-popup .swal2-actions .btn-group-vertical>button,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.swal2-popup .swal2-actions .btn-group-vertical>button:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.swal2-popup .swal2-actions .btn-group-vertical>button:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn,.swal2-popup .swal2-actions .btn-group-vertical>.btn-group:not(:last-child)>button{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:not(:first-child),.swal2-popup .swal2-actions .btn-group-vertical>button:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child)>.btn,.swal2-popup .swal2-actions .btn-group-vertical>.btn-group:not(:first-child)>button{border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.swal2-popup .swal2-actions .btn-group-toggle>button,.btn-group-toggle>.btn-group>.btn,.swal2-popup .swal2-actions .btn-group-toggle>.btn-group>button{margin-bottom:0}.btn-group-toggle>.btn input[type=\"radio\"],.swal2-popup .swal2-actions .btn-group-toggle>button input[type=\"radio\"],.btn-group-toggle>.btn input[type=\"checkbox\"],.swal2-popup .swal2-actions .btn-group-toggle>button input[type=\"checkbox\"],.btn-group-toggle>.btn-group>.btn input[type=\"radio\"],.swal2-popup .swal2-actions .btn-group-toggle>.btn-group>button input[type=\"radio\"],.btn-group-toggle>.btn-group>.btn input[type=\"checkbox\"],.swal2-popup .swal2-actions .btn-group-toggle>.btn-group>button input[type=\"checkbox\"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-control-plaintext,.input-group>.custom-select,.input-group>.custom-file{position:relative;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.form-control+.form-control,.input-group>.form-control+.custom-select,.input-group>.form-control+.custom-file,.input-group>.form-control-plaintext+.form-control,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.custom-file,.input-group>.custom-select+.form-control,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.custom-file,.input-group>.custom-file+.form-control,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.custom-file{margin-left:-1px}.input-group>.form-control:focus,.input-group>.custom-select:focus,.input-group>.custom-file .custom-file-input:focus ~ .custom-file-label{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.form-control:not(:last-child),.input-group>.custom-select:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.form-control:not(:first-child),.input-group>.custom-select:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;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-prepend,.input-group-append{display:flex}.input-group-prepend .btn,.input-group-prepend .swal2-popup .swal2-actions button,.swal2-popup .swal2-actions .input-group-prepend button,.input-group-append .btn,.input-group-append .swal2-popup .swal2-actions button,.swal2-popup .swal2-actions .input-group-append button{position:relative;z-index:2}.input-group-prepend .btn:focus,.input-group-prepend .swal2-popup .swal2-actions button:focus,.swal2-popup .swal2-actions .input-group-prepend button:focus,.input-group-append .btn:focus,.input-group-append .swal2-popup .swal2-actions button:focus,.swal2-popup .swal2-actions .input-group-append button:focus{z-index:3}.input-group-prepend .btn+.btn,.input-group-prepend .swal2-popup .swal2-actions button+.btn,.swal2-popup .swal2-actions .input-group-prepend button+.btn,.input-group-prepend .swal2-popup .swal2-actions .btn+button,.swal2-popup .swal2-actions .input-group-prepend .btn+button,.input-group-prepend .swal2-popup .swal2-actions button+button,.swal2-popup .swal2-actions .input-group-prepend button+button,.input-group-prepend .btn+.input-group-text,.input-group-prepend .swal2-popup .swal2-actions button+.input-group-text,.swal2-popup .swal2-actions .input-group-prepend button+.input-group-text,.input-group-prepend .input-group-text+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .swal2-popup .swal2-actions .input-group-text+button,.swal2-popup .swal2-actions .input-group-prepend .input-group-text+button,.input-group-append .btn+.btn,.input-group-append .swal2-popup .swal2-actions button+.btn,.swal2-popup .swal2-actions .input-group-append button+.btn,.input-group-append .swal2-popup .swal2-actions .btn+button,.swal2-popup .swal2-actions .input-group-append .btn+button,.input-group-append .swal2-popup .swal2-actions button+button,.swal2-popup .swal2-actions .input-group-append button+button,.input-group-append .btn+.input-group-text,.input-group-append .swal2-popup .swal2-actions button+.input-group-text,.swal2-popup .swal2-actions .input-group-append button+.input-group-text,.input-group-append .input-group-text+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .swal2-popup .swal2-actions .input-group-text+button,.swal2-popup .swal2-actions .input-group-append .input-group-text+button{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;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=\"radio\"],.input-group-text input[type=\"checkbox\"]{margin-top:0}.input-group-lg>.form-control:not(textarea),.input-group-lg>.custom-select{height:calc(1.5em + 1rem + 2px)}.input-group-lg>.form-control,.input-group-lg>.custom-select,.input-group-lg>.input-group-prepend>.input-group-text,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.swal2-popup .swal2-actions .input-group-lg>.input-group-prepend>button,.input-group-lg>.input-group-append>.btn,.swal2-popup .swal2-actions .input-group-lg>.input-group-append>button{padding:.5rem 1rem;font-size:1.15rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.form-control:not(textarea),.input-group-sm>.custom-select{height:calc(1.5em + .5rem + 2px)}.input-group-sm>.form-control,.input-group-sm>.custom-select,.input-group-sm>.input-group-prepend>.input-group-text,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.swal2-popup .swal2-actions .input-group-sm>.input-group-prepend>button,.input-group-sm>.input-group-append>.btn,.swal2-popup .swal2-actions .input-group-sm>.input-group-append>button{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-prepend>.btn,.swal2-popup .swal2-actions .input-group>.input-group-prepend>button,.input-group>.input-group-prepend>.input-group-text,.input-group>.input-group-append:not(:last-child)>.btn,.swal2-popup .swal2-actions .input-group>.input-group-append:not(:last-child)>button,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.swal2-popup .swal2-actions .input-group>.input-group-append:last-child>button:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.swal2-popup .swal2-actions .input-group>.input-group-append>button,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:not(:first-child)>.btn,.swal2-popup .swal2-actions .input-group>.input-group-prepend:not(:first-child)>button,.input-group>.input-group-prepend:not(:first-child)>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.swal2-popup .swal2-actions .input-group>.input-group-prepend:first-child>button:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child){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:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked ~ .custom-control-label::before{color:#fff;border-color:#175DDC;background-color:#175DDC}.custom-control-input:focus ~ .custom-control-label::before{box-shadow:0 0 0 .2rem rgba(23,93,220,0.25)}.custom-control-input:focus:not(:checked) ~ .custom-control-label::before{border-color:#81a9f2}.custom-control-input:not(:disabled):active ~ .custom-control-label::before{color:#fff;background-color:#afc8f7;border-color:#afc8f7}.custom-control-input:disabled ~ .custom-control-label{color:#6c757d}.custom-control-input:disabled ~ .custom-control-label::before{background-color:#e0e0e0}.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:#fbfbfb;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' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e\")}.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before{border-color:#175DDC;background-color:#175DDC}.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' 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(23,93,220,0.5)}.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before{background-color:rgba(23,93,220,0.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' 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(23,93,220,0.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:transform 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.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:#fbfbfb;transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before{background-color:rgba(23,93,220,0.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:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' 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;background-color:#fbfbfb;border:1px solid #ced4da;border-radius:.25rem;appearance:none}.custom-select:focus{border-color:#81a9f2;outline:0;box-shadow:0 0 0 .2rem rgba(23,93,220,0.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fbfbfb}.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-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.15rem}.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:#81a9f2;box-shadow:0 0 0 .2rem rgba(23,93,220,0.25)}.custom-file-input:disabled ~ .custom-file-label{background-color:#e0e0e0}.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:#fbfbfb;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:calc(1rem + .4rem);padding:0;background-color:transparent;appearance:none}.custom-range:focus{outline:none}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(23,93,220,0.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(23,93,220,0.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(23,93,220,0.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#175DDC;border:0;border-radius:1rem;transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;appearance:none}@media (prefers-reduced-motion: reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#afc8f7}.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:#175DDC;border:0;border-radius:1rem;transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;appearance:none}@media (prefers-reduced-motion: reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#afc8f7}.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:#175DDC;border:0;border-radius:1rem;transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;appearance:none}@media (prefers-reduced-motion: reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#afc8f7}.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 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:hover,.nav-link:focus{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:hover,.nav-tabs .nav-link:focus{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{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:#175DDC}.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:.75rem 1rem}.navbar>.container,.navbar>.container-fluid{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:0;padding-bottom:0;margin-right:1rem;font-size:2.1875rem;line-height:inherit;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-nav{display:flex;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{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.15rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:hover,.navbar-toggler:focus{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: 0.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width: 1px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.8rem;padding-left:.8rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width: 1.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width: 2px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.8rem;padding-left:.8rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width: 2.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width: 3px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.8rem;padding-left:.8rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width: 3.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width: 4px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.8rem;padding-left:.8rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.8rem;padding-left:.8rem}.navbar-expand>.container,.navbar-expand>.container-fluid{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,0.9)}.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:focus{color:rgba(0,0,0,0.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,0.5)}.navbar-light .navbar-nav .nav-link:hover,.navbar-light .navbar-nav .nav-link:focus{color:rgba(0,0,0,0.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,0.3)}.navbar-light .navbar-nav .show>.nav-link,.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .nav-link.active{color:rgba(0,0,0,0.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,0.5);border-color:rgba(0,0,0,0.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0,0,0,0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\")}.navbar-light .navbar-text{color:rgba(0,0,0,0.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,0.9)}.navbar-light .navbar-text a:hover,.navbar-light .navbar-text a:focus{color:rgba(0,0,0,0.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:hover,.navbar-dark .navbar-brand:focus{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,0.7)}.navbar-dark .navbar-nav .nav-link:hover,.navbar-dark .navbar-nav .nav-link:focus{color:rgba(255,255,255,0.9)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,0.25)}.navbar-dark .navbar-nav .show>.nav-link,.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .nav-link.active{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,0.7);border-color:rgba(255,255,255,0.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255,255,255,0.7)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\")}.navbar-dark .navbar-text{color:rgba(255,255,255,0.7)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:hover,.navbar-dark .navbar-text a:focus{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,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{flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.6rem}.card-subtitle{margin-top:-.3rem;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:.6rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,0.03);border-bottom:1px solid rgba(0,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:.6rem 1.25rem;background-color:rgba(0,0,0,0.03);border-top:1px solid rgba(0,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:-.6rem;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{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:flex;flex-direction:column}.card-deck .card{margin-bottom:10px}@media (min-width: 1px){.card-deck{flex-flow:row wrap;margin-right:-10px;margin-left:-10px}.card-deck .card{display:flex;flex:1 0 0%;flex-direction:column;margin-right:10px;margin-bottom:0;margin-left:10px}}.card-group{display:flex;flex-direction:column}.card-group>.card{margin-bottom:10px}@media (min-width: 1px){.card-group{flex-flow:row wrap}.card-group>.card{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-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{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-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.6rem}@media (min-width: 1px){.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion>.card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion>.card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.accordion>.card .card-header{margin-bottom:-1px}.breadcrumb{display:flex;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: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:#175DDC;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#104097;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(23,93,220,0.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:1;color:#fff;background-color:#175DDC;border-color:#175DDC}.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.15rem;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 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.badge{transition:none}}a.badge:hover,a.badge:focus{text-decoration:none}.badge:empty{display:none}.btn .badge,.swal2-popup .swal2-actions button .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#175DDC}a.badge-primary:hover,a.badge-primary:focus{color:#fff;background-color:#1249ae}a.badge-primary:focus,a.badge-primary.focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,93,220,0.5)}.badge-secondary{color:#212529;background-color:#ced4da}a.badge-secondary:hover,a.badge-secondary:focus{color:#212529;background-color:#b1bbc4}a.badge-secondary:focus,a.badge-secondary.focus{outline:0;box-shadow:0 0 0 .2rem rgba(206,212,218,0.5)}.badge-success{color:#fff;background-color:#00a65a}a.badge-success:hover,a.badge-success:focus{color:#fff;background-color:#00733e}a.badge-success:focus,a.badge-success.focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,166,90,0.5)}.badge-info{color:#fff;background-color:#555}a.badge-info:hover,a.badge-info:focus{color:#fff;background-color:#3c3c3c}a.badge-info:focus,a.badge-info.focus{outline:0;box-shadow:0 0 0 .2rem rgba(85,85,85,0.5)}.badge-warning{color:#fff;background-color:#bf7e16}a.badge-warning:hover,a.badge-warning:focus{color:#fff;background-color:#916011}a.badge-warning:focus,a.badge-warning.focus{outline:0;box-shadow:0 0 0 .2rem rgba(191,126,22,0.5)}.badge-danger{color:#fff;background-color:#dd4b39}a.badge-danger:hover,a.badge-danger:focus{color:#fff;background-color:#c23321}a.badge-danger:focus,a.badge-danger.focus{outline:0;box-shadow:0 0 0 .2rem rgba(221,75,57,0.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:hover,a.badge-light:focus{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,0.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:hover,a.badge-dark:focus{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,0.5)}.badge-primary-accent{color:#fff;background-color:#1252A3}a.badge-primary-accent:hover,a.badge-primary-accent:focus{color:#fff;background-color:#0d3b75}a.badge-primary-accent:focus,a.badge-primary-accent.focus{outline:0;box-shadow:0 0 0 .2rem rgba(18,82,163,0.5)}.badge-secondary-alt{color:#fff;background-color:#1A3B66}a.badge-secondary-alt:hover,a.badge-secondary-alt:focus{color:#fff;background-color:#10233d}a.badge-secondary-alt:focus,a.badge-secondary-alt.focus{outline:0;box-shadow:0 0 0 .2rem rgba(26,59,102,0.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width: 1px){.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:#0c3072;background-color:#d1dff8;border-color:#bed2f5}.alert-primary hr{border-top-color:#a8c3f2}.alert-primary .alert-link{color:#071d44}.alert-secondary{color:#6b6e71;background-color:#f5f6f8;border-color:#f1f3f5}.alert-secondary hr{border-top-color:#e2e6ea}.alert-secondary .alert-link{color:#525557}.alert-success{color:#00562f;background-color:#ccedde;border-color:#b8e6d1}.alert-success hr{border-top-color:#a5dfc5}.alert-success .alert-link{color:#002313}.alert-info{color:#2c2c2c;background-color:#ddd;border-color:#cfcfcf}.alert-info hr{border-top-color:#c2c2c2}.alert-info .alert-link{color:#131313}.alert-warning{color:#63420b;background-color:#f2e5d0;border-color:#eddbbe}.alert-warning hr{border-top-color:#e7d0aa}.alert-warning .alert-link{color:#352306}.alert-danger{color:#73271e;background-color:#f8dbd7;border-color:#f5cdc8}.alert-danger hr{border-top-color:#f1b9b2}.alert-danger .alert-link{color:#4b1913}.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}.alert-primary-accent{color:#092b55;background-color:#d0dced;border-color:#bdcfe5}.alert-primary-accent hr{border-top-color:#abc2de}.alert-primary-accent .alert-link{color:#041427}.alert-secondary-alt{color:#0e1f35;background-color:#d1d8e0;border-color:#bfc8d4}.alert-secondary-alt hr{border-top-color:#b0bbca}.alert-secondary-alt .alert-link{color:#03070d}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#175DDC;transition:width 0.6s ease}@media (prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:1rem 1rem}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#333;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.6rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,0.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;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:#333;background-color:#fff;border-color:rgba(0,0,0,0.125)}.list-group-horizontal{flex-direction:row}.list-group-horizontal .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}@media (min-width: 1px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-sm .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width: 2px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-md .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width: 3px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-lg .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width: 4px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-xl .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush .list-group-item:last-child{margin-bottom:-1px}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{margin-bottom:0;border-bottom:0}.list-group-item-primary{color:#0c3072;background-color:#bed2f5}.list-group-item-primary.list-group-item-action:hover,.list-group-item-primary.list-group-item-action:focus{color:#0c3072;background-color:#a8c3f2}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#0c3072;border-color:#0c3072}.list-group-item-secondary{color:#6b6e71;background-color:#f1f3f5}.list-group-item-secondary.list-group-item-action:hover,.list-group-item-secondary.list-group-item-action:focus{color:#6b6e71;background-color:#e2e6ea}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#6b6e71;border-color:#6b6e71}.list-group-item-success{color:#00562f;background-color:#b8e6d1}.list-group-item-success.list-group-item-action:hover,.list-group-item-success.list-group-item-action:focus{color:#00562f;background-color:#a5dfc5}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#00562f;border-color:#00562f}.list-group-item-info{color:#2c2c2c;background-color:#cfcfcf}.list-group-item-info.list-group-item-action:hover,.list-group-item-info.list-group-item-action:focus{color:#2c2c2c;background-color:#c2c2c2}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#2c2c2c;border-color:#2c2c2c}.list-group-item-warning{color:#63420b;background-color:#eddbbe}.list-group-item-warning.list-group-item-action:hover,.list-group-item-warning.list-group-item-action:focus{color:#63420b;background-color:#e7d0aa}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#63420b;border-color:#63420b}.list-group-item-danger{color:#73271e;background-color:#f5cdc8}.list-group-item-danger.list-group-item-action:hover,.list-group-item-danger.list-group-item-action:focus{color:#73271e;background-color:#f1b9b2}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#73271e;border-color:#73271e}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:hover,.list-group-item-light.list-group-item-action:focus{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:hover,.list-group-item-dark.list-group-item-action:focus{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.list-group-item-primary-accent{color:#092b55;background-color:#bdcfe5}.list-group-item-primary-accent.list-group-item-action:hover,.list-group-item-primary-accent.list-group-item-action:focus{color:#092b55;background-color:#abc2de}.list-group-item-primary-accent.list-group-item-action.active{color:#fff;background-color:#092b55;border-color:#092b55}.list-group-item-secondary-alt{color:#0e1f35;background-color:#bfc8d4}.list-group-item-secondary-alt.list-group-item-action:hover,.list-group-item-secondary-alt.list-group-item-action:focus{color:#0e1f35;background-color:#b0bbca}.list-group-item-secondary-alt.list-group-item-action.active{color:#fff;background-color:#0e1f35;border-color:#0e1f35}.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):hover,.close:not(:disabled):not(.disabled):focus{opacity:.75}button.close{padding:0;background-color:transparent;border:0;appearance:none}a.close.disabled{pointer-events:none}.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:transform 0.3s ease-out;transform:translate(0, -50px)}@media (prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-header,.modal-dialog-scrollable .modal-footer{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;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{flex-direction:column;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:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,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:.3}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;align-items:center;justify-content:flex-end;padding:1rem;border-top:1px solid #dee2e6;border-bottom-right-radius:.3rem;border-bottom-left-radius:.3rem}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width: 1px){.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: 3px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width: 4px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:\"Open Sans\",\"Helvetica Neue\",Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\";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-top,.bs-tooltip-auto[x-placement^=\"top\"]{padding:.4rem 0}.bs-tooltip-top .arrow,.bs-tooltip-auto[x-placement^=\"top\"] .arrow{bottom:0}.bs-tooltip-top .arrow::before,.bs-tooltip-auto[x-placement^=\"top\"] .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-right,.bs-tooltip-auto[x-placement^=\"right\"]{padding:0 .4rem}.bs-tooltip-right .arrow,.bs-tooltip-auto[x-placement^=\"right\"] .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-right .arrow::before,.bs-tooltip-auto[x-placement^=\"right\"] .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-bottom,.bs-tooltip-auto[x-placement^=\"bottom\"]{padding:.4rem 0}.bs-tooltip-bottom .arrow,.bs-tooltip-auto[x-placement^=\"bottom\"] .arrow{top:0}.bs-tooltip-bottom .arrow::before,.bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-left,.bs-tooltip-auto[x-placement^=\"left\"]{padding:0 .4rem}.bs-tooltip-left .arrow,.bs-tooltip-auto[x-placement^=\"left\"] .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-left .arrow::before,.bs-tooltip-auto[x-placement^=\"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:\"Open Sans\",\"Helvetica Neue\",Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\";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,0.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::before,.popover .arrow::after{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-top,.bs-popover-auto[x-placement^=\"top\"]{margin-bottom:.5rem}.bs-popover-top>.arrow,.bs-popover-auto[x-placement^=\"top\"]>.arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-top>.arrow::before,.bs-popover-auto[x-placement^=\"top\"]>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,0.25)}.bs-popover-top>.arrow::after,.bs-popover-auto[x-placement^=\"top\"]>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-right,.bs-popover-auto[x-placement^=\"right\"]{margin-left:.5rem}.bs-popover-right>.arrow,.bs-popover-auto[x-placement^=\"right\"]>.arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-right>.arrow::before,.bs-popover-auto[x-placement^=\"right\"]>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,0.25)}.bs-popover-right>.arrow::after,.bs-popover-auto[x-placement^=\"right\"]>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-bottom,.bs-popover-auto[x-placement^=\"bottom\"]{margin-top:.5rem}.bs-popover-bottom>.arrow,.bs-popover-auto[x-placement^=\"bottom\"]>.arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-bottom>.arrow::before,.bs-popover-auto[x-placement^=\"bottom\"]>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,0.25)}.bs-popover-bottom>.arrow::after,.bs-popover-auto[x-placement^=\"bottom\"]>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-bottom .popover-header::before,.bs-popover-auto[x-placement^=\"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-left,.bs-popover-auto[x-placement^=\"left\"]{margin-right:.5rem}.bs-popover-left>.arrow,.bs-popover-auto[x-placement^=\"left\"]>.arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-left>.arrow::before,.bs-popover-auto[x-placement^=\"left\"]>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,0.25)}.bs-popover-left>.arrow::after,.bs-popover-auto[x-placement^=\"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:#333}.carousel{position:relative}.carousel.pointer-event{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%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-left),.active.carousel-item-right{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-right),.active.carousel-item-left{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:0s .6s opacity}@media (prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity 0.15s ease}@media (prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-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' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%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' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e\")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;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 0.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}@keyframes spinner-border{to{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%;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{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;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:#175DDC !important}a.bg-primary:hover,a.bg-primary:focus,button.bg-primary:hover,button.bg-primary:focus{background-color:#1249ae !important}.bg-secondary{background-color:#ced4da !important}a.bg-secondary:hover,a.bg-secondary:focus,button.bg-secondary:hover,button.bg-secondary:focus{background-color:#b1bbc4 !important}.bg-success{background-color:#00a65a !important}a.bg-success:hover,a.bg-success:focus,button.bg-success:hover,button.bg-success:focus{background-color:#00733e !important}.bg-info{background-color:#555 !important}a.bg-info:hover,a.bg-info:focus,button.bg-info:hover,button.bg-info:focus{background-color:#3c3c3c !important}.bg-warning{background-color:#bf7e16 !important}a.bg-warning:hover,a.bg-warning:focus,button.bg-warning:hover,button.bg-warning:focus{background-color:#916011 !important}.bg-danger{background-color:#dd4b39 !important}a.bg-danger:hover,a.bg-danger:focus,button.bg-danger:hover,button.bg-danger:focus{background-color:#c23321 !important}.bg-light{background-color:#f8f9fa !important}a.bg-light:hover,a.bg-light:focus,button.bg-light:hover,button.bg-light:focus{background-color:#dae0e5 !important}.bg-dark{background-color:#343a40 !important}a.bg-dark:hover,a.bg-dark:focus,button.bg-dark:hover,button.bg-dark:focus{background-color:#1d2124 !important}.bg-primary-accent{background-color:#1252A3 !important}a.bg-primary-accent:hover,a.bg-primary-accent:focus,button.bg-primary-accent:hover,button.bg-primary-accent:focus{background-color:#0d3b75 !important}.bg-secondary-alt{background-color:#1A3B66 !important}a.bg-secondary-alt:hover,a.bg-secondary-alt:focus,button.bg-secondary-alt:hover,button.bg-secondary-alt:focus{background-color:#10233d !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:#175DDC !important}.border-secondary{border-color:#ced4da !important}.border-success{border-color:#00a65a !important}.border-info{border-color:#555 !important}.border-warning{border-color:#bf7e16 !important}.border-danger{border-color:#dd4b39 !important}.border-light{border-color:#f8f9fa !important}.border-dark{border-color:#343a40 !important}.border-primary-accent{border-color:#1252A3 !important}.border-secondary-alt{border-color:#1A3B66 !important}.border-white{border-color:#fff !important}.rounded-sm{border-radius:.2rem !important}.rounded,.table.table-list td.table-list-icon img,app-avatar img{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:flex !important}.d-inline-flex{display:inline-flex !important}@media (min-width: 1px){.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:flex !important}.d-sm-inline-flex{display:inline-flex !important}}@media (min-width: 2px){.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:flex !important}.d-md-inline-flex{display:inline-flex !important}}@media (min-width: 3px){.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:flex !important}.d-lg-inline-flex{display:inline-flex !important}}@media (min-width: 4px){.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:flex !important}.d-xl-inline-flex{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:flex !important}.d-print-inline-flex{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 iframe,.embed-responsive embed,.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.85714%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-fill{flex:1 1 auto !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}@media (min-width: 1px){.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}}@media (min-width: 2px){.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}}@media (min-width: 3px){.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}}@media (min-width: 4px){.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}}.float-left{float:left !important}.float-right{float:right !important}.float-none{float:none !important}@media (min-width: 1px){.float-sm-left{float:left !important}.float-sm-right{float:right !important}.float-sm-none{float:none !important}}@media (min-width: 2px){.float-md-left{float:left !important}.float-md-right{float:right !important}.float-md-none{float:none !important}}@media (min-width: 3px){.float-lg-left{float:left !important}.float-lg-right{float:right !important}.float-lg-none{float:none !important}}@media (min-width: 4px){.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: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: sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only,.table.table-list tr:not(:hover) td.table-list-options>.dropdown:not(.show) button:not(:focus):not(:active),.table.table-list tr:not(:hover) td.table-list-options>button:not(:focus):not(:active){position:absolute;width:1px;height:1px;padding:0;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 0.125rem 0.25rem rgba(0,0,0,0.075) !important}.shadow{box-shadow:0 0.5rem 1rem rgba(0,0,0,0.15) !important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,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,.form-check-block .form-check-label>span,.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,.form-check-block+.form-check-block:not(.mt-2),.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,.card-body-header,.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: 1px){.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: 2px){.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: 3px){.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: 4px){.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,.totp .totp-code{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: 1px){.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}.text-sm-center{text-align:center !important}}@media (min-width: 2px){.text-md-left{text-align:left !important}.text-md-right{text-align:right !important}.text-md-center{text-align:center !important}}@media (min-width: 3px){.text-lg-left{text-align:left !important}.text-lg-right{text-align:right !important}.text-lg-center{text-align:center !important}}@media (min-width: 4px){.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:#175DDC !important}a.text-primary:hover,a.text-primary:focus{color:#104097 !important}.text-secondary{color:#ced4da !important}a.text-secondary:hover,a.text-secondary:focus{color:#a2aeb9 !important}.text-success{color:#00a65a !important}a.text-success:hover,a.text-success:focus{color:#005a31 !important}.text-info{color:#555 !important}a.text-info:hover,a.text-info:focus{color:#2f2f2f !important}.text-warning{color:#bf7e16 !important}a.text-warning:hover,a.text-warning:focus{color:#7a510e !important}.text-danger{color:#dd4b39 !important}a.text-danger:hover,a.text-danger:focus{color:#ac2d1e !important}.text-light{color:#f8f9fa !important}a.text-light:hover,a.text-light:focus{color:#cbd3da !important}.text-dark{color:#343a40 !important}a.text-dark:hover,a.text-dark:focus{color:#121416 !important}.text-primary-accent{color:#1252A3 !important}a.text-primary-accent:hover,a.text-primary-accent:focus{color:#0a2f5e !important}.text-secondary-alt{color:#1A3B66 !important}a.text-secondary-alt:hover,a.text-secondary-alt:focus{color:#0a1829 !important}.text-body{color:#333 !important}.text-muted,.card-header small,.modal-header small{color:#6c757d !important}.text-black-50{color:rgba(0,0,0,0.5) !important}.text-white-50{color:rgba(255,255,255,0.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{*,*::before,*::after{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}pre,blockquote{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:3px !important}.container{min-width:3px !important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #dee2e6 !important}.table-dark{color:inherit}.table-dark th,.table-dark td,.table-dark thead th,.table-dark tbody+tbody{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}/*!\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */@font-face{font-family:'FontAwesome';src:url(../fonts/fontawesome-webfont.eot);src:url(../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0) format(\"embedded-opentype\"),url(../fonts/fontawesome-webfont.woff2) format(\"woff2\"),url(../fonts/fontawesome-webfont.woff) format(\"woff\"),url(../fonts/fontawesome-webfont.ttf) format(\"truetype\"),url(../fonts/fontawesome-webfont.svg#fontawesomeregular) format(\"svg\");font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.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(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:\"\\F000\"}.fa-music:before{content:\"\\F001\"}.fa-search:before{content:\"\\F002\"}.fa-envelope-o:before{content:\"\\F003\"}.fa-heart:before{content:\"\\F004\"}.fa-star:before{content:\"\\F005\"}.fa-star-o:before{content:\"\\F006\"}.fa-user:before{content:\"\\F007\"}.fa-film:before{content:\"\\F008\"}.fa-th-large:before{content:\"\\F009\"}.fa-th:before{content:\"\\F00A\"}.fa-th-list:before{content:\"\\F00B\"}.fa-check:before{content:\"\\F00C\"}.fa-remove:before,.fa-close:before,.fa-times:before{content:\"\\F00D\"}.fa-search-plus:before{content:\"\\F00E\"}.fa-search-minus:before{content:\"\\F010\"}.fa-power-off:before{content:\"\\F011\"}.fa-signal:before{content:\"\\F012\"}.fa-gear:before,.fa-cog:before{content:\"\\F013\"}.fa-trash-o:before{content:\"\\F014\"}.fa-home:before{content:\"\\F015\"}.fa-file-o:before{content:\"\\F016\"}.fa-clock-o:before{content:\"\\F017\"}.fa-road:before{content:\"\\F018\"}.fa-download:before{content:\"\\F019\"}.fa-arrow-circle-o-down:before{content:\"\\F01A\"}.fa-arrow-circle-o-up:before{content:\"\\F01B\"}.fa-inbox:before{content:\"\\F01C\"}.fa-play-circle-o:before{content:\"\\F01D\"}.fa-rotate-right:before,.fa-repeat:before{content:\"\\F01E\"}.fa-refresh:before{content:\"\\F021\"}.fa-list-alt:before{content:\"\\F022\"}.fa-lock:before{content:\"\\F023\"}.fa-flag:before{content:\"\\F024\"}.fa-headphones:before{content:\"\\F025\"}.fa-volume-off:before{content:\"\\F026\"}.fa-volume-down:before{content:\"\\F027\"}.fa-volume-up:before{content:\"\\F028\"}.fa-qrcode:before{content:\"\\F029\"}.fa-barcode:before{content:\"\\F02A\"}.fa-tag:before{content:\"\\F02B\"}.fa-tags:before{content:\"\\F02C\"}.fa-book:before{content:\"\\F02D\"}.fa-bookmark:before{content:\"\\F02E\"}.fa-print:before{content:\"\\F02F\"}.fa-camera:before{content:\"\\F030\"}.fa-font:before{content:\"\\F031\"}.fa-bold:before{content:\"\\F032\"}.fa-italic:before{content:\"\\F033\"}.fa-text-height:before{content:\"\\F034\"}.fa-text-width:before{content:\"\\F035\"}.fa-align-left:before{content:\"\\F036\"}.fa-align-center:before{content:\"\\F037\"}.fa-align-right:before{content:\"\\F038\"}.fa-align-justify:before{content:\"\\F039\"}.fa-list:before{content:\"\\F03A\"}.fa-dedent:before,.fa-outdent:before{content:\"\\F03B\"}.fa-indent:before{content:\"\\F03C\"}.fa-video-camera:before{content:\"\\F03D\"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:\"\\F03E\"}.fa-pencil:before{content:\"\\F040\"}.fa-map-marker:before{content:\"\\F041\"}.fa-adjust:before{content:\"\\F042\"}.fa-tint:before{content:\"\\F043\"}.fa-edit:before,.fa-pencil-square-o:before{content:\"\\F044\"}.fa-share-square-o:before{content:\"\\F045\"}.fa-check-square-o:before{content:\"\\F046\"}.fa-arrows:before{content:\"\\F047\"}.fa-step-backward:before{content:\"\\F048\"}.fa-fast-backward:before{content:\"\\F049\"}.fa-backward:before{content:\"\\F04A\"}.fa-play:before{content:\"\\F04B\"}.fa-pause:before{content:\"\\F04C\"}.fa-stop:before{content:\"\\F04D\"}.fa-forward:before{content:\"\\F04E\"}.fa-fast-forward:before{content:\"\\F050\"}.fa-step-forward:before{content:\"\\F051\"}.fa-eject:before{content:\"\\F052\"}.fa-chevron-left:before{content:\"\\F053\"}.fa-chevron-right:before{content:\"\\F054\"}.fa-plus-circle:before{content:\"\\F055\"}.fa-minus-circle:before{content:\"\\F056\"}.fa-times-circle:before{content:\"\\F057\"}.fa-check-circle:before{content:\"\\F058\"}.fa-question-circle:before{content:\"\\F059\"}.fa-info-circle:before{content:\"\\F05A\"}.fa-crosshairs:before{content:\"\\F05B\"}.fa-times-circle-o:before{content:\"\\F05C\"}.fa-check-circle-o:before{content:\"\\F05D\"}.fa-ban:before{content:\"\\F05E\"}.fa-arrow-left:before{content:\"\\F060\"}.fa-arrow-right:before{content:\"\\F061\"}.fa-arrow-up:before{content:\"\\F062\"}.fa-arrow-down:before{content:\"\\F063\"}.fa-mail-forward:before,.fa-share:before{content:\"\\F064\"}.fa-expand:before{content:\"\\F065\"}.fa-compress:before{content:\"\\F066\"}.fa-plus:before{content:\"\\F067\"}.fa-minus:before{content:\"\\F068\"}.fa-asterisk:before{content:\"\\F069\"}.fa-exclamation-circle:before{content:\"\\F06A\"}.fa-gift:before{content:\"\\F06B\"}.fa-leaf:before{content:\"\\F06C\"}.fa-fire:before{content:\"\\F06D\"}.fa-eye:before{content:\"\\F06E\"}.fa-eye-slash:before{content:\"\\F070\"}.fa-warning:before,.fa-exclamation-triangle:before{content:\"\\F071\"}.fa-plane:before{content:\"\\F072\"}.fa-calendar:before{content:\"\\F073\"}.fa-random:before{content:\"\\F074\"}.fa-comment:before{content:\"\\F075\"}.fa-magnet:before{content:\"\\F076\"}.fa-chevron-up:before{content:\"\\F077\"}.fa-chevron-down:before{content:\"\\F078\"}.fa-retweet:before{content:\"\\F079\"}.fa-shopping-cart:before{content:\"\\F07A\"}.fa-folder:before{content:\"\\F07B\"}.fa-folder-open:before{content:\"\\F07C\"}.fa-arrows-v:before{content:\"\\F07D\"}.fa-arrows-h:before{content:\"\\F07E\"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:\"\\F080\"}.fa-twitter-square:before{content:\"\\F081\"}.fa-facebook-square:before{content:\"\\F082\"}.fa-camera-retro:before{content:\"\\F083\"}.fa-key:before{content:\"\\F084\"}.fa-gears:before,.fa-cogs:before{content:\"\\F085\"}.fa-comments:before{content:\"\\F086\"}.fa-thumbs-o-up:before{content:\"\\F087\"}.fa-thumbs-o-down:before{content:\"\\F088\"}.fa-star-half:before{content:\"\\F089\"}.fa-heart-o:before{content:\"\\F08A\"}.fa-sign-out:before{content:\"\\F08B\"}.fa-linkedin-square:before{content:\"\\F08C\"}.fa-thumb-tack:before{content:\"\\F08D\"}.fa-external-link:before{content:\"\\F08E\"}.fa-sign-in:before{content:\"\\F090\"}.fa-trophy:before{content:\"\\F091\"}.fa-github-square:before{content:\"\\F092\"}.fa-upload:before{content:\"\\F093\"}.fa-lemon-o:before{content:\"\\F094\"}.fa-phone:before{content:\"\\F095\"}.fa-square-o:before{content:\"\\F096\"}.fa-bookmark-o:before{content:\"\\F097\"}.fa-phone-square:before{content:\"\\F098\"}.fa-twitter:before{content:\"\\F099\"}.fa-facebook-f:before,.fa-facebook:before{content:\"\\F09A\"}.fa-github:before{content:\"\\F09B\"}.fa-unlock:before{content:\"\\F09C\"}.fa-credit-card:before{content:\"\\F09D\"}.fa-feed:before,.fa-rss:before{content:\"\\F09E\"}.fa-hdd-o:before{content:\"\\F0A0\"}.fa-bullhorn:before{content:\"\\F0A1\"}.fa-bell:before{content:\"\\F0F3\"}.fa-certificate:before{content:\"\\F0A3\"}.fa-hand-o-right:before{content:\"\\F0A4\"}.fa-hand-o-left:before{content:\"\\F0A5\"}.fa-hand-o-up:before{content:\"\\F0A6\"}.fa-hand-o-down:before{content:\"\\F0A7\"}.fa-arrow-circle-left:before{content:\"\\F0A8\"}.fa-arrow-circle-right:before{content:\"\\F0A9\"}.fa-arrow-circle-up:before{content:\"\\F0AA\"}.fa-arrow-circle-down:before{content:\"\\F0AB\"}.fa-globe:before{content:\"\\F0AC\"}.fa-wrench:before{content:\"\\F0AD\"}.fa-tasks:before{content:\"\\F0AE\"}.fa-filter:before{content:\"\\F0B0\"}.fa-briefcase:before{content:\"\\F0B1\"}.fa-arrows-alt:before{content:\"\\F0B2\"}.fa-group:before,.fa-users:before{content:\"\\F0C0\"}.fa-chain:before,.fa-link:before{content:\"\\F0C1\"}.fa-cloud:before{content:\"\\F0C2\"}.fa-flask:before{content:\"\\F0C3\"}.fa-cut:before,.fa-scissors:before{content:\"\\F0C4\"}.fa-copy:before,.fa-files-o:before{content:\"\\F0C5\"}.fa-paperclip:before{content:\"\\F0C6\"}.fa-save:before,.fa-floppy-o:before{content:\"\\F0C7\"}.fa-square:before{content:\"\\F0C8\"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:\"\\F0C9\"}.fa-list-ul:before{content:\"\\F0CA\"}.fa-list-ol:before{content:\"\\F0CB\"}.fa-strikethrough:before{content:\"\\F0CC\"}.fa-underline:before{content:\"\\F0CD\"}.fa-table:before{content:\"\\F0CE\"}.fa-magic:before{content:\"\\F0D0\"}.fa-truck:before{content:\"\\F0D1\"}.fa-pinterest:before{content:\"\\F0D2\"}.fa-pinterest-square:before{content:\"\\F0D3\"}.fa-google-plus-square:before{content:\"\\F0D4\"}.fa-google-plus:before{content:\"\\F0D5\"}.fa-money:before{content:\"\\F0D6\"}.fa-caret-down:before{content:\"\\F0D7\"}.fa-caret-up:before{content:\"\\F0D8\"}.fa-caret-left:before{content:\"\\F0D9\"}.fa-caret-right:before{content:\"\\F0DA\"}.fa-columns:before{content:\"\\F0DB\"}.fa-unsorted:before,.fa-sort:before{content:\"\\F0DC\"}.fa-sort-down:before,.fa-sort-desc:before{content:\"\\F0DD\"}.fa-sort-up:before,.fa-sort-asc:before{content:\"\\F0DE\"}.fa-envelope:before{content:\"\\F0E0\"}.fa-linkedin:before{content:\"\\F0E1\"}.fa-rotate-left:before,.fa-undo:before{content:\"\\F0E2\"}.fa-legal:before,.fa-gavel:before{content:\"\\F0E3\"}.fa-dashboard:before,.fa-tachometer:before{content:\"\\F0E4\"}.fa-comment-o:before{content:\"\\F0E5\"}.fa-comments-o:before{content:\"\\F0E6\"}.fa-flash:before,.fa-bolt:before{content:\"\\F0E7\"}.fa-sitemap:before{content:\"\\F0E8\"}.fa-umbrella:before{content:\"\\F0E9\"}.fa-paste:before,.fa-clipboard:before{content:\"\\F0EA\"}.fa-lightbulb-o:before{content:\"\\F0EB\"}.fa-exchange:before{content:\"\\F0EC\"}.fa-cloud-download:before{content:\"\\F0ED\"}.fa-cloud-upload:before{content:\"\\F0EE\"}.fa-user-md:before{content:\"\\F0F0\"}.fa-stethoscope:before{content:\"\\F0F1\"}.fa-suitcase:before{content:\"\\F0F2\"}.fa-bell-o:before{content:\"\\F0A2\"}.fa-coffee:before{content:\"\\F0F4\"}.fa-cutlery:before{content:\"\\F0F5\"}.fa-file-text-o:before{content:\"\\F0F6\"}.fa-building-o:before{content:\"\\F0F7\"}.fa-hospital-o:before{content:\"\\F0F8\"}.fa-ambulance:before{content:\"\\F0F9\"}.fa-medkit:before{content:\"\\F0FA\"}.fa-fighter-jet:before{content:\"\\F0FB\"}.fa-beer:before{content:\"\\F0FC\"}.fa-h-square:before{content:\"\\F0FD\"}.fa-plus-square:before{content:\"\\F0FE\"}.fa-angle-double-left:before{content:\"\\F100\"}.fa-angle-double-right:before{content:\"\\F101\"}.fa-angle-double-up:before{content:\"\\F102\"}.fa-angle-double-down:before{content:\"\\F103\"}.fa-angle-left:before{content:\"\\F104\"}.fa-angle-right:before{content:\"\\F105\"}.fa-angle-up:before{content:\"\\F106\"}.fa-angle-down:before{content:\"\\F107\"}.fa-desktop:before{content:\"\\F108\"}.fa-laptop:before{content:\"\\F109\"}.fa-tablet:before{content:\"\\F10A\"}.fa-mobile-phone:before,.fa-mobile:before{content:\"\\F10B\"}.fa-circle-o:before{content:\"\\F10C\"}.fa-quote-left:before{content:\"\\F10D\"}.fa-quote-right:before{content:\"\\F10E\"}.fa-spinner:before{content:\"\\F110\"}.fa-circle:before{content:\"\\F111\"}.fa-mail-reply:before,.fa-reply:before{content:\"\\F112\"}.fa-github-alt:before{content:\"\\F113\"}.fa-folder-o:before{content:\"\\F114\"}.fa-folder-open-o:before{content:\"\\F115\"}.fa-smile-o:before{content:\"\\F118\"}.fa-frown-o:before{content:\"\\F119\"}.fa-meh-o:before{content:\"\\F11A\"}.fa-gamepad:before{content:\"\\F11B\"}.fa-keyboard-o:before{content:\"\\F11C\"}.fa-flag-o:before{content:\"\\F11D\"}.fa-flag-checkered:before{content:\"\\F11E\"}.fa-terminal:before{content:\"\\F120\"}.fa-code:before{content:\"\\F121\"}.fa-mail-reply-all:before,.fa-reply-all:before{content:\"\\F122\"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:\"\\F123\"}.fa-location-arrow:before{content:\"\\F124\"}.fa-crop:before{content:\"\\F125\"}.fa-code-fork:before{content:\"\\F126\"}.fa-unlink:before,.fa-chain-broken:before{content:\"\\F127\"}.fa-question:before{content:\"\\F128\"}.fa-info:before{content:\"\\F129\"}.fa-exclamation:before{content:\"\\F12A\"}.fa-superscript:before{content:\"\\F12B\"}.fa-subscript:before{content:\"\\F12C\"}.fa-eraser:before{content:\"\\F12D\"}.fa-puzzle-piece:before{content:\"\\F12E\"}.fa-microphone:before{content:\"\\F130\"}.fa-microphone-slash:before{content:\"\\F131\"}.fa-shield:before{content:\"\\F132\"}.fa-calendar-o:before{content:\"\\F133\"}.fa-fire-extinguisher:before{content:\"\\F134\"}.fa-rocket:before{content:\"\\F135\"}.fa-maxcdn:before{content:\"\\F136\"}.fa-chevron-circle-left:before{content:\"\\F137\"}.fa-chevron-circle-right:before{content:\"\\F138\"}.fa-chevron-circle-up:before{content:\"\\F139\"}.fa-chevron-circle-down:before{content:\"\\F13A\"}.fa-html5:before{content:\"\\F13B\"}.fa-css3:before{content:\"\\F13C\"}.fa-anchor:before{content:\"\\F13D\"}.fa-unlock-alt:before{content:\"\\F13E\"}.fa-bullseye:before{content:\"\\F140\"}.fa-ellipsis-h:before{content:\"\\F141\"}.fa-ellipsis-v:before{content:\"\\F142\"}.fa-rss-square:before{content:\"\\F143\"}.fa-play-circle:before{content:\"\\F144\"}.fa-ticket:before{content:\"\\F145\"}.fa-minus-square:before{content:\"\\F146\"}.fa-minus-square-o:before{content:\"\\F147\"}.fa-level-up:before{content:\"\\F148\"}.fa-level-down:before{content:\"\\F149\"}.fa-check-square:before{content:\"\\F14A\"}.fa-pencil-square:before{content:\"\\F14B\"}.fa-external-link-square:before{content:\"\\F14C\"}.fa-share-square:before{content:\"\\F14D\"}.fa-compass:before{content:\"\\F14E\"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:\"\\F150\"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:\"\\F151\"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:\"\\F152\"}.fa-euro:before,.fa-eur:before{content:\"\\F153\"}.fa-gbp:before{content:\"\\F154\"}.fa-dollar:before,.fa-usd:before{content:\"\\F155\"}.fa-rupee:before,.fa-inr:before{content:\"\\F156\"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:\"\\F157\"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:\"\\F158\"}.fa-won:before,.fa-krw:before{content:\"\\F159\"}.fa-bitcoin:before,.fa-btc:before{content:\"\\F15A\"}.fa-file:before{content:\"\\F15B\"}.fa-file-text:before{content:\"\\F15C\"}.fa-sort-alpha-asc:before{content:\"\\F15D\"}.fa-sort-alpha-desc:before{content:\"\\F15E\"}.fa-sort-amount-asc:before{content:\"\\F160\"}.fa-sort-amount-desc:before{content:\"\\F161\"}.fa-sort-numeric-asc:before{content:\"\\F162\"}.fa-sort-numeric-desc:before{content:\"\\F163\"}.fa-thumbs-up:before{content:\"\\F164\"}.fa-thumbs-down:before{content:\"\\F165\"}.fa-youtube-square:before{content:\"\\F166\"}.fa-youtube:before{content:\"\\F167\"}.fa-xing:before{content:\"\\F168\"}.fa-xing-square:before{content:\"\\F169\"}.fa-youtube-play:before{content:\"\\F16A\"}.fa-dropbox:before{content:\"\\F16B\"}.fa-stack-overflow:before{content:\"\\F16C\"}.fa-instagram:before{content:\"\\F16D\"}.fa-flickr:before{content:\"\\F16E\"}.fa-adn:before{content:\"\\F170\"}.fa-bitbucket:before{content:\"\\F171\"}.fa-bitbucket-square:before{content:\"\\F172\"}.fa-tumblr:before{content:\"\\F173\"}.fa-tumblr-square:before{content:\"\\F174\"}.fa-long-arrow-down:before{content:\"\\F175\"}.fa-long-arrow-up:before{content:\"\\F176\"}.fa-long-arrow-left:before{content:\"\\F177\"}.fa-long-arrow-right:before{content:\"\\F178\"}.fa-apple:before{content:\"\\F179\"}.fa-windows:before{content:\"\\F17A\"}.fa-android:before{content:\"\\F17B\"}.fa-linux:before{content:\"\\F17C\"}.fa-dribbble:before{content:\"\\F17D\"}.fa-skype:before{content:\"\\F17E\"}.fa-foursquare:before{content:\"\\F180\"}.fa-trello:before{content:\"\\F181\"}.fa-female:before{content:\"\\F182\"}.fa-male:before{content:\"\\F183\"}.fa-gittip:before,.fa-gratipay:before{content:\"\\F184\"}.fa-sun-o:before{content:\"\\F185\"}.fa-moon-o:before{content:\"\\F186\"}.fa-archive:before{content:\"\\F187\"}.fa-bug:before{content:\"\\F188\"}.fa-vk:before{content:\"\\F189\"}.fa-weibo:before{content:\"\\F18A\"}.fa-renren:before{content:\"\\F18B\"}.fa-pagelines:before{content:\"\\F18C\"}.fa-stack-exchange:before{content:\"\\F18D\"}.fa-arrow-circle-o-right:before{content:\"\\F18E\"}.fa-arrow-circle-o-left:before{content:\"\\F190\"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:\"\\F191\"}.fa-dot-circle-o:before{content:\"\\F192\"}.fa-wheelchair:before{content:\"\\F193\"}.fa-vimeo-square:before{content:\"\\F194\"}.fa-turkish-lira:before,.fa-try:before{content:\"\\F195\"}.fa-plus-square-o:before{content:\"\\F196\"}.fa-space-shuttle:before{content:\"\\F197\"}.fa-slack:before{content:\"\\F198\"}.fa-envelope-square:before{content:\"\\F199\"}.fa-wordpress:before{content:\"\\F19A\"}.fa-openid:before{content:\"\\F19B\"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:\"\\F19C\"}.fa-mortar-board:before,.fa-graduation-cap:before{content:\"\\F19D\"}.fa-yahoo:before{content:\"\\F19E\"}.fa-google:before{content:\"\\F1A0\"}.fa-reddit:before{content:\"\\F1A1\"}.fa-reddit-square:before{content:\"\\F1A2\"}.fa-stumbleupon-circle:before{content:\"\\F1A3\"}.fa-stumbleupon:before{content:\"\\F1A4\"}.fa-delicious:before{content:\"\\F1A5\"}.fa-digg:before{content:\"\\F1A6\"}.fa-pied-piper-pp:before{content:\"\\F1A7\"}.fa-pied-piper-alt:before{content:\"\\F1A8\"}.fa-drupal:before{content:\"\\F1A9\"}.fa-joomla:before{content:\"\\F1AA\"}.fa-language:before{content:\"\\F1AB\"}.fa-fax:before{content:\"\\F1AC\"}.fa-building:before{content:\"\\F1AD\"}.fa-child:before{content:\"\\F1AE\"}.fa-paw:before{content:\"\\F1B0\"}.fa-spoon:before{content:\"\\F1B1\"}.fa-cube:before{content:\"\\F1B2\"}.fa-cubes:before{content:\"\\F1B3\"}.fa-behance:before{content:\"\\F1B4\"}.fa-behance-square:before{content:\"\\F1B5\"}.fa-steam:before{content:\"\\F1B6\"}.fa-steam-square:before{content:\"\\F1B7\"}.fa-recycle:before{content:\"\\F1B8\"}.fa-automobile:before,.fa-car:before{content:\"\\F1B9\"}.fa-cab:before,.fa-taxi:before{content:\"\\F1BA\"}.fa-tree:before{content:\"\\F1BB\"}.fa-spotify:before{content:\"\\F1BC\"}.fa-deviantart:before{content:\"\\F1BD\"}.fa-soundcloud:before{content:\"\\F1BE\"}.fa-database:before{content:\"\\F1C0\"}.fa-file-pdf-o:before{content:\"\\F1C1\"}.fa-file-word-o:before{content:\"\\F1C2\"}.fa-file-excel-o:before{content:\"\\F1C3\"}.fa-file-powerpoint-o:before{content:\"\\F1C4\"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:\"\\F1C5\"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:\"\\F1C6\"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:\"\\F1C7\"}.fa-file-movie-o:before,.fa-file-video-o:before{content:\"\\F1C8\"}.fa-file-code-o:before{content:\"\\F1C9\"}.fa-vine:before{content:\"\\F1CA\"}.fa-codepen:before{content:\"\\F1CB\"}.fa-jsfiddle:before{content:\"\\F1CC\"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:\"\\F1CD\"}.fa-circle-o-notch:before{content:\"\\F1CE\"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:\"\\F1D0\"}.fa-ge:before,.fa-empire:before{content:\"\\F1D1\"}.fa-git-square:before{content:\"\\F1D2\"}.fa-git:before{content:\"\\F1D3\"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:\"\\F1D4\"}.fa-tencent-weibo:before{content:\"\\F1D5\"}.fa-qq:before{content:\"\\F1D6\"}.fa-wechat:before,.fa-weixin:before{content:\"\\F1D7\"}.fa-send:before,.fa-paper-plane:before{content:\"\\F1D8\"}.fa-send-o:before,.fa-paper-plane-o:before{content:\"\\F1D9\"}.fa-history:before{content:\"\\F1DA\"}.fa-circle-thin:before{content:\"\\F1DB\"}.fa-header:before{content:\"\\F1DC\"}.fa-paragraph:before{content:\"\\F1DD\"}.fa-sliders:before{content:\"\\F1DE\"}.fa-share-alt:before{content:\"\\F1E0\"}.fa-share-alt-square:before{content:\"\\F1E1\"}.fa-bomb:before{content:\"\\F1E2\"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:\"\\F1E3\"}.fa-tty:before{content:\"\\F1E4\"}.fa-binoculars:before{content:\"\\F1E5\"}.fa-plug:before{content:\"\\F1E6\"}.fa-slideshare:before{content:\"\\F1E7\"}.fa-twitch:before{content:\"\\F1E8\"}.fa-yelp:before{content:\"\\F1E9\"}.fa-newspaper-o:before{content:\"\\F1EA\"}.fa-wifi:before{content:\"\\F1EB\"}.fa-calculator:before{content:\"\\F1EC\"}.fa-paypal:before{content:\"\\F1ED\"}.fa-google-wallet:before{content:\"\\F1EE\"}.fa-cc-visa:before{content:\"\\F1F0\"}.fa-cc-mastercard:before{content:\"\\F1F1\"}.fa-cc-discover:before{content:\"\\F1F2\"}.fa-cc-amex:before{content:\"\\F1F3\"}.fa-cc-paypal:before{content:\"\\F1F4\"}.fa-cc-stripe:before{content:\"\\F1F5\"}.fa-bell-slash:before{content:\"\\F1F6\"}.fa-bell-slash-o:before{content:\"\\F1F7\"}.fa-trash:before{content:\"\\F1F8\"}.fa-copyright:before{content:\"\\F1F9\"}.fa-at:before{content:\"\\F1FA\"}.fa-eyedropper:before{content:\"\\F1FB\"}.fa-paint-brush:before{content:\"\\F1FC\"}.fa-birthday-cake:before{content:\"\\F1FD\"}.fa-area-chart:before{content:\"\\F1FE\"}.fa-pie-chart:before{content:\"\\F200\"}.fa-line-chart:before{content:\"\\F201\"}.fa-lastfm:before{content:\"\\F202\"}.fa-lastfm-square:before{content:\"\\F203\"}.fa-toggle-off:before{content:\"\\F204\"}.fa-toggle-on:before{content:\"\\F205\"}.fa-bicycle:before{content:\"\\F206\"}.fa-bus:before{content:\"\\F207\"}.fa-ioxhost:before{content:\"\\F208\"}.fa-angellist:before{content:\"\\F209\"}.fa-cc:before{content:\"\\F20A\"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:\"\\F20B\"}.fa-meanpath:before{content:\"\\F20C\"}.fa-buysellads:before{content:\"\\F20D\"}.fa-connectdevelop:before{content:\"\\F20E\"}.fa-dashcube:before{content:\"\\F210\"}.fa-forumbee:before{content:\"\\F211\"}.fa-leanpub:before{content:\"\\F212\"}.fa-sellsy:before{content:\"\\F213\"}.fa-shirtsinbulk:before{content:\"\\F214\"}.fa-simplybuilt:before{content:\"\\F215\"}.fa-skyatlas:before{content:\"\\F216\"}.fa-cart-plus:before{content:\"\\F217\"}.fa-cart-arrow-down:before{content:\"\\F218\"}.fa-diamond:before{content:\"\\F219\"}.fa-ship:before{content:\"\\F21A\"}.fa-user-secret:before{content:\"\\F21B\"}.fa-motorcycle:before{content:\"\\F21C\"}.fa-street-view:before{content:\"\\F21D\"}.fa-heartbeat:before{content:\"\\F21E\"}.fa-venus:before{content:\"\\F221\"}.fa-mars:before{content:\"\\F222\"}.fa-mercury:before{content:\"\\F223\"}.fa-intersex:before,.fa-transgender:before{content:\"\\F224\"}.fa-transgender-alt:before{content:\"\\F225\"}.fa-venus-double:before{content:\"\\F226\"}.fa-mars-double:before{content:\"\\F227\"}.fa-venus-mars:before{content:\"\\F228\"}.fa-mars-stroke:before{content:\"\\F229\"}.fa-mars-stroke-v:before{content:\"\\F22A\"}.fa-mars-stroke-h:before{content:\"\\F22B\"}.fa-neuter:before{content:\"\\F22C\"}.fa-genderless:before{content:\"\\F22D\"}.fa-facebook-official:before{content:\"\\F230\"}.fa-pinterest-p:before{content:\"\\F231\"}.fa-whatsapp:before{content:\"\\F232\"}.fa-server:before{content:\"\\F233\"}.fa-user-plus:before{content:\"\\F234\"}.fa-user-times:before{content:\"\\F235\"}.fa-hotel:before,.fa-bed:before{content:\"\\F236\"}.fa-viacoin:before{content:\"\\F237\"}.fa-train:before{content:\"\\F238\"}.fa-subway:before{content:\"\\F239\"}.fa-medium:before{content:\"\\F23A\"}.fa-yc:before,.fa-y-combinator:before{content:\"\\F23B\"}.fa-optin-monster:before{content:\"\\F23C\"}.fa-opencart:before{content:\"\\F23D\"}.fa-expeditedssl:before{content:\"\\F23E\"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:\"\\F240\"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:\"\\F241\"}.fa-battery-2:before,.fa-battery-half:before{content:\"\\F242\"}.fa-battery-1:before,.fa-battery-quarter:before{content:\"\\F243\"}.fa-battery-0:before,.fa-battery-empty:before{content:\"\\F244\"}.fa-mouse-pointer:before{content:\"\\F245\"}.fa-i-cursor:before{content:\"\\F246\"}.fa-object-group:before{content:\"\\F247\"}.fa-object-ungroup:before{content:\"\\F248\"}.fa-sticky-note:before{content:\"\\F249\"}.fa-sticky-note-o:before{content:\"\\F24A\"}.fa-cc-jcb:before{content:\"\\F24B\"}.fa-cc-diners-club:before{content:\"\\F24C\"}.fa-clone:before{content:\"\\F24D\"}.fa-balance-scale:before{content:\"\\F24E\"}.fa-hourglass-o:before{content:\"\\F250\"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:\"\\F251\"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:\"\\F252\"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:\"\\F253\"}.fa-hourglass:before{content:\"\\F254\"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:\"\\F255\"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:\"\\F256\"}.fa-hand-scissors-o:before{content:\"\\F257\"}.fa-hand-lizard-o:before{content:\"\\F258\"}.fa-hand-spock-o:before{content:\"\\F259\"}.fa-hand-pointer-o:before{content:\"\\F25A\"}.fa-hand-peace-o:before{content:\"\\F25B\"}.fa-trademark:before{content:\"\\F25C\"}.fa-registered:before{content:\"\\F25D\"}.fa-creative-commons:before{content:\"\\F25E\"}.fa-gg:before{content:\"\\F260\"}.fa-gg-circle:before{content:\"\\F261\"}.fa-tripadvisor:before{content:\"\\F262\"}.fa-odnoklassniki:before{content:\"\\F263\"}.fa-odnoklassniki-square:before{content:\"\\F264\"}.fa-get-pocket:before{content:\"\\F265\"}.fa-wikipedia-w:before{content:\"\\F266\"}.fa-safari:before{content:\"\\F267\"}.fa-chrome:before{content:\"\\F268\"}.fa-firefox:before{content:\"\\F269\"}.fa-opera:before{content:\"\\F26A\"}.fa-internet-explorer:before{content:\"\\F26B\"}.fa-tv:before,.fa-television:before{content:\"\\F26C\"}.fa-contao:before{content:\"\\F26D\"}.fa-500px:before{content:\"\\F26E\"}.fa-amazon:before{content:\"\\F270\"}.fa-calendar-plus-o:before{content:\"\\F271\"}.fa-calendar-minus-o:before{content:\"\\F272\"}.fa-calendar-times-o:before{content:\"\\F273\"}.fa-calendar-check-o:before{content:\"\\F274\"}.fa-industry:before{content:\"\\F275\"}.fa-map-pin:before{content:\"\\F276\"}.fa-map-signs:before{content:\"\\F277\"}.fa-map-o:before{content:\"\\F278\"}.fa-map:before{content:\"\\F279\"}.fa-commenting:before{content:\"\\F27A\"}.fa-commenting-o:before{content:\"\\F27B\"}.fa-houzz:before{content:\"\\F27C\"}.fa-vimeo:before{content:\"\\F27D\"}.fa-black-tie:before{content:\"\\F27E\"}.fa-fonticons:before{content:\"\\F280\"}.fa-reddit-alien:before{content:\"\\F281\"}.fa-edge:before{content:\"\\F282\"}.fa-credit-card-alt:before{content:\"\\F283\"}.fa-codiepie:before{content:\"\\F284\"}.fa-modx:before{content:\"\\F285\"}.fa-fort-awesome:before{content:\"\\F286\"}.fa-usb:before{content:\"\\F287\"}.fa-product-hunt:before{content:\"\\F288\"}.fa-mixcloud:before{content:\"\\F289\"}.fa-scribd:before{content:\"\\F28A\"}.fa-pause-circle:before{content:\"\\F28B\"}.fa-pause-circle-o:before{content:\"\\F28C\"}.fa-stop-circle:before{content:\"\\F28D\"}.fa-stop-circle-o:before{content:\"\\F28E\"}.fa-shopping-bag:before{content:\"\\F290\"}.fa-shopping-basket:before{content:\"\\F291\"}.fa-hashtag:before{content:\"\\F292\"}.fa-bluetooth:before{content:\"\\F293\"}.fa-bluetooth-b:before{content:\"\\F294\"}.fa-percent:before{content:\"\\F295\"}.fa-gitlab:before{content:\"\\F296\"}.fa-wpbeginner:before{content:\"\\F297\"}.fa-wpforms:before{content:\"\\F298\"}.fa-envira:before{content:\"\\F299\"}.fa-universal-access:before{content:\"\\F29A\"}.fa-wheelchair-alt:before{content:\"\\F29B\"}.fa-question-circle-o:before{content:\"\\F29C\"}.fa-blind:before{content:\"\\F29D\"}.fa-audio-description:before{content:\"\\F29E\"}.fa-volume-control-phone:before{content:\"\\F2A0\"}.fa-braille:before{content:\"\\F2A1\"}.fa-assistive-listening-systems:before{content:\"\\F2A2\"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:\"\\F2A3\"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:\"\\F2A4\"}.fa-glide:before{content:\"\\F2A5\"}.fa-glide-g:before{content:\"\\F2A6\"}.fa-signing:before,.fa-sign-language:before{content:\"\\F2A7\"}.fa-low-vision:before{content:\"\\F2A8\"}.fa-viadeo:before{content:\"\\F2A9\"}.fa-viadeo-square:before{content:\"\\F2AA\"}.fa-snapchat:before{content:\"\\F2AB\"}.fa-snapchat-ghost:before{content:\"\\F2AC\"}.fa-snapchat-square:before{content:\"\\F2AD\"}.fa-pied-piper:before{content:\"\\F2AE\"}.fa-first-order:before{content:\"\\F2B0\"}.fa-yoast:before{content:\"\\F2B1\"}.fa-themeisle:before{content:\"\\F2B2\"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:\"\\F2B3\"}.fa-fa:before,.fa-font-awesome:before{content:\"\\F2B4\"}.fa-handshake-o:before{content:\"\\F2B5\"}.fa-envelope-open:before{content:\"\\F2B6\"}.fa-envelope-open-o:before{content:\"\\F2B7\"}.fa-linode:before{content:\"\\F2B8\"}.fa-address-book:before{content:\"\\F2B9\"}.fa-address-book-o:before{content:\"\\F2BA\"}.fa-vcard:before,.fa-address-card:before{content:\"\\F2BB\"}.fa-vcard-o:before,.fa-address-card-o:before{content:\"\\F2BC\"}.fa-user-circle:before{content:\"\\F2BD\"}.fa-user-circle-o:before{content:\"\\F2BE\"}.fa-user-o:before{content:\"\\F2C0\"}.fa-id-badge:before{content:\"\\F2C1\"}.fa-drivers-license:before,.fa-id-card:before{content:\"\\F2C2\"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:\"\\F2C3\"}.fa-quora:before{content:\"\\F2C4\"}.fa-free-code-camp:before{content:\"\\F2C5\"}.fa-telegram:before{content:\"\\F2C6\"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:\"\\F2C7\"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:\"\\F2C8\"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:\"\\F2C9\"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:\"\\F2CA\"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:\"\\F2CB\"}.fa-shower:before{content:\"\\F2CC\"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:\"\\F2CD\"}.fa-podcast:before{content:\"\\F2CE\"}.fa-window-maximize:before{content:\"\\F2D0\"}.fa-window-minimize:before{content:\"\\F2D1\"}.fa-window-restore:before{content:\"\\F2D2\"}.fa-times-rectangle:before,.fa-window-close:before{content:\"\\F2D3\"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:\"\\F2D4\"}.fa-bandcamp:before{content:\"\\F2D5\"}.fa-grav:before{content:\"\\F2D6\"}.fa-etsy:before{content:\"\\F2D7\"}.fa-imdb:before{content:\"\\F2D8\"}.fa-ravelry:before{content:\"\\F2D9\"}.fa-eercast:before{content:\"\\F2DA\"}.fa-microchip:before{content:\"\\F2DB\"}.fa-snowflake-o:before{content:\"\\F2DC\"}.fa-superpowers:before{content:\"\\F2DD\"}.fa-wpexplorer:before{content:\"\\F2DE\"}.fa-meetup:before{content:\"\\F2E0\"}.sr-only,.table.table-list tr:not(:hover) td.table-list-options>.dropdown:not(.show) button:not(:focus):not(:active),.table.table-list tr:not(:hover) td.table-list-options>button:not(:focus):not(:active){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.toaster-icon{position:absolute;left:0.0em;top:0.0em;font-weight:normal;color:#ffffff}.toast-title{font-weight:bold}.toast-message{-ms-word-wrap:break-word;word-wrap:break-word}.toast-message a,.toast-message label{color:#ffffff}.toast-message a:hover{color:#cccccc;text-decoration:none}.toast-close-button{position:relative;right:-0.3em;top:-0.3em;float:right;font-size:20px;font-weight:bold;color:#ffffff;-webkit-text-shadow:0 1px 0 #ffffff;text-shadow:0 1px 0 #ffffff;opacity:0.8;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80);z-index:999}.toast-close-button:hover,.toast-close-button:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.4;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40)}button.toast-close-button{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.toast-content{display:inline-block;width:95%}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-center{top:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-center{bottom:12px}.toast-bottom-left{bottom:12px;left:12px}.toast-center{top:45%}#toast-container{position:fixed;z-index:999999;pointer-events:auto}#toast-container.toast-center,#toast-container.toast-top-center,#toast-container.toast-bottom-center{width:100%;pointer-events:none;left:0;right:0}#toast-container.toast-center>div,#toast-container.toast-top-center>div,#toast-container.toast-bottom-center>div{margin:6px auto;pointer-events:auto}#toast-container.toast-center>button,#toast-container.toast-top-center>button,#toast-container.toast-bottom-center>button{pointer-events:auto}#toast-container *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#toast-container>div{margin:0 0 6px;padding:15px 15px 15px 50px;width:300px;-moz-border-radius:3px 3px 3px 3px;-webkit-border-radius:3px 3px 3px 3px;border-radius:3px 3px 3px 3px;background-position:15px center;background-repeat:no-repeat;-moz-box-shadow:0 0 12px #999999;-webkit-box-shadow:0 0 12px #999999;box-shadow:0 0 12px #999999;color:#ffffff;opacity:0.8;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80)}#toast-container>:hover{-moz-box-shadow:0 0 12px #000000;-webkit-box-shadow:0 0 12px #000000;box-shadow:0 0 12px #000000;opacity:1;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);filter:alpha(opacity=100);cursor:pointer}.icon-success{width:35px;height:100%;display:inline-block;background-repeat:no-repeat;background-position:100% 50%;background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==\") !important}.icon-error{width:35px;height:100%;display:inline-block;background-repeat:no-repeat;background-position:100% 50%;background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=\") !important}.icon-info{width:35px;height:100%;display:inline-block;background-repeat:no-repeat;background-position:100% 50%;background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=\") !important}.icon-wait{width:35px;height:100%;display:inline-block;background-repeat:no-repeat;background-position:100% 50%;background-image:url(\"data:image/gif;base64,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\") !important}.icon-warning{width:35px;height:100%;display:inline-block;background-repeat:no-repeat;background-position:100% 50%;background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=\") !important}#toast-container.toast-top-full-width>div,#toast-container.toast-bottom-full-width>div{width:96%;margin:auto}.toast{position:relative;background-color:#030303}.toast-success{background-color:#51a351}.toast-error{background-color:#bd362f}.toast-info{background-color:#2f96b4}.toast-wait{background-color:#2f96b4}.toast-warning{background-color:#f89406}@media all and (max-width: 240px){#toast-container>div{padding:8px 8px 8px 50px;width:11em}#toast-container .toast-close-button{right:-0.1em;top:-0.2em}.toast-content{width:94%}}@media all and (min-width: 241px) and (max-width: 480px){#toast-container>div{padding:8px 8px 8px 50px;width:18em}#toast-container .toast-close-button{right:-0.1em;top:-0.2em}.toast-content{width:94%}}@media all and (min-width: 481px) and (max-width: 768px){#toast-container>div{padding:15px 15px 15px 50px;width:25em}}.swal2-popup.swal2-toast{flex-direction:row;align-items:center;width:auto;padding:.625em;overflow-y:hidden;background:#fff;box-shadow:0 0 0.625em #d9d9d9}.swal2-popup.swal2-toast .swal2-header{flex-direction:row;padding:0}.swal2-popup.swal2-toast .swal2-title{flex-grow:1;justify-content:flex-start;margin:0 0.6em;font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:0.5em 0 0;padding:0.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{position:static;width:.8em;height:.8em;line-height:.8}.swal2-popup.swal2-toast .swal2-content{justify-content:flex-start;padding:0;font-size:1em}.swal2-popup.swal2-toast .swal2-icon{width:2em;min-width:2em;height:2em;margin:0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:bold}@media all and (-ms-high-contrast: none), (-ms-high-contrast: active){.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{font-size:.25em}}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line']{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='left']{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='right']{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{flex-basis:auto !important;width:auto;height:auto;margin:0 .3125em;padding:0}.swal2-popup.swal2-toast .swal2-styled{margin:.125em .3125em;padding:.3125em .625em;font-size:1em}.swal2-popup.swal2-toast .swal2-styled:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(100,150,200,0.5)}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line']{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'][class$='left']{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'][class$='right']{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line']{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'][class$='tip']{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'][class$='long']{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{animation:swal2-toast-show 0.5s}.swal2-popup.swal2-toast.swal2-hide{animation:swal2-toast-hide 0.1s forwards}.swal2-container{display:flex;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;flex-direction:row;align-items:center;justify-content:center;padding:.625em;overflow-x:hidden;transition:background-color 0.1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,0.4)}.swal2-container.swal2-backdrop-hide{background:transparent !important}.swal2-container.swal2-top{align-items:flex-start}.swal2-container.swal2-top-start,.swal2-container.swal2-top-left{align-items:flex-start;justify-content:flex-start}.swal2-container.swal2-top-end,.swal2-container.swal2-top-right{align-items:flex-start;justify-content:flex-end}.swal2-container.swal2-center{align-items:center}.swal2-container.swal2-center-start,.swal2-container.swal2-center-left{align-items:center;justify-content:flex-start}.swal2-container.swal2-center-end,.swal2-container.swal2-center-right{align-items:center;justify-content:flex-end}.swal2-container.swal2-bottom{align-items:flex-end}.swal2-container.swal2-bottom-start,.swal2-container.swal2-bottom-left{align-items:flex-end;justify-content:flex-start}.swal2-container.swal2-bottom-end,.swal2-container.swal2-bottom-right{align-items:flex-end;justify-content:flex-end}.swal2-container.swal2-bottom>:first-child,.swal2-container.swal2-bottom-start>:first-child,.swal2-container.swal2-bottom-left>:first-child,.swal2-container.swal2-bottom-end>:first-child,.swal2-container.swal2-bottom-right>:first-child{margin-top:auto}.swal2-container.swal2-grow-fullscreen>.swal2-modal{display:flex !important;flex:1;align-self:stretch;justify-content:center}.swal2-container.swal2-grow-row>.swal2-modal{display:flex !important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-grow-column{flex:1;flex-direction:column}.swal2-container.swal2-grow-column.swal2-top,.swal2-container.swal2-grow-column.swal2-center,.swal2-container.swal2-grow-column.swal2-bottom{align-items:center}.swal2-container.swal2-grow-column.swal2-top-start,.swal2-container.swal2-grow-column.swal2-center-start,.swal2-container.swal2-grow-column.swal2-bottom-start,.swal2-container.swal2-grow-column.swal2-top-left,.swal2-container.swal2-grow-column.swal2-center-left,.swal2-container.swal2-grow-column.swal2-bottom-left{align-items:flex-start}.swal2-container.swal2-grow-column.swal2-top-end,.swal2-container.swal2-grow-column.swal2-center-end,.swal2-container.swal2-grow-column.swal2-bottom-end,.swal2-container.swal2-grow-column.swal2-top-right,.swal2-container.swal2-grow-column.swal2-center-right,.swal2-container.swal2-grow-column.swal2-bottom-right{align-items:flex-end}.swal2-container.swal2-grow-column>.swal2-modal{display:flex !important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-no-transition{transition:none !important}.swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen)>.swal2-modal{margin:auto}@media all and (-ms-high-contrast: none), (-ms-high-contrast: active){.swal2-container .swal2-modal{margin:0 !important}}.swal2-popup{display:none;position:relative;box-sizing:border-box;flex-direction:column;justify-content:center;width:32em;max-width:100%;padding:1.25em;border:none;border-radius:5px;background:#fff;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:none}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-header{display:flex;flex-direction:column;align-items:center;padding:0 1.8em}.swal2-title{position:relative;max-width:100%;margin:0 0 0.4em;padding:0;color:#595959;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:100%;margin:1.25em auto 0;padding:0 1.6em}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,0.1), rgba(0,0,0,0.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,0.2), rgba(0,0,0,0.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 transparent #2778c4 transparent}.swal2-styled{margin:.3125em;padding:0.625em 1.1em;box-shadow:none;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#2778c4;color:#fff;font-size:1.0625em}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#d14529;color:#fff;font-size:1.0625em}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#757575;color:#fff;font-size:1.0625em}.swal2-styled:focus{outline:none;box-shadow:0 0 0 3px rgba(100,150,200,0.5)}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1.25em 0 0;padding:1em 0 0;border-top:1px solid #eee;color:#545454;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;height:.25em;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,0.2)}.swal2-image{max-width:100%;margin:1.25em auto}.swal2-close{position:absolute;z-index:2;top:0;right:0;align-items:center;justify-content:center;width:1.2em;height:1.2em;padding:0;overflow:hidden;transition:color 0.1s ease-out;border:none;border-radius:5px;background:rgba(0,0,0,0);color:#ccc;font-family:serif;font-size:2.5em;line-height:1.2;cursor:pointer}.swal2-close:hover{transform:none;background:rgba(0,0,0,0);color:#f27474}.swal2-close:focus{outline:none;box-shadow:inset 0 0 0 3px rgba(100,150,200,0.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-content{z-index:1;justify-content:center;margin:0;padding:0 1.6em;color:#545454;font-size:1.125em;font-weight:normal;line-height:normal;text-align:center;word-wrap:break-word}.swal2-input,.swal2-file,.swal2-textarea,.swal2-select,.swal2-radio,.swal2-checkbox{margin:1em auto}.swal2-input,.swal2-file,.swal2-textarea{box-sizing:border-box;width:100%;transition:border-color 0.3s,box-shadow 0.3s;border:1px solid #d9d9d9;border-radius:.1875em;background:inherit;box-shadow:inset 0 1px 1px rgba(0,0,0,0.06);color:inherit;font-size:1.125em}.swal2-input.swal2-inputerror,.swal2-file.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474 !important;box-shadow:0 0 2px #f27474 !important}.swal2-input:focus,.swal2-file:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:none;box-shadow:0 0 0 3px rgba(100,150,200,0.5)}.swal2-input::placeholder,.swal2-file::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em auto;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 0.75em}.swal2-input[type='number']{max-width:10em}.swal2-file{background:inherit;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:inherit;color:inherit;font-size:1.125em}.swal2-radio,.swal2-checkbox{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-radio label,.swal2-checkbox label{margin:0 .6em;font-size:1.125em}.swal2-radio input,.swal2-checkbox input{margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto}.swal2-validation-message{display:none;align-items:center;justify-content:center;margin:0 -2.7em;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:'!';display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:1.25em auto 1.875em;border:0.25em solid transparent;border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^='swal2-x-mark-line']{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='left']{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='right']{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^='swal2-success-circular-line']{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='left']{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='right']{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:0.25em solid rgba(165,220,134,0.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^='swal2-success-line']{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^='swal2-success-line'][class$='tip']{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^='swal2-success-line'][class$='long']{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:0 0 1.25em;padding:0;background:inherit;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^='swal2']{-webkit-tap-highlight-color:transparent}.swal2-show{animation:swal2-show 0.3s}.swal2-hide{animation:swal2-hide 0.15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{right:auto;left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@supports (-ms-accelerator: true){.swal2-range input{width:100% !important}.swal2-range output{display:none}}@media all and (-ms-high-contrast: none), (-ms-high-contrast: active){.swal2-range input{width:100% !important}.swal2-range output{display:none}}@keyframes swal2-toast-show{0%{transform:translateY(-0.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(0.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0deg)}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-show{0%{transform:scale(0.7)}45%{transform:scale(1.05)}80%{transform:scale(0.95)}100%{transform:scale(1)}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(0.5);opacity:0}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(0.4);opacity:0}50%{margin-top:1.625em;transform:scale(0.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0deg);opacity:1}}@keyframes swal2-rotate-loading{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto !important}body.swal2-no-backdrop .swal2-container{top:auto;right:auto;bottom:auto;left:auto;max-width:calc(100% - .625em * 2);background-color:transparent !important}body.swal2-no-backdrop .swal2-container>.swal2-modal{box-shadow:0 0 10px rgba(0,0,0,0.4)}body.swal2-no-backdrop .swal2-container.swal2-top{top:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-top-start,body.swal2-no-backdrop .swal2-container.swal2-top-left{top:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-top-end,body.swal2-no-backdrop .swal2-container.swal2-top-right{top:0;right:0}body.swal2-no-backdrop .swal2-container.swal2-center{top:50%;left:50%;transform:translate(-50%, -50%)}body.swal2-no-backdrop .swal2-container.swal2-center-start,body.swal2-no-backdrop .swal2-container.swal2-center-left{top:50%;left:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-end,body.swal2-no-backdrop .swal2-container.swal2-center-right{top:50%;right:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom{bottom:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom-start,body.swal2-no-backdrop .swal2-container.swal2-bottom-left{bottom:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-bottom-end,body.swal2-no-backdrop .swal2-container.swal2-bottom-right{right:0;bottom:0}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll !important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden='true']{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static !important}}body.swal2-toast-shown .swal2-container{background-color:transparent}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-start,body.swal2-toast-shown .swal2-container.swal2-top-left{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-start,body.swal2-toast-shown .swal2-container.swal2-center-left{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%, -50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-start,body.swal2-toast-shown .swal2-container.swal2-bottom-left{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}body.swal2-toast-column .swal2-toast{flex-direction:column;align-items:stretch}body.swal2-toast-column .swal2-toast .swal2-actions{flex:1;align-self:stretch;height:2.2em;margin-top:.3125em}body.swal2-toast-column .swal2-toast .swal2-loading{justify-content:center}body.swal2-toast-column .swal2-toast .swal2-input{height:2em;margin:.3125em auto;font-size:1em}body.swal2-toast-column .swal2-toast .swal2-validation-message{font-size:1em}#toast-container.toast-top-right{top:76px}#toast-container .toast-close-button{right:-0.15em}#toast-container .toast{opacity:1 !important;background-image:none !important;border-radius:.25rem;box-shadow:0 0 8px rgba(0,0,0,0.35);display:flex;align-items:center}#toast-container .toast:hover{box-shadow:0 0 10px rgba(0,0,0,0.6)}#toast-container .toast:before{font-family:FontAwesome;font-size:25px;line-height:20px;float:left;color:#ffffff;padding-right:10px;margin:auto 0 auto -36px}#toast-container .toast .toaster-icon{display:none}#toast-container .toast .toast-message p{margin-bottom:0.5rem}#toast-container .toast .toast-message p:last-child{margin-bottom:0}#toast-container .toast.toast-danger,#toast-container .toast.toast-error{background-image:none !important;background-color:#dd4b39}#toast-container .toast.toast-danger:before,#toast-container .toast.toast-error:before{content:\"\\F0E7\";margin-left:-30px}#toast-container .toast.toast-warning{background-image:none !important;background-color:#bf7e16}#toast-container .toast.toast-warning:before{content:\"\\F071\"}#toast-container .toast.toast-info{background-image:none !important;background-color:#555}#toast-container .toast.toast-info:before{content:\"\\F05A\"}#toast-container .toast.toast-success{background-image:none !important;background-color:#00a65a}#toast-container .toast.toast-success:before{content:\"\\F00C\"}.swal2-container{background-color:rgba(0,0,0,0.3)}.swal2-popup{padding:15px 0 0;background-color:#fff;color:#333;border:1px solid #9a9a9a;border-radius:.3rem;width:34em}.swal2-popup .swal2-header{padding:0 15px}.swal2-popup .swal2-icon{margin:0 auto;width:auto;height:auto;border:none}.swal2-popup .swal2-content{padding-bottom:15px;font-size:1rem;border-bottom:1px solid #dee2e6}.swal2-popup i.swal-custom-icon{display:block;margin:0 auto;font-size:35px}.swal2-popup .swal2-title{padding:10px 0 15px;margin:0;font-size:1.15rem;color:#333}.swal2-popup .swal2-content{font-size:1rem;color:#333;padding:0 15px 15px}.swal2-popup .swal2-actions{padding:15px;margin:0;background-color:#fbfbfb;border-radius:.3rem;display:flex;flex-direction:row;justify-content:flex-start;font-size:1rem}.swal2-popup .swal2-actions button{margin-right:10px}.swal2-popup .swal2-actions button.swal2-confirm{font-weight:bold}.swal2-popup .swal2-actions button.swal2-cancel{background-color:#ffffff}date-input-polyfill[data-open=\"true\"]{z-index:10000 !important}html{font-size:14px}body{min-width:1010px}body.layout_frontend{background-color:#ecf0f5}body.full-width:not(.layout_frontend) .container{min-width:980px;width:90%}.page-header,.secondary-header{border-bottom:1px solid #dee2e6;padding-bottom:0.6rem;margin-bottom:0.5rem}.page-header h1,.page-header h2,.page-header h3,.page-header h4,.secondary-header h1,.secondary-header h2,.secondary-header h3,.secondary-header h4{margin:0}h1 small,h2 small,h3 small,h4 small,h5 small{font-size:80%}input:required,select:required,textarea:required{box-shadow:none}.secondary-header,.spaced-header{margin-top:4rem}.navbar{padding-left:0;padding-right:0}.navbar .dropdown-menu{min-width:200px;max-width:300px}.navbar .dropdown-menu .dropdown-item-text{line-height:1.3}.navbar .dropdown-menu .dropdown-item-text span,.navbar .dropdown-menu .dropdown-item-text small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navbar .nav-link{font-weight:600}.navbar-brand{margin-top:-20px;margin-bottom:-20px}.dropdown-menu button{cursor:pointer}.container{width:980px;max-width:none !important;margin:0 auto;padding:0}.page-content{margin-top:20px}.footer{margin-top:40px;padding:40px 0 40px 0;border-top:1px solid #dee2e6}.list-group-item.active{border-left:3px solid #175DDC;font-weight:bold;padding-left:calc(1.25rem - 3px)}.card-header,.modal-header{font-weight:bold;text-transform:uppercase}.card-header small,.modal-header small{font-weight:normal;text-transform:none}.card-body-header{font-size:1.15rem}.card ul.fa-ul.card-ul{margin-left:1.9em}.card ul.fa-ul.card-ul li{word-break:break-all}.card ul.fa-ul.card-ul .fa-li{top:4px}.card ul.fa-ul.card-ul.carets{margin-left:1.1em}.card ul.fa-ul.card-ul.carets .fa-li{left:-17px;width:1.1em}.card ul.fa-ul.card-ul ul.carets{margin-left:0.85em}.card-org-plans h2{font-size:1.15rem}.modal-dialog{width:500px}.modal-sm{width:300px}.modal-lg{width:800px}.modal-body h3,.modal-body .section-header>*{font-weight:normal;text-transform:uppercase;color:#6c757d}.modal .list-group-flush :first-child{border-top:none}.modal .list-group-flush :last-child{border-bottom:none}.modal-footer{justify-content:flex-start;background-color:#fbfbfb;border-radius:.3rem}label:not(.form-check-label):not(.btn),label.bold{font-weight:600}input[type=\"search\"]::-webkit-search-cancel-button{-webkit-appearance:searchfield-cancel-button}.btn[class*=\"btn-outline-\"]:not(:hover),.swal2-popup .swal2-actions button[class*=\"btn-outline-\"]:not(:hover){border-color:#ced4da;background-color:#fbfbfb}.btn-link:focus,.btn-link.focus{outline-color:-webkit-focus-ring-color;outline-offset:1px;outline-style:auto;outline-width:1px}.btn-outline-secondary,.swal2-popup .swal2-actions button.swal2-cancel{color:#6c757d}.btn-outline-secondary:hover:not(:disabled),.swal2-popup .swal2-actions button.swal2-cancel:hover:not(:disabled){color:#333}.btn-outline-secondary:disabled,.swal2-popup .swal2-actions button.swal2-cancel:disabled{opacity:1}.btn-outline-secondary:focus,.swal2-popup .swal2-actions button.swal2-cancel:focus,.btn-outline-secondary.focus,.swal2-popup .swal2-actions button.focus.swal2-cancel{box-shadow:0 0 0 .2rem rgba(58,117,225,0.5)}.btn-submit{position:relative}.btn-submit .fa-spinner{position:absolute;display:none;align-items:center;justify-content:center;bottom:0;top:0;left:0;right:0}.btn-submit:disabled:not(.manual) .fa-spinner,.btn-submit.loading .fa-spinner{display:flex}.btn-submit:disabled:not(.manual) span,.btn-submit.loading span{visibility:hidden}.list-group-item:focus,.list-group-item.focus{z-index:100}.fa-icon-above-input{height:1.5em}.table.table-list thead th{border-top:none}.table.table-list tr:first-child td{border:none}.table.table-list td{vertical-align:middle}.table.table-list td.reduced-lh{line-height:1}.table.table-list td.reduced-lh small{font-size:80%}.table.table-list td small,.table.table-list td>.fa,.table.table-list td .icon{color:#6c757d}.table.table-list td.wrap{word-break:break-all}.table.table-list td.table-list-options{width:76px;max-width:76px;text-align:right;height:50px}.table.table-list td.table-list-options.wider{width:100px;max-width:100px}.table.table-list td.table-list-options .btn,.table.table-list td.table-list-options .swal2-popup .swal2-actions button,.swal2-popup .swal2-actions .table.table-list td.table-list-options button{line-height:1;transition:initial}.table.table-list td.table-list-options .dropdown-menu{line-height:1.5}.table.table-list td.table-list-icon{width:45px;max-width:45px;text-align:center}.table.table-list td.table-list-icon img{max-height:24px}.table.table-list td.table-list-checkbox{width:35px;max-width:35px}.table.table-list td.table-list-strike{color:#6c757d;text-decoration:line-through}.text-lg{font-size:1.15rem}.text-strike{text-decoration:line-through}.font-weight-semibold{font-weight:600}.password-wrapper{word-break:break-all;white-space:pre-wrap;min-width:0}.password-row{min-width:0}.password-number{color:#007fde}.password-special{color:#c40800}app-vault-groupings .card #search,app-org-vault-groupings .card #search,.groupings .card #search{margin-bottom:1rem}app-vault-groupings .card h3,app-org-vault-groupings .card h3,.groupings .card h3{font-weight:normal;text-transform:uppercase;color:#6c757d}app-vault-groupings .card ul:last-child,app-org-vault-groupings .card ul:last-child,.groupings .card ul:last-child{margin-bottom:0}app-vault-groupings .card .card-body a,app-org-vault-groupings .card .card-body a,.groupings .card .card-body a{color:#333}app-vault-groupings .card .card-body a:hover.text-muted,app-org-vault-groupings .card .card-body a:hover.text-muted,.groupings .card .card-body a:hover.text-muted{color:#333 !important}app-vault-groupings .card .show-active,app-org-vault-groupings .card .show-active,.groupings .card .show-active{display:none}app-vault-groupings .card li>.fa,app-vault-groupings .card li>div>.fa,app-org-vault-groupings .card li>.fa,app-org-vault-groupings .card li>div>.fa,.groupings .card li>.fa,.groupings .card li>div>.fa{cursor:pointer}app-vault-groupings .card li.active>.show-active,app-vault-groupings .card li.active>div .show-active,app-org-vault-groupings .card li.active>.show-active,app-org-vault-groupings .card li.active>div .show-active,.groupings .card li.active>.show-active,.groupings .card li.active>div .show-active{display:inline}app-vault-groupings .card li.active>a:first-of-type,app-vault-groupings .card li.active>div a:first-of-type,app-org-vault-groupings .card li.active>a:first-of-type,app-org-vault-groupings .card li.active>div a:first-of-type,.groupings .card li.active>a:first-of-type,.groupings .card li.active>div a:first-of-type{font-weight:bold;color:#175DDC}app-vault-groupings .card li.active>.fa,app-vault-groupings .card li.active>div>.fa,app-org-vault-groupings .card li.active>.fa,app-org-vault-groupings .card li.active>div>.fa,.groupings .card li.active>.fa,.groupings .card li.active>div>.fa{color:#175DDC}app-password-generator #lengthRange{width:100%}app-password-generator .card-password .card-body{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;text-align:center;font-size:1.15rem;font-family:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}app-password-generator-history .list-group-item{line-height:1}app-password-generator-history .list-group-item .password{font-family:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}app-import textarea{height:150px}app-user-billing .progress{height:20px}app-user-billing .progress .progress-bar{min-width:50px}#duo-frame{background:url(../images/loading.svg) 0 0 no-repeat;height:330px}#duo-frame iframe{width:100%;height:100%;border:none}#web-authn-frame{background:url(../images/loading.svg) 0 0 no-repeat;height:290px}#web-authn-frame iframe{width:100%;height:100%;border:none}#bt-dropin-container{background:url(../images/loading.svg) 0 0 no-repeat;min-height:50px}.braintree-placeholder,.braintree-sheet__header{display:none}.braintree-sheet__content--button{text-align:left;padding:0;min-height:0}.braintree-sheet__container{margin-bottom:0}.braintree-sheet{border:none}.totp .totp-code{font-size:1.2rem}.totp .totp-countdown{margin:3px 3px 0 0;display:block;user-select:none}.totp .totp-countdown .totp-sec{font-size:0.85em;position:absolute;line-height:32px;width:32px;text-align:center}.totp .totp-countdown svg{width:32px;height:32px;transform:rotate(-90deg)}.totp .totp-countdown .totp-circle{fill:none;stroke:#175DDC}.totp .totp-countdown .totp-circle.inner{stroke-width:3;stroke-dasharray:78.6;stroke-dashoffset:0}.totp .totp-countdown .totp-circle.outer{stroke-width:2;stroke-dasharray:88;stroke-dashoffset:0}.totp>.align-items-center{margin-bottom:-5px}.totp.low .totp-sec,.totp.low .totp-code{color:#dd4b39}.totp.low .totp-circle{stroke:#dd4b39}.callout{padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid rgba(0,0,0,0.125);border-left-width:5px;border-radius:calc(.25rem - 1px);background-color:#fafafa}.callout .callout-heading{margin-top:0}.callout h3.callout-heading{font-weight:bold;text-transform:uppercase}.callout.callout-primary{border-left-color:#175DDC}.callout.callout-primary .callout-heading{color:#175DDC}.callout.callout-info{border-left-color:#343a40}.callout.callout-info .callout-heading{color:#343a40}.callout.callout-danger{border-left-color:#dd4b39}.callout.callout-danger .callout-heading{color:#dd4b39}.callout.callout-success{border-left-color:#00a65a}.callout.callout-success .callout-heading{color:#00a65a}.callout.callout-warning{border-left-color:#bf7e16}.callout.callout-warning .callout-heading{color:#bf7e16}.list-group-2fa .logo-2fa{min-width:100px}.form-check-block .form-check-label{font-weight:600}.form-check-block .form-check-label>small{display:block;color:#6c757d;font-weight:normal}.form-check-block .form-check-label>span{display:block;font-weight:normal}.form-inline input[type='datetime-local']{width:200px}.form-control.stripe-form-control{padding-top:0.55rem}.form-control.stripe-form-control.is-focused{color:#495057;background-color:#fff;border-color:#81a9f2;outline:0;box-shadow:0 0 0 .2rem rgba(23,93,220,0.25)}.form-control.stripe-form-control.is-focused.is-invalid{box-shadow:0 0 0 .2rem rgba(221,75,57,0.25)}.form-control.stripe-form-control.is-invalid{border-color:#dd4b39}.org-nav{background-color:#fbfbfb;border-bottom:1px solid #dee2e6;height:100px;min-height:100px}.org-nav .container{height:100%}.org-nav .nav-tabs{border-bottom:none}.org-nav .nav-tabs a{color:#333}.org-nav .nav-tabs a:not(.active){border-color:transparent}.org-nav .nav-tabs a.active{border-top:3px solid #175DDC;font-weight:bold;padding-top:calc(.5rem - 2px)}.org-nav .nav-tabs a.disabled{color:#b4b4b4}.org-nav .org-name{line-height:1}.org-nav .org-name span{font-size:1.15rem;display:block}img.logo{width:284px;height:43px;margin:0 auto;display:block}.min-height-fix{min-height:1px}.overflow-hidden{overflow:hidden}.cdk-drag-preview{z-index:1070 !important;opacity:0.8;background-color:#fff;border-radius:.25rem}.cursor-move{cursor:move !important}.layout.enterprise2 header{color:#ced4da;background-color:#175DDC}.layout.enterprise2 header:before{content:\"\";position:absolute;z-index:-1;width:100%;height:340px;left:0;transform:skewY(-3deg);background:#175DDC}.layout.enterprise2 header img.logo{margin:12px 0 0;width:284px;max-width:284px;height:auto}.layout.enterprise2 h2{color:#ffffff;font-size:1.8rem;margin:100px 0 150px 0}.layout.enterprise2 p{margin:20px 0 40px 0;font-size:1.4rem}.layout.enterprise2 p:before{content:\"/\";padding-right:12px}.layout.enterprise2 p:not(.highlight):before{color:#1252A3}.layout.enterprise2 p b:after{content:\"\\27F6\";font-size:2rem;padding-left:6px}.layout.enterprise2 blockquote{margin:20px 0 0 0;font-size:1.4rem;padding-right:40px}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/app/main.a34068436143996e1f65.js b/app/main.a34068436143996e1f65.js new file mode 100644 index 00000000..a1123ad9 --- /dev/null +++ b/app/main.a34068436143996e1f65.js @@ -0,0 +1,2 @@ +!function(e){function t(t){for(var r,a,s=t[0],l=t[1],c=t[2],u=0,d=[];u1&&(r+=e.slice(1)),void 0===t[e=r]&&(e=e.toLowerCase()),void 0===t[e]&&(e=e.toUpperCase())}return t[e]},e}();t.BaseResponse=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0),n(3);var r=n(0),i=n(3),o=n(4);function a(e,t){if(1&e&&r.ɵɵelement(0,"i",4),2&e){var n=r.ɵɵnextContext(2);r.ɵɵclassMapInterpolate1("fa ",n.icon,"")}}function s(e,t){if(1&e&&(r.ɵɵelementStart(0,"h3",2),r.ɵɵtext(1,"\n "),r.ɵɵtemplate(2,a,1,3,"i",3),r.ɵɵtext(3),r.ɵɵelementEnd()),2&e){var n=r.ɵɵnextContext();r.ɵɵadvance(2),r.ɵɵproperty("ngIf",n.icon),r.ɵɵadvance(1),r.ɵɵtextInterpolate1("\n ",n.title,"\n ")}}var l=function(e){return{clickable:e}},c=["*"],p=function(){function e(e){this.i18nService=e,this.type="info"}return e.prototype.ngOnInit=function(){this.calloutStyle=this.type,"warning"===this.type||"danger"===this.type?("danger"===this.type&&(this.calloutStyle="danger"),void 0===this.title&&(this.title=this.i18nService.t("warning")),void 0===this.icon&&(this.icon="fa-warning")):"error"===this.type?(this.calloutStyle="danger",void 0===this.title&&(this.title=this.i18nService.t("error")),void 0===this.icon&&(this.icon="fa-bolt")):"tip"===this.type&&(this.calloutStyle="success",void 0===this.title&&(this.title=this.i18nService.t("tip")),void 0===this.icon&&(this.icon="fa-lightbulb-o"))},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(i.I18nService))},e.ɵcmp=r.ɵɵdefineComponent({type:e,selectors:[["app-callout"]],inputs:{type:"type",icon:"icon",title:"title",clickable:"clickable"},ngContentSelectors:c,decls:7,vars:7,consts:[["role","alert",3,"ngClass"],["class","callout-heading",4,"ngIf"],[1,"callout-heading"],["aria-hidden","true",3,"class",4,"ngIf"],["aria-hidden","true"]],template:function(e,t){1&e&&(r.ɵɵprojectionDef(),r.ɵɵelementStart(0,"div",0),r.ɵɵtext(1,"\n "),r.ɵɵtemplate(2,s,4,2,"h3",1),r.ɵɵtext(3,"\n "),r.ɵɵprojection(4),r.ɵɵtext(5,"\n"),r.ɵɵelementEnd(),r.ɵɵtext(6,"\n")),2&e&&(r.ɵɵclassMapInterpolate1("callout callout-",t.calloutStyle,""),r.ɵɵproperty("ngClass",r.ɵɵpureFunction1(5,l,t.clickable)),r.ɵɵadvance(2),r.ɵɵproperty("ngIf",t.title))},directives:[o.NgClass,o.NgIf],encapsulation:2}),e}();t.CalloutComponent=p},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(711),i=n(143),o=n(156),a=n(258),s=n(30),l=n(209),c=n(127),p=n(159),u=n(94),d=n(39),m=n(118),h=n(106),f=n(709),v=function(){function e(){this.organizationId=null,this.logService=new f.ConsoleLogService(!1),this.newLineRegex=/(?:\r\n|\r|\n)/,this.passwordFieldNames=["password","pass word","passphrase","pass phrase","pass","code","code word","codeword","secret","secret word","personpwd","key","keyword","key word","keyphrase","key phrase","form_pw","wppassword","pin","pwd","pw","pword","passwd","p","serial","serial#","license key","reg #","passwort"],this.usernameFieldNames=["user","name","user name","username","login name","email","e-mail","id","userid","user id","login","form_loginname","wpname","mail","loginid","login id","log","personlogin","first name","last name","card#","account #","member","member #","nom","benutzername"],this.notesFieldNames=["note","notes","comment","comments","memo","description","free form","freeform","free text","freetext","free","kommentar"],this.uriFieldNames=["url","hyper link","hyperlink","link","host","hostname","host name","server","address","hyper ref","href","web","website","web site","site","web-site","uri","ort","adresse"],this.parseCsvOptions={encoding:"UTF-8",skipEmptyLines:!1}}return Object.defineProperty(e.prototype,"organization",{get:function(){return null!=this.organizationId},enumerable:!0,configurable:!0}),e.prototype.parseXml=function(e){var t=(new DOMParser).parseFromString(e,"application/xml");return null!=t&&null==t.querySelector("parsererror")?t:null},e.prototype.parseCsv=function(e,t,n){var i=this;void 0===n&&(n={});var o=Object.assign({header:t},this.parseCsvOptions,n);e=this.splitNewLine(e).join("\n").trim();var a=r.parse(e,o);return null!=a.errors&&a.errors.length>0&&a.errors.forEach((function(e){null!=e.row&&i.logService.warning("Error parsing row "+e.row+": "+e.message)})),a.data&&a.data.length>0?a.data:null},e.prototype.parseSingleRowCsv=function(e){if(this.isNullOrWhitespace(e))return null;var t=this.parseCsv(e,!1);return null!=t&&t.length>0&&t[0].length>0?t[0]:null},e.prototype.makeUriArray=function(e){var t=this;if(null==e)return null;if("string"==typeof e){var n=new a.LoginUriView;return n.uri=this.fixUri(e),this.isNullOrWhitespace(n.uri)?null:(n.match=null,[n])}if(e.length>0){var r=[];return e.forEach((function(e){var n=new a.LoginUriView;n.uri=t.fixUri(e),t.isNullOrWhitespace(n.uri)||(n.match=null,r.push(n))})),0===r.length?null:r}return null},e.prototype.fixUri=function(e){return null==e?null:(-1===(e=e.trim()).indexOf("://")&&e.indexOf(".")>=0&&(e="http://"+e),e.length>1e3?e.substring(0,1e3):e)},e.prototype.nameFromUrl=function(e){var t=s.Utils.getHostname(e);return this.isNullOrWhitespace(t)?null:t.startsWith("www.")?t.replace("www.",""):t},e.prototype.isNullOrWhitespace=function(e){return s.Utils.isNullOrWhitespace(e)},e.prototype.getValueOrDefault=function(e,t){return void 0===t&&(t=null),this.isNullOrWhitespace(e)?t:e},e.prototype.splitNewLine=function(e){return e.split(this.newLineRegex)},e.prototype.getCardBrand=function(e){if(this.isNullOrWhitespace(e))return null;var t=new RegExp("^4");return null!=e.match(t)?"Visa":/^(5[1-5][0-9]{14}|2(22[1-9][0-9]{12}|2[3-9][0-9]{13}|[3-6][0-9]{14}|7[0-1][0-9]{13}|720[0-9]{12}))$/.test(e)?"Mastercard":(t=new RegExp("^3[47]"),null!=e.match(t)?"Amex":(t=new RegExp("^(6011|622(12[6-9]|1[3-9][0-9]|[2-8][0-9]{2}|9[0-1][0-9]|92[0-5]|64[4-9])|65)"),null!=e.match(t)?"Discover":(t=new RegExp("^36"),null!=e.match(t)?"Diners Club":(t=new RegExp("^30[0-5]"),null!=e.match(t)?"Diners Club":(t=new RegExp("^35(2[89]|[3-8][0-9])"),null!=e.match(t)?"JCB":(t=new RegExp("^(4026|417500|4508|4844|491(3|7))"),null!=e.match(t)?"Visa":null))))))},e.prototype.setCardExpiration=function(e,t){if(!this.isNullOrWhitespace(t)){var n=t.split("/");if(2===n.length){var r=null,i=null;if(1!==n[0].length&&2!==n[0].length||2===(r=n[0]).length&&"0"===r[0]&&(r=r.substr(1,1)),2!==n[1].length&&4!==n[1].length||(i=2===r.length?"20"+n[1]:n[1]),null!=r&&null!=i)return e.card.expMonth=r,e.card.expYear=i,!0}}return!1},e.prototype.moveFoldersToCollections=function(e){e.folderRelationships.forEach((function(t){return e.collectionRelationships.push(t)})),e.collections=e.folders.map((function(e){var t=new o.CollectionView;return t.name=e.name,t})),e.folderRelationships=[],e.folders=[]},e.prototype.querySelectorDirectChild=function(e,t){var n=this.querySelectorAllDirectChild(e,t);return 0===n.length?null:n[0]},e.prototype.querySelectorAllDirectChild=function(e,t){return Array.from(e.querySelectorAll(t)).filter((function(t){return t.parentNode===e}))},e.prototype.initLoginCipher=function(){var e=new i.CipherView;return e.favorite=!1,e.notes="",e.fields=[],e.login=new p.LoginView,e.type=d.CipherType.Login,e},e.prototype.cleanupCipher=function(e){null!=e&&(e.type!==d.CipherType.Login&&(e.login=null),this.isNullOrWhitespace(e.name)&&(e.name="--"),this.isNullOrWhitespace(e.notes)?e.notes=null:e.notes=e.notes.trim(),null!=e.fields&&0===e.fields.length&&(e.fields=null))},e.prototype.processKvp=function(e,t,n,r){if(void 0===r&&(r=m.FieldType.Text),!this.isNullOrWhitespace(n))if(this.isNullOrWhitespace(t)&&(t=""),n.length>200||n.trim().search(this.newLineRegex)>-1)null==e.notes&&(e.notes=""),e.notes+=t+": "+this.splitNewLine(n).join("\n")+"\n";else{null==e.fields&&(e.fields=[]);var i=new l.FieldView;i.type=r,i.name=t,i.value=n,e.fields.push(i)}},e.prototype.processFolder=function(e,t){var n=e.folders.length,r=!this.isNullOrWhitespace(t),i=r;if(r)for(var o=0;o-1&&(n=t.getUrlObject("http://"+e)));return n},t.validIpAddress=function(e){return/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(e)},t.isMobile=function(e){var t,n=!1;return t=e.navigator.userAgent||e.navigator.vendor||e.opera,(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4)))&&(n=!0),n||null!=e.navigator.userAgent.match(/iPad/i)},t.isAppleMobile=function(e){return null!=e.navigator.userAgent.match(/iPhone/i)||null!=e.navigator.userAgent.match(/iPad/i)},t.getUrlObject=function(e){try{if(null!=a)return a.URL?new a.URL(e):a.parse(e);if("function"==typeof URL)return new URL(e);if(null!=window){var t=e.indexOf("://")>-1;if(!t&&e.indexOf(".")>-1)e="http://"+e;else if(!t)return null;var n=window.document.createElement("a");return n.href=e,n}}catch(r){}return null},t.inited=!1,t.isNativeScript=!1,t.isNode=!1,t.isBrowser=!0,t.isMobileBrowser=!1,t.isAppleMobileBrowser=!1,t.global=null,t.tldEndingRegex=/.*\.(com|net|org|edu|uk|gov|ca|de|jp|fr|au|ru|ch|io|es|us|co|xyz|info|ly|mil)$/,t}();t.Utils=s,s.init()}).call(this,n(126),n(102),n(95).Buffer)},,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.PasswordGenerationService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(0),i=function(){function e(){}return e.prototype.onClick=function(e){e.preventDefault()},e.ɵfac=function(t){return new(t||e)},e.ɵdir=r.ɵɵdefineDirective({type:e,selectors:[["","appStopClick",""]],hostBindings:function(e,t){1&e&&r.ɵɵlistener("click",(function(e){return t.onClick(e)}))}}),e}();t.StopClickDirective=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.StateService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Login=1]="Login",e[e.SecureNote=2]="SecureNote",e[e.Card=3]="Card",e[e.Identity=4]="Identity"}(t.CipherType||(t.CipherType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.CollectionService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.StorageService=r},,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.PolicyService=r},,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(0),i=function(){function e(e,t){this.el=e,this.renderer=t}return Object.defineProperty(e.prototype,"appInputVerbatim",{set:function(e){this.disableComplete=""===e||!0===e},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){this.disableComplete&&!this.el.nativeElement.hasAttribute("autocomplete")&&this.renderer.setAttribute(this.el.nativeElement,"autocomplete","off"),this.el.nativeElement.hasAttribute("autocapitalize")||this.renderer.setAttribute(this.el.nativeElement,"autocapitalize","none"),this.el.nativeElement.hasAttribute("autocorrect")||this.renderer.setAttribute(this.el.nativeElement,"autocorrect","none"),this.el.nativeElement.hasAttribute("spellcheck")||this.renderer.setAttribute(this.el.nativeElement,"spellcheck","false"),this.el.nativeElement.hasAttribute("inputmode")||this.renderer.setAttribute(this.el.nativeElement,"inputmode","verbatim")},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(r.ElementRef),r.ɵɵdirectiveInject(r.Renderer2))},e.ɵdir=r.ɵɵdefineDirective({type:e,selectors:[["","appInputVerbatim",""]],inputs:{appInputVerbatim:"appInputVerbatim"}}),e}();t.InputVerbatimDirective=i},,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.FolderService=r},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(0),i=function(){function e(){}return e.prototype.onClick=function(e){e.stopPropagation()},e.ɵfac=function(t){return new(t||e)},e.ɵdir=r.ɵɵdefineDirective({type:e,selectors:[["","appStopProp",""]],hostBindings:function(e,t){1&e&&r.ɵɵlistener("click",(function(e){return t.onClick(e)}))}}),e}();t.StopPropDirective=i},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.AuthService=r},,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.SyncService=r},,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.EnvironmentService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(30),i=n(0),o=function(){function e(e){this.el=e}return Object.defineProperty(e.prototype,"appAutofocus",{set:function(e){this.autofocus=""===e||!0===e},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){!r.Utils.isMobileBrowser&&this.autofocus&&this.el.nativeElement.focus()},e.ɵfac=function(t){return new(t||e)(i.ɵɵdirectiveInject(i.ElementRef))},e.ɵdir=i.ɵɵdefineDirective({type:e,selectors:[["","appAutofocus",""]],inputs:{appAutofocus:"appAutofocus"}}),e}();t.AutofocusDirective=o},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){this.environmentUrlsKey=e.environmentUrlsKey,this.disableGaKey=e.disableGaKey,this.disableAddLoginNotificationKey=e.disableAddLoginNotificationKey,this.disableContextMenuItemKey=e.disableContextMenuItemKey,this.disableFaviconKey=e.disableFaviconKey,this.disableBadgeCounterKey=e.disableBadgeCounterKey,this.disableAutoTotpCopyKey=e.disableAutoTotpCopyKey,this.enableAutoFillOnPageLoadKey=e.enableAutoFillOnPageLoadKey,this.vaultTimeoutKey=e.vaultTimeoutKey,this.vaultTimeoutActionKey=e.vaultTimeoutActionKey,this.lastActiveKey=e.lastActiveKey,this.neverDomainsKey=e.neverDomainsKey,this.installedVersionKey=e.installedVersionKey,this.localeKey=e.localeKey,this.themeKey=e.themeKey,this.collapsedGroupingsKey=e.collapsedGroupingsKey,this.autoConfirmFingerprints=e.autoConfirmFingerprints,this.dontShowCardsCurrentTab=e.dontShowCardsCurrentTab,this.dontShowIdentitiesCurrentTab=e.dontShowIdentitiesCurrentTab,this.defaultUriMatch=e.defaultUriMatch,this.pinProtectedKey=e.pinProtectedKey,this.protectedPin=e.protectedPin,this.clearClipboardKey=e.clearClipboardKey,this.eventCollectionKey=e.eventCollectionKey,this.ssoCodeVerifierKey=e.ssoCodeVerifierKey,this.ssoStateKey=e.ssoStateKey,this.biometricUnlockKey=e.biometricUnlockKey,this.biometricText=e.biometricText,this.biometricAwaitingAcceptance=e.biometricAwaitingAcceptance,this.biometricFingerprintValidated=e.biometricFingerprintValidated}return e.environmentUrlsKey="environmentUrls",e.disableGaKey="disableGa",e.disableAddLoginNotificationKey="disableAddLoginNotification",e.disableChangedPasswordNotificationKey="disableChangedPasswordNotification",e.disableContextMenuItemKey="disableContextMenuItem",e.disableFaviconKey="disableFavicon",e.disableBadgeCounterKey="disableBadgeCounter",e.disableAutoTotpCopyKey="disableAutoTotpCopy",e.enableAutoFillOnPageLoadKey="enableAutoFillOnPageLoad",e.vaultTimeoutKey="lockOption",e.vaultTimeoutActionKey="vaultTimeoutAction",e.lastActiveKey="lastActive",e.neverDomainsKey="neverDomains",e.installedVersionKey="installedVersion",e.localeKey="locale",e.themeKey="theme",e.collapsedGroupingsKey="collapsedGroupings",e.autoConfirmFingerprints="autoConfirmFingerprints",e.dontShowCardsCurrentTab="dontShowCardsCurrentTab",e.dontShowIdentitiesCurrentTab="dontShowIdentitiesCurrentTab",e.defaultUriMatch="defaultUriMatch",e.pinProtectedKey="pinProtectedKey",e.protectedPin="protectedPin",e.clearClipboardKey="clearClipboardKey",e.eventCollectionKey="eventCollection",e.ssoCodeVerifierKey="ssoCodeVerifier",e.ssoStateKey="ssoState",e.biometricUnlockKey="biometric",e.biometricText="biometricText",e.biometricAwaitingAcceptance="biometricAwaitingAcceptance",e.biometricFingerprintValidated="biometricFingerprintValidated",e}();t.ConstantsService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.EventService=r},,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.PasswordVerificationRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){this.indexedEntityId=null};t.SearchService=r},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]-1?e[a]=s||null:e[a]=s?new o.EncString(s):null}},e.prototype.buildDataModel=function(e,t,n,r){for(var i in void 0===r&&(r=[]),n)if(n.hasOwnProperty(i)){var o=e[n[i]||i];r.indexOf(i)>-1?t[i]=null!=o?o:null:t[i]=null!=o?o.encryptedString:null}},e.prototype.decryptObj=function(e,t,n,o){return void 0===o&&(o=null),r(this,void 0,void 0,(function(){var r,a,s;return i(this,(function(i){switch(i.label){case 0:for(s in r=[],a=this,t)t.hasOwnProperty(s)&&function(i){var s=Promise.resolve().then((function(){var e=t[i]||i;return a[e]?a[e].decrypt(n,o):null})).then((function(t){e[i]=t}));r.push(s)}(s);return[4,Promise.all(r)];case 1:return i.sent(),[2,e]}}))}))},e}();t.default=a},,,function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(273),a=(n(0),n(847)),s=n(30),l=(n(14),n(0)),c=n(14);function p(e,t){}var u=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.el=null,r}return i(t,e),t.prototype.ngOnDestroy=function(){},t.prototype.show=function(e,t,n,r){var i=this;void 0===n&&(n=!0),void 0===r&&(r=null),this.parentContainer=t,this.fade=n;var a=this.componentFactoryResolver.resolveComponentFactory(e),l=this.container.createComponent(a);null!=r&&r(l.instance);var c=Array.from(document.querySelectorAll(".modal"));return c.length>0&&(this.el=o(c[0]),this.el.modal("show"),this.el.on("show.bs.modal",(function(){i.onShow.emit(),i.messagingService.send("modalShow")})),this.el.on("shown.bs.modal",(function(){i.onShown.emit(),i.messagingService.send("modalShown"),s.Utils.isMobileBrowser||i.el.find("*[appAutoFocus]").focus()})),this.el.on("hide.bs.modal",(function(){i.onClose.emit(),i.messagingService.send("modalClose")})),this.el.on("hidden.bs.modal",(function(){i.onClosed.emit(),i.messagingService.send("modalClosed"),null!=i.parentContainer&&i.parentContainer.clear()}))),l.instance},t.prototype.close=function(){null!=this.el&&this.el.modal("hide")},t.ɵfac=function(e){return new(e||t)(l.ɵɵdirectiveInject(l.ComponentFactoryResolver),l.ɵɵdirectiveInject(c.MessagingService))},t.ɵcmp=l.ɵɵdefineComponent({type:t,selectors:[["app-modal"]],features:[l.ɵɵInheritDefinitionFeature],decls:2,vars:0,consts:[["container",""]],template:function(e,t){1&e&&l.ɵɵtemplate(0,p,0,0,"ng-template",null,0,l.ɵɵtemplateRefExtractor)},encapsulation:2}),t}(a.ModalComponent);t.ModalComponent=u},,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.AuditService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.cardholderName=null,this.expMonth=null,this.expYear=null,this.code=null,this._brand=null,this._number=null,this._subTitle=null}return Object.defineProperty(e.prototype,"maskedCode",{get:function(){return null!=this.code?"•".repeat(this.code.length):null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"brand",{get:function(){return this._brand},set:function(e){this._brand=e,this._subTitle=null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"number",{get:function(){return this._number},set:function(e){this._number=e,this._subTitle=null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"subTitle",{get:function(){if(null==this._subTitle&&(this._subTitle=this.brand,null!=this.number&&this.number.length>=4)){null!=this._subTitle&&""!==this._subTitle?this._subTitle+=", ":this._subTitle="";var e=this.number.length>=5&&null!=this.number.match(new RegExp("^3[47]"))?5:4;this._subTitle+="*"+this.number.substr(this.number.length-e)}return this._subTitle},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"expiration",{get:function(){if(!this.expMonth&&!this.expYear)return null;var e=null!=this.expMonth?("0"+this.expMonth).slice(-2):"__";return e+=" / "+(null!=this.expYear?this.formatYear(this.expYear):"____")},enumerable:!0,configurable:!0}),e.prototype.formatYear=function(e){return 2===e.length?"20"+e:e},e}();t.CardView=r},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.VaultTimeoutService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.type=null,e&&(this.type=e.type)}return Object.defineProperty(e.prototype,"subTitle",{get:function(){return null},enumerable:!0,configurable:!0}),e}();t.SecureNoteView=r},,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.TokenService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.CryptoFunctionService=r},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]-1?(e="http://"+e,t=!0):this.imageEnabled&&(t=0===e.indexOf("http")&&e.indexOf(".")>-1),this.imageEnabled&&t)try{this.image=this.iconsUrl+"/"+s.Utils.getHostname(e)+"/icon.png",this.fallbackImage="images/fa-globe.png"}catch(n){}}else this.image=null},e.ɵfac=function(t){return new(t||e)(l.ɵɵdirectiveInject(c.EnvironmentService),l.ɵɵdirectiveInject(p.StateService))},e.ɵcmp=l.ɵɵdefineComponent({type:e,selectors:[["app-vault-icon"]],inputs:{cipher:"cipher"},features:[l.ɵɵNgOnChangesFeature],decls:7,vars:2,consts:[["aria-hidden","true",1,"icon"],["alt","",3,"src","appFallbackSrc",4,"ngIf"],[3,"class",4,"ngIf"],["alt","",3,"src","appFallbackSrc"]],template:function(e,t){1&e&&(l.ɵɵelementStart(0,"div",0),l.ɵɵtext(1,"\n "),l.ɵɵtemplate(2,m,1,2,"img",1),l.ɵɵtext(3,"\n "),l.ɵɵtemplate(4,h,1,3,"i",2),l.ɵɵtext(5,"\n"),l.ɵɵelementEnd(),l.ɵɵtext(6,"\n")),2&e&&(l.ɵɵadvance(2),l.ɵɵproperty("ngIf",t.imageEnabled&&t.image),l.ɵɵadvance(2),l.ɵɵproperty("ngIf",!t.imageEnabled||!t.image))},directives:[u.NgIf,d.FallbackSrcDirective],encapsulation:2}),e}();t.IconComponent=v},,,,,function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});n(0);var o=n(823),a=n(0),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.ɵfac=function(e){return l(e||t)},t.ɵprov=a.ɵɵdefineInjectable({token:t,factory:t.ɵfac}),t}(o.BroadcasterService);t.BroadcasterService=s;var l=a.ɵɵgetInheritedFactory(s)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Authenticator=0]="Authenticator",e[e.Email=1]="Email",e[e.Duo=2]="Duo",e[e.Yubikey=3]="Yubikey",e[e.U2f=4]="U2f",e[e.Remember=5]="Remember",e[e.OrganizationDuo=6]="OrganizationDuo",e[e.WebAuthn=7]="WebAuthn"}(t.TwoFactorProviderType||(t.TwoFactorProviderType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.TotpService=r},,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]-1)try{window.document.body.removeChild(e)}catch(t){}}))}),500),this.hidePaypal||(window.document.head.removeChild(this.btScript),window.setTimeout((function(){Array.from(window.document.head.querySelectorAll("script")).forEach((function(e){if(null!=e.src&&e.src.indexOf("paypal")>-1)try{window.document.head.removeChild(e)}catch(t){}}));var e=window.document.head.querySelector("#braintree-dropin-stylesheet");if(null!=e)try{window.document.head.removeChild(e)}catch(t){}}),500))},e.prototype.changeMethod=function(){var e=this;this.btInstance=null,this.method===o.PaymentMethodType.PayPal?window.setTimeout((function(){window.braintree.dropin.create({authorization:e.platformUtilsService.isDev()?a.WebConstants.btSandboxKey:a.WebConstants.btProductionKey,container:"#bt-dropin-container",paymentOptionPriority:["paypal"],paypal:{flow:"vault",buttonStyle:{label:"pay",size:"medium",shape:"pill",color:"blue"}}},(function(t,n){null==t?e.btInstance=n:console.error(t)}))}),250):this.setStripeElement()},e.prototype.createPaymentToken=function(){var e=this;return new Promise((function(t,n){e.method===o.PaymentMethodType.Credit?t([null,e.method]):e.method===o.PaymentMethodType.PayPal?e.btInstance.requestPaymentMethod().then((function(n){t([n.nonce,e.method])})).catch((function(e){n(e.message)})):e.method!==o.PaymentMethodType.Card&&e.method!==o.PaymentMethodType.BankAccount||(e.method===o.PaymentMethodType.Card?e.apiService.postSetupPayment().then((function(t){return e.stripe.handleCardSetup(t,e.stripeCardNumberElement)})).then((function(r){r.error?n(r.error.message):r.setupIntent&&"succeeded"===r.setupIntent.status?t([r.setupIntent.payment_method,e.method]):n()})):e.stripe.createToken("bank_account",e.bank).then((function(r){r.error?n(r.error.message):r.token&&null!=r.token.id?t([r.token.id,e.method]):n()})))}))},e.prototype.handleStripeCardPayment=function(e,t){var n=this;return new Promise((function(o,a){if(!n.showMethods||null!=n.stripeCardNumberElement){return(n.showMethods?n.stripe.handleCardSetup(e,n.stripeCardNumberElement):n.stripe.handleCardSetup(e)).then((function(e){return r(n,void 0,void 0,(function(){return i(this,(function(n){switch(n.label){case 0:return e.error?(a(e.error.message),[3,5]):[3,1];case 1:return e.paymentIntent&&"succeeded"===e.paymentIntent.status?null==t?[3,3]:[4,t()]:[3,4];case 2:n.sent(),n.label=3;case 3:return o(),[3,5];case 4:a(),n.label=5;case 5:return[2]}}))}))}))}a()}))},e.prototype.setStripeElement=function(){var e=this;window.setTimeout((function(){e.showMethods&&e.method===o.PaymentMethodType.Card&&(null==e.stripeCardNumberElement&&(e.stripeCardNumberElement=e.stripeElements.create("cardNumber",{style:I,classes:E,placeholder:""})),null==e.stripeCardExpiryElement&&(e.stripeCardExpiryElement=e.stripeElements.create("cardExpiry",{style:I,classes:E})),null==e.stripeCardCvcElement&&(e.stripeCardCvcElement=e.stripeElements.create("cardCvc",{style:I,classes:E,placeholder:""})),e.stripeCardNumberElement.mount("#stripe-card-number-element"),e.stripeCardExpiryElement.mount("#stripe-card-expiry-element"),e.stripeCardCvcElement.mount("#stripe-card-cvc-element"))}),50)},e.ɵfac=function(t){return new(t||e)(s.ɵɵdirectiveInject(l.PlatformUtilsService),s.ɵɵdirectiveInject(c.ApiService))},e.ɵcmp=s.ɵɵdefineComponent({type:e,selectors:[["app-payment"]],inputs:{showMethods:"showMethods",showOptions:"showOptions",method:"method",hideBank:"hideBank",hidePaypal:"hidePaypal",hideCredit:"hideCredit"},decls:10,vars:5,consts:[["class","mb-4 text-lg",4,"ngIf"],[4,"ngIf"],[1,"mb-4","text-lg"],[1,"form-check","form-check-inline","mr-4"],["type","radio","name","Method","id","method-card",1,"form-check-input",3,"value","ngModel","ngModelChange","change"],["for","method-card",1,"form-check-label"],["aria-hidden","true",1,"fa","fa-fw","fa-credit-card"],["class","form-check form-check-inline mr-4",4,"ngIf"],["class","form-check form-check-inline",4,"ngIf"],["type","radio","name","Method","id","method-bank",1,"form-check-input",3,"value","ngModel","ngModelChange","change"],["for","method-bank",1,"form-check-label"],["aria-hidden","true",1,"fa","fa-fw","fa-university"],[1,"form-check","form-check-inline"],["type","radio","name","Method","id","method-paypal",1,"form-check-input",3,"value","ngModel","ngModelChange","change"],["for","method-paypal",1,"form-check-label"],["aria-hidden","true",1,"fa","fa-fw","fa-paypal"],["type","radio","name","Method","id","method-credit",1,"form-check-input",3,"value","ngModel","ngModelChange","change"],["for","method-credit",1,"form-check-label"],["aria-hidden","true",1,"fa","fa-fw","fa-dollar"],[1,"row"],[1,"form-group","col-4"],["for","stripe-card-number-element"],["id","stripe-card-number-element",1,"form-control","stripe-form-control"],[1,"form-group","col-8","d-flex","align-items-end"],["src","images/cards.png","alt","Visa, MasterCard, Discover, AmEx, JCB, Diners Club, UnionPay","width","323","height","32"],["for","stripe-card-expiry-element"],["id","stripe-card-expiry-element",1,"form-control","stripe-form-control"],[1,"d-flex"],["for","stripe-card-cvc-element"],["href","https://www.cvvnumber.com/cvv.html","tabindex","-1","target","_blank","rel","noopener noreferrer",1,"ml-auto",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-question-circle-o"],["id","stripe-card-cvc-element",1,"form-control","stripe-form-control"],["type","warning",3,"title"],[1,"form-group","col-6"],["for","routing_number"],["id","routing_number","type","text","name","routing_number","required","","appInputVerbatim","",1,"form-control",3,"ngModel","ngModelChange"],["for","account_number"],["id","account_number","type","text","name","account_number","required","","appInputVerbatim","",1,"form-control",3,"ngModel","ngModelChange"],["for","account_holder_name"],["id","account_holder_name","type","text","name","account_holder_name","required","",1,"form-control",3,"ngModel","ngModelChange"],["for","account_holder_type"],["id","account_holder_type","name","account_holder_type","required","",1,"form-control",3,"ngModel","ngModelChange"],["value",""],["value","company"],["value","individual"],[1,"mb-3"],["id","bt-dropin-container",1,"mb-1"],[1,"text-muted"],["type","note"]],template:function(e,t){1&e&&(s.ɵɵtemplate(0,x,19,8,"div",0),s.ɵɵtext(1,"\n"),s.ɵɵtemplate(2,b,46,12,"ng-container",1),s.ɵɵtext(3,"\n"),s.ɵɵtemplate(4,S,60,34,"ng-container",1),s.ɵɵtext(5,"\n"),s.ɵɵtemplate(6,w,11,3,"ng-container",1),s.ɵɵtext(7,"\n"),s.ɵɵtemplate(8,C,6,3,"ng-container",1),s.ɵɵtext(9,"\n")),2&e&&(s.ɵɵproperty("ngIf",t.showOptions&&t.showMethods),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",t.showMethods&&t.method===t.paymentMethodType.Card),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",t.showMethods&&t.method===t.paymentMethodType.BankAccount),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",t.showMethods&&t.method===t.paymentMethodType.PayPal),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",t.showMethods&&t.method===t.paymentMethodType.Credit))},directives:[p.NgIf,u.RadioControlValueAccessor,u.DefaultValueAccessor,u.NgControlStatus,u.NgModel,d.A11yTitleDirective,m.CalloutComponent,u.RequiredValidator,h.InputVerbatimDirective,u.SelectControlValueAccessor,u.NgSelectOption,u.ɵangular_packages_forms_forms_x],pipes:[f.I18nPipe],encapsulation:2}),e}();t.PaymentComponent=P},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Text=0]="Text",e[e.Hidden=1]="Hidden",e[e.Boolean=2]="Boolean"}(t.FieldType||(t.FieldType={}))},,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){this.id=null,this.name=null,this.revisionDate=null,e&&(this.id=e.id,this.revisionDate=e.revisionDate)};t.FolderView=r},,,,,,,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]1&&(n=this.getFirstLetters(r,this.charCount)),null==n&&(n=r.substr(0,this.charCount)),a=this.getCharText(n),s=this.stringToColor(r),(l=this.getSvg(this.size,s)).appendChild(a),c=window.document.createElement("div").appendChild(l).outerHTML,p=window.btoa(unescape(encodeURIComponent(c))),this.src="data:image/svg+xml;base64,"+p,i.label=4;case 4:return[2]}}))}))},e.prototype.stringToColor=function(e){for(var t=0,n=0;n>8*n&255).toString(16)).substr(-2)}return r},e.prototype.getFirstLetters=function(e,t){var n=e.split(" ");if(n.length>1){for(var r="",i=0;i0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasAttachments",{get:function(){return this.attachments&&this.attachments.length>0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasOldAttachments",{get:function(){if(this.hasAttachments)for(var e=0;e0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"passwordRevisionDisplayDate",{get:function(){return this.type!==r.CipherType.Login||null==this.login||null==this.login.password||""===this.login.password?null:this.login.passwordRevisionDate},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isDeleted",{get:function(){return null!=this.deletedDate},enumerable:!0,configurable:!0}),e}();t.CipherView=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(30),i=function(){function e(e){this.title=null,this.middleName=null,this.address1=null,this.address2=null,this.address3=null,this.city=null,this.state=null,this.postalCode=null,this.country=null,this.company=null,this.email=null,this.phone=null,this.ssn=null,this.username=null,this.passportNumber=null,this.licenseNumber=null,this._firstName=null,this._lastName=null,this._subTitle=null}return Object.defineProperty(e.prototype,"firstName",{get:function(){return this._firstName},set:function(e){this._firstName=e,this._subTitle=null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"lastName",{get:function(){return this._lastName},set:function(e){this._lastName=e,this._subTitle=null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"subTitle",{get:function(){return null!=this._subTitle||null==this.firstName&&null==this.lastName||(this._subTitle="",null!=this.firstName&&(this._subTitle=this.firstName),null!=this.lastName&&(""!==this._subTitle&&(this._subTitle+=" "),this._subTitle+=this.lastName)),this._subTitle},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fullName",{get:function(){if(null!=this.title||null!=this.firstName||null!=this.middleName||null!=this.lastName){var e="";return null!=this.title&&(e+=this.title+" "),null!=this.firstName&&(e+=this.firstName+" "),null!=this.middleName&&(e+=this.middleName+" "),null!=this.lastName&&(e+=this.lastName),e.trim()}return null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fullAddress",{get:function(){var e=this.address1;return r.Utils.isNullOrWhitespace(this.address2)||(r.Utils.isNullOrWhitespace(e)||(e+=", "),e+=this.address2),r.Utils.isNullOrWhitespace(this.address3)||(r.Utils.isNullOrWhitespace(e)||(e+=", "),e+=this.address3),e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fullAddressPart2",{get:function(){if(null==this.city&&null==this.state&&null==this.postalCode)return null;var e=this.city||"-",t=this.state,n=this.postalCode||"-",i=e;return r.Utils.isNullOrWhitespace(t)||(i+=", "+t),i+=", "+n},enumerable:!0,configurable:!0}),e}();t.IdentityView=i},,,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){this.id=e.id,this.organizationId=e.organizationId,this.name=e.name,this.externalId=e.externalId,this.readOnly=e.readOnly};t.CollectionData=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(140),i=function(e){this.id=null,this.organizationId=null,this.name=null,this.externalId=null,this.readOnly=null,this.hidePasswords=null,e&&(this.id=e.id,this.organizationId=e.organizationId,this.externalId=e.externalId,e instanceof r.Collection&&(this.readOnly=e.readOnly,this.hidePasswords=e.hidePasswords))};t.CollectionView=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Invited=0]="Invited",e[e.Accepted=1]="Accepted",e[e.Confirmed=2]="Confirmed"}(t.OrganizationUserStatusType||(t.OrganizationUserStatusType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(39),i=n(482),o=n(483),a=n(484),s=n(485),l=n(486),c=n(595),p=n(488),u=function(e,t,n){if(null!=e){switch(this.id=e.id,this.organizationId=e.organizationId,this.folderId=e.folderId,this.userId=t,this.edit=e.edit,this.viewPassword=e.viewPassword,this.organizationUseTotp=e.organizationUseTotp,this.favorite=e.favorite,this.revisionDate=e.revisionDate,this.type=e.type,this.name=e.name,this.notes=e.notes,this.collectionIds=null!=n?n:e.collectionIds,this.deletedDate=e.deletedDate,this.type){case r.CipherType.Login:this.login=new l.LoginData(e.login);break;case r.CipherType.SecureNote:this.secureNote=new p.SecureNoteData(e.secureNote);break;case r.CipherType.Card:this.card=new o.CardData(e.card);break;case r.CipherType.Identity:this.identity=new s.IdentityData(e.identity)}null!=e.fields&&(this.fields=e.fields.map((function(e){return new a.FieldData(e)}))),null!=e.attachments&&(this.attachments=e.attachments.map((function(e){return new i.AttachmentData(e)}))),null!=e.passwordHistory&&(this.passwordHistory=e.passwordHistory.map((function(e){return new c.PasswordHistoryData(e)})))}};t.CipherData=u},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(30),i=function(){function e(e){this.username=null,this.password=null,this.passwordRevisionDate=null,this.totp=null,this.uris=null,e&&(this.passwordRevisionDate=e.passwordRevisionDate)}return Object.defineProperty(e.prototype,"uri",{get:function(){return this.hasUris?this.uris[0].uri:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maskedPassword",{get:function(){return null!=this.password?"••••••••":null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"subTitle",{get:function(){return this.username},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canLaunch",{get:function(){return this.hasUris&&this.uris.some((function(e){return e.canLaunch}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasTotp",{get:function(){return!r.Utils.isNullOrWhitespace(this.totp)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"launchUri",{get:function(){if(this.hasUris){var e=this.uris.find((function(e){return e.canLaunch}));if(null!=e)return e.launchUri}return null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasUris",{get:function(){return null!=this.uris&&this.uris.length>0},enumerable:!0,configurable:!0}),e}();t.LoginView=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Text=0]="Text",e[e.File=1]="File"}(t.SendType||(t.SendType={}))},,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0?(p=[],[4,this.attachments.reduce((function(t,n){return t.then((function(){return n.decrypt(l,e)})).then((function(e){p.push(e)}))}),Promise.resolve())]):[3,13];case 12:a.sent(),t.attachments=p,a.label=13;case 13:return null!=this.fields&&this.fields.length>0?(u=[],[4,this.fields.reduce((function(t,n){return t.then((function(){return n.decrypt(l,e)})).then((function(e){u.push(e)}))}),Promise.resolve())]):[3,15];case 14:a.sent(),t.fields=u,a.label=15;case 15:return null!=this.passwordHistory&&this.passwordHistory.length>0?(d=[],[4,this.passwordHistory.reduce((function(t,n){return t.then((function(){return n.decrypt(l,e)})).then((function(e){d.push(e)}))}),Promise.resolve())]):[3,17];case 16:a.sent(),t.passwordHistory=d,a.label=17;case 17:return[2,t]}}))}))},t.prototype.toCipherData=function(e){var t=new l.CipherData;switch(t.id=this.id,t.organizationId=this.organizationId,t.folderId=this.folderId,t.userId=null!=this.organizationId?e:null,t.edit=this.edit,t.viewPassword=this.viewPassword,t.organizationUseTotp=this.organizationUseTotp,t.favorite=this.favorite,t.revisionDate=null!=this.revisionDate?this.revisionDate.toISOString():null,t.type=this.type,t.collectionIds=this.collectionIds,t.deletedDate=null!=this.deletedDate?this.deletedDate.toISOString():null,this.buildDataModel(this,t,{name:null,notes:null}),t.type){case s.CipherType.Login:t.login=this.login.toLoginData();break;case s.CipherType.SecureNote:t.secureNote=this.secureNote.toSecureNoteData();break;case s.CipherType.Card:t.card=this.card.toCardData();break;case s.CipherType.Identity:t.identity=this.identity.toIdentityData()}return null!=this.fields&&(t.fields=this.fields.map((function(e){return e.toFieldData()}))),null!=this.attachments&&(t.attachments=this.attachments.map((function(e){return e.toAttachmentData()}))),null!=this.passwordHistory&&(t.passwordHistory=this.passwordHistory.map((function(e){return e.toPasswordHistoryData()}))),t},t}(d.default);t.Cipher=g},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.SendService=r},,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.name=null,this.value=null,this.type=null,this.newField=!1,this.showValue=!1,e&&(this.type=e.type)}return Object.defineProperty(e.prototype,"maskedValue",{get:function(){return null!=this.value?"••••••••":null},enumerable:!0,configurable:!0}),e}();t.FieldView=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(39),i=n(599),o=n(600),a=n(601),s=n(602),l=n(603),c=n(604),p=n(880),u=function(e){var t=this;switch(this.type=e.type,this.folderId=e.folderId,this.organizationId=e.organizationId,this.name=e.name?e.name.encryptedString:null,this.notes=e.notes?e.notes.encryptedString:null,this.favorite=e.favorite,this.lastKnownRevisionDate=e.revisionDate,this.type){case r.CipherType.Login:this.login=new s.LoginApi,this.login.uris=null,this.login.username=e.login.username?e.login.username.encryptedString:null,this.login.password=e.login.password?e.login.password.encryptedString:null,this.login.passwordRevisionDate=null!=e.login.passwordRevisionDate?e.login.passwordRevisionDate.toISOString():null,this.login.totp=e.login.totp?e.login.totp.encryptedString:null,null!=e.login.uris&&(this.login.uris=e.login.uris.map((function(e){var t=new l.LoginUriApi;return t.uri=null!=e.uri?e.uri.encryptedString:null,t.match=null!=e.match?e.match:null,t})));break;case r.CipherType.SecureNote:this.secureNote=new c.SecureNoteApi,this.secureNote.type=e.secureNote.type;break;case r.CipherType.Card:this.card=new i.CardApi,this.card.cardholderName=null!=e.card.cardholderName?e.card.cardholderName.encryptedString:null,this.card.brand=null!=e.card.brand?e.card.brand.encryptedString:null,this.card.number=null!=e.card.number?e.card.number.encryptedString:null,this.card.expMonth=null!=e.card.expMonth?e.card.expMonth.encryptedString:null,this.card.expYear=null!=e.card.expYear?e.card.expYear.encryptedString:null,this.card.code=null!=e.card.code?e.card.code.encryptedString:null;break;case r.CipherType.Identity:this.identity=new a.IdentityApi,this.identity.title=null!=e.identity.title?e.identity.title.encryptedString:null,this.identity.firstName=null!=e.identity.firstName?e.identity.firstName.encryptedString:null,this.identity.middleName=null!=e.identity.middleName?e.identity.middleName.encryptedString:null,this.identity.lastName=null!=e.identity.lastName?e.identity.lastName.encryptedString:null,this.identity.address1=null!=e.identity.address1?e.identity.address1.encryptedString:null,this.identity.address2=null!=e.identity.address2?e.identity.address2.encryptedString:null,this.identity.address3=null!=e.identity.address3?e.identity.address3.encryptedString:null,this.identity.city=null!=e.identity.city?e.identity.city.encryptedString:null,this.identity.state=null!=e.identity.state?e.identity.state.encryptedString:null,this.identity.postalCode=null!=e.identity.postalCode?e.identity.postalCode.encryptedString:null,this.identity.country=null!=e.identity.country?e.identity.country.encryptedString:null,this.identity.company=null!=e.identity.company?e.identity.company.encryptedString:null,this.identity.email=null!=e.identity.email?e.identity.email.encryptedString:null,this.identity.phone=null!=e.identity.phone?e.identity.phone.encryptedString:null,this.identity.ssn=null!=e.identity.ssn?e.identity.ssn.encryptedString:null,this.identity.username=null!=e.identity.username?e.identity.username.encryptedString:null,this.identity.passportNumber=null!=e.identity.passportNumber?e.identity.passportNumber.encryptedString:null,this.identity.licenseNumber=null!=e.identity.licenseNumber?e.identity.licenseNumber.encryptedString:null}null!=e.fields&&(this.fields=e.fields.map((function(e){var t=new o.FieldApi;return t.type=e.type,t.name=e.name?e.name.encryptedString:null,t.value=e.value?e.value.encryptedString:null,t}))),null!=e.passwordHistory&&(this.passwordHistory=[],e.passwordHistory.forEach((function(e){t.passwordHistory.push({lastUsedDate:e.lastUsedDate,password:e.password?e.password.encryptedString:null})}))),null!=e.attachments&&(this.attachments={},this.attachments2={},e.attachments.forEach((function(e){var n=e.fileName?e.fileName.encryptedString:null;t.attachments[e.id]=n;var r=new p.AttachmentRequest;r.fileName=n,null!=e.key&&(r.key=e.key.encryptedString),t.attachments2[e.id]=r})))};t.CipherRequest=u},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(t,n,r){var i=e.call(this,t)||this,o=null;if(null!=t){var a=i.getResponseProperty("ErrorModel");o=a&&r?a:t}return o?(i.message=i.getResponseProperty("Message",o),i.validationErrors=i.getResponseProperty("ValidationErrors",o)):429===n&&(i.message="Rate limit exceeded. Try again later."),i.statusCode=n,i}return i(t,e),t.prototype.getSingleMessage=function(){if(null==this.validationErrors)return this.message;for(var e in this.validationErrors)if(this.validationErrors.hasOwnProperty(e)&&this.validationErrors[e].length)return this.validationErrors[e][0];return this.message},t.prototype.getAllMessages=function(){var e=[];if(null==this.validationErrors)return e;var t=function(t){if(!n.validationErrors.hasOwnProperty(t))return"continue";n.validationErrors[t].forEach((function(n){var r="";if(t.indexOf("[")>-1&&t.indexOf("]")>-1){var i=t.lastIndexOf(".");r=t.substr(0,i>-1?i:t.length)+": "}e.push(r+n)}))},n=this;for(var r in this.validationErrors)t(r);return e},t}(n(23).BaseResponse);t.ErrorResponse=o},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0),n(3),n(5);var r=n(0),i=n(3),o=n(5),a=function(){function e(e,t){this.i18nService=e,this.platformUtilsService=t}return e.prototype.showError=function(e){var t=this.i18nService.t("unexpectedError"),n=[];return null!=e&&"string"==typeof e?n.push(e):null==e||"object"!=typeof e?n.push(t):null!=e.validationErrors?n=n.concat(e.getAllMessages()):n.push(e.message?e.message:t),1===n.length?this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),n[0]):n.length>1&&this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),n,{timeout:5e3*n.length}),n},e.ɵfac=function(t){return new(t||e)(r.ɵɵinject(i.I18nService),r.ɵɵinject(o.PlatformUtilsService))},e.ɵprov=r.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.ValidationService=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0),n(72);var r=n(8),i=(n(3),n(0)),o=n(8),a=n(72),s=n(3),l=function(){function e(e,t,n,i){var o=this;this.router=e,this.activatedRoute=t,this.titleService=n,this.previousUrl=void 0,this.currentUrl=void 0,this.currentUrl=this.router.url,e.events.subscribe((function(e){if(e instanceof r.NavigationEnd){o.previousUrl=o.currentUrl,o.currentUrl=e.url;for(var t=i.t("pageTitle","Bitwarden"),n=null,a=null,s=o.activatedRoute.firstChild;null!=s;){if(null==s.firstChild){if(null!=s.snapshot.data&&null!=s.snapshot.data.title){a=s.snapshot.data.title;break}if(null!=s.snapshot.data&&null!=s.snapshot.data.titleId){n=s.snapshot.data.titleId;break}n=null,a=null;break}s=s.firstChild}if(null!=n||null!=a){var l=null!=a?a:i.t(n);null!=l&&""!==l&&(t=l+" | "+t)}o.titleService.setTitle(t)}}))}return e.prototype.getPreviousUrl=function(){return this.previousUrl},e.prototype.setPreviousUrl=function(e){this.previousUrl=e},e.ɵfac=function(t){return new(t||e)(i.ɵɵinject(o.Router),i.ɵɵinject(o.ActivatedRoute),i.ɵɵinject(a.Title),i.ɵɵinject(s.I18nService))},e.ɵprov=i.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.RouterService=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.PBKDF2_SHA256=0]="PBKDF2_SHA256"}(t.KdfType||(t.KdfType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0),n(3);var r=n(0),i=n(3),o=n(4);function a(e,t){if(1&e&&(r.ɵɵelementContainerStart(0),r.ɵɵtext(1),r.ɵɵelementContainerEnd()),2&e){var n=r.ɵɵnextContext();r.ɵɵadvance(1),r.ɵɵtextInterpolate1("\n ",n.text,"\n ")}}var s=function(e){return{width:e}},l=function(){function e(e){this.i18nService=e,this.showText=!1,this.scoreWidth=0,this.color="bg-danger"}return e.prototype.ngOnChanges=function(){switch(this.scoreWidth=null==this.score?0:20*(this.score+1),this.score){case 4:this.color="bg-success",this.text=this.i18nService.t("strong");break;case 3:this.color="bg-primary",this.text=this.i18nService.t("good");break;case 2:this.color="bg-warning",this.text=this.i18nService.t("weak");break;default:this.color="bg-danger",this.text=null!=this.score?this.i18nService.t("weak"):null}},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(i.I18nService))},e.ɵcmp=r.ɵɵdefineComponent({type:e,selectors:[["app-password-strength"]],inputs:{score:"score",showText:"showText"},features:[r.ɵɵNgOnChangesFeature],decls:8,vars:8,consts:[[1,"progress"],["role","progressbar","aria-valuemin","0","aria-valuemax","100",3,"ngStyle"],[4,"ngIf"]],template:function(e,t){1&e&&(r.ɵɵelementStart(0,"div",0),r.ɵɵtext(1,"\n "),r.ɵɵelementStart(2,"div",1),r.ɵɵtext(3,"\n "),r.ɵɵtemplate(4,a,2,1,"ng-container",2),r.ɵɵtext(5,"\n "),r.ɵɵelementEnd(),r.ɵɵtext(6,"\n"),r.ɵɵelementEnd(),r.ɵɵtext(7,"\n")),2&e&&(r.ɵɵadvance(2),r.ɵɵclassMapInterpolate1("progress-bar ",t.color,""),r.ɵɵproperty("ngStyle",r.ɵɵpureFunction1(6,s,t.scoreWidth+"%")),r.ɵɵattribute("aria-valuenow",t.scoreWidth),r.ɵɵadvance(2),r.ɵɵproperty("ngIf",t.showText&&t.text))},directives:[o.NgStyle,o.NgIf],encapsulation:2}),e}();t.PasswordStrengthComponent=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Owner=0]="Owner",e[e.Admin=1]="Admin",e[e.User=2]="User",e[e.Manager=3]="Manager",e[e.Custom=4]="Custom"}(t.OrganizationUserType||(t.OrganizationUserType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(0),i=function(){function e(){}return e.prototype.transform=function(e,t,n,r,i){return null==e||0===e.length?[]:null==t||t.length<2?e:(t=t.trim().toLowerCase(),e.filter((function(e){return null!=n&&null!=e[n]&&e[n].toString().toLowerCase().indexOf(t)>-1||(null!=r&&null!=e[r]&&e[r].toString().toLowerCase().indexOf(t)>-1||null!=i&&null!=e[i]&&e[i].toString().toLowerCase().indexOf(t)>-1)})))},e.ɵfac=function(t){return new(t||e)},e.ɵpipe=r.ɵɵdefinePipe({name:"search",type:e,pure:!0}),e}();t.SearchPipe=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0),n(3);var r=n(280),i=n(254),o=n(0),a=n(3),s=function(){function e(e){this.i18nService=e}return e.prototype.getDefaultDateFilters=function(){var e=new Date,t=new Date(e.getFullYear(),e.getMonth(),e.getDate(),23,59);e.setDate(e.getDate()-30);var n=new Date(e.getFullYear(),e.getMonth(),e.getDate(),0,0);return[this.toDateTimeLocalString(n),this.toDateTimeLocalString(t)]},e.prototype.formatDateFilters=function(e,t){var n=new Date(e),r=new Date(t+":59.999");if(isNaN(n.getTime())||isNaN(r.getTime())||r"+n+"";var r=this.makeAnchor(n);return r.setAttribute("href","#/organizations/"+e.organizationId+"/vault?search="+n+"&viewEvents="+e.cipherId),r.outerHTML},e.prototype.formatGroupId=function(e){var t=this.getShortId(e.groupId),n=this.makeAnchor(t);return n.setAttribute("href","#/organizations/"+e.organizationId+"/manage/groups?search="+t),n.outerHTML},e.prototype.formatCollectionId=function(e){var t=this.getShortId(e.collectionId),n=this.makeAnchor(t);return n.setAttribute("href","#/organizations/"+e.organizationId+"/manage/collections?search="+t),n.outerHTML},e.prototype.formatOrgUserId=function(e){var t=this.getShortId(e.organizationUserId),n=this.makeAnchor(t);return n.setAttribute("href","#/organizations/"+e.organizationId+"/manage/people?search="+t+"&viewEvents="+e.organizationUserId),n.outerHTML},e.prototype.formatPolicyId=function(e){var t=this.getShortId(e.policyId),n=this.makeAnchor(t);return n.setAttribute("href","#/organizations/"+e.organizationId+"/manage/policies?policyId="+e.policyId),n.outerHTML},e.prototype.makeAnchor=function(e){var t=document.createElement("a");return t.title=this.i18nService.t("view"),t.innerHTML=""+e+"",t},e.prototype.getShortId=function(e){return e.substring(0,8)},e.prototype.toDateTimeLocalString=function(e){return e.getFullYear()+"-"+this.pad(e.getMonth()+1)+"-"+this.pad(e.getDate())+"T"+this.pad(e.getHours())+":"+this.pad(e.getMinutes())},e.prototype.pad=function(e){var t=Math.floor(Math.abs(e));return(t<10?"0":"")+t},e.ɵfac=function(t){return new(t||e)(o.ɵɵinject(a.I18nService))},e.ɵprov=o.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.EventService=s;var l=function(){};t.EventInfo=l;var c=function(){this.cipherInfo=!0};t.EventOptions=c},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.User_LoggedIn=1e3]="User_LoggedIn",e[e.User_ChangedPassword=1001]="User_ChangedPassword",e[e.User_Updated2fa=1002]="User_Updated2fa",e[e.User_Disabled2fa=1003]="User_Disabled2fa",e[e.User_Recovered2fa=1004]="User_Recovered2fa",e[e.User_FailedLogIn=1005]="User_FailedLogIn",e[e.User_FailedLogIn2fa=1006]="User_FailedLogIn2fa",e[e.User_ClientExportedVault=1007]="User_ClientExportedVault",e[e.Cipher_Created=1100]="Cipher_Created",e[e.Cipher_Updated=1101]="Cipher_Updated",e[e.Cipher_Deleted=1102]="Cipher_Deleted",e[e.Cipher_AttachmentCreated=1103]="Cipher_AttachmentCreated",e[e.Cipher_AttachmentDeleted=1104]="Cipher_AttachmentDeleted",e[e.Cipher_Shared=1105]="Cipher_Shared",e[e.Cipher_UpdatedCollections=1106]="Cipher_UpdatedCollections",e[e.Cipher_ClientViewed=1107]="Cipher_ClientViewed",e[e.Cipher_ClientToggledPasswordVisible=1108]="Cipher_ClientToggledPasswordVisible",e[e.Cipher_ClientToggledHiddenFieldVisible=1109]="Cipher_ClientToggledHiddenFieldVisible",e[e.Cipher_ClientToggledCardCodeVisible=1110]="Cipher_ClientToggledCardCodeVisible",e[e.Cipher_ClientCopiedPassword=1111]="Cipher_ClientCopiedPassword",e[e.Cipher_ClientCopiedHiddenField=1112]="Cipher_ClientCopiedHiddenField",e[e.Cipher_ClientCopiedCardCode=1113]="Cipher_ClientCopiedCardCode",e[e.Cipher_ClientAutofilled=1114]="Cipher_ClientAutofilled",e[e.Cipher_SoftDeleted=1115]="Cipher_SoftDeleted",e[e.Cipher_Restored=1116]="Cipher_Restored",e[e.Collection_Created=1300]="Collection_Created",e[e.Collection_Updated=1301]="Collection_Updated",e[e.Collection_Deleted=1302]="Collection_Deleted",e[e.Group_Created=1400]="Group_Created",e[e.Group_Updated=1401]="Group_Updated",e[e.Group_Deleted=1402]="Group_Deleted",e[e.OrganizationUser_Invited=1500]="OrganizationUser_Invited",e[e.OrganizationUser_Confirmed=1501]="OrganizationUser_Confirmed",e[e.OrganizationUser_Updated=1502]="OrganizationUser_Updated",e[e.OrganizationUser_Removed=1503]="OrganizationUser_Removed",e[e.OrganizationUser_UpdatedGroups=1504]="OrganizationUser_UpdatedGroups",e[e.OrganizationUser_UnlinkedSso=1505]="OrganizationUser_UnlinkedSso",e[e.OrganizationUser_ResetPassword_Enroll=1506]="OrganizationUser_ResetPassword_Enroll",e[e.OrganizationUser_ResetPassword_Withdraw=1507]="OrganizationUser_ResetPassword_Withdraw",e[e.Organization_Updated=1600]="Organization_Updated",e[e.Organization_PurgedVault=1601]="Organization_PurgedVault",e[e.Policy_Updated=1700]="Policy_Updated"}(t.EventType||(t.EventType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Card=0]="Card",e[e.BankAccount=1]="BankAccount",e[e.PayPal=2]="PayPal",e[e.BitPay=3]="BitPay",e[e.Credit=4]="Credit",e[e.WireTransfer=5]="WireTransfer",e[e.AppleInApp=6]="AppleInApp",e[e.GoogleInApp=7]="GoogleInApp",e[e.Check=8]="Check"}(t.PaymentMethodType||(t.PaymentMethodType={}))},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]4?(t=Math.floor(this.totpCode.length/2),this.totpCodeFormatted=this.totpCode.substring(0,t)+" "+this.totpCode.substring(t)):this.totpCodeFormatted=this.totpCode:(this.totpCodeFormatted=null,this.totpInterval&&window.clearInterval(this.totpInterval)),[2]}}))}))},t.prototype.allowOwnershipAssignment=function(){return(!this.editMode||this.cloneMode)&&null!=this.ownershipOptions&&(this.ownershipOptions.length>1||!this.allowPersonal)},t.prototype.totpTick=function(e){return o(this,void 0,void 0,(function(){var t,n;return a(this,(function(r){switch(r.label){case 0:return t=Math.round((new Date).getTime()/1e3),n=t%e,this.totpSec=e-n,this.totpDash=+(Math.round(78.6/e*n+"e+2")+"e-2"),this.totpLow=this.totpSec<=7,0!==n?[3,2]:[4,this.totpUpdateCode()];case 1:r.sent(),r.label=2;case 2:return[2]}}))}))},t.ɵfac=function(e){return new(e||t)(p.ɵɵdirectiveInject(u.CipherService),p.ɵɵdirectiveInject(d.FolderService),p.ɵɵdirectiveInject(m.I18nService),p.ɵɵdirectiveInject(h.PlatformUtilsService),p.ɵɵdirectiveInject(f.AuditService),p.ɵɵdirectiveInject(v.StateService),p.ɵɵdirectiveInject(y.UserService),p.ɵɵdirectiveInject(g.CollectionService),p.ɵɵdirectiveInject(x.TotpService),p.ɵɵdirectiveInject(b.PasswordGenerationService),p.ɵɵdirectiveInject(S.MessagingService),p.ɵɵdirectiveInject(w.EventService),p.ɵɵdirectiveInject(C.PolicyService))},t.ɵcmp=p.ɵɵdefineComponent({type:t,selectors:[["app-vault-add-edit"]],features:[p.ɵɵInheritDefinitionFeature],decls:36,vars:11,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","cipherAddEditTitle",1,"modal","fade"],["role","document",1,"modal-dialog","modal-lg"],["ngNativeValidate","","autocomplete","off",1,"modal-content",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-header"],["id","cipherAddEditTitle",1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],["class","modal-body",4,"ngIf"],[1,"modal-footer"],["type","submit","class","btn btn-primary btn-submit",3,"disabled",4,"ngIf"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],["class","ml-auto",4,"ngIf"],[1,"modal-body"],["type","info",4,"ngIf"],["class","row",4,"ngIf"],[1,"row"],[1,"col-6","form-group"],["for","name"],["id","name","type","text","name","Name","required","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["class","col-6 form-group",4,"ngIf"],[4,"ngIf"],[1,"form-group"],["for","notes"],["id","notes","name","Notes","rows","6",1,"form-control",3,"ngModel","disabled","ngModelChange"],[1,"mt-4"],["cdkDropList","",3,"cdkDropListDropped",4,"ngIf"],["href","#","appStopClick","","class","d-inline-block mb-2",3,"click",4,"ngIf"],["type","info"],["for","type"],["id","type","name","Type","appAutofocus","",1,"form-control",3,"ngModel","disabled","ngModelChange"],[3,"ngValue",4,"ngFor","ngForOf"],[3,"ngValue"],["for","folder"],["id","folder","name","FolderId",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","loginUsername"],[1,"input-group"],["id","loginUsername","type","text","name","Login.Username","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["class","input-group-append",4,"ngIf"],[1,"d-flex"],["for","loginPassword"],["class","ml-auto d-flex",4,"ngIf"],["id","loginPassword","name","Login.Password","appInputVerbatim","","autocomplete","new-password",1,"form-control","text-monospace",3,"type","ngModel","disabled","ngModelChange"],[1,"input-group-append"],["type","button",1,"btn","btn-outline-secondary",3,"appA11yTitle","disabled","click"],["aria-hidden","true",1,"fa","fa-lg",3,"ngClass"],["aria-hidden","true",1,"fa","fa-lg","fa-clone"],["for","loginTotp"],["id","loginTotp","name","Login.Totp","appInputVerbatim","",1,"form-control","text-monospace",3,"type","ngModel","disabled","ngModelChange"],[1,"col-6","form-group","totp","d-flex","align-items-end",3,"ngClass"],["class","d-flex align-items-center",4,"ngIf"],["href","#","appStopClick","","class","d-inline-block mb-3",3,"click",4,"ngIf"],["type","button",1,"btn","btn-outline-secondary",3,"appA11yTitle","click"],[1,"ml-auto","d-flex"],["href","#","class","d-block mr-2 fa-icon-above-input","appStopClick","",3,"appA11yTitle","click",4,"ngIf"],["href","#","appStopClick","",1,"d-block","fa-icon-above-input",3,"appA11yTitle","appApiAction","click"],["checkPasswordBtn",""],["aria-hidden","true",1,"fa","fa-lg","fa-fw","fa-check-circle",3,"hidden"],["aria-hidden","true",1,"fa","fa-lg","fa-fw","fa-spinner","fa-spin",3,"hidden","title"],["href","#","appStopClick","",1,"d-block","mr-2","fa-icon-above-input",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-lg","fa-fw","fa-refresh"],["src","images/totp-countdown.png",1,"ml-2",3,"title"],["href","#","appStopClick","","class","badge badge-primary ml-3",3,"click",4,"ngIf"],["href","#","appStopClick","",1,"badge","badge-primary","ml-3",3,"click"],[1,"d-flex","align-items-center"],[1,"totp-countdown","mr-3","ml-2"],[1,"totp-sec"],["r","12.6","cy","16","cx","16",1,"totp-circle","inner",3,"ngStyle"],["r","14","cy","16","cx","16",1,"totp-circle","outer"],[1,"totp-code","mr-2",3,"title"],["type","button",1,"btn","btn-link",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-clone"],["class","row",4,"ngFor","ngForOf","ngForTrackBy"],[1,"col-7","form-group"],[3,"for"],["type","text","appInputVerbatim","",1,"form-control",3,"id","name","ngModel","disabled","placeholder","ngModelChange"],["aria-hidden","true",1,"fa","fa-lg","fa-share"],[1,"col-5","form-group"],["href","https://help.bitwarden.com/article/uri-match-detection/","target","_blank","rel","noopener",1,"ml-auto",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-question-circle-o"],[1,"form-control","overflow-hidden",3,"id","name","ngModel","disabled","ngModelChange","change"],["type","button","class","btn btn-link text-danger ml-2",3,"appA11yTitle","click",4,"ngIf"],["type","button",1,"btn","btn-link","text-danger","ml-2",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-minus-circle","fa-lg"],["href","#","appStopClick","",1,"d-inline-block","mb-3",3,"click"],["aria-hidden","true",1,"fa","fa-plus-circle","fa-fw"],["for","cardCardholderName"],["id","cardCardholderName","type","text","name","Card.CardCardholderName",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","cardBrand"],["id","cardBrand","name","Card.Brand",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","cardNumber"],["id","cardNumber","type","text","name","Card.Number","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],[1,"col","form-group"],["for","cardExpMonth"],["id","cardExpMonth","name","Card.ExpMonth",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","cardExpYear"],["id","cardExpYear","type","text","name","Card.ExpYear",1,"form-control",3,"ngModel","placeholder","disabled","ngModelChange"],["for","cardCode"],["id","cardCode","name","Card.Code","appInputVerbatim","","autocomplete","new-password",1,"form-control","text-monospace",3,"type","ngModel","disabled","ngModelChange"],[1,"col-4","form-group"],["for","idTitle"],["id","idTitle","name","Identity.Title",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idFirstName"],["id","idFirstName","type","text","name","Identity.FirstName",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idMiddleName"],["id","idMiddleName","type","text","name","Identity.MiddleName",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idLastName"],["id","idLastName","type","text","name","Identity.LastName",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idUsername"],["id","idUsername","type","text","name","Identity.Username","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idCompany"],["id","idCompany","type","text","name","Identity.Company",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idSsn"],["id","idSsn","type","text","name","Identity.SSN","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idPassportNumber"],["id","idPassportNumber","type","text","name","Identity.PassportNumber","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idLicenseNumber"],["id","idLicenseNumber","type","text","name","Identity.LicenseNumber","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idEmail"],["id","idEmail","type","text","name","Identity.Email","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idPhone"],["id","idPhone","type","text","name","Identity.Phone",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idAddress1"],["id","idAddress1","type","text","name","Identity.Address1",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idAddress2"],["id","idAddress2","type","text","name","Identity.Address2",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idAddress3"],["id","idAddress3","type","text","name","Identity.Address3",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idCity"],["id","idCity","type","text","name","Identity.City",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idState"],["id","idState","type","text","name","Identity.State",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idPostalCode"],["id","idPostalCode","type","text","name","Identity.PostalCode",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idCountry"],["id","idCountry","type","text","name","Identity.Country",1,"form-control",3,"ngModel","disabled","ngModelChange"],["cdkDropList","",3,"cdkDropListDropped"],["class","row","cdkDrag","",4,"ngFor","ngForOf","ngForTrackBy"],["cdkDrag","",1,"row"],["href","https://help.bitwarden.com/article/custom-fields/","target","_blank","rel","noopener",1,"ml-auto",3,"appA11yTitle"],["type","text","appInputVerbatim","",1,"form-control",3,"id","name","ngModel","disabled","ngModelChange"],["class","input-group",4,"ngIf"],[1,"flex-fill"],["type","checkbox","appTrueFalseValue","","trueValue","true","falseValue","false",3,"id","name","ngModel","disabled","ngModelChange",4,"ngIf"],["type","button","class","btn btn-link text-muted cursor-move",3,"appA11yTitle",4,"ngIf"],["appInputVerbatim","","autocomplete","new-password",1,"form-control","text-monospace",3,"id","type","name","ngModel","disabled","ngModelChange"],["type","checkbox","appTrueFalseValue","","trueValue","true","falseValue","false",3,"id","name","ngModel","disabled","ngModelChange"],["type","button",1,"btn","btn-link","text-muted","cursor-move",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-bars","fa-lg"],["href","#","appStopClick","",1,"d-inline-block","mb-2",3,"click"],[1,"col-5"],["for","addFieldType",1,"sr-only"],["id","addFieldType","name","AddFieldType",1,"form-control",3,"ngModel","ngModelChange"],["for","organizationId"],["id","organizationId","name","OrganizationId",1,"form-control",3,"ngModel","disabled","ngModelChange","change"],["class","form-check",4,"ngFor","ngForOf"],[1,"form-check"],["type","checkbox",1,"form-check-input",3,"ngModel","id","name","disabled","ngModelChange"],[1,"form-check-label",3,"for"],[1,"small","text-muted","mt-4"],[1,"font-weight-semibold"],["class","ml-3",4,"ngIf"],["href","#","appStopClick","",3,"title","click"],[1,"ml-3"],[4,"ngFor","ngForOf"],[1,"password-wrapper","text-monospace","ml-2"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],[1,"ml-auto"],["type","button","class","btn btn-link",3,"appA11yTitle","click",4,"ngIf"],["type","button","class","btn btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click",4,"ngIf"],["type","button",1,"btn","btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click"],["deleteBtn",""],["aria-hidden","true",1,"fa","fa-trash-o","fa-lg","fa-fw",3,"hidden"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","fa-lg","fa-fw",3,"hidden","title"]],template:function(e,t){1&e&&(p.ɵɵelementStart(0,"div",0),p.ɵɵtext(1,"\n "),p.ɵɵelementStart(2,"div",1),p.ɵɵtext(3,"\n "),p.ɵɵelementStart(4,"form",2,3),p.ɵɵlistener("ngSubmit",(function(){return t.submit()})),p.ɵɵtext(6,"\n "),p.ɵɵelementStart(7,"div",4),p.ɵɵtext(8,"\n "),p.ɵɵelementStart(9,"h2",5),p.ɵɵtext(10),p.ɵɵelementEnd(),p.ɵɵtext(11,"\n "),p.ɵɵelementStart(12,"button",6),p.ɵɵpipe(13,"i18n"),p.ɵɵtext(14,"\n "),p.ɵɵelementStart(15,"span",7),p.ɵɵtext(16,"×"),p.ɵɵelementEnd(),p.ɵɵtext(17,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(18,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(19,"\n "),p.ɵɵtemplate(20,_e,54,25,"div",8),p.ɵɵtext(21,"\n "),p.ɵɵelementStart(22,"div",9),p.ɵɵtext(23,"\n "),p.ɵɵtemplate(24,Ae,9,7,"button",10),p.ɵɵtext(25,"\n "),p.ɵɵelementStart(26,"button",11),p.ɵɵtext(27),p.ɵɵpipe(28,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(29,"\n "),p.ɵɵtemplate(30,Be,6,2,"div",12),p.ɵɵtext(31,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(32,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(33,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(34,"\n"),p.ɵɵelementEnd(),p.ɵɵtext(35,"\n")),2&e&&(p.ɵɵadvance(4),p.ɵɵproperty("appApiAction",t.formPromise),p.ɵɵadvance(6),p.ɵɵtextInterpolate(t.title),p.ɵɵadvance(2),p.ɵɵpropertyInterpolate("appA11yTitle",p.ɵɵpipeBind1(13,7,"close")),p.ɵɵadvance(8),p.ɵɵproperty("ngIf",t.cipher),p.ɵɵadvance(4),p.ɵɵproperty("ngIf",!t.viewOnly),p.ɵɵadvance(3),p.ɵɵtextInterpolate1("\n ",p.ɵɵpipeBind1(28,9,t.viewOnly?"close":"cancel"),"\n "),p.ɵɵadvance(3),p.ɵɵproperty("ngIf",t.cipher&&!t.viewOnly))},directives:[I.NgControlStatusGroup,I.NgForm,E.ApiActionDirective,P.A11yTitleDirective,k.NgIf,I.DefaultValueAccessor,I.RequiredValidator,I.NgControlStatus,I.NgModel,_.CalloutComponent,I.SelectControlValueAccessor,A.AutofocusDirective,k.NgForOf,I.NgSelectOption,I.ɵangular_packages_forms_forms_x,O.InputVerbatimDirective,k.NgClass,T.StopClickDirective,k.NgStyle,M.CdkDropList,M.CdkDrag,B.TrueFalseValueDirective,I.CheckboxControlValueAccessor],pipes:[D.I18nPipe,k.DatePipe],encapsulation:2}),t}(c.AddEditComponent);t.AddEditComponent=De},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.ImportService=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(498),a=n(23),s=n(883),l=n(599),c=n(600),p=n(601),u=n(602),d=n(604),m=function(e){function t(t){var n=e.call(this,t)||this;n.id=n.getResponseProperty("Id"),n.organizationId=n.getResponseProperty("OrganizationId"),n.folderId=n.getResponseProperty("FolderId")||null,n.type=n.getResponseProperty("Type"),n.name=n.getResponseProperty("Name"),n.notes=n.getResponseProperty("Notes"),n.favorite=n.getResponseProperty("Favorite")||!1,n.edit=!!n.getResponseProperty("Edit"),null==n.getResponseProperty("ViewPassword")?n.viewPassword=!0:n.viewPassword=n.getResponseProperty("ViewPassword"),n.organizationUseTotp=n.getResponseProperty("OrganizationUseTotp"),n.revisionDate=n.getResponseProperty("RevisionDate"),n.collectionIds=n.getResponseProperty("CollectionIds"),n.deletedDate=n.getResponseProperty("DeletedDate");var r=n.getResponseProperty("Login");null!=r&&(n.login=new u.LoginApi(r));var i=n.getResponseProperty("Card");null!=i&&(n.card=new l.CardApi(i));var a=n.getResponseProperty("Identity");null!=a&&(n.identity=new p.IdentityApi(a));var m=n.getResponseProperty("SecureNote");null!=m&&(n.secureNote=new d.SecureNoteApi(m));var h=n.getResponseProperty("Fields");null!=h&&(n.fields=h.map((function(e){return new c.FieldApi(e)})));var f=n.getResponseProperty("Attachments");null!=f&&(n.attachments=f.map((function(e){return new o.AttachmentResponse(e)})));var v=n.getResponseProperty("PasswordHistory");return null!=v&&(n.passwordHistory=v.map((function(e){return new s.PasswordHistoryResponse(e)}))),n}return i(t,e),t}(a.BaseResponse);t.CipherResponse=m},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]500?500:this.ciphers.length,n=0;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]r){if(o===a.TwoFactorProviderType.WebAuthn&&!e)return;n=o,r=s.priority}})),n},e.prototype.makePreloginKey=function(e,t){return i(this,void 0,void 0,(function(){var n,r,i,a;return o(this,(function(o){switch(o.label){case 0:t=t.trim().toLowerCase(),n=null,r=null,o.label=1;case 1:return o.trys.push([1,3,,4]),[4,this.apiService.postPrelogin(new p.PreloginRequest(t))];case 2:return null!=(i=o.sent())&&(n=i.kdf,r=i.kdfIterations),[3,4];case 3:if(null==(a=o.sent())||404!==a.statusCode)throw a;return[3,4];case 4:return[2,this.cryptoService.makeKey(e,t,n,r)]}}))}))},e.prototype.authingWithApiKey=function(){return null!=this.clientId&&null!=this.clientSecret},e.prototype.authingWithSso=function(){return null!=this.code&&null!=this.codeVerifier&&null!=this.ssoRedirectUrl},e.prototype.authingWithPassword=function(){return null!=this.email&&null!=this.masterPasswordHash},e.prototype.logInHelper=function(e,t,n,r,p,d,m,h,f,v,y){return i(this,void 0,void 0,(function(){var i,g,x,b,S,w,C,I,E,P,k,_,A;return o(this,(function(o){switch(o.label){case 0:return[4,this.tokenService.getTwoFactorToken(e)];case 1:return i=o.sent(),[4,this.appIdService.getAppId()];case 2:return g=o.sent(),x=new l.DeviceRequest(g,this.platformUtilsService),b=[],S=[],w=[],b=null!=e&&null!=t?[e,t]:null,S=null!=n&&null!=r&&null!=p?[n,r,p]:null,w=null!=d&&null!=m?[d,m]:null,C=null!=v&&null!=f?new u.TokenRequest(b,S,w,f,v,y,x):null!=i?new u.TokenRequest(b,S,w,a.TwoFactorProviderType.Remember,i,!1,x):new u.TokenRequest(b,S,w,null,null,!1,x),[4,this.apiService.postIdentityToken(C)];case 3:return I=o.sent(),this.clearState(),(E=new s.AuthResult).twoFactor=!I.accessToken,E.twoFactor?(P=I,this.email=e,this.masterPasswordHash=t,this.code=n,this.codeVerifier=r,this.ssoRedirectUrl=p,this.clientId=d,this.clientSecret=m,this.key=this.setCryptoKeys?h:null,this.twoFactorProvidersData=P.twoFactorProviders2,E.twoFactorProviders=P.twoFactorProviders2,[2,E]):(k=I,E.resetMasterPassword=k.resetMasterPassword,null==k.twoFactorToken?[3,5]:[4,this.tokenService.setTwoFactorToken(k.twoFactorToken,e)]);case 4:o.sent(),o.label=5;case 5:return[4,this.tokenService.setTokens(k.accessToken,k.refreshToken)];case 6:return o.sent(),[4,this.userService.setInformation(this.tokenService.getUserId(),this.tokenService.getEmail(),k.kdf,k.kdfIterations)];case 7:return o.sent(),this.setCryptoKeys?null==h?[3,9]:[4,this.cryptoService.setKey(h)]:[3,19];case 8:o.sent(),o.label=9;case 9:return null==t?[3,11]:[4,this.cryptoService.setKeyHash(t)];case 10:o.sent(),o.label=11;case 11:return null!=n&&null==k.key?[3,19]:[4,this.cryptoService.setEncKey(k.key)];case 12:if(o.sent(),null!=k.privateKey)return[3,17];o.label=13;case 13:return o.trys.push([13,16,,17]),[4,this.cryptoService.makeKeyPair()];case 14:return _=o.sent(),[4,this.apiService.postAccountKeys(new c.KeysRequest(_[0],_[1].encryptedString))];case 15:return o.sent(),k.privateKey=_[1].encryptedString,[3,17];case 16:return A=o.sent(),this.logService.error(A),[3,17];case 17:return[4,this.cryptoService.setEncPrivateKey(k.privateKey)];case 18:o.sent(),o.label=19;case 19:return null!=this.vaultTimeoutService&&(this.vaultTimeoutService.biometricLocked=!1),this.messagingService.send("loggedIn"),[2,E]}}))}))},e.prototype.clearState=function(){this.key=null,this.email=null,this.masterPasswordHash=null,this.code=null,this.codeVerifier=null,this.ssoRedirectUrl=null,this.clientId=null,this.clientSecret=null,this.twoFactorProvidersData=null,this.selectedTwoFactorProviderType=null},e}();t.AuthService=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t,n){this.id=e,this.readOnly=t,this.hidePasswords=n};t.SelectionReadOnlyRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Android=0]="Android",e[e.iOS=1]="iOS",e[e.ChromeExtension=2]="ChromeExtension",e[e.FirefoxExtension=3]="FirefoxExtension",e[e.OperaExtension=4]="OperaExtension",e[e.EdgeExtension=5]="EdgeExtension",e[e.WindowsDesktop=6]="WindowsDesktop",e[e.MacOsDesktop=7]="MacOsDesktop",e[e.LinuxDesktop=8]="LinuxDesktop",e[e.ChromeBrowser=9]="ChromeBrowser",e[e.FirefoxBrowser=10]="FirefoxBrowser",e[e.OperaBrowser=11]="OperaBrowser",e[e.EdgeBrowser=12]="EdgeBrowser",e[e.IEBrowser=13]="IEBrowser",e[e.UnknownBrowser=14]="UnknownBrowser",e[e.AndroidAmazon=15]="AndroidAmazon",e[e.UWP=16]="UWP",e[e.SafariBrowser=17]="SafariBrowser",e[e.VivaldiBrowser=18]="VivaldiBrowser",e[e.VivaldiExtension=19]="VivaldiExtension",e[e.SafariExtension=20]="SafariExtension"}(t.DeviceType||(t.DeviceType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.SettingsService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Free=0]="Free",e[e.FamiliesAnnually2019=1]="FamiliesAnnually2019",e[e.TeamsMonthly2019=2]="TeamsMonthly2019",e[e.TeamsAnnually2019=3]="TeamsAnnually2019",e[e.EnterpriseMonthly2019=4]="EnterpriseMonthly2019",e[e.EnterpriseAnnually2019=5]="EnterpriseAnnually2019",e[e.Custom=6]="Custom",e[e.FamiliesAnnually=7]="FamiliesAnnually",e[e.TeamsMonthly=8]="TeamsMonthly",e[e.TeamsAnnually=9]="TeamsAnnually",e[e.EnterpriseMonthly=10]="EnterpriseMonthly",e[e.EnterpriseAnnually=11]="EnterpriseAnnually"}(t.PlanType||(t.PlanType={}))},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&(e.uris=[],this.uris.forEach((function(t){e.uris.push(t.toLoginUriData())}))),e},t}(n(81).default);t.Login=p},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(487),a=n(258),s=function(e){function t(t,n){void 0===n&&(n=!1);var r=e.call(this)||this;return null==t||(r.match=t.match,r.buildDomainModel(r,t,{uri:null},n,[])),r}return i(t,e),t.prototype.decrypt=function(e,t){return this.decryptObj(new a.LoginUriView(this),{uri:null},e,t)},t.prototype.toLoginUriData=function(){var e=new o.LoginUriData;return this.buildDataModel(this,e,{uri:null},["match"]),e},t}(n(81).default);t.LoginUri=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(488),a=n(81),s=n(94),l=function(e){function t(t,n){void 0===n&&(n=!1);var r=e.call(this)||this;return null==t||(r.type=t.type),r}return i(t,e),t.prototype.decrypt=function(e,t){return Promise.resolve(new s.SecureNoteView(this))},t.prototype.toSecureNoteData=function(){var e=new o.SecureNoteData;return e.type=this.type,e},t}(a.default);t.SecureNote=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),i=n(13),o=n(0),a=function(){function e(e,t){this.elementRef=e,this.renderer=t,this.trueValue=!0,this.falseValue=!1,this.propagateChange=function(e){}}return e.prototype.onHostChange=function(e){this.propagateChange(e.target.checked?this.trueValue:this.falseValue)},e.prototype.writeValue=function(e){e===this.trueValue?this.renderer.setProperty(this.elementRef.nativeElement,"checked",!0):this.renderer.setProperty(this.elementRef.nativeElement,"checked",!1)},e.prototype.registerOnChange=function(e){this.propagateChange=e},e.prototype.registerOnTouched=function(e){},e.prototype.setDisabledState=function(e){},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(o.ElementRef),o.ɵɵdirectiveInject(o.Renderer2))},e.ɵdir=o.ɵɵdefineDirective({type:e,selectors:[["input","type","checkbox","appTrueFalseValue",""]],hostBindings:function(e,t){1&e&&o.ɵɵlistener("change",(function(e){return t.onHostChange(e)}))},inputs:{trueValue:"trueValue",falseValue:"falseValue"},features:[o.ɵɵProvidersFeature([{provide:i.NG_VALUE_ACCESSOR,useExisting:r.forwardRef((function(){return e})),multi:!0}])]}),e}();t.TrueFalseValueDirective=a},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(t){var n=e.call(this,t)||this;return n.id=n.getResponseProperty("Id"),n.readOnly=n.getResponseProperty("ReadOnly"),n.hidePasswords=n.getResponseProperty("HidePasswords"),n}return i(t,e),t}(n(23).BaseResponse);t.SelectionReadOnlyResponse=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(23),a=n(619),s=function(e){function t(t){var n=e.call(this,t)||this;n.organizations=[],n.id=n.getResponseProperty("Id"),n.name=n.getResponseProperty("Name"),n.email=n.getResponseProperty("Email"),n.emailVerified=n.getResponseProperty("EmailVerified"),n.masterPasswordHint=n.getResponseProperty("MasterPasswordHint"),n.premium=n.getResponseProperty("Premium"),n.culture=n.getResponseProperty("Culture"),n.twoFactorEnabled=n.getResponseProperty("TwoFactorEnabled"),n.key=n.getResponseProperty("Key"),n.privateKey=n.getResponseProperty("PrivateKey"),n.securityStamp=n.getResponseProperty("SecurityStamp");var r=n.getResponseProperty("Organizations");return null!=r&&(n.organizations=r.map((function(e){return new a.ProfileOrganizationResponse(e)}))),n}return i(t,e),t}(o.BaseResponse);t.ProfileResponse=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(0),a=(n(40),n(48),n(41),n(7),n(888)),s=n(0),l=n(40),c=n(48),p=n(41),u=n(7),d=n(17),m=n(13),h=n(65),f=n(4),v=n(37),y=n(10),g=function(e){return{active:e}};function x(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"li",7),s.ɵɵtext(1,"\n "),s.ɵɵelementStart(2,"a",8),s.ɵɵlistener("click",(function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext().selectFavorites()})),s.ɵɵtext(3,"\n "),s.ɵɵelement(4,"i",17),s.ɵɵtext(5),s.ɵɵpipe(6,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(7,"\n "),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext();s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(4,g,r.selectedFavorites)),s.ɵɵadvance(5),s.ɵɵtextInterpolate1("",s.ɵɵpipeBind1(6,2,"favorites"),"\n ")}}function b(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"li",7),s.ɵɵtext(1,"\n "),s.ɵɵelementStart(2,"a",8),s.ɵɵlistener("click",(function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext().selectTrash()})),s.ɵɵtext(3,"\n "),s.ɵɵelement(4,"i",18),s.ɵɵtext(5),s.ɵɵpipe(6,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(7,"\n "),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext();s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(4,g,r.selectedTrash)),s.ɵɵadvance(5),s.ɵɵtextInterpolate1("",s.ɵɵpipeBind1(6,2,"trash"),"\n ")}}function S(e,t){1&e&&(s.ɵɵelementStart(0,"p",19),s.ɵɵtext(1,"\n "),s.ɵɵelement(2,"i",20),s.ɵɵpipe(3,"i18n"),s.ɵɵtext(4,"\n "),s.ɵɵelementStart(5,"span",21),s.ɵɵtext(6),s.ɵɵpipe(7,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(8,"\n "),s.ɵɵelementEnd()),2&e&&(s.ɵɵadvance(2),s.ɵɵpropertyInterpolate("title",s.ɵɵpipeBind1(3,2,"loading")),s.ɵɵadvance(4),s.ɵɵtextInterpolate(s.ɵɵpipeBind1(7,4,"loading")))}var w=function(e,t){return{"fa-caret-right":e,"fa-caret-down":t}};function C(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"i",32),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext().$implicit;return s.ɵɵnextContext(4).collapse(e.node)})),s.ɵɵpipe(1,"i18n"),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext().$implicit,i=s.ɵɵnextContext(4);s.ɵɵpropertyInterpolate("title",s.ɵɵpipeBind1(1,2,"toggleCollapse")),s.ɵɵproperty("ngClass",s.ɵɵpureFunction2(4,w,i.isCollapsed(r.node),!i.isCollapsed(r.node)))}}function I(e,t){1&e&&s.ɵɵelement(0,"i",33)}function E(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"a",34),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext().$implicit;return s.ɵɵnextContext(4).editFolder(e.node)})),s.ɵɵpipe(1,"i18n"),s.ɵɵtext(2,"\n "),s.ɵɵelement(3,"i",35),s.ɵɵtext(4,"\n "),s.ɵɵelementEnd()}2&e&&s.ɵɵpropertyInterpolate("appA11yTitle",s.ɵɵpipeBind1(1,1,"editFolder"))}function P(e,t){1&e&&(s.ɵɵelementContainerStart(0),s.ɵɵtext(1,"\n "),s.ɵɵelementContainerEnd())}var k=function(e){return{$implicit:e}};function _(e,t){if(1&e&&(s.ɵɵelementStart(0,"ul",36),s.ɵɵtext(1,"\n "),s.ɵɵtemplate(2,P,2,0,"ng-container",26),s.ɵɵtext(3,"\n "),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext().$implicit;s.ɵɵnextContext(2);var r=s.ɵɵreference(15);s.ɵɵadvance(2),s.ɵɵproperty("ngTemplateOutlet",r)("ngTemplateOutletContext",s.ɵɵpureFunction1(2,k,n.children))}}function A(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"li",7),s.ɵɵtext(1,"\n "),s.ɵɵelementStart(2,"div",22),s.ɵɵtext(3,"\n "),s.ɵɵtemplate(4,C,2,7,"i",28),s.ɵɵtext(5,"\n "),s.ɵɵelementStart(6,"a",8),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=t.$implicit;return s.ɵɵnextContext(4).selectFolder(e.node)})),s.ɵɵtext(7,"\n "),s.ɵɵtemplate(8,I,1,0,"i",29),s.ɵɵtext(9),s.ɵɵelementEnd(),s.ɵɵtext(10,"\n "),s.ɵɵtemplate(11,E,5,3,"a",30),s.ɵɵtext(12,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(13,"\n "),s.ɵɵtemplate(14,_,4,4,"ul",31),s.ɵɵtext(15,"\n "),s.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=s.ɵɵnextContext(4);s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(6,g,i.selectedFolder&&r.node.id===i.selectedFolderId)),s.ɵɵadvance(4),s.ɵɵproperty("ngIf",r.children.length),s.ɵɵadvance(4),s.ɵɵproperty("ngIf",0===r.children.length),s.ɵɵadvance(1),s.ɵɵtextInterpolate1("",r.node.name,"\n "),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",r.node.id),s.ɵɵadvance(3),s.ɵɵproperty("ngIf",r.children.length&&!i.isCollapsed(r.node))}}function O(e,t){if(1&e&&(s.ɵɵtext(0,"\n "),s.ɵɵtemplate(1,A,16,8,"li",27),s.ɵɵtext(2,"\n ")),2&e){var n=t.$implicit;s.ɵɵadvance(1),s.ɵɵproperty("ngForOf",n)}}function T(e,t){1&e&&(s.ɵɵelementContainerStart(0),s.ɵɵtext(1,"\n "),s.ɵɵelementContainerEnd())}function M(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementContainerStart(0),s.ɵɵtext(1,"\n "),s.ɵɵelementStart(2,"h3",22),s.ɵɵtext(3),s.ɵɵpipe(4,"i18n"),s.ɵɵelementStart(5,"a",23),s.ɵɵlistener("click",(function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).addFolder()})),s.ɵɵpipe(6,"i18n"),s.ɵɵtext(7,"\n "),s.ɵɵelement(8,"i",24),s.ɵɵtext(9,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(10,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(11,"\n "),s.ɵɵelementStart(12,"ul",6),s.ɵɵtext(13,"\n "),s.ɵɵtemplate(14,O,3,1,"ng-template",null,25,s.ɵɵtemplateRefExtractor),s.ɵɵtext(16,"\n "),s.ɵɵtemplate(17,T,2,0,"ng-container",26),s.ɵɵtext(18,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(19,"\n "),s.ɵɵelementContainerEnd()}if(2&e){var r=s.ɵɵreference(15),i=s.ɵɵnextContext(2);s.ɵɵadvance(3),s.ɵɵtextInterpolate1("\n ",s.ɵɵpipeBind1(4,4,"folders"),"\n "),s.ɵɵadvance(2),s.ɵɵpropertyInterpolate("appA11yTitle",s.ɵɵpipeBind1(6,6,"addFolder")),s.ɵɵadvance(12),s.ɵɵproperty("ngTemplateOutlet",r)("ngTemplateOutletContext",s.ɵɵpureFunction1(8,k,i.nestedFolders))}}function B(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"i",32),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext().$implicit;return s.ɵɵnextContext(4).collapse(e.node)})),s.ɵɵpipe(1,"i18n"),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext().$implicit,i=s.ɵɵnextContext(4);s.ɵɵpropertyInterpolate("title",s.ɵɵpipeBind1(1,2,"toggleCollapse")),s.ɵɵproperty("ngClass",s.ɵɵpureFunction2(4,w,i.isCollapsed(r.node),!i.isCollapsed(r.node)))}}function D(e,t){1&e&&s.ɵɵelement(0,"i",39)}function R(e,t){1&e&&(s.ɵɵelementContainerStart(0),s.ɵɵtext(1,"\n "),s.ɵɵelementContainerEnd())}function V(e,t){if(1&e&&(s.ɵɵelementStart(0,"ul",36),s.ɵɵtext(1,"\n "),s.ɵɵtemplate(2,R,2,0,"ng-container",26),s.ɵɵtext(3,"\n "),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext().$implicit;s.ɵɵnextContext(2);var r=s.ɵɵreference(9);s.ɵɵadvance(2),s.ɵɵproperty("ngTemplateOutlet",r)("ngTemplateOutletContext",s.ɵɵpureFunction1(2,k,n.children))}}function j(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"li",7),s.ɵɵtext(1,"\n "),s.ɵɵtemplate(2,B,2,7,"i",28),s.ɵɵtext(3,"\n "),s.ɵɵelementStart(4,"a",8),s.ɵɵlistener("click",(function(){s.ɵɵrestoreView(n);var e=t.$implicit;return s.ɵɵnextContext(4).selectCollection(e.node)})),s.ɵɵtext(5,"\n "),s.ɵɵtemplate(6,D,1,0,"i",38),s.ɵɵtext(7),s.ɵɵelementEnd(),s.ɵɵtext(8,"\n "),s.ɵɵtemplate(9,V,4,4,"ul",31),s.ɵɵtext(10,"\n "),s.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=s.ɵɵnextContext(4);s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(5,g,r.node.id===i.selectedCollectionId)),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",r.children.length),s.ɵɵadvance(4),s.ɵɵproperty("ngIf",0===r.children.length),s.ɵɵadvance(1),s.ɵɵtextInterpolate1("",r.node.name,"\n "),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",r.children.length&&!i.isCollapsed(r.node))}}function F(e,t){if(1&e&&(s.ɵɵtext(0,"\n "),s.ɵɵtemplate(1,j,11,7,"li",27),s.ɵɵtext(2,"\n ")),2&e){var n=t.$implicit;s.ɵɵadvance(1),s.ɵɵproperty("ngForOf",n)}}function U(e,t){1&e&&(s.ɵɵelementContainerStart(0),s.ɵɵtext(1,"\n "),s.ɵɵelementContainerEnd())}function N(e,t){if(1&e&&(s.ɵɵelementContainerStart(0),s.ɵɵtext(1,"\n "),s.ɵɵelementStart(2,"h3"),s.ɵɵtext(3),s.ɵɵpipe(4,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(5,"\n "),s.ɵɵelementStart(6,"ul",6),s.ɵɵtext(7,"\n "),s.ɵɵtemplate(8,F,3,1,"ng-template",null,37,s.ɵɵtemplateRefExtractor),s.ɵɵtext(10,"\n "),s.ɵɵtemplate(11,U,2,0,"ng-container",26),s.ɵɵtext(12,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(13,"\n "),s.ɵɵelementContainerEnd()),2&e){var n=s.ɵɵreference(9),r=s.ɵɵnextContext(2);s.ɵɵadvance(3),s.ɵɵtextInterpolate(s.ɵɵpipeBind1(4,3,"collections")),s.ɵɵadvance(8),s.ɵɵproperty("ngTemplateOutlet",n)("ngTemplateOutletContext",s.ɵɵpureFunction1(5,k,r.nestedCollections))}}function z(e,t){if(1&e&&(s.ɵɵelementContainerStart(0),s.ɵɵtext(1,"\n "),s.ɵɵtemplate(2,M,20,10,"ng-container",16),s.ɵɵtext(3,"\n "),s.ɵɵtemplate(4,N,14,7,"ng-container",16),s.ɵɵtext(5,"\n "),s.ɵɵelementContainerEnd()),2&e){var n=s.ɵɵnextContext();s.ɵɵadvance(2),s.ɵɵproperty("ngIf",n.showFolders),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",n.showCollections&&n.collections&&n.collections.length)}}var L=function(e){function t(t,n,r,i){var a=e.call(this,t,n,r,i)||this;return a.onSearchTextChanged=new o.EventEmitter,a.searchText="",a.searchPlaceholder=null,a}return i(t,e),t.prototype.searchTextChanged=function(){this.onSearchTextChanged.emit(this.searchText)},t.ɵfac=function(e){return new(e||t)(s.ɵɵdirectiveInject(l.CollectionService),s.ɵɵdirectiveInject(c.FolderService),s.ɵɵdirectiveInject(p.StorageService),s.ɵɵdirectiveInject(u.UserService))},t.ɵcmp=s.ɵɵdefineComponent({type:t,selectors:[["app-vault-groupings"]],outputs:{onSearchTextChanged:"onSearchTextChanged"},features:[s.ɵɵInheritDefinitionFeature],decls:82,vars:47,consts:[[1,"card","vault-filters"],[1,"card-header","d-flex"],["href","https://help.bitwarden.com/article/searching-vault/","target","_blank","rel","noopener",1,"ml-auto",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-question-circle-o"],[1,"card-body"],["type","search","id","search","autocomplete","off","appAutofocus","",1,"form-control",3,"placeholder","ngModel","ngModelChange","input"],[1,"fa-ul","card-ul"],[3,"ngClass"],["href","#","appStopClick","",3,"click"],[1,"fa-li","fa","fa-fw","fa-th"],[3,"ngClass",4,"ngIf"],[1,"fa-li","fa","fa-fw","fa-globe"],[1,"fa-li","fa","fa-fw","fa-credit-card"],[1,"fa-li","fa","fa-fw","fa-id-card-o"],[1,"fa-li","fa","fa-fw","fa-sticky-note-o"],["class","text-muted",4,"ngIf"],[4,"ngIf"],[1,"fa-li","fa","fa-fw","fa-star"],[1,"fa-li","fa","fa-fw","fa-trash-o"],[1,"text-muted"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],[1,"sr-only"],[1,"d-flex"],["href","#","appStopClick","",1,"text-muted","ml-auto",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-plus","fa-fw"],["recursiveFolders",""],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"ngClass",4,"ngFor","ngForOf"],["class","fa-li fa",3,"title","ngClass","click",4,"ngIf"],["class","fa-li fa fa-folder-o","aria-hidden","true",4,"ngIf"],["href","#","class","text-muted ml-auto show-active","appStopClick","",3,"appA11yTitle","click",4,"ngIf"],["class","fa-ul card-ul carets",4,"ngIf"],[1,"fa-li","fa",3,"title","ngClass","click"],["aria-hidden","true",1,"fa-li","fa","fa-folder-o"],["href","#","appStopClick","",1,"text-muted","ml-auto","show-active",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-pencil","fa-fw"],[1,"fa-ul","card-ul","carets"],["recursiveCollections",""],["class","fa-li fa fa-cube","aria-hidden","true",4,"ngIf"],["aria-hidden","true",1,"fa-li","fa","fa-cube"]],template:function(e,t){1&e&&(s.ɵɵelementStart(0,"div",0),s.ɵɵtext(1,"\n "),s.ɵɵelementStart(2,"div",1),s.ɵɵtext(3),s.ɵɵpipe(4,"i18n"),s.ɵɵelementStart(5,"a",2),s.ɵɵpipe(6,"i18n"),s.ɵɵtext(7,"\n "),s.ɵɵelement(8,"i",3),s.ɵɵtext(9,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(10,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(11,"\n "),s.ɵɵelementStart(12,"div",4),s.ɵɵtext(13,"\n "),s.ɵɵelementStart(14,"input",5),s.ɵɵlistener("ngModelChange",(function(e){return t.searchText=e}))("input",(function(){return t.searchTextChanged()})),s.ɵɵpipe(15,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(16,"\n "),s.ɵɵelementStart(17,"ul",6),s.ɵɵtext(18,"\n "),s.ɵɵelementStart(19,"li",7),s.ɵɵtext(20,"\n "),s.ɵɵelementStart(21,"a",8),s.ɵɵlistener("click",(function(){return t.selectAll()})),s.ɵɵtext(22,"\n "),s.ɵɵelement(23,"i",9),s.ɵɵtext(24),s.ɵɵpipe(25,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(26,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(27,"\n "),s.ɵɵtemplate(28,x,8,6,"li",10),s.ɵɵtext(29,"\n "),s.ɵɵtemplate(30,b,8,6,"li",10),s.ɵɵtext(31,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(32,"\n "),s.ɵɵelementStart(33,"h3"),s.ɵɵtext(34),s.ɵɵpipe(35,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(36,"\n "),s.ɵɵelementStart(37,"ul",6),s.ɵɵtext(38,"\n "),s.ɵɵelementStart(39,"li",7),s.ɵɵtext(40,"\n "),s.ɵɵelementStart(41,"a",8),s.ɵɵlistener("click",(function(){return t.selectType(t.cipherType.Login)})),s.ɵɵtext(42,"\n "),s.ɵɵelement(43,"i",11),s.ɵɵtext(44),s.ɵɵpipe(45,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(46,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(47,"\n "),s.ɵɵelementStart(48,"li",7),s.ɵɵtext(49,"\n "),s.ɵɵelementStart(50,"a",8),s.ɵɵlistener("click",(function(){return t.selectType(t.cipherType.Card)})),s.ɵɵtext(51,"\n "),s.ɵɵelement(52,"i",12),s.ɵɵtext(53),s.ɵɵpipe(54,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(55,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(56,"\n "),s.ɵɵelementStart(57,"li",7),s.ɵɵtext(58,"\n "),s.ɵɵelementStart(59,"a",8),s.ɵɵlistener("click",(function(){return t.selectType(t.cipherType.Identity)})),s.ɵɵtext(60,"\n "),s.ɵɵelement(61,"i",13),s.ɵɵtext(62),s.ɵɵpipe(63,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(64,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(65,"\n "),s.ɵɵelementStart(66,"li",7),s.ɵɵtext(67,"\n "),s.ɵɵelementStart(68,"a",8),s.ɵɵlistener("click",(function(){return t.selectType(t.cipherType.SecureNote)})),s.ɵɵtext(69,"\n "),s.ɵɵelement(70,"i",14),s.ɵɵtext(71),s.ɵɵpipe(72,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(73,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(74,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(75,"\n "),s.ɵɵtemplate(76,S,9,6,"p",15),s.ɵɵtext(77,"\n "),s.ɵɵtemplate(78,z,6,2,"ng-container",16),s.ɵɵtext(79,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(80,"\n"),s.ɵɵelementEnd(),s.ɵɵtext(81,"\n")),2&e&&(s.ɵɵadvance(3),s.ɵɵtextInterpolate1("\n ",s.ɵɵpipeBind1(4,19,"filters"),"\n "),s.ɵɵadvance(2),s.ɵɵpropertyInterpolate("appA11yTitle",s.ɵɵpipeBind1(6,21,"learnMore")),s.ɵɵadvance(9),s.ɵɵpropertyInterpolate("placeholder",t.searchPlaceholder||s.ɵɵpipeBind1(15,23,"searchVault")),s.ɵɵproperty("ngModel",t.searchText),s.ɵɵadvance(5),s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(37,g,t.selectedAll)),s.ɵɵadvance(5),s.ɵɵtextInterpolate1("",s.ɵɵpipeBind1(25,25,"allItems"),"\n "),s.ɵɵadvance(4),s.ɵɵproperty("ngIf",t.showFavorites),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",t.showTrash),s.ɵɵadvance(4),s.ɵɵtextInterpolate(s.ɵɵpipeBind1(35,27,"types")),s.ɵɵadvance(5),s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(39,g,t.selectedType===t.cipherType.Login)),s.ɵɵadvance(5),s.ɵɵtextInterpolate1("",s.ɵɵpipeBind1(45,29,"typeLogin"),"\n "),s.ɵɵadvance(4),s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(41,g,t.selectedType===t.cipherType.Card)),s.ɵɵadvance(5),s.ɵɵtextInterpolate1("",s.ɵɵpipeBind1(54,31,"typeCard"),"\n "),s.ɵɵadvance(4),s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(43,g,t.selectedType===t.cipherType.Identity)),s.ɵɵadvance(5),s.ɵɵtextInterpolate1("",s.ɵɵpipeBind1(63,33,"typeIdentity"),"\n "),s.ɵɵadvance(4),s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(45,g,t.selectedType===t.cipherType.SecureNote)),s.ɵɵadvance(5),s.ɵɵtextInterpolate1("",s.ɵɵpipeBind1(72,35,"typeSecureNote"),"\n "),s.ɵɵadvance(5),s.ɵɵproperty("ngIf",!t.loaded),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",t.loaded))},directives:[d.A11yTitleDirective,m.DefaultValueAccessor,h.AutofocusDirective,m.NgControlStatus,m.NgModel,f.NgClass,v.StopClickDirective,f.NgIf,f.NgTemplateOutlet,f.NgForOf],pipes:[y.I18nPipe],encapsulation:2}),t}(a.GroupingsComponent);t.GroupingsComponent=L},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(157),i=n(251),o=function(){function e(e){null!=e&&(this.id=e.id,this.name=e.name,this.status=e.status,this.type=e.type,this.enabled=e.enabled,this.usePolicies=e.usePolicies,this.useGroups=e.useGroups,this.useDirectory=e.useDirectory,this.useEvents=e.useEvents,this.useTotp=e.useTotp,this.use2fa=e.use2fa,this.useApi=e.useApi,this.useBusinessPortal=e.useBusinessPortal,this.useSso=e.useSso,this.selfHost=e.selfHost,this.usersGetPremium=e.usersGetPremium,this.seats=e.seats,this.maxCollections=e.maxCollections,this.maxStorageGb=e.maxStorageGb,this.ssoBound=e.ssoBound,this.identifier=e.identifier,this.permissions=e.permissions,this.resetPasswordKey=e.resetPasswordKey,this.userId=e.userId)}return Object.defineProperty(e.prototype,"canAccess",{get:function(){return this.type===i.OrganizationUserType.Owner||this.enabled&&this.status===r.OrganizationUserStatusType.Confirmed},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isManager",{get:function(){return this.type===i.OrganizationUserType.Manager||this.type===i.OrganizationUserType.Owner||this.type===i.OrganizationUserType.Admin},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isAdmin",{get:function(){return this.type===i.OrganizationUserType.Owner||this.type===i.OrganizationUserType.Admin},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isOwner",{get:function(){return this.type===i.OrganizationUserType.Owner},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canAccessBusinessPortal",{get:function(){return this.isAdmin||this.permissions.accessBusinessPortal},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canAccessEventLogs",{get:function(){return this.isAdmin||this.permissions.accessEventLogs},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canAccessImportExport",{get:function(){return this.isAdmin||this.permissions.accessImportExport},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canAccessReports",{get:function(){return this.isAdmin||this.permissions.accessReports},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canManageAllCollections",{get:function(){return this.isAdmin||this.permissions.manageAllCollections},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canManageAssignedCollections",{get:function(){return this.isManager||this.permissions.manageAssignedCollections},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canManageGroups",{get:function(){return this.isAdmin||this.permissions.manageGroups},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canManageSso",{get:function(){return this.isAdmin||this.permissions.manageSso},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canManagePolicies",{get:function(){return this.isAdmin||this.permissions.managePolicies},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canManageUsers",{get:function(){return this.isAdmin||this.permissions.manageUsers},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isResetPasswordEnrolled",{get:function(){return null!=this.resetPasswordKey},enumerable:!0,configurable:!0}),e}();t.Organization=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.id=null,this.size=null,this.sizeName=null,this.fileName=null,e&&(this.id=e.id,this.size=e.size,this.sizeName=e.sizeName)}return Object.defineProperty(e.prototype,"fileSize",{get:function(){try{if(null!=this.size)return parseInt(this.size,null)}catch(e){}return 0},enumerable:!0,configurable:!0}),e}();t.SendFileView=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.text=null,e&&(this.hidden=e.hidden)}return Object.defineProperty(e.prototype,"maskedText",{get:function(){return null!=this.text?"••••••••":null},enumerable:!0,configurable:!0}),e}();t.SendTextView=r},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]-1&&(e=e.concat(this.email.substr(0,t).trim().toLowerCase().split(/[^A-Za-z0-9]/))),e},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.I18nService),o.ɵɵdirectiveInject(s.CryptoService),o.ɵɵdirectiveInject(l.MessagingService),o.ɵɵdirectiveInject(c.UserService),o.ɵɵdirectiveInject(p.PasswordGenerationService),o.ɵɵdirectiveInject(u.PlatformUtilsService),o.ɵɵdirectiveInject(d.PolicyService))},e.ɵdir=o.ɵɵdefineDirective({type:e}),e}();t.ChangePasswordComponent=m},,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&t.forEach((function(t){var n=e.data.filter((function(e){return e.id===t}));null!=n&&n.length>0&&(n[0].checked=!0)})),[3,5];case 3:return"collection"!==this.entity?[3,5]:[4,this.apiService.getCollectionUsers(this.organizationId,this.entityId)];case 4:null!=(t=r.sent())&&e.data.length>0&&t.forEach((function(t){var n=e.data.filter((function(e){return!e.accessAll&&e.id===t.id}));null!=n&&n.length>0&&(n[0].checked=!0,n[0].readOnly=t.readOnly,n[0].hidePasswords=t.hidePasswords)})),r.label=5;case 5:return this.allUsers.forEach((function(e){"collection"===n.entity&&e.accessAll&&(e.checked=!0),e.checked&&n.selectedCount++})),[2]}}))}))},e.prototype.check=function(e){"collection"===this.entity&&e.accessAll||(e.checked=!e.checked,this.selectedChanged(e))},e.prototype.selectedChanged=function(e){e.checked?this.selectedCount++:("collection"===this.entity&&(e.readOnly=!1,e.hidePasswords=!1),this.selectedCount--)},e.prototype.filterSelected=function(e){this.showSelected=e},e.prototype.submit=function(){return r(this,void 0,void 0,(function(){var e;return i(this,(function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),"group"===this.entity?(e=this.users.filter((function(e){return e.checked})).map((function(e){return e.id})),this.formPromise=this.apiService.putGroupUsers(this.organizationId,this.entityId,e)):(e=this.users.filter((function(e){return e.checked&&!e.accessAll})).map((function(e){return new l.SelectionReadOnlyRequest(e.id,!!e.readOnly,!!e.hidePasswords)})),this.formPromise=this.apiService.putCollectionUsers(this.organizationId,this.entityId,e)),[4,this.formPromise];case 1:return t.sent(),this.toasterService.popAsync("success",null,this.i18nService.t("updatedUsers")),this.onEditedUsers.emit(),[3,3];case 2:return t.sent(),[3,3];case 3:return[2]}}))}))},e.ɵfac=function(t){return new(t||e)(p.ɵɵdirectiveInject(u.ApiService),p.ɵɵdirectiveInject(d.I18nService),p.ɵɵdirectiveInject(m.ToasterService))},e.ɵcmp=p.ɵɵdefineComponent({type:e,selectors:[["app-entity-users"]],inputs:{entity:"entity",entityId:"entityId",entityName:"entityName",organizationId:"organizationId"},outputs:{onEditedUsers:"onEditedUsers"},decls:49,vars:29,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","userAccessTitle",1,"modal","fade"],["role","document",1,"modal-dialog","modal-lg"],["ngNativeValidate","",1,"modal-content",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-header"],["id","userAccessTitle",1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],["class","modal-body",4,"ngIf"],[1,"modal-footer"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],[1,"modal-body"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[1,"d-flex"],[1,"mr-3"],["for","search",1,"sr-only"],["type","search","id","search","name","SearchText",1,"form-control","form-control-sm",3,"placeholder","ngModel","ngModelChange"],["role","group",1,"btn-group","btn-group-sm"],["type","button",1,"btn","btn-outline-secondary",3,"ngClass","click"],["class","badge badge-pill badge-info",4,"ngIf"],[4,"ngIf"],[1,"badge","badge-pill","badge-info"],[1,"table","table-hover","table-list","mb-0"],["width","100","class","text-center",4,"ngIf"],[4,"ngFor","ngForOf"],["width","100",1,"text-center"],[1,"table-list-checkbox",3,"click"],["type","checkbox","appStopProp","",3,"ngModel","name","disabled","ngModelChange","change"],["width","30",3,"click"],["size","25",3,"data","email","circle","fontSize"],["class","badge badge-secondary",4,"ngIf"],["class","badge badge-warning",4,"ngIf"],["class","text-muted d-block",4,"ngIf"],["class","text-center",4,"ngIf"],[1,"badge","badge-secondary"],[1,"badge","badge-warning"],[1,"text-muted","d-block"],["aria-hidden","true",1,"fa","fa-th",3,"title"],[1,"text-center"],["type","checkbox",3,"ngModel","name","disabled","ngModelChange"]],template:function(e,t){if(1&e&&(p.ɵɵelementStart(0,"div",0),p.ɵɵtext(1,"\n "),p.ɵɵelementStart(2,"div",1),p.ɵɵtext(3,"\n "),p.ɵɵelementStart(4,"form",2,3),p.ɵɵlistener("ngSubmit",(function(){return t.submit()})),p.ɵɵtext(6,"\n "),p.ɵɵelementStart(7,"div",4),p.ɵɵtext(8,"\n "),p.ɵɵelementStart(9,"h2",5),p.ɵɵtext(10),p.ɵɵpipe(11,"i18n"),p.ɵɵelementStart(12,"small"),p.ɵɵtext(13),p.ɵɵelementEnd(),p.ɵɵtext(14,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(15,"\n "),p.ɵɵelementStart(16,"button",6),p.ɵɵpipe(17,"i18n"),p.ɵɵtext(18,"\n "),p.ɵɵelementStart(19,"span",7),p.ɵɵtext(20,"×"),p.ɵɵelementEnd(),p.ɵɵtext(21,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(22,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(23,"\n "),p.ɵɵtemplate(24,w,9,6,"div",8),p.ɵɵtext(25,"\n "),p.ɵɵtemplate(26,G,32,22,"div",8),p.ɵɵpipe(27,"search"),p.ɵɵtext(28,"\n "),p.ɵɵelementStart(29,"div",9),p.ɵɵtext(30,"\n "),p.ɵɵelementStart(31,"button",10),p.ɵɵtext(32,"\n "),p.ɵɵelement(33,"i",11),p.ɵɵpipe(34,"i18n"),p.ɵɵtext(35,"\n "),p.ɵɵelementStart(36,"span"),p.ɵɵtext(37),p.ɵɵpipe(38,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(39,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(40,"\n "),p.ɵɵelementStart(41,"button",12),p.ɵɵtext(42),p.ɵɵpipe(43,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(44,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(45,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(46,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(47,"\n"),p.ɵɵelementEnd(),p.ɵɵtext(48,"\n")),2&e){var n=p.ɵɵreference(5);p.ɵɵadvance(4),p.ɵɵproperty("appApiAction",t.formPromise),p.ɵɵadvance(6),p.ɵɵtextInterpolate1("\n ",p.ɵɵpipeBind1(11,10,"userAccess"),"\n "),p.ɵɵadvance(3),p.ɵɵtextInterpolate(t.entityName),p.ɵɵadvance(3),p.ɵɵpropertyInterpolate("appA11yTitle",p.ɵɵpipeBind1(17,12,"close")),p.ɵɵadvance(8),p.ɵɵproperty("ngIf",t.loading||!t.users),p.ɵɵadvance(2),p.ɵɵproperty("ngIf",!t.loading&&t.users&&p.ɵɵpipeBindV(27,14,p.ɵɵpureFunction2(26,K,t.users,t.searchText))),p.ɵɵadvance(5),p.ɵɵproperty("disabled",n.loading),p.ɵɵadvance(2),p.ɵɵpropertyInterpolate("title",p.ɵɵpipeBind1(34,20,"loading")),p.ɵɵadvance(4),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(38,22,"save")),p.ɵɵadvance(5),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(43,24,"close"))}},directives:[h.NgControlStatusGroup,h.NgForm,f.ApiActionDirective,v.A11yTitleDirective,y.NgIf,h.DefaultValueAccessor,h.NgControlStatus,h.NgModel,y.NgClass,y.NgForOf,h.CheckboxControlValueAccessor,g.StopPropDirective,x.AvatarComponent],pipes:[b.I18nPipe,S.SearchPipe],encapsulation:2}),e}();t.EntityUsersComponent=q},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0?this.events=this.events.concat(o):this.events=o,this.loading=!1,this.morePromise=null,this.refreshPromise=null,[2]}}))}))},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.ApiService),o.ɵɵdirectiveInject(s.I18nService),o.ɵɵdirectiveInject(l.EventService),o.ɵɵdirectiveInject(c.ToasterService))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["app-entity-events"]],inputs:{name:"name",entity:"entity",entityId:"entityId",organizationId:"organizationId",showUser:"showUser"},decls:36,vars:12,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","eventLogsTitle",1,"modal","fade"],["role","document",1,"modal-dialog","modal-lg"],[1,"modal-content"],[1,"modal-header"],["id","eventLogsTitle",1,"modal-title"],["class","text-muted",4,"ngIf"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],["class","modal-body",4,"ngIf"],[1,"modal-footer"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],[1,"text-muted"],[1,"modal-body"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[1,"d-flex"],[1,"form-inline"],["for","start",1,"sr-only"],["type","datetime-local","id","start","placeholder","YYYY-MM-DDTHH:MM",1,"form-control","form-control-sm",3,"placeholder","ngModel","ngModelChange"],[1,"mx-2"],["for","end",1,"sr-only"],["type","datetime-local","id","end","placeholder","YYYY-MM-DDTHH:MM",1,"form-control","form-control-sm",3,"placeholder","ngModel","ngModelChange"],["type","button",1,"btn","btn-sm","btn-outline-primary","ml-3",3,"appApiAction","disabled","click"],["refreshBtn",""],["aria-hidden","true",1,"fa","fa-refresh","fa-fw",3,"ngClass"],[4,"ngIf"],["class","table table-hover mb-0",4,"ngIf"],["type","button","class","btn btn-block btn-link btn-submit",3,"appApiAction","disabled","click",4,"ngIf"],[1,"table","table-hover","mb-0"],["width","210",1,"border-top-0"],["width","40",1,"border-top-0"],["class","border-top-0","width","150",4,"ngIf"],[1,"border-top-0"],[4,"ngFor","ngForOf"],["width","150",1,"border-top-0"],["aria-hidden","true",3,"title"],[3,"innerHTML"],[3,"appA11yTitle"],["type","button",1,"btn","btn-block","btn-link","btn-submit",3,"appApiAction","disabled","click"],["moreBtn",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"div",1),o.ɵɵtext(3,"\n "),o.ɵɵelementStart(4,"div",2),o.ɵɵtext(5,"\n "),o.ɵɵelementStart(6,"div",3),o.ɵɵtext(7,"\n "),o.ɵɵelementStart(8,"h2",4),o.ɵɵtext(9),o.ɵɵpipe(10,"i18n"),o.ɵɵtemplate(11,f,2,1,"small",5),o.ɵɵtext(12,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(13,"\n "),o.ɵɵelementStart(14,"button",6),o.ɵɵpipe(15,"i18n"),o.ɵɵtext(16,"\n "),o.ɵɵelementStart(17,"span",7),o.ɵɵtext(18,"×"),o.ɵɵelementEnd(),o.ɵɵtext(19,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(20,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(21,"\n "),o.ɵɵtemplate(22,v,9,6,"div",8),o.ɵɵtext(23,"\n "),o.ɵɵtemplate(24,I,40,25,"div",8),o.ɵɵtext(25,"\n "),o.ɵɵelementStart(26,"div",9),o.ɵɵtext(27,"\n "),o.ɵɵelementStart(28,"button",10),o.ɵɵtext(29),o.ɵɵpipe(30,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(31,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(32,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(33,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(34,"\n"),o.ɵɵelementEnd(),o.ɵɵtext(35,"\n")),2&e&&(o.ɵɵadvance(9),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(10,6,"eventLogs"),"\n "),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",t.name),o.ɵɵadvance(3),o.ɵɵpropertyInterpolate("appA11yTitle",o.ɵɵpipeBind1(15,8,"close")),o.ɵɵadvance(8),o.ɵɵproperty("ngIf",!t.loaded),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",t.loaded),o.ɵɵadvance(5),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(30,10,"close")))},directives:[p.NgIf,u.A11yTitleDirective,d.DefaultValueAccessor,d.NgControlStatus,d.NgModel,m.ApiActionDirective,p.NgClass,p.NgForOf],pipes:[h.I18nPipe,p.DatePipe],encapsulation:2}),e}();t.EntityEventsComponent=E},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(t){void 0===t&&(t=null);var n=e.call(this,t)||this;return null==t||(n.accessBusinessPortal=n.getResponseProperty("AccessBusinessPortal"),n.accessEventLogs=n.getResponseProperty("AccessEventLogs"),n.accessImportExport=n.getResponseProperty("AccessImportExport"),n.accessReports=n.getResponseProperty("AccessReports"),n.manageAllCollections=n.getResponseProperty("ManageAllCollections"),n.manageAssignedCollections=n.getResponseProperty("ManageAssignedCollections"),n.manageCiphers=n.getResponseProperty("ManageCiphers"),n.manageGroups=n.getResponseProperty("ManageGroups"),n.manageSso=n.getResponseProperty("ManageSso"),n.managePolicies=n.getResponseProperty("ManagePolicies"),n.manageUsers=n.getResponseProperty("ManageUsers"),n.manageResetPassword=n.getResponseProperty("ManageResetPassword")),n}return i(t,e),t}(n(23).BaseResponse);t.PermissionsApi=o},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0)return void(this.creditAmount=parseFloat((Math.round(100*e)/100).toString()).toFixed(2).toString())}}catch(t){}this.creditAmount=""},Object.defineProperty(e.prototype,"creditAmountNumber",{get:function(){if(null!=this.creditAmount&&""!==this.creditAmount)try{return parseFloat(this.creditAmount)}catch(e){}return null},enumerable:!0,configurable:!0}),e.ɵfac=function(t){return new(t||e)(c.ɵɵdirectiveInject(p.UserService),c.ɵɵdirectiveInject(u.ApiService),c.ɵɵdirectiveInject(d.PlatformUtilsService))},e.ɵcmp=c.ɵɵdefineComponent({type:e,selectors:[["app-add-credit"]],viewQuery:function(e,t){var n;(1&e&&c.ɵɵstaticViewQuery(g,!0,o.ElementRef),2&e)&&(c.ɵɵqueryRefresh(n=c.ɵɵloadQuery())&&(t.ppButtonFormRef=n.first))},inputs:{creditAmount:"creditAmount",showOptions:"showOptions",method:"method",organizationId:"organizationId"},outputs:{onAdded:"onAdded",onCanceled:"onCanceled"},decls:92,vars:32,consts:[["ngNativeValidate","",1,"card",3,"appApiAction","ngSubmit"],["form",""],[1,"card-body"],["type","button",1,"close",3,"appA11yTitle","click"],["aria-hidden","true"],[1,"card-body-header"],["class","mb-4 text-lg",4,"ngIf"],[1,"form-group"],[1,"row"],[1,"col-4"],["for","creditAmount"],[1,"input-group"],[1,"input-group-prepend"],[1,"input-group-text"],["id","creditAmount","type","text","name","CreditAmount","required","",1,"form-control",3,"ngModel","ngModelChange","blur"],[1,"form-text","text-muted"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["type","button",1,"btn","btn-outline-secondary",3,"click"],["method","post","target","_top",3,"action"],["ppButtonForm",""],["type","hidden","name","cmd","value","_xclick"],["type","hidden","name","business",3,"value"],["type","hidden","name","button_subtype","value","services"],["type","hidden","name","no_note","value","1"],["type","hidden","name","no_shipping","value","1"],["type","hidden","name","rm","value","1"],["type","hidden","name","return",3,"value"],["type","hidden","name","cancel_return",3,"value"],["type","hidden","name","currency_code","value","USD"],["type","hidden","name","image_url","value","https://bitwarden.com/images/paypal-banner.png"],["type","hidden","name","bn","value","PP-BuyNowBF:btn_buynow_LG.gif:NonHosted"],["type","hidden","name","amount",3,"value"],["type","hidden","name","custom",3,"value"],["type","hidden","name","item_name","value","Bitwarden Account Credit"],["type","hidden","name","item_number",3,"value"],[1,"mb-4","text-lg"],[1,"form-check","form-check-inline"],["type","radio","name","Method","id","credit-method-paypal",1,"form-check-input",3,"value","ngModel","ngModelChange"],["for","credit-method-paypal",1,"form-check-label"],["aria-hidden","true",1,"fa","fa-fw","fa-paypal"],["type","radio","name","Method","id","credit-method-bitcoin",1,"form-check-input",3,"value","ngModel","ngModelChange"],["for","credit-method-bitcoin",1,"form-check-label"],["aria-hidden","true",1,"fa","fa-fw","fa-bitcoin"]],template:function(e,t){if(1&e&&(c.ɵɵelementStart(0,"form",0,1),c.ɵɵlistener("ngSubmit",(function(){return t.submit()})),c.ɵɵtext(2,"\n "),c.ɵɵelementStart(3,"div",2),c.ɵɵtext(4,"\n "),c.ɵɵelementStart(5,"button",3),c.ɵɵlistener("click",(function(){return t.cancel()})),c.ɵɵpipe(6,"i18n"),c.ɵɵelementStart(7,"span",4),c.ɵɵtext(8,"×"),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵtext(9,"\n "),c.ɵɵelementStart(10,"h3",5),c.ɵɵtext(11),c.ɵɵpipe(12,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(13,"\n "),c.ɵɵtemplate(14,x,22,4,"div",6),c.ɵɵtext(15,"\n "),c.ɵɵelementStart(16,"div",7),c.ɵɵtext(17,"\n "),c.ɵɵelementStart(18,"div",8),c.ɵɵtext(19,"\n "),c.ɵɵelementStart(20,"div",9),c.ɵɵtext(21,"\n "),c.ɵɵelementStart(22,"label",10),c.ɵɵtext(23),c.ɵɵpipe(24,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(25,"\n "),c.ɵɵelementStart(26,"div",11),c.ɵɵtext(27,"\n "),c.ɵɵelementStart(28,"div",12),c.ɵɵelementStart(29,"span",13),c.ɵɵtext(30,"$USD"),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵtext(31,"\n "),c.ɵɵelementStart(32,"input",14),c.ɵɵlistener("ngModelChange",(function(e){return t.creditAmount=e}))("blur",(function(){return t.formatAmount()})),c.ɵɵelementEnd(),c.ɵɵtext(33,"\n "),c.ɵɵelementEnd(),c.ɵɵtext(34,"\n "),c.ɵɵelementEnd(),c.ɵɵtext(35,"\n "),c.ɵɵelementEnd(),c.ɵɵtext(36,"\n "),c.ɵɵelementStart(37,"small",15),c.ɵɵtext(38),c.ɵɵpipe(39,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(40,"\n "),c.ɵɵelementEnd(),c.ɵɵtext(41,"\n "),c.ɵɵelementStart(42,"button",16),c.ɵɵtext(43,"\n "),c.ɵɵelement(44,"i",17),c.ɵɵpipe(45,"i18n"),c.ɵɵtext(46,"\n "),c.ɵɵelementStart(47,"span"),c.ɵɵtext(48),c.ɵɵpipe(49,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(50,"\n "),c.ɵɵelementEnd(),c.ɵɵtext(51,"\n "),c.ɵɵelementStart(52,"button",18),c.ɵɵlistener("click",(function(){return t.cancel()})),c.ɵɵtext(53),c.ɵɵpipe(54,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(55,"\n "),c.ɵɵelementEnd(),c.ɵɵtext(56,"\n"),c.ɵɵelementEnd(),c.ɵɵtext(57,"\n"),c.ɵɵelementStart(58,"form",19,20),c.ɵɵtext(60,"\n "),c.ɵɵelement(61,"input",21),c.ɵɵtext(62,"\n "),c.ɵɵelement(63,"input",22),c.ɵɵtext(64,"\n "),c.ɵɵelement(65,"input",23),c.ɵɵtext(66,"\n "),c.ɵɵelement(67,"input",24),c.ɵɵtext(68,"\n "),c.ɵɵelement(69,"input",25),c.ɵɵtext(70,"\n "),c.ɵɵelement(71,"input",26),c.ɵɵtext(72,"\n "),c.ɵɵelement(73,"input",27),c.ɵɵtext(74,"\n "),c.ɵɵelement(75,"input",28),c.ɵɵtext(76,"\n "),c.ɵɵelement(77,"input",29),c.ɵɵtext(78,"\n "),c.ɵɵelement(79,"input",30),c.ɵɵtext(80,"\n "),c.ɵɵelement(81,"input",31),c.ɵɵtext(82,"\n "),c.ɵɵelement(83,"input",32),c.ɵɵtext(84,"\n "),c.ɵɵelement(85,"input",33),c.ɵɵtext(86,"\n "),c.ɵɵelement(87,"input",34),c.ɵɵtext(88,"\n "),c.ɵɵelement(89,"input",35),c.ɵɵtext(90,"\n"),c.ɵɵelementEnd(),c.ɵɵtext(91,"\n")),2&e){var n=c.ɵɵreference(1);c.ɵɵproperty("appApiAction",t.formPromise),c.ɵɵadvance(5),c.ɵɵpropertyInterpolate("appA11yTitle",c.ɵɵpipeBind1(6,18,"cancel")),c.ɵɵadvance(6),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(12,20,"addCredit")),c.ɵɵadvance(3),c.ɵɵproperty("ngIf",t.showOptions),c.ɵɵadvance(9),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(24,22,"amount")),c.ɵɵadvance(9),c.ɵɵproperty("ngModel",t.creditAmount),c.ɵɵadvance(6),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(39,24,"creditDelayed")),c.ɵɵadvance(4),c.ɵɵproperty("disabled",n.loading||t.ppLoading),c.ɵɵadvance(2),c.ɵɵpropertyInterpolate("title",c.ɵɵpipeBind1(45,26,"loading")),c.ɵɵadvance(4),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(49,28,"submit")),c.ɵɵadvance(5),c.ɵɵtextInterpolate1("\n ",c.ɵɵpipeBind1(54,30,"cancel"),"\n "),c.ɵɵadvance(5),c.ɵɵpropertyInterpolate("action",t.ppButtonFormAction,c.ɵɵsanitizeUrl),c.ɵɵadvance(5),c.ɵɵpropertyInterpolate("value",t.ppButtonBusinessId),c.ɵɵadvance(10),c.ɵɵpropertyInterpolate("value",t.returnUrl),c.ɵɵadvance(2),c.ɵɵpropertyInterpolate("value",t.returnUrl),c.ɵɵadvance(8),c.ɵɵpropertyInterpolate("value",t.creditAmount),c.ɵɵadvance(2),c.ɵɵpropertyInterpolate("value",t.ppButtonCustomField),c.ɵɵadvance(4),c.ɵɵpropertyInterpolate("value",t.subject)}},directives:[m.NgControlStatusGroup,m.NgForm,h.ApiActionDirective,f.A11yTitleDirective,v.NgIf,m.DefaultValueAccessor,m.RequiredValidator,m.NgControlStatus,m.NgModel,m.ɵangular_packages_forms_forms_y,m.RadioControlValueAccessor],pipes:[y.I18nPipe],encapsulation:2}),e}();t.AddCreditComponent=b},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&(t.push(e),r.exposedPasswordMap.set(e.id,n))}));n.push(i)}})),[4,Promise.all(n)];case 2:return i.sent(),this.ciphers=t,[2]}}))}))},t.prototype.getAllCiphers=function(){return this.cipherService.getAllDecrypted()},t.prototype.canManageCipher=function(e){return!0},t.ɵfac=function(e){return new(e||t)(c.ɵɵdirectiveInject(p.CipherService),c.ɵɵdirectiveInject(u.AuditService),c.ɵɵdirectiveInject(c.ComponentFactoryResolver),c.ɵɵdirectiveInject(d.MessagingService),c.ɵɵdirectiveInject(m.UserService))},t.ɵcmp=c.ɵɵdefineComponent({type:t,selectors:[["app-exposed-passwords-report"]],features:[c.ɵɵInheritDefinitionFeature],decls:26,vars:14,consts:[[1,"page-header"],["type","button",1,"btn","btn-primary","btn-submit",3,"disabled","click"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["class","mt-4",4,"ngIf"],["cipherAddEdit",""],[1,"mt-4"],["type","success",3,"title",4,"ngIf"],[4,"ngIf"],["type","success",3,"title"],["type","danger",3,"title"],[1,"table","table-hover","table-list","table-ciphers"],[4,"ngFor","ngForOf"],[1,"table-list-icon"],[3,"cipher"],[1,"reduced-lh","wrap"],[4,"ngIf","ngIfElse"],["cantManage",""],[1,"text-right"],[1,"badge","badge-warning"],["href","#","appStopClick","",3,"title","click"],["appStopProp","","aria-hidden","true",1,"fa","fa-share-alt",3,"title"],[1,"sr-only"],["appStopProp","","aria-hidden","true",1,"fa","fa-paperclip",3,"title"]],template:function(e,t){1&e&&(c.ɵɵelementStart(0,"div",0),c.ɵɵtext(1,"\n "),c.ɵɵelementStart(2,"h1"),c.ɵɵtext(3),c.ɵɵpipe(4,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(5,"\n"),c.ɵɵelementEnd(),c.ɵɵtext(6,"\n"),c.ɵɵelementStart(7,"p"),c.ɵɵtext(8),c.ɵɵpipe(9,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(10,"\n"),c.ɵɵelementStart(11,"button",1),c.ɵɵlistener("click",(function(){return t.load()})),c.ɵɵtext(12,"\n "),c.ɵɵelement(13,"i",2),c.ɵɵpipe(14,"i18n"),c.ɵɵtext(15,"\n "),c.ɵɵelementStart(16,"span"),c.ɵɵtext(17),c.ɵɵpipe(18,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(19,"\n"),c.ɵɵelementEnd(),c.ɵɵtext(20,"\n"),c.ɵɵtemplate(21,k,6,2,"div",3),c.ɵɵtext(22,"\n"),c.ɵɵtemplate(23,_,0,0,"ng-template",null,4,c.ɵɵtemplateRefExtractor),c.ɵɵtext(25,"\n")),2&e&&(c.ɵɵadvance(3),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(4,6,"exposedPasswordsReport")),c.ɵɵadvance(5),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(9,8,"exposedPasswordsReportDesc")),c.ɵɵadvance(3),c.ɵɵproperty("disabled",t.loading),c.ɵɵadvance(2),c.ɵɵpropertyInterpolate("title",c.ɵɵpipeBind1(14,10,"loading")),c.ɵɵadvance(4),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(18,12,"checkExposedPasswords")),c.ɵɵadvance(4),c.ɵɵproperty("ngIf",t.hasLoaded))},directives:[h.NgIf,f.CalloutComponent,h.NgForOf,v.IconComponent,y.StopClickDirective,g.StopPropDirective],pipes:[x.I18nPipe,h.DecimalPipe],encapsulation:2}),t}(l.CipherReportComponent);t.ExposedPasswordsReportComponent=A},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]1||!this.allowPersonal)&&(null!=this.organization?this.cloneMode&&this.organization.canManageAllCollections:!this.editMode||this.cloneMode)},t.prototype.loadCollections=function(){return this.organization.canManageAllCollections?Promise.resolve(this.collections):e.prototype.loadCollections.call(this)},t.prototype.loadCipher=function(){return o(this,void 0,void 0,(function(){var t,n;return a(this,(function(r){switch(r.label){case 0:return this.organization.canManageAllCollections?[3,2]:[4,e.prototype.loadCipher.call(this)];case 1:return[2,r.sent()];case 2:return[4,this.apiService.getCipherAdmin(this.cipherId)];case 3:return t=r.sent(),n=new s.CipherData(t),this.originalCipher=new l.Cipher(n),[2,new l.Cipher(n)]}}))}))},t.prototype.encryptCipher=function(){return this.organization.canManageAllCollections?this.cipherService.encrypt(this.cipher,null,this.originalCipher):e.prototype.encryptCipher.call(this)},t.prototype.saveCipher=function(t){return o(this,void 0,void 0,(function(){var n;return a(this,(function(r){return this.organization.canManageAllCollections&&null!=t.organizationId?this.editMode&&!this.cloneMode?(n=new p.CipherRequest(t),[2,this.apiService.putCipherAdmin(this.cipherId,n)]):(n=new c.CipherCreateRequest(t),[2,this.apiService.postCipherAdmin(n)]):[2,e.prototype.saveCipher.call(this,t)]}))}))},t.prototype.deleteCipher=function(){return o(this,void 0,void 0,(function(){return a(this,(function(t){return this.organization.canManageAllCollections?[2,this.cipher.isDeleted?this.apiService.deleteCipherAdmin(this.cipherId):this.apiService.putDeleteCipherAdmin(this.cipherId)]:[2,e.prototype.deleteCipher.call(this)]}))}))},t.ɵfac=function(e){return new(e||t)(d.ɵɵdirectiveInject(m.CipherService),d.ɵɵdirectiveInject(h.FolderService),d.ɵɵdirectiveInject(f.I18nService),d.ɵɵdirectiveInject(v.PlatformUtilsService),d.ɵɵdirectiveInject(y.AuditService),d.ɵɵdirectiveInject(g.StateService),d.ɵɵdirectiveInject(x.UserService),d.ɵɵdirectiveInject(b.CollectionService),d.ɵɵdirectiveInject(S.TotpService),d.ɵɵdirectiveInject(w.PasswordGenerationService),d.ɵɵdirectiveInject(C.ApiService),d.ɵɵdirectiveInject(I.MessagingService),d.ɵɵdirectiveInject(E.EventService),d.ɵɵdirectiveInject(P.PolicyService))},t.ɵcmp=d.ɵɵdefineComponent({type:t,selectors:[["app-org-vault-add-edit"]],features:[d.ɵɵInheritDefinitionFeature],decls:36,vars:11,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","cipherAddEditTitle",1,"modal","fade"],["role","document",1,"modal-dialog","modal-lg"],["ngNativeValidate","","autocomplete","off",1,"modal-content",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-header"],["id","cipherAddEditTitle",1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],["class","modal-body",4,"ngIf"],[1,"modal-footer"],["type","submit","class","btn btn-primary btn-submit",3,"disabled",4,"ngIf"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],["class","ml-auto",4,"ngIf"],[1,"modal-body"],["type","info",4,"ngIf"],["class","row",4,"ngIf"],[1,"row"],[1,"col-6","form-group"],["for","name"],["id","name","type","text","name","Name","required","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["class","col-6 form-group",4,"ngIf"],[4,"ngIf"],[1,"form-group"],["for","notes"],["id","notes","name","Notes","rows","6",1,"form-control",3,"ngModel","disabled","ngModelChange"],[1,"mt-4"],["cdkDropList","",3,"cdkDropListDropped",4,"ngIf"],["href","#","appStopClick","","class","d-inline-block mb-2",3,"click",4,"ngIf"],["type","info"],["for","type"],["id","type","name","Type","appAutofocus","",1,"form-control",3,"ngModel","disabled","ngModelChange"],[3,"ngValue",4,"ngFor","ngForOf"],[3,"ngValue"],["for","folder"],["id","folder","name","FolderId",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","loginUsername"],[1,"input-group"],["id","loginUsername","type","text","name","Login.Username","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["class","input-group-append",4,"ngIf"],[1,"d-flex"],["for","loginPassword"],["class","ml-auto d-flex",4,"ngIf"],["id","loginPassword","name","Login.Password","appInputVerbatim","","autocomplete","new-password",1,"form-control","text-monospace",3,"type","ngModel","disabled","ngModelChange"],[1,"input-group-append"],["type","button",1,"btn","btn-outline-secondary",3,"appA11yTitle","disabled","click"],["aria-hidden","true",1,"fa","fa-lg",3,"ngClass"],["aria-hidden","true",1,"fa","fa-lg","fa-clone"],["for","loginTotp"],["id","loginTotp","name","Login.Totp","appInputVerbatim","",1,"form-control","text-monospace",3,"type","ngModel","disabled","ngModelChange"],[1,"col-6","form-group","totp","d-flex","align-items-end",3,"ngClass"],["class","d-flex align-items-center",4,"ngIf"],["href","#","appStopClick","","class","d-inline-block mb-3",3,"click",4,"ngIf"],["type","button",1,"btn","btn-outline-secondary",3,"appA11yTitle","click"],[1,"ml-auto","d-flex"],["href","#","class","d-block mr-2 fa-icon-above-input","appStopClick","",3,"appA11yTitle","click",4,"ngIf"],["href","#","appStopClick","",1,"d-block","fa-icon-above-input",3,"appA11yTitle","appApiAction","click"],["checkPasswordBtn",""],["aria-hidden","true",1,"fa","fa-lg","fa-fw","fa-check-circle",3,"hidden"],["aria-hidden","true",1,"fa","fa-lg","fa-fw","fa-spinner","fa-spin",3,"hidden","title"],["href","#","appStopClick","",1,"d-block","mr-2","fa-icon-above-input",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-lg","fa-fw","fa-refresh"],["src","images/totp-countdown.png",1,"ml-2",3,"title"],["href","#","appStopClick","","class","badge badge-primary ml-3",3,"click",4,"ngIf"],["href","#","appStopClick","",1,"badge","badge-primary","ml-3",3,"click"],[1,"d-flex","align-items-center"],[1,"totp-countdown","mr-3","ml-2"],[1,"totp-sec"],["r","12.6","cy","16","cx","16",1,"totp-circle","inner",3,"ngStyle"],["r","14","cy","16","cx","16",1,"totp-circle","outer"],[1,"totp-code","mr-2",3,"title"],["type","button",1,"btn","btn-link",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-clone"],["class","row",4,"ngFor","ngForOf","ngForTrackBy"],[1,"col-7","form-group"],[3,"for"],["type","text","appInputVerbatim","",1,"form-control",3,"id","name","ngModel","disabled","placeholder","ngModelChange"],["aria-hidden","true",1,"fa","fa-lg","fa-share"],[1,"col-5","form-group"],["href","https://help.bitwarden.com/article/uri-match-detection/","target","_blank","rel","noopener",1,"ml-auto",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-question-circle-o"],[1,"form-control","overflow-hidden",3,"id","name","ngModel","disabled","ngModelChange","change"],["type","button","class","btn btn-link text-danger ml-2",3,"appA11yTitle","click",4,"ngIf"],["type","button",1,"btn","btn-link","text-danger","ml-2",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-minus-circle","fa-lg"],["href","#","appStopClick","",1,"d-inline-block","mb-3",3,"click"],["aria-hidden","true",1,"fa","fa-plus-circle","fa-fw"],["for","cardCardholderName"],["id","cardCardholderName","type","text","name","Card.CardCardholderName",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","cardBrand"],["id","cardBrand","name","Card.Brand",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","cardNumber"],["id","cardNumber","type","text","name","Card.Number","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],[1,"col","form-group"],["for","cardExpMonth"],["id","cardExpMonth","name","Card.ExpMonth",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","cardExpYear"],["id","cardExpYear","type","text","name","Card.ExpYear",1,"form-control",3,"ngModel","placeholder","disabled","ngModelChange"],["for","cardCode"],["id","cardCode","name","Card.Code","appInputVerbatim","","autocomplete","new-password",1,"form-control","text-monospace",3,"type","ngModel","disabled","ngModelChange"],[1,"col-4","form-group"],["for","idTitle"],["id","idTitle","name","Identity.Title",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idFirstName"],["id","idFirstName","type","text","name","Identity.FirstName",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idMiddleName"],["id","idMiddleName","type","text","name","Identity.MiddleName",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idLastName"],["id","idLastName","type","text","name","Identity.LastName",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idUsername"],["id","idUsername","type","text","name","Identity.Username","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idCompany"],["id","idCompany","type","text","name","Identity.Company",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idSsn"],["id","idSsn","type","text","name","Identity.SSN","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idPassportNumber"],["id","idPassportNumber","type","text","name","Identity.PassportNumber","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idLicenseNumber"],["id","idLicenseNumber","type","text","name","Identity.LicenseNumber","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idEmail"],["id","idEmail","type","text","name","Identity.Email","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idPhone"],["id","idPhone","type","text","name","Identity.Phone",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idAddress1"],["id","idAddress1","type","text","name","Identity.Address1",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idAddress2"],["id","idAddress2","type","text","name","Identity.Address2",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idAddress3"],["id","idAddress3","type","text","name","Identity.Address3",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idCity"],["id","idCity","type","text","name","Identity.City",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idState"],["id","idState","type","text","name","Identity.State",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idPostalCode"],["id","idPostalCode","type","text","name","Identity.PostalCode",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idCountry"],["id","idCountry","type","text","name","Identity.Country",1,"form-control",3,"ngModel","disabled","ngModelChange"],["cdkDropList","",3,"cdkDropListDropped"],["class","row","cdkDrag","",4,"ngFor","ngForOf","ngForTrackBy"],["cdkDrag","",1,"row"],["href","https://help.bitwarden.com/article/custom-fields/","target","_blank","rel","noopener",1,"ml-auto",3,"appA11yTitle"],["type","text","appInputVerbatim","",1,"form-control",3,"id","name","ngModel","disabled","ngModelChange"],["class","input-group",4,"ngIf"],[1,"flex-fill"],["type","checkbox","appTrueFalseValue","","trueValue","true","falseValue","false",3,"id","name","ngModel","disabled","ngModelChange",4,"ngIf"],["type","button","class","btn btn-link text-muted cursor-move",3,"appA11yTitle",4,"ngIf"],["appInputVerbatim","","autocomplete","new-password",1,"form-control","text-monospace",3,"id","type","name","ngModel","disabled","ngModelChange"],["type","checkbox","appTrueFalseValue","","trueValue","true","falseValue","false",3,"id","name","ngModel","disabled","ngModelChange"],["type","button",1,"btn","btn-link","text-muted","cursor-move",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-bars","fa-lg"],["href","#","appStopClick","",1,"d-inline-block","mb-2",3,"click"],[1,"col-5"],["for","addFieldType",1,"sr-only"],["id","addFieldType","name","AddFieldType",1,"form-control",3,"ngModel","ngModelChange"],["for","organizationId"],["id","organizationId","name","OrganizationId",1,"form-control",3,"ngModel","disabled","ngModelChange","change"],["class","form-check",4,"ngFor","ngForOf"],[1,"form-check"],["type","checkbox",1,"form-check-input",3,"ngModel","id","name","disabled","ngModelChange"],[1,"form-check-label",3,"for"],[1,"small","text-muted","mt-4"],[1,"font-weight-semibold"],["class","ml-3",4,"ngIf"],["href","#","appStopClick","",3,"title","click"],[1,"ml-3"],[4,"ngFor","ngForOf"],[1,"password-wrapper","text-monospace","ml-2"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],[1,"ml-auto"],["type","button","class","btn btn-link",3,"appA11yTitle","click",4,"ngIf"],["type","button","class","btn btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click",4,"ngIf"],["type","button",1,"btn","btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click"],["deleteBtn",""],["aria-hidden","true",1,"fa","fa-trash-o","fa-lg","fa-fw",3,"hidden"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","fa-lg","fa-fw",3,"hidden","title"]],template:function(e,t){1&e&&(d.ɵɵelementStart(0,"div",0),d.ɵɵtext(1,"\n "),d.ɵɵelementStart(2,"div",1),d.ɵɵtext(3,"\n "),d.ɵɵelementStart(4,"form",2,3),d.ɵɵlistener("ngSubmit",(function(){return t.submit()})),d.ɵɵtext(6,"\n "),d.ɵɵelementStart(7,"div",4),d.ɵɵtext(8,"\n "),d.ɵɵelementStart(9,"h2",5),d.ɵɵtext(10),d.ɵɵelementEnd(),d.ɵɵtext(11,"\n "),d.ɵɵelementStart(12,"button",6),d.ɵɵpipe(13,"i18n"),d.ɵɵtext(14,"\n "),d.ɵɵelementStart(15,"span",7),d.ɵɵtext(16,"×"),d.ɵɵelementEnd(),d.ɵɵtext(17,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(18,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(19,"\n "),d.ɵɵtemplate(20,Te,54,25,"div",8),d.ɵɵtext(21,"\n "),d.ɵɵelementStart(22,"div",9),d.ɵɵtext(23,"\n "),d.ɵɵtemplate(24,Me,9,7,"button",10),d.ɵɵtext(25,"\n "),d.ɵɵelementStart(26,"button",11),d.ɵɵtext(27),d.ɵɵpipe(28,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(29,"\n "),d.ɵɵtemplate(30,Ve,6,2,"div",12),d.ɵɵtext(31,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(32,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(33,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(34,"\n"),d.ɵɵelementEnd(),d.ɵɵtext(35,"\n")),2&e&&(d.ɵɵadvance(4),d.ɵɵproperty("appApiAction",t.formPromise),d.ɵɵadvance(6),d.ɵɵtextInterpolate(t.title),d.ɵɵadvance(2),d.ɵɵpropertyInterpolate("appA11yTitle",d.ɵɵpipeBind1(13,7,"close")),d.ɵɵadvance(8),d.ɵɵproperty("ngIf",t.cipher),d.ɵɵadvance(4),d.ɵɵproperty("ngIf",!t.viewOnly),d.ɵɵadvance(3),d.ɵɵtextInterpolate1("\n ",d.ɵɵpipeBind1(28,9,t.viewOnly?"close":"cancel"),"\n "),d.ɵɵadvance(3),d.ɵɵproperty("ngIf",t.cipher&&!t.viewOnly))},directives:[k.NgControlStatusGroup,k.NgForm,_.ApiActionDirective,A.A11yTitleDirective,O.NgIf,k.DefaultValueAccessor,k.RequiredValidator,k.NgControlStatus,k.NgModel,T.CalloutComponent,k.SelectControlValueAccessor,M.AutofocusDirective,O.NgForOf,k.NgSelectOption,k.ɵangular_packages_forms_forms_x,B.InputVerbatimDirective,O.NgClass,D.StopClickDirective,O.NgStyle,R.CdkDropList,R.CdkDrag,V.TrueFalseValueDirective,k.CheckboxControlValueAccessor],pipes:[j.I18nPipe,O.DatePipe],encapsulation:2}),t}(u.AddEditComponent);t.AddEditComponent=je},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){null!=e&&(this.id=e.id,this.url=e.url,this.fileName=e.fileName,this.key=e.key,this.size=e.size,this.sizeName=e.sizeName)};t.AttachmentData=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){null!=e&&(this.cardholderName=e.cardholderName,this.brand=e.brand,this.number=e.number,this.expMonth=e.expMonth,this.expYear=e.expYear,this.code=e.code)};t.CardData=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){null!=e&&(this.type=e.type,this.name=e.name,this.value=e.value)};t.FieldData=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){null!=e&&(this.title=e.title,this.firstName=e.firstName,this.middleName=e.middleName,this.lastName=e.lastName,this.address1=e.address1,this.address2=e.address2,this.address3=e.address3,this.city=e.city,this.state=e.state,this.postalCode=e.postalCode,this.country=e.country,this.company=e.company,this.email=e.email,this.phone=e.phone,this.ssn=e.ssn,this.username=e.username,this.passportNumber=e.passportNumber,this.licenseNumber=e.licenseNumber)};t.IdentityData=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(487),i=function(e){null!=e&&(this.username=e.username,this.password=e.password,this.passwordRevisionDate=e.passwordRevisionDate,this.totp=e.totp,e.uris&&(this.uris=e.uris.map((function(e){return new r.LoginUriData(e)}))))};t.LoginData=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){this.match=null,null!=e&&(this.uri=e.uri,this.match=e.match)};t.LoginUriData=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){null!=e&&(this.type=e.type)};t.SecureNoteData=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0))return[3,4];i.label=1;case 1:return i.trys.push([1,3,,4]),[4,this.getFileContents(n[0])];case 2:return null!=(o=i.sent())&&(r=o),[3,4];case 3:return i.sent(),[3,4];case 4:if(null==r||""===r)return this.toasterService.popAsync("error",this.i18nService.t("errorOccurred"),this.i18nService.t("selectFile")),this.loading=!1,[2];i.label=5;case 5:return i.trys.push([5,7,,8]),this.formPromise=this.importService.import(e,r,this.organizationId),[4,this.formPromise];case 6:return null!=(a=i.sent())?(this.error(a),this.loading=!1,[2]):(this.toasterService.popAsync("success",null,this.i18nService.t("importSuccess")),this.router.navigate(this.successNavigate),[3,8]);case 7:return i.sent(),[3,8];case 8:return this.loading=!1,[2]}}))}))},e.prototype.getFormatInstructionTitle=function(){var e=this;if(null==this.format)return null;var t=this.featuredImportOptions.concat(this.importOptions).filter((function(t){return t.id===e.format}));return t.length>0?this.i18nService.t("instructionsFor",t[0].name):null},e.prototype.setImportOptions=function(){this.featuredImportOptions=o([{id:null,name:"-- "+this.i18nService.t("select")+" --"}],this.importService.featuredImportOptions),this.importOptions=this.importService.regularImportOptions},e.prototype.error=function(e){return r(this,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return[4,a.default.fire({heightAuto:!1,buttonsStyling:!1,icon:"error",iconHtml:'',input:"textarea",inputValue:e.message,inputAttributes:{readonly:"true"},title:this.i18nService.t("importError"),text:this.i18nService.t("importErrorDesc"),showConfirmButton:!0,confirmButtonText:this.i18nService.t("ok"),onOpen:function(e){e.querySelector(".swal2-textarea").scrollTo(0,0)}})];case 1:return t.sent(),[2]}}))}))},e.prototype.getFileContents=function(e){var t=this;return new Promise((function(n,r){var i=new FileReader;i.readAsText(e,"utf-8"),i.onload=function(i){if("lastpasscsv"===t.format&&"text/html"===e.type){var o=(new DOMParser).parseFromString(i.target.result,"text/html").querySelector("pre");return null!=o?void n(o.textContent):void r()}n(i.target.result)},i.onerror=function(){r()}}))},e.ɵfac=function(t){return new(t||e)(s.ɵɵdirectiveInject(l.I18nService),s.ɵɵdirectiveInject(c.ToasterService),s.ɵɵdirectiveInject(p.ImportService),s.ɵɵdirectiveInject(u.Router),s.ɵɵdirectiveInject(d.PlatformUtilsService))},e.ɵcmp=s.ɵɵdefineComponent({type:e,selectors:[["app-import"]],decls:67,vars:24,consts:[[1,"page-header"],["ngNativeValidate","",3,"ngSubmit"],["form",""],[1,"row"],[1,"col-6"],[1,"form-group"],["for","type"],["id","type","name","Format","required","",1,"form-control",3,"ngModel","ngModelChange"],[3,"ngValue",4,"ngFor","ngForOf"],[4,"ngIf"],["type","info",3,"title",4,"ngIf"],["for","file"],["type","file","id","file","name","file",1,"form-control-file"],["for","fileContents"],["id","fileContents","name","FileContents",1,"form-control",3,"ngModel","ngModelChange"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],[3,"ngValue"],["value","-","disabled",""],["type","info",3,"title"],["target","_blank","rel","noopener","href","https://help.bitwarden.com/article/export-your-data/"],["target","_blank","rel","noopener","href","https://help.bitwarden.com/article/import-from-lastpass/"],["target","_blank","rel","noopener","href","https://help.bitwarden.com/article/import-from-chrome/"],["target","_blank","rel","noopener","href","https://bitwarden.com/help/article/import-from-firefox/"],["target","_blank","rel","noopener","href","https://help.bitwarden.com/article/import-from-1password/"],["target","_blank","rel","noopener","href","https://bit.ly/2GpOMTg"]],template:function(e,t){1&e&&(s.ɵɵelementStart(0,"div",0),s.ɵɵtext(1,"\n "),s.ɵɵelementStart(2,"h1"),s.ɵɵtext(3),s.ɵɵpipe(4,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(5,"\n"),s.ɵɵelementEnd(),s.ɵɵtext(6,"\n"),s.ɵɵelementStart(7,"form",1,2),s.ɵɵlistener("ngSubmit",(function(){return t.submit()})),s.ɵɵtext(9,"\n "),s.ɵɵelementStart(10,"div",3),s.ɵɵtext(11,"\n "),s.ɵɵelementStart(12,"div",4),s.ɵɵtext(13,"\n "),s.ɵɵelementStart(14,"div",5),s.ɵɵtext(15,"\n "),s.ɵɵelementStart(16,"label",6),s.ɵɵtext(17),s.ɵɵpipe(18,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(19,"\n "),s.ɵɵelementStart(20,"select",7),s.ɵɵlistener("ngModelChange",(function(e){return t.format=e})),s.ɵɵtext(21,"\n "),s.ɵɵtemplate(22,y,2,2,"option",8),s.ɵɵtext(23,"\n "),s.ɵɵtemplate(24,x,6,1,"ng-container",9),s.ɵɵtext(25,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(26,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(27,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(28,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(29,"\n "),s.ɵɵtemplate(30,ve,100,50,"app-callout",10),s.ɵɵtext(31,"\n "),s.ɵɵelementStart(32,"div",3),s.ɵɵtext(33,"\n "),s.ɵɵelementStart(34,"div",4),s.ɵɵtext(35,"\n "),s.ɵɵelementStart(36,"div",5),s.ɵɵtext(37,"\n "),s.ɵɵelementStart(38,"label",11),s.ɵɵtext(39),s.ɵɵpipe(40,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(41,"\n "),s.ɵɵelement(42,"input",12),s.ɵɵtext(43,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(44,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(45,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(46,"\n "),s.ɵɵelementStart(47,"div",5),s.ɵɵtext(48,"\n "),s.ɵɵelementStart(49,"label",13),s.ɵɵtext(50),s.ɵɵpipe(51,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(52,"\n "),s.ɵɵelementStart(53,"textarea",14),s.ɵɵlistener("ngModelChange",(function(e){return t.fileContents=e})),s.ɵɵelementEnd(),s.ɵɵtext(54,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(55,"\n "),s.ɵɵelementStart(56,"button",15),s.ɵɵtext(57,"\n "),s.ɵɵelement(58,"i",16),s.ɵɵpipe(59,"i18n"),s.ɵɵtext(60,"\n "),s.ɵɵelementStart(61,"span"),s.ɵɵtext(62),s.ɵɵpipe(63,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(64,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(65,"\n"),s.ɵɵelementEnd(),s.ɵɵtext(66,"\n")),2&e&&(s.ɵɵadvance(3),s.ɵɵtextInterpolate(s.ɵɵpipeBind1(4,12,"importData")),s.ɵɵadvance(14),s.ɵɵtextInterpolate1("1. ",s.ɵɵpipeBind1(18,14,"selectFormat"),""),s.ɵɵadvance(3),s.ɵɵproperty("ngModel",t.format),s.ɵɵadvance(2),s.ɵɵproperty("ngForOf",t.featuredImportOptions),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",t.importOptions&&t.importOptions.length),s.ɵɵadvance(6),s.ɵɵproperty("ngIf",t.format),s.ɵɵadvance(9),s.ɵɵtextInterpolate1("2. ",s.ɵɵpipeBind1(40,16,"selectImportFile"),""),s.ɵɵadvance(11),s.ɵɵtextInterpolate(s.ɵɵpipeBind1(51,18,"orCopyPasteFileContents")),s.ɵɵadvance(3),s.ɵɵproperty("ngModel",t.fileContents),s.ɵɵadvance(3),s.ɵɵproperty("disabled",t.loading),s.ɵɵadvance(2),s.ɵɵpropertyInterpolate("title",s.ɵɵpipeBind1(59,20,"loading")),s.ɵɵadvance(4),s.ɵɵtextInterpolate(s.ɵɵpipeBind1(63,22,"importData")))},directives:[m.NgControlStatusGroup,m.NgForm,m.SelectControlValueAccessor,m.RequiredValidator,m.NgControlStatus,m.NgModel,h.NgForOf,h.NgIf,m.DefaultValueAccessor,m.NgSelectOption,m.ɵangular_packages_forms_forms_x,f.CalloutComponent],pipes:[v.I18nPipe],encapsulation:2}),e}();t.ImportComponent=ye},,function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0?[4,this.getAllCiphers()]:[3,6];case 4:return e=o.sent(),t=[],n=[],r=new Map,e.forEach((function(e){if(e.type===s.CipherType.Login&&(null==e.login.totp||""===e.login.totp)&&e.login.hasUris&&!e.isDeleted)for(var n=0;n0?[2]:[4,fetch(new Request("https://2fa.directory/api/v2/totp.json"))];case 1:if(200!==(e=a.sent()).status)throw new Error;return[4,e.json()];case 2:for(n in t=a.sent())if(t.hasOwnProperty(n))for(i in r=t[n])r.hasOwnProperty(i)&&null!=(o=r[i]).url&&null!=(s=l.Utils.getHostname(o.url))&&this.services.set(s,o.doc);return[2]}}))}))},t.ɵfac=function(e){return new(e||t)(p.ɵɵdirectiveInject(u.CipherService),p.ɵɵdirectiveInject(p.ComponentFactoryResolver),p.ɵɵdirectiveInject(d.MessagingService),p.ɵɵdirectiveInject(m.UserService))},t.ɵcmp=p.ɵɵdefineComponent({type:t,selectors:[["app-inactive-two-factor-report"]],features:[p.ɵɵInheritDefinitionFeature],decls:20,vars:9,consts:[[1,"page-header"],[4,"ngIf"],["class","mt-4",4,"ngIf"],["cipherAddEdit",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[1,"mt-4"],["type","success",3,"title",4,"ngIf"],["type","success",3,"title"],["type","danger",3,"title"],[1,"table","table-hover","table-list","table-ciphers"],[4,"ngFor","ngForOf"],[1,"table-list-icon"],[3,"cipher"],[1,"reduced-lh","wrap"],["href","#","appStopClick","",3,"title","click"],[1,"text-right"],["class","badge badge-primary","target","_blank","rel","noopener",3,"href",4,"ngIf"],["appStopProp","","aria-hidden","true",1,"fa","fa-share-alt",3,"title"],["appStopProp","","aria-hidden","true",1,"fa","fa-paperclip",3,"title"],["target","_blank","rel","noopener",1,"badge","badge-primary",3,"href"]],template:function(e,t){1&e&&(p.ɵɵelementStart(0,"div",0),p.ɵɵtext(1,"\n "),p.ɵɵelementStart(2,"h1"),p.ɵɵtext(3),p.ɵɵpipe(4,"i18n"),p.ɵɵtemplate(5,b,9,6,"small",1),p.ɵɵtext(6,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(7,"\n"),p.ɵɵelementEnd(),p.ɵɵtext(8,"\n"),p.ɵɵelementStart(9,"p"),p.ɵɵtext(10),p.ɵɵpipe(11,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(12,"\n"),p.ɵɵtemplate(13,S,9,6,"div",1),p.ɵɵtext(14,"\n"),p.ɵɵtemplate(15,_,6,2,"div",2),p.ɵɵtext(16,"\n"),p.ɵɵtemplate(17,A,0,0,"ng-template",null,3,p.ɵɵtemplateRefExtractor),p.ɵɵtext(19,"\n")),2&e&&(p.ɵɵadvance(3),p.ɵɵtextInterpolate1("\n ",p.ɵɵpipeBind1(4,5,"inactive2faReport"),"\n "),p.ɵɵadvance(2),p.ɵɵproperty("ngIf",t.hasLoaded&&t.loading),p.ɵɵadvance(5),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(11,7,"inactive2faReportDesc")),p.ɵɵadvance(3),p.ɵɵproperty("ngIf",!t.hasLoaded&&t.loading),p.ɵɵadvance(2),p.ɵɵproperty("ngIf",t.hasLoaded))},directives:[h.NgIf,f.CalloutComponent,h.NgForOf,v.IconComponent,y.StopClickDirective,g.StopPropDirective],pipes:[x.I18nPipe,h.DecimalPipe],encapsulation:2}),t}(c.CipherReportComponent);t.InactiveTwoFactorReportComponent=O},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]1})),this.ciphers=n,[2]}}))}))},t.prototype.getAllCiphers=function(){return this.cipherService.getAllDecrypted()},t.prototype.canManageCipher=function(e){return!0},t.ɵfac=function(e){return new(e||t)(c.ɵɵdirectiveInject(p.CipherService),c.ɵɵdirectiveInject(c.ComponentFactoryResolver),c.ɵɵdirectiveInject(u.MessagingService),c.ɵɵdirectiveInject(d.UserService))},t.ɵcmp=c.ɵɵdefineComponent({type:t,selectors:[["app-reused-passwords-report"]],features:[c.ɵɵInheritDefinitionFeature],decls:20,vars:9,consts:[[1,"page-header"],[4,"ngIf"],["class","mt-4",4,"ngIf"],["cipherAddEdit",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[1,"mt-4"],["type","success",3,"title",4,"ngIf"],["type","success",3,"title"],["type","danger",3,"title"],[1,"table","table-hover","table-list","table-ciphers"],[4,"ngFor","ngForOf"],[1,"table-list-icon"],[3,"cipher"],[1,"reduced-lh","wrap"],[4,"ngIf","ngIfElse"],["cantManage",""],[1,"text-right"],[1,"badge","badge-warning"],["href","#","appStopClick","",3,"title","click"],["appStopProp","","aria-hidden","true",1,"fa","fa-share-alt",3,"title"],["appStopProp","","aria-hidden","true",1,"fa","fa-paperclip",3,"title"]],template:function(e,t){1&e&&(c.ɵɵelementStart(0,"div",0),c.ɵɵtext(1,"\n "),c.ɵɵelementStart(2,"h1"),c.ɵɵtext(3),c.ɵɵpipe(4,"i18n"),c.ɵɵtemplate(5,x,9,6,"small",1),c.ɵɵtext(6,"\n "),c.ɵɵelementEnd(),c.ɵɵtext(7,"\n"),c.ɵɵelementEnd(),c.ɵɵtext(8,"\n"),c.ɵɵelementStart(9,"p"),c.ɵɵtext(10),c.ɵɵpipe(11,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(12,"\n"),c.ɵɵtemplate(13,b,9,6,"div",1),c.ɵɵtext(14,"\n"),c.ɵɵtemplate(15,_,6,2,"div",2),c.ɵɵtext(16,"\n"),c.ɵɵtemplate(17,A,0,0,"ng-template",null,3,c.ɵɵtemplateRefExtractor),c.ɵɵtext(19,"\n")),2&e&&(c.ɵɵadvance(3),c.ɵɵtextInterpolate1("\n ",c.ɵɵpipeBind1(4,5,"reusedPasswordsReport"),"\n "),c.ɵɵadvance(2),c.ɵɵproperty("ngIf",t.hasLoaded&&t.loading),c.ɵɵadvance(5),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(11,7,"reusedPasswordsReportDesc")),c.ɵɵadvance(3),c.ɵɵproperty("ngIf",!t.hasLoaded&&t.loading),c.ɵɵadvance(2),c.ɵɵproperty("ngIf",t.hasLoaded))},directives:[m.NgIf,h.CalloutComponent,m.NgForOf,f.IconComponent,v.StopClickDirective,y.StopPropDirective],pipes:[g.I18nPipe,m.DecimalPipe],encapsulation:2}),t}(l.CipherReportComponent);t.ReusedPasswordsReportComponent=O},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]-1?l.concat(e.login.username.substr(0,c).trim().toLowerCase().split(/[^A-Za-z0-9]/)).filter((function(e){return e.length>=3})):e.login.username.trim().toLowerCase().split(/[^A-Za-z0-9]/).filter((function(e){return e.length>=3}))}var p=i.passwordGenerationService.passwordStrength(e.login.password,l.length>0?l:null);i.passwordStrengthCache.set(a,p.score)}var u=i.passwordStrengthCache.get(a);null!=u&&u<=2&&(i.passwordStrengthMap.set(e.id,i.scoreKey(u)),t.push(e))}})),t.sort((function(e,t){return i.passwordStrengthCache.get(r(e))-i.passwordStrengthCache.get(r(t))})),this.ciphers=t,[2]}}))}))},t.prototype.getAllCiphers=function(){return this.cipherService.getAllDecrypted()},t.prototype.canManageCipher=function(e){return!0},t.prototype.scoreKey=function(e){switch(e){case 4:return["strong","success"];case 3:return["good","primary"];case 2:return["weak","warning"];default:return["veryWeak","danger"]}},t.ɵfac=function(e){return new(e||t)(c.ɵɵdirectiveInject(p.CipherService),c.ɵɵdirectiveInject(u.PasswordGenerationService),c.ɵɵdirectiveInject(c.ComponentFactoryResolver),c.ɵɵdirectiveInject(d.MessagingService),c.ɵɵdirectiveInject(m.UserService))},t.ɵcmp=c.ɵɵdefineComponent({type:t,selectors:[["app-weak-passwords-report"]],features:[c.ɵɵInheritDefinitionFeature],decls:20,vars:9,consts:[[1,"page-header"],[4,"ngIf"],["class","mt-4",4,"ngIf"],["cipherAddEdit",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[1,"mt-4"],["type","success",3,"title",4,"ngIf"],["type","success",3,"title"],["type","danger",3,"title"],[1,"table","table-hover","table-list","table-ciphers"],[4,"ngFor","ngForOf"],[1,"table-list-icon"],[3,"cipher"],[1,"reduced-lh","wrap"],[4,"ngIf","ngIfElse"],["cantManage",""],[1,"text-right"],["href","#","appStopClick","",3,"title","click"],["appStopProp","","aria-hidden","true",1,"fa","fa-share-alt",3,"title"],["appStopProp","","aria-hidden","true",1,"fa","fa-paperclip",3,"title"]],template:function(e,t){1&e&&(c.ɵɵelementStart(0,"div",0),c.ɵɵtext(1,"\n "),c.ɵɵelementStart(2,"h1"),c.ɵɵtext(3),c.ɵɵpipe(4,"i18n"),c.ɵɵtemplate(5,b,9,6,"small",1),c.ɵɵtext(6,"\n "),c.ɵɵelementEnd(),c.ɵɵtext(7,"\n"),c.ɵɵelementEnd(),c.ɵɵtext(8,"\n"),c.ɵɵelementStart(9,"p"),c.ɵɵtext(10),c.ɵɵpipe(11,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(12,"\n"),c.ɵɵtemplate(13,S,9,6,"div",1),c.ɵɵtext(14,"\n"),c.ɵɵtemplate(15,A,6,2,"div",2),c.ɵɵtext(16,"\n"),c.ɵɵtemplate(17,O,0,0,"ng-template",null,3,c.ɵɵtemplateRefExtractor),c.ɵɵtext(19,"\n")),2&e&&(c.ɵɵadvance(3),c.ɵɵtextInterpolate1("\n ",c.ɵɵpipeBind1(4,5,"weakPasswordsReport"),"\n "),c.ɵɵadvance(2),c.ɵɵproperty("ngIf",t.hasLoaded&&t.loading),c.ɵɵadvance(5),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(11,7,"weakPasswordsReportDesc")),c.ɵɵadvance(3),c.ɵɵproperty("ngIf",!t.hasLoaded&&t.loading),c.ɵɵadvance(2),c.ɵɵproperty("ngIf",t.hasLoaded))},directives:[h.NgIf,f.CalloutComponent,h.NgForOf,v.IconComponent,y.StopClickDirective,g.StopPropDirective],pipes:[x.I18nPipe,h.DecimalPipe],encapsulation:2}),t}(l.CipherReportComponent);t.WeakPasswordsReportComponent=T},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]-1)""===r.substr(o).trim()&&(i=o);e+=r.substring(0,i)}this.platformUtilsService.copyToClipboard(e,{window:window})}},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(r.ElementRef),r.ɵɵdirectiveInject(i.PlatformUtilsService))},e.ɵdir=r.ɵɵdefineDirective({type:e,selectors:[["","appSelectCopy",""]],hostBindings:function(e,t){1&e&&r.ɵɵlistener("copy",(function(){return t.onCopy()}))}}),e}();t.SelectCopyDirective=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(0),i=function(){function e(){}return e.prototype.transform=function(e){for(var t="",n=0;n":r=">",i=!0;break;case" ":r=" ",i=!0}var o="letter";i||r.match(/[^\w ]/)?o="special":r.match(/\d/)&&(o="number"),t+=''+r+""}return t},e.ɵfac=function(t){return new(t||e)},e.ɵpipe=r.ɵɵdefinePipe({name:"colorPassword",type:e,pure:!0}),e}();t.ColorPasswordPipe=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t){this.userId=t,this.name=e.name,this.id=e.id,this.revisionDate=e.revisionDate};t.FolderData=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(127),a=function(e){function t(t,n){void 0===n&&(n=!1);var r=e.call(this)||this;return null==t||(r.buildDomainModel(r,t,{id:null,name:null},n,["id"]),r.revisionDate=null!=t.revisionDate?new Date(t.revisionDate):null),r}return i(t,e),t.prototype.decrypt=function(){return this.decryptObj(new o.FolderView(this),{name:null},null)},t}(n(81).default);t.Folder=a},,,,,,function(e,t){},,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.NotificationsService=r},,,,function(e,t){function n(e){return Promise.resolve().then((function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}))}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=529},,,,,,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]-1&&(this.email=r.email),null!=r.premium?this.stateService.save("loginRedirect",{route:"/settings/premium"}):null!=r.org&&this.stateService.save("loginRedirect",{route:"/settings/create-organization",qParams:{plan:r.org}}),[4,e.prototype.ngOnInit.call(this)];case 1:return n.sent(),null!=t&&t.unsubscribe(),[2]}}))}))})),[2]}))}))},t.prototype.goAfterLogIn=function(){return o(this,void 0,void 0,(function(){var e,t,n;return a(this,(function(r){switch(r.label){case 0:return[4,this.stateService.get("orgInvitation")];case 1:return e=r.sent(),[4,this.stateService.get("emergencyInvitation")];case 2:return t=r.sent(),null==e?[3,3]:(this.router.navigate(["accept-organization"],{queryParams:e}),[3,8]);case 3:return null==t?[3,4]:(this.router.navigate(["accept-emergency"],{queryParams:t}),[3,8]);case 4:return[4,this.stateService.get("loginRedirect")];case 5:return null==(n=r.sent())?[3,7]:(this.router.navigate([n.route],{queryParams:n.qParams}),[4,this.stateService.remove("loginRedirect")]);case 6:return r.sent(),[3,8];case 7:this.router.navigate([this.successRoute]),r.label=8;case 8:return[2]}}))}))},t.ɵfac=function(e){return new(e||t)(l.ɵɵdirectiveInject(c.AuthService),l.ɵɵdirectiveInject(p.Router),l.ɵɵdirectiveInject(u.I18nService),l.ɵɵdirectiveInject(p.ActivatedRoute),l.ɵɵdirectiveInject(d.StorageService),l.ɵɵdirectiveInject(m.StateService),l.ɵɵdirectiveInject(h.PlatformUtilsService),l.ɵɵdirectiveInject(f.EnvironmentService),l.ɵɵdirectiveInject(v.PasswordGenerationService),l.ɵɵdirectiveInject(y.CryptoFunctionService))},t.ɵcmp=l.ɵɵdefineComponent({type:t,selectors:[["app-login"]],features:[l.ɵɵInheritDefinitionFeature],decls:97,vars:43,consts:[["ngNativeValidate","",1,"container",3,"appApiAction","ngSubmit"],["form",""],[1,"row","justify-content-md-center","mt-5"],[1,"col-5"],["src","images/logo-dark@2x.png","alt","Bitwarden",1,"logo","mb-2"],[1,"lead","text-center","mx-4","mb-4"],[1,"card","d-block"],[1,"card-body"],[1,"form-group"],["for","email"],["id","email","type","text","name","Email","required","","inputmode","email","appInputVerbatim","false",1,"form-control",3,"ngModel","ngModelChange"],["for","masterPassword"],[1,"d-flex"],["id","masterPassword","name","MasterPassword","required","","appInputVerbatim","",1,"text-monospace","form-control",3,"type","ngModel","ngModelChange"],["type","button",1,"ml-1","btn","btn-link",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-lg",3,"ngClass"],[1,"form-text"],["routerLink","/hint"],[1,"form-check"],["type","checkbox","id","rememberEmail","name","RememberEmail",1,"form-check-input",3,"ngModel","ngModelChange"],["for","rememberEmail",1,"form-check-label"],["type","submit",1,"btn","btn-primary","btn-block","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-sign-in"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["routerLink","/register",1,"btn","btn-outline-secondary","btn-block","ml-2","mt-0",3,"queryParams"],["aria-hidden","true",1,"fa","fa-pencil-square-o"],["routerLink","/sso",1,"btn","btn-outline-secondary","btn-block","mt-2"],["aria-hidden","true",1,"fa","fa-bank"]],template:function(e,t){if(1&e&&(l.ɵɵelementStart(0,"form",0,1),l.ɵɵlistener("ngSubmit",(function(){return t.submit()})),l.ɵɵtext(2,"\n "),l.ɵɵelementStart(3,"div",2),l.ɵɵtext(4,"\n "),l.ɵɵelementStart(5,"div",3),l.ɵɵtext(6,"\n "),l.ɵɵelement(7,"img",4),l.ɵɵtext(8,"\n "),l.ɵɵelementStart(9,"p",5),l.ɵɵtext(10),l.ɵɵpipe(11,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(12,"\n "),l.ɵɵelementStart(13,"div",6),l.ɵɵtext(14,"\n "),l.ɵɵelementStart(15,"div",7),l.ɵɵtext(16,"\n "),l.ɵɵelementStart(17,"div",8),l.ɵɵtext(18,"\n "),l.ɵɵelementStart(19,"label",9),l.ɵɵtext(20),l.ɵɵpipe(21,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(22,"\n "),l.ɵɵelementStart(23,"input",10),l.ɵɵlistener("ngModelChange",(function(e){return t.email=e})),l.ɵɵelementEnd(),l.ɵɵtext(24,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(25,"\n "),l.ɵɵelementStart(26,"div",8),l.ɵɵtext(27,"\n "),l.ɵɵelementStart(28,"label",11),l.ɵɵtext(29),l.ɵɵpipe(30,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(31,"\n "),l.ɵɵelementStart(32,"div",12),l.ɵɵtext(33,"\n "),l.ɵɵelementStart(34,"input",13),l.ɵɵlistener("ngModelChange",(function(e){return t.masterPassword=e})),l.ɵɵelementEnd(),l.ɵɵtext(35,"\n "),l.ɵɵelementStart(36,"button",14),l.ɵɵlistener("click",(function(){return t.togglePassword()})),l.ɵɵpipe(37,"i18n"),l.ɵɵtext(38,"\n "),l.ɵɵelement(39,"i",15),l.ɵɵtext(40,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(41,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(42,"\n "),l.ɵɵelementStart(43,"small",16),l.ɵɵtext(44,"\n "),l.ɵɵelementStart(45,"a",17),l.ɵɵtext(46),l.ɵɵpipe(47,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(48,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(49,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(50,"\n "),l.ɵɵelementStart(51,"div",18),l.ɵɵtext(52,"\n "),l.ɵɵelementStart(53,"input",19),l.ɵɵlistener("ngModelChange",(function(e){return t.rememberEmail=e})),l.ɵɵelementEnd(),l.ɵɵtext(54,"\n "),l.ɵɵelementStart(55,"label",20),l.ɵɵtext(56),l.ɵɵpipe(57,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(58,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(59,"\n "),l.ɵɵelement(60,"hr"),l.ɵɵtext(61,"\n "),l.ɵɵelementStart(62,"div",12),l.ɵɵtext(63,"\n "),l.ɵɵelementStart(64,"button",21),l.ɵɵtext(65,"\n "),l.ɵɵelementStart(66,"span"),l.ɵɵtext(67,"\n "),l.ɵɵelement(68,"i",22),l.ɵɵtext(69),l.ɵɵpipe(70,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(71,"\n "),l.ɵɵelement(72,"i",23),l.ɵɵpipe(73,"i18n"),l.ɵɵtext(74,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(75,"\n "),l.ɵɵelementStart(76,"a",24),l.ɵɵtext(77,"\n "),l.ɵɵelement(78,"i",25),l.ɵɵtext(79),l.ɵɵpipe(80,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(81,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(82,"\n "),l.ɵɵelementStart(83,"div",12),l.ɵɵtext(84,"\n "),l.ɵɵelementStart(85,"a",26),l.ɵɵtext(86,"\n "),l.ɵɵelement(87,"i",27),l.ɵɵtext(88),l.ɵɵpipe(89,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(90,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(91,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(92,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(93,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(94,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(95,"\n"),l.ɵɵelementEnd(),l.ɵɵtext(96,"\n")),2&e){var n=l.ɵɵreference(1);l.ɵɵproperty("appApiAction",t.formPromise),l.ɵɵadvance(10),l.ɵɵtextInterpolate(l.ɵɵpipeBind1(11,18,"loginOrCreateNewAccount")),l.ɵɵadvance(10),l.ɵɵtextInterpolate(l.ɵɵpipeBind1(21,20,"emailAddress")),l.ɵɵadvance(3),l.ɵɵproperty("ngModel",t.email),l.ɵɵadvance(6),l.ɵɵtextInterpolate(l.ɵɵpipeBind1(30,22,"masterPass")),l.ɵɵadvance(5),l.ɵɵpropertyInterpolate("type",t.showPassword?"text":"password"),l.ɵɵproperty("ngModel",t.masterPassword),l.ɵɵadvance(2),l.ɵɵpropertyInterpolate("appA11yTitle",l.ɵɵpipeBind1(37,24,"toggleVisibility")),l.ɵɵadvance(3),l.ɵɵproperty("ngClass",l.ɵɵpureFunction2(38,I,!t.showPassword,t.showPassword)),l.ɵɵadvance(7),l.ɵɵtextInterpolate(l.ɵɵpipeBind1(47,26,"getMasterPasswordHint")),l.ɵɵadvance(7),l.ɵɵproperty("ngModel",t.rememberEmail),l.ɵɵadvance(3),l.ɵɵtextInterpolate(l.ɵɵpipeBind1(57,28,"rememberEmail")),l.ɵɵadvance(8),l.ɵɵproperty("disabled",n.loading),l.ɵɵadvance(5),l.ɵɵtextInterpolate1(" ",l.ɵɵpipeBind1(70,30,"logIn"),"\n "),l.ɵɵadvance(3),l.ɵɵpropertyInterpolate("title",l.ɵɵpipeBind1(73,32,"loading")),l.ɵɵadvance(4),l.ɵɵproperty("queryParams",l.ɵɵpureFunction1(41,E,t.email)),l.ɵɵadvance(3),l.ɵɵtextInterpolate1(" ",l.ɵɵpipeBind1(80,34,"createAccount"),"\n "),l.ɵɵadvance(9),l.ɵɵtextInterpolate1(" ",l.ɵɵpipeBind1(89,36,"enterpriseSingleSignOn"),"\n ")}},directives:[g.NgControlStatusGroup,g.NgForm,x.ApiActionDirective,g.DefaultValueAccessor,g.RequiredValidator,b.InputVerbatimDirective,g.NgControlStatus,g.NgModel,S.A11yTitleDirective,w.NgClass,p.RouterLinkWithHref,g.CheckboxControlValueAccessor],pipes:[C.I18nPipe],encapsulation:2}),t}(s.LoginComponent);t.LoginComponent=P},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0),u.ɵɵadvance(2),u.ɵɵproperty("ngIf",(null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.minLength)>0),u.ɵɵadvance(2),u.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireUpper),u.ɵɵadvance(2),u.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireLower),u.ɵɵadvance(2),u.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireNumbers),u.ɵɵadvance(2),u.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireSpecial)}}function K(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"div",12),u.ɵɵtext(1,"\n "),u.ɵɵelementStart(2,"div",48),u.ɵɵtext(3,"\n "),u.ɵɵelementStart(4,"input",49),u.ɵɵlistener("ngModelChange",(function(e){return u.ɵɵrestoreView(n),u.ɵɵnextContext().acceptPolicies=e})),u.ɵɵelementEnd(),u.ɵɵtext(5,"\n "),u.ɵɵelementStart(6,"label",50),u.ɵɵtext(7),u.ɵɵpipe(8,"i18n"),u.ɵɵelement(9,"br"),u.ɵɵtext(10,"\n "),u.ɵɵelementStart(11,"a",51),u.ɵɵtext(12),u.ɵɵpipe(13,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(14,",\n "),u.ɵɵelementStart(15,"a",52),u.ɵɵtext(16),u.ɵɵpipe(17,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(18,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(19,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(20,"\n "),u.ɵɵelementEnd()}if(2&e){var r=u.ɵɵnextContext();u.ɵɵadvance(4),u.ɵɵproperty("ngModel",r.acceptPolicies),u.ɵɵadvance(3),u.ɵɵtextInterpolate1("\n ",u.ɵɵpipeBind1(8,4,"acceptPolicies"),""),u.ɵɵadvance(5),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(13,6,"termsOfService")),u.ɵɵadvance(4),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(17,8,"privacyPolicy"))}}var q=function(e){return["layout",e]},W=function(e,t){return{"col-5":e,"col-12":t}},H=function(e,t){return{"fa-eye":e,"fa-eye-slash":t}},$=function(e){function t(t,n,r,i,o,a,s,l,c,p){var u=e.call(this,t,n,r,i,o,s,l,c)||this;return u.route=a,u.policyService=p,u.showCreateOrgMessage=!1,u.layout="",u}return i(t,e),t.prototype.getPasswordScoreAlertDisplay=function(){if(null==this.enforcedPolicyOptions)return"";var e;switch(this.enforcedPolicyOptions.minComplexity){case 4:e=this.i18nService.t("strong");break;case 3:e=this.i18nService.t("good");break;default:e=this.i18nService.t("weak")}return e+" ("+this.enforcedPolicyOptions.minComplexity+")"},t.prototype.ngOnInit=function(){return o(this,void 0,void 0,(function(){var e,t,n,r,i,o=this;return a(this,(function(a){switch(a.label){case 0:return e=this.route.queryParams.subscribe((function(t){o.referenceData=new p.ReferenceEventRequest,null!=t.email&&t.email.indexOf("@")>-1&&(o.email=t.email),null!=t.premium?o.stateService.save("loginRedirect",{route:"/settings/premium"}):null!=t.org&&(o.showCreateOrgMessage=!0,o.referenceData.flow=t.org,o.stateService.save("loginRedirect",{route:"/settings/create-organization",qParams:{plan:t.org}})),null!=t.layout&&(o.layout=o.referenceData.layout=t.layout),null!=t.reference?o.referenceData.id=t.reference:o.referenceData.id=("; "+document.cookie).split("; reference=").pop().split(";").shift(),""===o.referenceData.id&&(o.referenceData.id=null),null!=e&&e.unsubscribe()})),[4,this.stateService.get("orgInvitation")];case 1:if(null==(t=a.sent()))return[3,5];a.label=2;case 2:return a.trys.push([2,4,,5]),[4,this.apiService.getPoliciesByToken(t.organizationId,t.token,t.email,t.organizationUserId)];case 3:return null!=(n=a.sent()).data&&(r=n.data.map((function(e){return new c.PolicyData(e)})),this.policies=r.map((function(e){return new l.Policy(e)}))),[3,5];case 4:return a.sent(),[3,5];case 5:return null==this.policies?[3,7]:(i=this,[4,this.policyService.getMasterPasswordPolicyOptions(this.policies)]);case 6:i.enforcedPolicyOptions=a.sent(),a.label=7;case 7:return[2]}}))}))},t.prototype.submit=function(){return o(this,void 0,void 0,(function(){return a(this,(function(t){switch(t.label){case 0:return null==this.enforcedPolicyOptions||this.policyService.evaluateMasterPassword(this.masterPasswordScore,this.masterPassword,this.enforcedPolicyOptions)?[4,e.prototype.submit.call(this)]:(this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("masterPasswordPolicyRequirementsNotMet")),[2]);case 1:return t.sent(),[2]}}))}))},t.ɵfac=function(e){return new(e||t)(u.ɵɵdirectiveInject(d.AuthService),u.ɵɵdirectiveInject(m.Router),u.ɵɵdirectiveInject(h.I18nService),u.ɵɵdirectiveInject(f.CryptoService),u.ɵɵdirectiveInject(v.ApiService),u.ɵɵdirectiveInject(m.ActivatedRoute),u.ɵɵdirectiveInject(y.StateService),u.ɵɵdirectiveInject(g.PlatformUtilsService),u.ɵɵdirectiveInject(x.PasswordGenerationService),u.ɵɵdirectiveInject(b.PolicyService))},t.ɵcmp=u.ɵɵdefineComponent({type:t,selectors:[["app-register"]],features:[u.ɵɵInheritDefinitionFeature],decls:146,vars:80,consts:[[1,"layout",3,"ngClass"],["class","header",4,"ngIf"],["ngNativeValidate","",1,"container",3,"appApiAction","ngSubmit"],["form",""],[1,"row"],["class","col-7",4,"ngIf"],[3,"ngClass"],[1,"row","justify-content-md-center","mt-5"],["class","lead text-center mb-4",4,"ngIf"],[1,"card","d-block"],[1,"card-body"],["type","info","icon","fa-thumb-tack",3,"title",4,"ngIf"],[1,"form-group"],["for","email"],["id","email","type","text","name","Email","required","","inputmode","email","appInputVerbatim","false",1,"form-control",3,"ngModel","appAutofocus","ngModelChange"],[1,"form-text","text-muted"],["for","name"],["id","name","type","text","name","Name",1,"form-control",3,"ngModel","appAutofocus","ngModelChange"],["type","info",4,"ngIf"],["for","masterPassword"],[1,"d-flex"],[1,"w-100"],["id","masterPassword","name","MasterPassword","required","","appInputVerbatim","",1,"text-monospace","form-control","mb-1",3,"type","ngModel","ngModelChange","input"],[3,"score","showText"],["type","button",1,"ml-1","btn","btn-link",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-lg",3,"ngClass"],[1,"progress-bar","invisible"],["for","masterPasswordRetype"],["id","masterPasswordRetype","name","MasterPasswordRetype","required","","appInputVerbatim","",1,"text-monospace","form-control",3,"type","ngModel","ngModelChange"],["for","hint"],["id","hint","type","text","name","Hint",1,"form-control",3,"ngModel","ngModelChange"],["class","form-group",4,"ngIf"],[1,"d-flex","mb-2"],["type","submit",1,"btn","btn-primary","btn-block","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["routerLink","/",1,"btn","btn-outline-secondary","btn-block","ml-2","mt-0"],[1,"header"],[1,"container"],[1,"col-7"],["alt","Bitwarden","src","images/logo-horizontal-white.png",1,"logo","mb-2"],[1,"mt-5"],[4,"ngIf"],[1,"highlight"],["src","images/wired-logo.png","alt","Wired"],[1,"lead","text-center","mb-4"],["type","info","icon","fa-thumb-tack",3,"title"],["type","info"],[1,"mb-0"],[1,"form-check"],["type","checkbox","id","acceptPolicies","name","AcceptPolicies",1,"form-check-input",3,"ngModel","ngModelChange"],["for","acceptPolicies",1,"form-check-label","small","text-muted"],["href","https://bitwarden.com/terms/","target","_blank","rel","noopener"],["href","https://bitwarden.com/privacy/","target","_blank","rel","noopener"]],template:function(e,t){if(1&e&&(u.ɵɵelementStart(0,"div",0),u.ɵɵtext(1,"\n "),u.ɵɵtemplate(2,O,13,0,"header",1),u.ɵɵtext(3,"\n "),u.ɵɵelementStart(4,"form",2,3),u.ɵɵlistener("ngSubmit",(function(){return t.submit()})),u.ɵɵtext(6,"\n "),u.ɵɵelementStart(7,"div",4),u.ɵɵtext(8,"\n "),u.ɵɵtemplate(9,D,11,3,"div",5),u.ɵɵtext(10,"\n "),u.ɵɵelementStart(11,"div",6),u.ɵɵtext(12,"\n "),u.ɵɵelementStart(13,"div",7),u.ɵɵtext(14,"\n "),u.ɵɵelementStart(15,"div",6),u.ɵɵtext(16,"\n "),u.ɵɵtemplate(17,R,3,3,"p",8),u.ɵɵtext(18,"\n "),u.ɵɵelementStart(19,"div",9),u.ɵɵtext(20,"\n "),u.ɵɵelementStart(21,"div",10),u.ɵɵtext(22,"\n "),u.ɵɵtemplate(23,V,4,6,"app-callout",11),u.ɵɵtext(24,"\n "),u.ɵɵelementStart(25,"div",12),u.ɵɵtext(26,"\n "),u.ɵɵelementStart(27,"label",13),u.ɵɵtext(28),u.ɵɵpipe(29,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(30,"\n "),u.ɵɵelementStart(31,"input",14),u.ɵɵlistener("ngModelChange",(function(e){return t.email=e})),u.ɵɵelementEnd(),u.ɵɵtext(32,"\n "),u.ɵɵelementStart(33,"small",15),u.ɵɵtext(34),u.ɵɵpipe(35,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(36,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(37,"\n "),u.ɵɵelementStart(38,"div",12),u.ɵɵtext(39,"\n "),u.ɵɵelementStart(40,"label",16),u.ɵɵtext(41),u.ɵɵpipe(42,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(43,"\n "),u.ɵɵelementStart(44,"input",17),u.ɵɵlistener("ngModelChange",(function(e){return t.name=e})),u.ɵɵelementEnd(),u.ɵɵtext(45,"\n "),u.ɵɵelementStart(46,"small",15),u.ɵɵtext(47),u.ɵɵpipe(48,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(49,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(50,"\n "),u.ɵɵelementStart(51,"div",12),u.ɵɵtext(52,"\n "),u.ɵɵtemplate(53,G,18,9,"app-callout",18),u.ɵɵtext(54,"\n "),u.ɵɵelementStart(55,"label",19),u.ɵɵtext(56),u.ɵɵpipe(57,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(58,"\n "),u.ɵɵelementStart(59,"div",20),u.ɵɵtext(60,"\n "),u.ɵɵelementStart(61,"div",21),u.ɵɵtext(62,"\n "),u.ɵɵelementStart(63,"input",22),u.ɵɵlistener("ngModelChange",(function(e){return t.masterPassword=e}))("input",(function(){return t.updatePasswordStrength()})),u.ɵɵelementEnd(),u.ɵɵtext(64,"\n "),u.ɵɵelementStart(65,"app-password-strength",23),u.ɵɵtext(66,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(67,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(68,"\n "),u.ɵɵelementStart(69,"div"),u.ɵɵtext(70,"\n "),u.ɵɵelementStart(71,"button",24),u.ɵɵlistener("click",(function(){return t.togglePassword(!1)})),u.ɵɵpipe(72,"i18n"),u.ɵɵtext(73,"\n "),u.ɵɵelement(74,"i",25),u.ɵɵtext(75,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(76,"\n "),u.ɵɵelement(77,"div",26),u.ɵɵtext(78,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(79,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(80,"\n "),u.ɵɵelementStart(81,"small",15),u.ɵɵtext(82),u.ɵɵpipe(83,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(84,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(85,"\n "),u.ɵɵelementStart(86,"div",12),u.ɵɵtext(87,"\n "),u.ɵɵelementStart(88,"label",27),u.ɵɵtext(89),u.ɵɵpipe(90,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(91,"\n "),u.ɵɵelementStart(92,"div",20),u.ɵɵtext(93,"\n "),u.ɵɵelementStart(94,"input",28),u.ɵɵlistener("ngModelChange",(function(e){return t.confirmMasterPassword=e})),u.ɵɵelementEnd(),u.ɵɵtext(95,"\n "),u.ɵɵelementStart(96,"button",24),u.ɵɵlistener("click",(function(){return t.togglePassword(!0)})),u.ɵɵpipe(97,"i18n"),u.ɵɵtext(98,"\n "),u.ɵɵelement(99,"i",25),u.ɵɵtext(100,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(101,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(102,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(103,"\n "),u.ɵɵelementStart(104,"div",12),u.ɵɵtext(105,"\n "),u.ɵɵelementStart(106,"label",29),u.ɵɵtext(107),u.ɵɵpipe(108,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(109,"\n "),u.ɵɵelementStart(110,"input",30),u.ɵɵlistener("ngModelChange",(function(e){return t.hint=e})),u.ɵɵelementEnd(),u.ɵɵtext(111,"\n "),u.ɵɵelementStart(112,"small",15),u.ɵɵtext(113),u.ɵɵpipe(114,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(115,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(116,"\n "),u.ɵɵtemplate(117,K,21,10,"div",31),u.ɵɵtext(118,"\n "),u.ɵɵelement(119,"hr"),u.ɵɵtext(120,"\n "),u.ɵɵelementStart(121,"div",32),u.ɵɵtext(122,"\n "),u.ɵɵelementStart(123,"button",33),u.ɵɵtext(124,"\n "),u.ɵɵelementStart(125,"span"),u.ɵɵtext(126),u.ɵɵpipe(127,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(128,"\n "),u.ɵɵelement(129,"i",34),u.ɵɵpipe(130,"i18n"),u.ɵɵtext(131,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(132,"\n "),u.ɵɵelementStart(133,"a",35),u.ɵɵtext(134),u.ɵɵpipe(135,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(136,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(137,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(138,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(139,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(140,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(141,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(142,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(143,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(144,"\n"),u.ɵɵelementEnd(),u.ɵɵtext(145,"\n")),2&e){var n=u.ɵɵreference(5);u.ɵɵproperty("ngClass",u.ɵɵpureFunction1(66,q,t.layout)),u.ɵɵadvance(2),u.ɵɵproperty("ngIf","enterprise2"===t.layout),u.ɵɵadvance(2),u.ɵɵproperty("appApiAction",t.formPromise),u.ɵɵadvance(5),u.ɵɵproperty("ngIf",t.layout),u.ɵɵadvance(2),u.ɵɵproperty("ngClass",u.ɵɵpureFunction2(68,W,t.layout,!t.layout)),u.ɵɵadvance(4),u.ɵɵproperty("ngClass",u.ɵɵpureFunction2(71,W,!t.layout,t.layout)),u.ɵɵadvance(2),u.ɵɵproperty("ngIf",!t.layout),u.ɵɵadvance(6),u.ɵɵproperty("ngIf",t.showCreateOrgMessage),u.ɵɵadvance(5),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(29,38,"emailAddress")),u.ɵɵadvance(3),u.ɵɵproperty("ngModel",t.email)("appAutofocus",""===t.email),u.ɵɵadvance(3),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(35,40,"emailAddressDesc")),u.ɵɵadvance(7),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(42,42,"yourName")),u.ɵɵadvance(3),u.ɵɵproperty("ngModel",t.name)("appAutofocus",""!==t.email),u.ɵɵadvance(3),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(48,44,"yourNameDesc")),u.ɵɵadvance(6),u.ɵɵproperty("ngIf",t.enforcedPolicyOptions),u.ɵɵadvance(3),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(57,46,"masterPass")),u.ɵɵadvance(7),u.ɵɵpropertyInterpolate("type",t.showPassword?"text":"password"),u.ɵɵproperty("ngModel",t.masterPassword),u.ɵɵadvance(2),u.ɵɵproperty("score",t.masterPasswordScore)("showText",!0),u.ɵɵadvance(6),u.ɵɵpropertyInterpolate("appA11yTitle",u.ɵɵpipeBind1(72,48,"toggleVisibility")),u.ɵɵadvance(3),u.ɵɵproperty("ngClass",u.ɵɵpureFunction2(74,H,!t.showPassword,t.showPassword)),u.ɵɵadvance(8),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(83,50,"masterPassDesc")),u.ɵɵadvance(7),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(90,52,"reTypeMasterPass")),u.ɵɵadvance(5),u.ɵɵpropertyInterpolate("type",t.showPassword?"text":"password"),u.ɵɵproperty("ngModel",t.confirmMasterPassword),u.ɵɵadvance(2),u.ɵɵpropertyInterpolate("appA11yTitle",u.ɵɵpipeBind1(97,54,"toggleVisibility")),u.ɵɵadvance(3),u.ɵɵproperty("ngClass",u.ɵɵpureFunction2(77,H,!t.showPassword,t.showPassword)),u.ɵɵadvance(8),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(108,56,"masterPassHint")),u.ɵɵadvance(3),u.ɵɵproperty("ngModel",t.hint),u.ɵɵadvance(3),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(114,58,"masterPassHintDesc")),u.ɵɵadvance(4),u.ɵɵproperty("ngIf",t.showTerms),u.ɵɵadvance(6),u.ɵɵproperty("disabled",n.loading),u.ɵɵadvance(3),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(127,60,"submit")),u.ɵɵadvance(3),u.ɵɵpropertyInterpolate("title",u.ɵɵpipeBind1(130,62,"loading")),u.ɵɵadvance(5),u.ɵɵtextInterpolate1("\n ",u.ɵɵpipeBind1(135,64,"cancel"),"\n ")}},directives:[S.NgClass,S.NgIf,w.NgControlStatusGroup,w.NgForm,C.ApiActionDirective,w.DefaultValueAccessor,w.RequiredValidator,I.InputVerbatimDirective,w.NgControlStatus,w.NgModel,E.AutofocusDirective,P.PasswordStrengthComponent,k.A11yTitleDirective,m.RouterLinkWithHref,_.CalloutComponent,w.CheckboxControlValueAccessor],pipes:[A.I18nPipe],encapsulation:2}),t}(s.RegisterComponent);t.RegisterComponent=$},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});n(0),n(8),n(6),n(18),n(3),n(14),n(36),n(5),n(43),n(61),n(7);var o=n(844),a=n(0),s=n(6),l=n(3),c=n(18),p=n(14),u=n(7),d=n(36),m=n(5),h=n(43),f=n(8),v=n(61),y=n(13),g=n(16),x=n(4),b=n(24),S=n(45),w=n(250),C=n(17),I=n(10);function E(e,t){1&e&&(a.ɵɵelementStart(0,"div",8),a.ɵɵtext(1,"\n "),a.ɵɵelement(2,"i",9),a.ɵɵpipe(3,"i18n"),a.ɵɵtext(4),a.ɵɵpipe(5,"i18n"),a.ɵɵelementEnd()),2&e&&(a.ɵɵadvance(2),a.ɵɵpropertyInterpolate("title",a.ɵɵpipeBind1(3,2,"loading")),a.ɵɵadvance(2),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(5,4,"loading"),"\n "))}function P(e,t){if(1&e&&(a.ɵɵelementStart(0,"li"),a.ɵɵtext(1),a.ɵɵpipe(2,"i18n"),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext(3);a.ɵɵadvance(1),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind2(2,1,"policyInEffectMinComplexity",n.getPasswordScoreAlertDisplay()),"\n ")}}function k(e,t){if(1&e&&(a.ɵɵelementStart(0,"li"),a.ɵɵtext(1),a.ɵɵpipe(2,"i18n"),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext(3);a.ɵɵadvance(1),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind2(2,1,"policyInEffectMinLength",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.minLength.toString()),"\n ")}}function _(e,t){1&e&&(a.ɵɵelementStart(0,"li"),a.ɵɵtext(1),a.ɵɵpipe(2,"i18n"),a.ɵɵelementEnd()),2&e&&(a.ɵɵadvance(1),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(2,1,"policyInEffectUppercase"),""))}function A(e,t){1&e&&(a.ɵɵelementStart(0,"li"),a.ɵɵtext(1),a.ɵɵpipe(2,"i18n"),a.ɵɵelementEnd()),2&e&&(a.ɵɵadvance(1),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(2,1,"policyInEffectLowercase"),""))}function O(e,t){1&e&&(a.ɵɵelementStart(0,"li"),a.ɵɵtext(1),a.ɵɵpipe(2,"i18n"),a.ɵɵelementEnd()),2&e&&(a.ɵɵadvance(1),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(2,1,"policyInEffectNumbers"),""))}function T(e,t){1&e&&(a.ɵɵelementStart(0,"li"),a.ɵɵtext(1),a.ɵɵpipe(2,"i18n"),a.ɵɵelementEnd()),2&e&&(a.ɵɵadvance(1),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind2(2,1,"policyInEffectSpecial","!@#$%^&*"),""))}function M(e,t){if(1&e&&(a.ɵɵelementStart(0,"app-callout",11),a.ɵɵtext(1),a.ɵɵpipe(2,"i18n"),a.ɵɵelementStart(3,"ul",29),a.ɵɵtext(4,"\n "),a.ɵɵtemplate(5,P,3,4,"li",30),a.ɵɵtext(6,"\n "),a.ɵɵtemplate(7,k,3,4,"li",30),a.ɵɵtext(8,"\n "),a.ɵɵtemplate(9,_,3,3,"li",30),a.ɵɵtext(10,"\n "),a.ɵɵtemplate(11,A,3,3,"li",30),a.ɵɵtext(12,"\n "),a.ɵɵtemplate(13,O,3,3,"li",30),a.ɵɵtext(14,"\n "),a.ɵɵtemplate(15,T,3,4,"li",30),a.ɵɵtext(16,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(17,"\n "),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext(2);a.ɵɵadvance(1),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(2,7,"masterPasswordPolicyInEffect"),"\n "),a.ɵɵadvance(4),a.ɵɵproperty("ngIf",(null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.minComplexity)>0),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",(null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.minLength)>0),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireUpper),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireLower),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireNumbers),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireSpecial)}}var B=function(e,t){return{"fa-eye":e,"fa-eye-slash":t}};function D(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",10),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"app-callout",11),a.ɵɵtext(3),a.ɵɵpipe(4,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(5,"\n "),a.ɵɵelementStart(6,"div",12),a.ɵɵtext(7,"\n "),a.ɵɵtemplate(8,M,18,9,"app-callout",13),a.ɵɵtext(9,"\n "),a.ɵɵelementStart(10,"label",14),a.ɵɵtext(11),a.ɵɵpipe(12,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(13,"\n "),a.ɵɵelementStart(14,"div",15),a.ɵɵtext(15,"\n "),a.ɵɵelementStart(16,"div",16),a.ɵɵtext(17,"\n "),a.ɵɵelementStart(18,"input",17),a.ɵɵlistener("ngModelChange",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().masterPassword=e}))("input",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().updatePasswordStrength()})),a.ɵɵelementEnd(),a.ɵɵtext(19,"\n "),a.ɵɵelementStart(20,"app-password-strength",18),a.ɵɵtext(21,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(22,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(23,"\n "),a.ɵɵelementStart(24,"div"),a.ɵɵtext(25,"\n "),a.ɵɵelementStart(26,"button",19),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().togglePassword(!1)})),a.ɵɵpipe(27,"i18n"),a.ɵɵtext(28,"\n "),a.ɵɵelement(29,"i",20),a.ɵɵtext(30,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(31,"\n "),a.ɵɵelement(32,"div",21),a.ɵɵtext(33,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(34,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(35,"\n "),a.ɵɵelementStart(36,"small",22),a.ɵɵtext(37),a.ɵɵpipe(38,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(39,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(40,"\n "),a.ɵɵelementStart(41,"div",12),a.ɵɵtext(42,"\n "),a.ɵɵelementStart(43,"label",23),a.ɵɵtext(44),a.ɵɵpipe(45,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(46,"\n "),a.ɵɵelementStart(47,"div",15),a.ɵɵtext(48,"\n "),a.ɵɵelementStart(49,"input",24),a.ɵɵlistener("ngModelChange",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().masterPasswordRetype=e})),a.ɵɵelementEnd(),a.ɵɵtext(50,"\n "),a.ɵɵelementStart(51,"button",19),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().togglePassword(!0)})),a.ɵɵpipe(52,"i18n"),a.ɵɵtext(53,"\n "),a.ɵɵelement(54,"i",20),a.ɵɵtext(55,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(56,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(57,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(58,"\n "),a.ɵɵelementStart(59,"div",12),a.ɵɵtext(60,"\n "),a.ɵɵelementStart(61,"label",25),a.ɵɵtext(62),a.ɵɵpipe(63,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(64,"\n "),a.ɵɵelementStart(65,"input",26),a.ɵɵlistener("ngModelChange",(function(e){return a.ɵɵrestoreView(n),a.ɵɵnextContext().hint=e})),a.ɵɵelementEnd(),a.ɵɵtext(66,"\n "),a.ɵɵelementStart(67,"small",22),a.ɵɵtext(68),a.ɵɵpipe(69,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(70,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(71,"\n "),a.ɵɵelement(72,"hr"),a.ɵɵtext(73,"\n "),a.ɵɵelementStart(74,"div",15),a.ɵɵtext(75,"\n "),a.ɵɵelementStart(76,"button",27),a.ɵɵtext(77,"\n "),a.ɵɵelement(78,"i",9),a.ɵɵpipe(79,"i18n"),a.ɵɵtext(80,"\n "),a.ɵɵelementStart(81,"span"),a.ɵɵtext(82),a.ɵɵpipe(83,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(84,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(85,"\n "),a.ɵɵelementStart(86,"button",28),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext().logOut()})),a.ɵɵtext(87),a.ɵɵpipe(88,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(89,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(90,"\n "),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext(),i=a.ɵɵreference(1);a.ɵɵadvance(3),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(4,22,"ssoCompleteRegistration")),a.ɵɵadvance(5),a.ɵɵproperty("ngIf",r.enforcedPolicyOptions),a.ɵɵadvance(3),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(12,24,"masterPass")),a.ɵɵadvance(7),a.ɵɵpropertyInterpolate("type",r.showPassword?"text":"password"),a.ɵɵproperty("ngModel",r.masterPassword),a.ɵɵadvance(2),a.ɵɵproperty("score",r.masterPasswordScore)("showText",!0),a.ɵɵadvance(6),a.ɵɵpropertyInterpolate("appA11yTitle",a.ɵɵpipeBind1(27,26,"toggleVisibility")),a.ɵɵadvance(3),a.ɵɵproperty("ngClass",a.ɵɵpureFunction2(44,B,!r.showPassword,r.showPassword)),a.ɵɵadvance(8),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(38,28,"masterPassDesc")),a.ɵɵadvance(7),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(45,30,"reTypeMasterPass")),a.ɵɵadvance(5),a.ɵɵpropertyInterpolate("type",r.showPassword?"text":"password"),a.ɵɵproperty("ngModel",r.masterPasswordRetype),a.ɵɵadvance(2),a.ɵɵpropertyInterpolate("appA11yTitle",a.ɵɵpipeBind1(52,32,"toggleVisibility")),a.ɵɵadvance(3),a.ɵɵproperty("ngClass",a.ɵɵpureFunction2(47,B,!r.showPassword,r.showPassword)),a.ɵɵadvance(8),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(63,34,"masterPassHint")),a.ɵɵadvance(3),a.ɵɵproperty("ngModel",r.hint),a.ɵɵadvance(3),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(69,36,"masterPassHintDesc")),a.ɵɵadvance(8),a.ɵɵproperty("disabled",i.loading),a.ɵɵadvance(2),a.ɵɵpropertyInterpolate("title",a.ɵɵpipeBind1(79,38,"loading")),a.ɵɵadvance(4),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(83,40,"submit")),a.ɵɵadvance(5),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(88,42,"logOut"),"\n ")}}var R=function(e){function t(t,n,r,i,o,a,s,l,c,p,u){return e.call(this,n,r,i,o,a,s,l,c,t,p,u)||this}return i(t,e),t.ɵfac=function(e){return new(e||t)(a.ɵɵdirectiveInject(s.ApiService),a.ɵɵdirectiveInject(l.I18nService),a.ɵɵdirectiveInject(c.CryptoService),a.ɵɵdirectiveInject(p.MessagingService),a.ɵɵdirectiveInject(u.UserService),a.ɵɵdirectiveInject(d.PasswordGenerationService),a.ɵɵdirectiveInject(m.PlatformUtilsService),a.ɵɵdirectiveInject(h.PolicyService),a.ɵɵdirectiveInject(f.Router),a.ɵɵdirectiveInject(v.SyncService),a.ɵɵdirectiveInject(f.ActivatedRoute))},t.ɵcmp=a.ɵɵdefineComponent({type:t,selectors:[["app-set-password"]],features:[a.ɵɵInheritDefinitionFeature],decls:21,vars:6,consts:[["ngNativeValidate","","autocomplete","off",3,"appApiAction","ngSubmit"],["form",""],[1,"row","justify-content-md-center","mt-5"],[1,"col-5"],[1,"lead","text-center","mb-4"],[1,"card","d-block"],["class","card-body text-center",4,"ngIf"],["class","card-body",4,"ngIf"],[1,"card-body","text-center"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],[1,"card-body"],["type","info"],[1,"form-group"],["type","info",4,"ngIf"],["for","masterPassword"],[1,"d-flex"],[1,"w-100"],["id","masterPassword","name","MasterPasswordHash","required","","appInputVerbatim","",1,"text-monospace","form-control","mb-1",3,"type","ngModel","ngModelChange","input"],[3,"score","showText"],["type","button",1,"ml-1","btn","btn-link",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-lg",3,"ngClass"],[1,"progress-bar","invisible"],[1,"form-text","text-muted"],["for","masterPasswordRetype"],["id","masterPasswordRetype","name","MasterPasswordRetype","required","","appInputVerbatim","",1,"text-monospace","form-control",3,"type","ngModel","ngModelChange"],["for","hint"],["id","hint","type","text","name","Hint",1,"form-control",3,"ngModel","ngModelChange"],["type","submit",1,"btn","btn-primary","btn-block","btn-submit",3,"disabled"],["type","button",1,"btn","btn-outline-secondary","btn-block","ml-2","mt-0",3,"click"],[1,"mb-0"],[4,"ngIf"]],template:function(e,t){1&e&&(a.ɵɵelementStart(0,"form",0,1),a.ɵɵlistener("ngSubmit",(function(){return t.submit()})),a.ɵɵtext(2,"\n "),a.ɵɵelementStart(3,"div",2),a.ɵɵtext(4,"\n "),a.ɵɵelementStart(5,"div",3),a.ɵɵtext(6,"\n "),a.ɵɵelementStart(7,"p",4),a.ɵɵtext(8),a.ɵɵpipe(9,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(10,"\n "),a.ɵɵelementStart(11,"div",5),a.ɵɵtext(12,"\n "),a.ɵɵtemplate(13,E,6,6,"div",6),a.ɵɵtext(14,"\n "),a.ɵɵtemplate(15,D,91,50,"div",7),a.ɵɵtext(16,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(17,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(18,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(19,"\n"),a.ɵɵelementEnd(),a.ɵɵtext(20,"\n")),2&e&&(a.ɵɵproperty("appApiAction",t.formPromise),a.ɵɵadvance(8),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(9,4,"setMasterPassword")),a.ɵɵadvance(5),a.ɵɵproperty("ngIf",t.syncLoading),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",!t.syncLoading))},directives:[y.NgControlStatusGroup,y.NgForm,g.ApiActionDirective,x.NgIf,b.CalloutComponent,y.DefaultValueAccessor,y.RequiredValidator,S.InputVerbatimDirective,y.NgControlStatus,y.NgModel,w.PasswordStrengthComponent,C.A11yTitleDirective,x.NgClass],pipes:[I.I18nPipe],encapsulation:2}),t}(o.SetPasswordComponent);t.SetPasswordComponent=R},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]1?t[1]:null},e.prototype.checkState=function(e,t){if(null==e)return!1;if(null==t)return!1;var n=e.split("_identifier="),r=t.split("_identifier=");return n[0]===r[0]},e.ɵfac=function(t){return new(t||e)(s.ɵɵdirectiveInject(l.AuthService),s.ɵɵdirectiveInject(c.Router),s.ɵɵdirectiveInject(p.I18nService),s.ɵɵdirectiveInject(c.ActivatedRoute),s.ɵɵdirectiveInject(u.StorageService),s.ɵɵdirectiveInject(d.StateService),s.ɵɵdirectiveInject(m.PlatformUtilsService),s.ɵɵdirectiveInject(h.ApiService),s.ɵɵdirectiveInject(f.CryptoFunctionService),s.ɵɵdirectiveInject(v.PasswordGenerationService))},e.ɵdir=s.ɵɵdefineDirective({type:e}),e}();t.SsoComponent=y},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]this.pageSize&&(t=this.pagedCollectionsCount),this.collections.length>e&&(this.pagedCollections=this.pagedCollections.concat(this.collections.slice(e,e+t))),this.pagedCollectionsCount=this.pagedCollections.length,this.didScroll=this.pagedCollections.length>this.pageSize}},e.prototype.edit=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(l.ModalComponent);this.modal=this.addEditModalRef.createComponent(n).instance;var r=this.modal.show(c.CollectionAddEditComponent,this.addEditModalRef);r.organizationId=this.organizationId,r.collectionId=null!=e?e.id:null,r.onSavedCollection.subscribe((function(){t.modal.close(),t.load()})),r.onDeletedCollection.subscribe((function(){t.modal.close(),t.removeCollection(e)})),this.modal.onClosed.subscribe((function(){t.modal=null}))},e.prototype.add=function(){this.edit(null)},e.prototype.delete=function(e){return r(this,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return[4,this.platformUtilsService.showDialog(this.i18nService.t("deleteCollectionConfirmation"),e.name,this.i18nService.t("yes"),this.i18nService.t("no"),"warning")];case 1:if(!t.sent())return[2,!1];t.label=2;case 2:return t.trys.push([2,4,,5]),[4,this.apiService.deleteCollection(this.organizationId,e.id)];case 3:return t.sent(),this.toasterService.popAsync("success",null,this.i18nService.t("deletedCollectionId",e.name)),this.removeCollection(e),[3,5];case 4:return t.sent(),[3,5];case 5:return[2]}}))}))},e.prototype.users=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(l.ModalComponent);this.modal=this.usersModalRef.createComponent(n).instance;var r=this.modal.show(p.EntityUsersComponent,this.usersModalRef);r.organizationId=this.organizationId,r.entity="collection",r.entityId=e.id,r.entityName=e.name,r.onEditedUsers.subscribe((function(){t.load(),t.modal.close()})),this.modal.onClosed.subscribe((function(){t.modal=null}))},e.prototype.resetPaging=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){return this.pagedCollections=[],this.loadMore(),[2]}))}))},e.prototype.isSearching=function(){return this.searchService.isSearchable(this.searchText)},e.prototype.isPaging=function(){var e=this.isSearching();return e&&this.didScroll&&this.resetPaging(),!e&&this.collections&&this.collections.length>this.pageSize},e.prototype.removeCollection=function(e){var t=this.collections.indexOf(e);t>-1&&(this.collections.splice(t,1),this.resetPaging())},e.ɵfac=function(t){return new(t||e)(u.ɵɵdirectiveInject(d.ApiService),u.ɵɵdirectiveInject(m.ActivatedRoute),u.ɵɵdirectiveInject(h.CollectionService),u.ɵɵdirectiveInject(u.ComponentFactoryResolver),u.ɵɵdirectiveInject(f.ToasterService),u.ɵɵdirectiveInject(v.I18nService),u.ɵɵdirectiveInject(y.PlatformUtilsService),u.ɵɵdirectiveInject(g.UserService),u.ɵɵdirectiveInject(x.SearchService))},e.ɵcmp=u.ɵɵdefineComponent({type:e,selectors:[["app-org-manage-collections"]],viewQuery:function(e,t){var n;(1&e&&(u.ɵɵstaticViewQuery(k,!0,o.ViewContainerRef),u.ɵɵstaticViewQuery(_,!0,o.ViewContainerRef)),2&e)&&(u.ɵɵqueryRefresh(n=u.ɵɵloadQuery())&&(t.addEditModalRef=n.first),u.ɵɵqueryRefresh(n=u.ɵɵloadQuery())&&(t.usersModalRef=n.first))},decls:37,vars:20,consts:[[1,"page-header","d-flex"],[1,"ml-auto","d-flex"],["for","search",1,"sr-only"],["type","search","id","search",1,"form-control","form-control-sm",3,"placeholder","ngModel","ngModelChange"],["type","button",1,"btn","btn-sm","btn-outline-primary","ml-3",3,"click"],["aria-hidden","true",1,"fa","fa-plus","fa-fw"],[4,"ngIf"],["addEdit",""],["usersTemplate",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],["class","table table-hover table-list","infiniteScroll","",3,"infiniteScrollDistance","infiniteScrollDisabled","scrolled",4,"ngIf"],["infiniteScroll","",1,"table","table-hover","table-list",3,"infiniteScrollDistance","infiniteScrollDisabled","scrolled"],[4,"ngFor","ngForOf"],["href","#","appStopClick","",3,"click"],[1,"table-list-options"],["appListDropdown","",1,"dropdown"],["type","button","data-toggle","dropdown","aria-haspopup","true","aria-expanded","false",1,"btn","btn-outline-secondary","dropdown-toggle",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-cog","fa-lg"],[1,"dropdown-menu","dropdown-menu-right"],["href","#","appStopClick","",1,"dropdown-item",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-users"],["href","#","appStopClick","",1,"dropdown-item","text-danger",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-trash-o"]],template:function(e,t){1&e&&(u.ɵɵelementStart(0,"div",0),u.ɵɵtext(1,"\n "),u.ɵɵelementStart(2,"h1"),u.ɵɵtext(3),u.ɵɵpipe(4,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(5,"\n "),u.ɵɵelementStart(6,"div",1),u.ɵɵtext(7,"\n "),u.ɵɵelementStart(8,"div"),u.ɵɵtext(9,"\n "),u.ɵɵelementStart(10,"label",2),u.ɵɵtext(11),u.ɵɵpipe(12,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(13,"\n "),u.ɵɵelementStart(14,"input",3),u.ɵɵlistener("ngModelChange",(function(e){return t.searchText=e})),u.ɵɵpipe(15,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(16,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(17,"\n "),u.ɵɵelementStart(18,"button",4),u.ɵɵlistener("click",(function(){return t.add()})),u.ɵɵtext(19,"\n "),u.ɵɵelement(20,"i",5),u.ɵɵtext(21),u.ɵɵpipe(22,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(23,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(24,"\n"),u.ɵɵelementEnd(),u.ɵɵtext(25,"\n"),u.ɵɵtemplate(26,A,9,6,"ng-container",6),u.ɵɵtext(27,"\n"),u.ɵɵtemplate(28,B,6,2,"ng-container",6),u.ɵɵpipe(29,"search"),u.ɵɵtext(30,"\n"),u.ɵɵtemplate(31,D,0,0,"ng-template",null,7,u.ɵɵtemplateRefExtractor),u.ɵɵtext(33,"\n"),u.ɵɵtemplate(34,R,0,0,"ng-template",null,8,u.ɵɵtemplateRefExtractor),u.ɵɵtext(36,"\n")),2&e&&(u.ɵɵadvance(3),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(4,7,"collections")),u.ɵɵadvance(8),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(12,9,"search")),u.ɵɵadvance(3),u.ɵɵpropertyInterpolate("placeholder",u.ɵɵpipeBind1(15,11,"search")),u.ɵɵproperty("ngModel",t.searchText),u.ɵɵadvance(7),u.ɵɵtextInterpolate1("\n ",u.ɵɵpipeBind1(22,13,"newCollection"),"\n "),u.ɵɵadvance(5),u.ɵɵproperty("ngIf",t.loading),u.ɵɵadvance(2),u.ɵɵproperty("ngIf",!t.loading&&(t.isPaging()?t.pagedCollections:u.ɵɵpipeBind4(29,15,t.collections,t.searchText,"name","id"))))},directives:[b.DefaultValueAccessor,b.NgControlStatus,b.NgModel,S.NgIf,w.InfiniteScrollDirective,S.NgForOf,C.StopClickDirective,I.A11yTitleDirective],pipes:[E.I18nPipe,P.SearchPipe],encapsulation:2}),e}();t.CollectionsComponent=V},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&r.groups.forEach((function(e){var t=s.groups.filter((function(t){return!t.accessAll&&t.id===e.id}));null!=t&&t.length>0&&(t[0].checked=!0,t[0].readOnly=e.readOnly,t[0].hidePasswords=e.hidePasswords)})),[3,9];case 8:return i.sent(),[3,9];case 9:return[3,11];case 10:this.title=this.i18nService.t("addCollection"),i.label=11;case 11:return this.groups.forEach((function(e){e.accessAll&&(e.checked=!0)})),this.loading=!1,[2]}}))}))},e.prototype.check=function(e,t){e.accessAll||(e.checked=null==t?!e.checked:t,e.checked||(e.readOnly=!1,e.hidePasswords=!1))},e.prototype.selectAll=function(e){var t=this;this.groups.forEach((function(n){return t.check(n,e)}))},e.prototype.submit=function(){return r(this,void 0,void 0,(function(){var e,t;return i(this,(function(n){switch(n.label){case 0:if(null==this.orgKey)throw new Error("No encryption key for this organization.");return e=new s.CollectionRequest,t=e,[4,this.cryptoService.encrypt(this.name,this.orgKey)];case 1:t.name=n.sent().encryptedString,e.externalId=this.externalId,e.groups=this.groups.filter((function(e){return e.checked&&!e.accessAll})).map((function(e){return new l.SelectionReadOnlyRequest(e.id,!!e.readOnly,!!e.hidePasswords)})),n.label=2;case 2:return n.trys.push([2,4,,5]),this.editMode?this.formPromise=this.apiService.putCollection(this.organizationId,this.collectionId,e):this.formPromise=this.apiService.postCollection(this.organizationId,e),[4,this.formPromise];case 3:return n.sent(),this.toasterService.popAsync("success",null,this.i18nService.t(this.editMode?"editedCollectionId":"createdCollectionId",this.name)),this.onSavedCollection.emit(),[3,5];case 4:return n.sent(),[3,5];case 5:return[2]}}))}))},e.prototype.delete=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.editMode?[4,this.platformUtilsService.showDialog(this.i18nService.t("deleteCollectionConfirmation"),this.name,this.i18nService.t("yes"),this.i18nService.t("no"),"warning")]:[2];case 1:if(!e.sent())return[2,!1];e.label=2;case 2:return e.trys.push([2,4,,5]),this.deletePromise=this.apiService.deleteCollection(this.organizationId,this.collectionId),[4,this.deletePromise];case 3:return e.sent(),this.toasterService.popAsync("success",null,this.i18nService.t("deletedCollectionId",this.name)),this.onDeletedCollection.emit(),[3,5];case 4:return e.sent(),[3,5];case 5:return[2]}}))}))},e.ɵfac=function(t){return new(t||e)(p.ɵɵdirectiveInject(u.ApiService),p.ɵɵdirectiveInject(d.I18nService),p.ɵɵdirectiveInject(m.ToasterService),p.ɵɵdirectiveInject(h.PlatformUtilsService),p.ɵɵdirectiveInject(f.CryptoService),p.ɵɵdirectiveInject(v.UserService))},e.ɵcmp=p.ɵɵdefineComponent({type:e,selectors:[["app-collection-add-edit"]],inputs:{collectionId:"collectionId",organizationId:"organizationId"},outputs:{onSavedCollection:"onSavedCollection",onDeletedCollection:"onDeletedCollection"},decls:49,vars:18,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","collectionAddEditTitle",1,"modal","fade"],["role","document",1,"modal-dialog"],["ngNativeValidate","",1,"modal-content",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-header"],["id","collectionAddEditTitle",1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],["class","modal-body",4,"ngIf"],[1,"modal-footer"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],[1,"ml-auto"],["type","button","class","btn btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click",4,"ngIf"],[1,"modal-body"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[1,"form-group"],["for","name"],["id","name","type","text","name","Name","required","","appAutofocus","",1,"form-control",3,"ngModel","ngModelChange"],["for","externalId"],["id","externalId","type","text","name","ExternalId",1,"form-control",3,"ngModel","ngModelChange"],[1,"form-text","text-muted"],[4,"ngIf"],[1,"mt-4","d-flex","mb-0"],["class","ml-auto",4,"ngIf"],["class","table table-hover table-list mb-0",4,"ngIf"],["type","button",1,"btn","btn-link","btn-sm","py-0",3,"click"],[1,"table","table-hover","table-list","mb-0"],["width","100",1,"text-center"],[4,"ngFor","ngForOf"],[1,"table-list-checkbox",3,"click"],["type","checkbox","appStopProp","",3,"ngModel","name","disabled","ngModelChange"],[3,"click"],[1,"text-center"],["type","checkbox",3,"ngModel","name","disabled","ngModelChange"],["aria-hidden","true",1,"fa","fa-th","text-muted","fa-fw",3,"title"],["type","button",1,"btn","btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click"],["deleteBtn",""],["aria-hidden","true",1,"fa","fa-trash-o","fa-lg","fa-fw",3,"hidden"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","fa-lg","fa-fw",3,"hidden","title"]],template:function(e,t){if(1&e&&(p.ɵɵelementStart(0,"div",0),p.ɵɵtext(1,"\n "),p.ɵɵelementStart(2,"div",1),p.ɵɵtext(3,"\n "),p.ɵɵelementStart(4,"form",2,3),p.ɵɵlistener("ngSubmit",(function(){return t.submit()})),p.ɵɵtext(6,"\n "),p.ɵɵelementStart(7,"div",4),p.ɵɵtext(8,"\n "),p.ɵɵelementStart(9,"h2",5),p.ɵɵtext(10),p.ɵɵelementEnd(),p.ɵɵtext(11,"\n "),p.ɵɵelementStart(12,"button",6),p.ɵɵpipe(13,"i18n"),p.ɵɵtext(14,"\n "),p.ɵɵelementStart(15,"span",7),p.ɵɵtext(16,"×"),p.ɵɵelementEnd(),p.ɵɵtext(17,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(18,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(19,"\n "),p.ɵɵtemplate(20,I,9,6,"div",8),p.ɵɵtext(21,"\n "),p.ɵɵtemplate(22,T,26,12,"div",8),p.ɵɵtext(23,"\n "),p.ɵɵelementStart(24,"div",9),p.ɵɵtext(25,"\n "),p.ɵɵelementStart(26,"button",10),p.ɵɵtext(27,"\n "),p.ɵɵelement(28,"i",11),p.ɵɵpipe(29,"i18n"),p.ɵɵtext(30,"\n "),p.ɵɵelementStart(31,"span"),p.ɵɵtext(32),p.ɵɵpipe(33,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(34,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(35,"\n "),p.ɵɵelementStart(36,"button",12),p.ɵɵtext(37),p.ɵɵpipe(38,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(39,"\n "),p.ɵɵelementStart(40,"div",13),p.ɵɵtext(41,"\n "),p.ɵɵtemplate(42,M,9,10,"button",14),p.ɵɵtext(43,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(44,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(45,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(46,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(47,"\n"),p.ɵɵelementEnd(),p.ɵɵtext(48,"\n")),2&e){var n=p.ɵɵreference(5);p.ɵɵadvance(4),p.ɵɵproperty("appApiAction",t.formPromise),p.ɵɵadvance(6),p.ɵɵtextInterpolate(t.title),p.ɵɵadvance(2),p.ɵɵpropertyInterpolate("appA11yTitle",p.ɵɵpipeBind1(13,10,"close")),p.ɵɵadvance(8),p.ɵɵproperty("ngIf",t.loading),p.ɵɵadvance(2),p.ɵɵproperty("ngIf",!t.loading),p.ɵɵadvance(4),p.ɵɵproperty("disabled",n.loading),p.ɵɵadvance(2),p.ɵɵpropertyInterpolate("title",p.ɵɵpipeBind1(29,12,"loading")),p.ɵɵadvance(4),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(33,14,"save")),p.ɵɵadvance(5),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(38,16,"cancel")),p.ɵɵadvance(5),p.ɵɵproperty("ngIf",t.editMode)}},directives:[y.NgControlStatusGroup,y.NgForm,g.ApiActionDirective,x.A11yTitleDirective,b.NgIf,y.DefaultValueAccessor,y.RequiredValidator,S.AutofocusDirective,y.NgControlStatus,y.NgModel,b.NgForOf,y.CheckboxControlValueAccessor,w.StopPropDirective],pipes:[C.I18nPipe],encapsulation:2}),e}();t.CollectionAddEditComponent=B},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){this.groups=[],null!=e&&(this.name=e.name?e.name.encryptedString:null,this.externalId=e.externalId)};t.CollectionRequest=r},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0?this.events=this.events.concat(o):this.events=o,this.loading=!1,this.morePromise=null,this.refreshPromise=null,[2]}}))}))},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.ApiService),o.ɵɵdirectiveInject(s.ActivatedRoute),o.ɵɵdirectiveInject(l.EventService),o.ɵɵdirectiveInject(c.I18nService),o.ɵɵdirectiveInject(p.ToasterService),o.ɵɵdirectiveInject(u.UserService),o.ɵɵdirectiveInject(s.Router))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["app-org-events"]],decls:41,vars:27,consts:[[1,"page-header","d-flex"],[1,"ml-auto","d-flex"],[1,"form-inline"],["for","start",1,"sr-only"],["type","datetime-local","id","start","placeholder","YYYY-MM-DDTHH:MM",1,"form-control","form-control-sm",3,"placeholder","ngModel","ngModelChange"],[1,"mx-2"],["for","end",1,"sr-only"],["type","datetime-local","id","end","placeholder","YYYY-MM-DDTHH:MM",1,"form-control","form-control-sm",3,"placeholder","ngModel","ngModelChange"],["type","button",1,"btn","btn-sm","btn-outline-primary","ml-3",3,"appApiAction","disabled","click"],["refreshBtn",""],["aria-hidden","true",1,"fa","fa-refresh","fa-fw",3,"ngClass"],[4,"ngIf"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],["class","table table-hover",4,"ngIf"],["type","button","class","btn btn-block btn-link btn-submit",3,"appApiAction","disabled","click",4,"ngIf"],[1,"table","table-hover"],["width","210",1,"border-top-0"],["width","40",1,"border-top-0"],["width","150",1,"border-top-0"],[1,"border-top-0"],[4,"ngFor","ngForOf"],["aria-hidden","true",3,"title"],[3,"title"],[3,"innerHTML"],["type","button",1,"btn","btn-block","btn-link","btn-submit",3,"appApiAction","disabled","click"],["moreBtn",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"]],template:function(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"h1"),o.ɵɵtext(3),o.ɵɵpipe(4,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(5,"\n "),o.ɵɵelementStart(6,"div",1),o.ɵɵtext(7,"\n "),o.ɵɵelementStart(8,"div",2),o.ɵɵtext(9,"\n "),o.ɵɵelementStart(10,"label",3),o.ɵɵtext(11),o.ɵɵpipe(12,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(13,"\n "),o.ɵɵelementStart(14,"input",4),o.ɵɵlistener("ngModelChange",(function(e){return t.start=e})),o.ɵɵpipe(15,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(16,"\n "),o.ɵɵelementStart(17,"span",5),o.ɵɵtext(18,"-"),o.ɵɵelementEnd(),o.ɵɵtext(19,"\n "),o.ɵɵelementStart(20,"label",6),o.ɵɵtext(21),o.ɵɵpipe(22,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(23,"\n "),o.ɵɵelementStart(24,"input",7),o.ɵɵlistener("ngModelChange",(function(e){return t.end=e})),o.ɵɵpipe(25,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(26,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(27,"\n "),o.ɵɵelementStart(28,"button",8,9),o.ɵɵlistener("click",(function(){return t.loadEvents(!0)})),o.ɵɵtext(30,"\n "),o.ɵɵelement(31,"i",10),o.ɵɵtext(32),o.ɵɵpipe(33,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(34,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(35,"\n"),o.ɵɵelementEnd(),o.ɵɵtext(36,"\n"),o.ɵɵtemplate(37,v,9,6,"ng-container",11),o.ɵɵtext(38,"\n"),o.ɵɵtemplate(39,S,8,3,"ng-container",11),o.ɵɵtext(40,"\n")),2&e){var n=o.ɵɵreference(29);o.ɵɵadvance(3),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(4,13,"eventLogs")),o.ɵɵadvance(8),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(12,15,"startDate")),o.ɵɵadvance(3),o.ɵɵpropertyInterpolate("placeholder",o.ɵɵpipeBind1(15,17,"startDate")),o.ɵɵproperty("ngModel",t.start),o.ɵɵadvance(7),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(22,19,"endDate")),o.ɵɵadvance(3),o.ɵɵpropertyInterpolate("placeholder",o.ɵɵpipeBind1(25,21,"endDate")),o.ɵɵproperty("ngModel",t.end),o.ɵɵadvance(4),o.ɵɵproperty("appApiAction",t.refreshPromise)("disabled",t.loaded&&n.loading),o.ɵɵadvance(3),o.ɵɵproperty("ngClass",o.ɵɵpureFunction1(25,w,t.loaded&&n.loading)),o.ɵɵadvance(1),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(33,23,"refresh"),"\n "),o.ɵɵadvance(5),o.ɵɵproperty("ngIf",!t.loaded),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",t.loaded)}},directives:[d.DefaultValueAccessor,d.NgControlStatus,d.NgModel,m.ApiActionDirective,h.NgClass,h.NgIf,h.NgForOf],pipes:[f.I18nPipe,h.DatePipe],encapsulation:2}),e}();t.EventsComponent=C},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0?e.data:[]).sort(a.Utils.getSortFunction(this.i18nService,"name")),this.groups=t,this.resetPaging(),this.loading=!1,[2]}}))}))},e.prototype.loadMore=function(){if(this.groups&&!(this.groups.length<=this.pageSize)){var e=this.pagedGroups.length,t=this.pageSize;0===e&&this.pagedGroupsCount>this.pageSize&&(t=this.pagedGroupsCount),this.groups.length>e&&(this.pagedGroups=this.pagedGroups.concat(this.groups.slice(e,e+t))),this.pagedGroupsCount=this.pagedGroups.length,this.didScroll=this.pagedGroups.length>this.pageSize}},e.prototype.edit=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(s.ModalComponent);this.modal=this.addEditModalRef.createComponent(n).instance;var r=this.modal.show(c.GroupAddEditComponent,this.addEditModalRef);r.organizationId=this.organizationId,r.groupId=null!=e?e.id:null,r.onSavedGroup.subscribe((function(){t.modal.close(),t.load()})),r.onDeletedGroup.subscribe((function(){t.modal.close(),t.removeGroup(e)})),this.modal.onClosed.subscribe((function(){t.modal=null}))},e.prototype.add=function(){this.edit(null)},e.prototype.delete=function(e){return r(this,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return[4,this.platformUtilsService.showDialog(this.i18nService.t("deleteGroupConfirmation"),e.name,this.i18nService.t("yes"),this.i18nService.t("no"),"warning")];case 1:if(!t.sent())return[2,!1];t.label=2;case 2:return t.trys.push([2,4,,5]),[4,this.apiService.deleteGroup(this.organizationId,e.id)];case 3:return t.sent(),this.toasterService.popAsync("success",null,this.i18nService.t("deletedGroupId",e.name)),this.removeGroup(e),[3,5];case 4:return t.sent(),[3,5];case 5:return[2]}}))}))},e.prototype.users=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(s.ModalComponent);this.modal=this.usersModalRef.createComponent(n).instance;var r=this.modal.show(l.EntityUsersComponent,this.usersModalRef);r.organizationId=this.organizationId,r.entity="group",r.entityId=e.id,r.entityName=e.name,r.onEditedUsers.subscribe((function(){t.modal.close()})),this.modal.onClosed.subscribe((function(){t.modal=null}))},e.prototype.resetPaging=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){return this.pagedGroups=[],this.loadMore(),[2]}))}))},e.prototype.isSearching=function(){return this.searchService.isSearchable(this.searchText)},e.prototype.isPaging=function(){var e=this.isSearching();return e&&this.didScroll&&this.resetPaging(),!e&&this.groups&&this.groups.length>this.pageSize},e.prototype.removeGroup=function(e){var t=this.groups.indexOf(e);t>-1&&(this.groups.splice(t,1),this.resetPaging())},e.ɵfac=function(t){return new(t||e)(p.ɵɵdirectiveInject(u.ApiService),p.ɵɵdirectiveInject(d.ActivatedRoute),p.ɵɵdirectiveInject(m.I18nService),p.ɵɵdirectiveInject(p.ComponentFactoryResolver),p.ɵɵdirectiveInject(h.ToasterService),p.ɵɵdirectiveInject(f.PlatformUtilsService),p.ɵɵdirectiveInject(v.UserService),p.ɵɵdirectiveInject(d.Router),p.ɵɵdirectiveInject(y.SearchService))},e.ɵcmp=p.ɵɵdefineComponent({type:e,selectors:[["app-org-groups"]],viewQuery:function(e,t){var n;(1&e&&(p.ɵɵstaticViewQuery(E,!0,o.ViewContainerRef),p.ɵɵstaticViewQuery(P,!0,o.ViewContainerRef)),2&e)&&(p.ɵɵqueryRefresh(n=p.ɵɵloadQuery())&&(t.addEditModalRef=n.first),p.ɵɵqueryRefresh(n=p.ɵɵloadQuery())&&(t.usersModalRef=n.first))},decls:37,vars:20,consts:[[1,"page-header","d-flex"],[1,"ml-auto","d-flex"],["for","search",1,"sr-only"],["type","search","id","search",1,"form-control","form-control-sm",3,"placeholder","ngModel","ngModelChange"],["type","button",1,"btn","btn-sm","btn-outline-primary","ml-3",3,"click"],["aria-hidden","true",1,"fa","fa-plus","fa-fw"],[4,"ngIf"],["addEdit",""],["usersTemplate",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],["class","table table-hover table-list","infiniteScroll","",3,"infiniteScrollDistance","infiniteScrollDisabled","scrolled",4,"ngIf"],["infiniteScroll","",1,"table","table-hover","table-list",3,"infiniteScrollDistance","infiniteScrollDisabled","scrolled"],[4,"ngFor","ngForOf"],["href","#","appStopClick","",3,"click"],[1,"table-list-options"],["appListDropdown","",1,"dropdown"],["type","button","data-toggle","dropdown","aria-haspopup","true","aria-expanded","false",1,"btn","btn-outline-secondary","dropdown-toggle",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-cog","fa-lg"],[1,"dropdown-menu","dropdown-menu-right"],["href","#","appStopClick","",1,"dropdown-item",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-users"],["href","#","appStopClick","",1,"dropdown-item","text-danger",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-trash-o"]],template:function(e,t){1&e&&(p.ɵɵelementStart(0,"div",0),p.ɵɵtext(1,"\n "),p.ɵɵelementStart(2,"h1"),p.ɵɵtext(3),p.ɵɵpipe(4,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(5,"\n "),p.ɵɵelementStart(6,"div",1),p.ɵɵtext(7,"\n "),p.ɵɵelementStart(8,"div"),p.ɵɵtext(9,"\n "),p.ɵɵelementStart(10,"label",2),p.ɵɵtext(11),p.ɵɵpipe(12,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(13,"\n "),p.ɵɵelementStart(14,"input",3),p.ɵɵlistener("ngModelChange",(function(e){return t.searchText=e})),p.ɵɵpipe(15,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(16,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(17,"\n "),p.ɵɵelementStart(18,"button",4),p.ɵɵlistener("click",(function(){return t.add()})),p.ɵɵtext(19,"\n "),p.ɵɵelement(20,"i",5),p.ɵɵtext(21),p.ɵɵpipe(22,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(23,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(24,"\n"),p.ɵɵelementEnd(),p.ɵɵtext(25,"\n"),p.ɵɵtemplate(26,k,9,6,"ng-container",6),p.ɵɵtext(27,"\n"),p.ɵɵtemplate(28,T,6,2,"ng-container",6),p.ɵɵpipe(29,"search"),p.ɵɵtext(30,"\n"),p.ɵɵtemplate(31,M,0,0,"ng-template",null,7,p.ɵɵtemplateRefExtractor),p.ɵɵtext(33,"\n"),p.ɵɵtemplate(34,B,0,0,"ng-template",null,8,p.ɵɵtemplateRefExtractor),p.ɵɵtext(36,"\n")),2&e&&(p.ɵɵadvance(3),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(4,7,"groups")),p.ɵɵadvance(8),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(12,9,"search")),p.ɵɵadvance(3),p.ɵɵpropertyInterpolate("placeholder",p.ɵɵpipeBind1(15,11,"search")),p.ɵɵproperty("ngModel",t.searchText),p.ɵɵadvance(7),p.ɵɵtextInterpolate1("\n ",p.ɵɵpipeBind1(22,13,"newGroup"),"\n "),p.ɵɵadvance(5),p.ɵɵproperty("ngIf",t.loading),p.ɵɵadvance(2),p.ɵɵproperty("ngIf",!t.loading&&(t.isPaging()?t.pagedGroups:p.ɵɵpipeBind4(29,15,t.groups,t.searchText,"name","id"))))},directives:[g.DefaultValueAccessor,g.NgControlStatus,g.NgModel,x.NgIf,b.InfiniteScrollDirective,x.NgForOf,S.StopClickDirective,w.A11yTitleDirective],pipes:[C.I18nPipe,I.SearchPipe],encapsulation:2}),e}();t.GroupsComponent=D},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&(n[0].checked=!0,n[0].readOnly=e.readOnly,n[0].hidePasswords=e.hidePasswords)})),[3,5];case 4:return n.sent(),[3,5];case 5:return[3,7];case 6:this.title=this.i18nService.t("addGroup"),n.label=7;case 7:return this.loading=!1,[2]}}))}))},e.prototype.loadCollections=function(){return r(this,void 0,void 0,(function(){var e,t,n;return i(this,(function(r){switch(r.label){case 0:return[4,this.apiService.getCollections(this.organizationId)];case 1:return e=r.sent(),t=e.data.map((function(e){return new s.Collection(new a.CollectionData(e))})),n=this,[4,this.collectionService.decryptMany(t)];case 2:return n.collections=r.sent(),[2]}}))}))},e.prototype.check=function(e,t){e.checked=null==t?!e.checked:t,e.checked||(e.readOnly=!1)},e.prototype.selectAll=function(e){var t=this;this.collections.forEach((function(n){return t.check(n,e)}))},e.prototype.submit=function(){return r(this,void 0,void 0,(function(){var e;return i(this,(function(t){switch(t.label){case 0:(e=new l.GroupRequest).name=this.name,e.externalId=this.externalId,e.accessAll="all"===this.access,e.accessAll||(e.collections=this.collections.filter((function(e){return e.checked})).map((function(e){return new c.SelectionReadOnlyRequest(e.id,!!e.readOnly,!!e.hidePasswords)}))),t.label=1;case 1:return t.trys.push([1,3,,4]),this.editMode?this.formPromise=this.apiService.putGroup(this.organizationId,this.groupId,e):this.formPromise=this.apiService.postGroup(this.organizationId,e),[4,this.formPromise];case 2:return t.sent(),this.toasterService.popAsync("success",null,this.i18nService.t(this.editMode?"editedGroupId":"createdGroupId",this.name)),this.onSavedGroup.emit(),[3,4];case 3:return t.sent(),[3,4];case 4:return[2]}}))}))},e.prototype.delete=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.editMode?[4,this.platformUtilsService.showDialog(this.i18nService.t("deleteGroupConfirmation"),this.name,this.i18nService.t("yes"),this.i18nService.t("no"),"warning")]:[2];case 1:if(!e.sent())return[2,!1];e.label=2;case 2:return e.trys.push([2,4,,5]),this.deletePromise=this.apiService.deleteGroup(this.organizationId,this.groupId),[4,this.deletePromise];case 3:return e.sent(),this.toasterService.popAsync("success",null,this.i18nService.t("deletedGroupId",this.name)),this.onDeletedGroup.emit(),[3,5];case 4:return e.sent(),[3,5];case 5:return[2]}}))}))},e.ɵfac=function(t){return new(t||e)(p.ɵɵdirectiveInject(u.ApiService),p.ɵɵdirectiveInject(d.I18nService),p.ɵɵdirectiveInject(m.ToasterService),p.ɵɵdirectiveInject(h.CollectionService),p.ɵɵdirectiveInject(f.PlatformUtilsService))},e.ɵcmp=p.ɵɵdefineComponent({type:e,selectors:[["app-group-add-edit"]],inputs:{groupId:"groupId",organizationId:"organizationId"},outputs:{onSavedGroup:"onSavedGroup",onDeletedGroup:"onDeletedGroup"},decls:49,vars:18,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","groupAddEditTitle",1,"modal","fade"],["role","document",1,"modal-dialog","modal-lg"],["ngNativeValidate","",1,"modal-content",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-header"],["id","groupAddEditTitle",1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],["class","modal-body",4,"ngIf"],[1,"modal-footer"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],[1,"ml-auto"],["type","button","class","btn btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click",4,"ngIf"],[1,"modal-body"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[1,"form-group"],["for","name"],["id","name","type","text","name","Name","required","",1,"form-control",3,"ngModel","ngModelChange"],["for","externalId"],["id","externalId","type","text","name","ExternalId",1,"form-control",3,"ngModel","ngModelChange"],[1,"form-text","text-muted"],[1,"mt-4","d-flex"],[1,"mb-2"],["target","_blank","rel","noopener","href","https://bitwarden.com/help/article/user-types-access-control/#access-control",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-question-circle-o"],["class","ml-auto",4,"ngIf"],[1,"form-group",3,"ngClass"],[1,"form-check"],["type","radio","name","access","id","accessAll","value","all",1,"form-check-input",3,"ngModel","ngModelChange"],["for","accessAll",1,"form-check-label"],["type","radio","name","access","id","accessSelected","value","selected",1,"form-check-input",3,"ngModel","ngModelChange"],["for","accessSelected",1,"form-check-label"],[4,"ngIf"],["type","button",1,"btn","btn-link","btn-sm","py-0",3,"click"],["class","table table-hover table-list mb-0",4,"ngIf"],[1,"table","table-hover","table-list","mb-0"],["width","100",1,"text-center"],[4,"ngFor","ngForOf"],[1,"table-list-checkbox",3,"click"],["type","checkbox","appStopProp","",3,"ngModel","name","ngModelChange"],[3,"click"],[1,"text-center"],["type","checkbox",3,"ngModel","name","disabled","ngModelChange"],["type","button",1,"btn","btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click"],["deleteBtn",""],["aria-hidden","true",1,"fa","fa-trash-o","fa-lg","fa-fw",3,"hidden"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","fa-lg","fa-fw",3,"hidden","title"]],template:function(e,t){if(1&e&&(p.ɵɵelementStart(0,"div",0),p.ɵɵtext(1,"\n "),p.ɵɵelementStart(2,"div",1),p.ɵɵtext(3,"\n "),p.ɵɵelementStart(4,"form",2,3),p.ɵɵlistener("ngSubmit",(function(){return t.submit()})),p.ɵɵtext(6,"\n "),p.ɵɵelementStart(7,"div",4),p.ɵɵtext(8,"\n "),p.ɵɵelementStart(9,"h2",5),p.ɵɵtext(10),p.ɵɵelementEnd(),p.ɵɵtext(11,"\n "),p.ɵɵelementStart(12,"button",6),p.ɵɵpipe(13,"i18n"),p.ɵɵtext(14,"\n "),p.ɵɵelementStart(15,"span",7),p.ɵɵtext(16,"×"),p.ɵɵelementEnd(),p.ɵɵtext(17,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(18,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(19,"\n "),p.ɵɵtemplate(20,w,9,6,"div",8),p.ɵɵtext(21,"\n "),p.ɵɵtemplate(22,A,62,30,"div",8),p.ɵɵtext(23,"\n "),p.ɵɵelementStart(24,"div",9),p.ɵɵtext(25,"\n "),p.ɵɵelementStart(26,"button",10),p.ɵɵtext(27,"\n "),p.ɵɵelement(28,"i",11),p.ɵɵpipe(29,"i18n"),p.ɵɵtext(30,"\n "),p.ɵɵelementStart(31,"span"),p.ɵɵtext(32),p.ɵɵpipe(33,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(34,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(35,"\n "),p.ɵɵelementStart(36,"button",12),p.ɵɵtext(37),p.ɵɵpipe(38,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(39,"\n "),p.ɵɵelementStart(40,"div",13),p.ɵɵtext(41,"\n "),p.ɵɵtemplate(42,O,9,10,"button",14),p.ɵɵtext(43,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(44,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(45,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(46,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(47,"\n"),p.ɵɵelementEnd(),p.ɵɵtext(48,"\n")),2&e){var n=p.ɵɵreference(5);p.ɵɵadvance(4),p.ɵɵproperty("appApiAction",t.formPromise),p.ɵɵadvance(6),p.ɵɵtextInterpolate(t.title),p.ɵɵadvance(2),p.ɵɵpropertyInterpolate("appA11yTitle",p.ɵɵpipeBind1(13,10,"close")),p.ɵɵadvance(8),p.ɵɵproperty("ngIf",t.loading),p.ɵɵadvance(2),p.ɵɵproperty("ngIf",!t.loading),p.ɵɵadvance(4),p.ɵɵproperty("disabled",n.loading),p.ɵɵadvance(2),p.ɵɵpropertyInterpolate("title",p.ɵɵpipeBind1(29,12,"loading")),p.ɵɵadvance(4),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(33,14,"save")),p.ɵɵadvance(5),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(38,16,"cancel")),p.ɵɵadvance(5),p.ɵɵproperty("ngIf",t.editMode)}},directives:[v.NgControlStatusGroup,v.NgForm,y.ApiActionDirective,g.A11yTitleDirective,x.NgIf,v.DefaultValueAccessor,v.RequiredValidator,v.NgControlStatus,v.NgModel,x.NgClass,v.RadioControlValueAccessor,x.NgForOf,v.CheckboxControlValueAccessor,b.StopPropDirective],pipes:[S.I18nPipe],encapsulation:2}),e}();t.GroupAddEditComponent=T},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&t[0].status===l.OrganizationUserStatusType.Confirmed&&this.events(t[0]),null!=n&&n.unsubscribe(),[2]}))}))})),[2]}}))}))})),[2]}))}))},e.prototype.load=function(){return r(this,void 0,void 0,(function(){var e,t=this;return i(this,(function(n){switch(n.label){case 0:return[4,this.apiService.getOrganizationUsers(this.organizationId)];case 1:return e=n.sent(),this.statusMap.clear(),this.allUsers=null!=e.data&&e.data.length>0?e.data:[],this.allUsers.sort(p.Utils.getSortFunction(this.i18nService,"email")),this.allUsers.forEach((function(e){t.statusMap.has(e.status)?t.statusMap.get(e.status).push(e):t.statusMap.set(e.status,[e])})),this.filter(this.status),this.loading=!1,[2]}}))}))},e.prototype.filter=function(e){this.status=e,null!=this.status?this.users=this.statusMap.get(this.status):this.users=this.allUsers,this.resetPaging()},e.prototype.loadMore=function(){if(this.users&&!(this.users.length<=this.pageSize)){var e=this.pagedUsers.length,t=this.pageSize;0===e&&this.pagedUsersCount>this.pageSize&&(t=this.pagedUsersCount),this.users.length>e&&(this.pagedUsers=this.pagedUsers.concat(this.users.slice(e,e+t))),this.pagedUsersCount=this.pagedUsers.length,this.didScroll=this.pagedUsers.length>this.pageSize}},Object.defineProperty(e.prototype,"allCount",{get:function(){return null!=this.allUsers?this.allUsers.length:0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"invitedCount",{get:function(){return this.statusMap.has(l.OrganizationUserStatusType.Invited)?this.statusMap.get(l.OrganizationUserStatusType.Invited).length:0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"acceptedCount",{get:function(){return this.statusMap.has(l.OrganizationUserStatusType.Accepted)?this.statusMap.get(l.OrganizationUserStatusType.Accepted).length:0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"confirmedCount",{get:function(){return this.statusMap.has(l.OrganizationUserStatusType.Confirmed)?this.statusMap.get(l.OrganizationUserStatusType.Confirmed).length:0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"showConfirmUsers",{get:function(){return null!=this.allUsers&&null!=this.statusMap&&this.allUsers.length>1&&this.confirmedCount>0&&this.confirmedCount<3&&this.acceptedCount>0},enumerable:!0,configurable:!0}),e.prototype.edit=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(u.ModalComponent);this.modal=this.addEditModalRef.createComponent(n).instance;var r=this.modal.show(m.UserAddEditComponent,this.addEditModalRef);r.name=null!=e?e.name||e.email:null,r.organizationId=this.organizationId,r.organizationUserId=null!=e?e.id:null,r.onSavedUser.subscribe((function(){t.modal.close(),t.load()})),r.onDeletedUser.subscribe((function(){t.modal.close(),t.removeUser(e)})),this.modal.onClosed.subscribe((function(){t.modal=null}))},e.prototype.invite=function(){this.edit(null)},e.prototype.groups=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(u.ModalComponent);this.modal=this.groupsModalRef.createComponent(n).instance;var r=this.modal.show(f.UserGroupsComponent,this.groupsModalRef);r.name=null!=e?e.name||e.email:null,r.organizationId=this.organizationId,r.organizationUserId=null!=e?e.id:null,r.onSavedUser.subscribe((function(){t.modal.close()})),this.modal.onClosed.subscribe((function(){t.modal=null}))},e.prototype.remove=function(e){return r(this,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return[4,this.platformUtilsService.showDialog(this.i18nService.t("removeUserConfirmation"),e.name||e.email,this.i18nService.t("yes"),this.i18nService.t("no"),"warning")];case 1:if(!t.sent())return[2,!1];t.label=2;case 2:return t.trys.push([2,4,,5]),[4,this.apiService.deleteOrganizationUser(this.organizationId,e.id)];case 3:return t.sent(),this.toasterService.popAsync("success",null,this.i18nService.t("removedUserId",e.name||e.email)),this.removeUser(e),[3,5];case 4:return t.sent(),[3,5];case 5:return[2]}}))}))},e.prototype.reinvite=function(e){return r(this,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return null!=this.actionPromise?[2]:(this.actionPromise=this.apiService.postOrganizationUserReinvite(this.organizationId,e.id),[4,this.actionPromise]);case 1:return t.sent(),this.toasterService.popAsync("success",null,this.i18nService.t("hasBeenReinvited",e.name||e.email)),this.actionPromise=null,[2]}}))}))},e.prototype.confirm=function(e){return r(this,void 0,void 0,(function(){var t,n,o,s,c,d,m,f,v,y,g=this;return i(this,(function(x){switch(x.label){case 0:return t=function(t){return r(g,void 0,void 0,(function(){var n;return i(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,3,4]),this.actionPromise=this.doConfirmation(e,t),[4,this.actionPromise];case 1:return r.sent(),function(t){e.status=l.OrganizationUserStatusType.Confirmed;var n=t.statusMap.get(l.OrganizationUserStatusType.Accepted).indexOf(e);n>-1&&(t.statusMap.get(l.OrganizationUserStatusType.Accepted).splice(n,1),t.statusMap.get(l.OrganizationUserStatusType.Confirmed).push(e))}(this),this.toasterService.popAsync("success",null,this.i18nService.t("hasBeenConfirmed",e.name||e.email)),[3,4];case 2:throw n=r.sent(),this.validationService.showError(n),n;case 3:return this.actionPromise=null,[7];case 4:return[2]}}))}))},null!=this.actionPromise?[2]:[4,this.storageService.get(a.ConstantsService.autoConfirmFingerprints)];case 1:if(null==(n=x.sent())||!n)return null!=this.modal&&this.modal.close(),o=this.componentFactoryResolver.resolveComponentFactory(u.ModalComponent),this.modal=this.confirmModalRef.createComponent(o).instance,(s=this.modal.show(h.UserConfirmComponent,this.confirmModalRef)).name=null!=e?e.name||e.email:null,s.organizationId=this.organizationId,s.organizationUserId=null!=e?e.id:null,s.userId=null!=e?e.userId:null,s.onConfirmedUser.subscribe((function(e){return r(g,void 0,void 0,(function(){var n;return i(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,t(e)];case 1:return r.sent(),this.modal.close(),[3,3];case 2:return n=r.sent(),console.error("Handled exception:",n),[3,3];case 3:return[2]}}))}))})),this.modal.onClosed.subscribe((function(){g.modal=null})),[2];x.label=2;case 2:return x.trys.push([2,9,,10]),[4,this.apiService.getUserPublicKey(e.userId)];case 3:c=x.sent(),d=p.Utils.fromB64ToArray(c.publicKey),x.label=4;case 4:return x.trys.push([4,6,,7]),f=(m=console).log,v="User's fingerprint: ",[4,this.cryptoService.getFingerprint(e.userId,d.buffer)];case 5:return f.apply(m,[v+x.sent().join("-")]),[3,7];case 6:return x.sent(),[3,7];case 7:return[4,t(d)];case 8:return x.sent(),[3,10];case 9:return y=x.sent(),console.error("Handled exception:",y),[3,10];case 10:return[2]}}))}))},e.prototype.events=function(e){return r(this,void 0,void 0,(function(){var t,n,r=this;return i(this,(function(i){return null!=this.modal&&this.modal.close(),t=this.componentFactoryResolver.resolveComponentFactory(u.ModalComponent),this.modal=this.eventsModalRef.createComponent(t).instance,(n=this.modal.show(d.EntityEventsComponent,this.eventsModalRef)).name=e.name||e.email,n.organizationId=this.organizationId,n.entityId=e.id,n.showUser=!1,n.entity="user",this.modal.onClosed.subscribe((function(){r.modal=null})),[2]}))}))},e.prototype.resetPaging=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){return this.pagedUsers=[],this.loadMore(),[2]}))}))},e.prototype.isSearching=function(){return this.searchService.isSearchable(this.searchText)},e.prototype.isPaging=function(){var e=this.isSearching();return e&&this.didScroll&&this.resetPaging(),!e&&this.users&&this.users.length>this.pageSize},e.prototype.doConfirmation=function(e,t){return r(this,void 0,void 0,(function(){var n,r,o;return i(this,(function(i){switch(i.label){case 0:return[4,this.cryptoService.getOrgKey(this.organizationId)];case 1:return n=i.sent(),[4,this.cryptoService.rsaEncrypt(n.key,t.buffer)];case 2:return r=i.sent(),(o=new s.OrganizationUserConfirmRequest).key=r.encryptedString,[4,this.apiService.postOrganizationUserConfirm(this.organizationId,e.id,o)];case 3:return i.sent(),[2]}}))}))},e.prototype.removeUser=function(e){var t=this.users.indexOf(e);t>-1&&(this.users.splice(t,1),this.resetPaging()),this.statusMap.has(l.OrganizationUserStatusType.Accepted)&&(t=this.statusMap.get(l.OrganizationUserStatusType.Accepted).indexOf(e))>-1&&this.statusMap.get(l.OrganizationUserStatusType.Accepted).splice(t,1),this.statusMap.has(l.OrganizationUserStatusType.Invited)&&(t=this.statusMap.get(l.OrganizationUserStatusType.Invited).indexOf(e))>-1&&this.statusMap.get(l.OrganizationUserStatusType.Invited).splice(t,1),this.statusMap.has(l.OrganizationUserStatusType.Confirmed)&&(t=this.statusMap.get(l.OrganizationUserStatusType.Confirmed).indexOf(e))>-1&&this.statusMap.get(l.OrganizationUserStatusType.Confirmed).splice(t,1)},e.ɵfac=function(t){return new(t||e)(v.ɵɵdirectiveInject(y.ApiService),v.ɵɵdirectiveInject(g.ActivatedRoute),v.ɵɵdirectiveInject(x.I18nService),v.ɵɵdirectiveInject(v.ComponentFactoryResolver),v.ɵɵdirectiveInject(b.PlatformUtilsService),v.ɵɵdirectiveInject(S.ToasterService),v.ɵɵdirectiveInject(w.CryptoService),v.ɵɵdirectiveInject(C.UserService),v.ɵɵdirectiveInject(g.Router),v.ɵɵdirectiveInject(I.StorageService),v.ɵɵdirectiveInject(E.SearchService),v.ɵɵdirectiveInject(P.ValidationService))},e.ɵcmp=v.ɵɵdefineComponent({type:e,selectors:[["app-org-people"]],viewQuery:function(e,t){var n;(1&e&&(v.ɵɵstaticViewQuery(V,!0,o.ViewContainerRef),v.ɵɵstaticViewQuery(j,!0,o.ViewContainerRef),v.ɵɵstaticViewQuery(F,!0,o.ViewContainerRef),v.ɵɵstaticViewQuery(U,!0,o.ViewContainerRef)),2&e)&&(v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.addEditModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.groupsModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.eventsModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.confirmModalRef=n.first))},decls:64,vars:45,consts:[[1,"page-header","d-flex"],[1,"ml-auto","d-flex"],["role","group",1,"btn-group","btn-group-sm"],["type","button",1,"btn","btn-outline-secondary",3,"ngClass","click"],["class","badge badge-pill badge-info",4,"ngIf"],["class","badge badge-pill badge-warning",4,"ngIf"],[1,"ml-3"],["for","search",1,"sr-only"],["type","search","id","search",1,"form-control","form-control-sm",3,"placeholder","ngModel","ngModelChange"],["type","button",1,"btn","btn-sm","btn-outline-primary","ml-3",3,"click"],["aria-hidden","true",1,"fa","fa-plus","fa-fw"],[4,"ngIf"],["addEdit",""],["groupsTemplate",""],["eventsTemplate",""],["confirmTemplate",""],[1,"badge","badge-pill","badge-info"],[1,"badge","badge-pill","badge-warning"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],["type","info","icon","fa-check-circle",3,"title",4,"ngIf"],["infiniteScroll","",1,"table","table-hover","table-list",3,"infiniteScrollDistance","infiniteScrollDisabled","scrolled"],[4,"ngFor","ngForOf"],["type","info","icon","fa-check-circle",3,"title"],["width","30"],["size","25",3,"data","email","circle","fontSize"],["href","#","appStopClick","",3,"click"],["class","badge badge-secondary",4,"ngIf"],["class","badge badge-warning",4,"ngIf"],["class","text-muted d-block",4,"ngIf"],[1,"table-list-options"],["appListDropdown","",1,"dropdown"],["type","button","data-toggle","dropdown","aria-haspopup","true","aria-expanded","false",1,"btn","btn-outline-secondary","dropdown-toggle",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-cog","fa-lg"],[1,"dropdown-menu","dropdown-menu-right"],["class","dropdown-item","href","#","appStopClick","",3,"click",4,"ngIf"],["class","dropdown-item text-success","href","#","appStopClick","",3,"click",4,"ngIf"],["href","#","appStopClick","",1,"dropdown-item","text-danger",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-remove"],[1,"badge","badge-secondary"],[1,"badge","badge-warning"],[1,"text-muted","d-block"],["aria-hidden","true",1,"fa","fa-lock",3,"title"],["href","#","appStopClick","",1,"dropdown-item",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-envelope-o"],["href","#","appStopClick","",1,"dropdown-item","text-success",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-check"],["aria-hidden","true",1,"fa","fa-fw","fa-sitemap"],["aria-hidden","true",1,"fa","fa-fw","fa-file-text-o"]],template:function(e,t){1&e&&(v.ɵɵelementStart(0,"div",0),v.ɵɵtext(1,"\n "),v.ɵɵelementStart(2,"h1"),v.ɵɵtext(3),v.ɵɵpipe(4,"i18n"),v.ɵɵelementEnd(),v.ɵɵtext(5,"\n "),v.ɵɵelementStart(6,"div",1),v.ɵɵtext(7,"\n "),v.ɵɵelementStart(8,"div",2),v.ɵɵtext(9,"\n "),v.ɵɵelementStart(10,"button",3),v.ɵɵlistener("click",(function(){return t.filter(null)})),v.ɵɵtext(11),v.ɵɵpipe(12,"i18n"),v.ɵɵtemplate(13,N,2,1,"span",4),v.ɵɵtext(14,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(15,"\n "),v.ɵɵelementStart(16,"button",3),v.ɵɵlistener("click",(function(){return t.filter(t.organizationUserStatusType.Invited)})),v.ɵɵtext(17),v.ɵɵpipe(18,"i18n"),v.ɵɵtemplate(19,z,2,1,"span",4),v.ɵɵtext(20,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(21,"\n "),v.ɵɵelementStart(22,"button",3),v.ɵɵlistener("click",(function(){return t.filter(t.organizationUserStatusType.Accepted)})),v.ɵɵtext(23),v.ɵɵpipe(24,"i18n"),v.ɵɵtemplate(25,L,2,1,"span",5),v.ɵɵtext(26,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(27,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(28,"\n "),v.ɵɵelementStart(29,"div",6),v.ɵɵtext(30,"\n "),v.ɵɵelementStart(31,"label",7),v.ɵɵtext(32),v.ɵɵpipe(33,"i18n"),v.ɵɵelementEnd(),v.ɵɵtext(34,"\n "),v.ɵɵelementStart(35,"input",8),v.ɵɵlistener("ngModelChange",(function(e){return t.searchText=e})),v.ɵɵpipe(36,"i18n"),v.ɵɵelementEnd(),v.ɵɵtext(37,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(38,"\n "),v.ɵɵelementStart(39,"button",9),v.ɵɵlistener("click",(function(){return t.invite()})),v.ɵɵtext(40,"\n "),v.ɵɵelement(41,"i",10),v.ɵɵtext(42),v.ɵɵpipe(43,"i18n"),v.ɵɵelementEnd(),v.ɵɵtext(44,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(45,"\n"),v.ɵɵelementEnd(),v.ɵɵtext(46,"\n"),v.ɵɵtemplate(47,G,9,6,"ng-container",11),v.ɵɵtext(48,"\n"),v.ɵɵtemplate(49,se,6,2,"ng-container",11),v.ɵɵpipe(50,"search"),v.ɵɵtext(51,"\n"),v.ɵɵtemplate(52,le,0,0,"ng-template",null,12,v.ɵɵtemplateRefExtractor),v.ɵɵtext(54,"\n"),v.ɵɵtemplate(55,ce,0,0,"ng-template",null,13,v.ɵɵtemplateRefExtractor),v.ɵɵtext(57,"\n"),v.ɵɵtemplate(58,pe,0,0,"ng-template",null,14,v.ɵɵtemplateRefExtractor),v.ɵɵtext(60,"\n"),v.ɵɵtemplate(61,ue,0,0,"ng-template",null,15,v.ɵɵtemplateRefExtractor),v.ɵɵtext(63,"\n")),2&e&&(v.ɵɵadvance(3),v.ɵɵtextInterpolate(v.ɵɵpipeBind1(4,16,"people")),v.ɵɵadvance(7),v.ɵɵproperty("ngClass",v.ɵɵpureFunction1(36,de,null==t.status)),v.ɵɵadvance(1),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(12,18,"all"),"\n "),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",t.allCount),v.ɵɵadvance(3),v.ɵɵproperty("ngClass",v.ɵɵpureFunction1(38,de,t.status==t.organizationUserStatusType.Invited)),v.ɵɵadvance(1),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(18,20,"invited"),"\n "),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",t.invitedCount),v.ɵɵadvance(3),v.ɵɵproperty("ngClass",v.ɵɵpureFunction1(40,de,t.status==t.organizationUserStatusType.Accepted)),v.ɵɵadvance(1),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(24,22,"accepted"),"\n "),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",t.acceptedCount),v.ɵɵadvance(7),v.ɵɵtextInterpolate(v.ɵɵpipeBind1(33,24,"search")),v.ɵɵadvance(3),v.ɵɵpropertyInterpolate("placeholder",v.ɵɵpipeBind1(36,26,"search")),v.ɵɵproperty("ngModel",t.searchText),v.ɵɵadvance(7),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(43,28,"inviteUser"),"\n "),v.ɵɵadvance(5),v.ɵɵproperty("ngIf",t.loading),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",!t.loading&&(t.isPaging()?t.pagedUsers:v.ɵɵpipeBindV(50,30,v.ɵɵpureFunction2(42,me,t.users,t.searchText)))))},directives:[k.NgClass,k.NgIf,_.DefaultValueAccessor,_.NgControlStatus,_.NgModel,A.InfiniteScrollDirective,k.NgForOf,O.CalloutComponent,T.AvatarComponent,M.StopClickDirective,B.A11yTitleDirective],pipes:[D.I18nPipe,R.SearchPipe],encapsulation:2}),e}();t.PeopleComponent=he},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&(n[0].checked=!0,n[0].readOnly=e.readOnly,n[0].hidePasswords=e.hidePasswords)})),[3,5];case 4:return n.sent(),[3,5];case 5:return[3,7];case 6:this.title=this.i18nService.t("inviteUser"),n.label=7;case 7:return this.loading=!1,[2]}}))}))},e.prototype.loadCollections=function(){return r(this,void 0,void 0,(function(){var e,t,n;return i(this,(function(r){switch(r.label){case 0:return[4,this.apiService.getCollections(this.organizationId)];case 1:return e=r.sent(),t=e.data.map((function(e){return new s.Collection(new a.CollectionData(e))})),n=this,[4,this.collectionService.decryptMany(t)];case 2:return n.collections=r.sent(),[2]}}))}))},e.prototype.check=function(e,t){e.checked=null==t?!e.checked:t,e.checked||(e.readOnly=!1)},e.prototype.selectAll=function(e){var t=this;this.collections.forEach((function(n){return t.check(n,e)}))},e.prototype.setRequestPermissions=function(e,t){return e.accessBusinessPortal=!t&&this.permissions.accessBusinessPortal,e.accessEventLogs=this.permissions.accessEventLogs=!t&&this.permissions.accessEventLogs,e.accessImportExport=!t&&this.permissions.accessImportExport,e.accessReports=!t&&this.permissions.accessReports,e.manageAllCollections=!t&&this.permissions.manageAllCollections,e.manageAssignedCollections=!t&&this.permissions.manageAssignedCollections,e.manageGroups=!t&&this.permissions.manageGroups,e.manageSso=!t&&this.permissions.manageSso,e.managePolicies=!t&&this.permissions.managePolicies,e.manageUsers=!t&&this.permissions.manageUsers,e.manageResetPassword=!t&&this.permissions.manageResetPassword,e},e.prototype.submit=function(){var e,t;return r(this,void 0,void 0,(function(){var n,r;return i(this,(function(i){switch(i.label){case 0:n=null,"all"!==this.access&&(n=this.collections.filter((function(e){return e.checked})).map((function(e){return new p.SelectionReadOnlyRequest(e.id,!!e.readOnly,!!e.hidePasswords)}))),i.label=1;case 1:return i.trys.push([1,3,,4]),this.editMode?((r=new c.OrganizationUserUpdateRequest).accessAll="all"===this.access,r.type=this.type,r.collections=n,r.permissions=this.setRequestPermissions(null!==(e=r.permissions)&&void 0!==e?e:new d.PermissionsApi,r.type!==u.OrganizationUserType.Custom),this.formPromise=this.apiService.putOrganizationUser(this.organizationId,this.organizationUserId,r)):((r=new l.OrganizationUserInviteRequest).emails=this.emails.trim().split(/\s*,\s*/),r.accessAll="all"===this.access,r.type=this.type,r.permissions=this.setRequestPermissions(null!==(t=r.permissions)&&void 0!==t?t:new d.PermissionsApi,r.type!==u.OrganizationUserType.Custom),r.collections=n,this.formPromise=this.apiService.postOrganizationUserInvite(this.organizationId,r)),[4,this.formPromise];case 2:return i.sent(),this.toasterService.popAsync("success",null,this.i18nService.t(this.editMode?"editedUserId":"invitedUsers",this.name)),this.onSavedUser.emit(),[3,4];case 3:return i.sent(),[3,4];case 4:return[2]}}))}))},e.prototype.delete=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.editMode?[4,this.platformUtilsService.showDialog(this.i18nService.t("removeUserConfirmation"),this.name,this.i18nService.t("yes"),this.i18nService.t("no"),"warning")]:[2];case 1:if(!e.sent())return[2,!1];e.label=2;case 2:return e.trys.push([2,4,,5]),this.deletePromise=this.apiService.deleteOrganizationUser(this.organizationId,this.organizationUserId),[4,this.deletePromise];case 3:return e.sent(),this.toasterService.popAsync("success",null,this.i18nService.t("removedUserId",this.name)),this.onDeletedUser.emit(),[3,5];case 4:return e.sent(),[3,5];case 5:return[2]}}))}))},e.ɵfac=function(t){return new(t||e)(m.ɵɵdirectiveInject(h.ApiService),m.ɵɵdirectiveInject(f.I18nService),m.ɵɵdirectiveInject(v.ToasterService),m.ɵɵdirectiveInject(y.CollectionService),m.ɵɵdirectiveInject(g.PlatformUtilsService))},e.ɵcmp=m.ɵɵdefineComponent({type:e,selectors:[["app-user-add-edit"]],inputs:{name:"name",organizationUserId:"organizationUserId",organizationId:"organizationId"},outputs:{onSavedUser:"onSavedUser",onDeletedUser:"onDeletedUser"},decls:51,vars:19,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","userAddEditTitle",1,"modal","fade"],["role","document",1,"modal-dialog","modal-lg"],["ngNativeValidate","",1,"modal-content",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-header"],["id","userAddEditTitle",1,"modal-title"],["class","text-muted",4,"ngIf"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],["class","modal-body",4,"ngIf"],[1,"modal-footer"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],[1,"ml-auto"],["type","button","class","btn btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click",4,"ngIf"],[1,"text-muted"],[1,"modal-body"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[4,"ngIf"],["target","_blank","rel","noopener","href","https://bitwarden.com/help/article/user-types-access-control/#user-types",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-question-circle-o"],[1,"form-check","mt-2","form-check-block"],["type","radio","name","userType","id","userTypeUser",1,"form-check-input",3,"value","ngModel","ngModelChange"],["for","userTypeUser",1,"form-check-label"],["type","radio","name","userType","id","userTypeManager",1,"form-check-input",3,"value","ngModel","ngModelChange"],["for","userTypeManager",1,"form-check-label"],["type","radio","name","userType","id","userTypeAdmin",1,"form-check-input",3,"value","ngModel","ngModelChange"],["for","userTypeAdmin",1,"form-check-label"],["type","radio","name","userType","id","userTypeOwner",1,"form-check-input",3,"value","ngModel","ngModelChange"],["for","userTypeOwner",1,"form-check-label"],["type","radio","name","userType","id","userTypeCustom",1,"form-check-input",3,"value","ngModel","ngModelChange"],["for","userTypeCustom",1,"form-check-label"],[1,"mt-4","d-flex"],[1,"mb-3"],["target","_blank","rel","noopener","href","https://bitwarden.com/help/article/user-types-access-control/#access-control",3,"appA11yTitle"],["class","ml-auto",4,"ngIf"],[1,"form-group",3,"ngClass"],[1,"form-check"],["type","radio","name","access","id","accessAll","value","all",1,"form-check-input",3,"ngModel","ngModelChange"],["for","accessAll",1,"form-check-label"],["type","radio","name","access","id","accessSelected","value","selected",1,"form-check-input",3,"ngModel","ngModelChange"],["for","accessSelected",1,"form-check-label"],[1,"form-group","mb-4"],["for","emails"],["id","emails","type","text","name","Emails","required","","appAutoFocus","",1,"form-control",3,"ngModel","ngModelChange"],[1,"row"],[1,"col-6"],[1,"font-weight-bold","mb-0"],[1,"my-0","mr-2"],[1,"form-group","mb-0"],[1,"form-check","mt-1","form-check-block"],["type","checkbox","name","manageAssignedCollections","id","manageAssignedCollections",1,"form-check-input",3,"ngModel","ngModelChange"],["for","manageAssignedCollections",1,"form-check-label","font-weight-normal"],["type","checkbox","name","accessBusinessPortal","id","accessBusinessPortal",1,"form-check-input",3,"ngModel","ngModelChange"],["for","accessBusinessPortal",1,"form-check-label","font-weight-normal"],["type","checkbox","name","accessEventLogs","id","accessEventLogs",1,"form-check-input",3,"ngModel","ngModelChange"],["for","accessEventLogs",1,"form-check-label","font-weight-normal"],["type","checkbox","name","accessImportExport","id","accessImportExport",1,"form-check-input",3,"ngModel","ngModelChange"],["for","accessImportExport",1,"form-check-label","font-weight-normal"],["type","checkbox","name","accessReports","id","accessReports",1,"form-check-input",3,"ngModel","ngModelChange"],["for","accessReports",1,"form-check-label","font-weight-normal"],["type","checkbox","name","manageAllCollections","id","manageAllCollections",1,"form-check-input",3,"ngModel","ngModelChange"],["for","manageAllCollections",1,"form-check-label","font-weight-normal"],["type","checkbox","name","manageGroups","id","manageGroups",1,"form-check-input",3,"ngModel","ngModelChange"],["for","manageGroups",1,"form-check-label","font-weight-normal"],["type","checkbox","name","manageSso","id","managePolicies",1,"form-check-input",3,"ngModel","ngModelChange"],["for","manageSso",1,"form-check-label","font-weight-normal"],["type","checkbox","name","managePolicies","id","managePolicies",1,"form-check-input",3,"ngModel","ngModelChange"],["for","managePolicies",1,"form-check-label","font-weight-normal"],["type","checkbox","name","manageUsers","id","manageUsers",1,"form-check-input",3,"ngModel","ngModelChange"],["for","manageUsers",1,"form-check-label","font-weight-normal"],["type","checkbox","name","manageResetPassword","id","manageResetPassword",1,"form-check-input",3,"ngModel","ngModelChange"],["for","manageResetPassword",1,"form-check-label","font-weight-normal"],["type","button",1,"btn","btn-link","btn-sm","py-0",3,"click"],["class","table table-hover table-list mb-0",4,"ngIf"],[1,"table","table-hover","table-list","mb-0"],["width","100",1,"text-center"],[4,"ngFor","ngForOf"],[1,"table-list-checkbox",3,"click"],["type","checkbox","appStopProp","",3,"ngModel","name","ngModelChange"],[3,"click"],[1,"text-center"],["type","checkbox",3,"ngModel","name","disabled","ngModelChange"],["type","button",1,"btn","btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click"],["deleteBtn",""],["aria-hidden","true",1,"fa","fa-trash-o","fa-lg","fa-fw",3,"hidden"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","fa-lg","fa-fw",3,"hidden","title"]],template:function(e,t){if(1&e&&(m.ɵɵelementStart(0,"div",0),m.ɵɵtext(1,"\n "),m.ɵɵelementStart(2,"div",1),m.ɵɵtext(3,"\n "),m.ɵɵelementStart(4,"form",2,3),m.ɵɵlistener("ngSubmit",(function(){return t.submit()})),m.ɵɵtext(6,"\n "),m.ɵɵelementStart(7,"div",4),m.ɵɵtext(8,"\n "),m.ɵɵelementStart(9,"h2",5),m.ɵɵtext(10),m.ɵɵtemplate(11,E,2,1,"small",6),m.ɵɵtext(12,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(13,"\n "),m.ɵɵelementStart(14,"button",7),m.ɵɵpipe(15,"i18n"),m.ɵɵtext(16,"\n "),m.ɵɵelementStart(17,"span",8),m.ɵɵtext(18,"×"),m.ɵɵelementEnd(),m.ɵɵtext(19,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(20,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(21,"\n "),m.ɵɵtemplate(22,P,9,6,"div",9),m.ɵɵtext(23,"\n "),m.ɵɵtemplate(24,R,119,67,"div",9),m.ɵɵtext(25,"\n "),m.ɵɵelementStart(26,"div",10),m.ɵɵtext(27,"\n "),m.ɵɵelementStart(28,"button",11),m.ɵɵtext(29,"\n "),m.ɵɵelement(30,"i",12),m.ɵɵpipe(31,"i18n"),m.ɵɵtext(32,"\n "),m.ɵɵelementStart(33,"span"),m.ɵɵtext(34),m.ɵɵpipe(35,"i18n"),m.ɵɵelementEnd(),m.ɵɵtext(36,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(37,"\n "),m.ɵɵelementStart(38,"button",13),m.ɵɵtext(39),m.ɵɵpipe(40,"i18n"),m.ɵɵelementEnd(),m.ɵɵtext(41,"\n "),m.ɵɵelementStart(42,"div",14),m.ɵɵtext(43,"\n "),m.ɵɵtemplate(44,V,9,10,"button",15),m.ɵɵtext(45,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(46,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(47,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(48,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(49,"\n"),m.ɵɵelementEnd(),m.ɵɵtext(50,"\n")),2&e){var n=m.ɵɵreference(5);m.ɵɵadvance(4),m.ɵɵproperty("appApiAction",t.formPromise),m.ɵɵadvance(6),m.ɵɵtextInterpolate1("\n ",t.title,"\n "),m.ɵɵadvance(1),m.ɵɵproperty("ngIf",t.name),m.ɵɵadvance(3),m.ɵɵpropertyInterpolate("appA11yTitle",m.ɵɵpipeBind1(15,11,"close")),m.ɵɵadvance(8),m.ɵɵproperty("ngIf",t.loading),m.ɵɵadvance(2),m.ɵɵproperty("ngIf",!t.loading),m.ɵɵadvance(4),m.ɵɵproperty("disabled",n.loading),m.ɵɵadvance(2),m.ɵɵpropertyInterpolate("title",m.ɵɵpipeBind1(31,13,"loading")),m.ɵɵadvance(4),m.ɵɵtextInterpolate(m.ɵɵpipeBind1(35,15,"save")),m.ɵɵadvance(5),m.ɵɵtextInterpolate1("\n ",m.ɵɵpipeBind1(40,17,"cancel"),"\n "),m.ɵɵadvance(5),m.ɵɵproperty("ngIf",t.editMode)}},directives:[x.NgControlStatusGroup,x.NgForm,b.ApiActionDirective,S.NgIf,w.A11yTitleDirective,x.RadioControlValueAccessor,x.DefaultValueAccessor,x.NgControlStatus,x.NgModel,S.NgClass,x.RequiredValidator,x.CheckboxControlValueAccessor,S.NgForOf,C.StopPropDirective],pipes:[I.I18nPipe],encapsulation:2}),e}();t.UserAddEditComponent=j},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&(t[0].checked=!0)})),[3,5];case 4:return i.sent(),[3,5];case 5:return this.loading=!1,[2]}}))}))},e.prototype.check=function(e,t){e.checked=null==t?!e.checked:t,e.checked||(e.readOnly=!1)},e.prototype.selectAll=function(e){var t=this;this.groups.forEach((function(n){return t.check(n,e)}))},e.prototype.submit=function(){return r(this,void 0,void 0,(function(){var e;return i(this,(function(t){switch(t.label){case 0:(e=new a.OrganizationUserUpdateGroupsRequest).groupIds=this.groups.filter((function(e){return e.checked})).map((function(e){return e.id})),t.label=1;case 1:return t.trys.push([1,3,,4]),this.formPromise=this.apiService.putOrganizationUserGroups(this.organizationId,this.organizationUserId,e),[4,this.formPromise];case 2:return t.sent(),this.toasterService.popAsync("success",null,this.i18nService.t("editedGroupsForUser",this.name)),this.onSavedUser.emit(),[3,4];case 3:return t.sent(),[3,4];case 4:return[2]}}))}))},e.ɵfac=function(t){return new(t||e)(l.ɵɵdirectiveInject(c.ApiService),l.ɵɵdirectiveInject(p.I18nService),l.ɵɵdirectiveInject(u.ToasterService))},e.ɵcmp=l.ɵɵdefineComponent({type:e,selectors:[["app-user-groups"]],inputs:{name:"name",organizationUserId:"organizationUserId",organizationId:"organizationId"},outputs:{onSavedUser:"onSavedUser"},decls:47,vars:20,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","groupAccessTitle",1,"modal","fade"],["role","document",1,"modal-dialog"],[1,"modal-content",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-header"],["id","groupAccessTitle",1,"modal-title"],["class","text-muted",4,"ngIf"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],["class","modal-body",4,"ngIf"],[1,"modal-footer"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],[1,"text-muted"],[1,"modal-body"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[4,"ngIf"],["class","table table-hover table-list mb-0",4,"ngIf"],[1,"table","table-hover","table-list","mb-0"],[4,"ngFor","ngForOf"],[1,"table-list-checkbox",3,"click"],["type","checkbox","appStopProp","",3,"ngModel","name","ngModelChange"],[3,"click"]],template:function(e,t){if(1&e&&(l.ɵɵelementStart(0,"div",0),l.ɵɵtext(1,"\n "),l.ɵɵelementStart(2,"div",1),l.ɵɵtext(3,"\n "),l.ɵɵelementStart(4,"form",2,3),l.ɵɵlistener("ngSubmit",(function(){return t.submit()})),l.ɵɵtext(6,"\n "),l.ɵɵelementStart(7,"div",4),l.ɵɵtext(8,"\n "),l.ɵɵelementStart(9,"h2",5),l.ɵɵtext(10),l.ɵɵpipe(11,"i18n"),l.ɵɵtemplate(12,g,2,1,"small",6),l.ɵɵtext(13,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(14,"\n "),l.ɵɵelementStart(15,"button",7),l.ɵɵpipe(16,"i18n"),l.ɵɵtext(17,"\n "),l.ɵɵelementStart(18,"span",8),l.ɵɵtext(19,"×"),l.ɵɵelementEnd(),l.ɵɵtext(20,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(21,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(22,"\n "),l.ɵɵtemplate(23,x,9,6,"div",9),l.ɵɵtext(24,"\n "),l.ɵɵtemplate(25,C,10,5,"div",9),l.ɵɵtext(26,"\n "),l.ɵɵelementStart(27,"div",10),l.ɵɵtext(28,"\n "),l.ɵɵelementStart(29,"button",11),l.ɵɵtext(30,"\n "),l.ɵɵelement(31,"i",12),l.ɵɵpipe(32,"i18n"),l.ɵɵtext(33,"\n "),l.ɵɵelementStart(34,"span"),l.ɵɵtext(35),l.ɵɵpipe(36,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(37,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(38,"\n "),l.ɵɵelementStart(39,"button",13),l.ɵɵtext(40),l.ɵɵpipe(41,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(42,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(43,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(44,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(45,"\n"),l.ɵɵelementEnd(),l.ɵɵtext(46,"\n")),2&e){var n=l.ɵɵreference(5);l.ɵɵadvance(4),l.ɵɵproperty("appApiAction",t.formPromise),l.ɵɵadvance(6),l.ɵɵtextInterpolate1("\n ",l.ɵɵpipeBind1(11,10,"groupAccess"),"\n "),l.ɵɵadvance(2),l.ɵɵproperty("ngIf",t.name),l.ɵɵadvance(3),l.ɵɵpropertyInterpolate("appA11yTitle",l.ɵɵpipeBind1(16,12,"close")),l.ɵɵadvance(8),l.ɵɵproperty("ngIf",t.loading),l.ɵɵadvance(2),l.ɵɵproperty("ngIf",!t.loading),l.ɵɵadvance(4),l.ɵɵproperty("disabled",n.loading),l.ɵɵadvance(2),l.ɵɵpropertyInterpolate("title",l.ɵɵpipeBind1(32,14,"loading")),l.ɵɵadvance(4),l.ɵɵtextInterpolate(l.ɵɵpipeBind1(36,16,"save")),l.ɵɵadvance(5),l.ɵɵtextInterpolate(l.ɵɵpipeBind1(41,18,"cancel"))}},directives:[d.ɵangular_packages_forms_forms_y,d.NgControlStatusGroup,d.NgForm,m.ApiActionDirective,h.NgIf,f.A11yTitleDirective,h.NgForOf,d.CheckboxControlValueAccessor,v.StopPropDirective,d.NgControlStatus,d.NgModel],pipes:[y.I18nPipe],encapsulation:2}),e}();t.UserGroupsComponent=I},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0?e.data:[],this.orgPolicies.forEach((function(e){t.policiesEnabledMap.set(e.type,e.enabled)})),this.policies.forEach((function(e){e.enabled=t.policiesEnabledMap.has(e.type)&&t.policiesEnabledMap.get(e.type)})),this.loading=!1,[2]}}))}))},e.prototype.edit=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(s.ModalComponent);this.modal=this.editModalRef.createComponent(n).instance;var r=this.modal.show(l.PolicyEditComponent,this.editModalRef);r.name=e.name,r.description=e.description,r.type=e.type,r.organizationId=this.organizationId,r.policiesEnabledMap=this.policiesEnabledMap,r.onSavedPolicy.subscribe((function(){t.modal.close(),t.load()})),this.modal.onClosed.subscribe((function(){t.modal=null}))},e.prototype.goToEnterprisePortal=function(){return r(this,void 0,void 0,(function(){var e,t;return i(this,(function(n){switch(n.label){case 0:if(null!=this.enterpriseTokenPromise)return[2];n.label=1;case 1:return n.trys.push([1,5,,6]),this.enterpriseTokenPromise=this.apiService.getEnterprisePortalSignInToken(),[4,this.enterpriseTokenPromise];case 2:return null==(e=n.sent())?[3,4]:[4,this.userService.getUserId()];case 3:t=n.sent(),this.platformUtilsService.launchUri(this.enterpriseUrl+"/login?userId="+t+"&token="+window.encodeURIComponent(e)+"&organizationId="+this.organizationId),n.label=4;case 4:return[3,6];case 5:return n.sent(),[3,6];case 6:return this.enterpriseTokenPromise=null,[2]}}))}))},e.ɵfac=function(t){return new(t||e)(c.ɵɵdirectiveInject(p.ApiService),c.ɵɵdirectiveInject(u.ActivatedRoute),c.ɵɵdirectiveInject(d.I18nService),c.ɵɵdirectiveInject(c.ComponentFactoryResolver),c.ɵɵdirectiveInject(m.PlatformUtilsService),c.ɵɵdirectiveInject(h.UserService),c.ɵɵdirectiveInject(u.Router),c.ɵɵdirectiveInject(f.EnvironmentService))},e.ɵcmp=c.ɵɵdefineComponent({type:e,selectors:[["app-org-policies"]],viewQuery:function(e,t){var n;(1&e&&c.ɵɵstaticViewQuery(b,!0,o.ViewContainerRef),2&e)&&(c.ɵɵqueryRefresh(n=c.ɵɵloadQuery())&&(t.editModalRef=n.first))},decls:16,vars:6,consts:[[3,"type",4,"ngIf"],[1,"page-header","d-flex"],[4,"ngIf"],["class","table table-hover table-list",4,"ngIf"],["editTemplate",""],[3,"type"],["type","button",1,"btn","btn-outline-secondary",3,"click"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[1,"table","table-hover","table-list"],[4,"ngFor","ngForOf"],["href","#","appStopClick","",3,"click"],["class","badge badge-success",4,"ngIf"],[1,"text-muted","d-block"],[1,"badge","badge-success"]],template:function(e,t){1&e&&(c.ɵɵtemplate(0,S,10,7,"app-callout",0),c.ɵɵtext(1,"\n"),c.ɵɵelementStart(2,"div",1),c.ɵɵtext(3,"\n "),c.ɵɵelementStart(4,"h1"),c.ɵɵtext(5),c.ɵɵpipe(6,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(7,"\n"),c.ɵɵelementEnd(),c.ɵɵtext(8,"\n"),c.ɵɵtemplate(9,w,9,6,"ng-container",2),c.ɵɵtext(10,"\n"),c.ɵɵtemplate(11,P,7,1,"table",3),c.ɵɵtext(12,"\n"),c.ɵɵtemplate(13,k,0,0,"ng-template",null,4,c.ɵɵtemplateRefExtractor),c.ɵɵtext(15,"\n")),2&e&&(c.ɵɵproperty("ngIf",t.userCanAccessBusinessPortal),c.ɵɵadvance(5),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(6,4,"policies")),c.ɵɵadvance(4),c.ɵɵproperty("ngIf",t.loading),c.ɵɵadvance(2),c.ɵɵproperty("ngIf",!t.loading))},directives:[v.NgIf,y.CalloutComponent,v.NgForOf,g.StopClickDirective],pipes:[x.I18nPipe],encapsulation:2}),e}();t.PoliciesComponent=_},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(6);t.ApiService=r.ApiService;var i=n(860);t.AppIdService=i.AppIdService;var o=n(87);t.AuditService=o.AuditService;var a=n(58);t.AuthService=a.AuthService;var s=n(19);t.CipherService=s.CipherService;var l=n(40);t.CollectionService=l.CollectionService;var c=n(18);t.CryptoService=c.CryptoService;var p=n(64);t.EnvironmentService=p.EnvironmentService;var u=n(48);t.FolderService=u.FolderService;var d=n(3);t.I18nService=d.I18nService;var m=n(861);t.LogService=m.LogService;var h=n(14);t.MessagingService=h.MessagingService;var f=n(36);t.PasswordGenerationService=f.PasswordGenerationService;var v=n(5);t.PlatformUtilsService=v.PlatformUtilsService;var y=n(80);t.SearchService=y.SearchService;var g=n(281);t.SettingsService=g.SettingsService;var x=n(41);t.StorageService=x.StorageService;var b=n(38);t.StateService=b.StateService;var S=n(61);t.SyncService=S.SyncService;var w=n(103);t.TokenService=w.TokenService;var C=n(114);t.TotpService=C.TotpService;var I=n(7);t.UserService=I.UserService;var E=n(93);t.VaultTimeoutService=E.VaultTimeoutService},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]1?"×"+n.quantity:""," @ ",a.ɵɵpipeBind2(4,5,n.amount,"$"),"\n "),a.ɵɵadvance(4),a.ɵɵtextInterpolate2("\n ",a.ɵɵpipeBind2(8,8,n.quantity*n.amount,"$")," /",a.ɵɵpipeBind1(9,11,n.interval),"\n ")}}function D(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",20),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"strong",21),a.ɵɵtext(3),a.ɵɵpipe(4,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(5,"\n "),a.ɵɵelementStart(6,"table",22),a.ɵɵtext(7,"\n "),a.ɵɵelementStart(8,"tbody"),a.ɵɵtext(9,"\n "),a.ɵɵtemplate(10,B,11,13,"tr",23),a.ɵɵtext(11,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(12,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(13,"\n "),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext(3);a.ɵɵadvance(3),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(4,2,"details")),a.ɵɵadvance(7),a.ɵɵproperty("ngForOf",n.subscription.items)}}function R(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",14),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"div",15),a.ɵɵtext(3,"\n "),a.ɵɵelementStart(4,"dl"),a.ɵɵtext(5,"\n "),a.ɵɵelementStart(6,"dt"),a.ɵɵtext(7),a.ɵɵpipe(8,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(9,"\n "),a.ɵɵelementStart(10,"dd"),a.ɵɵtext(11),a.ɵɵelementEnd(),a.ɵɵtext(12,"\n "),a.ɵɵtemplate(13,M,23,15,"ng-container",1),a.ɵɵtext(14,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(15,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(16,"\n "),a.ɵɵtemplate(17,D,14,4,"div",16),a.ɵɵtext(18,"\n "),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext(2);a.ɵɵadvance(7),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(8,4,"billingPlan")),a.ɵɵadvance(4),a.ɵɵtextInterpolate(n.sub.plan.name),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",n.subscription),a.ɵɵadvance(4),a.ɵɵproperty("ngIf",n.subscription)}}function V(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",27),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"div",28),a.ɵɵtext(3,"\n "),a.ɵɵelementStart(4,"button",29),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(3).closeUpdateLicense(!1)})),a.ɵɵpipe(5,"i18n"),a.ɵɵelementStart(6,"span",30),a.ɵɵtext(7,"×"),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵtext(8,"\n "),a.ɵɵelementStart(9,"h3",31),a.ɵɵtext(10),a.ɵɵpipe(11,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(12,"\n "),a.ɵɵelementStart(13,"app-update-license",32),a.ɵɵlistener("onUpdated",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(3).closeUpdateLicense(!0)}))("onCanceled",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(3).closeUpdateLicense(!1)})),a.ɵɵelementEnd(),a.ɵɵtext(14,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(15,"\n "),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext(3);a.ɵɵadvance(4),a.ɵɵpropertyInterpolate("appA11yTitle",a.ɵɵpipeBind1(5,3,"cancel")),a.ɵɵadvance(6),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(11,5,"updateLicense")),a.ɵɵadvance(3),a.ɵɵproperty("organizationId",r.organizationId)}}function j(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementContainerStart(0),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"div"),a.ɵɵtext(3,"\n "),a.ɵɵelementStart(4,"button",24),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(2).updateLicense()})),a.ɵɵtext(5),a.ɵɵpipe(6,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(7,"\n "),a.ɵɵelementStart(8,"a",25),a.ɵɵtext(9),a.ɵɵpipe(10,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(11,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(12,"\n "),a.ɵɵtemplate(13,V,16,7,"div",26),a.ɵɵtext(14,"\n "),a.ɵɵelementContainerEnd()}if(2&e){var r=a.ɵɵnextContext(2);a.ɵɵadvance(5),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(6,3,"updateLicense"),"\n "),a.ɵɵadvance(4),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(10,5,"manageSubscription"),"\n "),a.ɵɵadvance(4),a.ɵɵproperty("ngIf",r.showUpdateLicense)}}function F(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"button",24),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(3).changePlan()})),a.ɵɵtext(1),a.ɵɵpipe(2,"i18n"),a.ɵɵelementEnd()}2&e&&(a.ɵɵadvance(1),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(2,1,"changeBillingPlan"),"\n "))}function U(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"button",42),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(3).downloadLicense()})),a.ɵɵtext(1),a.ɵɵpipe(2,"i18n"),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext(3);a.ɵɵproperty("disabled",r.showDownloadLicense),a.ɵɵadvance(1),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(2,2,"downloadLicense"),"\n ")}}function N(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"button",43,44),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(3).cancel()})),a.ɵɵtext(2,"\n "),a.ɵɵelement(3,"i",10),a.ɵɵpipe(4,"i18n"),a.ɵɵtext(5,"\n "),a.ɵɵelementStart(6,"span"),a.ɵɵtext(7),a.ɵɵpipe(8,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(9,"\n "),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵreference(1),i=a.ɵɵnextContext(3);a.ɵɵproperty("appApiAction",i.cancelPromise)("disabled",r.loading),a.ɵɵadvance(3),a.ɵɵpropertyInterpolate("title",a.ɵɵpipeBind1(4,4,"loading")),a.ɵɵadvance(4),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(8,6,"cancelSubscription"))}}function z(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"app-change-plan",45),a.ɵɵlistener("onChanged",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(3).closeChangePlan(!0)}))("onCanceled",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(3).closeChangePlan(!1)})),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext(3);a.ɵɵproperty("organizationId",r.organizationId)}}function L(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",46),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"app-download-license",47),a.ɵɵlistener("onDownloaded",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(3).closeDownloadLicense()}))("onCanceled",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(3).closeDownloadLicense()})),a.ɵɵelementEnd(),a.ɵɵtext(3,"\n "),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext(3);a.ɵɵadvance(2),a.ɵɵproperty("organizationId",r.organizationId)}}function G(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",33),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"button",24),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(4).adjustSeats(!0)})),a.ɵɵtext(3),a.ɵɵpipe(4,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(5,"\n "),a.ɵɵelementStart(6,"button",50),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(4).adjustSeats(!1)})),a.ɵɵtext(7),a.ɵɵpipe(8,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(9,"\n "),a.ɵɵelementEnd()}2&e&&(a.ɵɵadvance(3),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(4,2,"addSeats"),"\n "),a.ɵɵadvance(4),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(8,4,"removeSeats"),"\n "))}function K(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"app-adjust-seats",51),a.ɵɵlistener("onAdjusted",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(4).closeSeats(!0)}))("onCanceled",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(4).closeSeats(!1)})),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext(4);a.ɵɵproperty("seatPrice",r.seatPrice)("add",r.adjustSeatsAdd)("organizationId",r.organizationId)("interval",r.billingInterval)}}function q(e,t){if(1&e&&(a.ɵɵelementContainerStart(0),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"div",46),a.ɵɵtext(3,"\n "),a.ɵɵtemplate(4,G,10,6,"div",48),a.ɵɵtext(5,"\n "),a.ɵɵtemplate(6,K,1,4,"app-adjust-seats",49),a.ɵɵtext(7,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(8,"\n "),a.ɵɵelementContainerEnd()),2&e){var n=a.ɵɵnextContext(3);a.ɵɵadvance(4),a.ɵɵproperty("ngIf",!n.showAdjustSeats),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",n.showAdjustSeats)}}function W(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",33),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"button",24),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(4).adjustStorage(!0)})),a.ɵɵtext(3),a.ɵɵpipe(4,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(5,"\n "),a.ɵɵelementStart(6,"button",50),a.ɵɵlistener("click",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(4).adjustStorage(!1)})),a.ɵɵtext(7),a.ɵɵpipe(8,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(9,"\n "),a.ɵɵelementEnd()}2&e&&(a.ɵɵadvance(3),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(4,2,"addStorage"),"\n "),a.ɵɵadvance(4),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(8,4,"removeStorage"),"\n "))}function H(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"app-adjust-storage",53),a.ɵɵlistener("onAdjusted",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(4).closeStorage(!0)}))("onCanceled",(function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(4).closeStorage(!1)})),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext(4);a.ɵɵproperty("storageGbPrice",r.storageGbPrice)("add",r.adjustStorageAdd)("organizationId",r.organizationId)("interval",r.billingInterval)}}function $(e,t){if(1&e&&(a.ɵɵelementContainerStart(0),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"div",46),a.ɵɵtext(3,"\n "),a.ɵɵtemplate(4,W,10,6,"div",48),a.ɵɵtext(5,"\n "),a.ɵɵtemplate(6,H,1,4,"app-adjust-storage",52),a.ɵɵtext(7,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(8,"\n "),a.ɵɵelementContainerEnd()),2&e){var n=a.ɵɵnextContext(3);a.ɵɵadvance(4),a.ɵɵproperty("ngIf",!n.showAdjustStorage),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",n.showAdjustStorage)}}var Y=function(e){return{width:e}};function Q(e,t){if(1&e&&(a.ɵɵelementContainerStart(0),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"div",33),a.ɵɵtext(3,"\n "),a.ɵɵtemplate(4,F,3,3,"button",34),a.ɵɵtext(5,"\n "),a.ɵɵtemplate(6,U,3,4,"button",35),a.ɵɵtext(7,"\n "),a.ɵɵtemplate(8,N,10,8,"button",36),a.ɵɵtext(9,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(10,"\n "),a.ɵɵtemplate(11,z,1,1,"app-change-plan",37),a.ɵɵtext(12,"\n "),a.ɵɵtemplate(13,L,4,1,"div",38),a.ɵɵtext(14,"\n "),a.ɵɵelementStart(15,"h2",39),a.ɵɵtext(16),a.ɵɵpipe(17,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(18,"\n "),a.ɵɵelementStart(19,"p"),a.ɵɵtext(20),a.ɵɵpipe(21,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(22,"\n "),a.ɵɵtemplate(23,q,9,2,"ng-container",1),a.ɵɵtext(24,"\n "),a.ɵɵelementStart(25,"h2",39),a.ɵɵtext(26),a.ɵɵpipe(27,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(28,"\n "),a.ɵɵelementStart(29,"p"),a.ɵɵtext(30),a.ɵɵpipe(31,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(32,"\n "),a.ɵɵelementStart(33,"div",40),a.ɵɵtext(34,"\n "),a.ɵɵelementStart(35,"div",41),a.ɵɵtext(36),a.ɵɵpipe(37,"percent"),a.ɵɵelementEnd(),a.ɵɵtext(38,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(39,"\n "),a.ɵɵtemplate(40,$,9,2,"ng-container",1),a.ɵɵtext(41,"\n "),a.ɵɵelementContainerEnd()),2&e){var n=a.ɵɵnextContext(2);a.ɵɵadvance(4),a.ɵɵproperty("ngIf",!n.showChangePlan),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",n.canDownloadLicense),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",n.subscription&&!n.subscription.cancelled&&!n.subscriptionMarkedForCancel),a.ɵɵadvance(3),a.ɵɵproperty("ngIf",n.showChangePlan),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",n.showDownloadLicense),a.ɵɵadvance(3),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(17,14,"userSeats")),a.ɵɵadvance(4),a.ɵɵtextInterpolate(a.ɵɵpipeBind2(21,16,"subscriptionUserSeats",n.sub.seats)),a.ɵɵadvance(3),a.ɵɵproperty("ngIf",n.subscription&&n.canAdjustSeats&&!n.subscription.cancelled&&!n.subscriptionMarkedForCancel),a.ɵɵadvance(3),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(27,19,"storage")),a.ɵɵadvance(4),a.ɵɵtextInterpolate(a.ɵɵpipeBind3(31,21,"subscriptionStorage",n.sub.maxStorageGb||0,n.sub.storageName||"0 MB")),a.ɵɵadvance(5),a.ɵɵproperty("ngStyle",a.ɵɵpureFunction1(27,Y,n.storageProgressWidth+"%")),a.ɵɵattribute("aria-valuenow",n.storagePercentage),a.ɵɵadvance(1),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(37,25,n.storagePercentage/100),""),a.ɵɵadvance(4),a.ɵɵproperty("ngIf",n.subscription&&!n.subscription.cancelled&&!n.subscriptionMarkedForCancel)}}function J(e,t){if(1&e&&(a.ɵɵelementContainerStart(0),a.ɵɵtext(1,"\n "),a.ɵɵtemplate(2,E,4,6,"app-callout",5),a.ɵɵtext(3,"\n "),a.ɵɵtemplate(4,P,18,14,"app-callout",5),a.ɵɵtext(5,"\n "),a.ɵɵtemplate(6,O,17,9,"dl",1),a.ɵɵtext(7,"\n "),a.ɵɵtemplate(8,R,19,6,"div",6),a.ɵɵtext(9,"\n "),a.ɵɵtemplate(10,j,15,7,"ng-container",1),a.ɵɵtext(11,"\n "),a.ɵɵtemplate(12,Q,42,29,"ng-container",1),a.ɵɵtext(13,"\n"),a.ɵɵelementContainerEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(2),a.ɵɵproperty("ngIf",n.subscription&&n.subscription.cancelled),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",n.subscriptionMarkedForCancel),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",n.selfHosted),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",!n.selfHosted),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",n.selfHosted),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",!n.selfHosted)}}var X=function(){function e(e,t,n,r,i,o){this.apiService=e,this.platformUtilsService=t,this.i18nService=n,this.toasterService=r,this.messagingService=i,this.route=o,this.loading=!1,this.firstLoaded=!1,this.adjustSeatsAdd=!0,this.showAdjustSeats=!1,this.adjustStorageAdd=!0,this.showAdjustStorage=!1,this.showUpdateLicense=!1,this.showDownloadLicense=!1,this.showChangePlan=!1,this.selfHosted=!1,this.selfHosted=t.isSelfHost()}return e.prototype.ngOnInit=function(){return r(this,void 0,void 0,(function(){var e=this;return i(this,(function(t){return this.route.parent.parent.params.subscribe((function(t){return r(e,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.organizationId=t.organizationId,[4,this.load()];case 1:return e.sent(),this.firstLoaded=!0,[2]}}))}))})),[2]}))}))},e.prototype.load=function(){return r(this,void 0,void 0,(function(){var e;return i(this,(function(t){switch(t.label){case 0:return this.loading?[2]:(this.loading=!0,e=this,[4,this.apiService.getOrganizationSubscription(this.organizationId)]);case 1:return e.sub=t.sent(),this.loading=!1,[2]}}))}))},e.prototype.reinstate=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.loading?[2]:[4,this.platformUtilsService.showDialog(this.i18nService.t("reinstateConfirmation"),this.i18nService.t("reinstateSubscription"),this.i18nService.t("yes"),this.i18nService.t("cancel"))];case 1:if(!e.sent())return[2];e.label=2;case 2:return e.trys.push([2,4,,5]),this.reinstatePromise=this.apiService.postOrganizationReinstate(this.organizationId),[4,this.reinstatePromise];case 3:return e.sent(),this.toasterService.popAsync("success",null,this.i18nService.t("reinstated")),this.load(),[3,5];case 4:return e.sent(),[3,5];case 5:return[2]}}))}))},e.prototype.cancel=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.loading?[2]:[4,this.platformUtilsService.showDialog(this.i18nService.t("cancelConfirmation"),this.i18nService.t("cancelSubscription"),this.i18nService.t("yes"),this.i18nService.t("no"),"warning")];case 1:if(!e.sent())return[2];e.label=2;case 2:return e.trys.push([2,4,,5]),this.cancelPromise=this.apiService.postOrganizationCancel(this.organizationId),[4,this.cancelPromise];case 3:return e.sent(),this.toasterService.popAsync("success",null,this.i18nService.t("canceledSubscription")),this.load(),[3,5];case 4:return e.sent(),[3,5];case 5:return[2]}}))}))},e.prototype.changePlan=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return null==this.subscription&&this.sub.planType===o.PlanType.Free?(this.showChangePlan=!this.showChangePlan,[2]):[4,this.platformUtilsService.showDialog(this.i18nService.t("changeBillingPlanDesc"),this.i18nService.t("changeBillingPlan"),this.i18nService.t("contactSupport"),this.i18nService.t("close"))];case 1:return e.sent()&&this.platformUtilsService.launchUri("https://bitwarden.com/contact"),[2]}}))}))},e.prototype.closeChangePlan=function(e){this.showChangePlan=!1},e.prototype.downloadLicense=function(){this.showDownloadLicense=!this.showDownloadLicense},e.prototype.closeDownloadLicense=function(){this.showDownloadLicense=!1},e.prototype.updateLicense=function(){this.loading||(this.showUpdateLicense=!0)},e.prototype.closeUpdateLicense=function(e){this.showUpdateLicense=!1,e&&(this.load(),this.messagingService.send("updatedOrgLicense"))},e.prototype.adjustSeats=function(e){this.adjustSeatsAdd=e,this.showAdjustSeats=!0},e.prototype.closeSeats=function(e){this.showAdjustSeats=!1,e&&this.load()},e.prototype.adjustStorage=function(e){this.adjustStorageAdd=e,this.showAdjustStorage=!0},e.prototype.closeStorage=function(e){this.showAdjustStorage=!1,e&&this.load()},Object.defineProperty(e.prototype,"isExpired",{get:function(){return null!=this.sub&&null!=this.sub.expiration&&new Date(this.sub.expiration)0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]

'+this.i18nService.t("twoFactorRecoveryYourCode")+":

"+this.code+'

'+new Date+"

"),e.onafterprint=function(){return e.close()},e.print()},e.prototype.formatString=function(e){return null==e?null:e.replace(/(.{4})/g,"$1 ").trim().toUpperCase()},e.prototype.processResponse=function(e){this.code=this.formatString(e.code)},e.ɵfac=function(t){return new(t||e)(i.ɵɵdirectiveInject(o.I18nService))},e.ɵcmp=i.ɵɵdefineComponent({type:e,selectors:[["app-two-factor-recovery"]],decls:31,vars:11,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","2faRecoveryTitle",1,"modal","fade"],["role","document",1,"modal-dialog"],[1,"modal-content"],[1,"modal-header"],["id","2faRecoveryTitle",1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],[3,"organizationId","type","onAuthed",4,"ngIf"],[4,"ngIf"],[3,"organizationId","type","onAuthed"],[1,"modal-body","text-center"],[1,"modal-footer"],["type","button","class","btn btn-primary",3,"click",4,"ngIf"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],[1,"text-lg"],["type","button",1,"btn","btn-primary",3,"click"]],template:function(e,t){1&e&&(i.ɵɵelementStart(0,"div",0),i.ɵɵtext(1,"\n "),i.ɵɵelementStart(2,"div",1),i.ɵɵtext(3,"\n "),i.ɵɵelementStart(4,"div",2),i.ɵɵtext(5,"\n "),i.ɵɵelementStart(6,"div",3),i.ɵɵtext(7,"\n "),i.ɵɵelementStart(8,"h2",4),i.ɵɵtext(9),i.ɵɵpipe(10,"i18n"),i.ɵɵelementStart(11,"small"),i.ɵɵtext(12),i.ɵɵpipe(13,"i18n"),i.ɵɵelementEnd(),i.ɵɵtext(14,"\n "),i.ɵɵelementEnd(),i.ɵɵtext(15,"\n "),i.ɵɵelementStart(16,"button",5),i.ɵɵpipe(17,"i18n"),i.ɵɵtext(18,"\n "),i.ɵɵelementStart(19,"span",6),i.ɵɵtext(20,"×"),i.ɵɵelementEnd(),i.ɵɵtext(21,"\n "),i.ɵɵelementEnd(),i.ɵɵtext(22,"\n "),i.ɵɵelementEnd(),i.ɵɵtext(23,"\n "),i.ɵɵtemplate(24,p,2,2,"app-two-factor-verify",7),i.ɵɵtext(25,"\n "),i.ɵɵtemplate(26,h,18,6,"ng-container",8),i.ɵɵtext(27,"\n "),i.ɵɵelementEnd(),i.ɵɵtext(28,"\n "),i.ɵɵelementEnd(),i.ɵɵtext(29,"\n"),i.ɵɵelementEnd(),i.ɵɵtext(30,"\n")),2&e&&(i.ɵɵadvance(9),i.ɵɵtextInterpolate1("\n ",i.ɵɵpipeBind1(10,5,"twoStepLogin"),"\n "),i.ɵɵadvance(3),i.ɵɵtextInterpolate(i.ɵɵpipeBind1(13,7,"recoveryCodeTitle")),i.ɵɵadvance(4),i.ɵɵpropertyInterpolate("appA11yTitle",i.ɵɵpipeBind1(17,9,"close")),i.ɵɵadvance(8),i.ɵɵproperty("ngIf",!t.authed),i.ɵɵadvance(2),i.ɵɵproperty("ngIf",t.authed))},directives:[a.A11yTitleDirective,s.NgIf,l.TwoFactorVerifyComponent],pipes:[c.I18nPipe],encapsulation:2}),e}();t.TwoFactorRecoveryComponent=f},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]1&&n.configured)}}function D(e,t){1&e&&(d.ɵɵelementContainerStart(0),d.ɵɵtext(1,"\n "),d.ɵɵelement(2,"i",38),d.ɵɵtext(3,"\n "),d.ɵɵelementContainerEnd())}function R(e,t){1&e&&(d.ɵɵelementContainerStart(0),d.ɵɵtext(1,"\n "),d.ɵɵelement(2,"i",38),d.ɵɵtext(3),d.ɵɵpipe(4,"i18n"),d.ɵɵelementContainerEnd()),2&e&&(d.ɵɵadvance(3),d.ɵɵtextInterpolate1("\n ",d.ɵɵpipeBind1(4,1,"twoFactorU2fWaiting"),"...\n "))}function V(e,t){1&e&&(d.ɵɵelementContainerStart(0),d.ɵɵtext(1,"\n "),d.ɵɵelement(2,"i",39),d.ɵɵtext(3),d.ɵɵpipe(4,"i18n"),d.ɵɵelementContainerEnd()),2&e&&(d.ɵɵadvance(3),d.ɵɵtextInterpolate1("\n ",d.ɵɵpipeBind1(4,1,"twoFactorU2fClickSave"),"\n "))}function j(e,t){1&e&&(d.ɵɵelementContainerStart(0),d.ɵɵtext(1,"\n "),d.ɵɵelement(2,"i",40),d.ɵɵtext(3),d.ɵɵpipe(4,"i18n"),d.ɵɵelementContainerEnd()),2&e&&(d.ɵɵadvance(3),d.ɵɵtextInterpolate1("\n ",d.ɵɵpipeBind1(4,1,"twoFactorU2fProblemReadingTryAgain"),"\n "))}function F(e,t){if(1&e&&(d.ɵɵelementContainerStart(0),d.ɵɵtext(1,"\n "),d.ɵɵtemplate(2,R,5,3,"ng-container",25),d.ɵɵtext(3,"\n "),d.ɵɵtemplate(4,V,5,3,"ng-container",25),d.ɵɵtext(5,"\n "),d.ɵɵtemplate(6,j,5,3,"ng-container",25),d.ɵɵtext(7,"\n "),d.ɵɵelementContainerEnd()),2&e){var n=d.ɵɵnextContext(2);d.ɵɵadvance(2),d.ɵɵproperty("ngIf",n.webAuthnListening),d.ɵɵadvance(2),d.ɵɵproperty("ngIf",n.webAuthnResponse),d.ɵɵadvance(2),d.ɵɵproperty("ngIf",n.webAuthnError)}}function U(e,t){1&e&&(d.ɵɵelement(0,"i",41),d.ɵɵpipe(1,"i18n")),2&e&&d.ɵɵpropertyInterpolate("title",d.ɵɵpipeBind1(1,1,"loading"))}function N(e,t){1&e&&(d.ɵɵelementStart(0,"span"),d.ɵɵtext(1),d.ɵɵpipe(2,"i18n"),d.ɵɵelementEnd()),2&e&&(d.ɵɵadvance(1),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(2,1,"save")))}function z(e,t){if(1&e){var n=d.ɵɵgetCurrentView();d.ɵɵelementStart(0,"button",42,43),d.ɵɵlistener("click",(function(){return d.ɵɵrestoreView(n),d.ɵɵnextContext(2).disable()})),d.ɵɵtext(2,"\n "),d.ɵɵelement(3,"i",41),d.ɵɵpipe(4,"i18n"),d.ɵɵtext(5,"\n "),d.ɵɵelementStart(6,"span"),d.ɵɵtext(7),d.ɵɵpipe(8,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(9,"\n "),d.ɵɵelementEnd()}if(2&e){var r=d.ɵɵreference(1),i=d.ɵɵnextContext(2);d.ɵɵproperty("appApiAction",i.disablePromise)("disabled",r.loading),d.ɵɵadvance(3),d.ɵɵpropertyInterpolate("title",d.ɵɵpipeBind1(4,4,"loading")),d.ɵɵadvance(4),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(8,6,"disableAllKeys"))}}function L(e,t){if(1&e){var n=d.ɵɵgetCurrentView();d.ɵɵelementStart(0,"form",10,11),d.ɵɵlistener("ngSubmit",(function(){return d.ɵɵrestoreView(n),d.ɵɵnextContext().submit()})),d.ɵɵtext(2,"\n "),d.ɵɵelementStart(3,"div",12),d.ɵɵtext(4,"\n "),d.ɵɵtemplate(5,P,4,6,"app-callout",13),d.ɵɵtext(6,"\n "),d.ɵɵelementStart(7,"app-callout",14),d.ɵɵtext(8,"\n "),d.ɵɵelementStart(9,"p"),d.ɵɵtext(10),d.ɵɵpipe(11,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(12,"\n "),d.ɵɵelementStart(13,"ul",15),d.ɵɵtext(14,"\n "),d.ɵɵelementStart(15,"li"),d.ɵɵtext(16),d.ɵɵpipe(17,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(18,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(19,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(20,"\n "),d.ɵɵelement(21,"img",16),d.ɵɵtext(22,"\n "),d.ɵɵelementStart(23,"ul",17),d.ɵɵtext(24,"\n "),d.ɵɵtemplate(25,B,13,5,"li",18),d.ɵɵtext(26,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(27,"\n "),d.ɵɵelement(28,"hr"),d.ɵɵtext(29,"\n "),d.ɵɵelementStart(30,"p"),d.ɵɵtext(31),d.ɵɵpipe(32,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(33,"\n "),d.ɵɵelementStart(34,"ol"),d.ɵɵtext(35,"\n "),d.ɵɵelementStart(36,"li"),d.ɵɵtext(37),d.ɵɵpipe(38,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(39,"\n "),d.ɵɵelementStart(40,"li"),d.ɵɵtext(41),d.ɵɵpipe(42,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(43,"\n "),d.ɵɵelementStart(44,"li"),d.ɵɵtext(45),d.ɵɵpipe(46,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(47,"\n "),d.ɵɵelementStart(48,"li"),d.ɵɵtext(49),d.ɵɵpipe(50,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(51,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(52,"\n "),d.ɵɵelementStart(53,"div",19),d.ɵɵtext(54,"\n "),d.ɵɵelementStart(55,"div",20),d.ɵɵtext(56,"\n "),d.ɵɵelementStart(57,"label",21),d.ɵɵtext(58),d.ɵɵpipe(59,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(60,"\n "),d.ɵɵelementStart(61,"input",22),d.ɵɵlistener("ngModelChange",(function(e){return d.ɵɵrestoreView(n),d.ɵɵnextContext().name=e})),d.ɵɵelementEnd(),d.ɵɵtext(62,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(63,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(64,"\n "),d.ɵɵelementStart(65,"button",23,24),d.ɵɵlistener("click",(function(){return d.ɵɵrestoreView(n),d.ɵɵnextContext().readKey()})),d.ɵɵtext(67),d.ɵɵpipe(68,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(69,"\n "),d.ɵɵtemplate(70,D,4,0,"ng-container",25),d.ɵɵtext(71,"\n "),d.ɵɵtemplate(72,F,8,3,"ng-container",25),d.ɵɵtext(73,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(74,"\n "),d.ɵɵelementStart(75,"div",26),d.ɵɵtext(76,"\n "),d.ɵɵelementStart(77,"button",27),d.ɵɵtext(78,"\n "),d.ɵɵtemplate(79,U,2,3,"i",28),d.ɵɵtext(80,"\n "),d.ɵɵtemplate(81,N,3,3,"span",25),d.ɵɵtext(82,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(83,"\n "),d.ɵɵtemplate(84,z,10,8,"button",29),d.ɵɵtext(85,"\n "),d.ɵɵelementStart(86,"button",30),d.ɵɵtext(87),d.ɵɵpipe(88,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(89,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(90,"\n "),d.ɵɵelementEnd()}if(2&e){var r=d.ɵɵreference(1),i=d.ɵɵreference(66),o=d.ɵɵnextContext();d.ɵɵproperty("appApiAction",o.formPromise),d.ɵɵadvance(5),d.ɵɵproperty("ngIf",o.enabled),d.ɵɵadvance(5),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(11,23,"twoFactorWebAuthnWarning")),d.ɵɵadvance(6),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(17,25,"twoFactorWebAuthnSupportWeb")),d.ɵɵadvance(9),d.ɵɵproperty("ngForOf",o.keys),d.ɵɵadvance(6),d.ɵɵtextInterpolate1("",d.ɵɵpipeBind1(32,27,"twoFactorWebAuthnAdd"),":"),d.ɵɵadvance(6),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(38,29,"twoFactorU2fGiveName")),d.ɵɵadvance(4),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(42,31,"twoFactorU2fPlugInReadKey")),d.ɵɵadvance(4),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(46,33,"twoFactorU2fTouchButton")),d.ɵɵadvance(4),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(50,35,"twoFactorU2fSaveForm")),d.ɵɵadvance(9),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(59,37,"name")),d.ɵɵadvance(3),d.ɵɵproperty("ngModel",o.name)("disabled",!o.keyIdAvailable),d.ɵɵadvance(4),d.ɵɵproperty("disabled",i.loading||o.webAuthnListening||!o.keyIdAvailable)("appApiAction",o.challengePromise),d.ɵɵadvance(2),d.ɵɵtextInterpolate1("\n ",d.ɵɵpipeBind1(68,39,"readKey"),"\n "),d.ɵɵadvance(3),d.ɵɵproperty("ngIf",i.loading),d.ɵɵadvance(2),d.ɵɵproperty("ngIf",!i.loading),d.ɵɵadvance(5),d.ɵɵproperty("disabled",r.loading||!o.webAuthnResponse),d.ɵɵadvance(2),d.ɵɵproperty("ngIf",r.loading),d.ɵɵadvance(2),d.ɵɵproperty("ngIf",!r.loading),d.ɵɵadvance(3),d.ɵɵproperty("ngIf",o.enabled),d.ɵɵadvance(3),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(88,41,"close"))}}var G=function(e){function t(t,n,r,i,o){var a=e.call(this,t,n,r,i)||this;return a.ngZone=o,a.type=s.TwoFactorProviderType.WebAuthn,a.keyIdAvailable=null,a.keysConfiguredCount=0,a}return i(t,e),t.prototype.auth=function(t){e.prototype.auth.call(this,t),this.processResponse(t.response)},t.prototype.submit=function(){var t=this;if(null==this.webAuthnResponse||null==this.keyIdAvailable)return Promise.reject();var n=new p.UpdateTwoFactorWebAuthnRequest;return n.masterPasswordHash=this.masterPasswordHash,n.deviceResponse=this.webAuthnResponse,n.id=this.keyIdAvailable,n.name=this.name,e.prototype.enable.call(this,(function(){return o(t,void 0,void 0,(function(){var e;return a(this,(function(t){switch(t.label){case 0:return this.formPromise=this.apiService.putTwoFactorWebAuthn(n),[4,this.formPromise];case 1:return e=t.sent(),[4,this.processResponse(e)];case 2:return t.sent(),[2]}}))}))}))},t.prototype.disable=function(){return e.prototype.disable.call(this,this.formPromise)},t.prototype.remove=function(e){return o(this,void 0,void 0,(function(){var t,n,r;return a(this,(function(i){switch(i.label){case 0:return this.keysConfiguredCount<=1||null!=e.removePromise?[2]:(t=null!=e.name?e.name:this.i18nService.t("webAuthnkeyX",e.id),[4,this.platformUtilsService.showDialog(this.i18nService.t("removeU2fConfirmation"),t,this.i18nService.t("yes"),this.i18nService.t("no"),"warning")]);case 1:if(!i.sent())return[2];(n=new c.UpdateTwoFactorWebAuthnDeleteRequest).id=e.id,n.masterPasswordHash=this.masterPasswordHash,i.label=2;case 2:return i.trys.push([2,5,,6]),e.removePromise=this.apiService.deleteTwoFactorWebAuthn(n),[4,e.removePromise];case 3:return r=i.sent(),e.removePromise=null,[4,this.processResponse(r)];case 4:return i.sent(),[3,6];case 5:return i.sent(),[3,6];case 6:return[2]}}))}))},t.prototype.readKey=function(){return o(this,void 0,void 0,(function(){var e,t;return a(this,(function(n){switch(n.label){case 0:if(null==this.keyIdAvailable)return[2];(e=new l.PasswordVerificationRequest).masterPasswordHash=this.masterPasswordHash,n.label=1;case 1:return n.trys.push([1,3,,4]),this.challengePromise=this.apiService.getTwoFactorWebAuthnChallenge(e),[4,this.challengePromise];case 2:return t=n.sent(),this.readDevice(t),[3,4];case 3:return n.sent(),[3,4];case 4:return[2]}}))}))},t.prototype.readDevice=function(e){var t=this;console.log("listening for key..."),this.resetWebAuthn(!0),navigator.credentials.create({publicKey:e}).then((function(e){t.ngZone.run((function(){t.webAuthnListening=!1,t.webAuthnResponse=e}))})).catch((function(e){console.error(e),t.resetWebAuthn(!1),t.webAuthnError=!0}))},t.prototype.resetWebAuthn=function(e){void 0===e&&(e=!1),this.webAuthnResponse=null,this.webAuthnError=!1,this.webAuthnListening=e},t.prototype.processResponse=function(e){this.resetWebAuthn(),this.keys=[],this.keyIdAvailable=null,this.name=null,this.keysConfiguredCount=0;for(var t=function(t){if(null!=e.keys){var r=e.keys.filter((function(e){return e.id===t}));if(r.length>0)return n.keysConfiguredCount++,n.keys.push({id:t,name:r[0].name,configured:!0,migrated:r[0].migrated,removePromise:null}),"continue"}n.keys.push({id:t,name:null,configured:!1,removePromise:null}),null==n.keyIdAvailable&&(n.keyIdAvailable=t)},n=this,r=1;r<=5;r++)t(r);this.enabled=e.enabled},t.ɵfac=function(e){return new(e||t)(d.ɵɵdirectiveInject(m.ApiService),d.ɵɵdirectiveInject(h.I18nService),d.ɵɵdirectiveInject(f.ToasterService),d.ɵɵdirectiveInject(v.PlatformUtilsService),d.ɵɵdirectiveInject(d.NgZone))},t.ɵcmp=d.ɵɵdefineComponent({type:t,selectors:[["app-two-factor-webauthn"]],features:[d.ɵɵInheritDefinitionFeature],decls:31,vars:11,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","2faU2fTitle",1,"modal","fade"],["role","document",1,"modal-dialog","modal-lg"],[1,"modal-content"],[1,"modal-header"],["id","2faU2fTitle",1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],[3,"organizationId","type","onAuthed",4,"ngIf"],["ngNativeValidate","",3,"appApiAction","ngSubmit",4,"ngIf"],[3,"organizationId","type","onAuthed"],["ngNativeValidate","",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-body"],["type","success","icon","fa-check-circle",3,"title",4,"ngIf"],["type","warning"],[1,"mb-0"],["src","images/7.png","alt","",1,"float-right","ml-5"],[1,"fa-ul"],[3,"appApiAction",4,"ngFor","ngForOf"],[1,"row"],[1,"form-group","col-6"],["for","name"],["id","name","type","text","name","Name",1,"form-control",3,"ngModel","disabled","ngModelChange"],["type","button",1,"btn","btn-outline-secondary","mr-2",3,"disabled","appApiAction","click"],["readKeyBtn",""],[4,"ngIf"],[1,"modal-footer"],["type","submit",1,"btn","btn-primary",3,"disabled"],["class","fa fa-spinner fa-spin","aria-hidden","true",3,"title",4,"ngIf"],["type","button","class","btn btn-outline-secondary btn-submit",3,"appApiAction","disabled","click",4,"ngIf"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],["type","success","icon","fa-check-circle",3,"title"],[3,"appApiAction"],["removeKeyBtn",""],[1,"fa-li","fa","fa-key"],["class","fa fa-spin fa-spinner text-muted fa-fw","aria-hidden","true",3,"title",4,"ngIf"],["href","#","appStopClick","",3,"click"],["aria-hidden","true",1,"fa","fa-spin","fa-spinner","text-muted","fa-fw",3,"title"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted"],["aria-hidden","true",1,"fa","fa-check-circle","text-success"],["aria-hidden","true",1,"fa","fa-warning","text-danger"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["type","button",1,"btn","btn-outline-secondary","btn-submit",3,"appApiAction","disabled","click"],["disableBtn",""]],template:function(e,t){1&e&&(d.ɵɵelementStart(0,"div",0),d.ɵɵtext(1,"\n "),d.ɵɵelementStart(2,"div",1),d.ɵɵtext(3,"\n "),d.ɵɵelementStart(4,"div",2),d.ɵɵtext(5,"\n "),d.ɵɵelementStart(6,"div",3),d.ɵɵtext(7,"\n "),d.ɵɵelementStart(8,"h2",4),d.ɵɵtext(9),d.ɵɵpipe(10,"i18n"),d.ɵɵelementStart(11,"small"),d.ɵɵtext(12),d.ɵɵpipe(13,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(14,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(15,"\n "),d.ɵɵelementStart(16,"button",5),d.ɵɵpipe(17,"i18n"),d.ɵɵtext(18,"\n "),d.ɵɵelementStart(19,"span",6),d.ɵɵtext(20,"×"),d.ɵɵelementEnd(),d.ɵɵtext(21,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(22,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(23,"\n "),d.ɵɵtemplate(24,E,2,2,"app-two-factor-verify",7),d.ɵɵtext(25,"\n "),d.ɵɵtemplate(26,L,91,43,"form",8),d.ɵɵtext(27,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(28,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(29,"\n"),d.ɵɵelementEnd(),d.ɵɵtext(30,"\n")),2&e&&(d.ɵɵadvance(9),d.ɵɵtextInterpolate1("\n ",d.ɵɵpipeBind1(10,5,"twoStepLogin"),"\n "),d.ɵɵadvance(3),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(13,7,"webAuthnTitle")),d.ɵɵadvance(4),d.ɵɵpropertyInterpolate("appA11yTitle",d.ɵɵpipeBind1(17,9,"close")),d.ɵɵadvance(8),d.ɵɵproperty("ngIf",!t.authed),d.ɵɵadvance(2),d.ɵɵproperty("ngIf",t.authed))},directives:[y.A11yTitleDirective,g.NgIf,x.TwoFactorVerifyComponent,b.NgControlStatusGroup,b.NgForm,S.ApiActionDirective,w.CalloutComponent,g.NgForOf,b.DefaultValueAccessor,b.NgControlStatus,b.NgModel,C.StopClickDirective],pipes:[I.I18nPipe],encapsulation:2}),t}(u.TwoFactorBaseComponent);t.TwoFactorWebAuthnComponent=G},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0?this.keys[0].key:null,n.key2=null!=this.keys&&this.keys.length>1?this.keys[1].key:null,n.key3=null!=this.keys&&this.keys.length>2?this.keys[2].key:null,n.key4=null!=this.keys&&this.keys.length>3?this.keys[3].key:null,n.key5=null!=this.keys&&this.keys.length>4?this.keys[4].key:null,n.nfc=this.nfc,e.prototype.enable.call(this,(function(){return o(t,void 0,void 0,(function(){var e;return a(this,(function(t){switch(t.label){case 0:return this.formPromise=this.apiService.putTwoFactorYubiKey(n),[4,this.formPromise];case 1:return e=t.sent(),[4,this.processResponse(e)];case 2:return t.sent(),this.toasterService.popAsync("success",null,this.i18nService.t("yubikeysUpdated")),[2]}}))}))}))},t.prototype.disable=function(){return e.prototype.disable.call(this,this.disablePromise)},t.prototype.remove=function(e){e.existingKey=null,e.key=null},t.prototype.processResponse=function(e){this.enabled=e.enabled,this.keys=[{key:e.key1,existingKey:this.padRight(e.key1)},{key:e.key2,existingKey:this.padRight(e.key2)},{key:e.key3,existingKey:this.padRight(e.key3)},{key:e.key4,existingKey:this.padRight(e.key4)},{key:e.key5,existingKey:this.padRight(e.key5)}],this.nfc=e.nfc||!e.enabled},t.prototype.padRight=function(e,t,n){if(void 0===t&&(t="•"),void 0===n&&(n=44),null==e||null==t||e.length>=n)return e;for(var r=(n-e.length)/t.length,i=0;i0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&this.viewEvents(n[0]),null!=o&&o.unsubscribe(),[2]}}))}))})),null!=t&&t.unsubscribe(),[2]}}))}))}))},e.prototype.ngOnDestroy=function(){this.broadcasterService.unsubscribe("OrgVaultComponent")},e.prototype.clearGroupingFilters=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.ciphersComponent.showAddNew=!0,this.ciphersComponent.deleted=!1,this.groupingsComponent.searchPlaceholder=this.i18nService.t("searchVault"),[4,this.ciphersComponent.applyFilter()];case 1:return e.sent(),this.clearFilters(),this.go(),[2]}}))}))},e.prototype.filterCipherType=function(e,t){return void 0===t&&(t=!1),r(this,void 0,void 0,(function(){var n;return i(this,(function(r){switch(r.label){case 0:return this.ciphersComponent.showAddNew=!0,this.ciphersComponent.deleted=!1,this.groupingsComponent.searchPlaceholder=this.i18nService.t("searchType"),n=function(t){return t.type===e},t?[4,this.ciphersComponent.reload(n)]:[3,2];case 1:return r.sent(),[3,4];case 2:return[4,this.ciphersComponent.applyFilter(n)];case 3:r.sent(),r.label=4;case 4:return this.clearFilters(),this.type=e,this.go(),[2]}}))}))},e.prototype.filterCollection=function(e,t){return void 0===t&&(t=!1),r(this,void 0,void 0,(function(){var n;return i(this,(function(r){switch(r.label){case 0:return this.ciphersComponent.showAddNew=!0,this.ciphersComponent.deleted=!1,this.groupingsComponent.searchPlaceholder=this.i18nService.t("searchCollection"),n=function(t){return"unassigned"===e?null==t.collectionIds||0===t.collectionIds.length:null!=t.collectionIds&&t.collectionIds.indexOf(e)>-1},t?[4,this.ciphersComponent.reload(n)]:[3,2];case 1:return r.sent(),[3,4];case 2:return[4,this.ciphersComponent.applyFilter(n)];case 3:r.sent(),r.label=4;case 4:return this.clearFilters(),this.collectionId=e,this.go(),[2]}}))}))},e.prototype.filterDeleted=function(e){return void 0===e&&(e=!1),r(this,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return this.ciphersComponent.showAddNew=!1,this.ciphersComponent.deleted=!0,this.groupingsComponent.searchPlaceholder=this.i18nService.t("searchTrash"),e?[4,this.ciphersComponent.reload(null,!0)]:[3,2];case 1:return t.sent(),[3,4];case 2:return[4,this.ciphersComponent.applyFilter(null)];case 3:t.sent(),t.label=4;case 4:return this.clearFilters(),this.deleted=!0,this.go(),[2]}}))}))},e.prototype.filterSearchText=function(e){this.ciphersComponent.searchText=e,this.ciphersComponent.search(200)},e.prototype.editCipherAttachments=function(e){var t=this;if(null!=this.organization.maxStorageGb&&0!==this.organization.maxStorageGb){null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(a.ModalComponent);this.modal=this.attachmentsModalRef.createComponent(n).instance;var o=this.modal.show(c.AttachmentsComponent,this.attachmentsModalRef);o.organization=this.organization,o.cipherId=e.id;var s=!1;o.onUploadedAttachment.subscribe((function(){return s=!0})),o.onDeletedAttachment.subscribe((function(){return s=!0})),this.modal.onClosed.subscribe((function(){return r(t,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.modal=null,s?[4,this.ciphersComponent.refresh()]:[3,2];case 1:e.sent(),e.label=2;case 2:return s=!1,[2]}}))}))}))}else this.messagingService.send("upgradeOrganization",{organizationId:e.organizationId})},e.prototype.editCipherCollections=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(a.ModalComponent);this.modal=this.collectionsModalRef.createComponent(n).instance;var o=this.modal.show(u.CollectionsComponent,this.collectionsModalRef);this.organization.canManageAllCollections&&(o.collectionIds=e.collectionIds,o.collections=this.groupingsComponent.collections.filter((function(e){return!e.readOnly}))),o.organization=this.organization,o.cipherId=e.id,o.onSavedCollections.subscribe((function(){return r(t,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}}))}))})),this.modal.onClosed.subscribe((function(){return r(t,void 0,void 0,(function(){return i(this,(function(e){return this.modal=null,[2]}))}))}))},e.prototype.addCipher=function(){var e=this.editCipher(null);e.organizationId=this.organization.id,e.type=this.type,this.organization.canManageAllCollections&&(e.collections=this.groupingsComponent.collections.filter((function(e){return!e.readOnly}))),null!=this.collectionId&&(e.collectionIds=[this.collectionId])},e.prototype.editCipher=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(a.ModalComponent);this.modal=this.cipherAddEditModalRef.createComponent(n).instance;var o=this.modal.show(l.AddEditComponent,this.cipherAddEditModalRef);return o.organization=this.organization,o.cipherId=null==e?null:e.id,o.onSavedCipher.subscribe((function(e){return r(t,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}}))}))})),o.onDeletedCipher.subscribe((function(e){return r(t,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}}))}))})),o.onRestoredCipher.subscribe((function(e){return r(t,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}}))}))})),this.modal.onClosed.subscribe((function(){t.modal=null})),o},e.prototype.cloneCipher=function(e){var t=this.editCipher(e);t.cloneMode=!0,t.organizationId=this.organization.id,this.organization.canManageAllCollections&&(t.collections=this.groupingsComponent.collections.filter((function(e){return!e.readOnly}))),t.collectionIds=e.collectionIds},e.prototype.viewEvents=function(e){return r(this,void 0,void 0,(function(){var t,n,r=this;return i(this,(function(i){return null!=this.modal&&this.modal.close(),t=this.componentFactoryResolver.resolveComponentFactory(a.ModalComponent),this.modal=this.eventsModalRef.createComponent(t).instance,(n=this.modal.show(s.EntityEventsComponent,this.eventsModalRef)).name=e.name,n.organizationId=this.organization.id,n.entityId=e.id,n.showUser=!0,n.entity="cipher",this.modal.onClosed.subscribe((function(){r.modal=null})),[2]}))}))},e.prototype.clearFilters=function(){this.collectionId=null,this.type=null,this.deleted=!1},e.prototype.go=function(e){void 0===e&&(e=null),null==e&&(e={type:this.type,collectionId:this.collectionId,deleted:!!this.deleted||null}),this.router.navigate([],{relativeTo:this.route,queryParams:e,replaceUrl:!0})},e.ɵfac=function(t){return new(t||e)(m.ɵɵdirectiveInject(h.ActivatedRoute),m.ɵɵdirectiveInject(f.UserService),m.ɵɵdirectiveInject(h.Router),m.ɵɵdirectiveInject(m.ChangeDetectorRef),m.ɵɵdirectiveInject(v.SyncService),m.ɵɵdirectiveInject(y.I18nService),m.ɵɵdirectiveInject(m.ComponentFactoryResolver),m.ɵɵdirectiveInject(g.MessagingService),m.ɵɵdirectiveInject(x.BroadcasterService),m.ɵɵdirectiveInject(m.NgZone),m.ɵɵdirectiveInject(b.PlatformUtilsService))},e.ɵcmp=m.ɵɵdefineComponent({type:e,selectors:[["app-org-vault"]],viewQuery:function(e,t){var n;(1&e&&(m.ɵɵstaticViewQuery(d.GroupingsComponent,!0),m.ɵɵstaticViewQuery(p.CiphersComponent,!0),m.ɵɵstaticViewQuery(_,!0,o.ViewContainerRef),m.ɵɵstaticViewQuery(A,!0,o.ViewContainerRef),m.ɵɵstaticViewQuery(O,!0,o.ViewContainerRef),m.ɵɵstaticViewQuery(T,!0,o.ViewContainerRef)),2&e)&&(m.ɵɵqueryRefresh(n=m.ɵɵloadQuery())&&(t.groupingsComponent=n.first),m.ɵɵqueryRefresh(n=m.ɵɵloadQuery())&&(t.ciphersComponent=n.first),m.ɵɵqueryRefresh(n=m.ɵɵloadQuery())&&(t.attachmentsModalRef=n.first),m.ɵɵqueryRefresh(n=m.ɵɵloadQuery())&&(t.cipherAddEditModalRef=n.first),m.ɵɵqueryRefresh(n=m.ɵɵloadQuery())&&(t.collectionsModalRef=n.first),m.ɵɵqueryRefresh(n=m.ɵɵloadQuery())&&(t.eventsModalRef=n.first))},decls:53,vars:14,consts:[[1,"container","page-content"],[1,"row"],[1,"col-3"],[3,"showFolders","showFavorites","showTrash","onAllClicked","onCipherTypeClicked","onCollectionClicked","onSearchTextChanged","onTrashClicked"],[1,"col-9"],[1,"page-header","d-flex"],[3,"appApiAction"],["actionSpinner",""],[4,"ngIf"],[1,"ml-auto","d-flex"],[3,"ciphersComponent","modal","deleted","organization"],["type","button","class","btn btn-outline-primary btn-sm ml-auto",3,"click",4,"ngIf"],["type","warning","icon","fa-warning",4,"ngIf"],[3,"onCipherClicked","onAttachmentsClicked","onAddCipher","onCollectionsClicked","onEventsClicked","onCloneClicked"],["attachments",""],["cipherAddEdit",""],["collections",""],["eventsTemplate",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],["type","button",1,"btn","btn-outline-primary","btn-sm","ml-auto",3,"click"],["aria-hidden","true",1,"fa","fa-plus","fa-fw"],["type","warning","icon","fa-warning"]],template:function(e,t){if(1&e&&(m.ɵɵelementStart(0,"div",0),m.ɵɵtext(1,"\n "),m.ɵɵelementStart(2,"div",1),m.ɵɵtext(3,"\n "),m.ɵɵelementStart(4,"div",2),m.ɵɵtext(5,"\n "),m.ɵɵelementStart(6,"app-org-vault-groupings",3),m.ɵɵlistener("onAllClicked",(function(){return t.clearGroupingFilters()}))("onCipherTypeClicked",(function(e){return t.filterCipherType(e)}))("onCollectionClicked",(function(e){return t.filterCollection(e.id)}))("onSearchTextChanged",(function(e){return t.filterSearchText(e)}))("onTrashClicked",(function(){return t.filterDeleted()})),m.ɵɵtext(7,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(8,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(9,"\n "),m.ɵɵelementStart(10,"div",4),m.ɵɵtext(11,"\n "),m.ɵɵelementStart(12,"div",5),m.ɵɵtext(13,"\n "),m.ɵɵelementStart(14,"h1"),m.ɵɵtext(15),m.ɵɵpipe(16,"i18n"),m.ɵɵelementStart(17,"small",6,7),m.ɵɵtext(19,"\n "),m.ɵɵtemplate(20,M,9,6,"ng-container",8),m.ɵɵtext(21,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(22,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(23,"\n "),m.ɵɵelementStart(24,"div",9),m.ɵɵtext(25,"\n "),m.ɵɵelementStart(26,"app-vault-bulk-actions",10),m.ɵɵtext(27,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(28,"\n "),m.ɵɵtemplate(29,B,5,3,"button",11),m.ɵɵtext(30,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(31,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(32,"\n "),m.ɵɵtemplate(33,D,2,1,"app-callout",12),m.ɵɵtext(34,"\n "),m.ɵɵelementStart(35,"app-org-vault-ciphers",13),m.ɵɵlistener("onCipherClicked",(function(e){return t.editCipher(e)}))("onAttachmentsClicked",(function(e){return t.editCipherAttachments(e)}))("onAddCipher",(function(){return t.addCipher()}))("onCollectionsClicked",(function(e){return t.editCipherCollections(e)}))("onEventsClicked",(function(e){return t.viewEvents(e)}))("onCloneClicked",(function(e){return t.cloneCipher(e)})),m.ɵɵtext(36,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(37,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(38,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(39,"\n"),m.ɵɵelementEnd(),m.ɵɵtext(40,"\n"),m.ɵɵtemplate(41,R,0,0,"ng-template",null,14,m.ɵɵtemplateRefExtractor),m.ɵɵtext(43,"\n"),m.ɵɵtemplate(44,V,0,0,"ng-template",null,15,m.ɵɵtemplateRefExtractor),m.ɵɵtext(46,"\n"),m.ɵɵtemplate(47,j,0,0,"ng-template",null,16,m.ɵɵtemplateRefExtractor),m.ɵɵtext(49,"\n"),m.ɵɵtemplate(50,F,0,0,"ng-template",null,17,m.ɵɵtemplateRefExtractor),m.ɵɵtext(52,"\n")),2&e){var n=m.ɵɵreference(18);m.ɵɵadvance(6),m.ɵɵproperty("showFolders",!1)("showFavorites",!1)("showTrash",!0),m.ɵɵadvance(9),m.ɵɵtextInterpolate1("\n ",m.ɵɵpipeBind1(16,12,"vault"),"\n "),m.ɵɵadvance(2),m.ɵɵproperty("appApiAction",t.ciphersComponent.actionPromise),m.ɵɵadvance(3),m.ɵɵproperty("ngIf",n.loading),m.ɵɵadvance(6),m.ɵɵproperty("ciphersComponent",t.ciphersComponent)("modal",t.modal)("deleted",t.deleted)("organization",t.organization),m.ɵɵadvance(3),m.ɵɵproperty("ngIf",!t.deleted),m.ɵɵadvance(4),m.ɵɵproperty("ngIf",t.deleted)}},directives:[S.GroupingsComponent,w.ApiActionDirective,C.NgIf,I.BulkActionsComponent,E.CiphersComponent,P.CalloutComponent],pipes:[k.I18nPipe],encapsulation:2}),e}();t.VaultComponent=U},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]524288e3)return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("maxFileSize")),[2];i.label=1;case 1:return i.trys.push([1,4,,5]),this.formPromise=this.saveCipherAttachment(t[0]),n=this,[4,this.formPromise];case 2:return n.cipherDomain=i.sent(),r=this,[4,this.cipherDomain.decrypt()];case 3:return r.cipher=i.sent(),this.platformUtilsService.showToast("success",null,this.i18nService.t("attachmentSaved")),this.onUploadedAttachment.emit(),[3,5];case 4:return i.sent(),[3,5];case 5:return e.type="",e.type="file",e.value="",[2]}}))}))},e.prototype.delete=function(e){return r(this,void 0,void 0,(function(){var t;return i(this,(function(n){switch(n.label){case 0:return null!=this.deletePromises[e.id]?[2]:[4,this.platformUtilsService.showDialog(this.i18nService.t("deleteAttachmentConfirmation"),this.i18nService.t("deleteAttachment"),this.i18nService.t("yes"),this.i18nService.t("no"),"warning")];case 1:if(!n.sent())return[2];n.label=2;case 2:return n.trys.push([2,4,,5]),this.deletePromises[e.id]=this.deleteCipherAttachment(e.id),[4,this.deletePromises[e.id]];case 3:return n.sent(),this.platformUtilsService.showToast("success",null,this.i18nService.t("deletedAttachment")),(t=this.cipher.attachments.indexOf(e))>-1&&this.cipher.attachments.splice(t,1),[3,5];case 4:return n.sent(),[3,5];case 5:return this.deletePromises[e.id]=null,this.onDeletedAttachment.emit(),[2]}}))}))},e.prototype.download=function(e){return r(this,void 0,void 0,(function(){var t,n,r,o,s,l,c,p,u;return i(this,(function(i){switch(i.label){case 0:if((t=e).downloading)return[2];if(!this.canAccessAttachments)return this.platformUtilsService.showToast("error",this.i18nService.t("premiumRequired"),this.i18nService.t("premiumRequiredDesc")),[2];i.label=1;case 1:return i.trys.push([1,3,,4]),[4,this.apiService.getAttachmentData(this.cipher.id,e.id,this.emergencyAccessId)];case 2:return r=i.sent(),n=r.url,[3,4];case 3:if(!((o=i.sent())instanceof a.ErrorResponse&&404===o.statusCode))throw o instanceof a.ErrorResponse?new Error(o.getSingleMessage()):o;return n=e.url,[3,4];case 4:return t.downloading=!0,[4,fetch(new Request(n,{cache:"no-store"}))];case 5:if(200!==(s=i.sent()).status)return this.platformUtilsService.showToast("error",null,this.i18nService.t("errorOccurred")),t.downloading=!1,[2];i.label=6;case 6:return i.trys.push([6,12,,13]),[4,s.arrayBuffer()];case 7:return l=i.sent(),null==e.key?[3,8]:(p=e.key,[3,10]);case 8:return[4,this.cryptoService.getOrgKey(this.cipher.organizationId)];case 9:p=i.sent(),i.label=10;case 10:return c=p,[4,this.cryptoService.decryptFromBytes(l,c)];case 11:return u=i.sent(),this.platformUtilsService.saveFile(this.win,u,null,e.fileName),[3,13];case 12:return i.sent(),this.platformUtilsService.showToast("error",null,this.i18nService.t("errorOccurred")),[3,13];case 13:return t.downloading=!1,[2]}}))}))},e.prototype.init=function(){return r(this,void 0,void 0,(function(){var e,t,n,r;return i(this,(function(i){switch(i.label){case 0:return e=this,[4,this.loadCipher()];case 1:return e.cipherDomain=i.sent(),t=this,[4,this.cipherDomain.decrypt()];case 2:return t.cipher=i.sent(),n=this,[4,this.cryptoService.hasEncKey()];case 3:return n.hasUpdatedKey=i.sent(),[4,this.userService.canAccessPremium()];case 4:return r=i.sent(),this.canAccessAttachments=r||null!=this.cipher.organizationId,this.canAccessAttachments?[3,6]:[4,this.platformUtilsService.showDialog(this.i18nService.t("premiumRequiredDesc"),this.i18nService.t("premiumRequired"),this.i18nService.t("learnMore"),this.i18nService.t("cancel"))];case 5:return i.sent()&&this.platformUtilsService.launchUri("https://vault.bitwarden.com/#/?premium=purchase"),[3,8];case 6:return this.hasUpdatedKey?[3,8]:[4,this.platformUtilsService.showDialog(this.i18nService.t("updateKey"),this.i18nService.t("featureUnavailable"),this.i18nService.t("learnMore"),this.i18nService.t("cancel"),"warning")];case 7:i.sent()&&this.platformUtilsService.launchUri("https://help.bitwarden.com/article/update-encryption-key/"),i.label=8;case 8:return[2]}}))}))},e.prototype.reuploadCipherAttachment=function(e,t){return r(this,void 0,void 0,(function(){var n,o=this;return i(this,(function(a){switch(a.label){case 0:if(n=e,null!=e.key||n.downloading||null!=this.reuploadPromises[e.id])return[2];a.label=1;case 1:return a.trys.push([1,3,,4]),this.reuploadPromises[e.id]=Promise.resolve().then((function(){return r(o,void 0,void 0,(function(){var r,o,a,s,l,c,p,u,d;return i(this,(function(i){switch(i.label){case 0:return n.downloading=!0,[4,fetch(new Request(e.url,{cache:"no-store"}))];case 1:if(200!==(r=i.sent()).status)return this.platformUtilsService.showToast("error",null,this.i18nService.t("errorOccurred")),n.downloading=!1,[2];i.label=2;case 2:return i.trys.push([2,11,,12]),[4,r.arrayBuffer()];case 3:return o=i.sent(),null==e.key?[3,4]:(s=e.key,[3,6]);case 4:return[4,this.cryptoService.getOrgKey(this.cipher.organizationId)];case 5:s=i.sent(),i.label=6;case 6:return a=s,[4,this.cryptoService.decryptFromBytes(o,a)];case 7:return l=i.sent(),c=this,[4,this.cipherService.saveAttachmentRawWithServer(this.cipherDomain,e.fileName,l,t)];case 8:return c.cipherDomain=i.sent(),p=this,[4,this.cipherDomain.decrypt()];case 9:return p.cipher=i.sent(),this.deletePromises[e.id]=this.deleteCipherAttachment(e.id),[4,this.deletePromises[e.id]];case 10:return i.sent(),(u=this.cipher.attachments.filter((function(t){return t.id===e.id}))).length>0&&(d=this.cipher.attachments.indexOf(u[0]))>-1&&this.cipher.attachments.splice(d,1),this.platformUtilsService.showToast("success",null,this.i18nService.t("attachmentSaved")),this.onReuploadedAttachment.emit(),[3,12];case 11:return i.sent(),this.platformUtilsService.showToast("error",null,this.i18nService.t("errorOccurred")),[3,12];case 12:return n.downloading=!1,[2]}}))}))})),[4,this.reuploadPromises[e.id]];case 2:return a.sent(),[3,4];case 3:return a.sent(),[3,4];case 4:return[2]}}))}))},e.prototype.loadCipher=function(){return this.cipherService.get(this.cipherId)},e.prototype.saveCipherAttachment=function(e){return this.cipherService.saveAttachmentWithServer(this.cipherDomain,e)},e.prototype.deleteCipherAttachment=function(e){return this.cipherService.deleteAttachmentWithServer(this.cipher.id,e)},e.ɵfac=function(t){return new(t||e)(s.ɵɵdirectiveInject(l.CipherService),s.ɵɵdirectiveInject(c.I18nService),s.ɵɵdirectiveInject(p.CryptoService),s.ɵɵdirectiveInject(u.UserService),s.ɵɵdirectiveInject(d.PlatformUtilsService),s.ɵɵdirectiveInject(m.ApiService),s.ɵɵdirectiveInject(Window))},e.ɵdir=s.ɵɵdefineDirective({type:e,inputs:{cipherId:"cipherId"},outputs:{onUploadedAttachment:"onUploadedAttachment",onDeletedAttachment:"onDeletedAttachment",onReuploadedAttachment:"onReuploadedAttachment"}}),e}();t.AttachmentsComponent=h},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(t){var n=e.call(this,t)||this;return n.type=n.getResponseProperty("Type"),n.domains=n.getResponseProperty("Domains"),n.excluded=n.getResponseProperty("Excluded"),n}return i(t,e),t}(n(23).BaseResponse);t.GlobalDomainResponse=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(t){var n=e.call(this,t)||this;return n.accessToken=t.access_token,n.expiresIn=t.expires_in,n.refreshToken=t.refresh_token,n.tokenType=t.token_type,n.resetMasterPassword=n.getResponseProperty("ResetMasterPassword"),n.privateKey=n.getResponseProperty("PrivateKey"),n.key=n.getResponseProperty("Key"),n.twoFactorToken=n.getResponseProperty("TwoFactorToken"),n.kdf=n.getResponseProperty("Kdf"),n.kdfIterations=n.getResponseProperty("KdfIterations"),n}return i(t,e),t}(n(23).BaseResponse);t.IdentityTokenResponse=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(t){var n=e.call(this,t)||this;n.twoFactorProviders2=new Map,n.twoFactorProviders=n.getResponseProperty("TwoFactorProviders");var r=n.getResponseProperty("TwoFactorProviders2");if(null!=r)for(var i in r)r.hasOwnProperty(i)&&n.twoFactorProviders2.set(parseInt(i,null),r[i]);return n}return i(t,e),t}(n(23).BaseResponse);t.IdentityTwoFactorResponse=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(t,n){var r=e.call(this,t)||this,i=r.getResponseProperty("Data");return r.data=null==i?[]:i.map((function(e){return new n(e)})),r.continuationToken=r.getResponseProperty("ContinuationToken"),r}return i(t,e),t}(n(23).BaseResponse);t.ListResponse=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(23),a=n(468),s=function(e){function t(t){var n=e.call(this,t)||this;return n.id=n.getResponseProperty("Id"),n.name=n.getResponseProperty("Name"),n.usePolicies=n.getResponseProperty("UsePolicies"),n.useGroups=n.getResponseProperty("UseGroups"),n.useDirectory=n.getResponseProperty("UseDirectory"),n.useEvents=n.getResponseProperty("UseEvents"),n.useTotp=n.getResponseProperty("UseTotp"),n.use2fa=n.getResponseProperty("Use2fa"),n.useApi=n.getResponseProperty("UseApi"),n.useBusinessPortal=n.getResponseProperty("UseBusinessPortal"),n.useSso=n.getResponseProperty("UseSso"),n.selfHost=n.getResponseProperty("SelfHost"),n.usersGetPremium=n.getResponseProperty("UsersGetPremium"),n.seats=n.getResponseProperty("Seats"),n.maxCollections=n.getResponseProperty("MaxCollections"),n.maxStorageGb=n.getResponseProperty("MaxStorageGb"),n.key=n.getResponseProperty("Key"),n.status=n.getResponseProperty("Status"),n.type=n.getResponseProperty("Type"),n.enabled=n.getResponseProperty("Enabled"),n.ssoBound=n.getResponseProperty("SsoBound"),n.identifier=n.getResponseProperty("Identifier"),n.permissions=new a.PermissionsApi(n.getResponseProperty("permissions")),n.resetPasswordKey=n.getResponseProperty("ResetPasswordKey"),n.userId=n.getResponseProperty("UserId"),n}return i(t,e),t}(o.BaseResponse);t.ProfileOrganizationResponse=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(23),a=n(262),s=n(499),l=n(500),c=n(501),p=n(621),u=n(293),d=n(502),m=function(e){function t(t){var n=e.call(this,t)||this;n.folders=[],n.collections=[],n.ciphers=[],n.policies=[],n.sends=[];var r=n.getResponseProperty("Profile");null!=r&&(n.profile=new u.ProfileResponse(r));var i=n.getResponseProperty("Folders");null!=i&&(n.folders=i.map((function(e){return new c.FolderResponse(e)})));var o=n.getResponseProperty("Collections");null!=o&&(n.collections=o.map((function(e){return new s.CollectionDetailsResponse(e)})));var m=n.getResponseProperty("Ciphers");null!=m&&(n.ciphers=m.map((function(e){return new a.CipherResponse(e)})));var h=n.getResponseProperty("Domains");null!=h&&(n.domains=new l.DomainsResponse(h));var f=n.getResponseProperty("Policies");null!=f&&(n.policies=f.map((function(e){return new p.PolicyResponse(e)})));var v=n.getResponseProperty("Sends");return null!=v&&(n.sends=v.map((function(e){return new d.SendResponse(e)}))),n}return i(t,e),t}(o.BaseResponse);t.SyncResponse=m},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(t){var n=e.call(this,t)||this;return n.id=n.getResponseProperty("Id"),n.organizationId=n.getResponseProperty("OrganizationId"),n.type=n.getResponseProperty("Type"),n.data=n.getResponseProperty("Data"),n.enabled=n.getResponseProperty("Enabled"),n}return i(t,e),t}(n(23).BaseResponse);t.PolicyResponse=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&(this.organizationId=this.organizations[0].id),this.filterCollections(),[2]}}))}))},e.prototype.ngOnDestroy=function(){this.selectAll(!1)},e.prototype.filterCollections=function(){var e=this;this.selectAll(!1),null==this.organizationId||0===this.writeableCollections.length?this.collections=[]:this.collections=this.writeableCollections.filter((function(t){return t.organizationId===e.organizationId}))},e.prototype.submit=function(){return r(this,void 0,void 0,(function(){var e;return i(this,(function(t){switch(t.label){case 0:e=this.collections.filter((function(e){return e.checked})).map((function(e){return e.id})),t.label=1;case 1:return t.trys.push([1,3,,4]),this.formPromise=this.cipherService.shareManyWithServer(this.shareableCiphers,this.organizationId,e),[4,this.formPromise];case 2:return t.sent(),this.onShared.emit(),this.toasterService.popAsync("success",null,this.i18nService.t("sharedItems")),[3,4];case 3:return t.sent(),[3,4];case 4:return[2]}}))}))},e.prototype.check=function(e,t){e.checked=null==t?!e.checked:t},e.prototype.selectAll=function(e){var t=this;(e?this.collections:this.writeableCollections).forEach((function(n){return t.check(n,e)}))},Object.defineProperty(e.prototype,"canSave",{get:function(){if(null!=this.shareableCiphers&&this.shareableCiphers.length>0&&null!=this.collections)for(var e=0;e0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=this.maxAccessCount},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"expired",{get:function(){return null!=this.expirationDate&&this.expirationDate<=new Date},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pendingDelete",{get:function(){return this.deletionDate<=new Date},enumerable:!0,configurable:!0}),e}();t.SendView=a},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",(null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.minLength)>0),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireUpper),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireLower),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireNumbers),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireSpecial)}}var G=function(e){function t(t,n,r,i,o,a,s,l,c,p,u){var d=e.call(this,t,n,r,i,o,a,s)||this;return d.folderService=l,d.cipherService=c,d.syncService=p,d.apiService=u,d.rotateEncKey=!1,d}return i(t,e),t.prototype.rotateEncKeyClicked=function(){return o(this,void 0,void 0,(function(){var e,t,n;return a(this,(function(r){switch(r.label){case 0:return this.rotateEncKey?[4,this.cipherService.getAllDecrypted()]:[3,5];case 1:if(e=r.sent(),t=!1,null!=e)for(n=0;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0),a.ɵɵadvance(2),a.ɵɵproperty("disabled",n.loading),a.ɵɵadvance(2),a.ɵɵpropertyInterpolate("title",a.ɵɵpipeBind1(43,27,"loading")),a.ɵɵadvance(4),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(47,29,"save"))}},directives:[p.NgControlStatusGroup,p.NgForm,u.ApiActionDirective,d.NgIf,d.NgForOf,p.DefaultValueAccessor,p.RequiredValidator,p.NgControlStatus,p.NgModel,m.A11yTitleDirective,d.NgClass,h.StopClickDirective],pipes:[f.I18nPipe],encapsulation:2}),e}();t.DomainRulesComponent=E},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]1?"×"+n.quantity:""," @ ",o.ɵɵpipeBind2(4,5,n.amount,"$"),"\n "),o.ɵɵadvance(4),o.ɵɵtextInterpolate2("\n ",o.ɵɵpipeBind2(8,8,n.quantity*n.amount,"$")," /",o.ɵɵpipeBind1(9,11,n.interval),"\n ")}}function _(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",16),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"strong",17),o.ɵɵtext(3),o.ɵɵpipe(4,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(5,"\n "),o.ɵɵelementStart(6,"table",18),o.ɵɵtext(7,"\n "),o.ɵɵelementStart(8,"tbody"),o.ɵɵtext(9,"\n "),o.ɵɵtemplate(10,k,11,13,"tr",19),o.ɵɵtext(11,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(12,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(13,"\n "),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext(3);o.ɵɵadvance(3),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(4,2,"details")),o.ɵɵadvance(7),o.ɵɵproperty("ngForOf",n.subscription.items)}}function A(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",10),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"div",11),o.ɵɵtext(3,"\n "),o.ɵɵelementStart(4,"dl"),o.ɵɵtext(5,"\n "),o.ɵɵelementStart(6,"dt"),o.ɵɵtext(7),o.ɵɵpipe(8,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(9,"\n "),o.ɵɵelementStart(10,"dd"),o.ɵɵtext(11,"\n "),o.ɵɵelementStart(12,"span",12),o.ɵɵtext(13),o.ɵɵelementEnd(),o.ɵɵtext(14,"\n "),o.ɵɵtemplate(15,P,3,3,"span",13),o.ɵɵtext(16,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(17,"\n "),o.ɵɵelementStart(18,"dt"),o.ɵɵtext(19),o.ɵɵpipe(20,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(21,"\n "),o.ɵɵelementStart(22,"dd"),o.ɵɵtext(23),o.ɵɵpipe(24,"date"),o.ɵɵpipe(25,"currency"),o.ɵɵelementEnd(),o.ɵɵtext(26,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(27,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(28,"\n "),o.ɵɵtemplate(29,_,14,4,"div",14),o.ɵɵtext(30,"\n "),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext(2);o.ɵɵadvance(7),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(8,6,"status")),o.ɵɵadvance(6),o.ɵɵtextInterpolate(n.subscription&&n.subscription.status||"-"),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.subscriptionMarkedForCancel),o.ɵɵadvance(4),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(20,8,"nextCharge")),o.ɵɵadvance(4),o.ɵɵtextInterpolate1("",n.nextInvoice?o.ɵɵpipeBind2(24,10,n.nextInvoice.date,"mediumDate")+", "+o.ɵɵpipeBind2(25,13,n.nextInvoice.amount,"$"):"-","\n "),o.ɵɵadvance(6),o.ɵɵproperty("ngIf",n.subscription)}}function O(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",23),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"div",24),o.ɵɵtext(3,"\n "),o.ɵɵelementStart(4,"button",25),o.ɵɵlistener("click",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(3).closeUpdateLicense(!1)})),o.ɵɵpipe(5,"i18n"),o.ɵɵelementStart(6,"span",26),o.ɵɵtext(7,"×"),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵtext(8,"\n "),o.ɵɵelementStart(9,"h3",27),o.ɵɵtext(10),o.ɵɵpipe(11,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(12,"\n "),o.ɵɵelementStart(13,"app-update-license",28),o.ɵɵlistener("onUpdated",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(3).closeUpdateLicense(!0)}))("onCanceled",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(3).closeUpdateLicense(!1)})),o.ɵɵtext(14,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(15,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(16,"\n "),o.ɵɵelementEnd()}2&e&&(o.ɵɵadvance(4),o.ɵɵpropertyInterpolate("appA11yTitle",o.ɵɵpipeBind1(5,2,"cancel")),o.ɵɵadvance(6),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(11,4,"updateLicense")))}function T(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementContainerStart(0),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"div"),o.ɵɵtext(3,"\n "),o.ɵɵelementStart(4,"button",20),o.ɵɵlistener("click",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).updateLicense()})),o.ɵɵtext(5),o.ɵɵpipe(6,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(7,"\n "),o.ɵɵelementStart(8,"a",21),o.ɵɵtext(9),o.ɵɵpipe(10,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(11,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(12,"\n "),o.ɵɵtemplate(13,O,17,6,"div",22),o.ɵɵtext(14,"\n "),o.ɵɵelementContainerEnd()}if(2&e){var r=o.ɵɵnextContext(2);o.ɵɵadvance(5),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(6,3,"updateLicense"),"\n "),o.ɵɵadvance(4),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(10,5,"manageSubscription"),"\n "),o.ɵɵadvance(4),o.ɵɵproperty("ngIf",r.showUpdateLicense)}}function M(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"button",20),o.ɵɵlistener("click",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(3).downloadLicense()})),o.ɵɵtext(1),o.ɵɵpipe(2,"i18n"),o.ɵɵelementEnd()}2&e&&(o.ɵɵadvance(1),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(2,1,"downloadLicense"),"\n "))}function B(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"button",35,36),o.ɵɵlistener("click",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(3).cancel()})),o.ɵɵtext(2,"\n "),o.ɵɵelement(3,"i",9),o.ɵɵpipe(4,"i18n"),o.ɵɵtext(5,"\n "),o.ɵɵelementStart(6,"span"),o.ɵɵtext(7),o.ɵɵpipe(8,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(9,"\n "),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵreference(1),i=o.ɵɵnextContext(3);o.ɵɵproperty("appApiAction",i.cancelPromise)("disabled",r.loading),o.ɵɵadvance(3),o.ɵɵpropertyInterpolate("title",o.ɵɵpipeBind1(4,4,"loading")),o.ɵɵadvance(4),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(8,6,"cancelSubscription"))}}function D(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",29),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"button",20),o.ɵɵlistener("click",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(4).adjustStorage(!0)})),o.ɵɵtext(3),o.ɵɵpipe(4,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(5,"\n "),o.ɵɵelementStart(6,"button",40),o.ɵɵlistener("click",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(4).adjustStorage(!1)})),o.ɵɵtext(7),o.ɵɵpipe(8,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(9,"\n "),o.ɵɵelementEnd()}2&e&&(o.ɵɵadvance(3),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(4,2,"addStorage"),"\n "),o.ɵɵadvance(4),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(8,4,"removeStorage"),"\n "))}function R(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"app-adjust-storage",41),o.ɵɵlistener("onAdjusted",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(4).closeStorage(!0)}))("onCanceled",(function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(4).closeStorage(!1)})),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext(4);o.ɵɵproperty("storageGbPrice",4)("add",r.adjustStorageAdd)}}function V(e,t){if(1&e&&(o.ɵɵelementContainerStart(0),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"div",37),o.ɵɵtext(3,"\n "),o.ɵɵtemplate(4,D,10,6,"div",38),o.ɵɵtext(5,"\n "),o.ɵɵtemplate(6,R,1,2,"app-adjust-storage",39),o.ɵɵtext(7,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(8,"\n "),o.ɵɵelementContainerEnd()),2&e){var n=o.ɵɵnextContext(3);o.ɵɵadvance(4),o.ɵɵproperty("ngIf",!n.showAdjustStorage),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.showAdjustStorage)}}var j=function(e){return{width:e}};function F(e,t){if(1&e&&(o.ɵɵelementContainerStart(0),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"div",29),o.ɵɵtext(3,"\n "),o.ɵɵtemplate(4,M,3,3,"button",30),o.ɵɵtext(5,"\n "),o.ɵɵtemplate(6,B,10,8,"button",31),o.ɵɵtext(7,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(8,"\n "),o.ɵɵelementStart(9,"h2",32),o.ɵɵtext(10),o.ɵɵpipe(11,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(12,"\n "),o.ɵɵelementStart(13,"p"),o.ɵɵtext(14),o.ɵɵpipe(15,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(16,"\n "),o.ɵɵelementStart(17,"div",33),o.ɵɵtext(18,"\n "),o.ɵɵelementStart(19,"div",34),o.ɵɵtext(20),o.ɵɵpipe(21,"percent"),o.ɵɵelementEnd(),o.ɵɵtext(22,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(23,"\n "),o.ɵɵtemplate(24,V,9,2,"ng-container",1),o.ɵɵtext(25,"\n "),o.ɵɵelementContainerEnd()),2&e){var n=o.ɵɵnextContext(2);o.ɵɵadvance(4),o.ɵɵproperty("ngIf",!n.subscription||!n.subscription.cancelled),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.subscription&&!n.subscription.cancelled&&!n.subscriptionMarkedForCancel),o.ɵɵadvance(4),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(11,8,"storage")),o.ɵɵadvance(4),o.ɵɵtextInterpolate(o.ɵɵpipeBind3(15,10,"subscriptionStorage",n.sub.maxStorageGb||0,n.sub.storageName||"0 MB")),o.ɵɵadvance(5),o.ɵɵproperty("ngStyle",o.ɵɵpureFunction1(16,j,n.storageProgressWidth+"%")),o.ɵɵattribute("aria-valuenow",n.storagePercentage),o.ɵɵadvance(1),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(21,14,n.storagePercentage/100),""),o.ɵɵadvance(4),o.ɵɵproperty("ngIf",n.subscription&&!n.subscription.cancelled&&!n.subscriptionMarkedForCancel)}}function U(e,t){if(1&e&&(o.ɵɵelementContainerStart(0),o.ɵɵtext(1,"\n "),o.ɵɵtemplate(2,S,4,6,"app-callout",4),o.ɵɵtext(3,"\n "),o.ɵɵtemplate(4,w,18,14,"app-callout",4),o.ɵɵtext(5,"\n "),o.ɵɵtemplate(6,E,10,5,"dl",1),o.ɵɵtext(7,"\n "),o.ɵɵtemplate(8,A,31,16,"div",5),o.ɵɵtext(9,"\n "),o.ɵɵtemplate(10,T,15,7,"ng-container",1),o.ɵɵtext(11,"\n "),o.ɵɵtemplate(12,F,26,18,"ng-container",1),o.ɵɵtext(13,"\n"),o.ɵɵelementContainerEnd()),2&e){var n=o.ɵɵnextContext();o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.subscription&&n.subscription.cancelled),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.subscriptionMarkedForCancel),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.selfHosted),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",!n.selfHosted),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.selfHosted),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",!n.selfHosted)}}var N=function(){function e(e,t,n,r,i,o){this.tokenService=e,this.apiService=t,this.platformUtilsService=n,this.i18nService=r,this.toasterService=i,this.router=o,this.loading=!1,this.firstLoaded=!1,this.adjustStorageAdd=!0,this.showAdjustStorage=!1,this.showUpdateLicense=!1,this.selfHosted=!1,this.selfHosted=n.isSelfHost()}return e.prototype.ngOnInit=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return[4,this.load()];case 1:return e.sent(),this.firstLoaded=!0,[2]}}))}))},e.prototype.load=function(){return r(this,void 0,void 0,(function(){var e;return i(this,(function(t){switch(t.label){case 0:return this.loading?[2]:this.tokenService.getPremium()?(this.loading=!0,e=this,[4,this.apiService.getUserSubscription()]):[3,2];case 1:return e.sub=t.sent(),[3,3];case 2:return this.router.navigate(["/settings/premium"]),[2];case 3:return this.loading=!1,[2]}}))}))},e.prototype.reinstate=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.loading?[2]:this.usingInAppPurchase?(this.platformUtilsService.showDialog(this.i18nService.t("manageSubscriptionFromStore"),this.i18nService.t("cancelSubscription"),null,null,"warning"),[2]):[4,this.platformUtilsService.showDialog(this.i18nService.t("reinstateConfirmation"),this.i18nService.t("reinstateSubscription"),this.i18nService.t("yes"),this.i18nService.t("cancel"))];case 1:if(!e.sent())return[2];e.label=2;case 2:return e.trys.push([2,4,,5]),this.reinstatePromise=this.apiService.postReinstatePremium(),[4,this.reinstatePromise];case 3:return e.sent(),this.toasterService.popAsync("success",null,this.i18nService.t("reinstated")),this.load(),[3,5];case 4:return e.sent(),[3,5];case 5:return[2]}}))}))},e.prototype.cancel=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.loading?[2]:this.usingInAppPurchase?(this.platformUtilsService.showDialog(this.i18nService.t("manageSubscriptionFromStore"),this.i18nService.t("cancelSubscription"),null,null,"warning"),[2]):[4,this.platformUtilsService.showDialog(this.i18nService.t("cancelConfirmation"),this.i18nService.t("cancelSubscription"),this.i18nService.t("yes"),this.i18nService.t("no"),"warning")];case 1:if(!e.sent())return[2];e.label=2;case 2:return e.trys.push([2,4,,5]),this.cancelPromise=this.apiService.postCancelPremium(),[4,this.cancelPromise];case 3:return e.sent(),this.toasterService.popAsync("success",null,this.i18nService.t("canceledSubscription")),this.load(),[3,5];case 4:return e.sent(),[3,5];case 5:return[2]}}))}))},e.prototype.downloadLicense=function(){if(!this.loading){var e=JSON.stringify(this.sub.license,null,2);this.platformUtilsService.saveFile(window,e,null,"bitwarden_premium_license.json")}},e.prototype.updateLicense=function(){this.loading||(this.showUpdateLicense=!0)},e.prototype.closeUpdateLicense=function(e){this.showUpdateLicense=!1,e&&this.load()},e.prototype.adjustStorage=function(e){this.usingInAppPurchase?this.platformUtilsService.showDialog(this.i18nService.t("cannotPerformInAppPurchase"),this.i18nService.t(e?"addStorage":"removeStorage"),null,null,"warning"):(this.adjustStorageAdd=e,this.showAdjustStorage=!0)},e.prototype.closeStorage=function(e){this.showAdjustStorage=!1,e&&this.load()},Object.defineProperty(e.prototype,"subscriptionMarkedForCancel",{get:function(){return null!=this.subscription&&!this.subscription.cancelled&&this.subscription.cancelAtEndDate},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"subscription",{get:function(){return null!=this.sub?this.sub.subscription:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"nextInvoice",{get:function(){return null!=this.sub?this.sub.upcomingInvoice:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"storagePercentage",{get:function(){return null!=this.sub&&this.sub.maxStorageGb?+(this.sub.storageGb/this.sub.maxStorageGb*100).toFixed(2):0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"storageProgressWidth",{get:function(){return this.storagePercentage<5?5:0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"usingInAppPurchase",{get:function(){return null!=this.sub&&this.sub.usingInAppPurchase},enumerable:!0,configurable:!0}),e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(a.TokenService),o.ɵɵdirectiveInject(s.ApiService),o.ɵɵdirectiveInject(l.PlatformUtilsService),o.ɵɵdirectiveInject(c.I18nService),o.ɵɵdirectiveInject(p.ToasterService),o.ɵɵdirectiveInject(u.Router))},e.ɵcmp=o.ɵɵdefineComponent({type:e,selectors:[["app-user-subscription"]],decls:13,vars:6,consts:[[1,"page-header"],[4,"ngIf"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],["type","warning",3,"title",4,"ngIf"],["class","row",4,"ngIf"],["type","warning",3,"title"],["type","button",1,"btn","btn-outline-secondary","btn-submit",3,"appApiAction","disabled","click"],["reinstateBtn",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],[1,"row"],[1,"col-4"],[1,"text-capitalize"],["class","badge badge-warning",4,"ngIf"],["class","col-8",4,"ngIf"],[1,"badge","badge-warning"],[1,"col-8"],[1,"d-block","mb-1"],[1,"table"],[4,"ngFor","ngForOf"],["type","button",1,"btn","btn-outline-secondary",3,"click"],["href","https://vault.bitwarden.com/#/settings/subscription","target","_blank","rel","noopener",1,"btn","btn-outline-secondary"],["class","card mt-3",4,"ngIf"],[1,"card","mt-3"],[1,"card-body"],["type","button",1,"close",3,"appA11yTitle","click"],["aria-hidden","true"],[1,"card-body-header"],[3,"onUpdated","onCanceled"],[1,"d-flex"],["type","button","class","btn btn-outline-secondary",3,"click",4,"ngIf"],["type","button","class","btn btn-outline-danger btn-submit ml-auto",3,"appApiAction","disabled","click",4,"ngIf"],[1,"spaced-header"],[1,"progress"],["role","progressbar","aria-valuemin","0","aria-valuemax","100",1,"progress-bar","bg-success",3,"ngStyle"],["type","button",1,"btn","btn-outline-danger","btn-submit","ml-auto",3,"appApiAction","disabled","click"],["cancelBtn",""],[1,"mt-3"],["class","d-flex",4,"ngIf"],[3,"storageGbPrice","add","onAdjusted","onCanceled",4,"ngIf"],["type","button",1,"ml-1","btn","btn-outline-secondary",3,"click"],[3,"storageGbPrice","add","onAdjusted","onCanceled"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"div",0),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"h1"),o.ɵɵtext(3),o.ɵɵpipe(4,"i18n"),o.ɵɵtemplate(5,x,9,6,"small",1),o.ɵɵtext(6,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(7,"\n"),o.ɵɵelementEnd(),o.ɵɵtext(8,"\n"),o.ɵɵtemplate(9,b,9,6,"ng-container",1),o.ɵɵtext(10,"\n"),o.ɵɵtemplate(11,U,14,6,"ng-container",1),o.ɵɵtext(12,"\n")),2&e&&(o.ɵɵadvance(3),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(4,4,"premiumMembership"),"\n "),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",t.firstLoaded&&t.loading),o.ɵɵadvance(4),o.ɵɵproperty("ngIf",!t.firstLoaded&&t.loading),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",t.sub))},directives:[d.NgIf,m.CalloutComponent,h.ApiActionDirective,d.NgForOf,f.A11yTitleDirective,v.UpdateLicenseComponent,d.NgStyle,y.AdjustStorageComponent],pipes:[g.I18nPipe,d.DatePipe,d.CurrencyPipe,d.PercentPipe],encapsulation:2}),e}();t.UserSubscriptionComponent=N},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]-1}))];case 1:return t.sent(),this.clearFilters(),this.collectionId=e,this.go(),[2]}}))}))},e.prototype.filterSearchText=function(e){this.ciphersComponent.searchText=e,this.ciphersComponent.search(200)},e.prototype.editCipherAttachments=function(e){return r(this,void 0,void 0,(function(){var t,n,o,s,l,c=this;return i(this,(function(u){switch(u.label){case 0:return[4,this.userService.canAccessPremium()];case 1:return t=u.sent(),null!=e.organizationId||t?[3,2]:(this.messagingService.send("premiumRequired"),[2]);case 2:return null==e.organizationId?[3,4]:[4,this.userService.getOrganization(e.organizationId)];case 3:if(null!=(n=u.sent())&&(null==n.maxStorageGb||0===n.maxStorageGb))return this.messagingService.send("upgradeOrganization",{organizationId:e.organizationId}),[2];u.label=4;case 4:return null!=this.modal&&this.modal.close(),o=this.componentFactoryResolver.resolveComponentFactory(a.ModalComponent),this.modal=this.attachmentsModalRef.createComponent(o).instance,(s=this.modal.show(p.AttachmentsComponent,this.attachmentsModalRef)).cipherId=e.id,l=!1,s.onUploadedAttachment.subscribe((function(){return l=!0})),s.onDeletedAttachment.subscribe((function(){return l=!0})),s.onReuploadedAttachment.subscribe((function(){return l=!0})),this.modal.onClosed.subscribe((function(){return r(c,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.modal=null,l?[4,this.ciphersComponent.refresh()]:[3,2];case 1:e.sent(),e.label=2;case 2:return l=!1,[2]}}))}))})),[2]}}))}))},e.prototype.shareCipher=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(a.ModalComponent);this.modal=this.shareModalRef.createComponent(n).instance;var o=this.modal.show(f.ShareComponent,this.shareModalRef);o.cipherId=e.id,o.onSharedCipher.subscribe((function(){return r(t,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}}))}))})),this.modal.onClosed.subscribe((function(){return r(t,void 0,void 0,(function(){return i(this,(function(e){return this.modal=null,[2]}))}))}))},e.prototype.editCipherCollections=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(a.ModalComponent);this.modal=this.collectionsModalRef.createComponent(n).instance;var o=this.modal.show(d.CollectionsComponent,this.collectionsModalRef);o.cipherId=e.id,o.onSavedCollections.subscribe((function(){return r(t,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}}))}))})),this.modal.onClosed.subscribe((function(){return r(t,void 0,void 0,(function(){return i(this,(function(e){return this.modal=null,[2]}))}))}))},e.prototype.addFolder=function(){return r(this,void 0,void 0,(function(){var e,t,n=this;return i(this,(function(o){return null!=this.modal&&this.modal.close(),e=this.componentFactoryResolver.resolveComponentFactory(a.ModalComponent),this.modal=this.folderAddEditModalRef.createComponent(e).instance,(t=this.modal.show(m.FolderAddEditComponent,this.folderAddEditModalRef)).folderId=null,t.onSavedFolder.subscribe((function(){return r(n,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.modal.close(),[4,this.groupingsComponent.loadFolders()];case 1:return e.sent(),[2]}}))}))})),this.modal.onClosed.subscribe((function(){n.modal=null})),[2]}))}))},e.prototype.editFolder=function(e){return r(this,void 0,void 0,(function(){var t,n,o=this;return i(this,(function(s){return null!=this.modal&&this.modal.close(),t=this.componentFactoryResolver.resolveComponentFactory(a.ModalComponent),this.modal=this.folderAddEditModalRef.createComponent(t).instance,(n=this.modal.show(m.FolderAddEditComponent,this.folderAddEditModalRef)).folderId=e,n.onSavedFolder.subscribe((function(){return r(o,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.modal.close(),[4,this.groupingsComponent.loadFolders()];case 1:return e.sent(),[2]}}))}))})),n.onDeletedFolder.subscribe((function(){return r(o,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.modal.close(),[4,this.groupingsComponent.loadFolders()];case 1:return e.sent(),[4,this.filterFolder("none")];case 2:return e.sent(),this.groupingsComponent.selectedFolderId=null,[2]}}))}))})),this.modal.onClosed.subscribe((function(){o.modal=null})),[2]}))}))},e.prototype.addCipher=function(){var e=this,t=this.editCipher(null);if(t.type=this.type,t.folderId="none"===this.folderId?null:this.folderId,null!=this.collectionId){var n=this.groupingsComponent.collections.filter((function(t){return t.id===e.collectionId}));n.length>0&&(t.organizationId=n[0].organizationId,t.collectionIds=[this.collectionId])}},e.prototype.editCipher=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(a.ModalComponent);this.modal=this.cipherAddEditModalRef.createComponent(n).instance;var o=this.modal.show(c.AddEditComponent,this.cipherAddEditModalRef);return o.cipherId=null==e?null:e.id,o.onSavedCipher.subscribe((function(e){return r(t,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}}))}))})),o.onDeletedCipher.subscribe((function(e){return r(t,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}}))}))})),o.onRestoredCipher.subscribe((function(e){return r(t,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}}))}))})),this.modal.onClosed.subscribe((function(){t.modal=null})),o},e.prototype.cloneCipher=function(e){this.editCipher(e).cloneMode=!0},e.prototype.updateKey=function(){var e=this;null!=this.modal&&this.modal.close();var t=this.componentFactoryResolver.resolveComponentFactory(a.ModalComponent);this.modal=this.updateKeyModalRef.createComponent(t).instance,this.modal.show(l.UpdateKeyComponent,this.updateKeyModalRef),this.modal.onClosed.subscribe((function(){e.modal=null}))},e.prototype.clearFilters=function(){this.folderId=null,this.collectionId=null,this.favorites=!1,this.type=null,this.deleted=!1},e.prototype.go=function(e){void 0===e&&(e=null),null==e&&(e={favorites:!!this.favorites||null,type:this.type,folderId:this.folderId,collectionId:this.collectionId,deleted:!!this.deleted||null}),this.router.navigate([],{relativeTo:this.route,queryParams:e,replaceUrl:!0})},e.ɵfac=function(t){return new(t||e)(v.ɵɵdirectiveInject(y.SyncService),v.ɵɵdirectiveInject(g.ActivatedRoute),v.ɵɵdirectiveInject(g.Router),v.ɵɵdirectiveInject(v.ChangeDetectorRef),v.ɵɵdirectiveInject(x.I18nService),v.ɵɵdirectiveInject(v.ComponentFactoryResolver),v.ɵɵdirectiveInject(b.TokenService),v.ɵɵdirectiveInject(S.CryptoService),v.ɵɵdirectiveInject(w.MessagingService),v.ɵɵdirectiveInject(C.UserService),v.ɵɵdirectiveInject(I.PlatformUtilsService),v.ɵɵdirectiveInject(E.BroadcasterService),v.ɵɵdirectiveInject(v.NgZone))},e.ɵcmp=v.ɵɵdefineComponent({type:e,selectors:[["app-vault"]],viewQuery:function(e,t){var n;(1&e&&(v.ɵɵstaticViewQuery(h.GroupingsComponent,!0),v.ɵɵstaticViewQuery(u.CiphersComponent,!0),v.ɵɵstaticViewQuery(s.OrganizationsComponent,!0),v.ɵɵstaticViewQuery(j,!0,o.ViewContainerRef),v.ɵɵstaticViewQuery(F,!0,o.ViewContainerRef),v.ɵɵstaticViewQuery(U,!0,o.ViewContainerRef),v.ɵɵstaticViewQuery(N,!0,o.ViewContainerRef),v.ɵɵstaticViewQuery(z,!0,o.ViewContainerRef),v.ɵɵstaticViewQuery(L,!0,o.ViewContainerRef)),2&e)&&(v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.groupingsComponent=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.ciphersComponent=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.organizationsComponent=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.attachmentsModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.folderAddEditModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.cipherAddEditModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.shareModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.collectionsModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.updateKeyModalRef=n.first))},decls:90,vars:21,consts:[[1,"container","page-content"],[1,"row"],[1,"col-3"],[3,"onAllClicked","onFavoritesClicked","onCipherTypeClicked","onFolderClicked","onAddFolder","onEditFolder","onCollectionClicked","onSearchTextChanged","onTrashClicked"],[1,"col-6"],[1,"page-header","d-flex"],[3,"appApiAction"],["actionSpinner",""],[4,"ngIf"],[1,"ml-auto","d-flex"],[3,"ciphersComponent","modal","deleted"],["type","button","class","btn btn-outline-primary btn-sm",3,"click",4,"ngIf"],["type","warning","icon","fa-warning",4,"ngIf"],[3,"onCipherClicked","onAttachmentsClicked","onAddCipher","onShareClicked","onCollectionsClicked","onCloneClicked"],["class","card border-warning mb-4",4,"ngIf"],["class","d-block mb-4",4,"ngIf"],[1,"d-block","mb-4"],["class","card border-success mb-4",4,"ngIf"],[1,"card"],[1,"card-header","d-flex"],["href","https://help.bitwarden.com/article/what-is-an-organization/","target","_blank","rel","noopener",1,"ml-auto",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-question-circle-o"],[1,"card-body"],[3,"vault"],["attachments",""],["folderAddEdit",""],["cipherAddEdit",""],["share",""],["collections",""],["updateKeyTemplate",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],["type","button",1,"btn","btn-outline-primary","btn-sm",3,"click"],["aria-hidden","true",1,"fa","fa-plus","fa-fw"],["type","warning","icon","fa-warning"],[1,"card","border-warning","mb-4"],[1,"card-header","bg-warning","text-white"],["aria-hidden","true",1,"fa","fa-warning","fa-fw"],["type","button",1,"btn","btn-block","btn-outline-secondary",3,"click"],["target","_blank","href","https://browser-update.org/update-browser.html","rel","noopener",1,"btn","btn-block","btn-outline-secondary"],[1,"card","border-success","mb-4"],[1,"card-header","bg-success","text-white"],["aria-hidden","true",1,"fa","fa-star","fa-fw"],["routerLink","/settings/premium",1,"btn","btn-block","btn-outline-secondary"]],template:function(e,t){if(1&e&&(v.ɵɵelementStart(0,"div",0),v.ɵɵtext(1,"\n "),v.ɵɵelementStart(2,"div",1),v.ɵɵtext(3,"\n "),v.ɵɵelementStart(4,"div",2),v.ɵɵtext(5,"\n "),v.ɵɵelementStart(6,"app-vault-groupings",3),v.ɵɵlistener("onAllClicked",(function(){return t.clearGroupingFilters()}))("onFavoritesClicked",(function(){return t.filterFavorites()}))("onCipherTypeClicked",(function(e){return t.filterCipherType(e)}))("onFolderClicked",(function(e){return t.filterFolder(e.id)}))("onAddFolder",(function(){return t.addFolder()}))("onEditFolder",(function(e){return t.editFolder(e.id)}))("onCollectionClicked",(function(e){return t.filterCollection(e.id)}))("onSearchTextChanged",(function(e){return t.filterSearchText(e)}))("onTrashClicked",(function(){return t.filterDeleted()})),v.ɵɵtext(7,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(8,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(9,"\n "),v.ɵɵelementStart(10,"div",4),v.ɵɵtext(11,"\n "),v.ɵɵelementStart(12,"div",5),v.ɵɵtext(13,"\n "),v.ɵɵelementStart(14,"h1"),v.ɵɵtext(15),v.ɵɵpipe(16,"i18n"),v.ɵɵelementStart(17,"small",6,7),v.ɵɵtext(19,"\n "),v.ɵɵtemplate(20,G,9,6,"ng-container",8),v.ɵɵtext(21,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(22,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(23,"\n "),v.ɵɵelementStart(24,"div",9),v.ɵɵtext(25,"\n "),v.ɵɵelementStart(26,"app-vault-bulk-actions",10),v.ɵɵtext(27,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(28,"\n "),v.ɵɵtemplate(29,K,5,3,"button",11),v.ɵɵtext(30,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(31,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(32,"\n "),v.ɵɵtemplate(33,q,2,1,"app-callout",12),v.ɵɵtext(34,"\n "),v.ɵɵelementStart(35,"app-vault-ciphers",13),v.ɵɵlistener("onCipherClicked",(function(e){return t.editCipher(e)}))("onAttachmentsClicked",(function(e){return t.editCipherAttachments(e)}))("onAddCipher",(function(){return t.addCipher()}))("onShareClicked",(function(e){return t.shareCipher(e)}))("onCollectionsClicked",(function(e){return t.editCipherCollections(e)}))("onCloneClicked",(function(e){return t.cloneCipher(e)})),v.ɵɵtext(36,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(37,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(38,"\n "),v.ɵɵelementStart(39,"div",2),v.ɵɵtext(40,"\n "),v.ɵɵtemplate(41,W,19,9,"div",14),v.ɵɵtext(42,"\n "),v.ɵɵtemplate(43,H,1,0,"app-verify-email",15),v.ɵɵtext(44,"\n "),v.ɵɵelement(45,"app-send-info",16),v.ɵɵtext(46,"\n "),v.ɵɵtemplate(47,$,19,9,"div",14),v.ɵɵtext(48,"\n "),v.ɵɵtemplate(49,Y,19,9,"div",17),v.ɵɵtext(50,"\n "),v.ɵɵelementStart(51,"div",18),v.ɵɵtext(52,"\n "),v.ɵɵelementStart(53,"div",19),v.ɵɵtext(54),v.ɵɵpipe(55,"i18n"),v.ɵɵelementStart(56,"a",20),v.ɵɵpipe(57,"i18n"),v.ɵɵtext(58,"\n "),v.ɵɵelement(59,"i",21),v.ɵɵtext(60,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(61,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(62,"\n "),v.ɵɵelementStart(63,"div",22),v.ɵɵtext(64,"\n "),v.ɵɵelement(65,"app-organizations",23),v.ɵɵtext(66,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(67,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(68,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(69,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(70,"\n"),v.ɵɵelementEnd(),v.ɵɵtext(71,"\n"),v.ɵɵtemplate(72,Q,0,0,"ng-template",null,24,v.ɵɵtemplateRefExtractor),v.ɵɵtext(74,"\n"),v.ɵɵtemplate(75,J,0,0,"ng-template",null,25,v.ɵɵtemplateRefExtractor),v.ɵɵtext(77,"\n"),v.ɵɵtemplate(78,X,0,0,"ng-template",null,26,v.ɵɵtemplateRefExtractor),v.ɵɵtext(80,"\n"),v.ɵɵtemplate(81,Z,0,0,"ng-template",null,27,v.ɵɵtemplateRefExtractor),v.ɵɵtext(83,"\n"),v.ɵɵtemplate(84,ee,0,0,"ng-template",null,28,v.ɵɵtemplateRefExtractor),v.ɵɵtext(86,"\n"),v.ɵɵtemplate(87,te,0,0,"ng-template",null,29,v.ɵɵtemplateRefExtractor),v.ɵɵtext(89,"\n")),2&e){var n=v.ɵɵreference(18);v.ɵɵadvance(15),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(16,15,"myVault"),"\n "),v.ɵɵadvance(2),v.ɵɵproperty("appApiAction",t.ciphersComponent.actionPromise),v.ɵɵadvance(3),v.ɵɵproperty("ngIf",n.loading),v.ɵɵadvance(6),v.ɵɵproperty("ciphersComponent",t.ciphersComponent)("modal",t.modal)("deleted",t.deleted),v.ɵɵadvance(3),v.ɵɵproperty("ngIf",!t.deleted),v.ɵɵadvance(4),v.ɵɵproperty("ngIf",t.deleted),v.ɵɵadvance(8),v.ɵɵproperty("ngIf",t.showUpdateKey),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",t.showVerifyEmail),v.ɵɵadvance(4),v.ɵɵproperty("ngIf",t.showBrowserOutdated),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",t.showPremiumCallout),v.ɵɵadvance(5),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(55,17,"organizations"),"\n "),v.ɵɵadvance(2),v.ɵɵpropertyInterpolate("appA11yTitle",v.ɵɵpipeBind1(57,19,"learnMore")),v.ɵɵadvance(9),v.ɵɵproperty("vault",!0)}},directives:[P.GroupingsComponent,k.ApiActionDirective,_.NgIf,A.BulkActionsComponent,O.CiphersComponent,T.SendInfoComponent,M.A11yTitleDirective,B.OrganizationsComponent,D.CalloutComponent,R.VerifyEmailComponent,g.RouterLinkWithHref],pipes:[V.I18nPipe],encapsulation:2}),e}();t.VaultComponent=ne},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]-1&&this.trustedContacts.splice(t,1)},e.prototype.removeGrantor=function(e){var t=this.grantedContacts.indexOf(e);t>-1&&this.grantedContacts.splice(t,1)},e.prototype.doConfirmation=function(e){return r(this,void 0,void 0,(function(){var t,n,r,o,a,s,p,u;return i(this,(function(i){switch(i.label){case 0:return[4,this.cryptoService.getEncKey()];case 1:return t=i.sent(),[4,this.apiService.getUserPublicKey(e.granteeId)];case 2:n=i.sent(),r=l.Utils.fromB64ToArray(n.publicKey),i.label=3;case 3:return i.trys.push([3,5,,6]),a=(o=console).log,s="User's fingerprint: ",[4,this.cryptoService.getFingerprint(e.granteeId,r.buffer)];case 4:return a.apply(o,[s+i.sent().join("-")]),[3,6];case 5:return i.sent(),[3,6];case 6:return[4,this.cryptoService.rsaEncrypt(t.key,r.buffer)];case 7:return p=i.sent(),(u=new c.EmergencyAccessConfirmRequest).key=p.encryptedString,[4,this.apiService.postEmergencyAccessConfirm(e.id,u)];case 8:return i.sent(),[2]}}))}))},e.ɵfac=function(t){return new(t||e)(v.ɵɵdirectiveInject(y.ApiService),v.ɵɵdirectiveInject(g.I18nService),v.ɵɵdirectiveInject(v.ComponentFactoryResolver),v.ɵɵdirectiveInject(x.PlatformUtilsService),v.ɵɵdirectiveInject(b.ToasterService),v.ɵɵdirectiveInject(S.CryptoService),v.ɵɵdirectiveInject(w.StorageService),v.ɵɵdirectiveInject(C.UserService),v.ɵɵdirectiveInject(I.MessagingService))},e.ɵcmp=v.ɵɵdefineComponent({type:e,selectors:[["emergency-access"]],viewQuery:function(e,t){var n;(1&e&&(v.ɵɵstaticViewQuery(T,!0,o.ViewContainerRef),v.ɵɵstaticViewQuery(M,!0,o.ViewContainerRef),v.ɵɵstaticViewQuery(B,!0,o.ViewContainerRef)),2&e)&&(v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.addEditModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.takeoverModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.confirmModalRef=n.first))},decls:59,vars:25,consts:[[1,"page-header"],["href","https://bitwarden.com/help/article/emergency-access/","target","_blank","rel","noopener"],[4,"ngIf"],[1,"page-header","d-flex"],["href","#","appStopClick","","class","badge badge-primary",3,"click",4,"ngIf"],[1,"ml-auto","d-flex"],["type","button",1,"btn","btn-sm","btn-outline-primary","ml-3",3,"disabled","click"],["aria-hidden","true",1,"fa","fa-plus","fa-fw"],["class","table table-hover table-list mb-0",4,"ngIf"],[1,"page-header","spaced-header"],["addEdit",""],["takeoverTemplate",""],["confirmTemplate",""],["href","#","appStopClick","",1,"badge","badge-primary",3,"click"],[1,"table","table-hover","table-list","mb-0"],[4,"ngFor","ngForOf"],["width","30"],["size","25",3,"data","email","circle","fontSize"],["href","#","appStopClick","",3,"click"],["class","badge badge-secondary",4,"ngIf"],["class","badge badge-warning",4,"ngIf"],["class","badge badge-success",4,"ngIf"],["class","badge badge-primary",4,"ngIf"],["class","text-muted d-block",4,"ngIf"],[1,"table-list-options"],["appListDropdown","",1,"dropdown"],["type","button","data-toggle","dropdown","aria-haspopup","true","aria-expanded","false",1,"btn","btn-outline-secondary","dropdown-toggle",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-cog","fa-lg"],[1,"dropdown-menu","dropdown-menu-right"],["class","dropdown-item","href","#","appStopClick","",3,"click",4,"ngIf"],["class","dropdown-item text-success","href","#","appStopClick","",3,"click",4,"ngIf"],["class","dropdown-item text-warning","href","#","appStopClick","",3,"click",4,"ngIf"],["href","#","appStopClick","",1,"dropdown-item","text-danger",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-remove"],[1,"badge","badge-secondary"],[1,"badge","badge-warning"],[1,"badge","badge-success"],[1,"badge","badge-primary"],[1,"text-muted","d-block"],["href","#","appStopClick","",1,"dropdown-item",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-envelope-o"],["href","#","appStopClick","",1,"dropdown-item","text-success",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-check"],["href","#","appStopClick","",1,"dropdown-item","text-warning",3,"click"],["class","dropdown-item",3,"routerLink",4,"ngIf"],["aria-hidden","true",1,"fa","fa-fw","fa-key"],[1,"dropdown-item",3,"routerLink"],["aria-hidden","true",1,"fa","fa-fw","fa-eye"]],template:function(e,t){1&e&&(v.ɵɵelementStart(0,"div",0),v.ɵɵtext(1,"\n "),v.ɵɵelementStart(2,"h1"),v.ɵɵtext(3),v.ɵɵpipe(4,"i18n"),v.ɵɵelementEnd(),v.ɵɵtext(5,"\n"),v.ɵɵelementEnd(),v.ɵɵtext(6,"\n"),v.ɵɵelementStart(7,"p"),v.ɵɵtext(8),v.ɵɵpipe(9,"i18n"),v.ɵɵelementStart(10,"a",1),v.ɵɵtext(11),v.ɵɵpipe(12,"i18n"),v.ɵɵelementEnd(),v.ɵɵtext(13,"\n"),v.ɵɵelementEnd(),v.ɵɵtext(14,"\n\n"),v.ɵɵtemplate(15,D,7,6,"p",2),v.ɵɵtext(16,"\n\n"),v.ɵɵelementStart(17,"div",3),v.ɵɵtext(18,"\n "),v.ɵɵelementStart(19,"h2"),v.ɵɵtext(20),v.ɵɵpipe(21,"i18n"),v.ɵɵtemplate(22,R,3,3,"a",4),v.ɵɵtext(23,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(24,"\n "),v.ɵɵelementStart(25,"div",5),v.ɵɵtext(26,"\n "),v.ɵɵelementStart(27,"button",6),v.ɵɵlistener("click",(function(){return t.invite()})),v.ɵɵtext(28,"\n "),v.ɵɵelement(29,"i",7),v.ɵɵtext(30),v.ɵɵpipe(31,"i18n"),v.ɵɵelementEnd(),v.ɵɵtext(32,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(33,"\n"),v.ɵɵelementEnd(),v.ɵɵtext(34,"\n\n"),v.ɵɵtemplate(35,$,7,1,"table",8),v.ɵɵtext(36,"\n\n"),v.ɵɵtemplate(37,Y,3,3,"p",2),v.ɵɵtext(38,"\n\n"),v.ɵɵelementStart(39,"div",9),v.ɵɵtext(40,"\n "),v.ɵɵelementStart(41,"h2"),v.ɵɵtext(42),v.ɵɵpipe(43,"i18n"),v.ɵɵelementEnd(),v.ɵɵtext(44,"\n"),v.ɵɵelementEnd(),v.ɵɵtext(45,"\n\n"),v.ɵɵtemplate(46,se,7,1,"table",8),v.ɵɵtext(47,"\n\n"),v.ɵɵtemplate(48,le,3,3,"p",2),v.ɵɵtext(49,"\n\n"),v.ɵɵtemplate(50,ce,0,0,"ng-template",null,10,v.ɵɵtemplateRefExtractor),v.ɵɵtext(52,"\n"),v.ɵɵtemplate(53,pe,0,0,"ng-template",null,11,v.ɵɵtemplateRefExtractor),v.ɵɵtext(55,"\n"),v.ɵɵtemplate(56,ue,0,0,"ng-template",null,12,v.ɵɵtemplateRefExtractor),v.ɵɵtext(58,"\n")),2&e&&(v.ɵɵadvance(3),v.ɵɵtextInterpolate(v.ɵɵpipeBind1(4,13,"emergencyAccess")),v.ɵɵadvance(5),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(9,15,"emergencyAccessDesc"),"\n "),v.ɵɵadvance(3),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(12,17,"learnMore"),".\n "),v.ɵɵadvance(4),v.ɵɵproperty("ngIf",t.isOrganizationOwner),v.ɵɵadvance(5),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(21,19,"trustedEmergencyContacts"),"\n "),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",!t.canAccessPremium),v.ɵɵadvance(5),v.ɵɵproperty("disabled",!t.canAccessPremium),v.ɵɵadvance(3),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(31,21,"addEmergencyContact"),"\n "),v.ɵɵadvance(5),v.ɵɵproperty("ngIf",t.trustedContacts&&t.trustedContacts.length),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",!t.trustedContacts||!t.trustedContacts.length),v.ɵɵadvance(5),v.ɵɵtextInterpolate(v.ɵɵpipeBind1(43,23,"designatedEmergencyContacts")),v.ɵɵadvance(4),v.ɵɵproperty("ngIf",t.grantedContacts&&t.grantedContacts.length),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",!t.grantedContacts||!t.grantedContacts.length))},directives:[E.NgIf,P.StopClickDirective,E.NgForOf,k.AvatarComponent,_.A11yTitleDirective,A.RouterLinkWithHref],pipes:[O.I18nPipe],encapsulation:2}),e}();t.EmergencyAccessComponent=de},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.View=0]="View",e[e.Takeover=1]="Takeover"}(t.EmergencyAccessType||(t.EmergencyAccessType={}))},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(23),a=n(262),s=function(e){function t(t){var n=e.call(this,t)||this;return n.id=n.getResponseProperty("Id"),n.granteeId=n.getResponseProperty("GranteeId"),n.name=n.getResponseProperty("Name"),n.email=n.getResponseProperty("Email"),n.type=n.getResponseProperty("Type"),n.status=n.getResponseProperty("Status"),n.waitTimeDays=n.getResponseProperty("WaitTimeDays"),n.creationDate=n.getResponseProperty("CreationDate"),n}return i(t,e),t}(o.BaseResponse);t.EmergencyAccessGranteeDetailsResponse=s;var l=function(e){function t(t){var n=e.call(this,t)||this;return n.id=n.getResponseProperty("Id"),n.grantorId=n.getResponseProperty("GrantorId"),n.name=n.getResponseProperty("Name"),n.email=n.getResponseProperty("Email"),n.type=n.getResponseProperty("Type"),n.status=n.getResponseProperty("Status"),n.waitTimeDays=n.getResponseProperty("WaitTimeDays"),n.creationDate=n.getResponseProperty("CreationDate"),n}return i(t,e),t}(o.BaseResponse);t.EmergencyAccessGrantorDetailsResponse=l;var c=function(e){function t(t){var n=e.call(this,t)||this;return n.keyEncrypted=n.getResponseProperty("KeyEncrypted"),n.kdf=n.getResponseProperty("Kdf"),n.kdfIterations=n.getResponseProperty("KdfIterations"),n}return i(t,e),t}(o.BaseResponse);t.EmergencyAccessTakeoverResponse=c;var p=function(e){function t(t){var n=e.call(this,t)||this;n.ciphers=[],n.keyEncrypted=n.getResponseProperty("KeyEncrypted");var r=n.getResponseProperty("Ciphers");return null!=r&&(n.ciphers=r.map((function(e){return new a.CipherResponse(e)}))),n}return i(t,e),t}(o.BaseResponse);t.EmergencyAccessViewResponse=p},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0),m.ɵɵadvance(2),m.ɵɵproperty("ngIf",(null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.minLength)>0),m.ɵɵadvance(2),m.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireUpper),m.ɵɵadvance(2),m.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireLower),m.ɵɵadvance(2),m.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireNumbers),m.ɵɵadvance(2),m.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireSpecial)}}var U=function(e){function t(t,n,r,i,o,a,l,c,p){var u=e.call(this,t,n,r,i,o,a,l)||this;return u.apiService=c,u.toasterService=p,u.onDone=new s.EventEmitter,u}return i(t,e),t.prototype.ngOnInit=function(){return o(this,void 0,void 0,(function(){var e,t,n;return a(this,(function(r){switch(r.label){case 0:return[4,this.apiService.getEmergencyGrantorPolicies(this.emergencyAccessId)];case 1:return null!=(e=r.sent()).data&&e.data.length>0?(t=e.data.map((function(e){return new p.Policy(new c.PolicyData(e))})),n=this,[4,this.policyService.getMasterPasswordPolicyOptions(t)]):[3,3];case 2:n.enforcedPolicyOptions=r.sent(),r.label=3;case 3:return[2]}}))}))},t.prototype.submit=function(){return o(this,void 0,void 0,(function(){var e,t,n,r,i,o,s;return a(this,(function(a){switch(a.label){case 0:return[4,this.strongPassword()];case 1:return a.sent()?[4,this.apiService.postEmergencyAccessTakeover(this.emergencyAccessId)]:[2];case 2:return e=a.sent(),[4,this.cryptoService.rsaDecrypt(e.keyEncrypted)];case 3:return t=a.sent(),null==(n=new u.SymmetricCryptoKey(t))?(this.toasterService.popAsync("error",this.i18nService.t("errorOccurred"),this.i18nService.t("unexpectedError")),[2]):[4,this.cryptoService.makeKey(this.masterPassword,this.email,e.kdf,e.kdfIterations)];case 4:return r=a.sent(),[4,this.cryptoService.hashPassword(this.masterPassword,r)];case 5:return i=a.sent(),[4,this.cryptoService.remakeEncKey(r,n)];case 6:o=a.sent(),(s=new d.EmergencyAccessPasswordRequest).newMasterPasswordHash=i,s.key=o[1].encryptedString,this.apiService.postEmergencyAccessPassword(this.emergencyAccessId,s);try{this.onDone.emit()}catch(l){}return[2]}}))}))},t.ɵfac=function(e){return new(e||t)(m.ɵɵdirectiveInject(h.I18nService),m.ɵɵdirectiveInject(f.CryptoService),m.ɵɵdirectiveInject(v.MessagingService),m.ɵɵdirectiveInject(y.UserService),m.ɵɵdirectiveInject(g.PasswordGenerationService),m.ɵɵdirectiveInject(x.PlatformUtilsService),m.ɵɵdirectiveInject(b.PolicyService),m.ɵɵdirectiveInject(S.ApiService),m.ɵɵdirectiveInject(w.ToasterService))},t.ɵcmp=m.ɵɵdefineComponent({type:t,selectors:[["emergency-access-takeover"]],inputs:{emergencyAccessId:"emergencyAccessId",name:"name",email:"email",kdf:"kdf",kdfIterations:"kdfIterations"},outputs:{onDone:"onDone"},features:[m.ɵɵInheritDefinitionFeature],decls:81,vars:32,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","userAddEditTitle",1,"modal","fade"],["role","document",1,"modal-dialog","modal-lg"],["ngNativeValidate","",1,"modal-content",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-header"],["id","userAddEditTitle",1,"modal-title"],["class","text-muted",4,"ngIf"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],[1,"modal-body"],["type","warning"],["type","info",4,"ngIf"],[1,"row"],[1,"col-6"],[1,"form-group"],["for","masterPassword"],["id","masterPassword","type","password","name","NewMasterPasswordHash","required","","appInputVerbatim","","autocomplete","new-password",1,"form-control","mb-1",3,"ngModel","ngModelChange","input"],[3,"score","showText"],["for","masterPasswordRetype"],["id","masterPasswordRetype","type","password","name","MasterPasswordRetype","required","","appInputVerbatim","","autocomplete","new-password",1,"form-control",3,"ngModel","ngModelChange"],[1,"modal-footer"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],[1,"text-muted"],["type","info"],[1,"mb-0"],[4,"ngIf"]],template:function(e,t){if(1&e&&(m.ɵɵelementStart(0,"div",0),m.ɵɵtext(1,"\n "),m.ɵɵelementStart(2,"div",1),m.ɵɵtext(3,"\n "),m.ɵɵelementStart(4,"form",2,3),m.ɵɵlistener("ngSubmit",(function(){return t.submit()})),m.ɵɵtext(6,"\n "),m.ɵɵelementStart(7,"div",4),m.ɵɵtext(8,"\n "),m.ɵɵelementStart(9,"h2",5),m.ɵɵtext(10),m.ɵɵpipe(11,"i18n"),m.ɵɵtemplate(12,T,2,1,"small",6),m.ɵɵtext(13,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(14,"\n "),m.ɵɵelementStart(15,"button",7),m.ɵɵpipe(16,"i18n"),m.ɵɵtext(17,"\n "),m.ɵɵelementStart(18,"span",8),m.ɵɵtext(19,"×"),m.ɵɵelementEnd(),m.ɵɵtext(20,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(21,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(22,"\n "),m.ɵɵelementStart(23,"div",9),m.ɵɵtext(24,"\n "),m.ɵɵelementStart(25,"app-callout",10),m.ɵɵtext(26),m.ɵɵpipe(27,"i18n"),m.ɵɵelementEnd(),m.ɵɵtext(28,"\n "),m.ɵɵtemplate(29,F,18,9,"app-callout",11),m.ɵɵtext(30,"\n "),m.ɵɵelementStart(31,"div",12),m.ɵɵtext(32,"\n "),m.ɵɵelementStart(33,"div",13),m.ɵɵtext(34,"\n "),m.ɵɵelementStart(35,"div",14),m.ɵɵtext(36,"\n "),m.ɵɵelementStart(37,"label",15),m.ɵɵtext(38),m.ɵɵpipe(39,"i18n"),m.ɵɵelementEnd(),m.ɵɵtext(40,"\n "),m.ɵɵelementStart(41,"input",16),m.ɵɵlistener("ngModelChange",(function(e){return t.masterPassword=e}))("input",(function(){return t.updatePasswordStrength()})),m.ɵɵelementEnd(),m.ɵɵtext(42,"\n "),m.ɵɵelement(43,"app-password-strength",17),m.ɵɵtext(44,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(45,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(46,"\n "),m.ɵɵelementStart(47,"div",13),m.ɵɵtext(48,"\n "),m.ɵɵelementStart(49,"div",14),m.ɵɵtext(50,"\n "),m.ɵɵelementStart(51,"label",18),m.ɵɵtext(52),m.ɵɵpipe(53,"i18n"),m.ɵɵelementEnd(),m.ɵɵtext(54,"\n "),m.ɵɵelementStart(55,"input",19),m.ɵɵlistener("ngModelChange",(function(e){return t.masterPasswordRetype=e})),m.ɵɵelementEnd(),m.ɵɵtext(56,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(57,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(58,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(59,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(60,"\n "),m.ɵɵelementStart(61,"div",20),m.ɵɵtext(62,"\n "),m.ɵɵelementStart(63,"button",21),m.ɵɵtext(64,"\n "),m.ɵɵelement(65,"i",22),m.ɵɵpipe(66,"i18n"),m.ɵɵtext(67,"\n "),m.ɵɵelementStart(68,"span"),m.ɵɵtext(69),m.ɵɵpipe(70,"i18n"),m.ɵɵelementEnd(),m.ɵɵtext(71,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(72,"\n "),m.ɵɵelementStart(73,"button",23),m.ɵɵtext(74),m.ɵɵpipe(75,"i18n"),m.ɵɵelementEnd(),m.ɵɵtext(76,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(77,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(78,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(79,"\n"),m.ɵɵelementEnd(),m.ɵɵtext(80,"\n")),2&e){var n=m.ɵɵreference(5);m.ɵɵadvance(4),m.ɵɵproperty("appApiAction",t.formPromise),m.ɵɵadvance(6),m.ɵɵtextInterpolate1("\n ",m.ɵɵpipeBind1(11,16,"takeover"),"\n "),m.ɵɵadvance(2),m.ɵɵproperty("ngIf",t.name),m.ɵɵadvance(3),m.ɵɵpropertyInterpolate("appA11yTitle",m.ɵɵpipeBind1(16,18,"close")),m.ɵɵadvance(11),m.ɵɵtextInterpolate(m.ɵɵpipeBind1(27,20,"loggedOutWarning")),m.ɵɵadvance(3),m.ɵɵproperty("ngIf",t.enforcedPolicyOptions),m.ɵɵadvance(9),m.ɵɵtextInterpolate(m.ɵɵpipeBind1(39,22,"newMasterPass")),m.ɵɵadvance(3),m.ɵɵproperty("ngModel",t.masterPassword),m.ɵɵadvance(2),m.ɵɵproperty("score",t.masterPasswordScore)("showText",!0),m.ɵɵadvance(9),m.ɵɵtextInterpolate(m.ɵɵpipeBind1(53,24,"confirmNewMasterPass")),m.ɵɵadvance(3),m.ɵɵproperty("ngModel",t.masterPasswordRetype),m.ɵɵadvance(8),m.ɵɵproperty("disabled",n.loading),m.ɵɵadvance(2),m.ɵɵpropertyInterpolate("title",m.ɵɵpipeBind1(66,26,"loading")),m.ɵɵadvance(4),m.ɵɵtextInterpolate(m.ɵɵpipeBind1(70,28,"save")),m.ɵɵadvance(5),m.ɵɵtextInterpolate(m.ɵɵpipeBind1(75,30,"cancel"))}},directives:[C.NgControlStatusGroup,C.NgForm,I.ApiActionDirective,E.NgIf,P.A11yTitleDirective,k.CalloutComponent,C.DefaultValueAccessor,C.RequiredValidator,_.InputVerbatimDirective,C.NgControlStatus,C.NgModel,A.PasswordStrengthComponent],pipes:[O.I18nPipe],encapsulation:2}),t}(l.ChangePasswordComponent);t.EmergencyAccessTakeoverComponent=U},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]-1?"&":"?",e+="end="+n),null!=r&&(e+=e.indexOf("?")>-1?"&":"?",e+="continuationToken="+r),e},e.prototype.isJsonResponse=function(e){var t=e.headers.get("content-type");return null!=t&&t.indexOf("application/json")>-1},e.prototype.isTextResponse=function(e){var t=e.headers.get("content-type");return null!=t&&t.indexOf("text")>-1},e}();t.ApiService=Y},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(23),a=n(684),s=function(e){function t(t){var n=e.call(this,t)||this;n.id=n.getResponseProperty("Id"),n.identifier=n.getResponseProperty("Identifier"),n.name=n.getResponseProperty("Name"),n.businessName=n.getResponseProperty("BusinessName"),n.businessAddress1=n.getResponseProperty("BusinessAddress1"),n.businessAddress2=n.getResponseProperty("BusinessAddress2"),n.businessAddress3=n.getResponseProperty("BusinessAddress3"),n.businessCountry=n.getResponseProperty("BusinessCountry"),n.businessTaxNumber=n.getResponseProperty("BusinessTaxNumber"),n.billingEmail=n.getResponseProperty("BillingEmail");var r=n.getResponseProperty("Plan");return n.plan=null==r?null:new a.PlanResponse(r),n.planType=n.getResponseProperty("PlanType"),n.seats=n.getResponseProperty("Seats"),n.maxCollections=n.getResponseProperty("MaxCollections"),n.maxStorageGb=n.getResponseProperty("MaxStorageGb"),n.useGroups=n.getResponseProperty("UseGroups"),n.useDirectory=n.getResponseProperty("UseDirectory"),n.useEvents=n.getResponseProperty("UseEvents"),n.useTotp=n.getResponseProperty("UseTotp"),n.use2fa=n.getResponseProperty("Use2fa"),n.useApi=n.getResponseProperty("UseApi"),n}return i(t,e),t}(o.BaseResponse);t.OrganizationResponse=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(t){var n=e.call(this,t)||this;return n.type=n.getResponseProperty("Type"),n.product=n.getResponseProperty("Product"),n.name=n.getResponseProperty("Name"),n.isAnnual=n.getResponseProperty("IsAnnual"),n.nameLocalizationKey=n.getResponseProperty("NameLocalizationKey"),n.descriptionLocalizationKey=n.getResponseProperty("DescriptionLocalizationKey"),n.canBeUsedByBusiness=n.getResponseProperty("CanBeUsedByBusiness"),n.baseSeats=n.getResponseProperty("BaseSeats"),n.baseStorageGb=n.getResponseProperty("BaseStorageGb"),n.maxCollections=n.getResponseProperty("MaxCollections"),n.maxUsers=n.getResponseProperty("MaxUsers"),n.hasAdditionalSeatsOption=n.getResponseProperty("HasAdditionalSeatsOption"),n.maxAdditionalSeats=n.getResponseProperty("MaxAdditionalSeats"),n.hasAdditionalStorageOption=n.getResponseProperty("HasAdditionalStorageOption"),n.maxAdditionalStorage=n.getResponseProperty("MaxAdditionalStorage"),n.hasPremiumAccessOption=n.getResponseProperty("HasPremiumAccessOption"),n.trialPeriodDays=n.getResponseProperty("TrialPeriodDays"),n.hasSelfHost=n.getResponseProperty("HasSelfHost"),n.hasPolicies=n.getResponseProperty("HasPolicies"),n.hasGroups=n.getResponseProperty("HasGroups"),n.hasDirectory=n.getResponseProperty("HasDirectory"),n.hasEvents=n.getResponseProperty("HasEvents"),n.hasTotp=n.getResponseProperty("HasTotp"),n.has2fa=n.getResponseProperty("Has2fa"),n.hasApi=n.getResponseProperty("HasApi"),n.hasSso=n.getResponseProperty("HasSso"),n.usersGetPremium=n.getResponseProperty("UsersGetPremium"),n.upgradeSortOrder=n.getResponseProperty("UpgradeSortOrder"),n.displaySortOrder=n.getResponseProperty("SortOrder"),n.legacyYear=n.getResponseProperty("LegacyYear"),n.disabled=n.getResponseProperty("Disabled"),n.stripePlanId=n.getResponseProperty("StripePlanId"),n.stripeSeatPlanId=n.getResponseProperty("StripeSeatPlanId"),n.stripeStoragePlanId=n.getResponseProperty("StripeStoragePlanId"),n.stripePremiumAccessPlanId=n.getResponseProperty("StripePremiumAccessPlanId"),n.basePrice=n.getResponseProperty("BasePrice"),n.seatPrice=n.getResponseProperty("SeatPrice"),n.additionalStoragePricePerGb=n.getResponseProperty("AdditionalStoragePricePerGb"),n.premiumAccessOptionPrice=n.getResponseProperty("PremiumAccessOptionPrice"),n}return i(t,e),t}(n(23).BaseResponse);t.PlanResponse=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(23),a=function(e){function t(t){var n=e.call(this,t)||this;n.storageName=n.getResponseProperty("StorageName"),n.storageGb=n.getResponseProperty("StorageGb"),n.maxStorageGb=n.getResponseProperty("MaxStorageGb"),n.license=n.getResponseProperty("License"),n.expiration=n.getResponseProperty("Expiration"),n.usingInAppPurchase=n.getResponseProperty("UsingInAppPurchase");var r=n.getResponseProperty("Subscription"),i=n.getResponseProperty("UpcomingInvoice");return n.subscription=null==r?null:new s(r),n.upcomingInvoice=null==i?null:new c(i),n}return i(t,e),t}(o.BaseResponse);t.SubscriptionResponse=a;var s=function(e){function t(t){var n=e.call(this,t)||this;n.items=[],n.trialEndDate=n.getResponseProperty("TrialStartDate"),n.trialEndDate=n.getResponseProperty("TrialEndDate"),n.periodStartDate=n.getResponseProperty("PeriodStartDate"),n.periodEndDate=n.getResponseProperty("PeriodEndDate"),n.cancelledDate=n.getResponseProperty("CancelledDate"),n.cancelAtEndDate=n.getResponseProperty("CancelAtEndDate"),n.status=n.getResponseProperty("Status"),n.cancelled=n.getResponseProperty("Cancelled");var r=n.getResponseProperty("Items");return null!=r&&(n.items=r.map((function(e){return new l(e)}))),n}return i(t,e),t}(o.BaseResponse);t.BillingSubscriptionResponse=s;var l=function(e){function t(t){var n=e.call(this,t)||this;return n.name=n.getResponseProperty("Name"),n.amount=n.getResponseProperty("Amount"),n.quantity=n.getResponseProperty("Quantity"),n.interval=n.getResponseProperty("Interval"),n}return i(t,e),t}(o.BaseResponse);t.BillingSubscriptionItemResponse=l;var c=function(e){function t(t){var n=e.call(this,t)||this;return n.date=n.getResponseProperty("Date"),n.amount=n.getResponseProperty("Amount"),n}return i(t,e),t}(o.BaseResponse);t.BillingSubscriptionUpcomingInvoiceResponse=c},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(30),a=n(23),s=function(e){function t(t){var n=e.call(this,t)||this;n.enabled=n.getResponseProperty("Enabled");var r=n.getResponseProperty("Keys");return n.keys=null==r?null:r.map((function(e){return new l(e)})),n}return i(t,e),t}(a.BaseResponse);t.TwoFactorWebAuthnResponse=s;var l=function(e){function t(t){var n=e.call(this,t)||this;return n.name=n.getResponseProperty("Name"),n.id=n.getResponseProperty("Id"),n.migrated=n.getResponseProperty("Migrated"),n}return i(t,e),t}(a.BaseResponse);t.KeyResponse=l;var c=function(e){function t(t){var n=e.call(this,t)||this;n.attestation=n.getResponseProperty("attestation"),n.authenticatorSelection=n.getResponseProperty("authenticatorSelection"),n.challenge=o.Utils.fromUrlB64ToArray(n.getResponseProperty("challenge")),n.excludeCredentials=n.getResponseProperty("excludeCredentials").map((function(e){return e.id=o.Utils.fromUrlB64ToArray(e.id).buffer,e})),n.extensions=n.getResponseProperty("extensions"),n.pubKeyCredParams=n.getResponseProperty("pubKeyCredParams"),n.rp=n.getResponseProperty("rp"),n.timeout=n.getResponseProperty("timeout");var r=n.getResponseProperty("user");return r.id=o.Utils.fromUrlB64ToArray(r.id),n.user=r,n}return i(t,e),t}(a.BaseResponse);t.ChallengeResponse=c},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]5&&(e.passwordHistory=e.passwordHistory.slice(0,5)),a.label=5;case 5:return(p=new m.Cipher).id=e.id,p.folderId=e.folderId,p.favorite=e.favorite,p.organizationId=e.organizationId,p.type=e.type,p.collectionIds=e.collectionIds,p.revisionDate=e.revisionDate,null!=t||null==p.organizationId?[3,7]:[4,this.cryptoService.getOrgKey(p.organizationId)];case 6:if(null==(t=a.sent()))throw new Error("Cannot encrypt cipher for organization. No key.");a.label=7;case 7:return[4,Promise.all([this.encryptObjProperty(e,p,{name:null,notes:null},t),this.encryptCipherData(p,e,t),this.encryptFields(e.fields,t).then((function(e){p.fields=e})),this.encryptPasswordHistories(e.passwordHistory,t).then((function(e){p.passwordHistory=e})),this.encryptAttachments(e.attachments,t).then((function(e){p.attachments=e}))])];case 8:return a.sent(),[2,p]}}))}))},t.prototype.encryptAttachments=function(e,t){return o(this,void 0,void 0,(function(){var n,r,i=this;return a(this,(function(s){switch(s.label){case 0:return null==e||0===e.length?[2,null]:(n=[],r=[],e.forEach((function(e){return o(i,void 0,void 0,(function(){var i,s,l=this;return a(this,(function(c){return(i=new u.Attachment).id=e.id,i.size=e.size,i.sizeName=e.sizeName,i.url=e.url,s=this.encryptObjProperty(e,i,{fileName:null},t).then((function(){return o(l,void 0,void 0,(function(){var n;return a(this,(function(o){switch(o.label){case 0:return null==e.key?[3,2]:(n=i,[4,this.cryptoService.encrypt(e.key.key,t)]);case 1:n.key=o.sent(),o.label=2;case 2:return r.push(i),[2]}}))}))})),n.push(s),[2]}))}))})),[4,Promise.all(n)]);case 1:return s.sent(),[2,r]}}))}))},t.prototype.encryptFields=function(e,t){return o(this,void 0,void 0,(function(){var n,r;return a(this,(function(i){switch(i.label){case 0:return e&&e.length?(n=this,r=[],[4,e.reduce((function(e,i){return e.then((function(){return n.encryptField(i,t)})).then((function(e){r.push(e)}))}),Promise.resolve())]):[2,null];case 1:return i.sent(),[2,r]}}))}))},t.prototype.encryptField=function(e,t){return o(this,void 0,void 0,(function(){var n;return a(this,(function(r){switch(r.label){case 0:return(n=new h.Field).type=e.type,e.type===l.FieldType.Boolean&&"true"!==e.value&&(e.value="false"),[4,this.encryptObjProperty(e,n,{name:null,value:null},t)];case 1:return r.sent(),[2,n]}}))}))},t.prototype.encryptPasswordHistories=function(e,t){return o(this,void 0,void 0,(function(){var n,r;return a(this,(function(i){switch(i.label){case 0:return e&&e.length?(n=this,r=[],[4,e.reduce((function(e,i){return e.then((function(){return n.encryptPasswordHistory(i,t)})).then((function(e){r.push(e)}))}),Promise.resolve())]):[2,null];case 1:return i.sent(),[2,r]}}))}))},t.prototype.encryptPasswordHistory=function(e,t){return o(this,void 0,void 0,(function(){var n;return a(this,(function(r){switch(r.label){case 0:return(n=new g.Password).lastUsedDate=e.lastUsedDate,[4,this.encryptObjProperty(e,n,{password:null},t)];case 1:return r.sent(),[2,n]}}))}))},t.prototype.get=function(e){return o(this,void 0,void 0,(function(){var t,n,r;return a(this,(function(i){switch(i.label){case 0:return[4,this.userService.getUserId()];case 1:return t=i.sent(),[4,this.storageService.get(R)];case 2:return n=i.sent(),[4,this.storageService.get(D+t)];case 3:return null!=(r=i.sent())&&r.hasOwnProperty(e)?[2,new m.Cipher(r[e],!1,n?n[e]:null)]:[2,null]}}))}))},t.prototype.getAll=function(){return o(this,void 0,void 0,(function(){var e,t,n,r,i;return a(this,(function(o){switch(o.label){case 0:return[4,this.userService.getUserId()];case 1:return e=o.sent(),[4,this.storageService.get(R)];case 2:return t=o.sent(),[4,this.storageService.get(D+e)];case 3:for(i in n=o.sent(),r=[],n)n.hasOwnProperty(i)&&r.push(new m.Cipher(n[i],!1,t?t[i]:null));return[2,r]}}))}))},t.prototype.getAllDecrypted=function(){var e;return o(this,void 0,void 0,(function(){var t,n,r;return a(this,(function(i){switch(i.label){case 0:return null==this.decryptedCipherCache?[3,4]:[4,this.userService.getUserId()];case 1:return t=i.sent(),(null!==(e=this.searchService().indexedEntityId)&&void 0!==e?e:t)===t?[3,3]:[4,this.searchService().indexCiphers(t,this.decryptedCipherCache)];case 2:i.sent(),i.label=3;case 3:return[2,this.decryptedCipherCache];case 4:return n=[],[4,this.cryptoService.hasKey()];case 5:if(!i.sent())throw new Error("No key.");return r=[],[4,this.getAll()];case 6:return i.sent().forEach((function(e){r.push(e.decrypt().then((function(e){return n.push(e)})))})),[4,Promise.all(r)];case 7:return i.sent(),n.sort(this.getLocaleSortingFunction()),this.decryptedCipherCache=n,[2,this.decryptedCipherCache]}}))}))},t.prototype.getAllDecryptedForGrouping=function(e,t){return void 0===t&&(t=!0),o(this,void 0,void 0,(function(){return a(this,(function(n){switch(n.label){case 0:return[4,this.getAllDecrypted()];case 1:return[2,n.sent().filter((function(n){return!n.isDeleted&&(!(!t||n.folderId!==e)||!t&&null!=n.collectionIds&&n.collectionIds.indexOf(e)>-1)}))]}}))}))},t.prototype.getAllDecryptedForUrl=function(e,t,n){return void 0===n&&(n=null),o(this,void 0,void 0,(function(){var r,i,o,l,p;return a(this,(function(a){switch(a.label){case 0:return null==e&&null==t?[2,Promise.resolve([])]:(r=B.Utils.getDomain(e),i=null==r?Promise.resolve([]):this.settingsService.getEquivalentDomains().then((function(e){var t=[];return e.forEach((function(e){e.length&&e.indexOf(r)>=0&&(t=t.concat(e))})),t.length||t.push(r),t})),[4,Promise.all([i,this.getAllDecrypted()])]);case 1:return o=a.sent(),l=o[0],p=o[1],null!=n?[3,3]:[4,this.storageService.get(T.ConstantsService.defaultUriMatch)];case 2:null==(n=a.sent())&&(n=c.UriMatchType.Domain),a.label=3;case 3:return[2,p.filter((function(i){if(null!=i.deletedDate)return!1;if(null!=t&&t.indexOf(i.type)>-1)return!0;if(null!=e&&i.type===s.CipherType.Login&&null!=i.login.uris)for(var o=0;o-1){if(!j.has(p.domain))return!0;var u=B.Utils.getHost(e);if(!j.get(p.domain).has(u))return!0}break;case c.UriMatchType.Host:var d=B.Utils.getHost(e);if(null!=d&&d===B.Utils.getHost(p.uri))return!0;break;case c.UriMatchType.Exact:if(e===p.uri)return!0;break;case c.UriMatchType.StartsWith:if(e.startsWith(p.uri))return!0;break;case c.UriMatchType.RegularExpression:try{if(new RegExp(p.uri,"i").test(e))return!0}catch(a){}break;case c.UriMatchType.Never:}}return!1}))]}}))}))},t.prototype.getAllFromApiForOrganization=function(e){return o(this,void 0,void 0,(function(){var t,n,r;return a(this,(function(i){switch(i.label){case 0:return[4,this.apiService.getCiphersOrganization(e)];case 1:return null!=(t=i.sent())&&null!=t.data&&t.data.length?(n=[],r=[],t.data.forEach((function(e){var t=new p.CipherData(e),i=new m.Cipher(t);r.push(i.decrypt().then((function(e){return n.push(e)})))})),[4,Promise.all(r)]):[3,3];case 2:return i.sent(),n.sort(this.getLocaleSortingFunction()),[2,n];case 3:return[2,[]]}}))}))},t.prototype.getLastUsedForUrl=function(e){return o(this,void 0,void 0,(function(){return a(this,(function(t){return[2,this.getCipherForUrl(e,!0,!1)]}))}))},t.prototype.getLastLaunchedForUrl=function(e){return o(this,void 0,void 0,(function(){return a(this,(function(t){return[2,this.getCipherForUrl(e,!1,!0)]}))}))},t.prototype.getNextCipherForUrl=function(e){return o(this,void 0,void 0,(function(){return a(this,(function(t){return[2,this.getCipherForUrl(e,!1,!1)]}))}))},t.prototype.updateLastUsedIndexForUrl=function(e){this.sortedCiphersCache.updateLastUsedIndex(e)},t.prototype.updateLastUsedDate=function(e){return o(this,void 0,void 0,(function(){var t,n,r;return a(this,(function(i){switch(i.label){case 0:return[4,this.storageService.get(R)];case 1:return(t=i.sent())||(t={}),t[e]?t[e].lastUsedDate=(new Date).getTime():t[e]={lastUsedDate:(new Date).getTime()},[4,this.storageService.save(R,t)];case 2:if(i.sent(),null==this.decryptedCipherCache)return[2];for(n=0;nr?-1:null!=r&&null==n?1:0},t.prototype.sortCiphersByLastUsedThenName=function(e,t){var n=this.sortCiphersByLastUsed(e,t);return 0!==n?n:this.getLocaleSortingFunction()(e,t)},t.prototype.getLocaleSortingFunction=function(){var e=this;return function(t,n){var r=t.name,i=n.name;if(null==r&&null!=i)return-1;if(null!=r&&null==i)return 1;if(null==r&&null==i)return 0;var o=e.i18nService.collator?e.i18nService.collator.compare(r,i):r.localeCompare(i);return 0!==o||t.type!==s.CipherType.Login||n.type!==s.CipherType.Login?o:(null!=t.login.username&&(r+=t.login.username),null!=n.login.username&&(i+=n.login.username),e.i18nService.collator?e.i18nService.collator.compare(r,i):r.localeCompare(i))}},t.prototype.softDelete=function(e){return o(this,void 0,void 0,(function(){var t,n,r;return a(this,(function(i){switch(i.label){case 0:return[4,this.userService.getUserId()];case 1:return t=i.sent(),[4,this.storageService.get(D+t)];case 2:return null==(n=i.sent())?[2]:(r=function(e){null!=n[e]&&(n[e].deletedDate=(new Date).toISOString())},"string"==typeof e?r(e):e.forEach(r),[4,this.storageService.save(D+t,n)]);case 3:return i.sent(),this.decryptedCipherCache=null,[2]}}))}))},t.prototype.softDeleteWithServer=function(e){return o(this,void 0,void 0,(function(){return a(this,(function(t){switch(t.label){case 0:return[4,this.apiService.putDeleteCipher(e)];case 1:return t.sent(),[4,this.softDelete(e)];case 2:return t.sent(),[2]}}))}))},t.prototype.softDeleteManyWithServer=function(e){return o(this,void 0,void 0,(function(){return a(this,(function(t){switch(t.label){case 0:return[4,this.apiService.putDeleteManyCiphers(new b.CipherBulkDeleteRequest(e))];case 1:return t.sent(),[4,this.softDelete(e)];case 2:return t.sent(),[2]}}))}))},t.prototype.restore=function(e){return o(this,void 0,void 0,(function(){var t,n,r;return a(this,(function(i){switch(i.label){case 0:return[4,this.userService.getUserId()];case 1:return t=i.sent(),[4,this.storageService.get(D+t)];case 2:return null==(n=i.sent())?[2]:(r=function(e){null!=n[e.id]&&(n[e.id].deletedDate=null,n[e.id].revisionDate=e.revisionDate)},"Array"===e.constructor.name?e.forEach(r):r(e),[4,this.storageService.save(D+t,n)]);case 3:return i.sent(),this.decryptedCipherCache=null,[2]}}))}))},t.prototype.restoreWithServer=function(e){return o(this,void 0,void 0,(function(){var t;return a(this,(function(n){switch(n.label){case 0:return[4,this.apiService.putRestoreCipher(e)];case 1:return t=n.sent(),[4,this.restore({id:e,revisionDate:t.revisionDate})];case 2:return n.sent(),[2]}}))}))},t.prototype.restoreManyWithServer=function(e){return o(this,void 0,void 0,(function(){var t,n,r,i,o;return a(this,(function(a){switch(a.label){case 0:return[4,this.apiService.putRestoreManyCiphers(new w.CipherBulkRestoreRequest(e))];case 1:for(t=a.sent(),n=[],r=0,i=t.data;r0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0?[2,this.orgKeys]:[4,this.storageService.get(x)];case 1:if(null==(e=a.sent()))return[2,null];for(i in t=new Map,n=!1,r=[],e)r.push(i);o=0,a.label=2;case 2:return o53)throw new Error("We cannot generate numbers larger than 53 bits.");return o=Math.ceil(i/8),s=Math.pow(2,i)-1,c=Uint8Array.bind,[4,this.cryptoFunctionService.randomBytes(o)];case 1:for(l=new(c.apply(Uint8Array,[void 0,a.sent()])),p=8*(o-1),u=0;u=r?[2,this.randomNumber(e,t)]:[2,e+n]}}))}))},e.prototype.aesEncrypt=function(e,t){return o(this,void 0,void 0,(function(){var n,r,i,o,s,l;return a(this,(function(a){switch(a.label){case 0:return n=new u.EncryptedObject,r=n,[4,this.getKeyForEncryption(t)];case 1:return r.key=a.sent(),i=n,[4,this.cryptoFunctionService.randomBytes(16)];case 2:return i.iv=a.sent(),o=n,[4,this.cryptoFunctionService.aesEncrypt(e,n.iv,n.key.encKey)];case 3:return o.data=a.sent(),null==n.key.macKey?[3,5]:((s=new Uint8Array(n.iv.byteLength+n.data.byteLength)).set(new Uint8Array(n.iv),0),s.set(new Uint8Array(n.data),n.iv.byteLength),l=n,[4,this.cryptoFunctionService.hmac(s.buffer,n.key.macKey,"sha256")]);case 4:l.mac=a.sent(),a.label=5;case 5:return[2,n]}}))}))},e.prototype.aesDecryptToUtf8=function(e,t,n,r,i){return o(this,void 0,void 0,(function(){var o,s,l,c;return a(this,(function(a){switch(a.label){case 0:return[4,this.getKeyForEncryption(i)];case 1:return o=a.sent(),null!=(s=this.resolveLegacyKey(e,o)).macKey&&null==r?(this.logService.error("mac required."),[2,null]):s.encType!==e?(this.logService.error("encType unavailable."),[2,null]):null==(l=this.cryptoFunctionService.aesDecryptFastParameters(t,n,r,s)).macKey||null==l.mac?[3,4]:[4,this.cryptoFunctionService.hmacFast(l.macData,l.macKey,"sha256")];case 2:return c=a.sent(),[4,this.cryptoFunctionService.compareFast(l.mac,c)];case 3:if(!a.sent())return this.logService.error("mac failed."),[2,null];a.label=4;case 4:return[2,this.cryptoFunctionService.aesDecryptFast(l)]}}))}))},e.prototype.aesDecryptToBytes=function(e,t,n,r,i){return o(this,void 0,void 0,(function(){var o,s,l,c;return a(this,(function(a){switch(a.label){case 0:return[4,this.getKeyForEncryption(i)];case 1:return o=a.sent(),null!=(s=this.resolveLegacyKey(e,o)).macKey&&null==r?[2,null]:s.encType!==e?[2,null]:null==s.macKey||null==r?[3,4]:((l=new Uint8Array(n.byteLength+t.byteLength)).set(new Uint8Array(n),0),l.set(new Uint8Array(t),n.byteLength),[4,this.cryptoFunctionService.hmac(l.buffer,s.macKey,"sha256")]);case 2:return null===(c=a.sent())?[2,null]:[4,this.cryptoFunctionService.compare(r,c)];case 3:if(!a.sent())return this.logService.error("mac failed."),[2,null];a.label=4;case 4:return[4,this.cryptoFunctionService.aesDecrypt(t,n,s.encKey)];case 5:return[2,a.sent()]}}))}))},e.prototype.getKeyForEncryption=function(e){return o(this,void 0,void 0,(function(){var t;return a(this,(function(n){switch(n.label){case 0:return null!=e?[2,e]:[4,this.getEncKey()];case 1:return null!=(t=n.sent())?[2,t]:[4,this.getKey()];case 2:return[2,n.sent()]}}))}))},e.prototype.resolveLegacyKey=function(e,t){return e===l.EncryptionType.AesCbc128_HmacSha256_B64&&t.encType===l.EncryptionType.AesCbc256_B64?(null==this.legacyEtmKey&&(this.legacyEtmKey=new m.SymmetricCryptoKey(t.key,l.EncryptionType.AesCbc128_HmacSha256_B64)),this.legacyEtmKey):t},e.prototype.stretchKey=function(e){return o(this,void 0,void 0,(function(){var t,n,r;return a(this,(function(i){switch(i.label){case 0:return t=new Uint8Array(64),[4,this.cryptoFunctionService.hkdfExpand(e.key,"enc",32,"sha256")];case 1:return n=i.sent(),[4,this.cryptoFunctionService.hkdfExpand(e.key,"mac",32,"sha256")];case 2:return r=i.sent(),t.set(new Uint8Array(n)),t.set(new Uint8Array(r),32),[2,new m.SymmetricCryptoKey(t.buffer)]}}))}))},e.prototype.hashPhrase=function(e,t){return void 0===t&&(t=64),o(this,void 0,void 0,(function(){var n,r,i,o,l,c,p;return a(this,(function(a){if(n=Math.log(y.EEFLongWordList.length)/Math.log(2),r=Math.ceil(t/n),i=Array.from(new Uint8Array(e)),o=4*i.length,r*n>o)throw new Error("Output entropy of hash function is too small");for(l=[],c=s.fromArray(i,256);r--;)p=c.mod(y.EEFLongWordList.length),c=c.divide(y.EEFLongWordList.length),l.push(y.EEFLongWordList[p]);return[2,l]}))}))},e.prototype.buildEncKey=function(e,t){return o(this,void 0,void 0,(function(){var n,r;return a(this,(function(i){switch(i.label){case 0:return n=null,32!==e.key.byteLength?[3,3]:[4,this.stretchKey(e)];case 1:return r=i.sent(),[4,this.encrypt(t,r)];case 2:return n=i.sent(),[3,6];case 3:return 64!==e.key.byteLength?[3,5]:[4,this.encrypt(t,e)];case 4:return n=i.sent(),[3,6];case 5:throw new Error("Invalid key size.");case 6:return[2,[new m.SymmetricCryptoKey(t),n]]}}))}))},r([f.sequentialize((function(){return"getEncKey"})),i("design:type",Function),i("design:paramtypes",[m.SymmetricCryptoKey]),i("design:returntype",Promise)],e.prototype,"getEncKey",null),r([f.sequentialize((function(){return"getOrgKeys"})),i("design:type",Function),i("design:paramtypes",[]),i("design:returntype",Promise)],e.prototype,"getOrgKeys",null),e}();t.CryptoService=C},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EEFLongWordList=["abacus","abdomen","abdominal","abide","abiding","ability","ablaze","able","abnormal","abrasion","abrasive","abreast","abridge","abroad","abruptly","absence","absentee","absently","absinthe","absolute","absolve","abstain","abstract","absurd","accent","acclaim","acclimate","accompany","account","accuracy","accurate","accustom","acetone","achiness","aching","acid","acorn","acquaint","acquire","acre","acrobat","acronym","acting","action","activate","activator","active","activism","activist","activity","actress","acts","acutely","acuteness","aeration","aerobics","aerosol","aerospace","afar","affair","affected","affecting","affection","affidavit","affiliate","affirm","affix","afflicted","affluent","afford","affront","aflame","afloat","aflutter","afoot","afraid","afterglow","afterlife","aftermath","aftermost","afternoon","aged","ageless","agency","agenda","agent","aggregate","aghast","agile","agility","aging","agnostic","agonize","agonizing","agony","agreeable","agreeably","agreed","agreeing","agreement","aground","ahead","ahoy","aide","aids","aim","ajar","alabaster","alarm","albatross","album","alfalfa","algebra","algorithm","alias","alibi","alienable","alienate","aliens","alike","alive","alkaline","alkalize","almanac","almighty","almost","aloe","aloft","aloha","alone","alongside","aloof","alphabet","alright","although","altitude","alto","aluminum","alumni","always","amaretto","amaze","amazingly","amber","ambiance","ambiguity","ambiguous","ambition","ambitious","ambulance","ambush","amendable","amendment","amends","amenity","amiable","amicably","amid","amigo","amino","amiss","ammonia","ammonium","amnesty","amniotic","among","amount","amperage","ample","amplifier","amplify","amply","amuck","amulet","amusable","amused","amusement","amuser","amusing","anaconda","anaerobic","anagram","anatomist","anatomy","anchor","anchovy","ancient","android","anemia","anemic","aneurism","anew","angelfish","angelic","anger","angled","angler","angles","angling","angrily","angriness","anguished","angular","animal","animate","animating","animation","animator","anime","animosity","ankle","annex","annotate","announcer","annoying","annually","annuity","anointer","another","answering","antacid","antarctic","anteater","antelope","antennae","anthem","anthill","anthology","antibody","antics","antidote","antihero","antiquely","antiques","antiquity","antirust","antitoxic","antitrust","antiviral","antivirus","antler","antonym","antsy","anvil","anybody","anyhow","anymore","anyone","anyplace","anything","anytime","anyway","anywhere","aorta","apache","apostle","appealing","appear","appease","appeasing","appendage","appendix","appetite","appetizer","applaud","applause","apple","appliance","applicant","applied","apply","appointee","appraisal","appraiser","apprehend","approach","approval","approve","apricot","april","apron","aptitude","aptly","aqua","aqueduct","arbitrary","arbitrate","ardently","area","arena","arguable","arguably","argue","arise","armadillo","armband","armchair","armed","armful","armhole","arming","armless","armoire","armored","armory","armrest","army","aroma","arose","around","arousal","arrange","array","arrest","arrival","arrive","arrogance","arrogant","arson","art","ascend","ascension","ascent","ascertain","ashamed","ashen","ashes","ashy","aside","askew","asleep","asparagus","aspect","aspirate","aspire","aspirin","astonish","astound","astride","astrology","astronaut","astronomy","astute","atlantic","atlas","atom","atonable","atop","atrium","atrocious","atrophy","attach","attain","attempt","attendant","attendee","attention","attentive","attest","attic","attire","attitude","attractor","attribute","atypical","auction","audacious","audacity","audible","audibly","audience","audio","audition","augmented","august","authentic","author","autism","autistic","autograph","automaker","automated","automatic","autopilot","available","avalanche","avatar","avenge","avenging","avenue","average","aversion","avert","aviation","aviator","avid","avoid","await","awaken","award","aware","awhile","awkward","awning","awoke","awry","axis","babble","babbling","babied","baboon","backache","backboard","backboned","backdrop","backed","backer","backfield","backfire","backhand","backing","backlands","backlash","backless","backlight","backlit","backlog","backpack","backpedal","backrest","backroom","backshift","backside","backslid","backspace","backspin","backstab","backstage","backtalk","backtrack","backup","backward","backwash","backwater","backyard","bacon","bacteria","bacterium","badass","badge","badland","badly","badness","baffle","baffling","bagel","bagful","baggage","bagged","baggie","bagginess","bagging","baggy","bagpipe","baguette","baked","bakery","bakeshop","baking","balance","balancing","balcony","balmy","balsamic","bamboo","banana","banish","banister","banjo","bankable","bankbook","banked","banker","banking","banknote","bankroll","banner","bannister","banshee","banter","barbecue","barbed","barbell","barber","barcode","barge","bargraph","barista","baritone","barley","barmaid","barman","barn","barometer","barrack","barracuda","barrel","barrette","barricade","barrier","barstool","bartender","barterer","bash","basically","basics","basil","basin","basis","basket","batboy","batch","bath","baton","bats","battalion","battered","battering","battery","batting","battle","bauble","bazooka","blabber","bladder","blade","blah","blame","blaming","blanching","blandness","blank","blaspheme","blasphemy","blast","blatancy","blatantly","blazer","blazing","bleach","bleak","bleep","blemish","blend","bless","blighted","blimp","bling","blinked","blinker","blinking","blinks","blip","blissful","blitz","blizzard","bloated","bloating","blob","blog","bloomers","blooming","blooper","blot","blouse","blubber","bluff","bluish","blunderer","blunt","blurb","blurred","blurry","blurt","blush","blustery","boaster","boastful","boasting","boat","bobbed","bobbing","bobble","bobcat","bobsled","bobtail","bodacious","body","bogged","boggle","bogus","boil","bok","bolster","bolt","bonanza","bonded","bonding","bondless","boned","bonehead","boneless","bonelike","boney","bonfire","bonnet","bonsai","bonus","bony","boogeyman","boogieman","book","boondocks","booted","booth","bootie","booting","bootlace","bootleg","boots","boozy","borax","boring","borough","borrower","borrowing","boss","botanical","botanist","botany","botch","both","bottle","bottling","bottom","bounce","bouncing","bouncy","bounding","boundless","bountiful","bovine","boxcar","boxer","boxing","boxlike","boxy","breach","breath","breeches","breeching","breeder","breeding","breeze","breezy","brethren","brewery","brewing","briar","bribe","brick","bride","bridged","brigade","bright","brilliant","brim","bring","brink","brisket","briskly","briskness","bristle","brittle","broadband","broadcast","broaden","broadly","broadness","broadside","broadways","broiler","broiling","broken","broker","bronchial","bronco","bronze","bronzing","brook","broom","brought","browbeat","brownnose","browse","browsing","bruising","brunch","brunette","brunt","brush","brussels","brute","brutishly","bubble","bubbling","bubbly","buccaneer","bucked","bucket","buckle","buckshot","buckskin","bucktooth","buckwheat","buddhism","buddhist","budding","buddy","budget","buffalo","buffed","buffer","buffing","buffoon","buggy","bulb","bulge","bulginess","bulgur","bulk","bulldog","bulldozer","bullfight","bullfrog","bullhorn","bullion","bullish","bullpen","bullring","bullseye","bullwhip","bully","bunch","bundle","bungee","bunion","bunkbed","bunkhouse","bunkmate","bunny","bunt","busboy","bush","busily","busload","bust","busybody","buzz","cabana","cabbage","cabbie","cabdriver","cable","caboose","cache","cackle","cacti","cactus","caddie","caddy","cadet","cadillac","cadmium","cage","cahoots","cake","calamari","calamity","calcium","calculate","calculus","caliber","calibrate","calm","caloric","calorie","calzone","camcorder","cameo","camera","camisole","camper","campfire","camping","campsite","campus","canal","canary","cancel","candied","candle","candy","cane","canine","canister","cannabis","canned","canning","cannon","cannot","canola","canon","canopener","canopy","canteen","canyon","capable","capably","capacity","cape","capillary","capital","capitol","capped","capricorn","capsize","capsule","caption","captivate","captive","captivity","capture","caramel","carat","caravan","carbon","cardboard","carded","cardiac","cardigan","cardinal","cardstock","carefully","caregiver","careless","caress","caretaker","cargo","caring","carless","carload","carmaker","carnage","carnation","carnival","carnivore","carol","carpenter","carpentry","carpool","carport","carried","carrot","carrousel","carry","cartel","cartload","carton","cartoon","cartridge","cartwheel","carve","carving","carwash","cascade","case","cash","casing","casino","casket","cassette","casually","casualty","catacomb","catalog","catalyst","catalyze","catapult","cataract","catatonic","catcall","catchable","catcher","catching","catchy","caterer","catering","catfight","catfish","cathedral","cathouse","catlike","catnap","catnip","catsup","cattail","cattishly","cattle","catty","catwalk","caucasian","caucus","causal","causation","cause","causing","cauterize","caution","cautious","cavalier","cavalry","caviar","cavity","cedar","celery","celestial","celibacy","celibate","celtic","cement","census","ceramics","ceremony","certainly","certainty","certified","certify","cesarean","cesspool","chafe","chaffing","chain","chair","chalice","challenge","chamber","chamomile","champion","chance","change","channel","chant","chaos","chaperone","chaplain","chapped","chaps","chapter","character","charbroil","charcoal","charger","charging","chariot","charity","charm","charred","charter","charting","chase","chasing","chaste","chastise","chastity","chatroom","chatter","chatting","chatty","cheating","cheddar","cheek","cheer","cheese","cheesy","chef","chemicals","chemist","chemo","cherisher","cherub","chess","chest","chevron","chevy","chewable","chewer","chewing","chewy","chief","chihuahua","childcare","childhood","childish","childless","childlike","chili","chill","chimp","chip","chirping","chirpy","chitchat","chivalry","chive","chloride","chlorine","choice","chokehold","choking","chomp","chooser","choosing","choosy","chop","chosen","chowder","chowtime","chrome","chubby","chuck","chug","chummy","chump","chunk","churn","chute","cider","cilantro","cinch","cinema","cinnamon","circle","circling","circular","circulate","circus","citable","citadel","citation","citizen","citric","citrus","city","civic","civil","clad","claim","clambake","clammy","clamor","clamp","clamshell","clang","clanking","clapped","clapper","clapping","clarify","clarinet","clarity","clash","clasp","class","clatter","clause","clavicle","claw","clay","clean","clear","cleat","cleaver","cleft","clench","clergyman","clerical","clerk","clever","clicker","client","climate","climatic","cling","clinic","clinking","clip","clique","cloak","clobber","clock","clone","cloning","closable","closure","clothes","clothing","cloud","clover","clubbed","clubbing","clubhouse","clump","clumsily","clumsy","clunky","clustered","clutch","clutter","coach","coagulant","coastal","coaster","coasting","coastland","coastline","coat","coauthor","cobalt","cobbler","cobweb","cocoa","coconut","cod","coeditor","coerce","coexist","coffee","cofounder","cognition","cognitive","cogwheel","coherence","coherent","cohesive","coil","coke","cola","cold","coleslaw","coliseum","collage","collapse","collar","collected","collector","collide","collie","collision","colonial","colonist","colonize","colony","colossal","colt","coma","come","comfort","comfy","comic","coming","comma","commence","commend","comment","commerce","commode","commodity","commodore","common","commotion","commute","commuting","compacted","compacter","compactly","compactor","companion","company","compare","compel","compile","comply","component","composed","composer","composite","compost","composure","compound","compress","comprised","computer","computing","comrade","concave","conceal","conceded","concept","concerned","concert","conch","concierge","concise","conclude","concrete","concur","condense","condiment","condition","condone","conducive","conductor","conduit","cone","confess","confetti","confidant","confident","confider","confiding","configure","confined","confining","confirm","conflict","conform","confound","confront","confused","confusing","confusion","congenial","congested","congrats","congress","conical","conjoined","conjure","conjuror","connected","connector","consensus","consent","console","consoling","consonant","constable","constant","constrain","constrict","construct","consult","consumer","consuming","contact","container","contempt","contend","contented","contently","contents","contest","context","contort","contour","contrite","control","contusion","convene","convent","copartner","cope","copied","copier","copilot","coping","copious","copper","copy","coral","cork","cornball","cornbread","corncob","cornea","corned","corner","cornfield","cornflake","cornhusk","cornmeal","cornstalk","corny","coronary","coroner","corporal","corporate","corral","correct","corridor","corrode","corroding","corrosive","corsage","corset","cortex","cosigner","cosmetics","cosmic","cosmos","cosponsor","cost","cottage","cotton","couch","cough","could","countable","countdown","counting","countless","country","county","courier","covenant","cover","coveted","coveting","coyness","cozily","coziness","cozy","crabbing","crabgrass","crablike","crabmeat","cradle","cradling","crafter","craftily","craftsman","craftwork","crafty","cramp","cranberry","crane","cranial","cranium","crank","crate","crave","craving","crawfish","crawlers","crawling","crayfish","crayon","crazed","crazily","craziness","crazy","creamed","creamer","creamlike","crease","creasing","creatable","create","creation","creative","creature","credible","credibly","credit","creed","creme","creole","crepe","crept","crescent","crested","cresting","crestless","crevice","crewless","crewman","crewmate","crib","cricket","cried","crier","crimp","crimson","cringe","cringing","crinkle","crinkly","crisped","crisping","crisply","crispness","crispy","criteria","critter","croak","crock","crook","croon","crop","cross","crouch","crouton","crowbar","crowd","crown","crucial","crudely","crudeness","cruelly","cruelness","cruelty","crumb","crummiest","crummy","crumpet","crumpled","cruncher","crunching","crunchy","crusader","crushable","crushed","crusher","crushing","crust","crux","crying","cryptic","crystal","cubbyhole","cube","cubical","cubicle","cucumber","cuddle","cuddly","cufflink","culinary","culminate","culpable","culprit","cultivate","cultural","culture","cupbearer","cupcake","cupid","cupped","cupping","curable","curator","curdle","cure","curfew","curing","curled","curler","curliness","curling","curly","curry","curse","cursive","cursor","curtain","curtly","curtsy","curvature","curve","curvy","cushy","cusp","cussed","custard","custodian","custody","customary","customer","customize","customs","cut","cycle","cyclic","cycling","cyclist","cylinder","cymbal","cytoplasm","cytoplast","dab","dad","daffodil","dagger","daily","daintily","dainty","dairy","daisy","dallying","dance","dancing","dandelion","dander","dandruff","dandy","danger","dangle","dangling","daredevil","dares","daringly","darkened","darkening","darkish","darkness","darkroom","darling","darn","dart","darwinism","dash","dastardly","data","datebook","dating","daughter","daunting","dawdler","dawn","daybed","daybreak","daycare","daydream","daylight","daylong","dayroom","daytime","dazzler","dazzling","deacon","deafening","deafness","dealer","dealing","dealmaker","dealt","dean","debatable","debate","debating","debit","debrief","debtless","debtor","debug","debunk","decade","decaf","decal","decathlon","decay","deceased","deceit","deceiver","deceiving","december","decency","decent","deception","deceptive","decibel","decidable","decimal","decimeter","decipher","deck","declared","decline","decode","decompose","decorated","decorator","decoy","decrease","decree","dedicate","dedicator","deduce","deduct","deed","deem","deepen","deeply","deepness","deface","defacing","defame","default","defeat","defection","defective","defendant","defender","defense","defensive","deferral","deferred","defiance","defiant","defile","defiling","define","definite","deflate","deflation","deflator","deflected","deflector","defog","deforest","defraud","defrost","deftly","defuse","defy","degraded","degrading","degrease","degree","dehydrate","deity","dejected","delay","delegate","delegator","delete","deletion","delicacy","delicate","delicious","delighted","delirious","delirium","deliverer","delivery","delouse","delta","deluge","delusion","deluxe","demanding","demeaning","demeanor","demise","democracy","democrat","demote","demotion","demystify","denatured","deniable","denial","denim","denote","dense","density","dental","dentist","denture","deny","deodorant","deodorize","departed","departure","depict","deplete","depletion","deplored","deploy","deport","depose","depraved","depravity","deprecate","depress","deprive","depth","deputize","deputy","derail","deranged","derby","derived","desecrate","deserve","deserving","designate","designed","designer","designing","deskbound","desktop","deskwork","desolate","despair","despise","despite","destiny","destitute","destruct","detached","detail","detection","detective","detector","detention","detergent","detest","detonate","detonator","detoxify","detract","deuce","devalue","deviancy","deviant","deviate","deviation","deviator","device","devious","devotedly","devotee","devotion","devourer","devouring","devoutly","dexterity","dexterous","diabetes","diabetic","diabolic","diagnoses","diagnosis","diagram","dial","diameter","diaper","diaphragm","diary","dice","dicing","dictate","dictation","dictator","difficult","diffused","diffuser","diffusion","diffusive","dig","dilation","diligence","diligent","dill","dilute","dime","diminish","dimly","dimmed","dimmer","dimness","dimple","diner","dingbat","dinghy","dinginess","dingo","dingy","dining","dinner","diocese","dioxide","diploma","dipped","dipper","dipping","directed","direction","directive","directly","directory","direness","dirtiness","disabled","disagree","disallow","disarm","disarray","disaster","disband","disbelief","disburse","discard","discern","discharge","disclose","discolor","discount","discourse","discover","discuss","disdain","disengage","disfigure","disgrace","dish","disinfect","disjoin","disk","dislike","disliking","dislocate","dislodge","disloyal","dismantle","dismay","dismiss","dismount","disobey","disorder","disown","disparate","disparity","dispatch","dispense","dispersal","dispersed","disperser","displace","display","displease","disposal","dispose","disprove","dispute","disregard","disrupt","dissuade","distance","distant","distaste","distill","distinct","distort","distract","distress","district","distrust","ditch","ditto","ditzy","dividable","divided","dividend","dividers","dividing","divinely","diving","divinity","divisible","divisibly","division","divisive","divorcee","dizziness","dizzy","doable","docile","dock","doctrine","document","dodge","dodgy","doily","doing","dole","dollar","dollhouse","dollop","dolly","dolphin","domain","domelike","domestic","dominion","dominoes","donated","donation","donator","donor","donut","doodle","doorbell","doorframe","doorknob","doorman","doormat","doornail","doorpost","doorstep","doorstop","doorway","doozy","dork","dormitory","dorsal","dosage","dose","dotted","doubling","douche","dove","down","dowry","doze","drab","dragging","dragonfly","dragonish","dragster","drainable","drainage","drained","drainer","drainpipe","dramatic","dramatize","drank","drapery","drastic","draw","dreaded","dreadful","dreadlock","dreamboat","dreamily","dreamland","dreamless","dreamlike","dreamt","dreamy","drearily","dreary","drench","dress","drew","dribble","dried","drier","drift","driller","drilling","drinkable","drinking","dripping","drippy","drivable","driven","driver","driveway","driving","drizzle","drizzly","drone","drool","droop","drop-down","dropbox","dropkick","droplet","dropout","dropper","drove","drown","drowsily","drudge","drum","dry","dubbed","dubiously","duchess","duckbill","ducking","duckling","ducktail","ducky","duct","dude","duffel","dugout","duh","duke","duller","dullness","duly","dumping","dumpling","dumpster","duo","dupe","duplex","duplicate","duplicity","durable","durably","duration","duress","during","dusk","dust","dutiful","duty","duvet","dwarf","dweeb","dwelled","dweller","dwelling","dwindle","dwindling","dynamic","dynamite","dynasty","dyslexia","dyslexic","each","eagle","earache","eardrum","earflap","earful","earlobe","early","earmark","earmuff","earphone","earpiece","earplugs","earring","earshot","earthen","earthlike","earthling","earthly","earthworm","earthy","earwig","easeful","easel","easiest","easily","easiness","easing","eastbound","eastcoast","easter","eastward","eatable","eaten","eatery","eating","eats","ebay","ebony","ebook","ecard","eccentric","echo","eclair","eclipse","ecologist","ecology","economic","economist","economy","ecosphere","ecosystem","edge","edginess","edging","edgy","edition","editor","educated","education","educator","eel","effective","effects","efficient","effort","eggbeater","egging","eggnog","eggplant","eggshell","egomaniac","egotism","egotistic","either","eject","elaborate","elastic","elated","elbow","eldercare","elderly","eldest","electable","election","elective","elephant","elevate","elevating","elevation","elevator","eleven","elf","eligible","eligibly","eliminate","elite","elitism","elixir","elk","ellipse","elliptic","elm","elongated","elope","eloquence","eloquent","elsewhere","elude","elusive","elves","email","embargo","embark","embassy","embattled","embellish","ember","embezzle","emblaze","emblem","embody","embolism","emboss","embroider","emcee","emerald","emergency","emission","emit","emote","emoticon","emotion","empathic","empathy","emperor","emphases","emphasis","emphasize","emphatic","empirical","employed","employee","employer","emporium","empower","emptier","emptiness","empty","emu","enable","enactment","enamel","enchanted","enchilada","encircle","enclose","enclosure","encode","encore","encounter","encourage","encroach","encrust","encrypt","endanger","endeared","endearing","ended","ending","endless","endnote","endocrine","endorphin","endorse","endowment","endpoint","endurable","endurance","enduring","energetic","energize","energy","enforced","enforcer","engaged","engaging","engine","engorge","engraved","engraver","engraving","engross","engulf","enhance","enigmatic","enjoyable","enjoyably","enjoyer","enjoying","enjoyment","enlarged","enlarging","enlighten","enlisted","enquirer","enrage","enrich","enroll","enslave","ensnare","ensure","entail","entangled","entering","entertain","enticing","entire","entitle","entity","entomb","entourage","entrap","entree","entrench","entrust","entryway","entwine","enunciate","envelope","enviable","enviably","envious","envision","envoy","envy","enzyme","epic","epidemic","epidermal","epidermis","epidural","epilepsy","epileptic","epilogue","epiphany","episode","equal","equate","equation","equator","equinox","equipment","equity","equivocal","eradicate","erasable","erased","eraser","erasure","ergonomic","errand","errant","erratic","error","erupt","escalate","escalator","escapable","escapade","escapist","escargot","eskimo","esophagus","espionage","espresso","esquire","essay","essence","essential","establish","estate","esteemed","estimate","estimator","estranged","estrogen","etching","eternal","eternity","ethanol","ether","ethically","ethics","euphemism","evacuate","evacuee","evade","evaluate","evaluator","evaporate","evasion","evasive","even","everglade","evergreen","everybody","everyday","everyone","evict","evidence","evident","evil","evoke","evolution","evolve","exact","exalted","example","excavate","excavator","exceeding","exception","excess","exchange","excitable","exciting","exclaim","exclude","excluding","exclusion","exclusive","excretion","excretory","excursion","excusable","excusably","excuse","exemplary","exemplify","exemption","exerciser","exert","exes","exfoliate","exhale","exhaust","exhume","exile","existing","exit","exodus","exonerate","exorcism","exorcist","expand","expanse","expansion","expansive","expectant","expedited","expediter","expel","expend","expenses","expensive","expert","expire","expiring","explain","expletive","explicit","explode","exploit","explore","exploring","exponent","exporter","exposable","expose","exposure","express","expulsion","exquisite","extended","extending","extent","extenuate","exterior","external","extinct","extortion","extradite","extras","extrovert","extrude","extruding","exuberant","fable","fabric","fabulous","facebook","facecloth","facedown","faceless","facelift","faceplate","faceted","facial","facility","facing","facsimile","faction","factoid","factor","factsheet","factual","faculty","fade","fading","failing","falcon","fall","false","falsify","fame","familiar","family","famine","famished","fanatic","fancied","fanciness","fancy","fanfare","fang","fanning","fantasize","fantastic","fantasy","fascism","fastball","faster","fasting","fastness","faucet","favorable","favorably","favored","favoring","favorite","fax","feast","federal","fedora","feeble","feed","feel","feisty","feline","felt-tip","feminine","feminism","feminist","feminize","femur","fence","fencing","fender","ferment","fernlike","ferocious","ferocity","ferret","ferris","ferry","fervor","fester","festival","festive","festivity","fetal","fetch","fever","fiber","fiction","fiddle","fiddling","fidelity","fidgeting","fidgety","fifteen","fifth","fiftieth","fifty","figment","figure","figurine","filing","filled","filler","filling","film","filter","filth","filtrate","finale","finalist","finalize","finally","finance","financial","finch","fineness","finer","finicky","finished","finisher","finishing","finite","finless","finlike","fiscally","fit","five","flaccid","flagman","flagpole","flagship","flagstick","flagstone","flail","flakily","flaky","flame","flammable","flanked","flanking","flannels","flap","flaring","flashback","flashbulb","flashcard","flashily","flashing","flashy","flask","flatbed","flatfoot","flatly","flatness","flatten","flattered","flatterer","flattery","flattop","flatware","flatworm","flavored","flavorful","flavoring","flaxseed","fled","fleshed","fleshy","flick","flier","flight","flinch","fling","flint","flip","flirt","float","flock","flogging","flop","floral","florist","floss","flounder","flyable","flyaway","flyer","flying","flyover","flypaper","foam","foe","fog","foil","folic","folk","follicle","follow","fondling","fondly","fondness","fondue","font","food","fool","footage","football","footbath","footboard","footer","footgear","foothill","foothold","footing","footless","footman","footnote","footpad","footpath","footprint","footrest","footsie","footsore","footwear","footwork","fossil","foster","founder","founding","fountain","fox","foyer","fraction","fracture","fragile","fragility","fragment","fragrance","fragrant","frail","frame","framing","frantic","fraternal","frayed","fraying","frays","freckled","freckles","freebase","freebee","freebie","freedom","freefall","freehand","freeing","freeload","freely","freemason","freeness","freestyle","freeware","freeway","freewill","freezable","freezing","freight","french","frenzied","frenzy","frequency","frequent","fresh","fretful","fretted","friction","friday","fridge","fried","friend","frighten","frightful","frigidity","frigidly","frill","fringe","frisbee","frisk","fritter","frivolous","frolic","from","front","frostbite","frosted","frostily","frosting","frostlike","frosty","froth","frown","frozen","fructose","frugality","frugally","fruit","frustrate","frying","gab","gaffe","gag","gainfully","gaining","gains","gala","gallantly","galleria","gallery","galley","gallon","gallows","gallstone","galore","galvanize","gambling","game","gaming","gamma","gander","gangly","gangrene","gangway","gap","garage","garbage","garden","gargle","garland","garlic","garment","garnet","garnish","garter","gas","gatherer","gathering","gating","gauging","gauntlet","gauze","gave","gawk","gazing","gear","gecko","geek","geiger","gem","gender","generic","generous","genetics","genre","gentile","gentleman","gently","gents","geography","geologic","geologist","geology","geometric","geometry","geranium","gerbil","geriatric","germicide","germinate","germless","germproof","gestate","gestation","gesture","getaway","getting","getup","giant","gibberish","giblet","giddily","giddiness","giddy","gift","gigabyte","gigahertz","gigantic","giggle","giggling","giggly","gigolo","gilled","gills","gimmick","girdle","giveaway","given","giver","giving","gizmo","gizzard","glacial","glacier","glade","gladiator","gladly","glamorous","glamour","glance","glancing","glandular","glare","glaring","glass","glaucoma","glazing","gleaming","gleeful","glider","gliding","glimmer","glimpse","glisten","glitch","glitter","glitzy","gloater","gloating","gloomily","gloomy","glorified","glorifier","glorify","glorious","glory","gloss","glove","glowing","glowworm","glucose","glue","gluten","glutinous","glutton","gnarly","gnat","goal","goatskin","goes","goggles","going","goldfish","goldmine","goldsmith","golf","goliath","gonad","gondola","gone","gong","good","gooey","goofball","goofiness","goofy","google","goon","gopher","gore","gorged","gorgeous","gory","gosling","gossip","gothic","gotten","gout","gown","grab","graceful","graceless","gracious","gradation","graded","grader","gradient","grading","gradually","graduate","graffiti","grafted","grafting","grain","granddad","grandkid","grandly","grandma","grandpa","grandson","granite","granny","granola","grant","granular","grape","graph","grapple","grappling","grasp","grass","gratified","gratify","grating","gratitude","gratuity","gravel","graveness","graves","graveyard","gravitate","gravity","gravy","gray","grazing","greasily","greedily","greedless","greedy","green","greeter","greeting","grew","greyhound","grid","grief","grievance","grieving","grievous","grill","grimace","grimacing","grime","griminess","grimy","grinch","grinning","grip","gristle","grit","groggily","groggy","groin","groom","groove","grooving","groovy","grope","ground","grouped","grout","grove","grower","growing","growl","grub","grudge","grudging","grueling","gruffly","grumble","grumbling","grumbly","grumpily","grunge","grunt","guacamole","guidable","guidance","guide","guiding","guileless","guise","gulf","gullible","gully","gulp","gumball","gumdrop","gumminess","gumming","gummy","gurgle","gurgling","guru","gush","gusto","gusty","gutless","guts","gutter","guy","guzzler","gyration","habitable","habitant","habitat","habitual","hacked","hacker","hacking","hacksaw","had","haggler","haiku","half","halogen","halt","halved","halves","hamburger","hamlet","hammock","hamper","hamster","hamstring","handbag","handball","handbook","handbrake","handcart","handclap","handclasp","handcraft","handcuff","handed","handful","handgrip","handgun","handheld","handiness","handiwork","handlebar","handled","handler","handling","handmade","handoff","handpick","handprint","handrail","handsaw","handset","handsfree","handshake","handstand","handwash","handwork","handwoven","handwrite","handyman","hangnail","hangout","hangover","hangup","hankering","hankie","hanky","haphazard","happening","happier","happiest","happily","happiness","happy","harbor","hardcopy","hardcore","hardcover","harddisk","hardened","hardener","hardening","hardhat","hardhead","hardiness","hardly","hardness","hardship","hardware","hardwired","hardwood","hardy","harmful","harmless","harmonica","harmonics","harmonize","harmony","harness","harpist","harsh","harvest","hash","hassle","haste","hastily","hastiness","hasty","hatbox","hatchback","hatchery","hatchet","hatching","hatchling","hate","hatless","hatred","haunt","haven","hazard","hazelnut","hazily","haziness","hazing","hazy","headache","headband","headboard","headcount","headdress","headed","header","headfirst","headgear","heading","headlamp","headless","headlock","headphone","headpiece","headrest","headroom","headscarf","headset","headsman","headstand","headstone","headway","headwear","heap","heat","heave","heavily","heaviness","heaving","hedge","hedging","heftiness","hefty","helium","helmet","helper","helpful","helping","helpless","helpline","hemlock","hemstitch","hence","henchman","henna","herald","herbal","herbicide","herbs","heritage","hermit","heroics","heroism","herring","herself","hertz","hesitancy","hesitant","hesitate","hexagon","hexagram","hubcap","huddle","huddling","huff","hug","hula","hulk","hull","human","humble","humbling","humbly","humid","humiliate","humility","humming","hummus","humongous","humorist","humorless","humorous","humpback","humped","humvee","hunchback","hundredth","hunger","hungrily","hungry","hunk","hunter","hunting","huntress","huntsman","hurdle","hurled","hurler","hurling","hurray","hurricane","hurried","hurry","hurt","husband","hush","husked","huskiness","hut","hybrid","hydrant","hydrated","hydration","hydrogen","hydroxide","hyperlink","hypertext","hyphen","hypnoses","hypnosis","hypnotic","hypnotism","hypnotist","hypnotize","hypocrisy","hypocrite","ibuprofen","ice","iciness","icing","icky","icon","icy","idealism","idealist","idealize","ideally","idealness","identical","identify","identity","ideology","idiocy","idiom","idly","igloo","ignition","ignore","iguana","illicitly","illusion","illusive","image","imaginary","imagines","imaging","imbecile","imitate","imitation","immature","immerse","immersion","imminent","immobile","immodest","immorally","immortal","immovable","immovably","immunity","immunize","impaired","impale","impart","impatient","impeach","impeding","impending","imperfect","imperial","impish","implant","implement","implicate","implicit","implode","implosion","implosive","imply","impolite","important","importer","impose","imposing","impotence","impotency","impotent","impound","imprecise","imprint","imprison","impromptu","improper","improve","improving","improvise","imprudent","impulse","impulsive","impure","impurity","iodine","iodize","ion","ipad","iphone","ipod","irate","irk","iron","irregular","irrigate","irritable","irritably","irritant","irritate","islamic","islamist","isolated","isolating","isolation","isotope","issue","issuing","italicize","italics","item","itinerary","itunes","ivory","ivy","jab","jackal","jacket","jackknife","jackpot","jailbird","jailbreak","jailer","jailhouse","jalapeno","jam","janitor","january","jargon","jarring","jasmine","jaundice","jaunt","java","jawed","jawless","jawline","jaws","jaybird","jaywalker","jazz","jeep","jeeringly","jellied","jelly","jersey","jester","jet","jiffy","jigsaw","jimmy","jingle","jingling","jinx","jitters","jittery","job","jockey","jockstrap","jogger","jogging","john","joining","jokester","jokingly","jolliness","jolly","jolt","jot","jovial","joyfully","joylessly","joyous","joyride","joystick","jubilance","jubilant","judge","judgingly","judicial","judiciary","judo","juggle","juggling","jugular","juice","juiciness","juicy","jujitsu","jukebox","july","jumble","jumbo","jump","junction","juncture","june","junior","juniper","junkie","junkman","junkyard","jurist","juror","jury","justice","justifier","justify","justly","justness","juvenile","kabob","kangaroo","karaoke","karate","karma","kebab","keenly","keenness","keep","keg","kelp","kennel","kept","kerchief","kerosene","kettle","kick","kiln","kilobyte","kilogram","kilometer","kilowatt","kilt","kimono","kindle","kindling","kindly","kindness","kindred","kinetic","kinfolk","king","kinship","kinsman","kinswoman","kissable","kisser","kissing","kitchen","kite","kitten","kitty","kiwi","kleenex","knapsack","knee","knelt","knickers","knoll","koala","kooky","kosher","krypton","kudos","kung","labored","laborer","laboring","laborious","labrador","ladder","ladies","ladle","ladybug","ladylike","lagged","lagging","lagoon","lair","lake","lance","landed","landfall","landfill","landing","landlady","landless","landline","landlord","landmark","landmass","landmine","landowner","landscape","landside","landslide","language","lankiness","lanky","lantern","lapdog","lapel","lapped","lapping","laptop","lard","large","lark","lash","lasso","last","latch","late","lather","latitude","latrine","latter","latticed","launch","launder","laundry","laurel","lavender","lavish","laxative","lazily","laziness","lazy","lecturer","left","legacy","legal","legend","legged","leggings","legible","legibly","legislate","lego","legroom","legume","legwarmer","legwork","lemon","lend","length","lens","lent","leotard","lesser","letdown","lethargic","lethargy","letter","lettuce","level","leverage","levers","levitate","levitator","liability","liable","liberty","librarian","library","licking","licorice","lid","life","lifter","lifting","liftoff","ligament","likely","likeness","likewise","liking","lilac","lilly","lily","limb","limeade","limelight","limes","limit","limping","limpness","line","lingo","linguini","linguist","lining","linked","linoleum","linseed","lint","lion","lip","liquefy","liqueur","liquid","lisp","list","litigate","litigator","litmus","litter","little","livable","lived","lively","liver","livestock","lividly","living","lizard","lubricant","lubricate","lucid","luckily","luckiness","luckless","lucrative","ludicrous","lugged","lukewarm","lullaby","lumber","luminance","luminous","lumpiness","lumping","lumpish","lunacy","lunar","lunchbox","luncheon","lunchroom","lunchtime","lung","lurch","lure","luridness","lurk","lushly","lushness","luster","lustfully","lustily","lustiness","lustrous","lusty","luxurious","luxury","lying","lyrically","lyricism","lyricist","lyrics","macarena","macaroni","macaw","mace","machine","machinist","magazine","magenta","maggot","magical","magician","magma","magnesium","magnetic","magnetism","magnetize","magnifier","magnify","magnitude","magnolia","mahogany","maimed","majestic","majesty","majorette","majority","makeover","maker","makeshift","making","malformed","malt","mama","mammal","mammary","mammogram","manager","managing","manatee","mandarin","mandate","mandatory","mandolin","manger","mangle","mango","mangy","manhandle","manhole","manhood","manhunt","manicotti","manicure","manifesto","manila","mankind","manlike","manliness","manly","manmade","manned","mannish","manor","manpower","mantis","mantra","manual","many","map","marathon","marauding","marbled","marbles","marbling","march","mardi","margarine","margarita","margin","marigold","marina","marine","marital","maritime","marlin","marmalade","maroon","married","marrow","marry","marshland","marshy","marsupial","marvelous","marxism","mascot","masculine","mashed","mashing","massager","masses","massive","mastiff","matador","matchbook","matchbox","matcher","matching","matchless","material","maternal","maternity","math","mating","matriarch","matrimony","matrix","matron","matted","matter","maturely","maturing","maturity","mauve","maverick","maximize","maximum","maybe","mayday","mayflower","moaner","moaning","mobile","mobility","mobilize","mobster","mocha","mocker","mockup","modified","modify","modular","modulator","module","moisten","moistness","moisture","molar","molasses","mold","molecular","molecule","molehill","mollusk","mom","monastery","monday","monetary","monetize","moneybags","moneyless","moneywise","mongoose","mongrel","monitor","monkhood","monogamy","monogram","monologue","monopoly","monorail","monotone","monotype","monoxide","monsieur","monsoon","monstrous","monthly","monument","moocher","moodiness","moody","mooing","moonbeam","mooned","moonlight","moonlike","moonlit","moonrise","moonscape","moonshine","moonstone","moonwalk","mop","morale","morality","morally","morbidity","morbidly","morphine","morphing","morse","mortality","mortally","mortician","mortified","mortify","mortuary","mosaic","mossy","most","mothball","mothproof","motion","motivate","motivator","motive","motocross","motor","motto","mountable","mountain","mounted","mounting","mourner","mournful","mouse","mousiness","moustache","mousy","mouth","movable","move","movie","moving","mower","mowing","much","muck","mud","mug","mulberry","mulch","mule","mulled","mullets","multiple","multiply","multitask","multitude","mumble","mumbling","mumbo","mummified","mummify","mummy","mumps","munchkin","mundane","municipal","muppet","mural","murkiness","murky","murmuring","muscular","museum","mushily","mushiness","mushroom","mushy","music","musket","muskiness","musky","mustang","mustard","muster","mustiness","musty","mutable","mutate","mutation","mute","mutilated","mutilator","mutiny","mutt","mutual","muzzle","myself","myspace","mystified","mystify","myth","nacho","nag","nail","name","naming","nanny","nanometer","nape","napkin","napped","napping","nappy","narrow","nastily","nastiness","national","native","nativity","natural","nature","naturist","nautical","navigate","navigator","navy","nearby","nearest","nearly","nearness","neatly","neatness","nebula","nebulizer","nectar","negate","negation","negative","neglector","negligee","negligent","negotiate","nemeses","nemesis","neon","nephew","nerd","nervous","nervy","nest","net","neurology","neuron","neurosis","neurotic","neuter","neutron","never","next","nibble","nickname","nicotine","niece","nifty","nimble","nimbly","nineteen","ninetieth","ninja","nintendo","ninth","nuclear","nuclei","nucleus","nugget","nullify","number","numbing","numbly","numbness","numeral","numerate","numerator","numeric","numerous","nuptials","nursery","nursing","nurture","nutcase","nutlike","nutmeg","nutrient","nutshell","nuttiness","nutty","nuzzle","nylon","oaf","oak","oasis","oat","obedience","obedient","obituary","object","obligate","obliged","oblivion","oblivious","oblong","obnoxious","oboe","obscure","obscurity","observant","observer","observing","obsessed","obsession","obsessive","obsolete","obstacle","obstinate","obstruct","obtain","obtrusive","obtuse","obvious","occultist","occupancy","occupant","occupier","occupy","ocean","ocelot","octagon","octane","october","octopus","ogle","oil","oink","ointment","okay","old","olive","olympics","omega","omen","ominous","omission","omit","omnivore","onboard","oncoming","ongoing","onion","online","onlooker","only","onscreen","onset","onshore","onslaught","onstage","onto","onward","onyx","oops","ooze","oozy","opacity","opal","open","operable","operate","operating","operation","operative","operator","opium","opossum","opponent","oppose","opposing","opposite","oppressed","oppressor","opt","opulently","osmosis","other","otter","ouch","ought","ounce","outage","outback","outbid","outboard","outbound","outbreak","outburst","outcast","outclass","outcome","outdated","outdoors","outer","outfield","outfit","outflank","outgoing","outgrow","outhouse","outing","outlast","outlet","outline","outlook","outlying","outmatch","outmost","outnumber","outplayed","outpost","outpour","output","outrage","outrank","outreach","outright","outscore","outsell","outshine","outshoot","outsider","outskirts","outsmart","outsource","outspoken","outtakes","outthink","outward","outweigh","outwit","oval","ovary","oven","overact","overall","overarch","overbid","overbill","overbite","overblown","overboard","overbook","overbuilt","overcast","overcoat","overcome","overcook","overcrowd","overdraft","overdrawn","overdress","overdrive","overdue","overeager","overeater","overexert","overfed","overfeed","overfill","overflow","overfull","overgrown","overhand","overhang","overhaul","overhead","overhear","overheat","overhung","overjoyed","overkill","overlabor","overlaid","overlap","overlay","overload","overlook","overlord","overlying","overnight","overpass","overpay","overplant","overplay","overpower","overprice","overrate","overreach","overreact","override","overripe","overrule","overrun","overshoot","overshot","oversight","oversized","oversleep","oversold","overspend","overstate","overstay","overstep","overstock","overstuff","oversweet","overtake","overthrow","overtime","overtly","overtone","overture","overturn","overuse","overvalue","overview","overwrite","owl","oxford","oxidant","oxidation","oxidize","oxidizing","oxygen","oxymoron","oyster","ozone","paced","pacemaker","pacific","pacifier","pacifism","pacifist","pacify","padded","padding","paddle","paddling","padlock","pagan","pager","paging","pajamas","palace","palatable","palm","palpable","palpitate","paltry","pampered","pamperer","pampers","pamphlet","panama","pancake","pancreas","panda","pandemic","pang","panhandle","panic","panning","panorama","panoramic","panther","pantomime","pantry","pants","pantyhose","paparazzi","papaya","paper","paprika","papyrus","parabola","parachute","parade","paradox","paragraph","parakeet","paralegal","paralyses","paralysis","paralyze","paramedic","parameter","paramount","parasail","parasite","parasitic","parcel","parched","parchment","pardon","parish","parka","parking","parkway","parlor","parmesan","parole","parrot","parsley","parsnip","partake","parted","parting","partition","partly","partner","partridge","party","passable","passably","passage","passcode","passenger","passerby","passing","passion","passive","passivism","passover","passport","password","pasta","pasted","pastel","pastime","pastor","pastrami","pasture","pasty","patchwork","patchy","paternal","paternity","path","patience","patient","patio","patriarch","patriot","patrol","patronage","patronize","pauper","pavement","paver","pavestone","pavilion","paving","pawing","payable","payback","paycheck","payday","payee","payer","paying","payment","payphone","payroll","pebble","pebbly","pecan","pectin","peculiar","peddling","pediatric","pedicure","pedigree","pedometer","pegboard","pelican","pellet","pelt","pelvis","penalize","penalty","pencil","pendant","pending","penholder","penknife","pennant","penniless","penny","penpal","pension","pentagon","pentagram","pep","perceive","percent","perch","percolate","perennial","perfected","perfectly","perfume","periscope","perish","perjurer","perjury","perkiness","perky","perm","peroxide","perpetual","perplexed","persecute","persevere","persuaded","persuader","pesky","peso","pessimism","pessimist","pester","pesticide","petal","petite","petition","petri","petroleum","petted","petticoat","pettiness","petty","petunia","phantom","phobia","phoenix","phonebook","phoney","phonics","phoniness","phony","phosphate","photo","phrase","phrasing","placard","placate","placidly","plank","planner","plant","plasma","plaster","plastic","plated","platform","plating","platinum","platonic","platter","platypus","plausible","plausibly","playable","playback","player","playful","playgroup","playhouse","playing","playlist","playmaker","playmate","playoff","playpen","playroom","playset","plaything","playtime","plaza","pleading","pleat","pledge","plentiful","plenty","plethora","plexiglas","pliable","plod","plop","plot","plow","ploy","pluck","plug","plunder","plunging","plural","plus","plutonium","plywood","poach","pod","poem","poet","pogo","pointed","pointer","pointing","pointless","pointy","poise","poison","poker","poking","polar","police","policy","polio","polish","politely","polka","polo","polyester","polygon","polygraph","polymer","poncho","pond","pony","popcorn","pope","poplar","popper","poppy","popsicle","populace","popular","populate","porcupine","pork","porous","porridge","portable","portal","portfolio","porthole","portion","portly","portside","poser","posh","posing","possible","possibly","possum","postage","postal","postbox","postcard","posted","poster","posting","postnasal","posture","postwar","pouch","pounce","pouncing","pound","pouring","pout","powdered","powdering","powdery","power","powwow","pox","praising","prance","prancing","pranker","prankish","prankster","prayer","praying","preacher","preaching","preachy","preamble","precinct","precise","precision","precook","precut","predator","predefine","predict","preface","prefix","preflight","preformed","pregame","pregnancy","pregnant","preheated","prelaunch","prelaw","prelude","premiere","premises","premium","prenatal","preoccupy","preorder","prepaid","prepay","preplan","preppy","preschool","prescribe","preseason","preset","preshow","president","presoak","press","presume","presuming","preteen","pretended","pretender","pretense","pretext","pretty","pretzel","prevail","prevalent","prevent","preview","previous","prewar","prewashed","prideful","pried","primal","primarily","primary","primate","primer","primp","princess","print","prior","prism","prison","prissy","pristine","privacy","private","privatize","prize","proactive","probable","probably","probation","probe","probing","probiotic","problem","procedure","process","proclaim","procreate","procurer","prodigal","prodigy","produce","product","profane","profanity","professed","professor","profile","profound","profusely","progeny","prognosis","program","progress","projector","prologue","prolonged","promenade","prominent","promoter","promotion","prompter","promptly","prone","prong","pronounce","pronto","proofing","proofread","proofs","propeller","properly","property","proponent","proposal","propose","props","prorate","protector","protegee","proton","prototype","protozoan","protract","protrude","proud","provable","proved","proven","provided","provider","providing","province","proving","provoke","provoking","provolone","prowess","prowler","prowling","proximity","proxy","prozac","prude","prudishly","prune","pruning","pry","psychic","public","publisher","pucker","pueblo","pug","pull","pulmonary","pulp","pulsate","pulse","pulverize","puma","pumice","pummel","punch","punctual","punctuate","punctured","pungent","punisher","punk","pupil","puppet","puppy","purchase","pureblood","purebred","purely","pureness","purgatory","purge","purging","purifier","purify","purist","puritan","purity","purple","purplish","purposely","purr","purse","pursuable","pursuant","pursuit","purveyor","pushcart","pushchair","pusher","pushiness","pushing","pushover","pushpin","pushup","pushy","putdown","putt","puzzle","puzzling","pyramid","pyromania","python","quack","quadrant","quail","quaintly","quake","quaking","qualified","qualifier","qualify","quality","qualm","quantum","quarrel","quarry","quartered","quarterly","quarters","quartet","quench","query","quicken","quickly","quickness","quicksand","quickstep","quiet","quill","quilt","quintet","quintuple","quirk","quit","quiver","quizzical","quotable","quotation","quote","rabid","race","racing","racism","rack","racoon","radar","radial","radiance","radiantly","radiated","radiation","radiator","radio","radish","raffle","raft","rage","ragged","raging","ragweed","raider","railcar","railing","railroad","railway","raisin","rake","raking","rally","ramble","rambling","ramp","ramrod","ranch","rancidity","random","ranged","ranger","ranging","ranked","ranking","ransack","ranting","rants","rare","rarity","rascal","rash","rasping","ravage","raven","ravine","raving","ravioli","ravishing","reabsorb","reach","reacquire","reaction","reactive","reactor","reaffirm","ream","reanalyze","reappear","reapply","reappoint","reapprove","rearrange","rearview","reason","reassign","reassure","reattach","reawake","rebalance","rebate","rebel","rebirth","reboot","reborn","rebound","rebuff","rebuild","rebuilt","reburial","rebuttal","recall","recant","recapture","recast","recede","recent","recess","recharger","recipient","recital","recite","reckless","reclaim","recliner","reclining","recluse","reclusive","recognize","recoil","recollect","recolor","reconcile","reconfirm","reconvene","recopy","record","recount","recoup","recovery","recreate","rectal","rectangle","rectified","rectify","recycled","recycler","recycling","reemerge","reenact","reenter","reentry","reexamine","referable","referee","reference","refill","refinance","refined","refinery","refining","refinish","reflected","reflector","reflex","reflux","refocus","refold","reforest","reformat","reformed","reformer","reformist","refract","refrain","refreeze","refresh","refried","refueling","refund","refurbish","refurnish","refusal","refuse","refusing","refutable","refute","regain","regalia","regally","reggae","regime","region","register","registrar","registry","regress","regretful","regroup","regular","regulate","regulator","rehab","reheat","rehire","rehydrate","reimburse","reissue","reiterate","rejoice","rejoicing","rejoin","rekindle","relapse","relapsing","relatable","related","relation","relative","relax","relay","relearn","release","relenting","reliable","reliably","reliance","reliant","relic","relieve","relieving","relight","relish","relive","reload","relocate","relock","reluctant","rely","remake","remark","remarry","rematch","remedial","remedy","remember","reminder","remindful","remission","remix","remnant","remodeler","remold","remorse","remote","removable","removal","removed","remover","removing","rename","renderer","rendering","rendition","renegade","renewable","renewably","renewal","renewed","renounce","renovate","renovator","rentable","rental","rented","renter","reoccupy","reoccur","reopen","reorder","repackage","repacking","repaint","repair","repave","repaying","repayment","repeal","repeated","repeater","repent","rephrase","replace","replay","replica","reply","reporter","repose","repossess","repost","repressed","reprimand","reprint","reprise","reproach","reprocess","reproduce","reprogram","reps","reptile","reptilian","repugnant","repulsion","repulsive","repurpose","reputable","reputably","request","require","requisite","reroute","rerun","resale","resample","rescuer","reseal","research","reselect","reseller","resemble","resend","resent","reset","reshape","reshoot","reshuffle","residence","residency","resident","residual","residue","resigned","resilient","resistant","resisting","resize","resolute","resolved","resonant","resonate","resort","resource","respect","resubmit","result","resume","resupply","resurface","resurrect","retail","retainer","retaining","retake","retaliate","retention","rethink","retinal","retired","retiree","retiring","retold","retool","retorted","retouch","retrace","retract","retrain","retread","retreat","retrial","retrieval","retriever","retry","return","retying","retype","reunion","reunite","reusable","reuse","reveal","reveler","revenge","revenue","reverb","revered","reverence","reverend","reversal","reverse","reversing","reversion","revert","revisable","revise","revision","revisit","revivable","revival","reviver","reviving","revocable","revoke","revolt","revolver","revolving","reward","rewash","rewind","rewire","reword","rework","rewrap","rewrite","rhyme","ribbon","ribcage","rice","riches","richly","richness","rickety","ricotta","riddance","ridden","ride","riding","rifling","rift","rigging","rigid","rigor","rimless","rimmed","rind","rink","rinse","rinsing","riot","ripcord","ripeness","ripening","ripping","ripple","rippling","riptide","rise","rising","risk","risotto","ritalin","ritzy","rival","riverbank","riverbed","riverboat","riverside","riveter","riveting","roamer","roaming","roast","robbing","robe","robin","robotics","robust","rockband","rocker","rocket","rockfish","rockiness","rocking","rocklike","rockslide","rockstar","rocky","rogue","roman","romp","rope","roping","roster","rosy","rotten","rotting","rotunda","roulette","rounding","roundish","roundness","roundup","roundworm","routine","routing","rover","roving","royal","rubbed","rubber","rubbing","rubble","rubdown","ruby","ruckus","rudder","rug","ruined","rule","rumble","rumbling","rummage","rumor","runaround","rundown","runner","running","runny","runt","runway","rupture","rural","ruse","rush","rust","rut","sabbath","sabotage","sacrament","sacred","sacrifice","sadden","saddlebag","saddled","saddling","sadly","sadness","safari","safeguard","safehouse","safely","safeness","saffron","saga","sage","sagging","saggy","said","saint","sake","salad","salami","salaried","salary","saline","salon","saloon","salsa","salt","salutary","salute","salvage","salvaging","salvation","same","sample","sampling","sanction","sanctity","sanctuary","sandal","sandbag","sandbank","sandbar","sandblast","sandbox","sanded","sandfish","sanding","sandlot","sandpaper","sandpit","sandstone","sandstorm","sandworm","sandy","sanitary","sanitizer","sank","santa","sapling","sappiness","sappy","sarcasm","sarcastic","sardine","sash","sasquatch","sassy","satchel","satiable","satin","satirical","satisfied","satisfy","saturate","saturday","sauciness","saucy","sauna","savage","savanna","saved","savings","savior","savor","saxophone","say","scabbed","scabby","scalded","scalding","scale","scaling","scallion","scallop","scalping","scam","scandal","scanner","scanning","scant","scapegoat","scarce","scarcity","scarecrow","scared","scarf","scarily","scariness","scarring","scary","scavenger","scenic","schedule","schematic","scheme","scheming","schilling","schnapps","scholar","science","scientist","scion","scoff","scolding","scone","scoop","scooter","scope","scorch","scorebook","scorecard","scored","scoreless","scorer","scoring","scorn","scorpion","scotch","scoundrel","scoured","scouring","scouting","scouts","scowling","scrabble","scraggly","scrambled","scrambler","scrap","scratch","scrawny","screen","scribble","scribe","scribing","scrimmage","script","scroll","scrooge","scrounger","scrubbed","scrubber","scruffy","scrunch","scrutiny","scuba","scuff","sculptor","sculpture","scurvy","scuttle","secluded","secluding","seclusion","second","secrecy","secret","sectional","sector","secular","securely","security","sedan","sedate","sedation","sedative","sediment","seduce","seducing","segment","seismic","seizing","seldom","selected","selection","selective","selector","self","seltzer","semantic","semester","semicolon","semifinal","seminar","semisoft","semisweet","senate","senator","send","senior","senorita","sensation","sensitive","sensitize","sensually","sensuous","sepia","september","septic","septum","sequel","sequence","sequester","series","sermon","serotonin","serpent","serrated","serve","service","serving","sesame","sessions","setback","setting","settle","settling","setup","sevenfold","seventeen","seventh","seventy","severity","shabby","shack","shaded","shadily","shadiness","shading","shadow","shady","shaft","shakable","shakily","shakiness","shaking","shaky","shale","shallot","shallow","shame","shampoo","shamrock","shank","shanty","shape","shaping","share","sharpener","sharper","sharpie","sharply","sharpness","shawl","sheath","shed","sheep","sheet","shelf","shell","shelter","shelve","shelving","sherry","shield","shifter","shifting","shiftless","shifty","shimmer","shimmy","shindig","shine","shingle","shininess","shining","shiny","ship","shirt","shivering","shock","shone","shoplift","shopper","shopping","shoptalk","shore","shortage","shortcake","shortcut","shorten","shorter","shorthand","shortlist","shortly","shortness","shorts","shortwave","shorty","shout","shove","showbiz","showcase","showdown","shower","showgirl","showing","showman","shown","showoff","showpiece","showplace","showroom","showy","shrank","shrapnel","shredder","shredding","shrewdly","shriek","shrill","shrimp","shrine","shrink","shrivel","shrouded","shrubbery","shrubs","shrug","shrunk","shucking","shudder","shuffle","shuffling","shun","shush","shut","shy","siamese","siberian","sibling","siding","sierra","siesta","sift","sighing","silenced","silencer","silent","silica","silicon","silk","silliness","silly","silo","silt","silver","similarly","simile","simmering","simple","simplify","simply","sincere","sincerity","singer","singing","single","singular","sinister","sinless","sinner","sinuous","sip","siren","sister","sitcom","sitter","sitting","situated","situation","sixfold","sixteen","sixth","sixties","sixtieth","sixtyfold","sizable","sizably","size","sizing","sizzle","sizzling","skater","skating","skedaddle","skeletal","skeleton","skeptic","sketch","skewed","skewer","skid","skied","skier","skies","skiing","skilled","skillet","skillful","skimmed","skimmer","skimming","skimpily","skincare","skinhead","skinless","skinning","skinny","skintight","skipper","skipping","skirmish","skirt","skittle","skydiver","skylight","skyline","skype","skyrocket","skyward","slab","slacked","slacker","slacking","slackness","slacks","slain","slam","slander","slang","slapping","slapstick","slashed","slashing","slate","slather","slaw","sled","sleek","sleep","sleet","sleeve","slept","sliceable","sliced","slicer","slicing","slick","slider","slideshow","sliding","slighted","slighting","slightly","slimness","slimy","slinging","slingshot","slinky","slip","slit","sliver","slobbery","slogan","sloped","sloping","sloppily","sloppy","slot","slouching","slouchy","sludge","slug","slum","slurp","slush","sly","small","smartly","smartness","smasher","smashing","smashup","smell","smelting","smile","smilingly","smirk","smite","smith","smitten","smock","smog","smoked","smokeless","smokiness","smoking","smoky","smolder","smooth","smother","smudge","smudgy","smuggler","smuggling","smugly","smugness","snack","snagged","snaking","snap","snare","snarl","snazzy","sneak","sneer","sneeze","sneezing","snide","sniff","snippet","snipping","snitch","snooper","snooze","snore","snoring","snorkel","snort","snout","snowbird","snowboard","snowbound","snowcap","snowdrift","snowdrop","snowfall","snowfield","snowflake","snowiness","snowless","snowman","snowplow","snowshoe","snowstorm","snowsuit","snowy","snub","snuff","snuggle","snugly","snugness","speak","spearfish","spearhead","spearman","spearmint","species","specimen","specked","speckled","specks","spectacle","spectator","spectrum","speculate","speech","speed","spellbind","speller","spelling","spendable","spender","spending","spent","spew","sphere","spherical","sphinx","spider","spied","spiffy","spill","spilt","spinach","spinal","spindle","spinner","spinning","spinout","spinster","spiny","spiral","spirited","spiritism","spirits","spiritual","splashed","splashing","splashy","splatter","spleen","splendid","splendor","splice","splicing","splinter","splotchy","splurge","spoilage","spoiled","spoiler","spoiling","spoils","spoken","spokesman","sponge","spongy","sponsor","spoof","spookily","spooky","spool","spoon","spore","sporting","sports","sporty","spotless","spotlight","spotted","spotter","spotting","spotty","spousal","spouse","spout","sprain","sprang","sprawl","spray","spree","sprig","spring","sprinkled","sprinkler","sprint","sprite","sprout","spruce","sprung","spry","spud","spur","sputter","spyglass","squabble","squad","squall","squander","squash","squatted","squatter","squatting","squeak","squealer","squealing","squeamish","squeegee","squeeze","squeezing","squid","squiggle","squiggly","squint","squire","squirt","squishier","squishy","stability","stabilize","stable","stack","stadium","staff","stage","staging","stagnant","stagnate","stainable","stained","staining","stainless","stalemate","staleness","stalling","stallion","stamina","stammer","stamp","stand","stank","staple","stapling","starboard","starch","stardom","stardust","starfish","stargazer","staring","stark","starless","starlet","starlight","starlit","starring","starry","starship","starter","starting","startle","startling","startup","starved","starving","stash","state","static","statistic","statue","stature","status","statute","statutory","staunch","stays","steadfast","steadier","steadily","steadying","steam","steed","steep","steerable","steering","steersman","stegosaur","stellar","stem","stench","stencil","step","stereo","sterile","sterility","sterilize","sterling","sternness","sternum","stew","stick","stiffen","stiffly","stiffness","stifle","stifling","stillness","stilt","stimulant","stimulate","stimuli","stimulus","stinger","stingily","stinging","stingray","stingy","stinking","stinky","stipend","stipulate","stir","stitch","stock","stoic","stoke","stole","stomp","stonewall","stoneware","stonework","stoning","stony","stood","stooge","stool","stoop","stoplight","stoppable","stoppage","stopped","stopper","stopping","stopwatch","storable","storage","storeroom","storewide","storm","stout","stove","stowaway","stowing","straddle","straggler","strained","strainer","straining","strangely","stranger","strangle","strategic","strategy","stratus","straw","stray","streak","stream","street","strength","strenuous","strep","stress","stretch","strewn","stricken","strict","stride","strife","strike","striking","strive","striving","strobe","strode","stroller","strongbox","strongly","strongman","struck","structure","strudel","struggle","strum","strung","strut","stubbed","stubble","stubbly","stubborn","stucco","stuck","student","studied","studio","study","stuffed","stuffing","stuffy","stumble","stumbling","stump","stung","stunned","stunner","stunning","stunt","stupor","sturdily","sturdy","styling","stylishly","stylist","stylized","stylus","suave","subarctic","subatomic","subdivide","subdued","subduing","subfloor","subgroup","subheader","subject","sublease","sublet","sublevel","sublime","submarine","submerge","submersed","submitter","subpanel","subpar","subplot","subprime","subscribe","subscript","subsector","subside","subsiding","subsidize","subsidy","subsoil","subsonic","substance","subsystem","subtext","subtitle","subtly","subtotal","subtract","subtype","suburb","subway","subwoofer","subzero","succulent","such","suction","sudden","sudoku","suds","sufferer","suffering","suffice","suffix","suffocate","suffrage","sugar","suggest","suing","suitable","suitably","suitcase","suitor","sulfate","sulfide","sulfite","sulfur","sulk","sullen","sulphate","sulphuric","sultry","superbowl","superglue","superhero","superior","superjet","superman","supermom","supernova","supervise","supper","supplier","supply","support","supremacy","supreme","surcharge","surely","sureness","surface","surfacing","surfboard","surfer","surgery","surgical","surging","surname","surpass","surplus","surprise","surreal","surrender","surrogate","surround","survey","survival","survive","surviving","survivor","sushi","suspect","suspend","suspense","sustained","sustainer","swab","swaddling","swagger","swampland","swan","swapping","swarm","sway","swear","sweat","sweep","swell","swept","swerve","swifter","swiftly","swiftness","swimmable","swimmer","swimming","swimsuit","swimwear","swinger","swinging","swipe","swirl","switch","swivel","swizzle","swooned","swoop","swoosh","swore","sworn","swung","sycamore","sympathy","symphonic","symphony","symptom","synapse","syndrome","synergy","synopses","synopsis","synthesis","synthetic","syrup","system","t-shirt","tabasco","tabby","tableful","tables","tablet","tableware","tabloid","tackiness","tacking","tackle","tackling","tacky","taco","tactful","tactical","tactics","tactile","tactless","tadpole","taekwondo","tag","tainted","take","taking","talcum","talisman","tall","talon","tamale","tameness","tamer","tamper","tank","tanned","tannery","tanning","tantrum","tapeless","tapered","tapering","tapestry","tapioca","tapping","taps","tarantula","target","tarmac","tarnish","tarot","tartar","tartly","tartness","task","tassel","taste","tastiness","tasting","tasty","tattered","tattle","tattling","tattoo","taunt","tavern","thank","that","thaw","theater","theatrics","thee","theft","theme","theology","theorize","thermal","thermos","thesaurus","these","thesis","thespian","thicken","thicket","thickness","thieving","thievish","thigh","thimble","thing","think","thinly","thinner","thinness","thinning","thirstily","thirsting","thirsty","thirteen","thirty","thong","thorn","those","thousand","thrash","thread","threaten","threefold","thrift","thrill","thrive","thriving","throat","throbbing","throng","throttle","throwaway","throwback","thrower","throwing","thud","thumb","thumping","thursday","thus","thwarting","thyself","tiara","tibia","tidal","tidbit","tidiness","tidings","tidy","tiger","tighten","tightly","tightness","tightrope","tightwad","tigress","tile","tiling","till","tilt","timid","timing","timothy","tinderbox","tinfoil","tingle","tingling","tingly","tinker","tinkling","tinsel","tinsmith","tint","tinwork","tiny","tipoff","tipped","tipper","tipping","tiptoeing","tiptop","tiring","tissue","trace","tracing","track","traction","tractor","trade","trading","tradition","traffic","tragedy","trailing","trailside","train","traitor","trance","tranquil","transfer","transform","translate","transpire","transport","transpose","trapdoor","trapeze","trapezoid","trapped","trapper","trapping","traps","trash","travel","traverse","travesty","tray","treachery","treading","treadmill","treason","treat","treble","tree","trekker","tremble","trembling","tremor","trench","trend","trespass","triage","trial","triangle","tribesman","tribunal","tribune","tributary","tribute","triceps","trickery","trickily","tricking","trickle","trickster","tricky","tricolor","tricycle","trident","tried","trifle","trifocals","trillion","trilogy","trimester","trimmer","trimming","trimness","trinity","trio","tripod","tripping","triumph","trivial","trodden","trolling","trombone","trophy","tropical","tropics","trouble","troubling","trough","trousers","trout","trowel","truce","truck","truffle","trump","trunks","trustable","trustee","trustful","trusting","trustless","truth","try","tubby","tubeless","tubular","tucking","tuesday","tug","tuition","tulip","tumble","tumbling","tummy","turban","turbine","turbofan","turbojet","turbulent","turf","turkey","turmoil","turret","turtle","tusk","tutor","tutu","tux","tweak","tweed","tweet","tweezers","twelve","twentieth","twenty","twerp","twice","twiddle","twiddling","twig","twilight","twine","twins","twirl","twistable","twisted","twister","twisting","twisty","twitch","twitter","tycoon","tying","tyke","udder","ultimate","ultimatum","ultra","umbilical","umbrella","umpire","unabashed","unable","unadorned","unadvised","unafraid","unaired","unaligned","unaltered","unarmored","unashamed","unaudited","unawake","unaware","unbaked","unbalance","unbeaten","unbend","unbent","unbiased","unbitten","unblended","unblessed","unblock","unbolted","unbounded","unboxed","unbraided","unbridle","unbroken","unbuckled","unbundle","unburned","unbutton","uncanny","uncapped","uncaring","uncertain","unchain","unchanged","uncharted","uncheck","uncivil","unclad","unclaimed","unclamped","unclasp","uncle","unclip","uncloak","unclog","unclothed","uncoated","uncoiled","uncolored","uncombed","uncommon","uncooked","uncork","uncorrupt","uncounted","uncouple","uncouth","uncover","uncross","uncrown","uncrushed","uncured","uncurious","uncurled","uncut","undamaged","undated","undaunted","undead","undecided","undefined","underage","underarm","undercoat","undercook","undercut","underdog","underdone","underfed","underfeed","underfoot","undergo","undergrad","underhand","underline","underling","undermine","undermost","underpaid","underpass","underpay","underrate","undertake","undertone","undertook","undertow","underuse","underwear","underwent","underwire","undesired","undiluted","undivided","undocked","undoing","undone","undrafted","undress","undrilled","undusted","undying","unearned","unearth","unease","uneasily","uneasy","uneatable","uneaten","unedited","unelected","unending","unengaged","unenvied","unequal","unethical","uneven","unexpired","unexposed","unfailing","unfair","unfasten","unfazed","unfeeling","unfiled","unfilled","unfitted","unfitting","unfixable","unfixed","unflawed","unfocused","unfold","unfounded","unframed","unfreeze","unfrosted","unfrozen","unfunded","unglazed","ungloved","unglue","ungodly","ungraded","ungreased","unguarded","unguided","unhappily","unhappy","unharmed","unhealthy","unheard","unhearing","unheated","unhelpful","unhidden","unhinge","unhitched","unholy","unhook","unicorn","unicycle","unified","unifier","uniformed","uniformly","unify","unimpeded","uninjured","uninstall","uninsured","uninvited","union","uniquely","unisexual","unison","unissued","unit","universal","universe","unjustly","unkempt","unkind","unknotted","unknowing","unknown","unlaced","unlatch","unlawful","unleaded","unlearned","unleash","unless","unleveled","unlighted","unlikable","unlimited","unlined","unlinked","unlisted","unlit","unlivable","unloaded","unloader","unlocked","unlocking","unlovable","unloved","unlovely","unloving","unluckily","unlucky","unmade","unmanaged","unmanned","unmapped","unmarked","unmasked","unmasking","unmatched","unmindful","unmixable","unmixed","unmolded","unmoral","unmovable","unmoved","unmoving","unnamable","unnamed","unnatural","unneeded","unnerve","unnerving","unnoticed","unopened","unopposed","unpack","unpadded","unpaid","unpainted","unpaired","unpaved","unpeeled","unpicked","unpiloted","unpinned","unplanned","unplanted","unpleased","unpledged","unplowed","unplug","unpopular","unproven","unquote","unranked","unrated","unraveled","unreached","unread","unreal","unreeling","unrefined","unrelated","unrented","unrest","unretired","unrevised","unrigged","unripe","unrivaled","unroasted","unrobed","unroll","unruffled","unruly","unrushed","unsaddle","unsafe","unsaid","unsalted","unsaved","unsavory","unscathed","unscented","unscrew","unsealed","unseated","unsecured","unseeing","unseemly","unseen","unselect","unselfish","unsent","unsettled","unshackle","unshaken","unshaved","unshaven","unsheathe","unshipped","unsightly","unsigned","unskilled","unsliced","unsmooth","unsnap","unsocial","unsoiled","unsold","unsolved","unsorted","unspoiled","unspoken","unstable","unstaffed","unstamped","unsteady","unsterile","unstirred","unstitch","unstopped","unstuck","unstuffed","unstylish","unsubtle","unsubtly","unsuited","unsure","unsworn","untagged","untainted","untaken","untamed","untangled","untapped","untaxed","unthawed","unthread","untidy","untie","until","untimed","untimely","untitled","untoasted","untold","untouched","untracked","untrained","untreated","untried","untrimmed","untrue","untruth","unturned","untwist","untying","unusable","unused","unusual","unvalued","unvaried","unvarying","unveiled","unveiling","unvented","unviable","unvisited","unvocal","unwanted","unwarlike","unwary","unwashed","unwatched","unweave","unwed","unwelcome","unwell","unwieldy","unwilling","unwind","unwired","unwitting","unwomanly","unworldly","unworn","unworried","unworthy","unwound","unwoven","unwrapped","unwritten","unzip","upbeat","upchuck","upcoming","upcountry","update","upfront","upgrade","upheaval","upheld","uphill","uphold","uplifted","uplifting","upload","upon","upper","upright","uprising","upriver","uproar","uproot","upscale","upside","upstage","upstairs","upstart","upstate","upstream","upstroke","upswing","uptake","uptight","uptown","upturned","upward","upwind","uranium","urban","urchin","urethane","urgency","urgent","urging","urologist","urology","usable","usage","useable","used","uselessly","user","usher","usual","utensil","utility","utilize","utmost","utopia","utter","vacancy","vacant","vacate","vacation","vagabond","vagrancy","vagrantly","vaguely","vagueness","valiant","valid","valium","valley","valuables","value","vanilla","vanish","vanity","vanquish","vantage","vaporizer","variable","variably","varied","variety","various","varmint","varnish","varsity","varying","vascular","vaseline","vastly","vastness","veal","vegan","veggie","vehicular","velcro","velocity","velvet","vendetta","vending","vendor","veneering","vengeful","venomous","ventricle","venture","venue","venus","verbalize","verbally","verbose","verdict","verify","verse","version","versus","vertebrae","vertical","vertigo","very","vessel","vest","veteran","veto","vexingly","viability","viable","vibes","vice","vicinity","victory","video","viewable","viewer","viewing","viewless","viewpoint","vigorous","village","villain","vindicate","vineyard","vintage","violate","violation","violator","violet","violin","viper","viral","virtual","virtuous","virus","visa","viscosity","viscous","viselike","visible","visibly","vision","visiting","visitor","visor","vista","vitality","vitalize","vitally","vitamins","vivacious","vividly","vividness","vixen","vocalist","vocalize","vocally","vocation","voice","voicing","void","volatile","volley","voltage","volumes","voter","voting","voucher","vowed","vowel","voyage","wackiness","wad","wafer","waffle","waged","wager","wages","waggle","wagon","wake","waking","walk","walmart","walnut","walrus","waltz","wand","wannabe","wanted","wanting","wasabi","washable","washbasin","washboard","washbowl","washcloth","washday","washed","washer","washhouse","washing","washout","washroom","washstand","washtub","wasp","wasting","watch","water","waviness","waving","wavy","whacking","whacky","wham","wharf","wheat","whenever","whiff","whimsical","whinny","whiny","whisking","whoever","whole","whomever","whoopee","whooping","whoops","why","wick","widely","widen","widget","widow","width","wieldable","wielder","wife","wifi","wikipedia","wildcard","wildcat","wilder","wildfire","wildfowl","wildland","wildlife","wildly","wildness","willed","willfully","willing","willow","willpower","wilt","wimp","wince","wincing","wind","wing","winking","winner","winnings","winter","wipe","wired","wireless","wiring","wiry","wisdom","wise","wish","wisplike","wispy","wistful","wizard","wobble","wobbling","wobbly","wok","wolf","wolverine","womanhood","womankind","womanless","womanlike","womanly","womb","woof","wooing","wool","woozy","word","work","worried","worrier","worrisome","worry","worsening","worshiper","worst","wound","woven","wow","wrangle","wrath","wreath","wreckage","wrecker","wrecking","wrench","wriggle","wriggly","wrinkle","wrinkly","wrist","writing","written","wrongdoer","wronged","wrongful","wrongly","wrongness","wrought","xbox","xerox","yahoo","yam","yanking","yapping","yard","yarn","yeah","yearbook","yearling","yearly","yearning","yeast","yelling","yelp","yen","yesterday","yiddish","yield","yin","yippee","yo-yo","yodel","yoga","yogurt","yonder","yoyo","yummy","zap","zealous","zebra","zen","zeppelin","zero","zestfully","zesty","zigzagged","zipfile","zipping","zippy","zips","zit","zodiac","zombie","zone","zoning","zookeeper","zoologist","zoology","zoom"]},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&this.cipherService.upsert(o)}return[2]}}))}))},e.prototype.deleteWithServer=function(e){return r(this,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return[4,this.apiService.deleteFolder(e)];case 1:return t.sent(),[4,this.delete(e)];case 2:return t.sent(),[2]}}))}))},e}();t.FolderService=m},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0)for(d=0;d0)for(d=0;d0)for(d=0;d0)for(d=0;d1)&&(t.wordSeparator=" "),null==t.capitalize&&(t.capitalize=!1),null==t.includeNumber&&(t.includeNumber=!1),n=c.EEFLongWordList.length-1,r=new Array(t.numWords),o=0,i.label=1;case 1:return oe.length&&(e.minSpecial=e.length-e.minNumber),e.numWordsn.minLength&&(n.minLength=e.data.minLength),e.data.useUpper&&(n.useUppercase=!0),e.data.useLower&&(n.useLowercase=!0),e.data.useNumbers&&(n.useNumbers=!0),null!=e.data.minNumbers&&e.data.minNumbers>n.numberCount&&(n.numberCount=e.data.minNumbers),e.data.useSpecial&&(n.useSpecial=!0),null!=e.data.minSpecial&&e.data.minSpecial>n.specialCount&&(n.specialCount=e.data.minSpecial),null!=e.data.minNumberWords&&e.data.minNumberWords>n.minNumberWords&&(n.minNumberWords=e.data.minNumberWords),e.data.capitalize&&(n.capitalize=!0),e.data.includeNumber&&(n.includeNumber=!0))})),[2,n])}}))}))},e.prototype.saveOptions=function(e){return r(this,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return[4,this.storageService.save(d,e)];case 1:return t.sent(),this.optionsCache=e,[2]}}))}))},e.prototype.getHistory=function(){return r(this,void 0,void 0,(function(){var e,t;return i(this,(function(n){switch(n.label){case 0:return[4,this.cryptoService.hasKey()];case 1:return n.sent()?this.history?[3,4]:[4,this.storageService.get(m)]:[2,new Array];case 2:return e=n.sent(),t=this,[4,this.decryptHistory(e)];case 3:t.history=n.sent(),n.label=4;case 4:return[2,this.history||new Array]}}))}))},e.prototype.addHistory=function(e){return r(this,void 0,void 0,(function(){var t,n;return i(this,(function(r){switch(r.label){case 0:return[4,this.cryptoService.hasKey()];case 1:return r.sent()?[4,this.getHistory()]:[2];case 2:return t=r.sent(),this.matchesPrevious(e,t)?[2]:(t.unshift(new s.GeneratedPasswordHistory(e,Date.now())),t.length>100&&t.pop(),[4,this.encryptHistory(t)]);case 3:return n=r.sent(),[4,this.storageService.save(m,n)];case 4:return[2,r.sent()]}}))}))},e.prototype.clear=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.history=[],[4,this.storageService.remove(m)];case 1:return[2,e.sent()]}}))}))},e.prototype.passwordStrength=function(e,t){if(void 0===t&&(t=null),null==e||0===e.length)return null;var n=["bitwarden","bit","warden"];null!=t&&t.length>0&&(n=n.concat(t));var r=Array.from(new Set(n));return o(e,r)},e.prototype.normalizeOptions=function(e,t){e.minLowercase=0,e.minUppercase=0,!e.length||e.length<5?e.length=5:e.length>128&&(e.length=128),e.lengthe.length?e.minNumber=e.length:e.minNumber>9&&(e.minNumber=9):e.minNumber=0,e.minNumbere.length?e.minSpecial=e.length:e.minSpecial>9&&(e.minSpecial=9):e.minSpecial=0,e.minSpeciale.length&&(e.minSpecial=e.length-e.minNumber),null==e.numWords||e.length<3?e.numWords=3:e.numWords>20&&(e.numWords=20),e.numWords1&&(e.wordSeparator=e.wordSeparator[0]),this.sanitizePasswordLength(e,!1)},e.prototype.capitalize=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},e.prototype.appendRandomNumberToRandomWord=function(e){return r(this,void 0,void 0,(function(){var t,n;return i(this,(function(r){switch(r.label){case 0:return null==e||e.length<=0?[2]:[4,this.cryptoService.randomNumber(0,e.length-1)];case 1:return t=r.sent(),[4,this.cryptoService.randomNumber(0,9)];case 2:return n=r.sent(),e[t]=e[t]+n,[2]}}))}))},e.prototype.encryptHistory=function(e){return r(this,void 0,void 0,(function(){var t,n=this;return i(this,(function(o){switch(o.label){case 0:return null==e||0===e.length?[2,Promise.resolve([])]:(t=e.map((function(e){return r(n,void 0,void 0,(function(){var t;return i(this,(function(n){switch(n.label){case 0:return[4,this.cryptoService.encrypt(e.password)];case 1:return t=n.sent(),[2,new s.GeneratedPasswordHistory(t.encryptedString,e.date)]}}))}))})),[4,Promise.all(t)]);case 1:return[2,o.sent()]}}))}))},e.prototype.decryptHistory=function(e){return r(this,void 0,void 0,(function(){var t,n=this;return i(this,(function(o){switch(o.label){case 0:return null==e||0===e.length?[2,Promise.resolve([])]:(t=e.map((function(e){return r(n,void 0,void 0,(function(){var t;return i(this,(function(n){switch(n.label){case 0:return[4,this.cryptoService.decryptToUtf8(new a.EncString(e.password))];case 1:return t=n.sent(),[2,new s.GeneratedPasswordHistory(t,e.date)]}}))}))})),[4,Promise.all(t)]);case 1:return[2,o.sent()]}}))}))},e.prototype.matchesPrevious=function(e,t){return null!=t&&0!==t.length&&t[t.length-1].password===e},e.prototype.shuffleArray=function(e){return r(this,void 0,void 0,(function(){var t,n,r;return i(this,(function(i){switch(i.label){case 0:t=e.length-1,i.label=1;case 1:return t>0?[4,this.cryptoService.randomNumber(0,t)]:[3,4];case 2:n=i.sent(),r=[e[n],e[t]],e[t]=r[0],e[n]=r[1],i.label=3;case 3:return t--,[3,1];case 4:return[2]}}))}))},e.prototype.sanitizePasswordLength=function(e,t){var n=0,r=0,i=e.minNumber,o=e.minSpecial;e.uppercase&&e.minUppercase<=0?n=1:e.uppercase||(n=0),e.lowercase&&e.minLowercase<=0?r=1:e.lowercase||(r=0),e.number&&e.minNumber<=0?i=1:e.number||(i=0),e.special&&e.minSpecial<=0?o=1:e.special||(o=0),(!e.length||e.length<1)&&(e.length=10);var a=n+r+i+o;e.length0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=e.revisionDate&&(n=!1),a=!1,n&&(t?(n=null!=r,a=!0):null==e.collectionIds||null==e.organizationId?n=null==r:(n=!1,a=!0)),!n&&a&&null!=e.organizationId&&null!=e.collectionIds&&e.collectionIds.length>0?[4,this.collectionService.getAll()]:[3,5];case 4:if(null!=(s=i.sent()))for(l=0;l-1){n=!0;break}i.label=5;case 5:return n?[4,this.apiService.getCipher(e.id)]:[3,9];case 6:return null==(c=i.sent())?[3,9]:[4,this.userService.getUserId()];case 7:return p=i.sent(),[4,this.cipherService.upsert(new o.CipherData(c,p))];case 8:return i.sent(),this.messagingService.send("syncedUpsertedCipher",{cipherId:e.id}),[2,this.syncCompleted(!0)];case 9:return[3,13];case 10:return null!=(u=i.sent())&&404===u.statusCode&&t?[4,this.cipherService.delete(e.id)]:[3,12];case 11:return i.sent(),this.messagingService.send("syncedDeletedCipher",{cipherId:e.id}),[2,this.syncCompleted(!0)];case 12:return[3,13];case 13:return[2,this.syncCompleted(!1)]}}))}))},e.prototype.syncDeleteCipher=function(e){return r(this,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return this.syncStarted(),[4,this.userService.isAuthenticated()];case 1:return t.sent()?[4,this.cipherService.delete(e.id)]:[3,3];case 2:return t.sent(),this.messagingService.send("syncedDeletedCipher",{cipherId:e.id}),[2,this.syncCompleted(!0)];case 3:return[2,this.syncCompleted(!1)]}}))}))},e.prototype.syncUpsertSend=function(e,t){return r(this,void 0,void 0,(function(){var n,r,o;return i(this,(function(i){switch(i.label){case 0:return this.syncStarted(),[4,this.userService.isAuthenticated()];case 1:if(!i.sent())return[3,9];i.label=2;case 2:return i.trys.push([2,8,,9]),[4,this.sendService.get(e.id)];case 3:return n=i.sent(),!t&&null==n||t&&null!=n&&n.revisionDate0&&e.push(t.domains)})),[2,this.settingsService.setEquivalentDomains(e)]}))}))},e.prototype.syncPolicies=function(e){return r(this,void 0,void 0,(function(){var t;return i(this,(function(n){switch(n.label){case 0:return t={},null!=e&&e.forEach((function(e){t[e.id]=new c.PolicyData(e)})),[4,this.policyService.replace(t)];case 1:return[2,n.sent()]}}))}))},e}();t.SyncService=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(160),i=n(950),o=n(951),a=function(e,t){if(null!=e)switch(this.id=e.id,this.accessId=e.accessId,this.userId=t,this.type=e.type,this.name=e.name,this.notes=e.notes,this.key=e.key,this.maxAccessCount=e.maxAccessCount,this.accessCount=e.accessCount,this.revisionDate=e.revisionDate,this.expirationDate=e.expirationDate,this.deletionDate=e.deletionDate,this.password=e.password,this.disabled=e.disable,this.hideEmail=e.hideEmail,this.type){case r.SendType.Text:this.text=new o.SendTextData(e.text);break;case r.SendType.File:this.file=new i.SendFileData(e.file)}};t.SendData=a},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]10?r=10:u>0&&(r=u)}catch(I){}if(p.has("period")&&null!=p.get("period"))try{(d=parseInt(p.get("period").trim(),null))>0&&(t=d)}catch(E){}p.has("secret")&&null!=p.get("secret")&&(o=p.get("secret")),p.has("algorithm")&&null!=p.get("algorithm")&&("sha1"!==(m=p.get("algorithm").toLowerCase())&&"sha256"!==m&&"sha512"!==m||(n=m))}else c&&(o=e.substr("steam://".length),r=5);return h=Math.round((new Date).getTime()/1e3),f=this.leftPad(this.decToHex(Math.floor(h/t)),16,"0"),v=a.Utils.fromHexToArray(f),(y=this.b32ToBytes(o)).length&&v.length?[4,this.sign(y,v,n)]:[2,null];case 1:if(0===(g=i.sent()).length)return[2,null];if(x=15&g[g.length-1],b=(127&g[x])<<24|(255&g[x+1])<<16|(255&g[x+2])<<8|255&g[x+3],S="",c)for(w=2147483647&b,C=0;C=e.length&&(e=Array(t+1-e.length).join(n)+e),e},e.prototype.decToHex=function(e){return(e<15.5?"0":"")+Math.round(e).toString(16)},e.prototype.b32ToHex=function(e){e=e.toUpperCase();for(var t="",n=0;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=n?[4,this.storageService.get(o.ConstantsService.vaultTimeoutActionKey)]:[3,12]);case 7:return"logOut"!==r.sent()?[3,9]:[4,this.logOut()];case 8:return r.sent(),[3,11];case 9:return[4,this.lock(!0)];case 10:r.sent(),r.label=11;case 11:r.label=12;case 12:return[2]}}))}))},e.prototype.lock=function(e){return void 0===e&&(e=!1),r(this,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return[4,this.userService.isAuthenticated()];case 1:return t.sent()?(this.biometricLocked=!0,e?[4,this.isBiometricLockSet()]:[3,5]):[2];case 2:return t.sent()&&this.platformUtilsService.supportsSecureStorage()?(this.messagingService.send("locked"),null==this.lockedCallback?[3,4]:[4,this.lockedCallback()]):[3,5];case 3:t.sent(),t.label=4;case 4:return[2];case 5:return[4,Promise.all([this.cryptoService.clearKey(),this.cryptoService.clearOrgKeys(!0),this.cryptoService.clearKeyPair(!0),this.cryptoService.clearEncKey(!0)])];case 6:return t.sent(),this.folderService.clearCache(),this.cipherService.clearCache(),this.collectionService.clearCache(),this.searchService.clearIndex(),this.messagingService.send("locked"),null==this.lockedCallback?[3,8]:[4,this.lockedCallback()];case 7:t.sent(),t.label=8;case 8:return[2]}}))}))},e.prototype.logOut=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return null==this.loggedOutCallback?[3,2]:[4,this.loggedOutCallback()];case 1:e.sent(),e.label=2;case 2:return[2]}}))}))},e.prototype.setVaultTimeoutOptions=function(e,t){return r(this,void 0,void 0,(function(){return i(this,(function(n){switch(n.label){case 0:return[4,this.storageService.save(o.ConstantsService.vaultTimeoutKey,e)];case 1:return n.sent(),[4,this.storageService.save(o.ConstantsService.vaultTimeoutActionKey,t)];case 2:return n.sent(),[4,this.cryptoService.toggleKey()];case 3:return n.sent(),[4,this.tokenService.toggleTokens()];case 4:return n.sent(),[2]}}))}))},e.prototype.isPinLockSet=function(){return r(this,void 0,void 0,(function(){var e,t;return i(this,(function(n){switch(n.label){case 0:return[4,this.storageService.get(o.ConstantsService.protectedPin)];case 1:return e=n.sent(),[4,this.storageService.get(o.ConstantsService.pinProtectedKey)];case 2:return t=n.sent(),[2,[null!=e,null!=t]]}}))}))},e.prototype.isBiometricLockSet=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return[4,this.storageService.get(o.ConstantsService.biometricUnlockKey)];case 1:return[2,e.sent()]}}))}))},e.prototype.clear=function(){return this.pinProtectedKey=null,this.storageService.remove(o.ConstantsService.protectedPin)},e}();t.VaultTimeoutService=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(710),i=n(955),o=function(){function e(e,t){void 0===t&&(t=null),this.isDev=e,this.filter=t,this.timersMap=new Map}return e.prototype.debug=function(e){this.isDev&&this.write(r.LogLevelType.Debug,e)},e.prototype.info=function(e){this.write(r.LogLevelType.Info,e)},e.prototype.warning=function(e){this.write(r.LogLevelType.Warning,e)},e.prototype.error=function(e){this.write(r.LogLevelType.Error,e)},e.prototype.write=function(e,t){if(null==this.filter||!this.filter(e))switch(e){case r.LogLevelType.Debug:case r.LogLevelType.Info:console.log(t);break;case r.LogLevelType.Warning:console.warn(t);break;case r.LogLevelType.Error:console.error(t)}},e.prototype.time=function(e){void 0===e&&(e="default"),this.timersMap.has(e)||this.timersMap.set(e,i())},e.prototype.timeEnd=function(e){void 0===e&&(e="default");var t=i(this.timersMap.get(e));return this.timersMap.delete(e),this.write(r.LogLevelType.Info,e+": "+(1e3*t[0]+t[1]/1e7)+"ms"),t},e}();t.ConsoleLogService=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Debug=0]="Debug",e[e.Info=1]="Info",e[e.Warning=2]="Warning",e[e.Error=3]="Error"}(t.LogLevelType||(t.LogLevelType={}))},,function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.build=function(t){this.id=t.id,e.prototype.build.call(this,t),this.collectionIds=t.collectionIds},t}(n(960).Cipher);t.CipherWithIds=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.build=function(t){this.id=t.id,e.prototype.build.call(this,t)},t}(n(967).Collection);t.CollectionWithId=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.build=function(t){this.id=t.id,e.prototype.build.call(this,t)},t}(n(968).Folder);t.FolderWithId=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(26),a=n(25),s=n(39),l=n(118),c=n(1007);t.IgnoredProperties=["ainfo","autosubmit","notesplain","ps","scope","tags","title","uuid","notes"];var p=function(e){function n(){var t=null!==e&&e.apply(this,arguments)||this;return t.loginPropertyParsers=[t.setLoginUsername,t.setLoginPassword,t.setLoginUris],t.creditCardPropertyParsers=[t.setCreditCardNumber,t.setCreditCardVerification,t.setCreditCardCardholderName,t.setCreditCardExpiry],t.identityPropertyParsers=[t.setIdentityFirstName,t.setIdentityInitial,t.setIdentityLastName,t.setIdentityUserName,t.setIdentityEmail,t.setIdentityPhone,t.setIdentityCompany],t}return i(n,e),n.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0,{quoteChar:'"',escapeChar:"\\"});return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){if(!t.isNullOrWhitespace(t.getProp(e,"title"))){var r=t.initLoginCipher();r.name=t.getValueOrDefault(t.getProp(e,"title"),"--"),t.setNotes(e,r),t.setCipherType(e,r);var i=null;for(var o in e)if(e.hasOwnProperty(o)&&!t.isNullOrWhitespace(e[o])){var a=new c.CipherImportContext(e,o,r);r.type===s.CipherType.Login&&t.setKnownLoginValue(a)||r.type===s.CipherType.Card&&t.setKnownCreditCardValue(a)||r.type===s.CipherType.Identity&&t.setKnownIdentityValue(a)||(i=t.setUnknownValue(a,i))}r.type===s.CipherType.Login&&!t.isNullOrWhitespace(i)&&t.isNullOrWhitespace(r.login.username)&&-1===i.indexOf("://")&&(r.login.username=i),t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)}})),n.success=!0,Promise.resolve(n))},n.prototype.getProp=function(e,t){return Object.entries(e).reduce((function(e,t){return e[t[0].toLowerCase()]=t[1],e}),{})[t.toLowerCase()]},n.prototype.getPropByRegexp=function(e,t){var n=Object.keys(e).reduce((function(e,n){return n.match(t)&&e.push(n),e}),[]);return 0===n.length?null:e[n[0]]},n.prototype.getPropIncluding=function(e,t){var n=Object.keys(e).reduce((function(e,n){return n.toLowerCase().includes(t.toLowerCase())&&e.push(n),e}),[]);return 0===n.length?null:e[n[0]]},n.prototype.setNotes=function(e,t){t.notes=this.getValueOrDefault(this.getProp(e,"notesPlain"),"")+"\n"+this.getValueOrDefault(this.getProp(e,"notes"),"")+"\n",t.notes.trim()},n.prototype.setKnownLoginValue=function(e){var t=this;return this.loginPropertyParsers.reduce((function(n,r){return n||(n=r.bind(t)(e)),n}),!1)},n.prototype.setKnownCreditCardValue=function(e){var t=this;return this.creditCardPropertyParsers.reduce((function(n,r){return n||(n=r.bind(t)(e)),n}),!1)},n.prototype.setKnownIdentityValue=function(e){var t=this;return this.identityPropertyParsers.reduce((function(n,r){return n||(n=r.bind(t)(e)),n}),!1)},n.prototype.setUnknownValue=function(e,n){if(-1===t.IgnoredProperties.indexOf(e.lowerProperty)&&!e.lowerProperty.startsWith("section:")&&!e.lowerProperty.startsWith("section ")){if(null==n&&"email"===e.lowerProperty)return e.importRecord[e.property];if("created date"===e.lowerProperty||"modified date"===e.lowerProperty){var r=new Date(1e3*parseInt(e.importRecord[e.property],10)).toUTCString();return this.processKvp(e.cipher,"1Password "+e.property,r),null}e.lowerProperty.includes("password")||e.lowerProperty.includes("key")||e.lowerProperty.includes("secret")?this.processKvp(e.cipher,e.property,e.importRecord[e.property],l.FieldType.Hidden):this.processKvp(e.cipher,e.property,e.importRecord[e.property])}return null},n.prototype.setIdentityFirstName=function(e){return!(!this.isNullOrWhitespace(e.cipher.identity.firstName)||!e.lowerProperty.includes("first name"))&&(e.cipher.identity.firstName=e.importRecord[e.property],!0)},n.prototype.setIdentityInitial=function(e){return!(!this.isNullOrWhitespace(e.cipher.identity.middleName)||!e.lowerProperty.includes("initial"))&&(e.cipher.identity.middleName=e.importRecord[e.property],!0)},n.prototype.setIdentityLastName=function(e){return!(!this.isNullOrWhitespace(e.cipher.identity.lastName)||!e.lowerProperty.includes("last name"))&&(e.cipher.identity.lastName=e.importRecord[e.property],!0)},n.prototype.setIdentityUserName=function(e){return!(!this.isNullOrWhitespace(e.cipher.identity.username)||!e.lowerProperty.includes("username"))&&(e.cipher.identity.username=e.importRecord[e.property],!0)},n.prototype.setIdentityCompany=function(e){return!(!this.isNullOrWhitespace(e.cipher.identity.company)||!e.lowerProperty.includes("company"))&&(e.cipher.identity.company=e.importRecord[e.property],!0)},n.prototype.setIdentityPhone=function(e){return!(!this.isNullOrWhitespace(e.cipher.identity.phone)||!e.lowerProperty.includes("default phone"))&&(e.cipher.identity.phone=e.importRecord[e.property],!0)},n.prototype.setIdentityEmail=function(e){return!(!this.isNullOrWhitespace(e.cipher.identity.email)||!e.lowerProperty.includes("email"))&&(e.cipher.identity.email=e.importRecord[e.property],!0)},n.prototype.setCreditCardNumber=function(e){return!(!this.isNullOrWhitespace(e.cipher.card.number)||!e.lowerProperty.includes("number"))&&(e.cipher.card.number=e.importRecord[e.property],e.cipher.card.brand=this.getCardBrand(e.cipher.card.number),!0)},n.prototype.setCreditCardVerification=function(e){return!(!this.isNullOrWhitespace(e.cipher.card.code)||!e.lowerProperty.includes("verification number"))&&(e.cipher.card.code=e.importRecord[e.property],!0)},n.prototype.setCreditCardCardholderName=function(e){return!(!this.isNullOrWhitespace(e.cipher.card.cardholderName)||!e.lowerProperty.includes("cardholder name"))&&(e.cipher.card.cardholderName=e.importRecord[e.property],!0)},n.prototype.setCreditCardExpiry=function(e){return!(!this.isNullOrWhitespace(e.cipher.card.expiration)||!e.lowerProperty.includes("expiry date")||7!==e.importRecord[e.property].length)&&(e.cipher.card.expMonth=e.importRecord[e.property].substr(0,2),"0"===e.cipher.card.expMonth[0]&&(e.cipher.card.expMonth=e.cipher.card.expMonth.substr(1,1)),e.cipher.card.expYear=e.importRecord[e.property].substr(3,4),!0)},n.prototype.setLoginPassword=function(e){return!(!this.isNullOrWhitespace(e.cipher.login.password)||"password"!==e.lowerProperty)&&(e.cipher.login.password=e.importRecord[e.property],!0)},n.prototype.setLoginUsername=function(e){return!(!this.isNullOrWhitespace(e.cipher.login.username)||"username"!==e.lowerProperty)&&(e.cipher.login.username=e.importRecord[e.property],!0)},n.prototype.setLoginUris=function(e){if((null==e.cipher.login.uris||0===e.cipher.login.uris.length)&&"urls"===e.lowerProperty){var t=e.importRecord[e.property].split(this.newLineRegex);return e.cipher.login.uris=this.makeUriArray(t),!0}return"url"===e.lowerProperty&&(null==e.cipher.login.uris&&(e.cipher.login.uris=[]),e.cipher.login.uris.concat(this.makeUriArray(e.importRecord[e.property])),!0)},n}(a.BaseImporter);t.OnePasswordCsvImporter=p},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(596);t.AttachmentView=r.AttachmentView;var i=n(88);t.CardView=i.CardView;var o=n(143);t.CipherView=o.CipherView;var a=n(209);t.FieldView=a.FieldView;var s=n(144);t.IdentityView=s.IdentityView;var l=n(258);t.LoginUriView=l.LoginUriView;var c=n(159);t.LoginView=c.LoginView;var p=n(94);t.SecureNoteView=p.SecureNoteView;var u=n(1008);t.View=u.View},,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.SyncCipherUpdate=0]="SyncCipherUpdate",e[e.SyncCipherCreate=1]="SyncCipherCreate",e[e.SyncLoginDelete=2]="SyncLoginDelete",e[e.SyncFolderDelete=3]="SyncFolderDelete",e[e.SyncCiphers=4]="SyncCiphers",e[e.SyncVault=5]="SyncVault",e[e.SyncOrgKeys=6]="SyncOrgKeys",e[e.SyncFolderCreate=7]="SyncFolderCreate",e[e.SyncFolderUpdate=8]="SyncFolderUpdate",e[e.SyncCipherDelete=9]="SyncCipherDelete",e[e.SyncSettings=10]="SyncSettings",e[e.LogOut=11]="LogOut",e[e.SyncSendCreate=12]="SyncSendCreate",e[e.SyncSendUpdate=13]="SyncSendUpdate",e[e.SyncSendDelete=14]="SyncSendDelete"}(t.NotificationType||(t.NotificationType={}))},,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0);n(754),n(273),n(530),n(755);var i=n(756),o=n(72);r.enableProdMode(),o.platformBrowser().bootstrapModule(i.AppModule,{preserveWhitespaces:!0})},,function(e,t,n){},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(757);var r=n(9),i=n(214),o=n(822),a=n(267),s=(n(0),n(13)),l=n(72),c=n(907),p=n(908),u=n(1065),d=n(84),m=n(139),h=n(250),f=n(460),v=n(540),y=n(459),g=n(541),x=n(544),b=n(545),S=n(546),w=n(547),C=n(548),I=n(549),E=n(550),P=n(551),k=n(552),_=n(553),A=n(554),O=n(557),T=n(556),M=n(560),B=n(561),D=n(563),R=n(562),V=n(467),j=n(466),F=n(565),U=n(567),N=n(566),z=n(568),L=n(569),G=n(573),K=n(575),q=n(570),W=n(571),H=n(572),$=n(576),Y=n(585),Q=n(583),J=n(579),X=n(584),Z=n(580),ee=n(582),te=n(586),ne=n(587),re=n(593),ie=n(594),oe=n(606),ae=n(607),se=n(608),le=n(609),ce=n(610),pe=n(611),ue=n(481),de=n(613),me=n(505),he=n(622),fe=n(507),ve=n(612),ye=n(629),ge=n(631),xe=n(630),be=n(633),Se=n(472),we=n(473),Ce=n(476),Ie=n(469),Ee=n(637),Pe=n(646),ke=n(639),_e=n(647),Ae=n(634),Oe=n(635),Te=n(648),Me=n(679),Be=n(674),De=n(680),Re=n(681),Ve=n(670),je=n(676),Fe=n(675),Ue=n(650),Ne=n(649),ze=n(283),Le=n(298),Ge=n(117),Ke=n(651),qe=n(636),We=n(470),He=n(652),$e=n(142),Ye=n(588),Qe=n(477),Je=n(589),Xe=n(590),Ze=n(478),et=n(188),tt=n(591),nt=n(592),rt=n(659),it=n(474),ot=n(471),at=n(653),st=n(663),lt=n(654),ct=n(479),pt=n(480),ut=n(491),dt=n(493),mt=n(656),ht=n(655),ft=n(494),vt=n(657),yt=n(495),gt=n(496),xt=n(260),bt=n(497),St=n(508),wt=n(624),Ct=n(626),It=n(627),Et=n(628),Pt=n(263),kt=n(506),_t=n(660),At=n(294),Ot=n(662),Tt=n(661),Mt=n(658),Bt=n(24),Dt=n(107),Rt=n(17),Vt=n(16),jt=n(65),Ft=n(1066),Ut=n(1067),Nt=n(605),zt=n(45),Lt=n(513),Gt=n(37),Kt=n(53),qt=n(291),Wt=n(514),Ht=n(10),$t=n(1068),Yt=n(252),Qt=n(4),Jt=n(1069),Xt=n(1070),Zt=n(1071),en=n(1072),tn=n(1073),nn=n(1074),rn=n(1075),on=n(1076),an=n(1077),sn=n(1078),ln=n(1079),cn=n(1080),pn=n(1081),un=n(1082),dn=n(1083),mn=n(1084),hn=n(1085),fn=n(1086),vn=n(1087),yn=n(1088),gn=n(1089),xn=n(1090),bn=n(1091),Sn=n(1092),wn=n(1093),Cn=n(1094),In=n(0),En=n(9);Qt.registerLocaleData(Jt.default,"ca"),Qt.registerLocaleData(Xt.default,"cs"),Qt.registerLocaleData(Zt.default,"da"),Qt.registerLocaleData(en.default,"de"),Qt.registerLocaleData(tn.default,"el"),Qt.registerLocaleData(nn.default,"en-GB"),Qt.registerLocaleData(rn.default,"es"),Qt.registerLocaleData(on.default,"et"),Qt.registerLocaleData(an.default,"fr"),Qt.registerLocaleData(sn.default,"he"),Qt.registerLocaleData(ln.default,"it"),Qt.registerLocaleData(cn.default,"ja"),Qt.registerLocaleData(pn.default,"ko"),Qt.registerLocaleData(un.default,"lv"),Qt.registerLocaleData(dn.default,"ml"),Qt.registerLocaleData(mn.default,"nb"),Qt.registerLocaleData(hn.default,"nl"),Qt.registerLocaleData(fn.default,"pl"),Qt.registerLocaleData(vn.default,"pt-BR"),Qt.registerLocaleData(yn.default,"pt-PT"),Qt.registerLocaleData(gn.default,"ru"),Qt.registerLocaleData(xn.default,"sk"),Qt.registerLocaleData(bn.default,"sv"),Qt.registerLocaleData(Sn.default,"uk"),Qt.registerLocaleData(wn.default,"zh-CN"),Qt.registerLocaleData(Cn.default,"zh-TW");var Pn=function(){function e(){}return e.ɵmod=In.ɵɵdefineNgModule({type:e,bootstrap:[u.AppComponent]}),e.ɵinj=In.ɵɵdefineInjector({factory:function(t){return new(t||e)},providers:[Qt.DatePipe],imports:[[l.BrowserModule,c.BrowserAnimationsModule,s.FormsModule,o.AppRoutingModule,p.ServicesModule,r.ToasterModule.forRoot(),i.InfiniteScrollModule,a.DragDropModule]]}),e}();t.AppModule=Pn,("undefined"==typeof ngJitMode||ngJitMode)&&In.ɵɵsetNgModuleScope(Pn,{declarations:[Rt.A11yTitleDirective,b.AcceptEmergencyComponent,ye.AccessComponent,S.AcceptOrganizationComponent,be.AccountComponent,_.SetPasswordComponent,Se.AddCreditComponent,xt.AddEditComponent,we.AdjustPaymentComponent,Y.AdjustSeatsComponent,Ce.AdjustStorageComponent,Vt.ApiActionDirective,Ie.ApiKeyComponent,u.AppComponent,bt.AttachmentsComponent,jt.AutofocusDirective,m.AvatarComponent,Ft.BlurClickDirective,Ut.BoxRowDirective,lt.BreachReportComponent,St.BulkActionsComponent,wt.BulkDeleteComponent,Ct.BulkMoveComponent,It.BulkRestoreComponent,Et.BulkShareComponent,Bt.CalloutComponent,Ee.ChangeEmailComponent,Pe.ChangeKdfComponent,ke.ChangePasswordComponent,Q.ChangePlanComponent,Pt.CiphersComponent,kt.CollectionsComponent,Wt.ColorPasswordPipe,_e.CreateOrganizationComponent,Ae.DeauthorizeSessionsComponent,Oe.DeleteAccountComponent,J.DeleteOrganizationComponent,Te.DomainRulesComponent,X.DownloadLicenseComponent,Me.EmergencyAccessAddEditComponent,Be.EmergencyAccessAttachmentsComponent,je.EmergencyAccessComponent,De.EmergencyAccessConfirmComponent,Re.EmergencyAccessTakeoverComponent,Ve.EmergencyAccessViewComponent,Fe.EmergencyAddEditComponent,ct.ExportComponent,pt.ExposedPasswordsReportComponent,Nt.FallbackSrcDirective,_t.FolderAddEditComponent,f.FooterComponent,v.FrontendLayoutComponent,At.GroupingsComponent,w.HintComponent,Ht.I18nPipe,Dt.IconComponent,ut.ImportComponent,dt.InactiveTwoFactorReportComponent,zt.InputVerbatimDirective,Ue.LinkSsoComponent,C.LockComponent,I.LoginComponent,d.ModalComponent,y.NavbarComponent,Ne.OptionsComponent,$.AccountComponent,ue.AddEditComponent,Z.OrganizationBillingComponent,ze.OrganizationPlansComponent,ee.OrganizationSubscriptionComponent,de.AttachmentsComponent,me.CiphersComponent,D.CollectionAddEditComponent,he.CollectionsComponent,V.EntityEventsComponent,j.EntityUsersComponent,F.EventsComponent,re.ExportComponent,ie.ExposedPasswordsReportComponent,oe.ImportComponent,ae.InactiveTwoFactorReportComponent,U.GroupAddEditComponent,fe.GroupingsComponent,N.GroupsComponent,R.CollectionsComponent,z.ManageComponent,L.PeopleComponent,K.PolicyEditComponent,G.PoliciesComponent,se.ReusedPasswordsReportComponent,te.SettingsComponent,le.ToolsComponent,ne.TwoFactorSetupComponent,q.UserAddEditComponent,W.UserConfirmComponent,H.UserGroupsComponent,Le.OrganizationsComponent,g.OrganizationLayoutComponent,ce.UnsecuredWebsitesReportComponent,ve.VaultComponent,pe.WeakPasswordsReportComponent,ht.PasswordGeneratorComponent,mt.PasswordGeneratorHistoryComponent,h.PasswordStrengthComponent,Ge.PaymentComponent,Ke.PremiumComponent,qe.ProfileComponent,We.PurgeVaultComponent,E.RecoverDeleteComponent,P.RecoverTwoFactorComponent,k.RegisterComponent,ft.ReusedPasswordsReportComponent,$t.SearchCiphersPipe,Yt.SearchPipe,Lt.SelectCopyDirective,ge.AddEditComponent,xe.SendComponent,Ot.SendInfoComponent,He.SettingsComponent,Tt.ShareComponent,A.SsoComponent,Gt.StopClickDirective,Kt.StopPropDirective,$e.TaxInfoComponent,vt.ToolsComponent,qt.TrueFalseValueDirective,Ye.TwoFactorAuthenticatorComponent,T.TwoFactorComponent,Qe.TwoFactorDuoComponent,Je.TwoFactorEmailComponent,O.TwoFactorOptionsComponent,Xe.TwoFactorRecoveryComponent,Ze.TwoFactorSetupComponent,et.TwoFactorVerifyComponent,tt.TwoFactorWebAuthnComponent,nt.TwoFactorYubiKeyComponent,yt.UnsecuredWebsitesReportComponent,rt.UpdateKeyComponent,it.UpdateLicenseComponent,ot.UserBillingComponent,x.UserLayoutComponent,at.UserSubscriptionComponent,Mt.VaultComponent,st.VerifyEmailComponent,M.VerifyEmailTokenComponent,B.VerifyRecoverDeleteComponent,gt.WeakPasswordsReportComponent],imports:[l.BrowserModule,c.BrowserAnimationsModule,s.FormsModule,o.AppRoutingModule,p.ServicesModule,En.ToasterModule,i.InfiniteScrollModule,a.DragDropModule]})},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(8),i=n(540),o=n(541),a=n(544),s=n(545),l=n(546),c=n(547),p=n(548),u=n(549),d=n(550),m=n(551),h=n(552),f=n(553),v=n(554),y=n(556),g=n(560),x=n(561),b=n(562),S=n(565),w=n(566),C=n(568),I=n(569),E=n(573),P=n(576),k=n(580),_=n(582),A=n(586),O=n(587),T=n(593),M=n(594),B=n(606),D=n(607),R=n(608),V=n(609),j=n(610),F=n(611),U=n(612),N=n(629),z=n(630),L=n(633),G=n(647),K=n(648),q=n(649),W=n(298),H=n(651),$=n(652),Y=n(478),Q=n(471),J=n(653),X=n(654),Z=n(479),ee=n(480),te=n(491),ne=n(493),re=n(655),ie=n(494),oe=n(657),ae=n(495),se=n(496),le=n(658),ce=n(664),pe=n(665),ue=n(667),de=n(668),me=n(669),he=n(666),fe=n(670),ve=n(676),ye=n(0),ge=n(8),xe=[{path:"",component:i.FrontendLayoutComponent,children:[{path:"",pathMatch:"full",component:u.LoginComponent,canActivate:[me.UnauthGuardService]},{path:"2fa",component:y.TwoFactorComponent,canActivate:[me.UnauthGuardService]},{path:"register",component:h.RegisterComponent,canActivate:[me.UnauthGuardService],data:{titleId:"createAccount"}},{path:"sso",component:v.SsoComponent,canActivate:[me.UnauthGuardService],data:{titleId:"enterpriseSingleSignOn"}},{path:"set-password",component:f.SetPasswordComponent,data:{titleId:"setMasterPassword"}},{path:"hint",component:c.HintComponent,canActivate:[me.UnauthGuardService],data:{titleId:"passwordHint"}},{path:"lock",component:p.LockComponent,canActivate:[de.LockGuardService]},{path:"verify-email",component:g.VerifyEmailTokenComponent},{path:"accept-organization",component:l.AcceptOrganizationComponent,data:{titleId:"joinOrganization"}},{path:"accept-emergency",component:s.AcceptEmergencyComponent,data:{titleId:"acceptEmergency"}},{path:"recover",pathMatch:"full",redirectTo:"recover-2fa"},{path:"recover-2fa",component:m.RecoverTwoFactorComponent,canActivate:[me.UnauthGuardService],data:{titleId:"recoverAccountTwoStep"}},{path:"recover-delete",component:d.RecoverDeleteComponent,canActivate:[me.UnauthGuardService],data:{titleId:"deleteAccount"}},{path:"verify-recover-delete",component:x.VerifyRecoverDeleteComponent,canActivate:[me.UnauthGuardService],data:{titleId:"deleteAccount"}},{path:"send/:sendId/:key",component:N.AccessComponent,data:{title:"Bitwarden Send"}}]},{path:"",component:a.UserLayoutComponent,canActivate:[ue.AuthGuardService],children:[{path:"vault",component:le.VaultComponent,data:{titleId:"myVault"}},{path:"sends",component:z.SendComponent,data:{title:"Send"}},{path:"settings",component:$.SettingsComponent,children:[{path:"",pathMatch:"full",redirectTo:"account"},{path:"account",component:L.AccountComponent,data:{titleId:"myAccount"}},{path:"options",component:q.OptionsComponent,data:{titleId:"options"}},{path:"domain-rules",component:K.DomainRulesComponent,data:{titleId:"domainRules"}},{path:"two-factor",component:Y.TwoFactorSetupComponent,data:{titleId:"twoStepLogin"}},{path:"premium",component:H.PremiumComponent,data:{titleId:"goPremium"}},{path:"billing",component:Q.UserBillingComponent,data:{titleId:"billing"}},{path:"subscription",component:J.UserSubscriptionComponent,data:{titleId:"premiumMembership"}},{path:"organizations",component:W.OrganizationsComponent,data:{titleId:"organizations"}},{path:"create-organization",component:G.CreateOrganizationComponent,data:{titleId:"newOrganization"}},{path:"emergency-access",children:[{path:"",component:ve.EmergencyAccessComponent,data:{titleId:"emergencyAccess"}},{path:":id",component:fe.EmergencyAccessViewComponent,data:{titleId:"emergencyAccess"}}]}]},{path:"tools",component:oe.ToolsComponent,canActivate:[ue.AuthGuardService],children:[{path:"",pathMatch:"full",redirectTo:"generator"},{path:"import",component:te.ImportComponent,data:{titleId:"importData"}},{path:"export",component:Z.ExportComponent,data:{titleId:"exportVault"}},{path:"generator",component:re.PasswordGeneratorComponent,data:{titleId:"passwordGenerator"}},{path:"breach-report",component:X.BreachReportComponent,data:{titleId:"dataBreachReport"}},{path:"reused-passwords-report",component:ie.ReusedPasswordsReportComponent,data:{titleId:"reusedPasswordsReport"}},{path:"unsecured-websites-report",component:ae.UnsecuredWebsitesReportComponent,data:{titleId:"unsecuredWebsitesReport"}},{path:"weak-passwords-report",component:se.WeakPasswordsReportComponent,data:{titleId:"weakPasswordsReport"}},{path:"exposed-passwords-report",component:ee.ExposedPasswordsReportComponent,data:{titleId:"exposedPasswordsReport"}},{path:"inactive-two-factor-report",component:ne.InactiveTwoFactorReportComponent,data:{titleId:"inactive2faReport"}}]}]},{path:"organizations/:organizationId",component:o.OrganizationLayoutComponent,canActivate:[ue.AuthGuardService,ce.OrganizationGuardService],children:[{path:"",pathMatch:"full",redirectTo:"vault"},{path:"vault",component:U.VaultComponent,data:{titleId:"vault"}},{path:"tools",component:V.ToolsComponent,canActivate:[pe.OrganizationTypeGuardService],data:{permissions:[he.Permissions.AccessImportExport,he.Permissions.AccessReports]},children:[{path:"",pathMatch:"full",redirectTo:"import"},{path:"import",component:B.ImportComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"importData",permissions:[he.Permissions.AccessImportExport]}},{path:"export",component:T.ExportComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"exportVault",permissions:[he.Permissions.AccessImportExport]}},{path:"exposed-passwords-report",component:M.ExposedPasswordsReportComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"exposedPasswordsReport",permissions:[he.Permissions.AccessReports]}},{path:"inactive-two-factor-report",component:D.InactiveTwoFactorReportComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"inactive2faReport",permissions:[he.Permissions.AccessReports]}},{path:"reused-passwords-report",component:R.ReusedPasswordsReportComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"reusedPasswordsReport",permissions:[he.Permissions.AccessReports]}},{path:"unsecured-websites-report",component:j.UnsecuredWebsitesReportComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"unsecuredWebsitesReport",permissions:[he.Permissions.AccessReports]}},{path:"weak-passwords-report",component:F.WeakPasswordsReportComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"weakPasswordsReport",permissions:[he.Permissions.AccessReports]}}]},{path:"manage",component:C.ManageComponent,canActivate:[pe.OrganizationTypeGuardService],data:{permissions:[he.Permissions.ManageAssignedCollections,he.Permissions.ManageAllCollections,he.Permissions.AccessEventLogs,he.Permissions.ManageGroups,he.Permissions.ManageUsers,he.Permissions.ManagePolicies]},children:[{path:"",pathMatch:"full",redirectTo:"people"},{path:"collections",component:b.CollectionsComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"collections",permissions:[he.Permissions.ManageAssignedCollections,he.Permissions.ManageAllCollections]}},{path:"events",component:S.EventsComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"eventLogs",permissions:[he.Permissions.AccessEventLogs]}},{path:"groups",component:w.GroupsComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"groups",permissions:[he.Permissions.ManageGroups]}},{path:"people",component:I.PeopleComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"people",permissions:[he.Permissions.ManageUsers]}},{path:"policies",component:E.PoliciesComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"policies",permissions:[he.Permissions.ManagePolicies]}}]},{path:"settings",component:A.SettingsComponent,canActivate:[pe.OrganizationTypeGuardService],data:{permissions:[he.Permissions.ManageOrganization]},children:[{path:"",pathMatch:"full",redirectTo:"account"},{path:"account",component:P.AccountComponent,data:{titleId:"myOrganization"}},{path:"two-factor",component:O.TwoFactorSetupComponent,data:{titleId:"twoStepLogin"}},{path:"billing",component:k.OrganizationBillingComponent,data:{titleId:"billing"}},{path:"subscription",component:_.OrganizationSubscriptionComponent,data:{titleId:"subscription"}}]}]},{path:"**",redirectTo:""}],be=function(){function e(){}return e.ɵmod=ye.ɵɵdefineNgModule({type:e}),e.ɵinj=ye.ɵɵdefineInjector({factory:function(t){return new(t||e)},imports:[[r.RouterModule.forRoot(xe,{useHash:!0,paramsInheritanceStrategy:"always"})],r.RouterModule]}),e}();t.AppRoutingModule=be,("undefined"==typeof ngJitMode||ngJitMode)&&ye.ɵɵsetNgModuleScope(be,{imports:[ge.RouterModule],exports:[r.RouterModule]})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){this.subscribers=new Map}return e.prototype.send=function(e,t){null==t?this.subscribers.forEach((function(t){t(e)})):this.subscribers.has(t)&&this.subscribers.get(t)(e)},e.prototype.subscribe=function(e,t){this.subscribers.set(e,t)},e.prototype.unsubscribe=function(e){this.subscribers.has(e)&&this.subscribers.delete(e)},e}();t.BroadcasterService=r},,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getDomain=function(e){return null}},,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.EmergencyAccessAcceptRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.OrganizationUserAcceptRequest=r},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=5)return this.messagingService.send("logout"),[2];this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("invalidPin"))}return[3,33];case 16:return[4,this.cryptoService.makeKey(this.masterPassword,this.email,e,t)];case 17:return r=i.sent(),[4,this.cryptoService.hashPassword(this.masterPassword,r)];case 18:return l=i.sent(),c=!1,null==l?[3,25]:[4,this.cryptoService.getKeyHash()];case 19:return null==(p=i.sent())?[3,20]:(c=p===l,[3,25]);case 20:(u=new s.PasswordVerificationRequest).masterPasswordHash=l,i.label=21;case 21:return i.trys.push([21,24,,25]),this.formPromise=this.apiService.postAccountVerifyPassword(u),[4,this.formPromise];case 22:return i.sent(),c=!0,[4,this.cryptoService.setKeyHash(l)];case 23:return i.sent(),[3,25];case 24:return i.sent(),[3,25];case 25:return c?this.pinSet[0]?[4,this.storageService.get(o.ConstantsService.protectedPin)]:[3,31]:[3,32];case 26:return d=i.sent(),[4,this.cryptoService.getEncKey(r)];case 27:return m=i.sent(),[4,this.cryptoService.decryptToUtf8(new a.EncString(d),m)];case 28:return h=i.sent(),[4,this.cryptoService.makePinKey(h,this.email,e,t)];case 29:return f=i.sent(),v=this.vaultTimeoutService,[4,this.cryptoService.encrypt(r.key,f)];case 30:v.pinProtectedKey=i.sent(),i.label=31;case 31:return this.setKeyAndContinue(r),[3,33];case 32:this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("invalidMasterPassword")),i.label=33;case 33:return[2]}}))}))},e.prototype.logOut=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return[4,this.platformUtilsService.showDialog(this.i18nService.t("logOutConfirmation"),this.i18nService.t("logOut"),this.i18nService.t("logOut"),this.i18nService.t("cancel"))];case 1:return e.sent()&&this.messagingService.send("logout"),[2]}}))}))},e.prototype.unlockBiometric=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.biometricLock?[4,this.platformUtilsService.authenticateBiometric()]:[2];case 1:return e.sent()?[4,this.doContinue()]:[3,3];case 2:e.sent(),e.label=3;case 3:return[2]}}))}))},e.prototype.togglePassword=function(){this.showPassword=!this.showPassword,document.getElementById(this.pinLock?"pin":"masterPassword").focus()},e.prototype.setKeyAndContinue=function(e){return r(this,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return[4,this.cryptoService.setKey(e)];case 1:return t.sent(),this.doContinue(),[2]}}))}))},e.prototype.doContinue=function(){return r(this,void 0,void 0,(function(){var e;return i(this,(function(t){switch(t.label){case 0:return this.vaultTimeoutService.biometricLocked=!1,[4,this.storageService.get(o.ConstantsService.disableFaviconKey)];case 1:return e=t.sent(),[4,this.stateService.save(o.ConstantsService.disableFaviconKey,!!e)];case 2:return t.sent(),this.messagingService.send("unlocked"),null!=this.onSuccessfulSubmit?this.onSuccessfulSubmit():null!=this.router&&this.router.navigate([this.successRoute]),[2]}}))}))},e.ɵfac=function(t){return new(t||e)(c.ɵɵdirectiveInject(p.Router),c.ɵɵdirectiveInject(u.I18nService),c.ɵɵdirectiveInject(d.PlatformUtilsService),c.ɵɵdirectiveInject(m.MessagingService),c.ɵɵdirectiveInject(h.UserService),c.ɵɵdirectiveInject(f.CryptoService),c.ɵɵdirectiveInject(v.StorageService),c.ɵɵdirectiveInject(y.VaultTimeoutService),c.ɵɵdirectiveInject(g.EnvironmentService),c.ɵɵdirectiveInject(x.StateService),c.ɵɵdirectiveInject(b.ApiService))},e.ɵdir=c.ɵɵdefineDirective({type:e}),e}();t.LockComponent=S},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]-1&&(e=e.concat(this.email.substr(0,t).trim().toLowerCase().split(/[^A-Za-z0-9]/))),null!=this.name&&""!==this.name&&(e=e.concat(this.name.trim().toLowerCase().split(" "))),e},e}();t.RegisterComponent=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t,n,r,i,o,a,s){this.name=t,this.email=e,this.masterPasswordHash=n,this.masterPasswordHint=r||null,this.key=i,this.kdf=o,this.kdfIterations=a,this.referenceData=s};t.RegisterRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.ReferenceEventRequest=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]1?[4,this.sendEmail(!1)]:[3,5];case 4:n.sent(),n.label=5;case 5:case 6:return[3,7];case 7:return[2]}}))}))},e.prototype.submit=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:if(null==this.token||""===this.token)return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("verificationCodeRequired")),[2];if(this.selectedProviderType===o.TwoFactorProviderType.WebAuthn){if(null==this.webAuthn)return[2];this.webAuthn.stop()}else this.selectedProviderType!==o.TwoFactorProviderType.Email&&this.selectedProviderType!==o.TwoFactorProviderType.Authenticator||(this.token=this.token.replace(" ","").trim());e.label=1;case 1:return e.trys.push([1,3,,4]),[4,this.doSubmit()];case 2:return e.sent(),[3,4];case 3:return e.sent(),this.selectedProviderType===o.TwoFactorProviderType.WebAuthn&&null!=this.webAuthn&&this.webAuthn.start(),[3,4];case 4:return[2]}}))}))},e.prototype.doSubmit=function(){return r(this,void 0,void 0,(function(){var e,t;return i(this,(function(n){switch(n.label){case 0:return this.formPromise=this.authService.logInTwoFactor(this.selectedProviderType,this.token,this.remember),[4,this.formPromise];case 1:return e=n.sent(),[4,this.storageService.get(l.ConstantsService.disableFaviconKey)];case 2:return t=n.sent(),[4,this.stateService.save(l.ConstantsService.disableFaviconKey,!!t)];case 3:return n.sent(),null!=this.onSuccessfulLogin&&this.onSuccessfulLogin(),e.resetMasterPassword&&(this.successRoute="set-password"),null!=this.onSuccessfulLoginNavigate?this.onSuccessfulLoginNavigate():this.router.navigate([this.successRoute],{queryParams:{identifier:this.identifier}}),[2]}}))}))},e.prototype.sendEmail=function(e){return r(this,void 0,void 0,(function(){var t;return i(this,(function(n){switch(n.label){case 0:if(this.selectedProviderType!==o.TwoFactorProviderType.Email)return[2];if(null!=this.emailPromise)return[2];n.label=1;case 1:return n.trys.push([1,3,,4]),t=new a.TwoFactorEmailRequest(this.authService.email,this.authService.masterPasswordHash),this.emailPromise=this.apiService.postTwoFactorEmail(t),[4,this.emailPromise];case 2:return n.sent(),e&&this.platformUtilsService.showToast("success",null,this.i18nService.t("verificationCodeEmailSent",this.twoFactorEmail)),[3,4];case 3:return n.sent(),[3,4];case 4:return this.emailPromise=null,[2]}}))}))},e.prototype.cleanupWebAuthn=function(){null!=this.webAuthn&&(this.webAuthn.stop(),this.webAuthn.cleanup())},Object.defineProperty(e.prototype,"authing",{get:function(){return this.authService.authingWithPassword()||this.authService.authingWithSso()||this.authService.authingWithApiKey()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"needsLock",{get:function(){return this.authService.authingWithSso()||this.authService.authingWithApiKey()},enumerable:!0,configurable:!0}),e.ɵfac=function(t){return new(t||e)(u.ɵɵdirectiveInject(d.AuthService),u.ɵɵdirectiveInject(m.Router),u.ɵɵdirectiveInject(h.I18nService),u.ɵɵdirectiveInject(f.ApiService),u.ɵɵdirectiveInject(v.PlatformUtilsService),u.ɵɵdirectiveInject(Window),u.ɵɵdirectiveInject(y.EnvironmentService),u.ɵɵdirectiveInject(g.StateService),u.ɵɵdirectiveInject(x.StorageService),u.ɵɵdirectiveInject(m.ActivatedRoute))},e.ɵdir=u.ɵɵdefineDirective({type:e}),e}();t.TwoFactorComponent=b},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t){this.type=t.getDevice(),this.name=t.getDeviceString(),this.identifier=e,this.pushToken=null};t.DeviceRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){this.email=e};t.PreloginRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t,n,r,i,o,a){null!=e&&e.length>1?(this.email=e[0],this.masterPasswordHash=e[1]):null!=t&&t.length>2?(this.code=t[0],this.codeVerifier=t[1],this.redirectUri=t[2]):null!=n&&n.length>1&&(this.clientId=n[0],this.clientSecret=n[1]),this.token=i,this.provider=r,this.remember=o,this.device=null!=a?a:null}return e.prototype.toIdentityToken=function(e){var t={scope:"api offline_access",client_id:e};if(null!=this.clientSecret)t.scope="api",t.grant_type="client_credentials",t.client_secret=this.clientSecret;else if(null!=this.masterPasswordHash&&null!=this.email)t.grant_type="password",t.username=this.email,t.password=this.masterPasswordHash;else{if(null==this.code||null==this.codeVerifier||null==this.redirectUri)throw new Error("must provide credentials or codes");t.grant_type="authorization_code",t.code=this.code,t.code_verifier=this.codeVerifier,t.redirect_uri=this.redirectUri}return this.device&&(t.deviceType=this.device.type,t.deviceIdentifier=this.device.identifier,t.deviceName=this.device.name),this.token&&null!=this.provider&&(t.twoFactorToken=this.token,t.twoFactorProvider=this.provider,t.twoFactorRemember=this.remember?"1":"0"),t},e}();t.TokenRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t,n,r,i,o,a,s){this.win=e,this.webVaultUrl=t,this.webAuthnNewTab=n,this.platformUtilsService=r,this.i18nService=i,this.successCallback=o,this.errorCallback=a,this.infoCallback=s,this.iframe=null,this.parseFunction=this.parseMessage.bind(this),this.connectorLink=e.document.createElement("a")}return e.prototype.init=function(e){var t=new URLSearchParams({data:this.base64Encode(JSON.stringify(e)),parent:encodeURIComponent(this.win.document.location.href),btnText:encodeURIComponent(this.i18nService.t("webAuthnAuthenticate")),v:"1"});this.webAuthnNewTab?(t.append("locale",this.i18nService.translationLocale),this.platformUtilsService.launchUri(this.webVaultUrl+"/webauthn-fallback-connector.html?"+t)):(this.connectorLink.href=this.webVaultUrl+"/webauthn-connector.html?"+t,this.iframe=this.win.document.getElementById("webauthn_iframe"),this.iframe.allow="publickey-credentials-get "+new URL(this.webVaultUrl).origin,this.iframe.src=this.connectorLink.href,this.win.addEventListener("message",this.parseFunction,!1))},e.prototype.stop=function(){this.sendMessage("stop")},e.prototype.start=function(){this.sendMessage("start")},e.prototype.sendMessage=function(e){this.iframe&&this.iframe.src&&this.iframe.contentWindow&&this.iframe.contentWindow.postMessage(e,this.iframe.src)},e.prototype.base64Encode=function(e){return btoa(encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,(function(e,t){return String.fromCharCode("0x"+t)})))},e.prototype.cleanup=function(){this.win.removeEventListener("message",this.parseFunction,!1)},e.prototype.parseMessage=function(e){if(this.validMessage(e)){var t=e.data.split("|");"success"===t[0]&&this.successCallback?this.successCallback(t[1]):"error"===t[0]&&this.errorCallback?this.errorCallback(t[1]):"info"===t[0]&&this.infoCallback&&this.infoCallback(t[1])}},e.prototype.validMessage=function(e){return null!=e.origin&&""!==e.origin&&e.origin===this.connectorLink.origin&&null!=e.data&&"string"==typeof e.data&&(0===e.data.indexOf("success|")||0===e.data.indexOf("error|")||0===e.data.indexOf("info|"))},e}();t.WebAuthn=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t){this.userId=e,this.token=t};t.VerifyEmailRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t){this.userId=e,this.token=t};t.VerifyDeleteRecoverRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){this.collections=[]};t.GroupRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.OrganizationUserConfirmRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){this.emails=[],this.collections=[]};t.OrganizationUserInviteRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){this.collections=[]};t.OrganizationUserUpdateRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){this.groupIds=[]};t.OrganizationUserUpdateGroupsRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.AppIdService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.LogService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.PolicyRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.OrganizationUpdateRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Charge=0]="Charge",e[e.Credit=1]="Credit",e[e.PromotionalCredit=2]="PromotionalCredit",e[e.ReferralCredit=3]="ReferralCredit",e[e.Refund=4]="Refund"}(t.TransactionType||(t.TransactionType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.VerifyBankRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.BitPayInvoiceRequest=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(577).OrganizationTaxInfoUpdateRequest);t.PaymentRequest=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.OrganizationCreateRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.OrganizationUpgradeRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.SeatRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.StorageRequest=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(79).PasswordVerificationRequest);t.UpdateTwoFactorDuoRequest=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(79).PasswordVerificationRequest);t.TwoFactorProviderRequest=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(79).PasswordVerificationRequest);t.UpdateTwoFactorAuthenticatorRequest=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(79).PasswordVerificationRequest);t.UpdateTwoFactorEmailRequest=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(79).PasswordVerificationRequest);t.UpdateTwoFactorWebAuthnDeleteRequest=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(79).PasswordVerificationRequest);t.UpdateTwoFactorWebAuthnRequest=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(79).PasswordVerificationRequest);t.UpdateTwoFactorYubioOtpRequest=o},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]"+this.i18nService.t("encExportKeyWarningDesc")+"

"+this.i18nService.t("encExportAccountWarningDesc"),this.i18nService.t("confirmVaultExport"),this.i18nService.t("exportVault"),this.i18nService.t("cancel"),"warning",!0)]:[3,2];case 1:return[2,e.sent()];case 2:return[4,this.platformUtilsService.showDialog(this.i18nService.t("exportWarningDesc"),this.i18nService.t("confirmVaultExport"),this.i18nService.t("exportVault"),this.i18nService.t("cancel"),"warning")];case 3:return[2,e.sent()]}}))}))},e.prototype.togglePassword=function(){this.showPassword=!this.showPassword,document.getElementById("masterPassword").focus()},e.prototype.saved=function(){this.onSaved.emit()},e.prototype.getExportData=function(){return this.exportService.getExport(this.format)},e.prototype.getFileName=function(e){var t=this.format;return"encrypted_json"===this.format&&(e=null==e?"encrypted":"encrypted_"+e,t="json"),this.exportService.getFileName(e,t)},e.prototype.collectEvent=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return[4,this.eventService.collect(a.EventType.User_ClientExportedVault)];case 1:return e.sent(),[2]}}))}))},e.prototype.downloadFile=function(e){var t=this.getFileName();this.platformUtilsService.saveFile(this.win,e,{type:"text/plain"},t)},e.ɵfac=function(t){return new(t||e)(s.ɵɵdirectiveInject(l.CryptoService),s.ɵɵdirectiveInject(c.I18nService),s.ɵɵdirectiveInject(p.PlatformUtilsService),s.ɵɵdirectiveInject(u.ExportService),s.ɵɵdirectiveInject(d.EventService),s.ɵɵdirectiveInject(Window))},e.ɵdir=s.ɵɵdefineDirective({type:e,outputs:{onSaved:"onSaved"}}),e}();t.ExportComponent=m},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.AttachmentRequest=r},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&this.collections.length>0&&this.collections.forEach((function(e){o.collectionIds.indexOf(e.id)>-1&&(e.checked=!0)})),i.label=8;case 8:return r=this,[4,this.folderService.getAllDecrypted()];case 9:return r.folders=i.sent(),this.editMode&&this.previousCipherId!==this.cipherId&&this.eventService.collect(l.EventType.Cipher_ClientViewed,this.cipherId),this.previousCipherId=this.cipherId,[2]}}))}))},e.prototype.submit=function(){return r(this,void 0,void 0,(function(){var e;return i(this,(function(t){switch(t.label){case 0:return this.cipher.isDeleted?[2,this.restore()]:null==this.cipher.name||""===this.cipher.name?(this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("nameRequired")),[2,!1]):this.editMode&&!this.cloneMode||this.allowPersonal||null!=this.cipher.organizationId?(this.editMode&&!this.cloneMode||this.cipher.type!==s.CipherType.Login||null==this.cipher.login.uris||1!==this.cipher.login.uris.length||null!=this.cipher.login.uris[0].uri&&""!==this.cipher.login.uris[0].uri||(this.cipher.login.uris=null),this.editMode&&!this.cloneMode||null==this.cipher.organizationId||(this.cipher.collectionIds=null==this.collections?[]:this.collections.filter((function(e){return e.checked})).map((function(e){return e.id}))),this.cloneMode&&(this.cipher.id=null),[4,this.encryptCipher()]):(this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("personalOwnershipSubmitError")),[2,!1]);case 1:e=t.sent(),t.label=2;case 2:return t.trys.push([2,4,,5]),this.formPromise=this.saveCipher(e),[4,this.formPromise];case 3:return t.sent(),this.cipher.id=e.id,this.platformUtilsService.showToast("success",null,this.i18nService.t(this.editMode&&!this.cloneMode?"editedItem":"addedItem")),this.onSavedCipher.emit(this.cipher),this.messagingService.send(this.editMode&&!this.cloneMode?"editedCipher":"addedCipher"),[2,!0];case 4:return t.sent(),[3,5];case 5:return[2,!1]}}))}))},e.prototype.addUri=function(){this.cipher.type===s.CipherType.Login&&(null==this.cipher.login.uris&&(this.cipher.login.uris=[]),this.cipher.login.uris.push(new g.LoginUriView))},e.prototype.removeUri=function(e){if(this.cipher.type===s.CipherType.Login&&null!=this.cipher.login.uris){var t=this.cipher.login.uris.indexOf(e);t>-1&&this.cipher.login.uris.splice(t,1)}},e.prototype.addField=function(){null==this.cipher.fields&&(this.cipher.fields=[]);var e=new v.FieldView;e.type=this.addFieldType,e.newField=!0,this.cipher.fields.push(e)},e.prototype.removeField=function(e){var t=this.cipher.fields.indexOf(e);t>-1&&this.cipher.fields.splice(t,1)},e.prototype.trackByFunction=function(e,t){return e},e.prototype.cancel=function(){this.onCancelled.emit(this.cipher)},e.prototype.attachments=function(){this.onEditAttachments.emit(this.cipher)},e.prototype.share=function(){this.onShareCipher.emit(this.cipher)},e.prototype.editCollections=function(){this.onEditCollections.emit(this.cipher)},e.prototype.delete=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return[4,this.platformUtilsService.showDialog(this.i18nService.t(this.cipher.isDeleted?"permanentlyDeleteItemConfirmation":"deleteItemConfirmation"),this.i18nService.t("deleteItem"),this.i18nService.t("yes"),this.i18nService.t("no"),"warning")];case 1:if(!e.sent())return[2,!1];e.label=2;case 2:return e.trys.push([2,4,,5]),this.deletePromise=this.deleteCipher(),[4,this.deletePromise];case 3:return e.sent(),this.platformUtilsService.showToast("success",null,this.i18nService.t(this.cipher.isDeleted?"permanentlyDeletedItem":"deletedItem")),this.onDeletedCipher.emit(this.cipher),this.messagingService.send(this.cipher.isDeleted?"permanentlyDeletedCipher":"deletedCipher"),[3,5];case 4:return e.sent(),[3,5];case 5:return[2,!0]}}))}))},e.prototype.restore=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return this.cipher.isDeleted?[4,this.platformUtilsService.showDialog(this.i18nService.t("restoreItemConfirmation"),this.i18nService.t("restoreItem"),this.i18nService.t("yes"),this.i18nService.t("no"),"warning")]:[2,!1];case 1:if(!e.sent())return[2,!1];e.label=2;case 2:return e.trys.push([2,4,,5]),this.restorePromise=this.restoreCipher(),[4,this.restorePromise];case 3:return e.sent(),this.platformUtilsService.showToast("success",null,this.i18nService.t("restoredItem")),this.onRestoredCipher.emit(this.cipher),this.messagingService.send("restoredCipher"),[3,5];case 4:return e.sent(),[3,5];case 5:return[2,!0]}}))}))},e.prototype.generatePassword=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return null!=this.cipher.login&&null!=this.cipher.login.password&&this.cipher.login.password.length?[4,this.platformUtilsService.showDialog(this.i18nService.t("overwritePasswordConfirmation"),this.i18nService.t("overwritePassword"),this.i18nService.t("yes"),this.i18nService.t("no"))]:[3,2];case 1:if(!e.sent())return[2,!1];e.label=2;case 2:return this.onGeneratePassword.emit(),[2,!0]}}))}))},e.prototype.togglePassword=function(){this.showPassword=!this.showPassword,document.getElementById("loginPassword").focus(),this.editMode&&this.showPassword&&this.eventService.collect(l.EventType.Cipher_ClientToggledPasswordVisible,this.cipherId)},e.prototype.toggleCardCode=function(){this.showCardCode=!this.showCardCode,document.getElementById("cardCode").focus(),this.editMode&&this.showCardCode&&this.eventService.collect(l.EventType.Cipher_ClientToggledCardCodeVisible,this.cipherId)},e.prototype.toggleFieldValue=function(e){var t=e;t.showValue=!t.showValue,this.editMode&&t.showValue&&this.eventService.collect(l.EventType.Cipher_ClientToggledHiddenFieldVisible,this.cipherId)},e.prototype.toggleUriOptions=function(e){var t=e;t.showOptions=(null!=t.showOptions||null==e.match)&&!t.showOptions},e.prototype.loginUriMatchChanged=function(e){var t=e;t.showOptions=null==t.showOptions||t.showOptions},e.prototype.drop=function(e){o.moveItemInArray(this.cipher.fields,e.previousIndex,e.currentIndex)},e.prototype.organizationChanged=function(){return r(this,void 0,void 0,(function(){var e,t=this;return i(this,(function(n){switch(n.label){case 0:return null!=this.writeableCollections&&this.writeableCollections.forEach((function(e){return e.checked=!1})),null==this.cipher.organizationId?[3,2]:(this.collections=this.writeableCollections.filter((function(e){return e.organizationId===t.cipher.organizationId})),[4,this.userService.getOrganization(this.cipher.organizationId)]);case 1:return null!=(e=n.sent())&&(this.cipher.organizationUseTotp=e.useTotp),[3,3];case 2:this.collections=[],n.label=3;case 3:return[2]}}))}))},e.prototype.checkPassword=function(){return r(this,void 0,void 0,(function(){var e;return i(this,(function(t){switch(t.label){case 0:return null!=this.checkPasswordPromise||(null==this.cipher.login||null==this.cipher.login.password||""===this.cipher.login.password)?[2]:(this.checkPasswordPromise=this.auditService.passwordLeaked(this.cipher.login.password),[4,this.checkPasswordPromise]);case 1:return e=t.sent(),this.checkPasswordPromise=null,e>0?this.platformUtilsService.showToast("warning",null,this.i18nService.t("passwordExposed",e.toString())):this.platformUtilsService.showToast("success",null,this.i18nService.t("passwordSafe")),[2]}}))}))},e.prototype.loadCollections=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return[4,this.collectionService.getAllDecrypted()];case 1:return[2,e.sent().filter((function(e){return!e.readOnly}))]}}))}))},e.prototype.loadCipher=function(){return this.cipherService.get(this.cipherId)},e.prototype.encryptCipher=function(){return this.cipherService.encrypt(this.cipher)},e.prototype.saveCipher=function(e){return this.cipherService.saveWithServer(e)},e.prototype.deleteCipher=function(){return this.cipher.isDeleted?this.cipherService.deleteWithServer(this.cipher.id):this.cipherService.softDeleteWithServer(this.cipher.id)},e.prototype.restoreCipher=function(){return this.cipherService.restoreWithServer(this.cipher.id)},e.ɵfac=function(t){return new(t||e)(w.ɵɵdirectiveInject(C.CipherService),w.ɵɵdirectiveInject(I.FolderService),w.ɵɵdirectiveInject(E.I18nService),w.ɵɵdirectiveInject(P.PlatformUtilsService),w.ɵɵdirectiveInject(k.AuditService),w.ɵɵdirectiveInject(_.StateService),w.ɵɵdirectiveInject(A.UserService),w.ɵɵdirectiveInject(O.CollectionService),w.ɵɵdirectiveInject(T.MessagingService),w.ɵɵdirectiveInject(M.EventService),w.ɵɵdirectiveInject(B.PolicyService))},e.ɵdir=w.ɵɵdefineDirective({type:e,inputs:{cloneMode:"cloneMode",folderId:"folderId",cipherId:"cipherId",type:"type",collectionIds:"collectionIds",organizationId:"organizationId"},outputs:{onSavedCipher:"onSavedCipher",onDeletedCipher:"onDeletedCipher",onRestoredCipher:"onRestoredCipher",onCancelled:"onCancelled",onEditAttachments:"onEditAttachments",onShareCipher:"onShareCipher",onEditCollections:"onEditCollections",onGeneratePassword:"onGeneratePassword"}}),e}();t.AddEditComponent=D},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(498);t.AttachmentResponse=r.AttachmentResponse;var i=n(262);t.CipherResponse=i.CipherResponse;var o=n(499);t.CollectionResponse=o.CollectionResponse;var a=n(884);t.DeviceResponse=a.DeviceResponse;var s=n(500);t.DomainsResponse=s.DomainsResponse;var l=n(211);t.ErrorResponse=l.ErrorResponse;var c=n(501);t.FolderResponse=c.FolderResponse;var p=n(615);t.GlobalDomainResponse=p.GlobalDomainResponse;var u=n(616);t.IdentityTokenResponse=u.IdentityTokenResponse;var d=n(617);t.IdentityTwoFactorResponse=d.IdentityTwoFactorResponse;var m=n(885);t.KeysResponse=m.KeysResponse;var h=n(618);t.ListResponse=h.ListResponse;var f=n(619);t.ProfileOrganizationResponse=f.ProfileOrganizationResponse;var v=n(293);t.ProfileResponse=v.ProfileResponse;var y=n(620);t.SyncResponse=y.SyncResponse},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(t){var n=e.call(this,t)||this;return n.password=n.getResponseProperty("Password"),n.lastUsedDate=n.getResponseProperty("LastUsedDate"),n}return i(t,e),t}(n(23).BaseResponse);t.PasswordHistoryResponse=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(t){var n=e.call(this,t)||this;return n.id=n.getResponseProperty("Id"),n.name=n.getResponseProperty("Name"),n.identifier=n.getResponseProperty("Identifier"),n.type=n.getResponseProperty("Type"),n.creationDate=n.getResponseProperty("CreationDate"),n}return i(t,e),t}(n(23).BaseResponse);t.DeviceResponse=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(t){var n=e.call(this,t)||this;return n.privateKey=n.getResponseProperty("PrivateKey"),n.publicKey=n.getResponseProperty("PublicKey"),n}return i(t,e),t}(n(23).BaseResponse);t.KeysResponse=o},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]this.pageSize&&(t=this.pagedCiphersCount),this.ciphers.length>e&&(this.pagedCiphers=this.pagedCiphers.concat(this.ciphers.slice(e,e+t))),this.pagedCiphersCount=this.pagedCiphers.length,this.didScroll=this.pagedCiphers.length>this.pageSize}},e.prototype.reload=function(e,t){return void 0===e&&(e=null),void 0===t&&(t=!1),r(this,void 0,void 0,(function(){return i(this,(function(n){switch(n.label){case 0:return this.loaded=!1,this.ciphers=[],[4,this.load(e,t)];case 1:return n.sent(),[2]}}))}))},e.prototype.refresh=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return e.trys.push([0,,2,3]),this.refreshing=!0,[4,this.reload(this.filter,this.deleted)];case 1:return e.sent(),[3,3];case 2:return this.refreshing=!1,[7];case 3:return[2]}}))}))},e.prototype.applyFilter=function(e){return void 0===e&&(e=null),r(this,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return this.filter=e,[4,this.search(null)];case 1:return t.sent(),[2]}}))}))},e.prototype.search=function(e,t){return void 0===e&&(e=null),r(this,void 0,void 0,(function(){var n,o,a=this;return i(this,(function(s){switch(s.label){case 0:return this.searchPending=!1,null!=this.searchTimeout&&clearTimeout(this.searchTimeout),n=function(e){return e.isDeleted===a.deleted},null!=e?[3,3]:(o=this,[4,this.searchService.searchCiphers(this.searchText,[this.filter,n],t)]);case 1:return o.ciphers=s.sent(),[4,this.resetPaging()];case 2:return s.sent(),[2];case 3:return this.searchPending=!0,this.searchTimeout=setTimeout((function(){return r(a,void 0,void 0,(function(){var e;return i(this,(function(r){switch(r.label){case 0:return e=this,[4,this.searchService.searchCiphers(this.searchText,[this.filter,n],t)];case 1:return e.ciphers=r.sent(),[4,this.resetPaging()];case 2:return r.sent(),this.searchPending=!1,[2]}}))}))}),e),[2]}}))}))},e.prototype.selectCipher=function(e){this.onCipherClicked.emit(e)},e.prototype.rightClickCipher=function(e){this.onCipherRightClicked.emit(e)},e.prototype.addCipher=function(){this.onAddCipher.emit()},e.prototype.addCipherOptions=function(){this.onAddCipherOptions.emit()},e.prototype.isSearching=function(){return!this.searchPending&&this.searchService.isSearchable(this.searchText)},e.prototype.isPaging=function(){var e=this.isSearching();return e&&this.didScroll&&this.resetPaging(),!e&&this.ciphers.length>this.pageSize},e.prototype.resetPaging=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){return this.pagedCiphers=[],this.loadMore(),[2]}))}))},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(s.SearchService))},e.ɵdir=a.ɵɵdefineDirective({type:e,inputs:{activeCipherId:"activeCipherId"},outputs:{onCipherClicked:"onCipherClicked",onCipherRightClicked:"onCipherRightClicked",onAddCipher:"onAddCipher",onAddCipherOptions:"onAddCipherOptions"}}),e}();t.CiphersComponent=l},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]-1})),[2]}}))}))},e.prototype.submit=function(){return r(this,void 0,void 0,(function(){var e;return i(this,(function(t){switch(t.label){case 0:if(e=this.collections.filter((function(e){return!!e.checked})).map((function(e){return e.id})),!this.allowSelectNone&&0===e.length)return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("selectOneCollection")),[2];this.cipherDomain.collectionIds=e,t.label=1;case 1:return t.trys.push([1,3,,4]),this.formPromise=this.saveCollections(),[4,this.formPromise];case 2:return t.sent(),this.onSavedCollections.emit(),this.platformUtilsService.showToast("success",null,this.i18nService.t("editedItem")),[3,4];case 3:return t.sent(),[3,4];case 4:return[2]}}))}))},e.prototype.loadCipher=function(){return this.cipherService.get(this.cipherId)},e.prototype.loadCipherCollections=function(){return this.cipherDomain.collectionIds},e.prototype.loadCollections=function(){return r(this,void 0,void 0,(function(){var e=this;return i(this,(function(t){switch(t.label){case 0:return[4,this.collectionService.getAllDecrypted()];case 1:return[2,t.sent().filter((function(t){return!t.readOnly&&t.organizationId===e.cipher.organizationId}))]}}))}))},e.prototype.saveCollections=function(){return this.cipherService.saveCollectionsWithServer(this.cipherDomain)},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(s.CollectionService),a.ɵɵdirectiveInject(l.PlatformUtilsService),a.ɵɵdirectiveInject(c.I18nService),a.ɵɵdirectiveInject(p.CipherService))},e.ɵdir=a.ɵɵdefineDirective({type:e,inputs:{cipherId:"cipherId",allowSelectNone:"allowSelectNone"},outputs:{onSavedCollections:"onSavedCollections"}}),e}();t.CollectionsComponent=u},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0?null:this.formatDateFallbacks(this.expirationDateFallback)+"T"+this.expirationTimeFallback},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"deletionDateTimeFallback",{get:function(){return this.nullOrWhiteSpaceCount([this.deletionDateFallback,this.deletionTimeFallback])>0?null:this.formatDateFallbacks(this.deletionDateFallback)+"T"+this.deletionTimeFallback},enumerable:!0,configurable:!0}),e.prototype.load=function(){return r(this,void 0,void 0,(function(){var e,t,n,r,o,s,h,f,v,y;return i(this,(function(i){switch(i.label){case 0:return[4,this.policyService.getAll(c.PolicyType.DisableSend)];case 1:return e=i.sent(),[4,this.userService.getAllOrganizations()];case 2:return t=i.sent(),this.disableSend=t.some((function(t){return t.enabled&&t.status===l.OrganizationUserStatusType.Confirmed&&t.usePolicies&&!t.canManagePolicies&&e.some((function(e){return e.organizationId===t.id&&e.enabled}))})),[4,this.policyService.getAll(c.PolicyType.SendOptions)];case 3:return n=i.sent(),r=this,[4,t.some((function(e){return e.enabled&&e.status===l.OrganizationUserStatusType.Confirmed&&e.usePolicies&&!e.canManagePolicies&&n.some((function(t){return t.organizationId===e.id&&t.enabled&&t.data.disableHideEmail}))}))];case 4:return r.disableHideEmail=i.sent(),o=this,[4,this.userService.canAccessPremium()];case 5:return o.canAccessPremium=i.sent(),s=this,[4,this.userService.getEmailVerified()];case 6:return s.emailVerified=i.sent(),this.canAccessPremium&&this.emailVerified||(this.type=p.SendType.Text),null!=this.send?[3,10]:this.editMode?[4,this.loadSend()]:[3,9];case 7:return h=i.sent(),f=this,[4,h.decrypt()];case 8:return f.send=i.sent(),[3,10];case 9:this.send=new m.SendView,this.send.type=null==this.type?p.SendType.File:this.type,this.send.file=new u.SendFileView,this.send.text=new d.SendTextView,this.send.deletionDate=new Date,this.send.deletionDate.setDate(this.send.deletionDate.getDate()+7),i.label=10;case 10:return this.hasPassword=null!=this.send.password&&""!==this.send.password.trim(),this.isDateTimeLocalSupported?(this.deletionDate=this.dateToString(this.send.deletionDate),this.expirationDate=this.dateToString(this.send.expirationDate)):(void 0!==(v=this.dateToSplitString(this.send.deletionDate))&&v.length>0&&(this.deletionDateFallback=v[0],this.deletionTimeFallback=v[1],this.isSafari&&(this.safariDeletionTime=this.deletionTimeFallback)),void 0!==(y=this.dateToSplitString(this.send.expirationDate))&&y.length>0&&(this.expirationDateFallback=y[0],this.expirationTimeFallback=y[1],this.isSafari&&(this.safariExpirationTime=this.expirationTimeFallback))),this.isSafari&&(this.safariDeletionTimeOptions=this.safariTimeOptions(a.DeletionDate),this.safariExpirationTimeOptions=this.safariTimeOptions(a.ExpriationDate)),[2]}}))}))},e.prototype.submit=function(){var e,t;return r(this,void 0,void 0,(function(){var n,r,o,a,s,l;return i(this,(function(i){switch(i.label){case 0:if(!this.isDateTimeLocalSupported){if(this.isSafari&&(this.expirationTimeFallback=null!==(e=this.safariExpirationTime)&&void 0!==e?e:this.expirationTimeFallback,this.deletionTimeFallback=null!==(t=this.safariDeletionTime)&&void 0!==t?t:this.deletionTimeFallback),this.deletionDate=this.deletionDateTimeFallback,null!=this.expirationDateTimeFallback&&isNaN(Date.parse(this.expirationDateTimeFallback)))return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("expirationDateIsInvalid")),[2];if(isNaN(Date.parse(this.deletionDateTimeFallback)))return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("deletionDateIsInvalid")),[2];if(1===this.nullOrWhiteSpaceCount([this.expirationDateFallback,this.expirationTimeFallback]))return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("expirationDateAndTimeRequired")),[2];(this.editMode||0===this.expirationDateSelect)&&(this.expirationDate=this.expirationDateTimeFallback)}if(this.disableSend)return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("sendDisabledWarning")),[2,!1];if(null==this.send.name||""===this.send.name)return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("nameRequired")),[2,!1];if(n=null,this.send.type===p.SendType.File&&!this.editMode){if(r=document.getElementById("file"),null==(o=r.files)||0===o.length)return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("selectFile")),[2];if(n=o[0],o[0].size>524288e3)return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("maxFileSize")),[2]}return this.editMode||(a=new Date,this.deletionDateSelect>0&&((s=new Date).setHours(a.getHours()+this.deletionDateSelect),this.deletionDate=this.dateToString(s)),null!=this.expirationDateSelect&&this.expirationDateSelect>0&&((s=new Date).setHours(a.getHours()+this.expirationDateSelect),this.expirationDate=this.dateToString(s))),null!=this.password&&""===this.password.trim()&&(this.password=null),[4,this.encryptSend(n)];case 1:l=i.sent(),i.label=2;case 2:return i.trys.push([2,4,,5]),this.formPromise=this.sendService.saveWithServer(l),[4,this.formPromise];case 3:return i.sent(),null==this.send.id&&(this.send.id=l[0].id),null==this.send.accessId&&(this.send.accessId=l[0].accessId),this.platformUtilsService.showToast("success",null,this.i18nService.t(this.editMode?"editedSend":"createdSend")),this.onSavedSend.emit(this.send),this.copyLink&&this.copyLinkToClipboard(this.link),[2,!0];case 4:return i.sent(),[3,5];case 5:return[2,!1]}}))}))},e.prototype.clearExpiration=function(){this.expirationDate=null,this.expirationDateFallback=null,this.expirationTimeFallback=null,this.safariExpirationTime=null},e.prototype.copyLinkToClipboard=function(e){null!=e&&this.platformUtilsService.copyToClipboard(e)},e.prototype.delete=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return null!=this.deletePromise?[2,!1]:[4,this.platformUtilsService.showDialog(this.i18nService.t("deleteSendConfirmation"),this.i18nService.t("deleteSend"),this.i18nService.t("yes"),this.i18nService.t("no"),"warning")];case 1:if(!e.sent())return[2,!1];e.label=2;case 2:return e.trys.push([2,5,,6]),this.deletePromise=this.sendService.deleteWithServer(this.send.id),[4,this.deletePromise];case 3:return e.sent(),this.platformUtilsService.showToast("success",null,this.i18nService.t("deletedSend")),[4,this.load()];case 4:return e.sent(),this.onDeletedSend.emit(this.send),[2,!0];case 5:return e.sent(),[3,6];case 6:return[2,!1]}}))}))},e.prototype.typeChanged=function(){this.send.type!==p.SendType.File||this.alertShown||(this.canAccessPremium?this.emailVerified||(this.alertShown=!0,this.messagingService.send("emailVerificationRequired")):(this.alertShown=!0,this.messagingService.send("premiumRequired")))},e.prototype.toggleOptions=function(){this.showOptions=!this.showOptions},e.prototype.expirationDateFallbackChanged=function(){var e,t;this.isSafari?this.safariExpirationTime=null!==(e=this.safariExpirationTime)&&void 0!==e?e:"00:00":this.expirationTimeFallback=null!==(t=this.expirationTimeFallback)&&void 0!==t?t:this.datePipe.transform(new Date,"HH:mm")},e.prototype.loadSend=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){return[2,this.sendService.get(this.sendId)]}))}))},e.prototype.encryptSend=function(e){return r(this,void 0,void 0,(function(){var t;return i(this,(function(n){switch(n.label){case 0:return[4,this.sendService.encrypt(this.send,e,this.password,null)];case 1:t=n.sent();try{t[0].deletionDate=null==this.deletionDate?null:new Date(this.deletionDate)}catch(r){t[0].deletionDate=null}try{t[0].expirationDate=null==this.expirationDate?null:new Date(this.expirationDate)}catch(i){t[0].expirationDate=null}return[2,t]}}))}))},e.prototype.dateToString=function(e){return null==e?null:this.datePipe.transform(e,"yyyy-MM-ddTHH:mm")},e.prototype.formatDateFallbacks=function(e){try{return this.isSafari||(e+=" 00:00"),this.datePipe.transform(new Date(e),"yyyy-MM-dd")}catch(t){this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("dateParsingError"))}},e.prototype.dateToSplitString=function(e){if(null!=e)return[this.isSafari?this.datePipe.transform(e,"MM/dd/yyyy"):this.datePipe.transform(e,"yyyy-MM-dd"),this.datePipe.transform(e,"HH:mm")]},e.prototype.togglePasswordVisible=function(){this.showPassword=!this.showPassword,document.getElementById("password").focus()},e.prototype.nullOrWhiteSpaceCount=function(e){return e.filter((function(e){return null==e||""===e.trim()})).length},e.prototype.safariTimeOptions=function(e){for(var t=[],n=[],r=[],i=[],s=1;s<=12;s++)for(var l=0;l<60;l+=15){var c=s.toString(),p=l.toString();if(s<10&&(c="0"+c),l<10&&(p="0"+p),12===s){var u={standard:c+":"+p+" AM",military:"00:"+p};n.push(u);var d={standard:c+":"+p+" PM",military:c+":"+p};t.push(d)}else{var m={standard:c+":"+p+" AM",military:c+":"+p};r.push(m);var h={standard:c+":"+p+" PM",military:s+12+":"+p};i.push(h)}}var f=o(n,r,t,i);if(e===a.ExpriationDate&&null!=this.expirationDateTimeFallback&&this.editMode){var v={standard:this.datePipe.transform(this.expirationDateTimeFallback,"hh:mm a"),military:this.datePipe.transform(this.expirationDateTimeFallback,"HH:mm")};return o([v,{standard:null,military:null}],f)}if(e===a.DeletionDate&&null!=this.deletionDateTimeFallback&&this.editMode){v={standard:this.datePipe.transform(this.deletionDateTimeFallback,"hh:mm a"),military:this.datePipe.transform(this.deletionDateTimeFallback,"HH:mm")};return o([v],f)}return o([{standard:null,military:null}],f)},e.ɵfac=function(t){return new(t||e)(h.ɵɵdirectiveInject(f.I18nService),h.ɵɵdirectiveInject(v.PlatformUtilsService),h.ɵɵdirectiveInject(y.EnvironmentService),h.ɵɵdirectiveInject(g.DatePipe),h.ɵɵdirectiveInject(x.SendService),h.ɵɵdirectiveInject(b.UserService),h.ɵɵdirectiveInject(S.MessagingService),h.ɵɵdirectiveInject(w.PolicyService))},e.ɵdir=h.ɵɵdefineDirective({type:e,inputs:{sendId:"sendId",type:"type"},outputs:{onSavedSend:"onSavedSend",onDeletedSend:"onDeletedSend",onCancelled:"onCancelled"}}),e}();t.AddEditComponent=C},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t){this.culture="en-US",this.name=e,this.masterPasswordHint=t||null};t.UpdateProfileRequest=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(638).EmailTokenRequest);t.EmailRequest=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(644).PasswordRequest);t.KdfRequest=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.UpdateDomainsRequest=r},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&(this.organizationId=this.organizations[0].id),this.filterCollections(),[2]}}))}))},e.prototype.filterCollections=function(){var e=this;this.writeableCollections.forEach((function(e){return e.checked=!1})),null==this.organizationId||0===this.writeableCollections.length?this.collections=[]:this.collections=this.writeableCollections.filter((function(t){return t.organizationId===e.organizationId}))},e.prototype.submit=function(){return r(this,void 0,void 0,(function(){var e,t,n=this;return i(this,(function(o){switch(o.label){case 0:return 0===(e=this.collections.filter((function(e){return!!e.checked})).map((function(e){return e.id}))).length?(this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("selectOneCollection")),[2]):[4,this.cipherService.get(this.cipherId)];case 1:return[4,o.sent().decrypt()];case 2:t=o.sent(),o.label=3;case 3:return o.trys.push([3,5,,6]),this.formPromise=this.cipherService.shareWithServer(t,this.organizationId,e).then((function(){return r(n,void 0,void 0,(function(){return i(this,(function(e){return this.onSharedCipher.emit(),this.platformUtilsService.showToast("success",null,this.i18nService.t("sharedItem")),[2]}))}))})),[4,this.formPromise];case 4:return o.sent(),[2,!0];case 5:return o.sent(),[3,6];case 6:return[2,!1]}}))}))},Object.defineProperty(e.prototype,"canSave",{get:function(){if(null!=this.collections)for(var e=0;e0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=e?p[e-1]():0===p.length&&(l.delete(c),0===l.size&&a.delete(n))};o.apply(n,r).then((function(e){return u(),e})).catch((function(e){throw u(),e})).then(t,i)};p.push(s),p.length<=e&&s()}))}}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t){this.ids=null==e?[]:e,this.folderId=t};t.CipherBulkMoveRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){this.ids=null==e?[]:e};t.CipherBulkRestoreRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(511),i=function(e,t){var n=this;null!=e&&(this.ciphers=[],e.forEach((function(e){n.ciphers.push(new r.CipherWithIdRequest(e))}))),this.collectionIds=t};t.CipherBulkShareRequest=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(210),i=function(e){this.cipher=new r.CipherRequest(e),this.collectionIds=e.collectionIds};t.CipherShareRequest=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.comparator=e,this.sortedCiphersByUrl=new Map,this.timeouts=new Map}return e.prototype.isCached=function(e){return this.sortedCiphersByUrl.has(e)},e.prototype.addCiphers=function(e,t){t.sort(this.comparator),this.sortedCiphersByUrl.set(e,new i(t)),this.resetTimer(e)},e.prototype.getLastUsed=function(e){return this.resetTimer(e),this.isCached(e)?this.sortedCiphersByUrl.get(e).getLastUsed():null},e.prototype.getLastLaunched=function(e){return this.isCached(e)?this.sortedCiphersByUrl.get(e).getLastLaunched():null},e.prototype.getNext=function(e){return this.resetTimer(e),this.isCached(e)?this.sortedCiphersByUrl.get(e).getNext():null},e.prototype.updateLastUsedIndex=function(e){this.isCached(e)&&this.sortedCiphersByUrl.get(e).updateLastUsedIndex()},e.prototype.clear=function(){this.sortedCiphersByUrl.clear(),this.timeouts.clear()},e.prototype.resetTimer=function(e){var t=this;clearTimeout(this.timeouts.get(e)),this.timeouts.set(e,setTimeout((function(){t.sortedCiphersByUrl.delete(e),t.timeouts.delete(e)}),3e3))},e}();t.SortedCiphersCache=r;var i=function(){function e(e){this.ciphers=e,this.lastUsedIndex=-1}return e.prototype.getLastUsed=function(){return this.lastUsedIndex=Math.max(this.lastUsedIndex,0),this.ciphers[this.lastUsedIndex]},e.prototype.getLastLaunched=function(){return this.ciphers.filter((function(e){var t;return null===(t=e.localData)||void 0===t?void 0:t.lastLaunched})).sort((function(e,t){return t.localData.lastLaunched.valueOf()-e.localData.lastLaunched.valueOf()}))[0]},e.prototype.getNextIndex=function(){return(this.lastUsedIndex+1)%this.ciphers.length},e.prototype.getNext=function(){return this.ciphers[this.getNextIndex()]},e.prototype.updateLastUsedIndex=function(){this.lastUsedIndex=this.getNextIndex()},e}()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t,n){this.children=[],this.parent=n,this.node=e,this.node.name=t};t.TreeNode=r},,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){this.buffer=e};t.EncArrayBuffer=r},,,,,,function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.defaultType="",t.minLength=0,t.useUppercase=!1,t.useLowercase=!1,t.useNumbers=!1,t.numberCount=0,t.useSpecial=!1,t.specialCount=0,t.minNumberWords=0,t.capitalize=!1,t.includeNumber=!1,t}return i(t,e),t.prototype.inEffect=function(){return""!==this.defaultType||this.minLength>0||this.numberCount>0||this.specialCount>0||this.useUppercase||this.useLowercase||this.useNumbers||this.useSpecial||this.minNumberWords>0||this.capitalize||this.includeNumber},t}(n(81).default);t.PasswordGeneratorPolicyOptions=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){this.id=e.id,this.name=e.name,this.status=e.status,this.type=e.type,this.enabled=e.enabled,this.usePolicies=e.usePolicies,this.useGroups=e.useGroups,this.useDirectory=e.useDirectory,this.useEvents=e.useEvents,this.useTotp=e.useTotp,this.use2fa=e.use2fa,this.useApi=e.useApi,this.useBusinessPortal=e.useBusinessPortal,this.useSso=e.useSso,this.selfHost=e.selfHost,this.usersGetPremium=e.usersGetPremium,this.seats=e.seats,this.maxCollections=e.maxCollections,this.maxStorageGb=e.maxStorageGb,this.ssoBound=e.ssoBound,this.identifier=e.identifier,this.permissions=e.permissions,this.resetPasswordKey=e.resetPasswordKey,this.userId=e.userId};t.OrganizationData=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){null!=e&&(this.id=e.id,this.fileName=e.fileName,this.key=e.key,this.size=e.size,this.sizeName=e.sizeName)};t.SendFileData=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){null!=e&&(this.text=e.text,this.hidden=e.hidden)};t.SendTextData=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=0?this.browserCache=a.DeviceType.OperaBrowser:-1!==navigator.userAgent.indexOf(" Edg/")?this.browserCache=a.DeviceType.EdgeBrowser:-1!==navigator.userAgent.indexOf(" Vivaldi/")?this.browserCache=a.DeviceType.VivaldiBrowser:-1!==navigator.userAgent.indexOf(" Safari/")&&-1===navigator.userAgent.indexOf("Chrome")?this.browserCache=a.DeviceType.SafariBrowser:window.chrome&&-1!==navigator.userAgent.indexOf(" Chrome/")?this.browserCache=a.DeviceType.ChromeBrowser:-1!==navigator.userAgent.indexOf(" Trident/")?this.browserCache=a.DeviceType.IEBrowser:this.browserCache=a.DeviceType.UnknownBrowser),this.browserCache},e.prototype.getDeviceString=function(){return a.DeviceType[this.getDevice()].toLowerCase().replace("browser","")},e.prototype.isFirefox=function(){return this.getDevice()===a.DeviceType.FirefoxBrowser},e.prototype.isChrome=function(){return this.getDevice()===a.DeviceType.ChromeBrowser},e.prototype.isEdge=function(){return this.getDevice()===a.DeviceType.EdgeBrowser},e.prototype.isOpera=function(){return this.getDevice()===a.DeviceType.OperaBrowser},e.prototype.isVivaldi=function(){return this.getDevice()===a.DeviceType.VivaldiBrowser},e.prototype.isSafari=function(){return this.getDevice()===a.DeviceType.SafariBrowser},e.prototype.isIE=function(){return this.getDevice()===a.DeviceType.IEBrowser},e.prototype.isMacAppStore=function(){return!1},e.prototype.isViewOpen=function(){return Promise.resolve(!1)},e.prototype.lockTimeout=function(){return null},e.prototype.launchUri=function(e,t){var n=document.createElement("a");n.href=e,null!=t&&t.sameWindow||(n.target="_blank",n.rel="noreferrer noopener"),n.classList.add("d-none"),document.body.appendChild(n),n.click(),document.body.removeChild(n)},e.prototype.saveFile=function(e,t,n,r){var i=null,o=null,a=r.toLowerCase(),s=!0;if(a.endsWith(".pdf")?(o="application/pdf",s=!1):a.endsWith(".xlsx")?o="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":a.endsWith(".docx")?o="application/vnd.openxmlformats-officedocument.wordprocessingml.document":a.endsWith(".pptx")?o="application/vnd.openxmlformats-officedocument.presentationml.presentation":a.endsWith(".csv")?o="text/csv":a.endsWith(".png")?o="image/png":a.endsWith(".jpg")||a.endsWith(".jpeg")?o="image/jpeg":a.endsWith(".gif")&&(o="image/gif"),null!=o&&null==(n=n||{}).type&&(n.type=o),i=null==n||this.isIE()?new Blob([t]):new Blob([t],n),navigator.msSaveOrOpenBlob)navigator.msSaveBlob(i,r);else{var l=e.document.createElement("a");s?l.download=r:this.isSafari()||(l.target="_blank"),l.href=URL.createObjectURL(i),l.style.position="fixed",e.document.body.appendChild(l),l.click(),e.document.body.removeChild(l)}},e.prototype.getApplicationVersion=function(){return Promise.resolve("2.20.0")},e.prototype.supportsWebAuthn=function(e){return"undefined"!=typeof PublicKeyCredential},e.prototype.supportsDuo=function(){return!0},e.prototype.showToast=function(e,t,n,r){this.messagingService.send("showToast",{text:n,title:t,type:e,options:r})},e.prototype.showDialog=function(e,t,n,a,s,l){return void 0===l&&(l=!1),r(this,void 0,void 0,(function(){var r,c;return i(this,(function(i){switch(i.label){case 0:if(r=null,null!=s)switch(s){case"success":r="fa-check text-success";break;case"warning":r="fa-warning text-warning";break;case"error":r="fa-bolt text-danger";break;case"info":r="fa-info-circle text-info"}return c=null!=r?'':void 0,[4,o.default.fire({heightAuto:!1,buttonsStyling:!1,icon:s,iconHtml:c,text:l?null:e,html:l?e:null,title:t,showCancelButton:null!=a,cancelButtonText:a,showConfirmButton:!0,confirmButtonText:null==n?this.i18nService.t("ok"):n})];case 1:return[2,i.sent().value]}}))}))},e.prototype.isDev=function(){return!1},e.prototype.isSelfHost=function(){return"true"===(!1).toString()},e.prototype.copyToClipboard=function(e,t){var n=window,r=window.document;if(t&&(t.window||t.win)?r=(n=t.window||t.win).document:t&&t.doc&&(r=t.doc),n.clipboardData&&n.clipboardData.setData)n.clipboardData.setData("Text",e);else if(r.queryCommandSupported&&r.queryCommandSupported("copy")){var i=r.createElement("textarea");i.textContent=e,i.style.position="fixed";var o=r.body;r.body.classList.contains("modal-open")&&(o=r.body.querySelector(".modal")),o.appendChild(i),i.select();try{r.execCommand("copy")}catch(a){console.warn("Copy to clipboard failed.",a)}finally{o.removeChild(i)}}},e.prototype.readFromClipboard=function(e){throw new Error("Cannot read from clipboard on web.")},e.prototype.supportsBiometric=function(){return Promise.resolve(!1)},e.prototype.authenticateBiometric=function(){return Promise.resolve(!1)},e.prototype.supportsSecureStorage=function(){return!1},e.prototype.getDefaultSystemTheme=function(){return Promise.resolve(null)},e.prototype.onDefaultSystemThemeChange=function(){},e}();t.WebPlatformUtilsService=s},,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&e.data.forEach((function(e){var r=new l.Collection(new p.CollectionData(e));t.push(r.decrypt().then((function(e){n.push(e)})))})),Promise.all(t)}))),m.push(this.apiService.getCiphersOrganization(e).then((function(e){var t=[];return null!=e&&null!=e.data&&e.data.length>0&&e.data.filter((function(e){return null===e.deletedDate})).forEach((function(e){var n=new s.Cipher(new c.CipherData(e));t.push(n.decrypt().then((function(e){r.push(e)})))})),Promise.all(t)}))),[4,Promise.all(m)];case 1:return i.sent(),"csv"===t?(h=new Map,n.forEach((function(e){h.set(e.id,e)})),f=[],r.forEach((function(e){if(e.type===a.CipherType.Login||e.type===a.CipherType.SecureNote){var t={collections:[]};null!=e.collectionIds&&(t.collections=e.collectionIds.filter((function(e){return h.has(e)})).map((function(e){return h.get(e).name}))),y.buildCommonCipher(t,e),f.push(t)}})),[2,o.unparse(f)]):(v={encrypted:!1,collections:[],items:[]},n.forEach((function(e){var t=new d.CollectionWithId;t.build(e),v.collections.push(t)})),r.forEach((function(e){var t=new u.CipherWithIds;t.build(e),v.items.push(t)})),[2,JSON.stringify(v,null," ")])}}))}))},e.prototype.getOrganizationEncryptedExport=function(e){return r(this,void 0,void 0,(function(){var t,n,r,o;return i(this,(function(i){switch(i.label){case 0:return t=[],n=[],(r=[]).push(this.apiService.getCollections(e).then((function(e){return null!=e&&null!=e.data&&e.data.length>0&&e.data.forEach((function(e){var n=new l.Collection(new p.CollectionData(e));t.push(n)})),Promise.all([])}))),r.push(this.apiService.getCiphersOrganization(e).then((function(e){return null!=e&&null!=e.data&&e.data.length>0&&e.data.filter((function(e){return null===e.deletedDate})).forEach((function(e){var t=new s.Cipher(new c.CipherData(e));n.push(t)})),Promise.all([])}))),[4,Promise.all(r)];case 1:return i.sent(),o={encrypted:!0,collections:[],items:[]},t.forEach((function(e){var t=new d.CollectionWithId;t.build(e),o.collections.push(t)})),n.forEach((function(e){var t=new u.CipherWithIds;t.build(e),o.items.push(t)})),[2,JSON.stringify(o,null," ")]}}))}))},e.prototype.padNumber=function(e,t,n){void 0===n&&(n="0");var r=e.toString();return r.length>=t?r:new Array(t-r.length+1).join(n)+r},e.prototype.buildCommonCipher=function(e,t){switch(e.type=null,e.name=t.name,e.notes=t.notes,e.fields=null,e.login_uri=null,e.login_username=null,e.login_password=null,e.login_totp=null,t.fields&&t.fields.forEach((function(t){e.fields?e.fields+="\n":e.fields="",e.fields+=(t.name||"")+": "+t.value})),t.type){case a.CipherType.Login:e.type="login",e.login_username=t.login.username,e.login_password=t.login.password,e.login_totp=t.login.totp,t.login.uris&&(e.login_uri=[],t.login.uris.forEach((function(t){e.login_uri.push(t.uri)})));break;case a.CipherType.SecureNote:e.type="note";break;default:return}return e},e}();t.ExportService=h},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(39),i=n(143),o=n(190),a=n(105),s=n(961),l=n(962),c=n(963),p=n(964),u=n(966),d=function(){function e(){}return e.template=function(){var t=new e;return t.organizationId=null,t.collectionIds=null,t.folderId=null,t.type=r.CipherType.Login,t.name="Item name",t.notes="Some notes about this item.",t.favorite=!1,t.fields=[],t.login=null,t.secureNote=null,t.card=null,t.identity=null,t},e.toView=function(e,t){var n,o;if(void 0===t&&(t=new i.CipherView),t.type=e.type,t.folderId=e.folderId,null==t.organizationId&&(t.organizationId=e.organizationId),t.collectionIds||e.collectionIds){var a=new Set((null!==(n=t.collectionIds)&&void 0!==n?n:[]).concat(null!==(o=e.collectionIds)&&void 0!==o?o:[]));t.collectionIds=Array.from(a.values())}switch(t.name=e.name,t.notes=e.notes,t.favorite=e.favorite,null!=e.fields&&(t.fields=e.fields.map((function(e){return l.Field.toView(e)}))),e.type){case r.CipherType.Login:t.login=p.Login.toView(e.login);break;case r.CipherType.SecureNote:t.secureNote=u.SecureNote.toView(e.secureNote);break;case r.CipherType.Card:t.card=s.Card.toView(e.card);break;case r.CipherType.Identity:t.identity=c.Identity.toView(e.identity)}return t},e.toDomain=function(e,t){switch(void 0===t&&(t=new o.Cipher),t.type=e.type,t.folderId=e.folderId,null==t.organizationId&&(t.organizationId=e.organizationId),t.name=null!=e.name?new a.EncString(e.name):null,t.notes=null!=e.notes?new a.EncString(e.notes):null,t.favorite=e.favorite,null!=e.fields&&(t.fields=e.fields.map((function(e){return l.Field.toDomain(e)}))),e.type){case r.CipherType.Login:t.login=p.Login.toDomain(e.login);break;case r.CipherType.SecureNote:t.secureNote=u.SecureNote.toDomain(e.secureNote);break;case r.CipherType.Card:t.card=s.Card.toDomain(e.card);break;case r.CipherType.Identity:t.identity=c.Identity.toDomain(e.identity)}return t},e.prototype.build=function(e){var t,n;switch(this.organizationId=e.organizationId,this.folderId=e.folderId,this.type=e.type,e instanceof i.CipherView?(this.name=e.name,this.notes=e.notes):(this.name=null===(t=e.name)||void 0===t?void 0:t.encryptedString,this.notes=null===(n=e.notes)||void 0===n?void 0:n.encryptedString),this.favorite=e.favorite,null!=e.fields&&(i.CipherView,this.fields=e.fields.map((function(e){return new l.Field(e)}))),e.type){case r.CipherType.Login:this.login=new p.Login(e.login);break;case r.CipherType.SecureNote:this.secureNote=new u.SecureNote(e.secureNote);break;case r.CipherType.Card:this.card=new s.Card(e.card);break;case r.CipherType.Identity:this.identity=new c.Identity(e.identity)}},e}();t.Cipher=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(88),i=n(285),o=n(105),a=function(){function e(e){var t,n,i,o,a,s;null!=e&&(e instanceof r.CardView?(this.cardholderName=e.cardholderName,this.brand=e.brand,this.number=e.number,this.expMonth=e.expMonth,this.expYear=e.expYear,this.code=e.code):(this.cardholderName=null===(t=e.cardholderName)||void 0===t?void 0:t.encryptedString,this.brand=null===(n=e.brand)||void 0===n?void 0:n.encryptedString,this.number=null===(i=e.number)||void 0===i?void 0:i.encryptedString,this.expMonth=null===(o=e.expMonth)||void 0===o?void 0:o.encryptedString,this.expYear=null===(a=e.expYear)||void 0===a?void 0:a.encryptedString,this.code=null===(s=e.code)||void 0===s?void 0:s.encryptedString))}return e.template=function(){var t=new e;return t.cardholderName="John Doe",t.brand="visa",t.number="4242424242424242",t.expMonth="04",t.expYear="2023",t.code="123",t},e.toView=function(e,t){return void 0===t&&(t=new r.CardView),t.cardholderName=e.cardholderName,t.brand=e.brand,t.number=e.number,t.expMonth=e.expMonth,t.expYear=e.expYear,t.code=e.code,t},e.toDomain=function(e,t){return void 0===t&&(t=new i.Card),t.cardholderName=null!=e.cardholderName?new o.EncString(e.cardholderName):null,t.brand=null!=e.brand?new o.EncString(e.brand):null,t.number=null!=e.number?new o.EncString(e.number):null,t.expMonth=null!=e.expMonth?new o.EncString(e.expMonth):null,t.expYear=null!=e.expYear?new o.EncString(e.expYear):null,t.code=null!=e.code?new o.EncString(e.code):null,t},e}();t.Card=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(118),i=n(209),o=n(105),a=n(286),s=function(){function e(e){var t,n;null!=e&&(e instanceof i.FieldView?(this.name=e.name,this.value=e.value):(this.name=null===(t=e.name)||void 0===t?void 0:t.encryptedString,this.value=null===(n=e.value)||void 0===n?void 0:n.encryptedString),this.type=e.type)}return e.template=function(){var t=new e;return t.name="Field name",t.value="Some value",t.type=r.FieldType.Text,t},e.toView=function(e,t){return void 0===t&&(t=new i.FieldView),t.type=e.type,t.value=e.value,t.name=e.name,t},e.toDomain=function(e,t){return void 0===t&&(t=new a.Field),t.type=e.type,t.value=null!=e.value?new o.EncString(e.value):null,t.name=null!=e.name?new o.EncString(e.name):null,t},e}();t.Field=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(144),i=n(105),o=n(287),a=function(){function e(e){var t,n,i,o,a,s,l,c,p,u,d,m,h,f,v,y,g,x;null!=e&&(e instanceof r.IdentityView?(this.title=e.title,this.firstName=e.firstName,this.middleName=e.middleName,this.lastName=e.lastName,this.address1=e.address1,this.address2=e.address2,this.address3=e.address3,this.city=e.city,this.state=e.state,this.postalCode=e.postalCode,this.country=e.country,this.company=e.company,this.email=e.email,this.phone=e.phone,this.ssn=e.ssn,this.username=e.username,this.passportNumber=e.passportNumber,this.licenseNumber=e.licenseNumber):(this.title=null===(t=e.title)||void 0===t?void 0:t.encryptedString,this.firstName=null===(n=e.firstName)||void 0===n?void 0:n.encryptedString,this.middleName=null===(i=e.middleName)||void 0===i?void 0:i.encryptedString,this.lastName=null===(o=e.lastName)||void 0===o?void 0:o.encryptedString,this.address1=null===(a=e.address1)||void 0===a?void 0:a.encryptedString,this.address2=null===(s=e.address2)||void 0===s?void 0:s.encryptedString,this.address3=null===(l=e.address3)||void 0===l?void 0:l.encryptedString,this.city=null===(c=e.city)||void 0===c?void 0:c.encryptedString,this.state=null===(p=e.state)||void 0===p?void 0:p.encryptedString,this.postalCode=null===(u=e.postalCode)||void 0===u?void 0:u.encryptedString,this.country=null===(d=e.country)||void 0===d?void 0:d.encryptedString,this.company=null===(m=e.company)||void 0===m?void 0:m.encryptedString,this.email=null===(h=e.email)||void 0===h?void 0:h.encryptedString,this.phone=null===(f=e.phone)||void 0===f?void 0:f.encryptedString,this.ssn=null===(v=e.ssn)||void 0===v?void 0:v.encryptedString,this.username=null===(y=e.username)||void 0===y?void 0:y.encryptedString,this.passportNumber=null===(g=e.passportNumber)||void 0===g?void 0:g.encryptedString,this.licenseNumber=null===(x=e.licenseNumber)||void 0===x?void 0:x.encryptedString))}return e.template=function(){var t=new e;return t.title="Mr",t.firstName="John",t.middleName="William",t.lastName="Doe",t.address1="123 Any St",t.address2="Apt #123",t.address3=null,t.city="New York",t.state="NY",t.postalCode="10001",t.country="US",t.company="Acme Inc.",t.email="john@company.com",t.phone="5555551234",t.ssn="000-123-4567",t.username="jdoe",t.passportNumber="US-123456789",t.licenseNumber="D123-12-123-12333",t},e.toView=function(e,t){return void 0===t&&(t=new r.IdentityView),t.title=e.title,t.firstName=e.firstName,t.middleName=e.middleName,t.lastName=e.lastName,t.address1=e.address1,t.address2=e.address2,t.address3=e.address3,t.city=e.city,t.state=e.state,t.postalCode=e.postalCode,t.country=e.country,t.company=e.company,t.email=e.email,t.phone=e.phone,t.ssn=e.ssn,t.username=e.username,t.passportNumber=e.passportNumber,t.licenseNumber=e.licenseNumber,t},e.toDomain=function(e,t){return void 0===t&&(t=new o.Identity),t.title=null!=e.title?new i.EncString(e.title):null,t.firstName=null!=e.firstName?new i.EncString(e.firstName):null,t.middleName=null!=e.middleName?new i.EncString(e.middleName):null,t.lastName=null!=e.lastName?new i.EncString(e.lastName):null,t.address1=null!=e.address1?new i.EncString(e.address1):null,t.address2=null!=e.address2?new i.EncString(e.address2):null,t.address3=null!=e.address3?new i.EncString(e.address3):null,t.city=null!=e.city?new i.EncString(e.city):null,t.state=null!=e.state?new i.EncString(e.state):null,t.postalCode=null!=e.postalCode?new i.EncString(e.postalCode):null,t.country=null!=e.country?new i.EncString(e.country):null,t.company=null!=e.company?new i.EncString(e.company):null,t.email=null!=e.email?new i.EncString(e.email):null,t.phone=null!=e.phone?new i.EncString(e.phone):null,t.ssn=null!=e.ssn?new i.EncString(e.ssn):null,t.username=null!=e.username?new i.EncString(e.username):null,t.passportNumber=null!=e.passportNumber?new i.EncString(e.passportNumber):null,t.licenseNumber=null!=e.licenseNumber?new i.EncString(e.licenseNumber):null,t},e}();t.Identity=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(965),i=n(159),o=n(105),a=n(288),s=function(){function e(e){var t,n,o;null!=e&&(null!=e.uris&&(i.LoginView,this.uris=e.uris.map((function(e){return new r.LoginUri(e)}))),e instanceof i.LoginView?(this.username=e.username,this.password=e.password,this.totp=e.totp):(this.username=null===(t=e.username)||void 0===t?void 0:t.encryptedString,this.password=null===(n=e.password)||void 0===n?void 0:n.encryptedString,this.totp=null===(o=e.totp)||void 0===o?void 0:o.encryptedString))}return e.template=function(){var t=new e;return t.uris=[],t.username="jdoe",t.password="myp@ssword123",t.totp="JBSWY3DPEHPK3PXP",t},e.toView=function(e,t){return void 0===t&&(t=new i.LoginView),null!=e.uris&&(t.uris=e.uris.map((function(e){return r.LoginUri.toView(e)}))),t.username=e.username,t.password=e.password,t.totp=e.totp,t},e.toDomain=function(e,t){return void 0===t&&(t=new a.Login),null!=e.uris&&(t.uris=e.uris.map((function(e){return r.LoginUri.toDomain(e)}))),t.username=null!=e.username?new o.EncString(e.username):null,t.password=null!=e.password?new o.EncString(e.password):null,t.totp=null!=e.totp?new o.EncString(e.totp):null,t},e}();t.Login=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(258),i=n(105),o=n(289),a=function(){function e(e){var t;this.match=null,null!=e&&(e instanceof r.LoginUriView?this.uri=e.uri:this.uri=null===(t=e.uri)||void 0===t?void 0:t.encryptedString,this.match=e.match)}return e.template=function(){var t=new e;return t.uri="https://google.com",t.match=null,t},e.toView=function(e,t){return void 0===t&&(t=new r.LoginUriView),t.uri=e.uri,t.match=e.match,t},e.toDomain=function(e,t){return void 0===t&&(t=new o.LoginUri),t.uri=null!=e.uri?new i.EncString(e.uri):null,t.match=e.match,t},e}();t.LoginUri=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(106),i=n(94),o=n(290),a=function(){function e(e){null!=e&&(this.type=e.type)}return e.template=function(){var t=new e;return t.type=r.SecureNoteType.Generic,t},e.toView=function(e,t){return void 0===t&&(t=new i.SecureNoteView),t.type=e.type,t},e.toDomain=function(e,t){return void 0===t&&(t=new o.SecureNote),t.type=e.type,t},e}();t.SecureNote=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(156),i=n(140),o=n(105),a=function(){function e(){}return e.template=function(){var t=new e;return t.organizationId="00000000-0000-0000-0000-000000000000",t.name="Collection name",t.externalId=null,t},e.toView=function(e,t){return void 0===t&&(t=new r.CollectionView),t.name=e.name,t.externalId=e.externalId,null==t.organizationId&&(t.organizationId=e.organizationId),t},e.toDomain=function(e,t){return void 0===t&&(t=new i.Collection),t.name=null!=e.name?new o.EncString(e.name):null,t.externalId=e.externalId,null==t.organizationId&&(t.organizationId=e.organizationId),t},e.prototype.build=function(e){var t;this.organizationId=e.organizationId,e instanceof r.CollectionView?this.name=e.name:this.name=null===(t=e.name)||void 0===t?void 0:t.encryptedString,this.externalId=e.externalId},e}();t.Collection=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(127),i=n(105),o=n(516),a=function(){function e(){}return e.template=function(){var t=new e;return t.name="Folder name",t},e.toView=function(e,t){return void 0===t&&(t=new r.FolderView),t.name=e.name,t},e.toDomain=function(e,t){return void 0===t&&(t=new o.Folder),t.name=null!=e.name?new i.EncString(e.name):null,t},e.prototype.build=function(e){var t;e instanceof r.FolderView?this.name=e.name:this.name=null===(t=e.name)||void 0===t?void 0:t.encryptedString},e}();t.Folder=a},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]5e4)throw new Error("Cannot upload file, exceeds maximum size of "+5e4*a);i.label=1;case 1:i.trys.push([1,12,,13]),i.label=2;case 2:return s"})),t+=""},e.prototype.getMaxBlockSize=function(e){return s.compare(e,"2019-12-12")>=0?4194304e3:s.compare(e,"2016-05-31")>=0?104857600:4194304},e}();t.AzureFileUploadService=a;var s=function(){function e(e){this.year=0,this.month=0,this.day=0;try{var t=e.split("-").map((function(e){return Number.parseInt(e,10)}));this.year=t[0],this.month=t[1],this.day=t[2]}catch(n){}}return e.compare=function(t,n){return"string"==typeof t&&(t=new e(t)),"string"==typeof n&&(n=new e(n)),t.year!==n.year?t.year-n.year:t.month!==n.month?t.month-n.month:t.day!==n.day?t.day-n.day:0},e.prototype.compare=function(t){return e.compare(this,t)},e}()},function(e,t,n){"use strict";(function(e){var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&(o=Math.floor(r.ciphers.length/2),a=r.ciphers.length-1,this.badData(r.ciphers[0])&&this.badData(r.ciphers[o])&&this.badData(r.ciphers[a])))return[2,new Error(this.i18nService.t("importFormatError"))];i.label=2;case 2:return i.trys.push([2,4,,5]),[4,this.postImport(r,n)];case 3:return i.sent(),[3,5];case 4:return s=i.sent(),l=new m.ErrorResponse(s,400),[2,this.handleServerError(l,r)];case 5:return[2,null];case 6:return[2,new Error(this.i18nService.t("importFormatError"))]}}))}))},e.prototype.getImporter=function(e,t){void 0===t&&(t=null);var n=this.getImporterInstance(e);return null==n?null:(n.organizationId=t,n)},e.prototype.getImporterInstance=function(e){if(null==e||""===e)return null;switch(e){case"bitwardencsv":return new g.BitwardenCsvImporter;case"bitwardenjson":return new x.BitwardenJsonImporter;case"lastpasscsv":case"passboltcsv":return new j.LastPassCsvImporter;case"keepassxcsv":return new R.KeePassXCsvImporter;case"aviracsv":return new y.AviraCsvImporter;case"blurcsv":return new S.BlurCsvImporter;case"safeincloudxml":return new ne.SafeInCloudXmlImporter;case"padlockcsv":return new q.PadlockCsvImporter;case"keepass2xml":return new D.KeePass2XmlImporter;case"chromecsv":case"operacsv":case"vivaldicsv":return new C.ChromeCsvImporter;case"firefoxcsv":return new O.FirefoxCsvImporter;case"upmcsv":return new le.UpmCsvImporter;case"saferpasscsv":return new re.SaferPassCsvImporter;case"meldiumcsv":return new U.MeldiumCsvImporter;case"1password1pif":return new L.OnePassword1PifImporter;case"1passwordwincsv":return new K.OnePasswordWinCsvImporter;case"1passwordmaccsv":return new G.OnePasswordMacCsvImporter;case"keepercsv":return new V.KeeperCsvImporter;case"passworddragonxml":return new J.PasswordDragonXmlImporter;case"enpasscsv":return new _.EnpassCsvImporter;case"enpassjson":return new A.EnpassJsonImporter;case"pwsafexml":return new X.PasswordSafeXmlImporter;case"dashlanejson":return new P.DashlaneJsonImporter;case"msecurecsv":return new N.MSecureCsvImporter;case"stickypasswordxml":return new ae.StickyPasswordXmlImporter;case"truekeycsv":return new se.TrueKeyCsvImporter;case"clipperzhtml":return new I.ClipperzHtmlImporter;case"roboformcsv":return new te.RoboFormCsvImporter;case"ascendocsv":return new h.AscendoCsvImporter;case"passwordbossjson":return new Q.PasswordBossJsonImporter;case"zohovaultcsv":return new pe.ZohoVaultCsvImporter;case"splashidcsv":return new oe.SplashIdCsvImporter;case"passkeepcsv":return new W.PassKeepCsvImporter;case"gnomejson":return new M.GnomeJsonImporter;case"passwordagentcsv":return new Y.PasswordAgentCsvImporter;case"passpackcsv":return new $.PasspackCsvImporter;case"passmanjson":return new H.PassmanJsonImporter;case"avastcsv":return new f.AvastCsvImporter;case"avastjson":return new v.AvastJsonImporter;case"fsecurefsk":return new T.FSecureFskImporter;case"kasperskytxt":return new B.KasperskyTxtImporter;case"remembearcsv":return new ee.RememBearCsvImporter;case"passwordwallettxt":return new Z.PasswordWalletTxtImporter;case"mykicsv":return new z.MykiCsvImporter;case"securesafecsv":return new ie.SecureSafeCsvImporter;case"logmeoncecsv":return new F.LogMeOnceCsvImporter;case"blackberrycsv":return new b.BlackBerryCsvImporter;case"buttercupcsv":return new w.ButtercupCsvImporter;case"codebookcsv":return new E.CodebookCsvImporter;case"encryptrcsv":return new k.EncryptrCsvImporter;case"yoticsv":return new ce.YotiCsvImporter;default:return null}},e.prototype.postImport=function(e,t){return void 0===t&&(t=null),r(this,void 0,void 0,(function(){var n,r,o,a,m;return i(this,(function(i){switch(i.label){case 0:if(null!=t)return[3,10];n=new p.ImportCiphersRequest,a=0,i.label=1;case 1:return a0&&(n+="\n\n"),"Folder"!==a&&"Collection"!==a&&(n+="["+(c+1)+"] "),n+="["+a+'] "'+i.name+'": '+l})),new Error(n)},e}();t.ImportService=ue},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){this.ciphers=[],this.folders=[],this.folderRelationships=[]};t.ImportCiphersRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){this.ciphers=[],this.collections=[],this.collectionRelationships=[]};t.ImportOrganizationCiphersRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t){this.key=e,this.value=t};t.KvpRequest=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!1);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){if(!(e.length<2)){var r=t.initLoginCipher();if(r.notes=t.getValueOrDefault(e[e.length-1]),r.name=t.getValueOrDefault(e[0],"--"),e.length>2&&e.length%2==0)for(var i=0;i-1?r.login.password=t.getValueOrDefault(o):null==r.login.username&&t.usernameFieldNames.indexOf(s)>-1?r.login.username=t.getValueOrDefault(o):(null==r.login.uris||0===r.login.uris.length)&&t.uriFieldNames.indexOf(s)>-1?r.login.uris=t.makeUriArray(o):t.processKvp(r,a,o)}}t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)}})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.AscendoCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.name),r.login.uris=t.makeUriArray(e.web),r.login.password=t.getValueOrDefault(e.password),r.login.username=t.getValueOrDefault(e.login),t.cleanupCipher(r),n.ciphers.push(r)})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.AvastCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=n(39),l=n(106),c=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=JSON.parse(e);return null==r?(n.success=!1,Promise.resolve(n)):(null!=r.logins&&r.logins.forEach((function(e){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.custName),r.notes=t.getValueOrDefault(e.note),r.login.uris=t.makeUriArray(e.url),r.login.password=t.getValueOrDefault(e.pwd),r.login.username=t.getValueOrDefault(e.loginName),t.cleanupCipher(r),n.ciphers.push(r)})),null!=r.notes&&r.notes.forEach((function(e){var r=t.initLoginCipher();r.type=s.CipherType.SecureNote,r.secureNote.type=l.SecureNoteType.Generic,r.name=t.getValueOrDefault(e.label),r.notes=t.getValueOrDefault(e.text),t.cleanupCipher(r),n.ciphers.push(r)})),null!=r.cards&&r.cards.forEach((function(e){var r=t.initLoginCipher();r.type=s.CipherType.Card,r.name=t.getValueOrDefault(e.custName),r.notes=t.getValueOrDefault(e.note),r.card.cardholderName=t.getValueOrDefault(e.holderName),r.card.number=t.getValueOrDefault(e.cardNumber),r.card.code=t.getValueOrDefault(e.cvv),r.card.brand=t.getCardBrand(r.card.number),null!=e.expirationDate&&(null!=e.expirationDate.month&&(r.card.expMonth=e.expirationDate.month+""),null!=e.expirationDate.year&&(r.card.expYear=e.expirationDate.year+"")),t.cleanupCipher(r),n.ciphers.push(r)})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.AvastJsonImporter=c},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.name,t.getValueOrDefault(t.nameFromUrl(e.website),"--")),r.login.uris=t.makeUriArray(e.website),r.login.password=t.getValueOrDefault(e.password),t.isNullOrWhitespace(e.username)&&!t.isNullOrWhitespace(e.secondary_username)?r.login.username=e.secondary_username:(r.login.username=t.getValueOrDefault(e.username),r.notes=t.getValueOrDefault(e.secondary_username)),t.cleanupCipher(r),n.ciphers.push(r)})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.AviraCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=n(143),l=n(156),c=n(209),p=n(159),u=n(94),d=n(39),m=n(118),h=n(106),f=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){t.organization&&!t.isNullOrWhitespace(e.collections)?e.collections.split(",").forEach((function(e){for(var t=!0,r=n.collections.length,i=0;ia+2&&(f.value=i[o].substr(a+2)),r.fields.push(f)}}switch(null!=e.type?e.type.toLowerCase():null){case"note":r.type=d.CipherType.SecureNote,r.secureNote=new u.SecureNoteView,r.secureNote.type=h.SecureNoteType.Generic;break;default:r.type=d.CipherType.Login,r.login=new p.LoginView,r.login.totp=t.getValueOrDefault(e.login_totp||e.totp),r.login.username=t.getValueOrDefault(e.login_username||e.username),r.login.password=t.getValueOrDefault(e.login_password||e.password);var v=t.parseSingleRowCsv(e.login_uri||e.uri);r.login.uris=t.makeUriArray(v)}n.ciphers.push(r)})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.BitwardenCsvImporter=f},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]5&&(f.passwordHistory=f.passwordHistory.slice(0,5)),!this.organization&&null!=h.folderId&&e.has(h.folderId)?this.result.folderRelationships.push([this.result.ciphers.length,e.get(h.folderId)]):this.organization&&null!=h.collectionIds&&h.collectionIds.forEach((function(t){e.has(t)&&y.result.collectionRelationships.push([y.result.ciphers.length,e.get(t)])})),[4,f.decrypt()]):[3,13];case 11:v=a.sent(),this.cleanupCipher(v),this.result.ciphers.push(v),a.label=12;case 12:return d++,[3,10];case 13:return[2]}}))}))},t.prototype.parseDecrypted=function(){var e=this,t=new Map;this.organization&&null!=this.results.collections?this.results.collections.forEach((function(n){var r=p.CollectionWithId.toView(n);null!=r&&(r.id=null,r.organizationId=null,t.set(n.id,e.result.collections.length),e.result.collections.push(r))})):this.organization||null==this.results.folders||this.results.folders.forEach((function(n){var r=u.FolderWithId.toView(n);null!=r&&(r.id=null,t.set(n.id,e.result.folders.length),e.result.folders.push(r))})),this.results.items.forEach((function(n){var r=c.CipherWithIds.toView(n);r.id=null,r.folderId=null,r.organizationId=null,r.collectionIds=null,null!=r.passwordHistory&&r.passwordHistory.length>5&&(r.passwordHistory=r.passwordHistory.slice(0,5)),!e.organization&&null!=n.folderId&&t.has(n.folderId)?e.result.folderRelationships.push([e.result.ciphers.length,t.get(n.folderId)]):e.organization&&null!=n.collectionIds&&n.collectionIds.forEach((function(n){t.has(n)&&e.result.collectionRelationships.push([e.result.ciphers.length,t.get(n)])})),e.cleanupCipher(r),e.result.ciphers.push(r)}))},t}(s.BaseImporter);t.BitwardenJsonImporter=d},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){if("list"!==e.grouping){var r=t.initLoginCipher();r.favorite="1"===e.fav,r.name=t.getValueOrDefault(e.name),r.notes=t.getValueOrDefault(e.extra),"note"!==e.grouping&&(r.login.uris=t.makeUriArray(e.url),r.login.password=t.getValueOrDefault(e.password),r.login.username=t.getValueOrDefault(e.username)),t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)}})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.BlackBerryCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){"null"===e.label&&(e.label=null);var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.label,t.getValueOrDefault(t.nameFromUrl(e.domain),"--")),r.login.uris=t.makeUriArray(e.domain),r.login.password=t.getValueOrDefault(e.password),t.isNullOrWhitespace(e.email)&&!t.isNullOrWhitespace(e.username)?r.login.username=e.username:(r.login.username=t.getValueOrDefault(e.email),r.notes=t.getValueOrDefault(e.username)),t.cleanupCipher(r),n.ciphers.push(r)})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.BlurCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=["!group_id","!group_name","title","username","password","URL","id"],l=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){t.processFolder(n,t.getValueOrDefault(e["!group_name"]));var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.title,"--"),r.login.username=t.getValueOrDefault(e.username),r.login.password=t.getValueOrDefault(e.password),r.login.uris=t.makeUriArray(e.URL);var i=!1;for(var o in e)e.hasOwnProperty(o)&&(i||-1!==s.indexOf(o)||(i=!0),i&&t.processKvp(r,o,e[o]));t.cleanupCipher(r),n.ciphers.push(r)})),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.ButtercupCsvImporter=l},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.name,"--"),r.login.username=t.getValueOrDefault(e.username),r.login.password=t.getValueOrDefault(e.password),r.login.uris=t.makeUriArray(e.url),t.cleanupCipher(r),n.ciphers.push(r)})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.ChromeCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseXml(e);if(null==r)return n.success=!1,Promise.resolve(n);var i=r.querySelector("textarea");return null==i||this.isNullOrWhitespace(i.textContent)?(n.errorMessage="Missing textarea.",n.success=!1,Promise.resolve(n)):(JSON.parse(i.textContent).forEach((function(e){var r=t.initLoginCipher();if(t.isNullOrWhitespace(e.label)||(r.name=e.label.split(" ")[0]),null==e.data||t.isNullOrWhitespace(e.data.notes)||(r.notes=e.data.notes.split("\\n").join("\n")),null!=e.currentVersion&&null!=e.currentVersion.fields)for(var i in e.currentVersion.fields)if(e.currentVersion.fields.hasOwnProperty(i)){var o=e.currentVersion.fields[i];switch(null!=o.actionType?o.actionType.toLowerCase():null){case"password":r.login.password=t.getValueOrDefault(o.value);break;case"email":case"username":case"user":case"name":r.login.username=t.getValueOrDefault(o.value);break;case"url":r.login.uris=t.makeUriArray(o.value);break;default:var a=null!=o.label?o.label.toLowerCase():null;null==r.login.password&&t.passwordFieldNames.indexOf(a)>-1?r.login.password=t.getValueOrDefault(o.value):null==r.login.username&&t.usernameFieldNames.indexOf(a)>-1?r.login.username=t.getValueOrDefault(o.value):(null==r.login.uris||0===r.login.uris.length)&&t.uriFieldNames.indexOf(a)>-1?r.login.uris=t.makeUriArray(o.value):t.processKvp(r,o.label,o.value)}}t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.ClipperzHtmlImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){t.processFolder(n,t.getValueOrDefault(e.Category));var r=t.initLoginCipher();r.favorite="True"===t.getValueOrDefault(e.Favorite),r.name=t.getValueOrDefault(e.Entry,"--"),r.notes=t.getValueOrDefault(e.Note),r.login.username=t.getValueOrDefault(e.Username,e.Email),r.login.password=t.getValueOrDefault(e.Password),r.login.totp=t.getValueOrDefault(e.TOTP),r.login.uris=t.makeUriArray(e.Website),t.isNullOrWhitespace(e.Username)||t.processKvp(r,"Email",e.Email),t.processKvp(r,"Phone",e.Phone),t.processKvp(r,"PIN",e.PIN),t.processKvp(r,"Account",e.Account),t.processKvp(r,"Date",e.Date),t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)})),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.CodebookCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=n(88),l=n(143),c=n(144),p=n(94),u=n(39),d=n(106),m=new Set(["ADDRESS","AUTHENTIFIANT","BANKSTATEMENT","IDCARD","IDENTITY","PAYMENTMEANS_CREDITCARD","PAYMENTMEAN_PAYPAL","EMAIL"]),h=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){this.result=new a.ImportResult;var t=JSON.parse(e);if(null==t||0===t.length)return this.result.success=!1,Promise.resolve(this.result);for(var n in null!=t.ADDRESS&&this.processAddress(t.ADDRESS),null!=t.AUTHENTIFIANT&&this.processAuth(t.AUTHENTIFIANT),null!=t.BANKSTATEMENT&&this.processNote(t.BANKSTATEMENT,"BankAccountName"),null!=t.IDCARD&&this.processNote(t.IDCARD,"Fullname"),null!=t.PAYMENTMEANS_CREDITCARD&&this.processCard(t.PAYMENTMEANS_CREDITCARD),null!=t.IDENTITY&&this.processIdentity(t.IDENTITY),t)t.hasOwnProperty(n)&&!m.has(n)&&this.processNote(t[n],null,"Generic Note");return this.result.success=!0,Promise.resolve(this.result)},t.prototype.processAuth=function(e){var t=this;e.forEach((function(e){var n=t.initLoginCipher();n.name=t.getValueOrDefault(e.title),n.login.username=t.getValueOrDefault(e.login,t.getValueOrDefault(e.secondaryLogin)),t.isNullOrWhitespace(n.login.username)?n.login.username=t.getValueOrDefault(e.email):t.isNullOrWhitespace(e.email)||(n.notes="Email: "+e.email+"\n"),n.login.password=t.getValueOrDefault(e.password),n.login.uris=t.makeUriArray(e.domain),n.notes+=t.getValueOrDefault(e.note,""),t.convertToNoteIfNeeded(n),t.cleanupCipher(n),t.result.ciphers.push(n)}))},t.prototype.processIdentity=function(e){var t=this;e.forEach((function(e){var n=new l.CipherView;n.identity=new c.IdentityView,n.type=u.CipherType.Identity,n.name=t.getValueOrDefault(e.fullName,"");var r=n.name.split(" ");r.length>0&&(n.identity.firstName=t.getValueOrDefault(r[0])),2===r.length?n.identity.lastName=t.getValueOrDefault(r[1]):3===r.length&&(n.identity.middleName=t.getValueOrDefault(r[1]),n.identity.lastName=t.getValueOrDefault(r[2])),n.identity.username=t.getValueOrDefault(e.pseudo),t.cleanupCipher(n),t.result.ciphers.push(n)}))},t.prototype.processAddress=function(e){var t=this;e.forEach((function(e){var n=new l.CipherView;n.identity=new c.IdentityView,n.type=u.CipherType.Identity,n.name=t.getValueOrDefault(e.addressName),n.identity.address1=t.getValueOrDefault(e.addressFull),n.identity.city=t.getValueOrDefault(e.city),n.identity.state=t.getValueOrDefault(e.state),n.identity.postalCode=t.getValueOrDefault(e.zipcode),n.identity.country=t.getValueOrDefault(e.country),null!=n.identity.country&&(n.identity.country=n.identity.country.toUpperCase()),t.cleanupCipher(n),t.result.ciphers.push(n)}))},t.prototype.processCard=function(e){var t=this;e.forEach((function(e){var n=new l.CipherView;n.card=new s.CardView,n.type=u.CipherType.Card,n.name=t.getValueOrDefault(e.bank),n.card.number=t.getValueOrDefault(e.cardNumber),n.card.brand=t.getCardBrand(n.card.number),n.card.cardholderName=t.getValueOrDefault(e.owner),t.isNullOrWhitespace(n.card.brand)||(t.isNullOrWhitespace(n.name)?n.name=n.card.brand:n.name+=" - "+n.card.brand),t.cleanupCipher(n),t.result.ciphers.push(n)}))},t.prototype.processNote=function(e,t,n){var r=this;void 0===n&&(n=null),e.forEach((function(e){var i=new l.CipherView;for(var o in i.secureNote=new p.SecureNoteView,i.type=u.CipherType.SecureNote,i.secureNote.type=d.SecureNoteType.Generic,i.name=null!=n?n:r.getValueOrDefault(e[t]),e)e.hasOwnProperty(o)&&o!==t&&r.processKvp(i,o,e[o].toString());r.cleanupCipher(i),r.result.ciphers.push(i)}))},t}(o.BaseImporter);t.DashlaneJsonImporter=h},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=n(88),l=n(39),c=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.Label,"--"),r.notes=t.getValueOrDefault(e.Notes);var i=t.getValueOrDefault(e.Text);t.isNullOrWhitespace(i)||(t.isNullOrWhitespace(r.notes)?r.notes=i:r.notes+="\n\n"+i);var o=e["Entry Type"];if("Password"===o)r.login.username=t.getValueOrDefault(e.Username),r.login.password=t.getValueOrDefault(e.Password),r.login.uris=t.makeUriArray(e["Site URL"]);else if("Credit Card"===o){r.type=l.CipherType.Card,r.card=new s.CardView,r.card.cardholderName=t.getValueOrDefault(e["Name on card"]),r.card.number=t.getValueOrDefault(e["Card Number"]),r.card.brand=t.getCardBrand(r.card.number),r.card.code=t.getValueOrDefault(e.CVV);var a=t.getValueOrDefault(e.Expiry);if(!t.isNullOrWhitespace(a)){var c=a.split("/");c.length>1&&(r.card.expMonth=parseInt(c[0],null).toString(),r.card.expYear=(2e3+parseInt(c[1],null)).toString())}}t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.EncryptrCsvImporter=c},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=n(39),l=n(106),c=n(88),p=n(94),u=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!1);if(null==r)return n.success=!1,Promise.resolve(n);var i=!0;return r.forEach((function(e){if(e.length<2||i&&("Title"===e[0]||"title"===e[0]))i=!1;else{var r=t.initLoginCipher();if(r.notes=t.getValueOrDefault(e[e.length-1]),r.name=t.getValueOrDefault(e[0],"--"),2!==e.length&&(t.containsField(e,"username")||t.containsField(e,"password")||t.containsField(e,"email")||t.containsField(e,"url"))||(r.type=s.CipherType.SecureNote,r.secureNote=new p.SecureNoteView,r.secureNote.type=l.SecureNoteType.Generic),t.containsField(e,"cardholder")&&t.containsField(e,"number")&&t.containsField(e,"expiry date")&&(r.type=s.CipherType.Card,r.card=new c.CardView),e.length>2&&e.length%2==0)for(var o=0;o0},t}(o.BaseImporter);t.EnpassCsvImporter=u},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=n(88),l=n(127),c=n(39),p=n(118),u=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=JSON.parse(e);if(null==r||null==r.items||0===r.items.length)return n.success=!1,Promise.resolve(n);var i=new Map,o=new Map,s=this.buildFolderTree(r.folders);return this.flattenFolderTree(null,s,i),i.forEach((function(e,t){o.set(t,n.folders.length);var r=new l.FolderView;r.name=e,n.folders.push(r)})),r.items.forEach((function(e){null!=e.folders&&e.folders.length>0&&o.has(e.folders[0])&&n.folderRelationships.push([n.ciphers.length,o.get(e.folders[0])]);var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.title),r.favorite=e.favorite>0,null!=e.template_type&&null!=e.fields&&e.fields.length>0&&(0===e.template_type.indexOf("login.")||0===e.template_type.indexOf("password.")?t.processLogin(r,e.fields):0===e.template_type.indexOf("creditcard.")?t.processCard(r,e.fields):e.template_type.indexOf("identity.")<0&&e.fields.some((function(e){return"password"===e.type&&!t.isNullOrWhitespace(e.value)}))?t.processLogin(r,e.fields):t.processNote(r,e.fields)),r.notes+="\n"+t.getValueOrDefault(e.note,""),t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)})),n.success=!0,Promise.resolve(n)},t.prototype.processLogin=function(e,t){var n=this,r=[];t.forEach((function(t){n.isNullOrWhitespace(t.value)||"section"===t.type||("username"!==t.type&&"email"!==t.type||!n.isNullOrWhitespace(e.login.username)?"password"===t.type&&n.isNullOrWhitespace(e.login.password)?e.login.password=t.value:"totp"===t.type&&n.isNullOrWhitespace(e.login.totp)?e.login.totp=t.value:"url"===t.type?r.push(t.value):n.processKvp(e,t.label,t.value,1===t.sensitive?p.FieldType.Hidden:p.FieldType.Text):e.login.username=t.value)})),e.login.uris=this.makeUriArray(r)},t.prototype.processCard=function(e,t){var n=this;e.card=new s.CardView,e.type=c.CipherType.Card,t.forEach((function(t){n.isNullOrWhitespace(t.value)||"section"===t.type||"ccType"===t.type||("ccName"===t.type&&n.isNullOrWhitespace(e.card.cardholderName)?e.card.cardholderName=t.value:"ccNumber"===t.type&&n.isNullOrWhitespace(e.card.number)?(e.card.number=t.value,e.card.brand=n.getCardBrand(e.card.number)):"ccCvc"===t.type&&n.isNullOrWhitespace(e.card.code)?e.card.code=t.value:"ccExpiry"===t.type&&n.isNullOrWhitespace(e.card.expYear)&&n.setCardExpiration(e,t.value)||n.processKvp(e,t.label,t.value,1===t.sensitive?p.FieldType.Hidden:p.FieldType.Text))}))},t.prototype.processNote=function(e,t){var n=this;t.forEach((function(t){n.isNullOrWhitespace(t.value)||"section"===t.type||n.processKvp(e,t.label,t.value,1===t.sensitive?p.FieldType.Hidden:p.FieldType.Text)}))},t.prototype.buildFolderTree=function(e){if(null==e)return[];var t=[],n=new Map([]);return e.forEach((function(e){n.set(e.uuid,e),e.children=[]})),e.forEach((function(e){null!=e.parent_uuid&&""!==e.parent_uuid&&n.has(e.parent_uuid)?n.get(e.parent_uuid).children.push(e):t.push(e)})),t},t.prototype.flattenFolderTree=function(e,t,n){var r=this;null!=t&&t.forEach((function(t){if(null!=t.title&&""!==t.title.trim()){var i=t.title.trim();null!=e&&""!==e.trim()&&(i=e+"/"+i),n.set(t.uuid,i),null!=t.children&&0!==t.children.length&&r.flattenFolderTree(i,t.children,n)}}))},t}(o.BaseImporter);t.EnpassJsonImporter=u},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.filter((function(e){return"chrome://FirefoxAccounts"!==e.url})).forEach((function(e){var r=t.initLoginCipher(),i=t.getValueOrDefault(e.url,t.getValueOrDefault(e.hostname));r.name=t.getValueOrDefault(t.nameFromUrl(i),"--"),r.login.username=t.getValueOrDefault(e.username),r.login.password=t.getValueOrDefault(e.password),r.login.uris=t.makeUriArray(i),t.cleanupCipher(r),n.ciphers.push(r)})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.FirefoxCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=n(88),l=n(39),c=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=new a.ImportResult,n=JSON.parse(e);if(null==n||null==n.data)return t.success=!1,Promise.resolve(t);for(var r in n.data)if(n.data.hasOwnProperty(r)){var i=n.data[r],o=this.initLoginCipher();if(o.name=this.getValueOrDefault(i.service),o.notes=this.getValueOrDefault(i.notes),"website"===i.style)o.login.username=this.getValueOrDefault(i.username),o.login.password=this.getValueOrDefault(i.password),o.login.uris=this.makeUriArray(i.url);else{if("creditcard"!==i.style)continue;o.type=l.CipherType.Card,o.card=new s.CardView,o.card.cardholderName=this.getValueOrDefault(i.username),o.card.number=this.getValueOrDefault(i.creditNumber),o.card.brand=this.getCardBrand(o.card.number),o.card.code=this.getValueOrDefault(i.creditCvv),this.isNullOrWhitespace(i.creditExpiry)||this.setCardExpiration(o,i.creditExpiry)||this.processKvp(o,"Expiration",i.creditExpiry),this.isNullOrWhitespace(i.password)||this.processKvp(o,"PIN",i.password)}this.convertToNoteIfNeeded(o),this.cleanupCipher(o),t.ciphers.push(o)}return t.success=!0,Promise.resolve(t)},t}(o.BaseImporter);t.FSecureFskImporter=c},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=JSON.parse(e);if(null==r||0===Object.keys(r).length)return n.success=!1,Promise.resolve(n);var i=function(e){if(!r.hasOwnProperty(e)||o.isNullOrWhitespace(e)||0===r[e].length)return"continue";r[e].forEach((function(r){if(!t.isNullOrWhitespace(r.display_name)&&0===r.display_name.indexOf("http")){t.processFolder(n,e);var i=t.initLoginCipher();if(i.name=r.display_name.replace("http://","").replace("https://",""),i.name.length>30&&(i.name=i.name.substring(0,30)),i.login.password=t.getValueOrDefault(r.secret),i.login.uris=t.makeUriArray(r.display_name),null!=r.attributes)for(var o in i.login.username=null!=r.attributes?t.getValueOrDefault(r.attributes.username_value):null,r.attributes)r.attributes.hasOwnProperty(o)&&"username_value"!==o&&"xdg:schema"!==o&&t.processKvp(i,o,r.attributes[o]);t.convertToNoteIfNeeded(i),t.cleanupCipher(i),n.ciphers.push(i)}}))},o=this;for(var s in r)i(s);return this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n)},t}(o.BaseImporter);t.GnomeJsonImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t,n,r,i,o=this,s=new a.ImportResult,l=this.splitNewLine(e).join("\n");-1!==l.indexOf("Notes\n\n")&&((i=l.split("Notes\n\n")).length>1&&(l=i[0],t=i[1]));-1!==l.indexOf("Applications\n\n")&&((i=l.split("Applications\n\n")).length>1&&(l=i[0],n=i[1]));0===l.indexOf("Websites\n\n")&&((i=l.split("Websites\n\n")).length>1&&(l=i[0],r=i[1]));var c=this.parseDataCategory(t),p=this.parseDataCategory(n),u=this.parseDataCategory(r);return c.forEach((function(e){var t=o.initLoginCipher();t.name=o.getValueOrDefault(e.get("Name")),t.notes=o.getValueOrDefault(e.get("Text")),o.cleanupCipher(t),s.ciphers.push(t)})),u.concat(p).forEach((function(e){var t=o.initLoginCipher(),n=e.has("Website name")?"Website name":"Application";t.name=o.getValueOrDefault(e.get(n),""),o.isNullOrWhitespace(e.get("Login name"))||(o.isNullOrWhitespace(t.name)||(t.name+=": "),t.name+=e.get("Login name")),t.notes=o.getValueOrDefault(e.get("Comment")),e.has("Website URL")&&(t.login.uris=o.makeUriArray(e.get("Website URL"))),t.login.username=o.getValueOrDefault(e.get("Login")),t.login.password=o.getValueOrDefault(e.get("Password")),o.cleanupCipher(t),s.ciphers.push(t)})),s.success=!0,Promise.resolve(s)},t.prototype.parseDataCategory=function(e){if(this.isNullOrWhitespace(e)||-1===e.indexOf("\n---\n"))return[];var t=[];return e.split("\n---\n").forEach((function(e){if(-1!==e.indexOf("\n")){var n,r,i=new Map;e.split("\n").forEach((function(e){if(null==n){var t,o,a=e.indexOf(":");-1!==a&&(t=e.substring(0,a),e.length>a+1&&(o=e.substring(a+2)),null!=t&&i.set(t,o),"Comment"!==t&&"Text"!==t||(n=o,r=t))}else n+="\n"+e})),null!=n&&null!=r&&i.set(r,n),0!==i.size&&t.push(i)}})),t},t}(o.BaseImporter);t.KasperskyTxtImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(118),s=n(26),l=n(127),c=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.result=new s.ImportResult,t}return i(t,e),t.prototype.parse=function(e){var t=this.parseXml(e);if(null==t)return this.result.success=!1,Promise.resolve(this.result);var n=t.querySelector("KeePassFile > Root > Group");return null==n?(this.result.errorMessage="Missing `KeePassFile > Root > Group` node.",this.result.success=!1,Promise.resolve(this.result)):(this.traverse(n,!0,""),this.organization&&this.moveFoldersToCollections(this.result),this.result.success=!0,Promise.resolve(this.result))},t.prototype.traverse=function(e,t,n){var r=this,i=this.result.folders.length,o=n;if(!t){""!==o&&(o+="/");var s=this.querySelectorDirectChild(e,"Name");o+=null==s?"-":s.textContent;var c=new l.FolderView;c.name=o,this.result.folders.push(c)}this.querySelectorAllDirectChild(e,"Entry").forEach((function(e){var n=r.result.ciphers.length,o=r.initLoginCipher();r.querySelectorAllDirectChild(e,"String").forEach((function(e){var t=r.querySelectorDirectChild(e,"Value"),n=null!=t?t.textContent:null;if(!r.isNullOrWhitespace(n)){var i=r.querySelectorDirectChild(e,"Key"),s=null!=i?i.textContent:null;if("URL"===s)o.login.uris=r.makeUriArray(n);else if("UserName"===s)o.login.username=n;else if("Password"===s)o.login.password=n;else if("otp"===s)o.login.totp=n.replace("key=","");else if("Title"===s)o.name=n;else if("Notes"===s)o.notes+=n+"\n";else{var l=a.FieldType.Text,c=t.attributes;c.length>0&&null!=c.ProtectInMemory&&"True"===c.ProtectInMemory.value&&(l=a.FieldType.Hidden),r.processKvp(o,s,n,l)}}})),r.cleanupCipher(o),r.result.ciphers.push(o),t||r.result.folderRelationships.push([n,i])})),this.querySelectorAllDirectChild(e,"Group").forEach((function(e){r.traverse(e,!1,o)}))},t}(o.BaseImporter);t.KeePass2XmlImporter=c},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){if(!t.isNullOrWhitespace(e.Title)){e.Group=!t.isNullOrWhitespace(e.Group)&&e.Group.startsWith("Root/")?e.Group.replace("Root/",""):e.Group;var r=t.isNullOrWhitespace(e.Group)?null:e.Group;t.processFolder(n,r);var i=t.initLoginCipher();i.notes=t.getValueOrDefault(e.Notes),i.name=t.getValueOrDefault(e.Title,"--"),i.login.username=t.getValueOrDefault(e.Username),i.login.password=t.getValueOrDefault(e.Password),i.login.uris=t.makeUriArray(e.URL),t.cleanupCipher(i),n.ciphers.push(i)}})),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.KeePassXCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!1);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){if(!(e.length<6)){t.processFolder(n,e[0]);var r=t.initLoginCipher();if(r.notes=t.getValueOrDefault(e[5])+"\n",r.name=t.getValueOrDefault(e[1],"--"),r.login.username=t.getValueOrDefault(e[2]),r.login.password=t.getValueOrDefault(e[3]),r.login.uris=t.makeUriArray(e[4]),e.length>7)for(var i=7;i-1){var n=e.ccexp.split("-");n.length>1&&(t.expYear=n[0],t.expMonth=n[1],2===t.expMonth.length&&"0"===t.expMonth[0]&&(t.expMonth=t.expMonth[1]))}return t},t.prototype.parseIdentity=function(e){var t=new p.IdentityView;return t.title=this.getValueOrDefault(e.title),t.firstName=this.getValueOrDefault(e.firstname),t.middleName=this.getValueOrDefault(e.middlename),t.lastName=this.getValueOrDefault(e.lastname),t.username=this.getValueOrDefault(e.username),t.company=this.getValueOrDefault(e.company),t.ssn=this.getValueOrDefault(e.ssn),t.address1=this.getValueOrDefault(e.address1),t.address2=this.getValueOrDefault(e.address2),t.address3=this.getValueOrDefault(e.address3),t.city=this.getValueOrDefault(e.city),t.state=this.getValueOrDefault(e.state),t.postalCode=this.getValueOrDefault(e.zip),t.country=this.getValueOrDefault(e.country),t.email=this.getValueOrDefault(e.email),t.phone=this.getValueOrDefault(e.phone),this.isNullOrWhitespace(t.title)||(t.title=t.title.charAt(0).toUpperCase()+t.title.slice(1)),t},t.prototype.parseSecureNote=function(e,t){var n=this.splitNewLine(e.extra),r=!1;if(n.length){var i=n[0].split(":");if(i.length>1&&"NoteType"===i[0]&&("Credit Card"===i[1]||"Address"===i[1])){if("Credit Card"===i[1]){var o=this.parseSecureNoteMapping(t,n,{Number:"number","Name on Card":"cardholderName","Security Code":"code","Expiration Date":"expMonth"});if(this.isNullOrWhitespace(o.expMonth)||","===o.expMonth)o.expMonth=void 0;else{var a=o.expMonth.split(","),s=a[0],l=a[1];if(this.isNullOrWhitespace(s))o.expMonth=void 0;else{var c=new Date(Date.parse(s.trim()+" 1, 2012")).getMonth()+1;isNaN(c)?o.expMonth=void 0:o.expMonth=c.toString()}this.isNullOrWhitespace(l)||(o.expYear=l)}t.type=m.CipherType.Card,t.card=o}else if("Address"===i[1]){o=this.parseSecureNoteMapping(t,n,{Title:"title","First Name":"firstName","Last Name":"lastName","Middle Name":"middleName",Company:"company","Address 1":"address1","Address 2":"address2","Address 3":"address3","City / Town":"city",State:"state","Zip / Postal Code":"postalCode",Country:"country","Email Address":"email",Username:"username"});t.type=m.CipherType.Identity,t.identity=o}r=!0}}r||(t.secureNote=new d.SecureNoteView,t.secureNote.type=h.SecureNoteType.Generic,t.notes=this.getValueOrDefault(e.extra))},t.prototype.parseSecureNoteMapping=function(e,t,n){var r=this,i={},o=!1;return t.forEach((function(t){var a=null,s=null;if(!o){if(r.isNullOrWhitespace(t))return;var l=t.indexOf(":");if(-1===l?a=t:(a=t.substring(0,l),t.length>l&&(s=t.substring(l+1))),r.isNullOrWhitespace(a)||r.isNullOrWhitespace(s)||"NoteType"===a)return}o?e.notes+="\n"+t:"Notes"===a?(r.isNullOrWhitespace(e.notes)?e.notes=s:e.notes+="\n"+s,o=!0):n.hasOwnProperty(a)?i[n[a]]=s:r.processKvp(e,a,s)})),i},t}(o.BaseImporter);t.LastPassCsvImporter=f},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!1);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){if(!(e.length<4)){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e[0],"--"),r.login.username=t.getValueOrDefault(e[2]),r.login.password=t.getValueOrDefault(e[3]),r.login.uris=t.makeUriArray(e[1]),t.cleanupCipher(r),n.ciphers.push(r)}})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.LogMeOnceCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.DisplayName,"--"),r.notes=t.getValueOrDefault(e.Notes),r.login.username=t.getValueOrDefault(e.UserName),r.login.password=t.getValueOrDefault(e.Password),r.login.uris=t.makeUriArray(e.Url),t.cleanupCipher(r),n.ciphers.push(r)})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.MeldiumCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=n(39),l=n(106),c=n(94),p=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!1);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){if(!(e.length<3)){var r="Unassigned"!==t.getValueOrDefault(e[0],"Unassigned")?e[0]:null;t.processFolder(n,r);var i=t.initLoginCipher();if(i.name=t.getValueOrDefault(e[2],"--"),"Web Logins"===e[1]||"Login"===e[1])i.login.uris=t.makeUriArray(e[4]),i.login.username=t.getValueOrDefault(e[5]),i.login.password=t.getValueOrDefault(e[6]),i.notes=t.isNullOrWhitespace(e[3])?null:e[3].split("\\n").join("\n");else if(e.length>3){i.type=s.CipherType.SecureNote,i.secureNote=new c.SecureNoteView,i.secureNote.type=l.SecureNoteType.Generic;for(var o=3;o0&&(t.login.uris=this.makeUriArray(r))}null!=e.secureContents.fields&&this.parseFields(e.secureContents.fields,t,"designation","value","name"),null!=e.secureContents.sections&&e.secureContents.sections.forEach((function(e){null!=e.fields&&n.parseFields(e.fields,t,"n","v","t")}))}},t.prototype.parsePasswordHistory=function(e,t){var n=this,r=e.length>5?5:e.length;t.passwordHistory=e.filter((function(e){return!n.isNullOrWhitespace(e.value)&&null!=e.time})).sort((function(e,t){return t.time-e.time})).slice(0,r).map((function(e){var t=new c.PasswordHistoryView;return t.password=e.value,t.lastUsedDate=new Date((""+e.time).length>=13?e.time:1e3*e.time),t}))},t.prototype.parseFields=function(e,t,n,r,i){var o=this;e.forEach((function(e){if(null!=e[r]&&""!==e[r].toString().trim()){var a=e[r].toString(),s=null!=e[n]?e[n].toString():null;if(t.type===u.CipherType.Login){if(o.isNullOrWhitespace(t.login.username)&&"username"===s)return void(t.login.username=a);if(o.isNullOrWhitespace(t.login.password)&&"password"===s)return void(t.login.password=a);if(o.isNullOrWhitespace(t.login.totp)&&null!=s&&s.startsWith("TOTP_"))return void(t.login.totp=a)}else if(t.type===u.CipherType.Card){if(o.isNullOrWhitespace(t.card.number)&&"ccnum"===s)return t.card.number=a,void(t.card.brand=o.getCardBrand(a));if(o.isNullOrWhitespace(t.card.code)&&"cvv"===s)return void(t.card.code=a);if(o.isNullOrWhitespace(t.card.cardholderName)&&"cardholder"===s)return void(t.card.cardholderName=a);if(o.isNullOrWhitespace(t.card.expiration)&&"expiry"===s&&6===a.length)return t.card.expMonth=a.substr(4,2),"0"===t.card.expMonth[0]&&(t.card.expMonth=t.card.expMonth.substr(1,1)),void(t.card.expYear=a.substr(0,4));if("type"===s)return}else if(t.type===u.CipherType.Identity){var l=t.identity;if(o.isNullOrWhitespace(l.firstName)&&"firstname"===s)return void(l.firstName=a);if(o.isNullOrWhitespace(l.lastName)&&"lastname"===s)return void(l.lastName=a);if(o.isNullOrWhitespace(l.middleName)&&"initial"===s)return void(l.middleName=a);if(o.isNullOrWhitespace(l.phone)&&"defphone"===s)return void(l.phone=a);if(o.isNullOrWhitespace(l.company)&&"company"===s)return void(l.company=a);if(o.isNullOrWhitespace(l.email)&&"email"===s)return void(l.email=a);if(o.isNullOrWhitespace(l.username)&&"username"===s)return void(l.username=a);if("address"===s){var c=e[r],p=c.street,m=c.city,h=c.country,f=c.zip;return l.address1=o.getValueOrDefault(p),l.city=o.getValueOrDefault(m),o.isNullOrWhitespace(h)||(l.country=h.toUpperCase()),void(l.postalCode=o.getValueOrDefault(f))}}var v=o.isNullOrWhitespace(e[i])?"no_name":e[i];if("password"!==v||null==t.passwordHistory||!t.passwordHistory.some((function(e){return e.password===a}))){var y="concealed"===e.k?d.FieldType.Hidden:d.FieldType.Text;o.processKvp(t,v,a,y)}}}))},t}(o.BaseImporter);t.OnePassword1PifImporter=h},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(715),a=n(39),s=n(716),l=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.setCipherType=function(e,t){switch(this.getValueOrDefault(this.getProp(e,"type"),"Login")){case"Credit Card":t.type=a.CipherType.Card,t.card=new s.CardView,o.IgnoredProperties.push("type");break;case"Identity":t.type=a.CipherType.Identity,t.identity=new s.IdentityView,o.IgnoredProperties.push("type");break;case"Login":case"Secure Note":o.IgnoredProperties.push("type")}},t}(o.OnePasswordCsvImporter);t.OnePasswordMacCsvImporter=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e,t,n){this.importRecord=e,this.property=t,this.cipher=n,this.lowerProperty=t.toLowerCase()};t.CipherImportContext=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){};t.View=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(715),a=n(39),s=n(716),l=function(e){function t(){var t=e.call(this)||this;return t.identityPropertyParsers.push(t.setIdentityAddress),t}return i(t,e),t.prototype.setCipherType=function(e,t){t.type=a.CipherType.Login,t.login=new s.LoginView,this.isNullOrWhitespace(this.getPropByRegexp(e,/\d+: number/i))||this.isNullOrWhitespace(this.getPropByRegexp(e,/\d+: expiry date/i))||(t.type=a.CipherType.Card,t.card=new s.CardView),this.isNullOrWhitespace(this.getPropByRegexp(e,/name \d+: first name/i))&&this.isNullOrWhitespace(this.getPropByRegexp(e,/name \d+: initial/i))&&this.isNullOrWhitespace(this.getPropByRegexp(e,/name \d+: last name/i))&&this.isNullOrWhitespace(this.getPropByRegexp(e,/internet \d+: email/i))||(t.type=a.CipherType.Identity,t.identity=new s.IdentityView)},t.prototype.setIdentityAddress=function(e){return!!e.lowerProperty.match(/address \d+: address/i)&&(this.processKvp(e.cipher,"address",e.importRecord[e.property]),!0)},t.prototype.setCreditCardExpiry=function(e){if(this.isNullOrWhitespace(e.cipher.card.expiration)&&e.lowerProperty.includes("expiry date")){var t=e.importRecord[e.property].split("/");return e.cipher.card.expMonth=t[0],"0"===e.cipher.card.expMonth[0]&&2===e.cipher.card.expMonth.length&&(e.cipher.card.expMonth=e.cipher.card.expMonth.substr(1,1)),e.cipher.card.expYear=t[2].length>4?t[2].substr(0,4):t[2],!0}return!1},t}(o.OnePasswordCsvImporter);t.OnePasswordWinCsvImporter=l},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=n(156),l=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!1);if(null==r)return n.success=!1,Promise.resolve(n);var i=null;return r.forEach((function(e){if(null!=i){if(!(e.length<2||e.length!==i.length)){if(!t.isNullOrWhitespace(e[1]))if(t.organization){(r=e[1].split(",")).forEach((function(e){e=e.trim();for(var t=!0,r=n.collections.length,i=0;i0?r[0].trim():null;t.processFolder(n,o)}var a=t.initLoginCipher();a.name=t.getValueOrDefault(e[0],"--");for(var l=2;l-1?a.login.username=e[l]:t.passwordFieldNames.indexOf(c)>-1?a.login.password=e[l]:t.uriFieldNames.indexOf(c)>-1?a.login.uris=t.makeUriArray(e[l]):t.processKvp(a,i[l],e[l]))}t.cleanupCipher(a),n.ciphers.push(a)}}else i=e.map((function(e){return e}))})),n.success=!0,Promise.resolve(n)},t}(o.BaseImporter);t.PadlockCsvImporter=l},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){t.processFolder(n,t.getValue("category",e));var r=t.initLoginCipher();r.notes=t.getValue("description",e),r.name=t.getValueOrDefault(t.getValue("title",e),"--"),r.login.username=t.getValue("username",e),r.login.password=t.getValue("password",e),r.login.uris=t.makeUriArray(t.getValue("site",e)),t.processKvp(r,"Password 2",t.getValue("password2",e)),t.cleanupCipher(r),n.ciphers.push(r)})),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n))},t.prototype.getValue=function(e,t){return this.getValueOrDefault(t[e],this.getValueOrDefault(t[" "+e]))},t}(o.BaseImporter);t.PassKeepCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=JSON.parse(e);return null==r||0===r.length?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){if(null!=e.tags&&e.tags.length>0){var r=e.tags[0].text;t.processFolder(n,r)}var i=t.initLoginCipher();i.name=e.label,i.login.username=t.getValueOrDefault(e.username),t.isNullOrWhitespace(i.login.username)?i.login.username=t.getValueOrDefault(e.email):t.isNullOrWhitespace(e.email)||(i.notes="Email: "+e.email+"\n"),i.login.password=t.getValueOrDefault(e.password),i.login.uris=t.makeUriArray(e.url),i.notes+=t.getValueOrDefault(e.description,""),null!=e.otp&&(i.login.totp=t.getValueOrDefault(e.otp.secret)),null!=e.custom_fields&&e.custom_fields.forEach((function(e){switch(e.field_type){case"text":case"password":t.processKvp(i,e.label,e.value)}})),t.convertToNoteIfNeeded(i),t.cleanupCipher(i),n.ciphers.push(i)})),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.PassmanJsonImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=n(156),l=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){var r=t.isNullOrWhitespace(e.Tags)?null:JSON.parse(e.Tags),i=null!=r&&null!=r.tags&&r.tags.length>0?r.tags.map((function(e){try{var n=JSON.parse(e);return t.getValueOrDefault(n.tag)}catch(r){}return null})).filter((function(e){return!t.isNullOrWhitespace(e)})):null;t.organization&&null!=i&&i.length>0?i.forEach((function(e){for(var t=!0,r=n.collections.length,i=0;i0&&t.processFolder(n,i[0]);var o=t.initLoginCipher();o.notes=t.getValueOrDefault(e.Notes,""),o.notes+="\n\n"+t.getValueOrDefault(e["Shared Notes"],"")+"\n",o.name=t.getValueOrDefault(e["Entry Name"],"--"),o.login.username=t.getValueOrDefault(e["User ID"]),o.login.password=t.getValueOrDefault(e.Password),o.login.uris=t.makeUriArray(e.URL),null!=e.__parsed_extra&&e.__parsed_extra.length>0&&e.__parsed_extra.forEach((function(e){t.isNullOrWhitespace(e)||(o.notes+="\n"+e)}));var a=t.isNullOrWhitespace(e["Extra Fields"])?null:JSON.parse(e["Extra Fields"]),l=null!=a&&null!=a.extraFields&&a.extraFields.length>0?a.extraFields.map((function(e){try{return JSON.parse(e)}catch(t){}return null})):null;null!=l&&l.forEach((function(e){null!=e&&t.processKvp(o,e.name,e.data)})),t.cleanupCipher(o),n.ciphers.push(o)})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.PasspackCsvImporter=l},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!1);if(null==r)return n.success=!1,Promise.resolve(n);var i=!0;return r.forEach((function(e){if(!(5!==e.length&&e.length<9)){var r=10===e.length&&"0"===e[0],o=t.initLoginCipher();if(o.name=t.getValueOrDefault(e[r?1:0],"--"),o.login.username=t.getValueOrDefault(e[r?2:1]),o.login.password=t.getValueOrDefault(e[r?3:2]),5===e.length)i=!1,o.notes=t.getValueOrDefault(e[4]),o.login.uris=t.makeUriArray(e[3]);else{var a=t.getValueOrDefault(e[r?9:8],"(None)"),s="(None)"!==a?a.split("\\").join("/"):null;null!=s&&(s=a.split(" > ").join("/"),s=a.split(">").join("/")),t.processFolder(n,s),o.notes=t.getValueOrDefault(e[r?5:3]),o.login.uris=t.makeUriArray(e[4])}t.convertToNoteIfNeeded(o),t.cleanupCipher(o),n.ciphers.push(o)}})),i&&this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n)},t}(o.BaseImporter);t.PasswordAgentCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=n(88),l=n(127),c=n(39),p=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=JSON.parse(e);if(null==r||null==r.items)return n.success=!1,Promise.resolve(n);var i=new Map;r.folders.forEach((function(e){i.set(e.id,e.name)}));var o=new Map;return i.forEach((function(e,t){o.set(t,n.folders.length);var r=new l.FolderView;r.name=e,n.folders.push(r)})),r.items.forEach((function(e){var r=t.initLoginCipher();if(r.name=t.getValueOrDefault(e.name,"--"),r.login.uris=t.makeUriArray(e.login_url),null!=e.folder&&o.has(e.folder)&&n.folderRelationships.push([n.ciphers.length,o.get(e.folder)]),null!=e.identifiers){for(var i in t.isNullOrWhitespace(e.identifiers.notes)||(r.notes=e.identifiers.notes.split("\\r\\n").join("\n").split("\\n").join("\n")),"CreditCard"===e.type&&(r.card=new s.CardView,r.type=c.CipherType.Card),e.identifiers)if(e.identifiers.hasOwnProperty(i)){var a=e.identifiers[i],l=null!=a?a.toString():null;if(!t.isNullOrWhitespace(l)&&"notes"!==i&&"ignoreItemInSecurityScore"!==i)if("custom_fields"!==i){if(r.type===c.CipherType.Card){if("cardNumber"===i){r.card.number=l,r.card.brand=t.getCardBrand(l);continue}if("nameOnCard"===i){r.card.cardholderName=l;continue}if("security_code"===i){r.card.code=l;continue}if("expires"===i){try{var p=new Date(l);r.card.expYear=p.getFullYear().toString(),r.card.expMonth=(p.getMonth()+1).toString()}catch(u){}continue}if("cardType"===i)continue}else{if(("username"===i||"email"===i)&&t.isNullOrWhitespace(r.login.username)){r.login.username=l;continue}if("password"===i){r.login.password=l;continue}if("totp"===i){r.login.totp=l;continue}if((null==r.login.uris||0===r.login.uris.length)&&t.uriFieldNames.indexOf(i)>-1){r.login.uris=t.makeUriArray(l);continue}}t.processKvp(r,i,l)}else a.forEach((function(e){t.processKvp(r,e.name,e.value)}))}t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)}})),n.success=!0,Promise.resolve(n)},t}(o.BaseImporter);t.PasswordBossJsonImporter=p},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseXml(e);if(null==r)return n.success=!1,Promise.resolve(n);var i=r.querySelectorAll("PasswordManager > record");return Array.from(i).forEach((function(e){var r=t.querySelectorDirectChild(e,"Category"),i=null==r||t.isNullOrWhitespace(r.textContent)||"Unfiled"===r.textContent?null:r.textContent;t.processFolder(n,i);var o=t.querySelectorDirectChild(e,"Account-Name"),a=t.querySelectorDirectChild(e,"User-Id"),s=t.querySelectorDirectChild(e,"Password"),l=t.querySelectorDirectChild(e,"URL"),c=t.querySelectorDirectChild(e,"Notes"),p=t.initLoginCipher();p.name=null!=o?t.getValueOrDefault(o.textContent,"--"):"--",p.notes=null!=c?t.getValueOrDefault(c.textContent):"",p.login.username=null!=a?t.getValueOrDefault(a.textContent):null,p.login.password=null!=s?t.getValueOrDefault(s.textContent):null,p.login.uris=null!=l?t.makeUriArray(l.textContent):null;for(var u=[],d=1;d<=10;d++)u.push("Attribute-"+d);t.querySelectorAllDirectChild(e,u.join(",")).forEach((function(e){t.isNullOrWhitespace(e.textContent)||"null"===e.textContent||t.processKvp(p,e.tagName,e.textContent)})),t.cleanupCipher(p),n.ciphers.push(p)})),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n)},t}(o.BaseImporter);t.PasswordDragonXmlImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseXml(e);if(null==r)return n.success=!1,Promise.resolve(n);var i=r.querySelector("passwordsafe");if(null==i)return n.errorMessage="Missing `passwordsafe` node.",n.success=!1,Promise.resolve(n);var o=i.getAttribute("delimiter"),s=r.querySelectorAll("passwordsafe > entry");return Array.from(s).forEach((function(e){var r=t.querySelectorDirectChild(e,"group"),i=null==r||t.isNullOrWhitespace(r.textContent)?null:r.textContent.split(".").join("/");t.processFolder(n,i);var a=t.querySelectorDirectChild(e,"title"),s=t.querySelectorDirectChild(e,"username"),l=t.querySelectorDirectChild(e,"email"),c=t.querySelectorDirectChild(e,"password"),p=t.querySelectorDirectChild(e,"url"),u=t.querySelectorDirectChild(e,"notes"),d=t.initLoginCipher();d.name=null!=a?t.getValueOrDefault(a.textContent,"--"):"--",d.notes=null!=u?t.getValueOrDefault(u.textContent,"").split(o).join("\n"):null,d.login.username=null!=s?t.getValueOrDefault(s.textContent):null,d.login.password=null!=c?t.getValueOrDefault(c.textContent):null,d.login.uris=null!=p?t.makeUriArray(p.textContent):null,t.isNullOrWhitespace(d.login.username)&&null!=l?d.login.username=t.getValueOrDefault(l.textContent):null==l||t.isNullOrWhitespace(l.textContent)||(d.notes=t.isNullOrWhitespace(d.notes)?"Email: "+l.textContent:d.notes+"\nEmail: "+l.textContent),t.cleanupCipher(d),n.ciphers.push(d)})),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n)},t}(o.BaseImporter);t.PasswordSafeXmlImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!1);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){if(!(e.length<1)){e.length>5&&t.processFolder(n,e[5]);var r=t.initLoginCipher();r.name=t.getValueOrDefault(e[0],"--"),e.length>4&&(r.notes=t.getValueOrDefault(e[4],"").split("¬").join("\n")),e.length>2&&(r.login.username=t.getValueOrDefault(e[2])),e.length>3&&(r.login.password=t.getValueOrDefault(e[3])),e.length>1&&(r.login.uris=t.makeUriArray(e[1])),t.cleanupCipher(r),n.ciphers.push(r)}})),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.PasswordWalletTxtImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(39),s=n(26),l=n(88),c=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new s.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){if("true"!==e.trash){var r=t.initLoginCipher();if(r.name=t.getValueOrDefault(e.name),r.notes=t.getValueOrDefault(e.notes),"LoginItem"===e.type)r.login.uris=t.makeUriArray(e.website),r.login.password=t.getValueOrDefault(e.password),r.login.username=t.getValueOrDefault(e.username);else if("CreditCardItem"===e.type){r.type=a.CipherType.Card,r.card=new l.CardView,r.card.cardholderName=t.getValueOrDefault(e.cardholder),r.card.number=t.getValueOrDefault(e.number),r.card.brand=t.getCardBrand(r.card.number),r.card.code=t.getValueOrDefault(e.verification);try{var i=t.getValueOrDefault(e.expiryMonth);if(null!=i){var o=parseInt(i,null);null!=o&&o>=1&&o<=12&&(r.card.expMonth=o.toString())}}catch(d){}try{var s=t.getValueOrDefault(e.expiryYear);if(null!=s){var c=parseInt(s,null);null!=c&&(r.card.expYear=c.toString())}}catch(m){}var p=t.getValueOrDefault(e.pin);null!=p&&t.processKvp(r,"PIN",p);var u=t.getValueOrDefault(e.zipCode);null!=u&&t.processKvp(r,"Zip Code",u)}t.cleanupCipher(r),n.ciphers.push(r)}})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.RememBearCsvImporter=c},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);if(null==r)return n.success=!1,Promise.resolve(n);var i=1;return r.forEach((function(e){var o=!t.isNullOrWhitespace(e.Folder)&&e.Folder.startsWith("/")?e.Folder.replace("/",""):e.Folder,a=t.isNullOrWhitespace(o)?null:o;t.processFolder(n,a);var s=t.initLoginCipher();if(s.notes=t.getValueOrDefault(e.Note),s.name=t.getValueOrDefault(e.Name,"--"),s.login.username=t.getValueOrDefault(e.Login),s.login.password=t.getValueOrDefault(e.Pwd),s.login.uris=t.makeUriArray(e.Url),!t.isNullOrWhitespace(e.Rf_fields)){var l=[e.Rf_fields];null!=e.__parsed_extra&&e.__parsed_extra.length>0&&(l=l.concat(e.__parsed_extra)),l.forEach((function(e){var n=e.split(":");if(!(n.length<3)){var r="-no-name-"===n[0]?null:n[0],i=4===n.length&&"rck"===n[2]?n[1]:n[2];t.processKvp(s,r,i)}}))}t.convertToNoteIfNeeded(s),t.cleanupCipher(s),i===r.length&&"--"===s.name&&t.isNullOrWhitespace(s.login.password)||(n.ciphers.push(s),i++)})),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n)},t}(o.BaseImporter);t.RoboFormCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=n(127),l=n(94),c=n(39),p=n(106),u=n(1022),d=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseXml(e);if(null==r)return n.success=!1,Promise.resolve(n);if(null==r.querySelector("database"))return n.errorMessage="Missing `database` node.",n.success=!1,Promise.resolve(n);var i=new Map;return Array.from(r.querySelectorAll("database > label")).forEach((function(e){var r=e.getAttribute("name"),o=e.getAttribute("id");if(!t.isNullOrWhitespace(r)&&!t.isNullOrWhitespace(o)){i.set(o,n.folders.length);var a=new s.FolderView;a.name=r,n.folders.push(a)}})),Array.from(r.querySelectorAll("database > card")).forEach((function(e){if("true"!==e.getAttribute("template")&&"true"!==e.getAttribute("deleted")){var r=t.querySelectorDirectChild(e,"label_id");if(null!=r){var o=r.textContent;!t.isNullOrWhitespace(o)&&i.has(o)&&n.folderRelationships.push([n.ciphers.length,i.get(o)])}var a=t.initLoginCipher();a.name=t.getValueOrDefault(e.getAttribute("title"),"--"),"true"===e.getAttribute("star")&&(a.favorite=!0),"note"===e.getAttribute("type")?(a.type=c.CipherType.SecureNote,a.secureNote=new l.SecureNoteView,a.secureNote.type=p.SecureNoteType.Generic):Array.from(t.querySelectorAllDirectChild(e,"field")).forEach((function(e){var n=e.textContent;if(!t.isNullOrWhitespace(n)){var r=e.getAttribute("name"),i=t.getValueOrDefault(e.getAttribute("type"),"").toLowerCase();"login"===i?a.login.username=n:"password"===i||"secret"===i?t.processKvp(a,r,n,u.FieldType.Hidden):"one_time_password"===i?a.login.totp=n:"notes"===i?a.notes+=n+"\n":"weblogin"===i||"website"===i?a.login.uris=t.makeUriArray(n):t.processKvp(a,r,n)}})),Array.from(t.querySelectorAllDirectChild(e,"notes")).forEach((function(e){a.notes+=e.textContent+"\n"})),t.setPassword(a),t.cleanupCipher(a),n.ciphers.push(a)}})),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n)},t.prototype.setPassword=function(e){var t=e.fields.filter((function(e){return e.type===u.FieldType.Hidden}));if(t.length){for(var n,r=0,i=t;r Database > Logins > Login");return Array.from(i).forEach((function(e){var i=e.getAttribute("ID");if(!t.isNullOrWhitespace(i)){var o=e.getAttribute("Name"),a=e.getAttribute("Password"),s=null,l=null,c=null,p=null,u=null,d=r.querySelector('root > Database > Accounts > Account > LoginLinks > Login[SourceLoginID="'+i+'"]');if(null!=d){var m=d.parentElement.parentElement;null!=m&&(s=m.getAttribute("Name"),l=m.getAttribute("Link"),p=m.getAttribute("ParentID"),c=m.getAttribute("Comments"),t.isNullOrWhitespace(c)||(c=c.split("/n").join("\n")))}t.isNullOrWhitespace(p)||(u=t.buildGroupText(r,p,""),t.processFolder(n,u));var h=t.initLoginCipher();h.name=t.getValueOrDefault(s,"--"),h.notes=t.getValueOrDefault(c),h.login.username=t.getValueOrDefault(o),h.login.password=t.getValueOrDefault(a),h.login.uris=t.makeUriArray(l),t.cleanupCipher(h),n.ciphers.push(h)}})),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n)},t.prototype.buildGroupText=function(e,t,n){var r=e.querySelector('root > Database > Groups > Group[ID="'+t+'"]');return null==r?n:(this.isNullOrWhitespace(n)||(n="/"+n),n=r.getAttribute("Name")+n,this.buildGroupText(e,r.getAttribute("ParentID"),n))},t}(o.BaseImporter);t.StickyPasswordXmlImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=n(88),l=n(94),c=n(39),p=n(106),u=["kind","autologin","favorite","hexcolor","protectedwithpassword","subdomainonly","type","tk_export_version","note","title","document_content"],d=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){var r=t.initLoginCipher();if(r.favorite="true"===t.getValueOrDefault(e.favorite,"").toLowerCase(),r.name=t.getValueOrDefault(e.name,"--"),r.notes=t.getValueOrDefault(e.memo,""),r.login.username=t.getValueOrDefault(e.login),r.login.password=t.getValueOrDefault(e.password),r.login.uris=t.makeUriArray(e.url),"login"!==e.kind&&(r.name=t.getValueOrDefault(e.title,"--"),r.notes=t.getValueOrDefault(e.note,"")),"cc"===e.kind){if(r.type=c.CipherType.Card,r.card=new s.CardView,r.card.cardholderName=t.getValueOrDefault(e.cardholder),r.card.number=t.getValueOrDefault(e.number),r.card.brand=t.getCardBrand(r.card.number),!t.isNullOrWhitespace(e.expiryDate))try{var i=new Date(e.expiryDate);r.card.expYear=i.getFullYear().toString(),r.card.expMonth=(i.getMonth()+1).toString()}catch(a){}}else if("login"!==e.kind)for(var o in r.type=c.CipherType.SecureNote,r.secureNote=new l.SecureNoteView,r.secureNote.type=p.SecureNoteType.Generic,t.isNullOrWhitespace(r.notes)||(r.notes=t.getValueOrDefault(e.document_content,"")),e)e.hasOwnProperty(o)&&u.indexOf(o.toLowerCase())<0&&!t.isNullOrWhitespace(e[o])&&t.processKvp(r,o,e[o]);t.cleanupCipher(r),n.ciphers.push(r)})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.TrueKeyCsvImporter=d},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!1);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){if(5===e.length){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e[0],"--"),r.notes=t.getValueOrDefault(e[4]),r.login.username=t.getValueOrDefault(e[1]),r.login.password=t.getValueOrDefault(e[2]),r.login.uris=t.makeUriArray(e[3]),t.cleanupCipher(r),n.ciphers.push(r)}})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.UpmCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.Name,"--"),r.login.username=t.getValueOrDefault(e["User name"]),r.login.password=t.getValueOrDefault(e.Password),r.login.uris=t.makeUriArray(e.URL),t.cleanupCipher(r),n.ciphers.push(r)})),n.success=!0,Promise.resolve(n))},t}(o.BaseImporter);t.YotiCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=n(26),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach((function(e){if(!t.isNullOrWhitespace(e["Password Name"])||!t.isNullOrWhitespace(e["Secret Name"])){t.processFolder(n,t.getValueOrDefault(e.ChamberName));var r=t.initLoginCipher();r.favorite="1"===t.getValueOrDefault(e.Favorite,"0"),r.notes=t.getValueOrDefault(e.Notes),r.name=t.getValueOrDefault(e["Password Name"],t.getValueOrDefault(e["Secret Name"],"--")),r.login.uris=t.makeUriArray(t.getValueOrDefault(e["Password URL"],t.getValueOrDefault(e["Secret URL"]))),t.parseData(r,e.SecretData),t.parseData(r,e.CustomData),t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)}})),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n))},t.prototype.parseData=function(e,t){var n=this;this.isNullOrWhitespace(t)||this.splitNewLine(t).forEach((function(t){var r=t.indexOf(":");if(!(r<0)){var i=t.substring(0,r),o=t.length>r?t.substring(r+1):null;if(!n.isNullOrWhitespace(i)&&!n.isNullOrWhitespace(o)&&"SecretType"!==i){var a=i.toLowerCase();null==e.login.username&&n.usernameFieldNames.indexOf(a)>-1?e.login.username=o:null==e.login.password&&n.passwordFieldNames.indexOf(a)>-1?e.login.password=o:n.processKvp(e,i,o)}}}))},t}(o.BaseImporter);t.ZohoVaultCsvImporter=s},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]t.minComplexity&&(t.minComplexity=e.data.minComplexity),null!=e.data.minLength&&e.data.minLength>t.minLength&&(t.minLength=e.data.minLength),e.data.requireUpper&&(t.requireUpper=!0),e.data.requireLower&&(t.requireLower=!0),e.data.requireNumbers&&(t.requireNumbers=!0),e.data.requireSpecial&&(t.requireSpecial=!0))})),[2,t]}}))}))},e.prototype.evaluateMasterPassword=function(e,t,n){return null==n||!(n.minComplexity>0&&n.minComplexity>e)&&(!(n.minLength>0&&n.minLength>t.length)&&((!n.requireUpper||t.toLocaleLowerCase()!==t)&&((!n.requireLower||t.toLocaleUpperCase()!==t)&&(!(n.requireNumbers&&!/[0-9]/.test(t))&&!(n.requireSpecial&&!/[!@#$%\^&*]/g.test(t))))))},e}();t.PolicyService=c},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.minComplexity=0,t.minLength=0,t.requireUpper=!1,t.requireLower=!1,t.requireNumbers=!1,t.requireSpecial=!1,t}return i(t,e),t}(n(81).default);t.MasterPasswordPolicyOptions=o},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]"))},e.prototype.indexCiphers=function(e,t){return r(this,void 0,void 0,(function(){var n,r,s=this;return i(this,(function(i){switch(i.label){case 0:return this.indexing?[2]:(this.logService.time("search indexing"),this.indexing=!0,this.indexedEntityId=e,this.index=null,(n=new o.Builder).ref("id"),n.field("shortid",{boost:100,extractor:function(e){return e.id.substr(0,8)}}),n.field("name",{boost:10}),n.field("subtitle",{boost:5,extractor:function(e){return null!=e.subTitle&&e.type===a.CipherType.Card?e.subTitle.replace(/\*/g,""):e.subTitle}}),n.field("notes"),n.field("login.username",{extractor:function(e){return e.type===a.CipherType.Login&&null!=e.login?e.login.username:null}}),n.field("login.uris",{boost:2,extractor:function(e){return s.uriExtractor(e)}}),n.field("fields",{extractor:function(e){return s.fieldExtractor(e,!1)}}),n.field("fields_joined",{extractor:function(e){return s.fieldExtractor(e,!0)}}),n.field("attachments",{extractor:function(e){return s.attachmentExtractor(e,!1)}}),n.field("attachments_joined",{extractor:function(e){return s.attachmentExtractor(e,!0)}}),n.field("organizationid",{extractor:function(e){return e.organizationId}}),(r=t)?[3,2]:[4,this.cipherService.getAllDecrypted()]);case 1:r=i.sent(),i.label=2;case 2:return(t=r).forEach((function(e){return n.add(e)})),this.index=n.build(),this.indexing=!1,this.logService.timeEnd("search indexing"),[2]}}))}))},e.prototype.searchCiphers=function(e,t,n){return void 0===t&&(t=null),void 0===n&&(n=null),r(this,void 0,void 0,(function(){var r,a,s,l,c;return i(this,(function(i){switch(i.label){case 0:return r=[],null!=e&&(e=e.trim().toLowerCase()),""===e&&(e=null),null!=n?[3,2]:[4,this.cipherService.getAllDecrypted()];case 1:n=i.sent(),i.label=2;case 2:return null!=t&&Array.isArray(t)&&t.length>0?n=n.filter((function(e){return t.every((function(t){return null==t||t(e)}))})):null!=t&&(n=n.filter(t)),this.isSearchable(e)?this.indexing?[4,new Promise((function(e){return setTimeout(e,250)}))]:[3,5]:[2,n];case 3:return i.sent(),this.indexing?[4,new Promise((function(e){return setTimeout(e,500)}))]:[3,5];case 4:i.sent(),i.label=5;case 5:if(null==(a=this.getIndexForSearch()))return[2,this.searchCiphersBasic(n,e)];if(s=new Map,n.forEach((function(e){return s.set(e.id,e)})),l=null,null!=e&&e.length>1&&0===e.indexOf(">"))try{l=a.search(e.substr(1).trim())}catch(p){}else c=o.Query.wildcard.LEADING|o.Query.wildcard.TRAILING,l=a.query((function(t){o.tokenizer(e).forEach((function(e){var n=e.toString();t.term(n,{fields:["name"],wildcard:c}),t.term(n,{fields:["subtitle"],wildcard:c}),t.term(n,{fields:["login.uris"],wildcard:c}),t.term(n,{})}))}));return null!=l&&l.forEach((function(e){s.has(e.ref)&&r.push(s.get(e.ref))})),[2,r]}}))}))},e.prototype.searchCiphersBasic=function(e,t,n){return void 0===n&&(n=!1),t=t.trim().toLowerCase(),e.filter((function(e){return n===e.isDeleted&&(null!=e.name&&e.name.toLowerCase().indexOf(t)>-1||(!!(t.length>=8&&e.id.startsWith(t))||(null!=e.subTitle&&e.subTitle.toLowerCase().indexOf(t)>-1||!!(e.login&&null!=e.login.uri&&e.login.uri.toLowerCase().indexOf(t)>-1))))}))},e.prototype.searchSends=function(e,t){return t=t.trim().toLocaleLowerCase(),e.filter((function(e){var n,r,i;return null!=e.name&&e.name.toLowerCase().indexOf(t)>-1||(!!(t.length>=8&&(e.id.startsWith(t)||e.accessId.toLocaleLowerCase().startsWith(t)||null!=(null===(n=e.file)||void 0===n?void 0:n.id)&&e.file.id.startsWith(t)))||(null!=e.notes&&e.notes.toLowerCase().indexOf(t)>-1||(null!=(null===(r=e.text)||void 0===r?void 0:r.text)&&e.text.text.toLowerCase().indexOf(t)>-1||(null!=(null===(i=e.file)||void 0===i?void 0:i.fileName)&&e.file.fileName.toLowerCase().indexOf(t)>-1||void 0))))}))},e.prototype.getIndexForSearch=function(){return this.index},e.prototype.fieldExtractor=function(e,t){if(!e.hasFields)return null;var n=[];return e.fields.forEach((function(e){null!=e.name&&n.push(e.name),e.type===s.FieldType.Text&&null!=e.value&&n.push(e.value)})),0===(n=n.filter((function(e){return""!==e.trim()}))).length?null:t?n.join(" "):n},e.prototype.attachmentExtractor=function(e,t){if(!e.hasAttachments)return null;var n=[];return e.attachments.forEach((function(e){null!=e&&null!=e.fileName&&(t&&e.fileName.indexOf(".")>-1?n.push(e.fileName.substr(0,e.fileName.lastIndexOf("."))):n.push(e.fileName))})),0===(n=n.filter((function(e){return""!==e.trim()}))).length?null:t?n.join(" "):n},e.prototype.uriExtractor=function(e){if(e.type!==a.CipherType.Login||null==e.login||!e.login.hasUris)return null;var t=[];return e.login.uris.forEach((function(e){if(null!=e.uri&&""!==e.uri)if(null==e.hostname){var n=e.uri;if(e.match!==l.UriMatchType.RegularExpression){var r=n.indexOf("://");r>-1&&(n=n.substr(r+3));var i=n.search(/\?|&|#/);i>-1&&(n=n.substring(0,i))}t.push(n)}else t.push(e.hostname)})),t.length>0?t:null},e}();t.SearchService=c},,function(e,t,n){"use strict";(function(e){var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]-1||n.indexOf(" Version/9.")>-1)}return e.prototype.pbkdf2=function(e,t,n,s){return r(this,void 0,void 0,(function(){var r,l,c,p,u,d,m,h,f;return i(this,(function(i){switch(i.label){case 0:return this.isIE||this.isOldSafari?(r="sha256"===n?32:64,l=this.toByteString(e),c=this.toByteString(t),p=o.pbkdf2(l,c,s,r,n),[2,a.Utils.fromByteStringToArray(p).buffer]):(u="sha256"===n?256:512,d=this.toBuf(e),m=this.toBuf(t),h={name:"PBKDF2",salt:m,iterations:s,hash:{name:this.toWebCryptoAlgorithm(n)}},[4,this.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveBits"])]);case 1:return f=i.sent(),[4,this.subtle.deriveBits(h,f,u)];case 2:return[2,i.sent()]}}))}))},e.prototype.hkdf=function(e,t,n,o,a){return r(this,void 0,void 0,(function(){var r,s,l,c;return i(this,(function(i){switch(i.label){case 0:return r=this.toBuf(t),s=this.toBuf(n),l={name:"HKDF",salt:r,info:s,hash:{name:this.toWebCryptoAlgorithm(a)}},[4,this.subtle.importKey("raw",e,{name:"HKDF"},!1,["deriveBits"])];case 1:return c=i.sent(),[4,this.subtle.deriveBits(l,c,8*o)];case 2:return[2,i.sent()]}}))}))},e.prototype.hkdfExpand=function(e,t,n,o){return r(this,void 0,void 0,(function(){var r,a,s,l,c,p,u,d,m,h;return i(this,(function(i){switch(i.label){case 0:if(n>255*(r="sha256"===o?32:64))throw new Error("outputByteSize is too large.");if(new Uint8Array(e).length=n)return[3,4];i.label=3;case 3:return d++,[3,1];case 4:return[2,u.slice(0,n).buffer]}}))}))},e.prototype.hash=function(e,t){return r(this,void 0,void 0,(function(){var n,r,s;return i(this,(function(i){switch(i.label){case 0:return this.isIE&&"sha1"===t||"md5"===t?(n="md5"===t?o.md.md5.create():o.md.sha1.create(),r=this.toByteString(e),n.update(r,"raw"),[2,a.Utils.fromByteStringToArray(n.digest().data).buffer]):(s=this.toBuf(e),[4,this.subtle.digest({name:this.toWebCryptoAlgorithm(t)},s)]);case 1:return[2,i.sent()]}}))}))},e.prototype.hmac=function(e,t,n){return r(this,void 0,void 0,(function(){var r,s,l,c,p;return i(this,(function(i){switch(i.label){case 0:return this.isIE&&"sha512"===n?(r=o.hmac.create(),s=this.toByteString(t),l=this.toByteString(e),r.start(n,s),r.update(l,"raw"),[2,a.Utils.fromByteStringToArray(r.digest().data).buffer]):(c={name:"HMAC",hash:{name:this.toWebCryptoAlgorithm(n)}},[4,this.subtle.importKey("raw",t,c,!1,["sign"])]);case 1:return p=i.sent(),[4,this.subtle.sign(c,p,e)];case 2:return[2,i.sent()]}}))}))},e.prototype.compare=function(e,t){return r(this,void 0,void 0,(function(){var n,r,o,a,s,l,c,p;return i(this,(function(i){switch(i.label){case 0:return[4,this.randomBytes(32)];case 1:return n=i.sent(),r={name:"HMAC",hash:{name:"SHA-256"}},[4,this.subtle.importKey("raw",n,r,!1,["sign"])];case 2:return o=i.sent(),[4,this.subtle.sign(r,o,e)];case 3:return a=i.sent(),[4,this.subtle.sign(r,o,t)];case 4:if(s=i.sent(),a.byteLength!==s.byteLength)return[2,!1];for(l=new Uint8Array(a),c=new Uint8Array(s),p=0;p0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]"})),n.body=r,n.bodyOutputType=s.BodyOutputType.TrustedHtml}null!=e.options&&(!0===e.options.trustedHtml&&(n.bodyOutputType=s.BodyOutputType.TrustedHtml),null!=e.options.timeout&&e.options.timeout>0&&(n.timeout=e.options.timeout)),this.toasterService.popAsync(n)},e.prototype.idleStateChanged=function(){this.isIdle?this.notificationsService.disconnectFromInactivity():this.notificationsService.reconnectFromActivity()},e.prototype.setFullWidth=function(){return r(this,void 0,void 0,(function(){return i(this,(function(e){switch(e.label){case 0:return[4,this.storageService.get("enableFullWidth")];case 1:return e.sent()?document.body.classList.add("full-width"):document.body.classList.remove("full-width"),[2]}}))}))},e.ɵfac=function(t){return new(t||e)(u.ɵɵdirectiveInject(d.BroadcasterService),u.ɵɵdirectiveInject(m.UserService),u.ɵɵdirectiveInject(h.TokenService),u.ɵɵdirectiveInject(f.FolderService),u.ɵɵdirectiveInject(v.SettingsService),u.ɵɵdirectiveInject(y.SyncService),u.ɵɵdirectiveInject(g.PasswordGenerationService),u.ɵɵdirectiveInject(x.CipherService),u.ɵɵdirectiveInject(b.AuthService),u.ɵɵdirectiveInject(S.Router),u.ɵɵdirectiveInject(w.ToasterService),u.ɵɵdirectiveInject(C.I18nService),u.ɵɵdirectiveInject(I.PlatformUtilsService),u.ɵɵdirectiveInject(u.NgZone),u.ɵɵdirectiveInject(E.VaultTimeoutService),u.ɵɵdirectiveInject(P.StorageService),u.ɵɵdirectiveInject(k.CryptoService),u.ɵɵdirectiveInject(_.CollectionService),u.ɵɵdirectiveInject(A.DomSanitizer),u.ɵɵdirectiveInject(O.SearchService),u.ɵɵdirectiveInject(T.NotificationsService),u.ɵɵdirectiveInject(M.RouterService),u.ɵɵdirectiveInject(B.StateService),u.ɵɵdirectiveInject(D.EventService),u.ɵɵdirectiveInject(R.PolicyService))},e.ɵcmp=u.ɵɵdefineComponent({type:e,selectors:[["app-root"]],decls:4,vars:1,consts:[["aria-live","polite",3,"toasterconfig"]],template:function(e,t){1&e&&(u.ɵɵelement(0,"toaster-container",0),u.ɵɵtext(1,"\n"),u.ɵɵelement(2,"router-outlet"),u.ɵɵtext(3,"\n")),2&e&&u.ɵɵproperty("toasterconfig",t.toasterConfig)},directives:[w.ToasterContainerComponent,S.RouterOutlet],encapsulation:2}),e}();t.AppComponent=V},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(0),i=function(){function e(e){this.el=e}return e.prototype.onClick=function(){this.el.nativeElement.blur()},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(r.ElementRef))},e.ɵdir=r.ɵɵdefineDirective({type:e,selectors:[["","appBlurClick",""]],hostBindings:function(e,t){1&e&&r.ɵɵlistener("click",(function(){return t.onClick()}))}}),e}();t.BlurClickDirective=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(0),i=function(){function e(e){this.elRef=e,this.el=null,this.el=e.nativeElement}return e.prototype.ngOnInit=function(){var e=this;this.formEls=Array.from(this.el.querySelectorAll('input:not([type="hidden"]), select, textarea')),this.formEls.forEach((function(t){t.addEventListener("focus",(function(t){e.el.classList.add("active")}),!1),t.addEventListener("blur",(function(t){e.el.classList.remove("active")}),!1)}))},e.prototype.onClick=function(e){var t=e.target;if((t===this.el||t.classList.contains("progress")||t.classList.contains("progress-bar"))&&this.formEls.length>0){var n=this.formEls[0];if("input"===n.tagName.toLowerCase()){var r=n;if(null!=r.type&&"checkbox"===r.type.toLowerCase())return void r.click()}n.focus()}},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(r.ElementRef))},e.ɵdir=r.ɵɵdefineDirective({type:e,selectors:[["","appBoxRow",""]],hostBindings:function(e,t){1&e&&r.ɵɵlistener("click",(function(e){return t.onClick(e)}))}}),e}();t.BoxRowDirective=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(0),i=function(){function e(){}return e.prototype.transform=function(e,t,n){return void 0===n&&(n=!1),null==e||0===e.length?[]:null==t||t.length<2?e.filter((function(e){return n!==e.isDeleted})):(t=t.trim().toLowerCase(),e.filter((function(e){return n===e.isDeleted&&(null!=e.name&&e.name.toLowerCase().indexOf(t)>-1||(!!(t.length>=8&&e.id.startsWith(t))||(null!=e.subTitle&&e.subTitle.toLowerCase().indexOf(t)>-1||!!(e.login&&null!=e.login.uri&&e.login.uri.toLowerCase().indexOf(t)>-1))))})))},e.ɵfac=function(t){return new(t||e)},e.ɵpipe=r.ɵɵdefinePipe({name:"searchCiphers",type:e,pure:!0}),e}();t.SearchCiphersPipe=i}]); +//# sourceMappingURL=main.a34068436143996e1f65.js.map \ No newline at end of file diff --git a/app/main.a34068436143996e1f65.js.map b/app/main.a34068436143996e1f65.js.map new file mode 100644 index 00000000..6c6c3a85 --- /dev/null +++ b/app/main.a34068436143996e1f65.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./jslib/src/abstractions/i18n.service.ts","webpack:///./jslib/src/abstractions/platformUtils.service.ts","webpack:///./jslib/src/abstractions/api.service.ts","webpack:///./jslib/src/abstractions/user.service.ts","webpack:///./jslib/src/angular/pipes/i18n.pipe.ts","webpack:///./jslib/src/abstractions/messaging.service.ts","webpack:///./jslib/src/angular/directives/api-action.directive.ts","webpack:///./jslib/src/angular/directives/a11y-title.directive.ts","webpack:///./jslib/src/abstractions/crypto.service.ts","webpack:///./jslib/src/abstractions/cipher.service.ts","webpack:///./jslib/src/models/response/baseResponse.ts","webpack:///./jslib/src/angular/components/callout.component.ts","webpack:///./jslib/src/angular/components/callout.component.html","webpack:///./jslib/src/importers/baseImporter.ts","webpack:///./jslib/src/models/domain/importResult.ts","webpack:///./jslib/src/misc/utils.ts","webpack:///./jslib/src/abstractions/passwordGeneration.service.ts","webpack:///./jslib/src/angular/directives/stop-click.directive.ts","webpack:///./jslib/src/abstractions/state.service.ts","webpack:///./jslib/src/enums/cipherType.ts","webpack:///./jslib/src/abstractions/collection.service.ts","webpack:///./jslib/src/abstractions/storage.service.ts","webpack:///./jslib/src/abstractions/policy.service.ts","webpack:///./jslib/src/angular/directives/input-verbatim.directive.ts","webpack:///./jslib/src/abstractions/folder.service.ts","webpack:///./jslib/src/angular/directives/stop-prop.directive.ts","webpack:///./jslib/src/abstractions/auth.service.ts","webpack:///./jslib/src/abstractions/sync.service.ts","webpack:///./jslib/src/abstractions/environment.service.ts","webpack:///./jslib/src/angular/directives/autofocus.directive.ts","webpack:///./jslib/src/services/constants.service.ts","webpack:///./jslib/src/abstractions/event.service.ts","webpack:///./jslib/src/models/request/passwordVerificationRequest.ts","webpack:///./jslib/src/abstractions/search.service.ts","webpack:///./jslib/src/models/domain/domainBase.ts","webpack:///./src/app/modal.component.ts","webpack:///./jslib/src/abstractions/audit.service.ts","webpack:///./jslib/src/models/view/cardView.ts","webpack:///./jslib/src/abstractions/vaultTimeout.service.ts","webpack:///./jslib/src/models/view/secureNoteView.ts","webpack:///./jslib/src/abstractions/token.service.ts","webpack:///./jslib/src/abstractions/cryptoFunction.service.ts","webpack:///./jslib/src/models/domain/encString.ts","webpack:///./jslib/src/enums/secureNoteType.ts","webpack:///./jslib/src/angular/components/icon.component.ts","webpack:///./jslib/src/angular/components/icon.component.html","webpack:///./jslib/src/angular/services/broadcaster.service.ts","webpack:///./jslib/src/enums/twoFactorProviderType.ts","webpack:///./jslib/src/abstractions/totp.service.ts","webpack:///./src/app/settings/payment.component.ts","webpack:///./src/app/settings/payment.component.html","webpack:///./jslib/src/enums/fieldType.ts","webpack:///./jslib/src/models/view/folderView.ts","webpack:///./src/app/components/avatar.component.ts","webpack:///./jslib/src/models/domain/collection.ts","webpack:///./jslib/src/enums/policyType.ts","webpack:///./src/app/settings/tax-info.component.ts","webpack:///./src/app/settings/tax-info.component.html","webpack:///./jslib/src/models/view/cipherView.ts","webpack:///./jslib/src/models/view/identityView.ts","webpack:///./jslib/src/models/data/collectionData.ts","webpack:///./jslib/src/models/view/collectionView.ts","webpack:///./jslib/src/enums/organizationUserStatusType.ts","webpack:///./jslib/src/models/data/cipherData.ts","webpack:///./jslib/src/models/view/loginView.ts","webpack:///./jslib/src/enums/sendType.ts","webpack:///./src/app/settings/two-factor-verify.component.ts","webpack:///./src/app/settings/two-factor-verify.component.html","webpack:///./jslib/src/abstractions/export.service.ts","webpack:///./jslib/src/models/domain/cipher.ts","webpack:///./jslib/src/abstractions/send.service.ts","webpack:///./jslib/src/models/view/fieldView.ts","webpack:///./jslib/src/models/request/cipherRequest.ts","webpack:///./jslib/src/models/response/errorResponse.ts","webpack:///./jslib/src/angular/services/validation.service.ts","webpack:///./src/app/services/router.service.ts","webpack:///./jslib/src/enums/kdfType.ts","webpack:///./src/app/components/password-strength.component.ts","webpack:///./src/app/components/password-strength.component.html","webpack:///./jslib/src/enums/organizationUserType.ts","webpack:///./jslib/src/angular/pipes/search.pipe.ts","webpack:///./src/app/services/event.service.ts","webpack:///./jslib/src/enums/eventType.ts","webpack:///./jslib/src/enums/paymentMethodType.ts","webpack:///./src/app/settings/two-factor-base.component.ts","webpack:///./src/app/tools/cipher-report.component.ts","webpack:///./jslib/src/models/view/loginUriView.ts","webpack:///./jslib/src/enums/uriMatchType.ts","webpack:///./src/app/vault/add-edit.component.ts","webpack:///./src/app/vault/add-edit.component.html","webpack:///./jslib/src/abstractions/import.service.ts","webpack:///./jslib/src/models/response/cipherResponse.ts","webpack:///./src/app/vault/ciphers.component.ts","webpack:///./src/app/vault/ciphers.component.html","webpack:///./jslib/src/enums/encryptionType.ts","webpack:///./jslib/src/services/auth.service.ts","webpack:///./jslib/src/models/request/selectionReadOnlyRequest.ts","webpack:///./jslib/src/enums/deviceType.ts","webpack:///./jslib/src/abstractions/settings.service.ts","webpack:///./jslib/src/enums/planType.ts","webpack:///./src/app/settings/organization-plans.component.ts","webpack:///./src/app/settings/organization-plans.component.html","webpack:///./jslib/src/models/domain/symmetricCryptoKey.ts","webpack:///./jslib/src/models/domain/card.ts","webpack:///./jslib/src/models/domain/field.ts","webpack:///./jslib/src/models/domain/identity.ts","webpack:///./jslib/src/models/domain/login.ts","webpack:///./jslib/src/models/domain/loginUri.ts","webpack:///./jslib/src/models/domain/secureNote.ts","webpack:///./jslib/src/angular/directives/true-false-value.directive.ts","webpack:///./jslib/src/models/response/selectionReadOnlyResponse.ts","webpack:///./jslib/src/models/response/profileResponse.ts","webpack:///./src/app/vault/groupings.component.ts","webpack:///./src/app/vault/groupings.component.html","webpack:///./jslib/src/models/domain/organization.ts","webpack:///./jslib/src/models/view/sendFileView.ts","webpack:///./jslib/src/models/view/sendTextView.ts","webpack:///./src/app/settings/organizations.component.ts","webpack:///./src/app/settings/organizations.component.html","webpack:///./src/app/layouts/navbar.component.ts","webpack:///./src/app/layouts/navbar.component.html","webpack:///./src/app/layouts/footer.component.ts","webpack:///./src/app/layouts/footer.component.html","webpack:///./jslib/src/models/request/keysRequest.ts","webpack:///./jslib/src/models/domain/policy.ts","webpack:///./jslib/src/models/data/policyData.ts","webpack:///./jslib/src/angular/components/change-password.component.ts","webpack:///./src/app/organizations/manage/entity-users.component.ts","webpack:///./src/app/organizations/manage/entity-users.component.html","webpack:///./src/app/organizations/manage/entity-events.component.ts","webpack:///./src/app/organizations/manage/entity-events.component.html","webpack:///./jslib/src/models/api/permissionsApi.ts","webpack:///./src/app/settings/api-key.component.ts","webpack:///./src/app/settings/api-key.component.html","webpack:///./src/app/settings/purge-vault.component.ts","webpack:///./src/app/settings/purge-vault.component.html","webpack:///./src/app/settings/user-billing.component.ts","webpack:///./src/app/settings/user-billing.component.html","webpack:///./src/app/settings/add-credit.component.ts","webpack:///./src/app/settings/add-credit.component.html","webpack:///./src/app/settings/adjust-payment.component.ts","webpack:///./src/app/settings/adjust-payment.component.html","webpack:///./src/app/settings/update-license.component.ts","webpack:///./src/app/settings/update-license.component.html","webpack:///./jslib/src/enums/productType.ts","webpack:///./src/app/settings/adjust-storage.component.ts","webpack:///./src/app/settings/adjust-storage.component.html","webpack:///./src/app/settings/two-factor-duo.component.ts","webpack:///./src/app/settings/two-factor-duo.component.html","webpack:///./src/app/settings/two-factor-setup.component.ts","webpack:///./src/app/settings/two-factor-setup.component.html","webpack:///./src/app/tools/export.component.ts","webpack:///./src/app/tools/export.component.html","webpack:///./src/app/tools/exposed-passwords-report.component.ts","webpack:///./src/app/tools/exposed-passwords-report.component.html","webpack:///./src/app/organizations/vault/add-edit.component.ts","webpack:///./jslib/src/models/data/attachmentData.ts","webpack:///./jslib/src/models/data/cardData.ts","webpack:///./jslib/src/models/data/fieldData.ts","webpack:///./jslib/src/models/data/identityData.ts","webpack:///./jslib/src/models/data/loginData.ts","webpack:///./jslib/src/models/data/loginUriData.ts","webpack:///./jslib/src/models/data/secureNoteData.ts","webpack:///./jslib/src/models/domain/attachment.ts","webpack:///./jslib/src/models/view/passwordHistoryView.ts","webpack:///./src/app/tools/import.component.ts","webpack:///./src/app/tools/import.component.html","webpack:///./src/app/tools/inactive-two-factor-report.component.ts","webpack:///./src/app/tools/inactive-two-factor-report.component.html","webpack:///./src/app/tools/reused-passwords-report.component.ts","webpack:///./src/app/tools/reused-passwords-report.component.html","webpack:///./src/app/tools/unsecured-websites-report.component.ts","webpack:///./src/app/tools/unsecured-websites-report.component.html","webpack:///./src/app/tools/weak-passwords-report.component.ts","webpack:///./src/app/tools/weak-passwords-report.component.html","webpack:///./src/app/vault/attachments.component.ts","webpack:///./src/app/vault/attachments.component.html","webpack:///./jslib/src/models/response/attachmentResponse.ts","webpack:///./jslib/src/models/response/collectionResponse.ts","webpack:///./jslib/src/models/response/domainsResponse.ts","webpack:///./jslib/src/models/response/folderResponse.ts","webpack:///./jslib/src/models/response/sendResponse.ts","webpack:///./jslib/src/models/api/sendFileApi.ts","webpack:///./jslib/src/models/api/sendTextApi.ts","webpack:///./src/app/organizations/vault/ciphers.component.ts","webpack:///./src/app/vault/collections.component.ts","webpack:///./src/app/vault/collections.component.html","webpack:///./src/app/organizations/vault/groupings.component.ts","webpack:///./src/app/vault/bulk-actions.component.ts","webpack:///./src/app/vault/bulk-actions.component.html","webpack:///./jslib/src/models/domain/sendFile.ts","webpack:///./jslib/src/models/domain/sendText.ts","webpack:///./jslib/src/models/request/cipherWithIdRequest.ts","webpack:///./jslib/src/models/request/folderRequest.ts","webpack:///./jslib/src/angular/directives/select-copy.directive.ts","webpack:///./jslib/src/angular/pipes/color-password.pipe.ts","webpack:///./jslib/src/models/data/folderData.ts","webpack:///./jslib/src/models/domain/folder.ts","webpack:///./jslib/src/abstractions/notifications.service.ts","webpack:///./$_lazy_route_resource lazy namespace object","webpack:///./src/app/layouts/frontend-layout.component.ts","webpack:///./src/app/layouts/frontend-layout.component.html","webpack:///./src/app/layouts/organization-layout.component.ts","webpack:///./src/app/layouts/organization-layout.component.html","webpack:///./src/app/layouts/user-layout.component.ts","webpack:///./src/app/layouts/user-layout.component.html","webpack:///./src/app/accounts/accept-emergency.component.ts","webpack:///./src/app/accounts/accept-emergency.component.html","webpack:///./src/app/accounts/accept-organization.component.ts","webpack:///./src/app/accounts/accept-organization.component.html","webpack:///./src/app/accounts/hint.component.ts","webpack:///./src/app/accounts/hint.component.html","webpack:///./src/app/accounts/lock.component.ts","webpack:///./src/app/accounts/lock.component.html","webpack:///./src/app/accounts/login.component.ts","webpack:///./src/app/accounts/login.component.html","webpack:///./src/app/accounts/recover-delete.component.ts","webpack:///./src/app/accounts/recover-delete.component.html","webpack:///./src/app/accounts/recover-two-factor.component.ts","webpack:///./src/app/accounts/recover-two-factor.component.html","webpack:///./src/app/accounts/register.component.ts","webpack:///./src/app/accounts/register.component.html","webpack:///./src/app/accounts/set-password.component.ts","webpack:///./src/app/accounts/set-password.component.html","webpack:///./src/app/accounts/sso.component.ts","webpack:///./src/app/accounts/sso.component.html","webpack:///./jslib/src/angular/components/sso.component.ts","webpack:///./src/app/accounts/two-factor.component.ts","webpack:///./src/app/accounts/two-factor.component.html","webpack:///./src/app/accounts/two-factor-options.component.ts","webpack:///./src/app/accounts/two-factor-options.component.html","webpack:///./jslib/src/models/request/twoFactorEmailRequest.ts","webpack:///./jslib/src/models/domain/authResult.ts","webpack:///./src/app/accounts/verify-email-token.component.ts","webpack:///./src/app/accounts/verify-email-token.component.html","webpack:///./src/app/accounts/verify-recover-delete.component.ts","webpack:///./src/app/accounts/verify-recover-delete.component.html","webpack:///./src/app/organizations/manage/collections.component.ts","webpack:///./src/app/organizations/manage/collections.component.html","webpack:///./src/app/organizations/manage/collection-add-edit.component.ts","webpack:///./src/app/organizations/manage/collection-add-edit.component.html","webpack:///./jslib/src/models/request/collectionRequest.ts","webpack:///./src/app/organizations/manage/events.component.ts","webpack:///./src/app/organizations/manage/events.component.html","webpack:///./src/app/organizations/manage/groups.component.ts","webpack:///./src/app/organizations/manage/groups.component.html","webpack:///./src/app/organizations/manage/group-add-edit.component.ts","webpack:///./src/app/organizations/manage/group-add-edit.component.html","webpack:///./src/app/organizations/manage/manage.component.ts","webpack:///./src/app/organizations/manage/manage.component.html","webpack:///./src/app/organizations/manage/people.component.ts","webpack:///./src/app/organizations/manage/people.component.html","webpack:///./src/app/organizations/manage/user-add-edit.component.ts","webpack:///./src/app/organizations/manage/user-add-edit.component.html","webpack:///./src/app/organizations/manage/user-confirm.component.ts","webpack:///./src/app/organizations/manage/user-confirm.component.html","webpack:///./src/app/organizations/manage/user-groups.component.ts","webpack:///./src/app/organizations/manage/user-groups.component.html","webpack:///./src/app/organizations/manage/policies.component.ts","webpack:///./src/app/organizations/manage/policies.component.html","webpack:///./jslib/src/abstractions/index.ts","webpack:///./src/app/organizations/manage/policy-edit.component.ts","webpack:///./src/app/organizations/manage/policy-edit.component.html","webpack:///./src/app/organizations/settings/account.component.ts","webpack:///./src/app/organizations/settings/account.component.html","webpack:///./jslib/src/models/request/organizationTaxInfoUpdateRequest.ts","webpack:///./jslib/src/models/request/taxInfoUpdateRequest.ts","webpack:///./src/app/organizations/settings/delete-organization.component.ts","webpack:///./src/app/organizations/settings/delete-organization.component.html","webpack:///./src/app/organizations/settings/organization-billing.component.ts","webpack:///./src/services/webConstants.ts","webpack:///./src/app/organizations/settings/organization-subscription.component.ts","webpack:///./src/app/organizations/settings/organization-subscription.component.html","webpack:///./src/app/organizations/settings/change-plan.component.ts","webpack:///./src/app/organizations/settings/change-plan.component.html","webpack:///./src/app/organizations/settings/download-license.component.ts","webpack:///./src/app/organizations/settings/download-license.component.html","webpack:///./src/app/organizations/settings/adjust-seats.component.ts","webpack:///./src/app/organizations/settings/adjust-seats.component.html","webpack:///./src/app/organizations/settings/settings.component.ts","webpack:///./src/app/organizations/settings/settings.component.html","webpack:///./src/app/organizations/settings/two-factor-setup.component.ts","webpack:///./src/app/settings/two-factor-authenticator.component.ts","webpack:///./src/app/settings/two-factor-authenticator.component.html","webpack:///./src/app/settings/two-factor-email.component.ts","webpack:///./src/app/settings/two-factor-email.component.html","webpack:///./src/app/settings/two-factor-recovery.component.ts","webpack:///./src/app/settings/two-factor-recovery.component.html","webpack:///./src/app/settings/two-factor-webauthn.component.ts","webpack:///./src/app/settings/two-factor-webauthn.component.html","webpack:///./src/app/settings/two-factor-yubikey.component.ts","webpack:///./src/app/settings/two-factor-yubikey.component.html","webpack:///./src/app/organizations/tools/export.component.ts","webpack:///./src/app/organizations/tools/exposed-passwords-report.component.ts","webpack:///./jslib/src/models/data/passwordHistoryData.ts","webpack:///./jslib/src/models/view/attachmentView.ts","webpack:///./jslib/src/models/domain/password.ts","webpack:///./jslib/src/models/request/cipherCreateRequest.ts","webpack:///./jslib/src/models/api/cardApi.ts","webpack:///./jslib/src/models/api/fieldApi.ts","webpack:///./jslib/src/models/api/identityApi.ts","webpack:///./jslib/src/models/api/loginApi.ts","webpack:///./jslib/src/models/api/loginUriApi.ts","webpack:///./jslib/src/models/api/secureNoteApi.ts","webpack:///./jslib/src/angular/directives/fallback-src.directive.ts","webpack:///./src/app/organizations/tools/import.component.ts","webpack:///./src/app/organizations/tools/inactive-two-factor-report.component.ts","webpack:///./src/app/organizations/tools/reused-passwords-report.component.ts","webpack:///./src/app/organizations/tools/tools.component.ts","webpack:///./src/app/organizations/tools/tools.component.html","webpack:///./src/app/organizations/tools/unsecured-websites-report.component.ts","webpack:///./src/app/organizations/tools/weak-passwords-report.component.ts","webpack:///./src/app/organizations/vault/vault.component.ts","webpack:///./src/app/organizations/vault/vault.component.html","webpack:///./src/app/organizations/vault/attachments.component.ts","webpack:///./jslib/src/angular/components/attachments.component.ts","webpack:///./jslib/src/models/response/globalDomainResponse.ts","webpack:///./jslib/src/models/response/identityTokenResponse.ts","webpack:///./jslib/src/models/response/identityTwoFactorResponse.ts","webpack:///./jslib/src/models/response/listResponse.ts","webpack:///./jslib/src/models/response/profileOrganizationResponse.ts","webpack:///./jslib/src/models/response/syncResponse.ts","webpack:///./jslib/src/models/response/policyResponse.ts","webpack:///./src/app/organizations/vault/collections.component.ts","webpack:///./jslib/src/models/request/cipherCollectionsRequest.ts","webpack:///./src/app/vault/bulk-delete.component.ts","webpack:///./src/app/vault/bulk-delete.component.html","webpack:///./jslib/src/models/request/cipherBulkDeleteRequest.ts","webpack:///./src/app/vault/bulk-move.component.ts","webpack:///./src/app/vault/bulk-move.component.html","webpack:///./src/app/vault/bulk-restore.component.ts","webpack:///./src/app/vault/bulk-restore.component.html","webpack:///./src/app/vault/bulk-share.component.ts","webpack:///./src/app/vault/bulk-share.component.html","webpack:///./src/app/send/access.component.ts","webpack:///./src/app/send/access.component.html","webpack:///./src/app/send/send.component.ts","webpack:///./src/app/send/send.component.html","webpack:///./src/app/send/add-edit.component.ts","webpack:///./src/app/send/add-edit.component.html","webpack:///./jslib/src/models/view/sendView.ts","webpack:///./src/app/settings/account.component.ts","webpack:///./src/app/settings/account.component.html","webpack:///./src/app/settings/deauthorize-sessions.component.ts","webpack:///./src/app/settings/deauthorize-sessions.component.html","webpack:///./src/app/settings/delete-account.component.ts","webpack:///./src/app/settings/delete-account.component.html","webpack:///./src/app/settings/profile.component.ts","webpack:///./src/app/settings/profile.component.html","webpack:///./src/app/settings/change-email.component.ts","webpack:///./src/app/settings/change-email.component.html","webpack:///./jslib/src/models/request/emailTokenRequest.ts","webpack:///./src/app/settings/change-password.component.ts","webpack:///./src/app/settings/change-password.component.html","webpack:///./jslib/src/enums/emergencyAccessStatusType.ts","webpack:///./jslib/src/models/request/emergencyAccessUpdateRequest.ts","webpack:///./jslib/src/models/request/folderWithIdRequest.ts","webpack:///./jslib/src/models/request/organizationUserResetPasswordEnrollmentRequest.ts","webpack:///./jslib/src/models/request/passwordRequest.ts","webpack:///./jslib/src/models/request/updateKeyRequest.ts","webpack:///./src/app/settings/change-kdf.component.ts","webpack:///./src/app/settings/change-kdf.component.html","webpack:///./src/app/settings/create-organization.component.ts","webpack:///./src/app/settings/create-organization.component.html","webpack:///./src/app/settings/domain-rules.component.ts","webpack:///./src/app/settings/domain-rules.component.html","webpack:///./src/app/settings/options.component.ts","webpack:///./src/app/settings/options.component.html","webpack:///./src/app/settings/link-sso.component.ts","webpack:///./src/app/settings/link-sso.component.html","webpack:///./src/app/settings/premium.component.ts","webpack:///./src/app/settings/premium.component.html","webpack:///./src/app/settings/settings.component.ts","webpack:///./src/app/settings/settings.component.html","webpack:///./src/app/settings/user-subscription.component.ts","webpack:///./src/app/settings/user-subscription.component.html","webpack:///./src/app/tools/breach-report.component.ts","webpack:///./src/app/tools/breach-report.component.html","webpack:///./src/app/tools/password-generator.component.ts","webpack:///./src/app/tools/password-generator.component.html","webpack:///./src/app/tools/password-generator-history.component.ts","webpack:///./src/app/tools/password-generator-history.component.html","webpack:///./src/app/tools/tools.component.ts","webpack:///./src/app/tools/tools.component.html","webpack:///./src/app/vault/vault.component.ts","webpack:///./src/app/vault/vault.component.html","webpack:///./src/app/settings/update-key.component.ts","webpack:///./src/app/settings/update-key.component.html","webpack:///./src/app/vault/folder-add-edit.component.ts","webpack:///./src/app/vault/folder-add-edit.component.html","webpack:///./src/app/vault/share.component.ts","webpack:///./src/app/vault/share.component.html","webpack:///./src/app/vault/send-info.component.ts","webpack:///./src/app/vault/send-info.component.html","webpack:///./src/app/settings/verify-email.component.ts","webpack:///./src/app/settings/verify-email.component.html","webpack:///./src/app/services/organization-guard.service.ts","webpack:///./src/app/services/organization-type-guard.service.ts","webpack:///./jslib/src/enums/permissions.ts","webpack:///./jslib/src/angular/services/auth-guard.service.ts","webpack:///./jslib/src/angular/services/lock-guard.service.ts","webpack:///./jslib/src/angular/services/unauth-guard.service.ts","webpack:///./src/app/settings/emergency-access-view.component.ts","webpack:///./src/app/settings/emergency-access-view.component.html","webpack:///./jslib/src/models/domain/encryptedObject.ts","webpack:///./jslib/src/models/domain/environmentUrls.ts","webpack:///./jslib/src/models/domain/generatedPasswordHistory.ts","webpack:///./src/app/settings/emergency-access-attachments.component.ts","webpack:///./src/app/settings/emergency-add-edit.component.ts","webpack:///./src/app/settings/emergency-access.component.ts","webpack:///./src/app/settings/emergency-access.component.html","webpack:///./jslib/src/enums/emergencyAccessType.ts","webpack:///./jslib/src/models/response/emergencyAccessResponse.ts","webpack:///./src/app/settings/emergency-access-add-edit.component.ts","webpack:///./src/app/settings/emergency-access-add-edit.component.html","webpack:///./src/app/settings/emergency-access-confirm.component.ts","webpack:///./src/app/settings/emergency-access-confirm.component.html","webpack:///./src/app/settings/emergency-access-takeover.component.ts","webpack:///./src/app/settings/emergency-access-takeover.component.html","webpack:///./jslib/src/services/api.service.ts","webpack:///./jslib/src/models/response/organizationResponse.ts","webpack:///./jslib/src/models/response/planResponse.ts","webpack:///./jslib/src/models/response/subscriptionResponse.ts","webpack:///./jslib/src/models/response/twoFactorWebAuthnResponse.ts","webpack:///./jslib/src/services/appId.service.ts","webpack:///./jslib/src/services/audit.service.ts","webpack:///./jslib/src/services/cipher.service.ts","webpack:///./jslib/src/misc/sequentialize.ts","webpack:///./jslib/src/services/collection.service.ts","webpack:///./jslib/src/misc/serviceUtils.ts","webpack:///./jslib/src/services/container.service.ts","webpack:///./jslib/src/services/crypto.service.ts","webpack:///./jslib/src/misc/wordlist.ts","webpack:///./jslib/src/services/environment.service.ts","webpack:///./jslib/src/services/folder.service.ts","webpack:///./jslib/src/services/i18n.service.ts","webpack:///./jslib/src/services/passwordGeneration.service.ts","webpack:///./jslib/src/services/settings.service.ts","webpack:///./jslib/src/services/state.service.ts","webpack:///./jslib/src/services/sync.service.ts","webpack:///./jslib/src/models/data/sendData.ts","webpack:///./jslib/src/services/token.service.ts","webpack:///./jslib/src/services/totp.service.ts","webpack:///./jslib/src/services/user.service.ts","webpack:///./jslib/src/services/vaultTimeout.service.ts","webpack:///./jslib/src/services/consoleLog.service.ts","webpack:///./jslib/src/enums/logLevelType.ts","webpack:///./jslib/src/models/export/cipherWithIds.ts","webpack:///./jslib/src/models/export/collectionWithId.ts","webpack:///./jslib/src/models/export/folderWithId.ts","webpack:///./jslib/src/importers/onepasswordImporters/onepasswordCsvImporter.ts","webpack:///./jslib/src/models/view/index.ts","webpack:///./jslib/src/enums/notificationType.ts","webpack:///./src/app/main.ts","webpack:///./src/app/app.module.ts","webpack:///./src/app/app-routing.module.ts","webpack:///./jslib/src/services/broadcaster.service.ts","webpack:///./jslib/src/misc/tldjs.noop.ts","webpack:///./jslib/src/models/request/emergencyAccessAcceptRequest.ts","webpack:///./jslib/src/models/request/organizationUserAcceptRequest.ts","webpack:///./jslib/src/angular/components/hint.component.ts","webpack:///./jslib/src/models/request/passwordHintRequest.ts","webpack:///./jslib/src/angular/components/lock.component.ts","webpack:///./jslib/src/angular/components/login.component.ts","webpack:///./jslib/src/models/request/deleteRecoverRequest.ts","webpack:///./jslib/src/models/request/twoFactorRecoveryRequest.ts","webpack:///./jslib/src/angular/components/register.component.ts","webpack:///./jslib/src/models/request/registerRequest.ts","webpack:///./jslib/src/models/request/referenceEventRequest.ts","webpack:///./jslib/src/angular/components/set-password.component.ts","webpack:///./jslib/src/models/request/setPasswordRequest.ts","webpack:///./jslib/src/angular/components/two-factor-options.component.ts","webpack:///./jslib/src/angular/components/modal.component.ts","webpack:///./jslib/src/angular/components/two-factor.component.ts","webpack:///./jslib/src/models/request/deviceRequest.ts","webpack:///./jslib/src/models/request/preloginRequest.ts","webpack:///./jslib/src/models/request/tokenRequest.ts","webpack:///./jslib/src/misc/webauthn.ts","webpack:///./jslib/src/models/request/verifyEmailRequest.ts","webpack:///./jslib/src/models/request/verifyDeleteRecoverRequest.ts","webpack:///./jslib/src/models/request/groupRequest.ts","webpack:///./jslib/src/models/request/organizationUserConfirmRequest.ts","webpack:///./jslib/src/models/request/organizationUserInviteRequest.ts","webpack:///./jslib/src/models/request/organizationUserUpdateRequest.ts","webpack:///./jslib/src/models/request/organizationUserUpdateGroupsRequest.ts","webpack:///./jslib/src/abstractions/appId.service.ts","webpack:///./jslib/src/abstractions/log.service.ts","webpack:///./jslib/src/models/request/policyRequest.ts","webpack:///./jslib/src/models/request/organizationUpdateRequest.ts","webpack:///./jslib/src/enums/transactionType.ts","webpack:///./jslib/src/models/request/verifyBankRequest.ts","webpack:///./jslib/src/models/request/bitPayInvoiceRequest.ts","webpack:///./jslib/src/models/request/paymentRequest.ts","webpack:///./jslib/src/models/request/organizationCreateRequest.ts","webpack:///./jslib/src/models/request/organizationUpgradeRequest.ts","webpack:///./jslib/src/models/request/seatRequest.ts","webpack:///./jslib/src/models/request/storageRequest.ts","webpack:///./jslib/src/models/request/updateTwoFactorDuoRequest.ts","webpack:///./jslib/src/models/request/twoFactorProviderRequest.ts","webpack:///./jslib/src/models/request/updateTwoFactorAuthenticatorRequest.ts","webpack:///./jslib/src/models/request/updateTwoFactorEmailRequest.ts","webpack:///./jslib/src/models/request/updateTwoFactorWebAuthnDeleteRequest.ts","webpack:///./jslib/src/models/request/updateTwoFactorWebAuthnRequest.ts","webpack:///./jslib/src/models/request/updateTwoFactorYubioOtpRequest.ts","webpack:///./jslib/src/angular/components/export.component.ts","webpack:///./jslib/src/models/request/attachmentRequest.ts","webpack:///./jslib/src/angular/components/add-edit.component.ts","webpack:///./jslib/src/models/response/index.ts","webpack:///./jslib/src/models/response/passwordHistoryResponse.ts","webpack:///./jslib/src/models/response/deviceResponse.ts","webpack:///./jslib/src/models/response/keysResponse.ts","webpack:///./jslib/src/angular/components/ciphers.component.ts","webpack:///./jslib/src/angular/components/collections.component.ts","webpack:///./jslib/src/angular/components/groupings.component.ts","webpack:///./jslib/src/models/domain/sendAccess.ts","webpack:///./jslib/src/models/view/sendAccessView.ts","webpack:///./jslib/src/models/request/sendAccessRequest.ts","webpack:///./jslib/src/angular/components/send/send.component.ts","webpack:///./jslib/src/angular/components/send/add-edit.component.ts","webpack:///./jslib/src/models/request/updateProfileRequest.ts","webpack:///./jslib/src/models/request/emailRequest.ts","webpack:///./jslib/src/models/request/kdfRequest.ts","webpack:///./jslib/src/models/request/updateDomainsRequest.ts","webpack:///./jslib/src/angular/components/password-generator.component.ts","webpack:///./jslib/src/angular/components/password-generator-history.component.ts","webpack:///./jslib/src/angular/components/folder-add-edit.component.ts","webpack:///./jslib/src/angular/components/share.component.ts","webpack:///./jslib/src/models/data/index.ts","webpack:///./jslib/src/models/domain/index.ts","webpack:///./jslib/src/models/request/emergencyAccessConfirmRequest.ts","webpack:///./jslib/src/models/request/emergencyAccessInviteRequest.ts","webpack:///./jslib/src/models/request/emergencyAccessPasswordRequest.ts","webpack:///./src/app/services/services.module.ts","webpack:///./src/services/broadcasterMessaging.service.ts","webpack:///./src/services/htmlStorage.service.ts","webpack:///./jslib/src/services/index.ts","webpack:///./jslib/src/models/response/apiKeyResponse.ts","webpack:///./jslib/src/models/response/attachmentUploadDataResponse.ts","webpack:///./jslib/src/models/response/billingResponse.ts","webpack:///./jslib/src/models/response/breachAccountResponse.ts","webpack:///./jslib/src/models/response/eventResponse.ts","webpack:///./jslib/src/models/response/groupResponse.ts","webpack:///./jslib/src/models/response/organizationSubscriptionResponse.ts","webpack:///./jslib/src/models/response/organizationUserResponse.ts","webpack:///./jslib/src/models/response/paymentResponse.ts","webpack:///./jslib/src/models/response/preloginResponse.ts","webpack:///./jslib/src/models/response/sendAccessResponse.ts","webpack:///./jslib/src/models/response/sendFileDownloadDataResponse.ts","webpack:///./jslib/src/models/response/sendFileUploadDataResponse.ts","webpack:///./jslib/src/models/response/taxInfoResponse.ts","webpack:///./jslib/src/models/response/taxRateResponse.ts","webpack:///./jslib/src/models/response/twoFactorAuthenticatorResponse.ts","webpack:///./jslib/src/models/response/twoFactorDuoResponse.ts","webpack:///./jslib/src/models/response/twoFactorEmailResponse.ts","webpack:///./jslib/src/models/response/twoFactorProviderResponse.ts","webpack:///./jslib/src/models/response/twoFactorRescoverResponse.ts","webpack:///./jslib/src/models/response/twoFactorYubiKeyResponse.ts","webpack:///./jslib/src/models/response/userKeyResponse.ts","webpack:///./jslib/src/misc/throttle.ts","webpack:///./jslib/src/models/request/cipherBulkMoveRequest.ts","webpack:///./jslib/src/models/request/cipherBulkRestoreRequest.ts","webpack:///./jslib/src/models/request/cipherBulkShareRequest.ts","webpack:///./jslib/src/models/request/cipherShareRequest.ts","webpack:///./jslib/src/models/domain/sortedCiphersCache.ts","webpack:///./jslib/src/models/domain/treeNode.ts","webpack:///./jslib/src/models/domain/encArrayBuffer.ts","webpack:///./jslib/src/models/domain/passwordGeneratorPolicyOptions.ts","webpack:///./jslib/src/models/data/organizationData.ts","webpack:///./jslib/src/models/data/sendFileData.ts","webpack:///./jslib/src/models/data/sendTextData.ts","webpack:///./src/services/i18n.service.ts","webpack:///./src/services/memoryStorage.service.ts","webpack:///./src/services/webPlatformUtils.service.ts","webpack:///./jslib/src/services/event.service.ts","webpack:///./jslib/src/models/data/eventData.ts","webpack:///./jslib/src/models/request/eventRequest.ts","webpack:///./jslib/src/services/export.service.ts","webpack:///./jslib/src/models/export/cipher.ts","webpack:///./jslib/src/models/export/card.ts","webpack:///./jslib/src/models/export/field.ts","webpack:///./jslib/src/models/export/identity.ts","webpack:///./jslib/src/models/export/login.ts","webpack:///./jslib/src/models/export/loginUri.ts","webpack:///./jslib/src/models/export/secureNote.ts","webpack:///./jslib/src/models/export/collection.ts","webpack:///./jslib/src/models/export/folder.ts","webpack:///./jslib/src/services/fileUpload.service.ts","webpack:///./jslib/src/enums/fileUploadType.ts","webpack:///./jslib/src/services/azureFileUpload.service.ts","webpack:///./jslib/src/services/bitwardenFileUpload.service.ts","webpack:///./jslib/src/services/import.service.ts","webpack:///./jslib/src/models/request/importCiphersRequest.ts","webpack:///./jslib/src/models/request/importOrganizationCiphersRequest.ts","webpack:///./jslib/src/models/request/kvpRequest.ts","webpack:///./jslib/src/importers/ascendoCsvImporter.ts","webpack:///./jslib/src/importers/avastCsvImporter.ts","webpack:///./jslib/src/importers/avastJsonImporter.ts","webpack:///./jslib/src/importers/aviraCsvImporter.ts","webpack:///./jslib/src/importers/bitwardenCsvImporter.ts","webpack:///./jslib/src/importers/bitwardenJsonImporter.ts","webpack:///./jslib/src/importers/blackBerryCsvImporter.ts","webpack:///./jslib/src/importers/blurCsvImporter.ts","webpack:///./jslib/src/importers/buttercupCsvImporter.ts","webpack:///./jslib/src/importers/chromeCsvImporter.ts","webpack:///./jslib/src/importers/clipperzHtmlImporter.ts","webpack:///./jslib/src/importers/codebookCsvImporter.ts","webpack:///./jslib/src/importers/dashlaneJsonImporter.ts","webpack:///./jslib/src/importers/encryptrCsvImporter.ts","webpack:///./jslib/src/importers/enpassCsvImporter.ts","webpack:///./jslib/src/importers/enpassJsonImporter.ts","webpack:///./jslib/src/importers/firefoxCsvImporter.ts","webpack:///./jslib/src/importers/fsecureFskImporter.ts","webpack:///./jslib/src/importers/gnomeJsonImporter.ts","webpack:///./jslib/src/importers/kasperskyTxtImporter.ts","webpack:///./jslib/src/importers/keepass2XmlImporter.ts","webpack:///./jslib/src/importers/keepassxCsvImporter.ts","webpack:///./jslib/src/importers/keeperCsvImporter.ts","webpack:///./jslib/src/importers/lastpassCsvImporter.ts","webpack:///./jslib/src/importers/logMeOnceCsvImporter.ts","webpack:///./jslib/src/importers/meldiumCsvImporter.ts","webpack:///./jslib/src/importers/msecureCsvImporter.ts","webpack:///./jslib/src/importers/mykiCsvImporter.ts","webpack:///./jslib/src/importers/onepasswordImporters/onepassword1PifImporter.ts","webpack:///./jslib/src/importers/onepasswordImporters/onepasswordMacCsvImporter.ts","webpack:///./jslib/src/importers/onepasswordImporters/cipherImportContext.ts","webpack:///./jslib/src/models/view/view.ts","webpack:///./jslib/src/importers/onepasswordImporters/onepasswordWinCsvImporter.ts","webpack:///./jslib/src/importers/padlockCsvImporter.ts","webpack:///./jslib/src/importers/passkeepCsvImporter.ts","webpack:///./jslib/src/importers/passmanJsonImporter.ts","webpack:///./jslib/src/importers/passpackCsvImporter.ts","webpack:///./jslib/src/importers/passwordAgentCsvImporter.ts","webpack:///./jslib/src/importers/passwordBossJsonImporter.ts","webpack:///./jslib/src/importers/passwordDragonXmlImporter.ts","webpack:///./jslib/src/importers/passwordSafeXmlImporter.ts","webpack:///./jslib/src/importers/passwordWalletTxtImporter.ts","webpack:///./jslib/src/importers/rememBearCsvImporter.ts","webpack:///./jslib/src/importers/roboformCsvImporter.ts","webpack:///./jslib/src/importers/safeInCloudXmlImporter.ts","webpack:///./jslib/src/enums/index.ts","webpack:///./jslib/src/importers/saferpassCsvImport.ts","webpack:///./jslib/src/importers/secureSafeCsvImporter.ts","webpack:///./jslib/src/importers/splashIdCsvImporter.ts","webpack:///./jslib/src/importers/stickyPasswordXmlImporter.ts","webpack:///./jslib/src/importers/truekeyCsvImporter.ts","webpack:///./jslib/src/importers/upmCsvImporter.ts","webpack:///./jslib/src/importers/yotiCsvImporter.ts","webpack:///./jslib/src/importers/zohoVaultCsvImporter.ts","webpack:///./jslib/src/services/notifications.service.ts","webpack:///./jslib/src/models/response/notificationResponse.ts","webpack:///./jslib/src/services/policy.service.ts","webpack:///./jslib/src/models/domain/masterPasswordPolicyOptions.ts","webpack:///./jslib/src/services/search.service.ts","webpack:///./jslib/src/services/send.service.ts","webpack:///./jslib/src/models/request/sendRequest.ts","webpack:///./jslib/src/models/domain/send.ts","webpack:///./jslib/src/services/webCryptoFunction.service.ts","webpack:///./jslib/src/models/domain/decryptParameters.ts","webpack:///./jslib/src/abstractions/fileUpload.service.ts","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.component.html","webpack:///./jslib/src/angular/directives/blur-click.directive.ts","webpack:///./jslib/src/angular/directives/box-row.directive.ts","webpack:///./jslib/src/angular/pipes/search-ciphers.pipe.ts"],"names":["i","chunkIds","length","deferredModules","j","deferredModule","enumerable","get","getter","value","key","bind","module","Object","prototype","hasOwnProperty","call","object","property","jsonpArray","webpackJsonpCallback","I18nService","PlatformUtilsService","ApiService","UserService","i18nService","transform","id","p1","p2","p3","this","t","I18nPipe","MessagingService","el","validationService","ngOnChanges","changes","appApiAction","then","nativeElement","loading","response","e","showError","ApiActionDirective","renderer","title","ngOnInit","hasAttribute","setAttribute","A11yTitleDirective","CryptoService","CipherService","getResponseProperty","propertyName","exactName","Error","undefined","otherCasePropertyName","charAt","toUpperCase","toLowerCase","slice","BaseResponse","type","calloutStyle","icon","CalloutComponent","organizationId","logService","ConsoleLogService","newLineRegex","passwordFieldNames","usernameFieldNames","notesFieldNames","uriFieldNames","parseCsvOptions","encoding","skipEmptyLines","parseXml","data","doc","DOMParser","parseFromString","querySelector","parseCsv","header","options","parseOptions","assign","splitNewLine","join","trim","result","papa","parse","errors","forEach","row","warning","message","parseSingleRowCsv","rowData","isNullOrWhitespace","parsedRow","makeUriArray","uri","loginUri","LoginUriView","fixUri","match","u","push","indexOf","substring","nameFromUrl","url","hostname","Utils","getHostname","startsWith","replace","str","getValueOrDefault","defaultValue","split","getCardBrand","cardNum","re","RegExp","test","setCardExpiration","cipher","expiration","parts","month","year","substr","card","expMonth","expYear","moveFoldersToCollections","folderRelationships","r","collectionRelationships","collections","folders","map","f","collection","CollectionView","name","querySelectorDirectChild","parentEl","query","els","querySelectorAllDirectChild","Array","from","querySelectorAll","filter","parentNode","initLoginCipher","CipherView","favorite","notes","fields","login","LoginView","CipherType","Login","cleanupCipher","processKvp","FieldType","Text","search","field","FieldView","processFolder","folderName","folderIndex","hasFolder","addFolder","FolderView","ciphers","convertToNoteIfNeeded","username","password","uris","SecureNote","secureNote","SecureNoteView","SecureNoteType","Generic","BaseImporter","success","ImportResult","nodeURL","window","init","inited","isNode","process","release","isBrowser","isNativeScript","isMobileBrowser","isMobile","isAppleMobileBrowser","isAppleMobile","global","fromB64ToArray","Uint8Array","Buffer","binaryString","atob","bytes","charCodeAt","fromUrlB64ToArray","fromUrlB64ToB64","fromHexToArray","parseInt","fromUtf8ToArray","strUtf8","unescape","encodeURIComponent","arr","fromByteStringToArray","fromBufferToB64","buffer","toString","binary","byteLength","String","fromCharCode","btoa","fromBufferToUrlB64","fromB64toUrlB64","b64Str","fromBufferToUtf8","encodedString","apply","decodeURIComponent","escape","fromBufferToByteString","fromBufferToHex","x","urlB64Str","output","fromUrlB64ToUtf8","fromB64ToUtf8","fromUtf8ToB64","utfStr","newGuid","c","Math","random","isGuid","uriString","getUrl","getHost","host","getDomain","httpUrl","tldEndingRegex","getUrlObject","validIpAddress","urlDomain","tldjs","domain","getQueryParams","Map","pair","set","getSortFunction","prop","a","b","collator","compare","localeCompare","nameOf","target","source","ipString","win","mobile","navigator","userAgent","vendor","opera","URL","hasProtocol","anchor","document","createElement","href","PasswordGenerationService","onClick","$event","preventDefault","StopClickDirective","StateService","CollectionService","StorageService","PolicyService","condition","disableComplete","InputVerbatimDirective","FolderService","stopPropagation","StopPropDirective","AuthService","SyncService","EnvironmentService","autofocus","focus","AutofocusDirective","environmentUrlsKey","ConstantsService","disableGaKey","disableAddLoginNotificationKey","disableContextMenuItemKey","disableFaviconKey","disableBadgeCounterKey","disableAutoTotpCopyKey","enableAutoFillOnPageLoadKey","vaultTimeoutKey","vaultTimeoutActionKey","lastActiveKey","neverDomainsKey","installedVersionKey","localeKey","themeKey","collapsedGroupingsKey","autoConfirmFingerprints","dontShowCardsCurrentTab","dontShowIdentitiesCurrentTab","defaultUriMatch","pinProtectedKey","protectedPin","clearClipboardKey","eventCollectionKey","ssoCodeVerifierKey","ssoStateKey","biometricUnlockKey","biometricText","biometricAwaitingAcceptance","biometricFingerprintValidated","disableChangedPasswordNotificationKey","EventService","PasswordVerificationRequest","indexedEntityId","SearchService","buildDomainModel","dataObj","alreadyEncrypted","notEncList","objProp","EncString","buildDataModel","notEncStringList","encryptedString","decryptObj","viewModel","orgId","promises","self","theProp","p","Promise","resolve","mapProp","decrypt","val","all","componentFactoryResolver","messagingService","ngOnDestroy","show","parentContainer","fade","setComponentParameters","factory","resolveComponentFactory","componentRef","container","createComponent","instance","modals","jq","modal","on","onShow","emit","send","onShown","find","onClose","onClosed","clear","close","ModalComponent","AuditService","cardholderName","code","_brand","_number","_subTitle","repeat","brand","number","count","exp","formatYear","CardView","VaultTimeoutService","n","TokenService","CryptoFunctionService","encryptedStringOrType","iv","mac","encType","encryptionType","headerPieces","encPieces","EncryptionType","AesCbc128_HmacSha256_B64","AesCbc256_B64","AesCbc256_HmacSha256_B64","Rsa2048_OaepSha256_B64","Rsa2048_OaepSha1_B64","decryptedValue","containerService","bitwardenContainerService","cryptoService","getCryptoService","getOrgKey","decryptToUtf8","IconMap","environmentService","stateService","iconsUrl","baseUrl","imageEnabled","load","setLoginIcon","Card","Identity","hostnameUri","isWebsite","image","fallbackImage","IconComponent","BroadcasterService","TwoFactorProviderType","TotpService","StripeElementStyle","base","color","fontFamily","fontSize","fontSmoothing","invalid","StripeElementClasses","empty","platformUtilsService","apiService","showMethods","showOptions","method","PaymentMethodType","hideBank","hidePaypal","hideCredit","bank","routing_number","account_number","account_holder_name","account_holder_type","currency","country","paymentMethodType","btInstance","stripe","stripeElements","stripeCardNumberElement","stripeCardExpiryElement","stripeCardCvcElement","stripeScript","src","async","onload","Stripe","isDev","WebConstants","stripeTestKey","stripeLiveKey","elements","setStripeElement","btScript","PayPal","BankAccount","Credit","head","appendChild","removeChild","setTimeout","body","btStylesheet","changeMethod","braintree","dropin","create","authorization","btSandboxKey","btProductionKey","paymentOptionPriority","paypal","flow","buttonStyle","label","size","shape","createErr","console","error","createPaymentToken","reject","requestPaymentMethod","payload","nonce","catch","err","postSetupPayment","clientSecret","handleCardSetup","setupIntent","status","payment_method","createToken","token","handleStripeCardPayment","successCallback","paymentIntent","style","classes","placeholder","mount","PaymentComponent","revisionDate","sanitizer","cryptoFunctionService","charCount","textColor","fontWeight","dynamic","circle","generate","email","hash","hashBytes","chars","upperData","getFirstLetters","charObj","getCharText","stringToColor","svg","getSvg","html","outerHTML","svgHtml","text","svgTag","backgroundColor","width","height","character","textTag","textContent","AvatarComponent","obj","externalId","readOnly","hidePasswords","Collection","PolicyType","route","onCountryChanged","EventEmitter","taxInfo","taxId","line1","line2","city","state","postalCode","includeTaxId","pristine","parent","params","subscribe","getOrganizationTaxInfo","getTaxInfo","getTaxRates","taxRates","localTaxRate","rate","getTaxInfoRequest","request","OrganizationTaxInfoUpdateRequest","TaxInfoUpdateRequest","submitTaxInfo","hasChanged","putOrganizationTaxInfo","putTaxInfo","changeCountry","TaxInfoComponent","folderId","organizationUseTotp","edit","viewPassword","identity","IdentityView","attachments","passwordHistory","collectionIds","deletedDate","localData","subTitle","hasAttachments","passwordRevisionDate","middleName","address1","address2","address3","company","phone","ssn","passportNumber","licenseNumber","_firstName","_lastName","firstName","lastName","address","addressPart2","CollectionData","OrganizationUserStatusType","userId","LoginData","SecureNoteData","CardData","IdentityData","FieldData","AttachmentData","ph","PasswordHistoryData","CipherData","l","totp","hasUris","some","canLaunch","launchUri","SendType","toasterService","onAuthed","submit","masterPassword","popAsync","hashPassword","masterPasswordHash","formPromise","getTwoFactorRecover","Duo","OrganizationDuo","getTwoFactorOrganizationDuo","getTwoFactorDuo","Email","getTwoFactorEmail","WebAuthn","getTwoFactorWebAuthn","Authenticator","getTwoFactorAuthenticator","Yubikey","getTwoFactorYubiKey","TwoFactorVerifyComponent","ExportService","Date","Attachment","Field","Password","encKey","model","reduce","promise","attachment","decAttachment","decField","decPh","toCipherData","toISOString","toLoginData","toSecureNoteData","toCardData","toIdentityData","toFieldData","toAttachmentData","toPasswordHistoryData","Cipher","SendService","newField","showValue","lastKnownRevisionDate","LoginApi","LoginUriApi","SecureNoteApi","CardApi","IdentityApi","FieldApi","lastUsedDate","attachments2","fileName","attachmentRequest","AttachmentRequest","CipherRequest","identityResponse","errorModel","responseErrorModel","validationErrors","statusCode","getSingleMessage","getAllMessages","messages","item","prefix","lastSep","lastIndexOf","ErrorResponse","defaultErrorMessage","concat","showToast","timeout","ValidationService","router","activatedRoute","titleService","previousUrl","currentUrl","events","event","NavigationEnd","titleId","rawTitle","child","firstChild","snapshot","newTitle","setTitle","getPreviousUrl","setPreviousUrl","RouterService","KdfType","showText","scoreWidth","score","PasswordStrengthComponent","OrganizationUserType","items","searchText","prop1","prop2","prop3","SearchPipe","getDefaultDateFilters","d","end","getFullYear","getMonth","getDate","setDate","start","toDateTimeLocalString","formatDateFilters","filterStart","filterEnd","isNaN","getTime","getEventInfo","ev","EventOptions","appInfo","getAppInfo","deviceType","getEventMessage","appIcon","appName","msg","EventType","User_LoggedIn","User_ChangedPassword","User_Updated2fa","User_Disabled2fa","User_Recovered2fa","User_FailedLogIn","User_FailedLogIn2fa","User_ClientExportedVault","Cipher_Created","formatCipherId","Cipher_Updated","Cipher_Deleted","Cipher_SoftDeleted","Cipher_Restored","Cipher_AttachmentCreated","Cipher_AttachmentDeleted","Cipher_Shared","Cipher_ClientViewed","Cipher_ClientToggledPasswordVisible","Cipher_ClientToggledHiddenFieldVisible","Cipher_ClientToggledCardCodeVisible","Cipher_ClientCopiedHiddenField","Cipher_ClientCopiedPassword","Cipher_ClientCopiedCardCode","Cipher_ClientAutofilled","Cipher_UpdatedCollections","Collection_Created","formatCollectionId","Collection_Updated","Collection_Deleted","Group_Created","formatGroupId","Group_Updated","Group_Deleted","OrganizationUser_Invited","formatOrgUserId","OrganizationUser_Confirmed","OrganizationUser_Updated","OrganizationUser_Removed","OrganizationUser_UpdatedGroups","OrganizationUser_UnlinkedSso","OrganizationUser_ResetPassword_Enroll","OrganizationUser_ResetPassword_Withdraw","Organization_Updated","Organization_PurgedVault","Policy_Updated","formatPolicyId","DeviceType","Android","iOS","UWP","ChromeExtension","FirefoxExtension","OperaExtension","EdgeExtension","VivaldiExtension","SafariExtension","WindowsDesktop","MacOsDesktop","LinuxDesktop","ChromeBrowser","FirefoxBrowser","OperaBrowser","SafariBrowser","VivaldiBrowser","EdgeBrowser","IEBrowser","UnknownBrowser","shortId","getShortId","cipherId","cipherInfo","makeAnchor","groupId","collectionId","organizationUserId","policyId","innerHTML","date","pad","getHours","getMinutes","num","norm","floor","abs","EventInfo","onUpdated","twoFactorProviderType","enabled","authed","auth","authResponse","enable","enableFunction","disable","showDialog","TwoFactorProviderRequest","putTwoFactorOrganizationDisable","putTwoFactorDisable","TwoFactorBaseComponent","userService","requiresPaid","hasLoaded","setCiphers","selectCipher","childComponent","cipherAddEditModalRef","organization","AddEditComponent","onSavedCipher","onDeletedCipher","onRestoredCipher","checkAccess","useTotp","canAccessPremium","accessPremium","CipherReportComponent","ViewContainerRef","CanLaunchWhitelist","_uri","_domain","_hostname","_host","_canLaunch","UriMatchType","RegularExpression","cipherService","folderService","auditService","collectionService","totpService","passwordGenerationService","eventService","policyService","showRevisionDate","hasPasswordHistory","viewingPasswordHistory","viewOnly","passwordRevisionDisplayDate","cleanUp","totpUpdateCode","getTimeInterval","totpTick","totpInterval","setInterval","toggleFavorite","launch","copy","typeI18nKey","aType","copyToClipboard","editMode","collect","generatePassword","confirmed","getOptions","premiumRequired","upgradeOrganization","viewHistory","clearInterval","getCode","totpCode","half","totpCodeFormatted","allowOwnershipAssignment","cloneMode","ownershipOptions","allowPersonal","intervalSeconds","epoch","round","mod","totpSec","totpDash","totpLow","ImportService","AttachmentResponse","h","PasswordHistoryResponse","CipherResponse","searchService","showAddNew","onAttachmentsClicked","onShareClicked","onCollectionsClicked","onCloneClicked","cipherType","userHasPremiumAccess","pageSize","selectAll","share","clone","delete","actionPromise","permanent","isDeleted","deleteCipher","refresh","restore","restoreWithServer","displayTotpCopyButton","select","selectCount","checkCipher","checked","getSelected","getSelectedIds","hasTotp","deleteWithServer","softDeleteWithServer","showFixOldAttachments","hasOldAttachments","CiphersComponent","TwoFactorProviders","description","priority","sort","premium","tokenService","appIdService","vaultTimeoutService","setCryptoKeys","selectedTwoFactorProviderType","logIn","makePreloginKey","hashedPassword","logInHelper","logInSso","codeVerifier","redirectUrl","logInApiKey","clientId","logInTwoFactor","twoFactorProvider","twoFactorToken","remember","ssoRedirectUrl","logInComplete","logInSsoComplete","logInApiKeyComplete","logOut","callback","getSupportedTwoFactorProviders","providers","twoFactorProvidersData","has","supportsDuo","supportsWebAuthn","getDefaultTwoFactorProvider","webAuthnSupported","providerType","providerPriority","provider","kdf","kdfIterations","postPrelogin","PreloginRequest","preloginResponse","makeKey","authingWithApiKey","authingWithSso","authingWithPassword","getTwoFactorToken","storedTwoFactorToken","getAppId","appId","deviceRequest","DeviceRequest","emailPassword","codeCodeVerifier","clientIdClientSecret","TokenRequest","Remember","postIdentityToken","clearState","AuthResult","twoFactor","accessToken","twoFactorResponse","twoFactorProviders2","twoFactorProviders","tokenResponse","resetMasterPassword","setTwoFactorToken","setTokens","refreshToken","setInformation","getUserId","getEmail","setKey","setKeyHash","setEncKey","privateKey","makeKeyPair","keyPair","postAccountKeys","KeysRequest","setEncPrivateKey","biometricLocked","SelectionReadOnlyRequest","SettingsService","PlanType","syncService","showFree","showCancel","product","ProductType","Free","plan","onSuccess","onCanceled","selfHosted","ownedBusiness","premiumAccessAddon","additionalStorage","additionalSeats","productTypes","singleOrgPolicyBlock","freeTrial","isSelfHost","getPlans","plans","Enterprise","Teams","selectedPlan","isAnnual","validPlans","Custom","canBeUsedByBusiness","legacyYear","disabled","additionalStoragePriceMonthly","additionalStoragePricePerGb","seatPriceMonthly","seatPrice","additionalStorageTotal","hasAdditionalStorageOption","seatTotal","hasAdditionalSeatsOption","subTotal","basePrice","hasPremiumAccessOption","premiumAccessOptionPrice","taxComponent","taxRate","subtotal","taxCharges","changedProduct","selectablePlans","baseSeats","trialPeriodDays","changedOwnedBusiness","TeamsAnnually","changedCountry","paymentComponent","cancel","getAll","SingleOrg","policies","getAllOrganizations","orgs","org","Owner","Admin","Invited","includes","files","createOrganization","fileEl","getElementById","doSubmit","tokenResult","makeShareKey","shareKey","encrypt","collectionCt","fd","FormData","append","postOrganizationLicense","OrganizationCreateRequest","collectionName","billingEmail","planType","paymentToken","businessName","additionalStorageGb","billingAddressPostalCode","billingAddressCountry","taxIdNumber","billingAddressLine1","billingAddressLine2","billingAddressCity","billingAddressState","postOrganization","OrganizationUpgradeRequest","postOrganizationUpgrade","paymentIntentClientSecret","refreshIdentityToken","fullSync","navigate","OrganizationPlansComponent","macKey","keyB64","encKeyB64","macKeyB64","SymmetricCryptoKey","LoginUri","view","toLoginUriData","LoginUriData","elementRef","trueValue","falseValue","propagateChange","_","onHostChange","writeValue","setProperty","registerOnChange","fn","registerOnTouched","setDisabledState","isDisabled","TrueFalseValueDirective","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","multi","SelectionReadOnlyResponse","organizations","emailVerified","masterPasswordHint","culture","twoFactorEnabled","securityStamp","o","ProfileOrganizationResponse","ProfileResponse","storageService","onSearchTextChanged","searchPlaceholder","searchTextChanged","GroupingsComponent","selectType","usePolicies","useGroups","useDirectory","useEvents","use2fa","useApi","useBusinessPortal","useSso","selfHost","usersGetPremium","seats","maxCollections","maxStorageGb","ssoBound","identifier","permissions","resetPasswordKey","Confirmed","Manager","isAdmin","accessBusinessPortal","accessEventLogs","accessImportExport","accessReports","manageAllCollections","isManager","manageAssignedCollections","manageGroups","manageSso","managePolicies","manageUsers","Organization","sizeName","SendFileView","hidden","SendTextView","vault","loaded","resetPasswordFeatureFlag","unlinkSso","deleteSsoUser","leave","postLeaveOrganization","toggleResetPasswordEnrollment","keyString","toastStringRef","isResetPasswordEnrolled","getEncKey","orgSymKey","encryptedKey","OrganizationUserResetPasswordEnrollmentRequest","putOrganizationUserResetPasswordEnrollment","OrganizationsComponent","getName","lock","NavbarComponent","getApplicationVersion","version","FooterComponent","publicKey","encryptedPrivateKey","Policy","PolicyData","getMasterPasswordPolicyOptions","enforcedPolicyOptions","getPasswordScoreAlertDisplay","minComplexity","strongPassword","setupSubmitActions","getKdf","getKdfIterations","makeEncKey","remakeEncKey","performSubmitActions","masterPasswordRetype","strengthResult","passwordStrength","getPasswordStrengthUserInput","evaluateMasterPassword","updatePasswordStrength","masterPasswordStrengthTimeout","clearTimeout","masterPasswordScore","userInput","atPosition","ChangePasswordComponent","onEditedUsers","organizationUserType","organizationUserStatusType","showSelected","selectedCount","allUsers","loadUsers","getOrganizationUsers","users","entity","getGroupUsers","entityId","s","user","getCollectionUsers","accessAll","check","selectedChanged","filterSelected","selections","putGroupUsers","putCollectionUsers","EntityUsersComponent","showUser","orgUsersUserIdMap","orgUsersIdMap","defaultDates","loadEvents","clearExisting","refreshPromise","morePromise","dates","getEventsOrganizationUser","continuationToken","getEventsCipher","actingUserId","eventInfo","userName","userEmail","ip","ipAddress","EntityEventsComponent","manageCiphers","manageResetPassword","PermissionsApi","postKey","apiKey","keyType","ApiKeyComponent","postPurgeCiphers","PurgeVaultComponent","firstLoaded","showAdjustPayment","showAddCredit","transactionType","TransactionType","getOrganizationBilling","billing","getUserBilling","verifyBank","VerifyBankRequest","amount1","verifyAmount1","amount2","verifyAmount2","verifyBankPromise","postOrganizationVerifyBank","addCredit","paymentSourceInApp","closeAddCredit","changePayment","closePayment","balance","paymentSource","AppleInApp","GoogleInApp","invoices","transactions","UserBillingComponent","onAdded","ppButtonFormAction","buttonActionProduction","ppButtonBusinessId","businessIdProduction","ppLoading","buttonActionSandbox","businessIdSandbox","creditAmount","ppButtonCustomField","getOrganization","subject","returnUrl","location","ppButtonFormRef","BitPay","req","BitPayInvoiceRequest","credit","amount","creditAmountNumber","postBitPayInvoice","bitPayUrl","formatAmount","floatAmount","parseFloat","toFixed","AddCreditComponent","ElementRef","onAdjusted","PaymentRequest","taxInfoComponent","postAccountPayment","postOrganizationPayment","AdjustPaymentComponent","updatePromise","postAccountLicense","postOrganizationLicenseUpdate","UpdateLicenseComponent","storageGbPrice","add","interval","storageAdjustment","StorageRequest","storageGbAdjustment","action","postAccountStorage","postOrganizationStorage","relativeTo","AdjustStorageComponent","processResponse","UpdateTwoFactorDuoRequest","integrationKey","ikey","secretKey","skey","putTwoFactorOrganizationDuo","putTwoFactorDuo","TwoFactorDuoComponent","showPolicyWarning","filterProvider","getTwoFactorProviders","evaluatePolicies","manage","openModal","authenticatorModalRef","TwoFactorAuthenticatorComponent","updateStatus","yubikeyModalRef","TwoFactorYubiKeyComponent","duoModalRef","emailModalRef","TwoFactorEmailComponent","webAuthnModalRef","TwoFactorWebAuthnComponent","recoveryCode","recoveryModalRef","TwoFactorRecoveryComponent","ref","TwoFactorAuthentication","TwoFactorSetupComponent","exportService","saved","ExportComponent","exposedPasswordMap","getAllCiphers","allCiphers","exposedPasswordCiphers","passwordLeaked","exposedCount","getAllDecrypted","canManageCipher","ExposedPasswordsReportComponent","originalCipher","canManageAllCollections","loadCollections","loadCipher","getCipherAdmin","encryptCipher","saveCipher","putCipherAdmin","CipherCreateRequest","postCipherAdmin","deleteCipherAdmin","putDeleteCipherAdmin","AttachmentView","orgKey","decryptToBytes","decValue","PasswordHistoryView","importService","format","successNavigate","setImportOptions","importOptions","importer","getImporter","fileContents","getFileContents","content","import","getFormatInstructionTitle","results","featuredImportOptions","regularImportOptions","fire","heightAuto","buttonsStyling","iconHtml","input","inputValue","inputAttributes","showConfirmButton","confirmButtonText","onOpen","popupEl","scrollTo","file","reader","FileReader","readAsText","evt","pre","onerror","ImportComponent","services","cipherDocs","load2fa","fetch","Request","json","categoryName","responseJson","serviceName","category","service","InactiveTwoFactorReportComponent","ciphersWithPasswords","passwordUseMap","reusedPasswordCiphers","ReusedPasswordsReportComponent","unsecuredCiphers","UnsecuredWebsitesReportComponent","passwordStrengthMap","passwordStrengthCache","weakPasswordCiphers","isUserNameNotEmpty","getCacheKey","hasUserName","cacheKey","scoreKey","WeakPasswordsReportComponent","reupload","reuploadCipherAttachment","AttachmentsComponent","CollectionResponse","CollectionDetailsResponse","groups","g","CollectionGroupDetailsResponse","globalEquivalentDomains","equivalentDomains","GlobalDomainResponse","DomainsResponse","FolderResponse","accessId","maxAccessCount","accessCount","expirationDate","deletionDate","hideEmail","SendTextApi","SendFileApi","SendResponse","onEventsClicked","accessEvents","deleted","getAllFromApiForOrganization","indexCiphers","applyFilter","CollectionsComponent","getCollections","collectionDomains","decryptMany","unassignedCollection","getAllNested","nestedCollections","collapse","grouping","isCollapsed","bulkDelete","selectedIds","ciphersComponent","bulkDeleteModalRef","BulkDeleteComponent","cipherIds","onDeleted","bulkRestore","bulkRestoreModalRef","BulkRestoreComponent","onRestored","bulkShare","selectedCiphers","bulkShareModalRef","BulkShareComponent","onShared","bulkMove","bulkMoveModalRef","BulkMoveComponent","onMoved","BulkActionsComponent","SendFile","SendText","CipherWithIdRequest","folder","FolderRequest","onCopy","copyText","selection","getSelection","rangeCount","getRangeAt","stringEndPos","newLinePos","SelectCopyDirective","colorizedPassword","isSpecial","ColorPasswordPipe","FolderData","Folder","NotificationsService","webpackEmptyAsyncContext","keys","exports","classList","remove","FrontendLayoutComponent","broadcasterService","ngZone","businessUrl","enterpriseUrl","run","command","unsubscribe","goToBusinessPortal","businessTokenPromise","getEnterprisePortalSignInToken","showManageTab","showToolsTab","isOwner","canManageUsers","canManageAssignedCollections","canManageGroups","canManagePolicies","canAccessEventLogs","canAccessImportExport","canAccessReports","canAccessBusinessPortal","OrganizationLayoutComponent","UserLayoutComponent","fired","queryParams","qParams","errorMessage","isAuthenticated","EmergencyAccessAcceptRequest","postEmergencyAccessAccept","toast","save","AcceptEmergencyComponent","OrganizationUserAcceptRequest","postOrganizationUserAccept","orgName","organizationName","AcceptOrganizationComponent","HintComponent","routerService","onSuccessfulSubmit","successRoute","LockComponent","togglePassword","authService","onSuccessfulLoginNavigate","goAfterLogIn","queryParamsSub","orgInvite","emergencyInvite","loginRedirect","LoginComponent","DeleteRecoverRequest","postAccountRecoverDelete","RecoverDeleteComponent","TwoFactorRecoveryRequest","postTwoFactorRecover","RecoverTwoFactorComponent","showCreateOrgMessage","layout","referenceData","ReferenceEventRequest","reference","cookie","pop","shift","invite","getPoliciesByToken","policiesData","RegisterComponent","SetPasswordComponent","redirectUri","origin","storedIdentifier","SsoComponent","loggingIn","twoFactorRoute","changePasswordRoute","checkState","getOrgIdentiferFromState","codeChallenge","returnUri","includeUserIdentifier","initiateSsoFormPromise","preValidate","buildAuthorizeUrl","authorizeUrl","sameWindow","preValidateSso","passwordOptions","uppercase","lowercase","numbers","special","codeVerifierHash","identityBaseUrl","getSsoUserIdentifier","userIdentifier","orgIdFromState","onSuccessfulLoginTwoFactorNavigate","sso","onSuccessfulLoginChangePasswordNavigate","disableFavicon","onSuccessfulLogin","stateSplit","checkStateSplit","anotherMethod","twoFactorOptionsModal","TwoFactorOptionsComponent","onProviderSelected","selectedProviderType","onRecoverSelected","TwoFactorComponent","recover","TwoFactorEmailRequest","postAccountVerifyEmailToken","VerifyEmailRequest","VerifyEmailTokenComponent","VerifyDeleteRecoverRequest","postAccountRecoverDeleteToken","VerifyRecoverDeleteComponent","didScroll","pagedCollectionsCount","getUserCollections","resetPaging","loadMore","pagedLength","pagedCollections","pagedSize","addEditModalRef","CollectionAddEditComponent","onSavedCollection","onDeletedCollection","removeCollection","deleteCollection","usersModalRef","entityName","isSearching","isSearchable","isPaging","searching","index","splice","accessGroups","getGroups","groupsResponse","getCollectionDetails","group","CollectionRequest","putCollection","postCollection","deletePromise","getEventsOrganization","EventsComponent","pagedGroupsCount","pagedGroups","GroupAddEditComponent","onSavedGroup","onDeletedGroup","removeGroup","deleteGroup","GroupsComponent","access","getGroupDetails","GroupRequest","putGroup","postGroup","accessPolicies","ManageComponent","statusMap","pagedUsersCount","viewEvents","pagedUsers","Accepted","confirmedCount","acceptedCount","UserAddEditComponent","onSavedUser","onDeletedUser","removeUser","groupsModalRef","UserGroupsComponent","deleteOrganizationUser","reinvite","postOrganizationUserReinvite","confirm","confirmUser","doConfirmation","mapIndex","updateUser","autoConfirm","confirmModalRef","UserConfirmComponent","onConfirmedUser","getUserPublicKey","publicKeyResponse","log","getFingerprint","eventsModalRef","rsaEncrypt","OrganizationUserConfirmRequest","postOrganizationUserConfirm","PeopleComponent","User","showCustom","getOrganizationUser","setRequestPermissions","clearPermissions","OrganizationUserUpdateRequest","putOrganizationUser","OrganizationUserInviteRequest","emails","postOrganizationUserInvite","dontAskAgain","fingerprint","getOrganizationUserGroups","userGroups","ug","OrganizationUserUpdateGroupsRequest","groupIds","putOrganizationUserGroups","userCanAccessBusinessPortal","policiesEnabledMap","display","MasterPassword","PasswordGenerator","RequireSso","PersonalOwnership","DisableSend","SendOptions","policyIdFromEvents","orgPolicies","orgPolicy","getPolicies","op","editModalRef","PolicyEditComponent","onSavedPolicy","goToEnterprisePortal","enterpriseTokenPromise","PoliciesComponent","AppIdService","LogService","policyType","masterPassMinComplexity","passwordScores","defaultTypes","getPolicy","policy","passGenDefaultType","defaultType","passGenMinLength","minLength","passGenUseUpper","useUpper","passGenUseLower","useLower","passGenUseNumbers","useNumbers","passGenUseSpecial","useSpecial","passGenMinNumbers","minNumbers","passGenMinSpecial","minSpecial","passGenMinNumberWords","minNumberWords","passGenCapitalize","capitalize","passGenIncludeNumber","includeNumber","masterPassMinLength","masterPassRequireUpper","requireUpper","masterPassRequireLower","requireLower","masterPassRequireNumbers","requireNumbers","masterPassRequireSpecial","requireSpecial","sendDisableHideEmail","disableHideEmail","PolicyRequest","putPolicy","canUseApi","OrganizationUpdateRequest","putOrganization","taxFormPromise","deleteOrganization","deleteModalRef","DeleteOrganizationComponent","purgeVault","purgeModalRef","viewApiKey","apiKeyModalRef","postOrganizationApiKey","scope","grantType","apiKeyTitle","apiKeyWarning","apiKeyDescription","rotateApiKey","rotateApiKeyModalRef","isRotation","postOrganizationRotateApiKey","AccountComponent","OrganizationBillingComponent","adjustSeatsAdd","showAdjustSeats","adjustStorageAdd","showAdjustStorage","showUpdateLicense","showDownloadLicense","showChangePlan","getOrganizationSubscription","sub","reinstate","reinstatePromise","postOrganizationReinstate","cancelPromise","postOrganizationCancel","changePlan","subscription","closeChangePlan","changed","downloadLicense","closeDownloadLicense","updateLicense","closeUpdateLicense","updated","adjustSeats","closeSeats","adjustStorage","closeStorage","cancelled","cancelAtEndDate","upcomingInvoice","storageGb","storagePercentage","OrganizationSubscriptionComponent","onChanged","defaultUpgradePlan","FamiliesAnnually","defaultUpgradeProduct","Families","ChangePlanComponent","onDownloaded","installationId","getOrganizationLicense","license","licenseString","JSON","stringify","saveFile","DownloadLicenseComponent","seatAdjustment","SeatRequest","postOrganizationSeat","AdjustSeatsComponent","access2fa","SettingsComponent","duoComp","getTwoFactorOrganizationProviders","qrScript","UpdateTwoFactorAuthenticatorRequest","putTwoFactorAuthenticator","QRious","element","sendEmail","emailPromise","postTwoFactorEmailSetup","sentEmail","UpdateTwoFactorEmailRequest","putTwoFactorEmail","print","w","open","write","onafterprint","formatString","keyIdAvailable","keysConfiguredCount","webAuthnResponse","UpdateTwoFactorWebAuthnRequest","deviceResponse","putTwoFactorWebAuthn","removePromise","UpdateTwoFactorWebAuthnDeleteRequest","deleteTwoFactorWebAuthn","readKey","challengePromise","getTwoFactorWebAuthnChallenge","challenge","readDevice","webAuthnChallenge","resetWebAuthn","credentials","webAuthnListening","webAuthnError","listening","k","configured","migrated","nfc","UpdateTwoFactorYubioOtpRequest","key1","key2","key3","key4","key5","putTwoFactorYubiKey","disablePromise","existingKey","padRight","max","getExportData","getOrganizationExport","getFileName","collectEvent","manageableCiphers","onError","appFallbackSrc","FallbackSrcDirective","ToolsComponent","changeDetectorRef","trashCleanupWarning","groupingsComponent","successfully","detectChanges","selectedAll","reload","selectedTrash","filterDeleted","selectedType","filterCipherType","selectedCollectionId","filterCollection","clearGroupingFilters","clearFilters","go","filterSearchText","editCipherAttachments","attachmentsModalRef","madeAttachmentChanges","onUploadedAttachment","onDeletedAttachment","editCipherCollections","collectionsModalRef","onSavedCollections","addCipher","component","editCipher","cloneCipher","replaceUrl","VaultComponent","saveCipherAttachment","saveAttachmentWithServer","cipherDomain","deleteCipherAttachment","attachmentId","deleteCipherAttachmentAdmin","onReuploadedAttachment","deletePromises","reuploadPromises","emergencyAccessId","hasUpdatedKey","download","downloading","canAccessAttachments","getAttachmentData","attachmentDownloadResponse","cache","arrayBuffer","buf","decryptFromBytes","decBuf","hasEncKey","admin","saveAttachmentRawWithServer","foundAttachment","a2","deleteAttachmentWithServer","Window","domains","excluded","access_token","expiresIn","expires_in","refresh_token","tokenType","token_type","IdentityTokenResponse","IdentityTwoFactorResponse","dr","ListResponse","sends","profile","PolicyResponse","SyncResponse","allowSelectNone","loadCipherCollections","saveCollections","CipherCollectionsRequest","putCipherCollectionsAdmin","deleteCiphers","deleteCiphersAdmin","deleteManyWithServer","softDeleteManyWithServer","deleteRequest","CipherBulkDeleteRequest","deleteManyCiphersAdmin","putDeleteManyCiphersAdmin","ids","moveManyWithServer","restoreManyWithServer","nonShareableCount","shareableCiphers","writeableCollections","allCollections","filterCollections","checkedCollectionIds","shareManyWithServer","sendType","passwordRequired","unavailable","maskedText","creatorIdentifier","sendId","decKey","getSendFileDownloadData","accessRequest","downloadData","toggleText","keyArray","SendAccessRequest","pbkdf2","passwordHash","sendResponse","postSendAccess","sendAccess","SendAccess","makeSendKey","AccessComponent","sendService","addSend","disableSend","editSend","sendAddEditModalRef","onSavedSend","onDeletedSend","SendComponent","datePipe","copyLinkToClipboard","link","SendView","deauthorizeSessions","deauthModalRef","DeauthorizeSessionsComponent","deleteAccount","DeleteAccountComponent","viewUserApiKey","viewUserApiKeyModalRef","postUserApiKey","rotateUserApiKey","rotateUserApiKeyModalRef","postUserRotateApiKey","postSecurityStamp","getProfile","UpdateProfileRequest","putProfile","ProfileComponent","tokenSent","newEmail","EmailTokenRequest","postEmailToken","EmailRequest","newKey","newMasterPasswordHash","newEncKey","postEmail","reset","ChangeEmailComponent","rotateEncKey","rotateEncKeyClicked","currentMasterPassword","PasswordRequest","postPassword","updateKey","getPrivateKey","encPrivateKey","UpdateKeyRequest","FolderWithIdRequest","postAccountKey","updateEmergencyAccesses","updateAllResetPasswordKeys","getEmergencyAccessTrusted","emergencyAccess","allowedStatuses","EmergencyAccessStatusType","RecoveryInitiated","RecoveryApproved","filteredAccesses","details","granteeId","updateRequest","EmergencyAccessUpdateRequest","waitTimeDays","keyEncrypted","putEmergencyAccess","PBKDF2_SHA256","kdfOptions","KdfRequest","postAccountKdf","ChangeKdfComponent","orgPlansComponent","EnterpriseAnnually","CreateOrganizationComponent","custom","getSettingsDomains","toggleExcluded","globalDomain","customize","UpdateDomainsRequest","excludedGlobalEquivalentDomains","d2","putSettingsDomains","indexTrackBy","DomainRulesComponent","vaultTimeout","vaultTimeoutAction","vaultTimeouts","localeOptions","supportedTranslationLocales","locale","localeNames","disableIcons","enableGravatars","enableFullWidth","startingLocale","setVaultTimeoutOptions","vaultTimeoutActionChanged","newValue","OptionsComponent","ngAfterContentInit","LinkSsoComponent","premiumPrice","getPremium","getEmailVerified","finalizePremium","postPremium","paymentResponse","PremiumComponent","getUserSubscription","usingInAppPurchase","postReinstatePremium","postCancelPremium","UserSubscriptionComponent","breachedAccounts","checkedUsername","BreachReportComponent","history","historyModalRef","PasswordGeneratorHistoryComponent","lengthChanged","minNumberChanged","minSpecialChanged","PasswordGeneratorComponent","saveOptions","regenerate","favorites","showVerifyEmail","showBrowserOutdated","showUpdateKey","showPremiumCallout","organizationsComponent","selectedFavorites","filterFavorites","selectedFolder","selectedFolderId","filterFolder","shareCipher","shareModalRef","ShareComponent","onSharedCipher","folderAddEditModalRef","FolderAddEditComponent","onSavedFolder","loadFolders","editFolder","onDeletedFolder","updateKeyModalRef","UpdateKeyComponent","makeRequest","getKey","SendInfoComponent","postAccountVerifyEmail","VerifyEmailComponent","canActivate","OrganizationGuardService","Permissions","AccessBusinessPortal","AccessEventLogs","AccessImportExport","AccessReports","ManageAllCollections","ManageAssignedCollections","ManageGroups","ManageOrganization","ManagePolicies","ManageUsers","OrganizationTypeGuardService","routerState","isLocked","promptBiometric","AuthGuardService","LockGuardService","UnauthGuardService","EmergencyAddEditComponent","postEmergencyAccessView","viewAttachments","EmergencyAccessAttachmentsComponent","decCiphers","rsaDecrypt","oldKeyBuffer","oldEncKey","cipherResponse","cipherData","getLocaleSortingFunction","EmergencyAccessViewComponent","EncryptedObject","EnvironmentUrls","GeneratedPasswordHistory","emergencyAccessType","EmergencyAccessType","emergencyAccessStatusType","isOrganizationOwner","trustedContacts","getEmergencyAccessGranted","grantedContacts","EmergencyAccessAddEditComponent","onSaved","contact","postEmergencyAccessReinvite","EmergencyAccessConfirmComponent","onConfirmed","deleteEmergencyAccess","EmergencyAccessGranteeDetailsResponse","removeGrantee","removeGrantor","requestAccess","postEmergencyAccessInitiate","approve","View","postEmergencyAccessApprove","postEmergencyAccessReject","takeover","EmergencyAccessTakeoverComponent","takeoverModalRef","onDone","EmergencyAccessConfirmRequest","postEmergencyAccessConfirm","EmergencyAccessComponent","creationDate","grantorId","EmergencyAccessGrantorDetailsResponse","EmergencyAccessTakeoverResponse","EmergencyAccessViewResponse","waitTimes","getEmergencyAccess","waitTime","EmergencyAccessInviteRequest","postEmergencyAccessInvite","getEmergencyGrantorPolicies","policyResponse","postEmergencyAccessTakeover","takeoverResponse","EmergencyAccessPasswordRequest","postEmergencyAccessPassword","logoutCallback","customUserAgent","urlsSet","isWebClient","isDesktopClient","usingBaseUrl","device","getDevice","setUrls","urls","apiBaseUrl","eventsBaseUrl","api","headers","Headers","qsStringify","toIdentityToken","identityClientId","getCredentials","isJsonResponse","TwoFactorProviders2","clearTwoFactorToken","doRefreshToken","BillingResponse","SubscriptionResponse","TaxInfoResponse","PreloginResponse","setPassword","getAccountRevisionDate","postPasswordHint","postRegister","PaymentResponse","postIapCheck","postAccountVerifyPassword","ApiKeyResponse","getFolder","postFolder","putFolder","deleteFolder","getSend","apiUrl","SendAccessResponse","SendFileDownloadDataResponse","getSends","postSend","postFileTypeSend","SendFileUploadDataResponse","renewSendFileUploadUrl","fileId","postSendFile","postSendFileLegacy","putSend","putSendRemovePassword","deleteSend","getCipher","getCiphersOrganization","postCipher","postCipherCreate","putCipher","deleteManyCiphers","putMoveCiphers","putShareCipher","putShareCiphers","putCipherCollections","path","postImportCiphers","postImportOrganizationCiphers","putDeleteCipher","putDeleteManyCiphers","putRestoreCipher","putRestoreCipherAdmin","putRestoreManyCiphers","postCipherAttachment","AttachmentUploadDataResponse","postCipherAttachmentLegacy","postCipherAttachmentAdminLegacy","postShareCipherAttachment","renewAttachmentUploadUrl","postAttachmentFile","deleteCollectionUser","GroupDetailsResponse","GroupResponse","deleteGroupUser","OrganizationUserDetailsResponse","OrganizationUserUserDetailsResponse","PlanResponse","postImportDirectory","TaxRateResponse","getSync","TwoFactorProviderResponse","TwoFactorAuthenticatorResponse","TwoFactorEmailResponse","TwoFactorDuoResponse","TwoFactorYubiKeyResponse","TwoFactorWebAuthnResponse","ChallengeResponse","TwoFactorRecoverResponse","rawId","extensions","getClientExtensionResults","AttestationObject","attestationObject","clientDataJson","clientDataJSON","postTwoFactorEmail","OrganizationResponse","OrganizationSubscriptionResponse","getEvents","addEventParameters","EventResponse","postEventsCollect","getActiveBearerToken","authHeader","UserKeyResponse","getHibpBreach","BreachAccountResponse","getToken","tokenNeedsRefresh","nativeFetch","handleError","hasResponse","requestInit","tokenError","isTextResponse","Message","getRefreshToken","decodedToken","decodeToken","grant_type","client_id","typeHeader","businessAddress1","businessAddress2","businessAddress3","businessCountry","businessTaxNumber","nameLocalizationKey","descriptionLocalizationKey","baseStorageGb","maxUsers","maxAdditionalSeats","maxAdditionalStorage","hasSelfHost","hasPolicies","hasGroups","hasDirectory","hasEvents","has2fa","hasApi","hasSso","upgradeSortOrder","displaySortOrder","stripePlanId","stripeSeatPlanId","stripeStoragePlanId","stripePremiumAccessPlanId","storageName","BillingSubscriptionResponse","BillingSubscriptionUpcomingInvoiceResponse","trialEndDate","periodStartDate","periodEndDate","cancelledDate","BillingSubscriptionItemResponse","quantity","KeyResponse","attestation","authenticatorSelection","excludeCredentials","pubKeyCredParams","rp","makeAndGetAppId","getAnonymousAppId","existingId","guid","hashStart","hashEnding","leakedHashes","v","throttle","Keys","DomainMatchBlacklist","Set","settingsService","fileUploadService","sortedCiphersCache","SortedCiphersCache","sortCiphersByLastUsed","_decryptedCipherCache","clearIndex","clearCache","decryptedCipherCache","existingCipher","hasFields","existingHiddenFields","Hidden","ef","matchedField","encryptObjProperty","encryptCipherData","encryptFields","encryptPasswordHistories","encryptAttachments","attachmentsModel","encAttachments","fieldsModel","encFields","encryptField","encField","fieldModel","Boolean","phModels","encPhs","encryptPasswordHistory","encPh","phModel","hasKey","getAllDecryptedForGrouping","groupingId","getAllDecryptedForUrl","includeOtherTypes","defaultMatch","eqDomainsPromise","getEquivalentDomains","eqDomains","matches","eqDomain","matchingDomains","Domain","domainUrlHost","Host","urlHost","Exact","StartsWith","Never","getLastUsedForUrl","getCipherForUrl","getLastLaunchedForUrl","getNextCipherForUrl","updateLastUsedIndexForUrl","updateLastUsedIndex","updateLastUsedDate","ciphersLocalData","cached","updateLastLaunchedDate","lastLaunched","saveNeverDomain","saveWithServer","upsert","shareWithServer","attachmentPromises","shareAttachmentWithServer","encCipher","CipherShareRequest","encCiphers","CipherBulkShareRequest","unencryptedFile","readAsArrayBuffer","cData","filename","encFileName","dataEncKey","encryptToBytes","encData","fileSize","adminRequest","uploadDataResponse","cipherMiniResponse","uploadCipherAttachment","legacyServerAttachmentFileUpload","blob","Blob","filepath","contentType","saveCollectionsWithServer","CipherBulkMoveRequest","deleteAttachment","aLastUsed","bLastUsed","bothNotNull","sortCiphersByLastUsedThenName","aName","bName","softDelete","setDeletedDate","clearDeletedDate","constructor","CipherBulkRestoreRequest","restores","attachmentView","attachmentResponse","theObj","modelProp","lastUsed","isCached","addCiphers","getLastLaunched","getLastUsed","getNext","sequentialize","propertyKey","descriptor","originalMethod","caches","getCache","argsCacheKey","args","onFinally","decryptedCollectionCache","decCollections","nodes","collectionCopy","ServiceUtils","nestedTraverse","getNested","getTreeNodeObject","nodeTree","partIndex","delimiter","partName","node","TreeNode","children","newPartName","attachToWindow","attachToGlobal","ContainerService","secureStorageService","platformUtilService","option","biometric","supportsSecureStorage","keyHash","setOrgKeys","orgKeys","getKeyHash","encKeyCipher","decEncKey","stretchKey","getPublicKey","rsaExtractPublicKey","keyFingerprint","hkdfExpand","userFingerprint","hashPhrase","getOrgKeys","encOrgKeys","clearKey","legacyEtmKey","clearKeyHash","clearEncKey","memoryOnly","clearKeyPair","clearOrgKeys","clearPinProtectedKey","clearKeys","toggleKey","salt","makeKeyFromPin","pin","protectedKeyCs","makePinKey","pinKey","randomBytes","rsaGenerateKeyPair","publicB64","privateEnc","keyMaterial","hkdf","sendKey","getKeyForEncryption","theKey","buildEncKey","plainValue","plainBuf","aesEncrypt","encObj","encValue","macLen","encBytes","EncArrayBuffer","Rsa2048_OaepSha256_HmacSha256_B64","Rsa2048_OaepSha1_HmacSha256_B64","alg","encString","aesDecryptToBytes","decipher","aesDecryptToUtf8","encBuf","ctBytes","ivBytes","macBytes","randomNumber","min","rval","range","bitsNeeded","ceil","log2","bytesNeeded","mask","pow","byteArray","macData","hmac","keyForEnc","resolveLegacyKey","fastParams","aesDecryptFastParameters","hmacFast","computedMac","compareFast","aesDecryptFast","aesDecrypt","minimumEntropy","entropyPerWord","EEFLongWordList","numWords","hashArr","entropyAvailable","phrase","hashNumber","bigInt","fromArray","remainder","divide","encKeyEnc","notificationsService","getWebVaultUrl","webVaultUrl","setUrlsFromStorage","urlsObj","icons","notifications","webVault","enterprise","envUrls","identityUrl","notificationsUrl","eventsUrl","formatUrl","decryptedFolderCache","decFolders","noneFolder","folderCopy","cId","updates","systemLanguage","localesDirectory","getLocalesJson","defaultMessages","localeMessages","translationLocale","Intl","Collator","numeric","sensitivity","loadMessages","translate","messagesObj","formattedLocale","locales","placeholders","placeProp","replaceToken","replaceContent","DefaultOptions","ambiguous","minNumber","minUppercase","minLowercase","wordSeparator","generatePassphrase","sanitizePasswordLength","positions","shuffleArray","allCharSet","lowercaseCharSet","uppercaseCharSet","numberCharSet","specialCharSet","positionChars","randomCharIndex","listLength","wordList","wordIndex","appendRandomNumberToRandomWord","optionsCache","enforcePasswordGeneratorPoliciesOnOptions","enforcedOptions","getPasswordGeneratorPolicyOptions","useUppercase","useLowercase","numberCount","specialCount","PasswordGeneratorPolicyOptions","currentPolicy","getHistory","encrypted","decryptHistory","addHistory","currentHistory","matchesPrevious","unshift","now","encryptHistory","newHistory","userInputs","globalUserInputs","finalUserInputs","zxcvbn","normalizeOptions","decrypted","array","forGeneration","minUppercaseCalc","minLowercaseCalc","minNumberCalc","minSpecialCalc","settingsCache","getSettingsKey","setEquivalentDomains","setSettingsKey","getSettings","settings","purge","syncInProgress","getLastSync","lastSync","setLastSync","toJSON","forceSync","allowThrowOnError","syncStarted","syncCompleted","needsSync","needsSyncing","syncProfile","syncFolders","syncCollections","syncCiphers","syncSends","syncSettings","syncPolicies","syncUpsertFolder","notification","isEdit","localFolder","remoteFolder","syncDeleteFolder","syncUpsertCipher","shouldUpdate","localCipher","checkCollections","remoteCipher","syncDeleteCipher","syncUpsertSend","localSend","remoteSend","SendData","syncDeleteSend","getSecurityStamp","stamp","setSecurityStamp","setEmailVerified","OrganizationData","replaceOrganizations","SendTextData","File","SendFileData","setToken","setRefreshToken","skipTokenStorage","toggleTokens","clearToken","decoded","getTokenExpirationDate","setUTCSeconds","tokenSecondsRemaining","offsetSeconds","msRemaining","valueOf","minutes","email_verified","getIssuer","iss","B32Chars","SteamChars","period","digits","keyB32","isOtpAuth","isSteamAuth","digitParams","periodParam","algParam","timeHex","leftPad","decToHex","timeBytes","keyBytes","b32ToBytes","sign","offset","otp","fullCode","trunc","isAutoCopyEnabled","b32ToHex","cleanedInput","bits","hex","byteIndex","chunk","signature","clearOrganizations","lockedCallback","loggedOutCallback","checkOnInterval","startCheck","checkVaultTimeout","isBiometricLockSet","isViewOpen","lockTimeout","lastActive","vaultTimeoutSeconds","allowSoftLock","isPinLockSet","timersMap","debug","LogLevelType","Debug","info","Info","Warning","level","warn","time","hrtime","timeEnd","elapsed","build","CipherWithIds","CollectionWithId","FolderWithId","IgnoredProperties","loginPropertyParsers","setLoginUsername","setLoginPassword","setLoginUris","creditCardPropertyParsers","setCreditCardNumber","setCreditCardVerification","setCreditCardCardholderName","setCreditCardExpiry","identityPropertyParsers","setIdentityFirstName","setIdentityInitial","setIdentityLastName","setIdentityUserName","setIdentityEmail","setIdentityPhone","setIdentityCompany","quoteChar","escapeChar","getProp","setNotes","setCipherType","altUsername","context","CipherImportContext","setKnownLoginValue","setKnownCreditCardValue","setKnownIdentityValue","setUnknownValue","entries","agg","entry","getPropByRegexp","regexp","matchingKeys","getPropIncluding","includesMap","importRecord","func","lowerProperty","readableDate","toUTCString","OnePasswordCsvImporter","NotificationType","enableProdMode","platformBrowser","bootstrapModule","preserveWhitespaces","registerLocaleData","AppModule","AppComponent","DatePipe","BrowserModule","BrowserAnimationsModule","FormsModule","AppRoutingModule","ServicesModule","ToasterModule","forRoot","InfiniteScrollModule","DragDropModule","BlurClickDirective","BoxRowDirective","SearchCiphersPipe","routes","pathMatch","redirectTo","RouterModule","useHash","paramsInheritanceStrategy","subscribers","messageCallback","PasswordHintRequest","showPassword","pinLock","webVaultHostname","invalidPinAttempts","pinSet","supportsBiometric","biometricLock","vaultUrl","failed","decPin","setKeyAndContinue","passwordValid","storedKeyHash","unlockBiometric","authenticateBiometric","doContinue","rememberEmail","launchSsoBrowser","ssoRedirectUri","ssoCodeVerifier","webUrl","confirmMasterPassword","hint","showTerms","acceptPolicies","useLowerKdf","isIE","RegisterRequest","confirmField","syncLoading","SetPasswordRequest","orgIdentifier","onSuccessfulChangePassword","choose","backdrop","className","addEventListener","webAuthnReady","webAuthnNewTab","webAuthn","twoFactorEmail","loginRoute","authing","needsLock","cleanupWebAuthn","providerData","DuoWebSDK","iframe","sig_request","Signature","submit_callback","sig","stop","doToast","cleanup","getDeviceString","pushToken","codes","client_secret","code_verifier","redirect_uri","deviceIdentifier","deviceName","twoFactorRemember","errorCallback","infoCallback","parseFunction","parseMessage","connectorLink","URLSearchParams","base64Encode","btnText","allow","sendMessage","contentWindow","postMessage","removeEventListener","validMessage","warningDialog","downloadFile","encryptedFormat","getExport","extension","csv","onCancelled","onEditAttachments","onShareCipher","onEditCollections","onGeneratePassword","showCardCode","fieldType","addFieldType","currentDate","typeOptions","cardBrandOptions","cardExpMonthOptions","identityTitleOptions","addFieldTypeOptions","uriMatchOptions","myEmail","addEditCipherInfo","organizationChanged","previousCipherId","addUri","removeUri","addField","removeField","trackByFunction","editCollections","restorePromise","restoreCipher","toggleCardCode","toggleFieldValue","toggleUriOptions","loginUriMatchChanged","drop","moveItemInArray","previousIndex","currentIndex","checkPassword","checkPasswordPromise","DeviceResponse","KeysResponse","activeCipherId","onCipherClicked","onCipherRightClicked","onAddCipher","onAddCipherOptions","pagedCiphers","searchPending","searchTimeout","pagedCiphersCount","refreshing","indexedCiphers","deletedFilter","searchCiphers","rightClickCipher","addCipherOptions","selectedCollectionIds","showFolders","showCollections","showFavorites","showTrash","onAllClicked","onFavoritesClicked","onTrashClicked","onCipherTypeClicked","onFolderClicked","onAddFolder","onEditFolder","onCollectionClicked","setLoaded","collapsedGroupings","nestedFolders","clearSelections","selectFavorites","selectTrash","selectFolder","selectCollection","idPrefix","SendAccessView","expired","filteredSends","hasSearched","onSuccessfulLoad","applyTextSearch","removePassword","removePasswordWithServer","onSuccessfulRemovePassword","onSuccessfulDelete","sendLinkBaseUrl","urlB64Key","searchSends","DateField","copyLink","deletionDateSelect","expirationDateSelect","alertShown","deletionDateOptions","expirationDateOptions","isSafari","isFirefox","nullOrWhiteSpaceCount","expirationDateFallback","expirationTimeFallback","formatDateFallbacks","deletionDateFallback","deletionTimeFallback","disableSendPolicies","sendOptionsPolicies","loadSend","hasPassword","isDateTimeLocalSupported","dateToString","deletionDateParts","dateToSplitString","safariDeletionTime","expirationDateParts","safariExpirationTime","safariDeletionTimeOptions","safariTimeOptions","DeletionDate","safariExpirationTimeOptions","ExpriationDate","deletionDateTimeFallback","expirationDateTimeFallback","setHours","encryptSend","encSend","clearExpiration","typeChanged","toggleOptions","expirationDateFallbackChanged","sendData","dateString","togglePasswordVisible","strarray","noon","midnight","ams","pms","m","hour","midnightOption","standard","military","noonOption","amOption","pmOption","validTimes","previousValue","showSelect","onSelected","avoidAmbiguous","optionsResponse","sliderChanged","sliderInput","copyOptions","cipherView","language","BroadcasterMessagingService","WebPlatformUtilsService","HtmlStorageService","MemoryStorageService","WebCryptoFunctionService","consoleLogService","FileUploadService","eventLoggingService","initFactory","htmlEl","documentElement","theme","useValue","APP_INITIALIZER","useFactory","deps","LOCALE_ID","subscriber","arg","localStorageKeys","localStorageStartsWithKeys","memoryStorageStartsWithKeys","memoryStorage","isLocalStorage","localStorage","getItem","isMemoryStorage","sessionStorage","setItem","removeItem","swKey","fileUploadType","BillingSourceResponse","BillingTransactionResponse","BillingInvoiceResponse","cardBrand","needsVerification","pdfUrl","paid","createdDate","refunded","partiallyRefunded","refundedAmount","addedDate","breachDate","dataClasses","isActive","isVerified","logoPath","modifiedDate","pwnCount","OrganizationUserResponse","userProfile","taxIdType","limit","throttleKey","allThrottles","getThrottles","throttles","argsThrottleKey","queue","exec","comparator","sortedCiphersByUrl","timeouts","Ciphers","resetTimer","lastUsedIndex","y","getNextIndex","inEffect","filePath","store","browserCache","chrome","isChrome","isEdge","isOpera","isVivaldi","isMacAppStore","rel","click","blobData","blobOptions","fileNameLower","doDownload","endsWith","msSaveOrOpenBlob","msSaveBlob","createObjectURL","position","confirmText","cancelText","bodyIsHtml","iconClasses","iconHtmlStr","showCancelButton","cancelButtonText","clipboardData","setData","queryCommandSupported","textarea","copyEl","contains","execCommand","readFromClipboard","getDefaultSystemTheme","onDefaultSystemThemeChange","uploadEvents","eventType","uploadImmediately","orgIds","eventCollection","EventData","EventRequest","clearEvents","getEncryptedExport","getDecryptedExport","getOrganizationEncryptedExport","getOrganizationDecryptedExport","padNumber","getSeconds","buildCommonCipher","unparse","jsonDoc","collectionPromises","decCol","cipherPromises","decCipher","padCharacter","numString","login_uri","login_username","login_password","login_totp","template","toView","values","toDomain","azureFileUploadService","AzureFileUploadService","bitwardenFileUploadService","BitwardenFileUploadService","uploadSendFile","uploadData","encryptedFileData","FileUploadType","Direct","Azure","upload","renewalCallback","encryptedFileName","azureUploadBlob","azureUploadBlocks","urlObject","searchParams","blobResponse","blockSize","getMaxBlockSize","blockIndex","numBlocks","blocksStaged","renewUrlIfNecessary","blockUrl","blockId","encodedBlockId","blockData","blockHeaders","blockRequest","blockResponse","blockListUrl","blockListXml","expiry","setTime","utfBlockId","blockIdList","xml","Version","day","Number","compareTo","apiCall","getImportOptions","importResult","halfway","last","badData","postImport","errorResponse","handleServerError","getImporterInstance","BitwardenCsvImporter","BitwardenJsonImporter","LastPassCsvImporter","KeePassXCsvImporter","AviraCsvImporter","BlurCsvImporter","SafeInCloudXmlImporter","PadlockCsvImporter","KeePass2XmlImporter","ChromeCsvImporter","FirefoxCsvImporter","UpmCsvImporter","SaferPassCsvImporter","MeldiumCsvImporter","OnePassword1PifImporter","OnePasswordWinCsvImporter","OnePasswordMacCsvImporter","KeeperCsvImporter","PasswordDragonXmlImporter","EnpassCsvImporter","EnpassJsonImporter","PasswordSafeXmlImporter","DashlaneJsonImporter","MSecureCsvImporter","StickyPasswordXmlImporter","TrueKeyCsvImporter","ClipperzHtmlImporter","RoboFormCsvImporter","AscendoCsvImporter","PasswordBossJsonImporter","ZohoVaultCsvImporter","SplashIdCsvImporter","PassKeepCsvImporter","GnomeJsonImporter","PasswordAgentCsvImporter","PasspackCsvImporter","PassmanJsonImporter","AvastCsvImporter","AvastJsonImporter","FSecureFskImporter","KasperskyTxtImporter","RememBearCsvImporter","PasswordWalletTxtImporter","MykiCsvImporter","SecureSafeCsvImporter","LogMeOnceCsvImporter","BlackBerryCsvImporter","ButtercupCsvImporter","CodebookCsvImporter","EncryptrCsvImporter","YotiCsvImporter","ImportCiphersRequest","KvpRequest","ImportOrganizationCiphersRequest","itemType","fieldLower","web","logins","custName","note","pwd","loginName","cards","holderName","cardNumber","cvv","website","secondary_username","col","addCollection","collectionIndex","delimPosition","parseEncrypted","parseDecrypted","groupingsMap","fav","extra","OfficialProps","processingCustomFields","currentVersion","actionType","labelLower","Category","Favorite","Entry","Note","Username","TOTP","Website","Phone","PIN","Account","HandledResults","ADDRESS","processAddress","AUTHENTIFIANT","processAuth","BANKSTATEMENT","processNote","IDCARD","PAYMENTMEANS_CREDITCARD","processCard","IDENTITY","processIdentity","credential","secondaryLogin","fullName","nameParts","pseudo","addressName","addressFull","zipcode","owner","nameProperty","Label","Notes","CVV","Expiry","expParts","firstRow","containsField","fieldValue","fieldName","fieldNameLower","foldersMap","foldersIndexMap","folderTree","buildFolderTree","flattenFolderTree","template_type","processLogin","sensitive","uuid","parent_uuid","titlePrefix","tree","creditNumber","creditCvv","creditExpiry","keyRing","display_name","secret","attributes","attr","username_value","notesData","applicationsData","websitesData","workingData","parseDataCategory","applications","websites","nameKey","itemComment","itemCommentKey","colonIndex","rootGroup","traverse","isRootNode","groupPrefixName","groupName","nameEl","cipherIndex","entryString","valueEl","keyEl","attrs","ProtectInMemory","Title","Group","buildBaseCipher","parseSecureNote","parseCard","parseIdentity","ccnum","cardCipher","profilename","firstname","lastname","ccname","cccsc","ccexp","ccexpParts","middlename","zip","extraParts","processedNote","typeParts","mappedData","parseSecureNoteMapping","monthString","processingNotes","extraPart","DisplayName","UserName","Url","nickname","additionalInfo","twoFactAuthToken","cardName","exp_month","exp_year","firstAddressLine","secondAddressLine","zipCode","line","trashed","processStandardItem","processWinOpVaultItem","overview","URLs","parsePasswordHistory","notesPlain","parseFields","sections","section","openContents","faveIndex","typeName","secureContents","maxSize","designationKey","valueKey","fieldDesignation","street","setIdentityAddress","expSplit","tags","tag","getValue","custom_fields","customField","field_type","tagsJson","Tags","tagJson","__parsed_extra","fieldsJson","extraFields","fieldJson","newVersion","altFormat","login_url","identifiers","valObj","expDate","cf","records","record","categoryText","accountName","tagName","passwordSafe","notesDelimiter","getAttribute","groupText","trash","cardholder","verification","expiryMonth","expMonthNumber","expiryYear","expYearNumber","Name","Pwd","Rf_fields","labelEl","cardEl","labelIdEl","labelId","fieldEl","notesEl","candidates","choice","Comment","parseFieldsToNotes","startIndex","loginNodes","loginNode","accountId","usernameText","passwordText","titleText","linkText","notesText","accountLogin","account","parentElement","buildGroupText","PropertiesToIgnore","memo","kind","expiryDate","document_content","ChamberName","parseData","SecretData","CustomData","connected","inactive","reconnectTimer","signalrConnection","off","signalR","HubConnectionBuilder","withUrl","accessTokenFactory","skipNegotiation","transport","HttpTransportType","WebSockets","withHubProtocol","signalRMsgPack","MessagePackHubProtocol","processNotification","NotificationResponse","onclose","reconnect","isAuthedAndUnlocked","updateConnection","sync","reconnectFromActivity","disconnectFromInactivity","contextId","payloadUserId","UserId","myUserId","SyncCipherCreate","SyncCipherUpdate","SyncCipherDelete","SyncLoginDelete","SyncFolderCreate","SyncFolderUpdate","SyncFolderDelete","SyncVault","SyncCiphers","SyncSettings","SyncOrgKeys","LogOut","SyncSendCreate","SyncSendUpdate","SyncSendDelete","SyncCipherNotification","SyncFolderNotification","UserNotification","SyncSendNotification","policyCache","MasterPasswordPolicyOptions","newPassword","toLocaleLowerCase","toLocaleUpperCase","indexing","searchableMinLength","builder","lunr","Builder","boost","extractor","uriExtractor","fieldExtractor","attachmentExtractor","isArray","every","getIndexForSearch","searchCiphersBasic","ciphersMap","searchResults","Query","wildcard","LEADING","TRAILING","q","tokenizer","term","joined","protocolIndex","queryIndex","decryptedSendCache","fileData","Send","cryptoKey","ArrayBuffer","encryptFileData","parseFile","decSends","SendRequest","legacyServerSendFileUpload","encFileData","fileLength","crypto","subtle","ua","isOldSafari","algorithm","iterations","forgeLen","passwordBytes","toByteString","saltBytes","derivedKeyBytes","forge","wcLen","passwordBuf","toBuf","saltBuf","pbkdf2Params","toWebCryptoAlgorithm","importKey","impKey","deriveBits","ikm","outputByteSize","infoBuf","hkdfParams","prk","hashLen","infoArr","runningOkmLength","previousT","okm","md","md5","sha1","valueBytes","update","digest","valueBuf","signingAlgorithm","mac1","mac2","arr1","arr2","getBytes","rand","Uint32Array","util","createBuffer","putInt32","DecryptParameters","meta","encKeyByteString","macKeyByteString","decode64","parameters","dataBuffer","createDecipher","finish","rsaParams","impPrivateKey","exportKey","jwkPrivateKey","jwkPublicKeyParams","kty","ext","impPublicKey","modulusLength","publicExponent","generateKey","getRandomValues","encodeUtf8","toasterConfig","ToasterConfig","showCloseButton","mouseoverTimerStop","animation","lastActivity","idleTimer","isIdle","runOutsideAngular","onmousemove","recordActivity","onmousedown","ontouchstart","onclick","onscroll","onkeypress","setFullWidth","idleStateChanged","sanitize","SecurityContext","HTML","bodyOutputType","BodyOutputType","TrustedHtml","trustedHtml","blur","elRef","formEls","formEl","inputEl"],"mappings":"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qB,G,yGAE3CooE,EAAuB,KACA,KAAvBnzF,EAAIA,IAAIgO,WAAR,MACe,GAAM3M,KAAKssF,WAAW3tF,I,OACzB,OADN+rE,EAAS,SACH,GAAM1qE,KAAK4nC,QAAQle,EAAQghD,I,cAAvConB,EAAY,S,oBACkB,KAAvBnzF,EAAIA,IAAIgO,WAAR,MACK,GAAM3M,KAAK4nC,QAAQle,EAAQ/qB,I,cAAvCmzF,EAAY,S,aAEZ,MAAM,IAAInwF,MAAM,qB,OAEpB,MAAO,CAAC,EAAD,CAAC,IAAI,EAAAioC,mBAAmBlgB,GAASooE,YAjmB5C,GADC,EAAA/H,eAAc,WAAM,qB,iDACA,EAAAngD,qB,8DA4ErB,GADC,EAAAmgD,eAAc,WAAM,sB,mHAwhBzB,EA1rBA,GAAa,EAAAzoF,iB,8EC9BA,EAAA8vF,gBAAkB,CAC3B,SACA,UACA,YACA,QACA,UACA,UACA,SACA,OACA,WACA,WACA,WACA,UACA,UACA,SACA,WACA,UACA,WACA,WACA,WACA,WACA,UACA,UACA,WACA,SACA,SACA,UACA,YACA,YACA,UACA,WACA,WACA,WACA,UACA,WACA,SACA,OACA,QACA,WACA,UACA,OACA,UACA,UACA,SACA,SACA,WACA,YACA,SACA,WACA,WACA,WACA,UACA,OACA,UACA,YACA,WACA,WACA,UACA,YACA,OACA,SACA,WACA,YACA,YACA,YACA,YACA,SACA,QACA,YACA,WACA,SACA,UACA,SACA,SACA,WACA,QACA,SACA,YACA,YACA,YACA,YACA,YACA,OACA,UACA,SACA,SACA,QACA,YACA,SACA,QACA,UACA,QACA,WACA,UACA,YACA,QACA,YACA,YACA,SACA,WACA,YACA,UACA,QACA,OACA,OACA,OACA,MACA,OACA,YACA,QACA,YACA,QACA,UACA,UACA,YACA,QACA,QACA,YACA,WACA,SACA,QACA,QACA,WACA,WACA,UACA,WACA,SACA,OACA,QACA,QACA,QACA,YACA,QACA,WACA,UACA,WACA,WACA,OACA,WACA,SACA,SACA,WACA,QACA,YACA,QACA,WACA,YACA,YACA,WACA,YACA,YACA,SACA,YACA,YACA,SACA,UACA,UACA,WACA,OACA,QACA,QACA,QACA,UACA,WACA,UACA,WACA,QACA,SACA,WACA,QACA,YACA,UACA,QACA,QACA,SACA,WACA,SACA,YACA,SACA,UACA,WACA,YACA,UACA,YACA,UACA,SACA,UACA,UACA,UACA,SACA,SACA,WACA,OACA,YACA,UACA,QACA,SACA,SACA,SACA,UACA,UACA,YACA,YACA,UACA,SACA,UACA,YACA,YACA,WACA,QACA,YACA,QACA,QACA,WACA,YACA,WACA,WACA,UACA,WACA,UACA,YACA,UACA,YACA,WACA,WACA,WACA,SACA,UACA,YACA,WACA,SACA,WACA,WACA,YACA,WACA,YACA,WACA,YACA,YACA,YACA,YACA,SACA,UACA,QACA,QACA,UACA,SACA,UACA,SACA,WACA,WACA,UACA,SACA,WACA,QACA,SACA,UACA,YACA,SACA,UACA,YACA,YACA,WACA,WACA,YACA,UACA,WACA,QACA,YACA,YACA,UACA,QACA,YACA,YACA,YACA,YACA,WACA,WACA,UACA,UACA,QACA,QACA,WACA,QACA,OACA,WACA,YACA,YACA,WACA,OACA,QACA,WACA,WACA,QACA,QACA,YACA,UACA,WACA,QACA,SACA,UACA,SACA,UACA,UACA,UACA,SACA,UACA,OACA,QACA,QACA,SACA,UACA,UACA,QACA,SACA,UACA,SACA,YACA,WACA,QACA,MACA,SACA,YACA,SACA,YACA,UACA,QACA,QACA,OACA,QACA,QACA,SACA,YACA,SACA,WACA,SACA,UACA,WACA,UACA,UACA,YACA,YACA,YACA,SACA,WACA,QACA,OACA,WACA,OACA,SACA,YACA,UACA,SACA,SACA,UACA,YACA,WACA,YACA,YACA,SACA,QACA,SACA,WACA,YACA,YACA,WACA,UACA,YACA,WACA,UACA,UACA,WACA,QACA,WACA,YACA,SACA,YACA,SACA,SACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,SACA,SACA,WACA,SACA,UACA,WACA,QACA,WACA,UACA,OACA,QACA,QACA,SACA,QACA,QACA,SACA,UACA,SACA,QACA,OACA,OACA,SACA,WACA,SACA,SACA,WACA,YACA,YACA,WACA,SACA,SACA,YACA,WACA,WACA,UACA,YACA,WACA,WACA,YACA,UACA,UACA,WACA,YACA,WACA,WACA,YACA,WACA,WACA,YACA,WACA,WACA,YACA,WACA,YACA,SACA,WACA,WACA,YACA,WACA,QACA,WACA,YACA,SACA,QACA,UACA,QACA,UACA,SACA,WACA,QACA,SACA,UACA,SACA,SACA,YACA,UACA,QACA,UACA,WACA,QACA,SACA,WACA,SACA,UACA,YACA,UACA,QACA,WACA,SACA,SACA,SACA,WACA,QACA,WACA,WACA,SACA,SACA,UACA,WACA,WACA,SACA,YACA,UACA,SACA,WACA,SACA,UACA,SACA,UACA,QACA,WACA,UACA,WACA,SACA,UACA,SACA,OACA,YACA,UACA,YACA,SACA,WACA,YACA,UACA,WACA,YACA,WACA,OACA,YACA,SACA,QACA,QACA,QACA,SACA,SACA,QACA,OACA,QACA,OACA,YACA,WACA,YACA,UACA,UACA,SACA,SACA,UACA,UACA,UACA,QACA,OACA,QACA,UACA,YACA,YACA,QACA,YACA,YACA,QACA,WACA,YACA,SACA,UACA,SACA,QACA,QACA,UACA,QACA,QACA,WACA,QACA,QACA,UACA,UACA,WACA,SACA,OACA,WACA,QACA,WACA,UACA,WACA,OACA,OACA,WACA,WACA,UACA,OACA,SACA,UACA,QACA,SACA,YACA,QACA,QACA,UACA,SACA,QACA,QACA,WACA,UACA,WACA,WACA,OACA,SACA,UACA,SACA,SACA,UACA,UACA,YACA,OACA,SACA,SACA,QACA,OACA,MACA,UACA,OACA,UACA,SACA,UACA,WACA,QACA,WACA,WACA,WACA,QACA,UACA,SACA,SACA,QACA,OACA,YACA,YACA,OACA,YACA,SACA,QACA,SACA,UACA,WACA,UACA,QACA,QACA,QACA,SACA,UACA,WACA,YACA,OACA,YACA,WACA,SACA,QACA,OACA,SACA,WACA,SACA,SACA,WACA,SACA,WACA,YACA,YACA,SACA,SACA,QACA,SACA,UACA,OACA,SACA,SACA,WACA,YACA,UACA,WACA,SACA,SACA,WACA,UACA,UACA,QACA,QACA,QACA,QACA,UACA,UACA,SACA,YACA,OACA,QACA,QACA,UACA,UACA,YACA,UACA,UACA,YACA,YACA,UACA,UACA,YACA,YACA,YACA,UACA,WACA,SACA,SACA,YACA,SACA,SACA,WACA,QACA,QACA,UACA,WACA,YACA,SACA,WACA,WACA,SACA,WACA,QACA,QACA,WACA,QACA,YACA,SACA,WACA,SACA,YACA,SACA,SACA,SACA,WACA,WACA,YACA,YACA,WACA,WACA,UACA,QACA,SACA,UACA,SACA,SACA,UACA,UACA,QACA,OACA,QACA,YACA,SACA,OACA,UACA,YACA,YACA,WACA,WACA,UACA,UACA,UACA,WACA,WACA,WACA,QACA,QACA,SACA,SACA,SACA,UACA,YACA,WACA,QACA,OACA,SACA,OACA,SACA,UACA,OACA,WACA,OACA,SACA,UACA,SACA,YACA,QACA,UACA,QACA,SACA,QACA,SACA,SACA,QACA,QACA,WACA,UACA,OACA,UACA,OACA,WACA,WACA,UACA,YACA,WACA,UACA,YACA,OACA,UACA,UACA,UACA,YACA,QACA,SACA,WACA,SACA,WACA,UACA,WACA,SACA,QACA,SACA,SACA,UACA,SACA,QACA,OACA,SACA,WACA,WACA,SACA,UACA,SACA,SACA,SACA,QACA,YACA,SACA,UACA,SACA,UACA,UACA,WACA,OACA,YACA,UACA,UACA,SACA,YACA,UACA,UACA,UACA,YACA,UACA,YACA,UACA,UACA,QACA,UACA,SACA,YACA,SACA,UACA,WACA,WACA,YACA,YACA,YACA,WACA,SACA,YACA,QACA,SACA,UACA,UACA,WACA,UACA,YACA,WACA,YACA,QACA,YACA,YACA,UACA,UACA,UACA,SACA,YACA,QACA,SACA,WACA,SACA,UACA,YACA,YACA,QACA,UACA,UACA,UACA,OACA,OACA,SACA,SACA,SACA,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,YACA,UACA,YACA,UACA,WACA,SACA,UACA,WACA,WACA,UACA,YACA,WACA,UACA,SACA,SACA,SACA,UACA,YACA,SACA,QACA,UACA,YACA,SACA,SACA,YACA,QACA,UACA,YACA,UACA,WACA,WACA,UACA,SACA,SACA,QACA,SACA,YACA,WACA,WACA,SACA,SACA,SACA,WACA,WACA,YACA,YACA,YACA,UACA,WACA,WACA,QACA,WACA,QACA,QACA,UACA,YACA,UACA,YACA,WACA,SACA,SACA,UACA,QACA,QACA,YACA,WACA,UACA,QACA,UACA,YACA,YACA,WACA,UACA,WACA,UACA,UACA,QACA,UACA,UACA,WACA,QACA,UACA,SACA,WACA,WACA,WACA,UACA,WACA,SACA,WACA,UACA,QACA,QACA,SACA,SACA,OACA,YACA,UACA,QACA,YACA,SACA,QACA,QACA,UACA,QACA,WACA,SACA,UACA,QACA,QACA,YACA,YACA,YACA,WACA,YACA,YACA,QACA,QACA,QACA,OACA,WACA,SACA,WACA,WACA,QACA,WACA,WACA,SACA,YACA,UACA,QACA,UACA,WACA,SACA,OACA,SACA,UACA,WACA,SACA,SACA,QACA,OACA,SACA,QACA,QACA,QACA,QACA,QACA,WACA,QACA,SACA,WACA,SACA,WACA,WACA,YACA,SACA,UACA,UACA,WACA,UACA,SACA,SACA,OACA,QACA,QACA,OACA,QACA,WACA,SACA,SACA,QACA,YACA,QACA,WACA,UACA,UACA,WACA,UACA,WACA,UACA,QACA,QACA,QACA,UACA,SACA,WACA,OACA,OACA,QACA,QACA,QACA,UACA,QACA,SACA,YACA,WACA,QACA,SACA,UACA,SACA,UACA,WACA,QACA,SACA,WACA,OACA,SACA,QACA,UACA,QACA,QACA,UACA,WACA,UACA,UACA,WACA,QACA,SACA,UACA,WACA,YACA,QACA,WACA,SACA,SACA,YACA,SACA,UACA,QACA,YACA,UACA,UACA,WACA,YACA,YACA,OACA,WACA,SACA,UACA,SACA,QACA,UACA,MACA,WACA,SACA,UACA,SACA,YACA,YACA,YACA,WACA,YACA,WACA,WACA,OACA,OACA,OACA,OACA,WACA,WACA,UACA,WACA,SACA,YACA,YACA,UACA,SACA,YACA,WACA,WACA,WACA,SACA,WACA,OACA,OACA,OACA,UACA,QACA,QACA,SACA,QACA,WACA,UACA,UACA,WACA,UACA,YACA,YACA,SACA,YACA,UACA,YACA,YACA,YACA,YACA,YACA,YACA,UACA,UACA,SACA,UACA,SACA,YACA,WACA,WACA,YACA,UACA,YACA,WACA,WACA,YACA,WACA,YACA,UACA,UACA,UACA,WACA,UACA,YACA,UACA,QACA,YACA,UACA,WACA,WACA,SACA,WACA,YACA,YACA,UACA,YACA,YACA,UACA,OACA,UACA,WACA,YACA,YACA,WACA,YACA,YACA,WACA,YACA,UACA,WACA,UACA,WACA,WACA,WACA,YACA,YACA,YACA,YACA,WACA,WACA,UACA,YACA,UACA,WACA,YACA,YACA,YACA,UACA,UACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,UACA,WACA,YACA,UACA,YACA,WACA,UACA,YACA,YACA,WACA,UACA,UACA,UACA,UACA,WACA,UACA,YACA,UACA,UACA,YACA,OACA,SACA,SACA,UACA,SACA,UACA,SACA,OACA,QACA,OACA,WACA,YACA,UACA,SACA,SACA,SACA,YACA,YACA,WACA,WACA,YACA,QACA,WACA,UACA,WACA,YACA,SACA,UACA,WACA,UACA,YACA,YACA,UACA,SACA,SACA,WACA,YACA,SACA,SACA,YACA,OACA,UACA,SACA,QACA,QACA,QACA,YACA,YACA,WACA,YACA,UACA,SACA,UACA,WACA,QACA,UACA,WACA,UACA,SACA,WACA,OACA,WACA,YACA,WACA,WACA,SACA,WACA,UACA,WACA,YACA,YACA,SACA,QACA,YACA,QACA,UACA,UACA,QACA,QACA,QACA,UACA,WACA,WACA,WACA,WACA,SACA,SACA,UACA,YACA,QACA,UACA,UACA,YACA,SACA,WACA,YACA,SACA,WACA,WACA,WACA,WACA,WACA,SACA,QACA,QACA,SACA,QACA,QACA,WACA,UACA,WACA,YACA,UACA,WACA,UACA,WACA,OACA,UACA,QACA,QACA,QACA,UACA,SACA,WACA,UACA,UACA,UACA,WACA,UACA,YACA,SACA,WACA,UACA,QACA,QACA,QACA,QACA,OACA,QACA,SACA,UACA,UACA,QACA,QACA,UACA,UACA,YACA,UACA,YACA,UACA,QACA,YACA,SACA,UACA,WACA,WACA,YACA,UACA,WACA,YACA,UACA,UACA,WACA,QACA,OACA,SACA,UACA,UACA,YACA,OACA,UACA,UACA,WACA,SACA,SACA,WACA,WACA,YACA,WACA,UACA,YACA,WACA,UACA,YACA,UACA,QACA,SACA,UACA,UACA,UACA,SACA,OACA,SACA,SACA,SACA,SACA,YACA,UACA,QACA,QACA,QACA,UACA,SACA,UACA,SACA,SACA,YACA,QACA,QACA,QACA,OACA,SACA,UACA,YACA,UACA,YACA,WACA,YACA,UACA,MACA,QACA,SACA,UACA,UACA,WACA,SACA,YACA,YACA,MACA,MACA,WACA,SACA,QACA,WACA,SACA,QACA,QACA,WACA,QACA,UACA,YACA,SACA,WACA,QACA,SACA,SACA,WACA,YACA,QACA,WACA,WACA,YACA,UACA,WACA,WACA,UACA,OACA,OACA,YACA,OACA,YACA,OACA,WACA,SACA,WACA,WACA,UACA,OACA,SACA,WACA,UACA,WACA,WACA,UACA,UACA,UACA,UACA,WACA,SACA,YACA,WACA,SACA,UACA,YACA,QACA,OACA,YACA,SACA,WACA,QACA,UACA,WACA,SACA,QACA,SACA,SACA,QACA,QACA,YACA,QACA,WACA,SACA,WACA,YACA,WACA,UACA,SACA,YACA,YACA,UACA,YACA,UACA,YACA,WACA,OACA,WACA,UACA,SACA,YACA,YACA,YACA,QACA,WACA,SACA,WACA,YACA,SACA,SACA,OACA,OACA,SACA,SACA,WACA,SACA,WACA,SACA,UACA,SACA,YACA,YACA,YACA,WACA,UACA,YACA,WACA,WACA,WACA,UACA,SACA,WACA,SACA,WACA,UACA,YACA,WACA,YACA,YACA,QACA,WACA,UACA,UACA,SACA,SACA,OACA,WACA,YACA,WACA,SACA,YACA,QACA,WACA,QACA,WACA,YACA,SACA,WACA,WACA,WACA,YACA,YACA,YACA,WACA,YACA,WACA,UACA,QACA,SACA,WACA,SACA,YACA,YACA,WACA,SACA,YACA,WACA,SACA,WACA,YACA,YACA,WACA,SACA,QACA,SACA,QACA,UACA,SACA,UACA,UACA,OACA,YACA,YACA,WACA,YACA,SACA,UACA,YACA,WACA,SACA,SACA,SACA,WACA,YACA,YACA,UACA,UACA,QACA,WACA,SACA,SACA,WACA,QACA,UACA,YACA,UACA,YACA,YACA,WACA,WACA,YACA,YACA,UACA,WACA,WACA,UACA,UACA,UACA,UACA,YACA,WACA,WACA,SACA,YACA,YACA,WACA,YACA,YACA,SACA,WACA,YACA,WACA,UACA,QACA,UACA,WACA,UACA,UACA,YACA,WACA,SACA,UACA,YACA,UACA,WACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,WACA,YACA,YACA,UACA,OACA,WACA,SACA,YACA,QACA,OACA,SACA,UACA,YACA,WACA,YACA,WACA,WACA,YACA,YACA,MACA,WACA,YACA,WACA,OACA,SACA,OACA,WACA,QACA,SACA,SACA,UACA,SACA,QACA,UACA,SACA,YACA,QACA,QACA,SACA,SACA,UACA,UACA,UACA,SACA,SACA,UACA,WACA,YACA,YACA,WACA,YACA,WACA,YACA,WACA,WACA,WACA,SACA,WACA,WACA,UACA,YACA,WACA,UACA,UACA,YACA,WACA,WACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,WACA,OACA,YACA,UACA,OACA,UACA,YACA,YACA,WACA,WACA,YACA,SACA,UACA,WACA,UACA,WACA,SACA,YACA,YACA,WACA,WACA,YACA,YACA,YACA,WACA,UACA,YACA,WACA,UACA,WACA,UACA,YACA,UACA,WACA,WACA,UACA,WACA,UACA,WACA,UACA,WACA,WACA,WACA,WACA,QACA,QACA,QACA,YACA,UACA,WACA,WACA,WACA,WACA,SACA,WACA,YACA,YACA,WACA,WACA,WACA,YACA,QACA,SACA,SACA,OACA,WACA,WACA,QACA,QACA,QACA,QACA,OACA,SACA,YACA,SACA,QACA,UACA,SACA,WACA,WACA,WACA,WACA,UACA,WACA,UACA,QACA,QACA,SACA,WACA,YACA,WACA,UACA,UACA,WACA,WACA,WACA,WACA,UACA,QACA,OACA,YACA,SACA,SACA,OACA,SACA,WACA,SACA,OACA,OACA,QACA,OACA,OACA,WACA,YACA,YACA,WACA,YACA,WACA,UACA,UACA,YACA,WACA,YACA,QACA,UACA,UACA,OACA,UACA,WACA,YACA,YACA,WACA,YACA,YACA,YACA,SACA,SACA,WACA,SACA,SACA,QACA,OACA,UACA,QACA,QACA,QACA,UACA,WACA,YACA,WACA,WACA,SACA,WACA,SACA,SACA,WACA,UACA,UACA,UACA,QACA,QACA,QACA,YACA,UACA,WACA,UACA,UACA,UACA,QACA,QACA,WACA,SACA,OACA,MACA,SACA,YACA,UACA,WACA,UACA,WACA,WACA,QACA,OACA,OACA,SACA,SACA,MACA,OACA,SACA,WACA,OACA,UACA,WACA,WACA,MACA,OACA,SACA,YACA,YACA,UACA,UACA,WACA,SACA,SACA,OACA,OACA,UACA,OACA,QACA,QACA,QACA,UACA,UACA,WACA,UACA,YACA,UACA,WACA,UACA,WACA,WACA,OACA,QACA,UACA,UACA,UACA,SACA,UACA,QACA,UACA,UACA,WACA,WACA,WACA,UACA,UACA,UACA,YACA,YACA,UACA,YACA,SACA,SACA,UACA,QACA,UACA,SACA,WACA,SACA,YACA,YACA,SACA,WACA,UACA,QACA,SACA,SACA,OACA,OACA,QACA,QACA,QACA,YACA,OACA,SACA,UACA,YACA,UACA,WACA,YACA,UACA,YACA,YACA,OACA,WACA,SACA,OACA,UACA,SACA,WACA,YACA,WACA,MACA,YACA,UACA,YACA,SACA,YACA,SACA,SACA,WACA,WACA,YACA,UACA,YACA,SACA,QACA,YACA,UACA,SACA,QACA,YACA,UACA,SACA,YACA,WACA,WACA,WACA,UACA,YACA,YACA,WACA,SACA,MACA,WACA,WACA,YACA,QACA,UACA,SACA,MACA,UACA,WACA,MACA,YACA,QACA,YACA,WACA,YACA,QACA,UACA,QACA,QACA,UACA,SACA,UACA,YACA,YACA,QACA,WACA,UACA,SACA,SACA,WACA,SACA,YACA,QACA,UACA,YACA,WACA,OACA,QACA,WACA,UACA,WACA,UACA,UACA,WACA,WACA,YACA,WACA,YACA,WACA,WACA,WACA,WACA,UACA,UACA,YACA,QACA,MACA,SACA,YACA,SACA,YACA,YACA,WACA,UACA,YACA,SACA,SACA,YACA,YACA,WACA,UACA,UACA,WACA,WACA,YACA,QACA,SACA,UACA,UACA,YACA,YACA,UACA,YACA,WACA,YACA,YACA,WACA,YACA,WACA,SACA,WACA,WACA,UACA,WACA,SACA,UACA,WACA,WACA,YACA,UACA,SACA,UACA,YACA,YACA,YACA,UACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,SACA,SACA,SACA,UACA,UACA,SACA,SACA,YACA,WACA,YACA,WACA,SACA,UACA,SACA,SACA,YACA,SACA,SACA,WACA,UACA,WACA,UACA,YACA,WACA,WACA,WACA,UACA,WACA,QACA,OACA,SACA,OACA,WACA,YACA,YACA,WACA,WACA,YACA,WACA,WACA,UACA,QACA,SACA,WACA,UACA,UACA,YACA,SACA,YACA,YACA,WACA,SACA,SACA,UACA,YACA,SACA,SACA,UACA,QACA,QACA,WACA,YACA,YACA,WACA,WACA,WACA,SACA,YACA,YACA,WACA,UACA,QACA,UACA,YACA,YACA,SACA,WACA,WACA,YACA,YACA,WACA,UACA,UACA,WACA,UACA,QACA,YACA,SACA,YACA,WACA,UACA,QACA,WACA,YACA,YACA,UACA,UACA,OACA,YACA,YACA,YACA,WACA,WACA,QACA,WACA,UACA,OACA,QACA,YACA,SACA,QACA,UACA,UACA,WACA,YACA,YACA,YACA,SACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,SACA,YACA,YACA,YACA,YACA,QACA,OACA,YACA,SACA,UACA,SACA,QACA,WACA,OACA,SACA,YACA,WACA,WACA,SACA,UACA,YACA,YACA,YACA,YACA,YACA,QACA,SACA,WACA,YACA,SACA,SACA,WACA,UACA,YACA,WACA,UACA,UACA,UACA,YACA,WACA,WACA,YACA,SACA,WACA,UACA,YACA,YACA,WACA,YACA,SACA,YACA,WACA,WACA,UACA,YACA,YACA,SACA,YACA,UACA,YACA,YACA,QACA,SACA,WACA,WACA,YACA,WACA,WACA,WACA,YACA,UACA,SACA,WACA,SACA,YACA,UACA,UACA,SACA,YACA,UACA,UACA,OACA,SACA,UACA,SACA,OACA,QACA,UACA,OACA,WACA,SACA,SACA,WACA,UACA,UACA,YACA,QACA,UACA,OACA,UACA,YACA,YACA,UACA,UACA,WACA,SACA,UACA,WACA,SACA,YACA,YACA,UACA,WACA,WACA,MACA,QACA,UACA,SACA,SACA,OACA,OACA,SACA,SACA,WACA,WACA,WACA,WACA,WACA,QACA,QACA,UACA,SACA,UACA,WACA,YACA,WACA,SACA,SACA,QACA,SACA,SACA,WACA,UACA,YACA,QACA,QACA,QACA,QACA,UACA,SACA,WACA,WACA,YACA,UACA,UACA,QACA,WACA,QACA,UACA,SACA,WACA,SACA,SACA,SACA,UACA,OACA,SACA,QACA,WACA,SACA,WACA,WACA,UACA,UACA,YACA,QACA,WACA,QACA,UACA,WACA,WACA,YACA,SACA,UACA,UACA,WACA,MACA,OACA,UACA,UACA,WACA,WACA,YACA,YACA,QACA,UACA,QACA,QACA,YACA,UACA,WACA,WACA,OACA,UACA,YACA,YACA,YACA,WACA,WACA,SACA,QACA,UACA,WACA,SACA,WACA,UACA,YACA,YACA,WACA,UACA,WACA,WACA,WACA,YACA,YACA,WACA,OACA,UACA,SACA,QACA,QACA,SACA,SACA,QACA,QACA,OACA,QACA,QACA,QACA,WACA,OACA,SACA,UACA,QACA,WACA,UACA,UACA,QACA,SACA,UACA,WACA,OACA,MACA,MACA,OACA,QACA,OACA,WACA,SACA,WACA,SACA,WACA,SACA,OACA,OACA,OACA,UACA,WACA,WACA,YACA,SACA,WACA,WACA,WACA,UACA,WACA,UACA,WACA,UACA,WACA,YACA,WACA,UACA,WACA,WACA,WACA,SACA,SACA,UACA,WACA,WACA,MACA,QACA,WACA,WACA,UACA,YACA,WACA,YACA,WACA,QACA,QACA,UACA,UACA,YACA,SACA,UACA,QACA,WACA,WACA,WACA,UACA,UACA,UACA,WACA,WACA,UACA,WACA,SACA,YACA,WACA,YACA,WACA,UACA,WACA,YACA,WACA,UACA,SACA,WACA,SACA,YACA,WACA,QACA,UACA,UACA,WACA,SACA,SACA,QACA,SACA,WACA,YACA,YACA,WACA,QACA,SACA,UACA,QACA,UACA,YACA,SACA,OACA,QACA,YACA,UACA,WACA,WACA,YACA,SACA,QACA,QACA,SACA,WACA,YACA,WACA,QACA,YACA,SACA,MACA,QACA,MACA,YACA,UACA,QACA,OACA,YACA,WACA,UACA,SACA,SACA,UACA,YACA,SACA,YACA,WACA,OACA,SACA,QACA,SACA,SACA,WACA,UACA,MACA,SACA,UACA,SACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,MACA,WACA,YACA,SACA,UACA,WACA,QACA,OACA,OACA,SACA,OACA,QACA,OACA,SACA,MACA,SACA,UACA,WACA,WACA,QACA,UACA,YACA,SACA,QACA,YACA,WACA,YACA,UACA,YACA,WACA,WACA,SACA,YACA,YACA,YACA,WACA,YACA,UACA,YACA,UACA,UACA,UACA,QACA,QACA,YACA,SACA,UACA,YACA,QACA,OACA,WACA,YACA,WACA,SACA,WACA,SACA,SACA,SACA,QACA,UACA,SACA,WACA,QACA,QACA,SACA,QACA,UACA,UACA,UACA,QACA,YACA,SACA,YACA,UACA,SACA,WACA,YACA,QACA,UACA,QACA,WACA,UACA,WACA,UACA,SACA,UACA,UACA,UACA,UACA,SACA,UACA,SACA,UACA,WACA,WACA,SACA,YACA,YACA,UACA,WACA,QACA,QACA,QACA,UACA,WACA,UACA,OACA,SACA,YACA,UACA,SACA,OACA,OACA,WACA,OACA,UACA,QACA,WACA,WACA,YACA,OACA,UACA,QACA,UACA,OACA,OACA,OACA,QACA,WACA,YACA,QACA,SACA,OACA,SACA,OACA,SACA,WACA,OACA,UACA,SACA,SACA,SACA,OACA,OACA,OACA,WACA,YACA,WACA,YACA,SACA,SACA,WACA,UACA,YACA,WACA,WACA,UACA,WACA,QACA,WACA,WACA,UACA,UACA,UACA,WACA,UACA,SACA,UACA,QACA,WACA,QACA,QACA,UACA,YACA,QACA,QACA,YACA,UACA,UACA,YACA,WACA,SACA,YACA,SACA,YACA,YACA,UACA,QACA,OACA,UACA,WACA,WACA,YACA,SACA,QACA,UACA,WACA,OACA,YACA,OACA,QACA,YACA,WACA,WACA,QACA,UACA,YACA,QACA,YACA,QACA,SACA,WACA,OACA,UACA,OACA,WACA,SACA,QACA,QACA,SACA,WACA,SACA,QACA,SACA,UACA,QACA,QACA,SACA,UACA,QACA,OACA,SACA,WACA,WACA,UACA,UACA,YACA,UACA,WACA,SACA,QACA,YACA,WACA,WACA,QACA,UACA,YACA,QACA,OACA,WACA,QACA,OACA,UACA,UACA,YACA,UACA,QACA,SACA,WACA,OACA,OACA,QACA,QACA,UACA,OACA,SACA,MACA,UACA,WACA,YACA,WACA,UACA,WACA,SACA,SACA,UACA,UACA,MACA,UACA,QACA,OACA,UACA,OACA,SACA,SACA,YACA,SACA,UACA,SACA,UACA,YACA,UACA,WACA,WACA,YACA,WACA,WACA,YACA,YACA,WACA,SACA,UACA,WACA,UACA,WACA,YACA,YACA,YACA,UACA,UACA,WACA,WACA,UACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,YACA,WACA,WACA,YACA,YACA,WACA,WACA,UACA,WACA,SACA,YACA,SACA,QACA,YACA,YACA,UACA,WACA,UACA,YACA,QACA,SACA,WACA,WACA,YACA,WACA,WACA,WACA,YACA,UACA,WACA,YACA,SACA,WACA,WACA,WACA,YACA,WACA,QACA,UACA,WACA,YACA,YACA,YACA,UACA,UACA,UACA,QACA,UACA,OACA,SACA,QACA,UACA,YACA,QACA,SACA,YACA,WACA,UACA,WACA,YACA,OACA,UACA,SACA,QACA,QACA,SACA,WACA,SACA,WACA,SACA,OACA,WACA,WACA,YACA,YACA,YACA,SACA,SACA,YACA,WACA,UACA,WACA,WACA,WACA,YACA,YACA,WACA,WACA,YACA,UACA,WACA,YACA,YACA,UACA,WACA,OACA,OACA,QACA,UACA,YACA,UACA,QACA,UACA,YACA,QACA,SACA,SACA,SACA,UACA,UACA,WACA,WACA,UACA,YACA,QACA,WACA,QACA,SACA,SACA,YACA,QACA,WACA,SACA,UACA,UACA,UACA,UACA,QACA,YACA,WACA,WACA,UACA,WACA,SACA,SACA,WACA,OACA,MACA,OACA,OACA,OACA,QACA,SACA,WACA,SACA,QACA,YACA,WACA,UACA,SACA,YACA,WACA,YACA,WACA,WACA,SACA,SACA,YACA,YACA,SACA,WACA,SACA,OACA,SACA,UACA,WACA,WACA,SACA,SACA,SACA,UACA,SACA,YACA,UACA,QACA,OACA,UACA,OACA,SACA,YACA,MACA,SACA,UACA,WACA,YACA,WACA,YACA,YACA,YACA,SACA,WACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,MACA,UACA,QACA,OACA,OACA,MACA,WACA,WACA,WACA,UACA,YACA,YACA,WACA,WACA,WACA,SACA,QACA,OACA,QACA,WACA,SACA,SACA,YACA,WACA,WACA,QACA,YACA,WACA,UACA,WACA,UACA,YACA,WACA,UACA,YACA,WACA,WACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,WACA,SACA,SACA,YACA,UACA,WACA,YACA,YACA,WACA,SACA,UACA,YACA,YACA,WACA,UACA,YACA,YACA,QACA,WACA,YACA,WACA,SACA,WACA,YACA,YACA,WACA,UACA,YACA,UACA,WACA,YACA,WACA,UACA,YACA,YACA,YACA,UACA,YACA,SACA,WACA,SACA,SACA,MACA,OACA,SACA,OACA,QACA,MACA,OACA,YACA,WACA,YACA,YACA,WACA,WACA,UACA,WACA,WACA,YACA,YACA,UACA,QACA,UACA,YACA,UACA,OACA,YACA,SACA,QACA,MACA,MACA,SACA,SACA,YACA,UACA,WACA,YACA,SACA,YACA,WACA,MACA,UACA,UACA,SACA,UACA,UACA,WACA,QACA,OACA,QACA,UACA,UACA,OACA,UACA,YACA,OACA,OACA,YACA,UACA,QACA,SACA,SACA,MACA,QACA,SACA,QACA,SACA,WACA,OACA,UACA,UACA,MACA,SACA,YACA,SACA,UACA,OACA,UACA,WACA,WACA,YACA,QACA,OACA,MACA,SACA,WACA,YACA,SACA,UACA,WACA,YACA,WACA,QACA,YACA,WACA,YACA,OACA,SACA,WACA,UACA,QACA,YACA,QACA,UACA,UACA,OACA,SACA,QACA,OACA,WACA,WACA,OACA,SACA,UACA,SACA,UACA,WACA,SACA,QACA,OACA,UACA,YACA,UACA,SACA,WACA,WACA,QACA,WACA,UACA,SACA,QACA,QACA,SACA,WACA,OACA,MACA,OACA,SACA,OACA,WACA,WACA,SACA,OACA,OACA,WACA,WACA,YACA,WACA,OACA,SACA,SACA,WACA,SACA,WACA,UACA,UACA,UACA,OACA,UACA,UACA,YACA,WACA,SACA,UACA,UACA,OACA,SACA,QACA,OACA,UACA,WACA,OACA,QACA,WACA,QACA,QACA,QACA,SACA,UACA,QACA,OACA,UACA,UACA,WACA,YACA,WACA,SACA,SACA,QACA,UACA,WACA,SACA,UACA,SACA,OACA,OACA,QACA,SACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,YACA,YACA,WACA,YACA,WACA,YACA,QACA,UACA,SACA,QACA,SACA,UACA,SACA,OACA,QACA,OACA,OACA,QACA,OACA,QACA,OACA,SACA,WACA,UACA,SACA,WACA,SACA,UACA,UACA,SACA,WACA,SACA,WACA,SACA,WACA,OACA,WACA,OACA,SACA,QACA,SACA,SACA,WACA,UACA,UACA,YACA,OACA,UACA,SACA,YACA,UACA,QACA,OACA,SACA,OACA,OACA,UACA,SACA,UACA,YACA,WACA,SACA,UACA,QACA,WACA,SACA,WACA,YACA,YACA,SACA,UACA,YACA,UACA,UACA,WACA,MACA,OACA,SACA,UACA,UACA,WACA,SACA,WACA,WACA,SACA,QACA,QACA,OACA,OACA,UACA,YACA,QACA,QACA,UACA,WACA,OACA,QACA,WACA,WACA,SACA,SACA,WACA,UACA,OACA,OACA,MACA,UACA,UACA,SACA,OACA,OACA,WACA,YACA,SACA,SACA,SACA,UACA,QACA,SACA,QACA,YACA,UACA,SACA,SACA,YACA,YACA,QACA,UACA,YACA,WACA,YACA,YACA,SACA,WACA,UACA,SACA,YACA,WACA,YACA,UACA,UACA,SACA,QACA,WACA,WACA,YACA,YACA,OACA,QACA,OACA,YACA,OACA,SACA,WACA,SACA,YACA,UACA,YACA,WACA,QACA,YACA,SACA,QACA,YACA,WACA,WACA,SACA,WACA,WACA,QACA,OACA,UACA,YACA,WACA,UACA,SACA,UACA,WACA,QACA,YACA,WACA,YACA,YACA,YACA,UACA,YACA,WACA,WACA,SACA,WACA,UACA,YACA,WACA,WACA,QACA,YACA,SACA,YACA,OACA,OACA,SACA,UACA,YACA,UACA,WACA,UACA,WACA,UACA,YACA,WACA,SACA,SACA,QACA,QACA,YACA,UACA,UACA,UACA,YACA,WACA,YACA,SACA,UACA,UACA,YACA,QACA,UACA,SACA,UACA,QACA,WACA,SACA,SACA,SACA,OACA,MACA,WACA,YACA,UACA,UACA,WACA,QACA,QACA,YACA,YACA,SACA,WACA,SACA,SACA,UACA,WACA,SACA,YACA,SACA,UACA,SACA,QACA,YACA,SACA,YACA,YACA,UACA,SACA,YACA,SACA,UACA,WACA,SACA,UACA,UACA,UACA,YACA,WACA,UACA,WACA,YACA,WACA,WACA,YACA,OACA,SACA,YACA,YACA,SACA,SACA,SACA,SACA,WACA,WACA,WACA,QACA,WACA,WACA,UACA,QACA,SACA,YACA,SACA,UACA,SACA,WACA,WACA,UACA,QACA,SACA,SACA,WACA,SACA,UACA,YACA,SACA,UACA,YACA,WACA,QACA,WACA,OACA,YACA,WACA,WACA,UACA,MACA,YACA,SACA,WACA,WACA,YACA,YACA,YACA,WACA,UACA,UACA,WACA,WACA,WACA,YACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,YACA,UACA,WACA,UACA,YACA,QACA,SACA,WACA,SACA,YACA,WACA,UACA,WACA,YACA,YACA,YACA,WACA,MACA,SACA,WACA,UACA,YACA,WACA,WACA,WACA,QACA,YACA,WACA,YACA,YACA,UACA,WACA,SACA,QACA,OACA,WACA,YACA,SACA,WACA,YACA,SACA,YACA,QACA,QACA,YACA,WACA,UACA,WACA,UACA,WACA,QACA,YACA,YACA,QACA,QACA,UACA,OACA,QACA,SACA,QACA,SACA,OACA,OACA,MACA,MACA,WACA,QACA,OACA,SACA,UACA,WACA,WACA,YACA,YACA,SACA,WACA,QACA,YACA,UACA,QACA,QACA,WACA,UACA,YACA,SACA,QACA,YACA,QACA,YACA,WACA,SACA,UACA,YACA,WACA,QACA,QACA,SACA,YACA,QACA,UACA,UACA,SACA,YACA,QACA,UACA,SACA,WACA,OACA,YACA,YACA,SACA,OACA,SACA,SACA,SACA,UACA,YACA,UACA,OACA,QACA,MACA,OACA,OACA,SACA,QACA,YACA,OACA,SACA,SACA,UACA,QACA,SACA,UACA,YACA,WACA,SACA,WACA,UACA,SACA,WACA,WACA,WACA,YACA,OACA,SACA,UACA,SACA,WACA,SACA,WACA,SACA,YACA,SACA,SACA,WACA,WACA,YACA,WACA,YACA,YACA,UACA,UACA,OACA,SACA,OACA,UACA,QACA,OACA,MACA,YACA,SACA,WACA,WACA,SACA,UACA,QACA,OACA,SACA,WACA,WACA,QACA,QACA,SACA,SACA,WACA,YACA,QACA,WACA,QACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,WACA,UACA,WACA,YACA,UACA,WACA,WACA,UACA,UACA,UACA,UACA,UACA,SACA,WACA,WACA,YACA,QACA,SACA,QACA,MACA,MACA,QACA,MACA,YACA,WACA,WACA,SACA,WACA,UACA,WACA,YACA,SACA,YACA,OACA,UACA,YACA,YACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,YACA,WACA,SACA,YACA,SACA,UACA,YACA,YACA,WACA,WACA,SACA,QACA,SACA,UACA,SACA,UACA,UACA,OACA,MACA,OACA,WACA,OACA,MACA,QACA,WACA,QACA,OACA,UACA,WACA,OACA,WACA,UACA,WACA,UACA,QACA,SACA,WACA,OACA,WACA,QACA,UACA,YACA,UACA,OACA,SACA,OACA,OACA,OACA,OACA,UACA,OACA,OACA,WACA,UACA,YACA,YACA,YACA,WACA,QACA,UACA,WACA,SACA,WACA,WACA,YACA,YACA,MACA,YACA,UACA,QACA,QACA,OACA,QACA,QACA,SACA,UACA,SACA,WACA,WACA,WACA,WACA,UACA,WACA,UACA,WACA,WACA,QACA,WACA,SACA,WACA,WACA,UACA,WACA,SACA,UACA,SACA,UACA,UACA,WACA,WACA,UACA,YACA,YACA,UACA,UACA,SACA,UACA,UACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,UACA,WACA,SACA,OACA,QACA,OACA,UACA,UACA,WACA,UACA,WACA,WACA,YACA,YACA,WACA,YACA,WACA,WACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,UACA,YACA,YACA,YACA,UACA,WACA,WACA,WACA,WACA,YACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,YACA,WACA,YACA,WACA,UACA,UACA,WACA,WACA,WACA,YACA,YACA,WACA,UACA,YACA,WACA,YACA,YACA,WACA,YACA,YACA,WACA,WACA,WACA,UACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,WACA,WACA,YACA,YACA,YACA,WACA,YACA,WACA,UACA,WACA,WACA,WACA,UACA,YACA,WACA,YACA,MACA,SACA,UACA,YACA,UACA,YACA,SACA,WACA,SACA,QACA,QACA,YACA,UACA,WACA,WACA,WACA,SACA,SACA,UACA,SACA,WACA,UACA,QACA,QACA,SACA,UACA,SACA,YACA,OACA,WACA,YACA,SACA,WACA,WACA,UACA,WACA,SACA,UACA,WACA,QACA,WACA,OACA,YACA,QACA,UACA,WACA,YACA,UACA,YACA,SACA,QACA,YACA,YACA,SACA,QACA,UACA,UACA,WACA,YACA,SACA,UACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,WACA,YACA,SACA,UACA,YACA,SACA,SACA,QACA,UACA,UACA,SACA,WACA,SACA,SACA,UACA,UACA,UACA,SACA,UACA,YACA,SACA,UACA,YACA,QACA,WACA,WACA,UACA,WACA,YACA,WACA,UACA,UACA,UACA,YACA,WACA,WACA,WACA,QACA,SACA,SACA,UACA,SACA,WACA,UACA,QACA,YACA,SACA,WACA,YACA,OACA,WACA,UACA,QACA,YACA,UACA,SACA,YACA,YACA,SACA,WACA,QACA,YACA,WACA,SACA,SACA,UACA,UACA,WACA,SACA,QACA,QACA,SACA,UACA,WACA,UACA,SACA,SACA,QACA,SACA,WACA,WACA,YACA,WACA,WACA,YACA,WACA,UACA,SACA,OACA,SACA,WACA,UACA,SACA,UACA,UACA,YACA,WACA,UACA,YACA,QACA,SACA,UACA,WACA,YACA,MACA,WACA,UACA,QACA,YACA,YACA,YACA,YACA,UACA,YACA,SACA,WACA,UACA,YACA,QACA,OACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,QACA,OACA,YACA,YACA,SACA,YACA,QACA,SACA,WACA,QACA,YACA,SACA,YACA,YACA,QACA,UACA,UACA,SACA,UACA,YACA,SACA,UACA,YACA,QACA,YACA,QACA,SACA,WACA,UACA,UACA,WACA,QACA,UACA,QACA,SACA,UACA,UACA,SACA,WACA,UACA,WACA,WACA,UACA,WACA,YACA,YACA,WACA,WACA,SACA,UACA,YACA,YACA,UACA,WACA,YACA,WACA,UACA,UACA,WACA,UACA,YACA,WACA,QACA,WACA,QACA,SACA,YACA,SACA,WACA,YACA,UACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,UACA,WACA,SACA,OACA,YACA,UACA,QACA,MACA,OACA,OACA,OACA,UACA,UACA,WACA,YACA,SACA,QACA,SACA,QACA,SACA,QACA,SACA,SACA,QACA,SACA,WACA,QACA,OACA,YACA,UACA,YACA,UACA,SACA,OACA,OACA,UACA,OACA,SACA,SACA,QACA,WACA,WACA,UACA,WACA,YACA,OACA,SACA,WACA,WACA,SACA,YACA,WACA,UACA,SACA,WACA,QACA,OACA,SACA,WACA,WACA,SACA,UACA,SACA,UACA,WACA,SACA,SACA,UACA,YACA,UACA,UACA,QACA,SACA,WACA,QACA,UACA,OACA,WACA,YACA,UACA,QACA,SACA,MACA,WACA,SACA,WACA,UACA,WACA,YACA,SACA,UACA,WACA,YACA,UACA,WACA,WACA,UACA,YACA,UACA,SACA,WACA,YACA,UACA,UACA,SACA,YACA,YACA,UACA,YACA,WACA,YACA,YACA,SACA,UACA,WACA,WACA,UACA,WACA,YACA,WACA,UACA,SACA,UACA,SACA,YACA,YACA,YACA,SACA,UACA,YACA,UACA,QACA,UACA,YACA,UACA,YACA,YACA,WACA,UACA,SACA,UACA,UACA,YACA,UACA,UACA,WACA,SACA,YACA,WACA,QACA,SACA,YACA,UACA,UACA,SACA,QACA,WACA,QACA,QACA,QACA,SACA,SACA,WACA,UACA,UACA,YACA,QACA,YACA,WACA,WACA,YACA,QACA,UACA,YACA,UACA,YACA,UACA,WACA,YACA,WACA,WACA,UACA,UACA,UACA,UACA,YACA,YACA,YACA,UACA,WACA,YACA,UACA,YACA,UACA,WACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,WACA,WACA,QACA,QACA,YACA,SACA,WACA,YACA,SACA,YACA,WACA,WACA,YACA,WACA,UACA,QACA,UACA,YACA,WACA,SACA,YACA,YACA,WACA,WACA,QACA,WACA,SACA,SACA,WACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,UACA,UACA,WACA,YACA,QACA,SACA,QACA,YACA,QACA,UACA,MACA,UACA,SACA,YACA,SACA,SACA,MACA,OACA,YACA,OACA,UACA,QACA,YACA,OACA,SACA,SACA,QACA,WACA,YACA,YACA,UACA,WACA,OACA,QACA,SACA,QACA,WACA,YACA,WACA,SACA,WACA,YACA,QACA,UACA,WACA,SACA,SACA,UACA,SACA,SACA,WACA,YACA,OACA,QACA,YACA,WACA,UACA,WACA,WACA,YACA,SACA,YACA,UACA,WACA,UACA,SACA,QACA,UACA,OACA,SACA,WACA,UACA,YACA,SACA,QACA,WACA,QACA,WACA,QACA,UACA,YACA,YACA,UACA,UACA,QACA,UACA,UACA,SACA,YACA,YACA,WACA,UACA,SACA,QACA,UACA,UACA,YACA,YACA,YACA,QACA,QACA,QACA,UACA,YACA,QACA,OACA,SACA,YACA,WACA,YACA,QACA,QACA,OACA,SACA,SACA,OACA,SACA,QACA,SACA,WACA,YACA,WACA,YACA,WACA,QACA,SACA,SACA,OACA,OACA,SACA,SACA,UACA,SACA,UACA,UACA,WACA,UACA,SACA,OACA,SACA,QACA,SACA,WACA,OACA,SACA,QACA,YACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,UACA,QACA,OACA,SACA,SACA,OACA,UACA,SACA,QACA,SACA,SACA,UACA,YACA,WACA,QACA,YACA,WACA,WACA,UACA,WACA,OACA,YACA,WACA,UACA,YACA,YACA,YACA,WACA,SACA,WACA,WACA,WACA,UACA,YACA,SACA,QACA,UACA,SACA,SACA,UACA,SACA,UACA,UACA,WACA,WACA,SACA,SACA,YACA,SACA,SACA,SACA,SACA,YACA,YACA,UACA,SACA,WACA,UACA,WACA,YACA,UACA,YACA,YACA,SACA,YACA,UACA,YACA,YACA,YACA,SACA,SACA,UACA,SACA,WACA,WACA,SACA,YACA,YACA,UACA,WACA,WACA,YACA,WACA,UACA,UACA,UACA,YACA,YACA,UACA,YACA,SACA,YACA,UACA,WACA,WACA,WACA,YACA,YACA,SACA,SACA,UACA,SACA,WACA,WACA,WACA,WACA,YACA,UACA,UACA,WACA,UACA,UACA,YACA,SACA,YACA,YACA,UACA,SACA,WACA,YACA,SACA,SACA,UACA,UACA,SACA,SACA,SACA,WACA,YACA,WACA,UACA,YACA,UACA,UACA,WACA,YACA,QACA,SACA,SACA,YACA,YACA,UACA,YACA,UACA,YACA,SACA,WACA,UACA,YACA,YACA,UACA,WACA,WACA,QACA,QACA,UACA,UACA,YACA,WACA,WACA,WACA,UACA,QACA,UACA,YACA,UACA,SACA,SACA,SACA,WACA,SACA,YACA,OACA,SACA,SACA,UACA,UACA,WACA,SACA,WACA,WACA,YACA,YACA,QACA,UACA,YACA,SACA,UACA,SACA,YACA,UACA,UACA,UACA,WACA,SACA,WACA,YACA,YACA,WACA,YACA,YACA,UACA,UACA,WACA,WACA,YACA,WACA,SACA,SACA,SACA,WACA,UACA,SACA,UACA,YACA,YACA,UACA,SACA,SACA,WACA,YACA,SACA,WACA,WACA,SACA,WACA,UACA,SACA,UACA,QACA,WACA,SACA,YACA,SACA,YACA,YACA,UACA,UACA,WACA,YACA,YACA,YACA,OACA,UACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,UACA,UACA,YACA,UACA,QACA,SACA,WACA,UACA,SACA,WACA,WACA,WACA,WACA,SACA,SACA,QACA,UACA,UACA,YACA,YACA,YACA,WACA,WACA,UACA,WACA,YACA,YACA,YACA,SACA,WACA,WACA,WACA,WACA,SACA,WACA,UACA,WACA,SACA,SACA,WACA,YACA,YACA,SACA,WACA,YACA,SACA,YACA,YACA,UACA,UACA,UACA,UACA,WACA,SACA,SACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YACA,YACA,QACA,SACA,UACA,SACA,UACA,UACA,WACA,QACA,SACA,UACA,UACA,UACA,SACA,UACA,YACA,WACA,WACA,UACA,YACA,YACA,SACA,YACA,SACA,WACA,UACA,YACA,UACA,UACA,WACA,YACA,SACA,SACA,WACA,YACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UACA,QACA,SACA,UACA,OACA,SACA,SACA,WACA,UACA,UACA,WACA,SACA,OACA,SACA,UACA,OACA,UACA,QACA,QACA,UACA,SACA,OACA,OACA,QACA,UACA,OACA,UACA,WACA,WACA,UACA,SACA,WACA,UACA,OACA,SACA,OACA,UACA,UACA,QACA,QACA,YACA,WACA,YACA,YACA,UACA,WACA,SACA,UACA,QACA,UACA,OACA,QACA,WACA,SACA,WACA,SACA,SACA,WACA,YACA,UACA,WACA,YACA,WACA,QACA,QACA,QACA,OACA,OACA,SACA,SACA,OACA,SACA,UACA,UACA,WACA,WACA,WACA,YACA,UACA,YACA,UACA,UACA,QACA,SACA,QACA,SACA,SACA,UACA,SACA,UACA,OACA,SACA,SACA,MACA,SACA,OACA,SACA,WACA,UACA,QACA,YACA,UACA,SACA,UACA,QACA,OACA,SACA,UACA,QACA,OACA,OACA,OACA,MACA,UACA,WACA,YACA,SACA,YACA,SACA,YACA,UACA,WACA,QACA,UACA,SACA,YACA,YACA,SACA,WACA,UACA,OACA,OACA,UACA,QACA,OACA,QACA,OACA,QACA,SACA,WACA,SACA,SACA,QACA,SACA,QACA,OACA,WACA,SACA,UACA,YACA,YACA,OACA,SACA,WACA,WACA,WACA,YACA,SACA,UACA,WACA,UACA,YACA,UACA,SACA,WACA,UACA,UACA,YACA,UACA,YACA,YACA,WACA,QACA,WACA,YACA,OACA,QACA,UACA,YACA,QACA,UACA,YACA,UACA,OACA,YACA,QACA,UACA,WACA,QACA,YACA,YACA,UACA,WACA,WACA,YACA,QACA,QACA,SACA,UACA,QACA,UACA,SACA,QACA,YACA,MACA,UACA,SACA,UACA,WACA,QACA,UACA,WACA,UACA,WACA,OACA,UACA,UACA,WACA,QACA,YACA,SACA,WACA,YACA,SACA,QACA,UACA,YACA,WACA,QACA,YACA,SACA,WACA,YACA,SACA,WACA,YACA,WACA,UACA,UACA,YACA,QACA,QACA,WACA,QACA,QACA,UACA,QACA,SACA,YACA,YACA,SACA,YACA,SACA,UACA,QACA,WACA,SACA,YACA,UACA,WACA,WACA,SACA,WACA,WACA,WACA,YACA,YACA,QACA,UACA,UACA,SACA,WACA,SACA,WACA,YACA,SACA,SACA,UACA,YACA,WACA,WACA,UACA,UACA,WACA,QACA,QACA,WACA,YACA,SACA,UACA,WACA,YACA,YACA,SACA,UACA,SACA,YACA,SACA,UACA,WACA,WACA,QACA,SACA,WACA,WACA,WACA,SACA,WACA,UACA,UACA,UACA,SACA,WACA,YACA,YACA,WACA,OACA,UACA,WACA,WACA,YACA,YACA,UACA,WACA,YACA,SACA,UACA,OACA,SACA,WACA,YACA,YACA,YACA,YACA,WACA,QACA,YACA,SACA,SACA,SACA,WACA,YACA,SACA,SACA,YACA,UACA,WACA,QACA,UACA,UACA,SACA,WACA,UACA,UACA,SACA,WACA,QACA,YACA,YACA,UACA,UACA,WACA,SACA,QACA,SACA,UACA,YACA,UACA,SACA,QACA,QACA,WACA,UACA,YACA,UACA,QACA,QACA,UACA,UACA,QACA,UACA,WACA,QACA,SACA,QACA,UACA,QACA,YACA,UACA,UACA,UACA,YACA,QACA,SACA,OACA,QACA,QACA,QACA,QACA,UACA,SACA,WACA,SACA,SACA,UACA,WACA,YACA,SACA,UACA,SACA,UACA,QACA,UACA,YACA,UACA,QACA,OACA,QACA,YACA,QACA,QACA,WACA,UACA,WACA,WACA,QACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,UACA,YACA,SACA,YACA,SACA,QACA,QACA,UACA,WACA,WACA,SACA,WACA,UACA,UACA,QACA,UACA,YACA,YACA,WACA,QACA,SACA,WACA,WACA,YACA,WACA,SACA,SACA,SACA,SACA,SACA,UACA,WACA,YACA,SACA,QACA,SACA,WACA,UACA,UACA,YACA,OACA,QACA,OACA,MACA,UACA,WACA,UACA,SACA,SACA,SACA,OACA,UACA,WACA,WACA,SACA,SACA,UACA,OACA,YACA,QACA,OACA,OACA,SACA,YACA,SACA,YACA,SACA,WACA,SACA,UACA,YACA,SACA,UACA,SACA,WACA,WACA,UACA,SACA,UACA,MACA,QACA,SACA,SACA,SACA,UACA,WACA,YACA,UACA,UACA,QACA,UACA,WACA,YACA,UACA,UACA,OACA,SACA,SACA,WACA,SACA,UACA,YACA,WACA,WACA,UACA,SACA,SACA,SACA,OACA,QACA,QACA,QACA,SACA,UACA,UACA,WACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,SACA,YACA,UACA,WACA,WACA,QACA,UACA,WACA,WACA,UACA,QACA,YACA,UACA,OACA,UACA,UACA,WACA,YACA,SACA,QACA,OACA,UACA,QACA,WACA,YACA,UACA,WACA,QACA,UACA,OACA,OACA,QACA,QACA,QACA,SACA,QACA,YACA,SACA,SACA,UACA,QACA,SACA,YACA,UACA,WACA,YACA,WACA,WACA,QACA,WACA,YACA,SACA,OACA,OACA,SACA,WACA,SACA,SACA,UACA,WACA,SACA,OACA,YACA,UACA,SACA,OACA,OACA,QACA,QACA,MACA,QACA,UACA,YACA,UACA,WACA,UACA,QACA,WACA,QACA,YACA,QACA,QACA,QACA,UACA,QACA,OACA,SACA,YACA,YACA,UACA,QACA,UACA,SACA,UACA,SACA,SACA,WACA,YACA,SACA,WACA,QACA,UACA,UACA,OACA,QACA,QACA,SACA,QACA,QACA,SACA,WACA,QACA,QACA,UACA,WACA,SACA,UACA,SACA,QACA,UACA,UACA,QACA,QACA,WACA,YACA,YACA,UACA,YACA,WACA,WACA,YACA,YACA,YACA,WACA,UACA,WACA,WACA,YACA,WACA,QACA,OACA,QACA,UACA,SACA,WACA,QACA,YACA,YACA,WACA,YACA,UACA,WACA,UACA,WACA,SACA,YACA,YACA,WACA,YACA,SACA,QACA,YACA,UACA,WACA,YACA,UACA,WACA,QACA,OACA,SACA,YACA,SACA,SACA,QACA,SACA,QACA,QACA,UACA,SACA,UACA,UACA,WACA,UACA,WACA,QACA,SACA,WACA,YACA,UACA,YACA,WACA,YACA,UACA,WACA,SACA,WACA,WACA,SACA,WACA,WACA,WACA,UACA,WACA,UACA,UACA,WACA,SACA,SACA,YACA,SACA,SACA,UACA,QACA,WACA,SACA,QACA,QACA,QACA,WACA,SACA,SACA,WACA,YACA,UACA,UACA,WACA,SACA,UACA,SACA,QACA,SACA,SACA,SACA,QACA,QACA,QACA,SACA,YACA,YACA,SACA,SACA,SACA,SACA,SACA,OACA,OACA,OACA,UACA,WACA,WACA,QACA,SACA,WACA,SACA,WACA,WACA,YACA,SACA,WACA,YACA,YACA,WACA,UACA,YACA,QACA,WACA,WACA,SACA,SACA,SACA,YACA,UACA,YACA,YACA,SACA,QACA,UACA,QACA,QACA,UACA,WACA,WACA,YACA,UACA,WACA,YACA,YACA,YACA,WACA,WACA,UACA,UACA,QACA,QACA,QACA,SACA,WACA,YACA,SACA,UACA,WACA,WACA,YACA,UACA,QACA,WACA,UACA,YACA,UACA,WACA,SACA,WACA,UACA,WACA,UACA,YACA,UACA,UACA,WACA,QACA,QACA,SACA,YACA,SACA,UACA,SACA,UACA,YACA,UACA,QACA,YACA,WACA,WACA,YACA,QACA,QACA,QACA,YACA,WACA,YACA,YACA,UACA,OACA,SACA,UACA,OACA,SACA,UACA,YACA,YACA,WACA,YACA,UACA,OACA,QACA,UACA,UACA,YACA,SACA,WACA,YACA,QACA,YACA,YACA,UACA,WACA,UACA,WACA,WACA,WACA,SACA,WACA,SACA,UACA,YACA,OACA,SACA,QACA,QACA,QACA,QACA,QACA,YACA,YACA,YACA,UACA,QACA,QACA,SACA,QACA,QACA,YACA,YACA,WACA,UACA,UACA,WACA,YACA,WACA,UACA,YACA,YACA,QACA,QACA,QACA,WACA,UACA,WACA,YACA,WACA,WACA,YACA,YACA,WACA,WACA,YACA,WACA,UACA,QACA,QACA,SACA,SACA,SACA,WACA,YACA,QACA,SACA,UACA,SACA,WACA,SACA,SACA,SACA,SACA,WACA,SACA,WACA,SACA,SACA,WACA,YACA,WACA,YACA,SACA,YACA,UACA,WACA,QACA,SACA,QACA,UACA,UACA,UACA,WACA,SACA,QACA,UACA,UACA,SACA,QACA,UACA,WACA,SACA,UACA,YACA,QACA,QACA,UACA,UACA,WACA,QACA,SACA,WACA,SACA,UACA,YACA,UACA,WACA,SACA,QACA,YACA,YACA,YACA,UACA,WACA,WACA,WACA,YACA,UACA,WACA,SACA,WACA,UACA,YACA,WACA,YACA,YACA,WACA,SACA,UACA,WACA,YACA,YACA,YACA,UACA,YACA,YACA,UACA,UACA,WACA,YACA,YACA,UACA,WACA,SACA,WACA,WACA,UACA,SACA,SACA,YACA,UACA,YACA,OACA,UACA,SACA,SACA,OACA,WACA,YACA,UACA,SACA,YACA,WACA,QACA,UACA,QACA,WACA,WACA,WACA,SACA,UACA,UACA,UACA,SACA,OACA,SACA,WACA,YACA,SACA,YACA,YACA,YACA,WACA,WACA,WACA,WACA,YACA,YACA,SACA,WACA,SACA,UACA,YACA,UACA,YACA,SACA,WACA,UACA,YACA,YACA,SACA,UACA,WACA,UACA,UACA,UACA,UACA,WACA,UACA,YACA,YACA,WACA,SACA,WACA,UACA,YACA,WACA,QACA,UACA,UACA,WACA,YACA,YACA,OACA,YACA,UACA,YACA,OACA,WACA,QACA,OACA,QACA,QACA,QACA,QACA,QACA,SACA,UACA,UACA,YACA,YACA,UACA,WACA,WACA,WACA,UACA,WACA,QACA,QACA,SACA,SACA,UACA,UACA,QACA,SACA,QACA,QACA,QACA,WACA,WACA,YACA,WACA,UACA,UACA,WACA,UACA,WACA,WACA,YACA,YACA,QACA,SACA,UACA,UACA,QACA,WACA,SACA,SACA,YACA,UACA,YACA,UACA,SACA,WACA,QACA,OACA,UACA,WACA,UACA,UACA,WACA,UACA,YACA,MACA,UACA,OACA,SACA,SACA,WACA,OACA,QACA,SACA,WACA,QACA,SACA,OACA,SACA,UACA,UACA,UACA,WACA,UACA,WACA,WACA,UACA,UACA,OACA,YACA,SACA,SACA,UACA,QACA,SACA,SACA,WACA,OACA,SACA,QACA,YACA,UACA,QACA,WACA,SACA,WACA,SACA,QACA,SACA,QACA,OACA,OACA,UACA,YACA,OACA,QACA,QACA,WACA,WACA,UACA,UACA,YACA,QACA,SACA,WACA,UACA,UACA,YACA,WACA,WACA,QACA,UACA,QACA,QACA,SACA,UACA,WACA,WACA,YACA,YACA,UACA,WACA,SACA,QACA,QACA,QACA,WACA,SACA,SACA,WACA,YACA,SACA,SACA,SACA,WACA,SACA,YACA,SACA,WACA,YACA,YACA,UACA,WACA,OACA,QACA,WACA,WACA,OACA,YACA,UACA,QACA,QACA,QACA,SACA,WACA,UACA,OACA,QACA,UACA,UACA,YACA,YACA,WACA,UACA,OACA,SACA,OACA,OACA,QACA,SACA,UACA,YACA,UACA,SACA,WACA,SACA,SACA,WACA,SACA,WACA,OACA,UACA,OACA,SACA,SACA,SACA,UACA,YACA,SACA,SACA,SACA,QACA,UACA,QACA,WACA,UACA,QACA,UACA,YACA,UACA,UACA,WACA,YACA,QACA,UACA,SACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,WACA,UACA,YACA,UACA,UACA,WACA,QACA,QACA,SACA,WACA,WACA,OACA,YACA,WACA,YACA,UACA,QACA,SACA,OACA,UACA,UACA,YACA,SACA,SACA,QACA,WACA,SACA,QACA,WACA,YACA,WACA,UACA,YACA,UACA,UACA,WACA,WACA,WACA,UACA,YACA,SACA,WACA,WACA,UACA,QACA,SACA,YACA,WACA,UACA,YACA,UACA,WACA,WACA,UACA,OACA,SACA,WACA,UACA,UACA,UACA,WACA,WACA,SACA,WACA,UACA,UACA,YACA,SACA,WACA,QACA,SACA,QACA,QACA,UACA,QACA,SACA,YACA,UACA,WACA,WACA,YACA,QACA,MACA,QACA,WACA,UACA,UACA,UACA,MACA,UACA,QACA,SACA,WACA,QACA,SACA,UACA,WACA,WACA,YACA,OACA,SACA,UACA,SACA,SACA,OACA,QACA,OACA,MACA,QACA,QACA,QACA,WACA,SACA,YACA,SACA,QACA,QACA,UACA,YACA,OACA,WACA,QACA,QACA,QACA,YACA,UACA,UACA,WACA,SACA,SACA,UACA,SACA,QACA,OACA,QACA,WACA,YACA,QACA,YACA,WACA,SACA,YACA,SACA,YACA,YACA,WACA,UACA,YACA,YACA,YACA,YACA,YACA,UACA,UACA,UACA,YACA,WACA,SACA,SACA,WACA,WACA,YACA,YACA,UACA,WACA,YACA,UACA,YACA,WACA,WACA,YACA,WACA,WACA,WACA,UACA,WACA,WACA,YACA,UACA,YACA,YACA,UACA,UACA,SACA,YACA,YACA,UACA,QACA,SACA,UACA,SACA,YACA,WACA,WACA,YACA,WACA,WACA,WACA,SACA,YACA,YACA,WACA,UACA,UACA,UACA,UACA,YACA,UACA,YACA,WACA,QACA,YACA,UACA,YACA,SACA,YACA,YACA,WACA,WACA,YACA,YACA,WACA,WACA,YACA,WACA,YACA,YACA,UACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,YACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,UACA,SACA,YACA,UACA,YACA,WACA,UACA,WACA,UACA,SACA,WACA,SACA,YACA,UACA,WACA,YACA,WACA,YACA,WACA,UACA,YACA,SACA,YACA,YACA,YACA,SACA,WACA,UACA,YACA,UACA,WACA,WACA,YACA,YACA,UACA,WACA,YACA,SACA,YACA,WACA,WACA,YACA,WACA,WACA,WACA,WACA,SACA,UACA,WACA,YACA,YACA,WACA,YACA,UACA,WACA,YACA,UACA,YACA,WACA,YACA,WACA,UACA,YACA,SACA,SACA,UACA,WACA,UACA,UACA,YACA,YACA,QACA,YACA,YACA,YACA,YACA,YACA,QACA,WACA,YACA,SACA,WACA,OACA,YACA,WACA,WACA,UACA,SACA,YACA,YACA,UACA,UACA,UACA,WACA,WACA,YACA,UACA,SACA,YACA,YACA,YACA,YACA,UACA,WACA,WACA,QACA,YACA,WACA,WACA,WACA,YACA,YACA,UACA,WACA,WACA,YACA,UACA,SACA,YACA,WACA,WACA,WACA,WACA,YACA,YACA,YACA,YACA,UACA,WACA,UACA,YACA,UACA,WACA,YACA,UACA,YACA,WACA,UACA,YACA,YACA,WACA,YACA,SACA,WACA,SACA,YACA,WACA,UACA,WACA,WACA,YACA,WACA,YACA,YACA,YACA,YACA,WACA,SACA,YACA,WACA,UACA,WACA,UACA,YACA,YACA,SACA,SACA,YACA,YACA,YACA,WACA,SACA,YACA,YACA,WACA,SACA,YACA,YACA,UACA,SACA,YACA,SACA,WACA,WACA,SACA,SACA,WACA,UACA,WACA,YACA,YACA,UACA,WACA,WACA,YACA,WACA,WACA,SACA,WACA,YACA,SACA,YACA,YACA,WACA,WACA,WACA,YACA,YACA,YACA,WACA,YACA,WACA,WACA,SACA,WACA,WACA,SACA,WACA,WACA,YACA,WACA,WACA,YACA,YACA,WACA,YACA,YACA,WACA,YACA,UACA,YACA,YACA,WACA,WACA,WACA,SACA,UACA,WACA,YACA,UACA,UACA,YACA,WACA,UACA,WACA,WACA,SACA,QACA,QACA,UACA,WACA,WACA,YACA,SACA,YACA,YACA,YACA,YACA,UACA,YACA,SACA,UACA,WACA,UACA,UACA,WACA,SACA,UACA,WACA,WACA,YACA,WACA,YACA,WACA,WACA,YACA,UACA,WACA,YACA,SACA,WACA,YACA,UACA,QACA,YACA,SACA,WACA,YACA,SACA,UACA,YACA,YACA,YACA,SACA,YACA,WACA,UACA,UACA,YACA,YACA,QACA,SACA,UACA,WACA,YACA,SACA,UACA,UACA,WACA,SACA,SACA,SACA,WACA,YACA,SACA,OACA,QACA,UACA,WACA,UACA,SACA,SACA,UACA,SACA,UACA,WACA,UACA,UACA,WACA,WACA,UACA,SACA,UACA,SACA,WACA,SACA,SACA,UACA,QACA,SACA,WACA,UACA,SACA,SACA,YACA,UACA,SACA,QACA,UACA,OACA,YACA,OACA,QACA,QACA,UACA,UACA,UACA,SACA,SACA,QACA,UACA,SACA,SACA,WACA,WACA,WACA,YACA,UACA,YACA,UACA,QACA,SACA,SACA,YACA,QACA,UACA,SACA,SACA,WACA,UACA,YACA,WACA,WACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,WACA,SACA,WACA,OACA,QACA,SACA,YACA,SACA,WACA,SACA,WACA,UACA,SACA,YACA,WACA,WACA,YACA,UACA,QACA,QACA,YACA,WACA,UACA,UACA,SACA,QACA,UACA,SACA,YACA,WACA,UACA,OACA,SACA,OACA,UACA,OACA,WACA,YACA,SACA,QACA,OACA,WACA,UACA,QACA,WACA,SACA,UACA,WACA,YACA,WACA,UACA,UACA,YACA,WACA,UACA,UACA,YACA,WACA,SACA,SACA,QACA,QACA,UACA,WACA,QACA,OACA,YACA,UACA,WACA,UACA,UACA,SACA,WACA,UACA,QACA,QACA,WACA,WACA,UACA,WACA,YACA,UACA,YACA,QACA,WACA,WACA,UACA,WACA,QACA,UACA,OACA,WACA,SACA,UACA,UACA,QACA,SACA,UACA,QACA,QACA,SACA,YACA,MACA,QACA,SACA,QACA,QACA,QACA,SACA,QACA,OACA,SACA,OACA,UACA,SACA,SACA,QACA,OACA,UACA,SACA,UACA,SACA,WACA,YACA,YACA,WACA,YACA,UACA,SACA,SACA,YACA,UACA,UACA,WACA,YACA,UACA,OACA,UACA,QACA,QACA,WACA,SACA,OACA,WACA,SACA,OACA,QACA,QACA,WACA,QACA,YACA,SACA,QACA,WACA,UACA,QACA,WACA,UACA,WACA,SACA,MACA,OACA,SACA,QACA,SACA,QACA,QACA,YACA,UACA,OACA,OACA,YACA,WACA,UACA,SACA,WACA,WACA,WACA,WACA,SACA,WACA,SACA,YACA,UACA,SACA,YACA,OACA,OACA,QACA,UACA,OACA,OACA,UACA,SACA,WACA,SACA,OACA,QACA,WACA,SACA,OACA,SACA,OACA,OACA,WACA,QACA,UACA,SACA,SACA,WACA,SACA,MACA,OACA,YACA,YACA,YACA,YACA,YACA,UACA,OACA,OACA,SACA,OACA,QACA,OACA,OACA,UACA,UACA,YACA,QACA,YACA,YACA,QACA,QACA,QACA,MACA,UACA,QACA,SACA,WACA,UACA,WACA,SACA,UACA,UACA,UACA,UACA,QACA,UACA,UACA,YACA,UACA,WACA,UACA,YACA,UACA,OACA,QACA,QACA,MACA,UACA,UACA,OACA,OACA,OACA,WACA,WACA,SACA,WACA,QACA,UACA,OACA,MACA,YACA,UACA,QACA,MACA,SACA,QACA,QACA,OACA,SACA,SACA,OACA,QACA,MACA,UACA,QACA,MACA,WACA,OACA,YACA,QACA,YACA,UACA,UACA,QACA,OACA,MACA,SACA,SACA,OACA,SACA,YACA,YACA,UACA,S,68CCjmPJ,aAEA,QAOA,aAUI,WAAoB71E,EAAgCuwB,EACxCimD,GADQ,KAAAx2E,aAAgC,KAAAuwB,iBACxC,KAAAimD,uBAoGhB,OAlGI,YAAAC,eAAA,WACI,OAAwB,MAApBhyF,KAAKiyF,YACEjyF,KAAKiyF,YACLjyF,KAAK+Z,QACL/Z,KAAK+Z,QAET,MAGL,YAAAm4E,mBAAN,W,oGACyB,SAAMlyF,KAAK8rC,eAAettC,IAAI,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,EAAAkL,cAA/B,EAAA+3F,0B,8ECXtB,aAAS,EAAAllD,eAAA,EAAAA,eACT,YAAS,EAAAhlC,SAAA,EAAAA,SACT,aAAS,EAAA5P,WAAA,EAAAA,WACT,aAAS,EAAAc,UAAA,EAAAA,UACT,aAAS,EAAAgc,aAAA,EAAAA,aACT,aAAS,EAAArgB,aAAA,EAAAA,aACT,aAAS,EAAA4D,UAAA,EAAAA,UACT,YAAS,EAAAuB,eAAA,EAAAA,eACT,cAAS,EAAAwrE,KAAA,EAAAA,M,uFCRT,SAAY2sB,GACR,2CACA,2CACA,yCACA,2CACA,iCAEA,6BACA,iCACA,2CACA,2CACA,2CACA,oCAEA,wBAEA,wCACA,wCACA,wCAlBJ,CAAY,EAAAA,mBAAA,EAAAA,iBAAgB,M,wGCA5B,WAGA,OACA,OACA,OAGA,EAAQ,K,qBAKJ,EAAAC,iBAGJ,EAAAC,kBAAyBC,gBAAgB,EAAD,UAAY,CAAEC,qBAAqB,K,iGChB3E,OAEA,WACA,SAEA,SAEA,SAEA,GADA,KACA,OACA,QACA,SAEA,SAEA,UACA,QAEA,SACA,SAEA,SACA,SACA,SACA,SACA,SAEA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SAEA,SAGA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SAEA,SACA,SACA,SACA,SACA,SACA,SACA,UACA,UACA,UAIA,UACA,UAGA,UACA,UAGA,UAGA,UACA,UAGA,UAIA,UACA,UACA,UACA,UACA,UACA,UAEA,UACA,UACA,UAEA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UAEA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UAEA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UAEA,SACA,UAEA,SACA,SACA,SACA,WACA,WACA,UACA,SACA,UACA,SACA,SACA,UAEA,UACA,SACA,WACA,UAEA,QAIA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,W,gBAEA,GAAAC,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAY,SAC/B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAY,SAC/B,GAAAA,mBAAmB,WAAY,SAC/B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAU,MAC7B,GAAAA,mBAAmB,WAAY,SAC/B,GAAAA,mBAAmB,WAAY,SAE/B,gC,wCA+MaC,EAAS,WAFN,EAAAC,gB,8DAEHD,IAAS,UAHP,CAAC,GAAAE,UAAS,SA3MZ,CACL,EAAAC,cACA,EAAAC,wBACA,EAAAC,YACA,EAAAC,iBACA,EAAAC,eACA,EAAAC,cAAcC,UACd,EAAAC,qBACA,EAAAC,mB,EATR,GA+Ma,EAAAX,c,iEAAAA,GAAS,eAnMd,GAAAthG,mBACA,EAAAqnD,yBACA,GAAA8f,gBACA,EAAAzf,4BACA,GAAA4Q,iBACA,EAAA3O,qBACA,GAAA5S,mBACA,GAAAlhB,iBACA,GAAAyhB,uBACA,EAAAqkB,qBACA,GAAAtjB,uBACA,GAAA34C,mBACA,GAAA2zC,gBACA,EAAAkuD,aACA,GAAArhD,qBACA,GAAAvvC,mBACA,EAAAyQ,gBACA,GAAA8gF,mBACA,GAAAC,gBACA,GAAA3zB,sBACA,GAAA9qB,qBACA,GAAAhB,oBACA,GAAAc,kBACA,GAAAT,qBACA,GAAAK,mBACA,GAAAniD,iBACA,GAAAyoE,qBACA,GAAAgC,mBACA,GAAAt7B,wBACA,EAAA0qB,oBACA,GAAAz+B,iBACA,GAAAulB,qBACA,GAAA+C,kBACA,GAAAknB,4BACA,GAAA3D,6BACA,GAAAE,uBACA,EAAA7Q,4BACA,GAAAiV,qBACA,EAAAjR,yBACA,GAAAiY,gCACA,GAAAnB,oCACA,GAAAyC,yBACA,GAAAlB,gCACA,GAAAa,iCACA,GAAA5B,6BACA,GAAAX,0BACA,GAAA33B,gBACA,GAAAS,gCACA,GAAA2kB,qBACA,GAAAuQ,uBACA,EAAAzhC,gBACA,EAAA2W,wBACA,GAAAva,mBACA,EAAA8c,cACA,GAAA9oD,SACA,GAAAua,cACA,GAAAglC,gBACA,GAAAY,iCACA,GAAA9uC,uBACA,GAAAu9D,iBACA,EAAA1lB,cACA,EAAAS,eACA,EAAAxyC,eACA,EAAAs4B,gBACA,GAAAi/B,iBACA,mBACA,oBACA,EAAAhV,6BACA,GAAArwB,2BACA,GAAAsyB,kCACA,wBACA,oBACA,6BACA,wBACA,wBACA,uBACA,kBACA,mBACA,mCACA,mBACA,oCACA,wBACA,sBACA,kBACA,uBACA,kBACA,kBACA,sBACA,oBACA,kCACA,qBACA,kBACA,2BACA,uBACA,uBACA,sBACA,GAAArsB,uBACA,EAAAuY,4BACA,oCACA,kBACA,gCACA,GAAAqoB,2BACA,GAAAJ,kCACA,EAAA5hD,0BACA,GAAA3N,iBACA,GAAA4uD,iBACA,GAAAjF,iBACA,GAAAx1B,oBACA,EAAAoV,uBACA,EAAAG,0BACA,EAAAY,kBACA,GAAAtK,+BACA,GAAAgjD,kBACA,GAAA90E,WACA,GAAAk3B,oBACA,oBACA,GAAAmjB,cACA,GAAAgJ,kBACA,GAAA9U,kBACA,GAAAkU,eACA,EAAAhmB,aACA,GAAAp6C,mBACA,GAAAU,kBACA,GAAAoT,iBACA,GAAAm8C,eACA,GAAAn2B,wBACA,GAAA6P,gCACA,EAAA+S,mBACA,GAAAvT,sBACA,GAAAc,wBACA,EAAAqS,0BACA,GAAAhS,2BACA,GAAAG,wBACA,GAAAryB,yBACA,GAAA+xB,2BACA,GAAAL,0BACA,GAAA6F,iCACA,GAAAkxB,mBACA,GAAA94B,uBACA,GAAAvC,qBACA,EAAAwR,oBACA,GAAA0nB,0BACA,GAAA1M,eACA,GAAAkP,qBACA,EAAAnkB,0BACA,EAAAG,6BACA,GAAA9M,8BAA4B,SA5J5B,EAAA0hD,cACA,EAAAC,wBACA,EAAAC,YACA,EAAAC,iBACA,EAAAC,eAAc,iBAEd,EAAAG,qBACA,EAAAC,mB,+IClQR,SACA,OAKA,SACA,SACA,SAEA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SAEA,SACA,SACA,SACA,SACA,SACA,SAEA,SACA,SACA,SACA,SACA,SAIA,SACA,SAGA,SACA,SAGA,SAGA,SACA,SAGA,SAIA,SAEA,SACA,SAEA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SAEA,SACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UAEA,UAEA,UACA,UAEA,UACA,UACA,UAEA,UAEA,UACA,U,gBAEMI,GAAiB,CACnB,CACItoB,KAAM,GACNxY,UAAW,EAAAnc,wBACX6kC,SAAU,CACN,CAAElQ,KAAM,GAAIuoB,UAAW,OAAQ/gC,UAAW,EAAA/Y,eAAgBsoB,YAAa,CAAC,GAAAmB,qBACxE,CAAE8H,KAAM,MAAOxY,UAAW,EAAAlV,mBAAoBykB,YAAa,CAAC,GAAAmB,qBAC5D,CACI8H,KAAM,WAAYxY,UAAW,EAAA7X,kBAC7BonB,YAAa,CAAC,GAAAmB,oBACdnwE,KAAM,CAAEmqB,QAAS,kBAErB,CACI8tD,KAAM,MAAOxY,UAAW,EAAAxX,aACxB+mB,YAAa,CAAC,GAAAmB,oBACdnwE,KAAM,CAAEmqB,QAAS,2BAErB,CACI8tD,KAAM,eAAgBxY,UAAW,EAAA5X,qBACjC7nD,KAAM,CAAEmqB,QAAS,sBAErB,CACI8tD,KAAM,OAAQxY,UAAW,EAAA5Z,cACzBmpB,YAAa,CAAC,GAAAmB,oBACdnwE,KAAM,CAAEmqB,QAAS,iBAErB,CACI8tD,KAAM,OACNxY,UAAW,EAAAxZ,cACX+oB,YAAa,CAAC,GAAAkB,mBAElB,CAAE+H,KAAM,eAAgBxY,UAAW,EAAA7U,2BACnC,CACIqtB,KAAM,sBACNxY,UAAW,EAAA7Z,4BACX5lD,KAAM,CAAEmqB,QAAS,qBAErB,CACI8tD,KAAM,mBACNxY,UAAW,EAAAla,yBACXvlD,KAAM,CAAEmqB,QAAS,oBAErB,CAAE8tD,KAAM,UAAWuoB,UAAW,OAAQC,WAAY,eAClD,CACIxoB,KAAM,cACNxY,UAAW,EAAAzY,0BACXgoB,YAAa,CAAC,GAAAmB,oBACdnwE,KAAM,CAAEmqB,QAAS,0BAErB,CACI8tD,KAAM,iBACNxY,UAAW,EAAA5Y,uBACXmoB,YAAa,CAAC,GAAAmB,oBACdnwE,KAAM,CAAEmqB,QAAS,kBAErB,CACI8tD,KAAM,wBACNxY,UAAW,EAAA1U,6BACXikB,YAAa,CAAC,GAAAmB,oBACdnwE,KAAM,CAAEmqB,QAAS,kBAErB,CACI8tD,KAAM,oBACNxY,UAAW,EAAA4F,gBACXrlE,KAAM,CAAElC,MAAO,qBAI3B,CACIm6E,KAAM,GACNxY,UAAW,EAAA5a,oBACXmqB,YAAa,CAAC,GAAAiB,kBACdkY,SAAU,CACN,CAAElQ,KAAM,QAASxY,UAAW,GAAAI,eAAgB7/D,KAAM,CAAEmqB,QAAS,YAC7D,CAAE8tD,KAAM,QAASxY,UAAW,EAAAoG,cAAe7lE,KAAM,CAAElC,MAAO,SAC1D,CACIm6E,KAAM,WACNxY,UAAW,EAAA1F,kBACXouB,SAAU,CACN,CAAElQ,KAAM,GAAIuoB,UAAW,OAAQC,WAAY,WAC3C,CAAExoB,KAAM,UAAWxY,UAAW,EAAAjJ,iBAAkBx2D,KAAM,CAAEmqB,QAAS,cACjE,CAAE8tD,KAAM,UAAWxY,UAAW,EAAAgM,iBAAkBzrE,KAAM,CAAEmqB,QAAS,YACjE,CAAE8tD,KAAM,eAAgBxY,UAAW,EAAAiL,qBAAsB1qE,KAAM,CAAEmqB,QAAS,gBAC1E,CAAE8tD,KAAM,aAAcxY,UAAW,EAAAnnB,wBAAyBt4C,KAAM,CAAEmqB,QAAS,iBAC3E,CAAE8tD,KAAM,UAAWxY,UAAW,EAAAyM,iBAAkBlsE,KAAM,CAAEmqB,QAAS,cACjE,CAAE8tD,KAAM,UAAWxY,UAAW,EAAApsB,qBAAsBrzC,KAAM,CAAEmqB,QAAS,YACrE,CACI8tD,KAAM,eACNxY,UAAW,EAAA8M,0BACXvsE,KAAM,CAAEmqB,QAAS,sBAErB,CAAE8tD,KAAM,gBAAiBxY,UAAW,EAAApzB,uBAAwBrsC,KAAM,CAAEmqB,QAAS,kBAC7E,CACI8tD,KAAM,sBACNxY,UAAW,EAAAsK,4BACX/pE,KAAM,CAAEmqB,QAAS,oBAErB,CACI8tD,KAAM,mBACNkQ,SAAU,CACN,CACIlQ,KAAM,GACNxY,UAAW,GAAAuT,yBACXhzE,KAAM,CAAEmqB,QAAS,oBAErB,CACI8tD,KAAM,MACNxY,UAAW,GAAAsR,6BACX/wE,KAAM,CAAEmqB,QAAS,wBAMrC,CACI8tD,KAAM,QACNxY,UAAW,GAAA3B,eACXkR,YAAa,CAAC,GAAAiB,kBACdkY,SAAU,CACN,CAAElQ,KAAM,GAAIuoB,UAAW,OAAQC,WAAY,aAC3C,CAAExoB,KAAM,SAAUxY,UAAW,GAAAnjB,gBAAiBt8C,KAAM,CAAEmqB,QAAS,eAC/D,CAAE8tD,KAAM,SAAUxY,UAAW,EAAAhnB,gBAAiBz4C,KAAM,CAAEmqB,QAAS,gBAC/D,CACI8tD,KAAM,YACNxY,UAAW,GAAAwN,2BACXjtE,KAAM,CAAEmqB,QAAS,sBAErB,CAAE8tD,KAAM,gBAAiBxY,UAAW,EAAAiN,sBAAuB1sE,KAAM,CAAEmqB,QAAS,qBAC5E,CACI8tD,KAAM,0BACNxY,UAAW,GAAAniB,+BACXt9C,KAAM,CAAEmqB,QAAS,0BAErB,CACI8tD,KAAM,4BACNxY,UAAW,GAAAjiB,iCACXx9C,KAAM,CAAEmqB,QAAS,4BAErB,CACI8tD,KAAM,wBACNxY,UAAW,GAAAxhB,6BACXj+C,KAAM,CAAEmqB,QAAS,wBAErB,CACI8tD,KAAM,2BACNxY,UAAW,GAAAvmB,gCACXl5C,KAAM,CAAEmqB,QAAS,2BAErB,CACI8tD,KAAM,6BACNxY,UAAW,GAAAviB,iCACXl9C,KAAM,CAAEmqB,QAAS,0BAMrC,CACI8tD,KAAM,gCACNxY,UAAW,EAAA7a,4BACXoqB,YAAa,CAAC,GAAAiB,iBAAkB,GAAAhB,0BAChCkZ,SAAU,CACN,CAAElQ,KAAM,GAAIuoB,UAAW,OAAQC,WAAY,SAC3C,CAAExoB,KAAM,QAASxY,UAAW,iBAAmBz/D,KAAM,CAAEmqB,QAAS,UAChE,CACI8tD,KAAM,QACNxY,UAAW,iBACXuP,YAAa,CAAC,GAAAa,8BACd7vE,KAAM,CAAEgqC,YAAa,CAAC,GAAAklC,YAAYG,mBAAoB,GAAAH,YAAYI,gBAClE6Y,SAAU,CACN,CACIlQ,KAAM,GACNuoB,UAAW,OACXC,WAAY,UAEhB,CACIxoB,KAAM,SACNxY,UAAW,kBACXuP,YAAa,CAAC,GAAAa,8BACd7vE,KAAM,CACFmqB,QAAS,aACT6f,YAAa,CAAC,GAAAklC,YAAYG,sBAGlC,CACI4I,KAAM,SACNxY,UAAW,kBACXuP,YAAa,CAAC,GAAAa,8BACd7vE,KAAM,CACFmqB,QAAS,cACT6f,YAAa,CAAC,GAAAklC,YAAYG,sBAGlC,CACI4I,KAAM,2BACNxY,UAAW,kCACXuP,YAAa,CAAC,GAAAa,8BACd7vE,KAAM,CACFmqB,QAAS,yBACT6f,YAAa,CAAC,GAAAklC,YAAYI,iBAGlC,CACI2I,KAAM,6BACNxY,UAAW,mCACXuP,YAAa,CAAC,GAAAa,8BACd7vE,KAAM,CACFmqB,QAAS,oBACT6f,YAAa,CAAC,GAAAklC,YAAYI,iBAGlC,CACI2I,KAAM,0BACNxY,UAAW,iCACXuP,YAAa,CAAC,GAAAa,8BACd7vE,KAAM,CACFmqB,QAAS,wBACT6f,YAAa,CAAC,GAAAklC,YAAYI,iBAGlC,CACI2I,KAAM,4BACNxY,UAAW,mCACXuP,YAAa,CAAC,GAAAa,8BACd7vE,KAAM,CACFmqB,QAAS,0BACT6f,YAAa,CAAC,GAAAklC,YAAYI,iBAGlC,CACI2I,KAAM,wBACNxY,UAAW,+BACXuP,YAAa,CAAC,GAAAa,8BACd7vE,KAAM,CACFmqB,QAAS,sBACT6f,YAAa,CAAC,GAAAklC,YAAYI,mBAK1C,CACI2I,KAAM,SACNxY,UAAW,kBACXuP,YAAa,CAAC,GAAAa,8BACd7vE,KAAM,CACFgqC,YAAa,CACT,GAAAklC,YAAYM,0BACZ,GAAAN,YAAYK,qBACZ,GAAAL,YAAYE,gBACZ,GAAAF,YAAYO,aACZ,GAAAP,YAAYU,YACZ,GAAAV,YAAYS,iBAGpBwY,SAAU,CACN,CACIlQ,KAAM,GACNuoB,UAAW,OACXC,WAAY,UAEhB,CACIxoB,KAAM,cACNxY,UAAW,uBACXuP,YAAa,CAAC,GAAAa,8BACd7vE,KAAM,CACFmqB,QAAS,cACT6f,YAAa,CAAC,GAAAklC,YAAYM,0BAA2B,GAAAN,YAAYK,wBAGzE,CACI0I,KAAM,SACNxY,UAAW,kBACXuP,YAAa,CAAC,GAAAa,8BACd7vE,KAAM,CACFmqB,QAAS,YACT6f,YAAa,CAAC,GAAAklC,YAAYE,mBAGlC,CACI6I,KAAM,SACNxY,UAAW,kBACXuP,YAAa,CAAC,GAAAa,8BACd7vE,KAAM,CACFmqB,QAAS,SACT6f,YAAa,CAAC,GAAAklC,YAAYO,gBAGlC,CACIwI,KAAM,SACNxY,UAAW,kBACXuP,YAAa,CAAC,GAAAa,8BACd7vE,KAAM,CACFmqB,QAAS,SACT6f,YAAa,CAAC,GAAAklC,YAAYU,eAGlC,CACIqI,KAAM,WACNxY,UAAW,oBACXuP,YAAa,CAAC,GAAAa,8BACd7vE,KAAM,CACFmqB,QAAS,WACT6f,YAAa,CAAC,GAAAklC,YAAYS,oBAK1C,CACIsI,KAAM,WACNxY,UAAW,oBACXuP,YAAa,CAAC,GAAAa,8BACd7vE,KAAM,CAAEgqC,YAAa,CAAC,GAAAklC,YAAYQ,qBAClCyY,SAAU,CACN,CAAElQ,KAAM,GAAIuoB,UAAW,OAAQC,WAAY,WAC3C,CAAExoB,KAAM,UAAWxY,UAAW,mBAAqBz/D,KAAM,CAAEmqB,QAAS,mBACpE,CAAE8tD,KAAM,aAAcxY,UAAW,0BAA4Bz/D,KAAM,CAAEmqB,QAAS,iBAC9E,CACI8tD,KAAM,UACNxY,UAAW,EAAAhJ,6BACXz2D,KAAM,CAAEmqB,QAAS,YAErB,CACI8tD,KAAM,eACNxY,UAAW,EAAA/G,kCACX14D,KAAM,CAAEmqB,QAAS,qBAMrC,CAAE8tD,KAAM,KAAMwoB,WAAY,KAG9B,4B,wCAQaX,I,8DAAAA,IAAgB,SAPhB,CAAC,EAAAY,aAAaT,QAAQM,GAAQ,CACnCI,SAAS,EACTC,0BAA2B,YAGrB,EAAAF,gB,EANd,GAQa,EAAAZ,qB,iEAAAA,GAAgB,oCAFf,EAAAY,iB,8ECpbd,8BACI,KAAAG,YAAkD,IAAI90F,IAwB1D,OAtBI,YAAA4H,KAAA,SAAKvS,EAAc3E,GACL,MAANA,EAOJI,KAAKgkG,YAAY5/F,SAAQ,SAAA1F,GACrBA,EAAM6F,MAPFvE,KAAKgkG,YAAYrkE,IAAI//B,IACrBI,KAAKgkG,YAAYxlG,IAAIoB,EAArBI,CAAyBuE,IAUrC,YAAAuf,UAAA,SAAUlkB,EAAYqkG,GAClBjkG,KAAKgkG,YAAY50F,IAAIxP,EAAIqkG,IAG7B,YAAAj9C,YAAA,SAAYpnD,GACJI,KAAKgkG,YAAYrkE,IAAI//B,IACrBI,KAAKgkG,YAAY1nE,OAAO18B,IAGpC,EAzBA,GAAa,EAAA8a,sB,gFCFb,qBAA0BlM,GACtB,OAAO,O,oFCDX,mBAAa,EAAA85C,gC,8ECAb,mBAAa,EAAAK,iC,68CCEb,aAMA,aAOI,WAAsB77B,EAA0BptB,EAClC6b,EAAkCD,GAD1B,KAAAwR,SAA0B,KAAAptB,cAClC,KAAA6b,aAAkC,KAAAD,uBAPhD,KAAA6F,MAAgB,GAGN,KAAAgoC,aAAe,QA6B7B,OAvBU,YAAAlhC,OAAN,W,0FACI,GAAkB,MAAdjoB,KAAKmhB,OAAgC,KAAfnhB,KAAKmhB,MAG3B,OAFAnhB,KAAKsb,qBAAqBqR,UAAU,QAAS3sB,KAAKN,YAAYO,EAAE,iBAC5DD,KAAKN,YAAYO,EAAE,kBACvB,IAEJ,IAAiC,IAA7BD,KAAKmhB,MAAM/b,QAAQ,KAGnB,OAFApF,KAAKsb,qBAAqBqR,UAAU,QAAS3sB,KAAKN,YAAYO,EAAE,iBAC5DD,KAAKN,YAAYO,EAAE,iBACvB,I,iBAKA,O,sBADAD,KAAKsoB,YAActoB,KAAKub,WAAW09D,iBAAiB,IAAI,EAAAirB,oBAAoBlkG,KAAKmhB,QACjF,GAAMnhB,KAAKsoB,a,cAAX,SACAtoB,KAAKsb,qBAAqBqR,UAAU,UAAW,KAAM3sB,KAAKN,YAAYO,EAAE,mBACzC,MAA3BD,KAAKkpD,mBACLlpD,KAAKkpD,qBACiB,MAAflpD,KAAK8sB,QACZ9sB,KAAK8sB,OAAOwc,SAAS,CAACtpC,KAAKmpD,e,4DAI3C,EAjCA,GAAa,EAAAH,iB,8ECRb,MAGI,SAAY7nC,GACRnhB,KAAKmhB,MAAQA,GAJR,EAAA+iF,uB,68CCcb,YAEA,SAGA,QAEA,Q,0FAEA,aAkBI,WAAsBp3E,EAA0BptB,EAClC4b,EAAsD1F,EACtD8gB,EAAoCnd,EACpCuyB,EAA0C5N,EAC1CtkB,EAAkDC,EAClD0B,GALQ,KAAAuR,SAA0B,KAAAptB,cAClC,KAAA4b,uBAAsD,KAAA1F,mBACtD,KAAA8gB,cAAoC,KAAAnd,gBACpC,KAAAuyB,iBAA0C,KAAA5N,sBAC1C,KAAAtkB,qBAAkD,KAAAC,eAClD,KAAA0B,aAtBd,KAAA2M,eAAyB,GACzB,KAAAylE,IAAc,GACd,KAAAwW,cAAwB,EAExB,KAAAC,SAAmB,EACnB,KAAAC,iBAA2B,GAMjB,KAAAl7C,aAAuB,QAGzB,KAAAm7C,mBAAqB,E,OAUvB,YAAApjG,SAAN,W,4GACkB,OAAd,EAAAlB,KAAc,GAAMA,KAAKk+B,oBAAoBqgE,gB,OAEpB,OAFzB,EAAKgG,OAAS,SACdvkG,KAAKokG,QAAWpkG,KAAKukG,OAAO,IAAkD,MAA5CvkG,KAAKk+B,oBAAoB5qB,iBAA4BtT,KAAKukG,OAAO,GACnG,EAAAvkG,KAAyB,GAAMA,KAAKsb,qBAAqBkpF,qB,OACpC,OADrB,EAAKA,kBAAoB,SACzB,EAAAxkG,KAAqB,GAAMA,KAAKk+B,oBAAoB+/D,sB,gBAA/B,UAAwD,GAAMj+F,KAAKuZ,cAAcqrE,U,aAA1B,EAAC,WAAsC5kF,KAAKsb,qBAAqBywE,wB,iBACxH,OADrB,EAAK0Y,cAAgB,EACrB,EAAAzkG,KAAqB,GAAMA,KAAK8rC,eAAettC,IAAI,EAAA0T,iBAAiB2B,gB,OACvD,OADb,EAAKA,cAAgB,SACrB,EAAA7T,KAAa,GAAMA,KAAK02B,YAAY4L,Y,cAApC,EAAKnhB,MAAQ,SAEG,OADZujF,EAAW1kG,KAAK4Z,mBAAmBo4E,oBAEnC0S,EAAW,yBAEf1kG,KAAKqkG,iBAAmB,EAAA5+F,MAAMC,YAAYg/F,G,YAGxC,YAAAz8E,OAAN,W,wHACI,OAAIjoB,KAAKokG,SAAwB,MAAZpkG,KAAK2tF,KAA4B,KAAb3tF,KAAK2tF,IAKzC3tF,KAAKokG,SAAmC,MAAvBpkG,KAAKkoB,gBAAkD,KAAxBloB,KAAKkoB,eAM9C,GAAMloB,KAAK02B,YAAY+Z,WAL/BzwC,KAAKsb,qBAAqBqR,UAAU,QAAS3sB,KAAKN,YAAYO,EAAE,iBAC5DD,KAAKN,YAAYO,EAAE,uBACvB,MAPAD,KAAKsb,qBAAqBqR,UAAU,QAAS3sB,KAAKN,YAAYO,EAAE,iBAC5DD,KAAKN,YAAYO,EAAE,gBACvB,K,OASkB,OADhBkgC,EAAM,SACU,GAAMngC,KAAK02B,YAAYga,oB,UAAvCtQ,EAAgB,UAElBpgC,KAAKokG,QAAL,aACIO,GAAS,E,gDAEL3kG,KAAKukG,OAAO,GACA,GAAMvkG,KAAKuZ,cAAcm0E,eAAe1tF,KAAK2tF,IAAK3tF,KAAKmhB,MAAOgf,EAAKC,EAC3EpgC,KAAKk+B,oBAAoB5qB,kBAF7B,O,OAGe,OAFT3U,EAAM,SAEG,GAAMqB,KAAKuZ,cAAc41B,UAAUxwC,I,OAC7B,OADf+qB,EAAS,SACM,GAAM1pB,KAAK8rC,eAAettC,IAAY,EAAA0T,iBAAiBqB,e,OAC7D,OADTA,EAAe,SACN,GAAMvT,KAAKuZ,cAAcG,cAAc,IAAI,EAAAhF,UAAUnB,GAAemW,I,cAA7Ek7E,EAAS,UACfD,EAASC,IAAW5kG,KAAK2tF,KACrB,MACA,GAAM3tF,KAAK6kG,kBAAkBlmG,I,OAA7B,S,sCAGQ,SAAMqB,KAAKuZ,cAAcm0E,eAAe1tF,KAAK2tF,IAAK3tF,KAAKmhB,MAAOgf,EAAKC,I,QAE/E,OAFMzhC,EAAM,SACZgmG,GAAS,EACT,GAAM3kG,KAAK6kG,kBAAkBlmG,I,QAA7B,S,wDAGJgmG,GAAS,E,eAGb,GAAIA,EAAQ,CAER,GADA3kG,KAAKskG,qBACDtkG,KAAKskG,oBAAsB,EAE3B,OADAtkG,KAAK4V,iBAAiBkB,KAAK,UAC3B,IAEJ9W,KAAKsb,qBAAqBqR,UAAU,QAAS3sB,KAAKN,YAAYO,EAAE,iBAC5DD,KAAKN,YAAYO,EAAE,e,qBAGf,SAAMD,KAAKuZ,cAAcinB,QAAQxgC,KAAKkoB,eAAgBloB,KAAKmhB,MAAOgf,EAAKC,I,QACnE,OADVzhC,EAAM,SACI,GAAMqB,KAAKuZ,cAAc6O,aAAapoB,KAAKkoB,eAAgBvpB,I,eAArEqtF,EAAU,SAEZ8Y,GAAgB,EAEL,MAAX9Y,EAAA,OACsB,GAAMhsF,KAAKuZ,cAAc4yE,c,eAC1B,OADf4Y,EAAgB,UAClB,QACAD,EAAgBC,IAAkB/Y,E,iBAE5B1nE,EAAU,IAAI,EAAApQ,6BACZmU,mBAAqB2jE,E,mBAGzB,O,yBADAhsF,KAAKsoB,YAActoB,KAAKub,WAAW89D,0BAA0B/0D,GAC7D,GAAMtkB,KAAKsoB,a,QAEX,OAFA,SACAw8E,GAAgB,EAChB,GAAM9kG,KAAKuZ,cAAcipB,WAAWwpD,I,eAApC,S,qDAKR8Y,EACI9kG,KAAKukG,OAAO,GACS,GAAMvkG,KAAK8rC,eAAettC,IAAY,EAAA0T,iBAAiBqB,eAD5E,OADJ,O,QAGmB,OADTA,EAAe,SACN,GAAMvT,KAAKuZ,cAAc41B,UAAUxwC,I,QACnC,OADT+qB,EAAS,SACA,GAAM1pB,KAAKuZ,cAAcG,cAAc,IAAI,EAAAhF,UAAUnB,GAAemW,I,QACpE,OADTk7E,EAAS,SACA,GAAM5kG,KAAKuZ,cAAcs0E,WAAW+W,EAAQ5kG,KAAKmhB,MAAOgf,EAAKC,I,QACjC,OADrC0tD,EAAS,SACf,EAAA9tF,KAAKk+B,oBAAsC,GAAMl+B,KAAKuZ,cAAcquB,QAAQjpC,EAAIA,IAAKmvF,I,QAArF,EAAyBx6E,gBAAkB,S,0BAE/CtT,KAAK6kG,kBAAkBlmG,G,eAEvBqB,KAAKsb,qBAAqBqR,UAAU,QAAS3sB,KAAKN,YAAYO,EAAE,iBAC5DD,KAAKN,YAAYO,EAAE,0B,qCAK7B,YAAAq/B,OAAN,W,0FACsB,SAAMt/B,KAAKsb,qBAAqB+a,WAAWr2B,KAAKN,YAAYO,EAAE,sBAC5ED,KAAKN,YAAYO,EAAE,UAAWD,KAAKN,YAAYO,EAAE,UAAWD,KAAKN,YAAYO,EAAE,Y,cADjE,UAGdD,KAAK4V,iBAAiBkB,KAAK,U,YAI7B,YAAAkuF,gBAAN,W,0FACI,OAAKhlG,KAAKykG,cAGM,GAAMzkG,KAAKsb,qBAAqB2pF,yBAF5C,I,cAEY,SAGZ,GAAMjlG,KAAKklG,cADX,M,OACA,S,mCAIR,YAAA77C,eAAA,WACIrpD,KAAKmkG,cAAgBnkG,KAAKmkG,aAC1B1zF,SAAS82B,eAAevnC,KAAKokG,QAAU,MAAQ,kBAAkBryF,SAGvD,YAAA8yF,kBAAd,SAAgClmG,G,0FAC5B,SAAMqB,KAAKuZ,cAAcgpB,OAAO5jC,I,cAAhC,SACAqB,KAAKklG,a,YAGK,YAAAA,WAAd,W,gGAE2B,OADvBllG,KAAKk+B,oBAAoB8E,iBAAkB,EACpB,GAAMhjC,KAAK8rC,eAAettC,IAAa,EAAA0T,iBAAiBI,oB,OAC/E,OADM06C,EAAiB,SACvB,GAAMhtD,KAAK6Z,aAAa4uC,KAAK,EAAAv2C,iBAAiBI,oBAAqB06C,I,cAAnE,SACAhtD,KAAK4V,iBAAiBkB,KAAK,YACI,MAA3B9W,KAAKkpD,mBACLlpD,KAAKkpD,qBACiB,MAAflpD,KAAK8sB,QACZ9sB,KAAK8sB,OAAOwc,SAAS,CAACtpC,KAAKmpD,e,6CAhK1BC,GAAa,ga,iCAAbA,I,EAAb,GAAa,EAAAA,iB,68CCvBb,KAMA,KAIA,MACA,OACA,MACA,KACA,MACA,KACA,MACA,MAjBA,IAmBA,QAEA,Q,6EAEMo5B,EACe,kBADfA,EAEa,gBAGnB,aAeI,WAAsBl5B,EAAoCx8B,EAC5CxR,EAAsD5b,EACtDma,EAAsCD,EACtC6e,EACA7X,EAAsDkrB,GAJ9C,KAAAwd,cAAoC,KAAAx8B,SAC5C,KAAAxR,uBAAsD,KAAA5b,cACtD,KAAAma,eAAsC,KAAAD,qBACtC,KAAA6e,4BACA,KAAA7X,wBAAsD,KAAAkrB,iBAjB3D,KAAA3qB,MAAgB,GAChB,KAAAgkF,eAAgB,EAEzB,KAAAj9E,eAAyB,GACzB,KAAAi8E,cAAwB,EAMd,KAAA74C,eAAiB,MACjB,KAAAnC,aAAe,Q,OAQnB,YAAAjoD,SAAN,W,yGACsB,MAAdlB,KAAKmhB,OAAgC,KAAfnhB,KAAKmhB,MAA3B,OACA,EAAAnhB,KAAa,GAAMA,KAAK8rC,eAAettC,IAAYgkF,K,OAAnD,EAAKrhE,MAAQ,SACK,MAAdnhB,KAAKmhB,QACLnhB,KAAKmhB,MAAQ,I,iBAGA,OAArB,EAAAnhB,KAAqB,GAAMA,KAAK8rC,eAAettC,IAAagkF,I,cAA5D,EAAK2iB,cAAgB,SACK,MAAtBnlG,KAAKmlG,gBACLnlG,KAAKmlG,eAAgB,GAErB,EAAA1/F,MAAMsF,WACN0F,SAAS82B,eAA6B,MAAdvnC,KAAKmhB,OAAgC,KAAfnhB,KAAKmhB,MAAe,QAAU,kBAAkBpP,Q,YAIhG,YAAAkW,OAAN,W,kGACI,GAAkB,MAAdjoB,KAAKmhB,OAAgC,KAAfnhB,KAAKmhB,MAG3B,OAFAnhB,KAAKsb,qBAAqBqR,UAAU,QAAS3sB,KAAKN,YAAYO,EAAE,iBAC5DD,KAAKN,YAAYO,EAAE,kBACvB,IAEJ,IAAiC,IAA7BD,KAAKmhB,MAAM/b,QAAQ,KAGnB,OAFApF,KAAKsb,qBAAqBqR,UAAU,QAAS3sB,KAAKN,YAAYO,EAAE,iBAC5DD,KAAKN,YAAYO,EAAE,iBACvB,IAEJ,GAA2B,MAAvBD,KAAKkoB,gBAAkD,KAAxBloB,KAAKkoB,eAGpC,OAFAloB,KAAKsb,qBAAqBqR,UAAU,QAAS3sB,KAAKN,YAAYO,EAAE,iBAC5DD,KAAKN,YAAYO,EAAE,uBACvB,I,iBAKiB,O,wBADjBD,KAAKsoB,YAActoB,KAAKspD,YAAYjrB,MAAMr+B,KAAKmhB,MAAOnhB,KAAKkoB,gBAC1C,GAAMloB,KAAKsoB,a,OAC5B,OADM1nB,EAAW,SACjB,GAAMZ,KAAK8rC,eAAe2c,KAAK+5B,EAAoBxiF,KAAKmlG,gB,cAAxD,SACInlG,KAAKmlG,cACL,GAAMnlG,KAAK8rC,eAAe2c,KAAK+5B,EAAsBxiF,KAAKmhB,QAD1D,M,cACA,S,aAEA,SAAMnhB,KAAK8rC,eAAe0a,OAAOg8B,I,OAAjC,S,wBAEA5hF,EAAS8gC,WACsC,MAA3C1hC,KAAK6sD,mCACL7sD,KAAK6sD,qCAEL7sD,KAAK8sB,OAAOwc,SAAS,CAACtpC,KAAKsrD,iB,QAJ/B,M,OAOuB,SAAMtrD,KAAK8rC,eAAettC,IAAa,EAAA0T,iBAAiBI,oB,OAC/E,OADM06C,EAAiB,SACvB,GAAMhtD,KAAK6Z,aAAa4uC,KAAK,EAAAv2C,iBAAiBI,oBAAqB06C,I,QAAnE,SAC8B,MAA1BhtD,KAAKitD,mBACLjtD,KAAKitD,oBAE6B,MAAlCjtD,KAAKupD,0BACLvpD,KAAKupD,4BAELvpD,KAAK8sB,OAAOwc,SAAS,CAACtpC,KAAKmpD,e,yFAM3C,YAAAE,eAAA,WACIrpD,KAAKmkG,cAAgBnkG,KAAKmkG,aAC1B1zF,SAAS82B,eAAe,kBAAkBx1B,SAGxC,YAAAqzF,iBAAN,SAAuBvmE,EAAkBwmE,G,0GAUvB,OARRl5C,EAAuB,CACzBhqD,KAAM,WACNhE,OAAQ,GACRiuD,WAAW,EACXC,WAAW,EACXC,SAAS,EACTC,SAAS,GAEC,GAAMvsD,KAAKy4B,0BAA0BsB,iBAAiBoyB,I,OAC5C,OADlB3oC,EAAQ,SACU,GAAMxjB,KAAKy4B,0BAA0BsB,iBAAiBoyB,I,OACrD,OADnBm5C,EAAkB,SACC,GAAMtlG,KAAK4gB,sBAAsBQ,KAAKkkF,EAAiB,W,OAIhF,OAJM94C,EAAmB,SACnBd,EAAgB,EAAAjmD,MAAMsH,mBAAmBy/C,GAG/C,GAAMxsD,KAAK8rC,eAAe2c,KAAK,EAAAv2C,iBAAiByB,YAAa6P,I,OAC7D,OADA,SACA,GAAMxjB,KAAK8rC,eAAe2c,KAAK,EAAAv2C,iBAAiBwB,mBAAoB4xF,I,cAApE,SAGMC,EAAqD,MAA5CvlG,KAAK4Z,mBAAmBo4E,iBAA2B,8BAC9DhyF,KAAK4Z,mBAAmBo4E,iBAG5BhyF,KAAKsb,qBAAqBuM,UAAU09E,EAAS,mBAAqB1mE,EAC9D,gBAAkBzyB,mBAAmBi5F,GACrC,UAAY7hF,EAAQ,kBAAoBkoC,G,6CAlHvC7B,GAAc,oW,iCAAdA,EAAc,uD,EAD3B,GACa,EAAAA,kB,8EC7Bb,mBAAa,EAAAC,wB,8ZCAb,IAEA,2B,+CAGA,OAH8C,OAG9C,EAHA,CAFA,MAE8C51C,6BAAjC,EAAA+1C,4B,68CCAb,aAEA,SAUA,SAEA,aAgBI,WAAsBX,EAAoCx8B,EAC5CptB,EAAoC6Z,EACpCgC,EAAkC1B,EAClCyB,EACAmd,GAJQ,KAAA6wB,cAAoC,KAAAx8B,SAC5C,KAAAptB,cAAoC,KAAA6Z,gBACpC,KAAAgC,aAAkC,KAAA1B,eAClC,KAAAyB,uBACA,KAAAmd,4BAnBd,KAAA/wB,KAAe,GACf,KAAAyZ,MAAgB,GAChB,KAAA+G,eAAyB,GACzB,KAAAs9E,sBAAgC,GAChC,KAAAC,KAAe,GACf,KAAAtB,cAAwB,EAIxB,KAAAuB,WAAY,EACZ,KAAAC,gBAA0B,EAEhB,KAAAx8C,aAAe,QAQrBnpD,KAAK0lG,WAAapqF,EAAqB+oB,aAuI/C,OApII,sBAAI,uCAAwB,C,IAA5B,WACI,OAAmC,MAA5BrkC,KAAKsxC,oBAA8B,EAAqC,IAAhCtxC,KAAKsxC,oBAAsB,I,gCAG9E,sBAAI,uCAAwB,C,IAA5B,WACI,OAAQtxC,KAAKsxC,qBACT,KAAK,EACD,MAAO,UACX,KAAK,EACD,MAAO,UACX,KAAK,EACD,MAAO,UACX,QACI,MAAO,W,gCAInB,sBAAI,sCAAuB,C,IAA3B,WACI,OAAQtxC,KAAKsxC,qBACT,KAAK,EACD,OAAOtxC,KAAKN,YAAYO,EAAE,UAC9B,KAAK,EACD,OAAOD,KAAKN,YAAYO,EAAE,QAC9B,KAAK,EACD,OAAOD,KAAKN,YAAYO,EAAE,QAC9B,QACI,OAAmC,MAA5BD,KAAKsxC,oBAA8BtxC,KAAKN,YAAYO,EAAE,QAAU,O,gCAI7E,YAAAgoB,OAAN,W,kHACI,OAAKjoB,KAAK2lG,gBAAkB3lG,KAAK0lG,WAC7B1lG,KAAKsb,qBAAqBqR,UAAU,QAAS3sB,KAAKN,YAAYO,EAAE,iBAC5DD,KAAKN,YAAYO,EAAE,wBACvB,KAGc,MAAdD,KAAKmhB,OAAgC,KAAfnhB,KAAKmhB,OAC3BnhB,KAAKsb,qBAAqBqR,UAAU,QAAS3sB,KAAKN,YAAYO,EAAE,iBAC5DD,KAAKN,YAAYO,EAAE,kBACvB,MAE6B,IAA7BD,KAAKmhB,MAAM/b,QAAQ,MACnBpF,KAAKsb,qBAAqBqR,UAAU,QAAS3sB,KAAKN,YAAYO,EAAE,iBAC5DD,KAAKN,YAAYO,EAAE,iBACvB,KAEuB,MAAvBD,KAAKkoB,gBAAkD,KAAxBloB,KAAKkoB,gBACpCloB,KAAKsb,qBAAqBqR,UAAU,QAAS3sB,KAAKN,YAAYO,EAAE,iBAC5DD,KAAKN,YAAYO,EAAE,uBACvB,KAEAD,KAAKkoB,eAAe/pB,OAAS,GAC7B6B,KAAKsb,qBAAqBqR,UAAU,QAAS3sB,KAAKN,YAAYO,EAAE,iBAC5DD,KAAKN,YAAYO,EAAE,qBACvB,KAEAD,KAAKkoB,iBAAmBloB,KAAKwlG,uBAC7BxlG,KAAKsb,qBAAqBqR,UAAU,QAAS3sB,KAAKN,YAAYO,EAAE,iBAC5DD,KAAKN,YAAYO,EAAE,0BACvB,KAKkB,OAFhB8wC,EAAiB/wC,KAAKy4B,0BAA0BuY,iBAAiBhxC,KAAKkoB,eACxEloB,KAAKixC,kCACqBF,EAAe5iB,MAAQ,EAClC,GAAMnuB,KAAKsb,qBAAqB+a,WAAWr2B,KAAKN,YAAYO,EAAE,0BACzED,KAAKN,YAAYO,EAAE,sBAAuBD,KAAKN,YAAYO,EAAE,OAAQD,KAAKN,YAAYO,EAAE,MACxF,YAHJ,M,OAIA,IAHe,SAIX,U,iBAIR,OAAID,KAAKylG,OAASzlG,KAAKkoB,gBACnBloB,KAAKsb,qBAAqBqR,UAAU,QAAS3sB,KAAKN,YAAYO,EAAE,iBAAkBD,KAAKN,YAAYO,EAAE,uBACrG,MAGJD,KAAK0H,KAAqB,KAAd1H,KAAK0H,KAAc,KAAO1H,KAAK0H,KAC3C1H,KAAKmhB,MAAQnhB,KAAKmhB,MAAMpd,OAAO/B,cACzBm+B,EAAM,EAAAnS,QAAQ2+C,cACdi5B,EAAc5lG,KAAKsb,qBAAqBuqF,OACxCzlE,EAAgBwlE,EAAc,IAAQ,IAChC,GAAM5lG,KAAKuZ,cAAcinB,QAAQxgC,KAAKkoB,eAAgBloB,KAAKmhB,MAAOgf,EAAKC,K,OACpE,OADTzhC,EAAM,SACG,GAAMqB,KAAKuZ,cAAco3B,WAAWhyC,I,OAC5B,OADjB+qB,EAAS,SACQ,GAAM1pB,KAAKuZ,cAAc6O,aAAapoB,KAAKkoB,eAAgBvpB,I,OACrE,OADP4/B,EAAiB,SACV,GAAMv+B,KAAKuZ,cAAcopB,YAAYjZ,EAAO,K,OAIvC,OAJZ28B,EAAO,UACP/hC,EAAU,IAAI,EAAAwhF,gBAAgB9lG,KAAKmhB,MAAOnhB,KAAK0H,KAAM62B,EACvDv+B,KAAKylG,KAAM/7E,EAAO,GAAG7U,gBAAiBsrB,EAAKC,EAAepgC,KAAKsqD,gBAC3DjE,KAAO,IAAI,EAAAvjB,YAAYujB,EAAK,GAAIA,EAAK,GAAGxxC,iBAC9B,GAAM7U,KAAK6Z,aAAarb,IAAS,kB,OAClC,OADXkrD,EAAY,WAC0B,MAAnBA,EAAUzpC,OAAiD,MAAhCypC,EAAU10B,qBAC1D1Q,EAAQrE,MAAQypC,EAAUzpC,MAC1BqE,EAAQ0Q,mBAAqB00B,EAAU10B,oB,iBAKvC,O,wBADAh1B,KAAKsoB,YAActoB,KAAKub,WAAW29D,aAAa50D,GAChD,GAAMtkB,KAAKsoB,a,cAAX,SACAtoB,KAAKsb,qBAAqBqR,UAAU,UAAW,KAAM3sB,KAAKN,YAAYO,EAAE,sBACxED,KAAK8sB,OAAOwc,SAAS,CAACtpC,KAAKmpD,cAAe,CAAEjB,YAAa,CAAE/mC,MAAOnhB,KAAKmhB,S,gEAI/E,YAAAkoC,eAAA,SAAe08C,GACX/lG,KAAKmkG,cAAgBnkG,KAAKmkG,aAC1B1zF,SAAS82B,eAAew+D,EAAe,uBAAyB,kBAAkBh0F,SAGtF,YAAAo/B,uBAAA,sBAC8C,MAAtCnxC,KAAKoxC,+BACLC,aAAarxC,KAAKoxC,+BAEtBpxC,KAAKoxC,8BAAgCrzB,YAAW,WAC5C,IAAMgzB,EAAiB,EAAKtY,0BAA0BuY,iBAAiB,EAAK9oB,eACxE,EAAK+oB,gCACT,EAAKK,oBAAwC,MAAlBP,EAAyB,KAAOA,EAAe5iB,QAC3E,MAGC,YAAA8iB,6BAAR,WACI,IAAIM,EAAsB,GACpBC,EAAaxxC,KAAKmhB,MAAM/b,QAAQ,KAOtC,OANIosC,GAAc,IACdD,EAAYA,EAAU7kB,OAAO1sB,KAAKmhB,MAAMva,OAAO,EAAG4qC,GAAYztC,OAAO/B,cAAcgE,MAAM,kBAE5E,MAAbhG,KAAK0H,MAA8B,KAAd1H,KAAK0H,OAC1B6pC,EAAYA,EAAU7kB,OAAO1sB,KAAK0H,KAAK3D,OAAO/B,cAAcgE,MAAM,OAE/DurC,GAEf,EA5JA,GAAa,EAAAwZ,qB,8ECXb,MAaI,SAAY5pC,EAAezZ,EAAc2gB,EAA4BkjB,EAA4B5sC,EAC7FwhC,EAAcC,EAAuBkqB,GACrCtqD,KAAK0H,KAAOA,EACZ1H,KAAKmhB,MAAQA,EACbnhB,KAAKqoB,mBAAqBA,EAC1BroB,KAAKurC,mBAAqBA,GAA0C,KACpEvrC,KAAKrB,IAAMA,EACXqB,KAAKmgC,IAAMA,EACXngC,KAAKogC,cAAgBA,EACrBpgC,KAAKsqD,cAAgBA,GAtBhB,EAAAw7C,mB,8ECLb,mBAAa,EAAAv7C,yB,yxDCkBb,aACA,SAEA,SAEA,S,kFAEA,cASI,WAAY7qD,EAA0B6Z,EAA8B3D,EAChE8gB,EAA0B+B,EAC1Bnd,EAA4Cqd,EAAsC7L,EAC1EvR,EAAgC6nB,EAAkCpgB,GAH9E,MAII,YAAMtjB,EAAa6Z,EAAe3D,EAAkB8gB,EAAa+B,EAC7Dnd,EAAsBqd,IAAc,K,OAH0C,EAAA7L,SAC1E,EAAAvR,aAAgC,EAAA6nB,cAAkC,EAAApgB,QAX9E,EAAAgjF,aAAuB,EACvB,EAAA7B,cAAwB,EACxB,EAAAsB,KAAe,GACf,EAAAv4D,WAAqB,KAGrB,EAAAic,aAAe,Q,SAPuB,OAiBhC,YAAAjoD,SAAN,W,uGACI,SAAMlB,KAAKojC,YAAYiG,UAAS,I,cAAhC,SACArpC,KAAKgmG,aAAc,EAEbv8C,EAAiBzpD,KAAKgjB,MAAMklC,YAAYpkC,WAAU,SAAMqkC,GAAO,qC,kCACvC,MAAtBA,EAAQjb,aACRltC,KAAKktC,WAAaib,EAAQjb,YAGR,MAAlBuc,GACAA,EAAezC,c,aAIvB,YAAM9lD,SAAQ,W,YAGZ,YAAAsvC,mBAAN,W,yEAII,OAHAxwC,KAAKmgC,IAAM,EAAAnS,QAAQ2+C,cACbi5B,EAAc5lG,KAAKsb,qBAAqBuqF,OAC9C7lG,KAAKogC,cAAgBwlE,EAAc,IAAQ,IACpC,CAAP,GAAO,UAGL,YAAA/0D,qBAAN,SAA2BxoB,EAA4B1pB,EACnD+qB,G,wGASa,OARPpF,EAAU,IAAI,EAAA2hF,oBACZ59E,mBAAqBA,EAC7B/D,EAAQ3lB,IAAM+qB,EAAO,GAAG7U,gBACxByP,EAAQinB,mBAAqBvrC,KAAKylG,KAClCnhF,EAAQ6b,IAAMngC,KAAKmgC,IACnB7b,EAAQ8b,cAAgBpgC,KAAKogC,cAC7B9b,EAAQ4hF,cAAgBlmG,KAAKktC,WAEhB,GAAMltC,KAAKuZ,cAAcopB,YAAYjZ,EAAO,K,OAAnD28B,EAAO,SACb/hC,EAAQ+hC,KAAO,IAAI,EAAAvjB,YAAYujB,EAAK,GAAIA,EAAK,GAAGxxC,iB,iBAI5C,O,wBADA7U,KAAKsoB,YAActoB,KAAKub,WAAWw9D,YAAYz0D,GAC/C,GAAMtkB,KAAKsoB,a,OAE2B,OAFtC,SAEM,KAAAtoB,KAAK02B,aAAY0L,eAAe,GAAMpiC,KAAK02B,YAAY2L,a,OAAa,O,GAApC,UAAoC,GAAMriC,KAAK02B,YAAY4L,Y,OAAjG,SAAM,oBAAoE,SACtEtiC,KAAKmgC,IAAKngC,KAAKogC,kB,OACnB,OAFA,SAEA,GAAMpgC,KAAKuZ,cAAcgpB,OAAO5jC,I,OAChC,OADA,SACA,GAAMqB,KAAKuZ,cAAcipB,WAAWna,I,OACpC,OADA,SACA,GAAMroB,KAAKuZ,cAAckpB,UAAU/Y,EAAO,GAAG7U,kB,OAC7C,OADA,SACA,GAAM7U,KAAKuZ,cAAcwpB,iBAAiBsjB,EAAK,GAAGxxC,kB,eAAlD,SAEuC,MAAnC7U,KAAKmmG,2BACLnmG,KAAKmmG,6BAELnmG,KAAK8sB,OAAOwc,SAAS,CAACtpC,KAAKmpD,e,+BAG/BnpD,KAAKsb,qBAAqBqR,UAAU,QAAS,KAAM3sB,KAAKN,YAAYO,EAAE,kB,iCAI9E,YAAAopD,eAAA,SAAe08C,GACX/lG,KAAKmkG,cAAgBnkG,KAAKmkG,aAC1B1zF,SAAS82B,eAAew+D,EAAe,uBAAyB,kBAAkBh0F,S,iCA7E7Ei5C,GAAoB,ga,iCAApBA,EAAoB,0C,EAAjC,CAA0C,2BAA7B,EAAAA,wB,8ECrBb,mBAAa,EAAAi7C,sB,8ECJb,W,GAMA,KAIA,MACA,KACA,K,mCAEA,aAOI,WAAsB38C,EAAoCx8B,EAC5CptB,EAAoC4b,EACpCtL,GAFQ,KAAAs5C,cAAoC,KAAAx8B,SAC5C,KAAAptB,cAAoC,KAAA4b,uBACpC,KAAAtL,MAPJ,KAAAu9C,mBAAqB,IAAI,EAAArqC,aACzB,KAAAuqC,kBAAoB,IAAI,EAAAvqC,aAElC,KAAAuc,UAAmB,G,OAMnB,YAAAv+B,SAAA,WACIlB,KAAKy/B,UAAYz/B,KAAKspD,YAAY9pB,+BAA+Bx/B,KAAKgQ,MAG1E,YAAAo2F,OAAA,SAAOhxF,GACHpV,KAAKutD,mBAAmB12C,KAAKzB,EAAEjT,OAGnC,YAAAwrD,QAAA,WACI3tD,KAAKsb,qBAAqBuM,UAAU,4DACpC7nB,KAAKytD,kBAAkB52C,Q,iCApBlBy2C,GAAyB,oKAQfsX,U,iCARVtX,EAAyB,0F,EADtC,GACa,EAAAA,6B,8ECfb,W,GAWA,M,+CAEA,iBAaI,WAAsB33C,EACRC,GADQ,KAAAD,2BACR,KAAAC,mBATJ,KAAAqB,QAAU,IAAI,EAAAiM,aACd,KAAAhM,SAAW,IAAI,EAAAgM,aACf,KAAAtM,OAAS,IAAI,EAAAsM,aACb,KAAAnM,QAAU,IAAI,EAAAmM,aAExB,KAAAnN,gBAAoC,KACpC,KAAAC,MAAgB,E,OAKhB,YAAAH,YAAA,WACIpF,SAASuN,KAAKuoC,UAAUC,OAAO,cAC/B/1C,SAASuN,KAAKF,YAAYrN,SAASlN,cAAc,qBAGrD,YAAAuS,KAAA,SAAQ3T,EAAe4T,EAAmCC,EACtDC,GADJ,gBAA0D,IAAAD,OAAA,QACtD,IAAAC,MAAA,MACAjW,KAAK4W,OAAOC,OACZ7W,KAAK4V,iBAAiBkB,KAAK,aAC3B9W,KAAK+V,gBAAkBA,EACvB/V,KAAKgW,KAAOA,EAEZvF,SAASuN,KAAKuoC,UAAUtN,IAAI,cAC5B,IAAMotD,EAAW51F,SAASC,cAAc,OACxC21F,EAASC,UAAY,kBAAoBtmG,KAAKgW,KAAO,QAAU,IAC/DvF,SAASuN,KAAKH,YAAYwoF,GAE1B,IAAMnwF,EAAUlW,KAAK2V,yBAAyBQ,wBAA2BhU,GACnEiU,EAAepW,KAAKqW,UAAUC,gBAAmBJ,GACzB,MAA1BD,GACAA,EAAuBG,EAAaG,UAGxC9F,SAASlN,cAAc,iBAAiBgjG,iBAAiB,SAAS,SAAC1lG,GAC/DA,EAAE4Q,qBAIN,IADA,IAC2B,MADZzJ,MAAMC,KAAKwI,SAASvI,iBAAiB,2CACzB,eAAQ,CAAZ,KACNq+F,iBAAiB,SAAS,SAAAn5E,GACnC,EAAKhW,WAMb,OAFApX,KAAK+W,QAAQF,OACb7W,KAAK4V,iBAAiBkB,KAAK,cACpBV,EAAaG,UAGxB,YAAAa,MAAA,WACIpX,KAAKiX,QAAQJ,OACb7W,KAAK4V,iBAAiBkB,KAAK,cAC3B9W,KAAKkX,SAASL,OACd7W,KAAK4V,iBAAiBkB,KAAK,eACC,MAAxB9W,KAAK+V,iBACL/V,KAAK+V,gBAAgBoB,S,iCAzDpBE,GAAc,0F,iCAAdA,EAAc,kD,OAAA,K,yBAKS,EAAAsgB,kB,2NAPrB,qE,oBAFf,GAIa,EAAAtgB,kB,68CCPb,aAEA,SAYA,SACA,QAEA,SACA,S,mEAEA,aAqBI,WAAsBiyC,EAAoCx8B,EAC5CptB,EAAoC6b,EACpCD,EAAsDtL,EACtD4J,EAAkDC,EAClDiyB,EAA0C9oB,GAJlC,KAAAsmC,cAAoC,KAAAx8B,SAC5C,KAAAptB,cAAoC,KAAA6b,aACpC,KAAAD,uBAAsD,KAAAtL,MACtD,KAAA4J,qBAAkD,KAAAC,eAClD,KAAAiyB,iBAA0C,KAAA9oB,QAxBxD,KAAA/C,MAAgB,GAChB,KAAAgf,UAAoB,EACpB,KAAAunE,eAAyB,EACzB,KAAAC,gBAA0B,EAC1B,KAAAhnE,UAAY,EAAA9B,mBACZ,KAAAqC,aAAe,EAAArlB,sBACf,KAAA6yC,qBAA8C,EAAA7yC,sBAAsBqO,cACpE,KAAA+W,mBAA6B,EAC7B,KAAA2mE,SAAqB,KACrB,KAAAzlG,MAAgB,GAChB,KAAA0lG,eAAyB,KAGzB,KAAAz5D,WAAqB,KAIX,KAAA05D,WAAa,QACb,KAAAz9C,aAAe,QAOrBnpD,KAAK+/B,kBAAoB//B,KAAKsb,qBAAqBukB,iBAAiB7vB,G,OAGlE,YAAA9O,SAAN,W,yGACI,OAAKlB,KAAK6mG,SAAsD,MAA3C7mG,KAAKspD,YAAY5pB,wBAKhC+pB,EAAiBzpD,KAAKgjB,MAAMklC,YAAYpkC,WAAU,SAAMqkC,GAAO,qC,kCACvC,MAAtBA,EAAQjb,aACRltC,KAAKktC,WAAaib,EAAQjb,YAGR,MAAlBuc,GACAA,EAAezC,c,aAInBhnD,KAAK8mG,YACL9mG,KAAKmpD,aAAe,QAGR,MAAZnpD,KAAKgQ,KAAehQ,KAAK+/B,oBAEN,OADfkyD,EAAcjyF,KAAK4Z,mBAAmBo4E,oBAEtCC,EAAc,+BAElBjyF,KAAK0mG,SAAW,IAAI,EAAA59E,SAAS9oB,KAAKgQ,IAAKiiF,EAAajyF,KAAKymG,eAAgBzmG,KAAKsb,qBAC1Etb,KAAKN,aAAa,SAACugB,GACf,EAAKA,MAAQA,EACb,EAAKgI,YACN,SAAC/I,GACA,EAAK5D,qBAAqBqR,UAAU,QAAS,EAAKjtB,YAAYO,EAAE,iBAAkBif,MACnF,SAAC0/E,GACa,UAATA,IACA,EAAK4H,eAAgB,OAMrCxmG,KAAKwtD,qBAAuBxtD,KAAKspD,YAAYxpB,4BAA4B9/B,KAAK+/B,mBAC9E,GAAM//B,KAAK0K,UAtCP1K,KAAK8sB,OAAOwc,SAAS,CAACtpC,KAAK4mG,aAC3B,K,cAqCJ,S,YAGJ,YAAA/wF,YAAA,WACI7V,KAAK+mG,kBACL/mG,KAAK0mG,SAAW,MAGd,YAAAh8F,KAAN,W,uGACI,GAAiC,MAA7B1K,KAAKwtD,qBAEL,OADAxtD,KAAKiB,MAAQjB,KAAKN,YAAYO,EAAE,oBAChC,I,OAGJD,KAAK+mG,kBACL/mG,KAAKiB,MAAS,EAAA08B,mBAA2B39B,KAAKwtD,sBAAsB9lD,KAC9Ds/F,EAAehnG,KAAKspD,YAAY5pB,uBAAuBlhC,IAAIwB,KAAKwtD,sBAC9DxtD,KAAKwtD,sB,KACJ,EAAA7yC,sBAAsBmO,SAAtB,Y,KASA,EAAAnO,sBAAsB6N,I,KACtB,EAAA7N,sBAAsB8N,gBAAtB,Y,KAgBA,EAAA9N,sBAAsBiO,MAAtB,Y,mBAzBD,OAAK5oB,KAAK+/B,mBAAsC,MAAjB//B,KAAK0mG,UAIpC3oF,YAAW,WACP,EAAK2oF,SAASh8F,KAAKs8F,KACpB,KACH,OANI,M,OAuBJ,OAdAjpF,YAAW,WACPkpF,EAAUv8F,KAAK,CACXw8F,YAAQtlG,EACR4M,KAAMw4F,EAAathB,KACnByhB,YAAaH,EAAaI,UAC1BC,gBAAiB,SAAO9/F,GAAkB,qC,+DAE3B,OADL+/F,EAAM//F,EAAEhE,cAAc,+BACxB,OACAvD,KAAKigB,MAAQqnF,EAAI5oG,MACjB,GAAMsB,KAAKioB,W,OAAX,S,uCAIb,GACH,M,cAEAjoB,KAAK2mG,eAAiBK,EAAap+E,MAC/B5oB,KAAKspD,YAAY5pB,uBAAuB5gB,KAAO,EAC/C,GAAM9e,KAAK09D,WAAU,IADrB,M,OACA,S,wBAIJ,Y,yBAIN,YAAAz1C,OAAN,W,0FACI,GAAkB,MAAdjoB,KAAKigB,OAAgC,KAAfjgB,KAAKigB,MAG3B,OAFAjgB,KAAKsb,qBAAqBqR,UAAU,QAAS3sB,KAAKN,YAAYO,EAAE,iBAC5DD,KAAKN,YAAYO,EAAE,6BACvB,IAGJ,GAAID,KAAKwtD,uBAAyB,EAAA7yC,sBAAsBmO,SAAU,CAC9D,GAAqB,MAAjB9oB,KAAK0mG,SAGL,UAFA1mG,KAAK0mG,SAASa,YAIXvnG,KAAKwtD,uBAAyB,EAAA7yC,sBAAsBiO,OAC3D5oB,KAAKwtD,uBAAyB,EAAA7yC,sBAAsBqO,gBACpDhpB,KAAKigB,MAAQjgB,KAAKigB,MAAMra,QAAQ,IAAK,IAAI7B,Q,iBAIzC,O,sBAAA,GAAM/D,KAAKwnC,Y,cAAX,S,6BAEIxnC,KAAKwtD,uBAAyB,EAAA7yC,sBAAsBmO,UAA6B,MAAjB9oB,KAAK0mG,UACrE1mG,KAAK0mG,SAASv3E,Q,+BAKpB,YAAAqY,SAAN,W,kGAEiC,OAD7BxnC,KAAKsoB,YAActoB,KAAKspD,YAAYxqB,eAAe9+B,KAAKwtD,qBAAsBxtD,KAAKigB,MAAOjgB,KAAKi/B,UAClE,GAAMj/B,KAAKsoB,a,OACjB,OADjB1nB,EAAuB,SACN,GAAMZ,KAAK8rC,eAAettC,IAAa,EAAA0T,iBAAiBI,oB,OAC/E,OADM06C,EAAiB,SACvB,GAAMhtD,KAAK6Z,aAAa4uC,KAAK,EAAAv2C,iBAAiBI,oBAAqB06C,I,cAAnE,SAC8B,MAA1BhtD,KAAKitD,mBACLjtD,KAAKitD,oBAELrsD,EAASohC,sBACThiC,KAAKmpD,aAAe,gBAEc,MAAlCnpD,KAAKupD,0BACLvpD,KAAKupD,4BAELvpD,KAAK8sB,OAAOwc,SAAS,CAACtpC,KAAKmpD,cAAe,CACtCjB,YAAa,CACThb,WAAYltC,KAAKktC,c,YAM3B,YAAAwwB,UAAN,SAAgB8pC,G,gGACZ,GAAIxnG,KAAKwtD,uBAAyB,EAAA7yC,sBAAsBiO,MACpD,UAGJ,GAAyB,MAArB5oB,KAAK29D,aACL,U,iBAMA,O,sBAFMr5C,EAAU,IAAI,EAAAspC,sBAAsB5tD,KAAKspD,YAAYnoC,MAAOnhB,KAAKspD,YAAYjhC,oBACnFroB,KAAK29D,aAAe39D,KAAKub,WAAWqiE,mBAAmBt5D,GACvD,GAAMtkB,KAAK29D,c,cAAX,SACI6pC,GACAxnG,KAAKsb,qBAAqBqR,UAAU,UAAW,KAC3C3sB,KAAKN,YAAYO,EAAE,4BAA6BD,KAAK2mG,iB,iDAIjE3mG,KAAK29D,aAAe,K,YAGhB,YAAAopC,gBAAR,WACyB,MAAjB/mG,KAAK0mG,WACL1mG,KAAK0mG,SAASa,OACdvnG,KAAK0mG,SAASe,YAItB,sBAAI,sBAAO,C,IAAX,WACI,OAAOznG,KAAKspD,YAAY3oB,uBAAyB3gC,KAAKspD,YAAY5oB,kBAAoB1gC,KAAKspD,YAAY7oB,qB,gCAG3G,sBAAI,wBAAS,C,IAAb,WACI,OAAOzgC,KAAKspD,YAAY5oB,kBAAoB1gC,KAAKspD,YAAY7oB,qB,iEA/MxDitB,GAAkB,sMAuB8CkX,QAAM,4J,iCAvBtElX,I,EAAb,GAAa,EAAAA,sB,8EC1Bb,MAMI,SAAY3sB,EAAezlB,GACvBtb,KAAKmC,KAAOmZ,EAAqBq8D,YACjC33E,KAAK0H,KAAO4T,EAAqBosF,kBACjC1nG,KAAKktC,WAAanM,EAClB/gC,KAAK2nG,UAAY,MAVZ,EAAA1mE,iB,8ECJb,MAGI,SAAY9f,GACRnhB,KAAKmhB,MAAQA,GAJR,EAAAmf,mB,8ECIb,iBAaI,WAAYg/B,EAAuBsoC,EAAiBxmE,EAAgClB,EAChFjgB,EAAegf,EAAmBy4C,GACf,MAAfpY,GAAuBA,EAAYnhE,OAAS,GAC5C6B,KAAKmhB,MAAQm+C,EAAY,GACzBt/D,KAAKqoB,mBAAqBi3C,EAAY,IACtB,MAATsoC,GAAiBA,EAAMzpG,OAAS,GACvC6B,KAAKwX,KAAOowF,EAAM,GAClB5nG,KAAK0+B,aAAekpE,EAAM,GAC1B5nG,KAAKirD,YAAc28C,EAAM,IACM,MAAxBxmE,GAAgCA,EAAqBjjC,OAAS,IACrE6B,KAAK6+B,SAAWuC,EAAqB,GACrCphC,KAAK2f,aAAeyhB,EAAqB,IAE7CphC,KAAKigB,MAAQA,EACbjgB,KAAKkgC,SAAWA,EAChBlgC,KAAKi/B,SAAWA,EAChBj/B,KAAK03E,OAAmB,MAAVA,EAAiBA,EAAS,KA0ChD,OAvCI,YAAAU,gBAAA,SAAgBv5C,GACZ,IAAMnc,EAAW,CACbw2C,MAAO,qBACPmmB,UAAWxgD,GAGf,GAAyB,MAArB7+B,KAAK2f,aACL+C,EAAIw2C,MAAQ,MACZx2C,EAAI08D,WAAa,qBACjB18D,EAAImlF,cAAgB7nG,KAAK2f,kBACtB,GAA+B,MAA3B3f,KAAKqoB,oBAA4C,MAAdroB,KAAKmhB,MAC/CuB,EAAI08D,WAAa,WACjB18D,EAAI7Y,SAAW7J,KAAKmhB,MACpBuB,EAAI5Y,SAAW9J,KAAKqoB,uBACjB,IAAiB,MAAbroB,KAAKwX,MAAqC,MAArBxX,KAAK0+B,cAA4C,MAApB1+B,KAAKirD,YAM9D,MAAM,IAAItpD,MAAM,qCALhB+gB,EAAI08D,WAAa,qBACjB18D,EAAIlL,KAAOxX,KAAKwX,KAChBkL,EAAIolF,cAAgB9nG,KAAK0+B,aACzBhc,EAAIqlF,aAAe/nG,KAAKirD,YAmB5B,OAdIjrD,KAAK03E,SACLh1D,EAAIqN,WAAa/vB,KAAK03E,OAAOv1E,KAC7BugB,EAAIslF,iBAAmBhoG,KAAK03E,OAAOxqC,WACnCxqB,EAAIulF,WAAajoG,KAAK03E,OAAOhwE,MAK7B1H,KAAKigB,OAA0B,MAAjBjgB,KAAKkgC,WACnBxd,EAAIsc,eAAiBh/B,KAAKigB,MAC1ByC,EAAIqc,kBAAoB/+B,KAAKkgC,SAC7Bxd,EAAIwlF,kBAAoBloG,KAAKi/B,SAAW,IAAM,KAG3Cvc,GAEf,EAvEA,GAAa,EAAA2e,gB,8ECDb,iBAKI,WAAoBrxB,EAAqBiiF,EAA6BwU,EAC1DnrF,EAAoD5b,EACpDygB,EAAmCgoF,EAAiCC,GAF5D,KAAAp4F,MAAqB,KAAAiiF,cAA6B,KAAAwU,iBAC1D,KAAAnrF,uBAAoD,KAAA5b,cACpD,KAAAygB,kBAAmC,KAAAgoF,gBAAiC,KAAAC,eANxE,KAAAlB,OAA4B,KAE5B,KAAAmB,cAAgBroG,KAAKsoG,aAAa1pG,KAAKoB,MAK3CA,KAAKuoG,cAAgBv4F,EAAIS,SAASC,cAAc,KA2ExD,OAxEI,YAAAhG,KAAA,SAAKvH,GACD,IAAM0gB,EAAS,IAAI2kF,gBAAgB,CAC/BrlG,KAAMnD,KAAKyoG,aAAahsC,KAAKC,UAAUv5D,IACvCygB,OAAQxX,mBAAmBpM,KAAKgQ,IAAIS,SAAS6mC,SAAS3mC,MACtD+3F,QAASt8F,mBAAmBpM,KAAKN,YAAYO,EAAE,yBAC/CqiF,EAAG,MAGHtiF,KAAKymG,gBAEL5iF,EAAOmkB,OAAO,SAAUhoC,KAAKN,YAAY8zF,mBACzCxzF,KAAKsb,qBAAqBuM,UAAa7nB,KAAKiyF,YAAW,qCAAqCpuE,KAE5F7jB,KAAKuoG,cAAc53F,KAAU3Q,KAAKiyF,YAAW,4BAA4BpuE,EACzE7jB,KAAKknG,OAASlnG,KAAKgQ,IAAIS,SAAS82B,eAAe,mBAC/CvnC,KAAKknG,OAAOyB,MAAQ,6BAA+B,IAAIr4F,IAAItQ,KAAKiyF,aAAa/mC,OAC7ElrD,KAAKknG,OAAOpqF,IAAM9c,KAAKuoG,cAAc53F,KAErC3Q,KAAKgQ,IAAIu2F,iBAAiB,UAAWvmG,KAAKqoG,eAAe,KAIjE,YAAAd,KAAA,WACIvnG,KAAK4oG,YAAY,SAGrB,YAAAz5E,MAAA,WACInvB,KAAK4oG,YAAY,UAGrB,YAAAA,YAAA,SAAYrkG,GACHvE,KAAKknG,QAAWlnG,KAAKknG,OAAOpqF,KAAQ9c,KAAKknG,OAAO2B,eAIrD7oG,KAAKknG,OAAO2B,cAAcC,YAAYvkG,EAASvE,KAAKknG,OAAOpqF,MAG/D,YAAA2rF,aAAA,SAAa5iG,GACT,OAAOiH,KAAKV,mBAAmBvG,GAAKD,QAAQ,mBAAmB,SAACX,EAAOpF,GACnE,OAAO+M,OAAOC,aAAc,KAAOhN,QAI3C,YAAA4nG,QAAA,WACIznG,KAAKgQ,IAAI+4F,oBAAoB,UAAW/oG,KAAKqoG,eAAe,IAGxD,YAAAC,aAAR,SAAqBl7E,GACjB,GAAKptB,KAAKgpG,aAAa57E,GAAvB,CAIA,IAAM3mB,EAAkB2mB,EAAMjqB,KAAK6C,MAAM,KACxB,YAAbS,EAAM,IAAoBzG,KAAKmgB,gBAC/BngB,KAAKmgB,gBAAgB1Z,EAAM,IACP,UAAbA,EAAM,IAAkBzG,KAAKmoG,cACpCnoG,KAAKmoG,cAAc1hG,EAAM,IACL,SAAbA,EAAM,IAAiBzG,KAAKooG,cACnCpoG,KAAKooG,aAAa3hG,EAAM,MAIxB,YAAAuiG,aAAR,SAAqB57E,GACjB,OAAoB,MAAhBA,EAAM89B,QAAmC,KAAjB99B,EAAM89B,QAAiB99B,EAAM89B,SAAYlrD,KAAKuoG,cAAsBr9C,QAC9E,MAAd99B,EAAMjqB,MAAwC,iBAAhBiqB,EAAU,OAIF,IAAnCA,EAAMjqB,KAAKiC,QAAQ,aAAsD,IAAjCgoB,EAAMjqB,KAAKiC,QAAQ,WAC9B,IAAhCgoB,EAAMjqB,KAAKiC,QAAQ,WAE/B,EAnFA,GAAa,EAAA0jB,Y,8ECHb,MAII,SAAYhC,EAAgB7G,GACxBjgB,KAAK8mB,OAASA,EACd9mB,KAAKigB,MAAQA,GANR,EAAA6tC,sB,8ECAb,MAII,SAAYhnC,EAAgB7G,GACxBjgB,KAAK8mB,OAASA,EACd9mB,KAAKigB,MAAQA,GANR,EAAA+tC,8B,8ECEb,iBAII,KAAA5mD,YAA0C,IAJjC,EAAA0pD,gB,8ECFb,mBAAa,EAAAoC,kC,8ECKb,iBACI,KAAAW,OAAmB,GAGnB,KAAAzsD,YAA0C,IAJjC,EAAAwsD,iC,8ECAb,iBAGI,KAAAxsD,YAA0C,IAHjC,EAAAssD,iC,8ECLb,iBACI,KAAAW,SAAqB,IADZ,EAAAD,uC,8ECAb,mBAAsB,EAAAuB,gB,8ECEtB,mBAAsB,EAAAC,c,8ECAtB,mBAAa,EAAAwC,iB,8ECFb,mBAAa,EAAAG,6B,8ECAb,SAAYtjB,GACR,uBACA,uBACA,6CACA,uCACA,uBALJ,CAAY,EAAAA,kBAAA,EAAAA,gBAAe,M,8ECA3B,mBAAa,EAAAK,qB,8ECAb,mBAAa,EAAAoC,wB,8ZCCb,IAEA,2B,+CAGA,OAHoC,OAGpC,EAHA,CAFA,OAEoCnzB,kCAAvB,EAAAg0B,kB,8ECAb,mBAAa,EAAArQ,6B,8ECDb,mBAAa,EAAAe,8B,8ECFb,mBAAa,EAAA6zB,e,8ECAb,mBAAa,EAAA1jB,kB,8ZCAb,IAEA,2B,+CAIA,OAJ+C,OAI/C,EAJA,CAFA,MAE+CllC,6BAAlC,EAAA0lC,6B,8ZCFb,IAIA,2B,+CAEA,OAF8C,OAE9C,EAFA,CAJA,MAI8C1lC,6BAAjC,EAAAoiB,4B,8ZCJb,IAEA,2B,+CAGA,OAHyD,OAGzD,EAHA,CAFA,MAEyDpiB,6BAA5C,EAAAopD,uC,8ZCFb,IAEA,2B,+CAGA,OAHiD,OAGjD,EAHA,CAFA,MAEiDppD,6BAApC,EAAA4pD,+B,8ZCFb,IAEA,2B,+CAEA,OAF0D,OAE1D,EAFA,CAFA,MAE0D5pD,6BAA7C,EAAA2qD,wC,8ZCFb,IAEA,2B,+CAIA,OAJoD,OAIpD,EAJA,CAFA,MAEoD3qD,6BAAvC,EAAAuqD,kC,8ZCFb,IAEA,2B,+CAOA,OAPoD,OAOpD,EAPA,CAFA,MAEoDvqD,6BAAvC,EAAA4rD,kC,68CCFb,WAWA,GALA,MACA,MACA,OACA,KACA,KACA,Q,8CAEA,aASI,WAAsBvmD,EAAwC7Z,EAChD4b,EAAsDogC,EACtDhjB,EAAsC1oB,GAF9B,KAAAuJ,gBAAwC,KAAA7Z,cAChD,KAAA4b,uBAAsD,KAAAogC,gBACtD,KAAAhjB,eAAsC,KAAA1oB,MAT1C,KAAA8kE,QAAU,IAAI,EAAA5xD,aAIxB,KAAAs6B,OAA4C,OAC5C,KAAA2mD,cAAe,E,OAMf,sBAAI,8BAAe,C,IAAnB,WACI,MAAuB,mBAAhBnkG,KAAKw9C,Q,gCAGV,YAAAv1B,OAAN,W,oGACI,OAA2B,MAAvBjoB,KAAKkoB,gBAAkD,KAAxBloB,KAAKkoB,gBACpCloB,KAAKsb,qBAAqBqR,UAAU,QAAS3sB,KAAKN,YAAYO,EAAE,iBAC5DD,KAAKN,YAAYO,EAAE,0BACvB,KAGoB,GAAMD,KAAKipG,iB,OACnC,OADwB,SAKR,GAAMjpG,KAAKuZ,cAAc6O,aAAapoB,KAAKkoB,eAAgB,OAHvE,I,OAIkB,OADhB8jE,EAAU,SACM,GAAMhsF,KAAKuZ,cAAc4yE,c,UAC1B,OADf4Y,EAAgB,WACkB,MAAX/Y,GAAmB+Y,IAAkB/Y,EAA9D,Y,iBAGiB,O,sBADbhsF,KAAKsoB,YAActoB,KAAKygE,gBACX,GAAMzgE,KAAKsoB,a,OAGxB,OAHMnlB,EAAO,SACbnD,KAAKkpG,aAAa/lG,GAClBnD,KAAK27C,QACL,GAAM37C,KAAK4gE,gB,cAAX,S,8DAGJ5gE,KAAKsb,qBAAqBqR,UAAU,QAAS3sB,KAAKN,YAAYO,EAAE,iBAC5DD,KAAKN,YAAYO,EAAE,0B,qCAIzB,YAAAgpG,cAAN,W,iGACQjpG,KAAKmpG,gBACE,GAAMnpG,KAAKsb,qBAAqB+a,WACnC,MAAQr2B,KAAKN,YAAYO,EAAE,2BAC3B,MAAQD,KAAKN,YAAYO,EAAE,+BAC3BD,KAAKN,YAAYO,EAAE,sBAAuBD,KAAKN,YAAYO,EAAE,eAC7DD,KAAKN,YAAYO,EAAE,UAAW,WAC9B,IANJ,M,OACA,MAAO,CAAP,EAAO,U,OAOA,SAAMD,KAAKsb,qBAAqB+a,WACnCr2B,KAAKN,YAAYO,EAAE,qBACnBD,KAAKN,YAAYO,EAAE,sBAAuBD,KAAKN,YAAYO,EAAE,eAC7DD,KAAKN,YAAYO,EAAE,UAAW,Y,OAHlC,MAAO,CAAP,EAAO,kBAOf,YAAAopD,eAAA,WACIrpD,KAAKmkG,cAAgBnkG,KAAKmkG,aAC1B1zF,SAAS82B,eAAe,kBAAkBx1B,SAGpC,YAAA4pC,MAAV,WACI37C,KAAK80E,QAAQj+D,QAGP,YAAA4pD,cAAV,WACI,OAAOzgE,KAAK07C,cAAc0tD,UAAUppG,KAAKw9C,SAGnC,YAAAmjB,YAAV,SAAsBt0C,GAClB,IAAIg9E,EAAYrpG,KAAKw9C,OASrB,MARoB,mBAAhBx9C,KAAKw9C,SAEDnxB,EADU,MAAVA,EACS,YAEA,aAAeA,EAE5Bg9E,EAAY,QAETrpG,KAAK07C,cAAcilB,YAAYt0C,EAAQg9E,IAGlC,YAAAzoC,aAAhB,W,0FACI,SAAM5gE,KAAK04B,aAAaoB,QAAQ,EAAA1J,UAAUQ,2B,cAA1C,S,YAGI,YAAAs4E,aAAR,SAAqBI,GACjB,IAAM99E,EAAWxrB,KAAK2gE,cACtB3gE,KAAKsb,qBAAqBqhD,SAAS38D,KAAKgQ,IAAKs5F,EAAK,CAAEnnG,KAAM,cAAgBqpB,I,iCA5FrEowB,GAAe,iNAUiCgpB,U,iCAVhDhpB,EAAe,8B,EAD5B,GACa,EAAAA,mB,8ECdb,mBAAa,EAAAlwB,qB,68CCAb,aAIA,OAQA,QACA,SACA,SACA,SACA,SACA,SACA,SAgBA,GAdA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,KACA,MACA,MACA,KAIA,OACA,SAEA,SAEA,SACA,SACA,SACA,QAEA,Q,4FAEA,aA4CI,WAAsB0M,EAAwCC,EAChD34B,EAAoC4b,EACpCgd,EAAsCze,EACtC6c,EAAoC6B,EACpC3iB,EAA8C8iB,EAC9CC,GALQ,KAAAP,gBAAwC,KAAAC,gBAChD,KAAA34B,cAAoC,KAAA4b,uBACpC,KAAAgd,eAAsC,KAAAze,eACtC,KAAA6c,cAAoC,KAAA6B,oBACpC,KAAA3iB,mBAA8C,KAAA8iB,eAC9C,KAAAC,gBA/CL,KAAAgC,WAAqB,EACrB,KAAA5V,SAAmB,KAInB,KAAAxiB,eAAyB,KACxB,KAAA40B,cAAgB,IAAI,EAAAjU,aACpB,KAAAkU,gBAAkB,IAAI,EAAAlU,aACtB,KAAAmU,iBAAmB,IAAI,EAAAnU,aACvB,KAAAqmF,YAAc,IAAI,EAAArmF,aAClB,KAAAsmF,kBAAoB,IAAI,EAAAtmF,aACxB,KAAAumF,cAAgB,IAAI,EAAAvmF,aACpB,KAAAwmF,kBAAoB,IAAI,EAAAxmF,aACxB,KAAAymF,mBAAqB,IAAI,EAAAzmF,aAEnC,KAAA2W,UAAoB,EAGpB,KAAAzyB,YAAgC,GAMhC,KAAA+8F,cAAwB,EACxB,KAAAyF,cAAwB,EACxB,KAAA5tE,WAAa,EAAApzB,WACb,KAAAihG,UAAY,EAAA7gG,UACZ,KAAA8gG,aAA0B,EAAA9gG,UAAUC,KAOpC,KAAA2xB,iBAA0B,GAC1B,KAAAmvE,YAAc,IAAIzgF,KAClB,KAAAuR,eAAgB,EAWZ76B,KAAKgqG,YAAc,CACf,CAAEtiG,KAAMhI,EAAYO,EAAE,aAAcvB,MAAO,EAAAkK,WAAWC,OACtD,CAAEnB,KAAMhI,EAAYO,EAAE,YAAavB,MAAO,EAAAkK,WAAWuR,MACrD,CAAEzS,KAAMhI,EAAYO,EAAE,gBAAiBvB,MAAO,EAAAkK,WAAWwR,UACzD,CAAE1S,KAAMhI,EAAYO,EAAE,kBAAmBvB,MAAO,EAAAkK,WAAWoB,aAE/DhK,KAAKiqG,iBAAmB,CACpB,CAAEviG,KAAM,MAAQhI,EAAYO,EAAE,UAAY,MAAOvB,MAAO,MACxD,CAAEgJ,KAAM,OAAQhJ,MAAO,QACvB,CAAEgJ,KAAM,aAAchJ,MAAO,cAC7B,CAAEgJ,KAAM,mBAAoBhJ,MAAO,QACnC,CAAEgJ,KAAM,WAAYhJ,MAAO,YAC3B,CAAEgJ,KAAM,cAAehJ,MAAO,eAC9B,CAAEgJ,KAAM,MAAOhJ,MAAO,OACtB,CAAEgJ,KAAM,UAAWhJ,MAAO,WAC1B,CAAEgJ,KAAM,WAAYhJ,MAAO,YAC3B,CAAEgJ,KAAMhI,EAAYO,EAAE,SAAUvB,MAAO,UAE3CsB,KAAKkqG,oBAAsB,CACvB,CAAExiG,KAAM,MAAQhI,EAAYO,EAAE,UAAY,MAAOvB,MAAO,MACxD,CAAEgJ,KAAM,QAAUhI,EAAYO,EAAE,WAAYvB,MAAO,KACnD,CAAEgJ,KAAM,QAAUhI,EAAYO,EAAE,YAAavB,MAAO,KACpD,CAAEgJ,KAAM,QAAUhI,EAAYO,EAAE,SAAUvB,MAAO,KACjD,CAAEgJ,KAAM,QAAUhI,EAAYO,EAAE,SAAUvB,MAAO,KACjD,CAAEgJ,KAAM,QAAUhI,EAAYO,EAAE,OAAQvB,MAAO,KAC/C,CAAEgJ,KAAM,QAAUhI,EAAYO,EAAE,QAASvB,MAAO,KAChD,CAAEgJ,KAAM,QAAUhI,EAAYO,EAAE,QAASvB,MAAO,KAChD,CAAEgJ,KAAM,QAAUhI,EAAYO,EAAE,UAAWvB,MAAO,KAClD,CAAEgJ,KAAM,QAAUhI,EAAYO,EAAE,aAAcvB,MAAO,KACrD,CAAEgJ,KAAM,QAAUhI,EAAYO,EAAE,WAAYvB,MAAO,MACnD,CAAEgJ,KAAM,QAAUhI,EAAYO,EAAE,YAAavB,MAAO,MACpD,CAAEgJ,KAAM,QAAUhI,EAAYO,EAAE,YAAavB,MAAO,OAExDsB,KAAKmqG,qBAAuB,CACxB,CAAEziG,KAAM,MAAQhI,EAAYO,EAAE,UAAY,MAAOvB,MAAO,MACxD,CAAEgJ,KAAMhI,EAAYO,EAAE,MAAOvB,MAAOgB,EAAYO,EAAE,OAClD,CAAEyH,KAAMhI,EAAYO,EAAE,OAAQvB,MAAOgB,EAAYO,EAAE,QACnD,CAAEyH,KAAMhI,EAAYO,EAAE,MAAOvB,MAAOgB,EAAYO,EAAE,OAClD,CAAEyH,KAAMhI,EAAYO,EAAE,MAAOvB,MAAOgB,EAAYO,EAAE,QAEtDD,KAAKoqG,oBAAsB,CACvB,CAAE1iG,KAAMhI,EAAYO,EAAE,cAAevB,MAAO,EAAAsK,UAAUC,MACtD,CAAEvB,KAAMhI,EAAYO,EAAE,gBAAiBvB,MAAO,EAAAsK,UAAUu6E,QACxD,CAAE77E,KAAMhI,EAAYO,EAAE,iBAAkBvB,MAAO,EAAAsK,UAAUs7E,UAE7DtkF,KAAKqqG,gBAAkB,CACnB,CAAE3iG,KAAMhI,EAAYO,EAAE,yBAA0BvB,MAAO,MACvD,CAAEgJ,KAAMhI,EAAYO,EAAE,cAAevB,MAAO,EAAAw5B,aAAastD,QACzD,CAAE99E,KAAMhI,EAAYO,EAAE,QAASvB,MAAO,EAAAw5B,aAAawtD,MACnD,CAAEh+E,KAAMhI,EAAYO,EAAE,cAAevB,MAAO,EAAAw5B,aAAa2tD,YACzD,CAAEn+E,KAAMhI,EAAYO,EAAE,SAAUvB,MAAO,EAAAw5B,aAAaC,mBACpD,CAAEzwB,KAAMhI,EAAYO,EAAE,SAAUvB,MAAO,EAAAw5B,aAAa0tD,OACpD,CAAEl+E,KAAMhI,EAAYO,EAAE,SAAUvB,MAAO,EAAAw5B,aAAa4tD,Q,OAItD,YAAA5kF,SAAN,W,0FACI,SAAMlB,KAAK0K,Q,cAAX,S,YAGE,YAAAA,KAAN,W,2GACqB,SAAM1K,KAAK24B,cAAc+N,OAAO,EAAA3jB,WAAW8xC,oB,OAC5C,OADVjuB,EAAW,SACD,GAAM5mC,KAAK02B,YAAY4L,Y,OAE1B,OAFPgoE,EAAU,SAChBtqG,KAAK46B,iBAAiBz1B,KAAK,CAAEuC,KAAM4iG,EAAS5rG,MAAO,OACtC,GAAMsB,KAAK02B,YAAYmQ,uB,OAmBR,OAnBf,SACR/I,KAAK,EAAAr4B,MAAM4J,gBAAgBrP,KAAKN,YAAa,SAAS0E,SAAQ,SAAAunC,GAC/D,GAAIA,EAAE7V,SAAW6V,EAAE7rB,SAAW,EAAA+G,2BAA2BwmB,YACrD,EAAKzS,iBAAiBz1B,KAAK,CAAEuC,KAAMikC,EAAEjkC,KAAMhJ,MAAOitC,EAAE/rC,KACpC,MAAZgnC,GAAoB+E,EAAES,cAAgBT,EAAE+b,mBAAqB,EAAK7sB,eAClE,IAAqB,UAAA+L,EAAA,eAAU,CAA1B,IAAMsvB,EAAM,KACb,GAAIA,EAAO3zD,iBAAmBopC,EAAE/rC,IAAMs2D,EAAOpgC,QAAS,CAClD,EAAK+E,eAAgB,EACrB,EAAKD,iBAAiB40B,OAAO,EAAG,GAEL,MAAvB,EAAKjtD,iBACL,EAAKA,eAAiBopC,EAAE/rC,IAE5B,WAMpB,EAAAI,KAA4B,GAAMA,KAAKw8C,mB,cAAvC,EAAKuqB,qBAAuB,S,YAG1B,YAAA9sD,KAAN,W,6GAcmC,OAb/Bja,KAAK65B,SAA4B,MAAjB75B,KAAK20B,SACjB30B,KAAK65B,UACL75B,KAAK65B,UAAW,EACZ75B,KAAK26B,WACL36B,KAAK26B,WAAY,EACjB36B,KAAKiB,MAAQjB,KAAKN,YAAYO,EAAE,YAEhCD,KAAKiB,MAAQjB,KAAKN,YAAYO,EAAE,aAGpCD,KAAKiB,MAAQjB,KAAKN,YAAYO,EAAE,WAGL,GAAMD,KAAK6Z,aAAarb,IAAS,sB,OAKhE,OAJyB,OADnB+rG,EAAyB,YAE3BvqG,KAAKuG,OAASgkG,EAAkBhkG,OAChCvG,KAAKulB,cAAgBglF,EAAkBhlF,eAE3C,GAAMvlB,KAAK6Z,aAAa2sC,OAAO,sB,cAA/B,SAEmB,MAAfxmD,KAAKuG,OAAL,MACIvG,KAAK65B,SACU,GAAM75B,KAAKy8C,cAD1B,M,OAEc,OADRl2C,EAAS,SACf,EAAAvG,KAAc,GAAMuG,EAAOiP,W,cAA3B,EAAKjP,OAAS,SAGVvG,KAAK26B,YACL36B,KAAKuG,OAAOmB,MAAQ,MAAQ1H,KAAKN,YAAYO,EAAE,SAEb,MAA9BD,KAAKuG,OAAOhE,gBAA2BvC,KAAK66B,gBAC5C76B,KAAKuG,OAAOhE,eAAiBvC,KAAKuC,iB,aAI1CvC,KAAKuG,OAAS,IAAI,EAAA+B,WAClBtI,KAAKuG,OAAOhE,eAAwC,MAAvBvC,KAAKuC,eAAyB,KAAOvC,KAAKuC,eACvEvC,KAAKuG,OAAOwe,SAAW/kB,KAAK+kB,SAC5B/kB,KAAKuG,OAAOpE,KAAoB,MAAbnC,KAAKmC,KAAe,EAAAyG,WAAWC,MAAQ7I,KAAKmC,KAC/DnC,KAAKuG,OAAOmC,MAAQ,IAAI,EAAAC,UACxB3I,KAAKuG,OAAOmC,MAAMqB,KAAO,CAAC,IAAI,EAAAhF,cAC9B/E,KAAKuG,OAAOM,KAAO,IAAI,EAAAqR,SACvBlY,KAAKuG,OAAO4e,SAAW,IAAI,EAAAC,aAC3BplB,KAAKuG,OAAO0D,WAAa,IAAI,EAAAC,eAC7BlK,KAAKuG,OAAO0D,WAAW9H,KAAO,EAAAgI,eAAeC,Q,wBAIlC,MAAfpK,KAAKuG,QAAoBvG,KAAK65B,UAAiC,MAArB0wE,IAA6BvqG,KAAK26B,UAA5E,MACA,GAAM36B,KAAKwqG,uB,OAAX,SAC0B,MAAtBxqG,KAAKulB,eAAyBvlB,KAAKulB,cAAcpnB,OAAS,GAAK6B,KAAKoH,YAAYjJ,OAAS,GACzF6B,KAAKoH,YAAYhD,SAAQ,SAAA6J,GACjB,EAAKsX,cAAcngB,QAAQ6I,EAAErO,KAAO,IACnCqO,EAAUivB,SAAU,M,iBAMtB,OAAf,EAAAl9B,KAAe,GAAMA,KAAKq4B,cAAc8jB,mB,cAAxC,EAAK90C,QAAU,SAEXrH,KAAK65B,UAAY75B,KAAKyqG,mBAAqBzqG,KAAK20B,UAChD30B,KAAK04B,aAAaoB,QAAQ,EAAA1J,UAAUkB,oBAAqBtxB,KAAK20B,UAElE30B,KAAKyqG,iBAAmBzqG,KAAK20B,S,YAG3B,YAAA1M,OAAN,W,gGACI,OAAIjoB,KAAKuG,OAAOk2B,UACL,CAAP,EAAOz8B,KAAK48B,WAGQ,MAApB58B,KAAKuG,OAAOmB,MAAqC,KAArB1H,KAAKuG,OAAOmB,MACxC1H,KAAKsb,qBAAqBqR,UAAU,QAAS3sB,KAAKN,YAAYO,EAAE,iBAC5DD,KAAKN,YAAYO,EAAE,iBAChB,CAAP,GAAO,IAGLD,KAAK65B,WAAY75B,KAAK26B,WAAe36B,KAAK66B,eAA+C,MAA9B76B,KAAKuG,OAAOhE,gBAMvEvC,KAAK65B,WAAY75B,KAAK26B,WAAc36B,KAAKuG,OAAOpE,OAAS,EAAAyG,WAAWC,OAC5C,MAA1B7I,KAAKuG,OAAOmC,MAAMqB,MAAkD,IAAlC/J,KAAKuG,OAAOmC,MAAMqB,KAAK5L,QACvB,MAAjC6B,KAAKuG,OAAOmC,MAAMqB,KAAK,GAAGlF,KAAiD,KAAlC7E,KAAKuG,OAAOmC,MAAMqB,KAAK,GAAGlF,MACpE7E,KAAKuG,OAAOmC,MAAMqB,KAAO,MAIvB/J,KAAK65B,WAAY75B,KAAK26B,WAA4C,MAA9B36B,KAAKuG,OAAOhE,iBAClDvC,KAAKuG,OAAOgf,cAAoC,MAApBvlB,KAAKoH,YAAsB,GACnDpH,KAAKoH,YAAYe,QAAO,SAAA8F,GAAK,OAACA,EAAUivB,WAAS51B,KAAI,SAAA2G,GAAK,OAAAA,EAAErO,OAIhEI,KAAK26B,YACL36B,KAAKuG,OAAO3G,GAAK,MAGN,GAAMI,KAAK28C,mBAtBtB38C,KAAKsb,qBAAqBqR,UAAU,QAAS3sB,KAAKN,YAAYO,EAAE,iBAC5DD,KAAKN,YAAYO,EAAE,iCAChB,CAAP,GAAO,I,OAoBLsG,EAAS,S,iBAGX,O,sBADAvG,KAAKsoB,YAActoB,KAAK48C,WAAWr2C,GACnC,GAAMvG,KAAKsoB,a,OAMX,OANA,SACAtoB,KAAKuG,OAAO3G,GAAK2G,EAAO3G,GACxBI,KAAKsb,qBAAqBqR,UAAU,UAAW,KAC3C3sB,KAAKN,YAAYO,EAAED,KAAK65B,WAAa75B,KAAK26B,UAAY,aAAe,cACzE36B,KAAKm3B,cAActgB,KAAK7W,KAAKuG,QAC7BvG,KAAK4V,iBAAiBkB,KAAK9W,KAAK65B,WAAa75B,KAAK26B,UAAY,eAAiB,eACxE,CAAP,GAAO,G,oCAGX,MAAO,CAAP,GAAO,WAGX,YAAA+vE,OAAA,WACQ1qG,KAAKuG,OAAOpE,OAAS,EAAAyG,WAAWC,QAIN,MAA1B7I,KAAKuG,OAAOmC,MAAMqB,OAClB/J,KAAKuG,OAAOmC,MAAMqB,KAAO,IAG7B/J,KAAKuG,OAAOmC,MAAMqB,KAAK5E,KAAK,IAAI,EAAAJ,gBAGpC,YAAA4lG,UAAA,SAAU9lG,GACN,GAAI7E,KAAKuG,OAAOpE,OAAS,EAAAyG,WAAWC,OAAmC,MAA1B7I,KAAKuG,OAAOmC,MAAMqB,KAA/D,CAIA,IAAM9L,EAAI+B,KAAKuG,OAAOmC,MAAMqB,KAAK3E,QAAQP,GACrC5G,GAAK,GACL+B,KAAKuG,OAAOmC,MAAMqB,KAAKylD,OAAOvxD,EAAG,KAIzC,YAAA2sG,SAAA,WAC8B,MAAtB5qG,KAAKuG,OAAOkC,SACZzI,KAAKuG,OAAOkC,OAAS,IAGzB,IAAMlB,EAAI,IAAI,EAAA6B,UACd7B,EAAEpF,KAAOnC,KAAK8pG,aACdviG,EAAEsjB,UAAW,EACb7qB,KAAKuG,OAAOkC,OAAOtD,KAAKoC,IAG5B,YAAAsjG,YAAA,SAAY1hG,GACR,IAAMlL,EAAI+B,KAAKuG,OAAOkC,OAAOrD,QAAQ+D,GACjClL,GAAK,GACL+B,KAAKuG,OAAOkC,OAAO+mD,OAAOvxD,EAAG,IAIrC,YAAA6sG,gBAAA,SAAgBv7C,EAAenjC,GAC3B,OAAOmjC,GAGX,YAAA9oB,OAAA,WACIzmC,KAAKupG,YAAY1yF,KAAK7W,KAAKuG,SAG/B,YAAA8e,YAAA,WACIrlB,KAAKwpG,kBAAkB3yF,KAAK7W,KAAKuG,SAGrC,YAAA61B,MAAA,WACIp8B,KAAKypG,cAAc5yF,KAAK7W,KAAKuG,SAGjC,YAAAwkG,gBAAA,WACI/qG,KAAK0pG,kBAAkB7yF,KAAK7W,KAAKuG,SAG/B,YAAA+1B,OAAN,W,0FACsB,SAAMt8B,KAAKsb,qBAAqB+a,WAC9Cr2B,KAAKN,YAAYO,EAAED,KAAKuG,OAAOk2B,UAAY,oCAAsC,0BACjFz8B,KAAKN,YAAYO,EAAE,cAAeD,KAAKN,YAAYO,EAAE,OAAQD,KAAKN,YAAYO,EAAE,MAAO,Y,OAC3F,IAHkB,SAId,MAAO,CAAP,GAAO,G,iBAKP,O,sBADAD,KAAKiwD,cAAgBjwD,KAAK08B,eAC1B,GAAM18B,KAAKiwD,e,cAAX,SACAjwD,KAAKsb,qBAAqBqR,UAAU,UAAW,KAC3C3sB,KAAKN,YAAYO,EAAED,KAAKuG,OAAOk2B,UAAY,yBAA2B,gBAC1Ez8B,KAAKo3B,gBAAgBvgB,KAAK7W,KAAKuG,QAC/BvG,KAAK4V,iBAAiBkB,KAAK9W,KAAKuG,OAAOk2B,UAAY,2BAA6B,iB,0CAGpF,MAAO,CAAP,GAAO,WAGL,YAAAG,QAAN,W,0FACI,OAAK58B,KAAKuG,OAAOk2B,UAIC,GAAMz8B,KAAKsb,qBAAqB+a,WAC9Cr2B,KAAKN,YAAYO,EAAE,2BAA4BD,KAAKN,YAAYO,EAAE,eAClED,KAAKN,YAAYO,EAAE,OAAQD,KAAKN,YAAYO,EAAE,MAAO,YAL9C,CAAP,GAAO,G,OAMX,IAHkB,SAId,MAAO,CAAP,GAAO,G,iBAKP,O,sBADAD,KAAKgrG,eAAiBhrG,KAAKirG,gBAC3B,GAAMjrG,KAAKgrG,gB,cAAX,SACAhrG,KAAKsb,qBAAqBqR,UAAU,UAAW,KAAM3sB,KAAKN,YAAYO,EAAE,iBACxED,KAAKq3B,iBAAiBxgB,KAAK7W,KAAKuG,QAChCvG,KAAK4V,iBAAiBkB,KAAK,kB,0CAG/B,MAAO,CAAP,GAAO,WAGL,YAAAijB,iBAAN,W,iGAC6B,MAArB/5B,KAAKuG,OAAOmC,OAA+C,MAA9B1I,KAAKuG,OAAOmC,MAAMoB,UAAoB9J,KAAKuG,OAAOmC,MAAMoB,SAAS3L,OAC5E,GAAM6B,KAAKsb,qBAAqB+a,WAC9Cr2B,KAAKN,YAAYO,EAAE,iCAAkCD,KAAKN,YAAYO,EAAE,qBACxED,KAAKN,YAAYO,EAAE,OAAQD,KAAKN,YAAYO,EAAE,QAHlD,M,OAIA,IAHkB,SAId,MAAO,CAAP,GAAO,G,iBAKf,OADAD,KAAK2pG,mBAAmB9yF,OACjB,CAAP,GAAO,WAGX,YAAAwyC,eAAA,WACIrpD,KAAKmkG,cAAgBnkG,KAAKmkG,aAC1B1zF,SAAS82B,eAAe,iBAAiBx1B,QACrC/R,KAAK65B,UAAY75B,KAAKmkG,cACtBnkG,KAAK04B,aAAaoB,QAAQ,EAAA1J,UAAUmB,oCAAqCvxB,KAAK20B,WAItF,YAAAu2E,eAAA,WACIlrG,KAAK4pG,cAAgB5pG,KAAK4pG,aAC1Bn5F,SAAS82B,eAAe,YAAYx1B,QAChC/R,KAAK65B,UAAY75B,KAAK4pG,cACtB5pG,KAAK04B,aAAaoB,QAAQ,EAAA1J,UAAUqB,oCAAqCzxB,KAAK20B,WAItF,YAAAw2E,iBAAA,SAAiBhiG,GACb,IAAM5B,EAAK4B,EACX5B,EAAEujB,WAAavjB,EAAEujB,UACb9qB,KAAK65B,UAAYtyB,EAAEujB,WACnB9qB,KAAK04B,aAAaoB,QAAQ,EAAA1J,UAAUoB,uCAAwCxxB,KAAK20B,WAIzF,YAAAy2E,iBAAA,SAAiBvmG,GACb,IAAMK,EAAKL,EACXK,EAAEuW,aAA+B,MAAjBvW,EAAEuW,aAAoC,MAAb5W,EAAII,SAAyBC,EAAEuW,aAG5E,YAAA4vF,qBAAA,SAAqBxmG,GACjB,IAAMK,EAAKL,EACXK,EAAEuW,YAA+B,MAAjBvW,EAAEuW,aAA6BvW,EAAEuW,aAGrD,YAAA6vF,KAAA,SAAKl+E,GACD,EAAAm+E,gBAAgBvrG,KAAKuG,OAAOkC,OAAQ2kB,EAAMo+E,cAAep+E,EAAMq+E,eAG7D,YAAAjB,oBAAN,W,8GACqC,MAA7BxqG,KAAK+mE,sBACL/mE,KAAK+mE,qBAAqB3iE,SAAQ,SAAA6J,GAAK,OAACA,EAAUivB,SAAU,KAE9B,MAA9Bl9B,KAAKuG,OAAOhE,eAAZ,OACAvC,KAAKoH,YAAcpH,KAAK+mE,qBAAqB5+D,QAAO,SAAA8F,GAAK,OAAAA,EAAE1L,iBAAmB,EAAKgE,OAAOhE,kBAC9E,GAAMvC,KAAK02B,YAAYygB,gBAAgBn3C,KAAKuG,OAAOhE,kB,cACpD,OADLwkC,EAAM,YAER/mC,KAAKuG,OAAOye,oBAAsB+hB,EAAIxP,S,aAG1Cv3B,KAAKoH,YAAc,G,mCAIrB,YAAAskG,cAAN,W,gGACI,OAAiC,MAA7B1rG,KAAK2rG,uBAIgB,MAArB3rG,KAAKuG,OAAOmC,OAA+C,MAA9B1I,KAAKuG,OAAOmC,MAAMoB,UAAmD,KAA/B9J,KAAKuG,OAAOmC,MAAMoB,UAHrF,KAOJ9J,KAAK2rG,qBAAuB3rG,KAAKs4B,aAAa2jB,eAAej8C,KAAKuG,OAAOmC,MAAMoB,UAC/D,GAAM9J,KAAK2rG,uB,cAArBtmB,EAAU,SAChBrlF,KAAK2rG,qBAAuB,KAExBtmB,EAAU,EACVrlF,KAAKsb,qBAAqBqR,UAAU,UAAW,KAC3C3sB,KAAKN,YAAYO,EAAE,kBAAmBolF,EAAQ54E,aAElDzM,KAAKsb,qBAAqBqR,UAAU,UAAW,KAAM3sB,KAAKN,YAAYO,EAAE,iB,YAIhE,YAAAu8C,gBAAhB,W,0FAC2B,SAAMx8C,KAAKu4B,kBAAkB4jB,mB,OACpD,MAAO,CAAP,EADuB,SACDh0C,QAAO,SAAA8F,GAAK,OAACA,EAAE2U,qBAG/B,YAAA65B,WAAV,WACI,OAAOz8C,KAAKo4B,cAAc55B,IAAIwB,KAAK20B,WAG7B,YAAAgoB,cAAV,WACI,OAAO38C,KAAKo4B,cAAcwP,QAAQ5nC,KAAKuG,SAGjC,YAAAq2C,WAAV,SAAqBr2C,GACjB,OAAOvG,KAAKo4B,cAAcuuD,eAAepgF,IAGnC,YAAAm2B,aAAV,WACI,OAAO18B,KAAKuG,OAAOk2B,UAAYz8B,KAAKo4B,cAAckF,iBAAiBt9B,KAAKuG,OAAO3G,IACzEI,KAAKo4B,cAAcmF,qBAAqBv9B,KAAKuG,OAAO3G,KAGpD,YAAAqrG,cAAV,WACI,OAAOjrG,KAAKo4B,cAAcyE,kBAAkB78B,KAAKuG,OAAO3G,K,iCAldnDs3B,GAAgB,ga,iCAAhBA,EAAgB,6a,EAD7B,GACa,EAAAA,oB,8EC/Cb,aAAS,EAAAoE,mBAAA,EAAAA,mBACT,aAAS,EAAAG,eAAA,EAAAA,eACT,aAAS,EAAA+lB,mBAAA,EAAAA,mBACT,aAAS,EAAAoqD,eAAA,EAAAA,eACT,aAAS,EAAA5pD,gBAAA,EAAAA,gBACT,aAAS,EAAAx1B,cAAA,EAAAA,cACT,aAAS,EAAAy1B,eAAA,EAAAA,eACT,aAAS,EAAAF,qBAAA,EAAAA,qBACT,aAAS,EAAAsjB,sBAAA,EAAAA,sBACT,aAAS,EAAAC,0BAAA,EAAAA,0BACT,aAAS,EAAAumC,aAAA,EAAAA,aACT,aAAS,EAAArmC,aAAA,EAAAA,aACT,aAAS,EAAA55B,4BAAA,EAAAA,4BACT,aAAS,EAAAC,gBAAA,EAAAA,gBACT,aAAS,EAAA+5B,aAAA,EAAAA,c,8ZCdT,IAEA,cAII,WAAYhlE,GAAZ,MACI,YAAMA,IAAS,K,OACf,EAAKkJ,SAAW,EAAKtI,oBAAoB,YACzC,EAAK8pB,aAAe,EAAK9pB,oBAAoB,gB,EAErD,OAT6C,OAS7C,EATA,CAFA,MAE6CU,cAAhC,EAAAs5B,2B,8ZCFb,IAIA,cAOI,WAAY56B,GAAZ,MACI,YAAMA,IAAS,K,OACf,EAAKhB,GAAK,EAAK4B,oBAAoB,MACnC,EAAKkG,KAAO,EAAKlG,oBAAoB,QACrC,EAAK0rC,WAAa,EAAK1rC,oBAAoB,cAC3C,EAAKW,KAAO,EAAKX,oBAAoB,QACrC,EAAK40E,aAAe,EAAK50E,oBAAoB,gB,EAErD,OAfoC,OAepC,EAfA,CAJA,MAIoCU,cAAvB,EAAA0pG,kB,8ZCJb,IAEA,cAII,WAAYhrG,GAAZ,MACI,YAAMA,IAAS,K,OACf,EAAK8hC,WAAa,EAAKlhC,oBAAoB,cAC3C,EAAKuuC,UAAY,EAAKvuC,oBAAoB,a,EAElD,OATkC,OASlC,EATA,CAFA,MAEkCU,cAArB,EAAA2pG,gB,68CCFb,W,GAOA,M,cAIA,aAwBI,WAAsBnwE,GAAA,KAAAA,gBAtBb,KAAAowE,eAAyB,KACxB,KAAAC,gBAAkB,IAAI,EAAA7oF,aACtB,KAAA8oF,qBAAuB,IAAI,EAAA9oF,aAC3B,KAAA+oF,YAAc,IAAI,EAAA/oF,aAClB,KAAAgpF,mBAAqB,IAAI,EAAAhpF,aAEnC,KAAAurB,QAAkB,EAClB,KAAA9kC,QAAwB,GACxB,KAAAwiG,aAA6B,GAE7B,KAAAngE,kBAA4B,KAC5B,KAAA7jC,OAA0C,KAC1C,KAAA06C,SAAmB,EAET,KAAAupD,eAAgB,EAChB,KAAAj+C,WAAY,EACZ,KAAAjyB,SAAW,IAEb,KAAAmwE,cAAqB,KACrB,KAAAC,kBAAoB,EACpB,KAAAC,YAAa,E,OAIf,YAAAtyF,KAAN,SAAW9R,EAAgD06C,G,YAAhD,IAAA16C,MAAA,WAAgD,IAAA06C,OAAA,G,mFAEvD,OADA7iD,KAAK6iD,QAAUA,IAAW,EAC1B,GAAM7iD,KAAKgjD,YAAY76C,I,cAAvB,SACAnI,KAAKyuC,QAAS,E,YAGlB,YAAA8f,SAAA,WACI,KAAIvuD,KAAK2J,QAAQxL,QAAU6B,KAAKk8B,UAAhC,CAGA,IAAMsyB,EAAcxuD,KAAKmsG,aAAahuG,OAClCuwD,EAAY1uD,KAAKk8B,SACjBl8B,KAAKusG,YAA8B,IAAhB/9C,GAAqBxuD,KAAKssG,kBAAoBtsG,KAAKk8B,WACtEwyB,EAAY1uD,KAAKssG,mBAEjBtsG,KAAK2J,QAAQxL,OAASqwD,IACtBxuD,KAAKmsG,aAAensG,KAAKmsG,aAAaz/E,OAAO1sB,KAAK2J,QAAQ1H,MAAMusD,EAAaA,EAAcE,KAE/F1uD,KAAKssG,kBAAoBtsG,KAAKmsG,aAAahuG,OAC3C6B,KAAKmuD,UAAYnuD,KAAKmsG,aAAahuG,OAAS6B,KAAKk8B,WAG/C,YAAAslC,OAAN,SAAar5D,EAAgD06C,G,YAAhD,IAAA16C,MAAA,WAAgD,IAAA06C,OAAA,G,mFAGzD,OAFA7iD,KAAKyuC,QAAS,EACdzuC,KAAK2J,QAAU,GACf,GAAM3J,KAAKia,KAAK9R,EAAQ06C,I,cAAxB,S,YAGE,YAAAlmB,QAAN,W,0FAGQ,O,sBADA38B,KAAKusG,YAAa,EAClB,GAAMvsG,KAAKwhE,OAAOxhE,KAAKmI,OAAQnI,KAAK6iD,U,cAApC,S,oBAEA7iD,KAAKusG,YAAa,E,6BAIpB,YAAAvpD,YAAN,SAAkB76C,G,YAAA,IAAAA,MAAA,M,mFAEd,OADAnI,KAAKmI,OAASA,EACd,GAAMnI,KAAKkJ,OAAO,O,cAAlB,S,YAGE,YAAAA,OAAN,SAAa0jB,EAAwB4/E,G,YAAxB,IAAA5/E,MAAA,M,yGACT5sB,KAAKosG,eAAgB,EACK,MAAtBpsG,KAAKqsG,eACLh7D,aAAarxC,KAAKqsG,eAEhBI,EAAiD,SAAAx+F,GAAK,OAAAA,EAAEwuB,YAAc,EAAKomB,SAClE,MAAXj2B,EAAA,OACA,EAAA5sB,KAAe,GAAMA,KAAK07B,cAAcgxE,cAAc1sG,KAAKuuB,WAAY,CAACvuB,KAAKmI,OAAQskG,GAAgBD,K,OACrG,OADA,EAAK7iG,QAAU,SACf,GAAM3J,KAAKsuD,e,OACX,OADA,SACA,I,cAEJtuD,KAAKosG,eAAgB,EACrBpsG,KAAKqsG,cAAgBtuF,YAAW,gD,wDACb,OAAf,EAAA/d,KAAe,GAAMA,KAAK07B,cAAcgxE,cAAc1sG,KAAKuuB,WAAY,CAACvuB,KAAKmI,OAAQskG,GAAgBD,I,OACrG,OADA,EAAK7iG,QAAU,SACf,GAAM3J,KAAKsuD,e,cAAX,SACAtuD,KAAKosG,eAAgB,E,aACtBx/E,G,YAGP,YAAAkK,aAAA,SAAavwB,GACTvG,KAAK+rG,gBAAgBl1F,KAAKtQ,IAG9B,YAAAomG,iBAAA,SAAiBpmG,GACbvG,KAAKgsG,qBAAqBn1F,KAAKtQ,IAGnC,YAAAo8D,UAAA,WACI3iE,KAAKisG,YAAYp1F,QAGrB,YAAA+1F,iBAAA,WACI5sG,KAAKksG,mBAAmBr1F,QAG5B,YAAAs4C,YAAA,WACI,OAAQnvD,KAAKosG,eAAiBpsG,KAAK07B,cAAc0zB,aAAapvD,KAAKuuB,aAGvE,YAAA8gC,SAAA,WACI,IAAMC,EAAYtvD,KAAKmvD,cAIvB,OAHIG,GAAatvD,KAAKmuD,WAClBnuD,KAAKsuD,eAEDgB,GAAatvD,KAAK2J,QAAQxL,OAAS6B,KAAKk8B,UAG9C,YAAAoyB,YAAN,W,0EACItuD,KAAKmsG,aAAe,GACpBnsG,KAAKuuD,W,4CApHA7wB,GAAgB,uC,iCAAhBA,EAAgB,qM,EAD7B,GACa,EAAAA,oB,68CCZb,W,GAQA,MACA,MACA,KACA,K,oCAOA,aAaI,WAAsBnF,EAAgDjd,EACxD5b,EAAoC04B,GAD5B,KAAAG,oBAAgD,KAAAjd,uBACxD,KAAA5b,cAAoC,KAAA04B,gBAXzC,KAAAytC,iBAAkB,EACjB,KAAAnD,mBAAqB,IAAI,EAAAx/C,aAKnC,KAAA9b,YAAgC,G,OAO1B,YAAAlG,SAAN,W,0FACI,SAAMlB,KAAKia,Q,cAAX,S,YAGE,YAAAA,KAAN,W,2GACwB,OAApB,EAAAja,KAAoB,GAAMA,KAAKy8C,c,OAEjB,OAFd,EAAK0mB,aAAe,SACpBnjE,KAAKulB,cAAgBvlB,KAAK8lE,wBAC1B,EAAA9lE,KAAc,GAAMA,KAAKmjE,aAAa3tD,W,OACnB,OADnB,EAAKjP,OAAS,SACd,EAAAvG,KAAmB,GAAMA,KAAKw8C,mB,cAA9B,EAAKp1C,YAAc,SAEnBpH,KAAKoH,YAAYhD,SAAQ,SAAA6J,GAAK,OAACA,EAAUivB,SAAU,KACzB,MAAtBl9B,KAAKulB,eACLvlB,KAAKoH,YAAYhD,SAAQ,SAAA6J,GACpBA,EAAUivB,QAAgC,MAAtB,EAAK3X,eAAyB,EAAKA,cAAcngB,QAAQ6I,EAAErO,KAAO,K,YAK7F,YAAAqoB,OAAN,W,gGAII,GAHM4kF,EAAwB7sG,KAAKoH,YAC9Be,QAAO,SAAA8F,GAAK,QAAGA,EAAUivB,WACzB51B,KAAI,SAAA2G,GAAK,OAAAA,EAAErO,OACXI,KAAK6lE,iBAAoD,IAAjCgnC,EAAsB1uG,OAG/C,OAFA6B,KAAKsb,qBAAqBqR,UAAU,QAAS3sB,KAAKN,YAAYO,EAAE,iBAC5DD,KAAKN,YAAYO,EAAE,wBACvB,IAEJD,KAAKmjE,aAAa59C,cAAgBsnF,E,iBAG9B,O,sBADA7sG,KAAKsoB,YAActoB,KAAK+lE,kBACxB,GAAM/lE,KAAKsoB,a,cAAX,SACAtoB,KAAK0iE,mBAAmB7rD,OACxB7W,KAAKsb,qBAAqBqR,UAAU,UAAW,KAAM3sB,KAAKN,YAAYO,EAAE,e,4DAItE,YAAAw8C,WAAV,WACI,OAAOz8C,KAAKo4B,cAAc55B,IAAIwB,KAAK20B,WAG7B,YAAAmxC,sBAAV,WACI,OAAO9lE,KAAKmjE,aAAa59C,eAGb,YAAAi3B,gBAAhB,W,qGAC2B,SAAMx8C,KAAKu4B,kBAAkB4jB,mB,OACpD,MAAO,CAAP,EADuB,SACDh0C,QAAO,SAAA8F,GAAK,OAACA,EAAE2U,UAAY3U,EAAE1L,iBAAmB,EAAKgE,OAAOhE,2BAG5E,YAAAwjE,gBAAV,WACI,OAAO/lE,KAAKo4B,cAAckwD,0BAA0BtoF,KAAKmjE,e,iCAjEpDlgB,GAAoB,+J,iCAApBA,EAAoB,mH,EADjC,GACa,EAAAA,wB,68CCnBb,WAOA,QAYA,GALA,MACA,MACA,MACA,KAEA,O,sCAEA,aAiCI,WAAsB1qB,EAAgDF,EACxDyT,EAA0CpV,GADlC,KAAA6B,oBAAgD,KAAAF,gBACxD,KAAAyT,iBAA0C,KAAApV,cAhC/C,KAAAo2E,aAAc,EACd,KAAAC,iBAAkB,EAClB,KAAAC,eAAgB,EAChB,KAAAC,WAAY,EAEX,KAAAC,aAAe,IAAI,EAAAhqF,aACnB,KAAAiqF,mBAAqB,IAAI,EAAAjqF,aACzB,KAAAkqF,eAAiB,IAAI,EAAAlqF,aACrB,KAAAmqF,oBAAsB,IAAI,EAAAnqF,aAC1B,KAAAoqF,gBAAkB,IAAI,EAAApqF,aACtB,KAAAqqF,YAAc,IAAI,EAAArqF,aAClB,KAAAsqF,aAAe,IAAI,EAAAtqF,aACnB,KAAAuqF,oBAAsB,IAAI,EAAAvqF,aAMpC,KAAAurB,QAAkB,EAClB,KAAAzS,WAAa,EAAApzB,WACb,KAAA24D,aAAuB,EACvB,KAAAsP,mBAA6B,EAC7B,KAAApP,eAAyB,EACzB,KAAAE,aAA2B,KAC3B,KAAAoP,gBAA0B,EAC1B,KAAAC,iBAA2B,KAC3B,KAAAnP,qBAA+B,K,OAQzB,YAAA5nD,KAAN,SAAWyzF,G,YAAA,IAAAA,OAAA,G,2FACQ,SAAM1tG,KAAK02B,YAAY2L,a,OAEX,OAFrBvb,EAAS,SACf9mB,KAAKiT,sBAAwB,EAAAf,iBAAiBe,sBAAwB,IAAM6T,EACjD,GAAM9mB,KAAK8rC,eAAettC,IAAcwB,KAAKiT,wB,OAOxE,OAPM06F,EAAqB,SAEvB3tG,KAAK2tG,mBADiB,MAAtBA,EAC0B,IAAIjrB,IAEJ,IAAIA,IAAIirB,GAGtC,GAAM3tG,KAAKyxE,e,OACX,OADA,SACA,GAAMzxE,KAAKw8C,mB,cAAX,SAEIkxD,IACA1tG,KAAKyuC,QAAS,G,YAIhB,YAAA+N,gBAAN,SAAsBj6C,G,kGAClB,OAAKvC,KAAK+sG,gBAGU,GAAM/sG,KAAKu4B,kBAAkB4jB,mBAF7C,I,OAQqB,OANnB/0C,EAAc,SAEhBpH,KAAKoH,YADa,MAAlB7E,EACmB6E,EAAYe,QAAO,SAAA8F,GAAK,OAAAA,EAAE1L,iBAAmBA,KAE7C6E,EAEvB,EAAApH,KAAyB,GAAMA,KAAKu4B,kBAAkB+qB,aAAatjD,KAAKoH,c,cAAxE,EAAKm8C,kBAAoB,S,YAGvB,YAAAkuB,YAAN,W,kGACI,OAAKzxE,KAAK8sG,aAGV,EAAA9sG,KAAe,GAAMA,KAAKq4B,cAAc8jB,oBAFpC,I,OAGiB,OADrB,EAAK90C,QAAU,SACf,EAAArH,KAAqB,GAAMA,KAAKq4B,cAAcirB,gB,cAA9C,EAAKsqD,cAAgB,S,YAGzB,YAAAzxE,UAAA,WACIn8B,KAAK6tG,kBACL7tG,KAAKuhE,aAAc,EACnBvhE,KAAKktG,aAAar2F,QAGtB,YAAAi3F,gBAAA,WACI9tG,KAAK6tG,kBACL7tG,KAAK6wE,mBAAoB,EACzB7wE,KAAKmtG,mBAAmBt2F,QAG5B,YAAAk3F,YAAA,WACI/tG,KAAK6tG,kBACL7tG,KAAKyhE,eAAgB,EACrBzhE,KAAKotG,eAAev2F,QAGxB,YAAAs1B,WAAA,SAAWhqC,GACPnC,KAAK6tG,kBACL7tG,KAAK2hE,aAAex/D,EACpBnC,KAAKqtG,oBAAoBx2F,KAAK1U,IAGlC,YAAA6rG,aAAA,SAAa7oD,GACTnlD,KAAK6tG,kBACL7tG,KAAK+wE,gBAAiB,EACtB/wE,KAAKgxE,iBAAmB7rB,EAAOvlD,GAC/BI,KAAKstG,gBAAgBz2F,KAAKsuC,IAG9B,YAAA17C,UAAA,WACIzJ,KAAKutG,YAAY12F,QAGrB,YAAA66D,WAAA,SAAWvsB,GACPnlD,KAAKwtG,aAAa32F,KAAKsuC,IAG3B,YAAA8oD,iBAAA,SAAiBzmG,GACbxH,KAAK6tG,kBACL7tG,KAAK6hE,qBAAuBr6D,EAAW5H,GACvCI,KAAKytG,oBAAoB52F,KAAKrP,IAGlC,YAAAqmG,gBAAA,WACI7tG,KAAKuhE,aAAc,EACnBvhE,KAAK6wE,mBAAoB,EACzB7wE,KAAKyhE,eAAgB,EACrBzhE,KAAK2hE,aAAe,KACpB3hE,KAAK+wE,gBAAiB,EACtB/wE,KAAKgxE,iBAAmB,KACxBhxE,KAAK6hE,qBAAuB,MAGhC,YAAAre,SAAA,SAASC,EAAuCyqD,GAC5C,QAD4C,IAAAA,MAAA,IACzB,MAAfzqD,EAAS7jD,GAAb,CAGA,IAAMA,EAAKsuG,EAAWzqD,EAAS7jD,GAC3BI,KAAK0jD,YAAYD,EAAUyqD,GAC3BluG,KAAK2tG,mBAAmBrxE,OAAO18B,GAE/BI,KAAK2tG,mBAAmB10D,IAAIr5C,GAEhCI,KAAK8rC,eAAe2c,KAAKzoD,KAAKiT,sBAAuBjT,KAAK2tG,sBAG9D,YAAAjqD,YAAA,SAAYD,EAAuCyqD,GAC/C,YAD+C,IAAAA,MAAA,IACxCluG,KAAK2tG,mBAAmBhuE,IAAIuuE,EAAWzqD,EAAS7jD,K,iCA/IlDssC,GAAkB,yJ,iCAAlBA,EAAkB,qZ,EAD/B,GACa,EAAAA,sB,yxDCtBb,aAIA,SAEA,QAEA,SACA,SAGA,cASI,WAAYxpB,EAA0BnO,QAAA,IAAAA,OAAA,GAAtC,MACI,cAAO,KACP,GAAW,MAAPmO,E,SAaJ,OATA,EAAKrO,iBAAiB,EAAMqO,EAAK,CAC7B9iB,GAAI,KACJ8H,KAAM,KACN26C,eAAgB,KAChBmlB,kBAAmB,MACpBjzD,EAAkB,CAAC,KAAM,iBAAkB,sBAE9C,EAAKpS,KAAOugB,EAAIvgB,KAER,EAAKA,MACT,KAAK,EAAA2lB,SAAS7e,KACV,EAAKgZ,KAAO,IAAI,EAAAgjC,SAASviC,EAAIT,KAAM1N,GACnC,MACJ,KAAK,EAAAuT,SAAS8yE,KACV,EAAK17C,KAAO,IAAI,EAAA8F,SAAStiC,EAAIw8B,KAAM3qC,G,SA2BnD,OAxDgC,OAoCtB,YAAAiB,QAAN,SAAc7W,G,oGAGV,OAFMgrB,EAAQ,IAAI,EAAAwkF,eAAenuG,MAEjC,GAAMA,KAAK8U,WAAW6U,EAAO,CACzBjiB,KAAM,MACP,KAAM/I,I,cAFT,SAIQqB,KAAKmC,M,KACJ,EAAA2lB,SAAS8yE,KAAT,Y,KAGA,EAAA9yE,SAAS7e,KAAT,Y,mBAFY,OAAb,EAAA0gB,EAAa,GAAM3pB,KAAKk/C,KAAK1pC,QAAQ7W,I,OACrC,OADA,EAAMugD,KAAO,SACb,M,OAEa,OAAb,EAAAv1B,EAAa,GAAM3pB,KAAKiiB,KAAKzM,QAAQ7W,I,OACrC,OADA,EAAMsjB,KAAO,SACb,M,OAEA,Y,OAGR,MAAO,CAAP,EAAO0H,WAEf,EAxDA,CAAgC,WAAnB,EAAA2+C,c,8ECRb,aACA,SAGA,EASI,SAAYh2B,GARZ,KAAA1yC,GAAa,KACb,KAAA8H,KAAe,KACf,KAAAvF,KAAiB,KACjB,KAAA8f,KAAO,IAAI,EAAAssB,aACX,KAAA2Q,KAAO,IAAI,EAAA7Q,aACX,KAAAgU,eAAuB,KACvB,KAAAmlB,kBAA4B,KAGnBl1B,IAILtyC,KAAKJ,GAAK0yC,EAAE1yC,GACZI,KAAKmC,KAAOmwC,EAAEnwC,KACdnC,KAAKqiD,eAAiB/P,EAAE+P,eACxBriD,KAAKwnE,kBAAoBl1B,EAAEk1B,oBAjBtB,EAAA2mC,kB,8ECRb,mBAAa,EAAAnmC,qB,68CCKb,aACA,SACA,S,6DAYA,aA0BI,WAAsBS,EAAoC/oE,EAC5C4b,EAAsD1B,EACtD+sC,EAA0BjrB,EAC1B/C,EAAwCjC,GAHhC,KAAA+xC,cAAoC,KAAA/oE,cAC5C,KAAA4b,uBAAsD,KAAA1B,qBACtD,KAAA+sC,SAA0B,KAAAjrB,gBAC1B,KAAA/C,gBAAwC,KAAAjC,cA3BtD,KAAAiyC,aAAc,EACd,KAAAvB,SAAW,EAAAt/C,SACX,KAAA2mB,QAAS,EACT,KAAA9tC,SAAU,EACV,KAAA4rG,YAAa,EACb,KAAA6B,SAAmB,EACnB,KAAAjsG,KAAiB,KACjB,KAAAsjE,MAAoB,GACpB,KAAA4oC,cAA4B,GAM5B,KAAAjC,eAAgB,EAChB,KAAAkC,aAAc,E,OAcR,YAAAptG,SAAN,W,kGACqB,SAAMlB,KAAK24B,cAAc+N,OAAO,EAAA3jB,WAAW+xC,c,OACtC,OADhBluB,EAAW,SACK,GAAM5mC,KAAK02B,YAAYmQ,uB,cAAvCwE,EAAgB,SACtBrrC,KAAK2oE,YAAct9B,EAAc1jB,MAAK,SAAAgkB,GAClC,OAAOA,EAAE7V,SACL6V,EAAE7rB,SAAW,EAAA+G,2BAA2BwmB,WACxC1B,EAAES,cACDT,EAAE+b,mBACH9gB,EAASjf,MAAK,SAAAvS,GAAK,OAAAA,EAAE7S,iBAAmBopC,EAAE/rC,IAAMwV,EAAE0gB,c,YAIxD,YAAA7b,KAAN,SAAW9R,G,YAAA,IAAAA,MAAA,M,yFAEO,OADdnI,KAAKW,SAAU,EACD,GAAMX,KAAKyoE,YAAYtsB,mB,cAA/BspB,EAAQ,SACdzlE,KAAKylE,MAAQA,EACgB,MAAzBzlE,KAAKuuG,iBAAL,MACA,GAAMvuG,KAAKuuG,oB,cAAX,S,aAGAvuG,KAAKm8B,Y,wBAETn8B,KAAKW,SAAU,EACfX,KAAKyuC,QAAS,E,YAGZ,YAAA+yB,OAAN,SAAar5D,G,YAAA,IAAAA,MAAA,M,mFAGT,OAFAnI,KAAKyuC,QAAS,EACdzuC,KAAKylE,MAAQ,GACb,GAAMzlE,KAAKia,KAAK9R,I,cAAhB,S,YAGE,YAAAw0B,QAAN,W,0FAGQ,O,sBADA38B,KAAKusG,YAAa,EAClB,GAAMvsG,KAAKwhE,OAAOxhE,KAAKmI,S,cAAvB,S,oBAEAnI,KAAKusG,YAAa,E,6BAIpB,YAAAvpD,YAAN,SAAkB76C,G,YAAA,IAAAA,MAAA,M,mFAEd,OADAnI,KAAKmI,OAASA,EACd,GAAMnI,KAAKkJ,OAAO,O,cAAlB,S,YAGE,YAAAA,OAAN,SAAa0jB,G,YAAA,IAAAA,MAAA,M,uEAKT,OAJA5sB,KAAKosG,eAAgB,EACK,MAAtBpsG,KAAKqsG,eACLh7D,aAAarxC,KAAKqsG,eAEP,MAAXz/E,GACA5sB,KAAKsuG,YAActuG,KAAK07B,cAAc0zB,aAAapvD,KAAKuuB,YACxDvuB,KAAKquG,cAAgBruG,KAAKylE,MAAMt9D,QAAO,SAAAmqC,GAAK,OAAe,MAAf,EAAKnqC,QAAkB,EAAKA,OAAOmqC,MAC/EtyC,KAAKwuG,kBACL,MAEJxuG,KAAKosG,eAAgB,EACrBpsG,KAAKqsG,cAAgBtuF,YAAW,gD,6CAC5B/d,KAAKsuG,YAActuG,KAAK07B,cAAc0zB,aAAapvD,KAAKuuB,YACxDvuB,KAAKquG,cAAgBruG,KAAKylE,MAAMt9D,QAAO,SAAAmqC,GAAK,OAAe,MAAf,EAAKnqC,QAAkB,EAAKA,OAAOmqC,MAC/EtyC,KAAKwuG,kBACLxuG,KAAKosG,eAAgB,E,YACtBx/E,G,YAGD,YAAA6hF,eAAN,SAAqBn8D,G,0FACjB,OAA0B,MAAtBtyC,KAAKu8B,eAAuC,MAAd+V,EAAExoC,SAChC,IAEc,GAAM9J,KAAKsb,qBAAqB+a,WAAWr2B,KAAKN,YAAYO,EAAE,8BAC5ED,KAAKN,YAAYO,EAAE,kBACnBD,KAAKN,YAAYO,EAAE,OAAQD,KAAKN,YAAYO,EAAE,MAAO,Y,OACzD,IAHkB,SAId,MAAO,CAAP,GAAO,G,iBAKP,O,sBADAD,KAAKu8B,cAAgBv8B,KAAKyoE,YAAYimC,yBAAyBp8D,EAAE1yC,IACjE,GAAMI,KAAKu8B,e,cAAX,SACuC,MAAnCv8B,KAAK2uG,2BAAL,OACA3uG,KAAK2uG,6B,cAIL,OADA3uG,KAAKsb,qBAAqBqR,UAAU,UAAW,KAAM3sB,KAAKN,YAAYO,EAAE,oBACxE,GAAMD,KAAKia,Q,OAAX,S,wEAGRja,KAAKu8B,cAAgB,K,YAGnB,YAAAD,OAAN,SAAagW,G,0FACT,OAA0B,MAAtBtyC,KAAKu8B,cACE,CAAP,GAAO,GAEO,GAAMv8B,KAAKsb,qBAAqB+a,WAC9Cr2B,KAAKN,YAAYO,EAAE,0BACnBD,KAAKN,YAAYO,EAAE,cACnBD,KAAKN,YAAYO,EAAE,OAAQD,KAAKN,YAAYO,EAAE,MAAO,Y,OACzD,IAJkB,SAKd,MAAO,CAAP,GAAO,G,iBAKP,O,sBADAD,KAAKu8B,cAAgBv8B,KAAKyoE,YAAYnrC,iBAAiBgV,EAAE1yC,IACzD,GAAMI,KAAKu8B,e,cAAX,SAE+B,MAA3Bv8B,KAAK4uG,mBAAL,OACA5uG,KAAK4uG,qB,cAIL,OADA5uG,KAAKsb,qBAAqBqR,UAAU,UAAW,KAAM3sB,KAAKN,YAAYO,EAAE,gBACxE,GAAMD,KAAK28B,W,OAAX,S,iEAIR,OADA38B,KAAKu8B,cAAgB,KACd,CAAP,GAAO,WAGX,YAAA9C,KAAA,SAAK6Y,GACD,IAAIu8D,EAAkB,+BAChB5c,EAAcjyF,KAAK4Z,mBAAmBo4E,iBACzB,MAAfC,IACA4c,EAAkB5c,EAAc,YAEpC,IAAM9oB,EAAO0lC,EAAkBv8D,EAAE4P,SAAW,IAAM5P,EAAEw8D,UACpD9uG,KAAKsb,qBAAqBse,gBAAgBuvC,GAC1CnpE,KAAKsb,qBAAqBqR,UAAU,UAAW,KAC3C3sB,KAAKN,YAAYO,EAAE,cAAeD,KAAKN,YAAYO,EAAE,eAG7D,YAAAgsC,kBAAA,WACIjsC,KAAKkJ,OAAO,MAGhB,YAAAizB,UAAA,WACIn8B,KAAK6tG,kBACL7tG,KAAKuhE,aAAc,EACnBvhE,KAAKgjD,YAAY,OAGrB,YAAA7W,WAAA,SAAWhqC,GACPnC,KAAK6tG,kBACL7tG,KAAK2hE,aAAex/D,EACpBnC,KAAKgjD,aAAY,SAAA1Q,GAAK,OAAAA,EAAEnwC,OAASA,MAGrC,YAAA0rG,gBAAA,WACI7tG,KAAKuhE,aAAc,EACnBvhE,KAAK2hE,aAAe,MAGhB,YAAA6sC,gBAAR,WAC2B,MAAnBxuG,KAAKuuB,aACLvuB,KAAKquG,cAAgBruG,KAAK07B,cAAcqzE,YAAY/uG,KAAKquG,cAAeruG,KAAKuuB,c,iCAzL5Ey6C,GAAa,yS,iCAAbA,I,EAAb,GAAa,EAAAA,iB,gqDCjBb,IAiCKgmC,EAjCL,OAOA,SACA,SACA,SAUA,SACA,SACA,S,qEAYA,SAAKA,GACD,0BACA,8BAFJ,CAAKA,MAAS,KAKd,iBAyCI,WAAsBtvG,EAAoC4b,EAC5C1B,EAAkDqvD,EAClDR,EAAoC/xC,EACpC9gB,EAA8C+iB,GAHtC,KAAAj5B,cAAoC,KAAA4b,uBAC5C,KAAA1B,qBAAkD,KAAAqvD,WAClD,KAAAR,cAAoC,KAAA/xC,cACpC,KAAA9gB,mBAA8C,KAAA+iB,gBAxClD,KAAAmwC,YAAc,IAAI,EAAA5lD,aAClB,KAAA6lD,cAAgB,IAAI,EAAA7lD,aACpB,KAAAqmF,YAAc,IAAI,EAAArmF,aAE5B,KAAA+rF,UAAW,EACX,KAAAtmC,aAAc,EACd,KAAAxQ,kBAAmB,EAKnB,KAAA9V,eAAyB,KAKzB,KAAA8hD,cAAe,EAGf,KAAA/8B,SAAW,EAAAt/C,SAIX,KAAAonF,mBAAqB,IACrB,KAAAC,qBAA+B,KAC/B,KAAA33E,kBAAmB,EACnB,KAAA8T,eAAgB,EAChB,KAAA8jE,YAAa,EACb,KAAA3zF,aAAc,EAaVzb,KAAKgqG,YAAc,CACf,CAAEtiG,KAAMhI,EAAYO,EAAE,gBAAiBvB,MAAO,EAAAopB,SAAS8yE,MACvD,CAAElzF,KAAMhI,EAAYO,EAAE,gBAAiBvB,MAAO,EAAAopB,SAAS7e,OAE3DjJ,KAAKqvG,oBAAsBrvG,KAAKsvG,sBAAwB,CACpD,CAAE5nG,KAAMhI,EAAYO,EAAE,WAAYvB,MAAO,GACzC,CAAEgJ,KAAMhI,EAAYO,EAAE,UAAWvB,MAAO,IACxC,CAAEgJ,KAAMhI,EAAYO,EAAE,OAAQ,KAAMvB,MAAO,IAC3C,CAAEgJ,KAAMhI,EAAYO,EAAE,OAAQ,KAAMvB,MAAO,IAC3C,CAAEgJ,KAAMhI,EAAYO,EAAE,OAAQ,KAAMvB,MAAO,KAC3C,CAAEgJ,KAAMhI,EAAYO,EAAE,OAAQ,MAAOvB,MAAO,KAC5C,CAAEgJ,KAAMhI,EAAYO,EAAE,UAAWvB,MAAO,IAE5CsB,KAAKsvG,sBAAwB,CACzB,CAAE5nG,KAAMhI,EAAYO,EAAE,SAAUvB,MAAO,OACzCguB,OAAO,EAAI1sB,KAAKqvG,sBAElB,IAAMpd,EAAcjyF,KAAK4Z,mBAAmBo4E,iBAExChyF,KAAK6uG,gBADU,MAAf5c,EACuB,+BAEAA,EAAc,W,OAI7C,sBAAI,mBAAI,C,IAAR,WACI,OAAoB,MAAhBjyF,KAAK8W,KAAKlX,IAAoC,MAAtBI,KAAK8W,KAAKorC,SAC3BliD,KAAK6uG,gBAAkB7uG,KAAK8W,KAAKorC,SAAW,IAAMliD,KAAK8W,KAAKg4F,UAEhE,M,gCAGX,sBAAI,uBAAQ,C,IAAZ,WACI,OAAO9uG,KAAKsb,qBAAqBi0F,Y,gCAGrC,sBAAI,uCAAwB,C,IAA5B,WACI,QAASvvG,KAAKsb,qBAAqBk0F,aAAexvG,KAAKsb,qBAAqBi0F,a,gCAG1E,YAAAruG,SAAN,W,0FACI,SAAMlB,KAAKia,Q,cAAX,S,YAGJ,sBAAI,uBAAQ,C,IAAZ,WACI,OAAsB,MAAfja,KAAKynE,Q,gCAGhB,sBAAI,oBAAK,C,IAAT,WACI,OAAOznE,KAAKN,YAAYO,EACpBD,KAAK65B,SACD,WACA,e,gCAIZ,sBAAI,yCAA0B,C,IAA9B,WACI,OAAO75B,KAAKyvG,sBAAsB,CAACzvG,KAAK0vG,uBAAwB1vG,KAAK2vG,yBAA2B,EAC5F,KACG3vG,KAAK4vG,oBAAoB5vG,KAAK0vG,wBAAuB,IAAI1vG,KAAK2vG,wB,gCAGzE,sBAAI,uCAAwB,C,IAA5B,WACI,OAAO3vG,KAAKyvG,sBAAsB,CAACzvG,KAAK6vG,qBAAsB7vG,KAAK8vG,uBAAyB,EACxF,KACG9vG,KAAK4vG,oBAAoB5vG,KAAK6vG,sBAAqB,IAAI7vG,KAAK8vG,sB,gCAGjE,YAAA71F,KAAN,W,kHACgC,SAAMja,KAAK24B,cAAc+N,OAAO,EAAA3jB,WAAW+xC,c,OACjD,OADhBi7C,EAAsB,SACN,GAAM/vG,KAAK02B,YAAYmQ,uB,OASjB,OATtBwE,EAAgB,SACtBrrC,KAAK2oE,YAAct9B,EAAc1jB,MAAK,SAAAgkB,GAClC,OAAOA,EAAE7V,SACL6V,EAAE7rB,SAAW,EAAA+G,2BAA2BwmB,WACxC1B,EAAES,cACDT,EAAE+b,mBACHqoD,EAAoBpoF,MAAK,SAAAvS,GAAK,OAAAA,EAAE7S,iBAAmBopC,EAAE/rC,IAAMwV,EAAE0gB,cAGzC,GAAM91B,KAAK24B,cAAc+N,OAAO,EAAA3jB,WAAWgyC,c,OAC/C,OADlBi7C,EAAsB,SAC5B,EAAAhwG,KAAwB,GAAMqrC,EAAc1jB,MAAK,SAAAgkB,GAC7C,OAAOA,EAAE7V,SACL6V,EAAE7rB,SAAW,EAAA+G,2BAA2BwmB,WACxC1B,EAAES,cACDT,EAAE+b,mBACHsoD,EAAoBroF,MAAK,SAAAvS,GAAK,OAAAA,EAAE7S,iBAAmBopC,EAAE/rC,IAAMwV,EAAE0gB,SAAW1gB,EAAEjS,KAAKg1D,wB,OAG/D,OARxB,EAAKA,iBAAmB,SAQxB,EAAAn4D,KAAwB,GAAMA,KAAK02B,YAAYc,oB,OAC1B,OADrB,EAAKA,iBAAmB,SACxB,EAAAx3B,KAAqB,GAAMA,KAAK02B,YAAYu4C,oB,cAA5C,EAAK3jC,cAAgB,SAChBtrC,KAAKw3B,kBAAqBx3B,KAAKsrC,gBAChCtrC,KAAKmC,KAAO,EAAA2lB,SAAS7e,MAGR,MAAbjJ,KAAK8W,KAAL,OACI9W,KAAK65B,SACQ,GAAM75B,KAAKiwG,YADxB,M,OAEY,OADNn5F,EAAO,SACb,EAAA9W,KAAY,GAAM8W,EAAKtB,W,cAAvB,EAAKsB,KAAO,S,cAEZ9W,KAAK8W,KAAO,IAAI,EAAAsyD,SAChBppE,KAAK8W,KAAK3U,KAAoB,MAAbnC,KAAKmC,KAAe,EAAA2lB,SAAS8yE,KAAO56F,KAAKmC,KAC1DnC,KAAK8W,KAAKooC,KAAO,IAAI,EAAA7Q,aACrBruC,KAAK8W,KAAKmL,KAAO,IAAI,EAAAssB,aACrBvuC,KAAK8W,KAAKwrC,aAAe,IAAIh5B,KAC7BtpB,KAAK8W,KAAKwrC,aAAapzB,QAAQlvB,KAAK8W,KAAKwrC,aAAarzB,UAAY,G,0BAI1EjvB,KAAKkwG,YAAoC,MAAtBlwG,KAAK8W,KAAKhN,UAAkD,KAA9B9J,KAAK8W,KAAKhN,SAAS/F,OAG/D/D,KAAKmwG,0BAmBNnwG,KAAKsiD,aAAetiD,KAAKowG,aAAapwG,KAAK8W,KAAKwrC,cAChDtiD,KAAKqiD,eAAiBriD,KAAKowG,aAAapwG,KAAK8W,KAAKurC,uBAlBxBzgD,KADpByuG,EAAoBrwG,KAAKswG,kBAAkBtwG,KAAK8W,KAAKwrC,gBACpB+tD,EAAkBlyG,OAAS,IAC9D6B,KAAK6vG,qBAAuBQ,EAAkB,GAC9CrwG,KAAK8vG,qBAAuBO,EAAkB,GAC1CrwG,KAAKuvG,WACLvvG,KAAKuwG,mBAAqBvwG,KAAK8vG,4BAKXluG,KADtB4uG,EAAsBxwG,KAAKswG,kBAAkBtwG,KAAK8W,KAAKurC,kBACpBmuD,EAAoBryG,OAAS,IAClE6B,KAAK0vG,uBAAyBc,EAAoB,GAClDxwG,KAAK2vG,uBAAyBa,EAAoB,GAC9CxwG,KAAKuvG,WACLvvG,KAAKywG,qBAAuBzwG,KAAK2vG,0BAQzC3vG,KAAKuvG,WACLvvG,KAAK0wG,0BAA4B1wG,KAAK2wG,kBAAkB3B,EAAU4B,cAClE5wG,KAAK6wG,4BAA8B7wG,KAAK2wG,kBAAkB3B,EAAU8B,iB,YAItE,YAAA7oF,OAAN,W,kHACI,IAAKjoB,KAAKmwG,yBAA0B,CAMhC,GALInwG,KAAKuvG,WACLvvG,KAAK2vG,uBAAkD,QAA5B,EAAG3vG,KAAKywG,4BAAoB,QAAIzwG,KAAK2vG,uBAChE3vG,KAAK8vG,qBAA8C,QAA1B,EAAG9vG,KAAKuwG,0BAAkB,QAAIvwG,KAAK8vG,sBAEhE9vG,KAAKsiD,aAAetiD,KAAK+wG,yBACc,MAAnC/wG,KAAKgxG,4BAAsCxhF,MAAMlG,KAAKplB,MAAMlE,KAAKgxG,6BAGjE,OAFAhxG,KAAKsb,qBAAqBqR,UAAU,QAAS3sB,KAAKN,YAAYO,EAAE,iBAC5DD,KAAKN,YAAYO,EAAE,4BACvB,IAEJ,GAAIuvB,MAAMlG,KAAKplB,MAAMlE,KAAK+wG,2BAGtB,OAFA/wG,KAAKsb,qBAAqBqR,UAAU,QAAS3sB,KAAKN,YAAYO,EAAE,iBAC5DD,KAAKN,YAAYO,EAAE,0BACvB,IAEJ,GAA+F,IAA3FD,KAAKyvG,sBAAsB,CAACzvG,KAAK0vG,uBAAwB1vG,KAAK2vG,yBAG9D,OAFA3vG,KAAKsb,qBAAqBqR,UAAU,QAAS3sB,KAAKN,YAAYO,EAAE,iBAC5DD,KAAKN,YAAYO,EAAE,kCACvB,KAEAD,KAAK65B,UAA0C,IAA9B75B,KAAKmvG,wBACtBnvG,KAAKqiD,eAAiBriD,KAAKgxG,4BAInC,GAAIhxG,KAAK2oE,YAGL,OAFA3oE,KAAKsb,qBAAqBqR,UAAU,QAAS3sB,KAAKN,YAAYO,EAAE,iBAC5DD,KAAKN,YAAYO,EAAE,wBAChB,CAAP,GAAO,GAGX,GAAsB,MAAlBD,KAAK8W,KAAKpP,MAAmC,KAAnB1H,KAAK8W,KAAKpP,KAGpC,OAFA1H,KAAKsb,qBAAqBqR,UAAU,QAAS3sB,KAAKN,YAAYO,EAAE,iBAC5DD,KAAKN,YAAYO,EAAE,iBAChB,CAAP,GAAO,GAIX,GADIi/C,EAAa,KACbl/C,KAAK8W,KAAK3U,OAAS,EAAA2lB,SAAS8yE,OAAS56F,KAAK65B,SAAU,CAGpD,GAFMyN,EAAS72B,SAAS82B,eAAe,QAE1B,OADPH,EAAQE,EAAOF,QACiB,IAAjBA,EAAMjpC,OAGvB,OAFA6B,KAAKsb,qBAAqBqR,UAAU,QAAS3sB,KAAKN,YAAYO,EAAE,iBAC5DD,KAAKN,YAAYO,EAAE,eACvB,IAIJ,GADAi/C,EAAO9X,EAAM,GACTA,EAAM,GAAGtoB,KAAO,SAGhB,OAFA9e,KAAKsb,qBAAqBqR,UAAU,QAAS3sB,KAAKN,YAAYO,EAAE,iBAC5DD,KAAKN,YAAYO,EAAE,gBACvB,IAsBQ,OAlBXD,KAAK65B,WACA+8D,EAAM,IAAIttE,KACZtpB,KAAKkvG,mBAAqB,KACpBrgF,EAAI,IAAIvF,MACZ2nF,SAASra,EAAIvhE,WAAar1B,KAAKkvG,oBACjClvG,KAAKsiD,aAAetiD,KAAKowG,aAAavhF,IAET,MAA7B7uB,KAAKmvG,sBAAgCnvG,KAAKmvG,qBAAuB,KAC3DtgF,EAAI,IAAIvF,MACZ2nF,SAASra,EAAIvhE,WAAar1B,KAAKmvG,sBACjCnvG,KAAKqiD,eAAiBriD,KAAKowG,aAAavhF,KAI3B,MAAjB7uB,KAAK8J,UAA6C,KAAzB9J,KAAK8J,SAAS/F,SACvC/D,KAAK8J,SAAW,MAGJ,GAAM9J,KAAKkxG,YAAYhyD,I,OAAjCiyD,EAAU,S,iBAGZ,O,sBADAnxG,KAAKsoB,YAActoB,KAAKyoE,YAAYke,eAAewqB,GACnD,GAAMnxG,KAAKsoB,a,OAaX,OAbA,SACoB,MAAhBtoB,KAAK8W,KAAKlX,KACVI,KAAK8W,KAAKlX,GAAKuxG,EAAQ,GAAGvxG,IAEJ,MAAtBI,KAAK8W,KAAKorC,WACVliD,KAAK8W,KAAKorC,SAAWivD,EAAQ,GAAGjvD,UAEpCliD,KAAKsb,qBAAqBqR,UAAU,UAAW,KAC3C3sB,KAAKN,YAAYO,EAAED,KAAK65B,SAAW,aAAe,gBACtD75B,KAAK8oE,YAAYjyD,KAAK7W,KAAK8W,MACvB9W,KAAKivG,UACLjvG,KAAKkpE,oBAAoBlpE,KAAKmpE,MAE3B,CAAP,GAAO,G,oCAGX,MAAO,CAAP,GAAO,WAGX,YAAAioC,gBAAA,WACIpxG,KAAKqiD,eAAiB,KACtBriD,KAAK0vG,uBAAyB,KAC9B1vG,KAAK2vG,uBAAyB,KAC9B3vG,KAAKywG,qBAAuB,MAGhC,YAAAvnC,oBAAA,SAAoBC,GACJ,MAARA,GACAnpE,KAAKsb,qBAAqBse,gBAAgBuvC,IAI5C,YAAA7sC,OAAN,W,0FACI,OAA0B,MAAtBt8B,KAAKiwD,cACE,CAAP,GAAO,GAEO,GAAMjwD,KAAKsb,qBAAqB+a,WAC9Cr2B,KAAKN,YAAYO,EAAE,0BACnBD,KAAKN,YAAYO,EAAE,cACnBD,KAAKN,YAAYO,EAAE,OAAQD,KAAKN,YAAYO,EAAE,MAAO,Y,OACzD,IAJkB,SAKd,MAAO,CAAP,GAAO,G,iBAKP,O,sBADAD,KAAKiwD,cAAgBjwD,KAAKyoE,YAAYnrC,iBAAiBt9B,KAAK8W,KAAKlX,IACjE,GAAMI,KAAKiwD,e,OAEX,OAFA,SACAjwD,KAAKsb,qBAAqBqR,UAAU,UAAW,KAAM3sB,KAAKN,YAAYO,EAAE,gBACxE,GAAMD,KAAKia,Q,OAEX,OAFA,SACAja,KAAK+oE,cAAclyD,KAAK7W,KAAK8W,MACtB,CAAP,GAAO,G,oCAGX,MAAO,CAAP,GAAO,WAGX,YAAAu6F,YAAA,WACQrxG,KAAK8W,KAAK3U,OAAS,EAAA2lB,SAAS8yE,MAAS56F,KAAKovG,aAErCpvG,KAAKw3B,iBAGEx3B,KAAKsrC,gBACbtrC,KAAKovG,YAAa,EAClBpvG,KAAK4V,iBAAiBkB,KAAK,+BAJ3B9W,KAAKovG,YAAa,EAClBpvG,KAAK4V,iBAAiBkB,KAAK,sBAQvC,YAAAw6F,cAAA,WACItxG,KAAKyb,aAAezb,KAAKyb,aAG7B,YAAA81F,8BAAA,W,QACIvxG,KAAKuvG,SACDvvG,KAAKywG,qBAAgD,QAA5B,EAAGzwG,KAAKywG,4BAAoB,QAAI,QACzDzwG,KAAK2vG,uBAAoD,QAA9B,EAAG3vG,KAAK2vG,8BAAsB,QAAI3vG,KAAKipE,SAAStpE,UAAU,IAAI2pB,KAAQ,UAGzF,YAAA2mF,SAAhB,W,mEACI,MAAO,CAAP,EAAOjwG,KAAKyoE,YAAYjqE,IAAIwB,KAAKynE,gBAGrB,YAAAypC,YAAhB,SAA4BhyD,G,gGACP,SAAMl/C,KAAKyoE,YAAY7gC,QAAQ5nC,KAAK8W,KAAMooC,EAAMl/C,KAAK8J,SAAU,O,OAA1E0nG,EAAW,SAGjB,IACIA,EAAS,GAAGlvD,aAAoC,MAArBtiD,KAAKsiD,aAAuB,KAAO,IAAIh5B,KAAKtpB,KAAKsiD,cAC9E,SACEkvD,EAAS,GAAGlvD,aAAe,KAE/B,IACIkvD,EAAS,GAAGnvD,eAAwC,MAAvBriD,KAAKqiD,eAAyB,KAAO,IAAI/4B,KAAKtpB,KAAKqiD,gBAClF,SACEmvD,EAAS,GAAGnvD,eAAiB,KAGjC,MAAO,CAAP,EAAOmvD,WAGD,YAAApB,aAAV,SAAuBvhF,GACnB,OAAY,MAALA,EAAY,KAAO7uB,KAAKipE,SAAStpE,UAAUkvB,EAAG,qBAG/C,YAAA+gF,oBAAV,SAA8B6B,GAC1B,IAMI,OAHKzxG,KAAKuvG,WACNkC,GAAc,UAEXzxG,KAAKipE,SAAStpE,UAAU,IAAI2pB,KAAKmoF,GAAa,cACvD,SAEEzxG,KAAKsb,qBAAqBqR,UAAU,QAAS3sB,KAAKN,YAAYO,EAAE,iBAC5DD,KAAKN,YAAYO,EAAE,uBAIrB,YAAAqwG,kBAAV,SAA4BzhF,GACxB,GAAS,MAALA,EAKA,MAAO,CAJO7uB,KAAKuvG,SAEfvvG,KAAKipE,SAAStpE,UAAUkvB,EAAG,cAD3B7uB,KAAKipE,SAAStpE,UAAUkvB,EAAG,cAElB7uB,KAAKipE,SAAStpE,UAAUkvB,EAAG,WAKtC,YAAA6iF,sBAAV,WACI1xG,KAAKmkG,cAAgBnkG,KAAKmkG,aAC1B1zF,SAAS82B,eAAe,YAAYx1B,SAG9B,YAAA09F,sBAAV,SAAgCkC,GAC5B,OAAOA,EAASxpG,QAAO,SAAAtC,GAAO,OAAO,MAAPA,GAA8B,KAAfA,EAAI9B,UAAe5F,QAG1D,YAAAwyG,kBAAV,SAA4BxnG,GAWxB,IATA,IAAMyoG,EAAqB,GACrBC,EAAyB,GACzBC,EAAoB,GACpBC,EAAoB,GAMjBx2E,EAAI,EAAGA,GAAK,GAAIA,IAErB,IAAK,IAAIy2E,EAAI,EAAGA,EAAI,GAAIA,GALF,GAK0B,CAE5C,IAAIC,EAAO12E,EAAE9uB,WACTivF,EAAUsW,EAAEvlG,WAWhB,GARI8uB,EAAI,KACJ02E,EAAO,IAAMA,GAEbD,EAAI,KACJtW,EAAU,IAAMA,GAIV,KAANngE,EAAU,CACV,IAAM22E,EAA6B,CAC/BC,SAAaF,EAAI,IAAIvW,EAAO,MAC5B0W,SAAU,MAAM1W,GAEpBmW,EAAS1sG,KAAK+sG,GAEd,IAAMG,EAAyB,CAC3BF,SAAaF,EAAI,IAAIvW,EAAO,MAC5B0W,SAAaH,EAAI,IAAIvW,GAEzBkW,EAAKzsG,KAAKktG,OACP,CACH,IAAMC,EAAuB,CACzBH,SAAaF,EAAI,IAAIvW,EAAO,MAC5B0W,SAAaH,EAAI,IAAIvW,GAEzBoW,EAAI3sG,KAAKmtG,GAET,IAAMC,EAAuB,CACzBJ,SAAaF,EAAI,IAAIvW,EAAO,MAC5B0W,SAAa72E,EAAI,GAAE,IAAImgE,GAE3BqW,EAAI5sG,KAAKotG,IAMrB,IAAMC,EAAa,EAAIX,EAAaC,EAAQF,EAASG,GAIrD,GAAI5oG,IAAU6lG,EAAU8B,gBAAqD,MAAnC9wG,KAAKgxG,4BAAsChxG,KAAK65B,SAAU,CAChG,IAAM44E,EAA4B,CAC9BN,SAAUnyG,KAAKipE,SAAStpE,UAAUK,KAAKgxG,2BAA4B,WACnEoB,SAAUpyG,KAAKipE,SAAStpE,UAAUK,KAAKgxG,2BAA4B,UAEvE,OAAO,EAAP,CAAQyB,EAAe,CAAEN,SAAU,KAAMC,SAAU,OAAWI,GAC3D,GAAIrpG,IAAU6lG,EAAU4B,cAAiD,MAAjC5wG,KAAK+wG,0BAAoC/wG,KAAK65B,SAAU,CAC7F44E,EAA4B,CAC9BN,SAAUnyG,KAAKipE,SAAStpE,UAAUK,KAAK+wG,yBAA0B,WACjEqB,SAAUpyG,KAAKipE,SAAStpE,UAAUK,KAAK+wG,yBAA0B,UAErE,OAAO,EAAP,CAAQ0B,GAAkBD,GAE1B,OAAO,EAAP,CAAQ,CAAEL,SAAU,KAAMC,SAAU,OAAWI,I,iCA3d9Ct7E,GAAgB,8S,iCAAhBA,EAAgB,mI,EAA7B,GAAa,EAAAA,oB,8ECxCb,MAKI,SAAYxvB,EAAc6jC,GAF1B,KAAAC,QAAU,QAGNxrC,KAAK0H,KAAOA,EACZ1H,KAAKurC,mBAAqBA,GAA0C,MAP/D,EAAA2+B,wB,8ZCAb,IAEA,2B,+CAIA,OAJkC,OAIlC,EAJA,CAFA,OAEkCK,mBAArB,EAAAE,gB,8ZCFb,IAIA,2B,+CAGA,OAHgC,OAGhC,EAHA,CAJA,OAIgCU,iBAAnB,EAAA0B,c,8ECJb,mBAAa,EAAAW,wB,68CCAb,W,GAQA,KACA,MACA,K,4BAIA,aAWI,WAAsB/0C,EACRnd,EAAsD5b,EACxDsQ,GAFU,KAAAyoB,4BACR,KAAAnd,uBAAsD,KAAA5b,cACxD,KAAAsQ,MAXH,KAAA0iG,YAAsB,EACrB,KAAAC,WAAa,IAAI,EAAAzvF,aAE3B,KAAAxf,QAAe,GACf,KAAAoG,SAAmB,IACnB,KAAA2R,aAAc,EACd,KAAAm3F,gBAAiB,E,OAOX,YAAA1xG,SAAN,W,kGAC4B,SAAMlB,KAAKy4B,0BAA0BwB,c,OAK7C,OALV44E,EAAkB,SACxB7yG,KAAK0D,QAAUmvG,EAAgB,GAC/B7yG,KAAKowC,sBAAwByiE,EAAgB,GAC7C7yG,KAAK4yG,gBAAkB5yG,KAAK0D,QAAQ6wF,UACpCv0F,KAAK0D,QAAQvB,KAA6B,eAAtBnC,KAAK0D,QAAQvB,KAAwB,aAAe,WACxE,EAAAnC,KAAgB,GAAMA,KAAKy4B,0BAA0BsB,iBAAiB/5B,KAAK0D,U,OAC3E,OADA,EAAKoG,SAAW,SAChB,GAAM9J,KAAKy4B,0BAA0B+9D,WAAWx2F,KAAK8J,W,cAArD,S,YAGE,YAAAgpG,cAAN,W,0FAEI,OADA9yG,KAAKqwE,aAAY,GACjB,GAAMrwE,KAAKy4B,0BAA0B+9D,WAAWx2F,KAAK8J,W,cAArD,S,YAGE,YAAAipG,YAAN,W,gGAEoB,OADhB/yG,KAAKm3F,mBACL,EAAAn3F,KAAgB,GAAMA,KAAKy4B,0BAA0BsB,iBAAiB/5B,KAAK0D,U,cAA3E,EAAKoG,SAAW,S,YAGd,YAAAumE,YAAN,SAAkBC,G,YAAA,IAAAA,OAAA,G,mFAEd,OADAtwE,KAAKm3F,mBACL,GAAMn3F,KAAKy4B,0BAA0B43C,YAAYrwE,KAAK0D,U,cAAtD,SAEI4sE,EACA,GAAMtwE,KAAKswE,cADX,M,OACA,S,mCAIF,YAAAA,WAAN,W,gGACoB,OAAhB,EAAAtwE,KAAgB,GAAMA,KAAKy4B,0BAA0BsB,iBAAiB/5B,KAAK0D,U,OAC3E,OADA,EAAKoG,SAAW,SAChB,GAAM9J,KAAKy4B,0BAA0B+9D,WAAWx2F,KAAK8J,W,cAArD,S,YAGJ,YAAA2vB,KAAA,WACI,IAAMu5E,EAA0B,MAAZhzG,KAAKgQ,IAAc,CAAEvF,OAAQzK,KAAKgQ,KAAQ,KAC9DhQ,KAAKsb,qBAAqBse,gBAAgB55B,KAAK8J,SAAUkpG,GACzDhzG,KAAKsb,qBAAqBqR,UAAU,OAAQ,KACxC3sB,KAAKN,YAAYO,EAAE,cAAeD,KAAKN,YAAYO,EAAE,eAG7D,YAAA88B,OAAA,WACI/8B,KAAK2yG,WAAW97F,KAAK7W,KAAK8J,WAG9B,YAAAwnG,cAAA,WACItxG,KAAKyb,aAAezb,KAAKyb,aAGrB,YAAA07E,iBAAR,WAII,GAFAn3F,KAAK0D,QAAQ6wF,WAAav0F,KAAK4yG,iBAE1B5yG,KAAK0D,QAAQ0oD,WAAcpsD,KAAK0D,QAAQ2oD,WAAcrsD,KAAK0D,QAAQoU,QAAW9X,KAAK0D,QAAQ6oD,WAC5FvsD,KAAK0D,QAAQ2oD,WAAY,EACT,MAAZrsD,KAAKgQ,KAAa,CAClB,IAAMq8C,EAAYrsD,KAAKgQ,IAAIS,SAASlN,cAAc,cAC9C8oD,IACAA,EAAUnvB,SAAU,GAKhCl9B,KAAKy4B,0BAA0B0+D,iBAAiBn3F,KAAK0D,QAAS1D,KAAKowC,wB,iCA7E9DggC,GAA0B,oJAYlBxL,U,iCAZRwL,EAA0B,qE,EADvC,GACa,EAAAA,8B,8+CCPb,aAGI,WAAsB33C,EACRnd,EAAsD5b,EACxDsQ,GAFU,KAAAyoB,4BACR,KAAAnd,uBAAsD,KAAA5b,cACxD,KAAAsQ,MAJZ,KAAA8/D,QAAsC,G,OAMhC,YAAA5uE,SAAN,W,gGACmB,OAAf,EAAAlB,KAAe,GAAMA,KAAKy4B,0BAA0B49D,c,cAApD,EAAKvmB,QAAU,S,YAGnB,YAAA34D,MAAA,WACInX,KAAK8vE,QAAU,GACf9vE,KAAKy4B,0BAA0BthB,SAGnC,YAAAsiB,KAAA,SAAK3vB,GACD,IAAMkpG,EAA0B,MAAZhzG,KAAKgQ,IAAc,CAAEvF,OAAQzK,KAAKgQ,KAAQ,KAC9DhQ,KAAKsb,qBAAqBse,gBAAgB9vB,EAAUkpG,GACpDhzG,KAAKsb,qBAAqBqR,UAAU,OAAQ,KACxC3sB,KAAKN,YAAYO,EAAE,cAAeD,KAAKN,YAAYO,EAAE,e,iCApBpD+vE,GAAiC,oJAKzBpL,U,iCALRoL,I,EAAb,GAAa,EAAAA,qC,68CCRb,WAYA,GAJA,MACA,KACA,KAEA,Q,6BAEA,aAYI,WAAsB33C,EAAwC34B,EAChD4b,GADQ,KAAA+c,gBAAwC,KAAA34B,cAChD,KAAA4b,uBAVJ,KAAAk2D,cAAgB,IAAI,EAAAtuD,aACpB,KAAAyuD,gBAAkB,IAAI,EAAAzuD,aAEhC,KAAA2W,UAAoB,EACpB,KAAAsrB,OAAqB,IAAI,EAAAz7C,W,OAQnB,YAAAxI,SAAN,W,0FACI,SAAMlB,KAAK0K,Q,cAAX,S,YAGE,YAAAud,OAAN,W,gGACI,GAAwB,MAApBjoB,KAAKmlD,OAAOz9C,MAAqC,KAArB1H,KAAKmlD,OAAOz9C,KAGxC,OAFA1H,KAAKsb,qBAAqBqR,UAAU,QAAS3sB,KAAKN,YAAYO,EAAE,iBAC5DD,KAAKN,YAAYO,EAAE,iBAChB,CAAP,GAAO,G,iBAIQ,O,sBAAA,GAAMD,KAAKq4B,cAAcuP,QAAQ5nC,KAAKmlD,S,OAErD,OAFMA,EAAS,SACfnlD,KAAKsoB,YAActoB,KAAKq4B,cAAcsuD,eAAexhC,GACrD,GAAMnlD,KAAKsoB,a,OAIX,OAJA,SACAtoB,KAAKsb,qBAAqBqR,UAAU,UAAW,KAC3C3sB,KAAKN,YAAYO,EAAED,KAAK65B,SAAW,eAAiB,gBACxD75B,KAAKwxE,cAAc36D,KAAK7W,KAAKmlD,QACtB,CAAP,GAAO,G,oCAGX,MAAO,CAAP,GAAO,WAGL,YAAA7oB,OAAN,W,0FACsB,SAAMt8B,KAAKsb,qBAAqB+a,WAC9Cr2B,KAAKN,YAAYO,EAAE,4BAA6BD,KAAKN,YAAYO,EAAE,gBACnED,KAAKN,YAAYO,EAAE,OAAQD,KAAKN,YAAYO,EAAE,MAAO,Y,OACzD,IAHkB,SAId,MAAO,CAAP,GAAO,G,iBAKP,O,sBADAD,KAAKiwD,cAAgBjwD,KAAKq4B,cAAciF,iBAAiBt9B,KAAKmlD,OAAOvlD,IACrE,GAAMI,KAAKiwD,e,cAAX,SACAjwD,KAAKsb,qBAAqBqR,UAAU,UAAW,KAAM3sB,KAAKN,YAAYO,EAAE,kBACxED,KAAK2xE,gBAAgB96D,KAAK7W,KAAKmlD,Q,0CAGnC,MAAO,CAAP,GAAO,WAGK,YAAAz6C,KAAhB,W,yGACI1K,KAAK65B,SAA4B,MAAjB75B,KAAK+kB,SAEjB/kB,KAAK65B,UACL75B,KAAK65B,UAAW,EAChB75B,KAAKiB,MAAQjB,KAAKN,YAAYO,EAAE,cACjB,GAAMD,KAAKq4B,cAAc75B,IAAIwB,KAAK+kB,YAHjD,M,OAIc,OADRogC,EAAS,SACf,EAAAnlD,KAAc,GAAMmlD,EAAO3vC,W,cAA3B,EAAK2vC,OAAS,S,aAEdnlD,KAAKiB,MAAQjB,KAAKN,YAAYO,EAAE,a,oEAjE/BsxE,GAAsB,sH,iCAAtBA,EAAsB,yG,EADnC,GACa,EAAAA,0B,68CCfb,WAQA,SAYA,GAVA,MACA,MACA,KACA,KACA,KAMA,O,4CAEA,aAaI,WAAsBh5C,EAAgDjd,EACxD5b,EAAoCg3B,EACpC0B,GAFQ,KAAAG,oBAAgD,KAAAjd,uBACxD,KAAA5b,cAAoC,KAAAg3B,cACpC,KAAA0B,gBAXJ,KAAAi5C,eAAiB,IAAI,EAAAnuD,aAI/B,KAAA9b,YAAgC,GAChC,KAAAikC,cAAgC,GAEtB,KAAA07B,qBAAyC,G,OAM7C,YAAA7lE,SAAN,W,0FACI,SAAMlB,KAAKia,Q,cAAX,S,YAGE,YAAAA,KAAN,W,sGAC2B,SAAMja,KAAKu4B,kBAAkB4jB,mB,OAEvC,OAFP6qB,EAAiB,SACvBhnE,KAAK+mE,qBAAuBC,EAAe1/D,KAAI,SAAA2G,GAAK,OAAAA,KAAG9F,QAAO,SAAA8F,GAAK,OAACA,EAAE2U,YACzD,GAAM5iB,KAAK02B,YAAYmQ,uB,OAIf,OAJfC,EAAO,SACb9mC,KAAKqrC,cAAgBvE,EAAKhJ,KAAK,EAAAr4B,MAAM4J,gBAAgBrP,KAAKN,YAAa,SAClEyI,QAAO,SAAAwjC,GAAK,OAAAA,EAAE7V,SAAW6V,EAAE7rB,SAAW,EAAA+G,2BAA2BwmB,aAEjD,GAAMrtC,KAAKo4B,cAAc55B,IAAIwB,KAAK20B,W,OACzC,OADRwuC,EAAe,SACrB,EAAAnjE,KAAc,GAAMmjE,EAAa3tD,W,cAAjC,EAAKjP,OAAS,SACa,MAAvBvG,KAAKuC,gBAA0BvC,KAAKqrC,cAAcltC,OAAS,IAC3D6B,KAAKuC,eAAiBvC,KAAKqrC,cAAc,GAAGzrC,IAEhDI,KAAKinE,oB,YAGT,YAAAA,kBAAA,sBACIjnE,KAAK+mE,qBAAqB3iE,SAAQ,SAAA6J,GAAK,OAACA,EAAUivB,SAAU,KACjC,MAAvBl9B,KAAKuC,gBAA+D,IAArCvC,KAAK+mE,qBAAqB5oE,OACzD6B,KAAKoH,YAAc,GAEnBpH,KAAKoH,YAAcpH,KAAK+mE,qBAAqB5+D,QAAO,SAAA8F,GAAK,OAAAA,EAAE1L,iBAAmB,EAAKA,mBAIrF,YAAA0lB,OAAN,W,yGAII,OAAqC,KAH/B4kF,EAAwB7sG,KAAKoH,YAC9Be,QAAO,SAAA8F,GAAK,QAAGA,EAAUivB,WACzB51B,KAAI,SAAA2G,GAAK,OAAAA,EAAErO,OACUzB,QACtB6B,KAAKsb,qBAAqBqR,UAAU,QAAS3sB,KAAKN,YAAYO,EAAE,iBAC5DD,KAAKN,YAAYO,EAAE,wBACvB,KAGiB,GAAMD,KAAKo4B,cAAc55B,IAAIwB,KAAK20B,W,OACpC,SADE,SACiBnf,W,OAAhCy9F,EAAa,S,iBAQf,O,sBALAjzG,KAAKsoB,YAActoB,KAAKo4B,cAAcyuD,gBAAgBosB,EAAYjzG,KAAKuC,eACnEsqG,GAAuBpsG,MAAK,gD,kCACxBT,KAAKqxE,eAAex6D,OACpB7W,KAAKsb,qBAAqBqR,UAAU,UAAW,KAAM3sB,KAAKN,YAAYO,EAAE,e,aAEhF,GAAMD,KAAKsoB,a,OACX,OADA,SACO,CAAP,GAAO,G,oCAEX,MAAO,CAAP,GAAO,WAGX,sBAAI,sBAAO,C,IAAX,WACI,GAAwB,MAApBtoB,KAAKoH,YACL,IAAK,IAAInJ,EAAI,EAAGA,EAAI+B,KAAKoH,YAAYjJ,OAAQF,IACzC,GAAK+B,KAAKoH,YAAYnJ,GAAWi/B,QAC7B,OAAO,EAInB,OAAO,G,iEA7EFk0C,GAAc,kM,iCAAdA,EAAc,yG,EAD3B,GACa,EAAAA,kB,8ECvBb,aAAS,EAAAhqD,eAAA,EAAAA,eACT,aAAS,EAAAH,SAAA,EAAAA,SACT,aAAS,EAAAM,WAAA,EAAAA,WACT,aAAS,EAAAX,eAAA,EAAAA,eACT,aAAS,EAAAO,UAAA,EAAAA,UACT,aAAS,EAAA8+B,WAAA,EAAAA,WACT,aAAS,EAAA/+B,aAAA,EAAAA,aACT,aAAS,EAAAH,UAAA,EAAAA,UACT,aAAS,EAAAijB,aAAA,EAAAA,aACT,aAAS,EAAAhjB,eAAA,EAAAA,gB,8ECTT,aAAS,EAAAuC,WAAA,EAAAA,WACT,aAAS,EAAAkY,WAAA,EAAAA,WACT,aAAS,EAAAtnB,KAAA,EAAAA,KACT,aAAS,EAAAwQ,OAAA,EAAAA,OACT,aAAS,EAAAjW,UAAA,EAAAA,UACT,aAAS,EAAAoO,WAAA,EAAAA,WACT,aAAS,EAAAqxD,gBAAA,EAAAA,gBACT,aAAS,EAAAC,gBAAA,EAAAA,gBACT,aAAS,EAAA5qD,MAAA,EAAAA,MACT,aAAS,EAAA08B,OAAA,EAAAA,OACT,aAAS,EAAA9rC,SAAA,EAAAA,SACT,aAAS,EAAAvR,MAAA,EAAAA,MACT,aAAS,EAAAghC,SAAA,EAAAA,SACT,aAAS,EAAAwqC,yBAAA,EAAAA,yBACT,aAAS,EAAArqE,WAAA,EAAAA,WACT,aAAS,EAAA4/B,mBAAA,EAAAA,oB,8ECfT,mBAAa,EAAAqsC,iC,8ECEb,mBAAa,EAAAW,gC,8ECFb,mBAAa,EAAAM,kC,88CCAb,WAMA,OAEA,SACA,SACA,SACA,SACA,SAEA,SACA,SACA,SACA,SAEA,SACA,SACA,SACA,SACA,SAEA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,UACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UAEA,OAEA,QACA,QACA,QACA,SACA,SACA,UACA,SACA,SACA,UACA,WACA,SACA,QACA,UAEA,SACA,UACA,SAGA,QACA,SACA,SACA,UACA,UACA,SACA,SACA,SACA,UACA,UACA,QACA,S,QAEMx3E,GAAc,IAAI,EAAAJ,YAAYmL,OAAOyF,UAAUgjG,SAAU,WACzDr5F,GAAe,IAAI,EAAA5I,aACnBy1C,GAAqB,IAAI,EAAAhsC,mBACzB9E,GAAmB,IAAI,EAAAu9F,4BAA4BzsD,IACnDprC,GAAuB,IAAI,EAAA83F,wBAAwB1zG,GAAakW,IAChEk2B,GAA4C,IAAI,EAAAunE,mBAAmB/3F,IACnEqwE,GAAkD,IAAI,EAAA2nB,qBACtD1yF,GAA0D,IAAI,EAAA2yF,yBAAyB9oG,OACzF6Q,IACEk4F,GAAoB,IAAI,EAAA/wG,mBAAkB,GAC1C8W,GAAgB,IAAI,EAAAjY,cAAcwqC,GACpCxwB,GAAqB4B,QAAU4uB,GAAiB6/C,GAAsB/qE,GAAuBtF,GAC7Fk4F,IACEx1E,GAAe,IAAI,EAAA3lB,aAAayzB,IAChC7N,GAAe,IAAI,EAAA03B,aAAa7pB,IAChCvwB,GAAa,IAAI,EAAA/b,WAAWw+B,GAAc1iB,IAC5C,SAAO8yF,GAAgB,qEAAK,SAAAx4F,GAAiBkB,KAAK,SAAU,CAAEs3F,QAASA,cACrE13E,GAAc,IAAI,EAAAj3B,YAAYu+B,GAAc8N,IAC5C62C,GAAkB,IAAI,EAAAz/C,gBAAgBxM,GAAaoV,IAC9C,EAAApQ,cAA+B,KAC1C,IAAMknD,GAAoB,IAAI,EAAA6wB,kBAAkBD,GAAmBj4F,IAC7D6c,GAAgB,IAAI,EAAA72B,cAAcgY,GAAemd,GAAaisD,GAChEpnE,GAAYqnE,GAAmB92C,GAAgBpsC,IAAa,WAAM,SAAAg8B,iBAChErD,GAAgB,IAAI,EAAA7mB,cAAc+H,GAAemd,GAAanb,GAAYuwB,GAC5EpsC,GAAa04B,IACXG,GAAoB,IAAI,EAAArnB,kBAAkBqI,GAAemd,GAAaoV,GAAgBpsC,IAC5F,EAAAg8B,cAAgB,IAAI,EAAAtnB,cAAcgkB,GAAeo7E,GAAmB9zG,IACpE,IAAMi5B,GAAgB,IAAI,EAAAvnB,cAAcslB,GAAaoV,IAC/C28B,GAAc,IAAI,EAAA79C,YAAYrR,GAAemd,GAAanb,GAAYqnE,GAAmB92C,GAC3FpsC,GAAakhB,IACXsd,GAAsB,IAAI,EAAA/lB,oBAAoBigB,GAAeC,GAAeE,GAC9Ehf,GAAe+B,GAAsBwwB,GAAgBl2B,GAAkB,EAAA8lB,cAAehF,GAAasH,GACnG,MAAM,gFAAY,SAAApoB,GAAiBkB,KAAK,SAAU,CAAEs3F,SAAS,cAC3DhrE,GAAc,IAAI,EAAAxxB,YAAY8kB,GAAanb,GAAYonE,GACzDtqD,GAAeD,GAAe7e,GAAegf,GAAmBuT,GAAgBl2B,GAAkB+iB,GAClG8vC,IAAa,SAAO2lC,GAAgB,qEAAK,SAAAx4F,GAAiBkB,KAAK,SAAU,CAAEs3F,QAASA,cAClF31E,GAA4B,IAAI,EAAA7nB,0BAA0B2I,GAAeuyB,GAAgBnT,IACzFH,GAAc,IAAI,EAAA5d,YAAYkxB,GAAgBlrB,IAC9CvH,GAAmB,IAAI,EAAAqyE,iBAAiBnyE,IACxC+vC,GAAc,IAAI,EAAA33C,YAAY4H,GAAegC,GAC/Cmb,GAAasH,GAAcC,GAAcv+B,GAAa4b,GAAsB1F,GAAkBsoB,GAC9Fs1E,IACE93D,GAAgB,IAAI,EAAAryB,cAAcgP,GAAeD,GAAe7c,IAChEgiC,GAAgB,IAAI,EAAAliB,cAAcjD,GAAeC,GAAe9c,GAAY7b,GAAa64B,GAC3Fjd,IACEy2E,GAAuB,IAAI,EAAA5rC,qBAAqBzvB,GAAa0M,GAAanF,GAC5E1iB,GAAY2iB,IAAqB,gFAAY,SAAAtoB,GAAiBkB,KAAK,SAAU,CAAEs3F,SAAS,aAASoF,IAC/F55F,GAAqB,IAAI,EAAA/H,mBAAmB0J,GAAYuwB,GAAgBimD,IACxEz5D,GAAe,IAAI,EAAAhhB,aAAasJ,GAAuBrF,IACvDm4F,GAAsB,IAAI,eAAoB5nE,GAAgBvwB,GAAYmb,GAAa0B,IAI7F,SAAgBu7E,KAAhB,WACI,OAAO,gD,wEACH,SAAO7nE,GAAsCphC,Q,OAmB9B,OAnBf,SACc4Q,GAAqB4B,SAEtB5B,GAAqB+oB,aAC9BzqB,GAAmBG,QAAUtP,OAAO6sC,SAAS4T,QAE7CtxC,GAAmB84E,iBAAmB,sCACtC94E,GAAmBitC,cAAgB,gCAGvCtrC,GAAWq8D,QAAQ,CACf98D,KAAMrQ,OAAO6sC,SAAS4T,OACtB8sB,IAAK,KACL7yD,SAAU,KACVgI,OAAQ,OAEZpP,YAAW,WAAM,OAAAg0E,GAAqBrnF,KAAKkP,MAAqB,KAEhEskB,GAAoBxzB,MAAK,GACV,GAAMohC,GAAettC,IAAY,EAAA0T,iBAAiBa,Y,OACjE,OADMo7D,EAAS,SACf,GAAMzuE,GAAYgL,KAAKyjE,I,OAKX,OALZ,SACAulC,GAAoBhpG,MAAK,GACzB4+C,GAAY5+C,QACNkpG,EAASnpG,OAAOgG,SAASojG,iBACxBttD,UAAUtN,IAAI,UAAYv5C,GAAY8zF,mBACjC,GAAM1nD,GAAettC,IAAY,EAAA0T,iBAAiBc,W,OAM1D,OALS,OADT8gG,EAAQ,YAERA,EAAQ,SAEZF,EAAOrtD,UAAUtN,IAAI,SAAW66D,GAChC,KAAAj6F,IAAa4uC,K,GAAK,EAAAv2C,iBAAiBI,mBAC/B,GAAMw5B,GAAettC,IAAa,EAAA0T,iBAAiBI,oB,OAClB,OAFrC,oBACI,YACJ,KAAAuH,IAAa4uC,K,GAAK,mBAAmB,GAAM3c,GAAettC,IAAa,oB,cAAvE,oBAAqC,Y,YApC7C6a,GAAiBmyE,eAAe/gF,QAEhC,iBAsCA,gC,wCAyDay4F,I,8DAAAA,IAAc,UApDZ,CACP,EAAAr2E,kBACA,EAAAumD,iBACA,EAAAhB,yBACA,EAAAY,6BACA,EAAAM,mBACA,EAAAvlD,cACA,EAAA9Z,aACA,EAAAo/D,iBACA,CAAEtoC,QAAS,EAAAzzB,aAAyBy8F,SAAUz7E,IAC9C,CAAEyS,QAAS,EAAAp5B,YAAwBoiG,SAAUzqD,IAC7C,CAAEve,QAAS,EAAAxpC,cAA0BwyG,SAAU37E,IAC/C,CAAE2S,QAAS,GAAAv5B,cAA0BuiG,SAAU17E,IAC/C,CAAE0S,QAAS,GAAA75B,kBAA8B6iG,SAAUx7E,IACnD,CAAEwS,QAAS,GAAAl5B,mBAA+BkiG,SAAUn6F,IACpD,CAAEmxB,QAAS,GAAAnwB,YAAwBm5F,SAAUv7E,IAC7C,CAAEuS,QAAS,GAAA1yB,aAAyB07F,SAAU/1E,IAC9C,CAAE+M,QAAS,GAAAzrC,YAAwBy0G,SAAUr0G,IAC7C,CAAEqrC,QAAS,GAAAzpC,cAA0ByyG,SAAUx6F,IAC/C,CAAEwxB,QAAS,GAAAxrC,qBAAiCw0G,SAAUz4F,IACtD,CAAEyvB,QAAS,GAAAn6B,0BAAsCmjG,SAAUt7E,IAC3D,CAAEsS,QAAS,EAAAvrC,WAAuBu0G,SAAUx4F,IAC5C,CAAEwvB,QAAS,GAAA0oE,kBAA8BM,SAAUnxB,IACnD,CAAE73C,QAAS,GAAAn5B,YAAwBmiG,SAAU3wE,IAC7C,CAAE2H,QAAS,GAAAtrC,YAAwBs0G,SAAUr9E,IAC7C,CAAEqU,QAAS,GAAA5qC,iBAA6B4zG,SAAUn+F,IAClD,CAAEm1B,QAAS,EAAArwB,mBAAoBq5F,SAAUrtD,IACzC,CAAE3b,QAAS,GAAA7H,gBAA4B6wE,SAAUpxB,IACjD,CAAE53C,QAAS,GAAA5yB,oBAAgC47F,SAAU71E,IACrD,CAAE6M,QAAS,GAAA55B,eAA2B4iG,SAAUjoE,IAChD,CAAEf,QAAS,GAAA95B,aAAyB8iG,SAAUl6F,IAC9C,CAAEkxB,QAAS,GAAA1hB,cAA0B0qF,SAAUr4D,IAC/C,CAAE3Q,QAAS,GAAA32B,cAA0B2/F,SAAU,EAAAr4E,eAC/C,CAAEqP,QAAS,GAAA1P,cAA0B04E,SAAUx2D,IAC/C,CAAExS,QAAS,GAAAob,qBAAiC4tD,SAAUhiB,IACtD,CAAEhnD,QAAS,GAAAzyB,sBAAkCy7F,SAAUnzF,IACvD,CAAEmqB,QAAS,gBAAgCgpE,SAAUL,IACrD,CAAE3oE,QAAS,GAAA35B,cAA0B2iG,SAAUp7E,IAC/C,CAAEoS,QAAS,GAAAngB,YAAwBmpF,SAAUtrC,IAC7C,CACI19B,QAAS,EAAAipE,gBACTC,WAAYN,GACZO,KAAM,GACN/oE,OAAO,GAEX,CACIJ,QAAS,EAAAopE,UACTF,WAAY,WAAM,OAAAv0G,GAAY8zF,mBAC9B0gB,KAAM,KAEb,SAtDQ,CACL,EAAA/Q,kB,EAFR,GAyDa,EAAAD,mB,iEAAAA,GAAc,UAvDnB,EAAAC,kB,8EClLR,iBACI,WAAoBz8C,GAAA,KAAAA,qBAMxB,OAJI,YAAA5vC,KAAA,SAAKs9F,EAAoBC,QAAA,IAAAA,MAAA,IACrB,IAAM9vG,EAAUzF,OAAO8E,OAAO,GAAI,CAAEmjD,QAASqtD,GAAcC,GAC3Dr0G,KAAK0mD,mBAAmB5vC,KAAKvS,IAErC,EAPA,GAAa,EAAA4uG,+B,68CCFb,aAEA,aAUI,WAAoB73F,GAAA,KAAAA,uBATZ,KAAAg5F,iBAAmB,IAAI5xB,IAAI,CAAC,QAAS,iBAAkB,kBAAmB,4BAC9E,EAAAxwE,iBAAiBI,kBAAmB,gBAAiB,kBAAmB,kBACxE,EAAAJ,iBAAiBa,UAAW,EAAAb,iBAAiBgB,wBAC7C,EAAAhB,iBAAiBQ,gBAAiB,EAAAR,iBAAiBS,sBAAuB,EAAAT,iBAAiBwB,mBAC3F,EAAAxB,iBAAiByB,YAAa,qBAC1B,KAAA4gG,2BAA6B,CAAC,kBAAmB,EAAAriG,iBAAiBe,sBAAwB,KAC1F,KAAAuhG,4BAA8B,CAAC,WAAY,WAAY,eAAgB,YAAa,aACpF,KAAAC,cAAgB,IAAIvlG,IAiFhC,OA7EU,YAAAxE,KAAN,W,0FAEyB,SAAM1K,KAAKxB,IAAY,EAAA0T,iBAAiBQ,kB,cACzC,MADC,UACQ1S,KAAKsb,qBAAqB4B,QAAnD,MACA,GAAMld,KAAKyoD,KAAK,EAAAv2C,iBAAiBQ,gBAAiB,K,OAAlD,S,iBAIuB,SAAM1S,KAAKxB,IAAY,EAAA0T,iBAAiBS,wB,cACzC,MADC,SACvB,MACA,GAAM3S,KAAKyoD,KAAK,EAAAv2C,iBAAiBS,sBAAuB,S,OAAxD,S,mCAIR,YAAAnU,IAAA,SAAOG,GACH,IAAIohD,EAAe,KAQnB,GAAY,OANRA,EADA//C,KAAK00G,eAAe/1G,GACb8L,OAAOkqG,aAAaC,QAAQj2G,GAC5BqB,KAAK60G,gBAAgBl2G,GACrBqB,KAAKy0G,cAAcj2G,IAAIG,GAEvB8L,OAAOqqG,eAAeF,QAAQj2G,IAEvB,CACd,IAAM+jB,EAAM+5C,KAAKv4D,MAAM67C,GACvB,OAAO1qC,QAAQC,QAAQoN,GAE3B,OAAOrN,QAAQC,QAAQ,OAG3B,YAAAmzC,KAAA,SAAK9pD,EAAa+jB,GACd,GAAW,MAAPA,EACA,OAAO1iB,KAAKwmD,OAAO7nD,GAGvB,IAAMohD,EAAO0c,KAAKC,UAAUh6C,GAQ5B,OAPI1iB,KAAK00G,eAAe/1G,GACpB8L,OAAOkqG,aAAaI,QAAQp2G,EAAKohD,GAC1B//C,KAAK60G,gBAAgBl2G,GAC5BqB,KAAKy0G,cAAcrlG,IAAIzQ,EAAKohD,GAE5Bt1C,OAAOqqG,eAAeC,QAAQp2G,EAAKohD,GAEhC1qC,QAAQC,WAGnB,YAAAkxC,OAAA,SAAO7nD,GAQH,OAPIqB,KAAK00G,eAAe/1G,GACpB8L,OAAOkqG,aAAaK,WAAWr2G,GACxBqB,KAAK60G,gBAAgBl2G,GAC5BqB,KAAKy0G,cAAcn4E,OAAO39B,GAE1B8L,OAAOqqG,eAAeE,WAAWr2G,GAE9B0W,QAAQC,WAGX,YAAAo/F,eAAR,SAAuB/1G,GACnB,GAAIqB,KAAKs0G,iBAAiB30E,IAAIhhC,GAC1B,OAAO,EAEX,IAAoB,UAAAqB,KAAKu0G,2BAAL,eAAiC,CAAhD,IAAMU,EAAK,KACZ,GAAIt2G,EAAIgH,WAAWsvG,GACf,OAAO,EAGf,OAAO,GAGH,YAAAJ,gBAAR,SAAwBl2G,GACpB,IAAoB,UAAAqB,KAAKw0G,4BAAL,eAAkC,CAAjD,IAAMS,EAAK,KACZ,GAAIt2G,EAAIgH,WAAWsvG,GACf,OAAO,EAGf,OAAO,GAEf,EAzFA,GAAa,EAAA5B,sB,8ECJb,aAAS,EAAA7zG,WAAA,EAAAA,WACT,aAAS,EAAAm2D,aAAA,EAAAA,aACT,aAAS,EAAAr+C,aAAA,EAAAA,aACT,aAAS,EAAA3F,YAAA,EAAAA,YACT,aAAS,EAAApQ,cAAA,EAAAA,cACT,aAAS,EAAA2P,kBAAA,EAAAA,kBACT,YAAS,EAAAgB,iBAAA,EAAAA,iBACT,aAAS,EAAAw5E,iBAAA,EAAAA,iBACT,aAAS,EAAApqF,cAAA,EAAAA,cACT,aAAS,EAAAuQ,mBAAA,EAAAA,mBACT,aAAS,EAAAL,cAAA,EAAAA,cACT,aAAS,EAAAlS,YAAA,EAAAA,YACT,aAAS,EAAAsR,0BAAA,EAAAA,0BACT,aAAS,EAAAsyB,gBAAA,EAAAA,gBACT,aAAS,EAAAjyB,aAAA,EAAAA,aACT,aAAS,EAAAW,YAAA,EAAAA,YACT,aAAS,EAAAyG,aAAA,EAAAA,aACT,aAAS,EAAAuC,YAAA,EAAAA,YACT,aAAS,EAAAnb,YAAA,EAAAA,YACT,aAAS,EAAA0Y,oBAAA,EAAAA,qB,8ZCnBT,IAEA,cAGI,WAAYvX,GAAZ,MACI,YAAMA,IAAS,K,OACf,EAAK4zC,OAAS,EAAKhzC,oBAAoB,U,EAE/C,OAPoC,OAOpC,EAPA,CAFA,MAEoCU,cAAvB,EAAAo3E,kB,8ZCDb,YACA,SAEA,cAMI,WAAY14E,GAAZ,MACI,YAAMA,IAAS,KAFnB,EAAA2E,IAAc,KAGV,EAAK89D,aAAe,EAAK7hE,oBAAoB,gBAC7C,EAAK0zG,eAAiB,EAAK1zG,oBAAoB,kBAC/C,IAAMuyE,EAAiB,EAAKvyE,oBAAoB,kBAC1CumF,EAAqB,EAAKvmF,oBAAoB,sB,OACpD,EAAKuyE,eAAmC,MAAlBA,EAAyB,KAAO,IAAI,EAAAt4C,eAAes4C,GACzE,EAAKgU,mBAA2C,MAAtBA,EAA6B,KAAO,IAAI,EAAAtsD,eAAessD,GACjF,EAAKxiF,IAAM,EAAK/D,oBAAoB,O,EAG5C,OAjBkD,OAiBlD,EAjBA,CAAkD,EAAAU,cAArC,EAAA25E,gC,8ZCJb,YAKA,cAMI,WAAYj7E,GAAZ,MACI,YAAMA,IAAS,KAJnB,EAAA01C,SAAqC,GACrC,EAAAC,aAA6C,GAIzC,EAAKL,QAAU,EAAK10C,oBAAoB,WACxC,IAAM20C,EAAgB,EAAK30C,oBAAoB,iBACzC+0C,EAAe,EAAK/0C,oBAAoB,gBACxC80C,EAAW,EAAK90C,oBAAoB,Y,OAC1C,EAAK20C,cAAiC,MAAjBA,EAAwB,KAAO,IAAIg/D,EAAsBh/D,GAC1D,MAAhBI,IACA,EAAKA,aAAeA,EAAajvC,KAAI,SAACrH,GAAW,WAAIm1G,EAA2Bn1G,OAEpE,MAAZq2C,IACA,EAAKA,SAAWA,EAAShvC,KAAI,SAACrJ,GAAW,WAAIo3G,EAAuBp3G,O,EAGhF,OApBqC,OAoBrC,EApBA,CAAqC,EAAAiE,cAAxB,EAAAy2E,kBAsBb,kBAMI,WAAY/3E,GAAZ,MACI,YAAMA,IAAS,K,OACf,EAAKuB,KAAO,EAAKX,oBAAoB,QACrC,EAAK8zG,UAAY,EAAK9zG,oBAAoB,aAC1C,EAAKo8B,YAAc,EAAKp8B,oBAAoB,eAC5C,EAAK+zG,kBAAoB,EAAK/zG,oBAAoB,qB,EAE1D,OAb2C,OAa3C,EAbA,CAA2C,EAAAU,cAA9B,EAAAizG,wBAeb,kBAQI,WAAYv0G,GAAZ,MACI,YAAMA,IAAS,K,OACf,EAAK2E,IAAM,EAAK/D,oBAAoB,OACpC,EAAKg0G,OAAS,EAAKh0G,oBAAoB,UACvC,EAAKsW,OAAS,EAAKtW,oBAAoB,UACvC,EAAKi0G,KAAO,EAAKj0G,oBAAoB,QACrC,EAAK2zB,KAAO,EAAK3zB,oBAAoB,QACrC,EAAKo2C,OAAS,EAAKp2C,oBAAoB,U,EAE/C,OAjB4C,OAiB5C,EAjBA,CAA4C,EAAAU,cAA/B,EAAAmzG,yBAmBb,kBAUI,WAAYz0G,GAAZ,MACI,YAAMA,IAAS,K,OACf,EAAK80G,YAAc,EAAKl0G,oBAAoB,eAC5C,EAAKo2C,OAAS,EAAKp2C,oBAAoB,UACvC,EAAKm0G,SAAW,EAAKn0G,oBAAoB,YACzC,EAAKo0G,kBAAoB,EAAKp0G,oBAAoB,qBAClD,EAAKq0G,eAAiB,EAAKr0G,oBAAoB,kBAC/C,EAAKW,KAAO,EAAKX,oBAAoB,QACrC,EAAK8a,kBAAoB,EAAK9a,oBAAoB,qBAClD,EAAK4qE,QAAU,EAAK5qE,oBAAoB,W,EAEhD,OArBgD,OAqBhD,EArBA,CAAgD,EAAAU,cAAnC,EAAAkzG,8B,8ZC7Db,IAEA,cAcI,WAAYx0G,GAAZ,MACI,YAAMA,IAAS,K,OACf,EAAKk1G,UAAY,EAAKt0G,oBAAoB,aAC1C,EAAKu0G,WAAa,EAAKv0G,oBAAoB,cAC3C,EAAKw0G,YAAc,EAAKx0G,oBAAoB,eAC5C,EAAKo8B,YAAc,EAAKp8B,oBAAoB,eAC5C,EAAKwN,OAAS,EAAKxN,oBAAoB,UACvC,EAAKy0G,SAAW,EAAKz0G,oBAAoB,YACzC,EAAK00G,WAAa,EAAK10G,oBAAoB,cAC3C,EAAK20G,SAAW,EAAK30G,oBAAoB,YACzC,EAAK40G,aAAe,EAAK50G,oBAAoB,gBAC7C,EAAKkG,KAAO,EAAKlG,oBAAoB,QACrC,EAAK60G,SAAW,EAAK70G,oBAAoB,YACzC,EAAKP,MAAQ,EAAKO,oBAAoB,S,EAE9C,OA7B2C,OA6B3C,EA7BA,CAFA,MAE2CU,cAA9B,EAAAq8E,yB,8ZCFb,IAKA,cAcI,WAAY39E,GAAZ,MACI,YAAMA,IAAS,K,OACf,EAAKuB,KAAO,EAAKX,oBAAoB,QACrC,EAAKslB,OAAS,EAAKtlB,oBAAoB,UACvC,EAAKe,eAAiB,EAAKf,oBAAoB,kBAC/C,EAAKmzB,SAAW,EAAKnzB,oBAAoB,YACzC,EAAKuzB,aAAe,EAAKvzB,oBAAoB,gBAC7C,EAAKszB,QAAU,EAAKtzB,oBAAoB,WACxC,EAAKyzB,SAAW,EAAKzzB,oBAAoB,YACzC,EAAKwzB,mBAAqB,EAAKxzB,oBAAoB,sBACnD,EAAKqyC,aAAe,EAAKryC,oBAAoB,gBAC7C,EAAK2zB,KAAO,EAAK3zB,oBAAoB,QACrC,EAAKuuB,WAAa,EAAKvuB,oBAAoB,cAC3C,EAAK0yC,UAAY,EAAK1yC,oBAAoB,a,EAElD,OA7BmC,OA6BnC,EA7BA,CALA,MAKmCU,cAAtB,EAAA+7E,iB,8ZCLb,YACA,SAEA,cAOI,WAAYr9E,GAAZ,MACI,YAAMA,IAAS,K,OACf,EAAKhB,GAAK,EAAK4B,oBAAoB,MACnC,EAAKe,eAAiB,EAAKf,oBAAoB,kBAC/C,EAAKkG,KAAO,EAAKlG,oBAAoB,QACrC,EAAKixC,UAAY,EAAKjxC,oBAAoB,aAC1C,EAAKmhB,WAAa,EAAKnhB,oBAAoB,c,EAEnD,OAfmC,OAenC,EAfA,CAAmC,EAAAU,cAAtB,EAAAm6E,gBAiBb,kBAGI,WAAYz7E,GAAZ,MACI,YAAMA,IAAS,KAHnB,EAAAwG,YAA2C,GAIvC,IAAMA,EAAc,EAAK5F,oBAAoB,e,OAC1B,MAAf4F,IACA,EAAKA,YAAcA,EAAYE,KAAI,SAAC2G,GAAW,WAAI,EAAAm9B,0BAA0Bn9B,O,EAGzF,OAV0C,OAU1C,EAVA,CAA0CouE,GAA7B,EAAAD,wB,8ZCpBb,aACA,SAKA,cAOI,WAAYx7E,GAAZ,MACI,YAAMA,IAAS,KACf,EAAKogF,YAAc,EAAKx/E,oBAAoB,eAC5C,EAAKm6D,UAAY,EAAKn6D,oBAAoB,aAC1C,IAAMo5D,EAAe,EAAKp5D,oBAAoB,gBAC9C,EAAKo5D,aAA+B,MAAhBA,EAAuB,KAAO,IAAI,EAAAqmB,4BAA4BrmB,GAClF,IAAMc,EAAkB,EAAKl6D,oBAAoB,mB,OACjD,EAAKk6D,gBAAqC,MAAnBA,EAA0B,KAC7C,IAAI,EAAAwlB,2CAA2CxlB,GACnD,EAAKl1D,WAAa,EAAKhF,oBAAoB,c,EAEnD,OAlBsD,OAkBtD,EAlBA,CAAsD,EAAAq8E,sBAAzC,EAAAC,oC,8ZCNb,YACA,SAEA,SAKA,cAQI,WAAYl9E,GAAZ,MACI,YAAMA,IAAS,K,OACf,EAAKhB,GAAK,EAAK4B,oBAAoB,MACnC,EAAKslB,OAAS,EAAKtlB,oBAAoB,UACvC,EAAKW,KAAO,EAAKX,oBAAoB,QACrC,EAAKse,OAAS,EAAKte,oBAAoB,UACvC,EAAK2rC,YAAc,IAAI,EAAAmH,eAAe,EAAK9yC,oBAAoB,gBAC/D,EAAKixC,UAAY,EAAKjxC,oBAAoB,a,EAElD,OAjB8C,OAiB9C,EAjBA,CAA8C,EAAAU,cAAjC,EAAAo0G,2BAmBb,kBAKI,WAAY11G,GAAZ,MACI,YAAMA,IAAS,K,OACf,EAAK8G,KAAO,EAAKlG,oBAAoB,QACrC,EAAK2f,MAAQ,EAAK3f,oBAAoB,SACtC,EAAKiqC,iBAAmB,EAAKjqC,oBAAoB,oB,EAEzD,OAXyD,OAWzD,EAXA,CAAyD80G,GAA5C,EAAA95B,sCAab,kBAGI,WAAY57E,GAAZ,MACI,YAAMA,IAAS,KAHnB,EAAAwG,YAA2C,GAIvC,IAAMA,EAAc,EAAK5F,oBAAoB,e,OAC1B,MAAf4F,IACA,EAAKA,YAAcA,EAAYE,KAAI,SAAC2G,GAAW,WAAI,EAAAm9B,0BAA0Bn9B,O,EAGzF,OAVqD,OAUrD,EAVA,CAAqDqoG,GAAxC,EAAA/5B,mC,8ZCxCb,YACA,SAEA,cAKI,WAAY37E,GAAZ,MACI,YAAMA,IAAS,KACT21G,EAAc,EAAK/0G,oBAAoB,e,OAC1B,MAAf+0G,IACA,EAAKA,YAAc,IAAI,EAAA1qE,gBAAgB0qE,IAE3C,EAAKptE,0BAA4B,EAAK3nC,oBAAoB,6BAC1D,EAAK8I,QAAU,EAAK9I,oBAAoB,W,EAEhD,OAdqC,OAcrC,EAdA,CAAqC,EAAAU,cAAxB,EAAAi3E,mB,8ZCHb,IAIA,cAII,WAAYv4E,GAAZ,MACI,YAAMA,IAAS,K,OACf,EAAKu/B,IAAM,EAAK3+B,oBAAoB,OACpC,EAAK4+B,cAAgB,EAAK5+B,oBAAoB,iB,EAEtD,OATsC,OAStC,EATA,CAJA,MAIsCU,cAAzB,EAAA42E,oB,8ZCJb,YAIA,SACA,SAEA,cASI,WAAYl4E,GAAZ,MACI,YAAMA,IAAS,KACf,EAAKhB,GAAK,EAAK4B,oBAAoB,MACnC,EAAKW,KAAO,EAAKX,oBAAoB,QACrC,EAAKkG,KAAO,EAAKlG,oBAAoB,QAErC,IAAMygB,EAAO,EAAKzgB,oBAAoB,QAC1B,MAARygB,IACA,EAAKA,KAAO,IAAI,EAAAugC,YAAYvgC,IAGhC,IAAMi9B,EAAO,EAAK19C,oBAAoB,Q,OAC1B,MAAR09C,IACA,EAAKA,KAAO,IAAI,EAAAuD,YAAYvD,IAGhC,EAAKmD,eAAiB,EAAK7gD,oBAAoB,kBAC/C,EAAKgmE,kBAAoB,EAAKhmE,oBAAoB,qB,EAE1D,OA5BwC,OA4BxC,EA5BA,CAAwC,EAAAU,cAA3B,EAAA23E,sB,8ZCPb,IAEA,cAII,WAAYj5E,GAAZ,MACI,YAAMA,IAAS,K,OAHnB,EAAAhB,GAAa,KACb,EAAA2F,IAAc,KAGV,EAAK3F,GAAK,EAAK4B,oBAAoB,MACnC,EAAK+D,IAAM,EAAK/D,oBAAoB,O,EAE5C,OATkD,OASlD,EATA,CAFA,MAEkDU,cAArC,EAAA43E,gC,8ZCAb,YACA,SAEA,cAKI,WAAYl5E,GAAZ,MACI,YAAMA,IAAS,KAFnB,EAAA2E,IAAc,KAGV,EAAK2vG,eAAiB,EAAK1zG,oBAAoB,kBAC/C,IAAM2mE,EAAe,EAAK3mE,oBAAoB,gB,OAC9C,EAAK2mE,aAA+B,MAAhBA,EAAuB,KAAO,IAAI,EAAAzlB,aAAaylB,GACnE,EAAK5iE,IAAM,EAAK/D,oBAAoB,O,EAE5C,OAZgD,OAYhD,EAZA,CAAgD,EAAAU,cAAnC,EAAAg4E,8B,8ZCLb,IAEA,cAUI,WAAYt5E,GAAZ,MACI,YAAMA,IAAS,K,OACf,EAAKwiB,MAAQ,EAAK5hB,oBAAoB,eACtC,EAAKg1G,UAAY,EAAKh1G,oBAAoB,aAC1C,EAAK6hB,MAAQ,EAAK7hB,oBAAoB,SACtC,EAAK8hB,MAAQ,EAAK9hB,oBAAoB,SACtC,EAAK+hB,KAAO,EAAK/hB,oBAAoB,QACrC,EAAKgiB,MAAQ,EAAKhiB,oBAAoB,SACtC,EAAKiiB,WAAa,EAAKjiB,oBAAoB,cAC3C,EAAK6a,QAAU,EAAK7a,oBAAoB,W,EAEhD,OArBqC,OAqBrC,EArBA,CAFA,MAEqCU,cAAxB,EAAA22E,mB,8ZCFb,IAEA,cAOI,WAAYj4E,GAAZ,MACI,YAAMA,IAAS,K,OACf,EAAKhB,GAAK,EAAK4B,oBAAoB,MACnC,EAAK6a,QAAU,EAAK7a,oBAAoB,WACxC,EAAKgiB,MAAQ,EAAKhiB,oBAAoB,SACtC,EAAKiiB,WAAa,EAAKjiB,oBAAoB,cAC3C,EAAK4iB,KAAO,EAAK5iB,oBAAoB,Q,EAE7C,OAfqC,OAerC,EAfA,CAFA,MAEqCU,cAAxB,EAAAy6E,mB,8ZCFb,IAEA,cAII,WAAY/7E,GAAZ,MACI,YAAMA,IAAS,K,OACf,EAAKk1B,QAAU,EAAKt0B,oBAAoB,WACxC,EAAK7C,IAAM,EAAK6C,oBAAoB,O,EAE5C,OAToD,OASpD,EATA,CAFA,MAEoDU,cAAvC,EAAA46E,kC,8ZCFb,IAEA,cAMI,WAAYl8E,GAAZ,MACI,YAAMA,IAAS,K,OACf,EAAKk1B,QAAU,EAAKt0B,oBAAoB,WACxC,EAAKgN,KAAO,EAAKhN,oBAAoB,QACrC,EAAKu4C,UAAY,EAAKv4C,oBAAoB,aAC1C,EAAKq4C,eAAiB,EAAKr4C,oBAAoB,kB,EAEvD,OAb0C,OAa1C,EAbA,CAFA,MAE0CU,cAA7B,EAAA86E,wB,8ZCFb,IAEA,cAII,WAAYp8E,GAAZ,MACI,YAAMA,IAAS,K,OACf,EAAKk1B,QAAU,EAAKt0B,oBAAoB,WACxC,EAAK2f,MAAQ,EAAK3f,oBAAoB,S,EAE9C,OAT4C,OAS5C,EATA,CAFA,MAE4CU,cAA/B,EAAA66E,0B,8ZCFb,IAIA,cAII,WAAYn8E,GAAZ,MACI,YAAMA,IAAS,K,OACf,EAAKk1B,QAAU,EAAKt0B,oBAAoB,WACxC,EAAKW,KAAO,EAAKX,oBAAoB,Q,EAE7C,OAT+C,OAS/C,EATA,CAJA,MAI+CU,cAAlC,EAAA26E,6B,8ZCJb,IAEA,cAGI,WAAYj8E,GAAZ,MACI,YAAMA,IAAS,K,OACf,EAAK4W,KAAO,EAAKhW,oBAAoB,Q,EAE7C,OAP8C,OAO9C,EAPA,CAFA,MAE8CU,cAAjC,EAAAk7E,4B,8ZCFb,IAEA,cASI,WAAYx8E,GAAZ,MACI,YAAMA,IAAS,K,OACf,EAAKk1B,QAAU,EAAKt0B,oBAAoB,WACxC,EAAKu+D,KAAO,EAAKv+D,oBAAoB,QACrC,EAAKw+D,KAAO,EAAKx+D,oBAAoB,QACrC,EAAKy+D,KAAO,EAAKz+D,oBAAoB,QACrC,EAAK0+D,KAAO,EAAK1+D,oBAAoB,QACrC,EAAK2+D,KAAO,EAAK3+D,oBAAoB,QACrC,EAAKq+D,IAAM,EAAKr+D,oBAAoB,O,EAE5C,OAnB8C,OAmB9C,EAnBA,CAFA,MAE8CU,cAAjC,EAAA+6E,4B,8ZCFb,IAEA,cAII,WAAYr8E,GAAZ,MACI,YAAMA,IAAS,K,OACf,EAAKkmB,OAAS,EAAKtlB,oBAAoB,UACvC,EAAKuuC,UAAY,EAAKvuC,oBAAoB,a,EAElD,OATqC,OASrC,EATA,CAFA,MAEqCU,cAAxB,EAAAm8E,mB,8ECIb,oBAAyBo4B,EAAeC,GACpC,OAAO,SAAI7mG,EAAam6E,EACpBC,GACA,IAAMC,EAAmCD,EAAWvrF,MAC9Ci4G,EAAe,IAAIznG,IAEnB0nG,EAAe,SAACl0F,GAClB,IAAIm0F,EAAYF,EAAan4G,IAAIkkB,GACjC,OAAiB,MAAbm0F,IAGJA,EAAY,IAAI3nG,IAChBynG,EAAavnG,IAAIsT,EAAKm0F,IAHXA,GAOf,MAAO,CACHn4G,MAAO,W,IAAA,WAAS,kDACZ,IAAMm4G,EAAYD,EAAa52G,MACzB82G,EAAkBJ,EAAYpsB,GAChCysB,EAAQF,EAAUr4G,IAAIs4G,GAM1B,OALa,MAATC,IACAA,EAAQ,GACRF,EAAUznG,IAAI0nG,EAAiBC,IAG5B,IAAI1hG,SAAW,SAACC,EAAS8J,GAC5B,IAAM43F,EAAO,WACT,IAAMzsB,EAAY,WACdwsB,EAAMvnD,OAAOunD,EAAM3xG,QAAQ4xG,GAAO,GAC9BD,EAAM54G,QAAUs4G,EAChBM,EAAMN,EAAQ,KACU,IAAjBM,EAAM54G,SACb04G,EAAUv6E,OAAOw6E,GACM,IAAnBD,EAAU/3F,MACV63F,EAAar6E,OAAO,KAIhC4tD,EAAe98E,MAAM,EAAMk9E,GAAM7pF,MAAK,SAACgV,GAEnC,OADA80E,IACO90E,KACR+J,OAAM,SAACC,GAEN,MADA8qE,IACM9qE,KACPhf,KAAK6U,EAAS8J,IAErB23F,EAAM5xG,KAAK6xG,GACPD,EAAM54G,QAAUs4G,GAChBO,Y,8ECvDxB,MAII,SAAYtwC,EAAe3hD,GACvB/kB,KAAK0mE,IAAa,MAAPA,EAAc,GAAKA,EAC9B1mE,KAAK+kB,SAAWA,GANX,EAAAwjE,yB,8ECAb,MAGI,SAAY7hB,GACR1mE,KAAK0mE,IAAa,MAAPA,EAAc,GAAKA,GAJzB,EAAAyiB,4B,8ECAb,aAIA,EAII,SAAYx/E,EAAmB4b,GAA/B,WACmB,MAAX5b,IACA3J,KAAK2J,QAAU,GACfA,EAAQvF,SAAQ,SAAA6J,GACZ,EAAKtE,QAAQxE,KAAK,IAAI,EAAA+/C,oBAAoBj3C,QAGlDjO,KAAKulB,cAAgBA,GAXhB,EAAA4hE,0B,8ECJb,aAIA,EAII,SAAY5gF,GACRvG,KAAKuG,OAAS,IAAI,EAAAolB,cAAcplB,GAChCvG,KAAKulB,cAAgBhf,EAAOgf,eANvB,EAAA0hE,sB,8ECFb,IAEA,aAII,WAA6BgwB,GAAA,KAAAA,aAHZ,KAAAC,mBAA2C,IAAIhoG,IAC/C,KAAAioG,SAA6B,IAAIjoG,IA8CtD,OA1CI,YAAAw6E,SAAA,SAASnkF,GACL,OAAOvF,KAAKk3G,mBAAmBv3E,IAAIp6B,IAGvC,YAAAokF,WAAA,SAAWpkF,EAAaoE,GACpBA,EAAQm0B,KAAK99B,KAAKi3G,YAClBj3G,KAAKk3G,mBAAmB9nG,IAAI7J,EAAK,IAAI6xG,EAAQztG,IAC7C3J,KAAKq3G,WAAW9xG,IAGpB,YAAAskF,YAAA,SAAYtkF,GAER,OADAvF,KAAKq3G,WAAW9xG,GACTvF,KAAK0pF,SAASnkF,GAAOvF,KAAKk3G,mBAAmB14G,IAAI+G,GAAKskF,cAAgB,MAGjF,YAAAD,gBAAA,SAAgBrkF,GACZ,OAAOvF,KAAK0pF,SAASnkF,GAAOvF,KAAKk3G,mBAAmB14G,IAAI+G,GAAKqkF,kBAAoB,MAGrF,YAAAE,QAAA,SAAQvkF,GAEJ,OADAvF,KAAKq3G,WAAW9xG,GACTvF,KAAK0pF,SAASnkF,GAAOvF,KAAKk3G,mBAAmB14G,IAAI+G,GAAKukF,UAAY,MAG7E,YAAA1D,oBAAA,SAAoB7gF,GACZvF,KAAK0pF,SAASnkF,IACdvF,KAAKk3G,mBAAmB14G,IAAI+G,GAAK6gF,uBAIzC,YAAAjvE,MAAA,WACInX,KAAKk3G,mBAAmB//F,QACxBnX,KAAKm3G,SAAShgG,SAGV,YAAAkgG,WAAR,SAAmB9xG,GAAnB,WACI8rC,aAAarxC,KAAKm3G,SAAS34G,IAAI+G,IAC/BvF,KAAKm3G,SAAS/nG,IAAI7J,EAAKwY,YAAW,WAC9B,EAAKm5F,mBAAmB56E,OAAO/2B,GAC/B,EAAK4xG,SAAS76E,OAAO/2B,KA/ChB,OAkDjB,EAhDA,GAAa,EAAAu9E,qBAkDb,iBAGI,WAA6Bn5E,GAAA,KAAAA,UAF7B,KAAA2tG,eAAiB,EA0BrB,OAtBI,YAAAztB,YAAA,WAEI,OADA7pF,KAAKs3G,cAAgBppG,KAAKsyD,IAAIxgE,KAAKs3G,cAAe,GAC3Ct3G,KAAK2J,QAAQ3J,KAAKs3G,gBAG7B,YAAA1tB,gBAAA,WAGI,OAFoB5pF,KAAK2J,QAAQxB,QAAO,SAAA5B,GAAM,aAAoB,QAApB,EAAIA,EAAOkf,iBAAS,eAAEghE,gBAClC3oD,MAAK,SAACrwB,EAAG8pG,GAAM,OAAAA,EAAE9xF,UAAUghE,aAAagV,UAAYhuF,EAAEgY,UAAUghE,aAAagV,aAC1F,IAGzB,YAAA+b,aAAA,WACI,OAAQx3G,KAAKs3G,cAAgB,GAAKt3G,KAAK2J,QAAQxL,QAGnD,YAAA2rF,QAAA,WACI,OAAO9pF,KAAK2J,QAAQ3J,KAAKw3G,iBAG7B,YAAApxB,oBAAA,WACIpmF,KAAKs3G,cAAgBt3G,KAAKw3G,gBAElC,EA3BA,I,8ECtDA,MAKI,SAAYpsB,EAAS1jF,EAAckc,GAFnC,KAAA0nE,SAA0B,GAGtBtrF,KAAK4jB,OAASA,EACd5jB,KAAKorF,KAAOA,EACZprF,KAAKorF,KAAK1jF,KAAOA,GARZ,EAAA2jF,Y,+ECAb,MACI,SAAmB7+E,GAAA,KAAAA,UADV,EAAAwiF,kB,maCAb,IAEA,yE,OACI,EAAA54B,YAAsB,GACtB,EAAAE,UAAoB,EACpB,EAAAy/B,cAAwB,EACxB,EAAAC,cAAwB,EACxB,EAAAp/B,YAAsB,EACtB,EAAAq/B,YAAsB,EACtB,EAAAn/B,YAAsB,EACtB,EAAAo/B,aAAuB,EACvB,EAAA9+B,eAAyB,EACzB,EAAAE,YAAsB,EACtB,EAAAE,eAAyB,E,EAe7B,OA1BoD,OAahD,YAAAigD,SAAA,WACI,MAA4B,KAArBz3G,KAAKo2D,aACRp2D,KAAKs2D,UAAY,GACjBt2D,KAAKi2F,YAAc,GACnBj2F,KAAKk2F,aAAe,GACpBl2F,KAAK+1F,cACL/1F,KAAKg2F,cACLh2F,KAAK42D,YACL52D,KAAK82D,YACL92D,KAAKo3D,eAAiB,GACtBp3D,KAAKs3D,YACLt3D,KAAKw3D,eAEjB,EA1BA,CAFA,MAEoD,SAAvC,EAAA2+B,kC,8ECIb,MA0BI,SAAYv1F,GACRZ,KAAKJ,GAAKgB,EAAShB,GACnBI,KAAK0H,KAAO9G,EAAS8G,KACrB1H,KAAK8f,OAASlf,EAASkf,OACvB9f,KAAKmC,KAAOvB,EAASuB,KACrBnC,KAAK81B,QAAUl1B,EAASk1B,QACxB91B,KAAKosC,YAAcxrC,EAASwrC,YAC5BpsC,KAAKqsC,UAAYzrC,EAASyrC,UAC1BrsC,KAAKssC,aAAe1rC,EAAS0rC,aAC7BtsC,KAAKusC,UAAY3rC,EAAS2rC,UAC1BvsC,KAAKu3B,QAAU32B,EAAS22B,QACxBv3B,KAAKwsC,OAAS5rC,EAAS4rC,OACvBxsC,KAAKysC,OAAS7rC,EAAS6rC,OACvBzsC,KAAK0sC,kBAAoB9rC,EAAS8rC,kBAClC1sC,KAAK2sC,OAAS/rC,EAAS+rC,OACvB3sC,KAAK4sC,SAAWhsC,EAASgsC,SACzB5sC,KAAK6sC,gBAAkBjsC,EAASisC,gBAChC7sC,KAAK8sC,MAAQlsC,EAASksC,MACtB9sC,KAAK+sC,eAAiBnsC,EAASmsC,eAC/B/sC,KAAKgtC,aAAepsC,EAASosC,aAC7BhtC,KAAKitC,SAAWrsC,EAASqsC,SACzBjtC,KAAKktC,WAAatsC,EAASssC,WAC3BltC,KAAKmtC,YAAcvsC,EAASusC,YAC5BntC,KAAKotC,iBAAmBxsC,EAASwsC,iBACjCptC,KAAK8mB,OAASlmB,EAASkmB,QAlDlB,EAAA2zE,oB,8ECJb,MAOI,SAAYt3F,GACI,MAARA,IAIJnD,KAAKJ,GAAKuD,EAAKvD,GACfI,KAAKwrB,SAAWroB,EAAKqoB,SACrBxrB,KAAKrB,IAAMwE,EAAKxE,IAChBqB,KAAK8e,KAAO3b,EAAK2b,KACjB9e,KAAKouC,SAAWjrC,EAAKirC,WAhBhB,EAAAysD,gB,8ECAb,MAII,SAAY13F,GACI,MAARA,IAIJnD,KAAKiiB,KAAO9e,EAAK8e,KACjBjiB,KAAKsuC,OAASnrC,EAAKmrC,SAVd,EAAAqsD,gB,yxDCFb,IAEA,cACI,WAAYxH,EAAwBC,GAApC,MACI,YAAMD,GAAkB,QAASC,GAAkB,SAAOY,GAAuB,qC,wDAGvD,OAFhB0jB,EAAW13G,KAAKozF,iBAAmB,IAAMY,EAA9Bh0F,8BAEK,GAAM6/C,MAAM63D,I,OAClB,SADM,SACc33D,Q,OACpC,MAAO,CAAP,EADgB,qBAElB,K,OAEF,EAAKmuB,4BAA8B,CAC/B,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,QAAS,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACnG,KAAM,KAAM,QAAS,QAAS,KAAM,KAAM,KAAM,KAAM,QAAS,S,EAG3E,OAfiC,OAejC,EAfA,CAFA,OAEiC,aAApB,EAAA5uE,e,8ECAb,8BACY,KAAAq4G,MAAQ,IAAIzoG,IAsBxB,OApBI,YAAA1Q,IAAA,SAAOG,GACH,GAAIqB,KAAK23G,MAAMh4E,IAAIhhC,GAAM,CACrB,IAAM+jB,EAAM1iB,KAAK23G,MAAMn5G,IAAIG,GAC3B,OAAO0W,QAAQC,QAAQoN,GAE3B,OAAOrN,QAAQC,QAAQ,OAG3B,YAAAmzC,KAAA,SAAK9pD,EAAa+jB,GACd,OAAW,MAAPA,EACO1iB,KAAKwmD,OAAO7nD,IAEvBqB,KAAK23G,MAAMvoG,IAAIzQ,EAAK+jB,GACbrN,QAAQC,YAGnB,YAAAkxC,OAAA,SAAO7nD,GAEH,OADAqB,KAAK23G,MAAMr7E,OAAO39B,GACX0W,QAAQC,WAEvB,EAvBA,GAAa,EAAAg+F,wB,68CCFb,aAEA,SAMA,aAKI,WAAoB5zG,EAAkCkW,GAAlC,KAAAlW,cAAkC,KAAAkW,mBAJtD,KAAAyiE,iBAA2B,MAEnB,KAAAu/B,aAA2B,KA6QvC,OAzQI,YAAAjgC,UAAA,WACI,OAAyB,MAArB33E,KAAK43G,gBAIyC,IAA9C1nG,UAAUC,UAAU/K,QAAQ,eAAmE,IAA5C8K,UAAUC,UAAU/K,QAAQ,WAC/EpF,KAAK43G,aAAe,EAAAxkF,WAAWc,eACxBhkB,UAAUC,UAAU/K,QAAQ,UAAY,EAC/CpF,KAAK43G,aAAe,EAAAxkF,WAAWe,cACkB,IAA1CjkB,UAAUC,UAAU/K,QAAQ,SACnCpF,KAAK43G,aAAe,EAAAxkF,WAAWkB,aACsB,IAA9CpkB,UAAUC,UAAU/K,QAAQ,aACnCpF,KAAK43G,aAAe,EAAAxkF,WAAWiB,gBACqB,IAA7CnkB,UAAUC,UAAU/K,QAAQ,cAAiE,IAA3C8K,UAAUC,UAAU/K,QAAQ,UACrFpF,KAAK43G,aAAe,EAAAxkF,WAAWgB,cACvB3pB,OAAeotG,SAAuD,IAA7C3nG,UAAUC,UAAU/K,QAAQ,YAC7DpF,KAAK43G,aAAe,EAAAxkF,WAAWa,eACsB,IAA9C/jB,UAAUC,UAAU/K,QAAQ,aACnCpF,KAAK43G,aAAe,EAAAxkF,WAAWmB,UAE/Bv0B,KAAK43G,aAAe,EAAAxkF,WAAWoB,gBAlBxBx0B,KAAK43G,cAwBpB,YAAAlQ,gBAAA,WAEI,OADe,EAAAt0E,WAAWpzB,KAAK23E,aAAa31E,cAC9B4D,QAAQ,UAAW,KAGrC,YAAA4pG,UAAA,WACI,OAAOxvG,KAAK23E,cAAgB,EAAAvkD,WAAWc,gBAG3C,YAAA4jF,SAAA,WACI,OAAO93G,KAAK23E,cAAgB,EAAAvkD,WAAWa,eAG3C,YAAA8jF,OAAA,WACI,OAAO/3G,KAAK23E,cAAgB,EAAAvkD,WAAWkB,aAG3C,YAAA0jF,QAAA,WACI,OAAOh4G,KAAK23E,cAAgB,EAAAvkD,WAAWe,cAG3C,YAAA8jF,UAAA,WACI,OAAOj4G,KAAK23E,cAAgB,EAAAvkD,WAAWiB,gBAG3C,YAAAk7E,SAAA,WACI,OAAOvvG,KAAK23E,cAAgB,EAAAvkD,WAAWgB,eAG3C,YAAAyxE,KAAA,WACI,OAAO7lG,KAAK23E,cAAgB,EAAAvkD,WAAWmB,WAG3C,YAAA2jF,cAAA,WACI,OAAO,GAGX,YAAAha,WAAA,WACI,OAAO7oF,QAAQC,SAAQ,IAG3B,YAAA6oF,YAAA,WACI,OAAO,MAGX,YAAAt2E,UAAA,SAAUhjB,EAAanB,GACnB,IAAM6L,EAAIkB,SAASC,cAAc,KACjCnB,EAAEoB,KAAO9L,EACM,MAAXnB,GAAoBA,EAAQuoD,aAC5B18C,EAAEM,OAAS,SACXN,EAAE4oG,IAAM,uBAEZ5oG,EAAEg3C,UAAUtN,IAAI,UAChBxoC,SAASuN,KAAKH,YAAYtO,GAC1BA,EAAE6oG,QACF3nG,SAASuN,KAAKF,YAAYvO,IAG9B,YAAAotD,SAAA,SAAS3sD,EAAaqoG,EAAeC,EAAkB9sF,GACnD,IAAI08D,EAAa,KACb/lF,EAAe,KACbo2G,EAAgB/sF,EAASxpB,cAC3Bw2G,GAAa,EA8BjB,GA7BID,EAAcE,SAAS,SACvBt2G,EAAO,kBACPq2G,GAAa,GACND,EAAcE,SAAS,SAC9Bt2G,EAAO,oEACAo2G,EAAcE,SAAS,SAC9Bt2G,EAAO,0EACAo2G,EAAcE,SAAS,SAC9Bt2G,EAAO,4EACAo2G,EAAcE,SAAS,QAC9Bt2G,EAAO,WACAo2G,EAAcE,SAAS,QAC9Bt2G,EAAO,YACAo2G,EAAcE,SAAS,SAAWF,EAAcE,SAAS,SAChEt2G,EAAO,aACAo2G,EAAcE,SAAS,UAC9Bt2G,EAAO,aAEC,MAARA,GAEwB,OADxBm2G,EAAcA,GAAe,IACbn2G,OACZm2G,EAAYn2G,KAAOA,GAMvB+lF,EAHe,MAAfowB,GAAwBt4G,KAAK6lG,OAGtB,IAAI1d,KAAK,CAACkwB,IAFV,IAAIlwB,KAAK,CAACkwB,GAAWC,GAI5BpoG,UAAUwoG,iBACVxoG,UAAUyoG,WAAWzwB,EAAM18D,OACxB,CACH,IAAMjc,EAAIS,EAAIS,SAASC,cAAc,KACjC8nG,EACAjpG,EAAEq0D,SAAWp4C,EACLxrB,KAAKuvG,aACbhgG,EAAEM,OAAS,UAEfN,EAAEoB,KAAOL,IAAIsoG,gBAAgB1wB,GAC7B34E,EAAE8Q,MAAMw4F,SAAW,QACnB7oG,EAAIS,SAASuN,KAAKH,YAAYtO,GAC9BA,EAAE6oG,QACFpoG,EAAIS,SAASuN,KAAKF,YAAYvO,KAItC,YAAAqgC,sBAAA,WACI,OAAOv6B,QAAQC,QAAQ,WAG3B,YAAAuqB,iBAAA,SAAiB7vB,GACb,MAAwC,oBAA1B,qBAGlB,YAAA4vB,YAAA,WACI,OAAO,GAGX,YAAAjT,UAAA,SAAUxqB,EAAgDlB,EAAeghB,EACrEve,GACA1D,KAAK4V,iBAAiBkB,KAAK,YAAa,CACpCmL,KAAMA,EACNhhB,MAAOA,EACPkB,KAAMA,EACNuB,QAASA,KAIX,YAAA2yB,WAAN,SAAiBrY,EAAc/c,EAAgB63G,EAAsBC,EAAqB52G,EACtF62G,G,YAAA,IAAAA,OAAA,G,2FAEA,GADIC,EAAsB,KACd,MAAR92G,EAEA,OAAQA,GACJ,IAAK,UACD82G,EAAc,wBACd,MACJ,IAAK,UACDA,EAAc,0BACd,MACJ,IAAK,QACDA,EAAc,sBACd,MACJ,IAAK,OACDA,EAAc,2BAQR,OADZC,EAA6B,MAAfD,EAAsB,iCAAiCA,EAAW,cAAWr3G,EAC/E,GAAM,UAAK08C,KAAK,CAC9BC,YAAY,EACZC,gBAAgB,EAChBn8C,KAAMF,EACNs8C,SAAUy6D,EACVj3F,KAAM+2F,EAAa,KAAOh7F,EAC1B8D,KAAMk3F,EAAah7F,EAAO,KAC1B/c,MAAOA,EACPk4G,iBAAiC,MAAdJ,EACnBK,iBAAkBL,EAClBl6D,mBAAmB,EACnBC,kBAAkC,MAAfg6D,EAAsB94G,KAAKN,YAAYO,EAAE,MAAQ64G,K,OAGxE,MAAO,CAAP,EAdkB,SAcDp6G,eAGrB,YAAAwe,MAAA,WACI,OAAO,GAGX,YAAAmnB,WAAA,WACI,MAA4C,WAArC,GAAsB53B,YAGjC,YAAAmtB,gBAAA,SAAgB3X,EAAcve,GAC1B,IAAIsM,EAAMvF,OACNrH,EAAMqH,OAAOgG,SAOjB,GANI/M,IAAYA,EAAQ+G,QAAU/G,EAAQsM,KAEtC5M,GADA4M,EAAMtM,EAAQ+G,QAAU/G,EAAQsM,KACtBS,SACH/M,GAAWA,EAAQN,MAC1BA,EAAMM,EAAQN,KAEb4M,EAAYqpG,eAAkBrpG,EAAYqpG,cAAcC,QAExDtpG,EAAYqpG,cAAcC,QAAQ,OAAQr3F,QACxC,GAAI7e,EAAIm2G,uBAAyBn2G,EAAIm2G,sBAAsB,QAAS,CACvE,IAAMC,EAAWp2G,EAAIsN,cAAc,YACnC8oG,EAASh3F,YAAcP,EAEvBu3F,EAASn5F,MAAMw4F,SAAW,QAC1B,IAAIY,EAASr2G,EAAI4a,KAEb5a,EAAI4a,KAAKuoC,UAAUmzD,SAAS,gBAC5BD,EAASr2G,EAAI4a,KAAKza,cAA2B,WAEjDk2G,EAAO57F,YAAY27F,GACnBA,EAASz8E,SACT,IAEI35B,EAAIu2G,YAAY,QAClB,MAAO94G,GAELoe,QAAQ+/E,KAAK,4BAA6Bn+F,G,QAE1C44G,EAAO37F,YAAY07F,MAK/B,YAAAI,kBAAA,SAAkBl2G,GACd,MAAM,IAAI/B,MAAM,uCAGpB,YAAA6iG,kBAAA,WACI,OAAOnvF,QAAQC,SAAQ,IAG3B,YAAA2vF,sBAAA,WACI,OAAO5vF,QAAQC,SAAQ,IAG3B,YAAAy2E,sBAAA,WACI,OAAO,GAGX,YAAA8tB,sBAAA,WACI,OAAOxkG,QAAQC,QAAQ,OAG3B,YAAAwkG,2BAAA,aAGJ,EAhRA,GAAa,EAAA1G,2B,88CCNb,aAEA,SAQA,QAEA,aAGI,WAAoBtnE,EAAwCvwB,EAChDmb,EAAkC0B,GAD1B,KAAA0T,iBAAwC,KAAAvwB,aAChD,KAAAmb,cAAkC,KAAA0B,gBAHtC,KAAAztB,QAAS,EA4ErB,OAvEI,YAAAD,KAAA,SAAKozF,GAAL,WACQ99F,KAAK2K,SAIT3K,KAAK2K,QAAS,EACVmzF,IACA99F,KAAK+5G,eACLzgF,aAAY,WAAM,SAAKygF,iBAAgB,QAIzC,YAAAjgF,QAAN,SAAckgF,EAAsBrlF,EAAyBslF,G,YAAzB,IAAAtlF,MAAA,WAAyB,IAAAslF,OAAA,G,iGAC1C,SAAMj6G,KAAK02B,YAAY2xB,mB,OACtC,OADe,SAIO,GAAMroD,KAAK02B,YAAYmQ,uBAFzC,I,OAGJ,OAAqB,OADfwE,EAAgB,WAKF,KADd6uE,EAAS,IAAIx3B,IAAYr3C,EAAcljC,QAAO,SAAAwjC,GAAK,OAAAA,EAAEY,aAAWjlC,KAAI,SAAAqkC,GAAK,OAAAA,EAAE/rC,QACtEkf,KAHP,IAMY,MAAZ6V,EAAA,MACe,GAAM30B,KAAKo4B,cAAc55B,IAAIm2B,I,OAC5C,GAAc,OADRpuB,EAAS,WACgC,MAAzBA,EAAOhE,iBAA2B23G,EAAOv6E,IAAIp5B,EAAOhE,gBACtE,U,iBAGc,SAAMvC,KAAK8rC,eAAettC,IAAiB,EAAA0T,iBAAiBuB,qB,OASlF,OARuB,OADnB0mG,EAAkB,YAElBA,EAAkB,KAEhB/sF,EAAQ,IAAI,EAAAgtF,WACZj4G,KAAO63G,EACb5sF,EAAMuH,SAAWA,EACjBvH,EAAM+H,MAAO,IAAI7L,MAAOa,cACxBgwF,EAAgBh1G,KAAKioB,GACrB,GAAMptB,KAAK8rC,eAAe2c,KAAK,EAAAv2C,iBAAiBuB,mBAAoB0mG,I,cAApE,SACIF,EACA,GAAMj6G,KAAK+5G,gBADX,M,OACA,S,mCAIF,YAAAA,aAAN,W,kGACmB,SAAM/5G,KAAK02B,YAAY2xB,mB,OACtC,OADe,SAIS,GAAMroD,KAAK8rC,eAAettC,IAAiB,EAAA0T,iBAAiBuB,qBAFhF,I,OAGJ,GAAuB,OADjB0mG,EAAkB,WACkC,IAA3BA,EAAgBh8G,OAC3C,UAEEmmB,EAAU61F,EAAgB7yG,KAAI,SAAAzG,GAChC,IAAM42C,EAAM,IAAI,EAAA4iE,aAIhB,OAHA5iE,EAAIt1C,KAAOtB,EAAEsB,KACbs1C,EAAI9iB,SAAW9zB,EAAE8zB,SACjB8iB,EAAItiB,KAAOt0B,EAAEs0B,KACNsiB,K,iBAGP,O,sBAAA,GAAMz3C,KAAKub,WAAW2iE,kBAAkB55D,I,cAAxC,SACAtkB,KAAKs6G,c,4DAIP,YAAAA,YAAN,W,0FACI,SAAMt6G,KAAK8rC,eAAe0a,OAAO,EAAAt0C,iBAAiBuB,qB,cAAlD,S,YAER,EA7EA,GAAa,EAAAQ,gB,8ECZb,mBAAa,EAAAmmG,a,8ECAb,mBAAa,EAAAC,gB,68CCFb,aAEA,QAWA,SACA,SAGA,SACA,SAGA,SACA,SACA,SAEA,aACI,WAAoBhiF,EAAsCD,EAC9C7c,GADQ,KAAA8c,gBAAsC,KAAAD,gBAC9C,KAAA7c,aAoUhB,OAlUU,YAAA6tF,UAAN,SAAgB5rD,G,YAAA,IAAAA,MAAA,O,4DACZ,MAAe,mBAAXA,EACO,CAAP,EAAOx9C,KAAKu6G,sBAEL,CAAP,EAAOv6G,KAAKw6G,mBAAmBh9D,WAIjC,YAAAkjB,sBAAN,SAA4Bn+D,EACxBi7C,G,YAAA,IAAAA,MAAA,O,4DACA,MAAe,mBAAXA,EACO,CAAP,EAAOx9C,KAAKy6G,+BAA+Bl4G,IAEpC,CAAP,EAAOvC,KAAK06G,+BAA+Bn4G,EAAgBi7C,WAInE,YAAAmjB,YAAA,SAAYt0C,EAAuBg9E,QAAvB,IAAAh9E,MAAA,WAAuB,IAAAg9E,MAAA,OAC/B,IAAMzS,EAAM,IAAIttE,KAMhB,MAAO,aAAe+C,EAAU,IAAMA,EAAU,IAAM,YAJlDuqE,EAAI7nE,cAAgB,GAAK/uB,KAAK26G,UAAU/jB,EAAI5nE,WAAa,EAAG,GAAUhvB,KAAK26G,UAAU/jB,EAAI3nE,UAAW,GACpGjvB,KAAK26G,UAAU/jB,EAAIvhE,WAAY,GAAUr1B,KAAK26G,UAAU/jB,EAAIthE,aAAc,GAC1Et1B,KAAK26G,UAAU/jB,EAAIgkB,aAAc,IAE2C,IAAMvR,GAG5E,YAAAmR,mBAAd,SAAiCh9D,G,iHAa7B,OAZIs1C,EAA2B,GAC3Bnf,EAA2B,IACzB1+D,EAAW,IAER9P,KAAKnF,KAAKq4B,cAAc8jB,kBAAkB17C,MAAK,SAAA4G,GACpDyrF,EAAazrF,MAGjB4N,EAAS9P,KAAKnF,KAAKo4B,cAAc+jB,kBAAkB17C,MAAK,SAAAkJ,GACpDgqE,EAAahqE,EAAQxB,QAAO,SAAAZ,GAAK,OAAiB,MAAjBA,EAAEie,mBAGvC,GAAMnQ,QAAQK,IAAIT,I,OAElB,OAFA,SAEe,QAAXuoC,GACM,EAAa,IAAItuC,IACvB4jF,EAAW1uF,SAAQ,SAAAmD,GACH,MAARA,EAAE3H,IACF,EAAWwP,IAAI7H,EAAE3H,GAAI2H,MAIvB,EAAuB,GAC7BosE,EAAWvvE,SAAQ,SAAA6J,GAEf,IAAIA,EAAE9L,OAAS,EAAAyG,WAAWC,OAASoF,EAAE9L,OAAS,EAAAyG,WAAWoB,aAGjC,MAApBiE,EAAE1L,eAAN,CAIA,IAAMgE,EAAc,GACpBA,EAAO4+C,OAAuB,MAAdl3C,EAAE8W,UAAoB,EAAW4a,IAAI1xB,EAAE8W,UACnD,EAAWvmB,IAAIyP,EAAE8W,UAAUrd,KAAO,KACtCnB,EAAOgC,SAAW0F,EAAE1F,SAAW,EAAI,KACnC,EAAKsyG,kBAAkBt0G,EAAQ0H,GAC/B,EAAc9I,KAAKoB,OAGhB,CAAP,EAAOtC,EAAK62G,QAAQ,MAEd,EAAe,CACjBxkB,WAAW,EACXjvF,QAAS,GACTinB,MAAO,IAGXwkE,EAAW1uF,SAAQ,SAAAmD,GACf,GAAY,MAARA,EAAE3H,GAAN,CAGA,IAAMulD,EAAS,IAAI,eACnBA,EAAOk6C,MAAM93F,GACb,EAAQF,QAAQlC,KAAKggD,OAGzBwuB,EAAWvvE,SAAQ,SAAA6J,GACf,GAAwB,MAApBA,EAAE1L,eAAN,CAGA,IAAMgE,EAAS,IAAI,gBACnBA,EAAO84F,MAAMpxF,GACb1H,EAAOgf,cAAgB,KACvB,EAAQ+I,MAAMnpB,KAAKoB,OAGhB,CAAP,EAAOk2D,KAAKC,UAAU,EAAS,KAAM,gBAI/B,YAAA69C,mBAAd,W,sGAaI,OAZIlzG,EAAoB,GACpBsC,EAAoB,IAClBsL,EAAW,IAER9P,KAAKnF,KAAKq4B,cAAcqO,SAASjmC,MAAK,SAAA8G,GAC3CF,EAAUE,MAGd0N,EAAS9P,KAAKnF,KAAKo4B,cAAcsO,SAASjmC,MAAK,SAAAwN,GAC3CtE,EAAUsE,EAAE9F,QAAO,SAAAZ,GAAK,OAAiB,MAAjBA,EAAEie,mBAG9B,GAAMnQ,QAAQK,IAAIT,I,OA2BlB,OA3BA,SAEM8lG,EAAe,CACjBzkB,WAAW,EACXjvF,QAAS,GACTinB,MAAO,IAGXjnB,EAAQjD,SAAQ,SAAAmD,GACZ,GAAY,MAARA,EAAE3H,GAAN,CAGA,IAAMulD,EAAS,IAAI,eACnBA,EAAOk6C,MAAM93F,GACbwzG,EAAQ1zG,QAAQlC,KAAKggD,OAGzBx7C,EAAQvF,SAAQ,SAAA6J,GACZ,GAAwB,MAApBA,EAAE1L,eAAN,CAGA,IAAMgE,EAAS,IAAI,gBACnBA,EAAO84F,MAAMpxF,GACb1H,EAAOgf,cAAgB,KACvBw1F,EAAQzsF,MAAMnpB,KAAKoB,OAGhB,CAAP,EAAOk2D,KAAKC,UAAUq+C,EAAS,KAAM,eAG3B,YAAAL,+BAAd,SAA6Cn4G,EAAwBi7C,G,iHA+BjE,OA9BMitC,EAAmC,GACnC9W,EAA2B,IAC3B1+D,EAAW,IAER9P,KAAKnF,KAAKub,WAAW2nC,eAAe3gD,GAAgB9B,MAAK,SAAA2G,GAC9D,IAAM4zG,EAA0B,GAShC,OARmB,MAAf5zG,GAA2C,MAApBA,EAAYjE,MAAgBiE,EAAYjE,KAAKhF,OAAS,GAC7EiJ,EAAYjE,KAAKiB,SAAQ,SAAA6J,GACrB,IAAMzG,EAAa,IAAI,EAAAsb,WAAW,IAAI,EAAA8D,eAAe3Y,IACrD+sG,EAAmB71G,KAAKqC,EAAWgO,UAAU/U,MAAK,SAAAw6G,GAC9CxwB,EAAetlF,KAAK81G,UAIzB5lG,QAAQK,IAAIslG,OAGvB/lG,EAAS9P,KAAKnF,KAAKub,WAAWo/D,uBAAuBp4E,GAAgB9B,MAAK,SAAAkJ,GACtE,IAAMuxG,EAAsB,GAS5B,OARe,MAAXvxG,GAAmC,MAAhBA,EAAQxG,MAAgBwG,EAAQxG,KAAKhF,OAAS,GACjEwL,EAAQxG,KAAKgF,QAAO,SAAA8F,GAAK,OAAkB,OAAlBA,EAAEuX,eAAsBphB,SAAQ,SAAA6J,GACrD,IAAM1H,EAAS,IAAI,EAAAokB,OAAO,IAAI,EAAApD,WAAWtZ,IACzCitG,EAAe/1G,KAAKoB,EAAOiP,UAAU/U,MAAK,SAAA06G,GACtCxnC,EAAWxuE,KAAKg2G,UAIrB9lG,QAAQK,IAAIwlG,OAGvB,GAAM7lG,QAAQK,IAAIT,I,OAElB,OAFA,SAEe,QAAXuoC,GACM,EAAiB,IAAItuC,IAC3Bu7E,EAAermF,SAAQ,SAAA6J,GACnB,EAAemB,IAAInB,EAAErO,GAAIqO,MAGvB,EAAuB,GAC7B0lE,EAAWvvE,SAAQ,SAAA6J,GAEf,GAAIA,EAAE9L,OAAS,EAAAyG,WAAWC,OAASoF,EAAE9L,OAAS,EAAAyG,WAAWoB,WAAzD,CAIA,IAAMzD,EAAc,CACpB,YAAqB,IACE,MAAnB0H,EAAEsX,gBACFhf,EAAOa,YAAc6G,EAAEsX,cAAcpd,QAAO,SAAAvI,GAAM,SAAe+/B,IAAI//B,MAChE0H,KAAI,SAAA1H,GAAM,SAAepB,IAAIoB,GAAI8H,SAE1C,EAAKmzG,kBAAkBt0G,EAAQ0H,GAC/B,EAAc9I,KAAKoB,OAGhB,CAAP,EAAOtC,EAAK62G,QAAQ,MAEd,EAAe,CACjBxkB,WAAW,EACXlvF,YAAa,GACbknB,MAAO,IAGXm8D,EAAermF,SAAQ,SAAA6J,GACnB,IAAMzG,EAAa,IAAI,mBACvBA,EAAW63F,MAAMpxF,GACjB,EAAQ7G,YAAYjC,KAAKqC,MAG7BmsE,EAAWvvE,SAAQ,SAAA6J,GACf,IAAM1H,EAAS,IAAI,gBACnBA,EAAO84F,MAAMpxF,GACb,EAAQqgB,MAAMnpB,KAAKoB,MAEhB,CAAP,EAAOk2D,KAAKC,UAAU,EAAS,KAAM,gBAI/B,YAAA+9C,+BAAd,SAA6Cl4G,G,sGA2BzC,OA1BM6E,EAA4B,GAC5BuC,EAAoB,IACpBsL,EAAW,IAER9P,KAAKnF,KAAKub,WAAW2nC,eAAe3gD,GAAgB9B,MAAK,SAAAwN,GAQ9D,OANS,MAALA,GAAuB,MAAVA,EAAE9K,MAAgB8K,EAAE9K,KAAKhF,OAAS,GAC/C8P,EAAE9K,KAAKiB,SAAQ,SAAA8C,GACX,IAAMM,EAAa,IAAI,EAAAsb,WAAW,IAAI,EAAA8D,eAAe1f,IACrDE,EAAYjC,KAAKqC,MAGlB6N,QAAQK,IAPiB,QAUpCT,EAAS9P,KAAKnF,KAAKub,WAAWo/D,uBAAuBp4E,GAAgB9B,MAAK,SAAAwN,GAQtE,OANS,MAALA,GAAuB,MAAVA,EAAE9K,MAAgB8K,EAAE9K,KAAKhF,OAAS,GAC/C8P,EAAE9K,KAAKgF,QAAO,SAAAikB,GAAQ,OAAqB,OAArBA,EAAK5G,eAAsBphB,SAAQ,SAAAgoB,GACrD,IAAM7lB,EAAS,IAAI,EAAAokB,OAAO,IAAI,EAAApD,WAAW6E,IACzCziB,EAAQxE,KAAKoB,MAGd8O,QAAQK,IAPa,QAUhC,GAAML,QAAQK,IAAIT,I,OAmBlB,OAnBA,SAEM8lG,EAAe,CACjBzkB,WAAW,EACXlvF,YAAa,GACbknB,MAAO,IAGXlnB,EAAYhD,SAAQ,SAAA6J,GAChB,IAAMzG,EAAa,IAAI,mBACvBA,EAAW63F,MAAMpxF,GACjB8sG,EAAQ3zG,YAAYjC,KAAKqC,MAG7BmC,EAAQvF,SAAQ,SAAA6J,GACZ,IAAM1H,EAAS,IAAI,gBACnBA,EAAO84F,MAAMpxF,GACb8sG,EAAQzsF,MAAMnpB,KAAKoB,MAEhB,CAAP,EAAOk2D,KAAKC,UAAUq+C,EAAS,KAAM,eAGjC,YAAAJ,UAAR,SAAkBplF,EAAanT,EAAeg5F,QAAA,IAAAA,MAAA,KAC1C,IAAMC,EAAY9lF,EAAI9oB,WACtB,OAAO4uG,EAAUl9G,QAAUikB,EAAQi5F,EAC/B,IAAIrzG,MAAMoa,EAAQi5F,EAAUl9G,OAAS,GAAG2F,KAAKs3G,GAAgBC,GAG7D,YAAAR,kBAAR,SAA0Bt0G,EAAa0H,GAuBnC,OAtBA1H,EAAOpE,KAAO,KACdoE,EAAOmB,KAAOuG,EAAEvG,KAChBnB,EAAOiC,MAAQyF,EAAEzF,MACjBjC,EAAOkC,OAAS,KAEhBlC,EAAO+0G,UAAY,KACnB/0G,EAAOg1G,eAAiB,KACxBh1G,EAAOi1G,eAAiB,KACxBj1G,EAAOk1G,WAAa,KAEhBxtG,EAAExF,QACFwF,EAAExF,OAAOrE,SAAQ,SAACmD,GACThB,EAAOkC,OAGRlC,EAAOkC,QAAU,KAFjBlC,EAAOkC,OAAS,GAKpBlC,EAAOkC,SAAYlB,EAAEG,MAAQ,IAAM,KAAOH,EAAE7I,SAI5CuP,EAAE9L,MACN,KAAK,EAAAyG,WAAWC,MACZtC,EAAOpE,KAAO,QACdoE,EAAOg1G,eAAiBttG,EAAEvF,MAAMmB,SAChCtD,EAAOi1G,eAAiBvtG,EAAEvF,MAAMoB,SAChCvD,EAAOk1G,WAAaxtG,EAAEvF,MAAM+e,KAExBxZ,EAAEvF,MAAMqB,OACRxD,EAAO+0G,UAAY,GACnBrtG,EAAEvF,MAAMqB,KAAK3F,SAAQ,SAAAc,GACjBqB,EAAO+0G,UAAUn2G,KAAKD,EAAEL,SAGhC,MACJ,KAAK,EAAA+D,WAAWoB,WACZzD,EAAOpE,KAAO,OACd,MACJ,QACI,OAGR,OAAOoE,GAEf,EAtUA,GAAa,EAAA8iB,iB,8ECzBb,YAEA,SAEA,SACA,SAEA,SACA,SACA,SACA,SACA,SAEA,2BA0IA,OAzIW,EAAAqyF,SAAP,WACI,IAAMjkE,EAAM,IAAI9sB,EAahB,OAZA8sB,EAAIl1C,eAAiB,KACrBk1C,EAAIlyB,cAAgB,KACpBkyB,EAAI1yB,SAAW,KACf0yB,EAAIt1C,KAAO,EAAAyG,WAAWC,MACtB4uC,EAAI/vC,KAAO,YACX+vC,EAAIjvC,MAAQ,8BACZivC,EAAIlvC,UAAW,EACfkvC,EAAIhvC,OAAS,GACbgvC,EAAI/uC,MAAQ,KACZ+uC,EAAIxtC,WAAa,KACjBwtC,EAAI5wC,KAAO,KACX4wC,EAAItyB,SAAW,KACRsyB,GAGJ,EAAAkkE,OAAP,SAAclkE,EAAa3N,G,QAMvB,QANuB,IAAAA,MAAA,IAAW,EAAAxhC,YAClCwhC,EAAK3nC,KAAOs1C,EAAIt1C,KAChB2nC,EAAK/kB,SAAW0yB,EAAI1yB,SACO,MAAvB+kB,EAAKvnC,iBACLunC,EAAKvnC,eAAiBk1C,EAAIl1C,gBAE1BunC,EAAKvkB,eAAiBkyB,EAAIlyB,cAAe,CACzC,IAAMnW,EAAM,IAAIszE,KAAuB,QAAnB,EAAC54C,EAAKvkB,qBAAa,QAAI,IAAImH,OAAwB,QAAlB,EAAC+qB,EAAIlyB,qBAAa,QAAI,KAC3EukB,EAAKvkB,cAAgBvd,MAAMC,KAAKmH,EAAIwsG,UAUxC,OARA9xE,EAAKpiC,KAAO+vC,EAAI/vC,KAChBoiC,EAAKthC,MAAQivC,EAAIjvC,MACjBshC,EAAKvhC,SAAWkvC,EAAIlvC,SAEF,MAAdkvC,EAAIhvC,SACJqhC,EAAKrhC,OAASgvC,EAAIhvC,OAAOnB,KAAI,SAAAC,GAAK,SAAAiiB,MAAMmyF,OAAOp0G,OAG3CkwC,EAAIt1C,MACR,KAAK,EAAAyG,WAAWC,MACZihC,EAAKphC,MAAQ,EAAAG,MAAM8yG,OAAOlkE,EAAI/uC,OAC9B,MACJ,KAAK,EAAAE,WAAWoB,WACZ8/B,EAAK7/B,WAAa,EAAAD,WAAW2xG,OAAOlkE,EAAIxtC,YACxC,MACJ,KAAK,EAAArB,WAAWuR,KACZ2vB,EAAKjjC,KAAO,EAAAsT,KAAKwhG,OAAOlkE,EAAI5wC,MAC5B,MACJ,KAAK,EAAA+B,WAAWwR,SACZ0vB,EAAK3kB,SAAW,EAAA/K,SAASuhG,OAAOlkE,EAAItyB,UAI5C,OAAO2kB,GAGJ,EAAA+xE,SAAP,SAAgBpkE,EAAazoC,GAczB,YAdyB,IAAAA,MAAA,IAAa,EAAA2b,QACtC3b,EAAO7M,KAAOs1C,EAAIt1C,KAClB6M,EAAO+V,SAAW0yB,EAAI1yB,SACO,MAAzB/V,EAAOzM,iBACPyM,EAAOzM,eAAiBk1C,EAAIl1C,gBAEhCyM,EAAOtH,KAAmB,MAAZ+vC,EAAI/vC,KAAe,IAAI,EAAAgN,UAAU+iC,EAAI/vC,MAAQ,KAC3DsH,EAAOxG,MAAqB,MAAbivC,EAAIjvC,MAAgB,IAAI,EAAAkM,UAAU+iC,EAAIjvC,OAAS,KAC9DwG,EAAOzG,SAAWkvC,EAAIlvC,SAEJ,MAAdkvC,EAAIhvC,SACJuG,EAAOvG,OAASgvC,EAAIhvC,OAAOnB,KAAI,SAAAC,GAAK,SAAAiiB,MAAMqyF,SAASt0G,OAG/CkwC,EAAIt1C,MACR,KAAK,EAAAyG,WAAWC,MACZmG,EAAOtG,MAAQ,EAAAG,MAAMgzG,SAASpkE,EAAI/uC,OAClC,MACJ,KAAK,EAAAE,WAAWoB,WACZgF,EAAO/E,WAAa,EAAAD,WAAW6xG,SAASpkE,EAAIxtC,YAC5C,MACJ,KAAK,EAAArB,WAAWuR,KACZnL,EAAOnI,KAAO,EAAAsT,KAAK0hG,SAASpkE,EAAI5wC,MAChC,MACJ,KAAK,EAAA+B,WAAWwR,SACZpL,EAAOmW,SAAW,EAAA/K,SAASyhG,SAASpkE,EAAItyB,UAIhD,OAAOnW,GAiBX,YAAAqwF,MAAA,SAAM1zD,G,QAuBF,OAtBA3rC,KAAKuC,eAAiBopC,EAAEppC,eACxBvC,KAAK+kB,SAAW4mB,EAAE5mB,SAClB/kB,KAAKmC,KAAOwpC,EAAExpC,KAEVwpC,aAAa,EAAArjC,YACbtI,KAAK0H,KAAOikC,EAAEjkC,KACd1H,KAAKwI,MAAQmjC,EAAEnjC,QAEfxI,KAAK0H,KAAa,QAAT,EAAGikC,EAAEjkC,YAAI,eAAEmN,gBACpB7U,KAAKwI,MAAe,QAAV,EAAGmjC,EAAEnjC,aAAK,eAAEqM,iBAG1B7U,KAAKuI,SAAWojC,EAAEpjC,SAEF,MAAZojC,EAAEljC,SACe,EAAAH,WACbtI,KAAKyI,OAASkjC,EAAEljC,OAAOnB,KAAI,SAAAC,GAAK,WAAI,EAAAiiB,MAAMjiB,OAM1CokC,EAAExpC,MACN,KAAK,EAAAyG,WAAWC,MACZ7I,KAAK0I,MAAQ,IAAI,EAAAG,MAAM8iC,EAAEjjC,OACzB,MACJ,KAAK,EAAAE,WAAWoB,WACZhK,KAAKiK,WAAa,IAAI,EAAAD,WAAW2hC,EAAE1hC,YACnC,MACJ,KAAK,EAAArB,WAAWuR,KACZna,KAAK6G,KAAO,IAAI,EAAAsT,KAAKwxB,EAAE9kC,MACvB,MACJ,KAAK,EAAA+B,WAAWwR,SACZpa,KAAKmlB,SAAW,IAAI,EAAA/K,SAASuxB,EAAExmB,YAI/C,EA1IA,GAAa,EAAAwF,U,8ECbb,YAEA,SACA,SAEA,aAuCI,WAAYghB,G,gBACC,MAALA,IAIAA,aAAa,EAAAzzB,UACblY,KAAKuX,eAAiBo0B,EAAEp0B,eACxBvX,KAAK6X,MAAQ8zB,EAAE9zB,MACf7X,KAAK8X,OAAS6zB,EAAE7zB,OAChB9X,KAAK8G,SAAW6kC,EAAE7kC,SAClB9G,KAAK+G,QAAU4kC,EAAE5kC,QACjB/G,KAAKwX,KAAOm0B,EAAEn0B,OAEdxX,KAAKuX,eAAiC,QAAnB,EAAGo0B,EAAEp0B,sBAAc,eAAE1C,gBACxC7U,KAAK6X,MAAe,QAAV,EAAG8zB,EAAE9zB,aAAK,eAAEhD,gBACtB7U,KAAK8X,OAAiB,QAAX,EAAG6zB,EAAE7zB,cAAM,eAAEjD,gBACxB7U,KAAK8G,SAAqB,QAAb,EAAG6kC,EAAE7kC,gBAAQ,eAAE+N,gBAC5B7U,KAAK+G,QAAmB,QAAZ,EAAG4kC,EAAE5kC,eAAO,eAAE8N,gBAC1B7U,KAAKwX,KAAa,QAAT,EAAGm0B,EAAEn0B,YAAI,eAAE3C,kBAGhC,OA3DW,EAAA6mG,SAAP,WACI,IAAMjkE,EAAM,IAAIt9B,EAOhB,OANAs9B,EAAIlgC,eAAiB,WACrBkgC,EAAI5/B,MAAQ,OACZ4/B,EAAI3/B,OAAS,mBACb2/B,EAAI3wC,SAAW,KACf2wC,EAAI1wC,QAAU,OACd0wC,EAAIjgC,KAAO,MACJigC,GAGJ,EAAAkkE,OAAP,SAAclkE,EAAW3N,GAOrB,YAPqB,IAAAA,MAAA,IAAW,EAAA5xB,UAChC4xB,EAAKvyB,eAAiBkgC,EAAIlgC,eAC1BuyB,EAAKjyB,MAAQ4/B,EAAI5/B,MACjBiyB,EAAKhyB,OAAS2/B,EAAI3/B,OAClBgyB,EAAKhjC,SAAW2wC,EAAI3wC,SACpBgjC,EAAK/iC,QAAU0wC,EAAI1wC,QACnB+iC,EAAKtyB,KAAOigC,EAAIjgC,KACTsyB,GAGJ,EAAA+xE,SAAP,SAAgBpkE,EAAWzoC,GAOvB,YAPuB,IAAAA,MAAA,IAAa,EAAAmL,MACpCnL,EAAOuI,eAAuC,MAAtBkgC,EAAIlgC,eAAyB,IAAI,EAAA7C,UAAU+iC,EAAIlgC,gBAAkB,KACzFvI,EAAO6I,MAAqB,MAAb4/B,EAAI5/B,MAAgB,IAAI,EAAAnD,UAAU+iC,EAAI5/B,OAAS,KAC9D7I,EAAO8I,OAAuB,MAAd2/B,EAAI3/B,OAAiB,IAAI,EAAApD,UAAU+iC,EAAI3/B,QAAU,KACjE9I,EAAOlI,SAA2B,MAAhB2wC,EAAI3wC,SAAmB,IAAI,EAAA4N,UAAU+iC,EAAI3wC,UAAY,KACvEkI,EAAOjI,QAAyB,MAAf0wC,EAAI1wC,QAAkB,IAAI,EAAA2N,UAAU+iC,EAAI1wC,SAAW,KACpEiI,EAAOwI,KAAmB,MAAZigC,EAAIjgC,KAAe,IAAI,EAAA9C,UAAU+iC,EAAIjgC,MAAQ,KACpDxI,GA+Bf,EA5DA,GAAa,EAAAmL,Q,8ECLb,aAEA,SAEA,SACA,SAEA,aA2BI,WAAYwxB,G,QACC,MAALA,IAIAA,aAAa,EAAAviC,WACbpJ,KAAK0H,KAAOikC,EAAEjkC,KACd1H,KAAKtB,MAAQitC,EAAEjtC,QAEfsB,KAAK0H,KAAa,QAAT,EAAGikC,EAAEjkC,YAAI,eAAEmN,gBACpB7U,KAAKtB,MAAe,QAAV,EAAGitC,EAAEjtC,aAAK,eAAEmW,iBAE1B7U,KAAKmC,KAAOwpC,EAAExpC,MAEtB,OAxCW,EAAAu5G,SAAP,WACI,IAAMjkE,EAAM,IAAIjuB,EAIhB,OAHAiuB,EAAI/vC,KAAO,aACX+vC,EAAI/4C,MAAQ,aACZ+4C,EAAIt1C,KAAO,EAAA6G,UAAUC,KACdwuC,GAGJ,EAAAkkE,OAAP,SAAclkE,EAAY3N,GAItB,YAJsB,IAAAA,MAAA,IAAW,EAAA1gC,WACjC0gC,EAAK3nC,KAAOs1C,EAAIt1C,KAChB2nC,EAAKprC,MAAQ+4C,EAAI/4C,MACjBorC,EAAKpiC,KAAO+vC,EAAI/vC,KACToiC,GAGJ,EAAA+xE,SAAP,SAAgBpkE,EAAYzoC,GAIxB,YAJwB,IAAAA,MAAA,IAAa,EAAAwa,OACrCxa,EAAO7M,KAAOs1C,EAAIt1C,KAClB6M,EAAOtQ,MAAqB,MAAb+4C,EAAI/4C,MAAgB,IAAI,EAAAgW,UAAU+iC,EAAI/4C,OAAS,KAC9DsQ,EAAOtH,KAAmB,MAAZ+vC,EAAI/vC,KAAe,IAAI,EAAAgN,UAAU+iC,EAAI/vC,MAAQ,KACpDsH,GAqBf,EAzCA,GAAa,EAAAwa,S,8ECPb,aAEA,SACA,SAEA,aAuFI,WAAYmiB,G,wCACC,MAALA,IAIAA,aAAa,EAAAvmB,cACbplB,KAAKiB,MAAQ0qC,EAAE1qC,MACfjB,KAAKwmB,UAAYmlB,EAAEnlB,UACnBxmB,KAAK6lB,WAAa8lB,EAAE9lB,WACpB7lB,KAAKymB,SAAWklB,EAAEllB,SAClBzmB,KAAK8lB,SAAW6lB,EAAE7lB,SAClB9lB,KAAK+lB,SAAW4lB,EAAE5lB,SAClB/lB,KAAKgmB,SAAW2lB,EAAE3lB,SAClBhmB,KAAKujB,KAAOooB,EAAEpoB,KACdvjB,KAAKwjB,MAAQmoB,EAAEnoB,MACfxjB,KAAKyjB,WAAakoB,EAAEloB,WACpBzjB,KAAKqc,QAAUsvB,EAAEtvB,QACjBrc,KAAKimB,QAAU0lB,EAAE1lB,QACjBjmB,KAAKmhB,MAAQwqB,EAAExqB,MACfnhB,KAAKkmB,MAAQylB,EAAEzlB,MACflmB,KAAKmmB,IAAMwlB,EAAExlB,IACbnmB,KAAK6J,SAAW8hC,EAAE9hC,SAClB7J,KAAKomB,eAAiBulB,EAAEvlB,eACxBpmB,KAAKqmB,cAAgBslB,EAAEtlB,gBAEvBrmB,KAAKiB,MAAe,QAAV,EAAG0qC,EAAE1qC,aAAK,eAAE4T,gBACtB7U,KAAKwmB,UAAuB,QAAd,EAAGmlB,EAAEnlB,iBAAS,eAAE3R,gBAC9B7U,KAAK6lB,WAAyB,QAAf,EAAG8lB,EAAE9lB,kBAAU,eAAEhR,gBAChC7U,KAAKymB,SAAqB,QAAb,EAAGklB,EAAEllB,gBAAQ,eAAE5R,gBAC5B7U,KAAK8lB,SAAqB,QAAb,EAAG6lB,EAAE7lB,gBAAQ,eAAEjR,gBAC5B7U,KAAK+lB,SAAqB,QAAb,EAAG4lB,EAAE5lB,gBAAQ,eAAElR,gBAC5B7U,KAAKgmB,SAAqB,QAAb,EAAG2lB,EAAE3lB,gBAAQ,eAAEnR,gBAC5B7U,KAAKujB,KAAa,QAAT,EAAGooB,EAAEpoB,YAAI,eAAE1O,gBACpB7U,KAAKwjB,MAAe,QAAV,EAAGmoB,EAAEnoB,aAAK,eAAE3O,gBACtB7U,KAAKyjB,WAAyB,QAAf,EAAGkoB,EAAEloB,kBAAU,eAAE5O,gBAChC7U,KAAKqc,QAAmB,QAAZ,EAAGsvB,EAAEtvB,eAAO,eAAExH,gBAC1B7U,KAAKimB,QAAmB,QAAZ,EAAG0lB,EAAE1lB,eAAO,eAAEpR,gBAC1B7U,KAAKmhB,MAAe,QAAV,EAAGwqB,EAAExqB,aAAK,eAAEtM,gBACtB7U,KAAKkmB,MAAe,QAAV,EAAGylB,EAAEzlB,aAAK,eAAErR,gBACtB7U,KAAKmmB,IAAW,QAAR,EAAGwlB,EAAExlB,WAAG,eAAEtR,gBAClB7U,KAAK6J,SAAqB,QAAb,EAAG8hC,EAAE9hC,gBAAQ,eAAEgL,gBAC5B7U,KAAKomB,eAAiC,QAAnB,EAAGulB,EAAEvlB,sBAAc,eAAEvR,gBACxC7U,KAAKqmB,cAA+B,QAAlB,EAAGslB,EAAEtlB,qBAAa,eAAExR,kBAGlD,OAnIW,EAAA6mG,SAAP,WACI,IAAMjkE,EAAM,IAAIr9B,EAmBhB,OAlBAq9B,EAAIx2C,MAAQ,KACZw2C,EAAIjxB,UAAY,OAChBixB,EAAI5xB,WAAa,UACjB4xB,EAAIhxB,SAAW,MACfgxB,EAAI3xB,SAAW,aACf2xB,EAAI1xB,SAAW,WACf0xB,EAAIzxB,SAAW,KACfyxB,EAAIl0B,KAAO,WACXk0B,EAAIj0B,MAAQ,KACZi0B,EAAIh0B,WAAa,QACjBg0B,EAAIp7B,QAAU,KACdo7B,EAAIxxB,QAAU,YACdwxB,EAAIt2B,MAAQ,mBACZs2B,EAAIvxB,MAAQ,aACZuxB,EAAItxB,IAAM,eACVsxB,EAAI5tC,SAAW,OACf4tC,EAAIrxB,eAAiB,eACrBqxB,EAAIpxB,cAAgB,oBACboxB,GAGJ,EAAAkkE,OAAP,SAAclkE,EAAe3N,GAmBzB,YAnByB,IAAAA,MAAA,IAAW,EAAA1kB,cACpC0kB,EAAK7oC,MAAQw2C,EAAIx2C,MACjB6oC,EAAKtjB,UAAYixB,EAAIjxB,UACrBsjB,EAAKjkB,WAAa4xB,EAAI5xB,WACtBikB,EAAKrjB,SAAWgxB,EAAIhxB,SACpBqjB,EAAKhkB,SAAW2xB,EAAI3xB,SACpBgkB,EAAK/jB,SAAW0xB,EAAI1xB,SACpB+jB,EAAK9jB,SAAWyxB,EAAIzxB,SACpB8jB,EAAKvmB,KAAOk0B,EAAIl0B,KAChBumB,EAAKtmB,MAAQi0B,EAAIj0B,MACjBsmB,EAAKrmB,WAAag0B,EAAIh0B,WACtBqmB,EAAKztB,QAAUo7B,EAAIp7B,QACnBytB,EAAK7jB,QAAUwxB,EAAIxxB,QACnB6jB,EAAK3oB,MAAQs2B,EAAIt2B,MACjB2oB,EAAK5jB,MAAQuxB,EAAIvxB,MACjB4jB,EAAK3jB,IAAMsxB,EAAItxB,IACf2jB,EAAKjgC,SAAW4tC,EAAI5tC,SACpBigC,EAAK1jB,eAAiBqxB,EAAIrxB,eAC1B0jB,EAAKzjB,cAAgBoxB,EAAIpxB,cAClByjB,GAGJ,EAAA+xE,SAAP,SAAgBpkE,EAAezoC,GAmB3B,YAnB2B,IAAAA,MAAA,IAAa,EAAAoL,UACxCpL,EAAO/N,MAAqB,MAAbw2C,EAAIx2C,MAAgB,IAAI,EAAAyT,UAAU+iC,EAAIx2C,OAAS,KAC9D+N,EAAOwX,UAA6B,MAAjBixB,EAAIjxB,UAAoB,IAAI,EAAA9R,UAAU+iC,EAAIjxB,WAAa,KAC1ExX,EAAO6W,WAA+B,MAAlB4xB,EAAI5xB,WAAqB,IAAI,EAAAnR,UAAU+iC,EAAI5xB,YAAc,KAC7E7W,EAAOyX,SAA2B,MAAhBgxB,EAAIhxB,SAAmB,IAAI,EAAA/R,UAAU+iC,EAAIhxB,UAAY,KACvEzX,EAAO8W,SAA2B,MAAhB2xB,EAAI3xB,SAAmB,IAAI,EAAApR,UAAU+iC,EAAI3xB,UAAY,KACvE9W,EAAO+W,SAA2B,MAAhB0xB,EAAI1xB,SAAmB,IAAI,EAAArR,UAAU+iC,EAAI1xB,UAAY,KACvE/W,EAAOgX,SAA2B,MAAhByxB,EAAIzxB,SAAmB,IAAI,EAAAtR,UAAU+iC,EAAIzxB,UAAY,KACvEhX,EAAOuU,KAAmB,MAAZk0B,EAAIl0B,KAAe,IAAI,EAAA7O,UAAU+iC,EAAIl0B,MAAQ,KAC3DvU,EAAOwU,MAAqB,MAAbi0B,EAAIj0B,MAAgB,IAAI,EAAA9O,UAAU+iC,EAAIj0B,OAAS,KAC9DxU,EAAOyU,WAA+B,MAAlBg0B,EAAIh0B,WAAqB,IAAI,EAAA/O,UAAU+iC,EAAIh0B,YAAc,KAC7EzU,EAAOqN,QAAyB,MAAfo7B,EAAIp7B,QAAkB,IAAI,EAAA3H,UAAU+iC,EAAIp7B,SAAW,KACpErN,EAAOiX,QAAyB,MAAfwxB,EAAIxxB,QAAkB,IAAI,EAAAvR,UAAU+iC,EAAIxxB,SAAW,KACpEjX,EAAOmS,MAAqB,MAAbs2B,EAAIt2B,MAAgB,IAAI,EAAAzM,UAAU+iC,EAAIt2B,OAAS,KAC9DnS,EAAOkX,MAAqB,MAAbuxB,EAAIvxB,MAAgB,IAAI,EAAAxR,UAAU+iC,EAAIvxB,OAAS,KAC9DlX,EAAOmX,IAAiB,MAAXsxB,EAAItxB,IAAc,IAAI,EAAAzR,UAAU+iC,EAAItxB,KAAO,KACxDnX,EAAOnF,SAA2B,MAAhB4tC,EAAI5tC,SAAmB,IAAI,EAAA6K,UAAU+iC,EAAI5tC,UAAY,KACvEmF,EAAOoX,eAAuC,MAAtBqxB,EAAIrxB,eAAyB,IAAI,EAAA1R,UAAU+iC,EAAIrxB,gBAAkB,KACzFpX,EAAOqX,cAAqC,MAArBoxB,EAAIpxB,cAAwB,IAAI,EAAA3R,UAAU+iC,EAAIpxB,eAAiB,KAC/ErX,GAmEf,EApIA,GAAa,EAAAoL,Y,8ECLb,aAEA,SAEA,SACA,SAEA,aAmCI,WAAYuxB,G,UACC,MAALA,IAIU,MAAVA,EAAE5hC,OACe,EAAApB,UACb3I,KAAK+J,KAAO4hC,EAAE5hC,KAAKzC,KAAI,SAAApC,GAAK,WAAI,EAAA2kC,SAAS3kC,OAM7CymC,aAAa,EAAAhjC,WACb3I,KAAK6J,SAAW8hC,EAAE9hC,SAClB7J,KAAK8J,SAAW6hC,EAAE7hC,SAClB9J,KAAKynB,KAAOkkB,EAAElkB,OAEdznB,KAAK6J,SAAqB,QAAb,EAAG8hC,EAAE9hC,gBAAQ,eAAEgL,gBAC5B7U,KAAK8J,SAAqB,QAAb,EAAG6hC,EAAE7hC,gBAAQ,eAAE+K,gBAC5B7U,KAAKynB,KAAa,QAAT,EAAGkkB,EAAElkB,YAAI,eAAE5S,kBAGhC,OAzDW,EAAA6mG,SAAP,WACI,IAAMjkE,EAAM,IAAI5uC,EAKhB,OAJA4uC,EAAI1tC,KAAO,GACX0tC,EAAI5tC,SAAW,OACf4tC,EAAI3tC,SAAW,gBACf2tC,EAAIhwB,KAAO,mBACJgwB,GAGJ,EAAAkkE,OAAP,SAAclkE,EAAY3N,GAOtB,YAPsB,IAAAA,MAAA,IAAW,EAAAnhC,WACjB,MAAZ8uC,EAAI1tC,OACJ+/B,EAAK//B,KAAO0tC,EAAI1tC,KAAKzC,KAAI,SAAApC,GAAK,SAAA2kC,SAAS8xE,OAAOz2G,OAElD4kC,EAAKjgC,SAAW4tC,EAAI5tC,SACpBigC,EAAKhgC,SAAW2tC,EAAI3tC,SACpBggC,EAAKriB,KAAOgwB,EAAIhwB,KACTqiB,GAGJ,EAAA+xE,SAAP,SAAgBpkE,EAAYzoC,GAOxB,YAPwB,IAAAA,MAAA,IAAa,EAAAnG,OACrB,MAAZ4uC,EAAI1tC,OACJiF,EAAOjF,KAAO0tC,EAAI1tC,KAAKzC,KAAI,SAAApC,GAAK,SAAA2kC,SAASgyE,SAAS32G,OAEtD8J,EAAOnF,SAA2B,MAAhB4tC,EAAI5tC,SAAmB,IAAI,EAAA6K,UAAU+iC,EAAI5tC,UAAY,KACvEmF,EAAOlF,SAA2B,MAAhB2tC,EAAI3tC,SAAmB,IAAI,EAAA4K,UAAU+iC,EAAI3tC,UAAY,KACvEkF,EAAOyY,KAAmB,MAAZgwB,EAAIhwB,KAAe,IAAI,EAAA/S,UAAU+iC,EAAIhwB,MAAQ,KACpDzY,GA+Bf,EA1DA,GAAa,EAAAnG,S,8ECLb,aAEA,SACA,SAEA,aAuBI,WAAY8iC,G,MAFZ,KAAA1mC,MAAsB,KAGT,MAAL0mC,IAIAA,aAAa,EAAA5mC,aACb/E,KAAK6E,IAAM8mC,EAAE9mC,IAEb7E,KAAK6E,IAAW,QAAR,EAAG8mC,EAAE9mC,WAAG,eAAEgQ,gBAEtB7U,KAAKiF,MAAQ0mC,EAAE1mC,OAEvB,OAlCW,EAAAy2G,SAAP,WACI,IAAMjkE,EAAM,IAAI5N,EAGhB,OAFA4N,EAAI5yC,IAAM,qBACV4yC,EAAIxyC,MAAQ,KACLwyC,GAGJ,EAAAkkE,OAAP,SAAclkE,EAAe3N,GAGzB,YAHyB,IAAAA,MAAA,IAAW,EAAA/kC,cACpC+kC,EAAKjlC,IAAM4yC,EAAI5yC,IACfilC,EAAK7kC,MAAQwyC,EAAIxyC,MACV6kC,GAGJ,EAAA+xE,SAAP,SAAgBpkE,EAAezoC,GAG3B,YAH2B,IAAAA,MAAA,IAAa,EAAA66B,UACxC76B,EAAOnK,IAAiB,MAAX4yC,EAAI5yC,IAAc,IAAI,EAAA6P,UAAU+iC,EAAI5yC,KAAO,KACxDmK,EAAO/J,MAAQwyC,EAAIxyC,MACZ+J,GAkBf,EAnCA,GAAa,EAAA66B,Y,8ECPb,aAEA,QAEA,SAEA,aAmBI,WAAY8B,GACC,MAALA,IAIJ3rC,KAAKmC,KAAOwpC,EAAExpC,MAEtB,OAzBW,EAAAu5G,SAAP,WACI,IAAMjkE,EAAM,IAAIztC,EAEhB,OADAytC,EAAIt1C,KAAO,EAAAgI,eAAeC,QACnBqtC,GAGJ,EAAAkkE,OAAP,SAAclkE,EAAiB3N,GAE3B,YAF2B,IAAAA,MAAA,IAAW,EAAA5/B,gBACtC4/B,EAAK3nC,KAAOs1C,EAAIt1C,KACT2nC,GAGJ,EAAA+xE,SAAP,SAAgBpkE,EAAiB3N,GAE7B,YAF6B,IAAAA,MAAA,IAAW,EAAA9/B,YACxC8/B,EAAK3nC,KAAOs1C,EAAIt1C,KACT2nC,GAYf,EA1BA,GAAa,EAAA9/B,c,8ECNb,aAEA,SACA,SAEA,2BAyCA,OAxCW,EAAA0xG,SAAP,WACI,IAAMjkE,EAAM,IAAI30B,EAIhB,OAHA20B,EAAIl1C,eAAiB,uCACrBk1C,EAAI/vC,KAAO,kBACX+vC,EAAI90B,WAAa,KACV80B,GAGJ,EAAAkkE,OAAP,SAAclkE,EAAiB3N,GAM3B,YAN2B,IAAAA,MAAA,IAAW,EAAAriC,gBACtCqiC,EAAKpiC,KAAO+vC,EAAI/vC,KAChBoiC,EAAKnnB,WAAa80B,EAAI90B,WACK,MAAvBmnB,EAAKvnC,iBACLunC,EAAKvnC,eAAiBk1C,EAAIl1C,gBAEvBunC,GAGJ,EAAA+xE,SAAP,SAAgBpkE,EAAiBzoC,GAM7B,YAN6B,IAAAA,MAAA,IAAa,EAAA8T,YAC1C9T,EAAOtH,KAAmB,MAAZ+vC,EAAI/vC,KAAe,IAAI,EAAAgN,UAAU+iC,EAAI/vC,MAAQ,KAC3DsH,EAAO2T,WAAa80B,EAAI90B,WACK,MAAzB3T,EAAOzM,iBACPyM,EAAOzM,eAAiBk1C,EAAIl1C,gBAEzByM,GAQX,YAAAqwF,MAAA,SAAM1zD,G,MACF3rC,KAAKuC,eAAiBopC,EAAEppC,eACpBopC,aAAa,EAAAlkC,eACbzH,KAAK0H,KAAOikC,EAAEjkC,KAEd1H,KAAK0H,KAAa,QAAT,EAAGikC,EAAEjkC,YAAI,eAAEmN,gBAExB7U,KAAK2iB,WAAagpB,EAAEhpB,YAE5B,EAzCA,GAAa,EAAAG,c,8ECLb,aAEA,SACA,SAEA,2BA2BA,OA1BW,EAAA44F,SAAP,WACI,IAAMjkE,EAAM,IAAIyO,EAEhB,OADAzO,EAAI/vC,KAAO,cACJ+vC,GAGJ,EAAAkkE,OAAP,SAAclkE,EAAa3N,GAEvB,YAFuB,IAAAA,MAAA,IAAW,EAAApgC,YAClCogC,EAAKpiC,KAAO+vC,EAAI/vC,KACToiC,GAGJ,EAAA+xE,SAAP,SAAgBpkE,EAAazoC,GAEzB,YAFyB,IAAAA,MAAA,IAAa,EAAAk3C,QACtCl3C,EAAOtH,KAAmB,MAAZ+vC,EAAI/vC,KAAe,IAAI,EAAAgN,UAAU+iC,EAAI/vC,MAAQ,KACpDsH,GAMX,YAAAqwF,MAAA,SAAM1zD,G,MACEA,aAAa,EAAAjiC,WACb1J,KAAK0H,KAAOikC,EAAEjkC,KAEd1H,KAAK0H,KAAa,QAAT,EAAGikC,EAAEjkC,YAAI,eAAEmN,iBAGhC,EA3BA,GAAa,EAAAqxC,U,68CCDb,aAQA,SACA,SAEA,aAII,WAAoB1jD,EAAgC+Y,GAAhC,KAAA/Y,aAAgC,KAAA+Y,aAChDvb,KAAK87G,uBAAyB,IAAI,EAAAC,uBAAuBv5G,GACzDxC,KAAKg8G,2BAA6B,IAAI,EAAAC,2BAA2B1gG,GAwDzE,OArDU,YAAA2gG,eAAN,SAAqBC,EAAwC3wF,EAAqB4wF,G,sIAElED,EAAWjH,gB,KACV,EAAAmH,eAAeC,OAAf,Y,KAIA,EAAAD,eAAeE,MAAf,Y,mBAHD,SAAMv8G,KAAKg8G,2BAA2BQ,OAAOhxF,EAAS3W,gBAAiBunG,GACnE,SAAAt0E,GAAM,SAAKvsB,WAAW8+D,aAAa8hC,EAAWh0C,aAAavoE,GAAIu8G,EAAWh0C,aAAajpB,KAAKt/C,GAAIkoC,O,OACpG,OAFA,SAEA,M,OAOA,OALM20E,EAAkB,gD,kDACI,SAAMz8G,KAAKub,WAAW4+D,uBAAuBgiC,EAAWh0C,aAAavoE,GACzFu8G,EAAWh0C,aAAajpB,KAAKt/C,K,OACjC,MAAO,CAAP,EAFwB,SAED2F,aAE3B,GAAMvF,KAAK87G,uBAAuBU,OAAOL,EAAW52G,IAAK62G,EACrDK,I,OACJ,OAFA,SAEA,M,OAEA,MAAM,IAAI96G,MAAM,4B,0BAGxB,O,WAAA,GAAM3B,KAAKub,WAAWk/D,WAAW0hC,EAAWh0C,aAAavoE,K,OACzD,MADA,SACM,E,yBAIR,YAAAooF,uBAAN,SAA6BzjB,EAAgB43C,EAA0CO,EAA2BN,G,2GACxGx7G,EAAW2jE,EAAQ43C,EAAWp0B,mBAAqBo0B,EAAWpoC,e,+CAExDooC,EAAWjH,gB,KACV,EAAAmH,eAAeC,OAAf,Y,KAIA,EAAAD,eAAeE,MAAf,Y,mBAHD,SAAMv8G,KAAKg8G,2BAA2BQ,OAAOE,EAAmBN,GAC5D,SAAAt0E,GAAM,SAAKvsB,WAAW2gE,mBAAmBt7E,EAAShB,GAAIu8G,EAAW94C,aAAcv7B,O,OACnF,OAFA,SAEA,M,OAOA,OALM20E,EAAkB,gD,kDACI,SAAMz8G,KAAKub,WAAW0gE,yBAAyBr7E,EAAShB,GAC5Eu8G,EAAW94C,e,OACf,MAAO,CAAP,EAFwB,SAED99D,aAE3B,GAAMvF,KAAK87G,uBAAuBU,OAAOL,EAAW52G,IAAK62G,EAAmBK,I,OAC5E,OADA,SACA,M,OAEA,MAAM,IAAI96G,MAAM,6B,6CAGpB4iE,EACA,GAAMvkE,KAAKub,WAAW+nD,4BAA4B1iE,EAAShB,GAAIu8G,EAAW94C,eAD1E,O,cACA,S,eAEA,SAAMrjE,KAAKub,WAAW6nD,uBAAuBxiE,EAAShB,GAAIu8G,EAAW94C,e,QAArE,S,mBAEJ,MAAM,E,0BAGlB,EA9DA,GAAa,EAAAowC,qB,8ECfb,SAAY4I,GACR,uBACA,qBAFJ,CAAY,EAAAA,iBAAA,EAAAA,eAAc,M,68CCE1B,YAOA,aACI,WAAoB75G,GAAA,KAAAA,aA+IxB,OA7IU,YAAAg6G,OAAN,SAAaj3G,EAAapC,EAAsBs5G,G,iGACxCt5G,EAAKqJ,OAAOG,YAPY,UAQjB,GAAM3M,KAAK28G,gBAAgBp3G,EAAKpC,IADvC,M,OACA,MAAO,CAAP,EAAO,U,OAEA,SAAMnD,KAAK48G,kBAAkBr3G,EAAKpC,EAAMs5G,I,OAA/C,MAAO,CAAP,EAAO,kBAGD,YAAAE,gBAAd,SAA8Bp3G,EAAapC,G,sGAgBlB,OAff05G,EAAY,EAAAp3G,MAAM6I,OAAO/I,GACzB0yE,EAAU,IAAIC,QAAQ,CACxB,aAAa,IAAI5uD,MAAO64E,cACxB,eAAgB0a,EAAUC,aAAat+G,IAAI,MAC3C,iBAAkB2E,EAAKqJ,OAAOG,WAAWF,WACzC,iBAAkB,cAGhB6X,EAAU,IAAIw7B,QAAQv6C,EAAK,CAC7ByY,KAAM7a,EAAKqJ,OACXy3D,MAAO,WACPvoD,OAAQ,MACRu8D,QAASA,IAGQ,GAAMp4B,MAAMv7B,I,OAEjC,GAA4B,OAFtBy4F,EAAe,UAEJj9F,OACb,MAAM,IAAIne,MAAM,gCAAgCo7G,EAAaj9F,Q,kBAGvD,YAAA88F,kBAAd,SAAgCr3G,EAAapC,EAAsBs5G,G,8IAO/D,GANM1iG,EAAU,EAAAtU,MAAM6I,OAAO/I,GACvBy3G,EAAYh9G,KAAKi9G,gBAAgBljG,EAAQ+iG,aAAat+G,IAAI,OAC5D0+G,EAAa,EACXC,EAAYjvG,KAAK+hF,KAAK9sF,EAAKqJ,OAAOG,WAAaqwG,GAC/CI,EAAyB,GAE3BD,EAzCgB,IA0ChB,MAAM,IAAIx7G,MAAM,+CA1CA,IA0C+Cq7G,G,iEAIxDE,EAAaC,EACV,GAAMn9G,KAAKq9G,oBAAoB93G,EAAKk3G,IADjB,M,OAqBH,OApBtBl3G,EAAM,SACA+3G,EAAW,EAAA73G,MAAM6I,OAAO/I,GACxBg4G,EAAUv9G,KAAKw9G,eAAeN,GACpCI,EAASR,aAAa90E,OAAO,OAAQ,SACrCs1E,EAASR,aAAa90E,OAAO,UAAWu1E,GAClCpuF,EAAQ+tF,EAAaF,EACrBS,EAAYt6G,EAAKqJ,OAAOvK,MAAMktB,EAAOA,EAAQ6tF,GAC7CU,EAAe,IAAIxlC,QAAQ,CAC7B,aAAa,IAAI5uD,MAAO64E,cACxB,eAAgBmb,EAASR,aAAat+G,IAAI,MAC1C,iBAAkBi/G,EAAU9wG,WAAWF,aAGrCkxG,EAAe,IAAI79D,QAAQw9D,EAAS7wG,WAAY,CAClDuR,KAAMy/F,EACNx5C,MAAO,WACPvoD,OAAQ,MACRu8D,QAASylC,IAGS,GAAM79D,MAAM89D,I,cAEL,OAFvBC,EAAgB,UAEJ99F,OAAd,OACMvb,EAAU,2CAA2Cq5G,EAAc99F,OACzE,KAAA9f,KAAKwC,YAAW0c,MAAM,EAAA3a,EAAU,KAAO,GAAMq5G,EAAc79D,S,OAC3D,MADA,WAAsB,EAAiB,WACjC,IAAIp+C,MAAM4C,G,cAGpB64G,EAAaj4G,KAAKo4G,GAClBL,I,aAGE,SAAMl9G,KAAKq9G,oBAAoB93G,EAAKk3G,I,OAiBzB,OAjBjBl3G,EAAM,SACAs4G,EAAe,EAAAp4G,MAAM6I,OAAO/I,GAC5Bu4G,EAAe99G,KAAK89G,aAAaV,GACvCS,EAAaf,aAAa90E,OAAO,OAAQ,aACnCiwC,EAAU,IAAIC,QAAQ,CACxB,aAAa,IAAI5uD,MAAO64E,cACxB,eAAgB0b,EAAaf,aAAat+G,IAAI,MAC9C,iBAAkBs/G,EAAa3/G,OAAOsO,aAGpC6X,EAAU,IAAIw7B,QAAQ+9D,EAAapxG,WAAY,CACjDuR,KAAM8/F,EACN75C,MAAO,WACPvoD,OAAQ,MACRu8D,QAASA,IAGI,GAAMp4B,MAAMv7B,I,cAEL,OAFlB1jB,EAAW,UAEJkf,OAAT,QACMvb,EAAU,gDAAgD3D,EAASkf,OACzE,KAAA9f,KAAKwC,YAAW0c,MAAM,EAAA3a,EAAU,KAAO,GAAM3D,EAASm/C,S,QACtD,MADA,WAAsB,EAAiB,WACjC,IAAIp+C,MAAM4C,G,6BAGpB,M,mCAIM,YAAA84G,oBAAd,SAAkC93G,EAAak3G,G,+GACrCI,EAAY,EAAAp3G,MAAM6I,OAAO/I,GACzBw4G,EAAS,IAAIz0F,KAAqC,QAAjC,EAACuzF,EAAUC,aAAat+G,IAAI,aAAK,QAAI,IAExDgxB,MAAMuuF,EAAOtuF,YACbsuF,EAAOC,QAAQ10F,KAAKstE,MAAQ,MAG5BmnB,EAAOtuF,UAAYnG,KAAKstE,MAAQ,IACzB,GAAM6lB,KADb,M,OACA,MAAO,CAAP,EAAO,U,OAEX,MAAO,CAAP,EAAOl3G,WAGH,YAAAi4G,eAAR,SAAuBN,GAEnB,IAAMe,GAAc,mDAAqDf,EAAWzwG,YAAYxK,OAAO,IACvG,OAAO,EAAAwD,MAAMqI,cAAcmwG,IAGvB,YAAAH,aAAR,SAAqBI,GACjB,IAAIC,EAAM,oDAKV,OAJAD,EAAY95G,SAAQ,SAAAm5G,GAChBY,GAAO,WAAWZ,EAAO,eAE7BY,GAAO,gBAIH,YAAAlB,gBAAR,SAAwBptE,GACpB,OAAIuuE,EAAQ1uG,QAAQmgC,EAAS,eAAiB,EACnC,UACAuuE,EAAQ1uG,QAAQmgC,EAAS,eAAiB,EAC1C,UAEA,SAGnB,EAhJA,GAAa,EAAAksE,yBAkJb,iBA0BI,WAAYlsE,GAJZ,KAAAlpC,KAAO,EACP,KAAAD,MAAQ,EACR,KAAA23G,IAAM,EAGF,IACI,IAAM53G,EAAQopC,EAAQ7pC,MAAM,KAAKsB,KAAI,SAAAg7E,GAAK,OAAAg8B,OAAOtyG,SAASs2E,EAAG,OAC7DtiF,KAAK2G,KAAOF,EAAM,GAClBzG,KAAK0G,MAAQD,EAAM,GACnBzG,KAAKq+G,IAAM53G,EAAM,GACnB,WAWV,OAnCW,EAAAiJ,QAAP,SAAeH,EAA+BC,GAS1C,MARmB,iBAAR,IACPD,EAAI,IAAI6uG,EAAQ7uG,IAGD,iBAAR,IACPC,EAAI,IAAI4uG,EAAQ5uG,IAGbD,EAAE5I,OAAS6I,EAAE7I,KAAO4I,EAAE5I,KAAO6I,EAAE7I,KAClC4I,EAAE7I,QAAU8I,EAAE9I,MAAQ6I,EAAE7I,MAAQ8I,EAAE9I,MAC9B6I,EAAE8uG,MAAQ7uG,EAAE6uG,IAAM9uG,EAAE8uG,IAAM7uG,EAAE6uG,IACxB,GAoBhB,YAAA3uG,QAAA,SAAQ6uG,GACJ,OAAOH,EAAQ1uG,QAAQ1P,KAAMu+G,IAErC,EA3CA,I,09CCvJA,YAEA,aAEI,WAAoBhjG,GAAA,KAAAA,aAoBxB,OAlBU,YAAAihG,OAAN,SAAaE,EAA2BN,EAAmCoC,G,kGACjE12E,EAAK,IAAIC,SACf,IACUmgD,EAAO,IAAIC,KAAK,CAACi0B,EAAkB5vG,QAAS,CAAErK,KAAM,6BAC1D2lC,EAAGE,OAAO,OAAQkgD,EAAMw0B,GAC1B,MAAO77G,GACL,IAAI,EAAA4E,MAAMmF,QAAW,EAAAnF,MAAMsF,UAMvB,MAAMlK,EALNinC,EAAGE,OAAO,OAAQx8B,EAAOvD,KAAKm0G,EAAkB5vG,QAAgB,CAC5D47E,SAAUs0B,EACVr0B,YAAa,6BAOzB,SAAMm2B,EAAQ12E,I,cAAd,S,YAER,EAtBA,GAAa,EAAAm0E,+B,s+CCOb,YAEA,QAEA,SACA,SACA,SACA,SACA,SACA,SAEA,SAGA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SAEA,SACA,SACA,SACA,SACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WAEA,cA6DI,WAAoB7jF,EAAsCC,EAC9C9c,EAAgC7b,EAChC64B,EAA8Cjd,GAFtC,KAAA8c,gBAAsC,KAAAC,gBAC9C,KAAA9c,aAAgC,KAAA7b,cAChC,KAAA64B,oBAA8C,KAAAjd,uBA9D1D,KAAA8iC,sBAAwB,CACpB,CAAEx+C,GAAI,gBAAiB8H,KAAM,oBAC7B,CAAE9H,GAAI,eAAgB8H,KAAM,mBAC5B,CAAE9H,GAAI,cAAe8H,KAAM,kBAC3B,CAAE9H,GAAI,YAAa8H,KAAM,gBACzB,CAAE9H,GAAI,aAAc8H,KAAM,iBAC1B,CAAE9H,GAAI,cAAe8H,KAAM,mBAC3B,CAAE9H,GAAI,gBAAiB8H,KAAM,oBAC7B,CAAE9H,GAAI,eAAgB8H,KAAM,oBAGhC,KAAA22C,qBAAuC,CACnC,CAAEz+C,GAAI,cAAe8H,KAAM,kBAC3B,CAAE9H,GAAI,kBAAmB8H,KAAM,mCAC/B,CAAE9H,GAAI,kBAAmB8H,KAAM,+BAC/B,CAAE9H,GAAI,cAAe8H,KAAM,kBAC3B,CAAE9H,GAAI,YAAa8H,KAAM,gBACzB,CAAE9H,GAAI,YAAa8H,KAAM,gBACzB,CAAE9H,GAAI,aAAc8H,KAAM,iBAC1B,CAAE9H,GAAI,iBAAkB8H,KAAM,qBAC9B,CAAE9H,GAAI,YAAa8H,KAAM,uBACzB,CAAE9H,GAAI,oBAAqB8H,KAAM,yBACjC,CAAE9H,GAAI,aAAc8H,KAAM,iBAC1B,CAAE9H,GAAI,aAAc8H,KAAM,kBAC1B,CAAE9H,GAAI,mBAAoB8H,KAAM,wBAChC,CAAE9H,GAAI,eAAgB8H,KAAM,oBAC5B,CAAE9H,GAAI,cAAe8H,KAAM,kBAC3B,CAAE9H,GAAI,oBAAqB8H,KAAM,yBACjC,CAAE9H,GAAI,aAAc8H,KAAM,iBAC1B,CAAE9H,GAAI,cAAe8H,KAAM,kBAC3B,CAAE9H,GAAI,eAAgB8H,KAAM,mBAC5B,CAAE9H,GAAI,WAAY8H,KAAM,eACxB,CAAE9H,GAAI,eAAgB8H,KAAM,mBAC5B,CAAE9H,GAAI,SAAU8H,KAAM,oCACtB,CAAE9H,GAAI,aAAc8H,KAAM,2BAC1B,CAAE9H,GAAI,aAAc8H,KAAM,iBAC1B,CAAE9H,GAAI,cAAe8H,KAAM,kBAC3B,CAAE9H,GAAI,WAAY8H,KAAM,eACxB,CAAE9H,GAAI,aAAc8H,KAAM,iBAC1B,CAAE9H,GAAI,YAAa8H,KAAM,4CACzB,CAAE9H,GAAI,UAAW8H,KAAM,cACvB,CAAE9H,GAAI,mBAAoB8H,KAAM,wBAChC,CAAE9H,GAAI,cAAe8H,KAAM,kBAC3B,CAAE9H,GAAI,cAAe8H,KAAM,kBAC3B,CAAE9H,GAAI,WAAY8H,KAAM,yBACxB,CAAE9H,GAAI,YAAa8H,KAAM,0BACzB,CAAE9H,GAAI,aAAc8H,KAAM,sBAC1B,CAAE9H,GAAI,eAAgB8H,KAAM,oCAC5B,CAAE9H,GAAI,eAAgB8H,KAAM,mBAC5B,CAAE9H,GAAI,oBAAqB8H,KAAM,wBACjC,CAAE9H,GAAI,UAAW8H,KAAM,cACvB,CAAE9H,GAAI,gBAAiB8H,KAAM,oBAC7B,CAAE9H,GAAI,eAAgB8H,KAAM,mBAC5B,CAAE9H,GAAI,gBAAiB8H,KAAM,oCAC7B,CAAE9H,GAAI,eAAgB8H,KAAM,mBAC5B,CAAE9H,GAAI,cAAe8H,KAAM,kBAC3B,CAAE9H,GAAI,cAAe8H,KAAM,kBAC3B,CAAE9H,GAAI,UAAW8H,KAAM,eA0P/B,OAnPI,YAAA+2G,iBAAA,WACI,OAAOz+G,KAAKo+C,sBAAsB1xB,OAAO1sB,KAAKq+C,uBAG5C,YAAAJ,OAAN,SAAaL,EAAoBE,EAAsBv7C,G,YAAA,IAAAA,MAAA,M,iGAC9B,SAAMq7C,EAAS15C,MAAM45C,I,YAApC4gE,EAAe,UACJp0G,QAAb,YACA,GAAoC,IAAhCo0G,EAAar3G,QAAQlJ,QAAgD,IAAhCugH,EAAa/0G,QAAQxL,OAC1D,MAAO,CAAP,EAAO,IAAIwD,MAAM3B,KAAKN,YAAYO,EAAE,wBACjC,GAAIy+G,EAAa/0G,QAAQxL,OAAS,IAC/BwgH,EAAUzwG,KAAKunB,MAAMipF,EAAa/0G,QAAQxL,OAAS,GACnDygH,EAAOF,EAAa/0G,QAAQxL,OAAS,EAEvC6B,KAAK6+G,QAAQH,EAAa/0G,QAAQ,KAClC3J,KAAK6+G,QAAQH,EAAa/0G,QAAQg1G,KAClC3+G,KAAK6+G,QAAQH,EAAa/0G,QAAQi1G,KAClC,MAAO,CAAP,EAAO,IAAIj9G,MAAM3B,KAAKN,YAAYO,EAAE,uB,iBAIxC,O,sBAAA,GAAMD,KAAK8+G,WAAWJ,EAAcn8G,I,cAApC,S,aAGA,O,WADMw8G,EAAgB,IAAI,EAAAvyF,cAAc,EAAO,KACxC,CAAP,EAAOxsB,KAAKg/G,kBAAkBD,EAAeL,I,OAEjD,MAAO,CAAP,EAAO,M,OAEP,MAAO,CAAP,EAAO,IAAI/8G,MAAM3B,KAAKN,YAAYO,EAAE,+BAI5C,YAAA49C,YAAA,SAAYL,EAAgBj7C,QAAA,IAAAA,MAAA,MACxB,IAAMq7C,EAAW59C,KAAKi/G,oBAAoBzhE,GAC1C,OAAgB,MAAZI,EACO,MAEXA,EAASr7C,eAAiBA,EACnBq7C,IAGH,YAAAqhE,oBAAR,SAA4BzhE,GACxB,GAAc,MAAVA,GAA6B,KAAXA,EAClB,OAAO,KAGX,OAAQA,GACJ,IAAK,eACD,OAAO,IAAI,EAAA0hE,qBACf,IAAK,gBACD,OAAO,IAAI,EAAAC,sBACf,IAAK,cACL,IAAK,cACD,OAAO,IAAI,EAAAC,oBACf,IAAK,cACD,OAAO,IAAI,EAAAC,oBACf,IAAK,WACD,OAAO,IAAI,EAAAC,iBACf,IAAK,UACD,OAAO,IAAI,EAAAC,gBACf,IAAK,iBACD,OAAO,IAAI,GAAAC,uBACf,IAAK,aACD,OAAO,IAAI,EAAAC,mBACf,IAAK,cACD,OAAO,IAAI,EAAAC,oBACf,IAAK,YACL,IAAK,WACL,IAAK,aACD,OAAO,IAAI,EAAAC,kBACf,IAAK,aACD,OAAO,IAAI,EAAAC,mBACf,IAAK,SACD,OAAO,IAAI,GAAAC,eACf,IAAK,eACD,OAAO,IAAI,GAAAC,qBACf,IAAK,aACD,OAAO,IAAI,EAAAC,mBACf,IAAK,gBACD,OAAO,IAAI,EAAAC,wBACf,IAAK,kBACD,OAAO,IAAI,EAAAC,0BACf,IAAK,kBACD,OAAO,IAAI,EAAAC,0BACf,IAAK,YACD,OAAO,IAAI,EAAAC,kBACf,IAAK,oBACD,OAAO,IAAI,EAAAC,0BACf,IAAK,YACD,OAAO,IAAI,EAAAC,kBACf,IAAK,aACD,OAAO,IAAI,EAAAC,mBACf,IAAK,YACD,OAAO,IAAI,EAAAC,wBACf,IAAK,eACD,OAAO,IAAI,EAAAC,qBACf,IAAK,aACD,OAAO,IAAI,EAAAC,mBACf,IAAK,oBACD,OAAO,IAAI,GAAAC,0BACf,IAAK,aACD,OAAO,IAAI,GAAAC,mBACf,IAAK,eACD,OAAO,IAAI,EAAAC,qBACf,IAAK,cACD,OAAO,IAAI,GAAAC,oBACf,IAAK,aACD,OAAO,IAAI,EAAAC,mBACf,IAAK,mBACD,OAAO,IAAI,EAAAC,yBACf,IAAK,eACD,OAAO,IAAI,GAAAC,qBACf,IAAK,cACD,OAAO,IAAI,GAAAC,oBACf,IAAK,cACD,OAAO,IAAI,EAAAC,oBACf,IAAK,YACD,OAAO,IAAI,EAAAC,kBACf,IAAK,mBACD,OAAO,IAAI,EAAAC,yBACf,IAAK,cACD,OAAO,IAAI,EAAAC,oBACf,IAAK,cACD,OAAO,IAAI,EAAAC,oBACf,IAAK,WACD,OAAO,IAAI,EAAAC,iBACf,IAAK,YACD,OAAO,IAAI,EAAAC,kBACf,IAAK,aACD,OAAO,IAAI,EAAAC,mBACf,IAAK,eACD,OAAO,IAAI,EAAAC,qBACf,IAAK,eACD,OAAO,IAAI,GAAAC,qBACf,IAAK,oBACD,OAAO,IAAI,EAAAC,0BACf,IAAK,UACD,OAAO,IAAI,EAAAC,gBACf,IAAK,gBACD,OAAO,IAAI,GAAAC,sBACf,IAAK,eACD,OAAO,IAAI,EAAAC,qBACf,IAAK,gBACD,OAAO,IAAI,EAAAC,sBACf,IAAK,eACD,OAAO,IAAI,EAAAC,qBACf,IAAK,cACD,OAAO,IAAI,EAAAC,oBACf,IAAK,cACD,OAAO,IAAI,EAAAC,oBACf,IAAK,UACD,OAAO,IAAI,GAAAC,gBACf,QACI,OAAO,OAIL,YAAAtD,WAAd,SAAyBJ,EAA4Bn8G,G,YAAA,IAAAA,MAAA,M,oGAC3B,MAAlBA,EAAA,aACM,EAAU,IAAI,EAAA8/G,qBACXpkH,EAAI,E,wBAAGA,EAAIygH,EAAa/0G,QAAQxL,OAC3B,GAAM6B,KAAKo4B,cAAcwP,QAAQ82E,EAAa/0G,QAAQ1L,KADrB,M,OACrCgQ,EAAI,SACV,EAAQtE,QAAQxE,KAAK,IAAI,EAAAwmB,cAAc1d,I,wBAFMhQ,I,gBAIrB,MAAxBygH,EAAar3G,QAAb,YACSpJ,EAAI,E,wBAAGA,EAAIygH,EAAar3G,QAAQlJ,OAC3B,GAAM6B,KAAKq4B,cAAcuP,QAAQ82E,EAAar3G,QAAQpJ,KADrB,M,OACrCsJ,EAAI,SACV,EAAQF,QAAQlC,KAAK,IAAI,EAAAigD,cAAc79C,I,wBAFMtJ,I,aAS9C,OAJiC,MAApCygH,EAAaz3G,qBACby3G,EAAaz3G,oBAAoB7C,SAAQ,SAAA8C,GACrC,SAAQD,oBAAoB9B,KAAK,IAAI,EAAAm9G,WAAWp7G,EAAE,GAAIA,EAAE,QAEzD,GAAMlH,KAAKub,WAAW8/D,kBAAkB,I,OAA/C,MAAO,CAAP,EAAO,U,QAED,EAAU,IAAI,EAAAknC,iCACXtkH,EAAI,E,0BAAGA,EAAIygH,EAAa/0G,QAAQxL,QACrCugH,EAAa/0G,QAAQ1L,GAAGsE,eAAiBA,EAC/B,GAAMvC,KAAKo4B,cAAcwP,QAAQ82E,EAAa/0G,QAAQ1L,MAFrB,O,QAErCgQ,EAAI,SACV,EAAQtE,QAAQxE,KAAK,IAAI,EAAAwmB,cAAc1d,I,0BAHMhQ,I,kBAKjB,MAA5BygH,EAAat3G,YAAb,aACSnJ,EAAI,E,0BAAGA,EAAIygH,EAAat3G,YAAYjJ,QACzCugH,EAAat3G,YAAYnJ,GAAGsE,eAAiBA,EACnC,GAAMvC,KAAKu4B,kBAAkBqP,QAAQ82E,EAAat3G,YAAYnJ,MAFzB,O,QAEzCgQ,EAAI,SACV,EAAQ7G,YAAYjC,KAAK,IAAI,EAAA2qD,kBAAkB7hD,I,0BAHEhQ,I,eAUlD,OAJqC,MAAxCygH,EAAav3G,yBACbu3G,EAAav3G,wBAAwB/C,SAAQ,SAAA8C,GACzC,SAAQC,wBAAwBhC,KAAK,IAAI,EAAAm9G,WAAWp7G,EAAE,GAAIA,EAAE,QAE7D,GAAMlH,KAAKub,WAAW+/D,8BAA8B/4E,EAAgB,I,QAA3E,MAAO,CAAP,EAAO,kBAIP,YAAAs8G,QAAR,SAAgB5wG,GACZ,OAAkB,MAAVA,EAAEvG,MAA2B,OAAXuG,EAAEvG,OACvBuG,EAAE9L,OAAS,EAAAyG,WAAWC,OAAoB,MAAXoF,EAAEvF,OAAiB,EAAAjD,MAAMf,mBAAmBuJ,EAAEvF,MAAMoB,WAGpF,YAAAk1G,kBAAR,SAA0BD,EAA8BL,GACpD,GAAsC,MAAlCK,EAAchzF,iBACd,OAAO,IAAIpqB,MAAMo9G,EAAcx6G,SAGnC,IAAI6jD,EAAe,GAmCnB,OAjCAtpD,OAAOyiG,QAAQwd,EAAchzF,kBAAkB3nB,SAAQ,SAAC,EAAcmrD,G,IAC9DnjC,EACAo2F,EAFiD7jH,EAAA,KAAKD,EAAA,KAGpDT,EAAIqgH,OAAO3/G,EAAIsG,MAAM,UAAU,IAErC,OAAQtG,EAAIsG,MAAM,QAAQ,IACtB,IAAK,UACDmnB,EAAOsyF,EAAa/0G,QAAQ1L,GAC5BukH,EAAW,EAAA55G,WAAWwjB,EAAKjqB,MAC3B,MACJ,IAAK,UACDiqB,EAAOsyF,EAAar3G,QAAQpJ,GAC5BukH,EAAW,SACX,MACJ,IAAK,cACDp2F,EAAOsyF,EAAat3G,YAAYnJ,GAChCukH,EAAW,aACX,MACJ,QACI,OAGJjzD,EAAQ,IACRnH,GAAgB,QAGH,WAAbo6D,GAAsC,eAAbA,IACzBp6D,GAAgB,KAAOnqD,EAAI,GAAK,MAGpCmqD,GAAgB,IAAMo6D,EAAW,MAAQp2F,EAAK1kB,KAAO,MAAQhJ,KAG1D,IAAIiD,MAAMymD,IAEzB,EApTA,GAAa,EAAA/sB,kB,8EC5Eb,iBACI,KAAA1xB,QAA2B,GAC3B,KAAAtC,QAA2B,GAC3B,KAAAJ,oBAAoD,IAH3C,EAAAo7G,wB,8ECAb,iBACI,KAAA14G,QAA2B,GAC3B,KAAAvC,YAAmC,GACnC,KAAAD,wBAAwD,IAH/C,EAAAo7G,oC,8ECJb,MAII,SAAY5jH,EAASD,GACjBsB,KAAKrB,IAAMA,EACXqB,KAAKtB,MAAQA,GANR,EAAA4jH,c,8ZCAb,YAGA,QAEA,2B,+CAiDA,OAjDwC,OACpC,YAAAp+G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUn+C,KAAKwD,SAASL,GAAM,GACpC,OAAe,MAAXg7C,GACAn6C,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAG3Bm6C,EAAQ/5C,SAAQ,SAAA1F,GACZ,KAAIA,EAAMP,OAAS,GAAnB,CAIA,IAAMoI,EAAS,EAAK8B,kBAIpB,GAHA9B,EAAOiC,MAAQ,EAAK1C,kBAAkBpH,EAAMA,EAAMP,OAAS,IAC3DoI,EAAOmB,KAAO,EAAK5B,kBAAkBpH,EAAM,GAAI,MAE3CA,EAAMP,OAAS,GAAMO,EAAMP,OAAS,GAAO,EAC3C,IAAK,IAAIF,EAAI,EAAGA,EAAIS,EAAMP,OAAS,EAAGF,GAAK,EAAG,CAC1C,IAAMwX,EAAc/W,EAAMT,EAAI,GACxBkL,EAAgBzK,EAAMT,EAAI,GAChC,IAAI,EAAKyG,mBAAmB+Q,KAAQ,EAAK/Q,mBAAmByE,GAA5D,CAIA,IAAMs5G,EAAat5G,EAAMnH,cACI,MAAzBuE,EAAOmC,MAAMoB,UAAoB,EAAKnH,mBAAmByC,QAAQq9G,IAAe,EAChFl8G,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkB2P,GACf,MAAzBlP,EAAOmC,MAAMmB,UACpB,EAAKjH,mBAAmBwC,QAAQq9G,IAAe,EAC/Cl8G,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkB2P,IAClB,MAArBlP,EAAOmC,MAAMqB,MAA6C,IAA7BxD,EAAOmC,MAAMqB,KAAK5L,SACvD,EAAK2E,cAAcsC,QAAQq9G,IAAe,EAC1Cl8G,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAa6Q,GAEtC,EAAK1M,WAAWxC,EAAQ4C,EAAOsM,IAK3C,EAAK7L,sBAAsBrD,GAC3B,EAAKuC,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,OAGxBvC,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAE/B,EAjDA,CAAwC,EAAAqG,cAA3B,EAAAy2G,sB,8ZCLb,YAGA,QAEA,2B,+CAsBA,OAtBsC,OAClC,YAAA58G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUn+C,KAAKwD,SAASL,GAAM,GACpC,OAAe,MAAXg7C,GACAn6C,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAG3Bm6C,EAAQ/5C,SAAQ,SAAA1F,GACZ,IAAM6H,EAAS,EAAK8B,kBACpB9B,EAAOmB,KAAO,EAAK5B,kBAAkBpH,EAAMgJ,MAC3CnB,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAalG,EAAMgkH,KAC5Cn8G,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkBpH,EAAMoL,UACrDvD,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkBpH,EAAMgK,OACrD,EAAKI,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,MAGxBvC,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAE/B,EAtBA,CAAsC,EAAAqG,cAAzB,EAAAk3G,oB,8ZCLb,YAGA,QAEA,QACA,SAEA,2B,+CA4DA,OA5DuC,OACnC,YAAAr9G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUse,KAAKv4D,MAAMf,GAC3B,OAAe,MAAXg7C,GACAn6C,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAGL,MAAlBm6C,EAAQwkE,QACRxkE,EAAQwkE,OAAOv+G,SAAQ,SAAC1F,GACpB,IAAM6H,EAAS,EAAK8B,kBACpB9B,EAAOmB,KAAO,EAAK5B,kBAAkBpH,EAAMkkH,UAC3Cr8G,EAAOiC,MAAQ,EAAK1C,kBAAkBpH,EAAMmkH,MAC5Ct8G,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAalG,EAAM6G,KAC5CgB,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkBpH,EAAMokH,KACrDv8G,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkBpH,EAAMqkH,WACrD,EAAKj6G,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,MAIP,MAAjB43C,EAAQ31C,OACR21C,EAAQ31C,MAAMpE,SAAQ,SAAC1F,GACnB,IAAM6H,EAAS,EAAK8B,kBACpB9B,EAAOpE,KAAO,EAAAyG,WAAWoB,WACzBzD,EAAO0D,WAAW9H,KAAO,EAAAgI,eAAeC,QACxC7D,EAAOmB,KAAO,EAAK5B,kBAAkBpH,EAAMmgB,OAC3CtY,EAAOiC,MAAQ,EAAK1C,kBAAkBpH,EAAMujB,MAC5C,EAAKnZ,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,MAIP,MAAjB43C,EAAQ6kE,OACR7kE,EAAQ6kE,MAAM5+G,SAAQ,SAAC1F,GACnB,IAAM6H,EAAS,EAAK8B,kBACpB9B,EAAOpE,KAAO,EAAAyG,WAAWuR,KACzB5T,EAAOmB,KAAO,EAAK5B,kBAAkBpH,EAAMkkH,UAC3Cr8G,EAAOiC,MAAQ,EAAK1C,kBAAkBpH,EAAMmkH,MAC5Ct8G,EAAOM,KAAK0Q,eAAiB,EAAKzR,kBAAkBpH,EAAMukH,YAC1D18G,EAAOM,KAAKiR,OAAS,EAAKhS,kBAAkBpH,EAAMwkH,YAClD38G,EAAOM,KAAK2Q,KAAO,EAAK1R,kBAAkBpH,EAAMykH,KAChD58G,EAAOM,KAAKgR,MAAQ,EAAK5R,aAAaM,EAAOM,KAAKiR,QACtB,MAAxBpZ,EAAM2jD,iBAC4B,MAA9B3jD,EAAM2jD,eAAe37C,QACrBH,EAAOM,KAAKC,SAAWpI,EAAM2jD,eAAe37C,MAAQ,IAEvB,MAA7BhI,EAAM2jD,eAAe17C,OACrBJ,EAAOM,KAAKE,QAAUrI,EAAM2jD,eAAe17C,KAAO,KAG1D,EAAKmC,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,MAI5BvC,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAE/B,EA5DA,CAAuC,EAAAqG,cAA1B,EAAAm3G,qB,8ZCRb,YAGA,QAEA,2B,+CA8BA,OA9BsC,OAClC,YAAAt9G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUn+C,KAAKwD,SAASL,GAAM,GACpC,OAAe,MAAXg7C,GACAn6C,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAG3Bm6C,EAAQ/5C,SAAQ,SAAA1F,GACZ,IAAM6H,EAAS,EAAK8B,kBACpB9B,EAAOmB,KAAO,EAAK5B,kBAAkBpH,EAAMgJ,KACvC,EAAK5B,kBAAkB,EAAKR,YAAY5G,EAAM0kH,SAAU,OAC5D78G,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAalG,EAAM0kH,SAC5C78G,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkBpH,EAAMoL,UAEjD,EAAKpF,mBAAmBhG,EAAMmL,YAAc,EAAKnF,mBAAmBhG,EAAM2kH,oBAC1E98G,EAAOmC,MAAMmB,SAAWnL,EAAM2kH,oBAE9B98G,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkBpH,EAAMmL,UACrDtD,EAAOiC,MAAQ,EAAK1C,kBAAkBpH,EAAM2kH,qBAGhD,EAAKv6G,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,MAGxBvC,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAE/B,EA9BA,CAAsC,EAAAqG,cAAzB,EAAAi1G,oB,8ZCLb,YAGA,QAEA,SACA,SACA,SAEA,SACA,QAEA,QACA,SACA,SAEA,2B,+CA6FA,OA7F0C,OACtC,YAAAp7G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUn+C,KAAKwD,SAASL,GAAM,GACpC,OAAe,MAAXg7C,GACAn6C,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAG3Bm6C,EAAQ/5C,SAAQ,SAAA1F,GACR,EAAKu4B,eAAiB,EAAKvyB,mBAAmBhG,EAAM0I,aAC/B1I,EAAM0I,YAAuBpB,MAAM,KAC5C5B,SAAQ,SAAAk/G,GAIhB,IAHA,IAAIC,GAAgB,EAChBC,EAAkBx/G,EAAOoD,YAAYjJ,OAEhCF,EAAI,EAAGA,EAAI+F,EAAOoD,YAAYjJ,OAAQF,IAC3C,GAAI+F,EAAOoD,YAAYnJ,GAAGyJ,OAAS47G,EAAK,CACpCC,GAAgB,EAChBC,EAAkBvlH,EAClB,MAIR,GAAIslH,EAAe,CACf,IAAM/7G,EAAa,IAAI,EAAAC,eACvBD,EAAWE,KAAO47G,EAClBt/G,EAAOoD,YAAYjC,KAAKqC,GAG5BxD,EAAOmD,wBAAwBhC,KAAK,CAACnB,EAAO2F,QAAQxL,OAAQqlH,OAExD,EAAKvsF,cACb,EAAK5tB,cAAcrF,EAAQtF,EAAMymD,QAGrC,IAAM5+C,EAAS,IAAI,EAAA+B,WAMnB,GALA/B,EAAOgC,UAAY,EAAK0uB,cAAgE,MAAhD,EAAKnxB,kBAAkBpH,EAAM6J,SAAU,KAC/EhC,EAAOpE,KAAO,EAAAyG,WAAWC,MACzBtC,EAAOiC,MAAQ,EAAK1C,kBAAkBpH,EAAM8J,OAC5CjC,EAAOmB,KAAO,EAAK5B,kBAAkBpH,EAAMgJ,KAAM,OAE5C,EAAKhD,mBAAmBhG,EAAM+J,QAE/B,IADA,IAAMA,EAAS,EAAK5E,aAAanF,EAAM+J,QAC9BxK,EAAI,EAAGA,EAAIwK,EAAOtK,OAAQF,IAC/B,IAAI,EAAKyG,mBAAmB+D,EAAOxK,IAAnC,CAIA,IAAMwlH,EAAgBh7G,EAAOxK,GAAGsuB,YAAY,MAC5C,IAAuB,IAAnBk3F,EAAJ,CAIqB,MAAjBl9G,EAAOkC,SACPlC,EAAOkC,OAAS,IAGpB,IAAMU,EAAQ,IAAI,EAAAC,UAClBD,EAAMzB,KAAOe,EAAOxK,GAAG2I,OAAO,EAAG68G,GACjCt6G,EAAMzK,MAAQ,KACdyK,EAAMhH,KAAO,EAAA6G,UAAUC,KACnBR,EAAOxK,GAAGE,OAAUslH,EAAgB,IACpCt6G,EAAMzK,MAAQ+J,EAAOxK,GAAG2I,OAAO68G,EAAgB,IAEnDl9G,EAAOkC,OAAOtD,KAAKgE,IAK3B,OADgC,MAAdzK,EAAMyD,KAAezD,EAAMyD,KAAKH,cAAgB,MAE9D,IAAK,OACDuE,EAAOpE,KAAO,EAAAyG,WAAWoB,WACzBzD,EAAO0D,WAAa,IAAI,EAAAC,eACxB3D,EAAO0D,WAAW9H,KAAO,EAAAgI,eAAeC,QACxC,MACJ,QACI7D,EAAOpE,KAAO,EAAAyG,WAAWC,MACzBtC,EAAOmC,MAAQ,IAAI,EAAAC,UACnBpC,EAAOmC,MAAM+e,KAAO,EAAK3hB,kBAAkBpH,EAAM+8G,YAAc/8G,EAAM+oB,MACrElhB,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkBpH,EAAM68G,gBAAkB78G,EAAMmL,UAC7EtD,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkBpH,EAAM88G,gBAAkB98G,EAAMoL,UAC7E,IAAMC,EAAO,EAAKvF,kBAAkB9F,EAAM48G,WAAa58G,EAAMmG,KAC7D0B,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAamF,GAI9C/F,EAAO2F,QAAQxE,KAAKoB,MAGxBvC,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAE/B,EA7FA,CAA0C,EAAAqG,cAA7B,EAAA60G,wB,yxDChBb,YAGA,QAEA,SACA,SACA,SAEA,2B,+CA+HA,OA/H2C,OAIjC,YAAAh7G,MAAN,SAAYf,G,0FAGR,OAFAnD,KAAKgE,OAAS,IAAI,EAAAuG,aAClBvK,KAAKm+C,QAAUse,KAAKv4D,MAAMf,GACN,MAAhBnD,KAAKm+C,SAAyC,MAAtBn+C,KAAKm+C,QAAQ7vB,OAA+C,IAA9BtuB,KAAKm+C,QAAQ7vB,MAAMnwB,QACzE6B,KAAKgE,OAAOsG,SAAU,EACf,CAAP,EAAOtK,KAAKgE,SAGZhE,KAAKm+C,QAAQm4C,UACb,GAAMt2F,KAAK0jH,kBADX,M,cACA,S,aAEA1jH,KAAK2jH,iB,iBAIT,OADA3jH,KAAKgE,OAAOsG,SAAU,EACf,CAAP,EAAOtK,KAAKgE,gBAGF,YAAA0/G,eAAd,W,kIACUE,EAAe,IAAI10G,KAErBlP,KAAKi3B,cAA4C,MAA5Bj3B,KAAKm+C,QAAQ/2C,YAAlC,Y,IACgB,EAAApH,KAAKm+C,QAAQ/2C,Y,wBAAb,YAAL6G,EAAC,KAEU,OADZzG,EAAa,EAAA+3F,iBAAiBsc,SAAS5tG,IACzC,OACAzG,EAAW5H,GAAK,KAChB4H,EAAWjF,eAAiBvC,KAAKuC,eACpB,GAAMiF,EAAWgO,aALwB,M,OAKhDs0B,EAAO,SACb85E,EAAax0G,IAAInB,EAAErO,GAAII,KAAKgE,OAAOoD,YAAYjJ,QAC/C6B,KAAKgE,OAAOoD,YAAYjC,KAAK2kC,G,wBAPrB,I,mCAUR9pC,KAAKi3B,cAAwC,MAAxBj3B,KAAKm+C,QAAQ92C,QAAnC,Y,IACS,EAAArH,KAAKm+C,QAAQ92C,Q,wBAAb,YAALE,EAAC,KAEM,OADR49C,EAAS,EAAAq6C,aAAaqc,SAASt0G,IACjC,OACA49C,EAAOvlD,GAAK,KACC,GAAMulD,EAAO3vC,aAJoB,M,OAIxCs0B,EAAO,SACb85E,EAAax0G,IAAI7H,EAAE3H,GAAII,KAAKgE,OAAOqD,QAAQlJ,QAC3C6B,KAAKgE,OAAOqD,QAAQlC,KAAK2kC,G,wBANjB,I,iBAWJ,EAAA9pC,KAAKm+C,QAAQ7vB,M,0BAAb,YAALrgB,EAAC,MACF1H,EAAS,EAAA+4F,cAAcuc,SAAS5tG,IAE/BrO,GAAK,KACZ2G,EAAOwe,SAAW,KAClBxe,EAAOhE,eAAiBvC,KAAKuC,eAC7BgE,EAAOgf,cAAgB,KAGO,MAA1Bhf,EAAO+e,iBAA2B/e,EAAO+e,gBAAgBnnB,OAAS,IAClEoI,EAAO+e,gBAAkB/e,EAAO+e,gBAAgBrjB,MAAM,EAAG,KAGxDjC,KAAKi3B,cAA8B,MAAdhpB,EAAE8W,UAAoB6+F,EAAajkF,IAAI1xB,EAAE8W,UAC/D/kB,KAAKgE,OAAOiD,oBAAoB9B,KAAK,CAACnF,KAAKgE,OAAO2F,QAAQxL,OAAQylH,EAAaplH,IAAIyP,EAAE8W,YAC9E/kB,KAAKi3B,cAAmC,MAAnBhpB,EAAEsX,eAC9BtX,EAAEsX,cAAcnhB,SAAQ,SAAA6uF,GAChB2wB,EAAajkF,IAAIszD,IACjB,EAAKjvF,OAAOmD,wBAAwBhC,KAAK,CAAC,EAAKnB,OAAO2F,QAAQxL,OAAQylH,EAAaplH,IAAIy0F,QAKtF,GAAM1sF,EAAOiP,YAvBuB,O,QAuB3Cs0B,EAAO,SACb9pC,KAAK8I,cAAcghC,GACnB9pC,KAAKgE,OAAO2F,QAAQxE,KAAK2kC,G,0BAzBb,I,iCA6BZ,YAAA65E,eAAR,sBACUC,EAAe,IAAI10G,IACrBlP,KAAKi3B,cAA4C,MAA5Bj3B,KAAKm+C,QAAQ/2C,YAClCpH,KAAKm+C,QAAQ/2C,YAAYhD,SAAQ,SAAC6J,GAC9B,IAAMzG,EAAa,EAAA+3F,iBAAiBoc,OAAO1tG,GACzB,MAAdzG,IACAA,EAAW5H,GAAK,KAChB4H,EAAWjF,eAAiB,KAC5BqhH,EAAax0G,IAAInB,EAAErO,GAAI,EAAKoE,OAAOoD,YAAYjJ,QAC/C,EAAK6F,OAAOoD,YAAYjC,KAAKqC,OAG7BxH,KAAKi3B,cAAwC,MAAxBj3B,KAAKm+C,QAAQ92C,SAC1CrH,KAAKm+C,QAAQ92C,QAAQjD,SAAQ,SAACmD,GAC1B,IAAM49C,EAAS,EAAAq6C,aAAamc,OAAOp0G,GACrB,MAAV49C,IACAA,EAAOvlD,GAAK,KACZgkH,EAAax0G,IAAI7H,EAAE3H,GAAI,EAAKoE,OAAOqD,QAAQlJ,QAC3C,EAAK6F,OAAOqD,QAAQlC,KAAKggD,OAKrCnlD,KAAKm+C,QAAQ7vB,MAAMlqB,SAAQ,SAAC6J,GACxB,IAAM1H,EAAS,EAAA+4F,cAAcqc,OAAO1tG,GAEpC1H,EAAO3G,GAAK,KACZ2G,EAAOwe,SAAW,KAClBxe,EAAOhE,eAAiB,KACxBgE,EAAOgf,cAAgB,KAGO,MAA1Bhf,EAAO+e,iBAA2B/e,EAAO+e,gBAAgBnnB,OAAS,IAClEoI,EAAO+e,gBAAkB/e,EAAO+e,gBAAgBrjB,MAAM,EAAG,KAGxD,EAAKg1B,cAA8B,MAAdhpB,EAAE8W,UAAoB6+F,EAAajkF,IAAI1xB,EAAE8W,UAC/D,EAAK/gB,OAAOiD,oBAAoB9B,KAAK,CAAC,EAAKnB,OAAO2F,QAAQxL,OAAQylH,EAAaplH,IAAIyP,EAAE8W,YAC9E,EAAKkS,cAAmC,MAAnBhpB,EAAEsX,eAC9BtX,EAAEsX,cAAcnhB,SAAQ,SAAA6uF,GAChB2wB,EAAajkF,IAAIszD,IACjB,EAAKjvF,OAAOmD,wBAAwBhC,KAAK,CAAC,EAAKnB,OAAO2F,QAAQxL,OAAQylH,EAAaplH,IAAIy0F,QAKnG,EAAKnqF,cAAcvC,GACnB,EAAKvC,OAAO2F,QAAQxE,KAAKoB,OAGrC,EA/HA,CAA2C,EAAA8D,cAA9B,EAAA80G,yB,8ZCTb,YAGA,QAEA,2B,+CA8BA,OA9B2C,OACvC,YAAAj7G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUn+C,KAAKwD,SAASL,GAAM,GACpC,OAAe,MAAXg7C,GACAn6C,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAG3Bm6C,EAAQ/5C,SAAQ,SAAA1F,GACZ,GAAuB,SAAnBA,EAAM+kD,SAAV,CAGA,IAAMl9C,EAAS,EAAK8B,kBACpB9B,EAAOgC,SAAyB,MAAd7J,EAAMmlH,IACxBt9G,EAAOmB,KAAO,EAAK5B,kBAAkBpH,EAAMgJ,MAC3CnB,EAAOiC,MAAQ,EAAK1C,kBAAkBpH,EAAMolH,OACrB,SAAnBplH,EAAM+kD,WACNl9C,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAalG,EAAM6G,KAC5CgB,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkBpH,EAAMoL,UACrDvD,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkBpH,EAAMmL,WAEzD,EAAKD,sBAAsBrD,GAC3B,EAAKuC,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,OAGxBvC,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAE/B,EA9BA,CAA2C,EAAAqG,cAA9B,EAAA23G,yB,8ZCLb,YAGA,QAEA,2B,+CAiCA,OAjCqC,OACjC,YAAA99G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUn+C,KAAKwD,SAASL,GAAM,GACpC,OAAe,MAAXg7C,GACAn6C,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAG3Bm6C,EAAQ/5C,SAAQ,SAAA1F,GACQ,SAAhBA,EAAMmgB,QACNngB,EAAMmgB,MAAQ,MAElB,IAAMtY,EAAS,EAAK8B,kBACpB9B,EAAOmB,KAAO,EAAK5B,kBAAkBpH,EAAMmgB,MACvC,EAAK/Y,kBAAkB,EAAKR,YAAY5G,EAAMsQ,QAAS,OAC3DzI,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAalG,EAAMsQ,QAC5CzI,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkBpH,EAAMoL,UAEjD,EAAKpF,mBAAmBhG,EAAMyiB,SAAW,EAAKzc,mBAAmBhG,EAAMmL,UACvEtD,EAAOmC,MAAMmB,SAAWnL,EAAMmL,UAE9BtD,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkBpH,EAAMyiB,OACrD5a,EAAOiC,MAAQ,EAAK1C,kBAAkBpH,EAAMmL,WAGhD,EAAKf,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,MAGxBvC,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAE/B,EAjCA,CAAqC,EAAAqG,cAAxB,EAAAk1G,mB,8ZCLb,YAGA,QAEMwE,EAAgB,CAClB,YAAa,cAAe,QAAS,WAAY,WAAY,MAAO,MAGxE,2B,+CAyCA,OAzC0C,OACtC,YAAA7/G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUn+C,KAAKwD,SAASL,GAAM,GACpC,OAAe,MAAXg7C,GACAn6C,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAG3Bm6C,EAAQ/5C,SAAQ,SAAA1F,GACZ,EAAK2K,cAAcrF,EAAQ,EAAK8B,kBAAkBpH,EAAM,iBAExD,IAAM6H,EAAS,EAAK8B,kBACpB9B,EAAOmB,KAAO,EAAK5B,kBAAkBpH,EAAMuC,MAAO,MAClDsF,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkBpH,EAAMmL,UACrDtD,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkBpH,EAAMoL,UACrDvD,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAalG,EAAM4R,KAE5C,IAAI0zG,GAAyB,EAC7B,IAAK,IAAM10G,KAAQ5Q,EACXA,EAAMM,eAAesQ,KAChB00G,IAA2D,IAAjCD,EAAc3+G,QAAQkK,KACjD00G,GAAyB,GAEzBA,GACA,EAAKj7G,WAAWxC,EAAQ+I,EAAM5Q,EAAM4Q,KAKhD,EAAKxG,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,MAGpBvG,KAAKi3B,cACLj3B,KAAKgH,yBAAyBhD,GAGlCA,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAE/B,EAzCA,CAA0C,EAAAqG,cAA7B,EAAA43G,wB,8ZCTb,YAGA,QAEA,2B,+CAsBA,OAtBuC,OACnC,YAAA/9G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUn+C,KAAKwD,SAASL,GAAM,GACpC,OAAe,MAAXg7C,GACAn6C,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAG3Bm6C,EAAQ/5C,SAAQ,SAAA1F,GACZ,IAAM6H,EAAS,EAAK8B,kBACpB9B,EAAOmB,KAAO,EAAK5B,kBAAkBpH,EAAMgJ,KAAM,MACjDnB,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkBpH,EAAMmL,UACrDtD,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkBpH,EAAMoL,UACrDvD,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAalG,EAAM6G,KAC5C,EAAKuD,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,MAGxBvC,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAE/B,EAtBA,CAAuC,EAAAqG,cAA1B,EAAAs1G,qB,8ZCLb,YAGA,QAEA,2B,+CAyEA,OAzE0C,OACtC,YAAAz7G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACbnH,EAAMpD,KAAKkD,SAASC,GAC1B,GAAW,MAAPC,EAEA,OADAY,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,GAG3B,IAAMw1G,EAAWp2G,EAAIG,cAAc,YACnC,OAAgB,MAAZi2G,GAAoBx5G,KAAK0E,mBAAmB80G,EAASh3F,cACrDxe,EAAOokD,aAAe,oBACtBpkD,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAGXy4D,KAAKv4D,MAAMs1G,EAASh3F,aAC5Bpe,SAAQ,SAACq9F,GACb,IAAMl7F,EAAS,EAAK8B,kBAQpB,GAPK,EAAK3D,mBAAmB+8F,EAAM5iF,SAC/BtY,EAAOmB,KAAO+5F,EAAM5iF,MAAM7Y,MAAM,MAAM,IAExB,MAAdy7F,EAAMt+F,MAAiB,EAAKuB,mBAAmB+8F,EAAMt+F,KAAKqF,SAC1DjC,EAAOiC,MAAQi5F,EAAMt+F,KAAKqF,MAAMxC,MAAM,OAAOlC,KAAK,OAG1B,MAAxB29F,EAAMwiB,gBAAyD,MAA/BxiB,EAAMwiB,eAAex7G,OACrD,IAAK,IAAMtJ,KAAYsiG,EAAMwiB,eAAex7G,OACxC,GAAKg5F,EAAMwiB,eAAex7G,OAAOzJ,eAAeG,GAAhD,CAIA,IAAMgK,EAAQs4F,EAAMwiB,eAAex7G,OAAOtJ,GAE1C,OADuC,MAApBgK,EAAM+6G,WAAqB/6G,EAAM+6G,WAAWliH,cAAgB,MAE3E,IAAK,WACDuE,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkBqD,EAAMzK,OACrD,MACJ,IAAK,QACL,IAAK,WACL,IAAK,OACL,IAAK,OACD6H,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkBqD,EAAMzK,OACrD,MACJ,IAAK,MACD6H,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAauE,EAAMzK,OAC5C,MACJ,QACI,IAAMylH,EAA4B,MAAfh7G,EAAM0V,MAAgB1V,EAAM0V,MAAM7c,cAAgB,KACxC,MAAzBuE,EAAOmC,MAAMoB,UAAoB,EAAKnH,mBAAmByC,QAAQ++G,IAAe,EAChF59G,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkBqD,EAAMzK,OACrB,MAAzB6H,EAAOmC,MAAMmB,UACpB,EAAKjH,mBAAmBwC,QAAQ++G,IAAe,EAC/C59G,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkBqD,EAAMzK,QACxB,MAArB6H,EAAOmC,MAAMqB,MAA6C,IAA7BxD,EAAOmC,MAAMqB,KAAK5L,SACvD,EAAK2E,cAAcsC,QAAQ++G,IAAe,EAC1C59G,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAauE,EAAMzK,OAE5C,EAAKqK,WAAWxC,EAAQ4C,EAAM0V,MAAO1V,EAAMzK,QAO/D,EAAKkL,sBAAsBrD,GAC3B,EAAKuC,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,MAGxBvC,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAE/B,EAzEA,CAA0C,EAAAqG,cAA7B,EAAAu2G,wB,8ZCLb,YAGA,QAEA,2B,+CAyCA,OAzCyC,OACrC,YAAA18G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUn+C,KAAKwD,SAASL,GAAM,GACpC,OAAe,MAAXg7C,GACAn6C,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAG3Bm6C,EAAQ/5C,SAAQ,SAAA1F,GACZ,EAAK2K,cAAcrF,EAAQ,EAAK8B,kBAAkBpH,EAAM0lH,WAExD,IAAM79G,EAAS,EAAK8B,kBACpB9B,EAAOgC,SAAsD,SAA3C,EAAKzC,kBAAkBpH,EAAM2lH,UAC/C99G,EAAOmB,KAAO,EAAK5B,kBAAkBpH,EAAM4lH,MAAO,MAClD/9G,EAAOiC,MAAQ,EAAK1C,kBAAkBpH,EAAM6lH,MAC5Ch+G,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkBpH,EAAM8lH,SAAU9lH,EAAMkqB,OACrEriB,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkBpH,EAAM+qB,UACrDljB,EAAOmC,MAAM+e,KAAO,EAAK3hB,kBAAkBpH,EAAM+lH,MACjDl+G,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAalG,EAAMgmH,SAEvC,EAAKhgH,mBAAmBhG,EAAM8lH,WAC/B,EAAKz7G,WAAWxC,EAAQ,QAAS7H,EAAMkqB,OAE3C,EAAK7f,WAAWxC,EAAQ,QAAS7H,EAAMimH,OACvC,EAAK57G,WAAWxC,EAAQ,MAAO7H,EAAMkmH,KACrC,EAAK77G,WAAWxC,EAAQ,UAAW7H,EAAMmmH,SACzC,EAAK97G,WAAWxC,EAAQ,OAAQ7H,EAAM4qB,MAEtC,EAAK1f,sBAAsBrD,GAC3B,EAAKuC,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,MAGpBvG,KAAKi3B,cACLj3B,KAAKgH,yBAAyBhD,GAGlCA,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAE/B,EAzCA,CAAyC,EAAAqG,cAA5B,EAAA63G,uB,8ZCLb,YAGA,QAEA,QACA,SACA,SACA,QAEA,QACA,SAEM4C,EAAiB,IAAIpiC,IAAI,CAAC,UAAW,gBAAiB,gBAAiB,SAAU,WACnF,0BAA2B,qBAAsB,UAErD,2B,+CAiJA,OAjJ0C,OAGtC,YAAAx+E,MAAA,SAAMf,GACFnD,KAAKgE,OAAS,IAAI,EAAAuG,aAClB,IAAM4zC,EAAUse,KAAKv4D,MAAMf,GAC3B,GAAe,MAAXg7C,GAAsC,IAAnBA,EAAQhgD,OAE3B,OADA6B,KAAKgE,OAAOsG,SAAU,EACf+K,QAAQC,QAAQtV,KAAKgE,QAsBhC,IAAK,IAAMrF,KAnBY,MAAnBw/C,EAAQ4mE,SACR/kH,KAAKglH,eAAe7mE,EAAQ4mE,SAEH,MAAzB5mE,EAAQ8mE,eACRjlH,KAAKklH,YAAY/mE,EAAQ8mE,eAEA,MAAzB9mE,EAAQgnE,eACRnlH,KAAKolH,YAAYjnE,EAAQgnE,cAAe,mBAEtB,MAAlBhnE,EAAQknE,QACRrlH,KAAKolH,YAAYjnE,EAAQknE,OAAQ,YAEE,MAAnClnE,EAAQmnE,yBACRtlH,KAAKulH,YAAYpnE,EAAQmnE,yBAEL,MAApBnnE,EAAQqnE,UACRxlH,KAAKylH,gBAAgBtnE,EAAQqnE,UAGfrnE,EACVA,EAAQn/C,eAAeL,KAASmmH,EAAenlF,IAAIhhC,IACnDqB,KAAKolH,YAAYjnE,EAAQx/C,GAAM,KAAM,gBAK7C,OADAqB,KAAKgE,OAAOsG,SAAU,EACf+K,QAAQC,QAAQtV,KAAKgE,SAGxB,YAAAkhH,YAAR,SAAoB/mE,GAApB,WACIA,EAAQ/5C,SAAQ,SAACshH,GACb,IAAMn/G,EAAS,EAAK8B,kBACpB9B,EAAOmB,KAAO,EAAK5B,kBAAkB4/G,EAAWzkH,OAEhDsF,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkB4/G,EAAWh9G,MACtD,EAAK5C,kBAAkB4/G,EAAWC,iBAClC,EAAKjhH,mBAAmB6B,EAAOmC,MAAMmB,UACrCtD,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkB4/G,EAAWvkG,OAClD,EAAKzc,mBAAmBghH,EAAWvkG,SAC3C5a,EAAOiC,MAAS,UAAYk9G,EAAWvkG,MAAQ,MAGnD5a,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkB4/G,EAAW57G,UAC1DvD,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAa8gH,EAAW12G,QACjDzI,EAAOiC,OAAS,EAAK1C,kBAAkB4/G,EAAW7C,KAAM,IAExD,EAAKj5G,sBAAsBrD,GAC3B,EAAKuC,cAAcvC,GACnB,EAAKvC,OAAO2F,QAAQxE,KAAKoB,OAIzB,YAAAk/G,gBAAR,SAAwBtnE,GAAxB,WACIA,EAAQ/5C,SAAQ,SAACse,GACb,IAAMnc,EAAS,IAAI,EAAA+B,WACnB/B,EAAO4e,SAAW,IAAI,EAAAC,aACtB7e,EAAOpE,KAAO,EAAAyG,WAAWwR,SACzB7T,EAAOmB,KAAO,EAAK5B,kBAAkB4c,EAAIkjG,SAAU,IACnD,IAAMC,EAAYt/G,EAAOmB,KAAK1B,MAAM,KAChC6/G,EAAU1nH,OAAS,IACnBoI,EAAO4e,SAASqB,UAAY,EAAK1gB,kBAAkB+/G,EAAU,KAExC,IAArBA,EAAU1nH,OACVoI,EAAO4e,SAASsB,SAAW,EAAK3gB,kBAAkB+/G,EAAU,IAChC,IAArBA,EAAU1nH,SACjBoI,EAAO4e,SAASU,WAAa,EAAK/f,kBAAkB+/G,EAAU,IAC9Dt/G,EAAO4e,SAASsB,SAAW,EAAK3gB,kBAAkB+/G,EAAU,KAEhEt/G,EAAO4e,SAAStb,SAAW,EAAK/D,kBAAkB4c,EAAIojG,QACtD,EAAKh9G,cAAcvC,GACnB,EAAKvC,OAAO2F,QAAQxE,KAAKoB,OAIzB,YAAAy+G,eAAR,SAAuB7mE,GAAvB,WACIA,EAAQ/5C,SAAQ,SAACse,GACb,IAAMnc,EAAS,IAAI,EAAA+B,WACnB/B,EAAO4e,SAAW,IAAI,EAAAC,aACtB7e,EAAOpE,KAAO,EAAAyG,WAAWwR,SACzB7T,EAAOmB,KAAO,EAAK5B,kBAAkB4c,EAAIqjG,aACzCx/G,EAAO4e,SAASW,SAAW,EAAKhgB,kBAAkB4c,EAAIsjG,aACtDz/G,EAAO4e,SAAS5B,KAAO,EAAKzd,kBAAkB4c,EAAIa,MAClDhd,EAAO4e,SAAS3B,MAAQ,EAAK1d,kBAAkB4c,EAAIc,OACnDjd,EAAO4e,SAAS1B,WAAa,EAAK3d,kBAAkB4c,EAAIujG,SACxD1/G,EAAO4e,SAAS9I,QAAU,EAAKvW,kBAAkB4c,EAAIrG,SACtB,MAA3B9V,EAAO4e,SAAS9I,UAChB9V,EAAO4e,SAAS9I,QAAU9V,EAAO4e,SAAS9I,QAAQta,eAEtD,EAAK+G,cAAcvC,GACnB,EAAKvC,OAAO2F,QAAQxE,KAAKoB,OAIzB,YAAAg/G,YAAR,SAAoBpnE,GAApB,WACIA,EAAQ/5C,SAAQ,SAACse,GACb,IAAMnc,EAAS,IAAI,EAAA+B,WACnB/B,EAAOM,KAAO,IAAI,EAAAqR,SAClB3R,EAAOpE,KAAO,EAAAyG,WAAWuR,KACzB5T,EAAOmB,KAAO,EAAK5B,kBAAkB4c,EAAI3G,MACzCxV,EAAOM,KAAKiR,OAAS,EAAKhS,kBAAkB4c,EAAIwgG,YAChD38G,EAAOM,KAAKgR,MAAQ,EAAK5R,aAAaM,EAAOM,KAAKiR,QAClDvR,EAAOM,KAAK0Q,eAAiB,EAAKzR,kBAAkB4c,EAAIwjG,OACnD,EAAKxhH,mBAAmB6B,EAAOM,KAAKgR,SACjC,EAAKnT,mBAAmB6B,EAAOmB,MAC/BnB,EAAOmB,KAAOnB,EAAOM,KAAKgR,MAE1BtR,EAAOmB,MAAS,MAAQnB,EAAOM,KAAKgR,OAG5C,EAAK/O,cAAcvC,GACnB,EAAKvC,OAAO2F,QAAQxE,KAAKoB,OAIzB,YAAA6+G,YAAR,SAAoBjnE,EAAgBgoE,EAAsBz+G,GAA1D,gBAA0D,IAAAA,MAAA,MACtDy2C,EAAQ/5C,SAAQ,SAACse,GACb,IAAMnc,EAAS,IAAI,EAAA+B,WASnB,IAAK,IAAM3J,KARX4H,EAAO0D,WAAa,IAAI,EAAAC,eACxB3D,EAAOpE,KAAO,EAAAyG,WAAWoB,WACzBzD,EAAO0D,WAAW9H,KAAO,EAAAgI,eAAeC,QAEpC7D,EAAOmB,KADC,MAARA,EACcA,EAEA,EAAK5B,kBAAkB4c,EAAIyjG,IAE3BzjG,EACVA,EAAI1jB,eAAeL,IAAQA,IAAQwnH,GACnC,EAAKp9G,WAAWxC,EAAQ5H,EAAK+jB,EAAI/jB,GAAK8N,YAG9C,EAAK3D,cAAcvC,GACnB,EAAKvC,OAAO2F,QAAQxE,KAAKoB,OAGrC,EAjJA,CAA0C,EAAA8D,cAA7B,EAAAm2G,wB,8ZChBb,YAGA,QAEA,QAEA,QAEA,2B,+CAoDA,OApDyC,OACrC,YAAAt8G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUn+C,KAAKwD,SAASL,GAAM,GACpC,OAAe,MAAXg7C,GACAn6C,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAG3Bm6C,EAAQ/5C,SAAQ,SAAA1F,GACZ,IAAM6H,EAAS,EAAK8B,kBACpB9B,EAAOmB,KAAO,EAAK5B,kBAAkBpH,EAAM0nH,MAAO,MAClD7/G,EAAOiC,MAAQ,EAAK1C,kBAAkBpH,EAAM2nH,OAC5C,IAAMpkG,EAAO,EAAKnc,kBAAkBpH,EAAMuK,MACrC,EAAKvE,mBAAmBud,KACrB,EAAKvd,mBAAmB6B,EAAOiC,OAC/BjC,EAAOiC,MAAQyZ,EAEf1b,EAAOiC,OAAU,OAASyZ,GAIlC,IAAM9f,EAAOzD,EAAM,cACnB,GAAa,aAATyD,EACAoE,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkBpH,EAAM8lH,UACrDj+G,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkBpH,EAAM+qB,UACrDljB,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAalG,EAAM,kBACzC,GAAa,gBAATyD,EAAwB,CAC/BoE,EAAOpE,KAAO,EAAAyG,WAAWuR,KACzB5T,EAAOM,KAAO,IAAI,EAAAqR,SAClB3R,EAAOM,KAAK0Q,eAAiB,EAAKzR,kBAAkBpH,EAAM,iBAC1D6H,EAAOM,KAAKiR,OAAS,EAAKhS,kBAAkBpH,EAAM,gBAClD6H,EAAOM,KAAKgR,MAAQ,EAAK5R,aAAaM,EAAOM,KAAKiR,QAClDvR,EAAOM,KAAK2Q,KAAO,EAAK1R,kBAAkBpH,EAAM4nH,KAChD,IAAMvI,EAAS,EAAKj4G,kBAAkBpH,EAAM6nH,QAC5C,IAAK,EAAK7hH,mBAAmBq5G,GAAS,CAClC,IAAMyI,EAAWzI,EAAO/3G,MAAM,KAC1BwgH,EAASroH,OAAS,IAClBoI,EAAOM,KAAKC,SAAWkF,SAASw6G,EAAS,GAAI,MAAM/5G,WACnDlG,EAAOM,KAAKE,SAAW,IAAOiF,SAASw6G,EAAS,GAAI,OAAO/5G,aAKvE,EAAK7C,sBAAsBrD,GAC3B,EAAKuC,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,MAGxBvC,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAE/B,EApDA,CAAyC,EAAAqG,cAA5B,EAAA83G,uB,8ZCTb,YAGA,QAEA,QACA,SAEA,QACA,QAEA,2B,+CAoGA,OApGuC,OACnC,YAAAj+G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUn+C,KAAKwD,SAASL,GAAM,GACpC,GAAe,MAAXg7C,EAEA,OADAn6C,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,GAG3B,IAAIyiH,GAAW,EAiFf,OAhFAtoE,EAAQ/5C,SAAQ,SAAA1F,GACZ,GAAIA,EAAMP,OAAS,GAAMsoH,IAA0B,UAAb/nH,EAAM,IAA+B,UAAbA,EAAM,IAChE+nH,GAAW,MADf,CAKA,IAAMlgH,EAAS,EAAK8B,kBAkBpB,GAjBA9B,EAAOiC,MAAQ,EAAK1C,kBAAkBpH,EAAMA,EAAMP,OAAS,IAC3DoI,EAAOmB,KAAO,EAAK5B,kBAAkBpH,EAAM,GAAI,MAE1B,IAAjBA,EAAMP,SAAkB,EAAKuoH,cAAchoH,EAAO,aACjD,EAAKgoH,cAAchoH,EAAO,aAAgB,EAAKgoH,cAAchoH,EAAO,UACpE,EAAKgoH,cAAchoH,EAAO,UAC3B6H,EAAOpE,KAAO,EAAAyG,WAAWoB,WACzBzD,EAAO0D,WAAa,IAAI,EAAAC,eACxB3D,EAAO0D,WAAW9H,KAAO,EAAAgI,eAAeC,SAGxC,EAAKs8G,cAAchoH,EAAO,eAAiB,EAAKgoH,cAAchoH,EAAO,WACrE,EAAKgoH,cAAchoH,EAAO,iBAC1B6H,EAAOpE,KAAO,EAAAyG,WAAWuR,KACzB5T,EAAOM,KAAO,IAAI,EAAAqR,UAGlBxZ,EAAMP,OAAS,GAAMO,EAAMP,OAAS,GAAO,EAC3C,IAAK,IAAIF,EAAI,EAAGA,EAAIS,EAAMP,OAAS,EAAGF,GAAK,EAAG,CAC1C,IAAM0oH,EAAqBjoH,EAAMT,EAAI,GACrC,IAAI,EAAKyG,mBAAmBiiH,GAA5B,CAIA,IAAMC,EAAoBloH,EAAMT,EAAI,GAC9B4oH,EAAiBD,EAAU5kH,cAEjC,GAAIuE,EAAOpE,OAAS,EAAAyG,WAAWC,MAAO,CAClC,GAAuB,QAAnBg+G,IAAkD,MAArBtgH,EAAOmC,MAAMqB,MAA6C,IAA7BxD,EAAOmC,MAAMqB,KAAK5L,QAAe,CAC3FoI,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAa+hH,GACtC,SACG,IAAwB,aAAnBE,GAAoD,UAAnBA,IACzC,EAAKniH,mBAAmB6B,EAAOmC,MAAMmB,UAAW,CAChDtD,EAAOmC,MAAMmB,SAAW88G,EACxB,SACG,GAAuB,aAAnBE,GAAiC,EAAKniH,mBAAmB6B,EAAOmC,MAAMoB,UAAW,CACxFvD,EAAOmC,MAAMoB,SAAW68G,EACxB,SACG,GAAuB,SAAnBE,GAA6B,EAAKniH,mBAAmB6B,EAAOmC,MAAM+e,MAAO,CAChFlhB,EAAOmC,MAAM+e,KAAOk/F,EACpB,eAED,GAAIpgH,EAAOpE,OAAS,EAAAyG,WAAWuR,KAAM,CACxC,GAAuB,eAAnB0sG,GAAmC,EAAKniH,mBAAmB6B,EAAOM,KAAK0Q,gBAAiB,CACxFhR,EAAOM,KAAK0Q,eAAiBovG,EAC7B,SACG,GAAuB,WAAnBE,GAA+B,EAAKniH,mBAAmB6B,EAAOM,KAAKiR,QAAS,CACnFvR,EAAOM,KAAKiR,OAAS6uG,EACrBpgH,EAAOM,KAAKgR,MAAQ,EAAK5R,aAAa0gH,GACtC,SACG,GAAuB,QAAnBE,GAA4B,EAAKniH,mBAAmB6B,EAAOM,KAAK2Q,MAAO,CAC9EjR,EAAOM,KAAK2Q,KAAOmvG,EACnB,SACG,GAAuB,gBAAnBE,GAAoC,EAAKniH,mBAAmB6B,EAAOM,KAAKC,WAC/E,EAAKpC,mBAAmB6B,EAAOM,KAAKE,UACpC,GAAI,EAAKT,kBAAkBC,EAAQogH,GAC/B,cAED,GAAuB,SAAnBE,EAEP,SAIR,EAAK99G,WAAWxC,EAAQqgH,EAAWD,IAI3C,EAAK79G,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,OAGxBvC,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,IAGnB,YAAA0iH,cAAR,SAAsBj+G,EAAef,GAArC,WACI,OAAc,MAAVe,GAA0B,MAARf,GAGfe,EAAON,QAAO,SAAAZ,GAAK,OAAC,EAAK7C,mBAAmB6C,IAC/CA,EAAEvF,gBAAkB0F,EAAK1F,iBAAe7D,OAAS,GAE7D,EApGA,CAAuC,EAAAkM,cAA1B,EAAAg2G,qB,8ZCXb,YAGA,QAEA,QAEA,SAEA,QACA,SAEA,2B,+CAsJA,OAtJwC,OACpC,YAAAn8G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUse,KAAKv4D,MAAMf,GAC3B,GAAe,MAAXg7C,GAAoC,MAAjBA,EAAQ7vB,OAA0C,IAAzB6vB,EAAQ7vB,MAAMnwB,OAE1D,OADA6F,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,GAG3B,IAAM8iH,EAAa,IAAI53G,IACjB63G,EAAkB,IAAI73G,IACtB83G,EAAahnH,KAAKinH,gBAAgB9oE,EAAQ92C,SAsChD,OArCArH,KAAKknH,kBAAkB,KAAMF,EAAYF,GACzCA,EAAW1iH,SAAQ,SAACqR,EAAK9W,GACrBooH,EAAgB33G,IAAIzQ,EAAKqF,EAAOqD,QAAQlJ,QACxC,IAAMoJ,EAAI,IAAI,EAAAmC,WACdnC,EAAEG,KAAO+N,EACTzR,EAAOqD,QAAQlC,KAAKoC,MAGxB42C,EAAQ7vB,MAAMlqB,SAAQ,SAACgoB,GACC,MAAhBA,EAAK/kB,SAAmB+kB,EAAK/kB,QAAQlJ,OAAS,GAAK4oH,EAAgBpnF,IAAIvT,EAAK/kB,QAAQ,KACpFrD,EAAOiD,oBAAoB9B,KAAK,CAACnB,EAAO2F,QAAQxL,OAAQ4oH,EAAgBvoH,IAAI4tB,EAAK/kB,QAAQ,MAG7F,IAAMd,EAAS,EAAK8B,kBACpB9B,EAAOmB,KAAO,EAAK5B,kBAAkBsmB,EAAKnrB,OAC1CsF,EAAOgC,SAAW6jB,EAAK7jB,SAAW,EAER,MAAtB6jB,EAAK+6F,eAAwC,MAAf/6F,EAAK3jB,QAAkB2jB,EAAK3jB,OAAOtK,OAAS,IAC7B,IAAzCiuB,EAAK+6F,cAAc/hH,QAAQ,WAA+D,IAA5CgnB,EAAK+6F,cAAc/hH,QAAQ,aACzE,EAAKgiH,aAAa7gH,EAAQ6lB,EAAK3jB,QACsB,IAA9C2jB,EAAK+6F,cAAc/hH,QAAQ,eAClC,EAAKmgH,YAAYh/G,EAAQ6lB,EAAK3jB,QACvB2jB,EAAK+6F,cAAc/hH,QAAQ,aAAe,GACjDgnB,EAAK3jB,OAAOkf,MAAK,SAACpgB,GAAW,MAAW,aAAXA,EAAEpF,OAAwB,EAAKuC,mBAAmB6C,EAAE7I,UACjF,EAAK0oH,aAAa7gH,EAAQ6lB,EAAK3jB,QAE/B,EAAK28G,YAAY7+G,EAAQ6lB,EAAK3jB,SAItClC,EAAOiC,OAAU,KAAO,EAAK1C,kBAAkBsmB,EAAKy2F,KAAM,IAC1D,EAAKj5G,sBAAsBrD,GAC3B,EAAKuC,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,MAGxBvC,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,IAGnB,YAAAojH,aAAR,SAAqB7gH,EAAoBkC,GAAzC,WACUovE,EAAiB,GACvBpvE,EAAOrE,SAAQ,SAAC+E,GACR,EAAKzE,mBAAmByE,EAAMzK,QAAyB,YAAfyK,EAAMhH,OAI9B,aAAfgH,EAAMhH,MAAsC,UAAfgH,EAAMhH,OACpC,EAAKuC,mBAAmB6B,EAAOmC,MAAMmB,UAEf,aAAfV,EAAMhH,MAAuB,EAAKuC,mBAAmB6B,EAAOmC,MAAMoB,UACzEvD,EAAOmC,MAAMoB,SAAWX,EAAMzK,MACR,SAAfyK,EAAMhH,MAAmB,EAAKuC,mBAAmB6B,EAAOmC,MAAM+e,MACrElhB,EAAOmC,MAAM+e,KAAOte,EAAMzK,MACJ,QAAfyK,EAAMhH,KACb01E,EAAK1yE,KAAKgE,EAAMzK,OAEhB,EAAKqK,WAAWxC,EAAQ4C,EAAM0V,MAAO1V,EAAMzK,MACnB,IAApByK,EAAMk+G,UAAkB,EAAAr+G,UAAUu6E,OAAS,EAAAv6E,UAAUC,MATzD1C,EAAOmC,MAAMmB,SAAWV,EAAMzK,UAYtC6H,EAAOmC,MAAMqB,KAAO/J,KAAK4E,aAAaizE,IAGlC,YAAA0tC,YAAR,SAAoBh/G,EAAoBkC,GAAxC,WACIlC,EAAOM,KAAO,IAAI,EAAAqR,SAClB3R,EAAOpE,KAAO,EAAAyG,WAAWuR,KACzB1R,EAAOrE,SAAQ,SAAC+E,GACR,EAAKzE,mBAAmByE,EAAMzK,QAAyB,YAAfyK,EAAMhH,MAAqC,WAAfgH,EAAMhH,OAI3D,WAAfgH,EAAMhH,MAAqB,EAAKuC,mBAAmB6B,EAAOM,KAAK0Q,gBAC/DhR,EAAOM,KAAK0Q,eAAiBpO,EAAMzK,MACb,aAAfyK,EAAMhH,MAAuB,EAAKuC,mBAAmB6B,EAAOM,KAAKiR,SACxEvR,EAAOM,KAAKiR,OAAS3O,EAAMzK,MAC3B6H,EAAOM,KAAKgR,MAAQ,EAAK5R,aAAaM,EAAOM,KAAKiR,SAC5B,UAAf3O,EAAMhH,MAAoB,EAAKuC,mBAAmB6B,EAAOM,KAAK2Q,MACrEjR,EAAOM,KAAK2Q,KAAOrO,EAAMzK,MACH,aAAfyK,EAAMhH,MAAuB,EAAKuC,mBAAmB6B,EAAOM,KAAKE,UACnE,EAAKT,kBAAkBC,EAAQ4C,EAAMzK,QAK1C,EAAKqK,WAAWxC,EAAQ4C,EAAM0V,MAAO1V,EAAMzK,MACnB,IAApByK,EAAMk+G,UAAkB,EAAAr+G,UAAUu6E,OAAS,EAAAv6E,UAAUC,WAK7D,YAAAm8G,YAAR,SAAoB7+G,EAAoBkC,GAAxC,WACIA,EAAOrE,SAAQ,SAAC+E,GACR,EAAKzE,mBAAmByE,EAAMzK,QAAyB,YAAfyK,EAAMhH,MAGlD,EAAK4G,WAAWxC,EAAQ4C,EAAM0V,MAAO1V,EAAMzK,MACnB,IAApByK,EAAMk+G,UAAkB,EAAAr+G,UAAUu6E,OAAS,EAAAv6E,UAAUC,UAIzD,YAAAg+G,gBAAR,SAAwB5/G,GACpB,GAAe,MAAXA,EACA,MAAO,GAEX,IAAM2/G,EAAoB,GACpB1/G,EAAM,IAAI4H,IAAiB,IAYjC,OAXA7H,EAAQjD,SAAQ,SAACse,GACbpb,EAAI8H,IAAIsT,EAAI4kG,KAAM5kG,GAClBA,EAAI4oE,SAAW,MAEnBjkF,EAAQjD,SAAQ,SAACse,GACU,MAAnBA,EAAI6kG,aAA2C,KAApB7kG,EAAI6kG,aAAsBjgH,EAAIq4B,IAAIjd,EAAI6kG,aACjEjgH,EAAI9I,IAAIkkB,EAAI6kG,aAAaj8B,SAASnmF,KAAKud,GAEvCskG,EAAW7hH,KAAKud,MAGjBskG,GAGH,YAAAE,kBAAR,SAA0BM,EAAqBC,EAAangH,GAA5D,WACgB,MAARmgH,GAGJA,EAAKrjH,SAAQ,SAACmD,GACV,GAAe,MAAXA,EAAEtG,OAAoC,KAAnBsG,EAAEtG,MAAM8C,OAAe,CAC1C,IAAI9C,EAAQsG,EAAEtG,MAAM8C,OACD,MAAfyjH,GAA8C,KAAvBA,EAAYzjH,SACnC9C,EAAQumH,EAAc,IAAMvmH,GAEhCqG,EAAI8H,IAAI7H,EAAE+/G,KAAMrmH,GACE,MAAdsG,EAAE+jF,UAA0C,IAAtB/jF,EAAE+jF,SAASntF,QACjC,EAAK+oH,kBAAkBjmH,EAAOsG,EAAE+jF,SAAUhkF,QAK9D,EAtJA,CAAwC,EAAA+C,cAA3B,EAAAi2G,sB,8ZCZb,YAGA,QAEA,2B,+CAyBA,OAzBwC,OACpC,YAAAp8G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUn+C,KAAKwD,SAASL,GAAM,GACpC,OAAe,MAAXg7C,GACAn6C,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAG3Bm6C,EAAQh2C,QAAO,SAAAzJ,GACX,MAAqB,6BAAdA,EAAM6G,OACdnB,SAAQ,SAAA1F,GACP,IAAM6H,EAAS,EAAK8B,kBACd9C,EAAM,EAAKO,kBAAkBpH,EAAM6G,IAAK,EAAKO,kBAAkBpH,EAAM8G,WAC3Ee,EAAOmB,KAAO,EAAK5B,kBAAkB,EAAKR,YAAYC,GAAM,MAC5DgB,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkBpH,EAAMmL,UACrDtD,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkBpH,EAAMoL,UACrDvD,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAaW,GACtC,EAAKuD,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,MAGxBvC,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAE/B,EAzBA,CAAwC,EAAAqG,cAA3B,EAAAu1G,sB,8ZCLb,YAGA,QAEA,QAEA,QAEA,2B,+CAkDA,OAlDwC,OACpC,YAAA17G,MAAA,SAAMf,GACF,IAAMa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUse,KAAKv4D,MAAMf,GAC3B,GAAe,MAAXg7C,GAAmC,MAAhBA,EAAQh7C,KAE3B,OADAa,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,GAG3B,IAAK,IAAMrF,KAAOw/C,EAAQh7C,KACtB,GAAKg7C,EAAQh7C,KAAKnE,eAAeL,GAAjC,CAIA,IAAMD,EAAQy/C,EAAQh7C,KAAKxE,GACrB4H,EAASvG,KAAKqI,kBAIpB,GAHA9B,EAAOmB,KAAO1H,KAAK8F,kBAAkBpH,EAAM0hD,SAC3C75C,EAAOiC,MAAQxI,KAAK8F,kBAAkBpH,EAAM8J,OAExB,YAAhB9J,EAAM2hB,MACN9Z,EAAOmC,MAAMmB,SAAW7J,KAAK8F,kBAAkBpH,EAAMmL,UACrDtD,EAAOmC,MAAMoB,SAAW9J,KAAK8F,kBAAkBpH,EAAMoL,UACrDvD,EAAOmC,MAAMqB,KAAO/J,KAAK4E,aAAalG,EAAM6G,SACzC,IAAoB,eAAhB7G,EAAM2hB,MAgBb,SAfA9Z,EAAOpE,KAAO,EAAAyG,WAAWuR,KACzB5T,EAAOM,KAAO,IAAI,EAAAqR,SAClB3R,EAAOM,KAAK0Q,eAAiBvX,KAAK8F,kBAAkBpH,EAAMmL,UAC1DtD,EAAOM,KAAKiR,OAAS9X,KAAK8F,kBAAkBpH,EAAMgpH,cAClDnhH,EAAOM,KAAKgR,MAAQ7X,KAAKiG,aAAaM,EAAOM,KAAKiR,QAClDvR,EAAOM,KAAK2Q,KAAOxX,KAAK8F,kBAAkBpH,EAAMipH,WAC3C3nH,KAAK0E,mBAAmBhG,EAAMkpH,eAC1B5nH,KAAKsG,kBAAkBC,EAAQ7H,EAAMkpH,eACtC5nH,KAAK+I,WAAWxC,EAAQ,aAAc7H,EAAMkpH,cAG/C5nH,KAAK0E,mBAAmBhG,EAAMoL,WAC/B9J,KAAK+I,WAAWxC,EAAQ,MAAO7H,EAAMoL,UAM7C9J,KAAK4J,sBAAsBrD,GAC3BvG,KAAK8I,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,GAIxB,OADAvC,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,IAE/B,EAlDA,CAAwC,EAAAqG,cAA3B,EAAAo3G,sB,8ZCTb,YAGA,QAEA,2B,+CAsDA,OAtDuC,OACnC,YAAAv9G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUse,KAAKv4D,MAAMf,GAC3B,GAAe,MAAXg7C,GAAmD,IAAhCr/C,OAAOunD,KAAKlI,GAAShgD,OAExC,OADA6F,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,G,eAGhB6jH,GACP,IAAK1pE,EAAQn/C,eAAe6oH,IAAY,EAAKnjH,mBAAmBmjH,IAChC,IAA5B1pE,EAAQ0pE,GAAS1pH,O,iBAIrBggD,EAAQ0pE,GAASzjH,SAAQ,SAAC1F,GACtB,IAAI,EAAKgG,mBAAmBhG,EAAMopH,eAAwD,IAAvCppH,EAAMopH,aAAa1iH,QAAQ,QAA9E,CAIA,EAAKiE,cAAcrF,EAAQ6jH,GAC3B,IAAMthH,EAAS,EAAK8B,kBAQpB,GAPA9B,EAAOmB,KAAOhJ,EAAMopH,aAAaliH,QAAQ,UAAW,IAAIA,QAAQ,WAAY,IACxEW,EAAOmB,KAAKvJ,OAAS,KACrBoI,EAAOmB,KAAOnB,EAAOmB,KAAKrC,UAAU,EAAG,KAE3CkB,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkBpH,EAAMqpH,QACrDxhH,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAalG,EAAMopH,cAEpB,MAApBppH,EAAMspH,WAGN,IAAK,IAAMC,KAFX1hH,EAAOmC,MAAMmB,SAA+B,MAApBnL,EAAMspH,WAC1B,EAAKliH,kBAAkBpH,EAAMspH,WAAWE,gBAAkB,KAC3CxpH,EAAMspH,WAChBtpH,EAAMspH,WAAWhpH,eAAeipH,IAAkB,mBAATA,GACjC,eAATA,GAGJ,EAAKl/G,WAAWxC,EAAQ0hH,EAAMvpH,EAAMspH,WAAWC,IAIvD,EAAKr+G,sBAAsBrD,GAC3B,EAAKuC,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,Q,OAlC5B,IAAK,IAAMshH,KAAW1pE,E,EAAX0pE,GA2CX,OALI7nH,KAAKi3B,cACLj3B,KAAKgH,yBAAyBhD,GAGlCA,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,IAE/B,EAtDA,CAAuC,EAAAqG,cAA1B,EAAA82G,qB,8ZCLb,YAGA,QAOA,2B,+CAiHA,OAjH0C,OACtC,YAAAj9G,MAAA,SAAMf,GAAN,IAGQglH,EACAC,EACAC,EAkBM5hH,EAvBd,OACUzC,EAAS,IAAI,EAAAuG,aAKf+9G,EAActoH,KAAK6D,aAAaV,GAAMW,KAAK,OAEL,IAAtCwkH,EAAYljH,QAdJ,gBAeFqB,EAAQ6hH,EAAYtiH,MAflB,cAgBE7H,OAAS,IACfmqH,EAAc7hH,EAAM,GACpB0hH,EAAY1hH,EAAM,MAGuB,IAA7C6hH,EAAYljH,QApBG,uBAqBTqB,EAAQ6hH,EAAYtiH,MArBX,qBAsBL7H,OAAS,IACfmqH,EAAc7hH,EAAM,GACpB2hH,EAAmB3hH,EAAM,KAGW,IAAxC6hH,EAAYljH,QA1BD,mBA2BLqB,EAAQ6hH,EAAYtiH,MA3Bf,iBA4BD7H,OAAS,IACfmqH,EAAc7hH,EAAM,GACpB4hH,EAAe5hH,EAAM,KAI7B,IAAM+B,EAAQxI,KAAKuoH,kBAAkBJ,GAC/BK,EAAexoH,KAAKuoH,kBAAkBH,GACtCK,EAAWzoH,KAAKuoH,kBAAkBF,GA+BxC,OA7BA7/G,EAAMpE,SAAQ,SAAAgU,GACV,IAAM7R,EAAS,EAAK8B,kBACpB9B,EAAOmB,KAAO,EAAK5B,kBAAkBsS,EAAE5Z,IAAI,SAC3C+H,EAAOiC,MAAQ,EAAK1C,kBAAkBsS,EAAE5Z,IAAI,SAC5C,EAAKsK,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,MAGxBkiH,EAAS/7F,OAAO87F,GAAcpkH,SAAQ,SAAA65D,GAClC,IAAM13D,EAAS,EAAK8B,kBACdqgH,EAAUzqD,EAAEt+B,IAAI,gBAAkB,eAAiB,cACzDp5B,EAAOmB,KAAO,EAAK5B,kBAAkBm4D,EAAEz/D,IAAIkqH,GAAU,IAChD,EAAKhkH,mBAAmBu5D,EAAEz/D,IAAI,iBAC1B,EAAKkG,mBAAmB6B,EAAOmB,QAChCnB,EAAOmB,MAAQ,MAEnBnB,EAAOmB,MAAQu2D,EAAEz/D,IAAI,eAEzB+H,EAAOiC,MAAQ,EAAK1C,kBAAkBm4D,EAAEz/D,IAAI,YACxCy/D,EAAEt+B,IAAI,iBACNp5B,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAaq5D,EAAEz/D,IAAI,iBAEhD+H,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkBm4D,EAAEz/D,IAAI,UACrD+H,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkBm4D,EAAEz/D,IAAI,aACrD,EAAKsK,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,MAGxBvC,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,IAGnB,YAAAukH,kBAAR,SAA0BplH,GACtB,GAAInD,KAAK0E,mBAAmBvB,KAAsC,IAA7BA,EAAKiC,QAtEhC,WAuEN,MAAO,GAEX,IAAMkpB,EAA+B,GAwCrC,OAvCAnrB,EAAK6C,MA1EK,WA0EY5B,SAAQ,SAAAgR,GAC1B,IAAyB,IAArBA,EAAEhQ,QAAQ,MAAd,CAGA,IACIujH,EACAC,EAFEx8F,EAAO,IAAIld,IAGjBkG,EAAEpP,MAAM,MAAM5B,SAAQ,SAAAojB,GAClB,GAAmB,MAAfmhG,EAAJ,CAIA,IACIhqH,EACA8W,EAFEozG,EAAarhG,EAAEpiB,QAAQ,MAGT,IAAhByjH,IAGAlqH,EAAM6oB,EAAEniB,UAAU,EAAGwjH,GACjBrhG,EAAErpB,OAAS0qH,EAAa,IACxBpzG,EAAM+R,EAAEniB,UAAUwjH,EAAa,IAG5B,MAAPlqH,GACAytB,EAAKhd,IAAIzQ,EAAK8W,GAEN,YAAR9W,GAA6B,SAARA,IACrBgqH,EAAclzG,EACdmzG,EAAiBjqH,SAnBjBgqH,GAAgB,KAAOnhG,KAsBZ,MAAfmhG,GAAyC,MAAlBC,GACvBx8F,EAAKhd,IAAIw5G,EAAgBD,GAEX,IAAdv8F,EAAKtN,MAGTwP,EAAMnpB,KAAKinB,OAERkC,GAEf,EAjHA,CAA0C,EAAAjkB,cAA7B,EAAAq3G,wB,8ZCVb,YAGA,SAEA,QAEA,SAEA,yE,OACI,EAAA19G,OAAS,IAAI,EAAAuG,a,EAyFjB,OA1FyC,OAGrC,YAAArG,MAAA,SAAMf,GACF,IAAMC,EAAMpD,KAAKkD,SAASC,GAC1B,GAAW,MAAPC,EAEA,OADApD,KAAKgE,OAAOsG,SAAU,EACf+K,QAAQC,QAAQtV,KAAKgE,QAGhC,IAAM8kH,EAAY1lH,EAAIG,cAAc,8BACpC,OAAiB,MAAbulH,GACA9oH,KAAKgE,OAAOokD,aAAe,6CAC3BpoD,KAAKgE,OAAOsG,SAAU,EACf+K,QAAQC,QAAQtV,KAAKgE,UAGhChE,KAAK+oH,SAASD,GAAW,EAAM,IAE3B9oH,KAAKi3B,cACLj3B,KAAKgH,yBAAyBhH,KAAKgE,QAGvChE,KAAKgE,OAAOsG,SAAU,EACf+K,QAAQC,QAAQtV,KAAKgE,UAGhC,YAAA+kH,SAAA,SAAS39B,EAAe49B,EAAqBC,GAA7C,WACU1/G,EAAcvJ,KAAKgE,OAAOqD,QAAQlJ,OACpC+qH,EAAYD,EAEhB,IAAKD,EAAY,CACK,KAAdE,IACAA,GAAa,KAEjB,IAAMC,EAASnpH,KAAK2H,yBAAyByjF,EAAM,QACnD89B,GAAuB,MAAVC,EAAiB,IAAMA,EAAO3mG,YAC3C,IAAM2iC,EAAS,IAAI,EAAAz7C,WACnBy7C,EAAOz9C,KAAOwhH,EACdlpH,KAAKgE,OAAOqD,QAAQlC,KAAKggD,GAG7BnlD,KAAK+H,4BAA4BqjF,EAAM,SAAShnF,SAAQ,SAAAq9F,GACpD,IAAM2nB,EAAc,EAAKplH,OAAO2F,QAAQxL,OAElCoI,EAAS,EAAK8B,kBACpB,EAAKN,4BAA4B05F,EAAO,UAAUr9F,SAAQ,SAAAilH,GACtD,IAAMC,EAAU,EAAK3hH,yBAAyB0hH,EAAa,SACrD3qH,EAAmB,MAAX4qH,EAAkBA,EAAQ9mG,YAAc,KACtD,IAAI,EAAK9d,mBAAmBhG,GAA5B,CAGA,IAAM6qH,EAAQ,EAAK5hH,yBAAyB0hH,EAAa,OACnD1qH,EAAe,MAAT4qH,EAAgBA,EAAM/mG,YAAc,KAEhD,GAAY,QAAR7jB,EACA4H,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAalG,QACnC,GAAY,aAARC,EACP4H,EAAOmC,MAAMmB,SAAWnL,OACrB,GAAY,aAARC,EACP4H,EAAOmC,MAAMoB,SAAWpL,OACpB,GAAY,QAARC,EACR4H,EAAOmC,MAAM+e,KAAO/oB,EAAMkH,QAAQ,OAAQ,SACvC,GAAY,UAARjH,EACP4H,EAAOmB,KAAOhJ,OACX,GAAY,UAARC,EACP4H,EAAOiC,OAAU9J,EAAQ,SACtB,CACH,IAAIyD,EAAO,EAAA6G,UAAUC,KACfugH,EAASF,EAAQtB,WACnBwB,EAAMrrH,OAAS,GAA8B,MAAzBqrH,EAAMC,iBACM,SAAhCD,EAAMC,gBAAgB/qH,QACtByD,EAAO,EAAA6G,UAAUu6E,QAErB,EAAKx6E,WAAWxC,EAAQ5H,EAAKD,EAAOyD,QAI5C,EAAK2G,cAAcvC,GACnB,EAAKvC,OAAO2F,QAAQxE,KAAKoB,GAEpByiH,GACD,EAAKhlH,OAAOiD,oBAAoB9B,KAAK,CAACikH,EAAa7/G,OAI3DvJ,KAAK+H,4BAA4BqjF,EAAM,SAAShnF,SAAQ,SAAAyrD,GACpD,EAAKk5D,SAASl5D,GAAO,EAAOq5D,OAGxC,EA1FA,CAAyC,EAAA7+G,cAA5B,EAAAq1G,uB,8ZCTb,YAGA,QAEA,2B,+CAoCA,OApCyC,OACrC,YAAAx7G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUn+C,KAAKwD,SAASL,GAAM,GACpC,OAAe,MAAXg7C,GACAn6C,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAG3Bm6C,EAAQ/5C,SAAQ,SAAA1F,GACZ,IAAI,EAAKgG,mBAAmBhG,EAAMgrH,OAAlC,CAIAhrH,EAAMirH,OAAS,EAAKjlH,mBAAmBhG,EAAMirH,QAAUjrH,EAAMirH,MAAMhkH,WAAW,SAC1EjH,EAAMirH,MAAM/jH,QAAQ,QAAS,IAAMlH,EAAMirH,MAC7C,IAAMT,EAAa,EAAKxkH,mBAAmBhG,EAAMirH,OAAuB,KAAdjrH,EAAMirH,MAChE,EAAKtgH,cAAcrF,EAAQklH,GAE3B,IAAM3iH,EAAS,EAAK8B,kBACpB9B,EAAOiC,MAAQ,EAAK1C,kBAAkBpH,EAAM2nH,OAC5C9/G,EAAOmB,KAAO,EAAK5B,kBAAkBpH,EAAMgrH,MAAO,MAClDnjH,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkBpH,EAAM8lH,UACrDj+G,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkBpH,EAAM+qB,UACrDljB,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAalG,EAAM4R,KAC5C,EAAKxH,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,OAGpBvG,KAAKi3B,cACLj3B,KAAKgH,yBAAyBhD,GAGlCA,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAE/B,EApCA,CAAyC,EAAAqG,cAA5B,EAAAg1G,uB,8ZCLb,YAGA,QAIA,2B,+CAwCA,OAxCuC,OACnC,YAAAn7G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUn+C,KAAKwD,SAASL,GAAM,GACpC,OAAe,MAAXg7C,GACAn6C,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAG3Bm6C,EAAQ/5C,SAAQ,SAAA1F,GACZ,KAAIA,EAAMP,OAAS,GAAnB,CAIA,EAAKkL,cAAcrF,EAAQtF,EAAM,IACjC,IAAM6H,EAAS,EAAK8B,kBAOpB,GANA9B,EAAOiC,MAAQ,EAAK1C,kBAAkBpH,EAAM,IAAM,KAClD6H,EAAOmB,KAAO,EAAK5B,kBAAkBpH,EAAM,GAAI,MAC/C6H,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkBpH,EAAM,IACrD6H,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkBpH,EAAM,IACrD6H,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAalG,EAAM,IAExCA,EAAMP,OAAS,EAEf,IAAK,IAAIF,EAAI,EAAGA,EAAIS,EAAMP,OAAQF,GAAQ,EACtC,EAAK8K,WAAWxC,EAAQ7H,EAAMT,GAAIS,EAAMT,EAAI,IAIpD,EAAK6K,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,OAGpBvG,KAAKi3B,cACLj3B,KAAKgH,yBAAyBhD,GAGlCA,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAE/B,EAxCA,CAAuC,EAAAqG,cAA1B,EAAA81G,qB,8ZCPb,YAGA,QAEA,QACA,SACA,SACA,SACA,SACA,QAEA,QACA,SAEA,2B,+CAmQA,OAnQyC,OACrC,YAAAj8G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUn+C,KAAKwD,SAASL,GAAM,GACpC,OAAe,MAAXg7C,GACAn6C,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAG3Bm6C,EAAQ/5C,SAAQ,SAAC1F,EAAO6wD,GACpB,IAAM65D,EAAcplH,EAAO2F,QAAQxL,OAC/BoL,EAAcvF,EAAOqD,QAAQlJ,OAC7BslD,EAAW/kD,EAAM+kD,SACL,MAAZA,IACAA,EAAWA,EAAS79C,QAAQ,MAAO,KAAKA,QAAQ,wBAAyB,KAE7E,IAAM4D,EAA2D,WAA/C,EAAK1D,kBAAkB29C,EAAU,UAC/Ch6C,EAAYD,EAEhB,GAAIA,EACA,IAAK,IAAIvL,EAAI,EAAGA,EAAI+F,EAAOqD,QAAQlJ,OAAQF,IACvC,GAAI+F,EAAOqD,QAAQpJ,GAAGyJ,OAAS+7C,EAAU,CACrCh6C,GAAY,EACZF,EAActL,EACd,MAKZ,IAAMsI,EAAS,EAAKqjH,gBAAgBlrH,GACpC,GAAI6H,EAAOpE,OAAS,EAAAyG,WAAWC,MAC3BtC,EAAOiC,MAAQ,EAAK1C,kBAAkBpH,EAAMolH,OAC5Cv9G,EAAOmC,MAAQ,IAAI,EAAAC,UACnBpC,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAalG,EAAM6G,KAC5CgB,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkBpH,EAAMmL,UACrDtD,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkBpH,EAAMoL,eAClD,GAAIvD,EAAOpE,OAAS,EAAAyG,WAAWoB,WAClC,EAAK6/G,gBAAgBnrH,EAAO6H,QACzB,GAAIA,EAAOpE,OAAS,EAAAyG,WAAWuR,KAClC5T,EAAOM,KAAO,EAAKijH,UAAUprH,GAC7B6H,EAAOiC,MAAQ,EAAK1C,kBAAkBpH,EAAM8J,YACzC,GAAIjC,EAAOpE,OAAS,EAAAyG,WAAWwR,WAClC7T,EAAO4e,SAAW,EAAK4kG,cAAcrrH,GACrC6H,EAAOiC,MAAQ,EAAK1C,kBAAkBpH,EAAM8J,QACvC,EAAK9D,mBAAmBhG,EAAMsrH,QAAQ,CAEvC,IAAMC,EAAa,EAAKL,gBAAgBlrH,GACxCurH,EAAW9kG,SAAW,KACtB8kG,EAAW9nH,KAAO,EAAAyG,WAAWuR,KAC7B8vG,EAAWpjH,KAAO,EAAKijH,UAAUprH,GACjCsF,EAAO2F,QAAQxE,KAAK8kH,GAM5B,GAFAjmH,EAAO2F,QAAQxE,KAAKoB,GAEhBkD,EAAW,CACX,IAAMlC,EAAI,IAAI,EAAAmC,WACdnC,EAAEG,KAAO+7C,EACTz/C,EAAOqD,QAAQlC,KAAKoC,GAEpBiC,GACAxF,EAAOiD,oBAAoB9B,KAAK,CAACikH,EAAa7/G,OAIlDvJ,KAAKi3B,cACLj3B,KAAKgH,yBAAyBhD,GAGlCA,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAGnB,YAAA4lH,gBAAR,SAAwBlrH,GACpB,IAAM6H,EAAS,IAAI,EAAA+B,WAmBnB,OAlBI5J,EAAMM,eAAe,gBAAkBN,EAAMM,eAAe,oBAE5DuH,EAAOgC,UAAW,EAClBhC,EAAOmB,KAAO1H,KAAK8F,kBAAkBpH,EAAMwrH,YAAa,MACxD3jH,EAAOpE,KAAO,EAAAyG,WAAWuR,KAEpBna,KAAK0E,mBAAmBhG,EAAMuC,QAAWjB,KAAK0E,mBAAmBhG,EAAMyrH,YACvEnqH,KAAK0E,mBAAmBhG,EAAM0rH,WAAcpqH,KAAK0E,mBAAmBhG,EAAMonB,WAC1E9lB,KAAK0E,mBAAmBhG,EAAMwnB,QAAWlmB,KAAK0E,mBAAmBhG,EAAMmL,WACvE7J,KAAK0E,mBAAmBhG,EAAMyiB,SAC/B5a,EAAOpE,KAAO,EAAAyG,WAAWwR,YAI7B7T,EAAOgC,UAAYvI,KAAKi3B,cAA2D,MAA3Cj3B,KAAK8F,kBAAkBpH,EAAMmlH,IAAK,KAC1Et9G,EAAOmB,KAAO1H,KAAK8F,kBAAkBpH,EAAMgJ,KAAM,MACjDnB,EAAOpE,KAAqB,cAAdzD,EAAM6G,IAAsB,EAAAqD,WAAWoB,WAAa,EAAApB,WAAWC,OAE1EtC,GAGH,YAAAujH,UAAR,SAAkBprH,GACd,IAAMmI,EAAO,IAAI,EAAAqR,SAMjB,GALArR,EAAK0Q,eAAiBvX,KAAK8F,kBAAkBpH,EAAM2rH,QACnDxjH,EAAKiR,OAAS9X,KAAK8F,kBAAkBpH,EAAMsrH,OAC3CnjH,EAAK2Q,KAAOxX,KAAK8F,kBAAkBpH,EAAM4rH,OACzCzjH,EAAKgR,MAAQ7X,KAAKiG,aAAavH,EAAMsrH,QAEhChqH,KAAK0E,mBAAmBhG,EAAM6rH,QAAU7rH,EAAM6rH,MAAMnlH,QAAQ,MAAQ,EAAG,CACxE,IAAMolH,EAAc9rH,EAAM6rH,MAAiBvkH,MAAM,KAC7CwkH,EAAWrsH,OAAS,IACpB0I,EAAKE,QAAUyjH,EAAW,GAC1B3jH,EAAKC,SAAW0jH,EAAW,GACE,IAAzB3jH,EAAKC,SAAS3I,QAAqC,MAArB0I,EAAKC,SAAS,KAC5CD,EAAKC,SAAWD,EAAKC,SAAS,KAK1C,OAAOD,GAGH,YAAAkjH,cAAR,SAAsBrrH,GAClB,IAAMymB,EAAW,IAAI,EAAAC,aAsBrB,OArBAD,EAASlkB,MAAQjB,KAAK8F,kBAAkBpH,EAAMuC,OAC9CkkB,EAASqB,UAAYxmB,KAAK8F,kBAAkBpH,EAAMyrH,WAClDhlG,EAASU,WAAa7lB,KAAK8F,kBAAkBpH,EAAM+rH,YACnDtlG,EAASsB,SAAWzmB,KAAK8F,kBAAkBpH,EAAM0rH,UACjDjlG,EAAStb,SAAW7J,KAAK8F,kBAAkBpH,EAAMmL,UACjDsb,EAASc,QAAUjmB,KAAK8F,kBAAkBpH,EAAMunB,SAChDd,EAASgB,IAAMnmB,KAAK8F,kBAAkBpH,EAAMynB,KAC5ChB,EAASW,SAAW9lB,KAAK8F,kBAAkBpH,EAAMonB,UACjDX,EAASY,SAAW/lB,KAAK8F,kBAAkBpH,EAAMqnB,UACjDZ,EAASa,SAAWhmB,KAAK8F,kBAAkBpH,EAAMsnB,UACjDb,EAAS5B,KAAOvjB,KAAK8F,kBAAkBpH,EAAM6kB,MAC7C4B,EAAS3B,MAAQxjB,KAAK8F,kBAAkBpH,EAAM8kB,OAC9C2B,EAAS1B,WAAazjB,KAAK8F,kBAAkBpH,EAAMgsH,KACnDvlG,EAAS9I,QAAUrc,KAAK8F,kBAAkBpH,EAAM2d,SAChD8I,EAAShE,MAAQnhB,KAAK8F,kBAAkBpH,EAAMyiB,OAC9CgE,EAASe,MAAQlmB,KAAK8F,kBAAkBpH,EAAMwnB,OAEzClmB,KAAK0E,mBAAmBygB,EAASlkB,SAClCkkB,EAASlkB,MAAQkkB,EAASlkB,MAAMa,OAAO,GAAGC,cAAgBojB,EAASlkB,MAAMgB,MAAM,IAG5EkjB,GAGH,YAAA0kG,gBAAR,SAAwBnrH,EAAY6H,GAChC,IAAMokH,EAAa3qH,KAAK6D,aAAanF,EAAMolH,OACvC8G,GAAgB,EAEpB,GAAID,EAAWxsH,OAAQ,CACnB,IAAM0sH,EAAYF,EAAW,GAAG3kH,MAAM,KACtC,GAAI6kH,EAAU1sH,OAAS,GAAsB,aAAjB0sH,EAAU,KAChB,gBAAjBA,EAAU,IAAyC,YAAjBA,EAAU,IAAmB,CAChE,GAAqB,gBAAjBA,EAAU,GAAsB,CAChC,IAAMC,EAAa9qH,KAAK+qH,uBAAiCxkH,EAAQokH,EAAY,CACzE,OAAU,SACV,eAAgB,iBAChB,gBAAiB,OAGjB,kBAAmB,aAGvB,GAAI3qH,KAAK0E,mBAAmBomH,EAAWhkH,WAAqC,MAAxBgkH,EAAWhkH,SAE3DgkH,EAAWhkH,cAAWlF,MACnB,CACG,4BAACopH,EAAA,KAAarkH,EAAA,KAEpB,GAAK3G,KAAK0E,mBAAmBsmH,GAQzBF,EAAWhkH,cAAWlF,MARiB,CACvC,IAAM8E,EAAQ,IAAI4iB,KAAKA,KAAKplB,MAAM8mH,EAAYjnH,OAAS,aAAairB,WAAa,EAC7EQ,MAAM9oB,GACNokH,EAAWhkH,cAAWlF,EAEtBkpH,EAAWhkH,SAAWJ,EAAM+F,WAK/BzM,KAAK0E,mBAAmBiC,KACzBmkH,EAAW/jH,QAAUJ,GAI7BJ,EAAOpE,KAAO,EAAAyG,WAAWuR,KACzB5T,EAAOM,KAAOikH,OACX,GAAqB,YAAjBD,EAAU,GAAkB,CAC7BC,EAAa9qH,KAAK+qH,uBAAqCxkH,EAAQokH,EAAY,CAC7E,MAAS,QACT,aAAc,YACd,YAAa,WACb,cAAe,aACf,QAAW,UACX,YAAa,WACb,YAAa,WACb,YAAa,WACb,cAAe,OACf,MAAS,QACT,oBAAqB,aACrB,QAAW,UACX,gBAAiB,QACjB,SAAY,aAEhBpkH,EAAOpE,KAAO,EAAAyG,WAAWwR,SACzB7T,EAAO4e,SAAW2lG,EAEtBF,GAAgB,GAInBA,IACDrkH,EAAO0D,WAAa,IAAI,EAAAC,eACxB3D,EAAO0D,WAAW9H,KAAO,EAAAgI,eAAeC,QACxC7D,EAAOiC,MAAQxI,KAAK8F,kBAAkBpH,EAAMolH,SAI5C,YAAAiH,uBAAR,SAAkCxkH,EAAoBokH,EAAsBrjH,GAA5E,WACUgN,EAAe,GAEjB22G,GAAkB,EAsCtB,OArCAN,EAAWvmH,SAAQ,SAAA8mH,GACf,IAAIvsH,EAAc,KACd8W,EAAc,KAClB,IAAKw1G,EAAiB,CAClB,GAAI,EAAKvmH,mBAAmBwmH,GACxB,OAEJ,IAAMrC,EAAaqC,EAAU9lH,QAAQ,KASrC,IARoB,IAAhByjH,EACAlqH,EAAMusH,GAENvsH,EAAMusH,EAAU7lH,UAAU,EAAGwjH,GACzBqC,EAAU/sH,OAAS0qH,IACnBpzG,EAAMy1G,EAAU7lH,UAAUwjH,EAAa,KAG3C,EAAKnkH,mBAAmB/F,IAAQ,EAAK+F,mBAAmB+Q,IAAgB,aAAR9W,EAChE,OAIJssH,EACA1kH,EAAOiC,OAAU,KAAO0iH,EACT,UAARvsH,GACF,EAAK+F,mBAAmB6B,EAAOiC,OAGhCjC,EAAOiC,MAAQiN,EAFflP,EAAOiC,OAAU,KAAOiN,EAI5Bw1G,GAAkB,GACX3jH,EAAItI,eAAeL,GAC1B2V,EAAQhN,EAAI3I,IAAQ8W,EAEpB,EAAK1M,WAAWxC,EAAQ5H,EAAK8W,MAI9BnB,GAEf,EAnQA,CAAyC,EAAAjK,cAA5B,EAAA+0G,uB,8ZCfb,YAGA,QAEA,2B,+CAyBA,OAzB0C,OACtC,YAAAl7G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUn+C,KAAKwD,SAASL,GAAM,GACpC,OAAe,MAAXg7C,GACAn6C,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAG3Bm6C,EAAQ/5C,SAAQ,SAAA1F,GACZ,KAAIA,EAAMP,OAAS,GAAnB,CAGA,IAAMoI,EAAS,EAAK8B,kBACpB9B,EAAOmB,KAAO,EAAK5B,kBAAkBpH,EAAM,GAAI,MAC/C6H,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkBpH,EAAM,IACrD6H,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkBpH,EAAM,IACrD6H,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAalG,EAAM,IAC5C,EAAKoK,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,OAGxBvC,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAE/B,EAzBA,CAA0C,EAAAqG,cAA7B,EAAA03G,wB,8ZCLb,YAGA,QAEA,2B,+CAuBA,OAvBwC,OACpC,YAAA79G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUn+C,KAAKwD,SAASL,GAAM,GACpC,OAAe,MAAXg7C,GACAn6C,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAG3Bm6C,EAAQ/5C,SAAQ,SAAA1F,GACZ,IAAM6H,EAAS,EAAK8B,kBACpB9B,EAAOmB,KAAO,EAAK5B,kBAAkBpH,EAAMysH,YAAa,MACxD5kH,EAAOiC,MAAQ,EAAK1C,kBAAkBpH,EAAM2nH,OAC5C9/G,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkBpH,EAAM0sH,UACrD7kH,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkBpH,EAAM+qB,UACrDljB,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAalG,EAAM2sH,KAC5C,EAAKviH,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,MAGxBvC,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAE/B,EAvBA,CAAwC,EAAAqG,cAA3B,EAAA01G,sB,8ZCLb,YAGA,QAEA,QACA,SAEA,QAEA,2B,+CAmDA,OAnDwC,OACpC,YAAA77G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUn+C,KAAKwD,SAASL,GAAM,GACpC,OAAe,MAAXg7C,GACAn6C,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAG3Bm6C,EAAQ/5C,SAAQ,SAAA1F,GACZ,KAAIA,EAAMP,OAAS,GAAnB,CAIA,IAAMmL,EAAgE,eAAnD,EAAKxD,kBAAkBpH,EAAM,GAAI,cAAiCA,EAAM,GAAK,KAChG,EAAK2K,cAAcrF,EAAQsF,GAE3B,IAAM/C,EAAS,EAAK8B,kBAGpB,GAFA9B,EAAOmB,KAAO,EAAK5B,kBAAkBpH,EAAM,GAAI,MAE9B,eAAbA,EAAM,IAAoC,UAAbA,EAAM,GACnC6H,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAalG,EAAM,IAC5C6H,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkBpH,EAAM,IACrD6H,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkBpH,EAAM,IACrD6H,EAAOiC,MAAS,EAAK9D,mBAAmBhG,EAAM,IAAyC,KAAnCA,EAAM,GAAGsH,MAAM,OAAOlC,KAAK,WAC5E,GAAIpF,EAAMP,OAAS,EAAG,CACzBoI,EAAOpE,KAAO,EAAAyG,WAAWoB,WACzBzD,EAAO0D,WAAa,IAAI,EAAAC,eACxB3D,EAAO0D,WAAW9H,KAAO,EAAAgI,eAAeC,QACxC,IAAK,IAAInM,EAAI,EAAGA,EAAIS,EAAMP,OAAQF,IACzB,EAAKyG,mBAAmBhG,EAAMT,MAC/BsI,EAAOiC,OAAU9J,EAAMT,GAAK,MAKnC,EAAKyG,mBAAmBhG,EAAM,KAAO6H,EAAOpE,OAAS,EAAAyG,WAAWC,QACjEtC,EAAOmB,KAAOhJ,EAAM,GAAK,KAAO6H,EAAOmB,MAG3C,EAAKoB,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,OAGpBvG,KAAKi3B,cACLj3B,KAAKgH,yBAAyBhD,GAGlCA,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAE/B,EAnDA,CAAwC,EAAAqG,cAA3B,EAAAo2G,sB,8ZCVb,YAGA,QACA,SAEA,QACA,SACA,QAEA,QAEA,2B,+CA+DA,OA/DqC,OACjC,YAAAv8G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUn+C,KAAKwD,SAASL,GAAM,GACpC,OAAe,MAAXg7C,GACAn6C,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAG3Bm6C,EAAQ/5C,SAAQ,SAAA1F,GACZ,IAAM6H,EAAS,EAAK8B,kBAIpB,GAHA9B,EAAOmB,KAAO,EAAK5B,kBAAkBpH,EAAM4sH,SAAU,MACrD/kH,EAAOiC,MAAQ,EAAK1C,kBAAkBpH,EAAM6sH,qBAE1B3pH,IAAdlD,EAAM6G,IAENgB,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAalG,EAAM6G,KAC5CgB,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkBpH,EAAMmL,UACrDtD,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkBpH,EAAMoL,UACrDvD,EAAOmC,MAAM+e,KAAO,EAAK3hB,kBAAkBpH,EAAM8sH,uBAC9C,QAAyB5pH,IAArBlD,EAAMwkH,WAEb38G,EAAOM,KAAO,IAAI,EAAAqR,SAClB3R,EAAOpE,KAAO,EAAAyG,WAAWuR,KACzB5T,EAAOM,KAAK0Q,eAAiB,EAAKzR,kBAAkBpH,EAAM+sH,UAC1DllH,EAAOM,KAAKiR,OAAS,EAAKhS,kBAAkBpH,EAAMwkH,YAClD38G,EAAOM,KAAKgR,MAAQ,EAAK5R,aAAaM,EAAOM,KAAKiR,QAClDvR,EAAOM,KAAKC,SAAW,EAAKhB,kBAAkBpH,EAAMgtH,WACpDnlH,EAAOM,KAAKE,QAAU,EAAKjB,kBAAkBpH,EAAMitH,UACnDplH,EAAOM,KAAK2Q,KAAO,EAAK1R,kBAAkBpH,EAAMykH,UAC7C,QAAwBvhH,IAApBlD,EAAM8nB,UAEbjgB,EAAO4e,SAAW,IAAI,EAAAC,aACtB7e,EAAOpE,KAAO,EAAAyG,WAAWwR,SACzB7T,EAAO4e,SAASlkB,MAAQ,EAAK6E,kBAAkBpH,EAAMuC,OACrDsF,EAAO4e,SAASqB,UAAY,EAAK1gB,kBAAkBpH,EAAM8nB,WACzDjgB,EAAO4e,SAASU,WAAa,EAAK/f,kBAAkBpH,EAAMmnB,YAC1Dtf,EAAO4e,SAASsB,SAAW,EAAK3gB,kBAAkBpH,EAAM+nB,UACxDlgB,EAAO4e,SAASe,MAAQ,EAAKpgB,kBAAkBpH,EAAMoZ,QACrDvR,EAAO4e,SAAShE,MAAQ,EAAKrb,kBAAkBpH,EAAMyiB,OACrD5a,EAAO4e,SAASW,SAAW,EAAKhgB,kBAAkBpH,EAAMktH,kBACxDrlH,EAAO4e,SAASY,SAAW,EAAKjgB,kBAAkBpH,EAAMmtH,mBACxDtlH,EAAO4e,SAAS5B,KAAO,EAAKzd,kBAAkBpH,EAAM6kB,MACpDhd,EAAO4e,SAAS9I,QAAU,EAAKvW,kBAAkBpH,EAAM2d,SACvD9V,EAAO4e,SAAS1B,WAAa,EAAK3d,kBAAkBpH,EAAMotH,aACvD,SAAsBlqH,IAAlBlD,EAAMs/C,QAQb,OANAz3C,EAAO0D,WAAa,IAAI,EAAAC,eACxB3D,EAAOpE,KAAO,EAAAyG,WAAWoB,WACzBzD,EAAO0D,WAAW9H,KAAO,EAAAgI,eAAeC,QACxC7D,EAAOmB,KAAO,EAAK5B,kBAAkBpH,EAAMuC,MAAO,MAClDsF,EAAOiC,MAAQ,EAAK1C,kBAAkBpH,EAAMs/C,SAKhD,EAAKl1C,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,MAGxBvC,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAE/B,EA/DA,CAAqC,EAAAqG,cAAxB,EAAAw3G,mB,8ZCZb,YAGA,QAEA,QAEA,SACA,SACA,QAEA,QACA,SACA,SAEA,yE,OACI,EAAA79G,OAAS,IAAI,EAAAuG,a,EAuOjB,OAxO6C,OAGzC,YAAArG,MAAA,SAAMf,GAAN,WAuBI,OAtBAA,EAAK6C,MAAMhG,KAAK0C,cAAc0B,SAAQ,SAAA2nH,GAClC,IAAI,EAAKrnH,mBAAmBqnH,IAAqB,MAAZA,EAAK,GAA1C,CAGA,IAAM3/F,EAAOqwC,KAAKv4D,MAAM6nH,GACxB,IAAqB,IAAjB3/F,EAAK4/F,QAAT,CAGA,IAAMzlH,EAAS,EAAK8B,kBAEhB,EAAK3D,mBAAmB0nB,EAAKokE,MAC7B,EAAKy7B,oBAAoB7/F,EAAM7lB,GAE/B,EAAK2lH,sBAAsB9/F,EAAM7lB,GAGrC,EAAKqD,sBAAsBrD,GAC3B,EAAKuC,cAAcvC,GACnB,EAAKvC,OAAO2F,QAAQxE,KAAKoB,QAG7BvG,KAAKgE,OAAOsG,SAAU,EACf+K,QAAQC,QAAQtV,KAAKgE,SAGxB,YAAAkoH,sBAAR,SAA8B9/F,EAAW7lB,GAAzC,WACI,GAAqB,MAAjB6lB,EAAK+/F,WACL5lH,EAAOmB,KAAO1H,KAAK8F,kBAAkBsmB,EAAK+/F,SAASlrH,OACzB,MAAtBmrB,EAAK+/F,SAASC,MAAc,CAC5B,IAAM,EAAiB,GACvBhgG,EAAK+/F,SAASC,KAAKhoH,SAAQ,SAACmB,GACnB,EAAKb,mBAAmBa,EAAIL,IAC7B,EAAKC,KAAKI,EAAIL,MAGtBqB,EAAOmC,MAAMqB,KAAO/J,KAAK4E,aAAa,GAI1B,MAAhBwnB,EAAKggD,UAC+B,MAAhChgD,EAAKggD,QAAQ9mD,iBACbtlB,KAAKqsH,qBAAqBjgG,EAAKggD,QAAQ9mD,gBAAiB/e,GAEvDvG,KAAK0E,mBAAmB0nB,EAAKggD,QAAQ49C,QAAWhqH,KAAK0E,mBAAmB0nB,EAAKggD,QAAQ+2C,KAG9EnjH,KAAK0E,mBAAmB0nB,EAAKggD,QAAQ+9C,YAC5CnqH,KAAK0E,mBAAmB0nB,EAAKggD,QAAQtmD,YACtCvf,EAAOpE,KAAO,EAAAyG,WAAWwR,SACzB7T,EAAO4e,SAAW,IAAI,EAAAC,eALtB7e,EAAOpE,KAAO,EAAAyG,WAAWuR,KACzB5T,EAAOM,KAAO,IAAI,EAAAqR,UAMlB3R,EAAOpE,OAAS,EAAAyG,WAAWC,OAAU7I,KAAK0E,mBAAmB0nB,EAAKggD,QAAQtiE,YAC1EvD,EAAOmC,MAAMoB,SAAWsiB,EAAKggD,QAAQtiE,UAEpC9J,KAAK0E,mBAAmB0nB,EAAKggD,QAAQkgD,cACtC/lH,EAAOiC,MAAQ4jB,EAAKggD,QAAQkgD,WAAWtmH,MAAMhG,KAAK0C,cAAcoB,KAAK,MAAQ,MAEtD,MAAvBsoB,EAAKggD,QAAQ3jE,QACbzI,KAAKusH,YAAYngG,EAAKggD,QAAQ3jE,OAAQlC,EAAQ,cAAe,QAAS,QAE7C,MAAzB6lB,EAAKggD,QAAQogD,UACbpgG,EAAKggD,QAAQogD,SAASpoH,SAAQ,SAACqoH,GACL,MAAlBA,EAAQhkH,QACR,EAAK8jH,YAAYE,EAAQhkH,OAAQlC,EAAQ,IAAK,IAAK,UAO/D,YAAA0lH,oBAAR,SAA4B7/F,EAAW7lB,GAAvC,WAkBI,GAjBAA,EAAOgC,YAAW6jB,EAAKsgG,eAAgBtgG,EAAKsgG,aAAaC,WACzDpmH,EAAOmB,KAAO1H,KAAK8F,kBAAkBsmB,EAAKnrB,OAEpB,2BAAlBmrB,EAAKwgG,UACLrmH,EAAOpE,KAAO,EAAAyG,WAAWoB,WACzBzD,EAAO0D,WAAa,IAAI,EAAAC,eACxB3D,EAAO0D,WAAW9H,KAAO,EAAAgI,eAAeC,SACf,gCAAlBgiB,EAAKwgG,UACZrmH,EAAOpE,KAAO,EAAAyG,WAAWuR,KACzB5T,EAAOM,KAAO,IAAI,EAAAqR,UACO,wBAAlBkU,EAAKwgG,UACZrmH,EAAOpE,KAAO,EAAAyG,WAAWwR,SACzB7T,EAAO4e,SAAW,IAAI,EAAAC,cAEtB7e,EAAOmC,MAAMqB,KAAO/J,KAAK4E,aAAawnB,EAAKkrB,UAGpB,MAAvBlrB,EAAKygG,eAAwB,CAO7B,GAN2C,MAAvCzgG,EAAKygG,eAAevnG,iBACpBtlB,KAAKqsH,qBAAqBjgG,EAAKygG,eAAevnG,gBAAiB/e,GAE9DvG,KAAK0E,mBAAmB0nB,EAAKygG,eAAeP,cAC7C/lH,EAAOiC,MAAQ4jB,EAAKygG,eAAeP,WAAWtmH,MAAMhG,KAAK0C,cAAcoB,KAAK,MAAQ,MAEpFyC,EAAOpE,OAAS,EAAAyG,WAAWC,QACtB7I,KAAK0E,mBAAmB0nB,EAAKygG,eAAe/iH,YAC7CvD,EAAOmC,MAAMoB,SAAWsiB,EAAKygG,eAAe/iH,UAEhB,MAA5BsiB,EAAKygG,eAAeT,MAAc,CAClC,IAAM,EAAiB,GACvBhgG,EAAKygG,eAAeT,KAAKhoH,SAAQ,SAACc,GACzB,EAAKR,mBAAmBQ,EAAEK,MAC3B,EAAKJ,KAAKD,EAAEK,QAGhB,EAAKpH,OAAS,IACdoI,EAAOmC,MAAMqB,KAAO/J,KAAK4E,aAAa,IAIhB,MAA9BwnB,EAAKygG,eAAepkH,QACpBzI,KAAKusH,YAAYngG,EAAKygG,eAAepkH,OAAQlC,EAAQ,cAAe,QAAS,QAE7C,MAAhC6lB,EAAKygG,eAAeL,UACpBpgG,EAAKygG,eAAeL,SAASpoH,SAAQ,SAACqoH,GACZ,MAAlBA,EAAQhkH,QACR,EAAK8jH,YAAYE,EAAQhkH,OAAQlC,EAAQ,IAAK,IAAK,UAO/D,YAAA8lH,qBAAR,SAA6B/9F,EAAc/nB,GAA3C,WACUumH,EAAUx+F,EAAMnwB,OAAS,EAAI,EAAImwB,EAAMnwB,OAC7CoI,EAAO+e,gBAAkBgJ,EACpBnmB,QAAO,SAACozB,GAAW,OAAC,EAAK72B,mBAAmB62B,EAAE78B,QAAoB,MAAV68B,EAAE0jE,QAC1DnhE,MAAK,SAACvuB,EAAGC,GAAM,OAAAA,EAAEyvF,KAAO1vF,EAAE0vF,QAC1Bh9F,MAAM,EAAG6qH,GACTxlH,KAAI,SAACi0B,GACF,IAAMlU,EAAK,IAAI,EAAAi2B,oBAGf,OAFAj2B,EAAGvd,SAAWyxB,EAAE78B,MAChB2oB,EAAGiE,aAAe,IAAIhC,MAAM,GAAKiS,EAAE0jE,MAAM9gG,QAAU,GAAKo9B,EAAE0jE,KAAgB,IAAT1jE,EAAE0jE,MAC5D53E,MAIX,YAAAklG,YAAR,SAAoB9jH,EAAelC,EAAoBwmH,EAAwBC,EAAkBtE,GAAjG,WACIjgH,EAAOrE,SAAQ,SAAC+E,GACZ,GAAuB,MAAnBA,EAAM6jH,IAA2D,KAAtC7jH,EAAM6jH,GAAUvgH,WAAW1I,OAA1D,CAIA,IAAM4iH,EAAax9G,EAAM6jH,GAAUvgH,WAC7BwgH,EAA4C,MAAzB9jH,EAAM4jH,GAA0B5jH,EAAM4jH,GAAgBtgH,WAAa,KAE5F,GAAIlG,EAAOpE,OAAS,EAAAyG,WAAWC,MAAO,CAClC,GAAI,EAAKnE,mBAAmB6B,EAAOmC,MAAMmB,WAAkC,aAArBojH,EAElD,YADA1mH,EAAOmC,MAAMmB,SAAW88G,GAErB,GAAI,EAAKjiH,mBAAmB6B,EAAOmC,MAAMoB,WAAkC,aAArBmjH,EAEzD,YADA1mH,EAAOmC,MAAMoB,SAAW68G,GAErB,GAAI,EAAKjiH,mBAAmB6B,EAAOmC,MAAM+e,OAA6B,MAApBwlG,GACrDA,EAAiBtnH,WAAW,SAE5B,YADAY,EAAOmC,MAAM+e,KAAOk/F,QAGrB,GAAIpgH,EAAOpE,OAAS,EAAAyG,WAAWuR,KAAM,CACxC,GAAI,EAAKzV,mBAAmB6B,EAAOM,KAAKiR,SAAgC,UAArBm1G,EAG/C,OAFA1mH,EAAOM,KAAKiR,OAAS6uG,OACrBpgH,EAAOM,KAAKgR,MAAQ,EAAK5R,aAAa0gH,IAEnC,GAAI,EAAKjiH,mBAAmB6B,EAAOM,KAAK2Q,OAA8B,QAArBy1G,EAEpD,YADA1mH,EAAOM,KAAK2Q,KAAOmvG,GAEhB,GAAI,EAAKjiH,mBAAmB6B,EAAOM,KAAK0Q,iBAAwC,eAArB01G,EAE9D,YADA1mH,EAAOM,KAAK0Q,eAAiBovG,GAE1B,GAAI,EAAKjiH,mBAAmB6B,EAAOM,KAAKL,aAAoC,WAArBymH,GACpC,IAAtBtG,EAAWxoH,OAMX,OALAoI,EAAOM,KAAKC,SAAY6/G,EAAsB//G,OAAO,EAAG,GACxB,MAA5BL,EAAOM,KAAKC,SAAS,KACrBP,EAAOM,KAAKC,SAAWP,EAAOM,KAAKC,SAASF,OAAO,EAAG,SAE1DL,EAAOM,KAAKE,QAAW4/G,EAAsB//G,OAAO,EAAG,IAEpD,GAAyB,SAArBqmH,EAEP,YAED,GAAI1mH,EAAOpE,OAAS,EAAAyG,WAAWwR,SAAU,CAC5C,IAAM+K,EAAW5e,EAAO4e,SACxB,GAAI,EAAKzgB,mBAAmBygB,EAASqB,YAAmC,cAArBymG,EAE/C,YADA9nG,EAASqB,UAAYmgG,GAElB,GAAI,EAAKjiH,mBAAmBygB,EAASsB,WAAkC,aAArBwmG,EAErD,YADA9nG,EAASsB,SAAWkgG,GAEjB,GAAI,EAAKjiH,mBAAmBygB,EAASU,aAAoC,YAArBonG,EAEvD,YADA9nG,EAASU,WAAa8gG,GAEnB,GAAI,EAAKjiH,mBAAmBygB,EAASe,QAA+B,aAArB+mG,EAElD,YADA9nG,EAASe,MAAQygG,GAEd,GAAI,EAAKjiH,mBAAmBygB,EAASc,UAAiC,YAArBgnG,EAEpD,YADA9nG,EAASc,QAAU0gG,GAEhB,GAAI,EAAKjiH,mBAAmBygB,EAAShE,QAA+B,UAArB8rG,EAElD,YADA9nG,EAAShE,MAAQwlG,GAEd,GAAI,EAAKjiH,mBAAmBygB,EAAStb,WAAkC,aAArBojH,EAErD,YADA9nG,EAAStb,SAAW88G,GAEjB,GAAyB,YAArBsG,EAAgC,CAEjC,WAAEC,EAAA,EAAAA,OAAQ3pG,EAAA,EAAAA,KAAMlH,EAAA,EAAAA,QAASquG,EAAA,EAAAA,IAO/B,OANAvlG,EAASW,SAAW,EAAKhgB,kBAAkBonH,GAC3C/nG,EAAS5B,KAAO,EAAKzd,kBAAkByd,GAClC,EAAK7e,mBAAmB2X,KACzB8I,EAAS9I,QAAUA,EAAQta,oBAE/BojB,EAAS1B,WAAa,EAAK3d,kBAAkB4kH,KAKrD,IAAM9D,EAAY,EAAKliH,mBAAmByE,EAAMu/G,IAAY,UAAYv/G,EAAMu/G,GAC9E,GAAkB,aAAd9B,GAAsD,MAA1BrgH,EAAO+e,kBACnC/e,EAAO+e,gBAAgBqC,MAAK,SAAA4T,GAAK,OAAAA,EAAEzxB,WAAa68G,KADpD,CAKA,IAAM9c,EAAwB,cAAZ1gG,EAAMu2D,EAAoB,EAAA12D,UAAUu6E,OAAS,EAAAv6E,UAAUC,KACzE,EAAKF,WAAWxC,EAAQqgH,EAAWD,EAAY9c,SAG3D,EAxOA,CAA6C,EAAAx/F,cAAhC,EAAA21G,2B,8ZCdb,aAEA,QACA,SAEA,2B,+CAqBA,OArB+C,OAC3C,YAAAjf,cAAA,SAAcriG,EAAY6H,GAEtB,OADoBvG,KAAK8F,kBAAkB9F,KAAK6gG,QAAQniG,EAAO,QAAS,UAEpE,IAAK,cACD6H,EAAOpE,KAAO,EAAAyG,WAAWuR,KACzB5T,EAAOM,KAAO,IAAI,EAAAqR,SAClB,EAAAunF,kBAAkBt6F,KAAK,QACvB,MACJ,IAAK,WACDoB,EAAOpE,KAAO,EAAAyG,WAAWwR,SACzB7T,EAAO4e,SAAW,IAAI,EAAAC,aACtB,EAAAq6E,kBAAkBt6F,KAAK,QACvB,MACJ,IAAK,QACL,IAAK,cACD,EAAAs6F,kBAAkBt6F,KAAK,UAKvC,EArBA,CAA+C,EAAAi9F,wBAAlC,EAAA8d,6B,8ECJb,MAEI,SAAmBne,EAA0B5iG,EAAyBoH,GAAnD,KAAAw7F,eAA0B,KAAA5iG,WAAyB,KAAAoH,SAClEvG,KAAKiiG,cAAgB9iG,EAAS6C,eAHzB,EAAAk/F,uB,8ECFb,mBAAa,EAAAxrB,Q,8ZCEb,aAEA,QACA,SAEA,cACI,mBACI,cAAO,K,OACP,EAAKyqB,wBAAwBh7F,KAAK,EAAKgoH,oB,EA0C/C,OA7C+C,OAM3C,YAAApsB,cAAA,SAAcriG,EAAY6H,GACtBA,EAAOpE,KAAO,EAAAyG,WAAWC,MACzBtC,EAAOmC,MAAQ,IAAI,EAAAC,UAEd3I,KAAK0E,mBAAmB1E,KAAK0hG,gBAAgBhjG,EAAO,kBACpDsB,KAAK0E,mBAAmB1E,KAAK0hG,gBAAgBhjG,EAAO,wBACrD6H,EAAOpE,KAAO,EAAAyG,WAAWuR,KACzB5T,EAAOM,KAAO,IAAI,EAAAqR,UAGjBlY,KAAK0E,mBAAmB1E,KAAK0hG,gBAAgBhjG,EAAO,2BACpDsB,KAAK0E,mBAAmB1E,KAAK0hG,gBAAgBhjG,EAAO,wBACpDsB,KAAK0E,mBAAmB1E,KAAK0hG,gBAAgBhjG,EAAO,0BACpDsB,KAAK0E,mBAAmB1E,KAAK0hG,gBAAgBhjG,EAAO,2BACrD6H,EAAOpE,KAAO,EAAAyG,WAAWwR,SACzB7T,EAAO4e,SAAW,IAAI,EAAAC,eAI9B,YAAA+nG,mBAAA,SAAmBlsB,GACf,QAAIA,EAAQgB,cAAch9F,MAAM,2BAC5BjF,KAAK+I,WAAWk4F,EAAQ16F,OAAQ,UAAW06F,EAAQc,aAAad,EAAQ9hG,YACjE,IAKf,YAAA+gG,oBAAA,SAAoBe,GAChB,GAAIjhG,KAAK0E,mBAAmBu8F,EAAQ16F,OAAOM,KAAKL,aAAey6F,EAAQgB,cAAc96D,SAAS,eAAgB,CAC1G,IAAMimF,EAAYnsB,EAAQc,aAAad,EAAQ9hG,UAAqB6G,MAAM,KAM1E,OALAi7F,EAAQ16F,OAAOM,KAAKC,SAAWsmH,EAAS,GACA,MAApCnsB,EAAQ16F,OAAOM,KAAKC,SAAS,IAAsD,IAAxCm6F,EAAQ16F,OAAOM,KAAKC,SAAS3I,SACxE8iG,EAAQ16F,OAAOM,KAAKC,SAAWm6F,EAAQ16F,OAAOM,KAAKC,SAASF,OAAO,EAAG,IAE1Eq6F,EAAQ16F,OAAOM,KAAKE,QAAUqmH,EAAS,GAAGjvH,OAAS,EAAIivH,EAAS,GAAGxmH,OAAO,EAAG,GAAKwmH,EAAS,IACpF,EAEX,OAAO,GAEf,EA7CA,CAA+C,EAAAhrB,wBAAlC,EAAA6d,6B,8ZCPb,YAGA,QAEA,SAGA,2B,+CA8EA,OA9EwC,OACpC,YAAA/7G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUn+C,KAAKwD,SAASL,GAAM,GACpC,GAAe,MAAXg7C,EAEA,OADAn6C,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,GAG3B,IAAIi0E,EAAoB,KAmExB,OAlEA95B,EAAQ/5C,SAAQ,SAAA1F,GACZ,GAAe,MAAXu5E,GAKJ,KAAIv5E,EAAMP,OAAS,GAAKO,EAAMP,SAAW85E,EAAQ95E,QAAjD,CAIA,IAAK,EAAKuG,mBAAmBhG,EAAM,IAC/B,GAAI,EAAKu4B,aAAc,EACbo2F,EAAQ3uH,EAAM,GAAcsH,MAAM,MACnC5B,SAAQ,SAAAkpH,GACTA,EAAMA,EAAIvpH,OAIV,IAHA,IAAIw/G,GAAgB,EAChBC,EAAkBx/G,EAAOoD,YAAYjJ,OAEhCF,EAAI,EAAGA,EAAI+F,EAAOoD,YAAYjJ,OAAQF,IAC3C,GAAI+F,EAAOoD,YAAYnJ,GAAGyJ,OAAS4lH,EAAK,CACpC/J,GAAgB,EAChBC,EAAkBvlH,EAClB,MAIR,GAAIslH,EAAe,CACf,IAAM/7G,EAAa,IAAI,EAAAC,eACvBD,EAAWE,KAAO4lH,EAClBtpH,EAAOoD,YAAYjC,KAAKqC,GAG5BxD,EAAOmD,wBAAwBhC,KAAK,CAACnB,EAAO2F,QAAQxL,OAAQqlH,WAE7D,CACH,IAAM6J,EACAC,GADAD,EAAQ3uH,EAAM,GAAcsH,MAAM,MACvB7H,OAAS,EAAIkvH,EAAK,GAAGtpH,OAAS,KAC/C,EAAKsF,cAAcrF,EAAQspH,GAInC,IAAM/mH,EAAS,EAAK8B,kBACpB9B,EAAOmB,KAAO,EAAK5B,kBAAkBpH,EAAM,GAAI,MAE/C,IAAK,IAAIT,EAAI,EAAGA,EAAIS,EAAMP,OAAQF,IAAK,CACnC,IAAMwF,EAASw0E,EAAQh6E,GAAG8F,OAAO/B,cAC7B,EAAK0C,mBAAmBhG,EAAMT,KAAO,EAAKyG,mBAAmBjB,KAI7D,EAAKb,mBAAmBwC,QAAQ3B,IAAW,EAC3C8C,EAAOmC,MAAMmB,SAAWnL,EAAMT,GACvB,EAAK0E,mBAAmByC,QAAQ3B,IAAW,EAClD8C,EAAOmC,MAAMoB,SAAWpL,EAAMT,GACvB,EAAK6E,cAAcsC,QAAQ3B,IAAW,EAC7C8C,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAalG,EAAMT,IAE5C,EAAK8K,WAAWxC,EAAQ0xE,EAAQh6E,GAAIS,EAAMT,KAIlD,EAAK6K,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,SA5DhB0xE,EAAUv5E,EAAM4I,KAAI,SAACg7E,GAAc,OAAAA,QA+D3Ct+E,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,IAE/B,EA9EA,CAAwC,EAAAqG,cAA3B,EAAAo1G,sB,8ZCRb,YAGA,QAEA,2B,+CAiCA,OAjCyC,OACrC,YAAAv7G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUn+C,KAAKwD,SAASL,GAAM,GACpC,OAAe,MAAXg7C,GACAn6C,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAG3Bm6C,EAAQ/5C,SAAQ,SAAA1F,GACZ,EAAK2K,cAAcrF,EAAQ,EAAKupH,SAAS,WAAY7uH,IACrD,IAAM6H,EAAS,EAAK8B,kBACpB9B,EAAOiC,MAAQ,EAAK+kH,SAAS,cAAe7uH,GAC5C6H,EAAOmB,KAAO,EAAK5B,kBAAkB,EAAKynH,SAAS,QAAS7uH,GAAQ,MACpE6H,EAAOmC,MAAMmB,SAAW,EAAK0jH,SAAS,WAAY7uH,GAClD6H,EAAOmC,MAAMoB,SAAW,EAAKyjH,SAAS,WAAY7uH,GAClD6H,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAa,EAAK2oH,SAAS,OAAQ7uH,IAC5D,EAAKqK,WAAWxC,EAAQ,aAAc,EAAKgnH,SAAS,YAAa7uH,IACjE,EAAKoK,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,MAGpBvG,KAAKi3B,cACLj3B,KAAKgH,yBAAyBhD,GAGlCA,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAGnB,YAAAupH,SAAR,SAAiB5uH,EAAaD,GAC1B,OAAOsB,KAAK8F,kBAAkBpH,EAAMC,GAAMqB,KAAK8F,kBAAkBpH,EAAO,IAAMC,MAEtF,EAjCA,CAAyC,EAAA0L,cAA5B,EAAA62G,uB,8ZCLb,YAGA,QAEA,2B,+CAuDA,OAvDyC,OACrC,YAAAh9G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUse,KAAKv4D,MAAMf,GAC3B,OAAe,MAAXg7C,GAAsC,IAAnBA,EAAQhgD,QAC3B6F,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAG3Bm6C,EAAQ/5C,SAAQ,SAACshH,GACb,GAAuB,MAAnBA,EAAW2H,MAAgB3H,EAAW2H,KAAKlvH,OAAS,EAAG,CACvD,IAAMmL,EAAao8G,EAAW2H,KAAK,GAAGprG,KACtC,EAAK5Y,cAAcrF,EAAQsF,GAG/B,IAAM/C,EAAS,EAAK8B,kBACpB9B,EAAOmB,KAAOg+G,EAAW7mG,MAEzBtY,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkB4/G,EAAW77G,UACtD,EAAKnF,mBAAmB6B,EAAOmC,MAAMmB,UACrCtD,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkB4/G,EAAWvkG,OAClD,EAAKzc,mBAAmBghH,EAAWvkG,SAC3C5a,EAAOiC,MAAS,UAAYk9G,EAAWvkG,MAAQ,MAGnD5a,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkB4/G,EAAW57G,UAC1DvD,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAa8gH,EAAWngH,KACjDgB,EAAOiC,OAAS,EAAK1C,kBAAkB4/G,EAAW9nF,YAAa,IACzC,MAAlB8nF,EAAW1oB,MACXz2F,EAAOmC,MAAM+e,KAAO,EAAK3hB,kBAAkB4/G,EAAW1oB,IAAI+qB,SAG9B,MAA5BrC,EAAW8H,eACX9H,EAAW8H,cAAcppH,SAAQ,SAACqpH,GAC9B,OAAQA,EAAYC,YAChB,IAAK,OACL,IAAK,WACD,EAAK3kH,WAAWxC,EAAQknH,EAAY5uG,MAAO4uG,EAAY/uH,WAMvE,EAAKkL,sBAAsBrD,GAC3B,EAAKuC,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,MAGpBvG,KAAKi3B,cACLj3B,KAAKgH,yBAAyBhD,GAGlCA,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAE/B,EAvDA,CAAyC,EAAAqG,cAA5B,EAAAi3G,uB,8ZCLb,YAGA,QAEA,SAEA,2B,+CAqFA,OArFyC,OACrC,YAAAp9G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUn+C,KAAKwD,SAASL,GAAM,GACpC,OAAe,MAAXg7C,GACAn6C,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAG3Bm6C,EAAQ/5C,SAAQ,SAAA1F,GACZ,IAAMivH,EAAY,EAAKjpH,mBAAmBhG,EAAMkvH,MAAiC,KAAzBnxD,KAAKv4D,MAAMxF,EAAMkvH,MACnEP,EAA6B,MAAZM,GAAqC,MAAjBA,EAASN,MAAgBM,EAASN,KAAKlvH,OAAS,EACvFwvH,EAASN,KAAK/lH,KAAI,SAACumH,GACf,IACI,IAAM5tH,EAAIw8D,KAAKv4D,MAAM2pH,GACrB,OAAO,EAAK/nH,kBAAkB7F,EAAEqtH,KAClC,UACF,OAAO,QACRnlH,QAAO,SAAClI,GAAc,OAAC,EAAKyE,mBAAmBzE,MAAM,KAExD,EAAKg3B,cAAwB,MAARo2F,GAAgBA,EAAKlvH,OAAS,EACnDkvH,EAAKjpH,SAAQ,SAAAkpH,GAIT,IAHA,IAAI/J,GAAgB,EAChBC,EAAkBx/G,EAAOoD,YAAYjJ,OAEhCF,EAAI,EAAGA,EAAI+F,EAAOoD,YAAYjJ,OAAQF,IAC3C,GAAI+F,EAAOoD,YAAYnJ,GAAGyJ,OAAS4lH,EAAK,CACpC/J,GAAgB,EAChBC,EAAkBvlH,EAClB,MAIR,GAAIslH,EAAe,CACf,IAAM/7G,EAAa,IAAI,EAAAC,eACvBD,EAAWE,KAAO4lH,EAClBtpH,EAAOoD,YAAYjC,KAAKqC,GAG5BxD,EAAOmD,wBAAwBhC,KAAK,CAACnB,EAAO2F,QAAQxL,OAAQqlH,QAExD,EAAKvsF,cAAwB,MAARo2F,GAAgBA,EAAKlvH,OAAS,GAC3D,EAAKkL,cAAcrF,EAAQqpH,EAAK,IAGpC,IAAM9mH,EAAS,EAAK8B,kBACpB9B,EAAOiC,MAAQ,EAAK1C,kBAAkBpH,EAAM2nH,MAAO,IACnD9/G,EAAOiC,OAAU,OAAS,EAAK1C,kBAAkBpH,EAAM,gBAAiB,IAAM,KAC9E6H,EAAOmB,KAAO,EAAK5B,kBAAkBpH,EAAM,cAAe,MAC1D6H,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkBpH,EAAM,YACrD6H,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkBpH,EAAM+qB,UACrDljB,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAalG,EAAM4R,KAEhB,MAAxB5R,EAAMovH,gBAA0BpvH,EAAMovH,eAAe3vH,OAAS,GAC9DO,EAAMovH,eAAe1pH,SAAQ,SAAC0/G,GACrB,EAAKp/G,mBAAmBo/G,KACzBv9G,EAAOiC,OAAU,KAAOs7G,MAKpC,IAAMiK,EAAc,EAAKrpH,mBAAmBhG,EAAM,iBACV,KAApC+9D,KAAKv4D,MAAMxF,EAAM,iBACf+J,EAAuB,MAAdslH,GAAgD,MAA1BA,EAAWC,aAC5CD,EAAWC,YAAY7vH,OAAS,EAAI4vH,EAAWC,YAAY1mH,KAAI,SAAC2mH,GAC5D,IACI,OAAOxxD,KAAKv4D,MAAM+pH,GACpB,UACF,OAAO,QACN,KACK,MAAVxlH,GACAA,EAAOrE,SAAQ,SAACmD,GACH,MAALA,GACA,EAAKwB,WAAWxC,EAAQgB,EAAEG,KAAMH,EAAEpE,SAK9C,EAAK2F,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,MAGxBvC,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAE/B,EArFA,CAAyC,EAAAqG,cAA5B,EAAAg3G,uB,8ZCPb,YAGA,QAEA,2B,+CA8CA,OA9C8C,OAC1C,YAAAn9G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUn+C,KAAKwD,SAASL,GAAM,GACpC,GAAe,MAAXg7C,EAEA,OADAn6C,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,GAG3B,IAAIkqH,GAAa,EAmCjB,OAlCA/vE,EAAQ/5C,SAAQ,SAAA1F,GACZ,KAAqB,IAAjBA,EAAMP,QAAgBO,EAAMP,OAAS,GAAzC,CAGA,IAAMgwH,EAA6B,KAAjBzvH,EAAMP,QAA8B,MAAbO,EAAM,GACzC6H,EAAS,EAAK8B,kBAIpB,GAHA9B,EAAOmB,KAAO,EAAK5B,kBAAkBpH,EAAMyvH,EAAY,EAAI,GAAI,MAC/D5nH,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkBpH,EAAMyvH,EAAY,EAAI,IACrE5nH,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkBpH,EAAMyvH,EAAY,EAAI,IAChD,IAAjBzvH,EAAMP,OACN+vH,GAAa,EACb3nH,EAAOiC,MAAQ,EAAK1C,kBAAkBpH,EAAM,IAC5C6H,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAalG,EAAM,QACzC,CACH,IAAMymD,EAAS,EAAKr/C,kBAAkBpH,EAAMyvH,EAAY,EAAI,GAAI,UAC5D7kH,EAAwB,WAAX67C,EAAsBA,EAAOn/C,MAAM,MAAMlC,KAAK,KAAO,KACpD,MAAdwF,IACAA,EAAa67C,EAAOn/C,MAAM,OAAOlC,KAAK,KACtCwF,EAAa67C,EAAOn/C,MAAM,KAAKlC,KAAK,MAExC,EAAKuF,cAAcrF,EAAQsF,GAC3B/C,EAAOiC,MAAQ,EAAK1C,kBAAkBpH,EAAMyvH,EAAY,EAAI,IAC5D5nH,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAalG,EAAM,IAEhD,EAAKkL,sBAAsBrD,GAC3B,EAAKuC,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,OAGpB2nH,GAAcluH,KAAKi3B,cACnBj3B,KAAKgH,yBAAyBhD,GAGlCA,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,IAE/B,EA9CA,CAA8C,EAAAqG,cAAjC,EAAA+2G,4B,8ZCLb,YAGA,QAEA,QACA,SAEA,QAEA,2B,+CA8GA,OA9G8C,OAC1C,YAAAl9G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUse,KAAKv4D,MAAMf,GAC3B,GAAe,MAAXg7C,GAAoC,MAAjBA,EAAQ7vB,MAE3B,OADAtqB,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,GAG3B,IAAM8iH,EAAa,IAAI53G,IACvBivC,EAAQ92C,QAAQjD,SAAQ,SAAC1F,GACrBooH,EAAW13G,IAAI1Q,EAAMkB,GAAIlB,EAAMgJ,SAEnC,IAAMq/G,EAAkB,IAAI73G,IA+F5B,OA9FA43G,EAAW1iH,SAAQ,SAACqR,EAAK9W,GACrBooH,EAAgB33G,IAAIzQ,EAAKqF,EAAOqD,QAAQlJ,QACxC,IAAMoJ,EAAI,IAAI,EAAAmC,WACdnC,EAAEG,KAAO+N,EACTzR,EAAOqD,QAAQlC,KAAKoC,MAGxB42C,EAAQ7vB,MAAMlqB,SAAQ,SAAC1F,GACnB,IAAM6H,EAAS,EAAK8B,kBAQpB,GAPA9B,EAAOmB,KAAO,EAAK5B,kBAAkBpH,EAAMgJ,KAAM,MACjDnB,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAalG,EAAM0vH,WAExB,MAAhB1vH,EAAMymD,QAAkB4hE,EAAgBpnF,IAAIjhC,EAAMymD,SAClDnhD,EAAOiD,oBAAoB9B,KAAK,CAACnB,EAAO2F,QAAQxL,OAAQ4oH,EAAgBvoH,IAAIE,EAAMymD,UAG7D,MAArBzmD,EAAM2vH,YAAV,CAaA,IAAK,IAAMlvH,KATN,EAAKuF,mBAAmBhG,EAAM2vH,YAAY7lH,SAC3CjC,EAAOiC,MAAQ9J,EAAM2vH,YAAY7lH,MAAMxC,MAAM,UAAUlC,KAAK,MAAMkC,MAAM,OAAOlC,KAAK,OAGrE,eAAfpF,EAAMyD,OACNoE,EAAOM,KAAO,IAAI,EAAAqR,SAClB3R,EAAOpE,KAAO,EAAAyG,WAAWuR,MAGNzb,EAAM2vH,YACzB,GAAK3vH,EAAM2vH,YAAYrvH,eAAeG,GAAtC,CAGA,IAAMmvH,EAAS5vH,EAAM2vH,YAAYlvH,GAC3BsW,EAAgB,MAAV64G,EAAiBA,EAAO7hH,WAAa,KACjD,IAAI,EAAK/H,mBAAmB+Q,IAAqB,UAAbtW,GAAqC,8BAAbA,EAI5D,GAAiB,kBAAbA,EAAJ,CAOA,GAAIoH,EAAOpE,OAAS,EAAAyG,WAAWuR,KAAM,CACjC,GAAiB,eAAbhb,EAA2B,CAC3BoH,EAAOM,KAAKiR,OAASrC,EACrBlP,EAAOM,KAAKgR,MAAQ,EAAK5R,aAAawP,GACtC,SACG,GAAiB,eAAbtW,EAA2B,CAClCoH,EAAOM,KAAK0Q,eAAiB9B,EAC7B,SACG,GAAiB,kBAAbtW,EAA8B,CACrCoH,EAAOM,KAAK2Q,KAAO/B,EACnB,SACG,GAAiB,YAAbtW,EAAwB,CAC/B,IACI,IAAMovH,EAAU,IAAIjlG,KAAK7T,GACzBlP,EAAOM,KAAKE,QAAUwnH,EAAQx/F,cAActiB,WAC5ClG,EAAOM,KAAKC,UAAYynH,EAAQv/F,WAAa,GAAGviB,WAClD,UACF,SACG,GAAiB,aAAbtN,EACP,aAED,CACH,IAAkB,aAAbA,GAAwC,UAAbA,IAC5B,EAAKuF,mBAAmB6B,EAAOmC,MAAMmB,UAAW,CAChDtD,EAAOmC,MAAMmB,SAAW4L,EACxB,SACG,GAAiB,aAAbtW,EAAyB,CAChCoH,EAAOmC,MAAMoB,SAAW2L,EACxB,SACG,GAAiB,SAAbtW,EAAqB,CAC5BoH,EAAOmC,MAAM+e,KAAOhS,EACpB,SACG,IAA0B,MAArBlP,EAAOmC,MAAMqB,MAA6C,IAA7BxD,EAAOmC,MAAMqB,KAAK5L,SACvD,EAAK2E,cAAcsC,QAAQjG,IAAa,EAAG,CAC3CoH,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAa6Q,GACtC,UAIR,EAAK1M,WAAWxC,EAAQpH,EAAUsW,QA7C9B64G,EAAOlqH,SAAQ,SAACoqH,GACZ,EAAKzlH,WAAWxC,EAAQioH,EAAG9mH,KAAM8mH,EAAG9vH,UA+ChD,EAAKkL,sBAAsBrD,GAC3B,EAAKuC,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,OAGxBvC,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,IAE/B,EA9GA,CAA8C,EAAAqG,cAAjC,EAAA02G,4B,8ZCVb,YAGA,QAEA,2B,+CAmDA,OAnD+C,OAC3C,YAAA78G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACbnH,EAAMpD,KAAKkD,SAASC,GAC1B,GAAW,MAAPC,EAEA,OADAY,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,GAG3B,IAAMyqH,EAAUrrH,EAAI8E,iBAAiB,4BAwCrC,OAvCAF,MAAMC,KAAKwmH,GAASrqH,SAAQ,SAAAsqH,GACxB,IAAMvuE,EAAW,EAAKx4C,yBAAyB+mH,EAAQ,YACjDC,EAA2B,MAAZxuE,GAAqB,EAAKz7C,mBAAmBy7C,EAAS39B,cAC9C,YAAzB29B,EAAS39B,YAAmD,KAAvB29B,EAAS39B,YAClD,EAAKnZ,cAAcrF,EAAQ2qH,GAE3B,IAAMC,EAAc,EAAKjnH,yBAAyB+mH,EAAQ,gBACpD5nG,EAAS,EAAKnf,yBAAyB+mH,EAAQ,WAC/C5kH,EAAW,EAAKnC,yBAAyB+mH,EAAQ,YACjDnpH,EAAM,EAAKoC,yBAAyB+mH,EAAQ,OAC5ClmH,EAAQ,EAAKb,yBAAyB+mH,EAAQ,SAC9CnoH,EAAS,EAAK8B,kBACpB9B,EAAOmB,KAAsB,MAAfknH,EAAsB,EAAK9oH,kBAAkB8oH,EAAYpsG,YAAa,MAAQ,KAC5Fjc,EAAOiC,MAAiB,MAATA,EAAgB,EAAK1C,kBAAkB0C,EAAMga,aAAe,GAC3Ejc,EAAOmC,MAAMmB,SAAqB,MAAVid,EAAiB,EAAKhhB,kBAAkBghB,EAAOtE,aAAe,KACtFjc,EAAOmC,MAAMoB,SAAuB,MAAZA,EAAmB,EAAKhE,kBAAkBgE,EAAS0Y,aAAe,KAC1Fjc,EAAOmC,MAAMqB,KAAc,MAAPxE,EAAc,EAAKX,aAAaW,EAAIid,aAAe,KAGvE,IADA,IAAMwlG,EAAuB,GACpB/pH,EAAI,EAAGA,GAAK,GAAIA,IACrB+pH,EAAW7iH,KAAK,aAAelH,GAGnC,EAAK8J,4BAA4B2mH,EAAQ1G,EAAWlkH,KAAK,MAAMM,SAAQ,SAAA6jH,GAC/D,EAAKvjH,mBAAmBujH,EAAKzlG,cAAqC,SAArBylG,EAAKzlG,aAGtD,EAAKzZ,WAAWxC,EAAQ0hH,EAAK4G,QAAS5G,EAAKzlG,gBAG/C,EAAK1Z,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,MAGpBvG,KAAKi3B,cACLj3B,KAAKgH,yBAAyBhD,GAGlCA,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,IAE/B,EAnDA,CAA+C,EAAAqG,cAAlC,EAAA+1G,6B,8ZCLb,YAGA,QAEA,2B,+CAwDA,OAxD6C,OACzC,YAAAl8G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACbnH,EAAMpD,KAAKkD,SAASC,GAC1B,GAAW,MAAPC,EAEA,OADAY,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,GAG3B,IAAM8qH,EAAe1rH,EAAIG,cAAc,gBACvC,GAAoB,MAAhBurH,EAGA,OAFA9qH,EAAOokD,aAAe,+BACtBpkD,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,GAG3B,IAAM+qH,EAAiBD,EAAaE,aAAa,aAC3CztB,EAAUn+F,EAAI8E,iBAAiB,wBAqCrC,OApCAF,MAAMC,KAAKs5F,GAASn9F,SAAQ,SAAAq9F,GACxB,IAAM5xC,EAAQ,EAAKloD,yBAAyB85F,EAAO,SAC7CwtB,EAAqB,MAATp/D,GAAkB,EAAKnrD,mBAAmBmrD,EAAMrtC,aACrB,KAAzCqtC,EAAMrtC,YAAYxc,MAAM,KAAKlC,KAAK,KACtC,EAAKuF,cAAcrF,EAAQirH,GAE3B,IAAMhuH,EAAQ,EAAK0G,yBAAyB85F,EAAO,SAC7C53F,EAAW,EAAKlC,yBAAyB85F,EAAO,YAChDtgF,EAAQ,EAAKxZ,yBAAyB85F,EAAO,SAC7C33F,EAAW,EAAKnC,yBAAyB85F,EAAO,YAChDl8F,EAAM,EAAKoC,yBAAyB85F,EAAO,OAC3Cj5F,EAAQ,EAAKb,yBAAyB85F,EAAO,SAC7Cl7F,EAAS,EAAK8B,kBACpB9B,EAAOmB,KAAgB,MAATzG,EAAgB,EAAK6E,kBAAkB7E,EAAMuhB,YAAa,MAAQ,KAChFjc,EAAOiC,MAAiB,MAATA,EACX,EAAK1C,kBAAkB0C,EAAMga,YAAa,IAAIxc,MAAM+oH,GAAgBjrH,KAAK,MAAQ,KACrFyC,EAAOmC,MAAMmB,SAAuB,MAAZA,EAAmB,EAAK/D,kBAAkB+D,EAAS2Y,aAAe,KAC1Fjc,EAAOmC,MAAMoB,SAAuB,MAAZA,EAAmB,EAAKhE,kBAAkBgE,EAAS0Y,aAAe,KAC1Fjc,EAAOmC,MAAMqB,KAAc,MAAPxE,EAAc,EAAKX,aAAaW,EAAIid,aAAe,KAEnE,EAAK9d,mBAAmB6B,EAAOmC,MAAMmB,WAAsB,MAATsX,EAClD5a,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkBqb,EAAMqB,aACrC,MAATrB,GAAkB,EAAKzc,mBAAmByc,EAAMqB,eACvDjc,EAAOiC,MAAQ,EAAK9D,mBAAmB6B,EAAOiC,OAAS,UAAY2Y,EAAMqB,YAClEjc,EAAOiC,MAAPjC,YAAkC4a,EAAMqB,aAGnD,EAAK1Z,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,MAGpBvG,KAAKi3B,cACLj3B,KAAKgH,yBAAyBhD,GAGlCA,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,IAE/B,EAxDA,CAA6C,EAAAqG,cAAhC,EAAAk2G,2B,8ZCLb,YAGA,QAEA,2B,+CAyCA,OAzC+C,OAC3C,YAAAr8G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUn+C,KAAKwD,SAASL,GAAM,GACpC,OAAe,MAAXg7C,GACAn6C,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAG3Bm6C,EAAQ/5C,SAAQ,SAAA1F,GACZ,KAAIA,EAAMP,OAAS,GAAnB,CAGIO,EAAMP,OAAS,GACf,EAAKkL,cAAcrF,EAAQtF,EAAM,IAErC,IAAM6H,EAAS,EAAK8B,kBACpB9B,EAAOmB,KAAO,EAAK5B,kBAAkBpH,EAAM,GAAI,MAC3CA,EAAMP,OAAS,IACfoI,EAAOiC,MAAQ,EAAK1C,kBAAkBpH,EAAM,GAAI,IAAIsH,MAAM,KAAKlC,KAAK,OAEpEpF,EAAMP,OAAS,IACfoI,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkBpH,EAAM,KAErDA,EAAMP,OAAS,IACfoI,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkBpH,EAAM,KAErDA,EAAMP,OAAS,IACfoI,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAalG,EAAM,KAEhD,EAAKoK,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,OAGpBvG,KAAKi3B,cACLj3B,KAAKgH,yBAAyBhD,GAGlCA,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAE/B,EAzCA,CAA+C,EAAAqG,cAAlC,EAAAu3G,6B,8ZCLb,YAGA,QAEA,QAEA,QAEA,2B,+CA+DA,OA/D0C,OACtC,YAAA19G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUn+C,KAAKwD,SAASL,GAAM,GACpC,OAAe,MAAXg7C,GACAn6C,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAG3Bm6C,EAAQ/5C,SAAQ,SAAA1F,GACZ,GAAoB,SAAhBA,EAAMwwH,MAAV,CAGA,IAAM3oH,EAAS,EAAK8B,kBAGpB,GAFA9B,EAAOmB,KAAO,EAAK5B,kBAAkBpH,EAAMgJ,MAC3CnB,EAAOiC,MAAQ,EAAK1C,kBAAkBpH,EAAM8J,OACzB,cAAf9J,EAAMyD,KACNoE,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAalG,EAAM0kH,SAC5C78G,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkBpH,EAAMoL,UACrDvD,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkBpH,EAAMmL,eAClD,GAAmB,mBAAfnL,EAAMyD,KAA2B,CACxCoE,EAAOpE,KAAO,EAAAyG,WAAWuR,KACzB5T,EAAOM,KAAO,IAAI,EAAAqR,SAClB3R,EAAOM,KAAK0Q,eAAiB,EAAKzR,kBAAkBpH,EAAMywH,YAC1D5oH,EAAOM,KAAKiR,OAAS,EAAKhS,kBAAkBpH,EAAMoZ,QAClDvR,EAAOM,KAAKgR,MAAQ,EAAK5R,aAAaM,EAAOM,KAAKiR,QAClDvR,EAAOM,KAAK2Q,KAAO,EAAK1R,kBAAkBpH,EAAM0wH,cAEhD,IACI,IAAMtoH,EAAW,EAAKhB,kBAAkBpH,EAAM2wH,aAC9C,GAAgB,MAAZvoH,EAAkB,CAClB,IAAMwoH,EAAiBtjH,SAASlF,EAAU,MACpB,MAAlBwoH,GAA0BA,GAAkB,GAAKA,GAAkB,KACnE/oH,EAAOM,KAAKC,SAAWwoH,EAAe7iH,aAGhD,UACF,IACI,IAAM1F,EAAU,EAAKjB,kBAAkBpH,EAAM6wH,YAC7C,GAAe,MAAXxoH,EAAiB,CACjB,IAAMyoH,EAAgBxjH,SAASjF,EAAS,MACnB,MAAjByoH,IACAjpH,EAAOM,KAAKE,QAAUyoH,EAAc/iH,aAG9C,UAEF,IAAMkhF,EAAM,EAAK7nF,kBAAkBpH,EAAMivF,KAC9B,MAAPA,GACA,EAAK5kF,WAAWxC,EAAQ,MAAOonF,GAEnC,IAAM+8B,EAAM,EAAK5kH,kBAAkBpH,EAAMotH,SAC9B,MAAPpB,GACA,EAAK3hH,WAAWxC,EAAQ,WAAYmkH,GAG5C,EAAK5hH,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,OAGxBvC,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAE/B,EA/DA,CAA0C,EAAAqG,cAA7B,EAAAs3G,wB,8ZCTb,YAGA,QAEA,2B,+CAyDA,OAzDyC,OACrC,YAAAz9G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUn+C,KAAKwD,SAASL,GAAM,GACpC,GAAe,MAAXg7C,EAEA,OADAn6C,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,GAG3B,IAAI/F,EAAI,EA8CR,OA7CAkgD,EAAQ/5C,SAAQ,SAAA1F,GACZ,IAAMymD,GAAU,EAAKzgD,mBAAmBhG,EAAMwnD,SAAWxnD,EAAMwnD,OAAOvgD,WAAW,KAC7EjH,EAAMwnD,OAAOtgD,QAAQ,IAAK,IAAMlH,EAAMwnD,OACpC58C,EAAc,EAAK5E,mBAAmBygD,GAAmB,KAATA,EACtD,EAAK97C,cAAcrF,EAAQsF,GAE3B,IAAM/C,EAAS,EAAK8B,kBAOpB,GANA9B,EAAOiC,MAAQ,EAAK1C,kBAAkBpH,EAAM6lH,MAC5Ch+G,EAAOmB,KAAO,EAAK5B,kBAAkBpH,EAAM+wH,KAAM,MACjDlpH,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkBpH,EAAMmK,OACrDtC,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkBpH,EAAMgxH,KACrDnpH,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAalG,EAAM2sH,MAEvC,EAAK3mH,mBAAmBhG,EAAMixH,WAAY,CAC3C,IAAIlnH,EAAmB,CAAC/J,EAAMixH,WACF,MAAxBjxH,EAAMovH,gBAA0BpvH,EAAMovH,eAAe3vH,OAAS,IAC9DsK,EAASA,EAAOikB,OAAOhuB,EAAMovH,iBAEjCrlH,EAAOrE,SAAQ,SAAC+E,GACZ,IAAM1C,EAAQ0C,EAAMnD,MAAM,KAC1B,KAAIS,EAAMtI,OAAS,GAAnB,CAGA,IAAMQ,EAAmB,cAAb8H,EAAM,GAAqB,KAAOA,EAAM,GAC9CgP,EAAuB,IAAjBhP,EAAMtI,QAA6B,QAAbsI,EAAM,GAAeA,EAAM,GAAKA,EAAM,GACxE,EAAKsC,WAAWxC,EAAQ5H,EAAK8W,OAIrC,EAAK7L,sBAAsBrD,GAC3B,EAAKuC,cAAcvC,GAEftI,IAAMkgD,EAAQhgD,QAA0B,OAAhBoI,EAAOmB,MAAiB,EAAKhD,mBAAmB6B,EAAOmC,MAAMoB,YAIzF9F,EAAO2F,QAAQxE,KAAKoB,GACpBtI,QAGA+B,KAAKi3B,cACLj3B,KAAKgH,yBAAyBhD,GAGlCA,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,IAE/B,EAzDA,CAAyC,EAAAqG,cAA5B,EAAAw2G,uB,8ZCLb,YAGA,QAEA,SACA,QAEA,QACA,SAEA,UAGA,2B,+CAwHA,OAxH4C,OACxC,YAAA38G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACbnH,EAAMpD,KAAKkD,SAASC,GAC1B,GAAW,MAAPC,EAEA,OADAY,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,GAI3B,GAAU,MADCZ,EAAIG,cAAc,YAIzB,OAFAS,EAAOokD,aAAe,2BACtBpkD,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,GAG3B,IAAM8iH,EAAa,IAAI53G,IA8EvB,OA5EAlH,MAAMC,KAAK7E,EAAI8E,iBAAiB,qBAAqB9D,SAAQ,SAAAwrH,GACzD,IAAMloH,EAAOkoH,EAAQZ,aAAa,QAC5BpvH,EAAKgwH,EAAQZ,aAAa,MAChC,IAAK,EAAKtqH,mBAAmBgD,KAAU,EAAKhD,mBAAmB9E,GAAK,CAChEknH,EAAW13G,IAAIxP,EAAIoE,EAAOqD,QAAQlJ,QAClC,IAAMgnD,EAAS,IAAI,EAAAz7C,WACnBy7C,EAAOz9C,KAAOA,EACd1D,EAAOqD,QAAQlC,KAAKggD,OAI5Bn9C,MAAMC,KAAK7E,EAAI8E,iBAAiB,oBAAoB9D,SAAQ,SAAAyrH,GACxD,GAAwC,SAApCA,EAAOb,aAAa,aAA6D,SAAnCa,EAAOb,aAAa,WAAtE,CAIA,IAAMc,EAAY,EAAKnoH,yBAAyBkoH,EAAQ,YACxD,GAAiB,MAAbC,EAAmB,CACnB,IAAMC,EAAUD,EAAUttG,aACrB,EAAK9d,mBAAmBqrH,IAAYjJ,EAAWnnF,IAAIowF,IACpD/rH,EAAOiD,oBAAoB9B,KAAK,CAACnB,EAAO2F,QAAQxL,OAAQ2oH,EAAWtoH,IAAIuxH,KAI/E,IAAMxpH,EAAS,EAAK8B,kBACpB9B,EAAOmB,KAAO,EAAK5B,kBAAkB+pH,EAAOb,aAAa,SAAU,MAE/B,SAAhCa,EAAOb,aAAa,UACpBzoH,EAAOgC,UAAW,GAIL,SADAsnH,EAAOb,aAAa,SAEjCzoH,EAAOpE,KAAO,EAAAyG,WAAWoB,WACzBzD,EAAO0D,WAAa,IAAI,EAAAC,eACxB3D,EAAO0D,WAAW9H,KAAO,EAAAgI,eAAeC,SAExCpC,MAAMC,KAAK,EAAKF,4BAA4B8nH,EAAQ,UAAUzrH,SAAQ,SAAA4rH,GAClE,IAAM/tG,EAAO+tG,EAAQxtG,YACrB,IAAI,EAAK9d,mBAAmBud,GAA5B,CAGA,IAAMva,EAAOsoH,EAAQhB,aAAa,QAC5BnlB,EAAY,EAAK/jG,kBAAkBkqH,EAAQhB,aAAa,QAAS,IAAIhtH,cACzD,UAAd6nG,EACAtjG,EAAOmC,MAAMmB,SAAWoY,EACH,aAAd4nF,GAA0C,WAAdA,EAEnC,EAAK9gG,WAAWxC,EAAQmB,EAAMua,EAAM,EAAAjZ,UAAUu6E,QACzB,sBAAdsmB,EACPtjG,EAAOmC,MAAM+e,KAAOxF,EACC,UAAd4nF,EACPtjG,EAAOiC,OAAUyZ,EAAO,KACH,aAAd4nF,GAA0C,YAAdA,EACnCtjG,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAaqd,GAGtC,EAAKlZ,WAAWxC,EAAQmB,EAAMua,OAK1Cja,MAAMC,KAAK,EAAKF,4BAA4B8nH,EAAQ,UAAUzrH,SAAQ,SAAA6rH,GAClE1pH,EAAOiC,OAAUynH,EAAQztG,YAAc,QAG3C,EAAKu2D,YAAYxyE,GACjB,EAAKuC,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,OAGpBvG,KAAKi3B,cACLj3B,KAAKgH,yBAAyBhD,GAGlCA,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,IAK3B,YAAA+0E,YAAA,SAAYxyE,GACR,IAAM2pH,EAAa3pH,EAAOkC,OAAON,QAAO,SAAAgB,GAAS,OAAAA,EAAMhH,OAAS,EAAA6G,UAAUu6E,UAC1E,GAAK2sC,EAAW/xH,OAAhB,CAKA,IADA,IAAIgyH,EACgB,MAAAD,EAAA,eAAY,CAA3B,IAAM/mH,EAAK,KACZ,GAAInJ,KAAK2C,mBAAmBwkC,SAASh+B,EAAMzB,KAAK1F,eAAgB,CAC5DmuH,EAAShnH,EACT5C,EAAOkC,OAASlC,EAAOkC,OAAON,QAAO,SAAAZ,GAAK,OAAAA,IAAM4oH,KAChD,OAIHA,IACDA,EAASD,EAAW,IAGxB3pH,EAAOmC,MAAMoB,SAAWqmH,EAAOzxH,QAEvC,EAxHA,CAA4C,EAAA2L,cAA/B,EAAAm1G,0B,8ECdb,YAAS,EAAA52G,WAAA,EAAAA,WACT,aAAS,EAAAwqB,WAAA,EAAAA,WACT,aAAS,EAAAta,eAAA,EAAAA,eACT,aAAS,EAAA9P,UAAA,EAAAA,UACT,aAAS,EAAA01F,aAAA,EAAAA,aACT,aAAS,EAAAv0F,eAAA,EAAAA,eACT,aAAS,EAAAwQ,sBAAA,EAAAA,sBACT,aAAS,EAAAud,aAAA,EAAAA,c,8ZCPT,YAGA,QAEA,2B,+CAuBA,OAvB0C,OACtC,YAAAh0B,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUn+C,KAAKwD,SAASL,GAAM,GACpC,OAAe,MAAXg7C,GACAn6C,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAG3Bm6C,EAAQ/5C,SAAQ,SAAA1F,GACZ,IAAM6H,EAAS,EAAK8B,kBACpB9B,EAAOmB,KAAO,EAAK5B,kBAAkB,EAAKR,YAAY5G,EAAM6G,KAAM,MAClEgB,EAAOiC,MAAQ,EAAK1C,kBAAkBpH,EAAM8J,OAC5CjC,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkBpH,EAAMmL,UACrDtD,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkBpH,EAAMoL,UACrDvD,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAalG,EAAM6G,KAC5C,EAAKuD,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,MAGxBvC,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAE/B,EAvBA,CAA0C,EAAAqG,cAA7B,EAAAy1G,wB,8ZCLb,YAGA,QAEA,2B,+CAuBA,OAvB2C,OACvC,YAAA57G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUn+C,KAAKwD,SAASL,GAAM,GACpC,OAAe,MAAXg7C,GACAn6C,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAG3Bm6C,EAAQ/5C,SAAQ,SAAA1F,GACZ,IAAM6H,EAAS,EAAK8B,kBACpB9B,EAAOmB,KAAO,EAAK5B,kBAAkBpH,EAAMgrH,OAC3CnjH,EAAOiC,MAAQ,EAAK1C,kBAAkBpH,EAAM0xH,SAC5C7pH,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAalG,EAAM2sH,KAC5C9kH,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkBpH,EAAM+qB,UACrDljB,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkBpH,EAAM8lH,UACrD,EAAK17G,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,MAGxBvC,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAE/B,EAvBA,CAA2C,EAAAqG,cAA9B,EAAAy3G,yB,8ZCLb,YAGA,QAGA,2B,+CAkDA,OAlDyC,OACrC,YAAA59G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUn+C,KAAKwD,SAASL,GAAM,GACpC,OAAe,MAAXg7C,GACAn6C,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAG3Bm6C,EAAQ/5C,SAAQ,SAAA1F,GACZ,KAAIA,EAAMP,OAAS,GAAnB,CAIA,EAAKkL,cAAcrF,EAAQ,EAAK8B,kBAAkBpH,EAAMA,EAAMP,OAAS,KACvE,IAAMoI,EAAS,EAAK8B,kBACpB9B,EAAOiC,MAAQ,EAAK1C,kBAAkBpH,EAAMA,EAAMP,OAAS,GAAI,IAC/DoI,EAAOmB,KAAO,EAAK5B,kBAAkBpH,EAAM,GAAI,MAE9B,eAAbA,EAAM,IAAoC,YAAbA,EAAM,IAAiC,mBAAbA,EAAM,IAC7D6H,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkBpH,EAAM,IACrD6H,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkBpH,EAAM,IACrD6H,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAalG,EAAM,IAC5C,EAAK2xH,mBAAmB9pH,EAAQ,EAAG7H,IAEnC,EAAK2xH,mBAAmB9pH,EAAQ,EAAG7H,GAGvC,EAAKkL,sBAAsBrD,GAC3B,EAAKuC,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,OAGpBvG,KAAKi3B,cACLj3B,KAAKgH,yBAAyBhD,GAGlCA,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAGnB,YAAAqsH,mBAAR,SAA2B9pH,EAAoB+pH,EAAoB5xH,GAE/D,IAAK,IAAIT,EAAIqyH,EAAYryH,EAAIS,EAAMP,OAAS,EAAGF,IACvC+B,KAAK0E,mBAAmBhG,EAAMT,MAGlCsI,EAAOiC,OAAU9J,EAAMT,GAAK,OAGxC,EAlDA,CAAyC,EAAAoM,cAA5B,EAAA42G,uB,8ZCNb,YAGA,QAEA,2B,+CAyEA,OAzE+C,OAC3C,YAAA/8G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACbnH,EAAMpD,KAAKkD,SAASC,GAC1B,GAAW,MAAPC,EAEA,OADAY,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,GAG3B,IAAMusH,EAAantH,EAAI8E,iBAAiB,oCAkDxC,OAjDAF,MAAMC,KAAKsoH,GAAYnsH,SAAQ,SAAAosH,GAC3B,IAAMC,EAAYD,EAAUxB,aAAa,MACzC,IAAI,EAAKtqH,mBAAmB+rH,GAA5B,CAIA,IAAMC,EAAeF,EAAUxB,aAAa,QACtC2B,EAAeH,EAAUxB,aAAa,YACxC4B,EAAoB,KACpBC,EAAmB,KACnBC,EAAoB,KACpBh8F,EAAkB,KAClBm6F,EAAoB,KAElB8B,EAAe3tH,EAAIG,cAAc,4EACIktH,EAAY,MACvD,GAAoB,MAAhBM,EAAsB,CACtB,IAAMC,EAAUD,EAAaE,cAAcA,cAC5B,MAAXD,IACAJ,EAAYI,EAAQhC,aAAa,QACjC6B,EAAWG,EAAQhC,aAAa,QAChCl6F,EAAUk8F,EAAQhC,aAAa,YAC/B8B,EAAYE,EAAQhC,aAAa,YAC5B,EAAKtqH,mBAAmBosH,KACzBA,EAAYA,EAAU9qH,MAAM,MAAMlC,KAAK,QAK9C,EAAKY,mBAAmBowB,KACzBm6F,EAAY,EAAKiC,eAAe9tH,EAAK0xB,EAAS,IAC9C,EAAKzrB,cAAcrF,EAAQirH,IAG/B,IAAM1oH,EAAS,EAAK8B,kBACpB9B,EAAOmB,KAAO,EAAK5B,kBAAkB8qH,EAAW,MAChDrqH,EAAOiC,MAAQ,EAAK1C,kBAAkBgrH,GACtCvqH,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkB4qH,GAC/CnqH,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkB6qH,GAC/CpqH,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAaisH,GACtC,EAAK/nH,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,OAGpBvG,KAAKi3B,cACLj3B,KAAKgH,yBAAyBhD,GAGlCA,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,IAG3B,YAAAktH,eAAA,SAAe9tH,EAAe0xB,EAAiBm6F,GAC3C,IAAMp/D,EAAQzsD,EAAIG,cAAc,wCAA0CuxB,EAAU,MACpF,OAAa,MAAT+6B,EACOo/D,GAENjvH,KAAK0E,mBAAmBuqH,KACzBA,EAAY,IAAMA,GAEtBA,EAAYp/D,EAAMm/D,aAAa,QAAUC,EAClCjvH,KAAKkxH,eAAe9tH,EAAKysD,EAAMm/D,aAAa,YAAaC,KAExE,EAzEA,CAA+C,EAAA5kH,cAAlC,EAAAq2G,6B,8ZCLb,YAGA,QAEA,QACA,QAEA,QACA,SAEMyQ,EAAqB,CAAC,OAAQ,YAAa,WAAY,WAAY,wBAAyB,gBAC9F,OAAQ,oBAAqB,OAAQ,QAAS,oBAGlD,2B,+CA0DA,OA1DwC,OACpC,YAAAjtH,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUn+C,KAAKwD,SAASL,GAAM,GACpC,OAAe,MAAXg7C,GACAn6C,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAG3Bm6C,EAAQ/5C,SAAQ,SAAA1F,GACZ,IAAM6H,EAAS,EAAK8B,kBAapB,GAZA9B,EAAOgC,SAAwE,SAA7D,EAAKzC,kBAAkBpH,EAAM6J,SAAU,IAAIvG,cAC7DuE,EAAOmB,KAAO,EAAK5B,kBAAkBpH,EAAMgJ,KAAM,MACjDnB,EAAOiC,MAAQ,EAAK1C,kBAAkBpH,EAAM0yH,KAAM,IAClD7qH,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkBpH,EAAMgK,OACrDnC,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkBpH,EAAMoL,UACrDvD,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAalG,EAAM6G,KAEzB,UAAf7G,EAAM2yH,OACN9qH,EAAOmB,KAAO,EAAK5B,kBAAkBpH,EAAMuC,MAAO,MAClDsF,EAAOiC,MAAQ,EAAK1C,kBAAkBpH,EAAMmkH,KAAM,KAGnC,OAAfnkH,EAAM2yH,MAMN,GALA9qH,EAAOpE,KAAO,EAAAyG,WAAWuR,KACzB5T,EAAOM,KAAO,IAAI,EAAAqR,SAClB3R,EAAOM,KAAK0Q,eAAiB,EAAKzR,kBAAkBpH,EAAMywH,YAC1D5oH,EAAOM,KAAKiR,OAAS,EAAKhS,kBAAkBpH,EAAMoZ,QAClDvR,EAAOM,KAAKgR,MAAQ,EAAK5R,aAAaM,EAAOM,KAAKiR,SAC7C,EAAKpT,mBAAmBhG,EAAM4yH,YAC/B,IACI,IAAM/C,EAAU,IAAIjlG,KAAK5qB,EAAM4yH,YAC/B/qH,EAAOM,KAAKE,QAAUwnH,EAAQx/F,cAActiB,WAC5ClG,EAAOM,KAAKC,UAAYynH,EAAQv/F,WAAa,GAAGviB,WAClD,gBAEH,GAAmB,UAAf/N,EAAM2yH,KAOb,IAAK,IAAMlyH,KANXoH,EAAOpE,KAAO,EAAAyG,WAAWoB,WACzBzD,EAAO0D,WAAa,IAAI,EAAAC,eACxB3D,EAAO0D,WAAW9H,KAAO,EAAAgI,eAAeC,QACnC,EAAK1F,mBAAmB6B,EAAOiC,SAChCjC,EAAOiC,MAAQ,EAAK1C,kBAAkBpH,EAAM6yH,iBAAkB,KAE3C7yH,EACfA,EAAMM,eAAeG,IAAagyH,EAAmB/rH,QAAQjG,EAAS6C,eAAiB,IACtF,EAAK0C,mBAAmBhG,EAAMS,KAC/B,EAAK4J,WAAWxC,EAAQpH,EAAUT,EAAMS,IAKpD,EAAK2J,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,MAGxBvC,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAE/B,EA1DA,CAAwC,EAAAqG,cAA3B,EAAAs2G,sB,8ZCfb,YAGA,QAEA,2B,+CA0BA,OA1BoC,OAChC,YAAAz8G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUn+C,KAAKwD,SAASL,GAAM,GACpC,OAAe,MAAXg7C,GACAn6C,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAG3Bm6C,EAAQ/5C,SAAQ,SAAA1F,GACZ,GAAqB,IAAjBA,EAAMP,OAAV,CAGA,IAAMoI,EAAS,EAAK8B,kBACpB9B,EAAOmB,KAAO,EAAK5B,kBAAkBpH,EAAM,GAAI,MAC/C6H,EAAOiC,MAAQ,EAAK1C,kBAAkBpH,EAAM,IAC5C6H,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkBpH,EAAM,IACrD6H,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkBpH,EAAM,IACrD6H,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAalG,EAAM,IAC5C,EAAKoK,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,OAGxBvC,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAE/B,EA1BA,CAAoC,EAAAqG,cAAvB,EAAAw1G,kB,8ZCLb,YAGA,QAEA,2B,+CAsBA,OAtBqC,OACjC,YAAA37G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUn+C,KAAKwD,SAASL,GAAM,GACpC,OAAe,MAAXg7C,GACAn6C,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAG3Bm6C,EAAQ/5C,SAAQ,SAAA1F,GACZ,IAAM6H,EAAS,EAAK8B,kBACpB9B,EAAOmB,KAAO,EAAK5B,kBAAkBpH,EAAM+wH,KAAM,MACjDlpH,EAAOmC,MAAMmB,SAAW,EAAK/D,kBAAkBpH,EAAM,cACrD6H,EAAOmC,MAAMoB,SAAW,EAAKhE,kBAAkBpH,EAAM+qB,UACrDljB,EAAOmC,MAAMqB,KAAO,EAAKnF,aAAalG,EAAM4R,KAC5C,EAAKxH,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,MAGxBvC,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAE/B,EAtBA,CAAqC,EAAAqG,cAAxB,EAAA+3G,mB,8ZCLb,YAGA,QAGA,2B,+CA6DA,OA7D0C,OACtC,YAAAl+G,MAAA,SAAMf,GAAN,WACUa,EAAS,IAAI,EAAAuG,aACb4zC,EAAUn+C,KAAKwD,SAASL,GAAM,GACpC,OAAe,MAAXg7C,GACAn6C,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAG3Bm6C,EAAQ/5C,SAAQ,SAAA1F,GACZ,IAAI,EAAKgG,mBAAmBhG,EAAM,oBAAqB,EAAKgG,mBAAmBhG,EAAM,gBAArF,CAGA,EAAK2K,cAAcrF,EAAQ,EAAK8B,kBAAkBpH,EAAM8yH,cACxD,IAAMjrH,EAAS,EAAK8B,kBACpB9B,EAAOgC,SAA2D,MAAhD,EAAKzC,kBAAkBpH,EAAM2lH,SAAU,KACzD99G,EAAOiC,MAAQ,EAAK1C,kBAAkBpH,EAAM2nH,OAC5C9/G,EAAOmB,KAAO,EAAK5B,kBACfpH,EAAM,iBAAkB,EAAKoH,kBAAkBpH,EAAM,eAAgB,OACzE6H,EAAOmC,MAAMqB,KAAO,EAAKnF,aACrB,EAAKkB,kBAAkBpH,EAAM,gBAAiB,EAAKoH,kBAAkBpH,EAAM,iBAC/E,EAAK+yH,UAAUlrH,EAAQ7H,EAAMgzH,YAC7B,EAAKD,UAAUlrH,EAAQ7H,EAAMizH,YAC7B,EAAK/nH,sBAAsBrD,GAC3B,EAAKuC,cAAcvC,GACnBvC,EAAO2F,QAAQxE,KAAKoB,OAGpBvG,KAAKi3B,cACLj3B,KAAKgH,yBAAyBhD,GAGlCA,EAAOsG,SAAU,EACV+K,QAAQC,QAAQtR,KAGnB,YAAAytH,UAAR,SAAkBlrH,EAAoBpD,GAAtC,WACQnD,KAAK0E,mBAAmBvB,IAGVnD,KAAK6D,aAAaV,GAC1BiB,SAAQ,SAAA2nH,GACd,IAAMtI,EAAgBsI,EAAK3mH,QAAQ,KACnC,KAAIq+G,EAAgB,GAApB,CAGA,IAAMt6G,EAAQ4iH,EAAK1mH,UAAU,EAAGo+G,GAC1B/kH,EAAQqtH,EAAK5tH,OAASslH,EAAgBsI,EAAK1mH,UAAUo+G,EAAgB,GAAK,KAChF,IAAI,EAAK/+G,mBAAmByE,KAAU,EAAKzE,mBAAmBhG,IAAoB,eAAVyK,EAAxE,CAGA,IAAMs5G,EAAat5G,EAAMnH,cACI,MAAzBuE,EAAOmC,MAAMmB,UAAoB,EAAKjH,mBAAmBwC,QAAQq9G,IAAe,EAChFl8G,EAAOmC,MAAMmB,SAAWnL,EACQ,MAAzB6H,EAAOmC,MAAMoB,UAAoB,EAAKnH,mBAAmByC,QAAQq9G,IAAe,EACvFl8G,EAAOmC,MAAMoB,SAAWpL,EAExB,EAAKqK,WAAWxC,EAAQ4C,EAAOzK,SAI/C,EA7DA,CAA0C,EAAA2L,cAA7B,EAAA22G,wB,68CCNb,YACA,UAEA,SAWA,UAOA,aAQI,WAAoBtqF,EAAkC0M,EAC1CnF,EAAoC1iB,EACpC2iB,EACAk5C,EAA6C50E,GAHrC,KAAAk0B,cAAkC,KAAA0M,cAC1C,KAAAnF,eAAoC,KAAA1iB,aACpC,KAAA2iB,sBACA,KAAAk5C,iBAA6C,KAAA50E,aARjD,KAAAovH,WAAY,EACZ,KAAAjnH,QAAS,EACT,KAAAknH,UAAW,EACX,KAAAC,eAAsB,KA0LlC,OAlLU,YAAApnH,KAAN,SAAWkP,G,qGAWP,OAVA5Z,KAAK2K,QAAS,EACd3K,KAAKuF,IAAM,sCACgC,MAAvCqU,EAAmB84E,iBACnB1yF,KAAKuF,IAAMqU,EAAmB84E,iBACO,MAA9B94E,EAAmBG,UAC1B/Z,KAAKuF,IAAMqU,EAAmBG,QAAU,kBAK3B,cAAb/Z,KAAKuF,IACL,IAG0B,MAA1BvF,KAAK+xH,kBAAL,OACA/xH,KAAK+xH,kBAAkBC,IAAI,kBAC3BhyH,KAAK+xH,kBAAkBC,IAAI,aAC3B,GAAMhyH,KAAK+xH,kBAAkBxqB,S,OAA7B,SACAvnG,KAAK4xH,WAAY,EACjB5xH,KAAK+xH,kBAAoB,K,iBAsBzB,OAnBJ/xH,KAAK+xH,mBAAoB,IAAIE,EAAQC,sBAChCC,QAAQnyH,KAAKuF,IAAM,OAAQ,CACxB6sH,mBAAoB,WAAM,SAAK72G,WAAW4iE,wBAC1Ck0C,iBAAiB,EACjBC,UAAWL,EAAQM,kBAAkBC,aAExCC,gBAAgB,IAAIC,EAAeC,wBAEnCtzB,QAELr/F,KAAK+xH,kBAAkBp7G,GAAG,kBACtB,SAACxT,GAAc,SAAKyvH,oBAAoB,IAAI,EAAAC,qBAAqB1vH,OACrEnD,KAAK+xH,kBAAkBp7G,GAAG,aACtB,SAACxT,OACLnD,KAAK+xH,kBAAkBe,SAAQ,WAC3B,EAAKlB,WAAY,EACjB,EAAKmB,WAAU,MAEnB/yH,KAAK2K,QAAS,EACV,GAAM3K,KAAKgzH,uB,cAAX,SACA,GAAMhzH,KAAK+yH,WAAU,IADrB,M,OACA,S,mCAIF,YAAAE,iBAAN,SAAuBC,G,YAAA,IAAAA,OAAA,G,yFACnB,IAAKlzH,KAAK2K,OACN,U,iBAGI,O,sBAAA,GAAM3K,KAAKgzH,uB,cAAX,SACA,GAAMhzH,KAAK+yH,UAAUG,IADrB,M,cACA,S,aAEA,SAAMlzH,KAAK+xH,kBAAkBxqB,Q,OAA7B,S,sDAGJvnG,KAAKwC,WAAW0c,MAAM,EAAEzS,Y,+BAI1B,YAAA0mH,sBAAN,W,iGACInzH,KAAK6xH,UAAW,GACZ7xH,KAAK2K,QAAW3K,KAAK4xH,UAArB,MACA,GAAM5xH,KAAK+yH,WAAU,I,OAArB,S,mCAIF,YAAAK,yBAAN,W,iGACIpzH,KAAK6xH,UAAW,EACZ7xH,KAAK2K,QAAU3K,KAAK4xH,UACpB,GAAM5xH,KAAK+xH,kBAAkBxqB,QAD7B,M,OACA,S,mCAIM,YAAAqrB,oBAAd,SAAkCv5B,G,sGAChB,SAAMr5F,KAAKi+B,aAAa6C,Y,OACtC,OADMC,EAAQ,SACM,MAAhBs4D,GAAwBA,EAAag6B,YAActyF,EACnD,IAGoB,GAAM/gC,KAAK02B,YAAY2xB,mB,OAE9B,OAFXA,EAAkB,SAClBirE,EAAgBj6B,EAAa/5E,QAAQwH,QAAUuyE,EAAa/5E,QAAQi0G,OACzD,GAAMvzH,KAAK02B,YAAY2L,a,OACxC,GADMmxF,EAAW,SACbnrE,GAAoC,MAAjBirE,GAAyBA,IAAkBE,EAC9D,U,OAGIn6B,EAAal3F,M,KACZ,EAAAkgG,iBAAiBoxB,iB,KACjB,EAAApxB,iBAAiBqxB,iBAAjB,Y,KAIA,EAAArxB,iBAAiBsxB,iB,KACjB,EAAAtxB,iBAAiBuxB,gBAAjB,Y,KAGA,EAAAvxB,iBAAiBwxB,iB,KACjB,EAAAxxB,iBAAiByxB,iBAAjB,Y,KAIA,EAAAzxB,iBAAiB0xB,iBAAjB,a,KAGA,EAAA1xB,iBAAiB2xB,U,KACjB,EAAA3xB,iBAAiB4xB,Y,KACjB,EAAA5xB,iBAAiB6xB,aAAjB,a,KAKA,EAAA7xB,iBAAiB8xB,YAAjB,a,KAQA,EAAA9xB,iBAAiB+xB,OAAjB,a,KAKA,EAAA/xB,iBAAiBgyB,e,KACjB,EAAAhyB,iBAAiBiyB,eAAjB,a,KAIA,EAAAjyB,iBAAiBkyB,eAAjB,a,oBAxCD,SAAMv0H,KAAKojC,YAAYs2D,iBAAiBL,EAAa/5E,QACjD+5E,EAAal3F,OAAS,EAAAkgG,iBAAiBqxB,mB,OAC3C,OAFA,SAEA,O,OAGA,SAAM1zH,KAAKojC,YAAY22D,iBAAiBV,EAAa/5E,U,OACrD,OADA,SACA,O,OAGA,SAAMtf,KAAKojC,YAAYg2D,iBAAiBC,EAAa/5E,QACjD+5E,EAAal3F,OAAS,EAAAkgG,iBAAiByxB,mB,OAC3C,OAFA,SAEA,O,QAEA,SAAM9zH,KAAKojC,YAAYq2D,iBAAiBJ,EAAa/5E,U,QACrD,OADA,SACA,O,eAII+oC,EACA,GAAMroD,KAAKojC,YAAYiG,UAAS,IADhC,O,QACA,S,mBAEJ,a,eAEIgf,EACA,GAAMroD,KAAKub,WAAW6tB,wBADtB,O,QAEA,OADA,SACA,GAAMppC,KAAKojC,YAAYiG,UAAS,I,QAEhC,OAFA,SAEA,GAAMrpC,KAAK+xH,kBAAkBxqB,Q,QAA7B,S,mBAEJ,a,QAKA,OAHIl/C,GACAroD,KAAKo3E,iBAET,O,QAGA,SAAMp3E,KAAKojC,YAAY42D,eAAeX,EAAa/5E,QAC/C+5E,EAAal3F,OAAS,EAAAkgG,iBAAiBiyB,iB,QAC3C,OAFA,SAEA,O,QAEA,SAAMt0H,KAAKojC,YAAYg3D,eAAef,EAAa/5E,U,QAAnD,S,mBAEA,a,0BAIE,YAAAyzG,UAAd,SAAwBG,G,qGAKpB,OAJ2B,MAAvBlzH,KAAK8xH,iBACLzgF,aAAarxC,KAAK8xH,gBAClB9xH,KAAK8xH,eAAiB,MAEtB9xH,KAAK4xH,YAAc5xH,KAAK2K,QAAU3K,KAAK6xH,SACvC,IAEsB,GAAM7xH,KAAKgzH,uB,OACrC,IAD0B,SAEtB,U,iBAIA,O,sBAAA,GAAMhzH,KAAK+xH,kBAAkB5iG,S,cAA7B,SACAnvB,KAAK4xH,WAAY,EACbsB,EACA,GAAMlzH,KAAKojC,YAAYiG,UAAS,IADhC,M,OACA,S,wEAIHrpC,KAAK4xH,YACN5xH,KAAK8xH,eAAiB/zG,YAAW,WAAM,SAAKg1G,UAAUG,KAAOlzH,KAAKmO,OAAO,KAAQ,O,YAI3E,YAAA6kH,oBAAd,W,0FACQ,SAAMhzH,KAAK02B,YAAY2xB,mB,cAAvB,SACe,GAAMroD,KAAKk+B,oBAAoBg1C,YAD9C,M,OAEA,MAAO,CAAP,GADe,U,OAGnB,MAAO,CAAP,GAAO,WAGH,YAAA/kE,OAAR,SAAe0hF,EAAarvB,GAGxB,OAFAqvB,EAAM3hF,KAAK+hF,KAAKJ,GAChBrvB,EAAMtyD,KAAKunB,MAAM+qC,GACVtyD,KAAKunB,MAAMvnB,KAAKC,UAAYqyD,EAAMqvB,EAAM,IAAMA,GAE7D,EAhMA,GAAa,EAAA1pC,wB,ucCrBb,YAEA,SAEA,cAKI,WAAYvlD,GAAZ,MACI,YAAMA,IAAS,KACf,EAAKyyH,UAAY,EAAK7xH,oBAAoB,aAC1C,EAAKW,KAAO,EAAKX,oBAAoB,QAErC,IAAM8d,EAAU,EAAK9d,oBAAoB,WACzC,OAAQ,EAAKW,MACT,KAAK,EAAAkgG,iBAAiBoxB,iBACtB,KAAK,EAAApxB,iBAAiBsxB,iBACtB,KAAK,EAAAtxB,iBAAiBqxB,iBACtB,KAAK,EAAArxB,iBAAiBuxB,gBAClB,EAAKt0G,QAAU,IAAIk1G,EAAuBl1G,GAC1C,MACJ,KAAK,EAAA+iF,iBAAiBwxB,iBACtB,KAAK,EAAAxxB,iBAAiB0xB,iBACtB,KAAK,EAAA1xB,iBAAiByxB,iBAClB,EAAKx0G,QAAU,IAAIm1G,EAAuBn1G,GAC1C,MACJ,KAAK,EAAA+iF,iBAAiB2xB,UACtB,KAAK,EAAA3xB,iBAAiB4xB,YACtB,KAAK,EAAA5xB,iBAAiB8xB,YACtB,KAAK,EAAA9xB,iBAAiB6xB,aACtB,KAAK,EAAA7xB,iBAAiB+xB,OAClB,EAAK90G,QAAU,IAAIo1G,EAAiBp1G,GACpC,MACJ,KAAK,EAAA+iF,iBAAiBgyB,eACtB,KAAK,EAAAhyB,iBAAiBiyB,eACtB,KAAK,EAAAjyB,iBAAiBkyB,eAClB,EAAKj1G,QAAU,IAAIq1G,EAAqBr1G,G,SAKxD,OAtC0C,OAsC1C,EAtCA,CAA0C,EAAApd,cAA7B,EAAA2wH,uBAwCb,kBAOI,WAAYjyH,GAAZ,MACI,YAAMA,IAAS,K,OACf,EAAKhB,GAAK,EAAK4B,oBAAoB,MACnC,EAAKslB,OAAS,EAAKtlB,oBAAoB,UACvC,EAAKe,eAAiB,EAAKf,oBAAoB,kBAC/C,EAAK+jB,cAAgB,EAAK/jB,oBAAoB,iBAC9C,EAAKkf,aAAe,IAAI4I,KAAK,EAAK9nB,oBAAoB,iB,EAE9D,OAf4C,OAe5C,EAfA,CAA4C,EAAAU,cAA/B,EAAAsyH,yBAiBb,kBAKI,WAAY5zH,GAAZ,MACI,YAAMA,IAAS,K,OACf,EAAKhB,GAAK,EAAK4B,oBAAoB,MACnC,EAAKslB,OAAS,EAAKtlB,oBAAoB,UACvC,EAAKkf,aAAe,IAAI4I,KAAK,EAAK9nB,oBAAoB,iB,EAE9D,OAX4C,OAW5C,EAXA,CAA4C,EAAAU,cAA/B,EAAAuyH,yBAab,kBAII,WAAY7zH,GAAZ,MACI,YAAMA,IAAS,K,OACf,EAAKkmB,OAAS,EAAKtlB,oBAAoB,UACvC,EAAK2zB,KAAO,IAAI7L,KAAK,EAAK9nB,oBAAoB,S,EAEtD,OATsC,OAStC,EATA,CAAsC,EAAAU,cAAzB,EAAAwyH,mBAWb,kBAKI,WAAY9zH,GAAZ,MACI,YAAMA,IAAS,K,OACf,EAAKhB,GAAK,EAAK4B,oBAAoB,MACnC,EAAKslB,OAAS,EAAKtlB,oBAAoB,UACvC,EAAKkf,aAAe,IAAI4I,KAAK,EAAK9nB,oBAAoB,iB,EAE9D,OAX0C,OAW1C,EAXA,CAA0C,EAAAU,cAA7B,EAAAyyH,wB,68CC/Eb,cACA,SAEA,SAEMnyC,EACc,YAGpB,aAGI,WAAoB9rD,EAAkCoV,GAAlC,KAAApV,cAAkC,KAAAoV,iBA0H1D,OAvHI,YAAAo3C,WAAA,WACIljF,KAAK40H,YAAc,MAGjB,YAAAluF,OAAN,SAAavkC,G,6GACe,MAApBnC,KAAK40H,YAAL,MACe,GAAM50H,KAAK02B,YAAY2L,a,OACrB,OADXvb,EAAS,SACE,GAAM9mB,KAAK8rC,eAAettC,IACvCgkF,EAAsB17D,I,OAE1B,IAAWlnB,KAHLgnC,EAAW,SAEXhmC,EAAqB,GACVgmC,EACTA,EAAS5nC,eAAeY,IACxBgB,EAASuE,KAAK,IAAI,EAAA8qC,OAAOrJ,EAAShnC,KAG1CI,KAAK40H,YAAch0H,E,iBAEvB,OAAY,MAARuB,EACO,CAAP,EAAOnC,KAAK40H,YAAYzsH,QAAO,SAAAiN,GAAK,OAAAA,EAAEjT,OAASA,MAExC,CAAP,EAAOnC,KAAK40H,qBAId,YAAAhvH,QAAN,SAAcghC,G,gGACK,SAAM5mC,KAAK02B,YAAY2L,a,OACtC,OADMvb,EAAS,SACf,GAAM9mB,KAAK8rC,eAAe2c,KAAK+5B,EAAsB17D,EAAQ8f,I,cAA7D,SACA5mC,KAAK40H,YAAc,K,YAGjB,YAAAz9G,MAAN,SAAY2P,G,0FACR,SAAM9mB,KAAK8rC,eAAe0a,OAAOg8B,EAAsB17D,I,cAAvD,SACA9mB,KAAK40H,YAAc,K,YAGjB,YAAAzkF,+BAAN,SAAqCvJ,G,uGAC7BivD,EAA+C,KAEnC,MAAZjvD,EAAA,MACW,GAAM5mC,KAAK0mC,OAAO,EAAA3jB,WAAW2xC,iB,cAAxC9tB,EAAW,S,aAEXA,EAAWA,EAASz+B,QAAO,SAAAiN,GAAK,OAAAA,EAAEjT,OAAS,EAAA4gB,WAAW2xC,kB,iBAG1D,OAAgB,MAAZ9tB,GAAwC,IAApBA,EAASzoC,QAIjCyoC,EAASxiC,SAAQ,SAAAgyF,GACRA,EAActgE,SAAiC,MAAtBsgE,EAAcjzF,OAIrB,MAAnB0yF,IACAA,EAAkB,IAAI,EAAAg/B,6BAGc,MAApCz+B,EAAcjzF,KAAKmtC,eAChB8lD,EAAcjzF,KAAKmtC,cAAgBulD,EAAgBvlD,gBACtDulD,EAAgBvlD,cAAgB8lD,EAAcjzF,KAAKmtC,eAGnB,MAAhC8lD,EAAcjzF,KAAKmzD,WAChB8/B,EAAcjzF,KAAKmzD,UAAYu/B,EAAgBv/B,YAClDu/B,EAAgBv/B,UAAY8/B,EAAcjzF,KAAKmzD,WAG/C8/B,EAAcjzF,KAAKw0D,eACnBk+B,EAAgBl+B,cAAe,GAG/By+B,EAAcjzF,KAAK00D,eACnBg+B,EAAgBh+B,cAAe,GAG/Bu+B,EAAcjzF,KAAK40D,iBACnB89B,EAAgB99B,gBAAiB,GAGjCq+B,EAAcjzF,KAAK80D,iBACnB49B,EAAgB59B,gBAAiB,OAnC9B,CAAP,EAAO49B,WA0Cf,YAAA3kD,uBAAA,SAAuBF,EAA0B8jF,EAC7C1kF,GACA,OAA6B,MAAzBA,KAIAA,EAAsBE,cAAgB,GAAKF,EAAsBE,cAAgBU,OAIjFZ,EAAsBkmB,UAAY,GAAKlmB,EAAsBkmB,UAAYw+D,EAAY32H,YAIrFiyC,EAAsBunB,cAAgBm9D,EAAYC,sBAAwBD,OAI1E1kF,EAAsBynB,cAAgBi9D,EAAYE,sBAAwBF,OAI1E1kF,EAAsB2nB,iBAAoB,QAAQ1xD,KAAKyuH,OAIvD1kF,EAAsB6nB,iBAAoB,eAAe5xD,KAAKyuH,SAM1E,EA7HA,GAAa,EAAA1jH,iB,8ZCfb,IAEA,yE,OACI,EAAAk/B,cAAwB,EACxB,EAAAgmB,UAAoB,EACpB,EAAAqB,cAAwB,EACxB,EAAAE,cAAwB,EACxB,EAAAE,gBAA0B,EAC1B,EAAAE,gBAA0B,E,EAC9B,OAPiD,OAOjD,EAPA,CAFA,MAEiD,SAApC,EAAA48D,+B,68CCFb,cASA,QACA,SACA,SAGA,aAMI,WAAoBz8F,EAAsC51B,EAC9C9C,GADQ,KAAA04B,gBAAsC,KAAA51B,aAC9C,KAAA9C,cANZ,KAAAyU,gBAA2B,KACnB,KAAA8gH,UAAW,EACX,KAAA1lE,MAAoB,KACpB,KAAA2lE,oBAAsB,GAI8B,IAApD,CAAC,QAAS,SAAS9vH,QAAQ1F,EAAYyuE,UACvCnuE,KAAKk1H,oBAAsB,GAsPvC,OAlPI,YAAAjyC,WAAA,WACIjjF,KAAKmU,gBAAkB,KACvBnU,KAAKuvD,MAAQ,MAGjB,YAAAH,aAAA,SAAavnD,GAGT,QAF+B,MAATA,GAAgC,MAAd7H,KAAKuvD,OAAiB1nD,EAAM1J,OAAS6B,KAAKk1H,qBAC/D,MAAdl1H,KAAKuvD,OAAiB1nD,EAAM1J,OAAS6B,KAAKk1H,qBAA8C,IAAvBrtH,EAAMzC,QAAQ,OAIlF,YAAA29C,aAAN,SAAmB5uC,EAA0BxK,G,yGACzC,OAAI3J,KAAKi1H,SACL,KAGJj1H,KAAKwC,WAAWy8F,KAAK,mBACrBj/F,KAAKi1H,UAAW,EAChBj1H,KAAKmU,gBAAkBA,EACvBnU,KAAKuvD,MAAQ,MACP4lE,EAAU,IAAIC,EAAKC,SACjB95E,IAAI,MACZ45E,EAAQhsH,MAAM,UAAW,CAAEmsH,MAAO,IAAKC,UAAW,SAACtnH,GAAkB,OAAAA,EAAErO,GAAGgH,OAAO,EAAG,MACpFuuH,EAAQhsH,MAAM,OAAQ,CAAEmsH,MAAO,KAC/BH,EAAQhsH,MAAM,WAAY,CACtBmsH,MAAO,EACPC,UAAW,SAACtnH,GACR,OAAkB,MAAdA,EAAEyX,UAAoBzX,EAAE9L,OAAS,EAAAyG,WAAWuR,KACrClM,EAAEyX,SAAS9f,QAAQ,MAAO,IAE9BqI,EAAEyX,YAGjByvG,EAAQhsH,MAAM,SACdgsH,EAAQhsH,MAAM,iBAAkB,CAC5BosH,UAAW,SAACtnH,GAAkB,OAAAA,EAAE9L,OAAS,EAAAyG,WAAWC,OAAoB,MAAXoF,EAAEvF,MAAgBuF,EAAEvF,MAAMmB,SAAW,QAEtGsrH,EAAQhsH,MAAM,aAAc,CAAEmsH,MAAO,EAAGC,UAAW,SAACtnH,GAAkB,SAAKunH,aAAavnH,MACxFknH,EAAQhsH,MAAM,SAAU,CAAEosH,UAAW,SAACtnH,GAAkB,SAAKwnH,eAAexnH,GAAG,MAC/EknH,EAAQhsH,MAAM,gBAAiB,CAAEosH,UAAW,SAACtnH,GAAkB,SAAKwnH,eAAexnH,GAAG,MACtFknH,EAAQhsH,MAAM,cAAe,CAAEosH,UAAW,SAACtnH,GAAkB,SAAKynH,oBAAoBznH,GAAG,MACzFknH,EAAQhsH,MAAM,qBACV,CAAEosH,UAAW,SAACtnH,GAAkB,SAAKynH,oBAAoBznH,GAAG,MAChEknH,EAAQhsH,MAAM,iBAAkB,CAAEosH,UAAW,SAACtnH,GAAkB,OAAAA,EAAE1L,mBACxD,EAAAoH,GAAA,MAAW,GAAM3J,KAAKo4B,cAAc+jB,oB,SAAzB,S,wBAArBxyC,EAAU,GACFvF,SAAQ,SAAA6J,GAAK,OAAAknH,EAAQl8E,IAAIhrC,MACjCjO,KAAKuvD,MAAQ4lE,EAAQ91B,QAErBr/F,KAAKi1H,UAAW,EAEhBj1H,KAAKwC,WAAW28F,QAAQ,mB,YAGtB,YAAAuN,cAAN,SAAoB7kG,EAChBM,EACAwB,G,YADA,IAAAxB,MAAA,WACA,IAAAwB,MAAA,M,wGAEMw0C,EAAwB,GACjB,MAATt2C,IACAA,EAAQA,EAAM9D,OAAO/B,eAEX,KAAV6F,IACAA,EAAQ,MAGG,MAAX8B,EAAA,MACU,GAAM3J,KAAKo4B,cAAc+jB,mB,OAAnCxyC,EAAU,S,iBASd,OANc,MAAVxB,GAAkBH,MAAM2tH,QAAQxtH,IAAWA,EAAOhK,OAAS,EAC3DwL,EAAUA,EAAQxB,QAAO,SAAA8F,GAAK,OAAA9F,EAAOytH,OAAM,SAAAruH,GAAK,OAAK,MAALA,GAAaA,EAAE0G,SAC9C,MAAV9F,IACPwB,EAAUA,EAAQxB,OAAOA,IAGxBnI,KAAKovD,aAAavnD,GAInB7H,KAAKi1H,SACL,GAAM,IAAI5/G,SAAQ,SAAAnO,GAAK,OAAA6W,WAAW7W,EAAG,SADrC,MAHO,CAAP,EAAOyC,G,cAIP,SACI3J,KAAKi1H,SACL,GAAM,IAAI5/G,SAAQ,SAAAnO,GAAK,OAAA6W,WAAW7W,EAAG,SADrC,M,OACA,S,iBAKR,GAAa,OADPqoD,EAAQvvD,KAAK61H,qBAGf,MAAO,CAAP,EAAO71H,KAAK81H,mBAAmBnsH,EAAS9B,IAQ5C,GALMkuH,EAAa,IAAI7mH,IACvBvF,EAAQvF,SAAQ,SAAA6J,GAAK,OAAA8nH,EAAW3mH,IAAInB,EAAErO,GAAIqO,MAEtC+nH,EAAqC,KACV,MAATnuH,GAAiBA,EAAM1J,OAAS,GAA4B,IAAvB0J,EAAMzC,QAAQ,KAErE,IACI4wH,EAAgBzmE,EAAMrmD,OAAOrB,EAAMjB,OAAO,GAAG7C,QAC/C,eAGI,EAASqxH,EAAKa,MAAMC,SAASC,QAAUf,EAAKa,MAAMC,SAASE,SACjEJ,EAAgBzmE,EAAM1nD,OAAM,SAAAwuH,GACxBjB,EAAKkB,UAAUzuH,GAAOzD,SAAQ,SAAA6b,GAC1B,IAAMhgB,EAAIggB,EAAMxT,WAChB4pH,EAAEE,KAAKt2H,EAAG,CAAEwI,OAAQ,CAAC,QAASytH,SAAU,IACxCG,EAAEE,KAAKt2H,EAAG,CAAEwI,OAAQ,CAAC,YAAaytH,SAAU,IAC5CG,EAAEE,KAAKt2H,EAAG,CAAEwI,OAAQ,CAAC,cAAeytH,SAAU,IAC9CG,EAAEE,KAAKt2H,EAAG,UAYtB,OAPqB,MAAjB+1H,GACAA,EAAc5xH,SAAQ,SAAA8C,GACd6uH,EAAWp2F,IAAIz4B,EAAEq0C,MACjB4C,EAAQh5C,KAAK4wH,EAAWv3H,IAAI0I,EAAEq0C,SAInC,CAAP,EAAO4C,WAGX,YAAA23E,mBAAA,SAAmBnsH,EAAuB9B,EAAeg7C,GAErD,YAFqD,IAAAA,OAAA,GACrDh7C,EAAQA,EAAM9D,OAAO/B,cACd2H,EAAQxB,QAAO,SAAA8F,GAClB,OAAI40C,IAAY50C,EAAEwuB,YAGJ,MAAVxuB,EAAEvG,MAAgBuG,EAAEvG,KAAK1F,cAAcoD,QAAQyC,IAAU,OAGzDA,EAAM1J,QAAU,GAAK8P,EAAErO,GAAG+F,WAAWkC,MAGvB,MAAdoG,EAAEyX,UAAoBzX,EAAEyX,SAAS1jB,cAAcoD,QAAQyC,IAAU,MAGjEoG,EAAEvF,OAAwB,MAAfuF,EAAEvF,MAAM7D,KAAeoJ,EAAEvF,MAAM7D,IAAI7C,cAAcoD,QAAQyC,IAAU,UAO1F,YAAAknG,YAAA,SAAYtpC,EAAmB59D,GAG3B,OAFAA,EAAQA,EAAM9D,OAAOgxH,oBAEdtvD,EAAMt9D,QAAO,SAAAmqC,G,UAChB,OAAc,MAAVA,EAAE5qC,MAAgB4qC,EAAE5qC,KAAK1F,cAAcoD,QAAQyC,IAAU,OAGzDA,EAAM1J,QAAU,IAAMm0C,EAAE1yC,GAAG+F,WAAWkC,IAAUyqC,EAAE4P,SAAS6yE,oBAAoBpvH,WAAWkC,IAAyB,OAAR,QAAN,EAAAyqC,EAAE4M,YAAI,eAAEt/C,KAAc0yC,EAAE4M,KAAKt/C,GAAG+F,WAAWkC,OAGrI,MAAXyqC,EAAE9pC,OAAiB8pC,EAAE9pC,MAAMxG,cAAcoD,QAAQyC,IAAU,IAG3C,OAAV,QAAN,EAAAyqC,EAAErwB,YAAI,eAAEA,OAAgBqwB,EAAErwB,KAAKA,KAAKjgB,cAAcoD,QAAQyC,IAAU,IAGhD,OAAd,QAAN,EAAAyqC,EAAE4M,YAAI,eAAE1zB,WAAoB8mB,EAAE4M,KAAK1zB,SAASxpB,cAAcoD,QAAQyC,IAAU,QAAhF,UAMR,YAAAguH,kBAAA,WACI,OAAO71H,KAAKuvD,OAGR,YAAAkmE,eAAR,SAAuBxnH,EAAeuoH,GAClC,IAAKvoH,EAAEo1E,UACH,OAAO,KAEX,IAAI56E,EAAmB,GAUvB,OATAwF,EAAExF,OAAOrE,SAAQ,SAAAmD,GACC,MAAVA,EAAEG,MACFe,EAAOtD,KAAKoC,EAAEG,MAEdH,EAAEpF,OAAS,EAAA6G,UAAUC,MAAmB,MAAX1B,EAAE7I,OAC/B+J,EAAOtD,KAAKoC,EAAE7I,UAIA,KADtB+J,EAASA,EAAON,QAAO,SAAAZ,GAAK,MAAa,KAAbA,EAAExD,WACnB5F,OACA,KAEJq4H,EAAS/tH,EAAO3E,KAAK,KAAO2E,GAG/B,YAAAitH,oBAAR,SAA4BznH,EAAeuoH,GACvC,IAAKvoH,EAAE0X,eACH,OAAO,KAEX,IAAIN,EAAwB,GAW5B,OAVApX,EAAEoX,YAAYjhB,SAAQ,SAAAmL,GACT,MAALA,GAA2B,MAAdA,EAAEic,WACXgrG,GAAUjnH,EAAEic,SAASpmB,QAAQ,MAAQ,EACrCigB,EAAYlgB,KAAKoK,EAAEic,SAAS5kB,OAAO,EAAG2I,EAAEic,SAASe,YAAY,OAE7DlH,EAAYlgB,KAAKoK,EAAEic,cAKJ,KAD3BnG,EAAcA,EAAYld,QAAO,SAAAZ,GAAK,MAAa,KAAbA,EAAExD,WACxB5F,OACL,KAEJq4H,EAASnxG,EAAYvhB,KAAK,KAAOuhB,GAGpC,YAAAmwG,aAAR,SAAqBvnH,GACjB,GAAIA,EAAE9L,OAAS,EAAAyG,WAAWC,OAAoB,MAAXoF,EAAEvF,QAAkBuF,EAAEvF,MAAMgf,QAC3D,OAAO,KAEX,IAAM3d,EAAiB,GAsBvB,OArBAkE,EAAEvF,MAAMqB,KAAK3F,SAAQ,SAAAc,GACjB,GAAa,MAATA,EAAEL,KAAyB,KAAVK,EAAEL,IAGvB,GAAkB,MAAdK,EAAEM,SAAN,CAIA,IAAIX,EAAMK,EAAEL,IACZ,GAAIK,EAAED,QAAU,EAAAizB,aAAaC,kBAAmB,CAC5C,IAAMs+F,EAAgB5xH,EAAIO,QAAQ,OAC9BqxH,GAAiB,IACjB5xH,EAAMA,EAAI+B,OAAO6vH,EAAgB,IAErC,IAAMC,EAAa7xH,EAAIqE,OAAO,UAC1BwtH,GAAc,IACd7xH,EAAMA,EAAIQ,UAAU,EAAGqxH,IAG/B3sH,EAAK5E,KAAKN,QAdNkF,EAAK5E,KAAKD,EAAEM,aAgBbuE,EAAK5L,OAAS,EAAI4L,EAAO,MAExC,EA/PA,GAAa,EAAAqK,iB,29CCdb,aAEA,UAEA,SAKA,UACA,SACA,SAIA,SAaA,QAEMouE,EACW,SAGjB,aAGI,WAAoBjpE,EAAsCmd,EAC9Cnb,EAAgCqnE,EAChC92C,EAAwCpsC,EACxCkhB,GAHQ,KAAArH,gBAAsC,KAAAmd,cAC9C,KAAAnb,aAAgC,KAAAqnE,oBAChC,KAAA92C,iBAAwC,KAAApsC,cACxC,KAAAkhB,wBAoPhB,OAlPI,YAAAsiE,WAAA,WACIljF,KAAK22H,mBAAqB,MAGxB,YAAA/uF,QAAN,SAAcje,EAAiBu1B,EAA0Bp1C,EACrDnL,G,6HACIi4H,EAA2B,MACzB9/G,EAAO,IAAI,EAAA+/G,MACZj3H,GAAK+pB,EAAM/pB,GAChBkX,EAAK3U,KAAOwnB,EAAMxnB,KAClB2U,EAAKkuB,SAAWrb,EAAMqb,SACtBluB,EAAKyrC,UAAY54B,EAAM44B,UACvBzrC,EAAKqrC,eAAiBx4B,EAAMw4B,eACX,MAAbx4B,EAAMhrB,IAAN,OACA,EAAAgrB,EAAY,GAAM3pB,KAAK4gB,sBAAsBmtE,YAAY,M,OACvC,OADlB,EAAMpvF,IAAM,SACZ,EAAAgrB,EAAkB,GAAM3pB,KAAKuZ,cAAcgvD,YAAY5+C,EAAMhrB,M,OAA7D,EAAMm4H,UAAY,S,wBAEN,MAAZhtH,EAAA,MACqB,GAAM9J,KAAK4gB,sBAAsBqnD,OAAOn+D,EAAU6f,EAAMhrB,IAAK,SAAU,M,OAAtFupE,EAAe,SACrBpxD,EAAKhN,SAAW,EAAArE,MAAM8G,gBAAgB27D,G,iBAE/B,OAAX,EAAApxD,EAAW,GAAM9W,KAAKuZ,cAAcquB,QAAQje,EAAMhrB,IAAKA,I,OAC3C,OADZ,EAAKA,IAAM,SACX,EAAAmY,EAAY,GAAM9W,KAAKuZ,cAAcquB,QAAQje,EAAMjiB,KAAMiiB,EAAMmtG,Y,OAClD,OADb,EAAKpvH,KAAO,SACZ,EAAAoP,EAAa,GAAM9W,KAAKuZ,cAAcquB,QAAQje,EAAMnhB,MAAOmhB,EAAMmtG,Y,cAAjE,EAAKtuH,MAAQ,SACTsO,EAAK3U,OAAS,EAAA2lB,SAAS7e,KAAvB,QACA6N,EAAKmL,KAAO,IAAI,EAAAgjC,SAChB,EAAAnuC,EAAKmL,KAAY,GAAMjiB,KAAKuZ,cAAcquB,QAAQje,EAAM1H,KAAKA,KAAM0H,EAAMmtG,a,cAAzE,EAAU70G,KAAO,SACjBnL,EAAKmL,KAAKqsB,OAAS3kB,EAAM1H,KAAKqsB,O,sBACvBx3B,EAAK3U,OAAS,EAAA2lB,SAAS8yE,KAAvB,QACP9jF,EAAKooC,KAAO,IAAI,EAAA8F,SACJ,MAAR9F,EAAA,OACIA,aAAgB63E,YACK,GAAM/2H,KAAKg3H,gBAAgBrtG,EAAMu1B,KAAK1zB,SAAU0zB,EAAMv1B,EAAMmtG,YADjF,Q,eACM,EAAe,SAAd,OAAM3zH,EAAI,KACjB2T,EAAKooC,KAAK1zB,SAAW,EACrBorG,EAAWzzH,E,eAEA,SAAMnD,KAAKi3H,UAAUngH,EAAMooC,EAAMv1B,EAAMmtG,Y,QAAlDF,EAAW,S,mBAKvB,MAAO,CAAC,EAAD,CAAC9/G,EAAM8/G,YAGZ,YAAAp4H,IAAN,SAAUoB,G,kGACS,SAAMI,KAAK02B,YAAY2L,a,OACxB,OADRvb,EAAS,SACD,GAAM9mB,KAAK8rC,eAAettC,IACpCgkF,EAAmB17D,I,OACvB,OAAa,OAFP2+C,EAAQ,WAEQA,EAAMzmE,eAAeY,GAIpC,CAAP,EAAO,IAAI,EAAAi3H,KAAKpxD,EAAM7lE,KAHX,CAAP,EAAO,cAMT,YAAA8mC,OAAN,W,sGACmB,SAAM1mC,KAAK02B,YAAY2L,a,OACxB,OADRvb,EAAS,SACD,GAAM9mB,KAAK8rC,eAAettC,IACpCgkF,EAAmB17D,I,OAEvB,IAAWlnB,KAHL6lE,EAAQ,SAER7kE,EAAmB,GACR6kE,EACTA,EAAMzmE,eAAeY,IACrBgB,EAASuE,KAAK,IAAI,EAAA0xH,KAAKpxD,EAAM7lE,KAGrC,MAAO,CAAP,EAAOgB,WAGL,YAAAu7C,gBAAN,W,kGACI,OAA+B,MAA3Bn8C,KAAK22H,mBACE,CAAP,EAAO32H,KAAK22H,oBAGD,GAAM32H,KAAKuZ,cAAcqrE,U,OACxC,IADe,SAEX,MAAM,IAAIjjF,MAAM,WAKN,OAFRu1H,EAAuB,GACvBjiH,EAA2B,GACnB,GAAMjV,KAAK0mC,U,OAKzB,OALc,SACRtiC,SAAQ,SAAA0S,GACV7B,EAAS9P,KAAK2R,EAAKtB,UAAU/U,MAAK,SAAA8G,GAAK,OAAA2vH,EAAS/xH,KAAKoC,UAGzD,GAAM8N,QAAQK,IAAIT,I,OAIlB,OAJA,SACAiiH,EAASp5F,KAAK,EAAAr4B,MAAM4J,gBAAgBrP,KAAKN,YAAa,SAEtDM,KAAK22H,mBAAqBO,EACnB,CAAP,EAAOl3H,KAAK22H,4BAGV,YAAAhwC,eAAN,SAAqB6qB,G,uHACXltF,EAAU,IAAI,EAAA6yG,YAAY3lB,EAAS,GAAe,QAAb,EAAEA,EAAS,UAAE,eAAEhlG,OAAOG,YAE3C,MAAlB6kG,EAAS,GAAG5xG,GAAZ,OACI4xG,EAAS,GAAGrvG,OAAS,EAAA2lB,SAAS7e,KAA9B,MACW,GAAMjJ,KAAKub,WAAWy+D,SAAS11D,I,cAA1C1jB,EAAW,S,aAGoB,O,sBAAA,GAAMZ,KAAKub,WAAW0+D,iBAAiB31D,I,OAGlE,OAHMwjE,EAAqB,SAC3BlnF,EAAWknF,EAAmB3f,aAE9B,GAAMnoE,KAAK4iF,kBAAkBs5B,eAAep0B,EAAoB0pB,EAAS,GAAGtyD,KAAK1zB,SAAUgmF,EAAS,K,cAApG,S,0CAEiB,EAAAhlF,eAAqD,MAAnC,EAAoBR,WACxC,GAAMhsB,KAAKo3H,2BAA2B5lB,EAAUltF,IAD3D,M,cACA1jB,EAAW,S,aACR,MAAI,aAAa,EAAA4rB,cACd,IAAI7qB,MAAO,EAAoBsqB,oBAE/B,E,iCAIlBulF,EAAS,GAAG5xG,GAAKgB,EAAShB,GAC1B4xG,EAAS,GAAGtvD,SAAWthD,EAASshD,S,eAErB,SAAMliD,KAAKub,WAAWg/D,QAAQi3B,EAAS,GAAG5xG,GAAI0kB,I,QAAzD1jB,EAAW,S,mBAGA,SAAMZ,KAAK02B,YAAY2L,a,QAEtC,OAFMvb,EAAS,SACT3jB,EAAO,IAAI,EAAAg3F,SAASv5F,EAAUkmB,GACpC,GAAM9mB,KAAK4mF,OAAOzjF,I,eAAlB,S,YAOE,YAAAi0H,2BAAN,SAAiC5lB,EAAkCltF,G,kGAEzDwjB,EAAK,IAAIC,SACf,IACUmgD,EAAO,IAAIC,KAAK,CAACqpB,EAAS,GAAGhlG,QAAS,CAAErK,KAAM,6BACpD2lC,EAAGE,OAAO,QAASy0B,KAAKC,UAAUp4C,IAClCwjB,EAAGE,OAAO,OAAQkgD,EAAMspB,EAAS,GAAGtyD,KAAK1zB,SAAS3W,iBACpD,MAAOhU,GACL,IAAI,EAAA4E,MAAMmF,QAAW,EAAAnF,MAAMsF,UAOvB,MAAMlK,EANNinC,EAAGE,OAAO,QAASy0B,KAAKC,UAAUp4C,IAClCwjB,EAAGE,OAAO,OAAQx8B,EAAOvD,KAAKupG,EAAS,GAAGhlG,QAAgB,CACtD47E,SAAUopB,EAAS,GAAGtyD,KAAK1zB,SAAS3W,gBACpCwzE,YAAa,6BAMlB,SAAMroF,KAAKub,WAAW++D,mBAAmBxyC,I,OAAhD,MAAO,CAAP,EAAO,kBAGL,YAAA8+C,OAAN,SAAa9vE,G,oGACM,SAAM9W,KAAK02B,YAAY2L,a,OAC1B,OADNvb,EAAS,SACH,GAAM9mB,KAAK8rC,eAAettC,IAClCgkF,EAAmB17D,I,OAcvB,OAba,OAFT2+C,EAAQ,YAGRA,EAAQ,IAGR3uD,aAAgB,EAAAqjF,SAEhB10B,GADMnzB,EAAIx7B,GACFlX,IAAM0yC,EAEbx7B,EAAoB1S,SAAQ,SAAAkuC,GACzBmzB,EAAMnzB,EAAE1yC,IAAM0yC,KAItB,GAAMtyC,KAAK8rC,eAAe2c,KAAK+5B,EAAmB17D,EAAQ2+C,I,cAA1D,SACAzlE,KAAK22H,mBAAqB,K,YAGxB,YAAA/wH,QAAN,SAAc6/D,G,gGACK,SAAMzlE,KAAK02B,YAAY2L,a,OACtC,OADMvb,EAAS,SACf,GAAM9mB,KAAK8rC,eAAe2c,KAAK+5B,EAAmB17D,EAAQ2+C,I,cAA1D,SACAzlE,KAAK22H,mBAAqB,K,YAGxB,YAAAx/G,MAAN,SAAY2P,G,0FACR,SAAM9mB,KAAK8rC,eAAe0a,OAAOg8B,EAAmB17D,I,cAApD,SACA9mB,KAAK22H,mBAAqB,K,YAGxB,YAAAr6F,OAAN,SAAa18B,G,kGACM,SAAMI,KAAK02B,YAAY2L,a,OACxB,OADRvb,EAAS,SACD,GAAM9mB,KAAK8rC,eAAettC,IACpCgkF,EAAmB17D,I,OACvB,GAAa,OAFP2+C,EAAQ,UAGV,UAGJ,GAAkB,iBAAP7lE,EAAiB,CACxB,GAAiB,MAAb6lE,EAAM7lE,GACN,iBAEG6lE,EAAM7lE,QAEZA,EAAgBwE,SAAQ,SAAAnG,UACdwnE,EAAMxnE,MAIrB,SAAM+B,KAAK8rC,eAAe2c,KAAK+5B,EAAmB17D,EAAQ2+C,I,cAA1D,SACAzlE,KAAK22H,mBAAqB,K,YAGxB,YAAAr5F,iBAAN,SAAuB19B,G,0FACnB,SAAMI,KAAKub,WAAWk/D,WAAW76E,I,OACjC,OADA,SACA,GAAMI,KAAKs8B,OAAO18B,I,cAAlB,S,YAGE,YAAA8uG,yBAAN,SAA+B9uG,G,oGACV,SAAMI,KAAKub,WAAWi/D,sBAAsB56E,I,OAC9C,OADTgB,EAAW,SACF,GAAMZ,KAAK02B,YAAY2L,a,OAEtC,OAFMvb,EAAS,SACT3jB,EAAO,IAAI,EAAAg3F,SAASv5F,EAAUkmB,GACpC,GAAM9mB,KAAK4mF,OAAOzjF,I,cAAlB,S,YAGI,YAAA8zH,UAAR,SAAkBngH,EAAYooC,EAAYvgD,GAA1C,WACI,OAAO,IAAI0W,SAAQ,SAACC,EAAS8J,GACzB,IAAM+/B,EAAS,IAAIC,WACnBD,EAAOkoC,kBAAkBnoC,GACzBC,EAAOniC,OAAS,SAAMsiC,GAAG,qC,8DAEI,O,sBAAA,GAAMt/C,KAAKg3H,gBAAgB93E,EAAKx3C,KAAM43C,EAAIzvC,OAAO7L,OAAuBrF,I,cAAvF,EAAe,SAAd,OAAMwE,EAAI,KACjB2T,EAAKooC,KAAK1zB,SAAW,EACrBlW,EAAQnS,G,+BAERic,EAAO,G,+BAGf+/B,EAAOK,QAAU,SAAAF,GACblgC,EAAO,4BAKL,YAAA43G,gBAAd,SAA8BxrG,EAAkBroB,EAC5CxE,G,kGACoB,SAAMqB,KAAKuZ,cAAcquB,QAAQpc,EAAU7sB,I,OAC3C,OADd6oF,EAAc,SACA,GAAMxnF,KAAKuZ,cAAcmuE,eAAevkF,EAAMxE,I,OAClE,OADM04H,EAAc,SACb,CAAC,EAAD,CAAC7vC,EAAa6vC,YAE7B,EA1PA,GAAa,EAAAzsG,gB,uGClCb,aAEA,SACA,SAIA,EAeI,SAAY9T,EAAYwgH,GAapB,OAZAt3H,KAAKmC,KAAO2U,EAAK3U,KACjBnC,KAAKs3H,WAAaA,EAClBt3H,KAAK0H,KAAOoP,EAAKpP,KAAOoP,EAAKpP,KAAKmN,gBAAkB,KACpD7U,KAAKwI,MAAQsO,EAAKtO,MAAQsO,EAAKtO,MAAMqM,gBAAkB,KACvD7U,KAAKmiD,eAAiBrrC,EAAKqrC,eAC3BniD,KAAKqiD,eAAwC,MAAvBvrC,EAAKurC,eAAyBvrC,EAAKurC,eAAel4B,cAAgB,KACxFnqB,KAAKsiD,aAAoC,MAArBxrC,EAAKwrC,aAAuBxrC,EAAKwrC,aAAan4B,cAAgB,KAClFnqB,KAAKrB,IAAkB,MAAZmY,EAAKnY,IAAcmY,EAAKnY,IAAIkW,gBAAkB,KACzD7U,KAAK8J,SAAWgN,EAAKhN,SACrB9J,KAAKglC,SAAWluB,EAAKkuB,SACrBhlC,KAAKuiD,UAAYzrC,EAAKyrC,UAEdviD,KAAKmC,MACT,KAAK,EAAA2lB,SAAS7e,KACVjJ,KAAKiiB,KAAO,IAAI,EAAAugC,YAChBxiD,KAAKiiB,KAAKA,KAAyB,MAAlBnL,EAAKmL,KAAKA,KAAenL,EAAKmL,KAAKA,KAAKpN,gBAAkB,KAC3E7U,KAAKiiB,KAAKqsB,OAASx3B,EAAKmL,KAAKqsB,OAC7B,MACJ,KAAK,EAAAxmB,SAAS8yE,KACV56F,KAAKk/C,KAAO,IAAI,EAAAuD,YAChBziD,KAAKk/C,KAAK1zB,SAAiC,MAAtB1U,EAAKooC,KAAK1zB,SAAmB1U,EAAKooC,KAAK1zB,SAAS3W,gBAAkB,OApC1F,EAAAsiH,e,yxDCLb,aAEA,QAIA,SAEA,QAEA,SACA,SAEA,cAmBI,WAAYz0G,EAAgBnO,QAAA,IAAAA,OAAA,GAA5B,MACI,cAAO,KACP,GAAW,MAAPmO,E,SAuBJ,OAnBA,EAAKrO,iBAAiB,EAAMqO,EAAK,CAC7B9iB,GAAI,KACJsiD,SAAU,KACVp7B,OAAQ,KACRpf,KAAM,KACNc,MAAO,KACP7J,IAAK,MACN4V,EAAkB,CAAC,KAAM,WAAY,WAExC,EAAKpS,KAAOugB,EAAIvgB,KAChB,EAAKggD,eAAiBz/B,EAAIy/B,eAC1B,EAAKC,YAAc1/B,EAAI0/B,YACvB,EAAKt4C,SAAW4Y,EAAI5Y,SACpB,EAAKk7B,SAAWtiB,EAAIsiB,SACpB,EAAKtkB,aAAmC,MAApBgC,EAAIhC,aAAuB,IAAI4I,KAAK5G,EAAIhC,cAAgB,KAC5E,EAAK4hC,aAAmC,MAApB5/B,EAAI4/B,aAAuB,IAAIh5B,KAAK5G,EAAI4/B,cAAgB,KAC5E,EAAKD,eAAuC,MAAtB3/B,EAAI2/B,eAAyB,IAAI/4B,KAAK5G,EAAI2/B,gBAAkB,KAClF,EAAKE,UAAY7/B,EAAI6/B,UAEb,EAAKpgD,MACT,KAAK,EAAA2lB,SAAS7e,KACV,EAAKgZ,KAAO,IAAI,EAAAgjC,SAASviC,EAAIT,KAAM1N,GACnC,MACJ,KAAK,EAAAuT,SAAS8yE,KACV,EAAK17C,KAAO,IAAI,EAAA8F,SAAStiC,EAAIw8B,KAAM3qC,G,SA2CnD,OA5F0B,OAwDhB,YAAAiB,QAAN,W,4GAKI,GAJMmU,EAAQ,IAAI,EAAAy/C,SAASppE,QAGrBqZ,EAAoB,EAAA5T,MAAM4F,OAAeiO,2BAI3C,MAAM,IAAI3X,MAAM,qDAFhB4X,EAAgBF,EAAiBG,mB,iBAMrB,O,sBAAZ,EAAAmQ,EAAY,GAAMpQ,EAAc6jC,eAAep9C,KAAKrB,IAAK,O,OACvC,OADlB,EAAMA,IAAM,SACZ,EAAAgrB,EAAkB,GAAMpQ,EAAcgvD,YAAY5+C,EAAMhrB,M,cAAxD,EAAMm4H,UAAY,S,0CAKtB,SAAM92H,KAAK8U,WAAW6U,EAAO,CACzBjiB,KAAM,KACNc,MAAO,MACR,KAAMmhB,EAAMmtG,Y,cAHf,SAKQ92H,KAAKmC,M,KACJ,EAAA2lB,SAAS8yE,KAAT,Y,KAGA,EAAA9yE,SAAS7e,KAAT,Y,oBAFY,OAAb,EAAA0gB,EAAa,GAAM3pB,KAAKk/C,KAAK1pC,QAAQmU,EAAMmtG,Y,OAC3C,OADA,EAAM53E,KAAO,SACb,O,OAEa,OAAb,EAAAv1B,EAAa,GAAM3pB,KAAKiiB,KAAKzM,QAAQmU,EAAMmtG,Y,QAC3C,OADA,EAAM70G,KAAO,SACb,O,QAEA,a,QAGR,MAAO,CAAP,EAAO0H,WAEf,EA5FA,CAA0B,WAAb,EAAAktG,Q,68CCfb,cAKA,QAEA,UAGA,aAMI,WAAoB7mH,EAAqBsL,GAArB,KAAAtL,MAAqB,KAAAsL,uBACrCtb,KAAKu3H,YAA+B,IAAfvnH,EAAIunH,OAAyBvnH,EAAIunH,OAAS,KAC/Dv3H,KAAKw3H,OAAYx3H,KAAKu3H,aAAuC,IAAtBvnH,EAAIunH,OAAOC,OAA0BxnH,EAAIunH,OAAOC,OAAS,KAChGx3H,KAAK6lG,KAAOvqF,EAAqBuqF,OACjC,IAAM4xB,EAAKznH,EAAIE,UAAUC,UACzBnQ,KAAK03H,YAAcp8G,EAAqBi0F,aACnCkoB,EAAGryH,QAAQ,iBAAmB,GAAKqyH,EAAGryH,QAAQ,gBAAkB,GAqT7E,OAlTU,YAAA6iE,OAAN,SAAan+D,EAAgC2jF,EAA4BkqC,EACrEC,G,gHACA,OAAI53H,KAAK6lG,MAAQ7lG,KAAK03H,aACZG,EAAyB,WAAdF,EAAyB,GAAK,GACzCG,EAAgB93H,KAAK+3H,aAAajuH,GAClCkuH,EAAYh4H,KAAK+3H,aAAatqC,GAC9BwqC,EAAmBC,EAAcjwD,OAAO6vD,EAAeE,EAAWJ,EAAYC,EAAUF,GACvF,CAAP,EAAO,EAAAlyH,MAAM6G,sBAAsB2rH,GAAiBzrH,UAGlD2rH,EAAsB,WAAdR,EAAyB,IAAM,IACvCS,EAAcp4H,KAAKq4H,MAAMvuH,GACzBwuH,EAAUt4H,KAAKq4H,MAAM5qC,GAErB8qC,EAA6B,CAC/B7wH,KAAM,SACN+lF,KAAM6qC,EACNV,WAAYA,EACZx2G,KAAM,CAAE1Z,KAAM1H,KAAKw4H,qBAAqBb,KAG7B,GAAM33H,KAAKw3H,OAAOiB,UAAU,MAAOL,EAAa,CAAE1wH,KAAM,WACnE,EAAO,CAAC,iB,OACL,OAFDgxH,EAAS,SAER,GAAM14H,KAAKw3H,OAAOmB,WAAWJ,EAAcG,EAAQP,I,OAA1D,MAAO,CAAP,EAAO,kBAGL,YAAA/pC,KAAN,SAAWwqC,EAAkBnrC,EAA4BmR,EACrDi6B,EAAwBlB,G,sGAWT,OAVTW,EAAUt4H,KAAKq4H,MAAM5qC,GACrBqrC,EAAU94H,KAAKq4H,MAAMz5B,GAErBm6B,EAAyB,CAC3BrxH,KAAM,OACN+lF,KAAM6qC,EACN15B,KAAMk6B,EACN13G,KAAM,CAAE1Z,KAAM1H,KAAKw4H,qBAAqBb,KAG7B,GAAM33H,KAAKw3H,OAAOiB,UAAU,MAAOG,EAAK,CAAElxH,KAAM,SAC3D,EAAO,CAAC,gB,OACL,OAFDgxH,EAAS,SAER,GAAM14H,KAAKw3H,OAAOmB,WAAWI,EAAmBL,EAAyB,EAAjBG,I,OAA/D,MAAO,CAAP,EAAO,kBAIL,YAAAnsC,WAAN,SAAiBssC,EAAkBp6B,EAA4Bi6B,EAC3DlB,G,kHAEA,GAAIkB,EAAiB,KADfI,EAAwB,WAAdtB,EAAyB,GAAK,IAE1C,MAAM,IAAIh2H,MAAM,gCAGpB,GADe,IAAI4J,WAAWytH,GACnB76H,OAAS86H,EAChB,MAAM,IAAIt3H,MAAM,qBAEdm3H,EAAU94H,KAAKq4H,MAAMz5B,GACrBs6B,EAAU,IAAI3tH,WAAWutH,GAC3BK,EAAmB,EACnBC,EAAY,IAAI7tH,WAAW,GACzB6M,EAAIlK,KAAK+hF,KAAK4oC,EAAiBI,GAC/BI,EAAM,IAAI9tH,WAAW6M,EAAI6gH,GACtBh7H,EAAI,E,wBAAGA,EAAIma,IACVnY,EAAI,IAAIsL,WAAW6tH,EAAUj7H,OAAS+6H,EAAQ/6H,OAAS,IAC3DiR,IAAIgqH,GACNn5H,EAAEmP,IAAI8pH,EAASE,EAAUj7H,QACzB8B,EAAEmP,IAAI,CAACnR,EAAI,GAAIgC,EAAE9B,OAAS,G,EACVoN,WAAU,KAAC,GAAMvL,KAAKwwF,KAAKvwF,EAAEuM,OAAQwsH,EAAKrB,KALzC,M,OAQjB,GAHAyB,EAAY,YAAI7tH,WAAU,QAAC,YAC3B8tH,EAAIjqH,IAAIgqH,EAAWD,IACnBA,GAAoBC,EAAUj7H,SACN06H,EACpB,Y,wBATe56H,I,aAYvB,MAAO,CAAP,EAAOo7H,EAAIp3H,MAAM,EAAG42H,GAAgBrsH,gBAGlC,YAAA4U,KAAN,SAAW1iB,EAA6Bi5H,G,oGACpC,OAAK33H,KAAK6lG,MAAsB,SAAd8xB,GAAuC,QAAdA,GACjC2B,EAAmB,QAAd3B,EAAsBO,EAAMoB,GAAGC,IAAIl7G,SAAW65G,EAAMoB,GAAGE,KAAKn7G,SACjEo7G,EAAaz5H,KAAK+3H,aAAar5H,GACrC46H,EAAGI,OAAOD,EAAY,OACf,CAAP,EAAO,EAAAh0H,MAAM6G,sBAAsBgtH,EAAGK,SAASx2H,MAAMqJ,UAGnDotH,EAAW55H,KAAKq4H,MAAM35H,GACrB,GAAMsB,KAAKw3H,OAAOmC,OAAO,CAAEjyH,KAAM1H,KAAKw4H,qBAAqBb,IAAciC,K,OAAhF,MAAO,CAAP,EAAO,kBAGL,YAAAppC,KAAN,SAAW9xF,EAAoBC,EAAkBg5H,G,wGAC7C,OAAI33H,KAAK6lG,MAAsB,WAAd8xB,GACPnnC,EAAQ0nC,EAAc1nC,KAAKnyE,SAC3Bu+E,EAAW58F,KAAK+3H,aAAap5H,GAC7B86H,EAAaz5H,KAAK+3H,aAAar5H,GACrC8xF,EAAKrhE,MAAMwoG,EAAW/6B,GACtBpM,EAAKkpC,OAAOD,EAAY,OACjB,CAAP,EAAO,EAAAh0H,MAAM6G,sBAAsBkkF,EAAKmpC,SAASx2H,MAAMqJ,UAGrDqtH,EAAmB,CACrBnyH,KAAM,OACN0Z,KAAM,CAAE1Z,KAAM1H,KAAKw4H,qBAAqBb,KAG7B,GAAM33H,KAAKw3H,OAAOiB,UAAU,MAAO95H,EAAKk7H,GAAkB,EAAO,CAAC,W,OAC1E,OADDnB,EAAS,SACR,GAAM14H,KAAKw3H,OAAO16B,KAAK+8B,EAAkBnB,EAAQh6H,I,OAAxD,MAAO,CAAP,EAAO,kBAML,YAAAgR,QAAN,SAAcH,EAAgBC,G,8GACX,SAAMxP,KAAK+tF,YAAY,K,OAKvB,OALTvkD,EAAS,SACTqwF,EAAmB,CACrBnyH,KAAM,OACN0Z,KAAM,CAAE1Z,KAAM,YAEH,GAAM1H,KAAKw3H,OAAOiB,UAAU,MAAOjvF,EAAQqwF,GAAkB,EAAO,CAAC,U,OACvE,OADPnB,EAAS,SACF,GAAM14H,KAAKw3H,OAAO16B,KAAK+8B,EAAkBnB,EAAQnpH,I,OACjD,OADPuqH,EAAO,SACA,GAAM95H,KAAKw3H,OAAO16B,KAAK+8B,EAAkBnB,EAAQlpH,I,OAE9D,GAFMuqH,EAAO,SAETD,EAAKntH,aAAeotH,EAAKptH,WACzB,MAAO,CAAP,GAAO,GAKX,IAFMqtH,EAAO,IAAIzuH,WAAWuuH,GACtBG,EAAO,IAAI1uH,WAAWwuH,GACnB97H,EAAI,EAAGA,EAAIg8H,EAAK97H,OAAQF,IAC7B,GAAI+7H,EAAK/7H,KAAOg8H,EAAKh8H,GACjB,MAAO,CAAP,GAAO,GAIf,MAAO,CAAP,GAAO,WAGX,YAAA4yF,SAAA,SAASnyF,EAAeC,EAAag5H,GACjC,IAAMnnC,EAAQ0nC,EAAc1nC,KAAKnyE,SACjCmyE,EAAKrhE,MAAMwoG,EAAWh5H,GACtB6xF,EAAKkpC,OAAOh7H,GACZ,IAAMiN,EAAQ6kF,EAAKmpC,SAASO,WAC5B,OAAO7kH,QAAQC,QAAQ3J,IAGrB,YAAAolF,YAAN,SAAkBxhF,EAAWC,G,8GACZ,SAAMxP,KAAK+tF,YAAY,K,OAGpC,IAHMosC,EAAO,SACPxuH,EAAQ,IAAIyuH,YAAYD,GACxB3tH,EAAS0rH,EAAMmC,KAAKC,eACjBr8H,EAAI,EAAGA,EAAI0N,EAAMxN,OAAQF,IAC9BuO,EAAO+tH,SAAS5uH,EAAM1N,IAc1B,OAZMurC,EAASh9B,EAAO0tH,YAEhB1pC,EAAQ0nC,EAAc1nC,KAAKnyE,UAC5B8Q,MAAM,SAAUqa,GACrBgnD,EAAKkpC,OAAOnqH,GACNuqH,EAAOtpC,EAAKmpC,SAASO,WAE3B1pC,EAAKrhE,MAAM,KAAM,MACjBqhE,EAAKkpC,OAAOlqH,GACNuqH,EAAOvpC,EAAKmpC,SAASO,WAGpB,CAAP,EADeJ,IAASC,WAItB,YAAAprC,WAAN,SAAiBxrF,EAAmBqV,EAAiB7Z,G,gGAClC,SAAMqB,KAAKw3H,OAAOiB,UAAU,MAAO95H,EAAK,CAAE+I,KAAM,YAAoB,EAAO,CAAC,a,OACpF,OADDgxH,EAAS,SACR,GAAM14H,KAAKw3H,OAAO5vF,QAAQ,CAAElgC,KAAM,UAAW8Q,GAAIA,GAAMkgH,EAAQv1H,I,OAAtE,MAAO,CAAP,EAAO,kBAGX,YAAAytF,yBAAA,SAAyBztF,EAAcqV,EAAYC,EAAa9Z,GAE5D,IAAMyW,EAAI,IAAI,EAAAolH,kBA8Bd,OA7BgB,MAAZ77H,EAAI87H,OACJrlH,EAAEsU,OAAS/qB,EAAI87H,KAAKC,iBACpBtlH,EAAEo0B,OAAS7qC,EAAI87H,KAAKE,kBAGR,MAAZvlH,EAAEsU,SACFtU,EAAEsU,OAASwuG,EAAMmC,KAAKO,SAASj8H,EAAI+qC,YAEvCt0B,EAAEjS,KAAO+0H,EAAMmC,KAAKO,SAASz3H,GAC7BiS,EAAEoD,GAAK0/G,EAAMmC,KAAKO,SAASpiH,GAC3BpD,EAAEm7E,QAAUn7E,EAAEoD,GAAKpD,EAAEjS,KACL,MAAZiS,EAAEo0B,QAAmC,MAAjB7qC,EAAIgrC,YACxBv0B,EAAEo0B,OAAS0uF,EAAMmC,KAAKO,SAASj8H,EAAIgrC,YAE5B,MAAPlxB,IACArD,EAAEqD,IAAMy/G,EAAMmC,KAAKO,SAASniH,IAIhB,MAAZ9Z,EAAI87H,OACJ97H,EAAI87H,KAAO,IAEkB,MAA7B97H,EAAI87H,KAAKC,mBACT/7H,EAAI87H,KAAKC,iBAAmBtlH,EAAEsU,QAElB,MAAZtU,EAAEo0B,QAA+C,MAA7B7qC,EAAI87H,KAAKE,mBAC7Bh8H,EAAI87H,KAAKE,iBAAmBvlH,EAAEo0B,QAG3Bp0B,GAGX,YAAA47E,eAAA,SAAe6pC,GACX,IAAMC,EAAc5C,EAAcmC,KAAKC,aAAaO,EAAW13H,MACzDmsF,EAAY4oC,EAAc3xH,OAAOw0H,eAAe,UAAWF,EAAWnxG,QAC5E4lE,EAASngE,MAAM,CAAE3W,GAAIqiH,EAAWriH,KAChC82E,EAASoqC,OAAOoB,GAChBxrC,EAAS0rC,SACT,IAAMvlH,EAAM65E,EAAS3hF,OAAOlB,SAAS,QACrC,OAAO4I,QAAQC,QAAQG,IAGrB,YAAAw7E,WAAN,SAAiB9tF,EAAmBqV,EAAiB7Z,G,gGAClC,SAAMqB,KAAKw3H,OAAOiB,UAAU,MAAO95H,EAAK,CAAE+I,KAAM,YAAoB,EAAO,CAAC,a,OACpF,OADDgxH,EAAS,SACR,GAAM14H,KAAKw3H,OAAOhiH,QAAQ,CAAE9N,KAAM,UAAW8Q,GAAIA,GAAMkgH,EAAQv1H,I,OAAtE,MAAO,CAAP,EAAO,kBAGL,YAAA8vD,WAAN,SAAiB9vD,EAAmB4sC,EAAwB4nF,G,kGAOzC,OAJTsD,EAAY,CACdvzH,KAAM,WACN0Z,KAAM,CAAE1Z,KAAM1H,KAAKw4H,qBAAqBb,KAE7B,GAAM33H,KAAKw3H,OAAOiB,UAAU,OAAQ1oF,EAAWkrF,GAAW,EAAO,CAAC,a,OAC1E,OADDvC,EAAS,SACR,GAAM14H,KAAKw3H,OAAO5vF,QAAQqzF,EAAWvC,EAAQv1H,I,OAApD,MAAO,CAAP,EAAO,kBAGL,YAAAywE,WAAN,SAAiBzwE,EAAmBu/B,EAAyBi1F,G,kGAO1C,OAJTsD,EAAY,CACdvzH,KAAM,WACN0Z,KAAM,CAAE1Z,KAAM1H,KAAKw4H,qBAAqBb,KAE7B,GAAM33H,KAAKw3H,OAAOiB,UAAU,QAAS/1F,EAAYu4F,GAAW,EAAO,CAAC,a,OAC5E,OADDvC,EAAS,SACR,GAAM14H,KAAKw3H,OAAOhiH,QAAQylH,EAAWvC,EAAQv1H,I,OAApD,MAAO,CAAP,EAAO,kBAGL,YAAAqpF,oBAAN,SAA0B9pD,G,wGAMA,OALhBu4F,EAAY,CACdvzH,KAAM,WAEN0Z,KAAM,CAAE1Z,KAAM1H,KAAKw4H,qBAAqB,UAEtB,GAAMx4H,KAAKw3H,OAAOiB,UAAU,QAAS/1F,EAAYu4F,GAAW,EAAM,CAAC,a,OACnE,OADhBC,EAAgB,SACA,GAAMl7H,KAAKw3H,OAAO2D,UAAU,MAAOD,I,OAQpC,OARfE,EAAgB,SAChBC,EAAqB,CACvBC,IAAK,MACLz6H,EAAGu6H,EAAcv6H,EACjBuX,EAAGgjH,EAAchjH,EACjB+2E,IAAK,WACLosC,KAAK,GAEY,GAAMv7H,KAAKw3H,OAAOiB,UAAU,MAAO4C,EAAoBJ,GAAW,EAAM,CAAC,a,OACvF,OADDO,EAAe,SACd,GAAMx7H,KAAKw3H,OAAO2D,UAAU,OAAQK,I,OAA3C,MAAO,CAAP,EAAO,kBAGL,YAAAxtC,mBAAN,SAAyB7vF,G,sGAQL,OAPV88H,EAAY,CACdvzH,KAAM,WACN+zH,cAAet9H,EACfu9H,eAAgB,IAAInwH,WAAW,CAAC,EAAM,EAAM,IAE5C6V,KAAM,CAAE1Z,KAAM1H,KAAKw4H,qBAAqB,UAE5B,GAAMx4H,KAAKw3H,OAAOmE,YAAYV,GAAW,EAAM,CAAC,UAAW,a,OACzD,OADZr4F,EAAU,SACE,GAAM5iC,KAAKw3H,OAAO2D,UAAU,OAAQv4F,EAAQmN,Y,OAC3C,OADbA,EAAY,SACC,GAAM/vC,KAAKw3H,OAAO2D,UAAU,QAASv4F,EAAQF,a,OAChE,OADMA,EAAa,SACZ,CAAC,EAAD,CAACqN,EAAWrN,YAGvB,YAAAqrD,YAAA,SAAY5vF,GACR,IAAMkO,EAAM,IAAId,WAAWpN,GAE3B,OADA6B,KAAKu3H,OAAOqE,gBAAgBvvH,GACrBgJ,QAAQC,QAAQjJ,EAAIG,SAGvB,YAAA6rH,MAAR,SAAc35H,GAOV,MALuB,iBAAZ,EACD,EAAA+G,MAAMwG,gBAAgBvN,GAAO8N,OAE7B9N,GAKN,YAAAq5H,aAAR,SAAqBr5H,GAOjB,MALuB,iBAAZ,EACCw5H,EAAMmC,KAAKwB,WAAWn9H,GAEtB,EAAA+G,MAAM8H,uBAAuB7O,IAKrC,YAAA85H,qBAAR,SAA6Bb,GACzB,GAAkB,QAAdA,EACA,MAAM,IAAIh2H,MAAM,sCAEpB,MAAqB,SAAdg2H,EAAuB,QAAwB,WAAdA,EAAyB,UAAY,WAErF,EAjUA,GAAa,EAAApkB,4B,yFCVb,mBAAa,EAAAinB,qB,8ECKb,mBAAsB,EAAA/mB,qB,68CCLtB,aACA,SAEA,OAOA,OAQA,GADA,MACA,MA4BA,GAvBA,OAEA,MAEA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,OACA,MACA,KACA,MACA,MACA,OACA,MACA,MACA,OACA,KACA,MAEA,O,GAEA,O,sMAKA,aAgBI,WACY/sD,EAAgDhwB,EAChDsH,EAAoC3F,EACpCsqD,EAA0Cv/C,EAC1C3K,EAA8DL,EAC9DkxB,EAAkCx8B,EAClC/E,EAAwCroB,EACxC4b,EAAoDqrC,EACpDzoB,EAAkD4N,EAClDvyB,EAAsCgf,EACtC5X,EAAiC+a,EACjCq2D,EAAoD9oC,EACpDpvC,EAAoC6e,EACpCC,GAZA,KAAA+tB,qBAAgD,KAAAhwB,cAChD,KAAAsH,eAAoC,KAAA3F,gBACpC,KAAAsqD,kBAA0C,KAAAv/C,cAC1C,KAAA3K,4BAA8D,KAAAL,gBAC9D,KAAAkxB,cAAkC,KAAAx8B,SAClC,KAAA/E,iBAAwC,KAAAroB,cACxC,KAAA4b,uBAAoD,KAAAqrC,SACpD,KAAAzoB,sBAAkD,KAAA4N,iBAClD,KAAAvyB,gBAAsC,KAAAgf,oBACtC,KAAA5X,YAAiC,KAAA+a,gBACjC,KAAAq2D,uBAAoD,KAAA9oC,gBACpD,KAAApvC,eAAoC,KAAA6e,eACpC,KAAAC,gBAxBZ,KAAAmjG,cAA+B,IAAI,EAAAC,cAAc,CAC7CC,iBAAiB,EACjBC,oBAAoB,EACpBC,UAAW,WACXzlB,MAAO,IAGH,KAAA0lB,aAAuB,KACvB,KAAAC,UAAoB,KACpB,KAAAC,QAAS,E,OAiBjB,YAAAn7H,SAAA,sBACIlB,KAAK2mD,OAAO21E,mBAAkB,WAC1B7xH,OAAO8xH,YAAc,WAAM,SAAKC,kBAChC/xH,OAAOgyH,YAAc,WAAM,SAAKD,kBAChC/xH,OAAOiyH,aAAe,WAAM,SAAKF,kBACjC/xH,OAAOkyH,QAAU,WAAM,SAAKH,kBAC5B/xH,OAAOmyH,SAAW,WAAM,SAAKJ,kBAC7B/xH,OAAOoyH,WAAa,WAAM,SAAKL,qBAGnCx8H,KAAK0mD,mBAAmB5iC,UA5CE,gBA4CmC,SAAOvf,GAAY,qC,6CAC5EvE,KAAK2mD,OAAOG,KAAI,gD,oEACJviD,EAAQwiD,S,IACP,W,IACA,Y,IACA,uB,IAGA,0B,IAGA,qB,IAGA,wB,IAGA,qB,IAIA,wB,IAGA,0B,IAEA,4B,IAEA,mC,IAQA,+B,IAQA,yC,IASA,yB,IAGA,4B,oBAjDD,OADA/mD,KAAK+xF,qBAAqBkhC,kBAAiB,GAC3C,O,OAGA,OADAjzH,KAAK8sB,OAAOwc,SAAS,CAAC,MACtB,O,OAGA,OADAtpC,KAAKs/B,SAAS/6B,EAAQ6pG,SACtB,O,OAEA,SAAMpuG,KAAKk+B,oBAAoBwR,Q,OAC/B,OADA,SACA,O,OAIA,OAFA1vC,KAAK+xF,qBAAqBkhC,kBAAiB,GAC3CjzH,KAAK8sB,OAAOwc,SAAS,CAAC,SACtB,O,OAGA,OADA7+B,OAAOsT,YAAW,WAAM,SAAKkrC,cAAcn7B,eAAevpB,EAAQgB,OAAM,KACxE,O,cAIA,a,QAEyB,SAAMvF,KAAKsb,qBAAqB+a,WACrDr2B,KAAKN,YAAYO,EAAE,2BAA4BD,KAAKN,YAAYO,EAAE,uBAClED,KAAKN,YAAYO,EAAE,uBAAwBD,KAAKN,YAAYO,EAAE,Y,QAIlE,OANyB,UAIrBD,KAAK8sB,OAAOwc,SAAS,CAAC,gBAAiB/kC,EAAQhC,eAAgB,WAAY,YAE/E,O,QAEyB,SAAMvC,KAAKsb,qBAAqB+a,WACrDr2B,KAAKN,YAAYO,EAAE,uBAAwBD,KAAKN,YAAYO,EAAE,mBAC9DD,KAAKN,YAAYO,EAAE,aAAcD,KAAKN,YAAYO,EAAE,Y,QAIxD,OANyB,UAIrBD,KAAK8sB,OAAOwc,SAAS,CAAC,qBAE1B,O,QAEmC,SAAMtpC,KAAKsb,qBAAqB+a,WAC/Dr2B,KAAKN,YAAYO,EAAE,iCACnBD,KAAKN,YAAYO,EAAE,6BACnBD,KAAKN,YAAYO,EAAE,aAAcD,KAAKN,YAAYO,EAAE,Y,QAIxD,OAPmC,UAK/BD,KAAKsb,qBAAqBuM,UAAU,gEAExC,O,QAGA,OADA7nB,KAAK2sB,UAAUpoB,GACf,O,QAGA,OADAvE,KAAK88H,eACL,O,QAEA,a,yCAKhB98H,KAAK8sB,OAAOK,OAAOrJ,WAAU,SAAAsJ,GACzB,GAAIA,aAAiB,EAAAC,cAAe,CAEhC,IADA,IACoB,MADLrlB,MAAMC,KAAKwI,SAASvI,iBAAiB,WAChC,eAAQ,CAAvB,IAAMwO,EAAK,KACXD,EAAGC,GAAeA,MAAM,QAGgB,MAAzCjG,SAASlN,cAAc,gBACvB,UAAK6T,WAAMxV,OAKvB5B,KAAK88H,gBAGT,YAAAjnH,YAAA,WACI7V,KAAK0mD,mBAAmBM,YA9HE,iBAiIhB,YAAA1nB,OAAd,SAAqB8uE,G,uGACjB,SAAMpuG,KAAK04B,aAAaqhF,gB,OACT,OADf,SACe,GAAM/5G,KAAK02B,YAAY2L,a,OAEtC,OAFMvb,EAAS,SAEf,GAAMzR,QAAQK,IAAI,CACd1V,KAAK04B,aAAa4hF,cAClBt6G,KAAKojC,YAAYi1D,YAAY,IAAI/uE,KAAK,IACtCtpB,KAAKg+B,aAAak9D,aAClBl7F,KAAKuZ,cAAcg0E,YACnBvtF,KAAK02B,YAAYvf,QACjBnX,KAAK2iF,gBAAgBxrE,MAAM2P,GAC3B9mB,KAAKo4B,cAAcjhB,MAAM2P,GACzB9mB,KAAKq4B,cAAclhB,MAAM2P,GACzB9mB,KAAKu4B,kBAAkBphB,MAAM2P,GAC7B9mB,KAAK24B,cAAcxhB,MAAM2P,GACzB9mB,KAAKy4B,0BAA0BthB,QAC/BnX,KAAK6Z,aAAao+E,W,cAZtB,SAeAj4F,KAAK07B,cAAcunD,aACnBjjF,KAAKspD,YAAYhqB,QAAO,gD,kCAChB8uE,GACApuG,KAAK+nB,eAAeI,SAAS,UAAWnoB,KAAKN,YAAYO,EAAE,aACvDD,KAAKN,YAAYO,EAAE,iBAG3B,UAAKmX,QACLpX,KAAK8sB,OAAOwc,SAAS,CAAC,M,yBAIhB,YAAAkzF,eAAd,W,gFAEI,OADM5lC,GAAM,IAAKttE,MAAQmG,UACA,MAArBzvB,KAAKm8H,cAAwBvlC,EAAM52F,KAAKm8H,aAAe,MAI3Dn8H,KAAKm8H,aAAevlC,EACpB52F,KAAK8rC,eAAe2c,KAAK,EAAAv2C,iBAAiBU,cAAegkF,GAGrD52F,KAAKq8H,SACLr8H,KAAKq8H,QAAS,EACdr8H,KAAK+8H,oBAEa,MAAlB/8H,KAAKo8H,YACL3xH,OAAO4mC,aAAarxC,KAAKo8H,WACzBp8H,KAAKo8H,UAAY,MAErBp8H,KAAKo8H,UAAY3xH,OAAOsT,YAAW,WAC1B,EAAKs+G,SACN,EAAKA,QAAS,EACd,EAAKU,sBApLD,MAkKR,WAuBA,YAAApwG,UAAR,SAAkBwD,GAAlB,WACUq4B,EAAe,CACjBrmD,KAAMguB,EAAIhuB,KACVlB,MAAOkvB,EAAIlvB,OAEf,GAA0B,iBAAdkvB,EAAQ,KAChBq4B,EAAMxqC,KAAOmS,EAAIlO,UACd,GAAwB,IAApBkO,EAAIlO,KAAK9jB,OAChBqqD,EAAMxqC,KAAOmS,EAAIlO,KAAK,OACnB,CACH,IAAI,EAAU,GACdkO,EAAIlO,KAAK7d,SAAQ,SAACnE,GACd,UAAY,MAAQ,EAAK0gB,UAAUq8G,SAAS,EAAAC,gBAAgBC,KAAMj9H,GAAK,UAC3EuoD,EAAMxqC,KAAO,EACbwqC,EAAM20E,eAAiB,EAAAC,eAAeC,YAEvB,MAAfltG,EAAIzsB,WAC4B,IAA5BysB,EAAIzsB,QAAQ45H,cACZ90E,EAAM20E,eAAiB,EAAAC,eAAeC,aAEf,MAAvBltG,EAAIzsB,QAAQkpB,SAAmBuD,EAAIzsB,QAAQkpB,QAAU,IACrD47B,EAAM57B,QAAUuD,EAAIzsB,QAAQkpB,UAGpC5sB,KAAK+nB,eAAeI,SAASqgC,IAGzB,YAAAu0E,iBAAR,WACQ/8H,KAAKq8H,OACLr8H,KAAK+xF,qBAAqBqhC,2BAE1BpzH,KAAK+xF,qBAAqBohC,yBAIpB,YAAA2J,aAAd,W,0FAC4B,SAAM98H,KAAK8rC,eAAettC,IAAa,oB,cAAvC,SAEpBiS,SAASuN,KAAKuoC,UAAUtN,IAAI,cAE5BxoC,SAASuN,KAAKuoC,UAAUC,OAAO,c,6CA3N9Bo8C,GAAY,k7B,iCAAZA,EAAY,uHCzDzB,qCACA,gDACA,kB,KAFmB,+C,4EDqDnB,GAIa,EAAAA,gB,8EEzDb,S,OAMA,aAII,WAAoBxiG,GAAA,KAAAA,K,OAGG,YAAAyQ,QAAvB,WACI7Q,KAAKI,GAAGM,cAAc68H,Q,iCALjBh6B,GAAkB,oC,iCAAlBA,EAAkB,mE,wCAAlB,kB,EAHb,GAGa,EAAAA,sB,8ECTb,S,OAOA,aAOI,WAAoBi6B,GAAA,KAAAA,QAHpB,KAAAp9H,GAAkB,KAIdJ,KAAKI,GAAKo9H,EAAM98H,c,OAGpB,YAAAQ,SAAA,sBACIlB,KAAKy9H,QAAUz1H,MAAMC,KAAKjI,KAAKI,GAAG8H,iBAAiB,iDACnDlI,KAAKy9H,QAAQr5H,SAAQ,SAAAs5H,GACjBA,EAAOn3B,iBAAiB,SAAS,SAACn5E,GAC9B,EAAKhtB,GAAGmmD,UAAUtN,IAAI,aACvB,GAEHykF,EAAOn3B,iBAAiB,QAAQ,SAACn5E,GAC7B,EAAKhtB,GAAGmmD,UAAUC,OAAO,aAC1B,OAIwB,YAAA31C,QAAnC,SAA2Cuc,GACvC,IAAMvd,EAASud,EAAMvd,OACrB,IAAIA,IAAW7P,KAAKI,IAAOyP,EAAO02C,UAAUmzD,SAAS,aAChD7pG,EAAO02C,UAAUmzD,SAAS,kBAI3B15G,KAAKy9H,QAAQt/H,OAAS,EAAG,CACzB,IAAMu/H,EAAU19H,KAAKy9H,QAAQ,GAC7B,GAAqC,UAAjCC,EAAO7O,QAAQ7sH,cAA2B,CAC1C,IAAM27H,EAAWD,EACjB,GAAoB,MAAhBC,EAAQx7H,MAA+C,aAA/Bw7H,EAAQx7H,KAAKH,cAErC,YADA27H,EAAQvlB,QAIhBslB,EAAO3rH,U,iCArCNyxF,GAAe,oC,iCAAfA,EAAe,gE,yCAAf,mB,EAHb,GAGa,EAAAA,mB,8ECVb,S,OAOA,2B,OAII,YAAA7jG,UAAA,SAAUgK,EAAuB4kB,EAAoBs0B,GACjD,YADiD,IAAAA,OAAA,GAClC,MAAXl5C,GAAsC,IAAnBA,EAAQxL,OACpB,GAGO,MAAdowB,GAAsBA,EAAWpwB,OAAS,EACnCwL,EAAQxB,QAAO,SAAA8F,GAClB,OAAO40C,IAAY50C,EAAEwuB,cAI7BlO,EAAaA,EAAWxqB,OAAO/B,cACxB2H,EAAQxB,QAAO,SAAA8F,GAClB,OAAI40C,IAAY50C,EAAEwuB,YAGJ,MAAVxuB,EAAEvG,MAAgBuG,EAAEvG,KAAK1F,cAAcoD,QAAQmpB,IAAe,OAG9DA,EAAWpwB,QAAU,GAAK8P,EAAErO,GAAG+F,WAAW4oB,MAG5B,MAAdtgB,EAAEyX,UAAoBzX,EAAEyX,SAAS1jB,cAAcoD,QAAQmpB,IAAe,MAGtEtgB,EAAEvF,OAAwB,MAAfuF,EAAEvF,MAAM7D,KAAeoJ,EAAEvF,MAAM7D,IAAI7C,cAAcoD,QAAQmpB,IAAe,W,iCA1BtFk1E,I,kDAAAA,EAAiB,U,EAH9B,GAGa,EAAAA","file":"app/main.a34068436143996e1f65.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([753,2]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export abstract class I18nService {\n locale: string;\n supportedTranslationLocales: string[];\n translationLocale: string;\n collator: Intl.Collator;\n localeNames: Map;\n t: (id: string, p1?: string, p2?: string, p3?: string) => string;\n translate: (id: string, p1?: string, p2?: string, p3?: string) => string;\n}\n","import { DeviceType } from '../enums/deviceType';\n\nexport abstract class PlatformUtilsService {\n identityClientId: string;\n getDevice: () => DeviceType;\n getDeviceString: () => string;\n isFirefox: () => boolean;\n isChrome: () => boolean;\n isEdge: () => boolean;\n isOpera: () => boolean;\n isVivaldi: () => boolean;\n isSafari: () => boolean;\n isIE: () => boolean;\n isMacAppStore: () => boolean;\n isViewOpen: () => Promise;\n /**\n * @deprecated This only ever returns null. Pull from your platform's storage using ConstantsService.vaultTimeoutKey\n */\n lockTimeout: () => number;\n launchUri: (uri: string, options?: any) => void;\n saveFile: (win: Window, blobData: any, blobOptions: any, fileName: string) => void;\n getApplicationVersion: () => Promise;\n supportsWebAuthn: (win: Window) => boolean;\n supportsDuo: () => boolean;\n showToast: (type: 'error' | 'success' | 'warning' | 'info', title: string, text: string | string[],\n options?: any) => void;\n showDialog: (body: string, title?: string, confirmText?: string, cancelText?: string,\n type?: string, bodyIsHtml?: boolean) => Promise;\n isDev: () => boolean;\n isSelfHost: () => boolean;\n copyToClipboard: (text: string, options?: any) => void;\n readFromClipboard: (options?: any) => Promise;\n supportsBiometric: () => Promise;\n authenticateBiometric: () => Promise;\n getDefaultSystemTheme: () => Promise<'light' | 'dark'>;\n onDefaultSystemThemeChange: (callback: ((theme: 'light' | 'dark') => unknown)) => unknown;\n supportsSecureStorage: () => boolean;\n}\n","import { PolicyType } from '../enums/policyType';\n\nimport { EnvironmentUrls } from '../models/domain/environmentUrls';\nimport { AttachmentRequest } from '../models/request/attachmentRequest';\n\nimport { BitPayInvoiceRequest } from '../models/request/bitPayInvoiceRequest';\nimport { CipherBulkDeleteRequest } from '../models/request/cipherBulkDeleteRequest';\nimport { CipherBulkMoveRequest } from '../models/request/cipherBulkMoveRequest';\nimport { CipherBulkRestoreRequest } from '../models/request/cipherBulkRestoreRequest';\nimport { CipherBulkShareRequest } from '../models/request/cipherBulkShareRequest';\nimport { CipherCollectionsRequest } from '../models/request/cipherCollectionsRequest';\nimport { CipherCreateRequest } from '../models/request/cipherCreateRequest';\nimport { CipherRequest } from '../models/request/cipherRequest';\nimport { CipherShareRequest } from '../models/request/cipherShareRequest';\nimport { CollectionRequest } from '../models/request/collectionRequest';\nimport { DeleteRecoverRequest } from '../models/request/deleteRecoverRequest';\nimport { EmailRequest } from '../models/request/emailRequest';\nimport { EmailTokenRequest } from '../models/request/emailTokenRequest';\nimport { EmergencyAccessAcceptRequest } from '../models/request/emergencyAccessAcceptRequest';\nimport { EmergencyAccessConfirmRequest } from '../models/request/emergencyAccessConfirmRequest';\nimport { EmergencyAccessInviteRequest } from '../models/request/emergencyAccessInviteRequest';\nimport { EmergencyAccessPasswordRequest } from '../models/request/emergencyAccessPasswordRequest';\nimport { EmergencyAccessUpdateRequest } from '../models/request/emergencyAccessUpdateRequest';\nimport { EventRequest } from '../models/request/eventRequest';\nimport { FolderRequest } from '../models/request/folderRequest';\nimport { GroupRequest } from '../models/request/groupRequest';\nimport { IapCheckRequest } from '../models/request/iapCheckRequest';\nimport { ImportCiphersRequest } from '../models/request/importCiphersRequest';\nimport { ImportDirectoryRequest } from '../models/request/importDirectoryRequest';\nimport { ImportOrganizationCiphersRequest } from '../models/request/importOrganizationCiphersRequest';\nimport { KdfRequest } from '../models/request/kdfRequest';\nimport { KeysRequest } from '../models/request/keysRequest';\nimport { OrganizationCreateRequest } from '../models/request/organizationCreateRequest';\nimport { OrganizationTaxInfoUpdateRequest } from '../models/request/organizationTaxInfoUpdateRequest';\nimport { OrganizationUpdateRequest } from '../models/request/organizationUpdateRequest';\nimport { OrganizationUpgradeRequest } from '../models/request/organizationUpgradeRequest';\nimport { OrganizationUserAcceptRequest } from '../models/request/organizationUserAcceptRequest';\nimport { OrganizationUserConfirmRequest } from '../models/request/organizationUserConfirmRequest';\nimport { OrganizationUserInviteRequest } from '../models/request/organizationUserInviteRequest';\nimport { OrganizationUserResetPasswordEnrollmentRequest } from '../models/request/organizationUserResetPasswordEnrollmentRequest';\nimport { OrganizationUserUpdateGroupsRequest } from '../models/request/organizationUserUpdateGroupsRequest';\nimport { OrganizationUserUpdateRequest } from '../models/request/organizationUserUpdateRequest';\nimport { PasswordHintRequest } from '../models/request/passwordHintRequest';\nimport { PasswordRequest } from '../models/request/passwordRequest';\nimport { PasswordVerificationRequest } from '../models/request/passwordVerificationRequest';\nimport { PaymentRequest } from '../models/request/paymentRequest';\nimport { PolicyRequest } from '../models/request/policyRequest';\nimport { PreloginRequest } from '../models/request/preloginRequest';\nimport { RegisterRequest } from '../models/request/registerRequest';\nimport { SeatRequest } from '../models/request/seatRequest';\nimport { SelectionReadOnlyRequest } from '../models/request/selectionReadOnlyRequest';\nimport { SendAccessRequest } from '../models/request/sendAccessRequest';\nimport { SendRequest } from '../models/request/sendRequest';\nimport { SetPasswordRequest } from '../models/request/setPasswordRequest';\nimport { StorageRequest } from '../models/request/storageRequest';\nimport { TaxInfoUpdateRequest } from '../models/request/taxInfoUpdateRequest';\nimport { TokenRequest } from '../models/request/tokenRequest';\nimport { TwoFactorEmailRequest } from '../models/request/twoFactorEmailRequest';\nimport { TwoFactorProviderRequest } from '../models/request/twoFactorProviderRequest';\nimport { TwoFactorRecoveryRequest } from '../models/request/twoFactorRecoveryRequest';\nimport { UpdateDomainsRequest } from '../models/request/updateDomainsRequest';\nimport { UpdateKeyRequest } from '../models/request/updateKeyRequest';\nimport { UpdateProfileRequest } from '../models/request/updateProfileRequest';\nimport { UpdateTwoFactorAuthenticatorRequest } from '../models/request/updateTwoFactorAuthenticatorRequest';\nimport { UpdateTwoFactorDuoRequest } from '../models/request/updateTwoFactorDuoRequest';\nimport { UpdateTwoFactorEmailRequest } from '../models/request/updateTwoFactorEmailRequest';\nimport { UpdateTwoFactorWebAuthnDeleteRequest } from '../models/request/updateTwoFactorWebAuthnDeleteRequest';\nimport { UpdateTwoFactorWebAuthnRequest } from '../models/request/updateTwoFactorWebAuthnRequest';\nimport { UpdateTwoFactorYubioOtpRequest } from '../models/request/updateTwoFactorYubioOtpRequest';\nimport { VerifyBankRequest } from '../models/request/verifyBankRequest';\nimport { VerifyDeleteRecoverRequest } from '../models/request/verifyDeleteRecoverRequest';\nimport { VerifyEmailRequest } from '../models/request/verifyEmailRequest';\n\nimport { ApiKeyResponse } from '../models/response/apiKeyResponse';\nimport { AttachmentResponse } from '../models/response/attachmentResponse';\nimport { AttachmentUploadDataResponse } from '../models/response/attachmentUploadDataResponse';\nimport { BillingResponse } from '../models/response/billingResponse';\nimport { BreachAccountResponse } from '../models/response/breachAccountResponse';\nimport { CipherResponse } from '../models/response/cipherResponse';\nimport {\n CollectionGroupDetailsResponse,\n CollectionResponse,\n} from '../models/response/collectionResponse';\nimport { DomainsResponse } from '../models/response/domainsResponse';\nimport {\n EmergencyAccessGranteeDetailsResponse,\n EmergencyAccessGrantorDetailsResponse,\n EmergencyAccessTakeoverResponse,\n EmergencyAccessViewResponse\n} from '../models/response/emergencyAccessResponse';\nimport { EventResponse } from '../models/response/eventResponse';\nimport { FolderResponse } from '../models/response/folderResponse';\nimport {\n GroupDetailsResponse,\n GroupResponse,\n} from '../models/response/groupResponse';\nimport { IdentityTokenResponse } from '../models/response/identityTokenResponse';\nimport { IdentityTwoFactorResponse } from '../models/response/identityTwoFactorResponse';\nimport { ListResponse } from '../models/response/listResponse';\nimport { OrganizationResponse } from '../models/response/organizationResponse';\nimport { OrganizationSubscriptionResponse } from '../models/response/organizationSubscriptionResponse';\nimport {\n OrganizationUserDetailsResponse,\n OrganizationUserUserDetailsResponse,\n} from '../models/response/organizationUserResponse';\nimport { PaymentResponse } from '../models/response/paymentResponse';\nimport { PlanResponse } from '../models/response/planResponse';\nimport { PolicyResponse } from '../models/response/policyResponse';\nimport { PreloginResponse } from '../models/response/preloginResponse';\nimport { ProfileResponse } from '../models/response/profileResponse';\nimport { SelectionReadOnlyResponse } from '../models/response/selectionReadOnlyResponse';\nimport { SendAccessResponse } from '../models/response/sendAccessResponse';\nimport { SendFileDownloadDataResponse } from '../models/response/sendFileDownloadDataResponse';\nimport { SendFileUploadDataResponse } from '../models/response/sendFileUploadDataResponse';\nimport { SendResponse } from '../models/response/sendResponse';\nimport { SubscriptionResponse } from '../models/response/subscriptionResponse';\nimport { SyncResponse } from '../models/response/syncResponse';\nimport { TaxInfoResponse } from '../models/response/taxInfoResponse';\nimport { TaxRateResponse } from '../models/response/taxRateResponse';\nimport { TwoFactorAuthenticatorResponse } from '../models/response/twoFactorAuthenticatorResponse';\nimport { TwoFactorDuoResponse } from '../models/response/twoFactorDuoResponse';\nimport { TwoFactorEmailResponse } from '../models/response/twoFactorEmailResponse';\nimport { TwoFactorProviderResponse } from '../models/response/twoFactorProviderResponse';\nimport { TwoFactorRecoverResponse } from '../models/response/twoFactorRescoverResponse';\nimport { ChallengeResponse, TwoFactorWebAuthnResponse } from '../models/response/twoFactorWebAuthnResponse';\nimport { TwoFactorYubiKeyResponse } from '../models/response/twoFactorYubiKeyResponse';\nimport { UserKeyResponse } from '../models/response/userKeyResponse';\n\nimport { SendAccessView } from '../models/view/sendAccessView';\n\nexport abstract class ApiService {\n urlsSet: boolean;\n apiBaseUrl: string;\n identityBaseUrl: string;\n eventsBaseUrl: string;\n\n setUrls: (urls: EnvironmentUrls) => void;\n postIdentityToken: (request: TokenRequest) => Promise;\n refreshIdentityToken: () => Promise;\n\n getProfile: () => Promise;\n getUserBilling: () => Promise;\n getUserSubscription: () => Promise;\n getTaxInfo: () => Promise;\n putProfile: (request: UpdateProfileRequest) => Promise;\n putTaxInfo: (request: TaxInfoUpdateRequest) => Promise;\n postPrelogin: (request: PreloginRequest) => Promise;\n postEmailToken: (request: EmailTokenRequest) => Promise;\n postEmail: (request: EmailRequest) => Promise;\n postPassword: (request: PasswordRequest) => Promise;\n setPassword: (request: SetPasswordRequest) => Promise;\n postSecurityStamp: (request: PasswordVerificationRequest) => Promise;\n deleteAccount: (request: PasswordVerificationRequest) => Promise;\n getAccountRevisionDate: () => Promise;\n postPasswordHint: (request: PasswordHintRequest) => Promise;\n postRegister: (request: RegisterRequest) => Promise;\n postPremium: (data: FormData) => Promise;\n postIapCheck: (request: IapCheckRequest) => Promise;\n postReinstatePremium: () => Promise;\n postCancelPremium: () => Promise;\n postAccountStorage: (request: StorageRequest) => Promise;\n postAccountPayment: (request: PaymentRequest) => Promise;\n postAccountLicense: (data: FormData) => Promise;\n postAccountKey: (request: UpdateKeyRequest) => Promise;\n postAccountKeys: (request: KeysRequest) => Promise;\n postAccountVerifyEmail: () => Promise;\n postAccountVerifyEmailToken: (request: VerifyEmailRequest) => Promise;\n postAccountVerifyPassword: (request: PasswordVerificationRequest) => Promise;\n postAccountRecoverDelete: (request: DeleteRecoverRequest) => Promise;\n postAccountRecoverDeleteToken: (request: VerifyDeleteRecoverRequest) => Promise;\n postAccountKdf: (request: KdfRequest) => Promise;\n getEnterprisePortalSignInToken: () => Promise;\n postUserApiKey: (id: string, request: PasswordVerificationRequest) => Promise;\n postUserRotateApiKey: (id: string, request: PasswordVerificationRequest) => Promise;\n\n getFolder: (id: string) => Promise;\n postFolder: (request: FolderRequest) => Promise;\n putFolder: (id: string, request: FolderRequest) => Promise;\n deleteFolder: (id: string) => Promise;\n\n getSend: (id: string) => Promise;\n postSendAccess: (id: string, request: SendAccessRequest, apiUrl?: string) => Promise;\n getSends: () => Promise>;\n postSend: (request: SendRequest) => Promise;\n postFileTypeSend: (request: SendRequest) => Promise;\n postSendFile: (sendId: string, fileId: string, data: FormData) => Promise;\n /**\n * @deprecated Mar 25 2021: This method has been deprecated in favor of direct uploads.\n * This method still exists for backward compatibility with old server versions.\n */\n postSendFileLegacy: (data: FormData) => Promise;\n putSend: (id: string, request: SendRequest) => Promise;\n putSendRemovePassword: (id: string) => Promise;\n deleteSend: (id: string) => Promise;\n getSendFileDownloadData: (send: SendAccessView, request: SendAccessRequest, apiUrl?: string) => Promise;\n renewSendFileUploadUrl: (sendId: string, fileId: string) => Promise;\n\n getCipher: (id: string) => Promise;\n getCipherAdmin: (id: string) => Promise;\n getAttachmentData: (cipherId: string, attachmentId: string, emergencyAccessId?: string) => Promise;\n getCiphersOrganization: (organizationId: string) => Promise>;\n postCipher: (request: CipherRequest) => Promise;\n postCipherCreate: (request: CipherCreateRequest) => Promise;\n postCipherAdmin: (request: CipherCreateRequest) => Promise;\n putCipher: (id: string, request: CipherRequest) => Promise;\n putCipherAdmin: (id: string, request: CipherRequest) => Promise;\n deleteCipher: (id: string) => Promise;\n deleteCipherAdmin: (id: string) => Promise;\n deleteManyCiphers: (request: CipherBulkDeleteRequest) => Promise;\n deleteManyCiphersAdmin: (request: CipherBulkDeleteRequest) => Promise;\n putMoveCiphers: (request: CipherBulkMoveRequest) => Promise;\n putShareCipher: (id: string, request: CipherShareRequest) => Promise;\n putShareCiphers: (request: CipherBulkShareRequest) => Promise;\n putCipherCollections: (id: string, request: CipherCollectionsRequest) => Promise;\n putCipherCollectionsAdmin: (id: string, request: CipherCollectionsRequest) => Promise;\n postPurgeCiphers: (request: PasswordVerificationRequest, organizationId?: string) => Promise;\n postImportCiphers: (request: ImportCiphersRequest) => Promise;\n postImportOrganizationCiphers: (organizationId: string, request: ImportOrganizationCiphersRequest) => Promise;\n putDeleteCipher: (id: string) => Promise;\n putDeleteCipherAdmin: (id: string) => Promise;\n putDeleteManyCiphers: (request: CipherBulkDeleteRequest) => Promise;\n putDeleteManyCiphersAdmin: (request: CipherBulkDeleteRequest) => Promise;\n putRestoreCipher: (id: string) => Promise;\n putRestoreCipherAdmin: (id: string) => Promise;\n putRestoreManyCiphers: (request: CipherBulkRestoreRequest) => Promise>;\n\n /**\n * @deprecated Mar 25 2021: This method has been deprecated in favor of direct uploads.\n * This method still exists for backward compatibility with old server versions.\n */\n postCipherAttachmentLegacy: (id: string, data: FormData) => Promise;\n /**\n * @deprecated Mar 25 2021: This method has been deprecated in favor of direct uploads.\n * This method still exists for backward compatibility with old server versions.\n */\n postCipherAttachmentAdminLegacy: (id: string, data: FormData) => Promise;\n postCipherAttachment: (id: string, request: AttachmentRequest) => Promise;\n deleteCipherAttachment: (id: string, attachmentId: string) => Promise;\n deleteCipherAttachmentAdmin: (id: string, attachmentId: string) => Promise;\n postShareCipherAttachment: (id: string, attachmentId: string, data: FormData,\n organizationId: string) => Promise;\n renewAttachmentUploadUrl: (id: string, attachmentId: string) => Promise;\n postAttachmentFile: (id: string, attachmentId: string, data: FormData) => Promise;\n\n getCollectionDetails: (organizationId: string, id: string) => Promise;\n getUserCollections: () => Promise>;\n getCollections: (organizationId: string) => Promise>;\n getCollectionUsers: (organizationId: string, id: string) => Promise;\n postCollection: (organizationId: string, request: CollectionRequest) => Promise;\n putCollectionUsers: (organizationId: string, id: string, request: SelectionReadOnlyRequest[]) => Promise;\n putCollection: (organizationId: string, id: string, request: CollectionRequest) => Promise;\n deleteCollection: (organizationId: string, id: string) => Promise;\n deleteCollectionUser: (organizationId: string, id: string, organizationUserId: string) => Promise;\n\n getGroupDetails: (organizationId: string, id: string) => Promise;\n getGroups: (organizationId: string) => Promise>;\n getGroupUsers: (organizationId: string, id: string) => Promise;\n postGroup: (organizationId: string, request: GroupRequest) => Promise;\n putGroup: (organizationId: string, id: string, request: GroupRequest) => Promise;\n putGroupUsers: (organizationId: string, id: string, request: string[]) => Promise;\n deleteGroup: (organizationId: string, id: string) => Promise;\n deleteGroupUser: (organizationId: string, id: string, organizationUserId: string) => Promise;\n\n getPolicy: (organizationId: string, type: PolicyType) => Promise;\n getPolicies: (organizationId: string) => Promise>;\n getPoliciesByToken: (organizationId: string, token: string, email: string, organizationUserId: string) =>\n Promise>;\n putPolicy: (organizationId: string, type: PolicyType, request: PolicyRequest) => Promise;\n\n getOrganizationUser: (organizationId: string, id: string) => Promise;\n getOrganizationUserGroups: (organizationId: string, id: string) => Promise;\n getOrganizationUsers: (organizationId: string) => Promise>;\n postOrganizationUserInvite: (organizationId: string, request: OrganizationUserInviteRequest) => Promise;\n postOrganizationUserReinvite: (organizationId: string, id: string) => Promise;\n postOrganizationUserAccept: (organizationId: string, id: string,\n request: OrganizationUserAcceptRequest) => Promise;\n postOrganizationUserConfirm: (organizationId: string, id: string,\n request: OrganizationUserConfirmRequest) => Promise;\n putOrganizationUser: (organizationId: string, id: string, request: OrganizationUserUpdateRequest) => Promise;\n putOrganizationUserGroups: (organizationId: string, id: string,\n request: OrganizationUserUpdateGroupsRequest) => Promise;\n putOrganizationUserResetPasswordEnrollment: (organizationId: string, userId: string,\n request: OrganizationUserResetPasswordEnrollmentRequest) => Promise;\n deleteOrganizationUser: (organizationId: string, id: string) => Promise;\n\n getSync: () => Promise;\n postImportDirectory: (organizationId: string, request: ImportDirectoryRequest) => Promise;\n\n getSettingsDomains: () => Promise;\n putSettingsDomains: (request: UpdateDomainsRequest) => Promise;\n\n getTwoFactorProviders: () => Promise>;\n getTwoFactorOrganizationProviders: (organizationId: string) => Promise>;\n getTwoFactorAuthenticator: (request: PasswordVerificationRequest) => Promise;\n getTwoFactorEmail: (request: PasswordVerificationRequest) => Promise;\n getTwoFactorDuo: (request: PasswordVerificationRequest) => Promise;\n getTwoFactorOrganizationDuo: (organizationId: string,\n request: PasswordVerificationRequest) => Promise;\n getTwoFactorYubiKey: (request: PasswordVerificationRequest) => Promise;\n getTwoFactorWebAuthn: (request: PasswordVerificationRequest) => Promise;\n getTwoFactorWebAuthnChallenge: (request: PasswordVerificationRequest) => Promise;\n getTwoFactorRecover: (request: PasswordVerificationRequest) => Promise;\n putTwoFactorAuthenticator: (\n request: UpdateTwoFactorAuthenticatorRequest) => Promise;\n putTwoFactorEmail: (request: UpdateTwoFactorEmailRequest) => Promise;\n putTwoFactorDuo: (request: UpdateTwoFactorDuoRequest) => Promise;\n putTwoFactorOrganizationDuo: (organizationId: string,\n request: UpdateTwoFactorDuoRequest) => Promise;\n putTwoFactorYubiKey: (request: UpdateTwoFactorYubioOtpRequest) => Promise;\n putTwoFactorWebAuthn: (request: UpdateTwoFactorWebAuthnRequest) => Promise;\n deleteTwoFactorWebAuthn: (request: UpdateTwoFactorWebAuthnDeleteRequest) => Promise;\n putTwoFactorDisable: (request: TwoFactorProviderRequest) => Promise;\n putTwoFactorOrganizationDisable: (organizationId: string,\n request: TwoFactorProviderRequest) => Promise;\n postTwoFactorRecover: (request: TwoFactorRecoveryRequest) => Promise;\n postTwoFactorEmailSetup: (request: TwoFactorEmailRequest) => Promise;\n postTwoFactorEmail: (request: TwoFactorEmailRequest) => Promise;\n\n getEmergencyAccessTrusted: () => Promise>;\n getEmergencyAccessGranted: () => Promise>;\n getEmergencyAccess: (id: string) => Promise;\n getEmergencyGrantorPolicies: (id: string) => Promise>;\n putEmergencyAccess: (id: string, request: EmergencyAccessUpdateRequest) => Promise;\n deleteEmergencyAccess: (id: string) => Promise;\n postEmergencyAccessInvite: (request: EmergencyAccessInviteRequest) => Promise;\n postEmergencyAccessReinvite: (id: string) => Promise;\n postEmergencyAccessAccept: (id: string, request: EmergencyAccessAcceptRequest) => Promise;\n postEmergencyAccessConfirm: (id: string, request: EmergencyAccessConfirmRequest) => Promise;\n postEmergencyAccessInitiate: (id: string) => Promise;\n postEmergencyAccessApprove: (id: string) => Promise;\n postEmergencyAccessReject: (id: string) => Promise;\n postEmergencyAccessTakeover: (id: string) => Promise;\n postEmergencyAccessPassword: (id: string, request: EmergencyAccessPasswordRequest) => Promise;\n postEmergencyAccessView: (id: string) => Promise;\n\n getOrganization: (id: string) => Promise;\n getOrganizationBilling: (id: string) => Promise;\n getOrganizationSubscription: (id: string) => Promise;\n getOrganizationLicense: (id: string, installationId: string) => Promise;\n getOrganizationTaxInfo: (id: string) => Promise;\n postOrganization: (request: OrganizationCreateRequest) => Promise;\n putOrganization: (id: string, request: OrganizationUpdateRequest) => Promise;\n putOrganizationTaxInfo: (id: string, request: OrganizationTaxInfoUpdateRequest) => Promise;\n postLeaveOrganization: (id: string) => Promise;\n postOrganizationLicense: (data: FormData) => Promise;\n postOrganizationLicenseUpdate: (id: string, data: FormData) => Promise;\n postOrganizationApiKey: (id: string, request: PasswordVerificationRequest) => Promise;\n postOrganizationRotateApiKey: (id: string, request: PasswordVerificationRequest) => Promise;\n postOrganizationUpgrade: (id: string, request: OrganizationUpgradeRequest) => Promise;\n postOrganizationSeat: (id: string, request: SeatRequest) => Promise;\n postOrganizationStorage: (id: string, request: StorageRequest) => Promise;\n postOrganizationPayment: (id: string, request: PaymentRequest) => Promise;\n postOrganizationVerifyBank: (id: string, request: VerifyBankRequest) => Promise;\n postOrganizationCancel: (id: string) => Promise;\n postOrganizationReinstate: (id: string) => Promise;\n deleteOrganization: (id: string, request: PasswordVerificationRequest) => Promise;\n getPlans: () => Promise>;\n getTaxRates: () => Promise>;\n\n getEvents: (start: string, end: string, token: string) => Promise>;\n getEventsCipher: (id: string, start: string, end: string, token: string) => Promise>;\n getEventsOrganization: (id: string, start: string, end: string,\n token: string) => Promise>;\n getEventsOrganizationUser: (organizationId: string, id: string,\n start: string, end: string, token: string) => Promise>;\n postEventsCollect: (request: EventRequest[]) => Promise;\n\n deleteSsoUser: (organizationId: string) => Promise;\n getSsoUserIdentifier: () => Promise;\n\n getUserPublicKey: (id: string) => Promise;\n\n getHibpBreach: (username: string) => Promise;\n\n postBitPayInvoice: (request: BitPayInvoiceRequest) => Promise;\n postSetupPayment: () => Promise;\n\n getActiveBearerToken: () => Promise;\n fetch: (request: Request) => Promise;\n nativeFetch: (request: Request) => Promise;\n\n preValidateSso: (identifier: string) => Promise;\n}\n","import { OrganizationData } from '../models/data/organizationData';\nimport { Organization } from '../models/domain/organization';\n\nimport { KdfType } from '../enums/kdfType';\n\nexport abstract class UserService {\n setInformation: (userId: string, email: string, kdf: KdfType, kdfIterations: number) => Promise;\n setEmailVerified: (emailVerified: boolean) => Promise;\n setSecurityStamp: (stamp: string) => Promise;\n getUserId: () => Promise;\n getEmail: () => Promise;\n getSecurityStamp: () => Promise;\n getKdf: () => Promise;\n getKdfIterations: () => Promise;\n getEmailVerified: () => Promise;\n clear: () => Promise;\n isAuthenticated: () => Promise;\n canAccessPremium: () => Promise;\n getOrganization: (id: string) => Promise;\n getAllOrganizations: () => Promise;\n replaceOrganizations: (organizations: { [id: string]: OrganizationData; }) => Promise;\n clearOrganizations: (userId: string) => Promise;\n}\n","import {\n Pipe,\n PipeTransform,\n} from '@angular/core';\n\nimport { I18nService } from '../../abstractions/i18n.service';\n\n@Pipe({\n name: 'i18n',\n})\nexport class I18nPipe implements PipeTransform {\n constructor(private i18nService: I18nService) { }\n\n transform(id: string, p1?: string, p2?: string, p3?: string): string {\n return this.i18nService.t(id, p1, p2, p3);\n }\n}\n","export abstract class MessagingService {\n send: (subscriber: string, arg?: any) => void;\n}\n","import {\n Directive,\n ElementRef,\n Input,\n OnChanges,\n} from '@angular/core';\n\nimport { ValidationService } from '../services/validation.service';\n\n@Directive({\n selector: '[appApiAction]',\n})\nexport class ApiActionDirective implements OnChanges {\n @Input() appApiAction: Promise;\n\n constructor(private el: ElementRef, private validationService: ValidationService) { }\n\n ngOnChanges(changes: any) {\n if (this.appApiAction == null || this.appApiAction.then == null) {\n return;\n }\n\n this.el.nativeElement.loading = true;\n\n this.appApiAction.then((response: any) => {\n this.el.nativeElement.loading = false;\n }, (e: any) => {\n this.el.nativeElement.loading = false;\n this.validationService.showError(e);\n });\n }\n}\n","import {\n Directive,\n ElementRef,\n Input,\n Renderer2,\n} from '@angular/core';\n\n@Directive({\n selector: '[appA11yTitle]',\n})\nexport class A11yTitleDirective {\n @Input() set appA11yTitle(title: string) {\n this.title = title;\n }\n\n private title: string;\n\n constructor(private el: ElementRef, private renderer: Renderer2) { }\n\n ngOnInit() {\n if (!this.el.nativeElement.hasAttribute('title')) {\n this.renderer.setAttribute(this.el.nativeElement, 'title', this.title);\n }\n if (!this.el.nativeElement.hasAttribute('aria-label')) {\n this.renderer.setAttribute(this.el.nativeElement, 'aria-label', this.title);\n }\n }\n}\n","import { EncArrayBuffer } from '../models/domain/encArrayBuffer';\nimport { EncString } from '../models/domain/encString';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nimport { ProfileOrganizationResponse } from '../models/response/profileOrganizationResponse';\n\nimport { KdfType } from '../enums/kdfType';\n\nexport abstract class CryptoService {\n setKey: (key: SymmetricCryptoKey) => Promise;\n setKeyHash: (keyHash: string) => Promise<{}>;\n setEncKey: (encKey: string) => Promise<{}>;\n setEncPrivateKey: (encPrivateKey: string) => Promise<{}>;\n setOrgKeys: (orgs: ProfileOrganizationResponse[]) => Promise<{}>;\n getKey: () => Promise;\n getKeyHash: () => Promise;\n getEncKey: (key?: SymmetricCryptoKey) => Promise;\n getPublicKey: () => Promise;\n getPrivateKey: () => Promise;\n getFingerprint: (userId: string, publicKey?: ArrayBuffer) => Promise;\n getOrgKeys: () => Promise>;\n getOrgKey: (orgId: string) => Promise;\n hasKey: () => Promise;\n hasEncKey: () => Promise;\n clearKey: () => Promise;\n clearKeyHash: () => Promise;\n clearEncKey: (memoryOnly?: boolean) => Promise;\n clearKeyPair: (memoryOnly?: boolean) => Promise;\n clearOrgKeys: (memoryOnly?: boolean) => Promise;\n clearPinProtectedKey: () => Promise;\n clearKeys: () => Promise;\n toggleKey: () => Promise;\n makeKey: (password: string, salt: string, kdf: KdfType, kdfIterations: number) => Promise;\n makeKeyFromPin: (pin: string, salt: string, kdf: KdfType, kdfIterations: number,\n protectedKeyCs?: EncString) => Promise;\n makeShareKey: () => Promise<[EncString, SymmetricCryptoKey]>;\n makeKeyPair: (key?: SymmetricCryptoKey) => Promise<[string, EncString]>;\n makePinKey: (pin: string, salt: string, kdf: KdfType, kdfIterations: number) => Promise;\n makeSendKey: (keyMaterial: ArrayBuffer) => Promise;\n hashPassword: (password: string, key: SymmetricCryptoKey) => Promise;\n makeEncKey: (key: SymmetricCryptoKey) => Promise<[SymmetricCryptoKey, EncString]>;\n remakeEncKey: (key: SymmetricCryptoKey, encKey?: SymmetricCryptoKey) => Promise<[SymmetricCryptoKey, EncString]>;\n encrypt: (plainValue: string | ArrayBuffer, key?: SymmetricCryptoKey) => Promise;\n encryptToBytes: (plainValue: ArrayBuffer, key?: SymmetricCryptoKey) => Promise;\n rsaEncrypt: (data: ArrayBuffer, publicKey?: ArrayBuffer) => Promise;\n rsaDecrypt: (encValue: string) => Promise;\n decryptToBytes: (encString: EncString, key?: SymmetricCryptoKey) => Promise;\n decryptToUtf8: (encString: EncString, key?: SymmetricCryptoKey) => Promise;\n decryptFromBytes: (encBuf: ArrayBuffer, key: SymmetricCryptoKey) => Promise;\n randomNumber: (min: number, max: number) => Promise;\n}\n","import { CipherType } from '../enums/cipherType';\nimport { UriMatchType } from '../enums/uriMatchType';\n\nimport { CipherData } from '../models/data/cipherData';\n\nimport { Cipher } from '../models/domain/cipher';\nimport { Field } from '../models/domain/field';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nimport { CipherView } from '../models/view/cipherView';\nimport { FieldView } from '../models/view/fieldView';\n\nexport abstract class CipherService {\n decryptedCipherCache: CipherView[];\n\n clearCache: () => void;\n encrypt: (model: CipherView, key?: SymmetricCryptoKey, originalCipher?: Cipher) => Promise;\n encryptFields: (fieldsModel: FieldView[], key: SymmetricCryptoKey) => Promise;\n encryptField: (fieldModel: FieldView, key: SymmetricCryptoKey) => Promise;\n get: (id: string) => Promise;\n getAll: () => Promise;\n getAllDecrypted: () => Promise;\n getAllDecryptedForGrouping: (groupingId: string, folder?: boolean) => Promise;\n getAllDecryptedForUrl: (url: string, includeOtherTypes?: CipherType[],\n defaultMatch?: UriMatchType) => Promise;\n getAllFromApiForOrganization: (organizationId: string) => Promise;\n getLastUsedForUrl: (url: string) => Promise;\n getLastLaunchedForUrl: (url: string) => Promise;\n getNextCipherForUrl: (url: string) => Promise;\n updateLastUsedIndexForUrl: (url: string) => void;\n updateLastUsedDate: (id: string) => Promise;\n updateLastLaunchedDate: (id: string) => Promise;\n saveNeverDomain: (domain: string) => Promise;\n saveWithServer: (cipher: Cipher) => Promise;\n shareWithServer: (cipher: CipherView, organizationId: string, collectionIds: string[]) => Promise;\n shareManyWithServer: (ciphers: CipherView[], organizationId: string, collectionIds: string[]) => Promise;\n saveAttachmentWithServer: (cipher: Cipher, unencryptedFile: any, admin?: boolean) => Promise;\n saveAttachmentRawWithServer: (cipher: Cipher, filename: string, data: ArrayBuffer,\n admin?: boolean) => Promise;\n saveCollectionsWithServer: (cipher: Cipher) => Promise;\n upsert: (cipher: CipherData | CipherData[]) => Promise;\n replace: (ciphers: { [id: string]: CipherData; }) => Promise;\n clear: (userId: string) => Promise;\n moveManyWithServer: (ids: string[], folderId: string) => Promise;\n delete: (id: string | string[]) => Promise;\n deleteWithServer: (id: string) => Promise;\n deleteManyWithServer: (ids: string[]) => Promise;\n deleteAttachment: (id: string, attachmentId: string) => Promise;\n deleteAttachmentWithServer: (id: string, attachmentId: string) => Promise;\n sortCiphersByLastUsed: (a: any, b: any) => number;\n sortCiphersByLastUsedThenName: (a: any, b: any) => number;\n getLocaleSortingFunction: () => (a: CipherView, b: CipherView) => number;\n softDelete: (id: string | string[]) => Promise;\n softDeleteWithServer: (id: string) => Promise;\n softDeleteManyWithServer: (ids: string[]) => Promise;\n restore: (cipher: { id: string, revisionDate: string; } | { id: string, revisionDate: string; }[]) => Promise;\n restoreWithServer: (id: string) => Promise;\n restoreManyWithServer: (ids: string[]) => Promise;\n}\n","export abstract class BaseResponse {\n private response: any;\n\n constructor(response: any) {\n this.response = response;\n }\n\n protected getResponseProperty(propertyName: string, response: any = null, exactName = false): any {\n if (propertyName == null || propertyName === '') {\n throw new Error('propertyName must not be null/empty.');\n }\n if (response == null && this.response != null) {\n response = this.response;\n }\n if (response == null) {\n return null;\n }\n if (!exactName && response[propertyName] === undefined) {\n let otherCasePropertyName: string = null;\n if (propertyName.charAt(0) === propertyName.charAt(0).toUpperCase()) {\n otherCasePropertyName = propertyName.charAt(0).toLowerCase();\n } else {\n otherCasePropertyName = propertyName.charAt(0).toUpperCase();\n }\n if (propertyName.length > 1) {\n otherCasePropertyName += propertyName.slice(1);\n }\n\n propertyName = otherCasePropertyName;\n if (response[propertyName] === undefined) {\n propertyName = propertyName.toLowerCase();\n }\n if (response[propertyName] === undefined) {\n propertyName = propertyName.toUpperCase();\n }\n }\n return response[propertyName];\n }\n}\n","import {\n Component,\n Input,\n OnInit,\n} from '@angular/core';\n\nimport { I18nService } from '../../abstractions/i18n.service';\n\n@Component({\n selector: 'app-callout',\n templateUrl: 'callout.component.html',\n})\nexport class CalloutComponent implements OnInit {\n @Input() type = 'info';\n @Input() icon: string;\n @Input() title: string;\n @Input() clickable: boolean;\n\n calloutStyle: string;\n\n constructor(private i18nService: I18nService) { }\n\n ngOnInit() {\n this.calloutStyle = this.type;\n\n if (this.type === 'warning' || this.type === 'danger') {\n if (this.type === 'danger') {\n this.calloutStyle = 'danger';\n }\n if (this.title === undefined) {\n this.title = this.i18nService.t('warning');\n }\n if (this.icon === undefined) {\n this.icon = 'fa-warning';\n }\n } else if (this.type === 'error') {\n this.calloutStyle = 'danger';\n if (this.title === undefined) {\n this.title = this.i18nService.t('error');\n }\n if (this.icon === undefined) {\n this.icon = 'fa-bolt';\n }\n } else if (this.type === 'tip') {\n this.calloutStyle = 'success';\n if (this.title === undefined) {\n this.title = this.i18nService.t('tip');\n }\n if (this.icon === undefined) {\n this.icon = 'fa-lightbulb-o';\n }\n }\n }\n}\n","

\n

\n \n {{title}}\n

\n \n
\n","import * as papa from 'papaparse';\n\nimport { LogService } from '../abstractions/log.service';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CipherView } from '../models/view/cipherView';\nimport { CollectionView } from '../models/view/collectionView';\nimport { LoginUriView } from '../models/view/loginUriView';\n\nimport { Utils } from '../misc/utils';\n\nimport { FieldView } from '../models/view/fieldView';\nimport { FolderView } from '../models/view/folderView';\nimport { LoginView } from '../models/view/loginView';\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nimport { CipherType } from '../enums/cipherType';\nimport { FieldType } from '../enums/fieldType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nimport { ConsoleLogService } from '../services/consoleLog.service';\n\nexport abstract class BaseImporter {\n organizationId: string = null;\n\n protected logService: LogService = new ConsoleLogService(false);\n\n protected newLineRegex = /(?:\\r\\n|\\r|\\n)/;\n\n protected passwordFieldNames = [\n 'password', 'pass word', 'passphrase', 'pass phrase',\n 'pass', 'code', 'code word', 'codeword',\n 'secret', 'secret word', 'personpwd',\n 'key', 'keyword', 'key word', 'keyphrase', 'key phrase',\n 'form_pw', 'wppassword', 'pin', 'pwd', 'pw', 'pword', 'passwd',\n 'p', 'serial', 'serial#', 'license key', 'reg #',\n\n // Non-English names\n 'passwort',\n ];\n\n protected usernameFieldNames = [\n 'user', 'name', 'user name', 'username', 'login name',\n 'email', 'e-mail', 'id', 'userid', 'user id',\n 'login', 'form_loginname', 'wpname', 'mail',\n 'loginid', 'login id', 'log', 'personlogin',\n 'first name', 'last name', 'card#', 'account #',\n 'member', 'member #',\n\n // Non-English names\n 'nom', 'benutzername',\n ];\n\n protected notesFieldNames = [\n 'note', 'notes', 'comment', 'comments', 'memo',\n 'description', 'free form', 'freeform',\n 'free text', 'freetext', 'free',\n\n // Non-English names\n 'kommentar',\n ];\n\n protected uriFieldNames: string[] = [\n 'url', 'hyper link', 'hyperlink', 'link',\n 'host', 'hostname', 'host name', 'server', 'address',\n 'hyper ref', 'href', 'web', 'website', 'web site', 'site',\n 'web-site', 'uri',\n\n // Non-English names\n 'ort', 'adresse',\n ];\n\n protected parseCsvOptions = {\n encoding: 'UTF-8',\n skipEmptyLines: false,\n };\n\n protected get organization() {\n return this.organizationId != null;\n }\n\n protected parseXml(data: string): Document {\n const parser = new DOMParser();\n const doc = parser.parseFromString(data, 'application/xml');\n return doc != null && doc.querySelector('parsererror') == null ? doc : null;\n }\n\n protected parseCsv(data: string, header: boolean, options: any = {}): any[] {\n const parseOptions = Object.assign({ header: header }, this.parseCsvOptions, options);\n data = this.splitNewLine(data).join('\\n').trim();\n const result = papa.parse(data, parseOptions);\n if (result.errors != null && result.errors.length > 0) {\n result.errors.forEach(e => {\n if (e.row != null) {\n // tslint:disable-next-line\n this.logService.warning('Error parsing row ' + e.row + ': ' + e.message);\n }\n });\n }\n return result.data && result.data.length > 0 ? result.data : null;\n }\n\n protected parseSingleRowCsv(rowData: string) {\n if (this.isNullOrWhitespace(rowData)) {\n return null;\n }\n const parsedRow = this.parseCsv(rowData, false);\n if (parsedRow != null && parsedRow.length > 0 && parsedRow[0].length > 0) {\n return parsedRow[0];\n }\n return null;\n }\n\n protected makeUriArray(uri: string | string[]): LoginUriView[] {\n if (uri == null) {\n return null;\n }\n\n if (typeof uri === 'string') {\n const loginUri = new LoginUriView();\n loginUri.uri = this.fixUri(uri);\n if (this.isNullOrWhitespace(loginUri.uri)) {\n return null;\n }\n loginUri.match = null;\n return [loginUri];\n }\n\n if (uri.length > 0) {\n const returnArr: LoginUriView[] = [];\n uri.forEach(u => {\n const loginUri = new LoginUriView();\n loginUri.uri = this.fixUri(u);\n if (this.isNullOrWhitespace(loginUri.uri)) {\n return;\n }\n loginUri.match = null;\n returnArr.push(loginUri);\n });\n return returnArr.length === 0 ? null : returnArr;\n }\n\n return null;\n }\n\n protected fixUri(uri: string) {\n if (uri == null) {\n return null;\n }\n uri = uri.trim();\n if (uri.indexOf('://') === -1 && uri.indexOf('.') >= 0) {\n uri = 'http://' + uri;\n }\n if (uri.length > 1000) {\n return uri.substring(0, 1000);\n }\n return uri;\n }\n\n protected nameFromUrl(url: string) {\n const hostname = Utils.getHostname(url);\n if (this.isNullOrWhitespace(hostname)) {\n return null;\n }\n return hostname.startsWith('www.') ? hostname.replace('www.', '') : hostname;\n }\n\n protected isNullOrWhitespace(str: string): boolean {\n return Utils.isNullOrWhitespace(str);\n }\n\n protected getValueOrDefault(str: string, defaultValue: string = null): string {\n if (this.isNullOrWhitespace(str)) {\n return defaultValue;\n }\n return str;\n }\n\n protected splitNewLine(str: string): string[] {\n return str.split(this.newLineRegex);\n }\n\n // ref https://stackoverflow.com/a/5911300\n protected getCardBrand(cardNum: string) {\n if (this.isNullOrWhitespace(cardNum)) {\n return null;\n }\n\n // Visa\n let re = new RegExp('^4');\n if (cardNum.match(re) != null) {\n return 'Visa';\n }\n\n // Mastercard\n // Updated for Mastercard 2017 BINs expansion\n if (/^(5[1-5][0-9]{14}|2(22[1-9][0-9]{12}|2[3-9][0-9]{13}|[3-6][0-9]{14}|7[0-1][0-9]{13}|720[0-9]{12}))$/\n .test(cardNum)) {\n return 'Mastercard';\n }\n\n // AMEX\n re = new RegExp('^3[47]');\n if (cardNum.match(re) != null) {\n return 'Amex';\n }\n\n // Discover\n re = new RegExp('^(6011|622(12[6-9]|1[3-9][0-9]|[2-8][0-9]{2}|9[0-1][0-9]|92[0-5]|64[4-9])|65)');\n if (cardNum.match(re) != null) {\n return 'Discover';\n }\n\n // Diners\n re = new RegExp('^36');\n if (cardNum.match(re) != null) {\n return 'Diners Club';\n }\n\n // Diners - Carte Blanche\n re = new RegExp('^30[0-5]');\n if (cardNum.match(re) != null) {\n return 'Diners Club';\n }\n\n // JCB\n re = new RegExp('^35(2[89]|[3-8][0-9])');\n if (cardNum.match(re) != null) {\n return 'JCB';\n }\n\n // Visa Electron\n re = new RegExp('^(4026|417500|4508|4844|491(3|7))');\n if (cardNum.match(re) != null) {\n return 'Visa';\n }\n\n return null;\n }\n\n protected setCardExpiration(cipher: CipherView, expiration: string): boolean {\n if (!this.isNullOrWhitespace(expiration)) {\n const parts = expiration.split('/');\n if (parts.length === 2) {\n let month: string = null;\n let year: string = null;\n if (parts[0].length === 1 || parts[0].length === 2) {\n month = parts[0];\n if (month.length === 2 && month[0] === '0') {\n month = month.substr(1, 1);\n }\n }\n if (parts[1].length === 2 || parts[1].length === 4) {\n year = month.length === 2 ? '20' + parts[1] : parts[1];\n }\n if (month != null && year != null) {\n cipher.card.expMonth = month;\n cipher.card.expYear = year;\n return true;\n }\n }\n }\n return false;\n }\n\n protected moveFoldersToCollections(result: ImportResult) {\n result.folderRelationships.forEach(r => result.collectionRelationships.push(r));\n result.collections = result.folders.map(f => {\n const collection = new CollectionView();\n collection.name = f.name;\n return collection;\n });\n result.folderRelationships = [];\n result.folders = [];\n }\n\n protected querySelectorDirectChild(parentEl: Element, query: string) {\n const els = this.querySelectorAllDirectChild(parentEl, query);\n return els.length === 0 ? null : els[0];\n }\n\n protected querySelectorAllDirectChild(parentEl: Element, query: string) {\n return Array.from(parentEl.querySelectorAll(query)).filter(el => el.parentNode === parentEl);\n }\n\n protected initLoginCipher() {\n const cipher = new CipherView();\n cipher.favorite = false;\n cipher.notes = '';\n cipher.fields = [];\n cipher.login = new LoginView();\n cipher.type = CipherType.Login;\n return cipher;\n }\n\n protected cleanupCipher(cipher: CipherView) {\n if (cipher == null) {\n return;\n }\n if (cipher.type !== CipherType.Login) {\n cipher.login = null;\n }\n if (this.isNullOrWhitespace(cipher.name)) {\n cipher.name = '--';\n }\n if (this.isNullOrWhitespace(cipher.notes)) {\n cipher.notes = null;\n } else {\n cipher.notes = cipher.notes.trim();\n }\n if (cipher.fields != null && cipher.fields.length === 0) {\n cipher.fields = null;\n }\n }\n\n protected processKvp(cipher: CipherView, key: string, value: string, type: FieldType = FieldType.Text) {\n if (this.isNullOrWhitespace(value)) {\n return;\n }\n if (this.isNullOrWhitespace(key)) {\n key = '';\n }\n if (value.length > 200 || value.trim().search(this.newLineRegex) > -1) {\n if (cipher.notes == null) {\n cipher.notes = '';\n }\n cipher.notes += (key + ': ' + this.splitNewLine(value).join('\\n') + '\\n');\n } else {\n if (cipher.fields == null) {\n cipher.fields = [];\n }\n const field = new FieldView();\n field.type = type;\n field.name = key;\n field.value = value;\n cipher.fields.push(field);\n }\n }\n\n protected processFolder(result: ImportResult, folderName: string) {\n let folderIndex = result.folders.length;\n const hasFolder = !this.isNullOrWhitespace(folderName);\n let addFolder = hasFolder;\n\n if (hasFolder) {\n for (let i = 0; i < result.folders.length; i++) {\n if (result.folders[i].name === folderName) {\n addFolder = false;\n folderIndex = i;\n break;\n }\n }\n }\n\n if (addFolder) {\n const f = new FolderView();\n f.name = folderName;\n result.folders.push(f);\n }\n if (hasFolder) {\n result.folderRelationships.push([result.ciphers.length, folderIndex]);\n }\n }\n\n protected convertToNoteIfNeeded(cipher: CipherView) {\n if (cipher.type === CipherType.Login && this.isNullOrWhitespace(cipher.login.username) &&\n this.isNullOrWhitespace(cipher.login.password) &&\n (cipher.login.uris == null || cipher.login.uris.length === 0)) {\n cipher.type = CipherType.SecureNote;\n cipher.secureNote = new SecureNoteView();\n cipher.secureNote.type = SecureNoteType.Generic;\n }\n }\n}\n","import { CipherView } from '../view/cipherView';\nimport { CollectionView } from '../view/collectionView';\nimport { FolderView } from '../view/folderView';\n\nexport class ImportResult {\n success = false;\n errorMessage: string;\n ciphers: CipherView[] = [];\n folders: FolderView[] = [];\n folderRelationships: [number, number][] = [];\n collections: CollectionView[] = [];\n collectionRelationships: [number, number][] = [];\n}\n","import * as tldjs from 'tldjs';\n\nimport { I18nService } from '../abstractions/i18n.service';\n\n// tslint:disable-next-line\nconst nodeURL = typeof window === 'undefined' ? require('url') : null;\n\nexport class Utils {\n static inited = false;\n static isNativeScript = false;\n static isNode = false;\n static isBrowser = true;\n static isMobileBrowser = false;\n static isAppleMobileBrowser = false;\n static global: any = null;\n static tldEndingRegex = /.*\\.(com|net|org|edu|uk|gov|ca|de|jp|fr|au|ru|ch|io|es|us|co|xyz|info|ly|mil)$/;\n\n static init() {\n if (Utils.inited) {\n return;\n }\n\n Utils.inited = true;\n Utils.isNode = typeof process !== 'undefined' && (process as any).release != null &&\n (process as any).release.name === 'node';\n Utils.isBrowser = typeof window !== 'undefined';\n Utils.isNativeScript = !Utils.isNode && !Utils.isBrowser;\n Utils.isMobileBrowser = Utils.isBrowser && this.isMobile(window);\n Utils.isAppleMobileBrowser = Utils.isBrowser && this.isAppleMobile(window);\n Utils.global = Utils.isNativeScript ? global : (Utils.isNode && !Utils.isBrowser ? global : window);\n }\n\n static fromB64ToArray(str: string): Uint8Array {\n if (Utils.isNode || Utils.isNativeScript) {\n return new Uint8Array(Buffer.from(str, 'base64'));\n } else {\n const binaryString = window.atob(str);\n const bytes = new Uint8Array(binaryString.length);\n for (let i = 0; i < binaryString.length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes;\n }\n }\n\n static fromUrlB64ToArray(str: string): Uint8Array {\n return Utils.fromB64ToArray(Utils.fromUrlB64ToB64(str));\n }\n\n static fromHexToArray(str: string): Uint8Array {\n if (Utils.isNode || Utils.isNativeScript) {\n return new Uint8Array(Buffer.from(str, 'hex'));\n } else {\n const bytes = new Uint8Array(str.length / 2);\n for (let i = 0; i < str.length; i += 2) {\n bytes[i / 2] = parseInt(str.substr(i, 2), 16);\n }\n return bytes;\n }\n }\n\n static fromUtf8ToArray(str: string): Uint8Array {\n if (Utils.isNode || Utils.isNativeScript) {\n return new Uint8Array(Buffer.from(str, 'utf8'));\n } else {\n const strUtf8 = unescape(encodeURIComponent(str));\n const arr = new Uint8Array(strUtf8.length);\n for (let i = 0; i < strUtf8.length; i++) {\n arr[i] = strUtf8.charCodeAt(i);\n }\n return arr;\n }\n }\n\n static fromByteStringToArray(str: string): Uint8Array {\n const arr = new Uint8Array(str.length);\n for (let i = 0; i < str.length; i++) {\n arr[i] = str.charCodeAt(i);\n }\n return arr;\n }\n\n static fromBufferToB64(buffer: ArrayBuffer): string {\n if (Utils.isNode || Utils.isNativeScript) {\n return Buffer.from(buffer).toString('base64');\n } else {\n let binary = '';\n const bytes = new Uint8Array(buffer);\n for (let i = 0; i < bytes.byteLength; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return window.btoa(binary);\n }\n }\n\n static fromBufferToUrlB64(buffer: ArrayBuffer): string {\n return Utils.fromB64toUrlB64(Utils.fromBufferToB64(buffer));\n }\n\n static fromB64toUrlB64(b64Str: string) {\n return b64Str.replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/=/g, '');\n }\n\n static fromBufferToUtf8(buffer: ArrayBuffer): string {\n if (Utils.isNode || Utils.isNativeScript) {\n return Buffer.from(buffer).toString('utf8');\n } else {\n const bytes = new Uint8Array(buffer);\n const encodedString = String.fromCharCode.apply(null, bytes);\n return decodeURIComponent(escape(encodedString));\n }\n }\n\n static fromBufferToByteString(buffer: ArrayBuffer): string {\n return String.fromCharCode.apply(null, new Uint8Array(buffer));\n }\n\n // ref: https://stackoverflow.com/a/40031979/1090359\n static fromBufferToHex(buffer: ArrayBuffer): string {\n if (Utils.isNode || Utils.isNativeScript) {\n return Buffer.from(buffer).toString('hex');\n } else {\n const bytes = new Uint8Array(buffer);\n return Array.prototype.map.call(bytes, (x: number) => ('00' + x.toString(16)).slice(-2)).join('');\n }\n }\n\n static fromUrlB64ToB64(urlB64Str: string): string {\n let output = urlB64Str.replace(/-/g, '+').replace(/_/g, '/');\n switch (output.length % 4) {\n case 0:\n break;\n case 2:\n output += '==';\n break;\n case 3:\n output += '=';\n break;\n default:\n throw new Error('Illegal base64url string!');\n }\n\n return output;\n }\n\n static fromUrlB64ToUtf8(urlB64Str: string): string {\n return Utils.fromB64ToUtf8(Utils.fromUrlB64ToB64(urlB64Str));\n }\n\n static fromUtf8ToB64(utfStr: string): string {\n if (Utils.isNode || Utils.isNativeScript) {\n return Buffer.from(utfStr, 'utf8').toString('base64');\n } else {\n return decodeURIComponent(escape(window.btoa(utfStr)));\n }\n }\n\n static fromB64ToUtf8(b64Str: string): string {\n if (Utils.isNode || Utils.isNativeScript) {\n return Buffer.from(b64Str, 'base64').toString('utf8');\n } else {\n return decodeURIComponent(escape(window.atob(b64Str)));\n }\n }\n\n // ref: http://stackoverflow.com/a/2117523/1090359\n static newGuid(): string {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\n // tslint:disable-next-line\n const r = Math.random() * 16 | 0;\n // tslint:disable-next-line\n const v = c === 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n }\n\n static isGuid(id: string) {\n return RegExp(/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/, 'i').test(id);\n }\n\n static getHostname(uriString: string): string {\n const url = Utils.getUrl(uriString);\n try {\n return url != null && url.hostname !== '' ? url.hostname : null;\n } catch {\n return null;\n }\n }\n\n static getHost(uriString: string): string {\n const url = Utils.getUrl(uriString);\n try {\n return url != null && url.host !== '' ? url.host : null;\n } catch {\n return null;\n }\n }\n\n static getDomain(uriString: string): string {\n if (uriString == null) {\n return null;\n }\n\n uriString = uriString.trim();\n if (uriString === '') {\n return null;\n }\n\n if (uriString.startsWith('data:')) {\n return null;\n }\n\n let httpUrl = uriString.startsWith('http://') || uriString.startsWith('https://');\n if (!httpUrl && uriString.indexOf('://') < 0 && Utils.tldEndingRegex.test(uriString)) {\n uriString = 'http://' + uriString;\n httpUrl = true;\n }\n\n if (httpUrl) {\n try {\n const url = Utils.getUrlObject(uriString);\n if (url.hostname === 'localhost' || Utils.validIpAddress(url.hostname)) {\n return url.hostname;\n }\n\n const urlDomain = tldjs != null && tldjs.getDomain != null ? tldjs.getDomain(url.hostname) : null;\n return urlDomain != null ? urlDomain : url.hostname;\n } catch (e) { }\n }\n\n try {\n const domain = tldjs != null && tldjs.getDomain != null ? tldjs.getDomain(uriString) : null;\n\n if (domain != null) {\n return domain;\n }\n } catch {\n return null;\n }\n\n return null;\n }\n\n static getQueryParams(uriString: string): Map {\n const url = Utils.getUrl(uriString);\n if (url == null || url.search == null || url.search === '') {\n return null;\n }\n const map = new Map();\n const pairs = (url.search[0] === '?' ? url.search.substr(1) : url.search).split('&');\n pairs.forEach(pair => {\n const parts = pair.split('=');\n if (parts.length < 1) {\n return;\n }\n map.set(decodeURIComponent(parts[0]).toLowerCase(), parts[1] == null ? '' : decodeURIComponent(parts[1]));\n });\n return map;\n }\n\n static getSortFunction(i18nService: I18nService, prop: string) {\n return (a: any, b: any) => {\n if (a[prop] == null && b[prop] != null) {\n return -1;\n }\n if (a[prop] != null && b[prop] == null) {\n return 1;\n }\n if (a[prop] == null && b[prop] == null) {\n return 0;\n }\n\n return i18nService.collator ? i18nService.collator.compare(a[prop], b[prop]) :\n a[prop].localeCompare(b[prop]);\n };\n }\n\n static isNullOrWhitespace(str: string): boolean {\n return str == null || typeof str !== 'string' || str.trim() === '';\n }\n\n static nameOf(name: string & keyof T) {\n return name;\n }\n\n static assign(target: T, source: Partial): T {\n return Object.assign(target, source);\n }\n\n static getUrl(uriString: string): URL {\n if (uriString == null) {\n return null;\n }\n\n uriString = uriString.trim();\n if (uriString === '') {\n return null;\n }\n\n let url = Utils.getUrlObject(uriString);\n if (url == null) {\n const hasHttpProtocol = uriString.indexOf('http://') === 0 || uriString.indexOf('https://') === 0;\n if (!hasHttpProtocol && uriString.indexOf('.') > -1) {\n url = Utils.getUrlObject('http://' + uriString);\n }\n }\n return url;\n }\n\n private static validIpAddress(ipString: string): boolean {\n // tslint:disable-next-line\n const ipRegex = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;\n return ipRegex.test(ipString);\n }\n\n private static isMobile(win: Window) {\n let mobile = false;\n (a => {\n // tslint:disable-next-line\n if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.substr(0, 4))) {\n mobile = true;\n }\n })(win.navigator.userAgent || win.navigator.vendor || (win as any).opera);\n return mobile || win.navigator.userAgent.match(/iPad/i) != null;\n }\n\n private static isAppleMobile(win: Window) {\n return win.navigator.userAgent.match(/iPhone/i) != null || win.navigator.userAgent.match(/iPad/i) != null;\n }\n\n private static getUrlObject(uriString: string): URL {\n try {\n if (nodeURL != null) {\n return nodeURL.URL ? new nodeURL.URL(uriString) : nodeURL.parse(uriString);\n } else if (typeof URL === 'function') {\n return new URL(uriString);\n } else if (window != null) {\n const hasProtocol = uriString.indexOf('://') > -1;\n if (!hasProtocol && uriString.indexOf('.') > -1) {\n uriString = 'http://' + uriString;\n } else if (!hasProtocol) {\n return null;\n }\n const anchor = window.document.createElement('a');\n anchor.href = uriString;\n return anchor as any;\n }\n } catch (e) { }\n\n return null;\n }\n}\n\nUtils.init();\n","import { GeneratedPasswordHistory } from '../models/domain/generatedPasswordHistory';\nimport { PasswordGeneratorPolicyOptions } from '../models/domain/passwordGeneratorPolicyOptions';\n\nexport abstract class PasswordGenerationService {\n generatePassword: (options: any) => Promise;\n generatePassphrase: (options: any) => Promise;\n getOptions: () => Promise<[any, PasswordGeneratorPolicyOptions]>;\n enforcePasswordGeneratorPoliciesOnOptions: (options: any) => Promise<[any, PasswordGeneratorPolicyOptions]>;\n getPasswordGeneratorPolicyOptions: () => Promise;\n saveOptions: (options: any) => Promise;\n getHistory: () => Promise;\n addHistory: (password: string) => Promise;\n clear: () => Promise;\n passwordStrength: (password: string, userInputs?: string[]) => zxcvbn.ZXCVBNResult;\n normalizeOptions: (options: any, enforcedPolicyOptions: PasswordGeneratorPolicyOptions) => void;\n}\n","import {\n Directive,\n HostListener,\n} from '@angular/core';\n\n@Directive({\n selector: '[appStopClick]',\n})\nexport class StopClickDirective {\n @HostListener('click', ['$event']) onClick($event: MouseEvent) {\n $event.preventDefault();\n }\n}\n","export abstract class StateService {\n get: (key: string) => Promise;\n save: (key: string, obj: any) => Promise;\n remove: (key: string) => Promise;\n purge: () => Promise;\n}\n","export enum CipherType {\n Login = 1,\n SecureNote = 2,\n Card = 3,\n Identity = 4,\n}\n","import { CollectionData } from '../models/data/collectionData';\n\nimport { Collection } from '../models/domain/collection';\nimport { TreeNode } from '../models/domain/treeNode';\n\nimport { CollectionView } from '../models/view/collectionView';\n\nexport abstract class CollectionService {\n decryptedCollectionCache: CollectionView[];\n\n clearCache: () => void;\n encrypt: (model: CollectionView) => Promise;\n decryptMany: (collections: Collection[]) => Promise;\n get: (id: string) => Promise;\n getAll: () => Promise;\n getAllDecrypted: () => Promise;\n getAllNested: (collections?: CollectionView[]) => Promise[]>;\n getNested: (id: string) => Promise>;\n upsert: (collection: CollectionData | CollectionData[]) => Promise;\n replace: (collections: { [id: string]: CollectionData; }) => Promise;\n clear: (userId: string) => Promise;\n delete: (id: string | string[]) => Promise;\n}\n","export abstract class StorageService {\n get: (key: string) => Promise;\n save: (key: string, obj: any) => Promise;\n remove: (key: string) => Promise;\n}\n","import { PolicyData } from '../models/data/policyData';\n\nimport { MasterPasswordPolicyOptions } from '../models/domain/masterPasswordPolicyOptions';\nimport { Policy } from '../models/domain/policy';\n\nimport { PolicyType } from '../enums/policyType';\n\nexport abstract class PolicyService {\n policyCache: Policy[];\n\n clearCache: () => void;\n getAll: (type?: PolicyType) => Promise;\n replace: (policies: { [id: string]: PolicyData; }) => Promise;\n clear: (userId: string) => Promise;\n getMasterPasswordPolicyOptions: (policies?: Policy[]) => Promise;\n evaluateMasterPassword: (passwordStrength: number, newPassword: string,\n enforcedPolicyOptions?: MasterPasswordPolicyOptions) => boolean;\n}\n","import {\n Directive,\n ElementRef,\n Input,\n Renderer2,\n} from '@angular/core';\n\n@Directive({\n selector: '[appInputVerbatim]',\n})\nexport class InputVerbatimDirective {\n @Input() set appInputVerbatim(condition: boolean | string) {\n this.disableComplete = condition === '' || condition === true;\n }\n\n private disableComplete: boolean;\n\n constructor(private el: ElementRef, private renderer: Renderer2) { }\n\n ngOnInit() {\n if (this.disableComplete && !this.el.nativeElement.hasAttribute('autocomplete')) {\n this.renderer.setAttribute(this.el.nativeElement, 'autocomplete', 'off');\n }\n if (!this.el.nativeElement.hasAttribute('autocapitalize')) {\n this.renderer.setAttribute(this.el.nativeElement, 'autocapitalize', 'none');\n }\n if (!this.el.nativeElement.hasAttribute('autocorrect')) {\n this.renderer.setAttribute(this.el.nativeElement, 'autocorrect', 'none');\n }\n if (!this.el.nativeElement.hasAttribute('spellcheck')) {\n this.renderer.setAttribute(this.el.nativeElement, 'spellcheck', 'false');\n }\n if (!this.el.nativeElement.hasAttribute('inputmode')) {\n this.renderer.setAttribute(this.el.nativeElement, 'inputmode', 'verbatim');\n }\n }\n}\n","import { FolderData } from '../models/data/folderData';\n\nimport { Folder } from '../models/domain/folder';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\nimport { TreeNode } from '../models/domain/treeNode';\n\nimport { FolderView } from '../models/view/folderView';\n\nexport abstract class FolderService {\n decryptedFolderCache: FolderView[];\n\n clearCache: () => void;\n encrypt: (model: FolderView, key?: SymmetricCryptoKey) => Promise;\n get: (id: string) => Promise;\n getAll: () => Promise;\n getAllDecrypted: () => Promise;\n getAllNested: () => Promise[]>;\n getNested: (id: string) => Promise>;\n saveWithServer: (folder: Folder) => Promise;\n upsert: (folder: FolderData | FolderData[]) => Promise;\n replace: (folders: { [id: string]: FolderData; }) => Promise;\n clear: (userId: string) => Promise;\n delete: (id: string | string[]) => Promise;\n deleteWithServer: (id: string) => Promise;\n}\n","import {\n Directive,\n HostListener,\n} from '@angular/core';\n\n@Directive({\n selector: '[appStopProp]',\n})\nexport class StopPropDirective {\n @HostListener('click', ['$event']) onClick($event: MouseEvent) {\n $event.stopPropagation();\n }\n}\n","import { TwoFactorProviderType } from '../enums/twoFactorProviderType';\n\nimport { AuthResult } from '../models/domain/authResult';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nexport abstract class AuthService {\n email: string;\n masterPasswordHash: string;\n code: string;\n codeVerifier: string;\n ssoRedirectUrl: string;\n clientId: string;\n clientSecret: string;\n twoFactorProvidersData: Map;\n selectedTwoFactorProviderType: TwoFactorProviderType;\n\n logIn: (email: string, masterPassword: string) => Promise;\n logInSso: (code: string, codeVerifier: string, redirectUrl: string) => Promise;\n logInApiKey: (clientId: string, clientSecret: string) => Promise;\n logInTwoFactor: (twoFactorProvider: TwoFactorProviderType, twoFactorToken: string,\n remember?: boolean) => Promise;\n logInComplete: (email: string, masterPassword: string, twoFactorProvider: TwoFactorProviderType,\n twoFactorToken: string, remember?: boolean) => Promise;\n logInSsoComplete: (code: string, codeVerifier: string, redirectUrl: string,\n twoFactorProvider: TwoFactorProviderType, twoFactorToken: string, remember?: boolean) => Promise;\n logInApiKeyComplete: (clientId: string, clientSecret: string, twoFactorProvider: TwoFactorProviderType,\n twoFactorToken: string, remember?: boolean) => Promise;\n logOut: (callback: Function) => void;\n getSupportedTwoFactorProviders: (win: Window) => any[];\n getDefaultTwoFactorProvider: (webAuthnSupported: boolean) => TwoFactorProviderType;\n makePreloginKey: (masterPassword: string, email: string) => Promise;\n authingWithApiKey: () => boolean;\n authingWithSso: () => boolean;\n authingWithPassword: () => boolean;\n}\n","import {\n SyncCipherNotification,\n SyncFolderNotification,\n SyncSendNotification,\n} from '../models/response/notificationResponse';\n\nexport abstract class SyncService {\n syncInProgress: boolean;\n\n getLastSync: () => Promise;\n setLastSync: (date: Date) => Promise;\n fullSync: (forceSync: boolean, allowThrowOnError?: boolean) => Promise;\n syncUpsertFolder: (notification: SyncFolderNotification, isEdit: boolean) => Promise;\n syncDeleteFolder: (notification: SyncFolderNotification) => Promise;\n syncUpsertCipher: (notification: SyncCipherNotification, isEdit: boolean) => Promise;\n syncDeleteCipher: (notification: SyncFolderNotification) => Promise;\n syncUpsertSend: (notification: SyncSendNotification, isEdit: boolean) => Promise;\n syncDeleteSend: (notification: SyncSendNotification) => Promise;\n}\n","export abstract class EnvironmentService {\n baseUrl: string;\n webVaultUrl: string;\n apiUrl: string;\n identityUrl: string;\n iconsUrl: string;\n notificationsUrl: string;\n eventsUrl: string;\n enterpriseUrl: string;\n\n getWebVaultUrl: () => string;\n setUrlsFromStorage: () => Promise;\n setUrls: (urls: any) => Promise;\n}\n","import {\n Directive,\n ElementRef,\n Input,\n} from '@angular/core';\n\nimport { Utils } from '../../misc/utils';\n\n@Directive({\n selector: '[appAutofocus]',\n})\nexport class AutofocusDirective {\n @Input() set appAutofocus(condition: boolean | string) {\n this.autofocus = condition === '' || condition === true;\n }\n\n private autofocus: boolean;\n\n constructor(private el: ElementRef) { }\n\n ngOnInit() {\n if (!Utils.isMobileBrowser && this.autofocus) {\n this.el.nativeElement.focus();\n }\n }\n}\n","export class ConstantsService {\n static readonly environmentUrlsKey: string = 'environmentUrls';\n static readonly disableGaKey: string = 'disableGa';\n static readonly disableAddLoginNotificationKey: string = 'disableAddLoginNotification';\n static readonly disableChangedPasswordNotificationKey: string = 'disableChangedPasswordNotification';\n static readonly disableContextMenuItemKey: string = 'disableContextMenuItem';\n static readonly disableFaviconKey: string = 'disableFavicon';\n static readonly disableBadgeCounterKey: string = 'disableBadgeCounter';\n static readonly disableAutoTotpCopyKey: string = 'disableAutoTotpCopy';\n static readonly enableAutoFillOnPageLoadKey: string = 'enableAutoFillOnPageLoad';\n static readonly vaultTimeoutKey: string = 'lockOption';\n static readonly vaultTimeoutActionKey: string = 'vaultTimeoutAction';\n static readonly lastActiveKey: string = 'lastActive';\n static readonly neverDomainsKey: string = 'neverDomains';\n static readonly installedVersionKey: string = 'installedVersion';\n static readonly localeKey: string = 'locale';\n static readonly themeKey: string = 'theme';\n static readonly collapsedGroupingsKey: string = 'collapsedGroupings';\n static readonly autoConfirmFingerprints: string = 'autoConfirmFingerprints';\n static readonly dontShowCardsCurrentTab: string = 'dontShowCardsCurrentTab';\n static readonly dontShowIdentitiesCurrentTab: string = 'dontShowIdentitiesCurrentTab';\n static readonly defaultUriMatch: string = 'defaultUriMatch';\n static readonly pinProtectedKey: string = 'pinProtectedKey';\n static readonly protectedPin: string = 'protectedPin';\n static readonly clearClipboardKey: string = 'clearClipboardKey';\n static readonly eventCollectionKey: string = 'eventCollection';\n static readonly ssoCodeVerifierKey: string = 'ssoCodeVerifier';\n static readonly ssoStateKey: string = 'ssoState';\n static readonly biometricUnlockKey: string = 'biometric';\n static readonly biometricText: string = 'biometricText';\n static readonly biometricAwaitingAcceptance: string = 'biometricAwaitingAcceptance';\n static readonly biometricFingerprintValidated: string = 'biometricFingerprintValidated';\n\n readonly environmentUrlsKey: string = ConstantsService.environmentUrlsKey;\n readonly disableGaKey: string = ConstantsService.disableGaKey;\n readonly disableAddLoginNotificationKey: string = ConstantsService.disableAddLoginNotificationKey;\n readonly disableContextMenuItemKey: string = ConstantsService.disableContextMenuItemKey;\n readonly disableFaviconKey: string = ConstantsService.disableFaviconKey;\n readonly disableBadgeCounterKey: string = ConstantsService.disableBadgeCounterKey;\n readonly disableAutoTotpCopyKey: string = ConstantsService.disableAutoTotpCopyKey;\n readonly enableAutoFillOnPageLoadKey: string = ConstantsService.enableAutoFillOnPageLoadKey;\n readonly vaultTimeoutKey: string = ConstantsService.vaultTimeoutKey;\n readonly vaultTimeoutActionKey: string = ConstantsService.vaultTimeoutActionKey;\n readonly lastActiveKey: string = ConstantsService.lastActiveKey;\n readonly neverDomainsKey: string = ConstantsService.neverDomainsKey;\n readonly installedVersionKey: string = ConstantsService.installedVersionKey;\n readonly localeKey: string = ConstantsService.localeKey;\n readonly themeKey: string = ConstantsService.themeKey;\n readonly collapsedGroupingsKey: string = ConstantsService.collapsedGroupingsKey;\n readonly autoConfirmFingerprints: string = ConstantsService.autoConfirmFingerprints;\n readonly dontShowCardsCurrentTab: string = ConstantsService.dontShowCardsCurrentTab;\n readonly dontShowIdentitiesCurrentTab: string = ConstantsService.dontShowIdentitiesCurrentTab;\n readonly defaultUriMatch: string = ConstantsService.defaultUriMatch;\n readonly pinProtectedKey: string = ConstantsService.pinProtectedKey;\n readonly protectedPin: string = ConstantsService.protectedPin;\n readonly clearClipboardKey: string = ConstantsService.clearClipboardKey;\n readonly eventCollectionKey: string = ConstantsService.eventCollectionKey;\n readonly ssoCodeVerifierKey: string = ConstantsService.ssoCodeVerifierKey;\n readonly ssoStateKey: string = ConstantsService.ssoStateKey;\n readonly biometricUnlockKey: string = ConstantsService.biometricUnlockKey;\n readonly biometricText: string = ConstantsService.biometricText;\n readonly biometricAwaitingAcceptance: string = ConstantsService.biometricAwaitingAcceptance;\n readonly biometricFingerprintValidated: string = ConstantsService.biometricFingerprintValidated;\n}\n","import { EventType } from '../enums/eventType';\n\nexport abstract class EventService {\n collect: (eventType: EventType, cipherId?: string, uploadImmediately?: boolean) => Promise;\n uploadEvents: () => Promise;\n clearEvents: () => Promise;\n}\n","export class PasswordVerificationRequest {\n masterPasswordHash: string;\n}\n","import { CipherView } from '../models/view/cipherView';\nimport { SendView } from '../models/view/sendView';\n\nexport abstract class SearchService {\n indexedEntityId?: string = null;\n clearIndex: () => void;\n isSearchable: (query: string) => boolean;\n indexCiphers: (indexedEntityGuid?: string, ciphersToIndex?: CipherView[]) => Promise;\n searchCiphers: (query: string,\n filter?: ((cipher: CipherView) => boolean) | (((cipher: CipherView) => boolean)[]),\n ciphers?: CipherView[]) => Promise;\n searchCiphersBasic: (ciphers: CipherView[], query: string, deleted?: boolean) => CipherView[];\n searchSends: (sends: SendView[], query: string) => SendView[];\n}\n","import { EncString } from './encString';\n\nimport { View } from '../view/view';\n\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport default class Domain {\n protected buildDomainModel(domain: D, dataObj: any, map: any,\n alreadyEncrypted: boolean, notEncList: any[] = []) {\n for (const prop in map) {\n if (!map.hasOwnProperty(prop)) {\n continue;\n }\n\n const objProp = dataObj[(map[prop] || prop)];\n if (alreadyEncrypted === true || notEncList.indexOf(prop) > -1) {\n (domain as any)[prop] = objProp ? objProp : null;\n } else {\n (domain as any)[prop] = objProp ? new EncString(objProp) : null;\n }\n }\n }\n protected buildDataModel(domain: D, dataObj: any, map: any, notEncStringList: any[] = []) {\n for (const prop in map) {\n if (!map.hasOwnProperty(prop)) {\n continue;\n }\n\n const objProp = (domain as any)[(map[prop] || prop)];\n if (notEncStringList.indexOf(prop) > -1) {\n (dataObj as any)[prop] = objProp != null ? objProp : null;\n } else {\n (dataObj as any)[prop] = objProp != null ? (objProp as EncString).encryptedString : null;\n }\n }\n }\n\n protected async decryptObj(viewModel: T, map: any, orgId: string,\n key: SymmetricCryptoKey = null): Promise {\n const promises = [];\n const self: any = this;\n\n for (const prop in map) {\n if (!map.hasOwnProperty(prop)) {\n continue;\n }\n\n // tslint:disable-next-line\n (function (theProp) {\n const p = Promise.resolve().then(() => {\n const mapProp = map[theProp] || theProp;\n if (self[mapProp]) {\n return self[mapProp].decrypt(orgId, key);\n }\n return null;\n }).then((val: any) => {\n (viewModel as any)[theProp] = val;\n });\n promises.push(p);\n })(prop);\n }\n\n await Promise.all(promises);\n return viewModel;\n }\n}\n","import * as jq from 'jquery';\n\nimport {\n Component,\n ComponentFactoryResolver,\n Type,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { ModalComponent as BaseModalComponent } from 'jslib/angular/components/modal.component';\nimport { Utils } from 'jslib/misc/utils';\n\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\n\n@Component({\n selector: 'app-modal',\n template: ``,\n})\nexport class ModalComponent extends BaseModalComponent {\n el: any = null;\n\n constructor(componentFactoryResolver: ComponentFactoryResolver, messagingService: MessagingService) {\n super(componentFactoryResolver, messagingService);\n }\n\n ngOnDestroy() { /* Nothing */ }\n\n show(type: Type, parentContainer: ViewContainerRef, fade: boolean = true,\n setComponentParameters: (component: T) => void = null): T {\n this.parentContainer = parentContainer;\n this.fade = fade;\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(type);\n const componentRef = this.container.createComponent(factory);\n if (setComponentParameters != null) {\n setComponentParameters(componentRef.instance);\n }\n\n const modals = Array.from(document.querySelectorAll('.modal'));\n if (modals.length > 0) {\n this.el = jq(modals[0]);\n this.el.modal('show');\n\n this.el.on('show.bs.modal', () => {\n this.onShow.emit();\n this.messagingService.send('modalShow');\n });\n this.el.on('shown.bs.modal', () => {\n this.onShown.emit();\n this.messagingService.send('modalShown');\n if (!Utils.isMobileBrowser) {\n this.el.find('*[appAutoFocus]').focus();\n }\n });\n this.el.on('hide.bs.modal', () => {\n this.onClose.emit();\n this.messagingService.send('modalClose');\n });\n this.el.on('hidden.bs.modal', () => {\n this.onClosed.emit();\n this.messagingService.send('modalClosed');\n if (this.parentContainer != null) {\n this.parentContainer.clear();\n }\n });\n }\n\n return componentRef.instance;\n }\n\n close() {\n if (this.el != null) {\n this.el.modal('hide');\n }\n }\n}\n","import { BreachAccountResponse } from '../models/response/breachAccountResponse';\n\nexport abstract class AuditService {\n passwordLeaked: (password: string) => Promise;\n breachedAccounts: (username: string) => Promise;\n}\n","import { View } from './view';\n\nimport { Card } from '../domain/card';\n\nexport class CardView implements View {\n cardholderName: string = null;\n expMonth: string = null;\n expYear: string = null;\n code: string = null;\n\n // tslint:disable\n private _brand: string = null;\n private _number: string = null;\n private _subTitle: string = null;\n // tslint:enable\n\n constructor(c?: Card) {\n // ctor\n }\n\n get maskedCode(): string {\n return this.code != null ? '•'.repeat(this.code.length) : null;\n }\n\n get brand(): string {\n return this._brand;\n }\n set brand(value: string) {\n this._brand = value;\n this._subTitle = null;\n }\n\n get number(): string {\n return this._number;\n }\n set number(value: string) {\n this._number = value;\n this._subTitle = null;\n }\n\n get subTitle(): string {\n if (this._subTitle == null) {\n this._subTitle = this.brand;\n if (this.number != null && this.number.length >= 4) {\n if (this._subTitle != null && this._subTitle !== '') {\n this._subTitle += ', ';\n } else {\n this._subTitle = '';\n }\n\n // Show last 5 on amex, last 4 for all others\n const count = this.number.length >= 5 && this.number.match(new RegExp('^3[47]')) != null ? 5 : 4;\n this._subTitle += ('*' + this.number.substr(this.number.length - count));\n }\n }\n return this._subTitle;\n }\n\n get expiration(): string {\n if (!this.expMonth && !this.expYear) {\n return null;\n }\n\n let exp = this.expMonth != null ? ('0' + this.expMonth).slice(-2) : '__';\n exp += (' / ' + (this.expYear != null ? this.formatYear(this.expYear) : '____'));\n return exp;\n }\n\n private formatYear(year: string): string {\n return year.length === 2 ? '20' + year : year;\n }\n}\n","import { EncString } from '../models/domain/encString';\n\nexport abstract class VaultTimeoutService {\n biometricLocked: boolean;\n pinProtectedKey: EncString;\n isLocked: () => Promise;\n checkVaultTimeout: () => Promise;\n lock: (allowSoftLock?: boolean) => Promise;\n logOut: () => Promise;\n setVaultTimeoutOptions: (vaultTimeout: number, vaultTimeoutAction: string) => Promise;\n isPinLockSet: () => Promise<[boolean, boolean]>;\n isBiometricLockSet: () => Promise;\n clear: () => Promise;\n}\n","import { SecureNoteType } from '../../enums/secureNoteType';\n\nimport { View } from './view';\n\nimport { SecureNote } from '../domain/secureNote';\n\nexport class SecureNoteView implements View {\n type: SecureNoteType = null;\n\n constructor(n?: SecureNote) {\n if (!n) {\n return;\n }\n\n this.type = n.type;\n }\n\n get subTitle(): string {\n return null;\n }\n}\n","export abstract class TokenService {\n token: string;\n decodedToken: any;\n refreshToken: string;\n setTokens: (accessToken: string, refreshToken: string) => Promise;\n setToken: (token: string) => Promise;\n getToken: () => Promise;\n setRefreshToken: (refreshToken: string) => Promise;\n getRefreshToken: () => Promise;\n toggleTokens: () => Promise;\n setTwoFactorToken: (token: string, email: string) => Promise;\n getTwoFactorToken: (email: string) => Promise;\n clearTwoFactorToken: (email: string) => Promise;\n clearToken: () => Promise;\n decodeToken: () => any;\n getTokenExpirationDate: () => Date;\n tokenSecondsRemaining: (offsetSeconds?: number) => number;\n tokenNeedsRefresh: (minutes?: number) => boolean;\n getUserId: () => string;\n getEmail: () => string;\n getEmailVerified: () => boolean;\n getName: () => string;\n getPremium: () => boolean;\n getIssuer: () => string;\n}\n","import { DecryptParameters } from '../models/domain/decryptParameters';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nexport abstract class CryptoFunctionService {\n pbkdf2: (password: string | ArrayBuffer, salt: string | ArrayBuffer, algorithm: 'sha256' | 'sha512',\n iterations: number) => Promise;\n hkdf: (ikm: ArrayBuffer, salt: string | ArrayBuffer, info: string | ArrayBuffer,\n outputByteSize: number, algorithm: 'sha256' | 'sha512') => Promise;\n hkdfExpand: (prk: ArrayBuffer, info: string | ArrayBuffer, outputByteSize: number,\n algorithm: 'sha256' | 'sha512') => Promise;\n hash: (value: string | ArrayBuffer, algorithm: 'sha1' | 'sha256' | 'sha512' | 'md5') => Promise;\n hmac: (value: ArrayBuffer, key: ArrayBuffer, algorithm: 'sha1' | 'sha256' | 'sha512') => Promise;\n compare: (a: ArrayBuffer, b: ArrayBuffer) => Promise;\n hmacFast: (value: ArrayBuffer | string, key: ArrayBuffer | string, algorithm: 'sha1' | 'sha256' | 'sha512') =>\n Promise;\n compareFast: (a: ArrayBuffer | string, b: ArrayBuffer | string) => Promise;\n aesEncrypt: (data: ArrayBuffer, iv: ArrayBuffer, key: ArrayBuffer) => Promise;\n aesDecryptFastParameters: (data: string, iv: string, mac: string, key: SymmetricCryptoKey) =>\n DecryptParameters;\n aesDecryptFast: (parameters: DecryptParameters) => Promise;\n aesDecrypt: (data: ArrayBuffer, iv: ArrayBuffer, key: ArrayBuffer) => Promise;\n rsaEncrypt: (data: ArrayBuffer, publicKey: ArrayBuffer, algorithm: 'sha1' | 'sha256') => Promise;\n rsaDecrypt: (data: ArrayBuffer, privateKey: ArrayBuffer, algorithm: 'sha1' | 'sha256') => Promise;\n rsaExtractPublicKey: (privateKey: ArrayBuffer) => Promise;\n rsaGenerateKeyPair: (length: 1024 | 2048 | 4096) => Promise<[ArrayBuffer, ArrayBuffer]>;\n randomBytes: (length: number) => Promise;\n}\n","import { EncryptionType } from '../../enums/encryptionType';\n\nimport { CryptoService } from '../../abstractions/crypto.service';\n\nimport { Utils } from '../../misc/utils';\n\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class EncString {\n encryptedString?: string;\n encryptionType?: EncryptionType;\n decryptedValue?: string;\n data?: string;\n iv?: string;\n mac?: string;\n\n constructor(encryptedStringOrType: string | EncryptionType, data?: string, iv?: string, mac?: string) {\n if (data != null) {\n // data and header\n const encType = encryptedStringOrType as EncryptionType;\n\n if (iv != null) {\n this.encryptedString = encType + '.' + iv + '|' + data;\n } else {\n this.encryptedString = encType + '.' + data;\n }\n\n // mac\n if (mac != null) {\n this.encryptedString += ('|' + mac);\n }\n\n this.encryptionType = encType;\n this.data = data;\n this.iv = iv;\n this.mac = mac;\n\n return;\n }\n\n this.encryptedString = encryptedStringOrType as string;\n if (!this.encryptedString) {\n return;\n }\n\n const headerPieces = this.encryptedString.split('.');\n let encPieces: string[] = null;\n\n if (headerPieces.length === 2) {\n try {\n this.encryptionType = parseInt(headerPieces[0], null);\n encPieces = headerPieces[1].split('|');\n } catch (e) {\n return;\n }\n } else {\n encPieces = this.encryptedString.split('|');\n this.encryptionType = encPieces.length === 3 ? EncryptionType.AesCbc128_HmacSha256_B64 :\n EncryptionType.AesCbc256_B64;\n }\n\n switch (this.encryptionType) {\n case EncryptionType.AesCbc128_HmacSha256_B64:\n case EncryptionType.AesCbc256_HmacSha256_B64:\n if (encPieces.length !== 3) {\n return;\n }\n\n this.iv = encPieces[0];\n this.data = encPieces[1];\n this.mac = encPieces[2];\n break;\n case EncryptionType.AesCbc256_B64:\n if (encPieces.length !== 2) {\n return;\n }\n\n this.iv = encPieces[0];\n this.data = encPieces[1];\n break;\n case EncryptionType.Rsa2048_OaepSha256_B64:\n case EncryptionType.Rsa2048_OaepSha1_B64:\n if (encPieces.length !== 1) {\n return;\n }\n\n this.data = encPieces[0];\n break;\n default:\n return;\n }\n }\n\n async decrypt(orgId: string, key: SymmetricCryptoKey = null): Promise {\n if (this.decryptedValue != null) {\n return this.decryptedValue;\n }\n\n let cryptoService: CryptoService;\n const containerService = (Utils.global as any).bitwardenContainerService;\n if (containerService) {\n cryptoService = containerService.getCryptoService();\n } else {\n throw new Error('global bitwardenContainerService not initialized.');\n }\n\n try {\n if (key == null) {\n key = await cryptoService.getOrgKey(orgId);\n }\n this.decryptedValue = await cryptoService.decryptToUtf8(this, key);\n } catch (e) {\n this.decryptedValue = '[error: cannot decrypt]';\n }\n return this.decryptedValue;\n }\n}\n","export enum SecureNoteType {\n Generic = 0,\n}\n","import {\n Component,\n Input,\n OnChanges,\n} from '@angular/core';\n\nimport { CipherType } from '../../enums/cipherType';\n\nimport { CipherView } from '../../models/view/cipherView';\n\nimport { EnvironmentService } from '../../abstractions/environment.service';\nimport { StateService } from '../../abstractions/state.service';\n\nimport { ConstantsService } from '../../services/constants.service';\n\nimport { Utils } from '../../misc/utils';\n\nconst IconMap: any = {\n 'fa-globe': String.fromCharCode(0xf0ac),\n 'fa-sticky-note-o': String.fromCharCode(0xf24a),\n 'fa-id-card-o': String.fromCharCode(0xf2c3),\n 'fa-credit-card': String.fromCharCode(0xf09d),\n 'fa-android': String.fromCharCode(0xf17b),\n 'fa-apple': String.fromCharCode(0xf179),\n};\n\n@Component({\n selector: 'app-vault-icon',\n templateUrl: 'icon.component.html',\n})\nexport class IconComponent implements OnChanges {\n @Input() cipher: CipherView;\n icon: string;\n image: string;\n fallbackImage: string;\n imageEnabled: boolean;\n\n private iconsUrl: string;\n\n constructor(environmentService: EnvironmentService, protected stateService: StateService) {\n this.iconsUrl = environmentService.iconsUrl;\n if (!this.iconsUrl) {\n if (environmentService.baseUrl) {\n this.iconsUrl = environmentService.baseUrl + '/icons';\n } else {\n this.iconsUrl = 'https://icons.bitwarden.net';\n }\n }\n }\n\n async ngOnChanges() {\n this.imageEnabled = !(await this.stateService.get(ConstantsService.disableFaviconKey));\n this.load();\n }\n\n get iconCode(): string {\n return IconMap[this.icon];\n }\n\n protected load() {\n switch (this.cipher.type) {\n case CipherType.Login:\n this.icon = 'fa-globe';\n this.setLoginIcon();\n break;\n case CipherType.SecureNote:\n this.icon = 'fa-sticky-note-o';\n break;\n case CipherType.Card:\n this.icon = 'fa-credit-card';\n break;\n case CipherType.Identity:\n this.icon = 'fa-id-card-o';\n break;\n default:\n break;\n }\n }\n\n private setLoginIcon() {\n if (this.cipher.login.uri) {\n let hostnameUri = this.cipher.login.uri;\n let isWebsite = false;\n\n if (hostnameUri.indexOf('androidapp://') === 0) {\n this.icon = 'fa-android';\n this.image = null;\n } else if (hostnameUri.indexOf('iosapp://') === 0) {\n this.icon = 'fa-apple';\n this.image = null;\n } else if (this.imageEnabled && hostnameUri.indexOf('://') === -1 && hostnameUri.indexOf('.') > -1) {\n hostnameUri = 'http://' + hostnameUri;\n isWebsite = true;\n } else if (this.imageEnabled) {\n isWebsite = hostnameUri.indexOf('http') === 0 && hostnameUri.indexOf('.') > -1;\n }\n\n if (this.imageEnabled && isWebsite) {\n try {\n this.image = this.iconsUrl + '/' + Utils.getHostname(hostnameUri) + '/icon.png';\n this.fallbackImage = 'images/fa-globe.png';\n } catch (e) { }\n }\n } else {\n this.image = null;\n }\n }\n}\n","
\n \"\"\n \n
\n","import { Injectable } from '@angular/core';\n\nimport { BroadcasterService as BaseBroadcasterService } from '../../services/broadcaster.service';\n\n@Injectable()\nexport class BroadcasterService extends BaseBroadcasterService {\n}\n","export enum TwoFactorProviderType {\n Authenticator = 0,\n Email = 1,\n Duo = 2,\n Yubikey = 3,\n U2f = 4,\n Remember = 5,\n OrganizationDuo = 6,\n WebAuthn = 7,\n}\n","export abstract class TotpService {\n getCode: (key: string) => Promise;\n getTimeInterval: (key: string) => number;\n isAutoCopyEnabled: () => Promise;\n}\n","import {\n Component,\n Input,\n OnInit,\n} from '@angular/core';\n\nimport { PaymentMethodType } from 'jslib/enums/paymentMethodType';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { WebConstants } from '../../services/webConstants';\n\nconst StripeElementStyle = {\n base: {\n color: '#333333',\n fontFamily: '\"Open Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif, ' +\n '\"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"',\n fontSize: '14px',\n fontSmoothing: 'antialiased',\n },\n invalid: {\n color: '#333333',\n },\n};\n\nconst StripeElementClasses = {\n focus: 'is-focused',\n empty: 'is-empty',\n invalid: 'is-invalid',\n};\n\n@Component({\n selector: 'app-payment',\n templateUrl: 'payment.component.html',\n})\nexport class PaymentComponent implements OnInit {\n @Input() showMethods = true;\n @Input() showOptions = true;\n @Input() method = PaymentMethodType.Card;\n @Input() hideBank = false;\n @Input() hidePaypal = false;\n @Input() hideCredit = false;\n\n bank: any = {\n routing_number: null,\n account_number: null,\n account_holder_name: null,\n account_holder_type: '',\n currency: 'USD',\n country: 'US',\n };\n\n paymentMethodType = PaymentMethodType;\n\n private btScript: HTMLScriptElement;\n private btInstance: any = null;\n private stripeScript: HTMLScriptElement;\n private stripe: any = null;\n private stripeElements: any = null;\n private stripeCardNumberElement: any = null;\n private stripeCardExpiryElement: any = null;\n private stripeCardCvcElement: any = null;\n\n constructor(private platformUtilsService: PlatformUtilsService, private apiService: ApiService) {\n this.stripeScript = window.document.createElement('script');\n this.stripeScript.src = 'https://js.stripe.com/v3/';\n this.stripeScript.async = true;\n this.stripeScript.onload = () => {\n this.stripe = (window as any).Stripe(this.platformUtilsService.isDev() ?\n WebConstants.stripeTestKey : WebConstants.stripeLiveKey);\n this.stripeElements = this.stripe.elements();\n this.setStripeElement();\n };\n this.btScript = window.document.createElement('script');\n this.btScript.src = 'scripts/dropin.js';\n this.btScript.async = true;\n }\n\n ngOnInit() {\n if (!this.showOptions) {\n this.hidePaypal = this.method !== PaymentMethodType.PayPal;\n this.hideBank = this.method !== PaymentMethodType.BankAccount;\n this.hideCredit = this.method !== PaymentMethodType.Credit;\n }\n window.document.head.appendChild(this.stripeScript);\n if (!this.hidePaypal) {\n window.document.head.appendChild(this.btScript);\n }\n }\n\n ngOnDestroy() {\n window.document.head.removeChild(this.stripeScript);\n window.setTimeout(() => {\n Array.from(window.document.querySelectorAll('iframe')).forEach(el => {\n if (el.src != null && el.src.indexOf('stripe') > -1) {\n try {\n window.document.body.removeChild(el);\n } catch { }\n }\n });\n }, 500);\n if (!this.hidePaypal) {\n window.document.head.removeChild(this.btScript);\n window.setTimeout(() => {\n Array.from(window.document.head.querySelectorAll('script')).forEach(el => {\n if (el.src != null && el.src.indexOf('paypal') > -1) {\n try {\n window.document.head.removeChild(el);\n } catch { }\n }\n });\n const btStylesheet = window.document.head.querySelector('#braintree-dropin-stylesheet');\n if (btStylesheet != null) {\n try {\n window.document.head.removeChild(btStylesheet);\n } catch { }\n }\n }, 500);\n }\n }\n\n changeMethod() {\n this.btInstance = null;\n\n if (this.method === PaymentMethodType.PayPal) {\n window.setTimeout(() => {\n (window as any).braintree.dropin.create({\n authorization: this.platformUtilsService.isDev() ?\n WebConstants.btSandboxKey : WebConstants.btProductionKey,\n container: '#bt-dropin-container',\n paymentOptionPriority: ['paypal'],\n paypal: {\n flow: 'vault',\n buttonStyle: {\n label: 'pay',\n size: 'medium',\n shape: 'pill',\n color: 'blue',\n },\n },\n }, (createErr: any, instance: any) => {\n if (createErr != null) {\n // tslint:disable-next-line\n console.error(createErr);\n return;\n }\n this.btInstance = instance;\n });\n }, 250);\n } else {\n this.setStripeElement();\n }\n }\n\n createPaymentToken(): Promise<[string, PaymentMethodType]> {\n return new Promise((resolve, reject) => {\n if (this.method === PaymentMethodType.Credit) {\n resolve([null, this.method]);\n } else if (this.method === PaymentMethodType.PayPal) {\n this.btInstance.requestPaymentMethod().then((payload: any) => {\n resolve([payload.nonce, this.method]);\n }).catch((err: any) => {\n reject(err.message);\n });\n } else if (this.method === PaymentMethodType.Card || this.method === PaymentMethodType.BankAccount) {\n if (this.method === PaymentMethodType.Card) {\n this.apiService.postSetupPayment().then(clientSecret =>\n this.stripe.handleCardSetup(clientSecret, this.stripeCardNumberElement))\n .then((result: any) => {\n if (result.error) {\n reject(result.error.message);\n } else if (result.setupIntent && result.setupIntent.status === 'succeeded') {\n resolve([result.setupIntent.payment_method, this.method]);\n } else {\n reject();\n }\n });\n } else {\n this.stripe.createToken('bank_account', this.bank).then((result: any) => {\n if (result.error) {\n reject(result.error.message);\n } else if (result.token && result.token.id != null) {\n resolve([result.token.id, this.method]);\n } else {\n reject();\n }\n });\n }\n }\n });\n }\n\n handleStripeCardPayment(clientSecret: string, successCallback: () => Promise): Promise {\n return new Promise((resolve, reject) => {\n if (this.showMethods && this.stripeCardNumberElement == null) {\n reject();\n return;\n }\n const handleCardPayment = () => this.showMethods ?\n this.stripe.handleCardSetup(clientSecret, this.stripeCardNumberElement) :\n this.stripe.handleCardSetup(clientSecret);\n return handleCardPayment().then(async (result: any) => {\n if (result.error) {\n reject(result.error.message);\n } else if (result.paymentIntent && result.paymentIntent.status === 'succeeded') {\n if (successCallback != null) {\n await successCallback();\n }\n resolve();\n } else {\n reject();\n }\n });\n });\n }\n\n private setStripeElement() {\n window.setTimeout(() => {\n if (this.showMethods && this.method === PaymentMethodType.Card) {\n if (this.stripeCardNumberElement == null) {\n this.stripeCardNumberElement = this.stripeElements.create('cardNumber', {\n style: StripeElementStyle,\n classes: StripeElementClasses,\n placeholder: '',\n });\n }\n if (this.stripeCardExpiryElement == null) {\n this.stripeCardExpiryElement = this.stripeElements.create('cardExpiry', {\n style: StripeElementStyle,\n classes: StripeElementClasses,\n });\n }\n if (this.stripeCardCvcElement == null) {\n this.stripeCardCvcElement = this.stripeElements.create('cardCvc', {\n style: StripeElementStyle,\n classes: StripeElementClasses,\n placeholder: '',\n });\n }\n this.stripeCardNumberElement.mount('#stripe-card-number-element');\n this.stripeCardExpiryElement.mount('#stripe-card-expiry-element');\n this.stripeCardCvcElement.mount('#stripe-card-cvc-element');\n }\n }, 50);\n }\n}\n","
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n\n
\n
\n \n
\n
\n
\n \"Visa,\n
\n
\n \n
\n
\n
\n
\n \n \n \n \n
\n
\n
\n
\n
\n\n \n {{'verifyBankAccountInitialDesc' | i18n}} {{'verifyBankAccountFailureWarning' | i18n}}\n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n\n
\n
\n {{'paypalClickSubmit' | i18n}}\n
\n
\n\n \n {{'makeSureEnoughCredit' | i18n}}\n \n\n","export enum FieldType {\n Text = 0,\n Hidden = 1,\n Boolean = 2,\n}\n","import { View } from './view';\n\nimport { Folder } from '../domain/folder';\nimport { ITreeNodeObject } from '../domain/treeNode';\n\nexport class FolderView implements View, ITreeNodeObject {\n id: string = null;\n name: string = null;\n revisionDate: Date = null;\n\n constructor(f?: Folder) {\n if (!f) {\n return;\n }\n\n this.id = f.id;\n this.revisionDate = f.revisionDate;\n }\n}\n","import {\n Component,\n Input,\n OnChanges,\n OnInit,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport { CryptoFunctionService } from 'jslib/abstractions/cryptoFunction.service';\nimport { StateService } from 'jslib/abstractions/state.service';\n\nimport { Utils } from 'jslib/misc/utils';\n\n@Component({\n selector: 'app-avatar',\n template: '',\n})\nexport class AvatarComponent implements OnChanges, OnInit {\n @Input() data: string;\n @Input() email: string;\n @Input() size = 45;\n @Input() charCount = 2;\n @Input() textColor = '#ffffff';\n @Input() fontSize = 20;\n @Input() fontWeight = 300;\n @Input() dynamic = false;\n @Input() circle = false;\n\n src: string;\n\n constructor(public sanitizer: DomSanitizer, private cryptoFunctionService: CryptoFunctionService,\n private stateService: StateService) { }\n\n ngOnInit() {\n if (!this.dynamic) {\n this.generate();\n }\n }\n\n ngOnChanges() {\n if (this.dynamic) {\n this.generate();\n }\n }\n\n private async generate() {\n const enableGravatars = await this.stateService.get('enableGravatars');\n if (enableGravatars && this.email != null) {\n const hashBytes = await this.cryptoFunctionService.hash(this.email.toLowerCase().trim(), 'md5');\n const hash = Utils.fromBufferToHex(hashBytes).toLowerCase();\n this.src = 'https://www.gravatar.com/avatar/' + hash + '?s=' + this.size + '&r=pg&d=retro';\n } else {\n let chars: string = null;\n const upperData = this.data.toUpperCase();\n\n if (this.charCount > 1) {\n chars = this.getFirstLetters(upperData, this.charCount);\n }\n if (chars == null) {\n chars = upperData.substr(0, this.charCount);\n }\n\n const charObj = this.getCharText(chars);\n const color = this.stringToColor(upperData);\n const svg = this.getSvg(this.size, color);\n svg.appendChild(charObj);\n const html = window.document.createElement('div').appendChild(svg).outerHTML;\n const svgHtml = window.btoa(unescape(encodeURIComponent(html)));\n this.src = 'data:image/svg+xml;base64,' + svgHtml;\n }\n }\n\n private stringToColor(str: string): string {\n let hash = 0;\n for (let i = 0; i < str.length; i++) {\n // tslint:disable-next-line\n hash = str.charCodeAt(i) + ((hash << 5) - hash);\n }\n let color = '#';\n for (let i = 0; i < 3; i++) {\n // tslint:disable-next-line\n const value = (hash >> (i * 8)) & 0xFF;\n color += ('00' + value.toString(16)).substr(-2);\n }\n return color;\n }\n\n private getFirstLetters(data: string, count: number): string {\n const parts = data.split(' ');\n if (parts.length > 1) {\n let text = '';\n for (let i = 0; i < count; i++) {\n text += parts[i].substr(0, 1);\n }\n return text;\n }\n return null;\n }\n\n private getSvg(size: number, color: string): HTMLElement {\n const svgTag = window.document.createElement('svg');\n svgTag.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n svgTag.setAttribute('pointer-events', 'none');\n svgTag.setAttribute('width', size.toString());\n svgTag.setAttribute('height', size.toString());\n svgTag.style.backgroundColor = color;\n svgTag.style.width = size + 'px';\n svgTag.style.height = size + 'px';\n return svgTag;\n }\n\n private getCharText(character: string): HTMLElement {\n const textTag = window.document.createElement('text');\n textTag.setAttribute('text-anchor', 'middle');\n textTag.setAttribute('y', '50%');\n textTag.setAttribute('x', '50%');\n textTag.setAttribute('dy', '0.35em');\n textTag.setAttribute('pointer-events', 'auto');\n textTag.setAttribute('fill', this.textColor);\n textTag.setAttribute('font-family', '\"Open Sans\",\"Helvetica Neue\",Helvetica,Arial,' +\n 'sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\"');\n textTag.textContent = character;\n textTag.style.fontWeight = this.fontWeight.toString();\n textTag.style.fontSize = this.fontSize + 'px';\n return textTag;\n }\n}\n","import { CollectionData } from '../data/collectionData';\n\nimport { CollectionView } from '../view/collectionView';\n\nimport Domain from './domainBase';\nimport { EncString } from './encString';\n\nexport class Collection extends Domain {\n id: string;\n organizationId: string;\n name: EncString;\n externalId: string;\n readOnly: boolean;\n hidePasswords: boolean;\n\n constructor(obj?: CollectionData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.buildDomainModel(this, obj, {\n id: null,\n organizationId: null,\n name: null,\n externalId: null,\n readOnly: null,\n hidePasswords: null,\n }, alreadyEncrypted, ['id', 'organizationId', 'externalId', 'readOnly', 'hidePasswords']);\n }\n\n decrypt(): Promise {\n return this.decryptObj(new CollectionView(this), {\n name: null,\n }, this.organizationId);\n }\n}\n","export enum PolicyType {\n TwoFactorAuthentication = 0, // Requires users to have 2fa enabled\n MasterPassword = 1, // Sets minimum requirements for master password complexity\n PasswordGenerator = 2, // Sets minimum requirements/default type for generated passwords/passphrases\n SingleOrg = 3, // Allows users to only be apart of one organization\n RequireSso = 4, // Requires users to authenticate with SSO\n PersonalOwnership = 5, // Disables personal vault ownership for adding/cloning items\n DisableSend = 6, // Disables the ability to create and edit Bitwarden Sends\n SendOptions = 7, // Sets restrictions or defaults for Bitwarden Sends\n}\n","import {\n Component,\n EventEmitter,\n Output,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { OrganizationTaxInfoUpdateRequest } from 'jslib/models/request/organizationTaxInfoUpdateRequest';\nimport { TaxInfoUpdateRequest } from 'jslib/models/request/taxInfoUpdateRequest';\nimport { TaxRateResponse } from 'jslib/models/response/taxRateResponse';\n\n@Component({\n selector: 'app-tax-info',\n templateUrl: 'tax-info.component.html',\n})\nexport class TaxInfoComponent {\n @Output() onCountryChanged = new EventEmitter();\n\n loading: boolean = true;\n organizationId: string;\n taxInfo: any = {\n taxId: null,\n line1: null,\n line2: null,\n city: null,\n state: null,\n postalCode: null,\n country: 'US',\n includeTaxId: false,\n };\n\n taxRates: TaxRateResponse[];\n\n private pristine: any = {\n taxId: null,\n line1: null,\n line2: null,\n city: null,\n state: null,\n postalCode: null,\n country: 'US',\n includeTaxId: false,\n };\n\n constructor(private apiService: ApiService, private route: ActivatedRoute) { }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n if (this.organizationId) {\n try {\n const taxInfo = await this.apiService.getOrganizationTaxInfo(this.organizationId);\n if (taxInfo) {\n this.taxInfo.taxId = taxInfo.taxId;\n this.taxInfo.state = taxInfo.state;\n this.taxInfo.line1 = taxInfo.line1;\n this.taxInfo.line2 = taxInfo.line2;\n this.taxInfo.city = taxInfo.city;\n this.taxInfo.state = taxInfo.state;\n this.taxInfo.postalCode = taxInfo.postalCode;\n this.taxInfo.country = taxInfo.country || 'US';\n this.taxInfo.includeTaxId = this.taxInfo.country !== 'US' && (\n !!taxInfo.taxId\n || !!taxInfo.line1\n || !!taxInfo.line2\n || !!taxInfo.city\n || !!taxInfo.state);\n }\n } catch { }\n } else {\n const taxInfo = await this.apiService.getTaxInfo();\n if (taxInfo) {\n this.taxInfo.postalCode = taxInfo.postalCode;\n this.taxInfo.country = taxInfo.country || 'US';\n }\n }\n this.pristine = Object.assign({}, this.taxInfo);\n // If not the default (US) then trigger onCountryChanged\n if (this.taxInfo.country !== 'US') {\n this.onCountryChanged.emit();\n }\n });\n\n const taxRates = await this.apiService.getTaxRates();\n this.taxRates = taxRates.data;\n this.loading = false;\n }\n\n get taxRate() {\n if (this.taxRates != null) {\n const localTaxRate = this.taxRates.find(x =>\n x.country === this.taxInfo.country &&\n x.postalCode === this.taxInfo.postalCode\n );\n return localTaxRate?.rate ?? null;\n }\n }\n\n getTaxInfoRequest(): TaxInfoUpdateRequest {\n if (this.organizationId) {\n const request = new OrganizationTaxInfoUpdateRequest();\n request.taxId = this.taxInfo.taxId;\n request.state = this.taxInfo.state;\n request.line1 = this.taxInfo.line1;\n request.line2 = this.taxInfo.line2;\n request.city = this.taxInfo.city;\n request.state = this.taxInfo.state;\n request.postalCode = this.taxInfo.postalCode;\n request.country = this.taxInfo.country;\n return request;\n } else {\n const request = new TaxInfoUpdateRequest();\n request.postalCode = this.taxInfo.postalCode;\n request.country = this.taxInfo.country;\n return request;\n }\n }\n\n submitTaxInfo(): Promise {\n if (!this.hasChanged()) {\n return new Promise(resolve => { resolve(); });\n }\n const request = this.getTaxInfoRequest();\n return this.organizationId ? this.apiService.putOrganizationTaxInfo(this.organizationId,\n request as OrganizationTaxInfoUpdateRequest) : this.apiService.putTaxInfo(request);\n }\n\n changeCountry() {\n if (this.taxInfo.country === 'US') {\n this.taxInfo.includeTaxId = false;\n this.taxInfo.taxId = null;\n this.taxInfo.line1 = null;\n this.taxInfo.line2 = null;\n this.taxInfo.city = null;\n this.taxInfo.state = null;\n }\n this.onCountryChanged.emit();\n }\n\n private hasChanged(): boolean {\n for (const key in this.taxInfo) {\n if (this.pristine.hasOwnProperty(key) && this.pristine[key] !== this.taxInfo[key]) {\n return true;\n }\n }\n return false;\n }\n}\n","
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n","import { CipherType } from '../../enums/cipherType';\n\nimport { Cipher } from '../domain/cipher';\n\nimport { AttachmentView } from './attachmentView';\nimport { CardView } from './cardView';\nimport { FieldView } from './fieldView';\nimport { IdentityView } from './identityView';\nimport { LoginView } from './loginView';\nimport { PasswordHistoryView } from './passwordHistoryView';\nimport { SecureNoteView } from './secureNoteView';\nimport { View } from './view';\n\nexport class CipherView implements View {\n id: string = null;\n organizationId: string = null;\n folderId: string = null;\n name: string = null;\n notes: string = null;\n type: CipherType = null;\n favorite = false;\n organizationUseTotp = false;\n edit = false;\n viewPassword = true;\n localData: any;\n login = new LoginView();\n identity = new IdentityView();\n card = new CardView();\n secureNote = new SecureNoteView();\n attachments: AttachmentView[] = null;\n fields: FieldView[] = null;\n passwordHistory: PasswordHistoryView[] = null;\n collectionIds: string[] = null;\n revisionDate: Date = null;\n deletedDate: Date = null;\n\n constructor(c?: Cipher) {\n if (!c) {\n return;\n }\n\n this.id = c.id;\n this.organizationId = c.organizationId;\n this.folderId = c.folderId;\n this.favorite = c.favorite;\n this.organizationUseTotp = c.organizationUseTotp;\n this.edit = c.edit;\n this.viewPassword = c.viewPassword;\n this.type = c.type;\n this.localData = c.localData;\n this.collectionIds = c.collectionIds;\n this.revisionDate = c.revisionDate;\n this.deletedDate = c.deletedDate;\n }\n\n get subTitle(): string {\n switch (this.type) {\n case CipherType.Login:\n return this.login.subTitle;\n case CipherType.SecureNote:\n return this.secureNote.subTitle;\n case CipherType.Card:\n return this.card.subTitle;\n case CipherType.Identity:\n return this.identity.subTitle;\n default:\n break;\n }\n\n return null;\n }\n\n get hasPasswordHistory(): boolean {\n return this.passwordHistory && this.passwordHistory.length > 0;\n }\n\n get hasAttachments(): boolean {\n return this.attachments && this.attachments.length > 0;\n }\n\n get hasOldAttachments(): boolean {\n if (this.hasAttachments) {\n for (let i = 0; i < this.attachments.length; i++) {\n if (this.attachments[i].key == null) {\n return true;\n }\n }\n }\n return false;\n }\n\n get hasFields(): boolean {\n return this.fields && this.fields.length > 0;\n }\n\n get passwordRevisionDisplayDate(): Date {\n if (this.type !== CipherType.Login || this.login == null) {\n return null;\n } else if (this.login.password == null || this.login.password === '') {\n return null;\n }\n return this.login.passwordRevisionDate;\n }\n\n get isDeleted(): boolean {\n return this.deletedDate != null;\n }\n}\n","import { View } from './view';\n\nimport { Identity } from '../domain/identity';\n\nimport { Utils } from '../../misc/utils';\n\nexport class IdentityView implements View {\n title: string = null;\n middleName: string = null;\n address1: string = null;\n address2: string = null;\n address3: string = null;\n city: string = null;\n state: string = null;\n postalCode: string = null;\n country: string = null;\n company: string = null;\n email: string = null;\n phone: string = null;\n ssn: string = null;\n username: string = null;\n passportNumber: string = null;\n licenseNumber: string = null;\n\n // tslint:disable\n private _firstName: string = null;\n private _lastName: string = null;\n private _subTitle: string = null;\n // tslint:enable\n\n constructor(i?: Identity) {\n // ctor\n }\n\n get firstName(): string {\n return this._firstName;\n }\n set firstName(value: string) {\n this._firstName = value;\n this._subTitle = null;\n }\n\n get lastName(): string {\n return this._lastName;\n }\n set lastName(value: string) {\n this._lastName = value;\n this._subTitle = null;\n }\n\n get subTitle(): string {\n if (this._subTitle == null && (this.firstName != null || this.lastName != null)) {\n this._subTitle = '';\n if (this.firstName != null) {\n this._subTitle = this.firstName;\n }\n if (this.lastName != null) {\n if (this._subTitle !== '') {\n this._subTitle += ' ';\n }\n this._subTitle += this.lastName;\n }\n }\n\n return this._subTitle;\n }\n\n get fullName(): string {\n if (this.title != null || this.firstName != null || this.middleName != null || this.lastName != null) {\n let name = '';\n if (this.title != null) {\n name += (this.title + ' ');\n }\n if (this.firstName != null) {\n name += (this.firstName + ' ');\n }\n if (this.middleName != null) {\n name += (this.middleName + ' ');\n }\n if (this.lastName != null) {\n name += this.lastName;\n }\n return name.trim();\n }\n\n return null;\n }\n\n get fullAddress(): string {\n let address = this.address1;\n if (!Utils.isNullOrWhitespace(this.address2)) {\n if (!Utils.isNullOrWhitespace(address)) {\n address += ', ';\n }\n address += this.address2;\n }\n if (!Utils.isNullOrWhitespace(this.address3)) {\n if (!Utils.isNullOrWhitespace(address)) {\n address += ', ';\n }\n address += this.address3;\n }\n return address;\n }\n\n get fullAddressPart2(): string {\n if (this.city == null && this.state == null && this.postalCode == null) {\n return null;\n }\n const city = this.city || '-';\n const state = this.state;\n const postalCode = this.postalCode || '-';\n let addressPart2 = city;\n if (!Utils.isNullOrWhitespace(state)) {\n addressPart2 += ', ' + state;\n }\n addressPart2 += ', ' + postalCode;\n return addressPart2;\n }\n}\n","import { CollectionDetailsResponse } from '../response/collectionResponse';\n\nexport class CollectionData {\n id: string;\n organizationId: string;\n name: string;\n externalId: string;\n readOnly: boolean;\n\n constructor(response: CollectionDetailsResponse) {\n this.id = response.id;\n this.organizationId = response.organizationId;\n this.name = response.name;\n this.externalId = response.externalId;\n this.readOnly = response.readOnly;\n }\n}\n","import { View } from './view';\n\nimport { Collection } from '../domain/collection';\nimport { ITreeNodeObject } from '../domain/treeNode';\n\nimport { CollectionGroupDetailsResponse } from '../response/collectionResponse';\n\nexport class CollectionView implements View, ITreeNodeObject {\n id: string = null;\n organizationId: string = null;\n name: string = null;\n externalId: string = null;\n readOnly: boolean = null;\n hidePasswords: boolean = null;\n\n constructor(c?: Collection | CollectionGroupDetailsResponse) {\n if (!c) {\n return;\n }\n\n this.id = c.id;\n this.organizationId = c.organizationId;\n this.externalId = c.externalId;\n if (c instanceof Collection) {\n this.readOnly = c.readOnly;\n this.hidePasswords = c.hidePasswords;\n }\n }\n}\n","export enum OrganizationUserStatusType {\n Invited = 0,\n Accepted = 1,\n Confirmed = 2,\n}\n","import { CipherType } from '../../enums/cipherType';\n\nimport { AttachmentData } from './attachmentData';\nimport { CardData } from './cardData';\nimport { FieldData } from './fieldData';\nimport { IdentityData } from './identityData';\nimport { LoginData } from './loginData';\nimport { PasswordHistoryData } from './passwordHistoryData';\nimport { SecureNoteData } from './secureNoteData';\n\nimport { CipherResponse } from '../response/cipherResponse';\n\nexport class CipherData {\n id: string;\n organizationId: string;\n folderId: string;\n userId: string;\n edit: boolean;\n viewPassword: boolean;\n organizationUseTotp: boolean;\n favorite: boolean;\n revisionDate: string;\n type: CipherType;\n sizeName: string;\n name: string;\n notes: string;\n login?: LoginData;\n secureNote?: SecureNoteData;\n card?: CardData;\n identity?: IdentityData;\n fields?: FieldData[];\n attachments?: AttachmentData[];\n passwordHistory?: PasswordHistoryData[];\n collectionIds?: string[];\n deletedDate: string;\n\n constructor(response?: CipherResponse, userId?: string, collectionIds?: string[]) {\n if (response == null) {\n return;\n }\n\n this.id = response.id;\n this.organizationId = response.organizationId;\n this.folderId = response.folderId;\n this.userId = userId;\n this.edit = response.edit;\n this.viewPassword = response.viewPassword;\n this.organizationUseTotp = response.organizationUseTotp;\n this.favorite = response.favorite;\n this.revisionDate = response.revisionDate;\n this.type = response.type;\n this.name = response.name;\n this.notes = response.notes;\n this.collectionIds = collectionIds != null ? collectionIds : response.collectionIds;\n this.deletedDate = response.deletedDate;\n\n switch (this.type) {\n case CipherType.Login:\n this.login = new LoginData(response.login);\n break;\n case CipherType.SecureNote:\n this.secureNote = new SecureNoteData(response.secureNote);\n break;\n case CipherType.Card:\n this.card = new CardData(response.card);\n break;\n case CipherType.Identity:\n this.identity = new IdentityData(response.identity);\n break;\n default:\n break;\n }\n\n if (response.fields != null) {\n this.fields = response.fields.map(f => new FieldData(f));\n }\n if (response.attachments != null) {\n this.attachments = response.attachments.map(a => new AttachmentData(a));\n }\n if (response.passwordHistory != null) {\n this.passwordHistory = response.passwordHistory.map(ph => new PasswordHistoryData(ph));\n }\n }\n}\n","import { LoginUriView } from './loginUriView';\nimport { View } from './view';\n\nimport { Utils } from '../../misc/utils';\nimport { Login } from '../domain/login';\n\nexport class LoginView implements View {\n username: string = null;\n password: string = null;\n passwordRevisionDate?: Date = null;\n totp: string = null;\n uris: LoginUriView[] = null;\n\n constructor(l?: Login) {\n if (!l) {\n return;\n }\n\n this.passwordRevisionDate = l.passwordRevisionDate;\n }\n\n get uri(): string {\n return this.hasUris ? this.uris[0].uri : null;\n }\n\n get maskedPassword(): string {\n return this.password != null ? '••••••••' : null;\n }\n\n get subTitle(): string {\n return this.username;\n }\n\n get canLaunch(): boolean {\n return this.hasUris && this.uris.some(u => u.canLaunch);\n }\n\n get hasTotp(): boolean {\n return !Utils.isNullOrWhitespace(this.totp);\n }\n\n get launchUri(): string {\n if (this.hasUris) {\n const uri = this.uris.find(u => u.canLaunch);\n if (uri != null) {\n return uri.launchUri;\n }\n }\n return null;\n }\n\n get hasUris(): boolean {\n return this.uris != null && this.uris.length > 0;\n }\n}\n","export enum SendType {\n Text = 0,\n File = 1,\n}\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { PasswordVerificationRequest } from 'jslib/models/request/passwordVerificationRequest';\n\n@Component({\n selector: 'app-two-factor-verify',\n templateUrl: 'two-factor-verify.component.html',\n})\nexport class TwoFactorVerifyComponent {\n @Input() type: TwoFactorProviderType;\n @Input() organizationId: string;\n @Output() onAuthed = new EventEmitter();\n\n masterPassword: string;\n formPromise: Promise;\n\n private masterPasswordHash: string;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, private cryptoService: CryptoService) { }\n\n async submit() {\n if (this.masterPassword == null || this.masterPassword === '') {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n const request = new PasswordVerificationRequest();\n request.masterPasswordHash = this.masterPasswordHash =\n await this.cryptoService.hashPassword(this.masterPassword, null);\n\n try {\n switch (this.type) {\n case -1:\n this.formPromise = this.apiService.getTwoFactorRecover(request);\n break;\n case TwoFactorProviderType.Duo:\n case TwoFactorProviderType.OrganizationDuo:\n if (this.organizationId != null) {\n this.formPromise = this.apiService.getTwoFactorOrganizationDuo(this.organizationId, request);\n } else {\n this.formPromise = this.apiService.getTwoFactorDuo(request);\n }\n break;\n case TwoFactorProviderType.Email:\n this.formPromise = this.apiService.getTwoFactorEmail(request);\n break;\n case TwoFactorProviderType.WebAuthn:\n this.formPromise = this.apiService.getTwoFactorWebAuthn(request);\n break;\n case TwoFactorProviderType.Authenticator:\n this.formPromise = this.apiService.getTwoFactorAuthenticator(request);\n break;\n case TwoFactorProviderType.Yubikey:\n this.formPromise = this.apiService.getTwoFactorYubiKey(request);\n break;\n }\n\n const response = await this.formPromise;\n this.onAuthed.emit({\n response: response,\n masterPasswordHash: this.masterPasswordHash,\n });\n } catch { }\n }\n}\n","
\n
\n

{{'twoStepLoginAuthDesc' | i18n}}

\n \n \n
\n
\n \n \n
\n
\n","export abstract class ExportService {\n getExport: (format?: 'csv' | 'json' | 'encrypted_json') => Promise;\n getOrganizationExport: (organizationId: string, format?: 'csv' | 'json' | 'encrypted_json') => Promise;\n getFileName: (prefix?: string, extension?: string) => string;\n}\n","import { CipherType } from '../../enums/cipherType';\n\nimport { CipherData } from '../data/cipherData';\n\nimport { CipherView } from '../view/cipherView';\n\nimport { Attachment } from './attachment';\nimport { Card } from './card';\nimport Domain from './domainBase';\nimport { EncString } from './encString';\nimport { Field } from './field';\nimport { Identity } from './identity';\nimport { Login } from './login';\nimport { Password } from './password';\nimport { SecureNote } from './secureNote';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class Cipher extends Domain {\n id: string;\n organizationId: string;\n folderId: string;\n name: EncString;\n notes: EncString;\n type: CipherType;\n favorite: boolean;\n organizationUseTotp: boolean;\n edit: boolean;\n viewPassword: boolean;\n revisionDate: Date;\n localData: any;\n login: Login;\n identity: Identity;\n card: Card;\n secureNote: SecureNote;\n attachments: Attachment[];\n fields: Field[];\n passwordHistory: Password[];\n collectionIds: string[];\n deletedDate: Date;\n\n constructor(obj?: CipherData, alreadyEncrypted: boolean = false, localData: any = null) {\n super();\n if (obj == null) {\n return;\n }\n\n this.buildDomainModel(this, obj, {\n id: null,\n userId: null,\n organizationId: null,\n folderId: null,\n name: null,\n notes: null,\n }, alreadyEncrypted, ['id', 'userId', 'organizationId', 'folderId']);\n\n this.type = obj.type;\n this.favorite = obj.favorite;\n this.organizationUseTotp = obj.organizationUseTotp;\n this.edit = obj.edit;\n if (obj.viewPassword != null) {\n this.viewPassword = obj.viewPassword;\n } else {\n this.viewPassword = true; // Default for already synced Ciphers without viewPassword\n }\n this.revisionDate = obj.revisionDate != null ? new Date(obj.revisionDate) : null;\n this.collectionIds = obj.collectionIds;\n this.localData = localData;\n this.deletedDate = obj.deletedDate != null ? new Date(obj.deletedDate) : null;\n\n switch (this.type) {\n case CipherType.Login:\n this.login = new Login(obj.login, alreadyEncrypted);\n break;\n case CipherType.SecureNote:\n this.secureNote = new SecureNote(obj.secureNote, alreadyEncrypted);\n break;\n case CipherType.Card:\n this.card = new Card(obj.card, alreadyEncrypted);\n break;\n case CipherType.Identity:\n this.identity = new Identity(obj.identity, alreadyEncrypted);\n break;\n default:\n break;\n }\n\n if (obj.attachments != null) {\n this.attachments = obj.attachments.map(a => new Attachment(a, alreadyEncrypted));\n } else {\n this.attachments = null;\n }\n\n if (obj.fields != null) {\n this.fields = obj.fields.map(f => new Field(f, alreadyEncrypted));\n } else {\n this.fields = null;\n }\n\n if (obj.passwordHistory != null) {\n this.passwordHistory = obj.passwordHistory.map(ph => new Password(ph, alreadyEncrypted));\n } else {\n this.passwordHistory = null;\n }\n }\n\n async decrypt(encKey?: SymmetricCryptoKey): Promise {\n const model = new CipherView(this);\n\n await this.decryptObj(model, {\n name: null,\n notes: null,\n }, this.organizationId, encKey);\n\n switch (this.type) {\n case CipherType.Login:\n model.login = await this.login.decrypt(this.organizationId, encKey);\n break;\n case CipherType.SecureNote:\n model.secureNote = await this.secureNote.decrypt(this.organizationId, encKey);\n break;\n case CipherType.Card:\n model.card = await this.card.decrypt(this.organizationId, encKey);\n break;\n case CipherType.Identity:\n model.identity = await this.identity.decrypt(this.organizationId, encKey);\n break;\n default:\n break;\n }\n\n const orgId = this.organizationId;\n\n if (this.attachments != null && this.attachments.length > 0) {\n const attachments: any[] = [];\n await this.attachments.reduce((promise, attachment) => {\n return promise.then(() => {\n return attachment.decrypt(orgId, encKey);\n }).then(decAttachment => {\n attachments.push(decAttachment);\n });\n }, Promise.resolve());\n model.attachments = attachments;\n }\n\n if (this.fields != null && this.fields.length > 0) {\n const fields: any[] = [];\n await this.fields.reduce((promise, field) => {\n return promise.then(() => {\n return field.decrypt(orgId, encKey);\n }).then(decField => {\n fields.push(decField);\n });\n }, Promise.resolve());\n model.fields = fields;\n }\n\n if (this.passwordHistory != null && this.passwordHistory.length > 0) {\n const passwordHistory: any[] = [];\n await this.passwordHistory.reduce((promise, ph) => {\n return promise.then(() => {\n return ph.decrypt(orgId, encKey);\n }).then(decPh => {\n passwordHistory.push(decPh);\n });\n }, Promise.resolve());\n model.passwordHistory = passwordHistory;\n }\n\n return model;\n }\n\n toCipherData(userId: string): CipherData {\n const c = new CipherData();\n c.id = this.id;\n c.organizationId = this.organizationId;\n c.folderId = this.folderId;\n c.userId = this.organizationId != null ? userId : null;\n c.edit = this.edit;\n c.viewPassword = this.viewPassword;\n c.organizationUseTotp = this.organizationUseTotp;\n c.favorite = this.favorite;\n c.revisionDate = this.revisionDate != null ? this.revisionDate.toISOString() : null;\n c.type = this.type;\n c.collectionIds = this.collectionIds;\n c.deletedDate = this.deletedDate != null ? this.deletedDate.toISOString() : null;\n\n this.buildDataModel(this, c, {\n name: null,\n notes: null,\n });\n\n switch (c.type) {\n case CipherType.Login:\n c.login = this.login.toLoginData();\n break;\n case CipherType.SecureNote:\n c.secureNote = this.secureNote.toSecureNoteData();\n break;\n case CipherType.Card:\n c.card = this.card.toCardData();\n break;\n case CipherType.Identity:\n c.identity = this.identity.toIdentityData();\n break;\n default:\n break;\n }\n\n if (this.fields != null) {\n c.fields = this.fields.map(f => f.toFieldData());\n }\n if (this.attachments != null) {\n c.attachments = this.attachments.map(a => a.toAttachmentData());\n }\n if (this.passwordHistory != null) {\n c.passwordHistory = this.passwordHistory.map(ph => ph.toPasswordHistoryData());\n }\n return c;\n }\n}\n","import { SendData } from '../models/data/sendData';\n\nimport { EncArrayBuffer } from '../models/domain/encArrayBuffer';\nimport { Send } from '../models/domain/send';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nimport { SendView } from '../models/view/sendView';\n\nexport abstract class SendService {\n decryptedSendCache: SendView[];\n\n clearCache: () => void;\n encrypt: (model: SendView, file: File | ArrayBuffer, password: string, key?: SymmetricCryptoKey) => Promise<[Send, EncArrayBuffer]>;\n get: (id: string) => Promise;\n getAll: () => Promise;\n getAllDecrypted: () => Promise;\n saveWithServer: (sendData: [Send, EncArrayBuffer]) => Promise;\n upsert: (send: SendData | SendData[]) => Promise;\n replace: (sends: { [id: string]: SendData; }) => Promise;\n clear: (userId: string) => Promise;\n delete: (id: string | string[]) => Promise;\n deleteWithServer: (id: string) => Promise;\n removePasswordWithServer: (id: string) => Promise;\n}\n","import { FieldType } from '../../enums/fieldType';\n\nimport { View } from './view';\n\nimport { Field } from '../domain/field';\n\nexport class FieldView implements View {\n name: string = null;\n value: string = null;\n type: FieldType = null;\n newField: boolean = false; // Marks if the field is new and hasn't been saved\n showValue: boolean = false;\n\n constructor(f?: Field) {\n if (!f) {\n return;\n }\n\n this.type = f.type;\n }\n\n get maskedValue(): string {\n return this.value != null ? '••••••••' : null;\n }\n}\n","import { CipherType } from '../../enums/cipherType';\n\nimport { Cipher } from '../domain/cipher';\n\nimport { CardApi } from '../api/cardApi';\nimport { FieldApi } from '../api/fieldApi';\nimport { IdentityApi } from '../api/identityApi';\nimport { LoginApi } from '../api/loginApi';\nimport { LoginUriApi } from '../api/loginUriApi';\nimport { SecureNoteApi } from '../api/secureNoteApi';\n\nimport { AttachmentRequest } from './attachmentRequest';\nimport { PasswordHistoryRequest } from './passwordHistoryRequest';\n\nexport class CipherRequest {\n type: CipherType;\n folderId: string;\n organizationId: string;\n name: string;\n notes: string;\n favorite: boolean;\n login: LoginApi;\n secureNote: SecureNoteApi;\n card: CardApi;\n identity: IdentityApi;\n fields: FieldApi[];\n passwordHistory: PasswordHistoryRequest[];\n // Deprecated, remove at some point and rename attachments2 to attachments\n attachments: { [id: string]: string; };\n attachments2: { [id: string]: AttachmentRequest; };\n lastKnownRevisionDate: Date;\n\n constructor(cipher: Cipher) {\n this.type = cipher.type;\n this.folderId = cipher.folderId;\n this.organizationId = cipher.organizationId;\n this.name = cipher.name ? cipher.name.encryptedString : null;\n this.notes = cipher.notes ? cipher.notes.encryptedString : null;\n this.favorite = cipher.favorite;\n this.lastKnownRevisionDate = cipher.revisionDate;\n\n switch (this.type) {\n case CipherType.Login:\n this.login = new LoginApi();\n this.login.uris = null;\n this.login.username = cipher.login.username ? cipher.login.username.encryptedString : null;\n this.login.password = cipher.login.password ? cipher.login.password.encryptedString : null;\n this.login.passwordRevisionDate = cipher.login.passwordRevisionDate != null ?\n cipher.login.passwordRevisionDate.toISOString() : null;\n this.login.totp = cipher.login.totp ? cipher.login.totp.encryptedString : null;\n\n if (cipher.login.uris != null) {\n this.login.uris = cipher.login.uris.map(u => {\n const uri = new LoginUriApi();\n uri.uri = u.uri != null ? u.uri.encryptedString : null;\n uri.match = u.match != null ? u.match : null;\n return uri;\n });\n }\n break;\n case CipherType.SecureNote:\n this.secureNote = new SecureNoteApi();\n this.secureNote.type = cipher.secureNote.type;\n break;\n case CipherType.Card:\n this.card = new CardApi();\n this.card.cardholderName = cipher.card.cardholderName != null ?\n cipher.card.cardholderName.encryptedString : null;\n this.card.brand = cipher.card.brand != null ? cipher.card.brand.encryptedString : null;\n this.card.number = cipher.card.number != null ? cipher.card.number.encryptedString : null;\n this.card.expMonth = cipher.card.expMonth != null ? cipher.card.expMonth.encryptedString : null;\n this.card.expYear = cipher.card.expYear != null ? cipher.card.expYear.encryptedString : null;\n this.card.code = cipher.card.code != null ? cipher.card.code.encryptedString : null;\n break;\n case CipherType.Identity:\n this.identity = new IdentityApi();\n this.identity.title = cipher.identity.title != null ? cipher.identity.title.encryptedString : null;\n this.identity.firstName = cipher.identity.firstName != null ?\n cipher.identity.firstName.encryptedString : null;\n this.identity.middleName = cipher.identity.middleName != null ?\n cipher.identity.middleName.encryptedString : null;\n this.identity.lastName = cipher.identity.lastName != null ?\n cipher.identity.lastName.encryptedString : null;\n this.identity.address1 = cipher.identity.address1 != null ?\n cipher.identity.address1.encryptedString : null;\n this.identity.address2 = cipher.identity.address2 != null ?\n cipher.identity.address2.encryptedString : null;\n this.identity.address3 = cipher.identity.address3 != null ?\n cipher.identity.address3.encryptedString : null;\n this.identity.city = cipher.identity.city != null ? cipher.identity.city.encryptedString : null;\n this.identity.state = cipher.identity.state != null ? cipher.identity.state.encryptedString : null;\n this.identity.postalCode = cipher.identity.postalCode != null ?\n cipher.identity.postalCode.encryptedString : null;\n this.identity.country = cipher.identity.country != null ?\n cipher.identity.country.encryptedString : null;\n this.identity.company = cipher.identity.company != null ?\n cipher.identity.company.encryptedString : null;\n this.identity.email = cipher.identity.email != null ? cipher.identity.email.encryptedString : null;\n this.identity.phone = cipher.identity.phone != null ? cipher.identity.phone.encryptedString : null;\n this.identity.ssn = cipher.identity.ssn != null ? cipher.identity.ssn.encryptedString : null;\n this.identity.username = cipher.identity.username != null ?\n cipher.identity.username.encryptedString : null;\n this.identity.passportNumber = cipher.identity.passportNumber != null ?\n cipher.identity.passportNumber.encryptedString : null;\n this.identity.licenseNumber = cipher.identity.licenseNumber != null ?\n cipher.identity.licenseNumber.encryptedString : null;\n break;\n default:\n break;\n }\n\n if (cipher.fields != null) {\n this.fields = cipher.fields.map(f => {\n const field = new FieldApi();\n field.type = f.type;\n field.name = f.name ? f.name.encryptedString : null;\n field.value = f.value ? f.value.encryptedString : null;\n return field;\n });\n }\n\n if (cipher.passwordHistory != null) {\n this.passwordHistory = [];\n cipher.passwordHistory.forEach(ph => {\n this.passwordHistory.push({\n lastUsedDate: ph.lastUsedDate,\n password: ph.password ? ph.password.encryptedString : null,\n });\n });\n }\n\n if (cipher.attachments != null) {\n this.attachments = {};\n this.attachments2 = {};\n cipher.attachments.forEach(attachment => {\n const fileName = attachment.fileName ? attachment.fileName.encryptedString : null;\n this.attachments[attachment.id] = fileName;\n const attachmentRequest = new AttachmentRequest();\n attachmentRequest.fileName = fileName;\n if (attachment.key != null) {\n attachmentRequest.key = attachment.key.encryptedString;\n }\n this.attachments2[attachment.id] = attachmentRequest;\n });\n }\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class ErrorResponse extends BaseResponse {\n message: string;\n validationErrors: { [key: string]: string[]; };\n statusCode: number;\n\n constructor(response: any, status: number, identityResponse?: boolean) {\n super(response);\n let errorModel = null;\n if (response != null) {\n const responseErrorModel = this.getResponseProperty('ErrorModel');\n if (responseErrorModel && identityResponse) {\n errorModel = responseErrorModel;\n } else {\n errorModel = response;\n }\n }\n\n if (errorModel) {\n this.message = this.getResponseProperty('Message', errorModel);\n this.validationErrors = this.getResponseProperty('ValidationErrors', errorModel);\n } else {\n if (status === 429) {\n this.message = 'Rate limit exceeded. Try again later.';\n }\n }\n this.statusCode = status;\n }\n\n getSingleMessage(): string {\n if (this.validationErrors == null) {\n return this.message;\n }\n for (const key in this.validationErrors) {\n if (!this.validationErrors.hasOwnProperty(key)) {\n continue;\n }\n if (this.validationErrors[key].length) {\n return this.validationErrors[key][0];\n }\n }\n return this.message;\n }\n\n getAllMessages(): string[] {\n const messages: string[] = [];\n if (this.validationErrors == null) {\n return messages;\n }\n for (const key in this.validationErrors) {\n if (!this.validationErrors.hasOwnProperty(key)) {\n continue;\n }\n this.validationErrors[key].forEach((item: string) => {\n let prefix = '';\n if (key.indexOf('[') > -1 && key.indexOf(']') > -1) {\n const lastSep = key.lastIndexOf('.');\n prefix = key.substr(0, lastSep > -1 ? lastSep : key.length) + ': ';\n }\n messages.push(prefix + item);\n });\n }\n return messages;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\nimport { ErrorResponse } from '../../models/response/errorResponse';\n\n@Injectable()\nexport class ValidationService {\n constructor(private i18nService: I18nService, private platformUtilsService: PlatformUtilsService) { }\n\n showError(data: any): string[] {\n const defaultErrorMessage = this.i18nService.t('unexpectedError');\n let errors: string[] = [];\n\n if (data != null && typeof data === 'string') {\n errors.push(data);\n } else if (data == null || typeof data !== 'object') {\n errors.push(defaultErrorMessage);\n } else if (data.validationErrors != null) {\n errors = errors.concat((data as ErrorResponse).getAllMessages());\n } else {\n errors.push(data.message ? data.message : defaultErrorMessage);\n }\n\n if (errors.length === 1) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'), errors[0]);\n } else if (errors.length > 1) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'), errors, {\n timeout: 5000 * errors.length,\n });\n }\n\n return errors;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport {\n ActivatedRoute,\n NavigationEnd,\n Router,\n} from '@angular/router';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\n@Injectable()\nexport class RouterService {\n private previousUrl: string = undefined;\n private currentUrl: string = undefined;\n\n constructor(private router: Router, private activatedRoute: ActivatedRoute,\n private titleService: Title, i18nService: I18nService) {\n this.currentUrl = this.router.url;\n router.events.subscribe(event => {\n if (event instanceof NavigationEnd) {\n this.previousUrl = this.currentUrl;\n this.currentUrl = event.url;\n\n let title = i18nService.t('pageTitle', 'Bitwarden');\n let titleId: string = null;\n let rawTitle: string = null;\n let child = this.activatedRoute.firstChild;\n while (child != null) {\n if (child.firstChild != null) {\n child = child.firstChild;\n } else if (child.snapshot.data != null && child.snapshot.data.title != null) {\n rawTitle = child.snapshot.data.title;\n break;\n } else if (child.snapshot.data != null && child.snapshot.data.titleId != null) {\n titleId = child.snapshot.data.titleId;\n break;\n } else {\n titleId = null;\n rawTitle = null;\n break;\n }\n }\n\n if (titleId != null || rawTitle != null) {\n const newTitle = rawTitle != null ? rawTitle : i18nService.t(titleId);\n if (newTitle != null && newTitle !== '') {\n title = (newTitle + ' | ' + title);\n }\n }\n this.titleService.setTitle(title);\n }\n });\n }\n\n getPreviousUrl() {\n return this.previousUrl;\n }\n\n setPreviousUrl(url: string) {\n this.previousUrl = url;\n }\n}\n","export enum KdfType {\n PBKDF2_SHA256 = 0,\n}\n","import {\n Component,\n Input,\n OnChanges,\n} from '@angular/core';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\n@Component({\n selector: 'app-password-strength',\n templateUrl: 'password-strength.component.html',\n})\nexport class PasswordStrengthComponent implements OnChanges {\n @Input() score?: number;\n @Input() showText = false;\n\n scoreWidth = 0;\n color = 'bg-danger';\n text: string;\n\n constructor(private i18nService: I18nService) { }\n\n ngOnChanges(): void {\n this.scoreWidth = this.score == null ? 0 : (this.score + 1) * 20;\n switch (this.score) {\n case 4:\n this.color = 'bg-success';\n this.text = this.i18nService.t('strong');\n break;\n case 3:\n this.color = 'bg-primary';\n this.text = this.i18nService.t('good');\n break;\n case 2:\n this.color = 'bg-warning';\n this.text = this.i18nService.t('weak');\n break;\n default:\n this.color = 'bg-danger';\n this.text = this.score != null ? this.i18nService.t('weak') : null;\n break;\n }\n }\n}\n","
\n
\n \n {{text}}\n \n
\n
\n","export enum OrganizationUserType {\n Owner = 0,\n Admin = 1,\n User = 2,\n Manager = 3,\n Custom = 4,\n}\n","import {\n Pipe,\n PipeTransform,\n} from '@angular/core';\n\n@Pipe({\n name: 'search',\n})\nexport class SearchPipe implements PipeTransform {\n transform(items: any[], searchText: string, prop1?: string, prop2?: string, prop3?: string): any[] {\n if (items == null || items.length === 0) {\n return [];\n }\n\n if (searchText == null || searchText.length < 2) {\n return items;\n }\n\n searchText = searchText.trim().toLowerCase();\n return items.filter(i => {\n if (prop1 != null && i[prop1] != null && i[prop1].toString().toLowerCase().indexOf(searchText) > -1) {\n return true;\n }\n if (prop2 != null && i[prop2] != null && i[prop2].toString().toLowerCase().indexOf(searchText) > -1) {\n return true;\n }\n if (prop3 != null && i[prop3] != null && i[prop3].toString().toLowerCase().indexOf(searchText) > -1) {\n return true;\n }\n return false;\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { DeviceType } from 'jslib/enums/deviceType';\nimport { EventType } from 'jslib/enums/eventType';\n\nimport { EventResponse } from 'jslib/models/response/eventResponse';\n\n@Injectable()\nexport class EventService {\n constructor(private i18nService: I18nService) { }\n\n getDefaultDateFilters() {\n const d = new Date();\n const end = new Date(d.getFullYear(), d.getMonth(), d.getDate(), 23, 59);\n d.setDate(d.getDate() - 30);\n const start = new Date(d.getFullYear(), d.getMonth(), d.getDate(), 0, 0);\n return [this.toDateTimeLocalString(start), this.toDateTimeLocalString(end)];\n }\n\n formatDateFilters(filterStart: string, filterEnd: string) {\n const start: Date = new Date(filterStart);\n const end: Date = new Date(filterEnd + ':59.999');\n if (isNaN(start.getTime()) || isNaN(end.getTime()) || end < start) {\n throw new Error('Invalid date range.');\n }\n return [start.toISOString(), end.toISOString()];\n }\n\n getEventInfo(ev: EventResponse, options = new EventOptions()): EventInfo {\n const appInfo = this.getAppInfo(ev.deviceType);\n return {\n message: this.getEventMessage(ev, options),\n appIcon: appInfo[0],\n appName: appInfo[1],\n };\n }\n\n private getEventMessage(ev: EventResponse, options: EventOptions) {\n let msg = '';\n switch (ev.type) {\n // User\n case EventType.User_LoggedIn:\n msg = this.i18nService.t('loggedIn');\n break;\n case EventType.User_ChangedPassword:\n msg = this.i18nService.t('changedPassword');\n break;\n case EventType.User_Updated2fa:\n msg = this.i18nService.t('enabledUpdated2fa');\n break;\n case EventType.User_Disabled2fa:\n msg = this.i18nService.t('disabled2fa');\n break;\n case EventType.User_Recovered2fa:\n msg = this.i18nService.t('recovered2fa');\n break;\n case EventType.User_FailedLogIn:\n msg = this.i18nService.t('failedLogin');\n break;\n case EventType.User_FailedLogIn2fa:\n msg = this.i18nService.t('failedLogin2fa');\n break;\n case EventType.User_ClientExportedVault:\n msg = this.i18nService.t('exportedVault');\n break;\n // Cipher\n case EventType.Cipher_Created:\n msg = this.i18nService.t('createdItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_Updated:\n msg = this.i18nService.t('editedItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_Deleted:\n msg = this.i18nService.t('permanentlyDeletedItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_SoftDeleted:\n msg = this.i18nService.t('deletedItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_Restored:\n msg = this.i18nService.t('restoredItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_AttachmentCreated:\n msg = this.i18nService.t('createdAttachmentForItem', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_AttachmentDeleted:\n msg = this.i18nService.t('deletedAttachmentForItem', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_Shared:\n msg = this.i18nService.t('sharedItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_ClientViewed:\n msg = this.i18nService.t('viewedItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_ClientToggledPasswordVisible:\n msg = this.i18nService.t('viewedPasswordItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_ClientToggledHiddenFieldVisible:\n msg = this.i18nService.t('viewedHiddenFieldItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_ClientToggledCardCodeVisible:\n msg = this.i18nService.t('viewedSecurityCodeItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_ClientCopiedHiddenField:\n msg = this.i18nService.t('copiedHiddenFieldItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_ClientCopiedPassword:\n msg = this.i18nService.t('copiedPasswordItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_ClientCopiedCardCode:\n msg = this.i18nService.t('copiedSecurityCodeItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_ClientAutofilled:\n msg = this.i18nService.t('autofilledItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_UpdatedCollections:\n msg = this.i18nService.t('editedCollectionsForItem', this.formatCipherId(ev, options));\n break;\n // Collection\n case EventType.Collection_Created:\n msg = this.i18nService.t('createdCollectionId', this.formatCollectionId(ev));\n break;\n case EventType.Collection_Updated:\n msg = this.i18nService.t('editedCollectionId', this.formatCollectionId(ev));\n break;\n case EventType.Collection_Deleted:\n msg = this.i18nService.t('deletedCollectionId', this.formatCollectionId(ev));\n break;\n // Group\n case EventType.Group_Created:\n msg = this.i18nService.t('createdGroupId', this.formatGroupId(ev));\n break;\n case EventType.Group_Updated:\n msg = this.i18nService.t('editedGroupId', this.formatGroupId(ev));\n break;\n case EventType.Group_Deleted:\n msg = this.i18nService.t('deletedGroupId', this.formatGroupId(ev));\n break;\n // Org user\n case EventType.OrganizationUser_Invited:\n msg = this.i18nService.t('invitedUserId', this.formatOrgUserId(ev));\n break;\n case EventType.OrganizationUser_Confirmed:\n msg = this.i18nService.t('confirmedUserId', this.formatOrgUserId(ev));\n break;\n case EventType.OrganizationUser_Updated:\n msg = this.i18nService.t('editedUserId', this.formatOrgUserId(ev));\n break;\n case EventType.OrganizationUser_Removed:\n msg = this.i18nService.t('removedUserId', this.formatOrgUserId(ev));\n break;\n case EventType.OrganizationUser_UpdatedGroups:\n msg = this.i18nService.t('editedGroupsForUser', this.formatOrgUserId(ev));\n break;\n case EventType.OrganizationUser_UnlinkedSso:\n msg = this.i18nService.t('unlinkedSsoUser', this.formatOrgUserId(ev));\n break;\n case EventType.OrganizationUser_ResetPassword_Enroll:\n msg = this.i18nService.t('eventEnrollPasswordReset', this.formatOrgUserId(ev));\n break;\n case EventType.OrganizationUser_ResetPassword_Withdraw:\n msg = this.i18nService.t('eventWithdrawPasswordReset', this.formatOrgUserId(ev));\n break;\n // Org\n case EventType.Organization_Updated:\n msg = this.i18nService.t('editedOrgSettings');\n break;\n case EventType.Organization_PurgedVault:\n msg = this.i18nService.t('purgedOrganizationVault');\n break;\n /*\n case EventType.Organization_ClientExportedVault:\n msg = this.i18nService.t('exportedOrganizationVault');\n break;\n */\n // Policies\n case EventType.Policy_Updated:\n msg = this.i18nService.t('modifiedPolicy', this.formatPolicyId(ev));\n break;\n\n default:\n break;\n }\n return msg === '' ? null : msg;\n }\n\n private getAppInfo(deviceType: DeviceType): [string, string] {\n switch (deviceType) {\n case DeviceType.Android:\n return ['fa-android', this.i18nService.t('mobile') + ' - Android'];\n case DeviceType.iOS:\n return ['fa-apple', this.i18nService.t('mobile') + ' - iOS'];\n case DeviceType.UWP:\n return ['fa-windows', this.i18nService.t('mobile') + ' - Windows'];\n case DeviceType.ChromeExtension:\n return ['fa-chrome', this.i18nService.t('extension') + ' - Chrome'];\n case DeviceType.FirefoxExtension:\n return ['fa-firefox', this.i18nService.t('extension') + ' - Firefox'];\n case DeviceType.OperaExtension:\n return ['fa-opera', this.i18nService.t('extension') + ' - Opera'];\n case DeviceType.EdgeExtension:\n return ['fa-edge', this.i18nService.t('extension') + ' - Edge'];\n case DeviceType.VivaldiExtension:\n return ['fa-puzzle-piece', this.i18nService.t('extension') + ' - Vivaldi'];\n case DeviceType.SafariExtension:\n return ['fa-safari', this.i18nService.t('extension') + ' - Safari'];\n case DeviceType.WindowsDesktop:\n return ['fa-windows', this.i18nService.t('desktop') + ' - Windows'];\n case DeviceType.MacOsDesktop:\n return ['fa-apple', this.i18nService.t('desktop') + ' - macOS'];\n case DeviceType.LinuxDesktop:\n return ['fa-linux', this.i18nService.t('desktop') + ' - Linux'];\n case DeviceType.ChromeBrowser:\n return ['fa-globe', this.i18nService.t('webVault') + ' - Chrome'];\n case DeviceType.FirefoxBrowser:\n return ['fa-globe', this.i18nService.t('webVault') + ' - Firefox'];\n case DeviceType.OperaBrowser:\n return ['fa-globe', this.i18nService.t('webVault') + ' - Opera'];\n case DeviceType.SafariBrowser:\n return ['fa-globe', this.i18nService.t('webVault') + ' - Safari'];\n case DeviceType.VivaldiBrowser:\n return ['fa-globe', this.i18nService.t('webVault') + ' - Vivaldi'];\n case DeviceType.EdgeBrowser:\n return ['fa-globe', this.i18nService.t('webVault') + ' - Edge'];\n case DeviceType.IEBrowser:\n return ['fa-globe', this.i18nService.t('webVault') + ' - IE'];\n case DeviceType.UnknownBrowser:\n return ['fa-globe', this.i18nService.t('webVault') + ' - ' + this.i18nService.t('unknown')];\n default:\n return ['fa-globe', this.i18nService.t('unknown')];\n }\n }\n\n private formatCipherId(ev: EventResponse, options: EventOptions) {\n const shortId = this.getShortId(ev.cipherId);\n if (ev.organizationId == null || !options.cipherInfo) {\n return '' + shortId + '';\n }\n const a = this.makeAnchor(shortId);\n a.setAttribute('href', '#/organizations/' + ev.organizationId + '/vault?search=' + shortId +\n '&viewEvents=' + ev.cipherId);\n return a.outerHTML;\n }\n\n private formatGroupId(ev: EventResponse) {\n const shortId = this.getShortId(ev.groupId);\n const a = this.makeAnchor(shortId);\n a.setAttribute('href', '#/organizations/' + ev.organizationId + '/manage/groups?search=' + shortId);\n return a.outerHTML;\n }\n\n private formatCollectionId(ev: EventResponse) {\n const shortId = this.getShortId(ev.collectionId);\n const a = this.makeAnchor(shortId);\n a.setAttribute('href', '#/organizations/' + ev.organizationId + '/manage/collections?search=' + shortId);\n return a.outerHTML;\n }\n\n private formatOrgUserId(ev: EventResponse) {\n const shortId = this.getShortId(ev.organizationUserId);\n const a = this.makeAnchor(shortId);\n a.setAttribute('href', '#/organizations/' + ev.organizationId + '/manage/people?search=' + shortId +\n '&viewEvents=' + ev.organizationUserId);\n return a.outerHTML;\n }\n\n private formatPolicyId(ev: EventResponse) {\n const shortId = this.getShortId(ev.policyId);\n const a = this.makeAnchor(shortId);\n a.setAttribute('href', '#/organizations/' + ev.organizationId + '/manage/policies?policyId=' + ev.policyId);\n return a.outerHTML;\n }\n\n private makeAnchor(shortId: string) {\n const a = document.createElement('a');\n a.title = this.i18nService.t('view');\n a.innerHTML = '' + shortId + '';\n return a;\n }\n\n private getShortId(id: string) {\n return id.substring(0, 8);\n }\n\n private toDateTimeLocalString(date: Date) {\n return date.getFullYear() +\n '-' + this.pad(date.getMonth() + 1) +\n '-' + this.pad(date.getDate()) +\n 'T' + this.pad(date.getHours()) +\n ':' + this.pad(date.getMinutes());\n }\n\n private pad(num: number) {\n const norm = Math.floor(Math.abs(num));\n return (norm < 10 ? '0' : '') + norm;\n }\n}\n\nexport class EventInfo {\n message: string;\n appIcon: string;\n appName: string;\n}\n\nexport class EventOptions {\n cipherInfo = true;\n}\n","export enum EventType {\n User_LoggedIn = 1000,\n User_ChangedPassword = 1001,\n User_Updated2fa = 1002,\n User_Disabled2fa = 1003,\n User_Recovered2fa = 1004,\n User_FailedLogIn = 1005,\n User_FailedLogIn2fa = 1006,\n User_ClientExportedVault = 1007,\n\n Cipher_Created = 1100,\n Cipher_Updated = 1101,\n Cipher_Deleted = 1102,\n Cipher_AttachmentCreated = 1103,\n Cipher_AttachmentDeleted = 1104,\n Cipher_Shared = 1105,\n Cipher_UpdatedCollections = 1106,\n Cipher_ClientViewed = 1107,\n Cipher_ClientToggledPasswordVisible = 1108,\n Cipher_ClientToggledHiddenFieldVisible = 1109,\n Cipher_ClientToggledCardCodeVisible = 1110,\n Cipher_ClientCopiedPassword = 1111,\n Cipher_ClientCopiedHiddenField = 1112,\n Cipher_ClientCopiedCardCode = 1113,\n Cipher_ClientAutofilled = 1114,\n Cipher_SoftDeleted = 1115,\n Cipher_Restored = 1116,\n\n Collection_Created = 1300,\n Collection_Updated = 1301,\n Collection_Deleted = 1302,\n\n Group_Created = 1400,\n Group_Updated = 1401,\n Group_Deleted = 1402,\n\n OrganizationUser_Invited = 1500,\n OrganizationUser_Confirmed = 1501,\n OrganizationUser_Updated = 1502,\n OrganizationUser_Removed = 1503,\n OrganizationUser_UpdatedGroups = 1504,\n OrganizationUser_UnlinkedSso = 1505,\n OrganizationUser_ResetPassword_Enroll = 1506,\n OrganizationUser_ResetPassword_Withdraw = 1507,\n\n Organization_Updated = 1600,\n Organization_PurgedVault = 1601,\n // Organization_ClientExportedVault = 1602,\n\n Policy_Updated = 1700,\n}\n","export enum PaymentMethodType {\n Card = 0,\n BankAccount = 1,\n PayPal = 2,\n BitPay = 3,\n Credit = 4,\n WireTransfer = 5,\n AppleInApp = 6,\n GoogleInApp = 7,\n Check = 8,\n}\n","import {\n Directive,\n EventEmitter,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\nimport { TwoFactorProviderRequest } from 'jslib/models/request/twoFactorProviderRequest';\n\n@Directive()\nexport abstract class TwoFactorBaseComponent {\n @Output() onUpdated = new EventEmitter();\n\n type: TwoFactorProviderType;\n organizationId: string;\n twoFactorProviderType = TwoFactorProviderType;\n enabled = false;\n authed = false;\n\n protected masterPasswordHash: string;\n\n constructor(protected apiService: ApiService, protected i18nService: I18nService,\n protected toasterService: ToasterService, protected platformUtilsService: PlatformUtilsService) { }\n\n protected auth(authResponse: any) {\n this.masterPasswordHash = authResponse.masterPasswordHash;\n this.authed = true;\n }\n\n protected async enable(enableFunction: () => Promise) {\n try {\n await enableFunction();\n this.onUpdated.emit(true);\n } catch { }\n }\n\n protected async disable(promise: Promise) {\n const confirmed = await this.platformUtilsService.showDialog(this.i18nService.t('twoStepDisableDesc'),\n this.i18nService.t('disable'), this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return;\n }\n\n try {\n const request = new TwoFactorProviderRequest();\n request.masterPasswordHash = this.masterPasswordHash;\n request.type = this.type;\n if (this.organizationId != null) {\n promise = this.apiService.putTwoFactorOrganizationDisable(this.organizationId, request);\n } else {\n promise = this.apiService.putTwoFactorDisable(request);\n }\n await promise;\n this.enabled = false;\n this.toasterService.popAsync('success', null, this.i18nService.t('twoStepDisabled'));\n this.onUpdated.emit(false);\n } catch { }\n }\n}\n","import {\n ComponentFactoryResolver,\n Directive,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { Organization } from 'jslib/models/domain/organization';\n\nimport { ModalComponent } from '../modal.component';\nimport { AddEditComponent as OrgAddEditComponent } from '../organizations/vault/add-edit.component';\nimport { AddEditComponent } from '../vault/add-edit.component';\n\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\n@Directive()\nexport class CipherReportComponent {\n @ViewChild('cipherAddEdit', { read: ViewContainerRef, static: true }) cipherAddEditModalRef: ViewContainerRef;\n\n loading = false;\n hasLoaded = false;\n ciphers: CipherView[] = [];\n organization: Organization;\n\n private modal: ModalComponent = null;\n\n constructor(private componentFactoryResolver: ComponentFactoryResolver, protected userService: UserService,\n protected messagingService: MessagingService, public requiresPaid: boolean) { }\n\n async load() {\n this.loading = true;\n await this.setCiphers();\n this.loading = false;\n this.hasLoaded = true;\n }\n\n selectCipher(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.cipherAddEditModalRef.createComponent(factory).instance;\n let childComponent: OrgAddEditComponent | AddEditComponent;\n if (this.organization != null) {\n childComponent = this.modal.show(OrgAddEditComponent, this.cipherAddEditModalRef);\n (childComponent as OrgAddEditComponent).organization = this.organization;\n } else {\n childComponent = this.modal.show(AddEditComponent, this.cipherAddEditModalRef);\n }\n\n childComponent.cipherId = cipher == null ? null : cipher.id;\n if (this.organization != null) {\n childComponent.organizationId = this.organization.id;\n }\n childComponent.onSavedCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.load();\n });\n childComponent.onDeletedCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.load();\n });\n childComponent.onRestoredCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.load();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n\n return childComponent;\n }\n\n protected async checkAccess(): Promise {\n if (this.organization != null) {\n // TODO: Maybe we want to just make sure they are not on a free plan? Just compare useTotp for now\n // since all paid plans include useTotp\n if (this.requiresPaid && !this.organization.useTotp) {\n this.messagingService.send('upgradeOrganization', { organizationId: this.organization.id });\n return false;\n }\n } else {\n const accessPremium = await this.userService.canAccessPremium();\n if (this.requiresPaid && !accessPremium) {\n this.messagingService.send('premiumRequired');\n this.loading = false;\n return false;\n }\n }\n return true;\n }\n\n protected async setCiphers() {\n this.ciphers = [];\n }\n}\n","import { UriMatchType } from '../../enums/uriMatchType';\n\nimport { View } from './view';\n\nimport { LoginUri } from '../domain/loginUri';\n\nimport { Utils } from '../../misc/utils';\n\nconst CanLaunchWhitelist = [\n 'https://',\n 'http://',\n 'ssh://',\n 'ftp://',\n 'sftp://',\n 'irc://',\n 'vnc://',\n // https://docs.microsoft.com/en-us/windows-server/remote/remote-desktop-services/clients/remote-desktop-uri\n 'rdp://', // Legacy RDP URI scheme\n 'ms-rd:', // Preferred RDP URI scheme\n 'chrome://',\n 'iosapp://',\n 'androidapp://',\n];\n\nexport class LoginUriView implements View {\n match: UriMatchType = null;\n\n // tslint:disable\n private _uri: string = null;\n private _domain: string = null;\n private _hostname: string = null;\n private _host: string = null;\n private _canLaunch: boolean = null;\n // tslint:enable\n\n constructor(u?: LoginUri) {\n if (!u) {\n return;\n }\n\n this.match = u.match;\n }\n\n get uri(): string {\n return this._uri;\n }\n set uri(value: string) {\n this._uri = value;\n this._domain = null;\n this._canLaunch = null;\n }\n\n get domain(): string {\n if (this._domain == null && this.uri != null) {\n this._domain = Utils.getDomain(this.uri);\n if (this._domain === '') {\n this._domain = null;\n }\n }\n\n return this._domain;\n }\n\n get hostname(): string {\n if (this.match === UriMatchType.RegularExpression) {\n return null;\n }\n if (this._hostname == null && this.uri != null) {\n this._hostname = Utils.getHostname(this.uri);\n if (this._hostname === '') {\n this._hostname = null;\n }\n }\n\n return this._hostname;\n }\n\n get host(): string {\n if (this.match === UriMatchType.RegularExpression) {\n return null;\n }\n if (this._host == null && this.uri != null) {\n this._host = Utils.getHost(this.uri);\n if (this._host === '') {\n this._host = null;\n }\n }\n\n return this._host;\n }\n\n get hostnameOrUri(): string {\n return this.hostname != null ? this.hostname : this.uri;\n }\n\n get hostOrUri(): string {\n return this.host != null ? this.host : this.uri;\n }\n\n get isWebsite(): boolean {\n return this.uri != null && (this.uri.indexOf('http://') === 0 || this.uri.indexOf('https://') === 0 ||\n (this.uri.indexOf('://') < 0 && Utils.tldEndingRegex.test(this.uri)));\n }\n\n get canLaunch(): boolean {\n if (this._canLaunch != null) {\n return this._canLaunch;\n }\n if (this.uri != null && this.match !== UriMatchType.RegularExpression) {\n const uri = this.launchUri;\n for (let i = 0; i < CanLaunchWhitelist.length; i++) {\n if (uri.indexOf(CanLaunchWhitelist[i]) === 0) {\n this._canLaunch = true;\n return this._canLaunch;\n }\n }\n }\n this._canLaunch = false;\n return this._canLaunch;\n }\n\n get launchUri(): string {\n return this.uri.indexOf('://') < 0 && Utils.tldEndingRegex.test(this.uri) ? ('http://' + this.uri) : this.uri;\n }\n}\n","export enum UriMatchType {\n Domain = 0,\n Host = 1,\n StartsWith = 2,\n Exact = 3,\n RegularExpression = 4,\n Never = 5,\n}\n","import { Component } from '@angular/core';\n\nimport { CipherType } from 'jslib/enums/cipherType';\nimport { EventType } from 'jslib/enums/eventType';\n\nimport { AuditService } from 'jslib/abstractions/audit.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { EventService } from 'jslib/abstractions/event.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { TotpService } from 'jslib/abstractions/totp.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { AddEditComponent as BaseAddEditComponent } from 'jslib/angular/components/add-edit.component';\nimport { LoginUriView } from 'jslib/models/view/loginUriView';\n\n@Component({\n selector: 'app-vault-add-edit',\n templateUrl: 'add-edit.component.html',\n})\nexport class AddEditComponent extends BaseAddEditComponent {\n canAccessPremium: boolean;\n totpCode: string;\n totpCodeFormatted: string;\n totpDash: number;\n totpSec: number;\n totpLow: boolean;\n showRevisionDate = false;\n hasPasswordHistory = false;\n viewingPasswordHistory = false;\n viewOnly = false;\n\n protected totpInterval: number;\n\n constructor(cipherService: CipherService, folderService: FolderService,\n i18nService: I18nService, platformUtilsService: PlatformUtilsService,\n auditService: AuditService, stateService: StateService,\n userService: UserService, collectionService: CollectionService,\n protected totpService: TotpService, protected passwordGenerationService: PasswordGenerationService,\n protected messagingService: MessagingService, eventService: EventService,\n protected policyService: PolicyService) {\n super(cipherService, folderService, i18nService, platformUtilsService, auditService, stateService,\n userService, collectionService, messagingService, eventService, policyService);\n }\n\n async ngOnInit() {\n await super.ngOnInit();\n await this.load();\n this.showRevisionDate = this.cipher.passwordRevisionDisplayDate != null;\n this.hasPasswordHistory = this.cipher.hasPasswordHistory;\n this.cleanUp();\n\n this.canAccessPremium = await this.userService.canAccessPremium();\n if (this.cipher.type === CipherType.Login && this.cipher.login.totp &&\n (this.cipher.organizationUseTotp || this.canAccessPremium)) {\n await this.totpUpdateCode();\n const interval = this.totpService.getTimeInterval(this.cipher.login.totp);\n await this.totpTick(interval);\n\n this.totpInterval = window.setInterval(async () => {\n await this.totpTick(interval);\n }, 1000);\n }\n }\n\n toggleFavorite() {\n this.cipher.favorite = !this.cipher.favorite;\n }\n\n launch(uri: LoginUriView) {\n if (!uri.canLaunch) {\n return;\n }\n\n this.platformUtilsService.launchUri(uri.launchUri);\n }\n\n copy(value: string, typeI18nKey: string, aType: string) {\n if (value == null) {\n return;\n }\n\n this.platformUtilsService.copyToClipboard(value, { window: window });\n this.platformUtilsService.showToast('info', null,\n this.i18nService.t('valueCopied', this.i18nService.t(typeI18nKey)));\n\n if (this.editMode) {\n if (typeI18nKey === 'password') {\n this.eventService.collect(EventType.Cipher_ClientToggledHiddenFieldVisible, this.cipherId);\n } else if (typeI18nKey === 'securityCode') {\n this.eventService.collect(EventType.Cipher_ClientCopiedCardCode, this.cipherId);\n } else if (aType === 'H_Field') {\n this.eventService.collect(EventType.Cipher_ClientCopiedHiddenField, this.cipherId);\n }\n }\n }\n\n async generatePassword(): Promise {\n const confirmed = await super.generatePassword();\n if (confirmed) {\n const options = (await this.passwordGenerationService.getOptions())[0];\n this.cipher.login.password = await this.passwordGenerationService.generatePassword(options);\n }\n return confirmed;\n }\n\n premiumRequired() {\n if (!this.canAccessPremium) {\n this.messagingService.send('premiumRequired');\n return;\n }\n }\n\n upgradeOrganization() {\n this.messagingService.send('upgradeOrganization', { organizationId: this.cipher.organizationId });\n }\n\n viewHistory() {\n this.viewingPasswordHistory = !this.viewingPasswordHistory;\n }\n\n protected cleanUp() {\n if (this.totpInterval) {\n window.clearInterval(this.totpInterval);\n }\n }\n\n protected async totpUpdateCode() {\n if (this.cipher == null || this.cipher.type !== CipherType.Login || this.cipher.login.totp == null) {\n if (this.totpInterval) {\n window.clearInterval(this.totpInterval);\n }\n return;\n }\n\n this.totpCode = await this.totpService.getCode(this.cipher.login.totp);\n if (this.totpCode != null) {\n if (this.totpCode.length > 4) {\n const half = Math.floor(this.totpCode.length / 2);\n this.totpCodeFormatted = this.totpCode.substring(0, half) + ' ' + this.totpCode.substring(half);\n } else {\n this.totpCodeFormatted = this.totpCode;\n }\n } else {\n this.totpCodeFormatted = null;\n if (this.totpInterval) {\n window.clearInterval(this.totpInterval);\n }\n }\n }\n\n protected allowOwnershipAssignment() {\n return (!this.editMode || this.cloneMode) && this.ownershipOptions != null\n && (this.ownershipOptions.length > 1 || !this.allowPersonal);\n }\n\n private async totpTick(intervalSeconds: number) {\n const epoch = Math.round(new Date().getTime() / 1000.0);\n const mod = epoch % intervalSeconds;\n\n this.totpSec = intervalSeconds - mod;\n this.totpDash = +(Math.round((((78.6 / intervalSeconds) * mod) + 'e+2') as any) + 'e-2');\n this.totpLow = this.totpSec <= 7;\n if (mod === 0) {\n await this.totpUpdateCode();\n }\n }\n}\n","
\n
\n
\n
\n

{{title}}

\n \n
\n
\n \n {{'personalOwnershipPolicyInEffect' | i18n}}\n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n
\n \n
\n \n
\n
\n
\n
\n
\n \n \n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n \n
\n \n {{totpSec}}\n \n \n \n \n \n \n \n {{totpCodeFormatted}}\n \n
\n
\n
\n \n
\n
\n \n
\n \n
\n \n \n
\n
\n
\n
\n
\n \n \n \n \n
\n
\n \n \n
\n
\n
\n
\n \n {{'newUri' | i18n}}\n \n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n
\n \n
\n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n
\n \n
\n \n \n
\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n

{{'customFields' | i18n}}

\n
\n
\n
\n
\n \n \n \n \n
\n \n
\n
\n \n
\n
\n \n
\n \n
\n
\n
\n \n
\n \n \n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n \n {{'newCustomField' | i18n}}\n \n
\n
\n \n \n
\n
\n \n

{{'ownership' | i18n}}

\n
\n
\n \n \n
\n
\n
\n \n

{{'collections' | i18n}}

\n
\n {{'noCollectionsInList' | i18n}}\n
\n \n
\n \n \n
\n
\n
\n \n
\n
\n {{'dateUpdated' | i18n}}:\n {{cipher.revisionDate | date:'medium'}}\n
\n
\n {{'datePasswordUpdated' | i18n}}:\n {{cipher.passwordRevisionDisplayDate | date:'medium'}}\n
\n
\n {{'passwordHistory' | i18n}}:\n \n {{cipher.passwordHistory.length}}\n \n
\n
\n
\n {{ph.lastUsedDate | date:'short'}} -\n {{ph.password}}\n
\n
\n
\n
\n
\n
\n \n \n
\n \n \n
\n
\n
\n
\n
\n","import { Importer } from '../importers/importer';\n\nexport interface ImportOption {\n id: string;\n name: string;\n}\nexport abstract class ImportService {\n featuredImportOptions: ImportOption[];\n regularImportOptions: ImportOption[];\n getImportOptions: () => ImportOption[];\n import: (importer: Importer, fileContents: string, organizationId?: string) => Promise;\n getImporter: (format: string, organizationId: string) => Importer;\n}\n","import { AttachmentResponse } from './attachmentResponse';\nimport { BaseResponse } from './baseResponse';\nimport { PasswordHistoryResponse } from './passwordHistoryResponse';\n\nimport { CardApi } from '../api/cardApi';\nimport { FieldApi } from '../api/fieldApi';\nimport { IdentityApi } from '../api/identityApi';\nimport { LoginApi } from '../api/loginApi';\nimport { SecureNoteApi } from '../api/secureNoteApi';\n\nexport class CipherResponse extends BaseResponse {\n id: string;\n organizationId: string;\n folderId: string;\n type: number;\n name: string;\n notes: string;\n fields: FieldApi[];\n login: LoginApi;\n card: CardApi;\n identity: IdentityApi;\n secureNote: SecureNoteApi;\n favorite: boolean;\n edit: boolean;\n viewPassword: boolean;\n organizationUseTotp: boolean;\n revisionDate: string;\n attachments: AttachmentResponse[];\n passwordHistory: PasswordHistoryResponse[];\n collectionIds: string[];\n deletedDate: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.organizationId = this.getResponseProperty('OrganizationId');\n this.folderId = this.getResponseProperty('FolderId') || null;\n this.type = this.getResponseProperty('Type');\n this.name = this.getResponseProperty('Name');\n this.notes = this.getResponseProperty('Notes');\n this.favorite = this.getResponseProperty('Favorite') || false;\n this.edit = !!this.getResponseProperty('Edit');\n if (this.getResponseProperty('ViewPassword') == null) {\n this.viewPassword = true;\n } else {\n this.viewPassword = this.getResponseProperty('ViewPassword');\n }\n this.organizationUseTotp = this.getResponseProperty('OrganizationUseTotp');\n this.revisionDate = this.getResponseProperty('RevisionDate');\n this.collectionIds = this.getResponseProperty('CollectionIds');\n this.deletedDate = this.getResponseProperty('DeletedDate');\n\n const login = this.getResponseProperty('Login');\n if (login != null) {\n this.login = new LoginApi(login);\n }\n\n const card = this.getResponseProperty('Card');\n if (card != null) {\n this.card = new CardApi(card);\n }\n\n const identity = this.getResponseProperty('Identity');\n if (identity != null) {\n this.identity = new IdentityApi(identity);\n }\n\n const secureNote = this.getResponseProperty('SecureNote');\n if (secureNote != null) {\n this.secureNote = new SecureNoteApi(secureNote);\n }\n\n const fields = this.getResponseProperty('Fields');\n if (fields != null) {\n this.fields = fields.map((f: any) => new FieldApi(f));\n }\n\n const attachments = this.getResponseProperty('Attachments');\n if (attachments != null) {\n this.attachments = attachments.map((a: any) => new AttachmentResponse(a));\n }\n\n const passwordHistory = this.getResponseProperty('PasswordHistory');\n if (passwordHistory != null) {\n this.passwordHistory = passwordHistory.map((h: any) => new PasswordHistoryResponse(h));\n }\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { EventService } from 'jslib/abstractions/event.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SearchService } from 'jslib/abstractions/search.service';\nimport { TotpService } from 'jslib/abstractions/totp.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CiphersComponent as BaseCiphersComponent } from 'jslib/angular/components/ciphers.component';\n\nimport { CipherType } from 'jslib/enums/cipherType';\nimport { EventType } from 'jslib/enums/eventType';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nconst MaxCheckedCount = 500;\n\n@Component({\n selector: 'app-vault-ciphers',\n templateUrl: 'ciphers.component.html',\n})\nexport class CiphersComponent extends BaseCiphersComponent implements OnDestroy {\n @Input() showAddNew = true;\n @Output() onAttachmentsClicked = new EventEmitter();\n @Output() onShareClicked = new EventEmitter();\n @Output() onCollectionsClicked = new EventEmitter();\n @Output() onCloneClicked = new EventEmitter();\n\n cipherType = CipherType;\n actionPromise: Promise;\n userHasPremiumAccess = false;\n\n constructor(searchService: SearchService, protected toasterService: ToasterService,\n protected i18nService: I18nService, protected platformUtilsService: PlatformUtilsService,\n protected cipherService: CipherService, protected eventService: EventService,\n protected totpService: TotpService, protected userService: UserService) {\n super(searchService);\n this.pageSize = 200;\n }\n\n async ngOnInit() {\n this.userHasPremiumAccess = await this.userService.canAccessPremium();\n }\n\n ngOnDestroy() {\n this.selectAll(false);\n }\n\n launch(uri: string) {\n this.platformUtilsService.launchUri(uri);\n }\n\n attachments(c: CipherView) {\n this.onAttachmentsClicked.emit(c);\n }\n\n share(c: CipherView) {\n this.onShareClicked.emit(c);\n }\n\n collections(c: CipherView) {\n this.onCollectionsClicked.emit(c);\n }\n\n clone(c: CipherView) {\n this.onCloneClicked.emit(c);\n }\n\n async delete(c: CipherView): Promise {\n if (this.actionPromise != null) {\n return;\n }\n const permanent = c.isDeleted;\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t(permanent ? 'permanentlyDeleteItemConfirmation' : 'deleteItemConfirmation'),\n this.i18nService.t(permanent ? 'permanentlyDeleteItem' : 'deleteItem'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.actionPromise = this.deleteCipher(c.id, permanent);\n await this.actionPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t(permanent ? 'permanentlyDeletedItem'\n : 'deletedItem'));\n this.refresh();\n } catch { }\n this.actionPromise = null;\n }\n\n async restore(c: CipherView): Promise {\n if (this.actionPromise != null || !c.isDeleted) {\n return;\n }\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('restoreItemConfirmation'),\n this.i18nService.t('restoreItem'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.actionPromise = this.cipherService.restoreWithServer(c.id);\n await this.actionPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('restoredItem'));\n this.refresh();\n } catch { }\n this.actionPromise = null;\n }\n\n async copy(cipher: CipherView, value: string, typeI18nKey: string, aType: string) {\n if (value == null || aType === 'TOTP' && !this.displayTotpCopyButton(cipher)) {\n return;\n } else if (value === cipher.login.totp) {\n value = await this.totpService.getCode(value);\n }\n\n this.platformUtilsService.copyToClipboard(value, { window: window });\n this.toasterService.popAsync('info', null,\n this.i18nService.t('valueCopied', this.i18nService.t(typeI18nKey)));\n\n if (typeI18nKey === 'password' || typeI18nKey === 'verificationCodeTotp') {\n this.eventService.collect(EventType.Cipher_ClientToggledHiddenFieldVisible, cipher.id);\n } else if (typeI18nKey === 'securityCode') {\n this.eventService.collect(EventType.Cipher_ClientCopiedCardCode, cipher.id);\n }\n }\n\n selectAll(select: boolean) {\n if (select) {\n this.selectAll(false);\n }\n const selectCount = select && this.ciphers.length > MaxCheckedCount\n ? MaxCheckedCount\n : this.ciphers.length;\n for (let i = 0; i < selectCount; i++) {\n this.checkCipher(this.ciphers[i], select);\n }\n }\n\n checkCipher(c: CipherView, select?: boolean) {\n (c as any).checked = select == null ? !(c as any).checked : select;\n }\n\n getSelected(): CipherView[] {\n if (this.ciphers == null) {\n return [];\n }\n return this.ciphers.filter(c => !!(c as any).checked);\n }\n\n getSelectedIds(): string[] {\n return this.getSelected().map(c => c.id);\n }\n\n displayTotpCopyButton(cipher: CipherView) {\n return (cipher?.login?.hasTotp ?? false) &&\n (cipher.organizationUseTotp || this.userHasPremiumAccess);\n }\n\n protected deleteCipher(id: string, permanent: boolean) {\n return permanent ? this.cipherService.deleteWithServer(id) : this.cipherService.softDeleteWithServer(id);\n }\n\n protected showFixOldAttachments(c: CipherView) {\n return c.hasOldAttachments && c.organizationId == null;\n }\n}\n","\n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n {{c.name}}\n \n \n {{'shared' | i18n}}\n \n \n \n {{'attachments' | i18n}}\n \n \n {{'attachmentsNeedFix' | i18n}}\n \n \n
\n {{c.subTitle}}\n
\n \n
\n
\n \n \n {{'loading' | i18n}}\n \n \n

{{'noItemsInList' | i18n}}

\n \n
\n
\n
\n","export enum EncryptionType {\n AesCbc256_B64 = 0,\n AesCbc128_HmacSha256_B64 = 1,\n AesCbc256_HmacSha256_B64 = 2,\n Rsa2048_OaepSha256_B64 = 3,\n Rsa2048_OaepSha1_B64 = 4,\n Rsa2048_OaepSha256_HmacSha256_B64 = 5,\n Rsa2048_OaepSha1_HmacSha256_B64 = 6,\n}\n","import { KdfType } from '../enums/kdfType';\nimport { TwoFactorProviderType } from '../enums/twoFactorProviderType';\n\nimport { AuthResult } from '../models/domain/authResult';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nimport { DeviceRequest } from '../models/request/deviceRequest';\nimport { KeysRequest } from '../models/request/keysRequest';\nimport { PreloginRequest } from '../models/request/preloginRequest';\nimport { TokenRequest } from '../models/request/tokenRequest';\n\nimport { IdentityTokenResponse } from '../models/response/identityTokenResponse';\nimport { IdentityTwoFactorResponse } from '../models/response/identityTwoFactorResponse';\n\nimport { ApiService } from '../abstractions/api.service';\nimport { AppIdService } from '../abstractions/appId.service';\nimport { AuthService as AuthServiceAbstraction } from '../abstractions/auth.service';\nimport { CryptoService } from '../abstractions/crypto.service';\nimport { I18nService } from '../abstractions/i18n.service';\nimport { LogService } from '../abstractions/log.service';\nimport { MessagingService } from '../abstractions/messaging.service';\nimport { PlatformUtilsService } from '../abstractions/platformUtils.service';\nimport { TokenService } from '../abstractions/token.service';\nimport { UserService } from '../abstractions/user.service';\nimport { VaultTimeoutService } from '../abstractions/vaultTimeout.service';\n\nexport const TwoFactorProviders = {\n [TwoFactorProviderType.Authenticator]: {\n type: TwoFactorProviderType.Authenticator,\n name: null as string,\n description: null as string,\n priority: 1,\n sort: 1,\n premium: false,\n },\n [TwoFactorProviderType.Yubikey]: {\n type: TwoFactorProviderType.Yubikey,\n name: null as string,\n description: null as string,\n priority: 3,\n sort: 2,\n premium: true,\n },\n [TwoFactorProviderType.Duo]: {\n type: TwoFactorProviderType.Duo,\n name: 'Duo',\n description: null as string,\n priority: 2,\n sort: 3,\n premium: true,\n },\n [TwoFactorProviderType.OrganizationDuo]: {\n type: TwoFactorProviderType.OrganizationDuo,\n name: 'Duo (Organization)',\n description: null as string,\n priority: 10,\n sort: 4,\n premium: false,\n },\n [TwoFactorProviderType.Email]: {\n type: TwoFactorProviderType.Email,\n name: null as string,\n description: null as string,\n priority: 0,\n sort: 6,\n premium: false,\n },\n [TwoFactorProviderType.WebAuthn]: {\n type: TwoFactorProviderType.WebAuthn,\n name: null as string,\n description: null as string,\n priority: 4,\n sort: 5,\n premium: true,\n },\n};\n\nexport class AuthService implements AuthServiceAbstraction {\n email: string;\n masterPasswordHash: string;\n code: string;\n codeVerifier: string;\n ssoRedirectUrl: string;\n clientId: string;\n clientSecret: string;\n twoFactorProvidersData: Map;\n selectedTwoFactorProviderType: TwoFactorProviderType = null;\n\n private key: SymmetricCryptoKey;\n\n constructor(private cryptoService: CryptoService, private apiService: ApiService,\n private userService: UserService, private tokenService: TokenService,\n private appIdService: AppIdService, private i18nService: I18nService,\n private platformUtilsService: PlatformUtilsService, private messagingService: MessagingService,\n private vaultTimeoutService: VaultTimeoutService, private logService: LogService,\n private setCryptoKeys = true) {\n }\n\n init() {\n TwoFactorProviders[TwoFactorProviderType.Email].name = this.i18nService.t('emailTitle');\n TwoFactorProviders[TwoFactorProviderType.Email].description = this.i18nService.t('emailDesc');\n\n TwoFactorProviders[TwoFactorProviderType.Authenticator].name = this.i18nService.t('authenticatorAppTitle');\n TwoFactorProviders[TwoFactorProviderType.Authenticator].description =\n this.i18nService.t('authenticatorAppDesc');\n\n TwoFactorProviders[TwoFactorProviderType.Duo].description = this.i18nService.t('duoDesc');\n\n TwoFactorProviders[TwoFactorProviderType.OrganizationDuo].name =\n 'Duo (' + this.i18nService.t('organization') + ')';\n TwoFactorProviders[TwoFactorProviderType.OrganizationDuo].description =\n this.i18nService.t('duoOrganizationDesc');\n\n TwoFactorProviders[TwoFactorProviderType.WebAuthn].name = this.i18nService.t('webAuthnTitle');\n TwoFactorProviders[TwoFactorProviderType.WebAuthn].description = this.i18nService.t('webAuthnDesc');\n\n TwoFactorProviders[TwoFactorProviderType.Yubikey].name = this.i18nService.t('yubiKeyTitle');\n TwoFactorProviders[TwoFactorProviderType.Yubikey].description = this.i18nService.t('yubiKeyDesc');\n }\n\n async logIn(email: string, masterPassword: string): Promise {\n this.selectedTwoFactorProviderType = null;\n const key = await this.makePreloginKey(masterPassword, email);\n const hashedPassword = await this.cryptoService.hashPassword(masterPassword, key);\n return await this.logInHelper(email, hashedPassword, null, null, null, null, null,\n key, null, null, null);\n }\n\n async logInSso(code: string, codeVerifier: string, redirectUrl: string): Promise {\n this.selectedTwoFactorProviderType = null;\n return await this.logInHelper(null, null, code, codeVerifier, redirectUrl, null, null,\n null, null, null, null);\n }\n\n async logInApiKey(clientId: string, clientSecret: string): Promise {\n this.selectedTwoFactorProviderType = null;\n return await this.logInHelper(null, null, null, null, null, clientId, clientSecret,\n null, null, null, null);\n }\n\n async logInTwoFactor(twoFactorProvider: TwoFactorProviderType, twoFactorToken: string,\n remember?: boolean): Promise {\n return await this.logInHelper(this.email, this.masterPasswordHash, this.code, this.codeVerifier,\n this.ssoRedirectUrl, this.clientId, this.clientSecret, this.key, twoFactorProvider,\n twoFactorToken, remember);\n }\n\n async logInComplete(email: string, masterPassword: string, twoFactorProvider: TwoFactorProviderType,\n twoFactorToken: string, remember?: boolean): Promise {\n this.selectedTwoFactorProviderType = null;\n const key = await this.makePreloginKey(masterPassword, email);\n const hashedPassword = await this.cryptoService.hashPassword(masterPassword, key);\n return await this.logInHelper(email, hashedPassword, null, null, null, null, null, key,\n twoFactorProvider, twoFactorToken, remember);\n }\n\n async logInSsoComplete(code: string, codeVerifier: string, redirectUrl: string,\n twoFactorProvider: TwoFactorProviderType, twoFactorToken: string, remember?: boolean): Promise {\n this.selectedTwoFactorProviderType = null;\n return await this.logInHelper(null, null, code, codeVerifier, redirectUrl, null,\n null, null, twoFactorProvider, twoFactorToken, remember);\n }\n\n async logInApiKeyComplete(clientId: string, clientSecret: string, twoFactorProvider: TwoFactorProviderType,\n twoFactorToken: string, remember?: boolean): Promise {\n this.selectedTwoFactorProviderType = null;\n return await this.logInHelper(null, null, null, null, null, clientId, clientSecret, null,\n twoFactorProvider, twoFactorToken, remember);\n }\n\n logOut(callback: Function) {\n callback();\n this.messagingService.send('loggedOut');\n }\n\n getSupportedTwoFactorProviders(win: Window): any[] {\n const providers: any[] = [];\n if (this.twoFactorProvidersData == null) {\n return providers;\n }\n\n if (this.twoFactorProvidersData.has(TwoFactorProviderType.OrganizationDuo) &&\n this.platformUtilsService.supportsDuo()) {\n providers.push(TwoFactorProviders[TwoFactorProviderType.OrganizationDuo]);\n }\n\n if (this.twoFactorProvidersData.has(TwoFactorProviderType.Authenticator)) {\n providers.push(TwoFactorProviders[TwoFactorProviderType.Authenticator]);\n }\n\n if (this.twoFactorProvidersData.has(TwoFactorProviderType.Yubikey)) {\n providers.push(TwoFactorProviders[TwoFactorProviderType.Yubikey]);\n }\n\n if (this.twoFactorProvidersData.has(TwoFactorProviderType.Duo) && this.platformUtilsService.supportsDuo()) {\n providers.push(TwoFactorProviders[TwoFactorProviderType.Duo]);\n }\n\n if (this.twoFactorProvidersData.has(TwoFactorProviderType.WebAuthn) && this.platformUtilsService.supportsWebAuthn(win)) {\n providers.push(TwoFactorProviders[TwoFactorProviderType.WebAuthn]);\n }\n\n if (this.twoFactorProvidersData.has(TwoFactorProviderType.Email)) {\n providers.push(TwoFactorProviders[TwoFactorProviderType.Email]);\n }\n\n return providers;\n }\n\n getDefaultTwoFactorProvider(webAuthnSupported: boolean): TwoFactorProviderType {\n if (this.twoFactorProvidersData == null) {\n return null;\n }\n\n if (this.selectedTwoFactorProviderType != null &&\n this.twoFactorProvidersData.has(this.selectedTwoFactorProviderType)) {\n return this.selectedTwoFactorProviderType;\n }\n\n let providerType: TwoFactorProviderType = null;\n let providerPriority = -1;\n this.twoFactorProvidersData.forEach((value, type) => {\n const provider = (TwoFactorProviders as any)[type];\n if (provider != null && provider.priority > providerPriority) {\n if (type === TwoFactorProviderType.WebAuthn && !webAuthnSupported) {\n return;\n }\n\n providerType = type;\n providerPriority = provider.priority;\n }\n });\n\n return providerType;\n }\n\n async makePreloginKey(masterPassword: string, email: string): Promise {\n email = email.trim().toLowerCase();\n let kdf: KdfType = null;\n let kdfIterations: number = null;\n try {\n const preloginResponse = await this.apiService.postPrelogin(new PreloginRequest(email));\n if (preloginResponse != null) {\n kdf = preloginResponse.kdf;\n kdfIterations = preloginResponse.kdfIterations;\n }\n } catch (e) {\n if (e == null || e.statusCode !== 404) {\n throw e;\n }\n }\n return this.cryptoService.makeKey(masterPassword, email, kdf, kdfIterations);\n }\n\n authingWithApiKey(): boolean {\n return this.clientId != null && this.clientSecret != null;\n }\n\n authingWithSso(): boolean {\n return this.code != null && this.codeVerifier != null && this.ssoRedirectUrl != null;\n }\n\n authingWithPassword(): boolean {\n return this.email != null && this.masterPasswordHash != null;\n }\n\n private async logInHelper(email: string, hashedPassword: string, code: string, codeVerifier: string,\n redirectUrl: string, clientId: string, clientSecret: string, key: SymmetricCryptoKey,\n twoFactorProvider?: TwoFactorProviderType, twoFactorToken?: string, remember?: boolean): Promise {\n const storedTwoFactorToken = await this.tokenService.getTwoFactorToken(email);\n const appId = await this.appIdService.getAppId();\n const deviceRequest = new DeviceRequest(appId, this.platformUtilsService);\n\n let emailPassword: string[] = [];\n let codeCodeVerifier: string[] = [];\n let clientIdClientSecret: string[] = [];\n\n if (email != null && hashedPassword != null) {\n emailPassword = [email, hashedPassword];\n } else {\n emailPassword = null;\n }\n if (code != null && codeVerifier != null && redirectUrl != null) {\n codeCodeVerifier = [code, codeVerifier, redirectUrl];\n } else {\n codeCodeVerifier = null;\n }\n if (clientId != null && clientSecret != null) {\n clientIdClientSecret = [clientId, clientSecret];\n } else {\n clientIdClientSecret = null;\n }\n\n let request: TokenRequest;\n if (twoFactorToken != null && twoFactorProvider != null) {\n request = new TokenRequest(emailPassword, codeCodeVerifier, clientIdClientSecret, twoFactorProvider,\n twoFactorToken, remember, deviceRequest);\n } else if (storedTwoFactorToken != null) {\n request = new TokenRequest(emailPassword, codeCodeVerifier, clientIdClientSecret, TwoFactorProviderType.Remember,\n storedTwoFactorToken, false, deviceRequest);\n } else {\n request = new TokenRequest(emailPassword, codeCodeVerifier, clientIdClientSecret, null,\n null, false, deviceRequest);\n }\n\n const response = await this.apiService.postIdentityToken(request);\n\n this.clearState();\n const result = new AuthResult();\n result.twoFactor = !(response as any).accessToken;\n\n if (result.twoFactor) {\n // two factor required\n const twoFactorResponse = response as IdentityTwoFactorResponse;\n this.email = email;\n this.masterPasswordHash = hashedPassword;\n this.code = code;\n this.codeVerifier = codeVerifier;\n this.ssoRedirectUrl = redirectUrl;\n this.clientId = clientId;\n this.clientSecret = clientSecret;\n this.key = this.setCryptoKeys ? key : null;\n this.twoFactorProvidersData = twoFactorResponse.twoFactorProviders2;\n result.twoFactorProviders = twoFactorResponse.twoFactorProviders2;\n return result;\n }\n\n const tokenResponse = response as IdentityTokenResponse;\n result.resetMasterPassword = tokenResponse.resetMasterPassword;\n if (tokenResponse.twoFactorToken != null) {\n await this.tokenService.setTwoFactorToken(tokenResponse.twoFactorToken, email);\n }\n\n await this.tokenService.setTokens(tokenResponse.accessToken, tokenResponse.refreshToken);\n await this.userService.setInformation(this.tokenService.getUserId(), this.tokenService.getEmail(),\n tokenResponse.kdf, tokenResponse.kdfIterations);\n if (this.setCryptoKeys) {\n if (key != null) {\n await this.cryptoService.setKey(key);\n }\n if (hashedPassword != null) {\n await this.cryptoService.setKeyHash(hashedPassword);\n }\n\n // Skip this step during SSO new user flow. No key is returned from server.\n if (code == null || tokenResponse.key != null) {\n await this.cryptoService.setEncKey(tokenResponse.key);\n\n // User doesn't have a key pair yet (old account), let's generate one for them\n if (tokenResponse.privateKey == null) {\n try {\n const keyPair = await this.cryptoService.makeKeyPair();\n await this.apiService.postAccountKeys(new KeysRequest(keyPair[0], keyPair[1].encryptedString));\n tokenResponse.privateKey = keyPair[1].encryptedString;\n } catch (e) {\n // tslint:disable-next-line\n this.logService.error(e);\n }\n }\n\n await this.cryptoService.setEncPrivateKey(tokenResponse.privateKey);\n }\n }\n\n if (this.vaultTimeoutService != null) {\n this.vaultTimeoutService.biometricLocked = false;\n }\n this.messagingService.send('loggedIn');\n return result;\n }\n\n private clearState(): void {\n this.key = null;\n this.email = null;\n this.masterPasswordHash = null;\n this.code = null;\n this.codeVerifier = null;\n this.ssoRedirectUrl = null;\n this.clientId = null;\n this.clientSecret = null;\n this.twoFactorProvidersData = null;\n this.selectedTwoFactorProviderType = null;\n }\n}\n","export class SelectionReadOnlyRequest {\n id: string;\n readOnly: boolean;\n hidePasswords: boolean;\n\n constructor(id: string, readOnly: boolean, hidePasswords: boolean) {\n this.id = id;\n this.readOnly = readOnly;\n this.hidePasswords = hidePasswords;\n }\n}\n","export enum DeviceType {\n Android = 0,\n iOS = 1,\n ChromeExtension = 2,\n FirefoxExtension = 3,\n OperaExtension = 4,\n EdgeExtension = 5,\n WindowsDesktop = 6,\n MacOsDesktop = 7,\n LinuxDesktop = 8,\n ChromeBrowser = 9,\n FirefoxBrowser = 10,\n OperaBrowser = 11,\n EdgeBrowser = 12,\n IEBrowser = 13,\n UnknownBrowser = 14,\n AndroidAmazon = 15,\n UWP = 16,\n SafariBrowser = 17,\n VivaldiBrowser = 18,\n VivaldiExtension = 19,\n SafariExtension = 20,\n}\n","export abstract class SettingsService {\n clearCache: () => void;\n getEquivalentDomains: () => Promise;\n setEquivalentDomains: (equivalentDomains: string[][]) => Promise;\n clear: (userId: string) => Promise;\n}\n","export enum PlanType {\n Free = 0,\n FamiliesAnnually2019 = 1,\n TeamsMonthly2019 = 2,\n TeamsAnnually2019 = 3,\n EnterpriseMonthly2019 = 4,\n EnterpriseAnnually2019 = 5,\n Custom = 6,\n FamiliesAnnually = 7,\n TeamsMonthly = 8,\n TeamsAnnually = 9,\n EnterpriseMonthly = 10,\n EnterpriseAnnually = 11,\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { PaymentMethodType } from 'jslib/enums/paymentMethodType';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { PaymentComponent } from './payment.component';\nimport { TaxInfoComponent } from './tax-info.component';\n\nimport { OrganizationUserStatusType } from 'jslib/enums/organizationUserStatusType';\nimport { OrganizationUserType } from 'jslib/enums/organizationUserType';\nimport { PlanType } from 'jslib/enums/planType';\nimport { PolicyType } from 'jslib/enums/policyType';\nimport { ProductType } from 'jslib/enums/productType';\n\nimport { OrganizationCreateRequest } from 'jslib/models/request/organizationCreateRequest';\nimport { OrganizationUpgradeRequest } from 'jslib/models/request/organizationUpgradeRequest';\nimport { PlanResponse } from 'jslib/models/response/planResponse';\n\n@Component({\n selector: 'app-organization-plans',\n templateUrl: 'organization-plans.component.html',\n})\nexport class OrganizationPlansComponent implements OnInit {\n @ViewChild(PaymentComponent) paymentComponent: PaymentComponent;\n @ViewChild(TaxInfoComponent) taxComponent: TaxInfoComponent;\n\n @Input() organizationId: string;\n @Input() showFree = true;\n @Input() showCancel = false;\n @Input() product: ProductType = ProductType.Free;\n @Input() plan: PlanType = PlanType.Free;\n @Output() onSuccess = new EventEmitter();\n @Output() onCanceled = new EventEmitter();\n\n loading: boolean = true;\n selfHosted: boolean = false;\n ownedBusiness: boolean = false;\n premiumAccessAddon: boolean = false;\n additionalStorage: number = 0;\n additionalSeats: number = 0;\n name: string;\n billingEmail: string;\n businessName: string;\n productTypes = ProductType;\n formPromise: Promise;\n singleOrgPolicyBlock: boolean = false;\n freeTrial: boolean = false;\n\n plans: PlanResponse[];\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, platformUtilsService: PlatformUtilsService,\n private cryptoService: CryptoService, private router: Router, private syncService: SyncService,\n private policyService: PolicyService, private userService: UserService) {\n this.selfHosted = platformUtilsService.isSelfHost();\n }\n\n async ngOnInit() {\n if (!this.selfHosted) {\n const plans = await this.apiService.getPlans();\n this.plans = plans.data;\n if (this.product === ProductType.Enterprise || this.product === ProductType.Teams) {\n this.ownedBusiness = true;\n }\n }\n this.loading = false;\n }\n\n get createOrganization() {\n return this.organizationId == null;\n }\n\n get selectedPlan() {\n return this.plans.find(plan => plan.type === this.plan);\n }\n\n get selectedPlanInterval() {\n return this.selectedPlan.isAnnual\n ? 'year'\n : 'month';\n }\n\n get selectableProducts() {\n let validPlans = this.plans.filter(plan => plan.type !== PlanType.Custom);\n\n if (this.ownedBusiness) {\n validPlans = validPlans.filter(plan => plan.canBeUsedByBusiness);\n }\n\n if (!this.showFree) {\n validPlans = validPlans.filter(plan => plan.product !== ProductType.Free);\n }\n\n validPlans = validPlans\n .filter(plan => !plan.legacyYear\n && !plan.disabled\n && (plan.isAnnual || plan.product === this.productTypes.Free));\n\n return validPlans;\n }\n\n get selectablePlans() {\n return this.plans.filter(plan => !plan.legacyYear && !plan.disabled && plan.product === this.product);\n }\n\n additionalStoragePriceMonthly(selectedPlan: PlanResponse) {\n if (!selectedPlan.isAnnual) {\n return selectedPlan.additionalStoragePricePerGb;\n }\n return selectedPlan.additionalStoragePricePerGb / 12;\n }\n\n seatPriceMonthly(selectedPlan: PlanResponse) {\n if (!selectedPlan.isAnnual) {\n return selectedPlan.seatPrice;\n }\n return selectedPlan.seatPrice / 12;\n }\n\n additionalStorageTotal(plan: PlanResponse): number {\n if (!plan.hasAdditionalStorageOption) {\n return 0;\n }\n\n return plan.additionalStoragePricePerGb * Math.abs(this.additionalStorage || 0);\n }\n\n seatTotal(plan: PlanResponse): number {\n if (!plan.hasAdditionalSeatsOption) {\n return 0;\n }\n\n return plan.seatPrice * Math.abs(this.additionalSeats || 0);\n }\n\n get subtotal() {\n let subTotal = this.selectedPlan.basePrice;\n if (this.selectedPlan.hasAdditionalSeatsOption && this.additionalSeats) {\n subTotal += this.seatTotal(this.selectedPlan);\n }\n if (this.selectedPlan.hasAdditionalStorageOption && this.additionalStorage) {\n subTotal += this.additionalStorageTotal(this.selectedPlan);\n }\n if (this.selectedPlan.hasPremiumAccessOption && this.premiumAccessAddon) {\n subTotal += this.selectedPlan.premiumAccessOptionPrice;\n }\n return subTotal;\n }\n\n get taxCharges() {\n return this.taxComponent != null && this.taxComponent.taxRate != null ?\n (this.taxComponent.taxRate / 100) * this.subtotal :\n 0;\n }\n\n get total() {\n return (this.subtotal + this.taxCharges) || 0;\n }\n\n changedProduct() {\n this.plan = this.selectablePlans[0].type;\n if (!this.selectedPlan.hasPremiumAccessOption) {\n this.premiumAccessAddon = false;\n }\n if (!this.selectedPlan.hasAdditionalStorageOption) {\n this.additionalStorage = 0;\n }\n if (!this.selectedPlan.hasAdditionalSeatsOption) {\n this.additionalSeats = 0;\n } else if (!this.additionalSeats && !this.selectedPlan.baseSeats &&\n this.selectedPlan.hasAdditionalSeatsOption) {\n this.additionalSeats = 1;\n }\n this.freeTrial = this.selectedPlan.trialPeriodDays != null;\n }\n\n changedOwnedBusiness() {\n if (!this.ownedBusiness || this.selectedPlan.canBeUsedByBusiness) {\n return;\n }\n this.product = ProductType.Teams;\n this.plan = PlanType.TeamsAnnually;\n }\n\n changedCountry() {\n this.paymentComponent.hideBank = this.taxComponent.taxInfo.country !== 'US';\n // Bank Account payments are only available for US customers\n if (this.paymentComponent.hideBank &&\n this.paymentComponent.method === PaymentMethodType.BankAccount) {\n this.paymentComponent.method = PaymentMethodType.Card;\n this.paymentComponent.changeMethod();\n }\n }\n\n cancel() {\n this.onCanceled.emit();\n }\n\n async submit() {\n if (this.singleOrgPolicyBlock) {\n return;\n } else {\n const policies = await this.policyService.getAll(PolicyType.SingleOrg);\n const orgs = await this.userService.getAllOrganizations();\n\n const orgsWithSingleOrgPolicy = policies\n .filter(p => p.enabled && p.type === PolicyType.SingleOrg)\n .map(p => p.organizationId);\n\n this.singleOrgPolicyBlock = orgs.some(org =>\n org.type !== OrganizationUserType.Owner &&\n org.type !== OrganizationUserType.Admin &&\n org.status !== OrganizationUserStatusType.Invited &&\n orgsWithSingleOrgPolicy.includes(org.id));\n\n if (this.singleOrgPolicyBlock) {\n return;\n }\n }\n\n let files: FileList = null;\n if (this.createOrganization && this.selfHosted) {\n const fileEl = document.getElementById('file') as HTMLInputElement;\n files = fileEl.files;\n if (files == null || files.length === 0) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectFile'));\n return;\n }\n }\n\n try {\n const doSubmit = async () => {\n let orgId: string = null;\n if (this.createOrganization) {\n let tokenResult: [string, PaymentMethodType] = null;\n if (!this.selfHosted && this.plan !== PlanType.Free) {\n tokenResult = await this.paymentComponent.createPaymentToken();\n }\n const shareKey = await this.cryptoService.makeShareKey();\n const key = shareKey[0].encryptedString;\n const collection = await this.cryptoService.encrypt(\n this.i18nService.t('defaultCollection'), shareKey[1]);\n const collectionCt = collection.encryptedString;\n\n if (this.selfHosted) {\n const fd = new FormData();\n fd.append('license', files[0]);\n fd.append('key', key);\n fd.append('collectionName', collectionCt);\n const response = await this.apiService.postOrganizationLicense(fd);\n orgId = response.id;\n } else {\n const request = new OrganizationCreateRequest();\n request.key = key;\n request.collectionName = collectionCt;\n request.name = this.name;\n request.billingEmail = this.billingEmail;\n\n if (this.selectedPlan.type === PlanType.Free) {\n request.planType = PlanType.Free;\n } else {\n request.paymentToken = tokenResult[0];\n request.paymentMethodType = tokenResult[1];\n request.businessName = this.ownedBusiness ? this.businessName : null;\n request.additionalSeats = this.additionalSeats;\n request.additionalStorageGb = this.additionalStorage;\n request.premiumAccessAddon = this.selectedPlan.hasPremiumAccessOption &&\n this.premiumAccessAddon;\n request.planType = this.selectedPlan.type;\n request.billingAddressPostalCode = this.taxComponent.taxInfo.postalCode;\n request.billingAddressCountry = this.taxComponent.taxInfo.country;\n if (this.taxComponent.taxInfo.includeTaxId) {\n request.taxIdNumber = this.taxComponent.taxInfo.taxId;\n request.billingAddressLine1 = this.taxComponent.taxInfo.line1;\n request.billingAddressLine2 = this.taxComponent.taxInfo.line2;\n request.billingAddressCity = this.taxComponent.taxInfo.city;\n request.billingAddressState = this.taxComponent.taxInfo.state;\n }\n }\n const response = await this.apiService.postOrganization(request);\n orgId = response.id;\n }\n } else {\n const request = new OrganizationUpgradeRequest();\n request.businessName = this.ownedBusiness ? this.businessName : null;\n request.additionalSeats = this.additionalSeats;\n request.additionalStorageGb = this.additionalStorage;\n request.premiumAccessAddon = this.selectedPlan.hasPremiumAccessOption &&\n this.premiumAccessAddon;\n request.planType = this.selectedPlan.type;\n request.billingAddressCountry = this.taxComponent.taxInfo.country;\n request.billingAddressPostalCode = this.taxComponent.taxInfo.postalCode;\n\n const result = await this.apiService.postOrganizationUpgrade(this.organizationId, request);\n if (!result.success && result.paymentIntentClientSecret != null) {\n await this.paymentComponent.handleStripeCardPayment(result.paymentIntentClientSecret, null);\n }\n orgId = this.organizationId;\n }\n\n if (orgId != null) {\n await this.apiService.refreshIdentityToken();\n await this.syncService.fullSync(true);\n if (this.createOrganization) {\n this.toasterService.popAsync('success',\n this.i18nService.t('organizationCreated'), this.i18nService.t('organizationReadyToGo'));\n } else {\n this.toasterService.popAsync('success', null, this.i18nService.t('organizationUpgraded'));\n }\n this.router.navigate(['/organizations/' + orgId]);\n }\n };\n\n this.formPromise = doSubmit();\n await this.formPromise;\n this.onSuccess.emit();\n } catch { }\n }\n\n}\n","\n \n {{'loading' | i18n}}\n\n\n

{{'uploadLicenseFileOrg' | i18n}}

\n
\n
\n \n \n {{'licenseFileDesc' | i18n : 'bitwarden_organization_license.json'}}\n
\n \n
\n
\n
\n

{{'generalInformation' | i18n}}

\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n

{{'chooseYourPlan' | i18n}}

\n
\n \n \n
\n
\n \n

{{'users' | i18n}}

\n
\n
\n \n \n {{'userSeatsHowManyDesc' | i18n}}\n
\n
\n
\n

{{'addons' | i18n}}

\n
\n
\n \n \n {{'userSeatsAdditionalDesc' | i18n : selectedPlan.baseSeats : (seatPriceMonthly(selectedPlan) | currency:'$')}}\n
\n
\n
\n
\n \n \n {{'additionalStorageIntervalDesc' | i18n : '1 GB' : (additionalStoragePriceMonthly(selectedPlan) | currency:'$') : ('month' | i18n)}}\n
\n
\n
\n
\n
\n \n \n
\n {{'premiumAccessDesc' | i18n : (3.33 | currency:'$') : ('month' | i18n)}}\n
\n
\n

{{'summary' | i18n}}

\n
\n \n \n
\n
\n

{{ (createOrganization ? 'paymentInformation' : 'billingInformation') | i18n}}

\n \n \n
\n
\n {{ 'planPrice' | i18n }}: {{ subtotal | currency: 'USD $' }}\n
\n \n {{ 'estimatedTax' | i18n }}: {{ taxCharges | currency: 'USD $' }}\n \n
\n
\n

{{'total' | i18n}}:\n {{total | currency:'USD $'}}/{{selectedPlanInterval | i18n}}

\n
\n \n {{'paymentChargedWithTrial' | i18n : (selectedPlanInterval | i18n) }}\n \n \n \n {{'paymentCharged' | i18n : (selectedPlanInterval | i18n) }}\n \n \n \n \n \n
\n
\n {{'singleOrgBlockCreateMessage' | i18n}}\n
\n
\n \n \n
\n
\n","import { EncryptionType } from '../../enums/encryptionType';\n\nimport { Utils } from '../../misc/utils';\n\nexport class SymmetricCryptoKey {\n key: ArrayBuffer;\n encKey?: ArrayBuffer;\n macKey?: ArrayBuffer;\n encType: EncryptionType;\n\n keyB64: string;\n encKeyB64: string;\n macKeyB64: string;\n\n meta: any;\n\n constructor(key: ArrayBuffer, encType?: EncryptionType) {\n if (key == null) {\n throw new Error('Must provide key');\n }\n\n if (encType == null) {\n if (key.byteLength === 32) {\n encType = EncryptionType.AesCbc256_B64;\n } else if (key.byteLength === 64) {\n encType = EncryptionType.AesCbc256_HmacSha256_B64;\n } else {\n throw new Error('Unable to determine encType.');\n }\n }\n\n this.key = key;\n this.encType = encType;\n\n if (encType === EncryptionType.AesCbc256_B64 && key.byteLength === 32) {\n this.encKey = key;\n this.macKey = null;\n } else if (encType === EncryptionType.AesCbc128_HmacSha256_B64 && key.byteLength === 32) {\n this.encKey = key.slice(0, 16);\n this.macKey = key.slice(16, 32);\n } else if (encType === EncryptionType.AesCbc256_HmacSha256_B64 && key.byteLength === 64) {\n this.encKey = key.slice(0, 32);\n this.macKey = key.slice(32, 64);\n } else {\n throw new Error('Unsupported encType/key length.');\n }\n\n if (this.key != null) {\n this.keyB64 = Utils.fromBufferToB64(this.key);\n }\n if (this.encKey != null) {\n this.encKeyB64 = Utils.fromBufferToB64(this.encKey);\n }\n if (this.macKey != null) {\n this.macKeyB64 = Utils.fromBufferToB64(this.macKey);\n }\n }\n}\n","import { CardData } from '../data/cardData';\n\nimport Domain from './domainBase';\nimport { EncString } from './encString';\n\nimport { CardView } from '../view/cardView';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class Card extends Domain {\n cardholderName: EncString;\n brand: EncString;\n number: EncString;\n expMonth: EncString;\n expYear: EncString;\n code: EncString;\n\n constructor(obj?: CardData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.buildDomainModel(this, obj, {\n cardholderName: null,\n brand: null,\n number: null,\n expMonth: null,\n expYear: null,\n code: null,\n }, alreadyEncrypted, []);\n }\n\n decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise {\n return this.decryptObj(new CardView(this), {\n cardholderName: null,\n brand: null,\n number: null,\n expMonth: null,\n expYear: null,\n code: null,\n }, orgId, encKey);\n }\n\n toCardData(): CardData {\n const c = new CardData();\n this.buildDataModel(this, c, {\n cardholderName: null,\n brand: null,\n number: null,\n expMonth: null,\n expYear: null,\n code: null,\n });\n return c;\n }\n}\n","import { FieldType } from '../../enums/fieldType';\n\nimport { FieldData } from '../data/fieldData';\n\nimport Domain from './domainBase';\nimport { EncString } from './encString';\n\nimport { FieldView } from '../view/fieldView';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class Field extends Domain {\n name: EncString;\n value: EncString;\n type: FieldType;\n\n constructor(obj?: FieldData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.type = obj.type;\n this.buildDomainModel(this, obj, {\n name: null,\n value: null,\n }, alreadyEncrypted, []);\n }\n\n decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise {\n return this.decryptObj(new FieldView(this), {\n name: null,\n value: null,\n }, orgId, encKey);\n }\n\n toFieldData(): FieldData {\n const f = new FieldData();\n this.buildDataModel(this, f, {\n name: null,\n value: null,\n type: null,\n }, ['type']);\n return f;\n }\n}\n","import { IdentityData } from '../data/identityData';\n\nimport Domain from './domainBase';\nimport { EncString } from './encString';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nimport { IdentityView } from '../view/identityView';\n\nexport class Identity extends Domain {\n title: EncString;\n firstName: EncString;\n middleName: EncString;\n lastName: EncString;\n address1: EncString;\n address2: EncString;\n address3: EncString;\n city: EncString;\n state: EncString;\n postalCode: EncString;\n country: EncString;\n company: EncString;\n email: EncString;\n phone: EncString;\n ssn: EncString;\n username: EncString;\n passportNumber: EncString;\n licenseNumber: EncString;\n\n constructor(obj?: IdentityData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.buildDomainModel(this, obj, {\n title: null,\n firstName: null,\n middleName: null,\n lastName: null,\n address1: null,\n address2: null,\n address3: null,\n city: null,\n state: null,\n postalCode: null,\n country: null,\n company: null,\n email: null,\n phone: null,\n ssn: null,\n username: null,\n passportNumber: null,\n licenseNumber: null,\n }, alreadyEncrypted, []);\n }\n\n decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise {\n return this.decryptObj(new IdentityView(this), {\n title: null,\n firstName: null,\n middleName: null,\n lastName: null,\n address1: null,\n address2: null,\n address3: null,\n city: null,\n state: null,\n postalCode: null,\n country: null,\n company: null,\n email: null,\n phone: null,\n ssn: null,\n username: null,\n passportNumber: null,\n licenseNumber: null,\n }, orgId, encKey);\n }\n\n toIdentityData(): IdentityData {\n const i = new IdentityData();\n this.buildDataModel(this, i, {\n title: null,\n firstName: null,\n middleName: null,\n lastName: null,\n address1: null,\n address2: null,\n address3: null,\n city: null,\n state: null,\n postalCode: null,\n country: null,\n company: null,\n email: null,\n phone: null,\n ssn: null,\n username: null,\n passportNumber: null,\n licenseNumber: null,\n });\n return i;\n }\n}\n","import { LoginUri } from './loginUri';\n\nimport { LoginData } from '../data/loginData';\n\nimport { LoginView } from '../view/loginView';\n\nimport Domain from './domainBase';\nimport { EncString } from './encString';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class Login extends Domain {\n uris: LoginUri[];\n username: EncString;\n password: EncString;\n passwordRevisionDate?: Date;\n totp: EncString;\n\n constructor(obj?: LoginData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.passwordRevisionDate = obj.passwordRevisionDate != null ? new Date(obj.passwordRevisionDate) : null;\n this.buildDomainModel(this, obj, {\n username: null,\n password: null,\n totp: null,\n }, alreadyEncrypted, []);\n\n if (obj.uris) {\n this.uris = [];\n obj.uris.forEach(u => {\n this.uris.push(new LoginUri(u, alreadyEncrypted));\n });\n }\n }\n\n async decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise {\n const view = await this.decryptObj(new LoginView(this), {\n username: null,\n password: null,\n totp: null,\n }, orgId, encKey);\n\n if (this.uris != null) {\n view.uris = [];\n for (let i = 0; i < this.uris.length; i++) {\n const uri = await this.uris[i].decrypt(orgId, encKey);\n view.uris.push(uri);\n }\n }\n\n return view;\n }\n\n toLoginData(): LoginData {\n const l = new LoginData();\n l.passwordRevisionDate = this.passwordRevisionDate != null ? this.passwordRevisionDate.toISOString() : null;\n this.buildDataModel(this, l, {\n username: null,\n password: null,\n totp: null,\n });\n\n if (this.uris != null && this.uris.length > 0) {\n l.uris = [];\n this.uris.forEach(u => {\n l.uris.push(u.toLoginUriData());\n });\n }\n\n return l;\n }\n}\n","import { UriMatchType } from '../../enums/uriMatchType';\n\nimport { LoginUriData } from '../data/loginUriData';\n\nimport { LoginUriView } from '../view/loginUriView';\n\nimport Domain from './domainBase';\nimport { EncString } from './encString';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class LoginUri extends Domain {\n uri: EncString;\n match: UriMatchType;\n\n constructor(obj?: LoginUriData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.match = obj.match;\n this.buildDomainModel(this, obj, {\n uri: null,\n }, alreadyEncrypted, []);\n }\n\n decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise {\n return this.decryptObj(new LoginUriView(this), {\n uri: null,\n }, orgId, encKey);\n }\n\n toLoginUriData(): LoginUriData {\n const u = new LoginUriData();\n this.buildDataModel(this, u, {\n uri: null,\n }, ['match']);\n return u;\n }\n}\n","import { SecureNoteType } from '../../enums/secureNoteType';\n\nimport { SecureNoteData } from '../data/secureNoteData';\n\nimport Domain from './domainBase';\n\nimport { SecureNoteView } from '../view/secureNoteView';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class SecureNote extends Domain {\n type: SecureNoteType;\n\n constructor(obj?: SecureNoteData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.type = obj.type;\n }\n\n decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise {\n return Promise.resolve(new SecureNoteView(this));\n }\n\n toSecureNoteData(): SecureNoteData {\n const n = new SecureNoteData();\n n.type = this.type;\n return n;\n }\n}\n","import {\n Directive,\n ElementRef,\n forwardRef,\n HostListener,\n Input,\n Renderer2,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NgControl,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\n\n// ref: https://juristr.com/blog/2018/02/ng-true-value-directive/\n@Directive({\n selector: 'input[type=checkbox][appTrueFalseValue]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TrueFalseValueDirective),\n multi: true,\n },\n ],\n})\nexport class TrueFalseValueDirective implements ControlValueAccessor {\n @Input() trueValue = true;\n @Input() falseValue = false;\n\n constructor(private elementRef: ElementRef, private renderer: Renderer2) { }\n\n @HostListener('change', ['$event'])\n onHostChange(ev: any) {\n this.propagateChange(ev.target.checked ? this.trueValue : this.falseValue);\n }\n\n writeValue(obj: any): void {\n if (obj === this.trueValue) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'checked', true);\n } else {\n this.renderer.setProperty(this.elementRef.nativeElement, 'checked', false);\n }\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n registerOnTouched(fn: any): void { /* nothing */ }\n\n setDisabledState?(isDisabled: boolean): void { /* nothing */ }\n\n private propagateChange = (_: any) => { /* nothing */ };\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class SelectionReadOnlyResponse extends BaseResponse {\n id: string;\n readOnly: boolean;\n hidePasswords: boolean;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.readOnly = this.getResponseProperty('ReadOnly');\n this.hidePasswords = this.getResponseProperty('HidePasswords');\n }\n}\n","import { BaseResponse } from './baseResponse';\nimport { ProfileOrganizationResponse } from './profileOrganizationResponse';\n\nexport class ProfileResponse extends BaseResponse {\n id: string;\n name: string;\n email: string;\n emailVerified: boolean;\n masterPasswordHint: string;\n premium: boolean;\n culture: string;\n twoFactorEnabled: boolean;\n key: string;\n privateKey: string;\n securityStamp: string;\n organizations: ProfileOrganizationResponse[] = [];\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.name = this.getResponseProperty('Name');\n this.email = this.getResponseProperty('Email');\n this.emailVerified = this.getResponseProperty('EmailVerified');\n this.masterPasswordHint = this.getResponseProperty('MasterPasswordHint');\n this.premium = this.getResponseProperty('Premium');\n this.culture = this.getResponseProperty('Culture');\n this.twoFactorEnabled = this.getResponseProperty('TwoFactorEnabled');\n this.key = this.getResponseProperty('Key');\n this.privateKey = this.getResponseProperty('PrivateKey');\n this.securityStamp = this.getResponseProperty('SecurityStamp');\n\n const organizations = this.getResponseProperty('Organizations');\n if (organizations != null) {\n this.organizations = organizations.map((o: any) => new ProfileOrganizationResponse(o));\n }\n }\n}\n","import {\n Component,\n EventEmitter,\n Output,\n} from '@angular/core';\n\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { GroupingsComponent as BaseGroupingsComponent } from 'jslib/angular/components/groupings.component';\n\n@Component({\n selector: 'app-vault-groupings',\n templateUrl: 'groupings.component.html',\n})\nexport class GroupingsComponent extends BaseGroupingsComponent {\n @Output() onSearchTextChanged = new EventEmitter();\n\n searchText: string = '';\n searchPlaceholder: string = null;\n\n constructor(collectionService: CollectionService, folderService: FolderService,\n storageService: StorageService, userService: UserService) {\n super(collectionService, folderService, storageService, userService);\n }\n\n searchTextChanged() {\n this.onSearchTextChanged.emit(this.searchText);\n }\n}\n","
\n
\n {{'filters' | i18n}}\n \n \n \n
\n
\n \n \n

{{'types' | i18n}}

\n \n

\n \n {{'loading' | i18n}}\n

\n \n \n

\n {{'folders' | i18n}}\n \n \n \n

\n \n
\n \n

{{'collections' | i18n}}

\n \n
\n
\n
\n
\n","import { OrganizationData } from '../data/organizationData';\n\nimport { OrganizationUserStatusType } from '../../enums/organizationUserStatusType';\nimport { OrganizationUserType } from '../../enums/organizationUserType';\nimport { PermissionsApi } from '../api/permissionsApi';\n\n\nexport class Organization {\n id: string;\n name: string;\n status: OrganizationUserStatusType;\n type: OrganizationUserType;\n enabled: boolean;\n usePolicies: boolean;\n useGroups: boolean;\n useDirectory: boolean;\n useEvents: boolean;\n useTotp: boolean;\n use2fa: boolean;\n useApi: boolean;\n useBusinessPortal: boolean;\n useSso: boolean;\n selfHost: boolean;\n usersGetPremium: boolean;\n seats: number;\n maxCollections: number;\n maxStorageGb?: number;\n ssoBound: boolean;\n identifier: string;\n permissions: PermissionsApi;\n resetPasswordKey: string;\n userId: string;\n\n constructor(obj?: OrganizationData) {\n if (obj == null) {\n return;\n }\n\n this.id = obj.id;\n this.name = obj.name;\n this.status = obj.status;\n this.type = obj.type;\n this.enabled = obj.enabled;\n this.usePolicies = obj.usePolicies;\n this.useGroups = obj.useGroups;\n this.useDirectory = obj.useDirectory;\n this.useEvents = obj.useEvents;\n this.useTotp = obj.useTotp;\n this.use2fa = obj.use2fa;\n this.useApi = obj.useApi;\n this.useBusinessPortal = obj.useBusinessPortal;\n this.useSso = obj.useSso;\n this.selfHost = obj.selfHost;\n this.usersGetPremium = obj.usersGetPremium;\n this.seats = obj.seats;\n this.maxCollections = obj.maxCollections;\n this.maxStorageGb = obj.maxStorageGb;\n this.ssoBound = obj.ssoBound;\n this.identifier = obj.identifier;\n this.permissions = obj.permissions;\n this.resetPasswordKey = obj.resetPasswordKey;\n this.userId = obj.userId;\n }\n\n get canAccess() {\n if (this.type === OrganizationUserType.Owner) {\n return true;\n }\n return this.enabled && this.status === OrganizationUserStatusType.Confirmed;\n }\n\n get isManager() {\n return this.type === OrganizationUserType.Manager || this.type === OrganizationUserType.Owner ||\n this.type === OrganizationUserType.Admin;\n }\n\n get isAdmin() {\n return this.type === OrganizationUserType.Owner || this.type === OrganizationUserType.Admin;\n }\n\n get isOwner() {\n return this.type === OrganizationUserType.Owner;\n }\n\n get canAccessBusinessPortal() {\n return this.isAdmin || this.permissions.accessBusinessPortal;\n }\n\n get canAccessEventLogs() {\n return this.isAdmin || this.permissions.accessEventLogs;\n }\n\n get canAccessImportExport() {\n return this.isAdmin || this.permissions.accessImportExport;\n }\n\n get canAccessReports() {\n return this.isAdmin || this.permissions.accessReports;\n }\n\n get canManageAllCollections() {\n return this.isAdmin || this.permissions.manageAllCollections;\n }\n\n get canManageAssignedCollections() {\n return this.isManager || this.permissions.manageAssignedCollections;\n }\n\n get canManageGroups() {\n return this.isAdmin || this.permissions.manageGroups;\n }\n\n get canManageSso() {\n return this.isAdmin || this.permissions.manageSso;\n }\n\n get canManagePolicies() {\n return this.isAdmin || this.permissions.managePolicies;\n }\n\n get canManageUsers() {\n return this.isAdmin || this.permissions.manageUsers;\n }\n\n get isResetPasswordEnrolled() {\n return this.resetPasswordKey != null;\n }\n}\n","import { View } from './view';\n\nimport { SendFile } from '../domain/sendFile';\n\nexport class SendFileView implements View {\n id: string = null;\n size: string = null;\n sizeName: string = null;\n fileName: string = null;\n\n constructor(f?: SendFile) {\n if (!f) {\n return;\n }\n\n this.id = f.id;\n this.size = f.size;\n this.sizeName = f.sizeName;\n }\n\n get fileSize(): number {\n try {\n if (this.size != null) {\n return parseInt(this.size, null);\n }\n } catch { }\n return 0;\n }\n}\n","import { View } from './view';\n\nimport { SendText } from '../domain/sendText';\n\nexport class SendTextView implements View {\n text: string = null;\n hidden: boolean;\n\n constructor(t?: SendText) {\n if (!t) {\n return;\n }\n\n this.hidden = t.hidden;\n }\n\n get maskedText(): string {\n return this.text != null ? '••••••••' : null;\n }\n}\n","import {\n Component,\n Input,\n OnInit,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { Organization } from 'jslib/models/domain/organization';\n\nimport { Utils } from 'jslib/misc/utils';\n\nimport { OrganizationUserResetPasswordEnrollmentRequest } from 'jslib/models/request/organizationUserResetPasswordEnrollmentRequest';\n\n@Component({\n selector: 'app-organizations',\n templateUrl: 'organizations.component.html',\n})\nexport class OrganizationsComponent implements OnInit {\n @Input() vault = false;\n\n organizations: Organization[];\n loaded: boolean = false;\n actionPromise: Promise;\n // TODO Remove feature flag once ready for general release\n resetPasswordFeatureFlag = false;\n\n constructor(private userService: UserService, private platformUtilsService: PlatformUtilsService,\n private i18nService: I18nService, private apiService: ApiService,\n private toasterService: ToasterService, private syncService: SyncService,\n private cryptoService: CryptoService) { }\n\n async ngOnInit() {\n if (!this.vault) {\n await this.syncService.fullSync(true);\n await this.load();\n }\n }\n\n async load() {\n const orgs = await this.userService.getAllOrganizations();\n orgs.sort(Utils.getSortFunction(this.i18nService, 'name'));\n this.organizations = orgs;\n this.loaded = true;\n }\n\n async unlinkSso(org: Organization) {\n const confirmed = await this.platformUtilsService.showDialog(\n 'Are you sure you want to unlink SSO for this organization?', org.name,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.actionPromise = this.apiService.deleteSsoUser(org.id).then(() => {\n return this.syncService.fullSync(true);\n });\n await this.actionPromise;\n this.toasterService.popAsync('success', null, 'Unlinked SSO');\n await this.load();\n } catch { }\n }\n\n async leave(org: Organization) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('leaveOrganizationConfirmation'), org.name,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.actionPromise = this.apiService.postLeaveOrganization(org.id).then(() => {\n return this.syncService.fullSync(true);\n });\n await this.actionPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('leftOrganization'));\n await this.load();\n } catch { }\n }\n\n async toggleResetPasswordEnrollment(org: Organization) {\n // Feature Flag\n if (!this.resetPasswordFeatureFlag) {\n return;\n }\n\n // Set variables\n let keyString: string = null;\n let toastStringRef = 'withdrawPasswordResetSuccess';\n\n // Enroll - encrpyt user's encKey.key with organization key\n if (!org.isResetPasswordEnrolled) {\n const encKey = await this.cryptoService.getEncKey();\n const orgSymKey = await this.cryptoService.getOrgKey(org.id);\n const encryptedKey = await this.cryptoService.encrypt(encKey.key, orgSymKey);\n keyString = encryptedKey.encryptedString;\n toastStringRef = 'enrollPasswordResetSuccess';\n }\n\n // Create/Execute request\n try {\n const request = new OrganizationUserResetPasswordEnrollmentRequest();\n request.resetPasswordKey = keyString;\n this.actionPromise = this.apiService.putOrganizationUserResetPasswordEnrollment(org.id, org.userId, request)\n .then(() => {\n return this.syncService.fullSync(true);\n });\n await this.actionPromise;\n this.platformUtilsService.showToast('success', null, this.i18nService.t(toastStringRef));\n await this.load();\n } catch { }\n }\n}\n","\n

\n \n {{'loading' | i18n}}\n

\n \n \n

{{'noOrganizationsList' | i18n}}

\n
\n \n \n {{'newOrganization' | i18n}}\n \n
\n\n
\n

\n {{'organizations' | i18n}}\n \n \n \n {{'loading' | i18n}}\n \n \n

\n \n \n {{'newOrganization' | i18n}}\n \n
\n \n \n {{'loading' | i18n}}\n \n \n \n

{{'noOrganizationsList' | i18n}}

\n \n \n {{'newOrganization' | i18n}}\n \n
\n \n \n \n \n \n \n \n \n
\n \n \n {{o.name}}\n \n \n {{'organizationIsDisabled' | i18n}}\n \n \n \n {{'enrolledPasswordReset' | i18n}}\n \n \n \n
\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { TokenService } from 'jslib/abstractions/token.service';\n\n@Component({\n selector: 'app-navbar',\n templateUrl: 'navbar.component.html',\n})\nexport class NavbarComponent implements OnInit {\n selfHosted = false;\n name: string;\n email: string;\n\n constructor(private messagingService: MessagingService, private platformUtilsService: PlatformUtilsService,\n private tokenService: TokenService) {\n this.selfHosted = this.platformUtilsService.isSelfHost();\n }\n\n async ngOnInit() {\n this.name = await this.tokenService.getName();\n this.email = await this.tokenService.getEmail();\n if (this.name == null || this.name.trim() === '') {\n this.name = this.email;\n }\n }\n\n lock() {\n this.messagingService.send('lockVault');\n }\n\n logOut() {\n this.messagingService.send('logout');\n }\n}\n","\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\n@Component({\n selector: 'app-footer',\n templateUrl: 'footer.component.html',\n})\nexport class FooterComponent implements OnInit {\n version: string;\n year: string = '2015';\n\n constructor(private platformUtilsService: PlatformUtilsService) { }\n\n async ngOnInit() {\n this.year = new Date().getFullYear().toString();\n this.version = await this.platformUtilsService.getApplicationVersion();\n }\n}\n","
\n
\n
\n © {{year}}, Bitwarden Inc.\n
\n
\n
\n {{'versionNumber' | i18n : version}}\n
\n
\n
\n","export class KeysRequest {\n publicKey: string;\n encryptedPrivateKey: string;\n\n constructor(publicKey: string, encryptedPrivateKey: string) {\n this.publicKey = publicKey;\n this.encryptedPrivateKey = encryptedPrivateKey;\n }\n}\n","import { PolicyData } from '../data/policyData';\n\nimport Domain from './domainBase';\n\nimport { PolicyType } from '../../enums/policyType';\n\nexport class Policy extends Domain {\n id: string;\n organizationId: string;\n type: PolicyType;\n data: any;\n enabled: boolean;\n\n constructor(obj?: PolicyData) {\n super();\n if (obj == null) {\n return;\n }\n\n this.id = obj.id;\n this.organizationId = obj.organizationId;\n this.type = obj.type;\n this.data = obj.data;\n this.enabled = obj.enabled;\n }\n}\n","import { PolicyResponse } from '../response/policyResponse';\n\nimport { PolicyType } from '../../enums/policyType';\n\nexport class PolicyData {\n id: string;\n organizationId: string;\n type: PolicyType;\n data: any;\n enabled: boolean;\n\n constructor(response: PolicyResponse) {\n this.id = response.id;\n this.organizationId = response.organizationId;\n this.type = response.type;\n this.data = response.data;\n this.enabled = response.enabled;\n }\n}\n","import { OnInit } from '@angular/core';\n\nimport { CryptoService } from '../../abstractions/crypto.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { MessagingService } from '../../abstractions/messaging.service';\nimport { PasswordGenerationService } from '../../abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { PolicyService } from '../../abstractions/policy.service';\nimport { UserService } from '../../abstractions/user.service';\n\nimport { EncString } from '../../models/domain/encString';\nimport { MasterPasswordPolicyOptions } from '../../models/domain/masterPasswordPolicyOptions';\nimport { SymmetricCryptoKey } from '../../models/domain/symmetricCryptoKey';\n\nimport { KdfType } from '../../enums/kdfType';\n\nexport class ChangePasswordComponent implements OnInit {\n masterPassword: string;\n masterPasswordRetype: string;\n formPromise: Promise;\n masterPasswordScore: number;\n enforcedPolicyOptions: MasterPasswordPolicyOptions;\n\n protected email: string;\n protected kdf: KdfType;\n protected kdfIterations: number;\n\n private masterPasswordStrengthTimeout: any;\n\n constructor(protected i18nService: I18nService, protected cryptoService: CryptoService,\n protected messagingService: MessagingService, protected userService: UserService,\n protected passwordGenerationService: PasswordGenerationService,\n protected platformUtilsService: PlatformUtilsService, protected policyService: PolicyService) { }\n\n async ngOnInit() {\n this.email = await this.userService.getEmail();\n this.enforcedPolicyOptions = await this.policyService.getMasterPasswordPolicyOptions();\n }\n\n getPasswordScoreAlertDisplay() {\n if (this.enforcedPolicyOptions == null) {\n return '';\n }\n\n let str: string;\n switch (this.enforcedPolicyOptions.minComplexity) {\n case 4:\n str = this.i18nService.t('strong');\n break;\n case 3:\n str = this.i18nService.t('good');\n break;\n default:\n str = this.i18nService.t('weak');\n break;\n }\n return str + ' (' + this.enforcedPolicyOptions.minComplexity + ')';\n }\n\n async submit() {\n if (!await this.strongPassword()) {\n return;\n }\n\n if (!await this.setupSubmitActions()) {\n return;\n }\n\n const email = await this.userService.getEmail();\n if (this.kdf == null) {\n this.kdf = await this.userService.getKdf();\n }\n if (this.kdfIterations == null) {\n this.kdfIterations = await this.userService.getKdfIterations();\n }\n const key = await this.cryptoService.makeKey(this.masterPassword, email.trim().toLowerCase(),\n this.kdf, this.kdfIterations);\n const masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, key);\n\n let encKey: [SymmetricCryptoKey, EncString] = null;\n const existingEncKey = await this.cryptoService.getEncKey();\n if (existingEncKey == null) {\n encKey = await this.cryptoService.makeEncKey(key);\n } else {\n encKey = await this.cryptoService.remakeEncKey(key);\n }\n\n await this.performSubmitActions(masterPasswordHash, key, encKey);\n }\n\n async setupSubmitActions(): Promise {\n // Override in sub-class\n // Can be used for additional validation and/or other processes the should occur before changing passwords\n return true;\n }\n\n async performSubmitActions(masterPasswordHash: string, key: SymmetricCryptoKey,\n encKey: [SymmetricCryptoKey, EncString]) {\n // Override in sub-class\n }\n\n async strongPassword(): Promise {\n if (this.masterPassword == null || this.masterPassword === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return false;\n }\n if (this.masterPassword.length < 8) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassLength'));\n return false;\n }\n if (this.masterPassword !== this.masterPasswordRetype) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassDoesntMatch'));\n return false;\n }\n\n const strengthResult = this.passwordGenerationService.passwordStrength(this.masterPassword,\n this.getPasswordStrengthUserInput());\n\n if (this.enforcedPolicyOptions != null &&\n !this.policyService.evaluateMasterPassword(\n strengthResult.score,\n this.masterPassword,\n this.enforcedPolicyOptions)) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPasswordPolicyRequirementsNotMet'));\n return false;\n }\n\n if (strengthResult != null && strengthResult.score < 3) {\n const result = await this.platformUtilsService.showDialog(this.i18nService.t('weakMasterPasswordDesc'),\n this.i18nService.t('weakMasterPassword'), this.i18nService.t('yes'), this.i18nService.t('no'),\n 'warning');\n if (!result) {\n return false;\n }\n }\n\n return true;\n }\n\n updatePasswordStrength() {\n if (this.masterPasswordStrengthTimeout != null) {\n clearTimeout(this.masterPasswordStrengthTimeout);\n }\n this.masterPasswordStrengthTimeout = setTimeout(() => {\n const strengthResult = this.passwordGenerationService.passwordStrength(this.masterPassword,\n this.getPasswordStrengthUserInput());\n this.masterPasswordScore = strengthResult == null ? null : strengthResult.score;\n }, 300);\n }\n\n async logOut() {\n const confirmed = await this.platformUtilsService.showDialog(this.i18nService.t('logOutConfirmation'),\n this.i18nService.t('logOut'), this.i18nService.t('logOut'), this.i18nService.t('cancel'));\n if (confirmed) {\n this.messagingService.send('logout');\n }\n }\n\n private getPasswordStrengthUserInput() {\n let userInput: string[] = [];\n const atPosition = this.email.indexOf('@');\n if (atPosition > -1) {\n userInput = userInput.concat(this.email.substr(0, atPosition).trim().toLowerCase().split(/[^A-Za-z0-9]/));\n }\n return userInput;\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { OrganizationUserStatusType } from 'jslib/enums/organizationUserStatusType';\nimport { OrganizationUserType } from 'jslib/enums/organizationUserType';\nimport { SelectionReadOnlyRequest } from 'jslib/models/request/selectionReadOnlyRequest';\nimport { OrganizationUserUserDetailsResponse } from 'jslib/models/response/organizationUserResponse';\n\nimport { Utils } from 'jslib/misc/utils';\n\n@Component({\n selector: 'app-entity-users',\n templateUrl: 'entity-users.component.html',\n})\nexport class EntityUsersComponent implements OnInit {\n @Input() entity: 'group' | 'collection';\n @Input() entityId: string;\n @Input() entityName: string;\n @Input() organizationId: string;\n @Output() onEditedUsers = new EventEmitter();\n\n organizationUserType = OrganizationUserType;\n organizationUserStatusType = OrganizationUserStatusType;\n\n showSelected = false;\n loading = true;\n formPromise: Promise;\n selectedCount = 0;\n searchText: string;\n\n private allUsers: OrganizationUserUserDetailsResponse[] = [];\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService) { }\n\n async ngOnInit() {\n await this.loadUsers();\n this.loading = false;\n }\n\n get users() {\n if (this.showSelected) {\n return this.allUsers.filter(u => (u as any).checked);\n } else {\n return this.allUsers;\n }\n }\n\n async loadUsers() {\n const users = await this.apiService.getOrganizationUsers(this.organizationId);\n this.allUsers = users.data.map(r => r).sort(Utils.getSortFunction(this.i18nService, 'email'));\n if (this.entity === 'group') {\n const response = await this.apiService.getGroupUsers(this.organizationId, this.entityId);\n if (response != null && users.data.length > 0) {\n response.forEach(s => {\n const user = users.data.filter(u => u.id === s);\n if (user != null && user.length > 0) {\n (user[0] as any).checked = true;\n }\n });\n }\n } else if (this.entity === 'collection') {\n const response = await this.apiService.getCollectionUsers(this.organizationId, this.entityId);\n if (response != null && users.data.length > 0) {\n response.forEach(s => {\n const user = users.data.filter(u => !u.accessAll && u.id === s.id);\n if (user != null && user.length > 0) {\n (user[0] as any).checked = true;\n (user[0] as any).readOnly = s.readOnly;\n (user[0] as any).hidePasswords = s.hidePasswords;\n }\n });\n }\n }\n\n this.allUsers.forEach(u => {\n if (this.entity === 'collection' && u.accessAll) {\n (u as any).checked = true;\n }\n if ((u as any).checked) {\n this.selectedCount++;\n }\n });\n }\n\n check(u: OrganizationUserUserDetailsResponse) {\n if (this.entity === 'collection' && u.accessAll) {\n return;\n }\n (u as any).checked = !(u as any).checked;\n this.selectedChanged(u);\n }\n\n selectedChanged(u: OrganizationUserUserDetailsResponse) {\n if ((u as any).checked) {\n this.selectedCount++;\n } else {\n if (this.entity === 'collection') {\n (u as any).readOnly = false;\n (u as any).hidePasswords = false;\n }\n this.selectedCount--;\n }\n }\n\n filterSelected(showSelected: boolean) {\n this.showSelected = showSelected;\n }\n\n async submit() {\n try {\n if (this.entity === 'group') {\n const selections = this.users.filter(u => (u as any).checked).map(u => u.id);\n this.formPromise = this.apiService.putGroupUsers(this.organizationId, this.entityId, selections);\n } else {\n const selections = this.users.filter(u => (u as any).checked && !u.accessAll)\n .map(u => new SelectionReadOnlyRequest(u.id, !!(u as any).readOnly, !!(u as any).hidePasswords));\n this.formPromise = this.apiService.putCollectionUsers(this.organizationId, this.entityId, selections);\n }\n await this.formPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('updatedUsers'));\n this.onEditedUsers.emit();\n } catch { }\n }\n}\n","
\n
\n
\n
\n

\n {{'userAccess' | i18n}}\n {{entityName}}\n

\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n
\n {{'noUsersInList' | i18n}}\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
  {{'name' | i18n}} {{'userType' | i18n}}{{'hidePasswords' |\n i18n}}{{'readOnly' |\n i18n}}
\n \n \n \n \n {{u.email}}\n {{'invited'\n | i18n}}\n {{'accepted'\n | i18n}}\n {{u.name}}\n \n \n \n {{'userAccessAllItems' | i18n}}\n \n \n {{'owner' | i18n}}\n {{'admin' | i18n}}\n {{'manager' | i18n}}\n {{'user' | i18n}}\n {{'custom' | i18n}}\n \n \n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n Input,\n OnInit,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { EventService } from '../../services/event.service';\n\nimport { EventResponse } from 'jslib/models/response/eventResponse';\nimport { ListResponse } from 'jslib/models/response/listResponse';\n\n@Component({\n selector: 'app-entity-events',\n templateUrl: 'entity-events.component.html',\n})\nexport class EntityEventsComponent implements OnInit {\n @Input() name: string;\n @Input() entity: 'user' | 'cipher';\n @Input() entityId: string;\n @Input() organizationId: string;\n @Input() showUser = false;\n\n loading = true;\n loaded = false;\n events: any[];\n start: string;\n end: string;\n continuationToken: string;\n refreshPromise: Promise;\n morePromise: Promise;\n\n private orgUsersUserIdMap = new Map();\n private orgUsersIdMap = new Map();\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private eventService: EventService, private toasterService: ToasterService) { }\n\n async ngOnInit() {\n const defaultDates = this.eventService.getDefaultDateFilters();\n this.start = defaultDates[0];\n this.end = defaultDates[1];\n await this.load();\n }\n\n async load() {\n if (this.showUser) {\n const response = await this.apiService.getOrganizationUsers(this.organizationId);\n response.data.forEach(u => {\n const name = u.name == null || u.name.trim() === '' ? u.email : u.name;\n this.orgUsersIdMap.set(u.id, { name: name, email: u.email });\n this.orgUsersUserIdMap.set(u.userId, { name: name, email: u.email });\n });\n }\n await this.loadEvents(true);\n this.loaded = true;\n }\n\n async loadEvents(clearExisting: boolean) {\n if (this.refreshPromise != null || this.morePromise != null) {\n return;\n }\n\n let dates: string[] = null;\n try {\n dates = this.eventService.formatDateFilters(this.start, this.end);\n } catch (e) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidDateRange'));\n return;\n }\n\n this.loading = true;\n let response: ListResponse;\n try {\n let promise: Promise;\n if (this.entity === 'user') {\n promise = this.apiService.getEventsOrganizationUser(this.organizationId, this.entityId,\n dates[0], dates[1], clearExisting ? null : this.continuationToken);\n } else {\n promise = this.apiService.getEventsCipher(this.entityId,\n dates[0], dates[1], clearExisting ? null : this.continuationToken);\n }\n if (clearExisting) {\n this.refreshPromise = promise;\n } else {\n this.morePromise = promise;\n }\n response = await promise;\n } catch { }\n\n this.continuationToken = response.continuationToken;\n const events = response.data.map(r => {\n const userId = r.actingUserId == null ? r.userId : r.actingUserId;\n const eventInfo = this.eventService.getEventInfo(r);\n const user = this.showUser && userId != null && this.orgUsersUserIdMap.has(userId) ?\n this.orgUsersUserIdMap.get(userId) : null;\n return {\n message: eventInfo.message,\n appIcon: eventInfo.appIcon,\n appName: eventInfo.appName,\n userId: userId,\n userName: user != null ? user.name : this.showUser ? this.i18nService.t('unknown') : null,\n userEmail: user != null ? user.email : this.showUser ? '' : null,\n date: r.date,\n ip: r.ipAddress,\n type: r.type,\n };\n });\n\n if (!clearExisting && this.events != null && this.events.length > 0) {\n this.events = this.events.concat(events);\n } else {\n this.events = events;\n }\n\n this.loading = false;\n this.morePromise = null;\n this.refreshPromise = null;\n }\n}\n","
\n
\n
\n
\n

\n {{'eventLogs' | i18n}}\n {{name}}\n

\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n
\n
\n \n \n -\n \n \n
\n \n
\n
\n
\n {{'noEventsInList' | i18n}}\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
{{'timestamp' | i18n}}\n {{'device' | i18n}}\n {{'user' | i18n}}{{'event' | i18n}}
{{e.date | date:'medium'}}\n \n {{e.appName}}, {{e.ip}}\n \n {{e.userName}}\n
\n \n
\n
\n \n
\n
\n
\n
\n","import { BaseResponse } from '../response/baseResponse';\n\nexport class PermissionsApi extends BaseResponse {\n accessBusinessPortal: boolean;\n accessEventLogs: boolean;\n accessImportExport: boolean;\n accessReports: boolean;\n manageAllCollections: boolean;\n manageAssignedCollections: boolean;\n manageCiphers: boolean;\n manageGroups: boolean;\n manageSso: boolean;\n managePolicies: boolean;\n manageUsers: boolean;\n manageResetPassword: boolean;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return this;\n }\n this.accessBusinessPortal = this.getResponseProperty('AccessBusinessPortal');\n this.accessEventLogs = this.getResponseProperty('AccessEventLogs');\n this.accessImportExport = this.getResponseProperty('AccessImportExport');\n this.accessReports = this.getResponseProperty('AccessReports');\n this.manageAllCollections = this.getResponseProperty('ManageAllCollections');\n this.manageAssignedCollections = this.getResponseProperty('ManageAssignedCollections');\n this.manageCiphers = this.getResponseProperty('ManageCiphers');\n this.manageGroups = this.getResponseProperty('ManageGroups');\n this.manageSso = this.getResponseProperty('ManageSso');\n this.managePolicies = this.getResponseProperty('ManagePolicies');\n this.manageUsers = this.getResponseProperty('ManageUsers');\n this.manageResetPassword = this.getResponseProperty('ManageResetPassword');\n }\n}\n","import { Component } from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { PasswordVerificationRequest } from 'jslib/models/request/passwordVerificationRequest';\n\nimport { ApiKeyResponse } from 'jslib/models/response/apiKeyResponse';\n\n@Component({\n selector: 'app-api-key',\n templateUrl: 'api-key.component.html',\n})\nexport class ApiKeyComponent {\n keyType: string;\n isRotation: boolean;\n postKey: (entityId: string, request: PasswordVerificationRequest) => Promise;\n entityId: string;\n scope: string;\n grantType: string;\n apiKeyTitle: string;\n apiKeyWarning: string;\n apiKeyDescription: string;\n\n masterPassword: string;\n formPromise: Promise;\n clientId: string;\n clientSecret: string;\n\n constructor(private i18nService: I18nService, private toasterService: ToasterService,\n private cryptoService: CryptoService) { }\n\n async submit() {\n if (this.masterPassword == null || this.masterPassword === '') {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n const request = new PasswordVerificationRequest();\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n try {\n this.formPromise = this.postKey(this.entityId, request);\n const response = await this.formPromise;\n this.clientSecret = response.apiKey;\n this.clientId = `${this.keyType}.${this.entityId}`;\n } catch { }\n }\n}\n","
\n
\n
\n
\n

{{apiKeyTitle | i18n}}

\n \n
\n
\n

{{apiKeyDescription | i18n}}

\n \n \n \n \n {{apiKeyWarning | i18n}}\n \n

\n client_id:
\n {{clientId}}\n

\n

\n client_secret:
\n {{clientSecret}}\n

\n

\n scope:
\n {{scope}}\n

\n

\n grant_type:
\n {{grantType}}\n

\n
\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n Input,\n} from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { PasswordVerificationRequest } from 'jslib/models/request/passwordVerificationRequest';\n\n@Component({\n selector: 'app-purge-vault',\n templateUrl: 'purge-vault.component.html',\n})\nexport class PurgeVaultComponent {\n @Input() organizationId?: string = null;\n\n masterPassword: string;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, private cryptoService: CryptoService,\n private router: Router) { }\n\n async submit() {\n if (this.masterPassword == null || this.masterPassword === '') {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n const request = new PasswordVerificationRequest();\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n try {\n this.formPromise = this.apiService.postPurgeCiphers(request, this.organizationId);\n await this.formPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('vaultPurged'));\n if (this.organizationId != null) {\n this.router.navigate(['organizations', this.organizationId, 'vault']);\n } else {\n this.router.navigate(['vault']);\n }\n } catch { }\n }\n}\n","
\n
\n
\n
\n

{{'purgeVault' | i18n}}

\n \n
\n
\n

{{(organizationId ? 'purgeOrgVaultDesc' : 'purgeVaultDesc') | i18n}}

\n {{'purgeVaultWarning' | i18n}}\n \n \n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { BillingResponse } from 'jslib/models/response/billingResponse';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { PaymentMethodType } from 'jslib/enums/paymentMethodType';\nimport { TransactionType } from 'jslib/enums/transactionType';\nimport { VerifyBankRequest } from 'jslib/models/request/verifyBankRequest';\n\n@Component({\n selector: 'app-user-billing',\n templateUrl: 'user-billing.component.html',\n})\nexport class UserBillingComponent implements OnInit {\n loading = false;\n firstLoaded = false;\n showAdjustPayment = false;\n showAddCredit = false;\n billing: BillingResponse;\n paymentMethodType = PaymentMethodType;\n transactionType = TransactionType;\n organizationId: string;\n verifyAmount1: number;\n verifyAmount2: number;\n\n verifyBankPromise: Promise;\n\n constructor(protected apiService: ApiService, protected i18nService: I18nService,\n protected toasterService: ToasterService, protected platformUtilsService: PlatformUtilsService) { }\n\n async ngOnInit() {\n await this.load();\n this.firstLoaded = true;\n }\n\n async load() {\n if (this.loading) {\n return;\n }\n this.loading = true;\n if (this.organizationId != null) {\n this.billing = await this.apiService.getOrganizationBilling(this.organizationId);\n } else {\n this.billing = await this.apiService.getUserBilling();\n }\n this.loading = false;\n }\n\n async verifyBank() {\n if (this.loading) {\n return;\n }\n\n try {\n const request = new VerifyBankRequest();\n request.amount1 = this.verifyAmount1;\n request.amount2 = this.verifyAmount2;\n this.verifyBankPromise = this.apiService.postOrganizationVerifyBank(this.organizationId, request);\n await this.verifyBankPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('verifiedBankAccount'));\n this.load();\n } catch { }\n }\n\n addCredit() {\n if (this.paymentSourceInApp) {\n this.platformUtilsService.showDialog(this.i18nService.t('cannotPerformInAppPurchase'),\n this.i18nService.t('addCredit'), null, null, 'warning');\n return;\n }\n this.showAddCredit = true;\n }\n\n closeAddCredit(load: boolean) {\n this.showAddCredit = false;\n if (load) {\n this.load();\n }\n }\n\n changePayment() {\n if (this.paymentSourceInApp) {\n this.platformUtilsService.showDialog(this.i18nService.t('cannotPerformInAppPurchase'),\n this.i18nService.t('changePaymentMethod'), null, null, 'warning');\n return;\n }\n this.showAdjustPayment = true;\n }\n\n closePayment(load: boolean) {\n this.showAdjustPayment = false;\n if (load) {\n this.load();\n }\n }\n\n get isCreditBalance() {\n return this.billing == null || this.billing.balance <= 0;\n }\n\n get creditOrBalance() {\n return Math.abs(this.billing != null ? this.billing.balance : 0);\n }\n\n get paymentSource() {\n return this.billing != null ? this.billing.paymentSource : null;\n }\n\n get paymentSourceInApp() {\n return this.paymentSource != null &&\n (this.paymentSource.type === PaymentMethodType.AppleInApp ||\n this.paymentSource.type === PaymentMethodType.GoogleInApp);\n }\n\n get invoices() {\n return this.billing != null ? this.billing.invoices : null;\n }\n\n get transactions() {\n return this.billing != null ? this.billing.transactions : null;\n }\n}\n","
\n

\n {{'billing' | i18n}}\n

\n \n
\n\n \n {{'loading' | i18n}}\n\n\n

{{(isCreditBalance ? 'accountCredit' : 'accountBalance') | i18n}}

\n

{{creditOrBalance | currency:'$'}}

\n

{{'creditAppliedDesc' | i18n}}

\n \n \n \n

{{'paymentMethod' | i18n}}

\n

{{'noPaymentMethod' | i18n}}

\n \n \n

{{'verifyBankAccountDesc' | i18n}} {{'verifyBankAccountFailureWarning' | i18n}}

\n
\n \n
\n
\n
$0.
\n
\n \n
\n \n
\n
\n
$0.
\n
\n \n
\n \n
\n
\n

\n \n {{'inAppPurchase' | i18n}}\n {{paymentSource.description}}\n

\n
\n \n \n \n

{{'invoices' | i18n}}

\n

{{'noInvoices' | i18n}}

\n \n \n \n \n \n \n \n \n \n
{{i.date | date:'mediumDate'}}\n \n \n \n {{'invoiceNumber' | i18n : i.number}}\n {{i.amount | currency:'$'}}\n \n \n {{'paid' | i18n}}\n \n \n \n {{'unpaid' | i18n}}\n \n
\n

{{'transactions' | i18n}}

\n

{{'noTransactions' | i18n}}

\n \n \n \n \n \n \n \n \n \n
{{t.createdDate | date:'mediumDate'}}\n \n {{'chargeNoun' | i18n}}\n \n {{'refundNoun' | i18n}}\n \n \n {{t.details}}\n \n {{t.amount | currency:'$'}}
\n * {{'chargesStatement' | i18n : 'BITWARDEN'}}\n
\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { PaymentMethodType } from 'jslib/enums/paymentMethodType';\n\nimport { BitPayInvoiceRequest } from 'jslib/models/request/bitPayInvoiceRequest';\n\nimport { WebConstants } from '../../services/webConstants';\n\n@Component({\n selector: 'app-add-credit',\n templateUrl: 'add-credit.component.html',\n})\nexport class AddCreditComponent implements OnInit {\n @Input() creditAmount: string;\n @Input() showOptions = true;\n @Input() method = PaymentMethodType.PayPal;\n @Input() organizationId: string;\n @Output() onAdded = new EventEmitter();\n @Output() onCanceled = new EventEmitter();\n\n @ViewChild('ppButtonForm', { read: ElementRef, static: true }) ppButtonFormRef: ElementRef;\n\n paymentMethodType = PaymentMethodType;\n ppButtonFormAction = WebConstants.paypal.buttonActionProduction;\n ppButtonBusinessId = WebConstants.paypal.businessIdProduction;\n ppButtonCustomField: string;\n ppLoading = false;\n subject: string;\n returnUrl: string;\n formPromise: Promise;\n\n private userId: string;\n private name: string;\n private email: string;\n\n constructor(private userService: UserService, private apiService: ApiService,\n private platformUtilsService: PlatformUtilsService) {\n if (platformUtilsService.isDev()) {\n this.ppButtonFormAction = WebConstants.paypal.buttonActionSandbox;\n this.ppButtonBusinessId = WebConstants.paypal.businessIdSandbox;\n }\n }\n\n async ngOnInit() {\n if (this.organizationId != null) {\n if (this.creditAmount == null) {\n this.creditAmount = '20.00';\n }\n this.ppButtonCustomField = 'organization_id:' + this.organizationId;\n const org = await this.userService.getOrganization(this.organizationId);\n if (org != null) {\n this.subject = org.name;\n this.name = org.name;\n }\n } else {\n if (this.creditAmount == null) {\n this.creditAmount = '10.00';\n }\n this.userId = await this.userService.getUserId();\n this.subject = await this.userService.getEmail();\n this.email = this.subject;\n this.ppButtonCustomField = 'user_id:' + this.userId;\n }\n this.ppButtonCustomField += ',account_credit:1';\n this.returnUrl = window.location.href;\n }\n\n async submit() {\n if (this.creditAmount == null || this.creditAmount === '') {\n return;\n }\n\n if (this.method === PaymentMethodType.PayPal) {\n this.ppButtonFormRef.nativeElement.submit();\n this.ppLoading = true;\n return;\n }\n if (this.method === PaymentMethodType.BitPay) {\n try {\n const req = new BitPayInvoiceRequest();\n req.email = this.email;\n req.name = this.name;\n req.credit = true;\n req.amount = this.creditAmountNumber;\n req.organizationId = this.organizationId;\n req.userId = this.userId;\n req.returnUrl = this.returnUrl;\n this.formPromise = this.apiService.postBitPayInvoice(req);\n const bitPayUrl: string = await this.formPromise;\n this.platformUtilsService.launchUri(bitPayUrl);\n } catch { }\n return;\n }\n try {\n this.onAdded.emit();\n } catch { }\n }\n\n cancel() {\n this.onCanceled.emit();\n }\n\n formatAmount() {\n try {\n if (this.creditAmount != null && this.creditAmount !== '') {\n const floatAmount = Math.abs(parseFloat(this.creditAmount));\n if (floatAmount > 0) {\n this.creditAmount = parseFloat((Math.round(floatAmount * 100) / 100).toString())\n .toFixed(2).toString();\n return;\n }\n }\n } catch { }\n this.creditAmount = '';\n }\n\n get creditAmountNumber(): number {\n if (this.creditAmount != null && this.creditAmount !== '') {\n try {\n return parseFloat(this.creditAmount);\n } catch { }\n }\n return null;\n }\n}\n","
\n
\n \n

{{'addCredit' | i18n}}

\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n
\n \n
\n
$USD
\n \n
\n
\n
\n {{'creditDelayed' | i18n}}\n
\n \n \n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { PaymentRequest } from 'jslib/models/request/paymentRequest';\n\nimport { PaymentMethodType } from 'jslib/enums/paymentMethodType';\n\nimport { PaymentComponent } from './payment.component';\nimport { TaxInfoComponent } from './tax-info.component';\n\n@Component({\n selector: 'app-adjust-payment',\n templateUrl: 'adjust-payment.component.html',\n})\nexport class AdjustPaymentComponent {\n @ViewChild(PaymentComponent, { static: true }) paymentComponent: PaymentComponent;\n @ViewChild(TaxInfoComponent, { static: true }) taxInfoComponent: TaxInfoComponent;\n\n @Input() currentType?: PaymentMethodType;\n @Input() organizationId: string;\n @Output() onAdjusted = new EventEmitter();\n @Output() onCanceled = new EventEmitter();\n\n paymentMethodType = PaymentMethodType;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService) { }\n\n async submit() {\n try {\n const request = new PaymentRequest();\n this.formPromise = this.paymentComponent.createPaymentToken().then(result => {\n request.paymentToken = result[0];\n request.paymentMethodType = result[1];\n request.postalCode = this.taxInfoComponent.taxInfo.postalCode;\n request.country = this.taxInfoComponent.taxInfo.country;\n if (this.organizationId == null) {\n return this.apiService.postAccountPayment(request);\n } else {\n request.taxId = this.taxInfoComponent.taxInfo.taxId;\n request.state = this.taxInfoComponent.taxInfo.state;\n request.line1 = this.taxInfoComponent.taxInfo.line1;\n request.line2 = this.taxInfoComponent.taxInfo.line2;\n request.city = this.taxInfoComponent.taxInfo.city;\n request.state = this.taxInfoComponent.taxInfo.state;\n return this.apiService.postOrganizationPayment(this.organizationId, request);\n }\n });\n await this.formPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('updatedPaymentMethod'));\n this.onAdjusted.emit();\n } catch { }\n }\n\n cancel() {\n this.onCanceled.emit();\n }\n\n changeCountry() {\n if (this.taxInfoComponent.taxInfo.country === 'US') {\n this.paymentComponent.hideBank = !this.organizationId;\n } else {\n this.paymentComponent.hideBank = true;\n if (this.paymentComponent.method === PaymentMethodType.BankAccount) {\n this.paymentComponent.method = PaymentMethodType.Card;\n this.paymentComponent.changeMethod();\n }\n }\n }\n}\n","
\n
\n \n

{{(currentType != null ? 'changePaymentMethod' : 'addPaymentMethod') | i18n}}

\n \n \n \n \n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\n@Component({\n selector: 'app-update-license',\n templateUrl: 'update-license.component.html',\n})\nexport class UpdateLicenseComponent {\n @Input() organizationId: string;\n @Output() onUpdated = new EventEmitter();\n @Output() onCanceled = new EventEmitter();\n\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService) { }\n\n async submit() {\n const fileEl = document.getElementById('file') as HTMLInputElement;\n const files = fileEl.files;\n if (files == null || files.length === 0) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectFile'));\n return;\n }\n\n try {\n const fd = new FormData();\n fd.append('license', files[0]);\n\n let updatePromise: Promise = null;\n if (this.organizationId == null) {\n updatePromise = this.apiService.postAccountLicense(fd);\n } else {\n updatePromise = this.apiService.postOrganizationLicenseUpdate(this.organizationId, fd);\n }\n\n this.formPromise = updatePromise.then(() => {\n return this.apiService.refreshIdentityToken();\n });\n\n await this.formPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('updatedLicense'));\n this.onUpdated.emit();\n } catch { }\n }\n\n cancel() {\n this.onCanceled.emit();\n }\n}\n","
\n
\n \n \n {{'licenseFileDesc' | i18n : (!organizationId ? 'bitwarden_premium_license.json' : 'bitwarden_organization_license.json')}}\n
\n \n \n
\n","export enum ProductType {\n Free = 0,\n Families = 1,\n Teams = 2,\n Enterprise = 3,\n}\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\n\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { StorageRequest } from 'jslib/models/request/storageRequest';\n\nimport { PaymentResponse } from 'jslib/models/response/paymentResponse';\n\nimport { PaymentComponent } from './payment.component';\n\n@Component({\n selector: 'app-adjust-storage',\n templateUrl: 'adjust-storage.component.html',\n})\nexport class AdjustStorageComponent {\n @Input() storageGbPrice = 0;\n @Input() add = true;\n @Input() organizationId: string;\n @Input() interval = 'year';\n @Output() onAdjusted = new EventEmitter();\n @Output() onCanceled = new EventEmitter();\n\n @ViewChild(PaymentComponent, { static: true }) paymentComponent: PaymentComponent;\n\n storageAdjustment = 0;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, private router: Router,\n private activatedRoute: ActivatedRoute) { }\n\n async submit() {\n try {\n const request = new StorageRequest();\n request.storageGbAdjustment = this.storageAdjustment;\n if (!this.add) {\n request.storageGbAdjustment *= -1;\n }\n\n let paymentFailed = false;\n const action = async () => {\n let response: Promise;\n if (this.organizationId == null) {\n response = this.formPromise = this.apiService.postAccountStorage(request);\n } else {\n response = this.formPromise = this.apiService.postOrganizationStorage(this.organizationId, request);\n }\n const result = await response;\n if (result != null && result.paymentIntentClientSecret != null) {\n try {\n await this.paymentComponent.handleStripeCardPayment(result.paymentIntentClientSecret, null);\n } catch {\n paymentFailed = true;\n }\n }\n };\n this.formPromise = action();\n await this.formPromise;\n this.onAdjusted.emit(this.storageAdjustment);\n if (paymentFailed) {\n this.toasterService.popAsync({\n body: this.i18nService.t('couldNotChargeCardPayInvoice'),\n type: 'warning',\n timeout: 10000,\n });\n this.router.navigate(['../billing'], { relativeTo: this.activatedRoute });\n } else {\n this.toasterService.popAsync('success', null,\n this.i18nService.t('adjustedStorage', request.storageGbAdjustment.toString()));\n }\n } catch { }\n }\n\n cancel() {\n this.onCanceled.emit();\n }\n\n get adjustedStorageTotal(): number {\n return this.storageGbPrice * this.storageAdjustment;\n }\n}\n","
\n
\n \n

{{(add ? 'addStorage' : 'removeStorage') | i18n}}

\n
\n
\n \n \n
\n
\n
\n {{'total' | i18n}}: {{storageAdjustment || 0}} GB × {{storageGbPrice | currency:'$'}}\n = {{adjustedStorageTotal\n | currency:'$'}} /{{interval | i18n}}\n
\n \n \n \n {{(add ? 'storageAddNote' : 'storageRemoveNote') | i18n}}\n \n
\n
\n\n","import { Component } from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\nimport { UpdateTwoFactorDuoRequest } from 'jslib/models/request/updateTwoFactorDuoRequest';\nimport { TwoFactorDuoResponse } from 'jslib/models/response/twoFactorDuoResponse';\n\nimport { TwoFactorBaseComponent } from './two-factor-base.component';\n\n@Component({\n selector: 'app-two-factor-duo',\n templateUrl: 'two-factor-duo.component.html',\n})\nexport class TwoFactorDuoComponent extends TwoFactorBaseComponent {\n type = TwoFactorProviderType.Duo;\n ikey: string;\n skey: string;\n host: string;\n formPromise: Promise;\n\n constructor(apiService: ApiService, i18nService: I18nService,\n toasterService: ToasterService, platformUtilsService: PlatformUtilsService) {\n super(apiService, i18nService, toasterService, platformUtilsService);\n }\n\n auth(authResponse: any) {\n super.auth(authResponse);\n this.processResponse(authResponse.response);\n }\n\n submit() {\n if (this.enabled) {\n return super.disable(this.formPromise);\n } else {\n return this.enable();\n }\n }\n\n protected enable() {\n const request = new UpdateTwoFactorDuoRequest();\n request.masterPasswordHash = this.masterPasswordHash;\n request.integrationKey = this.ikey;\n request.secretKey = this.skey;\n request.host = this.host;\n\n return super.enable(async () => {\n if (this.organizationId != null) {\n this.formPromise = this.apiService.putTwoFactorOrganizationDuo(this.organizationId, request);\n } else {\n this.formPromise = this.apiService.putTwoFactorDuo(request);\n }\n const response = await this.formPromise;\n await this.processResponse(response);\n });\n }\n\n private processResponse(response: TwoFactorDuoResponse) {\n this.ikey = response.integrationKey;\n this.skey = response.secretKey;\n this.host = response.host;\n this.enabled = response.enabled;\n }\n}\n","
\n
\n
\n
\n

\n {{'twoStepLogin' | i18n}}\n Duo\n

\n \n
\n \n \n
\n
\n \n \n {{'twoStepLoginProviderEnabled' | i18n}}\n \n \"\"\n {{'twoFactorDuoIntegrationKey' | i18n}}: {{ikey}}\n
\n {{'twoFactorDuoSecretKey' | i18n}}: {{skey}}\n
\n {{'twoFactorDuoApiHostname' | i18n}}: {{host}}\n
\n \n \"\"\n

{{'twoFactorDuoDesc' | i18n}}

\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n Type,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { TwoFactorProviders } from 'jslib/services/auth.service';\n\nimport { PolicyType } from 'jslib/enums/policyType';\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\n\nimport { ModalComponent } from '../modal.component';\n\nimport { TwoFactorAuthenticatorComponent } from './two-factor-authenticator.component';\nimport { TwoFactorDuoComponent } from './two-factor-duo.component';\nimport { TwoFactorEmailComponent } from './two-factor-email.component';\nimport { TwoFactorRecoveryComponent } from './two-factor-recovery.component';\nimport { TwoFactorWebAuthnComponent } from './two-factor-webauthn.component';\nimport { TwoFactorYubiKeyComponent } from './two-factor-yubikey.component';\n\n@Component({\n selector: 'app-two-factor-setup',\n templateUrl: 'two-factor-setup.component.html',\n})\nexport class TwoFactorSetupComponent implements OnInit {\n @ViewChild('recoveryTemplate', { read: ViewContainerRef, static: true }) recoveryModalRef: ViewContainerRef;\n @ViewChild('authenticatorTemplate', { read: ViewContainerRef, static: true }) authenticatorModalRef: ViewContainerRef;\n @ViewChild('yubikeyTemplate', { read: ViewContainerRef, static: true }) yubikeyModalRef: ViewContainerRef;\n @ViewChild('duoTemplate', { read: ViewContainerRef, static: true }) duoModalRef: ViewContainerRef;\n @ViewChild('emailTemplate', { read: ViewContainerRef, static: true }) emailModalRef: ViewContainerRef;\n @ViewChild('webAuthnTemplate', { read: ViewContainerRef, static: true }) webAuthnModalRef: ViewContainerRef;\n\n organizationId: string;\n providers: any[] = [];\n canAccessPremium: boolean;\n showPolicyWarning = false;\n loading = true;\n\n private modal: ModalComponent = null;\n\n constructor(protected apiService: ApiService, protected userService: UserService,\n protected componentFactoryResolver: ComponentFactoryResolver, protected messagingService: MessagingService,\n protected policyService: PolicyService) { }\n\n async ngOnInit() {\n this.canAccessPremium = await this.userService.canAccessPremium();\n\n for (const key in TwoFactorProviders) {\n if (!TwoFactorProviders.hasOwnProperty(key)) {\n continue;\n }\n\n const p = (TwoFactorProviders as any)[key];\n if (this.filterProvider(p.type)) {\n continue;\n }\n\n this.providers.push({\n type: p.type,\n name: p.name,\n description: p.description,\n enabled: false,\n premium: p.premium,\n sort: p.sort,\n });\n }\n\n this.providers.sort((a: any, b: any) => a.sort - b.sort);\n await this.load();\n }\n\n async load() {\n this.loading = true;\n const providerList = await this.getTwoFactorProviders();\n providerList.data.forEach(p => {\n this.providers.forEach(p2 => {\n if (p.type === p2.type) {\n p2.enabled = p.enabled;\n }\n });\n });\n this.evaluatePolicies();\n this.loading = false;\n }\n\n manage(type: TwoFactorProviderType) {\n switch (type) {\n case TwoFactorProviderType.Authenticator:\n const authComp = this.openModal(this.authenticatorModalRef, TwoFactorAuthenticatorComponent);\n authComp.onUpdated.subscribe((enabled: boolean) => {\n this.updateStatus(enabled, TwoFactorProviderType.Authenticator);\n });\n break;\n case TwoFactorProviderType.Yubikey:\n const yubiComp = this.openModal(this.yubikeyModalRef, TwoFactorYubiKeyComponent);\n yubiComp.onUpdated.subscribe((enabled: boolean) => {\n this.updateStatus(enabled, TwoFactorProviderType.Yubikey);\n });\n break;\n case TwoFactorProviderType.Duo:\n const duoComp = this.openModal(this.duoModalRef, TwoFactorDuoComponent);\n duoComp.onUpdated.subscribe((enabled: boolean) => {\n this.updateStatus(enabled, TwoFactorProviderType.Duo);\n });\n break;\n case TwoFactorProviderType.Email:\n const emailComp = this.openModal(this.emailModalRef, TwoFactorEmailComponent);\n emailComp.onUpdated.subscribe((enabled: boolean) => {\n this.updateStatus(enabled, TwoFactorProviderType.Email);\n });\n break;\n case TwoFactorProviderType.WebAuthn:\n const webAuthnComp = this.openModal(this.webAuthnModalRef, TwoFactorWebAuthnComponent);\n webAuthnComp.onUpdated.subscribe((enabled: boolean) => {\n this.updateStatus(enabled, TwoFactorProviderType.WebAuthn);\n });\n break;\n default:\n break;\n }\n }\n\n recoveryCode() {\n this.openModal(this.recoveryModalRef, TwoFactorRecoveryComponent);\n }\n\n async premiumRequired() {\n if (!this.canAccessPremium) {\n this.messagingService.send('premiumRequired');\n return;\n }\n }\n\n protected getTwoFactorProviders() {\n return this.apiService.getTwoFactorProviders();\n }\n\n protected filterProvider(type: TwoFactorProviderType) {\n return type === TwoFactorProviderType.OrganizationDuo;\n }\n\n protected openModal(ref: ViewContainerRef, type: Type): T {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = ref.createComponent(factory).instance;\n const childComponent = this.modal.show(type, ref);\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n return childComponent;\n }\n\n protected updateStatus(enabled: boolean, type: TwoFactorProviderType) {\n if (!enabled && this.modal != null) {\n this.modal.close();\n }\n this.providers.forEach(p => {\n if (p.type === type) {\n p.enabled = enabled;\n }\n });\n this.evaluatePolicies();\n }\n\n private async evaluatePolicies() {\n if (this.organizationId == null && this.providers.filter(p => p.enabled).length === 1) {\n const policies = await this.policyService.getAll(PolicyType.TwoFactorAuthentication);\n this.showPolicyWarning = policies != null && policies.some(p => p.enabled);\n } else {\n this.showPolicyWarning = false;\n }\n }\n}\n","
\n

{{'twoStepLogin' | i18n}}

\n
\n

{{'twoStepLoginDesc' | i18n}}

\n

{{'twoStepLoginOrganizationDesc' | i18n}}

\n\n

{{'twoStepLoginRecoveryWarning' | i18n}}

\n \n
\n

\n {{'providers' | i18n}}\n \n \n {{'loading' | i18n}}\n \n

\n\n {{'twoStepLoginPolicyUserWarning' | i18n}}\n\n
    \n
  • \n
    \n \"\"\n
    \n
    \n

    \n {{p.name}}\n \n \n {{'enabled' | i18n}}\n \n \n {{'premium' | i18n}}\n \n

    \n {{p.description}}\n
    \n
    \n \n
    \n
  • \n
\n\n\n\n\n\n\n\n","import { Component } from '@angular/core';\n\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { EventService } from 'jslib/abstractions/event.service';\nimport { ExportService } from 'jslib/abstractions/export.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { ExportComponent as BaseExportComponent } from 'jslib/angular/components/export.component';\n\n@Component({\n selector: 'app-export',\n templateUrl: 'export.component.html',\n})\nexport class ExportComponent extends BaseExportComponent {\n organizationId: string;\n\n constructor(cryptoService: CryptoService, i18nService: I18nService,\n platformUtilsService: PlatformUtilsService, exportService: ExportService,\n eventService: EventService) {\n super(cryptoService, i18nService, platformUtilsService, exportService, eventService, window);\n }\n\n protected saved() {\n super.saved();\n this.masterPassword = null;\n this.platformUtilsService.showToast('success', null, this.i18nService.t('exportSuccess'));\n }\n}\n","
\n
\n

{{'exportVault' | i18n}}

\n
\n

{{'exportMasterPassword' | i18n}}

\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n
\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n} from '@angular/core';\n\nimport { AuditService } from 'jslib/abstractions/audit.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { CipherType } from 'jslib/enums/cipherType';\n\nimport { CipherReportComponent } from './cipher-report.component';\n\n@Component({\n selector: 'app-exposed-passwords-report',\n templateUrl: 'exposed-passwords-report.component.html',\n})\nexport class ExposedPasswordsReportComponent extends CipherReportComponent implements OnInit {\n exposedPasswordMap = new Map();\n\n constructor(protected cipherService: CipherService, protected auditService: AuditService,\n componentFactoryResolver: ComponentFactoryResolver, messagingService: MessagingService,\n userService: UserService) {\n super(componentFactoryResolver, userService, messagingService, true);\n }\n\n ngOnInit() {\n this.checkAccess();\n }\n\n async load() {\n if (await this.checkAccess()) {\n super.load();\n }\n }\n\n async setCiphers() {\n const allCiphers = await this.getAllCiphers();\n const exposedPasswordCiphers: CipherView[] = [];\n const promises: Promise[] = [];\n allCiphers.forEach(c => {\n if (c.type !== CipherType.Login || c.login.password == null || c.login.password === '' || c.isDeleted) {\n return;\n }\n const promise = this.auditService.passwordLeaked(c.login.password).then(exposedCount => {\n if (exposedCount > 0) {\n exposedPasswordCiphers.push(c);\n this.exposedPasswordMap.set(c.id, exposedCount);\n }\n });\n promises.push(promise);\n });\n await Promise.all(promises);\n this.ciphers = exposedPasswordCiphers;\n }\n\n protected getAllCiphers(): Promise {\n return this.cipherService.getAllDecrypted();\n }\n\n protected canManageCipher(c: CipherView): boolean {\n // this will only ever be false from the org view;\n return true;\n }\n}\n","
\n

{{'exposedPasswordsReport' | i18n}}

\n
\n

{{'exposedPasswordsReportDesc' | i18n}}

\n\n
\n \n {{'noExposedPasswords' | i18n}}\n \n \n \n {{'exposedPasswordsFoundDesc' | i18n : (ciphers.length | number)}}\n \n \n \n \n \n \n \n \n \n
\n \n \n \n {{c.name}}\n \n \n {{c.name}}\n \n \n \n {{'shared' | i18n}}\n \n \n \n {{'attachments' | i18n}}\n \n
\n {{c.subTitle}}\n
\n \n {{'exposedXTimes' | i18n : (exposedPasswordMap.get(c.id) | number)}}\n \n
\n
\n
\n\n","import { Component } from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { AuditService } from 'jslib/abstractions/audit.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { EventService } from 'jslib/abstractions/event.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { TotpService } from 'jslib/abstractions/totp.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CipherData } from 'jslib/models/data/cipherData';\nimport { Cipher } from 'jslib/models/domain/cipher';\nimport { Organization } from 'jslib/models/domain/organization';\nimport { CipherCreateRequest } from 'jslib/models/request/cipherCreateRequest';\nimport { CipherRequest } from 'jslib/models/request/cipherRequest';\n\nimport { AddEditComponent as BaseAddEditComponent } from '../../vault/add-edit.component';\n\n@Component({\n selector: 'app-org-vault-add-edit',\n templateUrl: '../../vault/add-edit.component.html',\n})\nexport class AddEditComponent extends BaseAddEditComponent {\n organization: Organization;\n originalCipher: Cipher = null;\n\n constructor(cipherService: CipherService, folderService: FolderService,\n i18nService: I18nService, platformUtilsService: PlatformUtilsService,\n auditService: AuditService, stateService: StateService,\n userService: UserService, collectionService: CollectionService,\n totpService: TotpService, passwordGenerationService: PasswordGenerationService,\n private apiService: ApiService, messagingService: MessagingService,\n eventService: EventService, policyService: PolicyService) {\n super(cipherService, folderService, i18nService, platformUtilsService, auditService, stateService,\n userService, collectionService, totpService, passwordGenerationService, messagingService,\n eventService, policyService);\n }\n\n protected allowOwnershipAssignment() {\n if (this.ownershipOptions != null && (this.ownershipOptions.length > 1 || !this.allowPersonal)) {\n if (this.organization != null) {\n return this.cloneMode && this.organization.canManageAllCollections;\n } else {\n return !this.editMode || this.cloneMode;\n }\n }\n return false;\n }\n\n protected loadCollections() {\n if (!this.organization.canManageAllCollections) {\n return super.loadCollections();\n }\n return Promise.resolve(this.collections);\n }\n\n protected async loadCipher() {\n if (!this.organization.canManageAllCollections) {\n return await super.loadCipher();\n }\n const response = await this.apiService.getCipherAdmin(this.cipherId);\n const data = new CipherData(response);\n this.originalCipher = new Cipher(data);\n return new Cipher(data);\n }\n\n protected encryptCipher() {\n if (!this.organization.canManageAllCollections) {\n return super.encryptCipher();\n }\n return this.cipherService.encrypt(this.cipher, null, this.originalCipher);\n }\n\n protected async saveCipher(cipher: Cipher) {\n if (!this.organization.canManageAllCollections || cipher.organizationId == null) {\n return super.saveCipher(cipher);\n }\n if (this.editMode && !this.cloneMode) {\n const request = new CipherRequest(cipher);\n return this.apiService.putCipherAdmin(this.cipherId, request);\n } else {\n const request = new CipherCreateRequest(cipher);\n return this.apiService.postCipherAdmin(request);\n }\n }\n\n protected async deleteCipher() {\n if (!this.organization.canManageAllCollections) {\n return super.deleteCipher();\n }\n return this.cipher.isDeleted ? this.apiService.deleteCipherAdmin(this.cipherId)\n : this.apiService.putDeleteCipherAdmin(this.cipherId);\n }\n}\n","import { AttachmentResponse } from '../response/attachmentResponse';\n\nexport class AttachmentData {\n id: string;\n url: string;\n fileName: string;\n key: string;\n size: string;\n sizeName: string;\n\n constructor(response?: AttachmentResponse) {\n if (response == null) {\n return;\n }\n this.id = response.id;\n this.url = response.url;\n this.fileName = response.fileName;\n this.key = response.key;\n this.size = response.size;\n this.sizeName = response.sizeName;\n }\n}\n","import { CardApi } from '../api/cardApi';\n\nexport class CardData {\n cardholderName: string;\n brand: string;\n number: string;\n expMonth: string;\n expYear: string;\n code: string;\n\n constructor(data?: CardApi) {\n if (data == null) {\n return;\n }\n\n this.cardholderName = data.cardholderName;\n this.brand = data.brand;\n this.number = data.number;\n this.expMonth = data.expMonth;\n this.expYear = data.expYear;\n this.code = data.code;\n }\n}\n","import { FieldType } from '../../enums/fieldType';\n\nimport { FieldApi } from '../api/fieldApi';\n\nexport class FieldData {\n type: FieldType;\n name: string;\n value: string;\n\n constructor(response?: FieldApi) {\n if (response == null) {\n return;\n }\n this.type = response.type;\n this.name = response.name;\n this.value = response.value;\n }\n}\n","import { IdentityApi } from '../api/identityApi';\n\nexport class IdentityData {\n title: string;\n firstName: string;\n middleName: string;\n lastName: string;\n address1: string;\n address2: string;\n address3: string;\n city: string;\n state: string;\n postalCode: string;\n country: string;\n company: string;\n email: string;\n phone: string;\n ssn: string;\n username: string;\n passportNumber: string;\n licenseNumber: string;\n\n constructor(data?: IdentityApi) {\n if (data == null) {\n return;\n }\n\n this.title = data.title;\n this.firstName = data.firstName;\n this.middleName = data.middleName;\n this.lastName = data.lastName;\n this.address1 = data.address1;\n this.address2 = data.address2;\n this.address3 = data.address3;\n this.city = data.city;\n this.state = data.state;\n this.postalCode = data.postalCode;\n this.country = data.country;\n this.company = data.company;\n this.email = data.email;\n this.phone = data.phone;\n this.ssn = data.ssn;\n this.username = data.username;\n this.passportNumber = data.passportNumber;\n this.licenseNumber = data.licenseNumber;\n }\n}\n","import { LoginApi } from '../api/loginApi';\n\nimport { LoginUriData } from './loginUriData';\n\nexport class LoginData {\n uris: LoginUriData[];\n username: string;\n password: string;\n passwordRevisionDate: string;\n totp: string;\n\n constructor(data?: LoginApi) {\n if (data == null) {\n return;\n }\n\n this.username = data.username;\n this.password = data.password;\n this.passwordRevisionDate = data.passwordRevisionDate;\n this.totp = data.totp;\n\n if (data.uris) {\n this.uris = data.uris.map(u => new LoginUriData(u));\n }\n }\n}\n","import { UriMatchType } from '../../enums/uriMatchType';\n\nimport { LoginUriApi } from '../api/loginUriApi';\n\nexport class LoginUriData {\n uri: string;\n match: UriMatchType = null;\n\n constructor(data?: LoginUriApi) {\n if (data == null) {\n return;\n }\n this.uri = data.uri;\n this.match = data.match;\n }\n}\n","import { SecureNoteType } from '../../enums/secureNoteType';\n\nimport { SecureNoteApi } from '../api/secureNoteApi';\n\nexport class SecureNoteData {\n type: SecureNoteType;\n\n constructor(data?: SecureNoteApi) {\n if (data == null) {\n return;\n }\n\n this.type = data.type;\n }\n}\n","import { AttachmentData } from '../data/attachmentData';\n\nimport { AttachmentView } from '../view/attachmentView';\n\nimport Domain from './domainBase';\nimport { EncString } from './encString';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nimport { CryptoService } from '../../abstractions/crypto.service';\n\nimport { Utils } from '../../misc/utils';\n\nexport class Attachment extends Domain {\n id: string;\n url: string;\n size: string;\n sizeName: string;\n key: EncString;\n fileName: EncString;\n\n constructor(obj?: AttachmentData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.size = obj.size;\n this.buildDomainModel(this, obj, {\n id: null,\n url: null,\n sizeName: null,\n fileName: null,\n key: null,\n }, alreadyEncrypted, ['id', 'url', 'sizeName']);\n }\n\n async decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise {\n const view = await this.decryptObj(new AttachmentView(this), {\n fileName: null,\n }, orgId, encKey);\n\n if (this.key != null) {\n let cryptoService: CryptoService;\n const containerService = (Utils.global as any).bitwardenContainerService;\n if (containerService) {\n cryptoService = containerService.getCryptoService();\n } else {\n throw new Error('global bitwardenContainerService not initialized.');\n }\n\n try {\n const orgKey = await cryptoService.getOrgKey(orgId);\n const decValue = await cryptoService.decryptToBytes(this.key, orgKey ?? encKey);\n view.key = new SymmetricCryptoKey(decValue);\n } catch (e) {\n // TODO: error?\n }\n }\n\n return view;\n }\n\n toAttachmentData(): AttachmentData {\n const a = new AttachmentData();\n a.size = this.size;\n this.buildDataModel(this, a, {\n id: null,\n url: null,\n sizeName: null,\n fileName: null,\n key: null,\n }, ['id', 'url', 'sizeName']);\n return a;\n }\n}\n","import { View } from './view';\n\nimport { Password } from '../domain/password';\n\nexport class PasswordHistoryView implements View {\n password: string = null;\n lastUsedDate: Date = null;\n\n constructor(ph?: Password) {\n if (!ph) {\n return;\n }\n\n this.lastUsedDate = ph.lastUsedDate;\n }\n}\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { ImportOption, ImportService } from 'jslib/abstractions/import.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport Swal, { SweetAlertIcon } from 'sweetalert2/dist/sweetalert2.js';\n\n@Component({\n selector: 'app-import',\n templateUrl: 'import.component.html',\n})\nexport class ImportComponent implements OnInit {\n featuredImportOptions: ImportOption[];\n importOptions: ImportOption[];\n format: string = null;\n fileContents: string;\n formPromise: Promise;\n loading: boolean = false;\n\n protected organizationId: string = null;\n protected successNavigate: any[] = ['vault'];\n\n constructor(protected i18nService: I18nService, protected toasterService: ToasterService,\n protected importService: ImportService, protected router: Router,\n protected platformUtilsService: PlatformUtilsService) { }\n\n ngOnInit() {\n this.setImportOptions();\n this.importOptions.sort((a, b) => {\n if (a.name == null && b.name != null) {\n return -1;\n }\n if (a.name != null && b.name == null) {\n return 1;\n }\n if (a.name == null && b.name == null) {\n return 0;\n }\n\n return this.i18nService.collator ? this.i18nService.collator.compare(a.name, b.name) :\n a.name.localeCompare(b.name);\n });\n }\n\n async submit() {\n this.loading = true;\n\n const importer = this.importService.getImporter(this.format, this.organizationId);\n if (importer === null) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectFormat'));\n this.loading = false;\n return;\n }\n\n const fileEl = document.getElementById('file') as HTMLInputElement;\n const files = fileEl.files;\n if ((files == null || files.length === 0) && (this.fileContents == null || this.fileContents === '')) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectFile'));\n this.loading = false;\n return;\n }\n\n let fileContents = this.fileContents;\n if (files != null && files.length > 0) {\n try {\n const content = await this.getFileContents(files[0]);\n if (content != null) {\n fileContents = content;\n }\n } catch { }\n }\n\n if (fileContents == null || fileContents === '') {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectFile'));\n this.loading = false;\n return;\n }\n\n try {\n this.formPromise = this.importService.import(importer, fileContents, this.organizationId);\n const error = await this.formPromise;\n if (error != null) {\n this.error(error);\n this.loading = false;\n return;\n }\n this.toasterService.popAsync('success', null, this.i18nService.t('importSuccess'));\n this.router.navigate(this.successNavigate);\n } catch { }\n\n this.loading = false;\n }\n\n getFormatInstructionTitle() {\n if (this.format == null) {\n return null;\n }\n\n const results = this.featuredImportOptions.concat(this.importOptions).filter(o => o.id === this.format);\n if (results.length > 0) {\n return this.i18nService.t('instructionsFor', results[0].name);\n }\n return null;\n }\n\n protected setImportOptions() {\n this.featuredImportOptions = [{\n id: null,\n name: '-- ' + this.i18nService.t('select') + ' --',\n }, ...this.importService.featuredImportOptions];\n this.importOptions = this.importService.regularImportOptions;\n }\n\n private async error(error: Error) {\n await Swal.fire({\n heightAuto: false,\n buttonsStyling: false,\n icon: 'error' as SweetAlertIcon,\n iconHtml: ``,\n input: 'textarea',\n inputValue: error.message,\n inputAttributes: {\n 'readonly': 'true',\n },\n title: this.i18nService.t('importError'),\n text: this.i18nService.t('importErrorDesc'),\n showConfirmButton: true,\n confirmButtonText: this.i18nService.t('ok'),\n onOpen: popupEl => {\n popupEl.querySelector('.swal2-textarea').scrollTo(0, 0);\n },\n });\n }\n\n private getFileContents(file: File): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsText(file, 'utf-8');\n reader.onload = evt => {\n if (this.format === 'lastpasscsv' && file.type === 'text/html') {\n const parser = new DOMParser();\n const doc = parser.parseFromString((evt.target as any).result, 'text/html');\n const pre = doc.querySelector('pre');\n if (pre != null) {\n resolve(pre.textContent);\n return;\n }\n reject();\n return;\n }\n\n resolve((evt.target as any).result);\n };\n reader.onerror = () => {\n reject();\n };\n });\n }\n}\n","
\n

{{'importData' | i18n}}

\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n See detailed instructions on our help site at\n \n https://help.bitwarden.com/article/export-your-data/\n \n \n See detailed instructions on our help site at\n \n https://help.bitwarden.com/article/import-from-lastpass/\n \n \n Using the KeePassX desktop application, navigate to \"Database\" → \"Export to CSV file\" and save the CSV\n file.\n \n \n In the Avira web vault, go to \"Settings\" → \"My Data\" → \"Export data\" and save the CSV file.\n \n \n In the Blur web vault, click your username at the top and go to \"Settings\" → \"Export Data\", then click\n \"Export CSV\"\n for your \"Accounts\".\n \n \n Using the SaveInCloud desktop application, navigate to \"File\" → \"Export\" → \"As XML\" and save the\n XML file.\n \n \n Using the Padlock desktop application, click the hamburger icon in the top left corner and navigate to\n \"Settings\" →\n \"Export\" button and save the file \"As CSV\".\n \n \n Using the KeePass 2 desktop application, navigate to \"File\" → \"Export\" and select the \"KeePass XML\n (2.x)\" option.\n \n \n Using the Universal Password Manager desktop application, navigate to \"Database\" → \"Export\" and save\n the CSV file.\n \n \n Using the SaferPass browser extension, click the hamburger icon in the top left corner and navigate to\n \"Settings\". Click the \"Export accounts\" button to save the CSV file.\n \n \n Using the Meldium web vault, navigate to \"Settings\". Locate the \"Export data\" function and click \"Show me my\n data\" to save the CSV file.\n \n \n Log into the Keeper web vault (keepersecurity.com/vault). Navigate to \"Backup\" (top right) and find the\n \"Export to .csv File\" option. Click \"Export Now\" to save the CSV file.\n \n \n \n The process is exactly the same as importing from Google Chrome.\n \n See detailed instructions on our help site at\n \n https://help.bitwarden.com/article/import-from-chrome/\n \n \n See detailed instructions on our help site at\n \n https://bitwarden.com/help/article/import-from-firefox/.\n \n \n See detailed instructions on our help site at\n \n https://help.bitwarden.com/article/import-from-1password/.\n \n \n Using the Password Dragon desktop application, navigate to \"File\" → \"Export\" → \"To XML\". In the\n dialog that pops up select \"All Rows\" and check all fields. Click the \"Export\" button and save the XML file.\n \n \n Using the Enpass desktop application, navigate to \"File\" → \"Export\" → \"As CSV\". Select \"OK\" to the\n warning alert and save the CSV file. Note that the importer only supports files exported while Enpass is set\n to the English language, so adjust your settings accordingly.\n \n \n Using the Enpass 6 desktop application, click the menu button and navigate to \"File\" → \"Export\".\n Select the \".json\" file format option and save the JSON file.\n \n \n Using the Password Safe desktop application, navigate to \"File\" → \"Export To\" → \"XML format...\"\n and save the XML file.\n \n \n Using the Dashlane desktop application, navigate to \"File\" → \"Export\" → \"Unsecured archive\n (readable) in JSON format\" and save the JSON file.\n \n \n Using the mSecure desktop application, navigate to \"File\" → \"Export\" → \"CSV File...\" and save the\n CSV file.\n \n \n Using the Sticky Password desktop application, navigate to \"Menu\" (top right) → \"Export\" → \"Export\n all\". Select the unencrypted format XML option and save the XML file.\n \n \n Using the True Key desktop application, click the gear icon (top right) and then navigate to \"App Settings\".\n Click the \"Export\" button, enter your password and save the CSV file.\n \n \n Log into the Clipperz web application (clipperz.is/app). Click the hamburger menu icon in the top right to\n expand the navigation bar. Navigate to \"Data\" → \"Export\". Click the \"download HTML+JSON\" button to save\n the HTML file.\n \n \n Using the RoboForm Editor desktop application, navigate to \"RoboForm\" (top left) → \"Options\" →\n \"Account & Data\" and click the \"Export\" button. Select all of your data, change the \"Format\" to \"CSV\n file\" and then click the \"Export\" button to save the CSV file. Note: RoboForm only allows you to export\n Logins. Other items will not be exported.\n \n \n Log into the Passbolt web vault and navigate to the \"Passwords\" listing. Select all of the passwords you\n would like to export and click the \"Export\" button at the top of the listing. Choose the \"csv (lastpass)\"\n export format and click the \"Export\" button.\n \n \n Using the Ascendo DataVault desktop application, navigate to \"Tools\" → \"Export\". In the dialog that\n pops up, select the \"All Items (DVX, CSV)\" option. Click the \"Ok\" button to save the CSV file.\n \n \n Using the Password Boss desktop application, navigate to \"File\" → \"Export data\" → \"Password Boss\n JSON - not encrypted\" and save the JSON file.\n \n \n Log into the Zoho web vault (vault.zoho.com). Navigate to \"Tools\" → \"Export Secrets\". Select \"All\n Secrets\" and click the \"Zoho Vault Format CSV\" button. Highlight and copy the data from the textarea. Open a\n text editor like Notepad and paste the data. Save the data from the text editor as\n zoho_export.csv.\n \n \n Using the SplashID Safe desktop application, click on the SplashID blue lock logo in the top right corner.\n Navigate to \"Export\" → \"Export as CSV\" and save the CSV file.\n \n \n Using the PassKeep mobile app, navigate to \"Backup/Restore\". Locate the \"CSV Backup/Restore\" section and\n click \"Backup to CSV\" to save the CSV file.\n \n \n Make sure you have python-keyring and python-gnomekeyring installed. Save the\n GNOME Keyring Import/Export python\n script to your desktop as pw_helper.py. Open terminal and run\n chmod +rx Desktop/pw_helper.py and then\n python Desktop/pw_helper.py export Desktop/my_passwords.json. Then upload the resulting\n my_passwords.json file here to Bitwarden.\n \n \n Using the Password Agent desktop application navigate to \"File\" → \"Export\", select the \"Fields to\n export\" button and check all of the fields, change the \"Output format\" to \"CSV\", and then click the \"Start\"\n button to save the CSV file.\n \n \n Log into the Passpack website vault and navigate to \"Settings\" → \"Export\", then click the \"Download\"\n button to save the CSV file.\n \n \n Open your Passman vault and click on \"Settings\" in the bottom left corner. In the \"Settings\" window switch\n to the \"Export credentials\" tab and choose \"JSON\" as the export type. Enter your vault's passphrase and\n click the \"Export\" button to save the JSON file.\n \n \n Open the Avast Passwords desktop application and navigate to \"Settings\" → \"Import/export data\". Select\n the \"Export\" button for the \"Export to CSV file\" option to save the CSV file.\n \n \n Open the Avast Passwords desktop application and navigate to \"Settings\" → \"Import/export data\". Select\n the \"Export\" button for the \"Export to JSON file\" option to save the JSON file.\n \n \n Open the F-Secure KEY desktop application and navigate to \"Settings\" → \"Export Passwords\". Select the\n \"Export\" button, enter your master password, and save the FSK file.\n \n \n Open the Kaspersky Password Manager desktop application and navigate to \"Settings\" → \"Import/Export\".\n Locate the \"Export to text file\" section and select the \"Export\" button to save the TXT file.\n \n \n Open the RememBear desktop application and navigate to \"Settings\" → \"Account\" → \"Export\".\n Enter your master password and select the \"Export Anyway\" button to save the CSV file.\n \n \n Open the PasswordWallet desktop application and navigate to \"File\" → \"Export\" →\n \"Visible entries to text file\". Enter your password and select the \"Ok\" button to save the TXT file.\n \n \n Open the Myki desktop browser extension and navigate to \"Advanced\" → \"Export Accounts\" and then scan\n the QR code with your mobile device. Various CSV files will then be saved to your computer's\n downloads folder.\n \n \n Export your SecureSafe password safe to a CSV file with a comma delimiter.\n \n \n Open the LogMeOnce browser extension, then navigate to \"Open Menu\" → \"Export To\" and\n select \"CSV File\" to save the CSV file.\n \n \n Open the BlackBerry Password Keeper application, then navigate to \"Settings\" → \"Import/Export\".\n Select \"Export Passwords\" and follow the instructions on screen to save the unencrypted CSV file.\n \n \n Open the Buttercup desktop application and unlock your vault. Right click on your vault's icon and\n select \"Export\" to save the CSV file.\n \n \n Open the Codebook desktop application and log in. Navigate to \"File\" → \"Export all\", then click\n \"Yes\" on the dialog and save the CSV file.\n \n \n Open the newest version of the Encryptr desktop application and allow all of your data to sync.\n Once syncing of your data is complete, the download icon in the top right corner will turn pink. Click\n the download icon and save the CSV file.\n \n \n From the Yoti browser extension, click on \"Settings\", then \"Export Saved Logins\" and save the CSV file.\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n \n
\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n} from '@angular/core';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { CipherType } from 'jslib/enums/cipherType';\n\nimport { Utils } from 'jslib/misc/utils';\n\nimport { CipherReportComponent } from './cipher-report.component';\n\n@Component({\n selector: 'app-inactive-two-factor-report',\n templateUrl: 'inactive-two-factor-report.component.html',\n})\nexport class InactiveTwoFactorReportComponent extends CipherReportComponent implements OnInit {\n services = new Map();\n cipherDocs = new Map();\n\n constructor(protected cipherService: CipherService, componentFactoryResolver: ComponentFactoryResolver,\n messagingService: MessagingService, userService: UserService) {\n super(componentFactoryResolver, userService, messagingService, true);\n }\n\n async ngOnInit() {\n if (await this.checkAccess()) {\n await super.load();\n }\n }\n\n async setCiphers() {\n try {\n await this.load2fa();\n } catch { }\n if (this.services.size > 0) {\n const allCiphers = await this.getAllCiphers();\n const inactive2faCiphers: CipherView[] = [];\n const promises: Promise[] = [];\n const docs = new Map();\n allCiphers.forEach(c => {\n if (c.type !== CipherType.Login || (c.login.totp != null && c.login.totp !== '') || !c.login.hasUris ||\n c.isDeleted) {\n return;\n }\n for (let i = 0; i < c.login.uris.length; i++) {\n const u = c.login.uris[i];\n if (u.uri != null && u.uri !== '') {\n const hostname = Utils.getHostname(u.uri);\n if (hostname != null && this.services.has(hostname)) {\n if (this.services.get(hostname) != null) {\n docs.set(c.id, this.services.get(hostname));\n }\n inactive2faCiphers.push(c);\n break;\n }\n }\n }\n });\n await Promise.all(promises);\n this.ciphers = inactive2faCiphers;\n this.cipherDocs = docs;\n }\n }\n\n protected getAllCiphers(): Promise {\n return this.cipherService.getAllDecrypted();\n }\n\n private async load2fa() {\n if (this.services.size > 0) {\n return;\n }\n const response = await fetch(new Request('https://2fa.directory/api/v2/totp.json'));\n if (response.status !== 200) {\n throw new Error();\n }\n const responseJson = await response.json();\n for (const categoryName in responseJson) {\n if (responseJson.hasOwnProperty(categoryName)) {\n const category = responseJson[categoryName];\n for (const serviceName in category) {\n if (category.hasOwnProperty(serviceName)) {\n const service = category[serviceName];\n if (service.url != null) {\n const hostname = Utils.getHostname(service.url);\n if (hostname != null) {\n this.services.set(hostname, service.doc);\n }\n }\n }\n }\n }\n }\n }\n}\n","
\n

\n {{'inactive2faReport' | i18n}}\n \n \n {{'loading' | i18n}}\n \n

\n
\n

{{'inactive2faReportDesc' | i18n}}

\n
\n \n {{'loading' | i18n}}\n
\n
\n \n {{'noInactive2fa' | i18n}}\n \n \n \n {{'inactive2faFoundDesc' | i18n : (ciphers.length | number)}}\n \n \n \n \n \n \n \n \n \n
\n \n \n {{c.name}}\n \n \n {{'shared' | i18n}}\n \n \n \n {{'attachments' | i18n}}\n \n
\n {{c.subTitle}}\n
\n \n {{'instructions' | i18n}}\n
\n
\n
\n\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n} from '@angular/core';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { CipherType } from 'jslib/enums/cipherType';\n\nimport { CipherReportComponent } from './cipher-report.component';\n\n@Component({\n selector: 'app-reused-passwords-report',\n templateUrl: 'reused-passwords-report.component.html',\n})\nexport class ReusedPasswordsReportComponent extends CipherReportComponent implements OnInit {\n passwordUseMap: Map;\n\n constructor(protected cipherService: CipherService, componentFactoryResolver: ComponentFactoryResolver,\n messagingService: MessagingService, userService: UserService) {\n super(componentFactoryResolver, userService, messagingService, true);\n }\n\n async ngOnInit() {\n if (await this.checkAccess()) {\n await super.load();\n }\n }\n\n async setCiphers() {\n const allCiphers = await this.getAllCiphers();\n const ciphersWithPasswords: CipherView[] = [];\n this.passwordUseMap = new Map();\n allCiphers.forEach(c => {\n if (c.type !== CipherType.Login || c.login.password == null || c.login.password === '' || c.isDeleted) {\n return;\n }\n ciphersWithPasswords.push(c);\n if (this.passwordUseMap.has(c.login.password)) {\n this.passwordUseMap.set(c.login.password, this.passwordUseMap.get(c.login.password) + 1);\n } else {\n this.passwordUseMap.set(c.login.password, 1);\n }\n });\n const reusedPasswordCiphers = ciphersWithPasswords.filter(c =>\n this.passwordUseMap.has(c.login.password) && this.passwordUseMap.get(c.login.password) > 1);\n this.ciphers = reusedPasswordCiphers;\n }\n\n protected getAllCiphers(): Promise {\n return this.cipherService.getAllDecrypted();\n }\n\n protected canManageCipher(c: CipherView): boolean {\n // this will only ever be false from an organization view\n return true;\n }\n}\n","
\n

\n {{'reusedPasswordsReport' | i18n}}\n \n \n {{'loading' | i18n}}\n \n

\n
\n

{{'reusedPasswordsReportDesc' | i18n}}

\n
\n \n {{'loading' | i18n}}\n
\n
\n \n {{'noReusedPasswords' | i18n}}\n \n \n \n {{'reusedPasswordsFoundDesc' | i18n : (ciphers.length | number)}}\n \n \n \n \n \n \n \n \n \n
\n \n \n \n {{c.name}}\n \n \n {{c.name}}\n \n \n \n {{'shared' | i18n}}\n \n \n \n {{'attachments' | i18n}}\n \n
\n {{c.subTitle}}\n
\n \n {{'reusedXTimes' | i18n : passwordUseMap.get(c.login.password)}}\n \n
\n
\n
\n\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n} from '@angular/core';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CipherType } from 'jslib/enums/cipherType';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { CipherReportComponent } from './cipher-report.component';\n\n@Component({\n selector: 'app-unsecured-websites-report',\n templateUrl: 'unsecured-websites-report.component.html',\n})\nexport class UnsecuredWebsitesReportComponent extends CipherReportComponent implements OnInit {\n constructor(protected cipherService: CipherService, componentFactoryResolver: ComponentFactoryResolver,\n messagingService: MessagingService, userService: UserService) {\n super(componentFactoryResolver, userService, messagingService, true);\n }\n\n async ngOnInit() {\n if (await this.checkAccess()) {\n await super.load();\n }\n }\n\n async setCiphers() {\n const allCiphers = await this.getAllCiphers();\n const unsecuredCiphers = allCiphers.filter(c => {\n if (c.type !== CipherType.Login || !c.login.hasUris || c.isDeleted) {\n return false;\n }\n return c.login.uris.some(u => u.uri != null && u.uri.indexOf('http://') === 0);\n });\n this.ciphers = unsecuredCiphers;\n }\n\n protected getAllCiphers(): Promise {\n return this.cipherService.getAllDecrypted();\n }\n}\n","
\n

\n {{'unsecuredWebsitesReport' | i18n}}\n \n \n {{'loading' | i18n}}\n \n

\n
\n

{{'unsecuredWebsitesReportDesc' | i18n}}

\n
\n \n {{'loading' | i18n}}\n
\n
\n \n {{'noUnsecuredWebsites' | i18n}}\n \n \n \n {{'unsecuredWebsitesFoundDesc' | i18n : (ciphers.length | number)}}\n \n \n \n \n \n \n \n \n
\n \n \n {{c.name}}\n \n \n {{'shared' | i18n}}\n \n \n \n {{'attachments' | i18n}}\n \n
\n {{c.subTitle}}\n
\n
\n
\n\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n} from '@angular/core';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { CipherType } from 'jslib/enums/cipherType';\n\nimport { CipherReportComponent } from './cipher-report.component';\n\n@Component({\n selector: 'app-weak-passwords-report',\n templateUrl: 'weak-passwords-report.component.html',\n})\nexport class WeakPasswordsReportComponent extends CipherReportComponent implements OnInit {\n\n passwordStrengthMap = new Map();\n\n private passwordStrengthCache = new Map();\n\n constructor(protected cipherService: CipherService, protected passwordGenerationService: PasswordGenerationService,\n componentFactoryResolver: ComponentFactoryResolver, messagingService: MessagingService,\n userService: UserService) {\n super(componentFactoryResolver, userService, messagingService, true);\n }\n\n async ngOnInit() {\n if (await this.checkAccess()) {\n await super.load();\n }\n }\n\n async setCiphers() {\n const allCiphers = await this.getAllCiphers();\n const weakPasswordCiphers: CipherView[] = [];\n const isUserNameNotEmpty = (c: CipherView): boolean => {\n return c.login.username != null && c.login.username.trim() !== '';\n };\n const getCacheKey = (c: CipherView): string => {\n return c.login.password + '_____' + (isUserNameNotEmpty(c) ? c.login.username : '');\n };\n\n allCiphers.forEach(c => {\n if (c.type !== CipherType.Login || c.login.password == null || c.login.password === '' || c.isDeleted) {\n return;\n }\n const hasUserName = isUserNameNotEmpty(c);\n const cacheKey = getCacheKey(c);\n if (!this.passwordStrengthCache.has(cacheKey)) {\n let userInput: string[] = [];\n if (hasUserName) {\n const atPosition = c.login.username.indexOf('@');\n if (atPosition > -1) {\n userInput = userInput.concat(\n c.login.username.substr(0, atPosition).trim().toLowerCase().split(/[^A-Za-z0-9]/))\n .filter(i => i.length >= 3);\n } else {\n userInput = c.login.username.trim().toLowerCase().split(/[^A-Za-z0-9]/)\n .filter(i => i.length >= 3);\n }\n }\n const result = this.passwordGenerationService.passwordStrength(c.login.password,\n userInput.length > 0 ? userInput : null);\n this.passwordStrengthCache.set(cacheKey, result.score);\n }\n const score = this.passwordStrengthCache.get(cacheKey);\n if (score != null && score <= 2) {\n this.passwordStrengthMap.set(c.id, this.scoreKey(score));\n weakPasswordCiphers.push(c);\n }\n });\n weakPasswordCiphers.sort((a, b) => {\n return this.passwordStrengthCache.get(getCacheKey(a)) -\n this.passwordStrengthCache.get(getCacheKey(b));\n });\n this.ciphers = weakPasswordCiphers;\n }\n\n protected getAllCiphers(): Promise {\n return this.cipherService.getAllDecrypted();\n }\n\n protected canManageCipher(c: CipherView): boolean {\n // this will only ever be false from the org view;\n return true;\n }\n\n private scoreKey(score: number): [string, string] {\n switch (score) {\n case 4:\n return ['strong', 'success'];\n case 3:\n return ['good', 'primary'];\n case 2:\n return ['weak', 'warning'];\n default:\n return ['veryWeak', 'danger'];\n }\n }\n}\n","
\n

\n {{'weakPasswordsReport' | i18n}}\n \n \n {{'loading' | i18n}}\n \n

\n
\n

{{'weakPasswordsReportDesc' | i18n}}

\n
\n \n {{'loading' | i18n}}\n
\n
\n \n {{'noWeakPasswords' | i18n}}\n \n \n \n {{'weakPasswordsFoundDesc' | i18n : (ciphers.length | number)}}\n \n \n \n \n \n \n \n \n \n
\n \n \n \n {{c.name}}\n \n \n {{c.name}}\n \n \n \n {{'shared' | i18n}}\n \n \n \n {{'attachments' | i18n}}\n \n
\n {{c.subTitle}}\n
\n \n {{passwordStrengthMap.get(c.id)[0] | i18n}}\n \n
\n
\n
\n\n","import { Component } from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { AttachmentView } from 'jslib/models/view/attachmentView';\n\nimport { AttachmentsComponent as BaseAttachmentsComponent } from 'jslib/angular/components/attachments.component';\n\n@Component({\n selector: 'app-vault-attachments',\n templateUrl: 'attachments.component.html',\n})\nexport class AttachmentsComponent extends BaseAttachmentsComponent {\n viewOnly = false;\n\n constructor(cipherService: CipherService, i18nService: I18nService,\n cryptoService: CryptoService, userService: UserService,\n platformUtilsService: PlatformUtilsService, apiService: ApiService) {\n super(cipherService, i18nService, cryptoService, userService, platformUtilsService, apiService, window);\n }\n\n protected async reupload(attachment: AttachmentView) {\n if (this.showFixOldAttachments(attachment)) {\n await this.reuploadCipherAttachment(attachment, false);\n }\n }\n\n protected showFixOldAttachments(attachment: AttachmentView) {\n return attachment.key == null && this.cipher.organizationId == null;\n }\n}\n","
\n
\n
\n
\n

\n {{'attachments' | i18n}}\n {{cipher.name}}\n

\n \n
\n
\n \n \n \n \n \n \n \n \n
\n \n \n \n
\n {{a.fileName}}\n
\n \n \n {{'attachmentFixDesc' | i18n}}\n \n
\n
\n {{a.sizeName}}\n
\n \n
\n
\n

{{'newAttachment' | i18n}}

\n \n \n {{'maxFileSize' | i18n}}\n
\n
\n
\n \n \n
\n
\n
\n
\n","import { BaseResponse } from './baseResponse';\n\nexport class AttachmentResponse extends BaseResponse {\n id: string;\n url: string;\n fileName: string;\n key: string;\n size: string;\n sizeName: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.url = this.getResponseProperty('Url');\n this.fileName = this.getResponseProperty('FileName');\n this.key = this.getResponseProperty('Key');\n this.size = this.getResponseProperty('Size');\n this.sizeName = this.getResponseProperty('SizeName');\n }\n}\n","import { BaseResponse } from './baseResponse';\nimport { SelectionReadOnlyResponse } from './selectionReadOnlyResponse';\n\nexport class CollectionResponse extends BaseResponse {\n id: string;\n organizationId: string;\n name: string;\n externalId: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.organizationId = this.getResponseProperty('OrganizationId');\n this.name = this.getResponseProperty('Name');\n this.externalId = this.getResponseProperty('ExternalId');\n }\n}\n\nexport class CollectionDetailsResponse extends CollectionResponse {\n readOnly: boolean;\n\n constructor(response: any) {\n super(response);\n this.readOnly = this.getResponseProperty('ReadOnly') || false;\n }\n}\n\nexport class CollectionGroupDetailsResponse extends CollectionResponse {\n groups: SelectionReadOnlyResponse[] = [];\n\n constructor(response: any) {\n super(response);\n const groups = this.getResponseProperty('Groups');\n if (groups != null) {\n this.groups = groups.map((g: any) => new SelectionReadOnlyResponse(g));\n }\n }\n}\n","import { BaseResponse } from './baseResponse';\nimport { GlobalDomainResponse } from './globalDomainResponse';\n\nexport class DomainsResponse extends BaseResponse {\n equivalentDomains: string[][];\n globalEquivalentDomains: GlobalDomainResponse[] = [];\n\n constructor(response: any) {\n super(response);\n this.equivalentDomains = this.getResponseProperty('EquivalentDomains');\n const globalEquivalentDomains = this.getResponseProperty('GlobalEquivalentDomains');\n if (globalEquivalentDomains != null) {\n this.globalEquivalentDomains = globalEquivalentDomains.map((d: any) => new GlobalDomainResponse(d));\n } else {\n this.globalEquivalentDomains = [];\n }\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class FolderResponse extends BaseResponse {\n id: string;\n name: string;\n revisionDate: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.name = this.getResponseProperty('Name');\n this.revisionDate = this.getResponseProperty('RevisionDate');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { SendType } from '../../enums/sendType';\n\nimport { SendFileApi } from '../api/sendFileApi';\nimport { SendTextApi } from '../api/sendTextApi';\n\nexport class SendResponse extends BaseResponse {\n id: string;\n accessId: string;\n type: SendType;\n name: string;\n notes: string;\n file: SendFileApi;\n text: SendTextApi;\n key: string;\n maxAccessCount?: number;\n accessCount: number;\n revisionDate: string;\n expirationDate: string;\n deletionDate: string;\n password: string;\n disable: boolean;\n hideEmail: boolean;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.accessId = this.getResponseProperty('AccessId');\n this.type = this.getResponseProperty('Type');\n this.name = this.getResponseProperty('Name');\n this.notes = this.getResponseProperty('Notes');\n this.key = this.getResponseProperty('Key');\n this.maxAccessCount = this.getResponseProperty('MaxAccessCount');\n this.accessCount = this.getResponseProperty('AccessCount');\n this.revisionDate = this.getResponseProperty('RevisionDate');\n this.expirationDate = this.getResponseProperty('ExpirationDate');\n this.deletionDate = this.getResponseProperty('DeletionDate');\n this.password = this.getResponseProperty('Password');\n this.disable = this.getResponseProperty('Disabled') || false;\n this.hideEmail = this.getResponseProperty('HideEmail') || false;\n\n const text = this.getResponseProperty('Text');\n if (text != null) {\n this.text = new SendTextApi(text);\n }\n\n const file = this.getResponseProperty('File');\n if (file != null) {\n this.file = new SendFileApi(file);\n }\n }\n}\n","import { BaseResponse } from '../response/baseResponse';\n\nexport class SendFileApi extends BaseResponse {\n id: string;\n fileName: string;\n key: string;\n size: string;\n sizeName: string;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n this.id = this.getResponseProperty('Id');\n this.fileName = this.getResponseProperty('FileName');\n this.key = this.getResponseProperty('Key');\n this.size = this.getResponseProperty('Size');\n this.sizeName = this.getResponseProperty('SizeName');\n }\n}\n","import { BaseResponse } from '../response/baseResponse';\n\nexport class SendTextApi extends BaseResponse {\n text: string;\n hidden: boolean;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n this.text = this.getResponseProperty('Text');\n this.hidden = this.getResponseProperty('Hidden') || false;\n }\n}\n","import {\n Component,\n EventEmitter,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { EventService } from 'jslib/abstractions/event.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SearchService } from 'jslib/abstractions/search.service';\nimport { TotpService } from 'jslib/abstractions/totp.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { Organization } from 'jslib/models/domain/organization';\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { CiphersComponent as BaseCiphersComponent } from '../../vault/ciphers.component';\n\n@Component({\n selector: 'app-org-vault-ciphers',\n templateUrl: '../../vault/ciphers.component.html',\n})\nexport class CiphersComponent extends BaseCiphersComponent {\n @Output() onEventsClicked = new EventEmitter();\n\n organization: Organization;\n accessEvents = false;\n\n protected allCiphers: CipherView[] = [];\n\n constructor(searchService: SearchService, toasterService: ToasterService, i18nService: I18nService,\n platformUtilsService: PlatformUtilsService, cipherService: CipherService,\n private apiService: ApiService, eventService: EventService, totpService: TotpService, userService: UserService) {\n super(searchService, toasterService, i18nService, platformUtilsService, cipherService,\n eventService, totpService, userService);\n }\n\n async load(filter: (cipher: CipherView) => boolean = null) {\n if (!this.organization.canManageAllCollections) {\n await super.load(filter, this.deleted);\n return;\n }\n this.accessEvents = this.organization.useEvents;\n this.allCiphers = await this.cipherService.getAllFromApiForOrganization(this.organization.id);\n await this.searchService.indexCiphers(this.organization.id, this.allCiphers);\n await this.applyFilter(filter);\n this.loaded = true;\n }\n\n async applyFilter(filter: (cipher: CipherView) => boolean = null) {\n if (this.organization.canManageAllCollections) {\n await super.applyFilter(filter);\n } else {\n const f = (c: CipherView) => c.organizationId === this.organization.id && (filter == null || filter(c));\n await super.applyFilter(f);\n }\n }\n\n async search(timeout: number = null) {\n super.search(timeout, this.allCiphers);\n }\n events(c: CipherView) {\n this.onEventsClicked.emit(c);\n }\n\n protected deleteCipher(id: string) {\n if (!this.organization.canManageAllCollections) {\n return super.deleteCipher(id, this.deleted);\n }\n return this.deleted ? this.apiService.deleteCipherAdmin(id) : this.apiService.putDeleteCipherAdmin(id);\n }\n\n protected showFixOldAttachments(c: CipherView) {\n return this.organization.canManageAllCollections && c.hasOldAttachments;\n }\n}\n","import {\n Component,\n OnDestroy,\n} from '@angular/core';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { CollectionView } from 'jslib/models/view/collectionView';\n\nimport { CollectionsComponent as BaseCollectionsComponent } from 'jslib/angular/components/collections.component';\n\n@Component({\n selector: 'app-vault-collections',\n templateUrl: 'collections.component.html',\n})\nexport class CollectionsComponent extends BaseCollectionsComponent implements OnDestroy {\n constructor(collectionService: CollectionService, platformUtilsService: PlatformUtilsService,\n i18nService: I18nService, cipherService: CipherService) {\n super(collectionService, platformUtilsService, i18nService, cipherService);\n }\n\n ngOnDestroy() {\n this.selectAll(false);\n }\n\n check(c: CollectionView, select?: boolean) {\n (c as any).checked = select == null ? !(c as any).checked : select;\n }\n\n selectAll(select: boolean) {\n this.collections.forEach(c => this.check(c, select));\n }\n}\n","
\n
\n
\n
\n

\n {{'collections' | i18n}}\n {{cipher.name}}\n

\n \n
\n
\n

{{'collectionsDesc' | i18n}}

\n
\n

{{'collections' | i18n}}

\n
\n \n \n
\n
\n
\n {{'noCollectionsInList' | i18n}}\n
\n \n \n \n \n \n \n \n
\n \n \n {{c.name}}\n
\n
\n
\n \n \n
\n
\n
\n
\n","import { Component } from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CollectionData } from 'jslib/models/data/collectionData';\nimport { Collection } from 'jslib/models/domain/collection';\nimport { Organization } from 'jslib/models/domain/organization';\nimport { CollectionDetailsResponse } from 'jslib/models/response/collectionResponse';\nimport { CollectionView } from 'jslib/models/view/collectionView';\n\nimport { GroupingsComponent as BaseGroupingsComponent } from '../../vault/groupings.component';\n\n@Component({\n selector: 'app-org-vault-groupings',\n templateUrl: '../../vault/groupings.component.html',\n})\nexport class GroupingsComponent extends BaseGroupingsComponent {\n organization: Organization;\n\n constructor(collectionService: CollectionService, folderService: FolderService,\n storageService: StorageService, userService: UserService,\n private apiService: ApiService, private i18nService: I18nService) {\n super(collectionService, folderService, storageService, userService);\n }\n\n async loadCollections() {\n if (!this.organization.canManageAllCollections) {\n await super.loadCollections(this.organization.id);\n return;\n }\n\n const collections = await this.apiService.getCollections(this.organization.id);\n if (collections != null && collections.data != null && collections.data.length) {\n const collectionDomains = collections.data.map(r =>\n new Collection(new CollectionData(r as CollectionDetailsResponse)));\n this.collections = await this.collectionService.decryptMany(collectionDomains);\n } else {\n this.collections = [];\n }\n\n const unassignedCollection = new CollectionView();\n unassignedCollection.name = this.i18nService.t('unassigned');\n unassignedCollection.id = 'unassigned';\n unassignedCollection.organizationId = this.organization.id;\n unassignedCollection.readOnly = true;\n this.collections.push(unassignedCollection);\n this.nestedCollections = await this.collectionService.getAllNested(this.collections);\n }\n\n collapse(grouping: CollectionView) {\n super.collapse(grouping, 'org_');\n }\n\n isCollapsed(grouping: CollectionView) {\n return super.isCollapsed(grouping, 'org_');\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n Input,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { ToasterService } from 'angular2-toaster';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { Organization } from 'jslib/models/domain/organization';\n\nimport { ModalComponent } from '../modal.component';\n\nimport { BulkDeleteComponent } from './bulk-delete.component';\nimport { BulkMoveComponent } from './bulk-move.component';\nimport { BulkRestoreComponent } from './bulk-restore.component';\nimport { BulkShareComponent } from './bulk-share.component';\nimport { CiphersComponent } from './ciphers.component';\n\n@Component({\n selector: 'app-vault-bulk-actions',\n templateUrl: 'bulk-actions.component.html',\n})\nexport class BulkActionsComponent {\n @Input() ciphersComponent: CiphersComponent;\n @Input() modal: ModalComponent;\n @Input() deleted: boolean;\n @Input() organization: Organization;\n\n @ViewChild('bulkDeleteTemplate', { read: ViewContainerRef, static: true }) bulkDeleteModalRef: ViewContainerRef;\n @ViewChild('bulkRestoreTemplate', { read: ViewContainerRef, static: true }) bulkRestoreModalRef: ViewContainerRef;\n @ViewChild('bulkMoveTemplate', { read: ViewContainerRef, static: true }) bulkMoveModalRef: ViewContainerRef;\n @ViewChild('bulkShareTemplate', { read: ViewContainerRef, static: true }) bulkShareModalRef: ViewContainerRef;\n\n constructor(private toasterService: ToasterService,\n private i18nService: I18nService,\n private componentFactoryResolver: ComponentFactoryResolver) { }\n\n bulkDelete() {\n const selectedIds = this.ciphersComponent.getSelectedIds();\n if (selectedIds.length === 0) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('nothingSelected'));\n return;\n }\n\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.bulkDeleteModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(BulkDeleteComponent, this.bulkDeleteModalRef);\n\n childComponent.permanent = this.deleted;\n childComponent.cipherIds = selectedIds;\n childComponent.organization = this.organization;\n childComponent.onDeleted.subscribe(async () => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n bulkRestore() {\n const selectedIds = this.ciphersComponent.getSelectedIds();\n if (selectedIds.length === 0) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('nothingSelected'));\n return;\n }\n\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.bulkRestoreModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(BulkRestoreComponent, this.bulkRestoreModalRef);\n\n childComponent.cipherIds = selectedIds;\n childComponent.onRestored.subscribe(async () => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n bulkShare() {\n const selectedCiphers = this.ciphersComponent.getSelected();\n if (selectedCiphers.length === 0) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('nothingSelected'));\n return;\n }\n\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.bulkShareModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(BulkShareComponent, this.bulkShareModalRef);\n\n childComponent.ciphers = selectedCiphers;\n childComponent.onShared.subscribe(async () => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n bulkMove() {\n const selectedIds = this.ciphersComponent.getSelectedIds();\n if (selectedIds.length === 0) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('nothingSelected'));\n return;\n }\n\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.bulkMoveModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(BulkMoveComponent, this.bulkMoveModalRef);\n\n childComponent.cipherIds = selectedIds;\n childComponent.onMoved.subscribe(async () => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n selectAll(select: boolean) {\n this.ciphersComponent.selectAll(select);\n }\n}\n","
\n \n
\n \n \n \n \n
\n \n \n
\n
\n\n\n\n\n\n","import Domain from './domainBase';\nimport { EncString } from './encString';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nimport { SendFileData } from '../data/sendFileData';\n\nimport { SendFileView } from '../view/sendFileView';\n\nexport class SendFile extends Domain {\n id: string;\n size: string;\n sizeName: string;\n fileName: EncString;\n\n constructor(obj?: SendFileData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.size = obj.size;\n this.buildDomainModel(this, obj, {\n id: null,\n sizeName: null,\n fileName: null,\n }, alreadyEncrypted, ['id', 'sizeName']);\n }\n\n async decrypt(key: SymmetricCryptoKey): Promise {\n const view = await this.decryptObj(new SendFileView(this), {\n fileName: null,\n }, null, key);\n return view;\n }\n}\n","import Domain from './domainBase';\nimport { EncString } from './encString';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nimport { SendTextData } from '../data/sendTextData';\n\nimport { SendTextView } from '../view/sendTextView';\n\nexport class SendText extends Domain {\n text: EncString;\n hidden: boolean;\n\n constructor(obj?: SendTextData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.hidden = obj.hidden;\n this.buildDomainModel(this, obj, {\n text: null,\n }, alreadyEncrypted, []);\n }\n\n decrypt(key: SymmetricCryptoKey): Promise {\n return this.decryptObj(new SendTextView(this), {\n text: null,\n }, null, key);\n }\n}\n","import { CipherRequest } from './cipherRequest';\n\nimport { Cipher } from '../domain/cipher';\n\nexport class CipherWithIdRequest extends CipherRequest {\n id: string;\n\n constructor(cipher: Cipher) {\n super(cipher);\n this.id = cipher.id;\n }\n}\n","import { Folder } from '../domain/folder';\n\nexport class FolderRequest {\n name: string;\n\n constructor(folder: Folder) {\n this.name = folder.name ? folder.name.encryptedString : null;\n }\n}\n","import {\n Directive,\n ElementRef,\n HostListener,\n} from '@angular/core';\n\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\n@Directive({\n selector: '[appSelectCopy]',\n})\nexport class SelectCopyDirective {\n constructor(private el: ElementRef, private platformUtilsService: PlatformUtilsService) { }\n\n @HostListener('copy') onCopy() {\n if (window == null) {\n return;\n }\n let copyText = '';\n const selection = window.getSelection();\n for (let i = 0; i < selection.rangeCount; i++) {\n const range = selection.getRangeAt(i);\n const text = range.toString();\n\n // The selection should only contain one line of text. In some cases however, the\n // selection contains newlines and space characters from the indentation of following\n // sibling nodes. To avoid copying passwords containing trailing newlines and spaces\n // that aren't part of the password, the selection has to be trimmed.\n let stringEndPos = text.length;\n const newLinePos = text.search(/(?:\\r\\n|\\r|\\n)/);\n if (newLinePos > -1) {\n const otherPart = text.substr(newLinePos).trim();\n if (otherPart === '') {\n stringEndPos = newLinePos;\n }\n }\n copyText += text.substring(0, stringEndPos);\n }\n this.platformUtilsService.copyToClipboard(copyText, { window: window });\n }\n}\n","import {\n Pipe,\n PipeTransform,\n} from '@angular/core';\n\n/**\n * A pipe that sanitizes HTML and highlights numbers and special characters (in different colors each).\n */\n@Pipe({ name: 'colorPassword' })\nexport class ColorPasswordPipe implements PipeTransform {\n transform(password: string) {\n let colorizedPassword = '';\n for (let i = 0; i < password.length; i++) {\n let character = password[i];\n let isSpecial = false;\n // Sanitize HTML first.\n switch (character) {\n case '&':\n character = '&';\n isSpecial = true;\n break;\n case '<':\n character = '<';\n isSpecial = true;\n break;\n case '>':\n character = '>';\n isSpecial = true;\n break;\n case ' ':\n character = ' ';\n isSpecial = true;\n break;\n default:\n break;\n }\n let type = 'letter';\n if (isSpecial || character.match(/[^\\w ]/)) {\n type = 'special';\n } else if (character.match(/\\d/)) {\n type = 'number';\n }\n colorizedPassword += '' + character + '';\n }\n return colorizedPassword;\n }\n}\n","import { FolderResponse } from '../response/folderResponse';\n\nexport class FolderData {\n id: string;\n userId: string;\n name: string;\n revisionDate: string;\n\n constructor(response: FolderResponse, userId: string) {\n this.userId = userId;\n this.name = response.name;\n this.id = response.id;\n this.revisionDate = response.revisionDate;\n }\n}\n","import { FolderData } from '../data/folderData';\n\nimport { FolderView } from '../view/folderView';\n\nimport Domain from './domainBase';\nimport { EncString } from './encString';\n\nexport class Folder extends Domain {\n id: string;\n name: EncString;\n revisionDate: Date;\n\n constructor(obj?: FolderData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.buildDomainModel(this, obj, {\n id: null,\n name: null,\n }, alreadyEncrypted, ['id']);\n\n this.revisionDate = obj.revisionDate != null ? new Date(obj.revisionDate) : null;\n }\n\n decrypt(): Promise {\n return this.decryptObj(new FolderView(this), {\n name: null,\n }, null);\n }\n}\n","import { EnvironmentService } from './environment.service';\n\nexport abstract class NotificationsService {\n init: (environmentService: EnvironmentService) => Promise;\n updateConnection: (sync?: boolean) => Promise;\n reconnectFromActivity: () => Promise;\n disconnectFromInactivity: () => Promise;\n}\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 529;","import {\n Component,\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\n@Component({\n selector: 'app-frontend-layout',\n templateUrl: 'frontend-layout.component.html',\n})\nexport class FrontendLayoutComponent implements OnInit, OnDestroy {\n version: string;\n year: string = '2015';\n\n constructor(private platformUtilsService: PlatformUtilsService) { }\n\n async ngOnInit() {\n this.year = new Date().getFullYear().toString();\n this.version = await this.platformUtilsService.getApplicationVersion();\n document.body.classList.add('layout_frontend');\n }\n\n ngOnDestroy() {\n document.body.classList.remove('layout_frontend');\n }\n}\n","\n
\n © {{year}}, Bitwarden Inc.\n
{{'versionNumber' | i18n : version}}\n
\n","import {\n Component,\n NgZone,\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport { ActivatedRoute } from '@angular/router';\n\nimport { BroadcasterService } from 'jslib/angular/services/broadcaster.service';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { EnvironmentService } from 'jslib/abstractions/environment.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { Organization } from 'jslib/models/domain/organization';\n\nconst BroadcasterSubscriptionId = 'OrganizationLayoutComponent';\n\n@Component({\n selector: 'app-organization-layout',\n templateUrl: 'organization-layout.component.html',\n})\nexport class OrganizationLayoutComponent implements OnInit, OnDestroy {\n organization: Organization;\n businessTokenPromise: Promise;\n private organizationId: string;\n private businessUrl: string;\n\n constructor(private route: ActivatedRoute, private userService: UserService,\n private broadcasterService: BroadcasterService, private ngZone: NgZone,\n private apiService: ApiService, private platformUtilsService: PlatformUtilsService,\n private environmentService: EnvironmentService) { }\n\n ngOnInit() {\n this.businessUrl = 'https://portal.bitwarden.com';\n if (this.environmentService.enterpriseUrl != null) {\n this.businessUrl = this.environmentService.enterpriseUrl;\n } else if (this.environmentService.baseUrl != null) {\n this.businessUrl = this.environmentService.baseUrl + '/portal';\n }\n\n document.body.classList.remove('layout_frontend');\n this.route.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n await this.load();\n });\n this.broadcasterService.subscribe(BroadcasterSubscriptionId, (message: any) => {\n this.ngZone.run(async () => {\n switch (message.command) {\n case 'updatedOrgLicense':\n await this.load();\n break;\n }\n });\n });\n }\n\n ngOnDestroy() {\n this.broadcasterService.unsubscribe(BroadcasterSubscriptionId);\n }\n\n async load() {\n this.organization = await this.userService.getOrganization(this.organizationId);\n }\n\n async goToBusinessPortal() {\n if (this.businessTokenPromise != null) {\n return;\n }\n try {\n this.businessTokenPromise = this.apiService.getEnterprisePortalSignInToken();\n const token = await this.businessTokenPromise;\n if (token != null) {\n const userId = await this.userService.getUserId();\n this.platformUtilsService.launchUri(this.businessUrl + '/login?userId=' + userId +\n '&token=' + (window as any).encodeURIComponent(token) + '&organizationId=' + this.organization.id);\n }\n } catch { }\n this.businessTokenPromise = null;\n }\n\n get showMenuBar() {\n return this.showManageTab || this.showToolsTab || this.organization.isOwner;\n }\n\n get showManageTab(): boolean {\n return this.organization.canManageUsers ||\n this.organization.canManageAssignedCollections ||\n this.organization.canManageAllCollections ||\n this.organization.canManageGroups ||\n this.organization.canManagePolicies ||\n this.organization.canAccessEventLogs;\n }\n\n get showToolsTab(): boolean {\n return this.organization.canAccessImportExport || this.organization.canAccessReports;\n }\n\n get showBusinessPortalButton(): boolean {\n return this.organization.useBusinessPortal && this.organization.canAccessBusinessPortal;\n }\n\n get toolsRoute(): string {\n return this.organization.canAccessImportExport ?\n 'tools/import' :\n 'tools/exposed-passwords-report';\n }\n\n get manageRoute(): string {\n let route: string;\n switch (true) {\n case this.organization.canManageUsers:\n route = 'manage/people';\n break;\n case this.organization.canManageAssignedCollections || this.organization.canManageAllCollections:\n route = 'manage/collections';\n break;\n case this.organization.canManageGroups:\n route = 'manage/groups';\n break;\n case this.organization.canManagePolicies:\n route = 'manage/policies';\n break;\n case this.organization.canAccessEventLogs:\n route = 'manage/events';\n break;\n }\n return route;\n }\n}\n","\n
\n
\n
\n
\n \n
\n {{organization.name}}\n {{'organization' | i18n}}\n
\n
\n
\n \n {{'organizationIsDisabled' | i18n}}\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n\n\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\n@Component({\n selector: 'app-user-layout',\n templateUrl: 'user-layout.component.html',\n})\nexport class UserLayoutComponent implements OnInit {\n ngOnInit() {\n document.body.classList.remove('layout_frontend');\n }\n}\n","\n\n\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport {\n Toast,\n ToasterService,\n} from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { UserService } from 'jslib/abstractions/user.service';\nimport { EmergencyAccessAcceptRequest } from 'jslib/models/request/emergencyAccessAcceptRequest';\n\n@Component({\n selector: 'app-accept-emergency',\n templateUrl: 'accept-emergency.component.html',\n})\nexport class AcceptEmergencyComponent implements OnInit {\n loading = true;\n authed = false;\n name: string;\n email: string;\n actionPromise: Promise;\n\n constructor(private router: Router, private toasterService: ToasterService,\n private i18nService: I18nService, private route: ActivatedRoute,\n private apiService: ApiService, private userService: UserService,\n private stateService: StateService) { }\n\n ngOnInit() {\n let fired = false;\n this.route.queryParams.subscribe(async qParams => {\n if (fired) {\n return;\n }\n fired = true;\n await this.stateService.remove('emergencyInvitation');\n let error = qParams.id == null || qParams.name == null || qParams.email == null || qParams.token == null;\n let errorMessage: string = null;\n if (!error) {\n this.authed = await this.userService.isAuthenticated();\n if (this.authed) {\n const request = new EmergencyAccessAcceptRequest();\n request.token = qParams.token;\n try {\n this.actionPromise = this.apiService.postEmergencyAccessAccept(qParams.id, request);\n await this.actionPromise;\n const toast: Toast = {\n type: 'success',\n title: this.i18nService.t('inviteAccepted'),\n body: this.i18nService.t('emergencyInviteAcceptedDesc'),\n timeout: 10000,\n };\n this.toasterService.popAsync(toast);\n this.router.navigate(['/vault']);\n } catch (e) {\n error = true;\n errorMessage = e.message;\n }\n } else {\n await this.stateService.save('emergencyInvitation', qParams);\n this.email = qParams.email;\n this.name = qParams.name;\n if (this.name != null) {\n // Fix URL encoding of space issue with Angular\n this.name = this.name.replace(/\\+/g, ' ');\n }\n }\n }\n\n if (error) {\n const toast: Toast = {\n type: 'error',\n title: null,\n body: errorMessage != null ? this.i18nService.t('emergencyInviteAcceptFailedShort', errorMessage) :\n this.i18nService.t('emergencyInviteAcceptFailed'),\n timeout: 10000,\n };\n this.toasterService.popAsync(toast);\n this.router.navigate(['/']);\n }\n\n this.loading = false;\n });\n }\n}\n","
\n
\n \"Bitwarden\"\n

\n \n {{'loading' | i18n}}\n

\n
\n
\n
\n
\n
\n

{{'emergencyAccess' | i18n}}

\n
\n
\n

\n {{name}}\n

\n

{{'acceptEmergencyAccess' | i18n}}

\n
\n \n
\n
\n
\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport {\n Toast,\n ToasterService,\n} from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { OrganizationUserAcceptRequest } from 'jslib/models/request/organizationUserAcceptRequest';\n\n@Component({\n selector: 'app-accept-organization',\n templateUrl: 'accept-organization.component.html',\n})\nexport class AcceptOrganizationComponent implements OnInit {\n loading = true;\n authed = false;\n orgName: string;\n email: string;\n actionPromise: Promise;\n\n constructor(private router: Router, private toasterService: ToasterService,\n private i18nService: I18nService, private route: ActivatedRoute,\n private apiService: ApiService, private userService: UserService,\n private stateService: StateService) { }\n\n ngOnInit() {\n let fired = false;\n this.route.queryParams.subscribe(async qParams => {\n if (fired) {\n return;\n }\n fired = true;\n await this.stateService.remove('orgInvitation');\n let error = qParams.organizationId == null || qParams.organizationUserId == null || qParams.token == null;\n let errorMessage: string = null;\n if (!error) {\n this.authed = await this.userService.isAuthenticated();\n if (this.authed) {\n const request = new OrganizationUserAcceptRequest();\n request.token = qParams.token;\n try {\n this.actionPromise = this.apiService.postOrganizationUserAccept(qParams.organizationId,\n qParams.organizationUserId, request);\n await this.actionPromise;\n const toast: Toast = {\n type: 'success',\n title: this.i18nService.t('inviteAccepted'),\n body: this.i18nService.t('inviteAcceptedDesc'),\n timeout: 10000,\n };\n this.toasterService.popAsync(toast);\n this.router.navigate(['/vault']);\n } catch (e) {\n error = true;\n errorMessage = e.message;\n }\n } else {\n await this.stateService.save('orgInvitation', qParams);\n this.email = qParams.email;\n this.orgName = qParams.organizationName;\n if (this.orgName != null) {\n // Fix URL encoding of space issue with Angular\n this.orgName = this.orgName.replace(/\\+/g, ' ');\n }\n }\n }\n\n if (error) {\n const toast: Toast = {\n type: 'error',\n title: null,\n body: errorMessage != null ? this.i18nService.t('inviteAcceptFailedShort', errorMessage) :\n this.i18nService.t('inviteAcceptFailed'),\n timeout: 10000,\n };\n this.toasterService.popAsync(toast);\n this.router.navigate(['/']);\n }\n\n this.loading = false;\n });\n }\n}\n","
\n
\n \"Bitwarden\"\n

\n \n {{'loading' | i18n}}\n

\n
\n
\n
\n
\n
\n

{{'joinOrganization' | i18n}}

\n
\n
\n

\n {{orgName}}\n {{email}}\n

\n

{{'joinOrganizationDesc' | i18n}}

\n
\n \n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { HintComponent as BaseHintComponent } from 'jslib/angular/components/hint.component';\n\n@Component({\n selector: 'app-hint',\n templateUrl: 'hint.component.html',\n})\nexport class HintComponent extends BaseHintComponent {\n constructor(router: Router, i18nService: I18nService,\n apiService: ApiService, platformUtilsService: PlatformUtilsService) {\n super(router, i18nService, apiService, platformUtilsService);\n }\n}\n","
\n
\n
\n

{{'passwordHint' | i18n}}

\n
\n
\n
\n \n \n {{'enterEmailToGetHint' | i18n}}\n
\n
\n
\n \n \n {{'cancel' | i18n}}\n \n
\n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { EnvironmentService } from 'jslib/abstractions/environment.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\nimport { UserService } from 'jslib/abstractions/user.service';\nimport { VaultTimeoutService } from 'jslib/abstractions/vaultTimeout.service';\n\nimport { RouterService } from '../services/router.service';\n\nimport { LockComponent as BaseLockComponent } from 'jslib/angular/components/lock.component';\n\n@Component({\n selector: 'app-lock',\n templateUrl: 'lock.component.html',\n})\nexport class LockComponent extends BaseLockComponent {\n constructor(router: Router, i18nService: I18nService,\n platformUtilsService: PlatformUtilsService, messagingService: MessagingService,\n userService: UserService, cryptoService: CryptoService,\n storageService: StorageService, vaultTimeoutService: VaultTimeoutService,\n environmentService: EnvironmentService, private routerService: RouterService,\n stateService: StateService, apiService: ApiService) {\n super(router, i18nService, platformUtilsService, messagingService, userService, cryptoService,\n storageService, vaultTimeoutService, environmentService, stateService, apiService);\n }\n\n async ngOnInit() {\n await super.ngOnInit();\n this.onSuccessfulSubmit = () => {\n const previousUrl = this.routerService.getPreviousUrl();\n if (previousUrl !== '/' && previousUrl.indexOf('lock') === -1) {\n this.successRoute = previousUrl;\n }\n this.router.navigate([this.successRoute]);\n };\n }\n}\n","
\n
\n
\n

\n \n

\n

{{'yourVaultIsLocked' | i18n}}

\n
\n
\n
\n \n
\n \n \n
\n \n {{'loggedInAsEmailOn' | i18n : email : webVaultHostname}}\n \n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { AuthService } from 'jslib/abstractions/auth.service';\nimport { CryptoFunctionService } from 'jslib/abstractions/cryptoFunction.service';\nimport { EnvironmentService } from 'jslib/abstractions/environment.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\n\nimport { LoginComponent as BaseLoginComponent } from 'jslib/angular/components/login.component';\n\n@Component({\n selector: 'app-login',\n templateUrl: 'login.component.html',\n})\nexport class LoginComponent extends BaseLoginComponent {\n constructor(authService: AuthService, router: Router,\n i18nService: I18nService, private route: ActivatedRoute,\n storageService: StorageService, stateService: StateService,\n platformUtilsService: PlatformUtilsService, environmentService: EnvironmentService,\n passwordGenerationService: PasswordGenerationService, cryptoFunctionService: CryptoFunctionService) {\n super(authService, router,\n platformUtilsService, i18nService,\n stateService, environmentService,\n passwordGenerationService, cryptoFunctionService,\n storageService);\n this.onSuccessfulLoginNavigate = this.goAfterLogIn;\n }\n\n async ngOnInit() {\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n if (qParams.email != null && qParams.email.indexOf('@') > -1) {\n this.email = qParams.email;\n }\n if (qParams.premium != null) {\n this.stateService.save('loginRedirect', { route: '/settings/premium' });\n } else if (qParams.org != null) {\n this.stateService.save('loginRedirect',\n { route: '/settings/create-organization', qParams: { plan: qParams.org } });\n }\n await super.ngOnInit();\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n }\n\n async goAfterLogIn() {\n const orgInvite = await this.stateService.get('orgInvitation');\n const emergencyInvite = await this.stateService.get('emergencyInvitation');\n if (orgInvite != null) {\n this.router.navigate(['accept-organization'], { queryParams: orgInvite });\n } else if (emergencyInvite != null) {\n this.router.navigate(['accept-emergency'], { queryParams: emergencyInvite });\n } else {\n const loginRedirect = await this.stateService.get('loginRedirect');\n if (loginRedirect != null) {\n this.router.navigate([loginRedirect.route], { queryParams: loginRedirect.qParams });\n await this.stateService.remove('loginRedirect');\n } else {\n this.router.navigate([this.successRoute]);\n }\n }\n }\n}\n","
\n
\n
\n \n

{{'loginOrCreateNewAccount' | i18n}}

\n
\n
\n
\n \n \n
\n
\n \n
\n \n \n
\n \n {{'getMasterPasswordHint' | i18n}}\n \n
\n
\n \n \n
\n
\n
\n \n \n {{'createAccount' | i18n}}\n \n
\n \n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { DeleteRecoverRequest } from 'jslib/models/request/deleteRecoverRequest';\n\n@Component({\n selector: 'app-recover-delete',\n templateUrl: 'recover-delete.component.html',\n})\nexport class RecoverDeleteComponent {\n email: string;\n formPromise: Promise;\n\n constructor(private router: Router, private apiService: ApiService,\n private toasterService: ToasterService, private i18nService: I18nService) {\n }\n\n async submit() {\n try {\n const request = new DeleteRecoverRequest();\n request.email = this.email.trim().toLowerCase();\n this.formPromise = this.apiService.postAccountRecoverDelete(request);\n await this.formPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('deleteRecoverEmailSent'));\n this.router.navigate(['/']);\n } catch { }\n }\n}\n","
\n
\n
\n

{{'deleteAccount' | i18n}}

\n
\n
\n

{{'deleteRecoverDesc' | i18n}}

\n
\n \n \n
\n
\n
\n \n \n {{'cancel' | i18n}}\n \n
\n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { AuthService } from 'jslib/abstractions/auth.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { TwoFactorRecoveryRequest } from 'jslib/models/request/twoFactorRecoveryRequest';\n\n@Component({\n selector: 'app-recover-two-factor',\n templateUrl: 'recover-two-factor.component.html',\n})\nexport class RecoverTwoFactorComponent {\n email: string;\n masterPassword: string;\n recoveryCode: string;\n formPromise: Promise;\n\n constructor(private router: Router, private apiService: ApiService,\n private toasterService: ToasterService, private i18nService: I18nService,\n private cryptoService: CryptoService, private authService: AuthService) { }\n\n async submit() {\n try {\n const request = new TwoFactorRecoveryRequest();\n request.recoveryCode = this.recoveryCode.replace(/\\s/g, '').toLowerCase();\n request.email = this.email.trim().toLowerCase();\n const key = await this.authService.makePreloginKey(this.masterPassword, request.email);\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, key);\n this.formPromise = this.apiService.postTwoFactorRecover(request);\n await this.formPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('twoStepRecoverDisabled'));\n this.router.navigate(['/']);\n } catch { }\n }\n}\n","
\n
\n
\n

{{'recoverAccountTwoStep' | i18n}}

\n
\n
\n

{{'recoverAccountTwoStepDesc' | i18n}}\n {{'learnMore' | i18n}}\n

\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n {{'cancel' | i18n}}\n \n
\n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { AuthService } from 'jslib/abstractions/auth.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { StateService } from 'jslib/abstractions/state.service';\n\nimport { RegisterComponent as BaseRegisterComponent } from 'jslib/angular/components/register.component';\n\nimport { MasterPasswordPolicyOptions } from 'jslib/models/domain/masterPasswordPolicyOptions';\nimport { Policy } from 'jslib/models/domain/policy';\n\nimport { PolicyData } from 'jslib/models/data/policyData';\nimport { ReferenceEventRequest } from 'jslib/models/request/referenceEventRequest';\n\n@Component({\n selector: 'app-register',\n templateUrl: 'register.component.html',\n})\nexport class RegisterComponent extends BaseRegisterComponent {\n showCreateOrgMessage = false;\n layout = '';\n enforcedPolicyOptions: MasterPasswordPolicyOptions;\n\n private policies: Policy[];\n\n constructor(authService: AuthService, router: Router,\n i18nService: I18nService, cryptoService: CryptoService,\n apiService: ApiService, private route: ActivatedRoute,\n stateService: StateService, platformUtilsService: PlatformUtilsService,\n passwordGenerationService: PasswordGenerationService, private policyService: PolicyService) {\n super(authService, router, i18nService, cryptoService, apiService, stateService, platformUtilsService,\n passwordGenerationService);\n }\n\n getPasswordScoreAlertDisplay() {\n if (this.enforcedPolicyOptions == null) {\n return '';\n }\n\n let str: string;\n switch (this.enforcedPolicyOptions.minComplexity) {\n case 4:\n str = this.i18nService.t('strong');\n break;\n case 3:\n str = this.i18nService.t('good');\n break;\n default:\n str = this.i18nService.t('weak');\n break;\n }\n return str + ' (' + this.enforcedPolicyOptions.minComplexity + ')';\n }\n\n async ngOnInit() {\n const queryParamsSub = this.route.queryParams.subscribe(qParams => {\n this.referenceData = new ReferenceEventRequest();\n if (qParams.email != null && qParams.email.indexOf('@') > -1) {\n this.email = qParams.email;\n }\n if (qParams.premium != null) {\n this.stateService.save('loginRedirect', { route: '/settings/premium' });\n } else if (qParams.org != null) {\n this.showCreateOrgMessage = true;\n this.referenceData.flow = qParams.org;\n this.stateService.save('loginRedirect',\n { route: '/settings/create-organization', qParams: { plan: qParams.org } });\n }\n if (qParams.layout != null) {\n this.layout = this.referenceData.layout = qParams.layout;\n }\n if (qParams.reference != null) {\n this.referenceData.id = qParams.reference;\n } else {\n this.referenceData.id = ('; ' + document.cookie).split('; reference=').pop().split(';').shift();\n }\n if (this.referenceData.id === '') {\n this.referenceData.id = null;\n }\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n const invite = await this.stateService.get('orgInvitation');\n if (invite != null) {\n try {\n const policies = await this.apiService.getPoliciesByToken(invite.organizationId, invite.token,\n invite.email, invite.organizationUserId);\n if (policies.data != null) {\n const policiesData = policies.data.map(p => new PolicyData(p));\n this.policies = policiesData.map(p => new Policy(p));\n }\n } catch { }\n }\n\n if (this.policies != null) {\n this.enforcedPolicyOptions = await this.policyService.getMasterPasswordPolicyOptions(this.policies);\n }\n }\n\n async submit() {\n if (this.enforcedPolicyOptions != null &&\n !this.policyService.evaluateMasterPassword(this.masterPasswordScore, this.masterPassword,\n this.enforcedPolicyOptions)) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPasswordPolicyRequirementsNotMet'));\n return;\n }\n\n await super.submit();\n }\n}\n","
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

Companies globally trust Bitwarden for password management.

\n

Start your 7-day free trial!

\n

Quickly deploy your organization

\n

Use Bitwarden across all platforms

\n

Collaborate and share securely

\n
\n
\n \n \"Wired\"\n \n
\n
\n \"Bitwarden has become a popular choice among open-source software advocates. After using\n it for a few months, I can see why.\" - February 2020\n
\n
\n
\n
\n

Enterprise 3 layout

\n
\n
\n

Enterprise 4 layout

\n
\n
\n
\n
\n
\n
\n

{{'createAccount' | i18n}}

\n
\n
\n \n {{'createOrganizationCreatePersonalAccount' | i18n}}\n \n
\n \n \n {{'emailAddressDesc' | i18n}}\n
\n
\n \n \n {{'yourNameDesc' | i18n}}\n
\n
\n \n {{'masterPasswordPolicyInEffect' | i18n}}\n
    \n
  • 0\">\n {{'policyInEffectMinComplexity' | i18n : getPasswordScoreAlertDisplay()}}\n
  • \n
  • 0\">\n {{'policyInEffectMinLength' | i18n : enforcedPolicyOptions?.minLength.toString()}}\n
  • \n
  • \n {{'policyInEffectUppercase' | i18n}}
  • \n
  • \n {{'policyInEffectLowercase' | i18n}}
  • \n
  • \n {{'policyInEffectNumbers' | i18n}}
  • \n
  • \n {{'policyInEffectSpecial' | i18n : '!@#$%^&*'}}
  • \n
\n
\n \n
\n
\n \n \n \n
\n
\n \n
\n
\n
\n {{'masterPassDesc' | i18n}}\n
\n
\n \n
\n \n \n
\n
\n
\n \n \n {{'masterPassHintDesc' | i18n}}\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n {{'cancel' | i18n}}\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport {\n SetPasswordComponent as BaseSetPasswordComponent,\n} from 'jslib/angular/components/set-password.component';\n\n@Component({\n selector: 'app-set-password',\n templateUrl: 'set-password.component.html',\n})\nexport class SetPasswordComponent extends BaseSetPasswordComponent {\n constructor(apiService: ApiService, i18nService: I18nService,\n cryptoService: CryptoService, messagingService: MessagingService,\n userService: UserService, passwordGenerationService: PasswordGenerationService,\n platformUtilsService: PlatformUtilsService, policyService: PolicyService, router: Router,\n syncService: SyncService, route: ActivatedRoute) {\n super(i18nService, cryptoService, messagingService, userService, passwordGenerationService,\n platformUtilsService, policyService, router, apiService, syncService, route);\n }\n}\n","
\n
\n
\n

{{'setMasterPassword' | i18n}}

\n
\n
\n \n {{'loading' | i18n}}\n
\n
\n {{'ssoCompleteRegistration' | i18n}}\n
\n \n {{'masterPasswordPolicyInEffect' | i18n}}\n
    \n
  • 0\">\n {{'policyInEffectMinComplexity' | i18n : getPasswordScoreAlertDisplay()}}\n
  • \n
  • 0\">\n {{'policyInEffectMinLength' | i18n : enforcedPolicyOptions?.minLength.toString()}}\n
  • \n
  • \n {{'policyInEffectUppercase' | i18n}}
  • \n
  • \n {{'policyInEffectLowercase' | i18n}}
  • \n
  • \n {{'policyInEffectNumbers' | i18n}}
  • \n
  • \n {{'policyInEffectSpecial' | i18n : '!@#$%^&*'}}
  • \n
\n
\n \n
\n
\n \n \n \n
\n
\n \n
\n
\n
\n {{'masterPassDesc' | i18n}}\n
\n
\n \n
\n \n \n
\n
\n
\n \n \n {{'masterPassHintDesc' | i18n}}\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { AuthService } from 'jslib/abstractions/auth.service';\nimport { CryptoFunctionService } from 'jslib/abstractions/cryptoFunction.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\n\nimport { SsoComponent as BaseSsoComponent } from 'jslib/angular/components/sso.component';\n\nconst IdentifierStorageKey = 'ssoOrgIdentifier';\n\n@Component({\n selector: 'app-sso',\n templateUrl: 'sso.component.html',\n})\nexport class SsoComponent extends BaseSsoComponent {\n constructor(authService: AuthService, router: Router,\n i18nService: I18nService, route: ActivatedRoute,\n storageService: StorageService, stateService: StateService,\n platformUtilsService: PlatformUtilsService, apiService: ApiService,\n cryptoFunctionService: CryptoFunctionService,\n passwordGenerationService: PasswordGenerationService) {\n super(authService, router, i18nService, route, storageService, stateService, platformUtilsService,\n apiService, cryptoFunctionService, passwordGenerationService);\n this.redirectUri = window.location.origin + '/sso-connector.html';\n this.clientId = 'web';\n }\n\n async ngOnInit() {\n super.ngOnInit();\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n if (qParams.identifier != null) {\n this.identifier = qParams.identifier;\n } else {\n const storedIdentifier = await this.storageService.get(IdentifierStorageKey);\n if (storedIdentifier != null) {\n this.identifier = storedIdentifier;\n }\n }\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n }\n\n async submit() {\n await this.storageService.save(IdentifierStorageKey, this.identifier);\n if (this.clientId === 'browser') {\n document.cookie = `ssoHandOffMessage=${this.i18nService.t('ssoHandOff')};SameSite=strict`;\n }\n super.submit();\n }\n}\n","
\n
\n
\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n

{{'ssoLogInWithOrgIdentifier' | i18n}}

\n
\n \n \n
\n
\n
\n \n \n {{'cancel' | i18n}}\n \n
\n
\n
\n
\n
\n
\n","import {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ApiService } from '../../abstractions/api.service';\nimport { AuthService } from '../../abstractions/auth.service';\nimport { CryptoFunctionService } from '../../abstractions/cryptoFunction.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PasswordGenerationService } from '../../abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { StateService } from '../../abstractions/state.service';\nimport { StorageService } from '../../abstractions/storage.service';\n\nimport { ConstantsService } from '../../services/constants.service';\n\nimport { Utils } from '../../misc/utils';\n\nimport { AuthResult } from '../../models/domain/authResult';\n\nexport class SsoComponent {\n identifier: string;\n loggingIn = false;\n\n formPromise: Promise;\n initiateSsoFormPromise: Promise;\n onSuccessfulLogin: () => Promise;\n onSuccessfulLoginNavigate: () => Promise;\n onSuccessfulLoginTwoFactorNavigate: () => Promise;\n onSuccessfulLoginChangePasswordNavigate: () => Promise;\n\n protected twoFactorRoute = '2fa';\n protected successRoute = 'lock';\n protected changePasswordRoute = 'set-password';\n protected clientId: string;\n protected redirectUri: string;\n protected state: string;\n protected codeChallenge: string;\n\n constructor(protected authService: AuthService, protected router: Router,\n protected i18nService: I18nService, protected route: ActivatedRoute,\n protected storageService: StorageService, protected stateService: StateService,\n protected platformUtilsService: PlatformUtilsService, protected apiService: ApiService,\n protected cryptoFunctionService: CryptoFunctionService,\n protected passwordGenerationService: PasswordGenerationService) { }\n\n async ngOnInit() {\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n if (qParams.code != null && qParams.state != null) {\n const codeVerifier = await this.storageService.get(ConstantsService.ssoCodeVerifierKey);\n const state = await this.storageService.get(ConstantsService.ssoStateKey);\n await this.storageService.remove(ConstantsService.ssoCodeVerifierKey);\n await this.storageService.remove(ConstantsService.ssoStateKey);\n if (qParams.code != null && codeVerifier != null && state != null && this.checkState(state, qParams.state)) {\n await this.logIn(qParams.code, codeVerifier, this.getOrgIdentiferFromState(qParams.state));\n }\n } else if (qParams.clientId != null && qParams.redirectUri != null && qParams.state != null &&\n qParams.codeChallenge != null) {\n this.redirectUri = qParams.redirectUri;\n this.state = qParams.state;\n this.codeChallenge = qParams.codeChallenge;\n this.clientId = qParams.clientId;\n }\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n }\n\n async submit(returnUri?: string, includeUserIdentifier?: boolean) {\n this.initiateSsoFormPromise = this.preValidate();\n if (await this.initiateSsoFormPromise) {\n const authorizeUrl = await this.buildAuthorizeUrl(returnUri, includeUserIdentifier);\n this.platformUtilsService.launchUri(authorizeUrl, { sameWindow: true });\n }\n }\n\n async preValidate(): Promise {\n if (this.identifier == null || this.identifier === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('ssoValidationFailed'),\n this.i18nService.t('ssoIdentifierRequired'));\n return false;\n }\n return await this.apiService.preValidateSso(this.identifier);\n }\n\n protected async buildAuthorizeUrl(returnUri?: string, includeUserIdentifier?: boolean): Promise {\n let codeChallenge = this.codeChallenge;\n let state = this.state;\n\n const passwordOptions: any = {\n type: 'password',\n length: 64,\n uppercase: true,\n lowercase: true,\n numbers: true,\n special: false,\n };\n\n if (codeChallenge == null) {\n const codeVerifier = await this.passwordGenerationService.generatePassword(passwordOptions);\n const codeVerifierHash = await this.cryptoFunctionService.hash(codeVerifier, 'sha256');\n codeChallenge = Utils.fromBufferToUrlB64(codeVerifierHash);\n await this.storageService.save(ConstantsService.ssoCodeVerifierKey, codeVerifier);\n }\n\n if (state == null) {\n state = await this.passwordGenerationService.generatePassword(passwordOptions);\n if (returnUri) {\n state += `_returnUri='${returnUri}'`;\n }\n }\n\n // Add Organization Identifier to state\n state += `_identifier=${this.identifier}`;\n\n // Save state (regardless of new or existing)\n await this.storageService.save(ConstantsService.ssoStateKey, state);\n\n let authorizeUrl = this.apiService.identityBaseUrl + '/connect/authorize?' +\n 'client_id=' + this.clientId + '&redirect_uri=' + encodeURIComponent(this.redirectUri) + '&' +\n 'response_type=code&scope=api offline_access&' +\n 'state=' + state + '&code_challenge=' + codeChallenge + '&' +\n 'code_challenge_method=S256&response_mode=query&' +\n 'domain_hint=' + encodeURIComponent(this.identifier);\n\n if (includeUserIdentifier) {\n const userIdentifier = await this.apiService.getSsoUserIdentifier();\n authorizeUrl += `&user_identifier=${encodeURIComponent(userIdentifier)}`;\n }\n\n return authorizeUrl;\n }\n\n private async logIn(code: string, codeVerifier: string, orgIdFromState: string) {\n this.loggingIn = true;\n try {\n this.formPromise = this.authService.logInSso(code, codeVerifier, this.redirectUri);\n const response = await this.formPromise;\n if (response.twoFactor) {\n if (this.onSuccessfulLoginTwoFactorNavigate != null) {\n this.onSuccessfulLoginTwoFactorNavigate();\n } else {\n this.router.navigate([this.twoFactorRoute], {\n queryParams: {\n identifier: orgIdFromState,\n sso: 'true',\n },\n });\n }\n } else if (response.resetMasterPassword) {\n if (this.onSuccessfulLoginChangePasswordNavigate != null) {\n this.onSuccessfulLoginChangePasswordNavigate();\n } else {\n this.router.navigate([this.changePasswordRoute], {\n queryParams: {\n identifier: orgIdFromState,\n },\n });\n }\n } else {\n const disableFavicon = await this.storageService.get(ConstantsService.disableFaviconKey);\n await this.stateService.save(ConstantsService.disableFaviconKey, !!disableFavicon);\n if (this.onSuccessfulLogin != null) {\n this.onSuccessfulLogin();\n }\n if (this.onSuccessfulLoginNavigate != null) {\n this.onSuccessfulLoginNavigate();\n } else {\n this.router.navigate([this.successRoute]);\n }\n }\n } catch { }\n this.loggingIn = false;\n }\n\n private getOrgIdentiferFromState(state: string): string {\n if (state === null || state === undefined) {\n return null;\n }\n\n const stateSplit = state.split('_identifier=');\n return stateSplit.length > 1 ? stateSplit[1] : null;\n }\n\n private checkState(state: string, checkState: string): boolean {\n if (state === null || state === undefined) {\n return false;\n }\n if (checkState === null || checkState === undefined) {\n return false;\n }\n\n const stateSplit = state.split('_identifier=');\n const checkStateSplit = checkState.split('_identifier=');\n return stateSplit[0] === checkStateSplit[0];\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { TwoFactorOptionsComponent } from './two-factor-options.component';\n\nimport { ModalComponent } from '../modal.component';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { AuthService } from 'jslib/abstractions/auth.service';\nimport { EnvironmentService } from 'jslib/abstractions/environment.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\n\nimport { TwoFactorComponent as BaseTwoFactorComponent } from 'jslib/angular/components/two-factor.component';\n\n@Component({\n selector: 'app-two-factor',\n templateUrl: 'two-factor.component.html',\n})\nexport class TwoFactorComponent extends BaseTwoFactorComponent {\n @ViewChild('twoFactorOptions', { read: ViewContainerRef, static: true }) twoFactorOptionsModal: ViewContainerRef;\n\n constructor(authService: AuthService, router: Router,\n i18nService: I18nService, apiService: ApiService,\n platformUtilsService: PlatformUtilsService, stateService: StateService,\n environmentService: EnvironmentService, private componentFactoryResolver: ComponentFactoryResolver,\n storageService: StorageService, route: ActivatedRoute) {\n super(authService, router, i18nService, apiService, platformUtilsService, window, environmentService,\n stateService, storageService, route);\n this.onSuccessfulLoginNavigate = this.goAfterLogIn;\n }\n\n anotherMethod() {\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n const modal = this.twoFactorOptionsModal.createComponent(factory).instance;\n const childComponent = modal.show(TwoFactorOptionsComponent,\n this.twoFactorOptionsModal);\n\n childComponent.onProviderSelected.subscribe(async (provider: TwoFactorProviderType) => {\n modal.close();\n this.selectedProviderType = provider;\n await this.init();\n });\n childComponent.onRecoverSelected.subscribe(() => {\n modal.close();\n });\n }\n\n async goAfterLogIn() {\n const orgInvite = await this.stateService.get('orgInvitation');\n const emergencyInvite = await this.stateService.get('emergencyInvitation');\n if (orgInvite != null) {\n this.router.navigate(['accept-organization'], { queryParams: orgInvite });\n } else if (emergencyInvite != null) {\n this.router.navigate(['accept-emergency'], { queryParams: emergencyInvite });\n } else {\n const loginRedirect = await this.stateService.get('loginRedirect');\n if (loginRedirect != null) {\n this.router.navigate([loginRedirect.route], { queryParams: loginRedirect.qParams });\n await this.stateService.remove('loginRedirect');\n } else {\n this.router.navigate([this.successRoute], {\n queryParams: {\n identifier: this.identifier,\n },\n });\n }\n }\n }\n}\n","
\n
\n
\n

{{title}}

\n
\n
\n \n

\n {{'enterVerificationCodeApp' | i18n}}

\n

\n {{'enterVerificationCodeEmail' | i18n : twoFactorEmail}}\n

\n
\n \n \n \n \n {{'sendVerificationCodeEmailAgain' | i18n}}\n \n \n
\n \n \n

{{'insertYubiKey' | i18n}}

\n \"\"\n
\n \n \n
\n
\n \n
\n \n
\n
\n \n
\n \n
\n
\n \n
\n \n \n
\n \n

{{'noTwoStepProviders' | i18n}}

\n

{{'noTwoStepProviders2' | i18n}}

\n
\n
\n
\n \n \n {{'cancel' | i18n}}\n \n
\n \n
\n
\n
\n
\n
\n\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { AuthService } from 'jslib/abstractions/auth.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport {\n TwoFactorOptionsComponent as BaseTwoFactorOptionsComponent,\n} from 'jslib/angular/components/two-factor-options.component';\n\n@Component({\n selector: 'app-two-factor-options',\n templateUrl: 'two-factor-options.component.html',\n})\nexport class TwoFactorOptionsComponent extends BaseTwoFactorOptionsComponent {\n constructor(authService: AuthService, router: Router,\n i18nService: I18nService, platformUtilsService: PlatformUtilsService) {\n super(authService, router, i18nService, platformUtilsService, window);\n }\n}\n","
\n
\n
\n
\n

{{'twoStepOptions' | i18n}}

\n \n
\n \n
\n \n
\n
\n
\n
\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class TwoFactorEmailRequest extends PasswordVerificationRequest {\n email: string;\n\n constructor(email: string, masterPasswordHash: string) {\n super();\n this.masterPasswordHash = masterPasswordHash;\n this.email = email;\n }\n}\n","import { TwoFactorProviderType } from '../../enums/twoFactorProviderType';\n\nexport class AuthResult {\n twoFactor: boolean = false;\n resetMasterPassword: boolean = false;\n twoFactorProviders: Map = null;\n}\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { VerifyEmailRequest } from 'jslib/models/request/verifyEmailRequest';\n\n@Component({\n selector: 'app-verify-email-token',\n templateUrl: 'verify-email-token.component.html',\n})\nexport class VerifyEmailTokenComponent implements OnInit {\n constructor(private router: Router, private toasterService: ToasterService,\n private i18nService: I18nService, private route: ActivatedRoute,\n private apiService: ApiService, private userService: UserService) { }\n\n ngOnInit() {\n let fired = false;\n this.route.queryParams.subscribe(async qParams => {\n if (fired) {\n return;\n }\n fired = true;\n if (qParams.userId != null && qParams.token != null) {\n try {\n await this.apiService.postAccountVerifyEmailToken(\n new VerifyEmailRequest(qParams.userId, qParams.token));\n const authed = await this.userService.isAuthenticated();\n if (authed) {\n await this.apiService.refreshIdentityToken();\n }\n this.toasterService.popAsync('success', null, this.i18nService.t('emailVerified'));\n this.router.navigate(['/']);\n return;\n } catch { }\n }\n this.toasterService.popAsync('error', null, this.i18nService.t('emailVerifiedFailed'));\n this.router.navigate(['/']);\n });\n }\n}\n","
\n
\n \"Bitwarden\"\n

\n \n {{'loading' | i18n}}\n

\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { VerifyDeleteRecoverRequest } from 'jslib/models/request/verifyDeleteRecoverRequest';\n\n@Component({\n selector: 'app-verify-recover-delete',\n templateUrl: 'verify-recover-delete.component.html',\n})\nexport class VerifyRecoverDeleteComponent implements OnInit {\n email: string;\n formPromise: Promise;\n\n private userId: string;\n private token: string;\n\n constructor(private router: Router, private apiService: ApiService,\n private toasterService: ToasterService, private i18nService: I18nService,\n private route: ActivatedRoute) {\n }\n\n ngOnInit() {\n let fired = false;\n this.route.queryParams.subscribe(async qParams => {\n if (fired) {\n return;\n }\n fired = true;\n if (qParams.userId != null && qParams.token != null && qParams.email != null) {\n this.userId = qParams.userId;\n this.token = qParams.token;\n this.email = qParams.email;\n } else {\n this.router.navigate(['/']);\n }\n });\n }\n\n async submit() {\n try {\n const request = new VerifyDeleteRecoverRequest(this.userId, this.token);\n this.formPromise = this.apiService.postAccountRecoverDeleteToken(request);\n await this.formPromise;\n this.toasterService.popAsync('success', this.i18nService.t('accountDeleted'),\n this.i18nService.t('accountDeletedDesc'));\n this.router.navigate(['/']);\n } catch { }\n }\n}\n","
\n
\n
\n

{{'deleteAccount' | i18n}}

\n
\n
\n {{'deleteAccountWarning' | i18n}}\n

\n {{email}}\n

\n

{{'deleteRecoverConfirmDesc' | i18n}}

\n
\n
\n \n \n {{'cancel' | i18n}}\n \n
\n
\n
\n
\n
\n
\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SearchService } from 'jslib/abstractions/search.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CollectionData } from 'jslib/models/data/collectionData';\nimport { Collection } from 'jslib/models/domain/collection';\nimport {\n CollectionDetailsResponse,\n CollectionResponse,\n} from 'jslib/models/response/collectionResponse';\nimport { ListResponse } from 'jslib/models/response/listResponse';\nimport { CollectionView } from 'jslib/models/view/collectionView';\n\nimport { ModalComponent } from '../../modal.component';\nimport { CollectionAddEditComponent } from './collection-add-edit.component';\nimport { EntityUsersComponent } from './entity-users.component';\n\n@Component({\n selector: 'app-org-manage-collections',\n templateUrl: 'collections.component.html',\n})\nexport class CollectionsComponent implements OnInit {\n @ViewChild('addEdit', { read: ViewContainerRef, static: true }) addEditModalRef: ViewContainerRef;\n @ViewChild('usersTemplate', { read: ViewContainerRef, static: true }) usersModalRef: ViewContainerRef;\n\n loading = true;\n organizationId: string;\n collections: CollectionView[];\n pagedCollections: CollectionView[];\n searchText: string;\n\n protected didScroll = false;\n protected pageSize = 100;\n\n private pagedCollectionsCount = 0;\n private modal: ModalComponent = null;\n\n constructor(private apiService: ApiService, private route: ActivatedRoute,\n private collectionService: CollectionService, private componentFactoryResolver: ComponentFactoryResolver,\n private toasterService: ToasterService, private i18nService: I18nService,\n private platformUtilsService: PlatformUtilsService, private userService: UserService,\n private searchService: SearchService) { }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n await this.load();\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n this.searchText = qParams.search;\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n });\n }\n\n async load() {\n const organization = await this.userService.getOrganization(this.organizationId);\n let response: ListResponse;\n if (organization.canManageAllCollections) {\n response = await this.apiService.getCollections(this.organizationId);\n } else {\n response = await this.apiService.getUserCollections();\n }\n const collections = response.data.filter(c => c.organizationId === this.organizationId).map(r =>\n new Collection(new CollectionData(r as CollectionDetailsResponse)));\n this.collections = await this.collectionService.decryptMany(collections);\n this.resetPaging();\n this.loading = false;\n }\n\n loadMore() {\n if (!this.collections || this.collections.length <= this.pageSize) {\n return;\n }\n const pagedLength = this.pagedCollections.length;\n let pagedSize = this.pageSize;\n if (pagedLength === 0 && this.pagedCollectionsCount > this.pageSize) {\n pagedSize = this.pagedCollectionsCount;\n }\n if (this.collections.length > pagedLength) {\n this.pagedCollections =\n this.pagedCollections.concat(this.collections.slice(pagedLength, pagedLength + pagedSize));\n }\n this.pagedCollectionsCount = this.pagedCollections.length;\n this.didScroll = this.pagedCollections.length > this.pageSize;\n }\n\n edit(collection: CollectionView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.addEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n CollectionAddEditComponent, this.addEditModalRef);\n\n childComponent.organizationId = this.organizationId;\n childComponent.collectionId = collection != null ? collection.id : null;\n childComponent.onSavedCollection.subscribe(() => {\n this.modal.close();\n this.load();\n });\n childComponent.onDeletedCollection.subscribe(() => {\n this.modal.close();\n this.removeCollection(collection);\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n add() {\n this.edit(null);\n }\n\n async delete(collection: CollectionView) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('deleteCollectionConfirmation'), collection.name,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n await this.apiService.deleteCollection(this.organizationId, collection.id);\n this.toasterService.popAsync('success', null, this.i18nService.t('deletedCollectionId', collection.name));\n this.removeCollection(collection);\n } catch { }\n }\n\n users(collection: CollectionView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.usersModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n EntityUsersComponent, this.usersModalRef);\n\n childComponent.organizationId = this.organizationId;\n childComponent.entity = 'collection';\n childComponent.entityId = collection.id;\n childComponent.entityName = collection.name;\n\n childComponent.onEditedUsers.subscribe(() => {\n this.load();\n this.modal.close();\n });\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n async resetPaging() {\n this.pagedCollections = [];\n this.loadMore();\n }\n\n isSearching() {\n return this.searchService.isSearchable(this.searchText);\n }\n\n isPaging() {\n const searching = this.isSearching();\n if (searching && this.didScroll) {\n this.resetPaging();\n }\n return !searching && this.collections && this.collections.length > this.pageSize;\n }\n\n private removeCollection(collection: CollectionView) {\n const index = this.collections.indexOf(collection);\n if (index > -1) {\n this.collections.splice(index, 1);\n this.resetPaging();\n }\n }\n}\n","
\n

{{'collections' | i18n}}

\n
\n
\n \n \n
\n \n
\n
\n\n \n {{'loading' | i18n}}\n\n\n

{{'noCollectionsInList' | i18n}}

\n \n \n \n \n \n \n \n
\n {{c.name}}\n \n \n
\n\n\n\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { EncString } from 'jslib/models/domain/encString';\nimport { SymmetricCryptoKey } from 'jslib/models/domain/symmetricCryptoKey';\nimport { CollectionRequest } from 'jslib/models/request/collectionRequest';\nimport { SelectionReadOnlyRequest } from 'jslib/models/request/selectionReadOnlyRequest';\nimport { GroupResponse } from 'jslib/models/response/groupResponse';\n\nimport { Utils } from 'jslib/misc/utils';\n\n@Component({\n selector: 'app-collection-add-edit',\n templateUrl: 'collection-add-edit.component.html',\n})\nexport class CollectionAddEditComponent implements OnInit {\n @Input() collectionId: string;\n @Input() organizationId: string;\n @Output() onSavedCollection = new EventEmitter();\n @Output() onDeletedCollection = new EventEmitter();\n\n loading = true;\n editMode: boolean = false;\n accessGroups: boolean = false;\n title: string;\n name: string;\n externalId: string;\n groups: GroupResponse[] = [];\n formPromise: Promise;\n deletePromise: Promise;\n\n private orgKey: SymmetricCryptoKey;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, private platformUtilsService: PlatformUtilsService,\n private cryptoService: CryptoService, private userService: UserService) { }\n\n async ngOnInit() {\n const organization = await this.userService.getOrganization(this.organizationId);\n this.accessGroups = organization.useGroups;\n this.editMode = this.loading = this.collectionId != null;\n if (this.accessGroups) {\n const groupsResponse = await this.apiService.getGroups(this.organizationId);\n this.groups = groupsResponse.data.map(r => r).sort(Utils.getSortFunction(this.i18nService, 'name'));\n }\n this.orgKey = await this.cryptoService.getOrgKey(this.organizationId);\n\n if (this.editMode) {\n this.editMode = true;\n this.title = this.i18nService.t('editCollection');\n try {\n const collection = await this.apiService.getCollectionDetails(this.organizationId, this.collectionId);\n this.name = await this.cryptoService.decryptToUtf8(new EncString(collection.name), this.orgKey);\n this.externalId = collection.externalId;\n if (collection.groups != null && this.groups.length > 0) {\n collection.groups.forEach(s => {\n const group = this.groups.filter(g => !g.accessAll && g.id === s.id);\n if (group != null && group.length > 0) {\n (group[0] as any).checked = true;\n (group[0] as any).readOnly = s.readOnly;\n (group[0] as any).hidePasswords = s.hidePasswords;\n }\n });\n }\n } catch { }\n } else {\n this.title = this.i18nService.t('addCollection');\n }\n\n this.groups.forEach(g => {\n if (g.accessAll) {\n (g as any).checked = true;\n }\n });\n\n this.loading = false;\n }\n\n check(g: GroupResponse, select?: boolean) {\n if (g.accessAll) {\n return;\n }\n (g as any).checked = select == null ? !(g as any).checked : select;\n if (!(g as any).checked) {\n (g as any).readOnly = false;\n (g as any).hidePasswords = false;\n }\n }\n\n selectAll(select: boolean) {\n this.groups.forEach(g => this.check(g, select));\n }\n\n async submit() {\n if (this.orgKey == null) {\n throw new Error('No encryption key for this organization.');\n }\n\n const request = new CollectionRequest();\n request.name = (await this.cryptoService.encrypt(this.name, this.orgKey)).encryptedString;\n request.externalId = this.externalId;\n request.groups = this.groups.filter(g => (g as any).checked && !g.accessAll)\n .map(g => new SelectionReadOnlyRequest(g.id, !!(g as any).readOnly, !!(g as any).hidePasswords));\n\n try {\n if (this.editMode) {\n this.formPromise = this.apiService.putCollection(this.organizationId, this.collectionId, request);\n } else {\n this.formPromise = this.apiService.postCollection(this.organizationId, request);\n }\n await this.formPromise;\n this.toasterService.popAsync('success', null,\n this.i18nService.t(this.editMode ? 'editedCollectionId' : 'createdCollectionId', this.name));\n this.onSavedCollection.emit();\n } catch { }\n }\n\n async delete() {\n if (!this.editMode) {\n return;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('deleteCollectionConfirmation'), this.name,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.deletePromise = this.apiService.deleteCollection(this.organizationId, this.collectionId);\n await this.deletePromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('deletedCollectionId', this.name));\n this.onDeletedCollection.emit();\n } catch { }\n }\n}\n","
\n
\n
\n
\n

{{title}}

\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n
\n \n \n
\n
\n \n \n {{'externalIdDesc' | i18n}}\n
\n \n

\n {{'groupAccess' | i18n}}\n
\n \n \n
\n

\n
\n {{'noGroupsInList' | i18n}}\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 {{'name' | i18n}}{{'hidePasswords' | i18n}}{{'readOnly' | i18n}}
\n \n \n {{g.name}}\n \n \n {{'groupAccessAllItems' | i18n}}\n \n \n \n \n \n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n","import { Collection } from '../domain/collection';\n\nimport { SelectionReadOnlyRequest } from './selectionReadOnlyRequest';\n\nexport class CollectionRequest {\n name: string;\n externalId: string;\n groups: SelectionReadOnlyRequest[] = [];\n\n constructor(collection?: Collection) {\n if (collection == null) {\n return;\n }\n this.name = collection.name ? collection.name.encryptedString : null;\n this.externalId = collection.externalId;\n }\n}\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { EventService } from '../../services/event.service';\n\nimport { EventResponse } from 'jslib/models/response/eventResponse';\nimport { ListResponse } from 'jslib/models/response/listResponse';\n\n@Component({\n selector: 'app-org-events',\n templateUrl: 'events.component.html',\n})\nexport class EventsComponent implements OnInit {\n loading = true;\n loaded = false;\n organizationId: string;\n events: any[];\n start: string;\n end: string;\n continuationToken: string;\n refreshPromise: Promise;\n morePromise: Promise;\n\n private orgUsersUserIdMap = new Map();\n private orgUsersIdMap = new Map();\n\n constructor(private apiService: ApiService, private route: ActivatedRoute,\n private eventService: EventService, private i18nService: I18nService,\n private toasterService: ToasterService, private userService: UserService,\n private router: Router) { }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n const organization = await this.userService.getOrganization(this.organizationId);\n if (organization == null || !organization.useEvents) {\n this.router.navigate(['/organizations', this.organizationId]);\n return;\n }\n const defaultDates = this.eventService.getDefaultDateFilters();\n this.start = defaultDates[0];\n this.end = defaultDates[1];\n await this.load();\n });\n }\n\n async load() {\n const response = await this.apiService.getOrganizationUsers(this.organizationId);\n response.data.forEach(u => {\n const name = u.name == null || u.name.trim() === '' ? u.email : u.name;\n this.orgUsersIdMap.set(u.id, { name: name, email: u.email });\n this.orgUsersUserIdMap.set(u.userId, { name: name, email: u.email });\n });\n await this.loadEvents(true);\n this.loaded = true;\n }\n\n async loadEvents(clearExisting: boolean) {\n if (this.refreshPromise != null || this.morePromise != null) {\n return;\n }\n\n let dates: string[] = null;\n try {\n dates = this.eventService.formatDateFilters(this.start, this.end);\n } catch (e) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidDateRange'));\n return;\n }\n\n this.loading = true;\n let response: ListResponse;\n try {\n const promise = this.apiService.getEventsOrganization(this.organizationId, dates[0], dates[1],\n clearExisting ? null : this.continuationToken);\n if (clearExisting) {\n this.refreshPromise = promise;\n } else {\n this.morePromise = promise;\n }\n response = await promise;\n } catch { }\n\n this.continuationToken = response.continuationToken;\n const events = response.data.map(r => {\n const userId = r.actingUserId == null ? r.userId : r.actingUserId;\n const eventInfo = this.eventService.getEventInfo(r);\n const user = userId != null && this.orgUsersUserIdMap.has(userId) ?\n this.orgUsersUserIdMap.get(userId) : null;\n return {\n message: eventInfo.message,\n appIcon: eventInfo.appIcon,\n appName: eventInfo.appName,\n userId: userId,\n userName: user != null ? user.name : this.i18nService.t('unknown'),\n userEmail: user != null ? user.email : '',\n date: r.date,\n ip: r.ipAddress,\n type: r.type,\n };\n });\n\n if (!clearExisting && this.events != null && this.events.length > 0) {\n this.events = this.events.concat(events);\n } else {\n this.events = events;\n }\n\n this.loading = false;\n this.morePromise = null;\n this.refreshPromise = null;\n }\n}\n","
\n

{{'eventLogs' | i18n}}

\n
\n
\n \n \n -\n \n \n
\n \n
\n
\n\n \n {{'loading' | i18n}}\n\n\n

{{'noEventsInList' | i18n}}

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
{{'timestamp' | i18n}}\n {{'device' | i18n}}\n {{'user' | i18n}}{{'event' | i18n}}
{{e.date | date:'medium'}}\n \n {{e.appName}}, {{e.ip}}\n \n {{e.userName}}\n
\n \n
\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SearchService } from 'jslib/abstractions/search.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { GroupResponse } from 'jslib/models/response/groupResponse';\n\nimport { Utils } from 'jslib/misc/utils';\n\nimport { ModalComponent } from '../../modal.component';\nimport { EntityUsersComponent } from './entity-users.component';\nimport { GroupAddEditComponent } from './group-add-edit.component';\n\n@Component({\n selector: 'app-org-groups',\n templateUrl: 'groups.component.html',\n})\nexport class GroupsComponent implements OnInit {\n @ViewChild('addEdit', { read: ViewContainerRef, static: true }) addEditModalRef: ViewContainerRef;\n @ViewChild('usersTemplate', { read: ViewContainerRef, static: true }) usersModalRef: ViewContainerRef;\n\n loading = true;\n organizationId: string;\n groups: GroupResponse[];\n pagedGroups: GroupResponse[];\n searchText: string;\n\n protected didScroll = false;\n protected pageSize = 100;\n\n private pagedGroupsCount = 0;\n private modal: ModalComponent = null;\n\n constructor(private apiService: ApiService, private route: ActivatedRoute,\n private i18nService: I18nService, private componentFactoryResolver: ComponentFactoryResolver,\n private toasterService: ToasterService, private platformUtilsService: PlatformUtilsService,\n private userService: UserService, private router: Router,\n private searchService: SearchService) { }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n const organization = await this.userService.getOrganization(this.organizationId);\n if (organization == null || !organization.useGroups) {\n this.router.navigate(['/organizations', this.organizationId]);\n return;\n }\n await this.load();\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n this.searchText = qParams.search;\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n });\n }\n\n async load() {\n const response = await this.apiService.getGroups(this.organizationId);\n const groups = response.data != null && response.data.length > 0 ? response.data : [];\n groups.sort(Utils.getSortFunction(this.i18nService, 'name'));\n this.groups = groups;\n this.resetPaging();\n this.loading = false;\n }\n\n loadMore() {\n if (!this.groups || this.groups.length <= this.pageSize) {\n return;\n }\n const pagedLength = this.pagedGroups.length;\n let pagedSize = this.pageSize;\n if (pagedLength === 0 && this.pagedGroupsCount > this.pageSize) {\n pagedSize = this.pagedGroupsCount;\n }\n if (this.groups.length > pagedLength) {\n this.pagedGroups = this.pagedGroups.concat(this.groups.slice(pagedLength, pagedLength + pagedSize));\n }\n this.pagedGroupsCount = this.pagedGroups.length;\n this.didScroll = this.pagedGroups.length > this.pageSize;\n }\n\n edit(group: GroupResponse) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.addEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n GroupAddEditComponent, this.addEditModalRef);\n\n childComponent.organizationId = this.organizationId;\n childComponent.groupId = group != null ? group.id : null;\n childComponent.onSavedGroup.subscribe(() => {\n this.modal.close();\n this.load();\n });\n childComponent.onDeletedGroup.subscribe(() => {\n this.modal.close();\n this.removeGroup(group);\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n add() {\n this.edit(null);\n }\n\n async delete(group: GroupResponse) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('deleteGroupConfirmation'), group.name,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n await this.apiService.deleteGroup(this.organizationId, group.id);\n this.toasterService.popAsync('success', null, this.i18nService.t('deletedGroupId', group.name));\n this.removeGroup(group);\n } catch { }\n }\n\n users(group: GroupResponse) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.usersModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n EntityUsersComponent, this.usersModalRef);\n\n childComponent.organizationId = this.organizationId;\n childComponent.entity = 'group';\n childComponent.entityId = group.id;\n childComponent.entityName = group.name;\n\n childComponent.onEditedUsers.subscribe(() => {\n this.modal.close();\n });\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n async resetPaging() {\n this.pagedGroups = [];\n this.loadMore();\n }\n\n isSearching() {\n return this.searchService.isSearchable(this.searchText);\n }\n\n isPaging() {\n const searching = this.isSearching();\n if (searching && this.didScroll) {\n this.resetPaging();\n }\n return !searching && this.groups && this.groups.length > this.pageSize;\n }\n\n private removeGroup(group: GroupResponse) {\n const index = this.groups.indexOf(group);\n if (index > -1) {\n this.groups.splice(index, 1);\n this.resetPaging();\n }\n }\n}\n","
\n

{{'groups' | i18n}}

\n
\n
\n \n \n
\n \n
\n
\n\n \n {{'loading' | i18n}}\n\n\n

{{'noGroupsInList' | i18n}}

\n \n \n \n \n \n \n \n
\n {{g.name}}\n \n \n
\n
\n\n\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { CollectionData } from 'jslib/models/data/collectionData';\nimport { Collection } from 'jslib/models/domain/collection';\nimport { GroupRequest } from 'jslib/models/request/groupRequest';\nimport { SelectionReadOnlyRequest } from 'jslib/models/request/selectionReadOnlyRequest';\nimport { CollectionDetailsResponse } from 'jslib/models/response/collectionResponse';\nimport { CollectionView } from 'jslib/models/view/collectionView';\n\n@Component({\n selector: 'app-group-add-edit',\n templateUrl: 'group-add-edit.component.html',\n})\nexport class GroupAddEditComponent implements OnInit {\n @Input() groupId: string;\n @Input() organizationId: string;\n @Output() onSavedGroup = new EventEmitter();\n @Output() onDeletedGroup = new EventEmitter();\n\n loading = true;\n editMode: boolean = false;\n title: string;\n name: string;\n externalId: string;\n access: 'all' | 'selected' = 'selected';\n collections: CollectionView[] = [];\n formPromise: Promise;\n deletePromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, private collectionService: CollectionService,\n private platformUtilsService: PlatformUtilsService) { }\n\n async ngOnInit() {\n this.editMode = this.loading = this.groupId != null;\n await this.loadCollections();\n\n if (this.editMode) {\n this.editMode = true;\n this.title = this.i18nService.t('editGroup');\n try {\n const group = await this.apiService.getGroupDetails(this.organizationId, this.groupId);\n this.access = group.accessAll ? 'all' : 'selected';\n this.name = group.name;\n this.externalId = group.externalId;\n if (group.collections != null && this.collections != null) {\n group.collections.forEach(s => {\n const collection = this.collections.filter(c => c.id === s.id);\n if (collection != null && collection.length > 0) {\n (collection[0] as any).checked = true;\n collection[0].readOnly = s.readOnly;\n collection[0].hidePasswords = s.hidePasswords;\n }\n });\n }\n } catch { }\n } else {\n this.title = this.i18nService.t('addGroup');\n }\n\n this.loading = false;\n }\n\n async loadCollections() {\n const response = await this.apiService.getCollections(this.organizationId);\n const collections = response.data.map(r =>\n new Collection(new CollectionData(r as CollectionDetailsResponse)));\n this.collections = await this.collectionService.decryptMany(collections);\n }\n\n check(c: CollectionView, select?: boolean) {\n (c as any).checked = select == null ? !(c as any).checked : select;\n if (!(c as any).checked) {\n c.readOnly = false;\n }\n }\n\n selectAll(select: boolean) {\n this.collections.forEach(c => this.check(c, select));\n }\n\n async submit() {\n const request = new GroupRequest();\n request.name = this.name;\n request.externalId = this.externalId;\n request.accessAll = this.access === 'all';\n if (!request.accessAll) {\n request.collections = this.collections.filter(c => (c as any).checked)\n .map(c => new SelectionReadOnlyRequest(c.id, !!c.readOnly, !!c.hidePasswords));\n }\n\n try {\n if (this.editMode) {\n this.formPromise = this.apiService.putGroup(this.organizationId, this.groupId, request);\n } else {\n this.formPromise = this.apiService.postGroup(this.organizationId, request);\n }\n await this.formPromise;\n this.toasterService.popAsync('success', null,\n this.i18nService.t(this.editMode ? 'editedGroupId' : 'createdGroupId', this.name));\n this.onSavedGroup.emit();\n } catch { }\n }\n\n async delete() {\n if (!this.editMode) {\n return;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('deleteGroupConfirmation'), this.name,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.deletePromise = this.apiService.deleteGroup(this.organizationId, this.groupId);\n await this.deletePromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('deletedGroupId', this.name));\n this.onDeletedGroup.emit();\n } catch { }\n }\n}\n","
\n
\n
\n
\n

{{title}}

\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n
\n \n \n
\n
\n \n \n {{'externalIdDesc' | i18n}}\n
\n

\n
\n {{'accessControl' | i18n}}\n \n \n \n
\n
\n \n \n
\n

\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n
\n {{'noCollectionsInList' | i18n}}\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 {{'name' | i18n}}{{'hidePasswords' | i18n}}{{'readOnly' | i18n}}
\n \n \n {{c.name}}\n \n \n \n \n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { Organization } from 'jslib/models/domain/organization';\n\n@Component({\n selector: 'app-org-manage',\n templateUrl: 'manage.component.html',\n})\nexport class ManageComponent implements OnInit {\n organization: Organization;\n accessPolicies = false;\n accessGroups = false;\n accessEvents = false;\n\n constructor(private route: ActivatedRoute, private userService: UserService) { }\n\n ngOnInit() {\n this.route.parent.params.subscribe(async params => {\n this.organization = await this.userService.getOrganization(params.organizationId);\n this.accessPolicies = this.organization.usePolicies;\n this.accessEvents = this.organization.useEvents;\n this.accessGroups = this.organization.useGroups;\n });\n }\n}\n","\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ValidationService } from 'jslib/angular/services/validation.service';\nimport { ConstantsService } from 'jslib/services/constants.service';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SearchService } from 'jslib/abstractions/search.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { OrganizationUserConfirmRequest } from 'jslib/models/request/organizationUserConfirmRequest';\n\nimport { OrganizationUserUserDetailsResponse } from 'jslib/models/response/organizationUserResponse';\n\nimport { OrganizationUserStatusType } from 'jslib/enums/organizationUserStatusType';\nimport { OrganizationUserType } from 'jslib/enums/organizationUserType';\n\nimport { Utils } from 'jslib/misc/utils';\n\nimport { ModalComponent } from '../../modal.component';\nimport { EntityEventsComponent } from './entity-events.component';\nimport { UserAddEditComponent } from './user-add-edit.component';\nimport { UserConfirmComponent } from './user-confirm.component';\nimport { UserGroupsComponent } from './user-groups.component';\n\n@Component({\n selector: 'app-org-people',\n templateUrl: 'people.component.html',\n})\nexport class PeopleComponent implements OnInit {\n @ViewChild('addEdit', { read: ViewContainerRef, static: true }) addEditModalRef: ViewContainerRef;\n @ViewChild('groupsTemplate', { read: ViewContainerRef, static: true }) groupsModalRef: ViewContainerRef;\n @ViewChild('eventsTemplate', { read: ViewContainerRef, static: true }) eventsModalRef: ViewContainerRef;\n @ViewChild('confirmTemplate', { read: ViewContainerRef, static: true }) confirmModalRef: ViewContainerRef;\n\n loading = true;\n organizationId: string;\n users: OrganizationUserUserDetailsResponse[];\n pagedUsers: OrganizationUserUserDetailsResponse[];\n searchText: string;\n status: OrganizationUserStatusType = null;\n statusMap = new Map();\n organizationUserType = OrganizationUserType;\n organizationUserStatusType = OrganizationUserStatusType;\n actionPromise: Promise;\n accessEvents = false;\n accessGroups = false;\n\n protected didScroll = false;\n protected pageSize = 100;\n\n private pagedUsersCount = 0;\n private modal: ModalComponent = null;\n private allUsers: OrganizationUserUserDetailsResponse[];\n\n constructor(private apiService: ApiService, private route: ActivatedRoute,\n private i18nService: I18nService, private componentFactoryResolver: ComponentFactoryResolver,\n private platformUtilsService: PlatformUtilsService, private toasterService: ToasterService,\n private cryptoService: CryptoService, private userService: UserService, private router: Router,\n private storageService: StorageService, private searchService: SearchService,\n private validationService: ValidationService) { }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n const organization = await this.userService.getOrganization(this.organizationId);\n if (!organization.canManageUsers) {\n this.router.navigate(['../collections'], { relativeTo: this.route });\n return;\n }\n this.accessEvents = organization.useEvents;\n this.accessGroups = organization.useGroups;\n await this.load();\n\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n this.searchText = qParams.search;\n if (qParams.viewEvents != null) {\n const user = this.users.filter(u => u.id === qParams.viewEvents);\n if (user.length > 0 && user[0].status === OrganizationUserStatusType.Confirmed) {\n this.events(user[0]);\n }\n }\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n });\n }\n\n async load() {\n const response = await this.apiService.getOrganizationUsers(this.organizationId);\n this.statusMap.clear();\n this.allUsers = response.data != null && response.data.length > 0 ? response.data : [];\n this.allUsers.sort(Utils.getSortFunction(this.i18nService, 'email'));\n this.allUsers.forEach(u => {\n if (!this.statusMap.has(u.status)) {\n this.statusMap.set(u.status, [u]);\n } else {\n this.statusMap.get(u.status).push(u);\n }\n });\n this.filter(this.status);\n this.loading = false;\n }\n\n filter(status: OrganizationUserStatusType) {\n this.status = status;\n if (this.status != null) {\n this.users = this.statusMap.get(this.status);\n } else {\n this.users = this.allUsers;\n }\n this.resetPaging();\n }\n\n loadMore() {\n if (!this.users || this.users.length <= this.pageSize) {\n return;\n }\n const pagedLength = this.pagedUsers.length;\n let pagedSize = this.pageSize;\n if (pagedLength === 0 && this.pagedUsersCount > this.pageSize) {\n pagedSize = this.pagedUsersCount;\n }\n if (this.users.length > pagedLength) {\n this.pagedUsers = this.pagedUsers.concat(this.users.slice(pagedLength, pagedLength + pagedSize));\n }\n this.pagedUsersCount = this.pagedUsers.length;\n this.didScroll = this.pagedUsers.length > this.pageSize;\n }\n\n get allCount() {\n return this.allUsers != null ? this.allUsers.length : 0;\n }\n\n get invitedCount() {\n return this.statusMap.has(OrganizationUserStatusType.Invited) ?\n this.statusMap.get(OrganizationUserStatusType.Invited).length : 0;\n }\n\n get acceptedCount() {\n return this.statusMap.has(OrganizationUserStatusType.Accepted) ?\n this.statusMap.get(OrganizationUserStatusType.Accepted).length : 0;\n }\n\n get confirmedCount() {\n return this.statusMap.has(OrganizationUserStatusType.Confirmed) ?\n this.statusMap.get(OrganizationUserStatusType.Confirmed).length : 0;\n }\n\n get showConfirmUsers(): boolean {\n return this.allUsers != null && this.statusMap != null && this.allUsers.length > 1 &&\n this.confirmedCount > 0 && this.confirmedCount < 3 && this.acceptedCount > 0;\n }\n\n edit(user: OrganizationUserUserDetailsResponse) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.addEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n UserAddEditComponent, this.addEditModalRef);\n\n childComponent.name = user != null ? user.name || user.email : null;\n childComponent.organizationId = this.organizationId;\n childComponent.organizationUserId = user != null ? user.id : null;\n childComponent.onSavedUser.subscribe(() => {\n this.modal.close();\n this.load();\n });\n childComponent.onDeletedUser.subscribe(() => {\n this.modal.close();\n this.removeUser(user);\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n invite() {\n this.edit(null);\n }\n\n groups(user: OrganizationUserUserDetailsResponse) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.groupsModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n UserGroupsComponent, this.groupsModalRef);\n\n childComponent.name = user != null ? user.name || user.email : null;\n childComponent.organizationId = this.organizationId;\n childComponent.organizationUserId = user != null ? user.id : null;\n childComponent.onSavedUser.subscribe(() => {\n this.modal.close();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n async remove(user: OrganizationUserUserDetailsResponse) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('removeUserConfirmation'), user.name || user.email,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n await this.apiService.deleteOrganizationUser(this.organizationId, user.id);\n this.toasterService.popAsync('success', null, this.i18nService.t('removedUserId', user.name || user.email));\n this.removeUser(user);\n } catch { }\n }\n\n async reinvite(user: OrganizationUserUserDetailsResponse) {\n if (this.actionPromise != null) {\n return;\n }\n this.actionPromise = this.apiService.postOrganizationUserReinvite(this.organizationId, user.id);\n await this.actionPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('hasBeenReinvited', user.name || user.email));\n this.actionPromise = null;\n }\n\n async confirm(user: OrganizationUserUserDetailsResponse) {\n function updateUser(self: PeopleComponent) {\n user.status = OrganizationUserStatusType.Confirmed;\n const mapIndex = self.statusMap.get(OrganizationUserStatusType.Accepted).indexOf(user);\n if (mapIndex > -1) {\n self.statusMap.get(OrganizationUserStatusType.Accepted).splice(mapIndex, 1);\n self.statusMap.get(OrganizationUserStatusType.Confirmed).push(user);\n }\n }\n\n const confirmUser = async (publicKey: Uint8Array) => {\n try {\n this.actionPromise = this.doConfirmation(user, publicKey);\n await this.actionPromise;\n updateUser(this);\n this.toasterService.popAsync('success', null, this.i18nService.t('hasBeenConfirmed', user.name || user.email));\n } catch (e) {\n this.validationService.showError(e);\n throw e;\n } finally {\n this.actionPromise = null;\n }\n };\n\n if (this.actionPromise != null) {\n return;\n }\n\n const autoConfirm = await this.storageService.get(ConstantsService.autoConfirmFingerprints);\n if (autoConfirm == null || !autoConfirm) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.confirmModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n UserConfirmComponent, this.confirmModalRef);\n\n childComponent.name = user != null ? user.name || user.email : null;\n childComponent.organizationId = this.organizationId;\n childComponent.organizationUserId = user != null ? user.id : null;\n childComponent.userId = user != null ? user.userId : null;\n childComponent.onConfirmedUser.subscribe(async (publicKey: Uint8Array) => {\n try {\n await confirmUser(publicKey);\n this.modal.close();\n } catch (e) {\n // tslint:disable-next-line\n console.error('Handled exception:', e);\n }\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n return;\n }\n\n try {\n const publicKeyResponse = await this.apiService.getUserPublicKey(user.userId);\n const publicKey = Utils.fromB64ToArray(publicKeyResponse.publicKey);\n try {\n // tslint:disable-next-line\n console.log('User\\'s fingerprint: ' +\n (await this.cryptoService.getFingerprint(user.userId, publicKey.buffer)).join('-'));\n } catch { }\n await confirmUser(publicKey);\n } catch (e) {\n // tslint:disable-next-line\n console.error('Handled exception:', e);\n }\n }\n\n async events(user: OrganizationUserUserDetailsResponse) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.eventsModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n EntityEventsComponent, this.eventsModalRef);\n\n childComponent.name = user.name || user.email;\n childComponent.organizationId = this.organizationId;\n childComponent.entityId = user.id;\n childComponent.showUser = false;\n childComponent.entity = 'user';\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n async resetPaging() {\n this.pagedUsers = [];\n this.loadMore();\n }\n\n isSearching() {\n return this.searchService.isSearchable(this.searchText);\n }\n\n isPaging() {\n const searching = this.isSearching();\n if (searching && this.didScroll) {\n this.resetPaging();\n }\n return !searching && this.users && this.users.length > this.pageSize;\n }\n\n private async doConfirmation(user: OrganizationUserUserDetailsResponse, publicKey: Uint8Array) {\n const orgKey = await this.cryptoService.getOrgKey(this.organizationId);\n const key = await this.cryptoService.rsaEncrypt(orgKey.key, publicKey.buffer);\n const request = new OrganizationUserConfirmRequest();\n request.key = key.encryptedString;\n await this.apiService.postOrganizationUserConfirm(this.organizationId, user.id, request);\n }\n\n private removeUser(user: OrganizationUserUserDetailsResponse) {\n let index = this.users.indexOf(user);\n if (index > -1) {\n this.users.splice(index, 1);\n this.resetPaging();\n }\n if (this.statusMap.has(OrganizationUserStatusType.Accepted)) {\n index = this.statusMap.get(OrganizationUserStatusType.Accepted).indexOf(user);\n if (index > -1) {\n this.statusMap.get(OrganizationUserStatusType.Accepted).splice(index, 1);\n }\n }\n if (this.statusMap.has(OrganizationUserStatusType.Invited)) {\n index = this.statusMap.get(OrganizationUserStatusType.Invited).indexOf(user);\n if (index > -1) {\n this.statusMap.get(OrganizationUserStatusType.Invited).splice(index, 1);\n }\n }\n if (this.statusMap.has(OrganizationUserStatusType.Confirmed)) {\n index = this.statusMap.get(OrganizationUserStatusType.Confirmed).indexOf(user);\n if (index > -1) {\n this.statusMap.get(OrganizationUserStatusType.Confirmed).splice(index, 1);\n }\n }\n }\n}\n","
\n

{{'people' | i18n}}

\n
\n
\n \n \n \n
\n
\n \n \n
\n \n
\n
\n\n \n {{'loading' | i18n}}\n\n\n

{{'noUsersInList' | i18n}}

\n \n \n {{'usersNeedConfirmed' | i18n}}\n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n {{u.email}}\n {{'invited' | i18n}}\n {{'accepted' | i18n}}\n {{u.name}}\n \n \n \n {{'userUsingTwoStep' | i18n}}\n \n \n {{'owner' | i18n}}\n {{'admin' | i18n}}\n {{'manager' | i18n}}\n {{'user' | i18n}}\n {{'custom' | i18n}}\n \n \n
\n
\n\n\n\n\n\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { CollectionData } from 'jslib/models/data/collectionData';\nimport { Collection } from 'jslib/models/domain/collection';\nimport { OrganizationUserInviteRequest } from 'jslib/models/request/organizationUserInviteRequest';\nimport { OrganizationUserUpdateRequest } from 'jslib/models/request/organizationUserUpdateRequest';\nimport { SelectionReadOnlyRequest } from 'jslib/models/request/selectionReadOnlyRequest';\nimport { CollectionDetailsResponse } from 'jslib/models/response/collectionResponse';\nimport { CollectionView } from 'jslib/models/view/collectionView';\n\nimport { OrganizationUserType } from 'jslib/enums/organizationUserType';\nimport { PermissionsApi } from 'jslib/models/api/permissionsApi';\n\n@Component({\n selector: 'app-user-add-edit',\n templateUrl: 'user-add-edit.component.html',\n})\nexport class UserAddEditComponent implements OnInit {\n @Input() name: string;\n @Input() organizationUserId: string;\n @Input() organizationId: string;\n @Output() onSavedUser = new EventEmitter();\n @Output() onDeletedUser = new EventEmitter();\n\n loading = true;\n editMode: boolean = false;\n title: string;\n emails: string;\n type: OrganizationUserType = OrganizationUserType.User;\n permissions = new PermissionsApi();\n showCustom = false;\n access: 'all' | 'selected' = 'selected';\n collections: CollectionView[] = [];\n formPromise: Promise;\n deletePromise: Promise;\n organizationUserType = OrganizationUserType;\n\n get customUserTypeSelected(): boolean {\n return this.type === OrganizationUserType.Custom;\n }\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, private collectionService: CollectionService,\n private platformUtilsService: PlatformUtilsService) { }\n\n async ngOnInit() {\n this.editMode = this.loading = this.organizationUserId != null;\n await this.loadCollections();\n\n if (this.editMode) {\n this.editMode = true;\n this.title = this.i18nService.t('editUser');\n try {\n const user = await this.apiService.getOrganizationUser(this.organizationId, this.organizationUserId);\n this.access = user.accessAll ? 'all' : 'selected';\n this.type = user.type;\n if (user.type === OrganizationUserType.Custom) {\n this.permissions = user.permissions;\n }\n if (user.collections != null && this.collections != null) {\n user.collections.forEach(s => {\n const collection = this.collections.filter(c => c.id === s.id);\n if (collection != null && collection.length > 0) {\n (collection[0] as any).checked = true;\n collection[0].readOnly = s.readOnly;\n collection[0].hidePasswords = s.hidePasswords;\n }\n });\n }\n } catch { }\n } else {\n this.title = this.i18nService.t('inviteUser');\n }\n\n this.loading = false;\n }\n\n async loadCollections() {\n const response = await this.apiService.getCollections(this.organizationId);\n const collections = response.data.map(r =>\n new Collection(new CollectionData(r as CollectionDetailsResponse)));\n this.collections = await this.collectionService.decryptMany(collections);\n }\n\n check(c: CollectionView, select?: boolean) {\n (c as any).checked = select == null ? !(c as any).checked : select;\n if (!(c as any).checked) {\n c.readOnly = false;\n }\n }\n\n selectAll(select: boolean) {\n this.collections.forEach(c => this.check(c, select));\n }\n\n setRequestPermissions(p: PermissionsApi, clearPermissions: boolean) {\n p.accessBusinessPortal = clearPermissions ?\n false :\n this.permissions.accessBusinessPortal;\n p.accessEventLogs = this.permissions.accessEventLogs = clearPermissions ?\n false :\n this.permissions.accessEventLogs;\n p.accessImportExport = clearPermissions ?\n false :\n this.permissions.accessImportExport;\n p.accessReports = clearPermissions ?\n false :\n this.permissions.accessReports;\n p.manageAllCollections = clearPermissions ?\n false :\n this.permissions.manageAllCollections;\n p.manageAssignedCollections = clearPermissions ?\n false :\n this.permissions.manageAssignedCollections;\n p.manageGroups = clearPermissions ?\n false :\n this.permissions.manageGroups;\n p.manageSso = clearPermissions ?\n false :\n this.permissions.manageSso;\n p.managePolicies = clearPermissions ?\n false :\n this.permissions.managePolicies;\n p.manageUsers = clearPermissions ?\n false :\n this.permissions.manageUsers;\n p.manageResetPassword = clearPermissions ?\n false :\n this.permissions.manageResetPassword;\n return p;\n }\n\n async submit() {\n let collections: SelectionReadOnlyRequest[] = null;\n if (this.access !== 'all') {\n collections = this.collections.filter(c => (c as any).checked)\n .map(c => new SelectionReadOnlyRequest(c.id, !!c.readOnly, !!c.hidePasswords));\n }\n\n try {\n if (this.editMode) {\n const request = new OrganizationUserUpdateRequest();\n request.accessAll = this.access === 'all';\n request.type = this.type;\n request.collections = collections;\n request.permissions = this.setRequestPermissions(request.permissions ?? new PermissionsApi(), request.type !== OrganizationUserType.Custom);\n this.formPromise = this.apiService.putOrganizationUser(this.organizationId, this.organizationUserId,\n request);\n } else {\n const request = new OrganizationUserInviteRequest();\n request.emails = this.emails.trim().split(/\\s*,\\s*/);\n request.accessAll = this.access === 'all';\n request.type = this.type;\n request.permissions = this.setRequestPermissions(request.permissions ?? new PermissionsApi(), request.type !== OrganizationUserType.Custom);\n request.collections = collections;\n this.formPromise = this.apiService.postOrganizationUserInvite(this.organizationId, request);\n }\n await this.formPromise;\n this.toasterService.popAsync('success', null,\n this.i18nService.t(this.editMode ? 'editedUserId' : 'invitedUsers', this.name));\n this.onSavedUser.emit();\n } catch { }\n }\n\n async delete() {\n if (!this.editMode) {\n return;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('removeUserConfirmation'), this.name,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.deletePromise = this.apiService.deleteOrganizationUser(this.organizationId, this.organizationUserId);\n await this.deletePromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('removedUserId', this.name));\n this.onDeletedUser.emit();\n } catch { }\n }\n\n}\n","
\n
\n
\n
\n

\n {{title}}\n {{name}}\n

\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n \n

{{'inviteUserDesc' | i18n}}

\n
\n \n \n {{'inviteMultipleEmailDesc' | i18n : '20'}}\n
\n
\n

\n {{'userType' | i18n}}\n \n \n \n

\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n \n

\n {{'permissions' | i18n}}\n

\n
\n
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n

\n
\n {{'accessControl' | i18n}}\n \n \n \n
\n
\n \n \n
\n

\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n
\n {{'noCollectionsInList' | i18n}}\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 {{'name' | i18n}}{{'hidePasswords' | i18n}}{{'readOnly' | i18n}}
\n \n \n {{c.name}}\n \n \n \n \n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ConstantsService } from 'jslib/services/constants.service';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\n\nimport { Utils } from 'jslib/misc/utils';\n\n@Component({\n selector: 'app-user-confirm',\n templateUrl: 'user-confirm.component.html',\n})\nexport class UserConfirmComponent implements OnInit {\n @Input() name: string;\n @Input() userId: string;\n @Input() organizationUserId: string;\n @Input() organizationId: string;\n @Output() onConfirmedUser = new EventEmitter();\n\n dontAskAgain = false;\n loading = true;\n fingerprint: string;\n\n private publicKey: Uint8Array = null;\n\n constructor(private apiService: ApiService, private cryptoService: CryptoService,\n private storageService: StorageService) { }\n\n async ngOnInit() {\n try {\n const publicKeyResponse = await this.apiService.getUserPublicKey(this.userId);\n if (publicKeyResponse != null) {\n this.publicKey = Utils.fromB64ToArray(publicKeyResponse.publicKey);\n const fingerprint = await this.cryptoService.getFingerprint(this.userId, this.publicKey.buffer);\n if (fingerprint != null) {\n this.fingerprint = fingerprint.join('-');\n }\n }\n } catch { }\n this.loading = false;\n }\n\n async submit() {\n if (this.loading) {\n return;\n }\n\n if (this.dontAskAgain) {\n await this.storageService.save(ConstantsService.autoConfirmFingerprints, true);\n }\n\n this.onConfirmedUser.emit(this.publicKey);\n }\n}\n","
\n
\n
\n
\n

\n {{'confirmUser' | i18n}}\n {{name}}\n

\n \n
\n
\n

\n {{'fingerprintEnsureIntegrityVerify' | i18n}}\n \n {{'learnMore' | i18n}}\n

\n

{{fingerprint}}

\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { OrganizationUserUpdateGroupsRequest } from 'jslib/models/request/organizationUserUpdateGroupsRequest';\nimport { GroupResponse } from 'jslib/models/response/groupResponse';\n\nimport { Utils } from 'jslib/misc/utils';\n\n@Component({\n selector: 'app-user-groups',\n templateUrl: 'user-groups.component.html',\n})\nexport class UserGroupsComponent implements OnInit {\n @Input() name: string;\n @Input() organizationUserId: string;\n @Input() organizationId: string;\n @Output() onSavedUser = new EventEmitter();\n\n loading = true;\n groups: GroupResponse[] = [];\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService) { }\n\n async ngOnInit() {\n const groupsResponse = await this.apiService.getGroups(this.organizationId);\n const groups = groupsResponse.data.map(r => r);\n groups.sort(Utils.getSortFunction(this.i18nService, 'name'));\n this.groups = groups;\n\n try {\n const userGroups = await this.apiService.getOrganizationUserGroups(\n this.organizationId, this.organizationUserId);\n if (userGroups != null && this.groups != null) {\n userGroups.forEach(ug => {\n const group = this.groups.filter(g => g.id === ug);\n if (group != null && group.length > 0) {\n (group[0] as any).checked = true;\n }\n });\n }\n } catch { }\n\n this.loading = false;\n }\n\n check(g: GroupResponse, select?: boolean) {\n (g as any).checked = select == null ? !(g as any).checked : select;\n if (!(g as any).checked) {\n (g as any).readOnly = false;\n }\n }\n\n selectAll(select: boolean) {\n this.groups.forEach(g => this.check(g, select));\n }\n\n async submit() {\n const request = new OrganizationUserUpdateGroupsRequest();\n request.groupIds = this.groups.filter(g => (g as any).checked).map(g => g.id);\n\n try {\n this.formPromise = this.apiService.putOrganizationUserGroups(this.organizationId, this.organizationUserId,\n request);\n await this.formPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('editedGroupsForUser', this.name));\n this.onSavedUser.emit();\n } catch { }\n }\n}\n","
\n
\n
\n
\n

\n {{'groupAccess' | i18n}}\n {{name}}\n

\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n

{{'groupAccessUserDesc' | i18n}}

\n
\n {{'noGroupsInList' | i18n}}\n
\n \n \n \n \n \n \n \n
\n \n \n {{g.name}}\n
\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { PolicyType } from 'jslib/enums/policyType';\n\nimport { EnvironmentService } from 'jslib/abstractions';\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { PolicyResponse } from 'jslib/models/response/policyResponse';\n\nimport { ModalComponent } from '../../modal.component';\n\nimport { PolicyEditComponent } from './policy-edit.component';\n\n@Component({\n selector: 'app-org-policies',\n templateUrl: 'policies.component.html',\n})\nexport class PoliciesComponent implements OnInit {\n @ViewChild('editTemplate', { read: ViewContainerRef, static: true }) editModalRef: ViewContainerRef;\n\n loading = true;\n organizationId: string;\n policies: any[];\n\n // Remove when removing deprecation warning\n enterpriseTokenPromise: Promise;\n userCanAccessBusinessPortal = false;\n\n private enterpriseUrl: string;\n\n private modal: ModalComponent = null;\n private orgPolicies: PolicyResponse[];\n private policiesEnabledMap: Map = new Map();\n\n constructor(private apiService: ApiService, private route: ActivatedRoute,\n private i18nService: I18nService, private componentFactoryResolver: ComponentFactoryResolver,\n private platformUtilsService: PlatformUtilsService, private userService: UserService,\n private router: Router, private environmentService: EnvironmentService) { }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n const organization = await this.userService.getOrganization(this.organizationId);\n if (organization == null || !organization.usePolicies) {\n this.router.navigate(['/organizations', this.organizationId]);\n return;\n }\n this.userCanAccessBusinessPortal = organization.canAccessBusinessPortal;\n this.policies = [\n {\n name: this.i18nService.t('twoStepLogin'),\n description: this.i18nService.t('twoStepLoginPolicyDesc'),\n type: PolicyType.TwoFactorAuthentication,\n enabled: false,\n display: true,\n },\n {\n name: this.i18nService.t('masterPass'),\n description: this.i18nService.t('masterPassPolicyDesc'),\n type: PolicyType.MasterPassword,\n enabled: false,\n display: true,\n },\n {\n name: this.i18nService.t('passwordGenerator'),\n description: this.i18nService.t('passwordGeneratorPolicyDesc'),\n type: PolicyType.PasswordGenerator,\n enabled: false,\n display: true,\n },\n {\n name: this.i18nService.t('singleOrg'),\n description: this.i18nService.t('singleOrgDesc'),\n type: PolicyType.SingleOrg,\n enabled: false,\n display: true,\n },\n {\n name: this.i18nService.t('requireSso'),\n description: this.i18nService.t('requireSsoPolicyDesc'),\n type: PolicyType.RequireSso,\n enabled: false,\n display: organization.useSso,\n },\n {\n name: this.i18nService.t('personalOwnership'),\n description: this.i18nService.t('personalOwnershipPolicyDesc'),\n type: PolicyType.PersonalOwnership,\n enabled: false,\n display: true,\n },\n {\n name: this.i18nService.t('disableSend'),\n description: this.i18nService.t('disableSendPolicyDesc'),\n type: PolicyType.DisableSend,\n enabled: false,\n display: true,\n },\n {\n name: this.i18nService.t('sendOptions'),\n description: this.i18nService.t('sendOptionsPolicyDesc'),\n type: PolicyType.SendOptions,\n enabled: false,\n display: true,\n },\n ];\n await this.load();\n\n // Handle policies component launch from Event message\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n if (qParams.policyId != null) {\n const policyIdFromEvents: string = qParams.policyId;\n for (const orgPolicy of this.orgPolicies) {\n if (orgPolicy.id === policyIdFromEvents) {\n for (let i = 0; i < this.policies.length; i++) {\n if (this.policies[i].type === orgPolicy.type) {\n this.edit(this.policies[i]);\n break;\n }\n }\n break;\n }\n }\n }\n\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n });\n\n // Remove when removing deprecation warning\n this.enterpriseUrl = 'https://portal.bitwarden.com';\n if (this.environmentService.enterpriseUrl != null) {\n this.enterpriseUrl = this.environmentService.enterpriseUrl;\n } else if (this.environmentService.baseUrl != null) {\n this.enterpriseUrl = this.environmentService.baseUrl + '/portal';\n }\n }\n\n async load() {\n const response = await this.apiService.getPolicies(this.organizationId);\n this.orgPolicies = response.data != null && response.data.length > 0 ? response.data : [];\n this.orgPolicies.forEach(op => {\n this.policiesEnabledMap.set(op.type, op.enabled);\n });\n this.policies.forEach(p => {\n p.enabled = this.policiesEnabledMap.has(p.type) && this.policiesEnabledMap.get(p.type);\n });\n this.loading = false;\n }\n\n edit(p: any) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.editModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n PolicyEditComponent, this.editModalRef);\n\n childComponent.name = p.name;\n childComponent.description = p.description;\n childComponent.type = p.type;\n childComponent.organizationId = this.organizationId;\n childComponent.policiesEnabledMap = this.policiesEnabledMap;\n childComponent.onSavedPolicy.subscribe(() => {\n this.modal.close();\n this.load();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n\n // Remove when removing deprecation warning\n async goToEnterprisePortal() {\n if (this.enterpriseTokenPromise != null) {\n return;\n }\n try {\n this.enterpriseTokenPromise = this.apiService.getEnterprisePortalSignInToken();\n const token = await this.enterpriseTokenPromise;\n if (token != null) {\n const userId = await this.userService.getUserId();\n this.platformUtilsService.launchUri(this.enterpriseUrl + '/login?userId=' + userId +\n '&token=' + (window as any).encodeURIComponent(token) + '&organizationId=' + this.organizationId);\n }\n } catch { }\n this.enterpriseTokenPromise = null;\n }\n}\n","\n

{{'webPoliciesDeprecationWarning' | i18n}}

\n \n
\n
\n

{{'policies' | i18n}}

\n
\n\n \n {{'loading' | i18n}}\n\n\n \n \n \n \n \n
\n {{p.name}}\n {{'enabled' | i18n}}\n {{p.description}}\n
\n\n","// Using index.ts is deprecated, please do not extend\nexport { ApiService } from './api.service';\nexport { AppIdService } from './appId.service';\nexport { AuditService } from './audit.service';\nexport { AuthService } from './auth.service';\nexport { CipherService } from './cipher.service';\nexport { CollectionService } from './collection.service';\nexport { CryptoService } from './crypto.service';\nexport { EnvironmentService } from './environment.service';\nexport { FolderService } from './folder.service';\nexport { I18nService } from './i18n.service';\nexport { LogService } from './log.service';\nexport { MessagingService } from './messaging.service';\nexport { PasswordGenerationService } from './passwordGeneration.service';\nexport { PlatformUtilsService } from './platformUtils.service';\nexport { SearchService } from './search.service';\nexport { SettingsService } from './settings.service';\nexport { StorageService } from './storage.service';\nexport { StateService } from './state.service';\nexport { SyncService } from './sync.service';\nexport { TokenService } from './token.service';\nexport { TotpService } from './totp.service';\nexport { UserService } from './user.service';\nexport { VaultTimeoutService } from './vaultTimeout.service';\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { PolicyType } from 'jslib/enums/policyType';\n\nimport { PolicyRequest } from 'jslib/models/request/policyRequest';\n\nimport { PolicyResponse } from 'jslib/models/response/policyResponse';\n\n@Component({\n selector: 'app-policy-edit',\n templateUrl: 'policy-edit.component.html',\n})\nexport class PolicyEditComponent implements OnInit {\n @Input() name: string;\n @Input() description: string;\n @Input() type: PolicyType;\n @Input() organizationId: string;\n @Input() policiesEnabledMap: Map = new Map();\n @Output() onSavedPolicy = new EventEmitter();\n\n policyType = PolicyType;\n loading = true;\n enabled = false;\n formPromise: Promise;\n passwordScores: any[];\n defaultTypes: any[];\n\n // Master password\n masterPassMinComplexity?: number = null;\n masterPassMinLength?: number;\n masterPassRequireUpper?: number;\n masterPassRequireLower?: number;\n masterPassRequireNumbers?: number;\n masterPassRequireSpecial?: number;\n\n // Password generator\n passGenDefaultType?: string;\n passGenMinLength?: number;\n passGenUseUpper?: boolean;\n passGenUseLower?: boolean;\n passGenUseNumbers?: boolean;\n passGenUseSpecial?: boolean;\n passGenMinNumbers?: number;\n passGenMinSpecial?: number;\n passGenMinNumberWords?: number;\n passGenCapitalize?: boolean;\n passGenIncludeNumber?: boolean;\n\n // Send options\n sendDisableHideEmail?: boolean;\n\n private policy: PolicyResponse;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService) {\n this.passwordScores = [\n { name: '-- ' + i18nService.t('select') + ' --', value: null },\n { name: i18nService.t('weak') + ' (0)', value: 0 },\n { name: i18nService.t('weak') + ' (1)', value: 1 },\n { name: i18nService.t('weak') + ' (2)', value: 2 },\n { name: i18nService.t('good') + ' (3)', value: 3 },\n { name: i18nService.t('strong') + ' (4)', value: 4 },\n ];\n this.defaultTypes = [\n { name: i18nService.t('userPreference'), value: null },\n { name: i18nService.t('password'), value: 'password' },\n { name: i18nService.t('passphrase'), value: 'passphrase' },\n ];\n }\n\n async ngOnInit() {\n await this.load();\n this.loading = false;\n }\n\n async load() {\n try {\n this.policy = await this.apiService.getPolicy(this.organizationId, this.type);\n\n if (this.policy != null) {\n this.enabled = this.policy.enabled;\n if (this.policy.data != null) {\n switch (this.type) {\n case PolicyType.PasswordGenerator:\n this.passGenDefaultType = this.policy.data.defaultType;\n this.passGenMinLength = this.policy.data.minLength;\n this.passGenUseUpper = this.policy.data.useUpper;\n this.passGenUseLower = this.policy.data.useLower;\n this.passGenUseNumbers = this.policy.data.useNumbers;\n this.passGenUseSpecial = this.policy.data.useSpecial;\n this.passGenMinNumbers = this.policy.data.minNumbers;\n this.passGenMinSpecial = this.policy.data.minSpecial;\n this.passGenMinNumberWords = this.policy.data.minNumberWords;\n this.passGenCapitalize = this.policy.data.capitalize;\n this.passGenIncludeNumber = this.policy.data.includeNumber;\n break;\n case PolicyType.MasterPassword:\n this.masterPassMinComplexity = this.policy.data.minComplexity;\n this.masterPassMinLength = this.policy.data.minLength;\n this.masterPassRequireUpper = this.policy.data.requireUpper;\n this.masterPassRequireLower = this.policy.data.requireLower;\n this.masterPassRequireNumbers = this.policy.data.requireNumbers;\n this.masterPassRequireSpecial = this.policy.data.requireSpecial;\n break;\n case PolicyType.SendOptions:\n this.sendDisableHideEmail = this.policy.data.disableHideEmail;\n break;\n default:\n break;\n }\n }\n }\n } catch (e) {\n if (e.statusCode === 404) {\n this.enabled = false;\n } else {\n throw e;\n }\n }\n }\n\n async submit() {\n if (this.preValidate()) {\n const request = new PolicyRequest();\n request.enabled = this.enabled;\n request.type = this.type;\n request.data = null;\n switch (this.type) {\n case PolicyType.PasswordGenerator:\n request.data = {\n defaultType: this.passGenDefaultType,\n minLength: this.passGenMinLength || null,\n useUpper: this.passGenUseUpper,\n useLower: this.passGenUseLower,\n useNumbers: this.passGenUseNumbers,\n useSpecial: this.passGenUseSpecial,\n minNumbers: this.passGenMinNumbers || null,\n minSpecial: this.passGenMinSpecial || null,\n minNumberWords: this.passGenMinNumberWords || null,\n capitalize: this.passGenCapitalize,\n includeNumber: this.passGenIncludeNumber,\n };\n break;\n case PolicyType.MasterPassword:\n request.data = {\n minComplexity: this.masterPassMinComplexity || null,\n minLength: this.masterPassMinLength || null,\n requireUpper: this.masterPassRequireUpper,\n requireLower: this.masterPassRequireLower,\n requireNumbers: this.masterPassRequireNumbers,\n requireSpecial: this.masterPassRequireSpecial,\n };\n break;\n case PolicyType.SendOptions:\n request.data = {\n disableHideEmail: this.sendDisableHideEmail,\n };\n break;\n default:\n break;\n }\n try {\n this.formPromise = this.apiService.putPolicy(this.organizationId, this.type, request);\n await this.formPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('editedPolicyId', this.name));\n this.onSavedPolicy.emit();\n } catch { }\n }\n }\n\n get checkboxDesc(): string {\n return this.type === PolicyType.PersonalOwnership ? this.i18nService.t('personalOwnershipCheckboxDesc') :\n this.i18nService.t('enabled');\n }\n\n private preValidate(): boolean {\n switch (this.type) {\n case PolicyType.RequireSso:\n // Don't need prevalidation checks if submitting to disable\n if (!this.enabled) {\n return true;\n }\n // Have SingleOrg policy enabled?\n if (!(this.policiesEnabledMap.has(PolicyType.SingleOrg)\n && this.policiesEnabledMap.get(PolicyType.SingleOrg))) {\n this.toasterService.popAsync('error', null, this.i18nService.t('requireSsoPolicyReqError'));\n return false;\n }\n return true;\n\n case PolicyType.SingleOrg:\n // Don't need prevalidation checks if submitting to enable\n if (this.enabled) {\n return true;\n }\n // If RequireSso Policy is enabled prevent submittal\n if (this.policiesEnabledMap.has(PolicyType.RequireSso)\n && this.policiesEnabledMap.get(PolicyType.RequireSso)) {\n this.toasterService.popAsync('error', null, this.i18nService.t('disableRequireSsoError'));\n return false;\n }\n return true;\n\n default:\n return true;\n }\n }\n}\n","
\n
\n
\n
\n

{{'editPolicy' | i18n}} - {{name}}

\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n

{{description}}

\n \n {{'twoStepLoginPolicyWarning' | i18n}}\n \n \n {{'singleOrgPolicyWarning' | i18n}}\n \n \n \n {{'requireSsoPolicyReq' | i18n}}\n \n \n {{'requireSsoExemption' | i18n}}\n \n \n \n {{'personalOwnershipExemption' | i18n}}\n \n \n {{'disableSendExemption' | i18n}}\n \n \n {{'sendOptionsExemption' | i18n}}\n \n
\n
\n \n \n
\n
\n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n
\n
\n \n \n
\n
\n

{{'password' | i18n}}

\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n

{{'passphrase' | i18n}}

\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n

{{'options' | i18n}}

\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n ComponentFactoryResolver,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\n\nimport { OrganizationUpdateRequest } from 'jslib/models/request/organizationUpdateRequest';\nimport { OrganizationResponse } from 'jslib/models/response/organizationResponse';\n\nimport { ModalComponent } from '../../modal.component';\nimport { ApiKeyComponent } from '../../settings/api-key.component';\nimport { PurgeVaultComponent } from '../../settings/purge-vault.component';\nimport { TaxInfoComponent } from '../../settings/tax-info.component';\nimport { DeleteOrganizationComponent } from './delete-organization.component';\n\n@Component({\n selector: 'app-org-account',\n templateUrl: 'account.component.html',\n})\nexport class AccountComponent {\n @ViewChild('deleteOrganizationTemplate', { read: ViewContainerRef, static: true }) deleteModalRef: ViewContainerRef;\n @ViewChild('purgeOrganizationTemplate', { read: ViewContainerRef, static: true }) purgeModalRef: ViewContainerRef;\n @ViewChild('apiKeyTemplate', { read: ViewContainerRef, static: true }) apiKeyModalRef: ViewContainerRef;\n @ViewChild('rotateApiKeyTemplate', { read: ViewContainerRef, static: true }) rotateApiKeyModalRef: ViewContainerRef;\n @ViewChild(TaxInfoComponent) taxInfo: TaxInfoComponent;\n\n selfHosted = false;\n loading = true;\n canUseApi = false;\n org: OrganizationResponse;\n formPromise: Promise;\n taxFormPromise: Promise;\n\n private organizationId: string;\n private modal: ModalComponent = null;\n\n constructor(private componentFactoryResolver: ComponentFactoryResolver,\n private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, private route: ActivatedRoute,\n private syncService: SyncService, private platformUtilsService: PlatformUtilsService) { }\n\n async ngOnInit() {\n this.selfHosted = this.platformUtilsService.isSelfHost();\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n try {\n this.org = await this.apiService.getOrganization(this.organizationId);\n this.canUseApi = this.org.useApi;\n } catch { }\n });\n this.loading = false;\n }\n\n async submit() {\n try {\n const request = new OrganizationUpdateRequest();\n request.name = this.org.name;\n request.businessName = this.org.businessName;\n request.billingEmail = this.org.billingEmail;\n request.identifier = this.org.identifier;\n this.formPromise = this.apiService.putOrganization(this.organizationId, request).then(() => {\n return this.syncService.fullSync(true);\n });\n await this.formPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('organizationUpdated'));\n } catch { }\n }\n\n async submitTaxInfo() {\n this.taxFormPromise = this.taxInfo.submitTaxInfo();\n await this.taxFormPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('taxInfoUpdated'));\n }\n\n deleteOrganization() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.deleteModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n DeleteOrganizationComponent, this.deleteModalRef);\n childComponent.organizationId = this.organizationId;\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n purgeVault() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.purgeModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(PurgeVaultComponent, this.purgeModalRef);\n childComponent.organizationId = this.organizationId;\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n viewApiKey() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.apiKeyModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(ApiKeyComponent, this.apiKeyModalRef);\n childComponent.keyType = 'organization';\n childComponent.entityId = this.organizationId;\n childComponent.postKey = this.apiService.postOrganizationApiKey.bind(this.apiService);\n childComponent.scope = 'api.organization';\n childComponent.grantType = 'client_credentials';\n childComponent.apiKeyTitle = 'apiKey';\n childComponent.apiKeyWarning = 'apiKeyWarning';\n childComponent.apiKeyDescription = 'apiKeyDesc';\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n rotateApiKey() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.rotateApiKeyModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(ApiKeyComponent, this.rotateApiKeyModalRef);\n childComponent.keyType = 'organization';\n childComponent.isRotation = true;\n childComponent.entityId = this.organizationId;\n childComponent.postKey = this.apiService.postOrganizationRotateApiKey.bind(this.apiService);\n childComponent.scope = 'api.organization';\n childComponent.grantType = 'client_credentials';\n childComponent.apiKeyTitle = 'apiKey';\n childComponent.apiKeyWarning = 'apiKeyWarning';\n childComponent.apiKeyDescription = 'apiKeyRotateDesc';\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n}\n","
\n

{{'myOrganization' | i18n}}

\n
\n
\n \n {{'loading' | i18n}}\n
\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n
\n
\n \n
\n\n
\n

{{'apiKey' | i18n}}

\n
\n

\n {{'apiKeyDesc' | i18n}}\n \n {{'learnMore' | i18n}}\n \n

\n \n \n
\n
\n

{{'taxInformation' | i18n}}

\n
\n

{{'taxInformationDesc' | i18n}}

\n
\n \n {{'loading' | i18n}}\n
\n
\n \n \n
\n
\n

{{'dangerZone' | i18n}}

\n
\n
\n
\n

{{'dangerZoneDesc' | i18n}}

\n \n \n
\n
\n\n\n\n\n","import { TaxInfoUpdateRequest } from './taxInfoUpdateRequest';\n\nexport class OrganizationTaxInfoUpdateRequest extends TaxInfoUpdateRequest {\n taxId: string;\n line1: string;\n line2: string;\n city: string;\n state: string;\n}\n","export class TaxInfoUpdateRequest {\n country: string;\n postalCode: string;\n}\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { PasswordVerificationRequest } from 'jslib/models/request/passwordVerificationRequest';\n\n@Component({\n selector: 'app-delete-organization',\n templateUrl: 'delete-organization.component.html',\n})\nexport class DeleteOrganizationComponent {\n organizationId: string;\n\n masterPassword: string;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, private cryptoService: CryptoService,\n private router: Router) { }\n\n async submit() {\n if (this.masterPassword == null || this.masterPassword === '') {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n const request = new PasswordVerificationRequest();\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n try {\n this.formPromise = this.apiService.deleteOrganization(this.organizationId, request);\n await this.formPromise;\n this.toasterService.popAsync('success', this.i18nService.t('organizationDeleted'),\n this.i18nService.t('organizationDeletedDesc'));\n this.router.navigate(['/']);\n } catch { }\n }\n}\n","
\n
\n
\n
\n

{{'deleteOrganization' | i18n}}

\n \n
\n
\n

{{'deleteOrganizationDesc' | i18n}}

\n {{'deleteOrganizationWarning' | i18n}}\n \n \n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { UserBillingComponent } from '../../settings/user-billing.component';\n\n@Component({\n selector: 'app-org-billing',\n templateUrl: '../../settings/user-billing.component.html',\n})\nexport class OrganizationBillingComponent extends UserBillingComponent implements OnInit {\n constructor(apiService: ApiService, i18nService: I18nService, toasterService: ToasterService,\n private route: ActivatedRoute, platformUtilsService: PlatformUtilsService) {\n super(apiService, i18nService, toasterService, platformUtilsService);\n }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n await this.load();\n this.firstLoaded = true;\n });\n }\n}\n","export class WebConstants {\n static readonly stripeTestKey = 'pk_test_KPoCfZXu7mznb9uSCPZ2JpTD';\n static readonly stripeLiveKey = 'pk_live_bpN0P37nMxrMQkcaHXtAybJk';\n static readonly btSandboxKey = 'sandbox_r72q8jq6_9pnxkwm75f87sdc2';\n static readonly btProductionKey = 'production_qfbsv8kc_njj2zjtyngtjmbjd';\n static readonly paypal = {\n businessIdProduction: '4ZDA7DLUUJGMN',\n businessIdSandbox: 'AD3LAUZSNVPJY',\n buttonActionProduction: 'https://www.paypal.com/cgi-bin/webscr',\n buttonActionSandbox: 'https://www.sandbox.paypal.com/cgi-bin/webscr',\n };\n}\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { OrganizationSubscriptionResponse } from 'jslib/models/response/organizationSubscriptionResponse';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { PlanType } from 'jslib/enums/planType';\n\n@Component({\n selector: 'app-org-subscription',\n templateUrl: 'organization-subscription.component.html',\n})\nexport class OrganizationSubscriptionComponent implements OnInit {\n loading = false;\n firstLoaded = false;\n organizationId: string;\n adjustSeatsAdd = true;\n showAdjustSeats = false;\n adjustStorageAdd = true;\n showAdjustStorage = false;\n showUpdateLicense = false;\n showDownloadLicense = false;\n showChangePlan = false;\n sub: OrganizationSubscriptionResponse;\n selfHosted = false;\n\n cancelPromise: Promise;\n reinstatePromise: Promise;\n\n constructor(private apiService: ApiService, private platformUtilsService: PlatformUtilsService,\n private i18nService: I18nService, private toasterService: ToasterService,\n private messagingService: MessagingService, private route: ActivatedRoute) {\n this.selfHosted = platformUtilsService.isSelfHost();\n }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n await this.load();\n this.firstLoaded = true;\n });\n }\n\n async load() {\n if (this.loading) {\n return;\n }\n this.loading = true;\n this.sub = await this.apiService.getOrganizationSubscription(this.organizationId);\n this.loading = false;\n }\n\n async reinstate() {\n if (this.loading) {\n return;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(this.i18nService.t('reinstateConfirmation'),\n this.i18nService.t('reinstateSubscription'), this.i18nService.t('yes'), this.i18nService.t('cancel'));\n if (!confirmed) {\n return;\n }\n\n try {\n this.reinstatePromise = this.apiService.postOrganizationReinstate(this.organizationId);\n await this.reinstatePromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('reinstated'));\n this.load();\n } catch { }\n }\n\n async cancel() {\n if (this.loading) {\n return;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(this.i18nService.t('cancelConfirmation'),\n this.i18nService.t('cancelSubscription'), this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return;\n }\n\n try {\n this.cancelPromise = this.apiService.postOrganizationCancel(this.organizationId);\n await this.cancelPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('canceledSubscription'));\n this.load();\n } catch { }\n }\n\n async changePlan() {\n if (this.subscription == null && this.sub.planType === PlanType.Free) {\n this.showChangePlan = !this.showChangePlan;\n return;\n }\n const contactSupport = await this.platformUtilsService.showDialog(this.i18nService.t('changeBillingPlanDesc'),\n this.i18nService.t('changeBillingPlan'), this.i18nService.t('contactSupport'), this.i18nService.t('close'));\n if (contactSupport) {\n this.platformUtilsService.launchUri('https://bitwarden.com/contact');\n }\n }\n\n closeChangePlan(changed: boolean) {\n this.showChangePlan = false;\n }\n\n downloadLicense() {\n this.showDownloadLicense = !this.showDownloadLicense;\n }\n\n closeDownloadLicense() {\n this.showDownloadLicense = false;\n }\n\n updateLicense() {\n if (this.loading) {\n return;\n }\n this.showUpdateLicense = true;\n }\n\n closeUpdateLicense(updated: boolean) {\n this.showUpdateLicense = false;\n if (updated) {\n this.load();\n this.messagingService.send('updatedOrgLicense');\n }\n }\n\n adjustSeats(add: boolean) {\n this.adjustSeatsAdd = add;\n this.showAdjustSeats = true;\n }\n\n closeSeats(load: boolean) {\n this.showAdjustSeats = false;\n if (load) {\n this.load();\n }\n }\n\n adjustStorage(add: boolean) {\n this.adjustStorageAdd = add;\n this.showAdjustStorage = true;\n }\n\n closeStorage(load: boolean) {\n this.showAdjustStorage = false;\n if (load) {\n this.load();\n }\n }\n\n get isExpired() {\n return this.sub != null && this.sub.expiration != null &&\n new Date(this.sub.expiration) < new Date();\n }\n\n get subscriptionMarkedForCancel() {\n return this.subscription != null && !this.subscription.cancelled && this.subscription.cancelAtEndDate;\n }\n\n get subscription() {\n return this.sub != null ? this.sub.subscription : null;\n }\n\n get nextInvoice() {\n return this.sub != null ? this.sub.upcomingInvoice : null;\n }\n\n get storagePercentage() {\n return this.sub != null && this.sub.maxStorageGb ?\n +(100 * (this.sub.storageGb / this.sub.maxStorageGb)).toFixed(2) : 0;\n }\n\n get storageProgressWidth() {\n return this.storagePercentage < 5 ? 5 : 0;\n }\n\n get billingInterval() {\n const monthly = !this.sub.plan.isAnnual;\n return monthly ? 'month' : 'year';\n }\n\n get storageGbPrice() {\n return this.sub.plan.additionalStoragePricePerGb;\n }\n\n get seatPrice() {\n return this.sub.plan.seatPrice;\n }\n\n get canAdjustSeats() {\n return this.sub.plan.hasAdditionalSeatsOption;\n }\n\n get canDownloadLicense() {\n return (this.sub.planType !== PlanType.Free && this.subscription == null) ||\n (this.subscription != null && !this.subscription.cancelled);\n }\n}\n","
\n

\n {{'subscription' | i18n}}\n \n \n {{'loading' | i18n}}\n \n

\n
\n\n \n {{'loading' | i18n}}\n\n\n \n {{'subscriptionCanceled' | i18n}}\n \n

{{'subscriptionPendingCanceled' | i18n}}

\n \n
\n
\n
{{'billingPlan' | i18n}}
\n
{{sub.plan.name}}
\n
{{'expiration' | i18n}}
\n
\n {{sub.expiration | date:'mediumDate'}}\n \n \n {{'licenseIsExpired' | i18n}}\n \n
\n
{{'neverExpires' | i18n}}
\n
\n
\n
\n
\n
{{'billingPlan' | i18n}}
\n
{{sub.plan.name}}
\n \n
{{'status' | i18n}}
\n
\n {{subscription.status || '-'}}\n {{'pendingCancellation' | i18n}}\n
\n
{{'nextCharge' | i18n}}
\n
{{nextInvoice ? ((nextInvoice.date | date: 'mediumDate') + ', ' + (nextInvoice.amount | currency:'$'))\n : '-'}}\n
\n
\n
\n
\n
\n {{'details' | i18n}}\n \n \n \n \n \n \n \n
\n {{i.name}} {{i.quantity > 1 ? '×' + i.quantity : ''}} @ {{i.amount | currency:'$'}}\n \n {{(i.quantity * i.amount) | currency:'$'}} /{{i.interval | i18n}}\n
\n
\n
\n \n
\n \n \n {{'manageSubscription' | i18n}}\n \n
\n
\n
\n \n

{{'updateLicense' | i18n}}

\n \n
\n
\n
\n \n
\n \n \n \n
\n \n
\n \n
\n

{{'userSeats' | i18n}}

\n

{{'subscriptionUserSeats' | i18n : sub.seats}}

\n \n
\n
\n \n \n
\n \n
\n
\n

{{'storage' | i18n}}

\n

{{'subscriptionStorage' | i18n : sub.maxStorageGb || 0 : sub.storageName || '0 MB'}}

\n
\n
\n {{(storagePercentage / 100) | percent}}
\n
\n \n
\n
\n \n \n
\n \n
\n
\n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { PlanType } from 'jslib/enums/planType';\nimport { ProductType } from 'jslib/enums/productType';\n\n@Component({\n selector: 'app-change-plan',\n templateUrl: 'change-plan.component.html',\n})\nexport class ChangePlanComponent {\n @Input() organizationId: string;\n @Output() onChanged = new EventEmitter();\n @Output() onCanceled = new EventEmitter();\n\n formPromise: Promise;\n defaultUpgradePlan: PlanType = PlanType.FamiliesAnnually;\n defaultUpgradeProduct: ProductType = ProductType.Families;\n\n constructor(private apiService: ApiService, private platformUtilsService: PlatformUtilsService) { }\n\n async submit() {\n try {\n this.onChanged.emit();\n } catch { }\n }\n\n cancel() {\n this.onCanceled.emit();\n }\n}\n","
\n
\n \n

{{'changeBillingPlan' | i18n}}

\n

{{'changeBillingPlanUpgrade' | i18n}}

\n \n \n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\n@Component({\n selector: 'app-download-license',\n templateUrl: 'download-license.component.html',\n})\nexport class DownloadLicenseComponent {\n @Input() organizationId: string;\n @Output() onDownloaded = new EventEmitter();\n @Output() onCanceled = new EventEmitter();\n\n installationId: string;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private platformUtilsService: PlatformUtilsService) { }\n\n async submit() {\n if (this.installationId == null || this.installationId === '') {\n return;\n }\n\n try {\n this.formPromise = this.apiService.getOrganizationLicense(this.organizationId, this.installationId);\n const license = await this.formPromise;\n const licenseString = JSON.stringify(license, null, 2);\n this.platformUtilsService.saveFile(window, licenseString, null, 'bitwarden_organization_license.json');\n this.onDownloaded.emit();\n } catch { }\n }\n\n cancel() {\n this.onCanceled.emit();\n }\n}\n","
\n
\n \n

{{'downloadLicense' | i18n}}

\n
\n
\n
\n \n \n \n \n
\n \n
\n
\n \n \n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\n\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { SeatRequest } from 'jslib/models/request/seatRequest';\n\nimport { PaymentComponent } from '../../settings/payment.component';\n\n@Component({\n selector: 'app-adjust-seats',\n templateUrl: 'adjust-seats.component.html',\n})\nexport class AdjustSeatsComponent {\n @Input() seatPrice = 0;\n @Input() add = true;\n @Input() organizationId: string;\n @Input() interval = 'year';\n @Output() onAdjusted = new EventEmitter();\n @Output() onCanceled = new EventEmitter();\n\n @ViewChild(PaymentComponent, { static: true }) paymentComponent: PaymentComponent;\n\n seatAdjustment = 0;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, private router: Router,\n private activatedRoute: ActivatedRoute) { }\n\n async submit() {\n try {\n const request = new SeatRequest();\n request.seatAdjustment = this.seatAdjustment;\n if (!this.add) {\n request.seatAdjustment *= -1;\n }\n\n let paymentFailed = false;\n const action = async () => {\n const result = await this.apiService.postOrganizationSeat(this.organizationId, request);\n if (result != null && result.paymentIntentClientSecret != null) {\n try {\n await this.paymentComponent.handleStripeCardPayment(result.paymentIntentClientSecret, null);\n } catch {\n paymentFailed = true;\n }\n }\n };\n this.formPromise = action();\n await this.formPromise;\n this.onAdjusted.emit(this.seatAdjustment);\n if (paymentFailed) {\n this.toasterService.popAsync({\n body: this.i18nService.t('couldNotChargeCardPayInvoice'),\n type: 'warning',\n timeout: 10000,\n });\n this.router.navigate(['../billing'], { relativeTo: this.activatedRoute });\n } else {\n this.toasterService.popAsync('success', null,\n this.i18nService.t('adjustedSeats', request.seatAdjustment.toString()));\n }\n } catch { }\n }\n\n cancel() {\n this.onCanceled.emit();\n }\n\n get adjustedSeatTotal(): number {\n return this.seatAdjustment * this.seatPrice;\n }\n}\n","
\n
\n \n

{{(add ? 'addSeats' : 'removeSeats') | i18n}}

\n
\n
\n \n \n
\n
\n
\n {{'total' | i18n}}: {{seatAdjustment || 0}} × {{seatPrice | currency:'$'}} = {{adjustedSeatTotal\n | currency:'$'}} /{{interval | i18n}}\n
\n \n \n \n {{(add ? 'seatsAddNote' : 'seatsRemoveNote') | i18n}}\n \n
\n
\n\n","import { Component } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\n@Component({\n selector: 'app-org-settings',\n templateUrl: 'settings.component.html',\n})\nexport class SettingsComponent {\n access2fa = false;\n selfHosted: boolean;\n\n constructor(private route: ActivatedRoute, private userService: UserService,\n private platformUtilsService: PlatformUtilsService) { }\n\n ngOnInit() {\n this.route.parent.params.subscribe(async params => {\n this.selfHosted = await this.platformUtilsService.isSelfHost();\n const organization = await this.userService.getOrganization(params.organizationId);\n this.access2fa = organization.use2fa;\n });\n }\n}\n","\n","import {\n Component,\n ComponentFactoryResolver,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\n\nimport { TwoFactorDuoComponent } from '../../settings/two-factor-duo.component';\nimport { TwoFactorSetupComponent as BaseTwoFactorSetupComponent } from '../../settings/two-factor-setup.component';\n\n@Component({\n selector: 'app-two-factor-setup',\n templateUrl: '../../settings/two-factor-setup.component.html',\n})\nexport class TwoFactorSetupComponent extends BaseTwoFactorSetupComponent {\n constructor(apiService: ApiService, userService: UserService,\n componentFactoryResolver: ComponentFactoryResolver, messagingService: MessagingService,\n policyService: PolicyService, private route: ActivatedRoute) {\n super(apiService, userService, componentFactoryResolver, messagingService, policyService);\n }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n await super.ngOnInit();\n });\n }\n\n manage(type: TwoFactorProviderType) {\n switch (type) {\n case TwoFactorProviderType.OrganizationDuo:\n const duoComp = this.openModal(this.duoModalRef, TwoFactorDuoComponent);\n duoComp.type = TwoFactorProviderType.OrganizationDuo;\n duoComp.organizationId = this.organizationId;\n duoComp.onUpdated.subscribe((enabled: boolean) => {\n this.updateStatus(enabled, TwoFactorProviderType.OrganizationDuo);\n });\n break;\n default:\n break;\n }\n }\n\n protected getTwoFactorProviders() {\n return this.apiService.getTwoFactorOrganizationProviders(this.organizationId);\n }\n\n protected filterProvider(type: TwoFactorProviderType) {\n return type !== TwoFactorProviderType.OrganizationDuo;\n }\n}\n","import {\n Component,\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { UpdateTwoFactorAuthenticatorRequest } from 'jslib/models/request/updateTwoFactorAuthenticatorRequest';\nimport { TwoFactorAuthenticatorResponse } from 'jslib/models/response/twoFactorAuthenticatorResponse';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\n\nimport { TwoFactorBaseComponent } from './two-factor-base.component';\n\n@Component({\n selector: 'app-two-factor-authenticator',\n templateUrl: 'two-factor-authenticator.component.html',\n})\nexport class TwoFactorAuthenticatorComponent extends TwoFactorBaseComponent implements OnInit, OnDestroy {\n type = TwoFactorProviderType.Authenticator;\n key: string;\n token: string;\n formPromise: Promise;\n\n private qrScript: HTMLScriptElement;\n\n constructor(apiService: ApiService, i18nService: I18nService,\n toasterService: ToasterService, private userService: UserService,\n platformUtilsService: PlatformUtilsService) {\n super(apiService, i18nService, toasterService, platformUtilsService);\n this.qrScript = window.document.createElement('script');\n this.qrScript.src = 'scripts/qrious.min.js';\n this.qrScript.async = true;\n }\n\n ngOnInit() {\n window.document.body.appendChild(this.qrScript);\n }\n\n ngOnDestroy() {\n window.document.body.removeChild(this.qrScript);\n }\n\n auth(authResponse: any) {\n super.auth(authResponse);\n return this.processResponse(authResponse.response);\n }\n\n submit() {\n if (this.enabled) {\n return super.disable(this.formPromise);\n } else {\n return this.enable();\n }\n }\n\n protected enable() {\n const request = new UpdateTwoFactorAuthenticatorRequest();\n request.masterPasswordHash = this.masterPasswordHash;\n request.token = this.token;\n request.key = this.key;\n\n return super.enable(async () => {\n this.formPromise = this.apiService.putTwoFactorAuthenticator(request);\n const response = await this.formPromise;\n await this.processResponse(response);\n });\n }\n\n private async processResponse(response: TwoFactorAuthenticatorResponse) {\n this.token = null;\n this.enabled = response.enabled;\n this.key = response.key;\n const email = await this.userService.getEmail();\n window.setTimeout(() => {\n const qr = new (window as any).QRious({\n element: document.getElementById('qr'),\n value: 'otpauth://totp/Bitwarden:' + encodeURIComponent(email) +\n '?secret=' + encodeURIComponent(this.key) + '&issuer=Bitwarden',\n size: 160,\n });\n }, 100);\n }\n}\n","
\n
\n
\n
\n

\n {{'twoStepLogin' | i18n}}\n {{'authenticatorAppTitle' | i18n}}\n

\n \n
\n \n \n
\n
\n \n \"\"\n

{{'twoStepAuthenticatorDesc' | i18n}}

\n

\n 1. {{'twoStepAuthenticatorDownloadApp' | i18n}}\n

\n
\n \n \n

{{'twoStepLoginProviderEnabled' | i18n}}

\n {{'twoStepAuthenticatorReaddDesc' | i18n}}\n
\n \"\"\n

{{'twoStepAuthenticatorNeedApp' | i18n}}

\n
\n \n

{{'twoStepAuthenticatorAppsRecommended' | i18n}}

\n

\n 2. {{'twoStepAuthenticatorScanCode' | i18n}}\n

\n
\n

\n
\n {{key}}\n

\n \n \n \n \n
\n
\n \n \n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { TwoFactorEmailRequest } from 'jslib/models/request/twoFactorEmailRequest';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\nimport { UpdateTwoFactorEmailRequest } from 'jslib/models/request/updateTwoFactorEmailRequest';\nimport { TwoFactorEmailResponse } from 'jslib/models/response/twoFactorEmailResponse';\n\nimport { TwoFactorBaseComponent } from './two-factor-base.component';\n\n@Component({\n selector: 'app-two-factor-email',\n templateUrl: 'two-factor-email.component.html',\n})\nexport class TwoFactorEmailComponent extends TwoFactorBaseComponent {\n type = TwoFactorProviderType.Email;\n email: string;\n token: string;\n sentEmail: string;\n formPromise: Promise;\n emailPromise: Promise;\n\n constructor(apiService: ApiService, i18nService: I18nService,\n toasterService: ToasterService, platformUtilsService: PlatformUtilsService,\n private userService: UserService) {\n super(apiService, i18nService, toasterService, platformUtilsService);\n }\n\n auth(authResponse: any) {\n super.auth(authResponse);\n return this.processResponse(authResponse.response);\n }\n\n submit() {\n if (this.enabled) {\n return super.disable(this.formPromise);\n } else {\n return this.enable();\n }\n }\n\n async sendEmail() {\n try {\n const request = new TwoFactorEmailRequest(this.email, this.masterPasswordHash);\n this.emailPromise = this.apiService.postTwoFactorEmailSetup(request);\n await this.emailPromise;\n this.sentEmail = this.email;\n } catch { }\n }\n\n protected enable() {\n const request = new UpdateTwoFactorEmailRequest();\n request.masterPasswordHash = this.masterPasswordHash;\n request.email = this.email;\n request.token = this.token;\n\n return super.enable(async () => {\n this.formPromise = this.apiService.putTwoFactorEmail(request);\n const response = await this.formPromise;\n await this.processResponse(response);\n });\n }\n\n private async processResponse(response: TwoFactorEmailResponse) {\n this.token = null;\n this.email = response.email;\n this.enabled = response.enabled;\n if (!this.enabled && (this.email == null || this.email === '')) {\n this.email = await this.userService.getEmail();\n }\n }\n}\n","
\n
\n
\n
\n

\n {{'twoStepLogin' | i18n}}\n {{'emailTitle' | i18n}}\n

\n \n
\n \n \n
\n
\n \n \n {{'twoStepLoginProviderEnabled' | i18n}}\n \n {{'email' | i18n}}: {{email}}\n \n \n

\n {{'twoFactorEmailDesc' | i18n}}\n \"\"\n

\n
\n \n \n
\n
\n \n \n {{'verificationCodeEmailSent' | i18n : sentEmail}}\n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { TwoFactorRecoverResponse } from 'jslib/models/response/twoFactorRescoverResponse';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\n\n@Component({\n selector: 'app-two-factor-recovery',\n templateUrl: 'two-factor-recovery.component.html',\n})\nexport class TwoFactorRecoveryComponent {\n type = -1;\n code: string;\n authed: boolean;\n twoFactorProviderType = TwoFactorProviderType;\n\n constructor(private i18nService: I18nService) { }\n\n auth(authResponse: any) {\n this.authed = true;\n this.processResponse(authResponse.response);\n }\n\n print() {\n const w = window.open();\n w.document.write('
' +\n '

' + this.i18nService.t('twoFactorRecoveryYourCode') + ':

' +\n '' +\n this.code + '
' +\n '

' + new Date() + '

');\n w.onafterprint = () => w.close();\n w.print();\n }\n\n private formatString(s: string) {\n if (s == null) {\n return null;\n }\n return s.replace(/(.{4})/g, '$1 ').trim().toUpperCase();\n }\n\n private processResponse(response: TwoFactorRecoverResponse) {\n this.code = this.formatString(response.code);\n }\n}\n","
\n
\n
\n
\n

\n {{'twoStepLogin' | i18n}}\n {{'recoveryCodeTitle' | i18n}}\n

\n \n
\n \n \n \n
\n \n

{{'twoFactorRecoveryYourCode' | i18n}}:

\n {{code}}\n
\n \n {{'twoFactorRecoveryNoCode' | i18n}}\n \n
\n
\n \n \n
\n
\n
\n
\n
\n","import {\n Component,\n NgZone,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\n\nimport { PasswordVerificationRequest } from 'jslib/models/request/passwordVerificationRequest';\nimport { UpdateTwoFactorWebAuthnDeleteRequest } from 'jslib/models/request/updateTwoFactorWebAuthnDeleteRequest';\nimport { UpdateTwoFactorWebAuthnRequest } from 'jslib/models/request/updateTwoFactorWebAuthnRequest';\nimport {\n ChallengeResponse,\n TwoFactorWebAuthnResponse,\n} from 'jslib/models/response/twoFactorWebAuthnResponse';\n\nimport { TwoFactorBaseComponent } from './two-factor-base.component';\n\n@Component({\n selector: 'app-two-factor-webauthn',\n templateUrl: 'two-factor-webauthn.component.html',\n})\nexport class TwoFactorWebAuthnComponent extends TwoFactorBaseComponent {\n type = TwoFactorProviderType.WebAuthn;\n name: string;\n keys: any[];\n keyIdAvailable: number = null;\n keysConfiguredCount = 0;\n webAuthnError: boolean;\n webAuthnListening: boolean;\n webAuthnResponse: PublicKeyCredential;\n challengePromise: Promise;\n formPromise: Promise;\n\n constructor(apiService: ApiService, i18nService: I18nService,\n toasterService: ToasterService, platformUtilsService: PlatformUtilsService,\n private ngZone: NgZone) {\n super(apiService, i18nService, toasterService, platformUtilsService);\n }\n\n auth(authResponse: any) {\n super.auth(authResponse);\n this.processResponse(authResponse.response);\n }\n\n submit() {\n if (this.webAuthnResponse == null || this.keyIdAvailable == null) {\n // Should never happen.\n return Promise.reject();\n }\n const request = new UpdateTwoFactorWebAuthnRequest();\n request.masterPasswordHash = this.masterPasswordHash;\n request.deviceResponse = this.webAuthnResponse;\n request.id = this.keyIdAvailable;\n request.name = this.name;\n\n return super.enable(async () => {\n this.formPromise = this.apiService.putTwoFactorWebAuthn(request);\n const response = await this.formPromise;\n await this.processResponse(response);\n });\n }\n\n disable() {\n return super.disable(this.formPromise);\n }\n\n async remove(key: any) {\n if (this.keysConfiguredCount <= 1 || key.removePromise != null) {\n return;\n }\n const name = key.name != null ? key.name : this.i18nService.t('webAuthnkeyX', key.id);\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('removeU2fConfirmation'), name,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return;\n }\n const request = new UpdateTwoFactorWebAuthnDeleteRequest();\n request.id = key.id;\n request.masterPasswordHash = this.masterPasswordHash;\n try {\n key.removePromise = this.apiService.deleteTwoFactorWebAuthn(request);\n const response = await key.removePromise;\n key.removePromise = null;\n await this.processResponse(response);\n } catch { }\n }\n\n async readKey() {\n if (this.keyIdAvailable == null) {\n return;\n }\n const request = new PasswordVerificationRequest();\n request.masterPasswordHash = this.masterPasswordHash;\n try {\n this.challengePromise = this.apiService.getTwoFactorWebAuthnChallenge(request);\n const challenge = await this.challengePromise;\n this.readDevice(challenge);\n } catch { }\n }\n\n private readDevice(webAuthnChallenge: ChallengeResponse) {\n // tslint:disable-next-line\n console.log('listening for key...');\n this.resetWebAuthn(true);\n\n navigator.credentials.create({\n publicKey: webAuthnChallenge,\n }).then((data: PublicKeyCredential) => {\n this.ngZone.run(() => {\n this.webAuthnListening = false;\n this.webAuthnResponse = data;\n });\n }).catch(err => {\n // tslint:disable-next-line\n console.error(err);\n this.resetWebAuthn(false);\n // TODO: Should we display the actual error?\n this.webAuthnError = true;\n });\n }\n\n private resetWebAuthn(listening = false) {\n this.webAuthnResponse = null;\n this.webAuthnError = false;\n this.webAuthnListening = listening;\n }\n\n private processResponse(response: TwoFactorWebAuthnResponse) {\n this.resetWebAuthn();\n this.keys = [];\n this.keyIdAvailable = null;\n this.name = null;\n this.keysConfiguredCount = 0;\n for (let i = 1; i <= 5; i++) {\n if (response.keys != null) {\n const key = response.keys.filter(k => k.id === i);\n if (key.length > 0) {\n this.keysConfiguredCount++;\n this.keys.push({\n id: i, name: key[0].name,\n configured: true,\n migrated: key[0].migrated,\n removePromise: null,\n });\n continue;\n }\n }\n this.keys.push({ id: i, name: null, configured: false, removePromise: null });\n if (this.keyIdAvailable == null) {\n this.keyIdAvailable = i;\n }\n }\n this.enabled = response.enabled;\n }\n}\n","
\n
\n
\n
\n

\n {{'twoStepLogin' | i18n}}\n {{'webAuthnTitle' | i18n}}\n

\n \n
\n \n \n
\n
\n \n {{'twoStepLoginProviderEnabled' | i18n}}\n \n \n

{{'twoFactorWebAuthnWarning' | i18n}}

\n
    \n
  • {{'twoFactorWebAuthnSupportWeb' | i18n}}
  • \n
\n
\n \"\"\n
    \n
  • \n \n {{'webAuthnkeyX' | i18n : i + 1}}\n {{k.name}}\n \n \n {{'webAuthnMigrated' | i18n}}\n \n \n 1 && k.configured\">\n \n -\n {{'remove' | i18n}}\n \n
  • \n
\n
\n

{{'twoFactorWebAuthnAdd' | i18n}}:

\n
    \n
  1. {{'twoFactorU2fGiveName' | i18n}}
  2. \n
  3. {{'twoFactorU2fPlugInReadKey' | i18n}}
  4. \n
  5. {{'twoFactorU2fTouchButton' | i18n}}
  6. \n
  7. {{'twoFactorU2fSaveForm' | i18n}}
  8. \n
\n
\n
\n \n \n
\n
\n \n \n \n \n \n \n \n {{'twoFactorU2fWaiting' | i18n}}...\n \n \n \n {{'twoFactorU2fClickSave' | i18n}}\n \n \n \n {{'twoFactorU2fProblemReadingTryAgain' | i18n}}\n \n \n
\n
\n \n \n \n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { UpdateTwoFactorYubioOtpRequest } from 'jslib/models/request/updateTwoFactorYubioOtpRequest';\nimport { TwoFactorYubiKeyResponse } from 'jslib/models/response/twoFactorYubiKeyResponse';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\n\nimport { TwoFactorBaseComponent } from './two-factor-base.component';\n\n@Component({\n selector: 'app-two-factor-yubikey',\n templateUrl: 'two-factor-yubikey.component.html',\n})\nexport class TwoFactorYubiKeyComponent extends TwoFactorBaseComponent {\n type = TwoFactorProviderType.Yubikey;\n keys: any[];\n nfc = false;\n\n formPromise: Promise;\n disablePromise: Promise;\n\n constructor(apiService: ApiService, i18nService: I18nService,\n toasterService: ToasterService, platformUtilsService: PlatformUtilsService) {\n super(apiService, i18nService, toasterService, platformUtilsService);\n }\n\n auth(authResponse: any) {\n super.auth(authResponse);\n this.processResponse(authResponse.response);\n }\n\n submit() {\n const request = new UpdateTwoFactorYubioOtpRequest();\n request.masterPasswordHash = this.masterPasswordHash;\n request.key1 = this.keys != null && this.keys.length > 0 ? this.keys[0].key : null;\n request.key2 = this.keys != null && this.keys.length > 1 ? this.keys[1].key : null;\n request.key3 = this.keys != null && this.keys.length > 2 ? this.keys[2].key : null;\n request.key4 = this.keys != null && this.keys.length > 3 ? this.keys[3].key : null;\n request.key5 = this.keys != null && this.keys.length > 4 ? this.keys[4].key : null;\n request.nfc = this.nfc;\n\n return super.enable(async () => {\n this.formPromise = this.apiService.putTwoFactorYubiKey(request);\n const response = await this.formPromise;\n await this.processResponse(response);\n this.toasterService.popAsync('success', null, this.i18nService.t('yubikeysUpdated'));\n });\n }\n\n disable() {\n return super.disable(this.disablePromise);\n }\n\n remove(key: any) {\n key.existingKey = null;\n key.key = null;\n }\n\n private processResponse(response: TwoFactorYubiKeyResponse) {\n this.enabled = response.enabled;\n this.keys = [\n { key: response.key1, existingKey: this.padRight(response.key1) },\n { key: response.key2, existingKey: this.padRight(response.key2) },\n { key: response.key3, existingKey: this.padRight(response.key3) },\n { key: response.key4, existingKey: this.padRight(response.key4) },\n { key: response.key5, existingKey: this.padRight(response.key5) },\n ];\n this.nfc = response.nfc || !response.enabled;\n }\n\n private padRight(str: string, character = '•', size = 44) {\n if (str == null || character == null || str.length >= size) {\n return str;\n }\n const max = (size - str.length) / character.length;\n for (let i = 0; i < max; i++) {\n str += character;\n }\n return str;\n }\n}\n","
\n
\n
\n
\n

\n {{'twoStepLogin' | i18n}}\n YubiKey\n

\n \n
\n \n \n
\n
\n \n {{'twoStepLoginProviderEnabled' | i18n}}\n \n \n

{{'twoFactorYubikeyWarning' | i18n}}

\n
    \n
  • {{'twoFactorYubikeySupportUsb' | i18n}}
  • \n
  • {{'twoFactorYubikeySupportMobile' | i18n}}
  • \n
\n
\n \"\"\n

{{'twoFactorYubikeyAdd' | i18n}}:

\n
    \n
  1. {{'twoFactorYubikeyPlugIn' | i18n}}
  2. \n
  3. {{'twoFactorYubikeySelectKey' | i18n}}
  4. \n
  5. {{'twoFactorYubikeyTouchButton' | i18n}}
  6. \n
  7. {{'twoFactorYubikeySaveForm' | i18n}}
  8. \n
\n
\n
\n
\n \n \n
\n {{k.existingKey}}\n \n
\n
\n
\n {{'nfcSupport' | i18n}}\n
\n \n \n
\n {{'twoFactorYubikeySupportsNfcDesc' | i18n}}\n
\n
\n \n \n \n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { EventService } from 'jslib/abstractions/event.service';\nimport { ExportService } from 'jslib/abstractions/export.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { ExportComponent as BaseExportComponent } from '../../tools/export.component';\n\nimport { EventType } from 'jslib/enums/eventType';\n\n@Component({\n selector: 'app-org-export',\n templateUrl: '../../tools/export.component.html',\n})\nexport class ExportComponent extends BaseExportComponent {\n constructor(cryptoService: CryptoService, i18nService: I18nService,\n platformUtilsService: PlatformUtilsService, exportService: ExportService,\n eventService: EventService, private route: ActivatedRoute) {\n super(cryptoService, i18nService, platformUtilsService, exportService, eventService);\n }\n\n ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n });\n }\n\n getExportData() {\n return this.exportService.getOrganizationExport(this.organizationId, this.format);\n }\n\n getFileName() {\n return super.getFileName('org');\n }\n\n async collectEvent(): Promise {\n // TODO\n // await this.eventService.collect(EventType.Organization_ClientExportedVault);\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { AuditService } from 'jslib/abstractions/audit.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport {\n ExposedPasswordsReportComponent as BaseExposedPasswordsReportComponent,\n} from '../../tools/exposed-passwords-report.component';\n\nimport { Cipher } from 'jslib/models/domain/cipher';\nimport { CipherView } from 'jslib/models/view/cipherView';\n\n@Component({\n selector: 'app-exposed-passwords-report',\n templateUrl: '../../tools/exposed-passwords-report.component.html',\n})\nexport class ExposedPasswordsReportComponent extends BaseExposedPasswordsReportComponent {\n manageableCiphers: Cipher[];\n\n constructor(cipherService: CipherService, auditService: AuditService,\n componentFactoryResolver: ComponentFactoryResolver, messagingService: MessagingService,\n userService: UserService, private route: ActivatedRoute) {\n super(cipherService, auditService, componentFactoryResolver, messagingService, userService);\n }\n\n ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organization = await this.userService.getOrganization(params.organizationId);\n this.manageableCiphers = await this.cipherService.getAll();\n super.ngOnInit();\n });\n }\n\n getAllCiphers(): Promise {\n return this.cipherService.getAllFromApiForOrganization(this.organization.id);\n }\n\n canManageCipher(c: CipherView): boolean {\n return this.manageableCiphers.some(x => x.id === c.id);\n }\n}\n","import { PasswordHistoryResponse } from '../response/passwordHistoryResponse';\n\nexport class PasswordHistoryData {\n password: string;\n lastUsedDate: string;\n\n constructor(response?: PasswordHistoryResponse) {\n if (response == null) {\n return;\n }\n\n this.password = response.password;\n this.lastUsedDate = response.lastUsedDate;\n }\n}\n","import { View } from './view';\n\nimport { Attachment } from '../domain/attachment';\nimport { SymmetricCryptoKey } from '../domain/symmetricCryptoKey';\n\nexport class AttachmentView implements View {\n id: string = null;\n url: string = null;\n size: string = null;\n sizeName: string = null;\n fileName: string = null;\n key: SymmetricCryptoKey = null;\n\n constructor(a?: Attachment) {\n if (!a) {\n return;\n }\n\n this.id = a.id;\n this.url = a.url;\n this.size = a.size;\n this.sizeName = a.sizeName;\n }\n\n get fileSize(): number {\n try {\n if (this.size != null) {\n return parseInt(this.size, null);\n }\n } catch { }\n return 0;\n }\n}\n","import { PasswordHistoryData } from '../data/passwordHistoryData';\n\nimport Domain from './domainBase';\nimport { EncString } from './encString';\n\nimport { PasswordHistoryView } from '../view/passwordHistoryView';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class Password extends Domain {\n password: EncString;\n lastUsedDate: Date;\n\n constructor(obj?: PasswordHistoryData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.buildDomainModel(this, obj, {\n password: null,\n }, alreadyEncrypted);\n this.lastUsedDate = new Date(obj.lastUsedDate);\n }\n\n decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise {\n return this.decryptObj(new PasswordHistoryView(this), {\n password: null,\n }, orgId, encKey);\n }\n\n toPasswordHistoryData(): PasswordHistoryData {\n const ph = new PasswordHistoryData();\n ph.lastUsedDate = this.lastUsedDate.toISOString();\n this.buildDataModel(this, ph, {\n password: null,\n });\n return ph;\n }\n}\n","import { CipherRequest } from './cipherRequest';\n\nimport { Cipher } from '../domain/cipher';\n\nexport class CipherCreateRequest {\n cipher: CipherRequest;\n collectionIds: string[];\n\n constructor(cipher: Cipher) {\n this.cipher = new CipherRequest(cipher);\n this.collectionIds = cipher.collectionIds;\n }\n}\n","import { BaseResponse } from '../response/baseResponse';\n\nexport class CardApi extends BaseResponse {\n cardholderName: string;\n brand: string;\n number: string;\n expMonth: string;\n expYear: string;\n code: string;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n this.cardholderName = this.getResponseProperty('CardholderName');\n this.brand = this.getResponseProperty('Brand');\n this.number = this.getResponseProperty('Number');\n this.expMonth = this.getResponseProperty('ExpMonth');\n this.expYear = this.getResponseProperty('ExpYear');\n this.code = this.getResponseProperty('Code');\n }\n}\n","import { BaseResponse } from '../response/baseResponse';\n\nimport { FieldType } from '../../enums/fieldType';\n\nexport class FieldApi extends BaseResponse {\n name: string;\n value: string;\n type: FieldType;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n this.type = this.getResponseProperty('Type');\n this.name = this.getResponseProperty('Name');\n this.value = this.getResponseProperty('Value');\n }\n}\n","import { BaseResponse } from '../response/baseResponse';\n\nexport class IdentityApi extends BaseResponse {\n title: string;\n firstName: string;\n middleName: string;\n lastName: string;\n address1: string;\n address2: string;\n address3: string;\n city: string;\n state: string;\n postalCode: string;\n country: string;\n company: string;\n email: string;\n phone: string;\n ssn: string;\n username: string;\n passportNumber: string;\n licenseNumber: string;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n this.title = this.getResponseProperty('Title');\n this.firstName = this.getResponseProperty('FirstName');\n this.middleName = this.getResponseProperty('MiddleName');\n this.lastName = this.getResponseProperty('LastName');\n this.address1 = this.getResponseProperty('Address1');\n this.address2 = this.getResponseProperty('Address2');\n this.address3 = this.getResponseProperty('Address3');\n this.city = this.getResponseProperty('City');\n this.state = this.getResponseProperty('State');\n this.postalCode = this.getResponseProperty('PostalCode');\n this.country = this.getResponseProperty('Country');\n this.company = this.getResponseProperty('Company');\n this.email = this.getResponseProperty('Email');\n this.phone = this.getResponseProperty('Phone');\n this.ssn = this.getResponseProperty('SSN');\n this.username = this.getResponseProperty('Username');\n this.passportNumber = this.getResponseProperty('PassportNumber');\n this.licenseNumber = this.getResponseProperty('LicenseNumber');\n }\n}\n","import { BaseResponse } from '../response/baseResponse';\n\nimport { LoginUriApi } from './loginUriApi';\n\nexport class LoginApi extends BaseResponse {\n uris: LoginUriApi[];\n username: string;\n password: string;\n passwordRevisionDate: string;\n totp: string;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n this.username = this.getResponseProperty('Username');\n this.password = this.getResponseProperty('Password');\n this.passwordRevisionDate = this.getResponseProperty('PasswordRevisionDate');\n this.totp = this.getResponseProperty('Totp');\n\n const uris = this.getResponseProperty('Uris');\n if (uris != null) {\n this.uris = uris.map((u: any) => new LoginUriApi(u));\n }\n }\n}\n","import { BaseResponse } from '../response/baseResponse';\n\nimport { UriMatchType } from '../../enums/uriMatchType';\n\nexport class LoginUriApi extends BaseResponse {\n uri: string;\n match: UriMatchType = null;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n this.uri = this.getResponseProperty('Uri');\n const match = this.getResponseProperty('Match');\n this.match = match != null ? match : null;\n }\n}\n","import { BaseResponse } from '../response/baseResponse';\n\nimport { SecureNoteType } from '../../enums/secureNoteType';\n\nexport class SecureNoteApi extends BaseResponse {\n type: SecureNoteType;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n this.type = this.getResponseProperty('Type');\n }\n}\n","import {\n Directive,\n ElementRef,\n HostListener,\n Input,\n} from '@angular/core';\n\n@Directive({\n selector: '[appFallbackSrc]',\n})\nexport class FallbackSrcDirective {\n @Input('appFallbackSrc') appFallbackSrc: string;\n\n constructor(private el: ElementRef) {\n }\n\n @HostListener('error') onError() {\n this.el.nativeElement.src = this.appFallbackSrc;\n }\n}\n","import { Component } from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { ImportService } from 'jslib/abstractions/import.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { ImportComponent as BaseImportComponent } from '../../tools/import.component';\n\n@Component({\n selector: 'app-org-import',\n templateUrl: '../../tools/import.component.html',\n})\nexport class ImportComponent extends BaseImportComponent {\n organizationName: string;\n\n constructor(i18nService: I18nService, toasterService: ToasterService,\n importService: ImportService, router: Router, private route: ActivatedRoute,\n platformUtilsService: PlatformUtilsService,\n private userService: UserService) {\n super(i18nService, toasterService, importService, router, platformUtilsService);\n }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n this.successNavigate = ['organizations', this.organizationId, 'vault'];\n super.ngOnInit();\n });\n const organization = await this.userService.getOrganization(this.organizationId);\n this.organizationName = organization.name;\n }\n\n async submit() {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('importWarning', this.organizationName),\n this.i18nService.t('warning'), this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return;\n }\n super.submit();\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport {\n InactiveTwoFactorReportComponent as BaseInactiveTwoFactorReportComponent,\n} from '../../tools/inactive-two-factor-report.component';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\n@Component({\n selector: 'app-inactive-two-factor-report',\n templateUrl: '../../tools/inactive-two-factor-report.component.html',\n})\nexport class InactiveTwoFactorReportComponent extends BaseInactiveTwoFactorReportComponent {\n constructor(cipherService: CipherService, componentFactoryResolver: ComponentFactoryResolver,\n messagingService: MessagingService, userService: UserService,\n private route: ActivatedRoute) {\n super(cipherService, componentFactoryResolver, messagingService, userService);\n }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organization = await this.userService.getOrganization(params.organizationId);\n await super.ngOnInit();\n });\n }\n\n getAllCiphers(): Promise {\n return this.cipherService.getAllFromApiForOrganization(this.organization.id);\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { Cipher } from 'jslib/models/domain/cipher';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport {\n ReusedPasswordsReportComponent as BaseReusedPasswordsReportComponent,\n} from '../../tools/reused-passwords-report.component';\n\n@Component({\n selector: 'app-reused-passwords-report',\n templateUrl: '../../tools/reused-passwords-report.component.html',\n})\nexport class ReusedPasswordsReportComponent extends BaseReusedPasswordsReportComponent {\n manageableCiphers: Cipher[];\n\n constructor(cipherService: CipherService, componentFactoryResolver: ComponentFactoryResolver,\n messagingService: MessagingService, userService: UserService,\n private route: ActivatedRoute) {\n super(cipherService, componentFactoryResolver, messagingService, userService);\n }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organization = await this.userService.getOrganization(params.organizationId);\n this.manageableCiphers = await this.cipherService.getAll();\n await super.ngOnInit();\n });\n }\n\n getAllCiphers(): Promise {\n return this.cipherService.getAllFromApiForOrganization(this.organization.id);\n }\n\n canManageCipher(c: CipherView): boolean {\n return this.manageableCiphers.some(x => x.id === c.id);\n }\n}\n","import { Component } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { Organization } from 'jslib/models/domain/organization';\n\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\n@Component({\n selector: 'app-org-tools',\n templateUrl: 'tools.component.html',\n})\nexport class ToolsComponent {\n organization: Organization;\n accessReports = false;\n loading = true;\n\n constructor(private route: ActivatedRoute, private userService: UserService,\n private messagingService: MessagingService) { }\n\n ngOnInit() {\n this.route.parent.params.subscribe(async params => {\n this.organization = await this.userService.getOrganization(params.organizationId);\n // TODO: Maybe we want to just make sure they are not on a free plan? Just compare useTotp for now\n // since all paid plans include useTotp\n this.accessReports = this.organization.useTotp;\n this.loading = false;\n });\n }\n\n upgradeOrganization() {\n this.messagingService.send('upgradeOrganization', { organizationId: this.organization.id });\n }\n}\n","\n","import {\n Component,\n ComponentFactoryResolver,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport {\n UnsecuredWebsitesReportComponent as BaseUnsecuredWebsitesReportComponent,\n} from '../../tools/unsecured-websites-report.component';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\n@Component({\n selector: 'app-unsecured-websites-report',\n templateUrl: '../../tools/unsecured-websites-report.component.html',\n})\nexport class UnsecuredWebsitesReportComponent extends BaseUnsecuredWebsitesReportComponent {\n constructor(cipherService: CipherService, componentFactoryResolver: ComponentFactoryResolver,\n messagingService: MessagingService, userService: UserService,\n private route: ActivatedRoute) {\n super(cipherService, componentFactoryResolver, messagingService, userService);\n }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organization = await this.userService.getOrganization(params.organizationId);\n await super.ngOnInit();\n });\n }\n\n getAllCiphers(): Promise {\n return this.cipherService.getAllFromApiForOrganization(this.organization.id);\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { Cipher } from 'jslib/models/domain/cipher';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport {\n WeakPasswordsReportComponent as BaseWeakPasswordsReportComponent,\n} from '../../tools/weak-passwords-report.component';\n\n@Component({\n selector: 'app-weak-passwords-report',\n templateUrl: '../../tools/weak-passwords-report.component.html',\n})\nexport class WeakPasswordsReportComponent extends BaseWeakPasswordsReportComponent {\n manageableCiphers: Cipher[];\n\n constructor(cipherService: CipherService, passwordGenerationService: PasswordGenerationService,\n componentFactoryResolver: ComponentFactoryResolver, messagingService: MessagingService,\n userService: UserService, private route: ActivatedRoute) {\n super(cipherService, passwordGenerationService, componentFactoryResolver, messagingService, userService);\n }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organization = await this.userService.getOrganization(params.organizationId);\n this.manageableCiphers = await this.cipherService.getAll();\n await super.ngOnInit();\n });\n }\n\n getAllCiphers(): Promise {\n return this.cipherService.getAllFromApiForOrganization(this.organization.id);\n }\n\n canManageCipher(c: CipherView): boolean {\n return this.manageableCiphers.some(x => x.id === c.id);\n }\n}\n","import {\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n NgZone,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { BroadcasterService } from 'jslib/angular/services/broadcaster.service';\n\nimport { Organization } from 'jslib/models/domain/organization';\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { CipherType } from 'jslib/enums/cipherType';\n\nimport { ModalComponent } from '../../modal.component';\n\nimport { EntityEventsComponent } from '../manage/entity-events.component';\nimport { AddEditComponent } from './add-edit.component';\nimport { AttachmentsComponent } from './attachments.component';\nimport { CiphersComponent } from './ciphers.component';\nimport { CollectionsComponent } from './collections.component';\nimport { GroupingsComponent } from './groupings.component';\n\nconst BroadcasterSubscriptionId = 'OrgVaultComponent';\n\n@Component({\n selector: 'app-org-vault',\n templateUrl: 'vault.component.html',\n})\nexport class VaultComponent implements OnInit, OnDestroy {\n @ViewChild(GroupingsComponent, { static: true }) groupingsComponent: GroupingsComponent;\n @ViewChild(CiphersComponent, { static: true }) ciphersComponent: CiphersComponent;\n @ViewChild('attachments', { read: ViewContainerRef, static: true }) attachmentsModalRef: ViewContainerRef;\n @ViewChild('cipherAddEdit', { read: ViewContainerRef, static: true }) cipherAddEditModalRef: ViewContainerRef;\n @ViewChild('collections', { read: ViewContainerRef, static: true }) collectionsModalRef: ViewContainerRef;\n @ViewChild('eventsTemplate', { read: ViewContainerRef, static: true }) eventsModalRef: ViewContainerRef;\n\n organization: Organization;\n collectionId: string = null;\n type: CipherType = null;\n deleted: boolean = false;\n trashCleanupWarning: string = null;\n\n modal: ModalComponent = null;\n\n constructor(private route: ActivatedRoute, private userService: UserService,\n private router: Router, private changeDetectorRef: ChangeDetectorRef,\n private syncService: SyncService, private i18nService: I18nService,\n private componentFactoryResolver: ComponentFactoryResolver, private messagingService: MessagingService,\n private broadcasterService: BroadcasterService, private ngZone: NgZone,\n private platformUtilsService: PlatformUtilsService) { }\n\n ngOnInit() {\n this.trashCleanupWarning = this.i18nService.t(\n this.platformUtilsService.isSelfHost() ? 'trashCleanupWarningSelfHosted' : 'trashCleanupWarning'\n );\n\n const queryParams = this.route.parent.params.subscribe(async params => {\n this.organization = await this.userService.getOrganization(params.organizationId);\n this.groupingsComponent.organization = this.organization;\n this.ciphersComponent.organization = this.organization;\n\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n this.ciphersComponent.searchText = this.groupingsComponent.searchText = qParams.search;\n if (!this.organization.canManageAllCollections) {\n await this.syncService.fullSync(false);\n this.broadcasterService.subscribe(BroadcasterSubscriptionId, (message: any) => {\n this.ngZone.run(async () => {\n switch (message.command) {\n case 'syncCompleted':\n if (message.successfully) {\n await Promise.all([\n this.groupingsComponent.load(),\n this.ciphersComponent.refresh(),\n ]);\n this.changeDetectorRef.detectChanges();\n }\n break;\n }\n });\n });\n }\n await this.groupingsComponent.load();\n\n if (qParams == null) {\n this.groupingsComponent.selectedAll = true;\n await this.ciphersComponent.reload();\n } else {\n if (qParams.deleted) {\n this.groupingsComponent.selectedTrash = true;\n await this.filterDeleted(true);\n } else if (qParams.type) {\n const t = parseInt(qParams.type, null);\n this.groupingsComponent.selectedType = t;\n await this.filterCipherType(t, true);\n } else if (qParams.collectionId) {\n this.groupingsComponent.selectedCollectionId = qParams.collectionId;\n await this.filterCollection(qParams.collectionId, true);\n } else {\n this.groupingsComponent.selectedAll = true;\n await this.ciphersComponent.reload();\n }\n }\n\n if (qParams.viewEvents != null) {\n const cipher = this.ciphersComponent.ciphers.filter(c => c.id === qParams.viewEvents);\n if (cipher.length > 0) {\n this.viewEvents(cipher[0]);\n }\n }\n\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n\n if (queryParams != null) {\n queryParams.unsubscribe();\n }\n });\n }\n\n ngOnDestroy() {\n this.broadcasterService.unsubscribe(BroadcasterSubscriptionId);\n }\n\n async clearGroupingFilters() {\n this.ciphersComponent.showAddNew = true;\n this.ciphersComponent.deleted = false;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchVault');\n await this.ciphersComponent.applyFilter();\n this.clearFilters();\n this.go();\n }\n\n async filterCipherType(type: CipherType, load = false) {\n this.ciphersComponent.showAddNew = true;\n this.ciphersComponent.deleted = false;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchType');\n const filter = (c: CipherView) => c.type === type;\n if (load) {\n await this.ciphersComponent.reload(filter);\n } else {\n await this.ciphersComponent.applyFilter(filter);\n }\n this.clearFilters();\n this.type = type;\n this.go();\n }\n\n async filterCollection(collectionId: string, load = false) {\n this.ciphersComponent.showAddNew = true;\n this.ciphersComponent.deleted = false;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchCollection');\n const filter = (c: CipherView) => {\n if (collectionId === 'unassigned') {\n return c.collectionIds == null || c.collectionIds.length === 0;\n } else {\n return c.collectionIds != null && c.collectionIds.indexOf(collectionId) > -1;\n }\n };\n if (load) {\n await this.ciphersComponent.reload(filter);\n } else {\n await this.ciphersComponent.applyFilter(filter);\n }\n this.clearFilters();\n this.collectionId = collectionId;\n this.go();\n }\n\n async filterDeleted(load: boolean = false) {\n this.ciphersComponent.showAddNew = false;\n this.ciphersComponent.deleted = true;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchTrash');\n if (load) {\n await this.ciphersComponent.reload(null, true);\n } else {\n await this.ciphersComponent.applyFilter(null);\n }\n this.clearFilters();\n this.deleted = true;\n this.go();\n }\n\n filterSearchText(searchText: string) {\n this.ciphersComponent.searchText = searchText;\n this.ciphersComponent.search(200);\n }\n\n editCipherAttachments(cipher: CipherView) {\n if (this.organization.maxStorageGb == null || this.organization.maxStorageGb === 0) {\n this.messagingService.send('upgradeOrganization', { organizationId: cipher.organizationId });\n return;\n }\n\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.attachmentsModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(AttachmentsComponent, this.attachmentsModalRef);\n\n childComponent.organization = this.organization;\n childComponent.cipherId = cipher.id;\n let madeAttachmentChanges = false;\n childComponent.onUploadedAttachment.subscribe(() => madeAttachmentChanges = true);\n childComponent.onDeletedAttachment.subscribe(() => madeAttachmentChanges = true);\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n if (madeAttachmentChanges) {\n await this.ciphersComponent.refresh();\n }\n madeAttachmentChanges = false;\n });\n }\n\n editCipherCollections(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.collectionsModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(CollectionsComponent, this.collectionsModalRef);\n\n if (this.organization.canManageAllCollections) {\n childComponent.collectionIds = cipher.collectionIds;\n childComponent.collections = this.groupingsComponent.collections.filter(c => !c.readOnly);\n }\n childComponent.organization = this.organization;\n childComponent.cipherId = cipher.id;\n childComponent.onSavedCollections.subscribe(async () => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n addCipher() {\n const component = this.editCipher(null);\n component.organizationId = this.organization.id;\n component.type = this.type;\n if (this.organization.canManageAllCollections) {\n component.collections = this.groupingsComponent.collections.filter(c => !c.readOnly);\n }\n if (this.collectionId != null) {\n component.collectionIds = [this.collectionId];\n }\n }\n\n editCipher(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.cipherAddEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(AddEditComponent, this.cipherAddEditModalRef);\n\n childComponent.organization = this.organization;\n childComponent.cipherId = cipher == null ? null : cipher.id;\n childComponent.onSavedCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n childComponent.onDeletedCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n childComponent.onRestoredCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n\n return childComponent;\n }\n\n cloneCipher(cipher: CipherView) {\n const component = this.editCipher(cipher);\n component.cloneMode = true;\n component.organizationId = this.organization.id;\n if (this.organization.canManageAllCollections) {\n component.collections = this.groupingsComponent.collections.filter(c => !c.readOnly);\n }\n // Regardless of Admin state, the collection Ids need to passed manually as they are not assigned value\n // in the add-edit componenet\n component.collectionIds = cipher.collectionIds;\n }\n\n async viewEvents(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.eventsModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n EntityEventsComponent, this.eventsModalRef);\n\n childComponent.name = cipher.name;\n childComponent.organizationId = this.organization.id;\n childComponent.entityId = cipher.id;\n childComponent.showUser = true;\n childComponent.entity = 'cipher';\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n private clearFilters() {\n this.collectionId = null;\n this.type = null;\n this.deleted = false;\n }\n\n private go(queryParams: any = null) {\n if (queryParams == null) {\n queryParams = {\n type: this.type,\n collectionId: this.collectionId,\n deleted: this.deleted ? true : null,\n };\n }\n\n this.router.navigate([], {\n relativeTo: this.route,\n queryParams: queryParams,\n replaceUrl: true,\n });\n }\n}\n","
\n
\n
\n \n \n
\n
\n
\n

\n {{'vault' | i18n}}\n \n \n \n {{'loading' | i18n}}\n \n \n

\n
\n \n \n \n
\n
\n \n {{trashCleanupWarning}}\n \n \n \n
\n
\n
\n\n\n\n\n","import { Component } from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CipherData } from 'jslib/models/data/cipherData';\nimport { Cipher } from 'jslib/models/domain/cipher';\nimport { Organization } from 'jslib/models/domain/organization';\n\nimport { AttachmentView } from 'jslib/models/view/attachmentView';\n\nimport { AttachmentsComponent as BaseAttachmentsComponent } from '../../vault/attachments.component';\n\n@Component({\n selector: 'app-org-vault-attachments',\n templateUrl: '../../vault/attachments.component.html',\n})\nexport class AttachmentsComponent extends BaseAttachmentsComponent {\n viewOnly = false;\n organization: Organization;\n\n constructor(cipherService: CipherService, i18nService: I18nService,\n cryptoService: CryptoService, userService: UserService,\n platformUtilsService: PlatformUtilsService, apiService: ApiService) {\n super(cipherService, i18nService, cryptoService, userService, platformUtilsService, apiService);\n }\n\n protected async reupload(attachment: AttachmentView) {\n if (this.organization.canManageAllCollections && this.showFixOldAttachments(attachment)) {\n await super.reuploadCipherAttachment(attachment, true);\n }\n }\n\n protected async loadCipher() {\n if (!this.organization.canManageAllCollections) {\n return await super.loadCipher();\n }\n const response = await this.apiService.getCipherAdmin(this.cipherId);\n return new Cipher(new CipherData(response));\n }\n\n protected saveCipherAttachment(file: File) {\n return this.cipherService.saveAttachmentWithServer(this.cipherDomain, file, this.organization.canManageAllCollections);\n }\n\n protected deleteCipherAttachment(attachmentId: string) {\n if (!this.organization.canManageAllCollections) {\n return super.deleteCipherAttachment(attachmentId);\n }\n return this.apiService.deleteCipherAttachmentAdmin(this.cipherId, attachmentId);\n }\n\n protected showFixOldAttachments(attachment: AttachmentView) {\n return attachment.key == null && this.organization.canManageAllCollections;\n }\n}\n","import {\n Directive,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ApiService } from '../../abstractions/api.service';\nimport { CipherService } from '../../abstractions/cipher.service';\nimport { CryptoService } from '../../abstractions/crypto.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { UserService } from '../../abstractions/user.service';\n\nimport { Cipher } from '../../models/domain/cipher';\nimport { ErrorResponse } from '../../models/response';\n\nimport { AttachmentView } from '../../models/view/attachmentView';\nimport { CipherView } from '../../models/view/cipherView';\n\n@Directive()\nexport class AttachmentsComponent implements OnInit {\n @Input() cipherId: string;\n @Output() onUploadedAttachment = new EventEmitter();\n @Output() onDeletedAttachment = new EventEmitter();\n @Output() onReuploadedAttachment = new EventEmitter();\n\n cipher: CipherView;\n cipherDomain: Cipher;\n hasUpdatedKey: boolean;\n canAccessAttachments: boolean;\n formPromise: Promise;\n deletePromises: { [id: string]: Promise; } = {};\n reuploadPromises: { [id: string]: Promise; } = {};\n emergencyAccessId?: string = null;\n\n constructor(protected cipherService: CipherService, protected i18nService: I18nService,\n protected cryptoService: CryptoService, protected userService: UserService,\n protected platformUtilsService: PlatformUtilsService, protected apiService: ApiService,\n protected win: Window) { }\n\n async ngOnInit() {\n await this.init();\n }\n\n async submit() {\n if (!this.hasUpdatedKey) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('updateKey'));\n return;\n }\n\n const fileEl = document.getElementById('file') as HTMLInputElement;\n const files = fileEl.files;\n if (files == null || files.length === 0) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectFile'));\n return;\n }\n\n if (files[0].size > 524288000) { // 500 MB\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('maxFileSize'));\n return;\n }\n\n try {\n this.formPromise = this.saveCipherAttachment(files[0]);\n this.cipherDomain = await this.formPromise;\n this.cipher = await this.cipherDomain.decrypt();\n this.platformUtilsService.showToast('success', null, this.i18nService.t('attachmentSaved'));\n this.onUploadedAttachment.emit();\n } catch { }\n\n // reset file input\n // ref: https://stackoverflow.com/a/20552042\n fileEl.type = '';\n fileEl.type = 'file';\n fileEl.value = '';\n }\n\n async delete(attachment: AttachmentView) {\n if (this.deletePromises[attachment.id] != null) {\n return;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('deleteAttachmentConfirmation'), this.i18nService.t('deleteAttachment'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return;\n }\n\n try {\n this.deletePromises[attachment.id] = this.deleteCipherAttachment(attachment.id);\n await this.deletePromises[attachment.id];\n this.platformUtilsService.showToast('success', null, this.i18nService.t('deletedAttachment'));\n const i = this.cipher.attachments.indexOf(attachment);\n if (i > -1) {\n this.cipher.attachments.splice(i, 1);\n }\n } catch { }\n\n this.deletePromises[attachment.id] = null;\n this.onDeletedAttachment.emit();\n }\n\n async download(attachment: AttachmentView) {\n const a = (attachment as any);\n if (a.downloading) {\n return;\n }\n\n if (!this.canAccessAttachments) {\n this.platformUtilsService.showToast('error', this.i18nService.t('premiumRequired'),\n this.i18nService.t('premiumRequiredDesc'));\n return;\n }\n\n let url: string;\n try {\n const attachmentDownloadResponse = await this.apiService.getAttachmentData(this.cipher.id, attachment.id,\n this.emergencyAccessId);\n url = attachmentDownloadResponse.url;\n } catch (e) {\n if (e instanceof ErrorResponse && (e as ErrorResponse).statusCode === 404) {\n url = attachment.url;\n } else if (e instanceof ErrorResponse) {\n throw new Error((e as ErrorResponse).getSingleMessage());\n } else {\n throw e;\n }\n }\n\n a.downloading = true;\n const response = await fetch(new Request(url, { cache: 'no-store' }));\n if (response.status !== 200) {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('errorOccurred'));\n a.downloading = false;\n return;\n }\n\n try {\n const buf = await response.arrayBuffer();\n const key = attachment.key != null ? attachment.key :\n await this.cryptoService.getOrgKey(this.cipher.organizationId);\n const decBuf = await this.cryptoService.decryptFromBytes(buf, key);\n this.platformUtilsService.saveFile(this.win, decBuf, null, attachment.fileName);\n } catch (e) {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('errorOccurred'));\n }\n\n a.downloading = false;\n }\n\n protected async init() {\n this.cipherDomain = await this.loadCipher();\n this.cipher = await this.cipherDomain.decrypt();\n\n this.hasUpdatedKey = await this.cryptoService.hasEncKey();\n const canAccessPremium = await this.userService.canAccessPremium();\n this.canAccessAttachments = canAccessPremium || this.cipher.organizationId != null;\n\n if (!this.canAccessAttachments) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('premiumRequiredDesc'), this.i18nService.t('premiumRequired'),\n this.i18nService.t('learnMore'), this.i18nService.t('cancel'));\n if (confirmed) {\n this.platformUtilsService.launchUri('https://vault.bitwarden.com/#/?premium=purchase');\n }\n } else if (!this.hasUpdatedKey) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('updateKey'), this.i18nService.t('featureUnavailable'),\n this.i18nService.t('learnMore'), this.i18nService.t('cancel'), 'warning');\n if (confirmed) {\n this.platformUtilsService.launchUri('https://help.bitwarden.com/article/update-encryption-key/');\n }\n }\n }\n\n protected async reuploadCipherAttachment(attachment: AttachmentView, admin: boolean) {\n const a = (attachment as any);\n if (attachment.key != null || a.downloading || this.reuploadPromises[attachment.id] != null) {\n return;\n }\n\n try {\n this.reuploadPromises[attachment.id] = Promise.resolve().then(async () => {\n // 1. Download\n a.downloading = true;\n const response = await fetch(new Request(attachment.url, { cache: 'no-store' }));\n if (response.status !== 200) {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('errorOccurred'));\n a.downloading = false;\n return;\n }\n\n try {\n // 2. Resave\n const buf = await response.arrayBuffer();\n const key = attachment.key != null ? attachment.key :\n await this.cryptoService.getOrgKey(this.cipher.organizationId);\n const decBuf = await this.cryptoService.decryptFromBytes(buf, key);\n this.cipherDomain = await this.cipherService.saveAttachmentRawWithServer(\n this.cipherDomain, attachment.fileName, decBuf, admin);\n this.cipher = await this.cipherDomain.decrypt();\n\n // 3. Delete old\n this.deletePromises[attachment.id] = this.deleteCipherAttachment(attachment.id);\n await this.deletePromises[attachment.id];\n const foundAttachment = this.cipher.attachments.filter(a2 => a2.id === attachment.id);\n if (foundAttachment.length > 0) {\n const i = this.cipher.attachments.indexOf(foundAttachment[0]);\n if (i > -1) {\n this.cipher.attachments.splice(i, 1);\n }\n }\n\n this.platformUtilsService.showToast('success', null, this.i18nService.t('attachmentSaved'));\n this.onReuploadedAttachment.emit();\n } catch (e) {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('errorOccurred'));\n }\n\n a.downloading = false;\n });\n await this.reuploadPromises[attachment.id];\n } catch { }\n }\n\n protected loadCipher() {\n return this.cipherService.get(this.cipherId);\n }\n\n protected saveCipherAttachment(file: File) {\n return this.cipherService.saveAttachmentWithServer(this.cipherDomain, file);\n }\n\n protected deleteCipherAttachment(attachmentId: string) {\n return this.cipherService.deleteAttachmentWithServer(this.cipher.id, attachmentId);\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class GlobalDomainResponse extends BaseResponse {\n type: number;\n domains: string[];\n excluded: boolean;\n\n constructor(response: any) {\n super(response);\n this.type = this.getResponseProperty('Type');\n this.domains = this.getResponseProperty('Domains');\n this.excluded = this.getResponseProperty('Excluded');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { KdfType } from '../../enums/kdfType';\n\nexport class IdentityTokenResponse extends BaseResponse {\n accessToken: string;\n expiresIn: number;\n refreshToken: string;\n tokenType: string;\n\n resetMasterPassword: boolean;\n privateKey: string;\n key: string;\n twoFactorToken: string;\n kdf: KdfType;\n kdfIterations: number;\n\n constructor(response: any) {\n super(response);\n this.accessToken = response.access_token;\n this.expiresIn = response.expires_in;\n this.refreshToken = response.refresh_token;\n this.tokenType = response.token_type;\n\n this.resetMasterPassword = this.getResponseProperty('ResetMasterPassword');\n this.privateKey = this.getResponseProperty('PrivateKey');\n this.key = this.getResponseProperty('Key');\n this.twoFactorToken = this.getResponseProperty('TwoFactorToken');\n this.kdf = this.getResponseProperty('Kdf');\n this.kdfIterations = this.getResponseProperty('KdfIterations');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { TwoFactorProviderType } from '../../enums/twoFactorProviderType';\n\nexport class IdentityTwoFactorResponse extends BaseResponse {\n twoFactorProviders: TwoFactorProviderType[];\n twoFactorProviders2 = new Map();\n\n constructor(response: any) {\n super(response);\n this.twoFactorProviders = this.getResponseProperty('TwoFactorProviders');\n const twoFactorProviders2 = this.getResponseProperty('TwoFactorProviders2');\n if (twoFactorProviders2 != null) {\n for (const prop in twoFactorProviders2) {\n if (twoFactorProviders2.hasOwnProperty(prop)) {\n this.twoFactorProviders2.set(parseInt(prop, null), twoFactorProviders2[prop]);\n }\n }\n }\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class ListResponse extends BaseResponse {\n data: T[];\n continuationToken: string;\n\n constructor(response: any, t: new (dataResponse: any) => T) {\n super(response);\n const data = this.getResponseProperty('Data');\n this.data = data == null ? [] : data.map((dr: any) => new t(dr));\n this.continuationToken = this.getResponseProperty('ContinuationToken');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { OrganizationUserStatusType } from '../../enums/organizationUserStatusType';\nimport { OrganizationUserType } from '../../enums/organizationUserType';\nimport { PermissionsApi } from '../api/permissionsApi';\n\nexport class ProfileOrganizationResponse extends BaseResponse {\n id: string;\n name: string;\n usePolicies: boolean;\n useGroups: boolean;\n useDirectory: boolean;\n useEvents: boolean;\n useTotp: boolean;\n use2fa: boolean;\n useApi: boolean;\n useBusinessPortal: boolean;\n useSso: boolean;\n selfHost: boolean;\n usersGetPremium: boolean;\n seats: number;\n maxCollections: number;\n maxStorageGb?: number;\n key: string;\n status: OrganizationUserStatusType;\n type: OrganizationUserType;\n enabled: boolean;\n ssoBound: boolean;\n identifier: string;\n permissions: PermissionsApi;\n resetPasswordKey: string;\n userId: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.name = this.getResponseProperty('Name');\n this.usePolicies = this.getResponseProperty('UsePolicies');\n this.useGroups = this.getResponseProperty('UseGroups');\n this.useDirectory = this.getResponseProperty('UseDirectory');\n this.useEvents = this.getResponseProperty('UseEvents');\n this.useTotp = this.getResponseProperty('UseTotp');\n this.use2fa = this.getResponseProperty('Use2fa');\n this.useApi = this.getResponseProperty('UseApi');\n this.useBusinessPortal = this.getResponseProperty('UseBusinessPortal');\n this.useSso = this.getResponseProperty('UseSso');\n this.selfHost = this.getResponseProperty('SelfHost');\n this.usersGetPremium = this.getResponseProperty('UsersGetPremium');\n this.seats = this.getResponseProperty('Seats');\n this.maxCollections = this.getResponseProperty('MaxCollections');\n this.maxStorageGb = this.getResponseProperty('MaxStorageGb');\n this.key = this.getResponseProperty('Key');\n this.status = this.getResponseProperty('Status');\n this.type = this.getResponseProperty('Type');\n this.enabled = this.getResponseProperty('Enabled');\n this.ssoBound = this.getResponseProperty('SsoBound');\n this.identifier = this.getResponseProperty('Identifier');\n this.permissions = new PermissionsApi(this.getResponseProperty('permissions'));\n this.resetPasswordKey = this.getResponseProperty('ResetPasswordKey');\n this.userId = this.getResponseProperty('UserId');\n }\n}\n","import { BaseResponse } from './baseResponse';\nimport { CipherResponse } from './cipherResponse';\nimport { CollectionDetailsResponse } from './collectionResponse';\nimport { DomainsResponse } from './domainsResponse';\nimport { FolderResponse } from './folderResponse';\nimport { PolicyResponse } from './policyResponse';\nimport { ProfileResponse } from './profileResponse';\nimport { SendResponse } from './sendResponse';\n\nexport class SyncResponse extends BaseResponse {\n profile?: ProfileResponse;\n folders: FolderResponse[] = [];\n collections: CollectionDetailsResponse[] = [];\n ciphers: CipherResponse[] = [];\n domains?: DomainsResponse;\n policies?: PolicyResponse[] = [];\n sends: SendResponse[] = [];\n\n constructor(response: any) {\n super(response);\n\n const profile = this.getResponseProperty('Profile');\n if (profile != null) {\n this.profile = new ProfileResponse(profile);\n }\n\n const folders = this.getResponseProperty('Folders');\n if (folders != null) {\n this.folders = folders.map((f: any) => new FolderResponse(f));\n }\n\n const collections = this.getResponseProperty('Collections');\n if (collections != null) {\n this.collections = collections.map((c: any) => new CollectionDetailsResponse(c));\n }\n\n const ciphers = this.getResponseProperty('Ciphers');\n if (ciphers != null) {\n this.ciphers = ciphers.map((c: any) => new CipherResponse(c));\n }\n\n const domains = this.getResponseProperty('Domains');\n if (domains != null) {\n this.domains = new DomainsResponse(domains);\n }\n\n const policies = this.getResponseProperty('Policies');\n if (policies != null) {\n this.policies = policies.map((p: any) => new PolicyResponse(p));\n }\n\n const sends = this.getResponseProperty('Sends');\n if (sends != null) {\n this.sends = sends.map((s: any) => new SendResponse(s));\n }\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { PolicyType } from '../../enums/policyType';\n\nexport class PolicyResponse extends BaseResponse {\n id: string;\n organizationId: string;\n type: PolicyType;\n data: any;\n enabled: boolean;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.organizationId = this.getResponseProperty('OrganizationId');\n this.type = this.getResponseProperty('Type');\n this.data = this.getResponseProperty('Data');\n this.enabled = this.getResponseProperty('Enabled');\n }\n}\n","import { Component } from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { CipherData } from 'jslib/models/data/cipherData';\nimport { Cipher } from 'jslib/models/domain/cipher';\nimport { Organization } from 'jslib/models/domain/organization';\nimport { CipherCollectionsRequest } from 'jslib/models/request/cipherCollectionsRequest';\n\nimport { CollectionsComponent as BaseCollectionsComponent } from '../../vault/collections.component';\n\n@Component({\n selector: 'app-org-vault-collections',\n templateUrl: '../../vault/collections.component.html',\n})\nexport class CollectionsComponent extends BaseCollectionsComponent {\n organization: Organization;\n\n constructor(collectionService: CollectionService, platformUtilsService: PlatformUtilsService,\n i18nService: I18nService, cipherService: CipherService,\n private apiService: ApiService) {\n super(collectionService, platformUtilsService, i18nService, cipherService);\n this.allowSelectNone = true;\n }\n\n protected async loadCipher() {\n if (!this.organization.canManageAllCollections) {\n return await super.loadCipher();\n }\n const response = await this.apiService.getCipherAdmin(this.cipherId);\n return new Cipher(new CipherData(response));\n }\n\n protected loadCipherCollections() {\n if (!this.organization.canManageAllCollections) {\n return super.loadCipherCollections();\n }\n return this.collectionIds;\n }\n\n protected loadCollections() {\n if (!this.organization.canManageAllCollections) {\n return super.loadCollections();\n }\n return Promise.resolve(this.collections);\n }\n\n protected saveCollections() {\n if (this.organization.canManageAllCollections) {\n const request = new CipherCollectionsRequest(this.cipherDomain.collectionIds);\n return this.apiService.putCipherCollectionsAdmin(this.cipherId, request);\n } else {\n return super.saveCollections();\n }\n }\n}\n","export class CipherCollectionsRequest {\n collectionIds: string[];\n\n constructor(collectionIds: string[]) {\n this.collectionIds = collectionIds == null ? [] : collectionIds;\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { Organization } from 'jslib/models/domain/organization';\nimport { CipherBulkDeleteRequest } from 'jslib/models/request/cipherBulkDeleteRequest';\n\n@Component({\n selector: 'app-vault-bulk-delete',\n templateUrl: 'bulk-delete.component.html',\n})\nexport class BulkDeleteComponent {\n @Input() cipherIds: string[] = [];\n @Input() permanent: boolean = false;\n @Input() organization: Organization;\n @Output() onDeleted = new EventEmitter();\n\n formPromise: Promise;\n\n constructor(private cipherService: CipherService, private toasterService: ToasterService,\n private i18nService: I18nService, private apiService: ApiService) { }\n\n async submit() {\n if (!this.organization || !this.organization.canManageAllCollections) {\n await this.deleteCiphers();\n } else {\n await this.deleteCiphersAdmin();\n }\n\n await this.formPromise;\n\n this.onDeleted.emit();\n this.toasterService.popAsync('success', null, this.i18nService.t(this.permanent ? 'permanentlyDeletedItems'\n : 'deletedItems'));\n }\n\n private async deleteCiphers() {\n if (this.permanent) {\n this.formPromise = await this.cipherService.deleteManyWithServer(this.cipherIds);\n } else {\n this.formPromise = await this.cipherService.softDeleteManyWithServer(this.cipherIds);\n }\n }\n\n private async deleteCiphersAdmin() {\n const deleteRequest = new CipherBulkDeleteRequest(this.cipherIds, this.organization.id);\n if (this.permanent) {\n this.formPromise = await this.apiService.deleteManyCiphersAdmin(deleteRequest);\n } else {\n this.formPromise = await this.apiService.putDeleteManyCiphersAdmin(deleteRequest);\n }\n }\n}\n","
\n
\n
\n
\n

\n {{(permanent ? 'permanentlyDeleteSelected' : 'deleteSelected') | i18n}}\n

\n \n
\n
\n {{(permanent ? 'permanentlyDeleteSelectedItemsDesc' : 'deleteSelectedItemsDesc') | i18n: cipherIds.length}}\n
\n
\n \n \n
\n
\n
\n
\n","export class CipherBulkDeleteRequest {\n ids: string[];\n organizationId: string;\n\n constructor(ids: string[], organizationId?: string) {\n this.ids = ids == null ? [] : ids;\n this.organizationId = organizationId;\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { FolderView } from 'jslib/models/view/folderView';\n\n@Component({\n selector: 'app-vault-bulk-move',\n templateUrl: 'bulk-move.component.html',\n})\nexport class BulkMoveComponent implements OnInit {\n @Input() cipherIds: string[] = [];\n @Output() onMoved = new EventEmitter();\n\n folderId: string = null;\n folders: FolderView[] = [];\n formPromise: Promise;\n\n constructor(private cipherService: CipherService, private toasterService: ToasterService,\n private i18nService: I18nService, private folderService: FolderService) { }\n\n async ngOnInit() {\n this.folders = await this.folderService.getAllDecrypted();\n this.folderId = this.folders[0].id;\n }\n\n async submit() {\n this.formPromise = this.cipherService.moveManyWithServer(this.cipherIds, this.folderId);\n await this.formPromise;\n this.onMoved.emit();\n this.toasterService.popAsync('success', null, this.i18nService.t('movedItems'));\n }\n}\n","
\n
\n
\n
\n

\n {{'moveSelected' | i18n}}\n

\n \n
\n
\n

{{'moveSelectedItemsDesc' | i18n: cipherIds.length}}

\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\n@Component({\n selector: 'app-vault-bulk-restore',\n templateUrl: 'bulk-restore.component.html',\n})\nexport class BulkRestoreComponent {\n @Input() cipherIds: string[] = [];\n @Output() onRestored = new EventEmitter();\n\n formPromise: Promise;\n\n constructor(private cipherService: CipherService, private toasterService: ToasterService,\n private i18nService: I18nService) { }\n\n async submit() {\n this.formPromise = this.cipherService.restoreManyWithServer(this.cipherIds);\n await this.formPromise;\n this.onRestored.emit();\n this.toasterService.popAsync('success', null, this.i18nService.t('restoredItems'));\n }\n}\n","
\n
\n
\n
\n

\n {{'restoreSelected' | i18n}}\n

\n \n
\n
\n {{'restoreSelectedItemsDesc' | i18n: cipherIds.length}}\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CipherView } from 'jslib/models/view';\nimport { CollectionView } from 'jslib/models/view/collectionView';\n\nimport { Organization } from 'jslib/models/domain/organization';\n\n@Component({\n selector: 'app-vault-bulk-share',\n templateUrl: 'bulk-share.component.html',\n})\nexport class BulkShareComponent implements OnInit {\n @Input() ciphers: CipherView[] = [];\n @Input() organizationId: string;\n @Output() onShared = new EventEmitter();\n\n nonShareableCount = 0;\n collections: CollectionView[] = [];\n organizations: Organization[] = [];\n shareableCiphers: CipherView[] = [];\n formPromise: Promise;\n\n private writeableCollections: CollectionView[] = [];\n\n constructor(private cipherService: CipherService, private toasterService: ToasterService,\n private i18nService: I18nService, private collectionService: CollectionService,\n private userService: UserService) { }\n\n async ngOnInit() {\n this.shareableCiphers = this.ciphers.filter(c => !c.hasOldAttachments && c.organizationId == null);\n this.nonShareableCount = this.ciphers.length - this.shareableCiphers.length;\n const allCollections = await this.collectionService.getAllDecrypted();\n this.writeableCollections = allCollections.filter(c => !c.readOnly);\n this.organizations = await this.userService.getAllOrganizations();\n if (this.organizationId == null && this.organizations.length > 0) {\n this.organizationId = this.organizations[0].id;\n }\n this.filterCollections();\n }\n\n ngOnDestroy() {\n this.selectAll(false);\n }\n\n filterCollections() {\n this.selectAll(false);\n if (this.organizationId == null || this.writeableCollections.length === 0) {\n this.collections = [];\n } else {\n this.collections = this.writeableCollections.filter(c => c.organizationId === this.organizationId);\n }\n }\n\n async submit() {\n const checkedCollectionIds = this.collections.filter(c => (c as any).checked).map(c => c.id);\n try {\n this.formPromise = this.cipherService.shareManyWithServer(this.shareableCiphers, this.organizationId,\n checkedCollectionIds);\n await this.formPromise;\n this.onShared.emit();\n this.toasterService.popAsync('success', null, this.i18nService.t('sharedItems'));\n } catch { }\n }\n\n check(c: CollectionView, select?: boolean) {\n (c as any).checked = select == null ? !(c as any).checked : select;\n }\n\n selectAll(select: boolean) {\n const collections = select ? this.collections : this.writeableCollections;\n collections.forEach(c => this.check(c, select));\n }\n\n get canSave() {\n if (this.shareableCiphers != null && this.shareableCiphers.length > 0 && this.collections != null) {\n for (let i = 0; i < this.collections.length; i++) {\n if ((this.collections[i] as any).checked) {\n return true;\n }\n }\n }\n return false;\n }\n}\n","
\n
\n
\n
\n

\n {{'shareSelected' | i18n}}\n

\n \n
\n
\n

{{'shareManyDesc' | i18n}}

\n

{{'shareSelectedItemsCountDesc' | i18n: this.ciphers.length : shareableCiphers.length : nonShareableCount}}\n

\n
\n \n \n
\n
\n

{{'collections' | i18n}}

\n
\n \n \n
\n
\n
\n {{'noCollectionsInList' | i18n}}\n
\n \n \n \n \n \n \n \n
\n \n \n {{c.name}}\n
\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { ActivatedRoute } from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { CryptoFunctionService } from 'jslib/abstractions/cryptoFunction.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { Utils } from 'jslib/misc/utils';\n\nimport { SendAccess } from 'jslib/models/domain/sendAccess';\nimport { SymmetricCryptoKey } from 'jslib/models/domain/symmetricCryptoKey';\n\nimport { SendAccessView } from 'jslib/models/view/sendAccessView';\n\nimport { SendType } from 'jslib/enums/sendType';\nimport { SendAccessRequest } from 'jslib/models/request/sendAccessRequest';\nimport { ErrorResponse } from 'jslib/models/response/errorResponse';\n\nimport { SendAccessResponse } from 'jslib/models/response/sendAccessResponse';\n\n@Component({\n selector: 'app-send-access',\n templateUrl: 'access.component.html',\n})\nexport class AccessComponent implements OnInit {\n send: SendAccessView;\n sendType = SendType;\n downloading = false;\n loading = true;\n passwordRequired = false;\n formPromise: Promise;\n password: string;\n showText = false;\n unavailable = false;\n error = false;\n hideEmail = false;\n\n private id: string;\n private key: string;\n private decKey: SymmetricCryptoKey;\n private accessRequest: SendAccessRequest;\n\n constructor(private i18nService: I18nService, private cryptoFunctionService: CryptoFunctionService,\n private apiService: ApiService, private platformUtilsService: PlatformUtilsService,\n private route: ActivatedRoute, private cryptoService: CryptoService) {\n }\n\n get sendText() {\n if (this.send == null || this.send.text == null) {\n return null;\n }\n return this.showText ? this.send.text.text : this.send.text.maskedText;\n }\n\n get expirationDate() {\n if (this.send == null || this.send.expirationDate == null) {\n return null;\n }\n return this.send.expirationDate;\n }\n\n get creatorIdentifier() {\n if (this.send == null || this.send.creatorIdentifier == null) {\n return null;\n }\n return this.send.creatorIdentifier;\n }\n\n ngOnInit() {\n this.route.params.subscribe(async params => {\n this.id = params.sendId;\n this.key = params.key;\n if (this.key == null || this.id == null) {\n return;\n }\n await this.load();\n });\n }\n\n async download() {\n if (this.send == null || this.decKey == null) {\n return;\n }\n\n if (this.downloading) {\n return;\n }\n\n\n const downloadData = await this.apiService.getSendFileDownloadData(this.send, this.accessRequest);\n\n if (Utils.isNullOrWhitespace(downloadData.url)) {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('missingSendFile'));\n return;\n }\n\n this.downloading = true;\n const response = await fetch(new Request(downloadData.url, { cache: 'no-store' }));\n if (response.status !== 200) {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('errorOccurred'));\n this.downloading = false;\n return;\n }\n\n try {\n const buf = await response.arrayBuffer();\n const decBuf = await this.cryptoService.decryptFromBytes(buf, this.decKey);\n this.platformUtilsService.saveFile(window, decBuf, null, this.send.file.fileName);\n } catch (e) {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('errorOccurred'));\n }\n\n this.downloading = false;\n }\n\n copyText() {\n this.platformUtilsService.copyToClipboard(this.send.text.text);\n this.platformUtilsService.showToast('success', null,\n this.i18nService.t('valueCopied', this.i18nService.t('sendTypeText')));\n }\n\n toggleText() {\n this.showText = !this.showText;\n }\n\n async load() {\n this.unavailable = false;\n this.error = false;\n this.hideEmail = false;\n const keyArray = Utils.fromUrlB64ToArray(this.key);\n this.accessRequest = new SendAccessRequest();\n if (this.password != null) {\n const passwordHash = await this.cryptoFunctionService.pbkdf2(this.password, keyArray, 'sha256', 100000);\n this.accessRequest.password = Utils.fromBufferToB64(passwordHash);\n }\n try {\n let sendResponse: SendAccessResponse = null;\n if (this.loading) {\n sendResponse = await this.apiService.postSendAccess(this.id, this.accessRequest);\n } else {\n this.formPromise = this.apiService.postSendAccess(this.id, this.accessRequest);\n sendResponse = await this.formPromise;\n }\n this.passwordRequired = false;\n const sendAccess = new SendAccess(sendResponse);\n this.decKey = await this.cryptoService.makeSendKey(keyArray);\n this.send = await sendAccess.decrypt(this.decKey);\n this.showText = this.send.text != null ? !this.send.text.hidden : true;\n } catch (e) {\n if (e instanceof ErrorResponse) {\n if (e.statusCode === 401) {\n this.passwordRequired = true;\n } else if (e.statusCode === 404) {\n this.unavailable = true;\n } else {\n this.error = true;\n }\n }\n }\n this.loading = false;\n this.hideEmail = this.creatorIdentifier == null && !this.passwordRequired && !this.loading && !this.unavailable;\n }\n}\n","
\n
\n
\n

Bitwarden Send

\n
\n
\n

{{'sendCreatorIdentifier' | i18n: creatorIdentifier }}

\n
\n
\n \n {{'viewSendHiddenEmailWarning' | i18n }} \n {{'learnMore' | i18n}}.\n \n
\n
\n
\n
\n
\n
\n \n {{'loading' | i18n}}\n
\n
\n

{{'sendProtectedPassword' | i18n}}

\n

{{'sendProtectedPasswordDontKnow' | i18n}}

\n
\n \n \n
\n
\n \n
\n
\n
\n {{'sendAccessUnavailable' | i18n}}\n
\n
\n {{'unexpectedError' | i18n}}\n
\n
\n

{{send.name}}

\n
\n \n \n {{'sendHiddenByDefault' | i18n}}\n
\n \n
\n \n \n
\n \n \n

{{send.file.fileName}}

\n \n \n
\n

Expires:\n {{expirationDate | date: 'medium'}}

\n
\n
\n
\n
\n

{{'sendAccessTaglineProductDesc' | i18n}}
\n {{'sendAccessTaglineLearnMore' | i18n}} Bitwarden Send\n {{'sendAccessTaglineOr' | i18n}} {{'sendAccessTaglineSignUp' | i18n}}\n {{'sendAccessTaglineTryToday' | i18n}}\n

\n
\n
\n
\n","import {\n Component,\n ComponentFactoryResolver,\n NgZone,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { SendView } from 'jslib/models/view/sendView';\n\nimport { SendComponent as BaseSendComponent } from 'jslib/angular/components/send/send.component';\n\nimport { AddEditComponent } from './add-edit.component';\n\nimport { ModalComponent } from '../modal.component';\n\nimport { EnvironmentService } from 'jslib/abstractions/environment.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { SearchService } from 'jslib/abstractions/search.service';\nimport { SendService } from 'jslib/abstractions/send.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { BroadcasterService } from 'jslib/angular/services/broadcaster.service';\n\nconst BroadcasterSubscriptionId = 'SendComponent';\n\n@Component({\n selector: 'app-send',\n templateUrl: 'send.component.html',\n})\nexport class SendComponent extends BaseSendComponent {\n @ViewChild('sendAddEdit', { read: ViewContainerRef, static: true }) sendAddEditModalRef: ViewContainerRef;\n\n modal: ModalComponent = null;\n\n constructor(sendService: SendService, i18nService: I18nService,\n platformUtilsService: PlatformUtilsService, environmentService: EnvironmentService,\n ngZone: NgZone, searchService: SearchService, policyService: PolicyService, userService: UserService,\n private componentFactoryResolver: ComponentFactoryResolver, private broadcasterService: BroadcasterService) {\n super(sendService, i18nService, platformUtilsService, environmentService, ngZone, searchService,\n policyService, userService);\n }\n\n async ngOnInit() {\n await super.ngOnInit();\n await this.load();\n\n // Broadcaster subscription - load if sync completes in the background\n this.broadcasterService.subscribe(BroadcasterSubscriptionId, (message: any) => {\n this.ngZone.run(async () => {\n switch (message.command) {\n case 'syncCompleted':\n if (message.successfully) {\n await this.load();\n }\n break;\n }\n });\n });\n }\n\n ngOnDestroy() {\n this.broadcasterService.unsubscribe(BroadcasterSubscriptionId);\n }\n\n addSend() {\n if (this.disableSend) {\n return;\n }\n\n const component = this.editSend(null);\n component.type = this.type;\n }\n\n editSend(send: SendView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.sendAddEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n AddEditComponent, this.sendAddEditModalRef);\n\n childComponent.sendId = send == null ? null : send.id;\n childComponent.onSavedSend.subscribe(async (s: SendView) => {\n this.modal.close();\n await this.load();\n });\n childComponent.onDeletedSend.subscribe(async (s: SendView) => {\n this.modal.close();\n await this.load();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n\n return childComponent;\n }\n}\n","
\n
\n
\n {{'sendDisabled' | i18n}}\n
\n
\n {{'sendDisabledWarning' | i18n}}\n
\n
\n
\n
\n
\n
\n {{'filters' | i18n}}\n
\n
\n \n \n

{{'types' | i18n}}

\n \n
\n
\n
\n
\n
\n

\n {{'send' | i18n}}\n \n \n \n {{'loading' | i18n}}\n \n \n

\n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n
\n
\n \n \n
\n
\n {{s.name}}\n \n \n {{'disabled' | i18n}}\n \n \n \n {{'password' | i18n}}\n \n \n \n {{'maxAccessCountReached' | i18n}}\n \n \n \n {{'expired' | i18n}}\n \n \n \n {{'pendingDeletion' | i18n}}\n \n
\n {{s.deletionDate | date:'medium'}}\n
\n \n
\n
\n \n \n {{'loading' | i18n}}\n \n \n

{{'noSendsInList' | i18n}}

\n \n
\n
\n
\n
\n
\n\n","import { DatePipe } from '@angular/common';\n\nimport { Component } from '@angular/core';\n\nimport { EnvironmentService } from 'jslib/abstractions/environment.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { SendService } from 'jslib/abstractions/send.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { AddEditComponent as BaseAddEditComponent } from 'jslib/angular/components/send/add-edit.component';\n\n@Component({\n selector: 'app-send-add-edit',\n templateUrl: 'add-edit.component.html',\n})\nexport class AddEditComponent extends BaseAddEditComponent {\n constructor(i18nService: I18nService, platformUtilsService: PlatformUtilsService,\n environmentService: EnvironmentService, datePipe: DatePipe,\n sendService: SendService, userService: UserService,\n messagingService: MessagingService, policyService: PolicyService) {\n super(i18nService, platformUtilsService, environmentService, datePipe, sendService, userService,\n messagingService, policyService);\n }\n\n copyLinkToClipboard(link: string) {\n // Copy function on web depends on the modal being open or not. Since this event occurs during a transition\n // of the modal closing we need to add a small delay to make sure state of the DOM is consistent.\n window.setTimeout(() => super.copyLinkToClipboard(link), 500);\n }\n}\n","
\n
\n
\n
\n

{{title}}

\n \n
\n
\n \n {{'sendDisabledWarning' | i18n}}\n \n \n {{'sendOptionsPolicyInEffect' | i18n}}\n
    \n
  • {{'sendDisableHideEmailInEffect' | i18n}}
  • \n
\n
\n
\n
\n \n \n {{'sendNameDesc' | i18n}}\n
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n \n \n
\n \n \n {{'sendTextDesc' | i18n}}\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n {{'file' | i18n}}\n {{send.file.fileName}} ({{send.file.sizeName}})\n
\n
\n \n \n {{'sendFileDesc' | i18n}} {{'maxFileSize' |\n i18n}}\n
\n
\n
\n

{{'share' | i18n}}

\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n

{{'options' | i18n}}

\n \n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n \n \n \n
\n
\n
\n \n \n \n \n \n
\n
\n \n \n
\n
{{'deletionDateDesc' | i18n}}
\n
\n
\n
\n \n \n {{'clear' | i18n}}\n \n
\n \n \n \n \n
\n \n \n \n
\n
\n
\n \n \n \n \n \n
\n
\n \n \n
\n
{{'expirationDateDesc' | i18n}}
\n
\n
\n
\n
\n \n \n
{{'maxAccessCountDesc' | i18n}}
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n \n
\n \n
\n
\n
{{'sendPasswordDesc' | i18n}}
\n
\n
\n
\n \n \n
{{'sendNotesDesc' | i18n}}
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n \n \n
\n \n
\n
\n
\n
\n
\n","import { SendType } from '../../enums/sendType';\nimport { Utils } from '../../misc/utils';\n\nimport { Send } from '../domain/send';\nimport { SymmetricCryptoKey } from '../domain/symmetricCryptoKey';\n\nimport { SendFileView } from './sendFileView';\nimport { SendTextView } from './sendTextView';\nimport { View } from './view';\n\nexport class SendView implements View {\n id: string = null;\n accessId: string = null;\n name: string = null;\n notes: string = null;\n key: ArrayBuffer;\n cryptoKey: SymmetricCryptoKey;\n type: SendType = null;\n text = new SendTextView();\n file = new SendFileView();\n maxAccessCount?: number = null;\n accessCount: number = 0;\n revisionDate: Date = null;\n deletionDate: Date = null;\n expirationDate: Date = null;\n password: string = null;\n disabled: boolean = false;\n hideEmail: boolean = false;\n\n constructor(s?: Send) {\n if (!s) {\n return;\n }\n\n this.id = s.id;\n this.accessId = s.accessId;\n this.type = s.type;\n this.maxAccessCount = s.maxAccessCount;\n this.accessCount = s.accessCount;\n this.revisionDate = s.revisionDate;\n this.deletionDate = s.deletionDate;\n this.expirationDate = s.expirationDate;\n this.disabled = s.disabled;\n this.password = s.password;\n this.hideEmail = s.hideEmail;\n }\n\n get urlB64Key(): string {\n return Utils.fromBufferToUrlB64(this.key);\n }\n\n get maxAccessCountReached(): boolean {\n if (this.maxAccessCount == null) {\n return false;\n }\n return this.accessCount >= this.maxAccessCount;\n }\n\n get expired(): boolean {\n if (this.expirationDate == null) {\n return false;\n }\n return this.expirationDate <= new Date();\n }\n\n get pendingDelete(): boolean {\n return this.deletionDate <= new Date();\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { ModalComponent } from '../modal.component';\nimport { ApiKeyComponent } from './api-key.component';\nimport { DeauthorizeSessionsComponent } from './deauthorize-sessions.component';\nimport { DeleteAccountComponent } from './delete-account.component';\nimport { PurgeVaultComponent } from './purge-vault.component';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\n@Component({\n selector: 'app-account',\n templateUrl: 'account.component.html',\n})\nexport class AccountComponent {\n @ViewChild('deauthorizeSessionsTemplate', { read: ViewContainerRef, static: true }) deauthModalRef: ViewContainerRef;\n @ViewChild('purgeVaultTemplate', { read: ViewContainerRef, static: true }) purgeModalRef: ViewContainerRef;\n @ViewChild('deleteAccountTemplate', { read: ViewContainerRef, static: true }) deleteModalRef: ViewContainerRef;\n @ViewChild('viewUserApiKeyTemplate', { read: ViewContainerRef, static: true }) viewUserApiKeyModalRef: ViewContainerRef;\n @ViewChild('rotateUserApiKeyTemplate', { read: ViewContainerRef, static: true }) rotateUserApiKeyModalRef: ViewContainerRef;\n\n private modal: ModalComponent = null;\n\n constructor(private componentFactoryResolver: ComponentFactoryResolver, private apiService: ApiService,\n private userService: UserService) { }\n\n deauthorizeSessions() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.deauthModalRef.createComponent(factory).instance;\n this.modal.show(DeauthorizeSessionsComponent, this.deauthModalRef);\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n purgeVault() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.purgeModalRef.createComponent(factory).instance;\n this.modal.show(PurgeVaultComponent, this.purgeModalRef);\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n deleteAccount() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.deleteModalRef.createComponent(factory).instance;\n this.modal.show(DeleteAccountComponent, this.deleteModalRef);\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n async viewUserApiKey() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.viewUserApiKeyModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(ApiKeyComponent, this.viewUserApiKeyModalRef);\n childComponent.keyType = 'user';\n childComponent.entityId = await this.userService.getUserId();\n childComponent.postKey = this.apiService.postUserApiKey.bind(this.apiService);\n childComponent.scope = 'api';\n childComponent.grantType = 'client_credentials';\n childComponent.apiKeyTitle = 'apiKey';\n childComponent.apiKeyWarning = 'userApiKeyWarning';\n childComponent.apiKeyDescription = 'userApiKeyDesc';\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n async rotateUserApiKey() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.rotateUserApiKeyModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(ApiKeyComponent, this.rotateUserApiKeyModalRef);\n childComponent.keyType = 'user';\n childComponent.isRotation = true;\n childComponent.entityId = await this.userService.getUserId();\n childComponent.postKey = this.apiService.postUserRotateApiKey.bind(this.apiService);\n childComponent.scope = 'api';\n childComponent.grantType = 'client_credentials';\n childComponent.apiKeyTitle = 'apiKey';\n childComponent.apiKeyWarning = 'userApiKeyWarning';\n childComponent.apiKeyDescription = 'apiKeyRotateDesc';\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n}\n","
\n

{{'myAccount' | i18n}}

\n
\n\n
\n

{{'changeEmail' | i18n}}

\n
\n\n
\n

{{'changeMasterPassword' | i18n}}

\n
\n\n
\n

{{'encKeySettings' | i18n}}

\n
\n\n
\n

{{'apiKey' | i18n}}

\n
\n

\n {{'userApiKeyDesc' | i18n}}\n

\n\n\n
\n

{{'dangerZone' | i18n}}

\n
\n
\n
\n

{{'dangerZoneDesc' | i18n}}

\n \n \n \n
\n
\n\n\n\n\n\n","import { Component } from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\n\nimport { PasswordVerificationRequest } from 'jslib/models/request/passwordVerificationRequest';\n\n@Component({\n selector: 'app-deauthorize-sessions',\n templateUrl: 'deauthorize-sessions.component.html',\n})\nexport class DeauthorizeSessionsComponent {\n masterPassword: string;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, private cryptoService: CryptoService,\n private messagingService: MessagingService) { }\n\n async submit() {\n if (this.masterPassword == null || this.masterPassword === '') {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n const request = new PasswordVerificationRequest();\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n try {\n this.formPromise = this.apiService.postSecurityStamp(request);\n await this.formPromise;\n this.toasterService.popAsync('success', this.i18nService.t('sessionsDeauthorized'),\n this.i18nService.t('logBackIn'));\n this.messagingService.send('logout');\n } catch { }\n }\n}\n","
\n
\n
\n
\n

{{'deauthorizeSessions' | i18n}}

\n \n
\n
\n

{{'deauthorizeSessionsDesc' | i18n}}

\n {{'deauthorizeSessionsWarning' | i18n}}\n \n \n
\n
\n \n \n
\n
\n
\n
\n","import { Component } from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\n\nimport { PasswordVerificationRequest } from 'jslib/models/request/passwordVerificationRequest';\n\n@Component({\n selector: 'app-delete-account',\n templateUrl: 'delete-account.component.html',\n})\nexport class DeleteAccountComponent {\n masterPassword: string;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, private cryptoService: CryptoService,\n private messagingService: MessagingService) { }\n\n async submit() {\n if (this.masterPassword == null || this.masterPassword === '') {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n const request = new PasswordVerificationRequest();\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n try {\n this.formPromise = this.apiService.deleteAccount(request);\n await this.formPromise;\n this.toasterService.popAsync('success', this.i18nService.t('accountDeleted'),\n this.i18nService.t('accountDeletedDesc'));\n this.messagingService.send('logout');\n } catch { }\n }\n}\n","
\n
\n
\n
\n

{{'deleteAccount' | i18n}}

\n \n
\n
\n

{{'deleteAccountDesc' | i18n}}

\n {{'deleteAccountWarning' | i18n}}\n \n \n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { UpdateProfileRequest } from 'jslib/models/request/updateProfileRequest';\n\nimport { ProfileResponse } from 'jslib/models/response/profileResponse';\n\n@Component({\n selector: 'app-profile',\n templateUrl: 'profile.component.html',\n})\nexport class ProfileComponent implements OnInit {\n loading = true;\n profile: ProfileResponse;\n fingerprint: string;\n\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, private userService: UserService,\n private cryptoService: CryptoService) { }\n\n async ngOnInit() {\n this.profile = await this.apiService.getProfile();\n this.loading = false;\n const fingerprint = await this.cryptoService.getFingerprint(await this.userService.getUserId());\n if (fingerprint != null) {\n this.fingerprint = fingerprint.join('-');\n }\n }\n\n async submit() {\n try {\n const request = new UpdateProfileRequest(this.profile.name, this.profile.masterPasswordHint);\n this.formPromise = this.apiService.putProfile(request);\n await this.formPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('accountUpdated'));\n } catch { }\n }\n}\n","
\n \n {{'loading' | i18n}}\n
\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n

\n {{'yourAccountsFingerprint' | i18n}}:\n \n
\n {{fingerprint}}\n

\n
\n
\n \n
\n","import {\n Component,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { EmailRequest } from 'jslib/models/request/emailRequest';\nimport { EmailTokenRequest } from 'jslib/models/request/emailTokenRequest';\n\n@Component({\n selector: 'app-change-email',\n templateUrl: 'change-email.component.html',\n})\nexport class ChangeEmailComponent {\n masterPassword: string;\n newEmail: string;\n token: string;\n tokenSent = false;\n\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, private cryptoService: CryptoService,\n private messagingService: MessagingService, private userService: UserService) { }\n\n async submit() {\n const hasEncKey = await this.cryptoService.hasEncKey();\n if (!hasEncKey) {\n this.toasterService.popAsync('error', null, this.i18nService.t('updateKey'));\n return;\n }\n\n this.newEmail = this.newEmail.trim().toLowerCase();\n if (!this.tokenSent) {\n const request = new EmailTokenRequest();\n request.newEmail = this.newEmail;\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n try {\n this.formPromise = this.apiService.postEmailToken(request);\n await this.formPromise;\n this.tokenSent = true;\n } catch { }\n } else {\n const request = new EmailRequest();\n request.token = this.token;\n request.newEmail = this.newEmail;\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n const kdf = await this.userService.getKdf();\n const kdfIterations = await this.userService.getKdfIterations();\n const newKey = await this.cryptoService.makeKey(this.masterPassword, this.newEmail, kdf, kdfIterations);\n request.newMasterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, newKey);\n const newEncKey = await this.cryptoService.remakeEncKey(newKey);\n request.key = newEncKey[1].encryptedString;\n try {\n this.formPromise = this.apiService.postEmail(request);\n await this.formPromise;\n this.reset();\n this.toasterService.popAsync('success', this.i18nService.t('emailChanged'),\n this.i18nService.t('logBackIn'));\n this.messagingService.send('logout');\n } catch { }\n }\n }\n\n reset() {\n this.token = this.newEmail = this.masterPassword = null;\n this.tokenSent = false;\n }\n}\n","
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n
\n

{{'changeEmailDesc' | i18n : newEmail}}

\n {{'loggedOutWarning' | i18n}}\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class EmailTokenRequest extends PasswordVerificationRequest {\n newEmail: string;\n masterPasswordHash: string;\n}\n","import { Component } from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport {\n ChangePasswordComponent as BaseChangePasswordComponent,\n} from 'jslib/angular/components/change-password.component';\n\nimport { EmergencyAccessStatusType } from 'jslib/enums/emergencyAccessStatusType';\nimport { Utils } from 'jslib/misc/utils';\n\nimport { EncString } from 'jslib/models/domain/encString';\nimport { SymmetricCryptoKey } from 'jslib/models/domain/symmetricCryptoKey';\n\nimport { CipherWithIdRequest } from 'jslib/models/request/cipherWithIdRequest';\nimport { EmergencyAccessUpdateRequest } from 'jslib/models/request/emergencyAccessUpdateRequest';\nimport { FolderWithIdRequest } from 'jslib/models/request/folderWithIdRequest';\nimport { OrganizationUserResetPasswordEnrollmentRequest } from 'jslib/models/request/organizationUserResetPasswordEnrollmentRequest';\nimport { PasswordRequest } from 'jslib/models/request/passwordRequest';\nimport { UpdateKeyRequest } from 'jslib/models/request/updateKeyRequest';\n\n@Component({\n selector: 'app-change-password',\n templateUrl: 'change-password.component.html',\n})\nexport class ChangePasswordComponent extends BaseChangePasswordComponent {\n rotateEncKey = false;\n currentMasterPassword: string;\n\n constructor(i18nService: I18nService,\n cryptoService: CryptoService, messagingService: MessagingService,\n userService: UserService, passwordGenerationService: PasswordGenerationService,\n platformUtilsService: PlatformUtilsService, policyService: PolicyService,\n private folderService: FolderService, private cipherService: CipherService,\n private syncService: SyncService, private apiService: ApiService) {\n super(i18nService, cryptoService, messagingService, userService, passwordGenerationService,\n platformUtilsService, policyService);\n }\n\n async rotateEncKeyClicked() {\n if (this.rotateEncKey) {\n const ciphers = await this.cipherService.getAllDecrypted();\n let hasOldAttachments = false;\n if (ciphers != null) {\n for (let i = 0; i < ciphers.length; i++) {\n if (ciphers[i].organizationId == null && ciphers[i].hasOldAttachments) {\n hasOldAttachments = true;\n break;\n }\n }\n }\n\n if (hasOldAttachments) {\n const learnMore = await this.platformUtilsService.showDialog(\n this.i18nService.t('oldAttachmentsNeedFixDesc'), null,\n this.i18nService.t('learnMore'), this.i18nService.t('close'), 'warning');\n if (learnMore) {\n this.platformUtilsService.launchUri(\n 'https://help.bitwarden.com/article/attachments/#fixing-old-attachments');\n }\n this.rotateEncKey = false;\n return;\n }\n\n const result = await this.platformUtilsService.showDialog(\n this.i18nService.t('updateEncryptionKeyWarning') + ' ' +\n this.i18nService.t('updateEncryptionKeyExportWarning') + ' ' +\n this.i18nService.t('rotateEncKeyConfirmation'), this.i18nService.t('rotateEncKeyTitle'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!result) {\n this.rotateEncKey = false;\n }\n }\n }\n\n async submit() {\n const hasEncKey = await this.cryptoService.hasEncKey();\n if (!hasEncKey) {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('updateKey'));\n return;\n }\n\n await super.submit();\n }\n\n async setupSubmitActions() {\n if (this.currentMasterPassword == null || this.currentMasterPassword === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return false;\n }\n\n if (this.rotateEncKey) {\n await this.syncService.fullSync(true);\n }\n\n return super.setupSubmitActions();\n }\n\n async performSubmitActions(newMasterPasswordHash: string, newKey: SymmetricCryptoKey,\n newEncKey: [SymmetricCryptoKey, EncString]) {\n const request = new PasswordRequest();\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.currentMasterPassword, null);\n request.newMasterPasswordHash = newMasterPasswordHash;\n request.key = newEncKey[1].encryptedString;\n\n try {\n if (this.rotateEncKey) {\n this.formPromise = this.apiService.postPassword(request).then(() => {\n return this.updateKey(newKey, request.newMasterPasswordHash);\n });\n } else {\n this.formPromise = this.apiService.postPassword(request);\n }\n\n await this.formPromise;\n\n this.platformUtilsService.showToast('success', this.i18nService.t('masterPasswordChanged'),\n this.i18nService.t('logBackIn'));\n this.messagingService.send('logout');\n } catch {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('errorOccurred'));\n }\n }\n\n private async updateKey(key: SymmetricCryptoKey, masterPasswordHash: string) {\n const encKey = await this.cryptoService.makeEncKey(key);\n const privateKey = await this.cryptoService.getPrivateKey();\n let encPrivateKey: EncString = null;\n if (privateKey != null) {\n encPrivateKey = await this.cryptoService.encrypt(privateKey, encKey[0]);\n }\n const request = new UpdateKeyRequest();\n request.privateKey = encPrivateKey != null ? encPrivateKey.encryptedString : null;\n request.key = encKey[1].encryptedString;\n request.masterPasswordHash = masterPasswordHash;\n\n const folders = await this.folderService.getAllDecrypted();\n for (let i = 0; i < folders.length; i++) {\n if (folders[i].id == null) {\n continue;\n }\n const folder = await this.folderService.encrypt(folders[i], encKey[0]);\n request.folders.push(new FolderWithIdRequest(folder));\n }\n\n const ciphers = await this.cipherService.getAllDecrypted();\n for (let i = 0; i < ciphers.length; i++) {\n if (ciphers[i].organizationId != null) {\n continue;\n }\n\n const cipher = await this.cipherService.encrypt(ciphers[i], encKey[0]);\n request.ciphers.push(new CipherWithIdRequest(cipher));\n }\n\n await this.apiService.postAccountKey(request);\n\n await this.updateEmergencyAccesses(encKey[0]);\n\n await this.updateAllResetPasswordKeys(encKey[0]);\n }\n\n private async updateEmergencyAccesses(encKey: SymmetricCryptoKey) {\n const emergencyAccess = await this.apiService.getEmergencyAccessTrusted();\n const allowedStatuses = [\n EmergencyAccessStatusType.Confirmed,\n EmergencyAccessStatusType.RecoveryInitiated,\n EmergencyAccessStatusType.RecoveryApproved,\n ];\n\n const filteredAccesses = emergencyAccess.data.filter(d => allowedStatuses.includes(d.status));\n\n for (const details of filteredAccesses) {\n const publicKeyResponse = await this.apiService.getUserPublicKey(details.granteeId);\n const publicKey = Utils.fromB64ToArray(publicKeyResponse.publicKey);\n\n const encryptedKey = await this.cryptoService.rsaEncrypt(encKey.key, publicKey.buffer);\n\n const updateRequest = new EmergencyAccessUpdateRequest();\n updateRequest.type = details.type;\n updateRequest.waitTimeDays = details.waitTimeDays;\n updateRequest.keyEncrypted = encryptedKey.encryptedString;\n\n await this.apiService.putEmergencyAccess(details.id, updateRequest);\n }\n }\n\n private async updateAllResetPasswordKeys(encKey: SymmetricCryptoKey) {\n const orgs = await this.userService.getAllOrganizations();\n\n for (const org of orgs) {\n // If not already enrolled, skip\n if (!org.isResetPasswordEnrolled) {\n continue;\n }\n\n // Re-enroll - encrpyt user's encKey.key with organization key\n const orgSymKey = await this.cryptoService.getOrgKey(org.id);\n const encryptedKey = await this.cryptoService.encrypt(encKey.key, orgSymKey);\n\n // Create/Execute request\n const request = new OrganizationUserResetPasswordEnrollmentRequest();\n request.resetPasswordKey = encryptedKey.encryptedString;\n\n await this.apiService.putOrganizationUserResetPasswordEnrollment(org.id, org.userId, request);\n }\n }\n}\n","{{'loggedOutWarning' | i18n}}\n\n {{'masterPasswordPolicyInEffect' | i18n}}\n
    \n
  • 0\">\n {{'policyInEffectMinComplexity' | i18n : getPasswordScoreAlertDisplay()}}\n
  • \n
  • 0\">\n {{'policyInEffectMinLength' | i18n : enforcedPolicyOptions?.minLength.toString()}}\n
  • \n
  • {{'policyInEffectUppercase' | i18n}}
  • \n
  • {{'policyInEffectLowercase' | i18n}}
  • \n
  • {{'policyInEffectNumbers' | i18n}}
  • \n
  • {{'policyInEffectSpecial' | i18n : '!@#$%^&*'}}
  • \n
\n
\n\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n \n \n \n \n
\n
\n \n
\n","export enum EmergencyAccessStatusType {\n Invited = 0,\n Accepted = 1,\n Confirmed = 2,\n RecoveryInitiated = 3,\n RecoveryApproved = 4,\n}\n","import { EmergencyAccessType } from '../../enums/emergencyAccessType';\n\nexport class EmergencyAccessUpdateRequest {\n type: EmergencyAccessType;\n waitTimeDays: number;\n keyEncrypted?: string;\n}\n","import { FolderRequest } from './folderRequest';\n\nimport { Folder } from '../domain/folder';\n\nexport class FolderWithIdRequest extends FolderRequest {\n id: string;\n\n constructor(folder: Folder) {\n super(folder);\n this.id = folder.id;\n }\n}\n","export class OrganizationUserResetPasswordEnrollmentRequest {\n resetPasswordKey: string;\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class PasswordRequest extends PasswordVerificationRequest {\n newMasterPasswordHash: string;\n key: string;\n}\n","import { CipherWithIdRequest } from './cipherWithIdRequest';\nimport { FolderWithIdRequest } from './folderWithIdRequest';\n\nexport class UpdateKeyRequest {\n ciphers: CipherWithIdRequest[] = [];\n folders: FolderWithIdRequest[] = [];\n masterPasswordHash: string;\n privateKey: string;\n key: string;\n}\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { KdfRequest } from 'jslib/models/request/kdfRequest';\n\nimport { KdfType } from 'jslib/enums/kdfType';\n\n@Component({\n selector: 'app-change-kdf',\n templateUrl: 'change-kdf.component.html',\n})\nexport class ChangeKdfComponent implements OnInit {\n masterPassword: string;\n kdfIterations: number;\n kdf = KdfType.PBKDF2_SHA256;\n kdfOptions: any[] = [];\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, private cryptoService: CryptoService,\n private messagingService: MessagingService, private userService: UserService) {\n this.kdfOptions = [\n { name: 'PBKDF2 SHA-256', value: KdfType.PBKDF2_SHA256 },\n ];\n }\n\n async ngOnInit() {\n this.kdf = await this.userService.getKdf();\n this.kdfIterations = await this.userService.getKdfIterations();\n }\n\n async submit() {\n const hasEncKey = await this.cryptoService.hasEncKey();\n if (!hasEncKey) {\n this.toasterService.popAsync('error', null, this.i18nService.t('updateKey'));\n return;\n }\n\n const request = new KdfRequest();\n request.kdf = this.kdf;\n request.kdfIterations = this.kdfIterations;\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n const email = await this.userService.getEmail();\n const newKey = await this.cryptoService.makeKey(this.masterPassword, email, this.kdf, this.kdfIterations);\n request.newMasterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, newKey);\n const newEncKey = await this.cryptoService.remakeEncKey(newKey);\n request.key = newEncKey[1].encryptedString;\n try {\n this.formPromise = this.apiService.postAccountKdf(request);\n await this.formPromise;\n this.toasterService.popAsync('success', this.i18nService.t('encKeySettingsChanged'),\n this.i18nService.t('logBackIn'));\n this.messagingService.send('logout');\n } catch { }\n }\n}\n","{{'loggedOutWarning' | i18n}}\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n
\n
\n

{{'kdfIterationsDesc' | i18n : (100000 | number)}}

\n {{'warning' | i18n}}: {{'kdfIterationsWarning' | i18n : (50000 | number)}}\n
\n
\n
\n
\n \n
\n","import {\n Component,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { PlanType } from 'jslib/enums/planType';\nimport { ProductType } from 'jslib/enums/productType';\n\nimport { OrganizationPlansComponent } from './organization-plans.component';\n\n@Component({\n selector: 'app-create-organization',\n templateUrl: 'create-organization.component.html',\n})\nexport class CreateOrganizationComponent implements OnInit {\n @ViewChild(OrganizationPlansComponent, { static: true }) orgPlansComponent: OrganizationPlansComponent;\n\n constructor(private route: ActivatedRoute) { }\n\n ngOnInit() {\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n if (qParams.plan === 'families') {\n this.orgPlansComponent.plan = PlanType.FamiliesAnnually;\n this.orgPlansComponent.product = ProductType.Families;\n } else if (qParams.plan === 'teams') {\n this.orgPlansComponent.plan = PlanType.TeamsAnnually;\n this.orgPlansComponent.product = ProductType.Teams;\n } else if (qParams.plan === 'enterprise') {\n this.orgPlansComponent.plan = PlanType.EnterpriseAnnually;\n this.orgPlansComponent.product = ProductType.Enterprise;\n }\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n }\n}\n","
\n

{{'newOrganization' | i18n}}

\n
\n

{{'newOrganizationDesc' | i18n}}

\n\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { UpdateDomainsRequest } from 'jslib/models/request/updateDomainsRequest';\n\n@Component({\n selector: 'app-domain-rules',\n templateUrl: 'domain-rules.component.html',\n})\nexport class DomainRulesComponent implements OnInit {\n loading = true;\n custom: string[] = [];\n global: any[] = [];\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService) { }\n\n async ngOnInit() {\n const response = await this.apiService.getSettingsDomains();\n this.loading = false;\n if (response.equivalentDomains != null) {\n this.custom = response.equivalentDomains.map(d => d.join(', '));\n }\n if (response.globalEquivalentDomains != null) {\n this.global = response.globalEquivalentDomains.map(d => {\n return {\n domains: d.domains.join(', '),\n excluded: d.excluded,\n key: d.type,\n };\n });\n }\n }\n\n toggleExcluded(globalDomain: any) {\n globalDomain.excluded = !globalDomain.excluded;\n }\n\n customize(globalDomain: any) {\n globalDomain.excluded = true;\n this.custom.push(globalDomain.domains);\n }\n\n remove(index: number) {\n this.custom.splice(index, 1);\n }\n\n add() {\n this.custom.push('');\n }\n\n async submit() {\n const request = new UpdateDomainsRequest();\n request.excludedGlobalEquivalentDomains = this.global.filter(d => d.excluded)\n .map(d => d.key);\n if (request.excludedGlobalEquivalentDomains.length === 0) {\n request.excludedGlobalEquivalentDomains = null;\n }\n request.equivalentDomains = this.custom.filter(d => d != null && d.trim() !== '')\n .map(d => d.split(',').map(d2 => d2.trim()));\n if (request.equivalentDomains.length === 0) {\n request.equivalentDomains = null;\n }\n\n try {\n this.formPromise = this.apiService.putSettingsDomains(request);\n await this.formPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('domainsUpdated'));\n } catch { }\n }\n\n indexTrackBy(index: number, obj: any): any {\n return index;\n }\n}\n","
\n

{{'domainRules' | i18n}}

\n
\n

{{'domainRulesDesc' | i18n}}

\n
\n

{{'customEqDomains' | i18n}}

\n

\n \n {{'loading' | i18n}}\n

\n \n
\n
\n \n \n
\n \n
\n \n {{'newCustomDomainDesc' | i18n}}\n
\n \n

{{'globalEqDomains' | i18n}}

\n

\n \n {{'loading' | i18n}}\n

\n 0\">\n \n \n \n \n \n \n
{{d.domains}}\n \n
\n \n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\nimport { VaultTimeoutService } from 'jslib/abstractions/vaultTimeout.service';\n\nimport { ConstantsService } from 'jslib/services/constants.service';\n\nimport { Utils } from 'jslib/misc/utils';\n\n@Component({\n selector: 'app-options',\n templateUrl: 'options.component.html',\n})\nexport class OptionsComponent implements OnInit {\n vaultTimeout: number = null;\n vaultTimeoutAction: string = 'lock';\n disableIcons: boolean;\n enableGravatars: boolean;\n enableFullWidth: boolean;\n locale: string;\n vaultTimeouts: any[];\n localeOptions: any[];\n\n private startingLocale: string;\n\n constructor(private storageService: StorageService, private stateService: StateService,\n private i18nService: I18nService, private toasterService: ToasterService,\n private vaultTimeoutService: VaultTimeoutService, private platformUtilsService: PlatformUtilsService,\n private messagingService: MessagingService) {\n this.vaultTimeouts = [\n { name: i18nService.t('oneMinute'), value: 1 },\n { name: i18nService.t('fiveMinutes'), value: 5 },\n { name: i18nService.t('fifteenMinutes'), value: 15 },\n { name: i18nService.t('thirtyMinutes'), value: 30 },\n { name: i18nService.t('oneHour'), value: 60 },\n { name: i18nService.t('fourHours'), value: 240 },\n { name: i18nService.t('onRefresh'), value: -1 },\n ];\n if (this.platformUtilsService.isDev()) {\n this.vaultTimeouts.push({ name: i18nService.t('never'), value: null });\n }\n\n const localeOptions: any[] = [];\n i18nService.supportedTranslationLocales.forEach(locale => {\n let name = locale;\n if (i18nService.localeNames.has(locale)) {\n name += (' - ' + i18nService.localeNames.get(locale));\n }\n localeOptions.push({ name: name, value: locale });\n });\n localeOptions.sort(Utils.getSortFunction(i18nService, 'name'));\n localeOptions.splice(0, 0, { name: i18nService.t('default'), value: null });\n this.localeOptions = localeOptions;\n }\n\n async ngOnInit() {\n this.vaultTimeout = await this.storageService.get(ConstantsService.vaultTimeoutKey);\n this.vaultTimeoutAction = await this.storageService.get(ConstantsService.vaultTimeoutActionKey);\n this.disableIcons = await this.storageService.get(ConstantsService.disableFaviconKey);\n this.enableGravatars = await this.storageService.get('enableGravatars');\n this.enableFullWidth = await this.storageService.get('enableFullWidth');\n this.locale = this.startingLocale = await this.storageService.get(ConstantsService.localeKey);\n }\n\n async submit() {\n await this.vaultTimeoutService.setVaultTimeoutOptions(this.vaultTimeout != null ? this.vaultTimeout : null,\n this.vaultTimeoutAction);\n await this.storageService.save(ConstantsService.disableFaviconKey, this.disableIcons);\n await this.stateService.save(ConstantsService.disableFaviconKey, this.disableIcons);\n await this.storageService.save('enableGravatars', this.enableGravatars);\n await this.stateService.save('enableGravatars', this.enableGravatars);\n await this.storageService.save('enableFullWidth', this.enableFullWidth);\n this.messagingService.send('setFullWidth');\n await this.storageService.save(ConstantsService.localeKey, this.locale);\n if (this.locale !== this.startingLocale) {\n window.location.reload();\n } else {\n this.toasterService.popAsync('success', null, this.i18nService.t('optionsUpdated'));\n }\n }\n\n async vaultTimeoutActionChanged(newValue: string) {\n if (newValue === 'logOut') {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('vaultTimeoutLogOutConfirmation'),\n this.i18nService.t('vaultTimeoutLogOutConfirmationTitle'),\n this.i18nService.t('yes'), this.i18nService.t('cancel'), 'warning');\n if (!confirmed) {\n this.vaultTimeoutAction = 'lock';\n return;\n }\n }\n this.vaultTimeoutAction = newValue;\n }\n}\n","
\n

{{'options' | i18n}}

\n
\n

{{'optionsDesc' | i18n}}

\n
\n
\n
\n
\n \n \n {{'vaultTimeoutDesc' | i18n}}\n
\n
\n
\n
\n \n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n \n {{'languageDesc' | i18n}}\n
\n
\n
\n
\n
\n \n \n \n \n \n
\n {{'disableIconsDesc' | i18n}}\n
\n
\n
\n \n \n \n \n \n
\n {{'enableGravatarsDesc' | i18n}}\n
\n\t
\n
\n \n \n
\n {{'enableFullWidthDesc' | i18n}}\n
\n \n
\n","import {\n AfterContentInit,\n Component,\n Input,\n} from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { AuthService } from 'jslib/abstractions/auth.service';\nimport { CryptoFunctionService } from 'jslib/abstractions/cryptoFunction.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\n\nimport { SsoComponent } from 'jslib/angular/components/sso.component';\n\nimport { Organization } from 'jslib/models/domain/organization';\n\n@Component({\n selector: 'app-link-sso',\n templateUrl: 'link-sso.component.html',\n})\nexport class LinkSsoComponent extends SsoComponent implements AfterContentInit {\n @Input() organization: Organization;\n returnUri: string = '/settings/organizations';\n\n constructor(platformUtilsService: PlatformUtilsService, i18nService: I18nService,\n apiService: ApiService, authService: AuthService,\n router: Router, route: ActivatedRoute,\n cryptoFunctionService: CryptoFunctionService, passwordGenerationService: PasswordGenerationService,\n storageService: StorageService, stateService: StateService) {\n super(authService, router,\n i18nService, route,\n storageService, stateService,\n platformUtilsService, apiService,\n cryptoFunctionService, passwordGenerationService);\n\n this.returnUri = '/settings/organizations';\n this.redirectUri = window.location.origin + '/sso-connector.html';\n this.clientId = 'web';\n }\n\n async ngAfterContentInit() {\n this.identifier = this.organization.identifier;\n }\n}\n","\n \n {{'linkSso' | i18n}}\n\n","import {\n Component,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\nimport { TokenService } from 'jslib/abstractions/token.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { PaymentComponent } from './payment.component';\nimport { TaxInfoComponent } from './tax-info.component';\n\n@Component({\n selector: 'app-premium',\n templateUrl: 'premium.component.html',\n})\nexport class PremiumComponent implements OnInit {\n @ViewChild(PaymentComponent) paymentComponent: PaymentComponent;\n @ViewChild(TaxInfoComponent) taxInfoComponent: TaxInfoComponent;\n\n canAccessPremium = false;\n selfHosted = false;\n premiumPrice = 10;\n storageGbPrice = 4;\n additionalStorage = 0;\n\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, platformUtilsService: PlatformUtilsService,\n private tokenService: TokenService, private router: Router,\n private messagingService: MessagingService, private syncService: SyncService,\n private userService: UserService) {\n this.selfHosted = platformUtilsService.isSelfHost();\n }\n\n async ngOnInit() {\n this.canAccessPremium = await this.userService.canAccessPremium();\n const premium = await this.tokenService.getPremium();\n if (premium) {\n this.router.navigate(['/settings/subscription']);\n return;\n }\n }\n\n async submit() {\n let files: FileList = null;\n if (this.selfHosted) {\n const fileEl = document.getElementById('file') as HTMLInputElement;\n files = fileEl.files;\n if (files == null || files.length === 0) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectFile'));\n return;\n }\n }\n\n try {\n if (this.selfHosted) {\n if (!this.tokenService.getEmailVerified()) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('verifyEmailFirst'));\n return;\n }\n\n const fd = new FormData();\n fd.append('license', files[0]);\n this.formPromise = this.apiService.postAccountLicense(fd).then(() => {\n return this.finalizePremium();\n });\n } else {\n this.formPromise = this.paymentComponent.createPaymentToken().then(result => {\n const fd = new FormData();\n fd.append('paymentMethodType', result[1].toString());\n if (result[0] != null) {\n fd.append('paymentToken', result[0]);\n }\n fd.append('additionalStorageGb', (this.additionalStorage || 0).toString());\n fd.append('country', this.taxInfoComponent.taxInfo.country);\n fd.append('postalCode', this.taxInfoComponent.taxInfo.postalCode);\n return this.apiService.postPremium(fd);\n }).then(paymentResponse => {\n if (!paymentResponse.success && paymentResponse.paymentIntentClientSecret != null) {\n return this.paymentComponent.handleStripeCardPayment(paymentResponse.paymentIntentClientSecret,\n () => this.finalizePremium());\n } else {\n return this.finalizePremium();\n }\n });\n }\n await this.formPromise;\n } catch { }\n }\n\n async finalizePremium() {\n await this.apiService.refreshIdentityToken();\n await this.syncService.fullSync(true);\n this.toasterService.popAsync('success', null, this.i18nService.t('premiumUpdated'));\n this.messagingService.send('purchasedPremium');\n this.router.navigate(['/settings/subscription']);\n }\n\n get additionalStorageTotal(): number {\n return this.storageGbPrice * Math.abs(this.additionalStorage || 0);\n }\n\n get subtotal(): number {\n return this.premiumPrice + this.additionalStorageTotal;\n }\n\n get taxCharges(): number {\n return this.taxInfoComponent != null && this.taxInfoComponent.taxRate != null ?\n (this.taxInfoComponent.taxRate / 100) * this.subtotal :\n 0;\n }\n\n get total(): number {\n return (this.subtotal + this.taxCharges) || 0;\n }\n}\n","
\n

{{'goPremium' | i18n}}

\n
\n\n {{'alreadyPremiumFromOrg' | i18n}}\n\n\n

{{'premiumUpgradeUnlockFeatures' | i18n}}

\n
    \n
  • \n \n {{'premiumSignUpStorage' | i18n}}\n
  • \n
  • \n \n {{'premiumSignUpTwoStep' | i18n}}\n
  • \n
  • \n \n {{'premiumSignUpEmergency' |i18n}}\n
  • \n
  • \n \n {{'premiumSignUpReports' | i18n}}\n
  • \n
  • \n \n {{'premiumSignUpTotp' | i18n}}\n
  • \n
  • \n \n {{'premiumSignUpSupport' | i18n}}\n
  • \n
  • \n \n {{'premiumSignUpFuture' | i18n}}\n
  • \n
\n

{{'premiumPrice' | i18n : (premiumPrice | currency:'$')}}

\n \n {{'purchasePremium' | i18n}}\n \n
\n\n

{{'uploadLicenseFilePremium' | i18n}}

\n
\n
\n \n \n {{'licenseFileDesc' | i18n : 'bitwarden_premium_license.json'}}\n
\n \n
\n
\n
\n

{{'addons' | i18n}}

\n
\n
\n \n \n {{'additionalStorageIntervalDesc' | i18n : '1 GB' : (storageGbPrice | currency:'$') : ('year' | i18n)}}\n
\n
\n

{{'summary' | i18n}}

\n {{'premiumMembership' | i18n}}: {{premiumPrice | currency:'$'}}\n
{{'additionalStorageGb' | i18n}}: {{additionalStorage || 0}} GB × {{storageGbPrice | currency:'$'}} = {{additionalStorageTotal\n | currency:'$'}}\n
\n

{{'paymentInformation' | i18n}}

\n \n \n
\n
\n {{ 'planPrice' | i18n }}: {{ subtotal | currency: 'USD $' }}\n
\n \n {{ 'estimatedTax' | i18n }}: {{ taxCharges | currency: 'USD $' }}\n \n
\n
\n

{{'total' | i18n}}:\n {{total | currency:'USD $'}}/{{'year' | i18n}}

\n
\n {{'paymentChargedAnnually' | i18n}}\n \n
\n","import {\n Component,\n NgZone,\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { TokenService } from 'jslib/abstractions/token.service';\n\nimport { BroadcasterService } from 'jslib/angular/services/broadcaster.service';\n\nconst BroadcasterSubscriptionId = 'SettingsComponent';\n\n@Component({\n selector: 'app-settings',\n templateUrl: 'settings.component.html',\n})\nexport class SettingsComponent implements OnInit, OnDestroy {\n premium: boolean;\n selfHosted: boolean;\n\n constructor(private tokenService: TokenService, private broadcasterService: BroadcasterService,\n private ngZone: NgZone, private platformUtilsService: PlatformUtilsService) { }\n\n async ngOnInit() {\n this.broadcasterService.subscribe(BroadcasterSubscriptionId, async (message: any) => {\n this.ngZone.run(async () => {\n switch (message.command) {\n case 'purchasedPremium':\n await this.load();\n break;\n default:\n }\n });\n });\n\n this.selfHosted = await this.platformUtilsService.isSelfHost();\n await this.load();\n }\n\n ngOnDestroy() {\n this.broadcasterService.unsubscribe(BroadcasterSubscriptionId);\n }\n\n async load() {\n this.premium = await this.tokenService.getPremium();\n }\n}\n","\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { SubscriptionResponse } from 'jslib/models/response/subscriptionResponse';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { TokenService } from 'jslib/abstractions/token.service';\n\n@Component({\n selector: 'app-user-subscription',\n templateUrl: 'user-subscription.component.html',\n})\nexport class UserSubscriptionComponent implements OnInit {\n loading = false;\n firstLoaded = false;\n adjustStorageAdd = true;\n showAdjustStorage = false;\n showUpdateLicense = false;\n sub: SubscriptionResponse;\n selfHosted = false;\n\n cancelPromise: Promise;\n reinstatePromise: Promise;\n\n constructor(private tokenService: TokenService, private apiService: ApiService,\n private platformUtilsService: PlatformUtilsService, private i18nService: I18nService,\n private toasterService: ToasterService, private router: Router) {\n this.selfHosted = platformUtilsService.isSelfHost();\n }\n\n async ngOnInit() {\n await this.load();\n this.firstLoaded = true;\n }\n\n async load() {\n if (this.loading) {\n return;\n }\n\n if (this.tokenService.getPremium()) {\n this.loading = true;\n this.sub = await this.apiService.getUserSubscription();\n } else {\n this.router.navigate(['/settings/premium']);\n return;\n }\n\n this.loading = false;\n }\n\n async reinstate() {\n if (this.loading) {\n return;\n }\n\n if (this.usingInAppPurchase) {\n this.platformUtilsService.showDialog(this.i18nService.t('manageSubscriptionFromStore'),\n this.i18nService.t('cancelSubscription'), null, null, 'warning');\n return;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(this.i18nService.t('reinstateConfirmation'),\n this.i18nService.t('reinstateSubscription'), this.i18nService.t('yes'), this.i18nService.t('cancel'));\n if (!confirmed) {\n return;\n }\n\n try {\n this.reinstatePromise = this.apiService.postReinstatePremium();\n await this.reinstatePromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('reinstated'));\n this.load();\n } catch { }\n }\n\n async cancel() {\n if (this.loading) {\n return;\n }\n\n if (this.usingInAppPurchase) {\n this.platformUtilsService.showDialog(this.i18nService.t('manageSubscriptionFromStore'),\n this.i18nService.t('cancelSubscription'), null, null, 'warning');\n return;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(this.i18nService.t('cancelConfirmation'),\n this.i18nService.t('cancelSubscription'), this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return;\n }\n\n try {\n this.cancelPromise = this.apiService.postCancelPremium();\n await this.cancelPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('canceledSubscription'));\n this.load();\n } catch { }\n }\n\n downloadLicense() {\n if (this.loading) {\n return;\n }\n\n const licenseString = JSON.stringify(this.sub.license, null, 2);\n this.platformUtilsService.saveFile(window, licenseString, null, 'bitwarden_premium_license.json');\n }\n\n updateLicense() {\n if (this.loading) {\n return;\n }\n this.showUpdateLicense = true;\n }\n\n closeUpdateLicense(load: boolean) {\n this.showUpdateLicense = false;\n if (load) {\n this.load();\n }\n }\n\n adjustStorage(add: boolean) {\n if (this.usingInAppPurchase) {\n this.platformUtilsService.showDialog(this.i18nService.t('cannotPerformInAppPurchase'),\n this.i18nService.t(add ? 'addStorage' : 'removeStorage'), null, null, 'warning');\n return;\n }\n this.adjustStorageAdd = add;\n this.showAdjustStorage = true;\n }\n\n closeStorage(load: boolean) {\n this.showAdjustStorage = false;\n if (load) {\n this.load();\n }\n }\n\n get subscriptionMarkedForCancel() {\n return this.subscription != null && !this.subscription.cancelled && this.subscription.cancelAtEndDate;\n }\n\n get subscription() {\n return this.sub != null ? this.sub.subscription : null;\n }\n\n get nextInvoice() {\n return this.sub != null ? this.sub.upcomingInvoice : null;\n }\n\n get storagePercentage() {\n return this.sub != null && this.sub.maxStorageGb ?\n +(100 * (this.sub.storageGb / this.sub.maxStorageGb)).toFixed(2) : 0;\n }\n\n get storageProgressWidth() {\n return this.storagePercentage < 5 ? 5 : 0;\n }\n\n get usingInAppPurchase() {\n return this.sub != null ? this.sub.usingInAppPurchase : false;\n }\n}\n","
\n

\n {{'premiumMembership' | i18n}}\n \n \n {{'loading' | i18n}}\n \n

\n
\n\n \n {{'loading' | i18n}}\n\n\n \n {{'subscriptionCanceled' | i18n}}\n \n

{{'subscriptionPendingCanceled' | i18n}}

\n \n
\n
\n
{{'expiration' | i18n}}
\n
{{sub.expiration | date:'mediumDate'}}
\n
{{'neverExpires' | i18n}}
\n
\n
\n
\n
\n
{{'status' | i18n}}
\n
\n {{(subscription && subscription.status) || '-'}}\n {{'pendingCancellation' | i18n}}\n
\n
{{'nextCharge' | i18n}}
\n
{{nextInvoice ? ((nextInvoice.date | date: 'mediumDate') + ', ' + (nextInvoice.amount | currency:'$')) :\n '-'}}\n
\n
\n
\n
\n {{'details' | i18n}}\n \n \n \n \n \n \n \n
\n {{i.name}} {{i.quantity > 1 ? '×' + i.quantity : ''}} @ {{i.amount | currency:'$'}}\n \n {{(i.quantity * i.amount) | currency:'$'}} /{{i.interval | i18n}}\n
\n
\n
\n \n
\n \n \n {{'manageSubscription' | i18n}}\n \n
\n
\n
\n \n

{{'updateLicense' | i18n}}

\n \n \n
\n
\n
\n \n
\n \n \n
\n

{{'storage' | i18n}}

\n

{{'subscriptionStorage' | i18n : sub.maxStorageGb || 0 : sub.storageName || '0 MB'}}

\n
\n
\n {{(storagePercentage / 100) | percent}}
\n
\n \n
\n
\n \n \n
\n \n
\n
\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { AuditService } from 'jslib/abstractions/audit.service';\nimport { UserService } from 'jslib/abstractions/user.service';\nimport { BreachAccountResponse } from 'jslib/models/response/breachAccountResponse';\n\n@Component({\n selector: 'app-breach-report',\n templateUrl: 'breach-report.component.html',\n})\nexport class BreachReportComponent implements OnInit {\n error = false;\n username: string;\n checkedUsername: string;\n breachedAccounts: BreachAccountResponse[] = [];\n formPromise: Promise;\n\n constructor(private auditService: AuditService, private userService: UserService) { }\n\n async ngOnInit() {\n this.username = await this.userService.getEmail();\n }\n\n async submit() {\n this.error = false;\n this.username = this.username.toLowerCase();\n try {\n this.formPromise = this.auditService.breachedAccounts(this.username);\n this.breachedAccounts = await this.formPromise;\n } catch {\n this.error = true;\n }\n this.checkedUsername = this.username;\n }\n}\n","
\n

{{'dataBreachReport' | i18n}}

\n
\n

{{'breachDesc' | i18n}}

\n
\n
\n
\n \n \n {{'breachCheckUsernameEmail' | i18n}}\n
\n
\n \n
\n
\n

{{'reportError' | i18n}}...

\n \n \n {{'breachUsernameNotFound' | i18n : checkedUsername}}\n \n \n {{'breachUsernameFound' | i18n : checkedUsername : breachedAccounts.length}}\n \n
    \n
  • \n
    \n
    \n \"\"\n
    \n
    \n

    {{a.title}}

    \n

    \n

    {{'compromisedData' | i18n}}:

    \n
      \n
    • {{d}}
    • \n
    \n
    \n
    \n
    \n
    {{'website' | i18n}}
    \n
    {{a.domain}}
    \n
    {{'affectedUsers' | i18n}}
    \n
    {{a.pwnCount | number}}
    \n
    {{'breachOccurred' | i18n}}
    \n
    {{a.breachDate | date: 'mediumDate'}}
    \n
    {{'breachReported' | i18n}}
    \n
    {{a.addedDate | date: 'mediumDate'}}
    \n
    \n
    \n
    \n
  • \n
\n
\n
\n","import {\n Component,\n ComponentFactoryResolver,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport {\n PasswordGeneratorComponent as BasePasswordGeneratorComponent,\n} from 'jslib/angular/components/password-generator.component';\n\nimport { ModalComponent } from '../modal.component';\nimport { PasswordGeneratorHistoryComponent } from './password-generator-history.component';\n\n@Component({\n selector: 'app-password-generator',\n templateUrl: 'password-generator.component.html',\n})\nexport class PasswordGeneratorComponent extends BasePasswordGeneratorComponent {\n @ViewChild('historyTemplate', { read: ViewContainerRef, static: true }) historyModalRef: ViewContainerRef;\n\n private modal: ModalComponent = null;\n\n constructor(passwordGenerationService: PasswordGenerationService, platformUtilsService: PlatformUtilsService,\n i18nService: I18nService, private componentFactoryResolver: ComponentFactoryResolver) {\n super(passwordGenerationService, platformUtilsService, i18nService, window);\n }\n\n history() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.historyModalRef.createComponent(factory).instance;\n this.modal.show(PasswordGeneratorHistoryComponent, this.historyModalRef);\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n lengthChanged() {\n document.getElementById('length').focus();\n }\n\n minNumberChanged() {\n document.getElementById('min-number').focus();\n }\n\n minSpecialChanged() {\n document.getElementById('min-special').focus();\n }\n}\n","
\n

{{'passwordGenerator' | i18n}}

\n
\n\n {{'passwordGeneratorPolicyInEffect' | i18n}}\n\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n
\n \n \n
\n
\n \n
\n
\n\n","import { Component } from '@angular/core';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport {\n PasswordGeneratorHistoryComponent as BasePasswordGeneratorHistoryComponent,\n} from 'jslib/angular/components/password-generator-history.component';\n\n@Component({\n selector: 'app-password-generator-history',\n templateUrl: 'password-generator-history.component.html',\n})\nexport class PasswordGeneratorHistoryComponent extends BasePasswordGeneratorHistoryComponent {\n constructor(passwordGenerationService: PasswordGenerationService, platformUtilsService: PlatformUtilsService,\n i18nService: I18nService) {\n super(passwordGenerationService, platformUtilsService, i18nService, window);\n }\n}\n","
\n
\n
\n
\n

{{'passwordHistory' | i18n}}

\n \n
\n
    \n
  • \n
    \n
    \n {{h.date | date:'medium'}}\n
    \n
    \n \n
    \n
  • \n
\n
\n {{'noPasswordsInList' | i18n}}\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\n@Component({\n selector: 'app-tools',\n templateUrl: 'tools.component.html',\n})\nexport class ToolsComponent implements OnInit {\n canAccessPremium = false;\n\n constructor(private userService: UserService, private messagingService: MessagingService) { }\n\n async ngOnInit() {\n this.canAccessPremium = await this.userService.canAccessPremium();\n }\n\n premiumRequired() {\n if (!this.canAccessPremium) {\n this.messagingService.send('premiumRequired');\n return;\n }\n }\n}\n","\n","import {\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n NgZone,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { CipherType } from 'jslib/enums/cipherType';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { ModalComponent } from '../modal.component';\n\nimport { OrganizationsComponent } from '../settings/organizations.component';\nimport { UpdateKeyComponent } from '../settings/update-key.component';\nimport { AddEditComponent } from './add-edit.component';\nimport { AttachmentsComponent } from './attachments.component';\nimport { CiphersComponent } from './ciphers.component';\nimport { CollectionsComponent } from './collections.component';\nimport { FolderAddEditComponent } from './folder-add-edit.component';\nimport { GroupingsComponent } from './groupings.component';\nimport { ShareComponent } from './share.component';\n\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\nimport { TokenService } from 'jslib/abstractions/token.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { BroadcasterService } from 'jslib/angular/services/broadcaster.service';\n\nconst BroadcasterSubscriptionId = 'VaultComponent';\n\n@Component({\n selector: 'app-vault',\n templateUrl: 'vault.component.html',\n})\nexport class VaultComponent implements OnInit, OnDestroy {\n @ViewChild(GroupingsComponent, { static: true }) groupingsComponent: GroupingsComponent;\n @ViewChild(CiphersComponent, { static: true }) ciphersComponent: CiphersComponent;\n @ViewChild(OrganizationsComponent, { static: true }) organizationsComponent: OrganizationsComponent;\n @ViewChild('attachments', { read: ViewContainerRef, static: true }) attachmentsModalRef: ViewContainerRef;\n @ViewChild('folderAddEdit', { read: ViewContainerRef, static: true }) folderAddEditModalRef: ViewContainerRef;\n @ViewChild('cipherAddEdit', { read: ViewContainerRef, static: true }) cipherAddEditModalRef: ViewContainerRef;\n @ViewChild('share', { read: ViewContainerRef, static: true }) shareModalRef: ViewContainerRef;\n @ViewChild('collections', { read: ViewContainerRef, static: true }) collectionsModalRef: ViewContainerRef;\n @ViewChild('updateKeyTemplate', { read: ViewContainerRef, static: true }) updateKeyModalRef: ViewContainerRef;\n\n favorites: boolean = false;\n type: CipherType = null;\n folderId: string = null;\n collectionId: string = null;\n showVerifyEmail = false;\n showBrowserOutdated = false;\n showUpdateKey = false;\n showPremiumCallout = false;\n deleted: boolean = false;\n trashCleanupWarning: string = null;\n\n modal: ModalComponent = null;\n\n constructor(private syncService: SyncService, private route: ActivatedRoute,\n private router: Router, private changeDetectorRef: ChangeDetectorRef,\n private i18nService: I18nService, private componentFactoryResolver: ComponentFactoryResolver,\n private tokenService: TokenService, private cryptoService: CryptoService,\n private messagingService: MessagingService, private userService: UserService,\n private platformUtilsService: PlatformUtilsService, private broadcasterService: BroadcasterService,\n private ngZone: NgZone) { }\n\n async ngOnInit() {\n this.showVerifyEmail = !(await this.tokenService.getEmailVerified());\n this.showBrowserOutdated = window.navigator.userAgent.indexOf('MSIE') !== -1;\n this.trashCleanupWarning = this.i18nService.t(\n this.platformUtilsService.isSelfHost() ? 'trashCleanupWarningSelfHosted' : 'trashCleanupWarning'\n );\n\n const queryParamsSub = this.route.queryParams.subscribe(async params => {\n await this.syncService.fullSync(false);\n\n this.showUpdateKey = !(await this.cryptoService.hasEncKey());\n const canAccessPremium = await this.userService.canAccessPremium();\n this.showPremiumCallout = !this.showVerifyEmail && !canAccessPremium &&\n !this.platformUtilsService.isSelfHost();\n\n await Promise.all([\n this.groupingsComponent.load(),\n this.organizationsComponent.load(),\n ]);\n\n if (params == null) {\n this.groupingsComponent.selectedAll = true;\n await this.ciphersComponent.reload();\n } else {\n if (params.deleted) {\n this.groupingsComponent.selectedTrash = true;\n await this.filterDeleted();\n } else if (params.favorites) {\n this.groupingsComponent.selectedFavorites = true;\n await this.filterFavorites();\n } else if (params.type) {\n const t = parseInt(params.type, null);\n this.groupingsComponent.selectedType = t;\n await this.filterCipherType(t);\n } else if (params.folderId) {\n this.groupingsComponent.selectedFolder = true;\n this.groupingsComponent.selectedFolderId = params.folderId;\n await this.filterFolder(params.folderId);\n } else if (params.collectionId) {\n this.groupingsComponent.selectedCollectionId = params.collectionId;\n await this.filterCollection(params.collectionId);\n } else {\n this.groupingsComponent.selectedAll = true;\n await this.ciphersComponent.reload();\n }\n }\n\n this.broadcasterService.subscribe(BroadcasterSubscriptionId, (message: any) => {\n this.ngZone.run(async () => {\n switch (message.command) {\n case 'syncCompleted':\n if (message.successfully) {\n await Promise.all([\n this.groupingsComponent.load(),\n this.organizationsComponent.load(),\n this.ciphersComponent.load(this.ciphersComponent.filter),\n ]);\n this.changeDetectorRef.detectChanges();\n }\n break;\n }\n });\n });\n\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n }\n\n ngOnDestroy() {\n this.broadcasterService.unsubscribe(BroadcasterSubscriptionId);\n }\n\n async clearGroupingFilters() {\n this.ciphersComponent.showAddNew = true;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchVault');\n await this.ciphersComponent.reload();\n this.clearFilters();\n this.go();\n }\n\n async filterFavorites() {\n this.ciphersComponent.showAddNew = true;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchFavorites');\n await this.ciphersComponent.reload(c => c.favorite);\n this.clearFilters();\n this.favorites = true;\n this.go();\n }\n\n async filterDeleted() {\n this.ciphersComponent.showAddNew = false;\n this.ciphersComponent.deleted = true;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchTrash');\n await this.ciphersComponent.reload(null, true);\n this.clearFilters();\n this.deleted = true;\n this.go();\n }\n\n async filterCipherType(type: CipherType) {\n this.ciphersComponent.showAddNew = true;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchType');\n await this.ciphersComponent.reload(c => c.type === type);\n this.clearFilters();\n this.type = type;\n this.go();\n }\n\n async filterFolder(folderId: string) {\n this.ciphersComponent.showAddNew = true;\n folderId = folderId === 'none' ? null : folderId;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchFolder');\n await this.ciphersComponent.reload(c => c.folderId === folderId);\n this.clearFilters();\n this.folderId = folderId == null ? 'none' : folderId;\n this.go();\n }\n\n async filterCollection(collectionId: string) {\n this.ciphersComponent.showAddNew = true;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchCollection');\n await this.ciphersComponent.reload(c => c.collectionIds != null &&\n c.collectionIds.indexOf(collectionId) > -1);\n this.clearFilters();\n this.collectionId = collectionId;\n this.go();\n }\n\n filterSearchText(searchText: string) {\n this.ciphersComponent.searchText = searchText;\n this.ciphersComponent.search(200);\n }\n\n async editCipherAttachments(cipher: CipherView) {\n const canAccessPremium = await this.userService.canAccessPremium();\n if (cipher.organizationId == null && !canAccessPremium) {\n this.messagingService.send('premiumRequired');\n return;\n } else if (cipher.organizationId != null) {\n const org = await this.userService.getOrganization(cipher.organizationId);\n if (org != null && (org.maxStorageGb == null || org.maxStorageGb === 0)) {\n this.messagingService.send('upgradeOrganization', { organizationId: cipher.organizationId });\n return;\n }\n }\n\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.attachmentsModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(AttachmentsComponent, this.attachmentsModalRef);\n\n childComponent.cipherId = cipher.id;\n let madeAttachmentChanges = false;\n childComponent.onUploadedAttachment.subscribe(() => madeAttachmentChanges = true);\n childComponent.onDeletedAttachment.subscribe(() => madeAttachmentChanges = true);\n childComponent.onReuploadedAttachment.subscribe(() => madeAttachmentChanges = true);\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n if (madeAttachmentChanges) {\n await this.ciphersComponent.refresh();\n }\n madeAttachmentChanges = false;\n });\n }\n\n shareCipher(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.shareModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(ShareComponent, this.shareModalRef);\n\n childComponent.cipherId = cipher.id;\n childComponent.onSharedCipher.subscribe(async () => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n editCipherCollections(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.collectionsModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(CollectionsComponent, this.collectionsModalRef);\n\n childComponent.cipherId = cipher.id;\n childComponent.onSavedCollections.subscribe(async () => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n async addFolder() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.folderAddEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n FolderAddEditComponent, this.folderAddEditModalRef);\n\n childComponent.folderId = null;\n childComponent.onSavedFolder.subscribe(async () => {\n this.modal.close();\n await this.groupingsComponent.loadFolders();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n async editFolder(folderId: string) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.folderAddEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n FolderAddEditComponent, this.folderAddEditModalRef);\n\n childComponent.folderId = folderId;\n childComponent.onSavedFolder.subscribe(async () => {\n this.modal.close();\n await this.groupingsComponent.loadFolders();\n });\n childComponent.onDeletedFolder.subscribe(async () => {\n this.modal.close();\n await this.groupingsComponent.loadFolders();\n await this.filterFolder('none');\n this.groupingsComponent.selectedFolderId = null;\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n addCipher() {\n const component = this.editCipher(null);\n component.type = this.type;\n component.folderId = this.folderId === 'none' ? null : this.folderId;\n if (this.collectionId != null) {\n const collection = this.groupingsComponent.collections.filter(c => c.id === this.collectionId);\n if (collection.length > 0) {\n component.organizationId = collection[0].organizationId;\n component.collectionIds = [this.collectionId];\n }\n }\n }\n\n editCipher(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.cipherAddEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n AddEditComponent, this.cipherAddEditModalRef);\n\n childComponent.cipherId = cipher == null ? null : cipher.id;\n childComponent.onSavedCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n childComponent.onDeletedCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n childComponent.onRestoredCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n\n return childComponent;\n }\n\n cloneCipher(cipher: CipherView) {\n const component = this.editCipher(cipher);\n component.cloneMode = true;\n }\n\n updateKey() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.updateKeyModalRef.createComponent(factory).instance;\n this.modal.show(UpdateKeyComponent, this.updateKeyModalRef);\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n private clearFilters() {\n this.folderId = null;\n this.collectionId = null;\n this.favorites = false;\n this.type = null;\n this.deleted = false;\n }\n\n private go(queryParams: any = null) {\n if (queryParams == null) {\n queryParams = {\n favorites: this.favorites ? true : null,\n type: this.type,\n folderId: this.folderId,\n collectionId: this.collectionId,\n deleted: this.deleted ? true : null,\n };\n }\n\n this.router.navigate([], {\n relativeTo: this.route,\n queryParams: queryParams,\n replaceUrl: true,\n });\n }\n}\n","
\n
\n
\n \n \n
\n
\n
\n

\n {{'myVault' | i18n}}\n \n \n \n {{'loading' | i18n}}\n \n \n

\n
\n \n \n \n
\n
\n \n {{trashCleanupWarning}}\n \n \n \n
\n
\n
\n
\n {{'updateKeyTitle' | i18n}}\n
\n
\n

{{'updateEncryptionKeyShortDesc' | i18n}}

\n \n
\n
\n \n \n
\n
\n {{'updateBrowser' | i18n}}\n
\n
\n

{{'updateBrowserDesc' | i18n}}

\n \n {{'updateBrowser' | i18n}}\n \n
\n
\n
\n
\n {{'goPremium' | i18n}}\n
\n
\n

{{'premiumUpgradeUnlockFeatures' | i18n}}

\n \n {{'goPremium' | i18n}}\n \n
\n
\n
\n
\n {{'organizations' | i18n}}\n \n \n \n
\n
\n \n
\n
\n
\n
\n
\n\n\n\n\n\n\n","import { Component } from '@angular/core';\n\nimport {\n Toast,\n ToasterService,\n} from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\n\nimport { EncString } from 'jslib/models/domain/encString';\n\nimport { CipherWithIdRequest } from 'jslib/models/request/cipherWithIdRequest';\nimport { FolderWithIdRequest } from 'jslib/models/request/folderWithIdRequest';\nimport { UpdateKeyRequest } from 'jslib/models/request/updateKeyRequest';\n\n@Component({\n selector: 'app-update-key',\n templateUrl: 'update-key.component.html',\n})\nexport class UpdateKeyComponent {\n masterPassword: string;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, private cryptoService: CryptoService,\n private messagingService: MessagingService, private syncService: SyncService,\n private folderService: FolderService, private cipherService: CipherService) { }\n\n async submit() {\n const hasEncKey = await this.cryptoService.hasEncKey();\n if (hasEncKey) {\n return;\n }\n\n if (this.masterPassword == null || this.masterPassword === '') {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n try {\n this.formPromise = this.makeRequest().then(request => {\n return this.apiService.postAccountKey(request);\n });\n await this.formPromise;\n const toast: Toast = {\n type: 'success',\n title: this.i18nService.t('keyUpdated'),\n body: this.i18nService.t('logBackInOthersToo'),\n timeout: 15000,\n };\n this.toasterService.popAsync(toast);\n this.messagingService.send('logout');\n } catch { }\n }\n\n private async makeRequest(): Promise {\n const key = await this.cryptoService.getKey();\n const encKey = await this.cryptoService.makeEncKey(key);\n const privateKey = await this.cryptoService.getPrivateKey();\n let encPrivateKey: EncString = null;\n if (privateKey != null) {\n encPrivateKey = await this.cryptoService.encrypt(privateKey, encKey[0]);\n }\n const request = new UpdateKeyRequest();\n request.privateKey = encPrivateKey != null ? encPrivateKey.encryptedString : null;\n request.key = encKey[1].encryptedString;\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n\n await this.syncService.fullSync(true);\n\n const folders = await this.folderService.getAllDecrypted();\n for (let i = 0; i < folders.length; i++) {\n if (folders[i].id == null) {\n continue;\n }\n const folder = await this.folderService.encrypt(folders[i], encKey[0]);\n request.folders.push(new FolderWithIdRequest(folder));\n }\n\n const ciphers = await this.cipherService.getAllDecrypted();\n for (let i = 0; i < ciphers.length; i++) {\n if (ciphers[i].organizationId != null) {\n continue;\n }\n const cipher = await this.cipherService.encrypt(ciphers[i], encKey[0]);\n request.ciphers.push(new CipherWithIdRequest(cipher));\n }\n\n return request;\n }\n}\n","
\n
\n
\n
\n

{{'updateEncryptionKey' | i18n}}

\n \n
\n
\n

{{'updateEncryptionKeyShortDesc' | i18n}} {{'updateEncryptionKeyDesc' | i18n}}\n {{'learnMore' | i18n}}\n

\n {{'updateEncryptionKeyWarning' | i18n}}\n \n \n
\n
\n \n \n
\n
\n
\n
\n","import { Component } from '@angular/core';\n\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport {\n FolderAddEditComponent as BaseFolderAddEditComponent,\n} from 'jslib/angular/components/folder-add-edit.component';\n\n@Component({\n selector: 'app-folder-add-edit',\n templateUrl: 'folder-add-edit.component.html',\n})\nexport class FolderAddEditComponent extends BaseFolderAddEditComponent {\n constructor(folderService: FolderService, i18nService: I18nService,\n platformUtilsService: PlatformUtilsService) {\n super(folderService, i18nService, platformUtilsService);\n }\n}\n","
\n
\n
\n
\n

{{title}}

\n \n
\n
\n \n \n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n","import {\n Component,\n OnDestroy,\n} from '@angular/core';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CollectionView } from 'jslib/models/view/collectionView';\n\nimport { ShareComponent as BaseShareComponent } from 'jslib/angular/components/share.component';\n\n@Component({\n selector: 'app-vault-share',\n templateUrl: 'share.component.html',\n})\nexport class ShareComponent extends BaseShareComponent implements OnDestroy {\n constructor(collectionService: CollectionService, platformUtilsService: PlatformUtilsService,\n i18nService: I18nService, userService: UserService,\n cipherService: CipherService) {\n super(collectionService, platformUtilsService, i18nService, userService, cipherService);\n }\n\n ngOnDestroy() {\n this.selectAll(false);\n }\n\n check(c: CollectionView, select?: boolean) {\n (c as any).checked = select == null ? !(c as any).checked : select;\n }\n\n selectAll(select: boolean) {\n const collections = select ? this.collections : this.writeableCollections;\n collections.forEach(c => this.check(c, select));\n }\n}\n","
\n
\n
\n
\n

\n {{'share' | i18n}}\n {{cipher.name}}\n

\n \n
\n
\n {{'noOrganizationsList' | i18n}}\n
\n
\n

{{'shareDesc' | i18n}}

\n
\n \n \n
\n
\n

{{'collections' | i18n}}

\n
\n \n \n
\n
\n
\n {{'noCollectionsInList' | i18n}}\n
\n \n \n \n \n \n \n \n
\n \n \n {{c.name}}\n
\n
\n
\n \n \n {{'newOrganization' | i18n}}\n \n \n
\n
\n
\n
\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-send-info',\n templateUrl: 'send-info.component.html',\n})\nexport class SendInfoComponent { }\n","
\n \n
\n {{'sendVaultCardProductDesc' | i18n}}\n {{'sendVaultCardLearnMore' |\n i18n}},\n {{'sendVaultCardSee' | i18n}}\n {{'sendVaultCardHowItWorks' | i18n}},\n {{'sendVaultCardOr' | i18n}}\n {{'sendVaultCardTryItNow' | i18n}}.\n
\n
\n","import { Component } from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\n@Component({\n selector: 'app-verify-email',\n templateUrl: 'verify-email.component.html',\n})\nexport class VerifyEmailComponent {\n actionPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService) { }\n\n async send() {\n if (this.actionPromise != null) {\n return;\n }\n try {\n this.actionPromise = this.apiService.postAccountVerifyEmail();\n await this.actionPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('checkInboxForVerification'));\n } catch { }\n this.actionPromise = null;\n }\n}\n","
\n
\n {{'verifyEmail' | i18n}}\n
\n
\n

{{'verifyEmailDesc' | i18n}}

\n \n
\n
\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n Router,\n} from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\n@Injectable()\nexport class OrganizationGuardService implements CanActivate {\n constructor(private userService: UserService, private router: Router,\n private toasterService: ToasterService, private i18nService: I18nService) { }\n\n async canActivate(route: ActivatedRouteSnapshot) {\n const org = await this.userService.getOrganization(route.params.organizationId);\n if (org == null) {\n this.router.navigate(['/']);\n return false;\n }\n if (!org.isOwner && !org.enabled) {\n this.toasterService.popAsync('error', null, this.i18nService.t('organizationIsDisabled'));\n this.router.navigate(['/']);\n return false;\n }\n\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n Router,\n} from '@angular/router';\n\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { Permissions } from 'jslib/enums/permissions';\n\n@Injectable()\nexport class OrganizationTypeGuardService implements CanActivate {\n constructor(private userService: UserService, private router: Router) { }\n\n async canActivate(route: ActivatedRouteSnapshot) {\n const org = await this.userService.getOrganization(route.params.organizationId);\n const permissions = route.data == null ? null : route.data.permissions as Permissions[];\n\n if (\n (permissions.indexOf(Permissions.AccessBusinessPortal) !== -1 && org.canAccessBusinessPortal) ||\n (permissions.indexOf(Permissions.AccessEventLogs) !== -1 && org.canAccessEventLogs) ||\n (permissions.indexOf(Permissions.AccessImportExport) !== -1 && org.canAccessImportExport) ||\n (permissions.indexOf(Permissions.AccessReports) !== -1 && org.canAccessReports) ||\n (permissions.indexOf(Permissions.ManageAllCollections) !== -1 && org.canManageAllCollections) ||\n (permissions.indexOf(Permissions.ManageAssignedCollections) !== -1 && org.canManageAssignedCollections) ||\n (permissions.indexOf(Permissions.ManageGroups) !== -1 && org.canManageGroups) ||\n (permissions.indexOf(Permissions.ManageOrganization) !== -1 && org.isOwner) ||\n (permissions.indexOf(Permissions.ManagePolicies) !== -1 && org.canManagePolicies) ||\n (permissions.indexOf(Permissions.ManageUsers) !== -1 && org.canManageUsers)\n ) {\n return true;\n }\n\n this.router.navigate(['/organizations', org.id]);\n return false;\n }\n}\n","export enum Permissions {\n AccessBusinessPortal,\n AccessEventLogs,\n AccessImportExport,\n AccessReports,\n ManageAllCollections,\n ManageAssignedCollections,\n ManageGroups,\n ManageOrganization,\n ManagePolicies,\n ManageUsers,\n}\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n Router,\n RouterStateSnapshot,\n} from '@angular/router';\n\nimport { MessagingService } from '../../abstractions/messaging.service';\nimport { UserService } from '../../abstractions/user.service';\nimport { VaultTimeoutService } from '../../abstractions/vaultTimeout.service';\n\n@Injectable()\nexport class AuthGuardService implements CanActivate {\n constructor(private vaultTimeoutService: VaultTimeoutService, private userService: UserService,\n private router: Router, private messagingService: MessagingService) { }\n\n async canActivate(route: ActivatedRouteSnapshot, routerState: RouterStateSnapshot) {\n const isAuthed = await this.userService.isAuthenticated();\n if (!isAuthed) {\n this.messagingService.send('authBlocked');\n return false;\n }\n\n const locked = await this.vaultTimeoutService.isLocked();\n if (locked) {\n if (routerState != null) {\n this.messagingService.send('lockedUrl', { url: routerState.url });\n }\n this.router.navigate(['lock'], { queryParams: { promptBiometric: true }});\n return false;\n }\n\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n CanActivate,\n Router,\n} from '@angular/router';\n\nimport { UserService } from '../../abstractions/user.service';\nimport { VaultTimeoutService } from '../../abstractions/vaultTimeout.service';\n\n@Injectable()\nexport class LockGuardService implements CanActivate {\n constructor(private vaultTimeoutService: VaultTimeoutService, private userService: UserService,\n private router: Router) { }\n\n async canActivate() {\n const locked = await this.vaultTimeoutService.isLocked();\n if (!locked) {\n const isAuthed = await this.userService.isAuthenticated();\n if (!isAuthed) {\n this.router.navigate(['login']);\n } else {\n this.router.navigate(['vault']);\n }\n return false;\n }\n\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n CanActivate,\n Router,\n} from '@angular/router';\n\nimport { UserService } from '../../abstractions/user.service';\nimport { VaultTimeoutService } from '../../abstractions/vaultTimeout.service';\n\n@Injectable()\nexport class UnauthGuardService implements CanActivate {\n constructor(private vaultTimeoutService: VaultTimeoutService, private userService: UserService,\n private router: Router) { }\n\n async canActivate() {\n const isAuthed = await this.userService.isAuthenticated();\n if (isAuthed) {\n const locked = await this.vaultTimeoutService.isLocked();\n if (locked) {\n this.router.navigate(['lock']);\n } else {\n this.router.navigate(['vault']);\n }\n return false;\n }\n\n return true;\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\n\nimport { CipherData } from 'jslib/models/data';\nimport { Cipher, SymmetricCryptoKey } from 'jslib/models/domain';\nimport { EmergencyAccessViewResponse } from 'jslib/models/response/emergencyAccessResponse';\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { ModalComponent } from '../modal.component';\n\nimport { EmergencyAccessAttachmentsComponent } from './emergency-access-attachments.component';\nimport { EmergencyAddEditComponent } from './emergency-add-edit.component';\n\n@Component({\n selector: 'emergency-access-view',\n templateUrl: 'emergency-access-view.component.html',\n})\nexport class EmergencyAccessViewComponent implements OnInit {\n @ViewChild('cipherAddEdit', { read: ViewContainerRef, static: true }) cipherAddEditModalRef: ViewContainerRef;\n @ViewChild('attachments', { read: ViewContainerRef, static: true }) attachmentsModalRef: ViewContainerRef;\n\n id: string;\n ciphers: CipherView[] = [];\n\n private modal: ModalComponent = null;\n\n constructor(private cipherService: CipherService, private cryptoService: CryptoService,\n private componentFactoryResolver: ComponentFactoryResolver, private router: Router,\n private route: ActivatedRoute, private apiService: ApiService) { }\n\n ngOnInit() {\n this.route.params.subscribe(qParams => {\n if (qParams.id == null) {\n return this.router.navigate(['settings/emergency-access']);\n }\n\n this.id = qParams.id;\n\n this.load();\n });\n }\n\n selectCipher(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.cipherAddEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(EmergencyAddEditComponent, this.cipherAddEditModalRef);\n\n childComponent.cipherId = cipher == null ? null : cipher.id;\n childComponent.cipher = cipher;\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n\n return childComponent;\n }\n\n async load() {\n const response = await this.apiService.postEmergencyAccessView(this.id);\n this.ciphers = await this.getAllCiphers(response);\n }\n\n async viewAttachments(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.attachmentsModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(EmergencyAccessAttachmentsComponent, this.attachmentsModalRef);\n\n childComponent.cipher = cipher;\n childComponent.emergencyAccessId = this.id;\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n protected async getAllCiphers(response: EmergencyAccessViewResponse): Promise {\n const ciphers = response.ciphers;\n\n const decCiphers: CipherView[] = [];\n const oldKeyBuffer = await this.cryptoService.rsaDecrypt(response.keyEncrypted);\n const oldEncKey = new SymmetricCryptoKey(oldKeyBuffer);\n\n const promises: any[] = [];\n ciphers.forEach(cipherResponse => {\n const cipherData = new CipherData(cipherResponse);\n const cipher = new Cipher(cipherData);\n promises.push(cipher.decrypt(oldEncKey).then(c => decCiphers.push(c)));\n });\n\n await Promise.all(promises);\n decCiphers.sort(this.cipherService.getLocaleSortingFunction());\n\n return decCiphers;\n }\n}\n","
\n

{{'vault' | i18n}}

\n
\n
\n \n \n \n \n \n \n \n \n \n
\n \n \n {{c.name}}\n \n \n {{'shared' | i18n}}\n \n \n \n {{'attachments' | i18n}}\n \n
\n {{c.subTitle}}\n
\n \n
\n
\n
\n\n\n","import { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class EncryptedObject {\n iv: ArrayBuffer;\n data: ArrayBuffer;\n mac: ArrayBuffer;\n key: SymmetricCryptoKey;\n}\n","export class EnvironmentUrls {\n base: string;\n api: string;\n identity: string;\n events: string;\n}\n","export class GeneratedPasswordHistory {\n password: string;\n date: number;\n\n constructor(password: string, date: number) {\n this.password = password;\n this.date = date;\n }\n}\n","import { Component } from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { AttachmentView } from 'jslib/models/view/attachmentView';\n\nimport { AttachmentsComponent as BaseAttachmentsComponent } from 'jslib/angular/components/attachments.component';\n\n@Component({\n selector: 'emergency-access-attachments',\n templateUrl: '../vault/attachments.component.html',\n})\nexport class EmergencyAccessAttachmentsComponent extends BaseAttachmentsComponent {\n viewOnly = true;\n canAccessAttachments = true;\n\n constructor(cipherService: CipherService, i18nService: I18nService,\n cryptoService: CryptoService, userService: UserService,\n platformUtilsService: PlatformUtilsService, apiService: ApiService) {\n super(cipherService, i18nService, cryptoService, userService, platformUtilsService, apiService, window);\n }\n\n protected async init() {\n // Do nothing since cipher is already decoded\n }\n\n protected showFixOldAttachments(attachment: AttachmentView) {\n return false;\n }\n}\n","import { Component } from '@angular/core';\n\nimport { AuditService } from 'jslib/abstractions/audit.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { EventService } from 'jslib/abstractions/event.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { TotpService } from 'jslib/abstractions/totp.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { Cipher } from 'jslib/models/domain/cipher';\n\nimport { AddEditComponent as BaseAddEditComponent } from '../vault/add-edit.component';\n\n@Component({\n selector: 'app-org-vault-add-edit',\n templateUrl: '../vault/add-edit.component.html',\n})\nexport class EmergencyAddEditComponent extends BaseAddEditComponent {\n originalCipher: Cipher = null;\n viewOnly = true;\n\n constructor(cipherService: CipherService, folderService: FolderService,\n i18nService: I18nService, platformUtilsService: PlatformUtilsService,\n auditService: AuditService, stateService: StateService,\n userService: UserService, collectionService: CollectionService,\n totpService: TotpService, passwordGenerationService: PasswordGenerationService,\n messagingService: MessagingService, eventService: EventService, policyService: PolicyService) {\n super(cipherService, folderService, i18nService, platformUtilsService, auditService, stateService,\n userService, collectionService, totpService, passwordGenerationService, messagingService,\n eventService, policyService);\n }\n\n async load() {\n this.title = this.i18nService.t('viewItem');\n }\n\n protected async loadCipher() {\n return Promise.resolve(this.originalCipher);\n }\n}\n","import { Component, ComponentFactoryResolver, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { EmergencyAccessStatusType } from 'jslib/enums/emergencyAccessStatusType';\nimport { EmergencyAccessType } from 'jslib/enums/emergencyAccessType';\nimport { Utils } from 'jslib/misc/utils';\nimport { EmergencyAccessConfirmRequest } from 'jslib/models/request/emergencyAccessConfirmRequest';\nimport { EmergencyAccessGranteeDetailsResponse, EmergencyAccessGrantorDetailsResponse } from 'jslib/models/response/emergencyAccessResponse';\nimport { ConstantsService } from 'jslib/services/constants.service';\n\nimport { ModalComponent } from '../modal.component';\nimport { EmergencyAccessAddEditComponent } from './emergency-access-add-edit.component';\nimport { EmergencyAccessConfirmComponent } from './emergency-access-confirm.component';\nimport { EmergencyAccessTakeoverComponent } from './emergency-access-takeover.component';\n\n@Component({\n selector: 'emergency-access',\n templateUrl: 'emergency-access.component.html',\n})\nexport class EmergencyAccessComponent implements OnInit {\n @ViewChild('addEdit', { read: ViewContainerRef, static: true }) addEditModalRef: ViewContainerRef;\n @ViewChild('takeoverTemplate', { read: ViewContainerRef, static: true}) takeoverModalRef: ViewContainerRef;\n @ViewChild('confirmTemplate', { read: ViewContainerRef, static: true }) confirmModalRef: ViewContainerRef;\n\n canAccessPremium: boolean;\n trustedContacts: EmergencyAccessGranteeDetailsResponse[];\n grantedContacts: EmergencyAccessGrantorDetailsResponse[];\n emergencyAccessType = EmergencyAccessType;\n emergencyAccessStatusType = EmergencyAccessStatusType;\n actionPromise: Promise;\n isOrganizationOwner: boolean;\n\n private modal: ModalComponent = null;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private componentFactoryResolver: ComponentFactoryResolver,\n private platformUtilsService: PlatformUtilsService,\n private toasterService: ToasterService, private cryptoService: CryptoService,\n private storageService: StorageService, private userService: UserService,\n private messagingService: MessagingService) { }\n\n async ngOnInit() {\n this.canAccessPremium = await this.userService.canAccessPremium();\n const orgs = await this.userService.getAllOrganizations();\n this.isOrganizationOwner = orgs.some(o => o.isOwner);\n this.load();\n }\n\n async load() {\n this.trustedContacts = (await this.apiService.getEmergencyAccessTrusted()).data;\n this.grantedContacts = (await this.apiService.getEmergencyAccessGranted()).data;\n }\n\n async premiumRequired() {\n if (!this.canAccessPremium) {\n this.messagingService.send('premiumRequired');\n return;\n }\n }\n\n edit(details: EmergencyAccessGranteeDetailsResponse) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.addEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n EmergencyAccessAddEditComponent, this.addEditModalRef);\n\n childComponent.name = details?.name ?? details?.email;\n childComponent.emergencyAccessId = details?.id;\n childComponent.readOnly = !this.canAccessPremium;\n childComponent.onSaved.subscribe(() => {\n this.modal.close();\n this.load();\n });\n childComponent.onDeleted.subscribe(() => {\n this.modal.close();\n this.remove(details);\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n invite() {\n this.edit(null);\n }\n\n async reinvite(contact: EmergencyAccessGranteeDetailsResponse) {\n if (this.actionPromise != null) {\n return;\n }\n this.actionPromise = this.apiService.postEmergencyAccessReinvite(contact.id);\n await this.actionPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('hasBeenReinvited', contact.email));\n this.actionPromise = null;\n }\n\n async confirm(contact: EmergencyAccessGranteeDetailsResponse) {\n function updateUser() {\n contact.status = EmergencyAccessStatusType.Confirmed;\n }\n\n if (this.actionPromise != null) {\n return;\n }\n\n const autoConfirm = await this.storageService.get(ConstantsService.autoConfirmFingerprints);\n if (autoConfirm == null || !autoConfirm) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.confirmModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n EmergencyAccessConfirmComponent, this.confirmModalRef);\n\n childComponent.name = contact?.name ?? contact?.email;\n childComponent.emergencyAccessId = contact.id;\n childComponent.userId = contact?.granteeId;\n childComponent.onConfirmed.subscribe(async () => {\n this.modal.close();\n\n childComponent.formPromise = this.doConfirmation(contact);\n await childComponent.formPromise;\n\n updateUser();\n this.toasterService.popAsync('success', null, this.i18nService.t('hasBeenConfirmed', contact.name || contact.email));\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n return;\n }\n\n this.actionPromise = this.doConfirmation(contact);\n await this.actionPromise;\n updateUser();\n\n this.toasterService.popAsync('success', null, this.i18nService.t('hasBeenConfirmed', contact.name || contact.email));\n this.actionPromise = null;\n }\n\n async remove(details: EmergencyAccessGranteeDetailsResponse | EmergencyAccessGrantorDetailsResponse) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('removeUserConfirmation'), details.name || details.email,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n await this.apiService.deleteEmergencyAccess(details.id);\n this.toasterService.popAsync('success', null, this.i18nService.t('removedUserId', details.name || details.email));\n\n if (details instanceof EmergencyAccessGranteeDetailsResponse) {\n this.removeGrantee(details);\n } else {\n this.removeGrantor(details);\n }\n } catch { }\n }\n\n async requestAccess(details: EmergencyAccessGrantorDetailsResponse) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('requestAccessConfirmation', details.waitTimeDays.toString()),\n details.name || details.email,\n this.i18nService.t('requestAccess'),\n this.i18nService.t('no'),\n 'warning',\n );\n\n if (!confirmed) {\n return false;\n }\n\n await this.apiService.postEmergencyAccessInitiate(details.id);\n\n details.status = EmergencyAccessStatusType.RecoveryInitiated;\n this.toasterService.popAsync('success', null, this.i18nService.t('requestSent', details.name || details.email));\n }\n\n async approve(details: EmergencyAccessGranteeDetailsResponse) {\n const type = this.i18nService.t(details.type === EmergencyAccessType.View ? 'view' : 'takeover');\n\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('approveAccessConfirmation', details.name || details.email, type),\n details.name || details.email,\n this.i18nService.t('approve'),\n this.i18nService.t('no'),\n 'warning',\n );\n\n if (!confirmed) {\n return false;\n }\n\n await this.apiService.postEmergencyAccessApprove(details.id);\n details.status = EmergencyAccessStatusType.RecoveryApproved;\n\n this.toasterService.popAsync('success', null, this.i18nService.t('emergencyApproved', details.name || details.email));\n }\n\n async reject(details: EmergencyAccessGranteeDetailsResponse) {\n await this.apiService.postEmergencyAccessReject(details.id);\n details.status = EmergencyAccessStatusType.Confirmed;\n\n this.toasterService.popAsync('success', null, this.i18nService.t('emergencyRejected', details.name || details.email));\n }\n\n async takeover(details: EmergencyAccessGrantorDetailsResponse) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.addEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n EmergencyAccessTakeoverComponent, this.takeoverModalRef);\n\n childComponent.name = details != null ? details.name || details.email : null;\n childComponent.email = details.email;\n childComponent.emergencyAccessId = details != null ? details.id : null;\n\n childComponent.onDone.subscribe(() => {\n this.modal.close();\n this.toasterService.popAsync('success', null, this.i18nService.t('passwordResetFor', details.name || details.email));\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n private removeGrantee(details: EmergencyAccessGranteeDetailsResponse) {\n const index = this.trustedContacts.indexOf(details);\n if (index > -1) {\n this.trustedContacts.splice(index, 1);\n }\n }\n\n private removeGrantor(details: EmergencyAccessGrantorDetailsResponse) {\n const index = this.grantedContacts.indexOf(details);\n if (index > -1) {\n this.grantedContacts.splice(index, 1);\n }\n }\n\n // Encrypt the master password hash using the grantees public key, and send it to bitwarden for escrow.\n private async doConfirmation(details: EmergencyAccessGranteeDetailsResponse) {\n const encKey = await this.cryptoService.getEncKey();\n const publicKeyResponse = await this.apiService.getUserPublicKey(details.granteeId);\n const publicKey = Utils.fromB64ToArray(publicKeyResponse.publicKey);\n\n try {\n // tslint:disable-next-line\n console.log('User\\'s fingerprint: ' +\n (await this.cryptoService.getFingerprint(details.granteeId, publicKey.buffer)).join('-'));\n } catch { }\n\n const encryptedKey = await this.cryptoService.rsaEncrypt(encKey.key, publicKey.buffer);\n const request = new EmergencyAccessConfirmRequest();\n request.key = encryptedKey.encryptedString;\n await this.apiService.postEmergencyAccessConfirm(details.id, request);\n }\n}\n","
\n

{{'emergencyAccess' | i18n}}

\n
\n

\n {{'emergencyAccessDesc' | i18n}}\n \n {{'learnMore' | i18n}}.\n \n

\n\n

\n {{'warning' | i18n }}: {{'emergencyAccessOwnerWarning' | i18n}}\n

\n\n
\n

\n {{'trustedEmergencyContacts' | i18n}}\n \n {{'premium' | i18n}}\n \n

\n
\n \n
\n
\n\n\n \n \n \n \n \n \n \n
\n \n \n {{c.email}}\n {{'invited' | i18n}}\n {{'accepted' | i18n}}\n {{'emergencyAccessRecoveryInitiated' | i18n}}\n {{'emergencyAccessRecoveryApproved' | i18n}}\n \n {{'view' | i18n}}\n {{'takeover' | i18n}}\n\n {{c.name}}\n \n \n
\n\n

{{'noTrustedContacts' | i18n}}

\n\n
\n

{{'designatedEmergencyContacts' | i18n}}

\n
\n\n\n \n \n \n \n \n \n \n
\n \n \n {{c.email}}\n {{'invited' | i18n}}\n {{'accepted' | i18n}}\n {{'emergencyAccessRecoveryInitiated' | i18n}}\n {{'emergencyAccessRecoveryApproved' | i18n}}\n \n {{'view' | i18n}}\n {{'takeover' | i18n}}\n\n {{c.name}}\n \n \n
\n\n

{{'noGrantedAccess' | i18n}}

\n\n\n\n\n","export enum EmergencyAccessType\n{\n View = 0,\n Takeover = 1,\n}\n","import { EmergencyAccessStatusType } from '../../enums/emergencyAccessStatusType';\nimport { EmergencyAccessType } from '../../enums/emergencyAccessType';\nimport { KdfType } from '../../enums/kdfType';\nimport { BaseResponse } from './baseResponse';\nimport { CipherResponse } from './cipherResponse';\n\nexport class EmergencyAccessGranteeDetailsResponse extends BaseResponse {\n id: string;\n granteeId: string;\n name: string;\n email: string;\n type: EmergencyAccessType;\n status: EmergencyAccessStatusType;\n waitTimeDays: number;\n creationDate: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.granteeId = this.getResponseProperty('GranteeId');\n this.name = this.getResponseProperty('Name');\n this.email = this.getResponseProperty('Email');\n this.type = this.getResponseProperty('Type');\n this.status = this.getResponseProperty('Status');\n this.waitTimeDays = this.getResponseProperty('WaitTimeDays');\n this.creationDate = this.getResponseProperty('CreationDate');\n }\n}\n\nexport class EmergencyAccessGrantorDetailsResponse extends BaseResponse {\n id: string;\n grantorId: string;\n name: string;\n email: string;\n type: EmergencyAccessType;\n status: EmergencyAccessStatusType;\n waitTimeDays: number;\n creationDate: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.grantorId = this.getResponseProperty('GrantorId');\n this.name = this.getResponseProperty('Name');\n this.email = this.getResponseProperty('Email');\n this.type = this.getResponseProperty('Type');\n this.status = this.getResponseProperty('Status');\n this.waitTimeDays = this.getResponseProperty('WaitTimeDays');\n this.creationDate = this.getResponseProperty('CreationDate');\n }\n}\n\nexport class EmergencyAccessTakeoverResponse extends BaseResponse {\n keyEncrypted: string;\n kdf: KdfType;\n kdfIterations: number;\n\n constructor(response: any) {\n super(response);\n\n this.keyEncrypted = this.getResponseProperty('KeyEncrypted');\n this.kdf = this.getResponseProperty('Kdf');\n this.kdfIterations = this.getResponseProperty('KdfIterations');\n }\n}\n\nexport class EmergencyAccessViewResponse extends BaseResponse {\n keyEncrypted: string;\n ciphers: CipherResponse[] = [];\n\n constructor(response: any) {\n super(response);\n\n this.keyEncrypted = this.getResponseProperty('KeyEncrypted');\n\n const ciphers = this.getResponseProperty('Ciphers');\n if (ciphers != null) {\n this.ciphers = ciphers.map((c: any) => new CipherResponse(c));\n }\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { EmergencyAccessType } from 'jslib/enums/emergencyAccessType';\nimport { EmergencyAccessInviteRequest } from 'jslib/models/request/emergencyAccessInviteRequest';\nimport { EmergencyAccessUpdateRequest } from 'jslib/models/request/emergencyAccessUpdateRequest';\n\n@Component({\n selector: 'emergency-access-add-edit',\n templateUrl: 'emergency-access-add-edit.component.html',\n})\nexport class EmergencyAccessAddEditComponent implements OnInit {\n @Input() name: string;\n @Input() emergencyAccessId: string;\n @Output() onSaved = new EventEmitter();\n @Output() onDeleted = new EventEmitter();\n\n loading = true;\n readOnly: boolean = false;\n editMode: boolean = false;\n title: string;\n email: string;\n type: EmergencyAccessType = EmergencyAccessType.View;\n\n formPromise: Promise;\n\n emergencyAccessType = EmergencyAccessType;\n waitTimes: { name: string; value: number; }[];\n waitTime: number;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService) { }\n\n async ngOnInit() {\n this.editMode = this.loading = this.emergencyAccessId != null;\n\n this.waitTimes = [\n { name: this.i18nService.t('oneDay'), value: 1 },\n { name: this.i18nService.t('days', '2'), value: 2 },\n { name: this.i18nService.t('days', '7'), value: 7 },\n { name: this.i18nService.t('days', '14'), value: 14 },\n { name: this.i18nService.t('days', '30'), value: 30 },\n { name: this.i18nService.t('days', '90'), value: 90 },\n ];\n\n if (this.editMode) {\n this.editMode = true;\n this.title = this.i18nService.t('editEmergencyContact');\n try {\n const emergencyAccess = await this.apiService.getEmergencyAccess(this.emergencyAccessId);\n this.type = emergencyAccess.type;\n this.waitTime = emergencyAccess.waitTimeDays;\n } catch { }\n } else {\n this.title = this.i18nService.t('inviteEmergencyContact');\n this.waitTime = this.waitTimes[2].value;\n }\n\n this.loading = false;\n }\n\n async submit() {\n try {\n if (this.editMode) {\n const request = new EmergencyAccessUpdateRequest();\n request.type = this.type;\n request.waitTimeDays = this.waitTime;\n\n this.formPromise = this.apiService.putEmergencyAccess(this.emergencyAccessId, request);\n } else {\n const request = new EmergencyAccessInviteRequest();\n request.email = this.email.trim();\n request.type = this.type;\n request.waitTimeDays = this.waitTime;\n\n this.formPromise = this.apiService.postEmergencyAccessInvite(request);\n }\n\n await this.formPromise;\n this.toasterService.popAsync('success', null,\n this.i18nService.t(this.editMode ? 'editedUserId' : 'invitedUsers', this.name));\n this.onSaved.emit();\n } catch { }\n }\n\n async delete() {\n this.onDeleted.emit();\n }\n}\n","
\n
\n
\n
\n

\n {{'premium' | i18n}}\n {{title}}\n {{name}}\n

\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n \n

{{'inviteEmergencyContactDesc' | i18n}}

\n
\n \n \n
\n
\n

\n {{'userAccess' | i18n}}\n \n \n \n

\n
\n \n \n
\n
\n \n \n
\n
\n \n \n {{'waitTimeDesc' | i18n}}\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ConstantsService } from 'jslib/services/constants.service';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\n\nimport { Utils } from 'jslib/misc/utils';\n\n@Component({\n selector: 'emergency-access-confirm',\n templateUrl: 'emergency-access-confirm.component.html',\n})\nexport class EmergencyAccessConfirmComponent implements OnInit {\n @Input() name: string;\n @Input() userId: string;\n @Input() emergencyAccessId: string;\n @Input() formPromise: Promise;\n @Output() onConfirmed = new EventEmitter();\n\n dontAskAgain = false;\n loading = true;\n fingerprint: string;\n\n constructor(private apiService: ApiService, private cryptoService: CryptoService,\n private storageService: StorageService) { }\n\n async ngOnInit() {\n try {\n const publicKeyResponse = await this.apiService.getUserPublicKey(this.userId);\n if (publicKeyResponse != null) {\n const publicKey = Utils.fromB64ToArray(publicKeyResponse.publicKey);\n const fingerprint = await this.cryptoService.getFingerprint(this.userId, publicKey.buffer);\n if (fingerprint != null) {\n this.fingerprint = fingerprint.join('-');\n }\n }\n } catch { }\n this.loading = false;\n }\n\n async submit() {\n if (this.loading) {\n return;\n }\n\n if (this.dontAskAgain) {\n await this.storageService.save(ConstantsService.autoConfirmFingerprints, true);\n }\n\n try {\n this.onConfirmed.emit();\n } catch { }\n }\n}\n","
\n
\n
\n
\n

\n {{'confirmUser' | i18n}}\n {{name}}\n

\n \n
\n
\n

\n {{'fingerprintEnsureIntegrityVerify' | i18n}}\n \n {{'learnMore' | i18n}}\n

\n

{{fingerprint}}

\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { UserService } from 'jslib/abstractions/user.service';\nimport { ChangePasswordComponent } from 'jslib/angular/components/change-password.component';\n\nimport { KdfType } from 'jslib/enums/kdfType';\nimport { PolicyData } from 'jslib/models/data/policyData';\nimport { Policy } from 'jslib/models/domain/policy';\nimport { SymmetricCryptoKey } from 'jslib/models/domain/symmetricCryptoKey';\nimport { EmergencyAccessPasswordRequest } from 'jslib/models/request/emergencyAccessPasswordRequest';\nimport { ListResponse } from 'jslib/models/response';\nimport { EmergencyAccessTakeoverResponse } from 'jslib/models/response/emergencyAccessResponse';\nimport { PolicyResponse } from 'jslib/models/response/policyResponse';\n\n@Component({\n selector: 'emergency-access-takeover',\n templateUrl: 'emergency-access-takeover.component.html',\n})\nexport class EmergencyAccessTakeoverComponent extends ChangePasswordComponent implements OnInit {\n @Output() onDone = new EventEmitter();\n @Input() emergencyAccessId: string;\n @Input() name: string;\n @Input() email: string;\n @Input() kdf: KdfType;\n @Input() kdfIterations: number;\n\n formPromise: Promise;\n\n constructor(i18nService: I18nService, cryptoService: CryptoService,\n messagingService: MessagingService, userService: UserService,\n passwordGenerationService: PasswordGenerationService,\n platformUtilsService: PlatformUtilsService, policyService: PolicyService,\n private apiService: ApiService, private toasterService: ToasterService) {\n super(i18nService, cryptoService, messagingService, userService, passwordGenerationService,\n platformUtilsService, policyService);\n }\n\n async ngOnInit() {\n const response = await this.apiService.getEmergencyGrantorPolicies(this.emergencyAccessId);\n if (response.data != null && response.data.length > 0) {\n const policies = response.data.map((policyResponse: PolicyResponse) => new Policy(new PolicyData(policyResponse)));\n this.enforcedPolicyOptions = await this.policyService.getMasterPasswordPolicyOptions(policies);\n }\n }\n\n async submit() {\n if (!await this.strongPassword()) {\n return;\n }\n\n const takeoverResponse = await this.apiService.postEmergencyAccessTakeover(this.emergencyAccessId);\n\n const oldKeyBuffer = await this.cryptoService.rsaDecrypt(takeoverResponse.keyEncrypted);\n const oldEncKey = new SymmetricCryptoKey(oldKeyBuffer);\n\n if (oldEncKey == null) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'), this.i18nService.t('unexpectedError'));\n return;\n }\n\n const key = await this.cryptoService.makeKey(this.masterPassword, this.email, takeoverResponse.kdf, takeoverResponse.kdfIterations);\n const masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, key);\n\n const encKey = await this.cryptoService.remakeEncKey(key, oldEncKey);\n\n const request = new EmergencyAccessPasswordRequest();\n request.newMasterPasswordHash = masterPasswordHash;\n request.key = encKey[1].encryptedString;\n\n this.apiService.postEmergencyAccessPassword(this.emergencyAccessId, request);\n\n try {\n this.onDone.emit();\n } catch { }\n }\n}\n","
\n
\n
\n
\n

\n {{'takeover' | i18n}}\n {{name}}\n

\n \n
\n
\n {{'loggedOutWarning' | i18n}}\n \n {{'masterPasswordPolicyInEffect' | i18n}}\n
    \n
  • 0\">\n {{'policyInEffectMinComplexity' | i18n : getPasswordScoreAlertDisplay()}}\n
  • \n
  • 0\">\n {{'policyInEffectMinLength' | i18n : enforcedPolicyOptions?.minLength.toString()}}\n
  • \n
  • \n {{'policyInEffectUppercase' | i18n}}
  • \n
  • \n {{'policyInEffectLowercase' | i18n}}
  • \n
  • \n {{'policyInEffectNumbers' | i18n}}
  • \n
  • \n {{'policyInEffectSpecial' | i18n : '!@#$%^&*'}}
  • \n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n","import { DeviceType } from '../enums/deviceType';\nimport { PolicyType } from '../enums/policyType';\n\nimport { ApiService as ApiServiceAbstraction } from '../abstractions/api.service';\nimport { PlatformUtilsService } from '../abstractions/platformUtils.service';\nimport { TokenService } from '../abstractions/token.service';\n\nimport { EnvironmentUrls } from '../models/domain/environmentUrls';\n\nimport { AttachmentRequest } from '../models/request/attachmentRequest';\nimport { BitPayInvoiceRequest } from '../models/request/bitPayInvoiceRequest';\nimport { CipherBulkDeleteRequest } from '../models/request/cipherBulkDeleteRequest';\nimport { CipherBulkMoveRequest } from '../models/request/cipherBulkMoveRequest';\nimport { CipherBulkShareRequest } from '../models/request/cipherBulkShareRequest';\nimport { CipherCollectionsRequest } from '../models/request/cipherCollectionsRequest';\nimport { CipherCreateRequest } from '../models/request/cipherCreateRequest';\nimport { CipherRequest } from '../models/request/cipherRequest';\nimport { CipherShareRequest } from '../models/request/cipherShareRequest';\nimport { CollectionRequest } from '../models/request/collectionRequest';\nimport { DeleteRecoverRequest } from '../models/request/deleteRecoverRequest';\nimport { EmailRequest } from '../models/request/emailRequest';\nimport { EmailTokenRequest } from '../models/request/emailTokenRequest';\nimport { EmergencyAccessAcceptRequest } from '../models/request/emergencyAccessAcceptRequest';\nimport { EmergencyAccessConfirmRequest } from '../models/request/emergencyAccessConfirmRequest';\nimport { EmergencyAccessInviteRequest } from '../models/request/emergencyAccessInviteRequest';\nimport { EmergencyAccessPasswordRequest } from '../models/request/emergencyAccessPasswordRequest';\nimport { EmergencyAccessUpdateRequest } from '../models/request/emergencyAccessUpdateRequest';\nimport { EventRequest } from '../models/request/eventRequest';\nimport { FolderRequest } from '../models/request/folderRequest';\nimport { GroupRequest } from '../models/request/groupRequest';\nimport { IapCheckRequest } from '../models/request/iapCheckRequest';\nimport { ImportCiphersRequest } from '../models/request/importCiphersRequest';\nimport { ImportDirectoryRequest } from '../models/request/importDirectoryRequest';\nimport { ImportOrganizationCiphersRequest } from '../models/request/importOrganizationCiphersRequest';\nimport { KdfRequest } from '../models/request/kdfRequest';\nimport { KeysRequest } from '../models/request/keysRequest';\nimport { OrganizationCreateRequest } from '../models/request/organizationCreateRequest';\nimport { OrganizationTaxInfoUpdateRequest } from '../models/request/organizationTaxInfoUpdateRequest';\nimport { OrganizationUpdateRequest } from '../models/request/organizationUpdateRequest';\nimport { OrganizationUpgradeRequest } from '../models/request/organizationUpgradeRequest';\nimport { OrganizationUserAcceptRequest } from '../models/request/organizationUserAcceptRequest';\nimport { OrganizationUserConfirmRequest } from '../models/request/organizationUserConfirmRequest';\nimport { OrganizationUserInviteRequest } from '../models/request/organizationUserInviteRequest';\nimport { OrganizationUserResetPasswordEnrollmentRequest } from '../models/request/organizationUserResetPasswordEnrollmentRequest';\nimport { OrganizationUserUpdateGroupsRequest } from '../models/request/organizationUserUpdateGroupsRequest';\nimport { OrganizationUserUpdateRequest } from '../models/request/organizationUserUpdateRequest';\nimport { PasswordHintRequest } from '../models/request/passwordHintRequest';\nimport { PasswordRequest } from '../models/request/passwordRequest';\nimport { PasswordVerificationRequest } from '../models/request/passwordVerificationRequest';\nimport { PaymentRequest } from '../models/request/paymentRequest';\nimport { PolicyRequest } from '../models/request/policyRequest';\nimport { PreloginRequest } from '../models/request/preloginRequest';\nimport { RegisterRequest } from '../models/request/registerRequest';\nimport { SeatRequest } from '../models/request/seatRequest';\nimport { SelectionReadOnlyRequest } from '../models/request/selectionReadOnlyRequest';\nimport { SendAccessRequest } from '../models/request/sendAccessRequest';\nimport { SendRequest } from '../models/request/sendRequest';\nimport { SetPasswordRequest } from '../models/request/setPasswordRequest';\nimport { StorageRequest } from '../models/request/storageRequest';\nimport { TaxInfoUpdateRequest } from '../models/request/taxInfoUpdateRequest';\nimport { TokenRequest } from '../models/request/tokenRequest';\nimport { TwoFactorEmailRequest } from '../models/request/twoFactorEmailRequest';\nimport { TwoFactorProviderRequest } from '../models/request/twoFactorProviderRequest';\nimport { TwoFactorRecoveryRequest } from '../models/request/twoFactorRecoveryRequest';\nimport { UpdateDomainsRequest } from '../models/request/updateDomainsRequest';\nimport { UpdateKeyRequest } from '../models/request/updateKeyRequest';\nimport { UpdateProfileRequest } from '../models/request/updateProfileRequest';\nimport { UpdateTwoFactorAuthenticatorRequest } from '../models/request/updateTwoFactorAuthenticatorRequest';\nimport { UpdateTwoFactorDuoRequest } from '../models/request/updateTwoFactorDuoRequest';\nimport { UpdateTwoFactorEmailRequest } from '../models/request/updateTwoFactorEmailRequest';\nimport { UpdateTwoFactorWebAuthnDeleteRequest } from '../models/request/updateTwoFactorWebAuthnDeleteRequest';\nimport { UpdateTwoFactorWebAuthnRequest } from '../models/request/updateTwoFactorWebAuthnRequest';\nimport { UpdateTwoFactorYubioOtpRequest } from '../models/request/updateTwoFactorYubioOtpRequest';\nimport { VerifyBankRequest } from '../models/request/verifyBankRequest';\nimport { VerifyDeleteRecoverRequest } from '../models/request/verifyDeleteRecoverRequest';\nimport { VerifyEmailRequest } from '../models/request/verifyEmailRequest';\n\nimport { Utils } from '../misc/utils';\nimport { ApiKeyResponse } from '../models/response/apiKeyResponse';\nimport { AttachmentResponse } from '../models/response/attachmentResponse';\nimport { AttachmentUploadDataResponse } from '../models/response/attachmentUploadDataResponse';\nimport { BillingResponse } from '../models/response/billingResponse';\nimport { BreachAccountResponse } from '../models/response/breachAccountResponse';\nimport { CipherResponse } from '../models/response/cipherResponse';\nimport {\n CollectionGroupDetailsResponse,\n CollectionResponse,\n} from '../models/response/collectionResponse';\nimport { DomainsResponse } from '../models/response/domainsResponse';\nimport {\n EmergencyAccessGranteeDetailsResponse,\n EmergencyAccessGrantorDetailsResponse,\n EmergencyAccessTakeoverResponse,\n EmergencyAccessViewResponse\n} from '../models/response/emergencyAccessResponse';\nimport { ErrorResponse } from '../models/response/errorResponse';\nimport { EventResponse } from '../models/response/eventResponse';\nimport { FolderResponse } from '../models/response/folderResponse';\nimport {\n GroupDetailsResponse,\n GroupResponse,\n} from '../models/response/groupResponse';\nimport { IdentityTokenResponse } from '../models/response/identityTokenResponse';\nimport { IdentityTwoFactorResponse } from '../models/response/identityTwoFactorResponse';\nimport { ListResponse } from '../models/response/listResponse';\nimport { OrganizationResponse } from '../models/response/organizationResponse';\nimport { OrganizationSubscriptionResponse } from '../models/response/organizationSubscriptionResponse';\nimport {\n OrganizationUserDetailsResponse,\n OrganizationUserUserDetailsResponse,\n} from '../models/response/organizationUserResponse';\nimport { PaymentResponse } from '../models/response/paymentResponse';\nimport { PlanResponse } from '../models/response/planResponse';\nimport { PolicyResponse } from '../models/response/policyResponse';\nimport { PreloginResponse } from '../models/response/preloginResponse';\nimport { ProfileResponse } from '../models/response/profileResponse';\nimport { SelectionReadOnlyResponse } from '../models/response/selectionReadOnlyResponse';\nimport { SendAccessResponse } from '../models/response/sendAccessResponse';\nimport { SendFileDownloadDataResponse } from '../models/response/sendFileDownloadDataResponse';\nimport { SendFileUploadDataResponse } from '../models/response/sendFileUploadDataResponse';\nimport { SendResponse } from '../models/response/sendResponse';\nimport { SubscriptionResponse } from '../models/response/subscriptionResponse';\nimport { SyncResponse } from '../models/response/syncResponse';\nimport { TaxInfoResponse } from '../models/response/taxInfoResponse';\nimport { TaxRateResponse } from '../models/response/taxRateResponse';\nimport { TwoFactorAuthenticatorResponse } from '../models/response/twoFactorAuthenticatorResponse';\nimport { TwoFactorDuoResponse } from '../models/response/twoFactorDuoResponse';\nimport { TwoFactorEmailResponse } from '../models/response/twoFactorEmailResponse';\nimport { TwoFactorProviderResponse } from '../models/response/twoFactorProviderResponse';\nimport { TwoFactorRecoverResponse } from '../models/response/twoFactorRescoverResponse';\nimport { TwoFactorWebAuthnResponse } from '../models/response/twoFactorWebAuthnResponse';\nimport { ChallengeResponse } from '../models/response/twoFactorWebAuthnResponse';\nimport { TwoFactorYubiKeyResponse } from '../models/response/twoFactorYubiKeyResponse';\nimport { UserKeyResponse } from '../models/response/userKeyResponse';\n\nimport { SendAccessView } from '../models/view/sendAccessView';\n\nexport class ApiService implements ApiServiceAbstraction {\n urlsSet: boolean = false;\n apiBaseUrl: string;\n identityBaseUrl: string;\n eventsBaseUrl: string;\n\n private device: DeviceType;\n private deviceType: string;\n private isWebClient = false;\n private isDesktopClient = false;\n private usingBaseUrl = false;\n\n constructor(private tokenService: TokenService, private platformUtilsService: PlatformUtilsService,\n private logoutCallback: (expired: boolean) => Promise, private customUserAgent: string = null) {\n this.device = platformUtilsService.getDevice();\n this.deviceType = this.device.toString();\n this.isWebClient = this.device === DeviceType.IEBrowser || this.device === DeviceType.ChromeBrowser ||\n this.device === DeviceType.EdgeBrowser || this.device === DeviceType.FirefoxBrowser ||\n this.device === DeviceType.OperaBrowser || this.device === DeviceType.SafariBrowser ||\n this.device === DeviceType.UnknownBrowser || this.device === DeviceType.VivaldiBrowser;\n this.isDesktopClient = this.device === DeviceType.WindowsDesktop || this.device === DeviceType.MacOsDesktop ||\n this.device === DeviceType.LinuxDesktop;\n }\n\n setUrls(urls: EnvironmentUrls): void {\n this.urlsSet = true;\n\n if (urls.base != null) {\n this.usingBaseUrl = true;\n this.apiBaseUrl = urls.base + '/api';\n this.identityBaseUrl = urls.base + '/identity';\n this.eventsBaseUrl = urls.base + '/events';\n return;\n }\n\n this.apiBaseUrl = urls.api;\n this.identityBaseUrl = urls.identity;\n this.eventsBaseUrl = urls.events;\n\n // Production\n if (this.apiBaseUrl == null) {\n this.apiBaseUrl = 'https://api.bitwarden.com';\n }\n if (this.identityBaseUrl == null) {\n this.identityBaseUrl = 'https://identity.bitwarden.com';\n }\n if (this.eventsBaseUrl == null) {\n this.eventsBaseUrl = 'https://events.bitwarden.com';\n }\n }\n\n // Auth APIs\n\n async postIdentityToken(request: TokenRequest): Promise {\n const headers = new Headers({\n 'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8',\n 'Accept': 'application/json',\n 'Device-Type': this.deviceType,\n });\n if (this.customUserAgent != null) {\n headers.set('User-Agent', this.customUserAgent);\n }\n const response = await this.fetch(new Request(this.identityBaseUrl + '/connect/token', {\n body: this.qsStringify(request.toIdentityToken(request.clientId ?? this.platformUtilsService.identityClientId)),\n credentials: this.getCredentials(),\n cache: 'no-store',\n headers: headers,\n method: 'POST',\n }));\n\n let responseJson: any = null;\n if (this.isJsonResponse(response)) {\n responseJson = await response.json();\n }\n\n if (responseJson != null) {\n if (response.status === 200) {\n return new IdentityTokenResponse(responseJson);\n } else if (response.status === 400 && responseJson.TwoFactorProviders2 &&\n Object.keys(responseJson.TwoFactorProviders2).length) {\n await this.tokenService.clearTwoFactorToken(request.email);\n return new IdentityTwoFactorResponse(responseJson);\n }\n }\n\n return Promise.reject(new ErrorResponse(responseJson, response.status, true));\n }\n\n async refreshIdentityToken(): Promise {\n try {\n await this.doRefreshToken();\n } catch (e) {\n return Promise.reject(null);\n }\n }\n\n // Account APIs\n\n async getProfile(): Promise {\n const r = await this.send('GET', '/accounts/profile', null, true, true);\n return new ProfileResponse(r);\n }\n\n async getUserBilling(): Promise {\n const r = await this.send('GET', '/accounts/billing', null, true, true);\n return new BillingResponse(r);\n }\n\n async getUserSubscription(): Promise {\n const r = await this.send('GET', '/accounts/subscription', null, true, true);\n return new SubscriptionResponse(r);\n }\n\n async getTaxInfo(): Promise {\n const r = await this.send('GET', '/accounts/tax', null, true, true);\n return new TaxInfoResponse(r);\n }\n\n async putProfile(request: UpdateProfileRequest): Promise {\n const r = await this.send('PUT', '/accounts/profile', request, true, true);\n return new ProfileResponse(r);\n }\n\n putTaxInfo(request: TaxInfoUpdateRequest): Promise {\n return this.send('PUT', '/accounts/tax', request, true, false);\n }\n\n async postPrelogin(request: PreloginRequest): Promise {\n const r = await this.send('POST', '/accounts/prelogin', request, false, true);\n return new PreloginResponse(r);\n }\n\n postEmailToken(request: EmailTokenRequest): Promise {\n return this.send('POST', '/accounts/email-token', request, true, false);\n }\n\n postEmail(request: EmailRequest): Promise {\n return this.send('POST', '/accounts/email', request, true, false);\n }\n\n postPassword(request: PasswordRequest): Promise {\n return this.send('POST', '/accounts/password', request, true, false);\n }\n\n setPassword(request: SetPasswordRequest): Promise {\n return this.send('POST', '/accounts/set-password', request, true, false);\n }\n\n postSecurityStamp(request: PasswordVerificationRequest): Promise {\n return this.send('POST', '/accounts/security-stamp', request, true, false);\n }\n\n deleteAccount(request: PasswordVerificationRequest): Promise {\n return this.send('DELETE', '/accounts', request, true, false);\n }\n\n async getAccountRevisionDate(): Promise {\n const r = await this.send('GET', '/accounts/revision-date', null, true, true);\n return r as number;\n }\n\n postPasswordHint(request: PasswordHintRequest): Promise {\n return this.send('POST', '/accounts/password-hint', request, false, false);\n }\n\n postRegister(request: RegisterRequest): Promise {\n return this.send('POST', '/accounts/register', request, false, false);\n }\n\n async postPremium(data: FormData): Promise {\n const r = await this.send('POST', '/accounts/premium', data, true, true);\n return new PaymentResponse(r);\n }\n\n async postIapCheck(request: IapCheckRequest): Promise {\n return this.send('POST', '/accounts/iap-check', request, true, false);\n }\n\n postReinstatePremium(): Promise {\n return this.send('POST', '/accounts/reinstate-premium', null, true, false);\n }\n\n postCancelPremium(): Promise {\n return this.send('POST', '/accounts/cancel-premium', null, true, false);\n }\n\n async postAccountStorage(request: StorageRequest): Promise {\n const r = await this.send('POST', '/accounts/storage', request, true, true);\n return new PaymentResponse(r);\n }\n\n postAccountPayment(request: PaymentRequest): Promise {\n return this.send('POST', '/accounts/payment', request, true, false);\n }\n\n postAccountLicense(data: FormData): Promise {\n return this.send('POST', '/accounts/license', data, true, false);\n }\n\n postAccountKeys(request: KeysRequest): Promise {\n return this.send('POST', '/accounts/keys', request, true, false);\n }\n\n postAccountKey(request: UpdateKeyRequest): Promise {\n return this.send('POST', '/accounts/key', request, true, false);\n }\n\n postAccountVerifyEmail(): Promise {\n return this.send('POST', '/accounts/verify-email', null, true, false);\n }\n\n postAccountVerifyEmailToken(request: VerifyEmailRequest): Promise {\n return this.send('POST', '/accounts/verify-email-token', request, false, false);\n }\n\n postAccountVerifyPassword(request: PasswordVerificationRequest): Promise {\n return this.send('POST', '/accounts/verify-password', request, true, false);\n }\n\n postAccountRecoverDelete(request: DeleteRecoverRequest): Promise {\n return this.send('POST', '/accounts/delete-recover', request, false, false);\n }\n\n postAccountRecoverDeleteToken(request: VerifyDeleteRecoverRequest): Promise {\n return this.send('POST', '/accounts/delete-recover-token', request, false, false);\n }\n\n postAccountKdf(request: KdfRequest): Promise {\n return this.send('POST', '/accounts/kdf', request, true, false);\n }\n\n async getEnterprisePortalSignInToken(): Promise {\n const r = await this.send('GET', '/accounts/enterprise-portal-signin-token', null, true, true);\n return r as string;\n }\n\n async deleteSsoUser(organizationId: string): Promise {\n return this.send('DELETE', '/accounts/sso/' + organizationId, null, true, false);\n }\n\n async getSsoUserIdentifier(): Promise {\n return this.send('GET', '/accounts/sso/user-identifier', null, true, true);\n }\n\n async postUserApiKey(id: string, request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/accounts/api-key', request, true, true);\n return new ApiKeyResponse(r);\n }\n\n async postUserRotateApiKey(id: string, request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/accounts/rotate-api-key', request, true, true);\n return new ApiKeyResponse(r);\n }\n\n // Folder APIs\n\n async getFolder(id: string): Promise {\n const r = await this.send('GET', '/folders/' + id, null, true, true);\n return new FolderResponse(r);\n }\n\n async postFolder(request: FolderRequest): Promise {\n const r = await this.send('POST', '/folders', request, true, true);\n return new FolderResponse(r);\n }\n\n async putFolder(id: string, request: FolderRequest): Promise {\n const r = await this.send('PUT', '/folders/' + id, request, true, true);\n return new FolderResponse(r);\n }\n\n deleteFolder(id: string): Promise {\n return this.send('DELETE', '/folders/' + id, null, true, false);\n }\n\n // Send APIs\n\n async getSend(id: string): Promise {\n const r = await this.send('GET', '/sends/' + id, null, true, true);\n return new SendResponse(r);\n }\n\n async postSendAccess(id: string, request: SendAccessRequest, apiUrl?: string): Promise {\n const r = await this.send('POST', '/sends/access/' + id, request, false, true, apiUrl);\n return new SendAccessResponse(r);\n }\n\n\n async getSendFileDownloadData(send: SendAccessView, request: SendAccessRequest, apiUrl?: string): Promise {\n const r = await this.send('POST', '/sends/' + send.id + '/access/file/' + send.file.id, request, false, true, apiUrl);\n return new SendFileDownloadDataResponse(r);\n }\n\n async getSends(): Promise> {\n const r = await this.send('GET', '/sends', null, true, true);\n return new ListResponse(r, SendResponse);\n }\n\n async postSend(request: SendRequest): Promise {\n const r = await this.send('POST', '/sends', request, true, true);\n return new SendResponse(r);\n }\n\n async postFileTypeSend(request: SendRequest): Promise {\n const r = await this.send('POST', '/sends/file/v2', request, true, true);\n return new SendFileUploadDataResponse(r);\n }\n\n async renewSendFileUploadUrl(sendId: string, fileId: string): Promise {\n const r = await this.send('GET', '/sends/' + sendId + '/file/' + fileId, null, true, true);\n return new SendFileUploadDataResponse(r);\n }\n\n postSendFile(sendId: string, fileId: string, data: FormData): Promise {\n return this.send('POST', '/sends/' + sendId + '/file/' + fileId, data, true, false);\n }\n\n /**\n * @deprecated Mar 25 2021: This method has been deprecated in favor of direct uploads.\n * This method still exists for backward compatibility with old server versions.\n */\n async postSendFileLegacy(data: FormData): Promise {\n const r = await this.send('POST', '/sends/file', data, true, true);\n return new SendResponse(r);\n }\n\n async putSend(id: string, request: SendRequest): Promise {\n const r = await this.send('PUT', '/sends/' + id, request, true, true);\n return new SendResponse(r);\n }\n\n async putSendRemovePassword(id: string): Promise {\n const r = await this.send('PUT', '/sends/' + id + '/remove-password', null, true, true);\n return new SendResponse(r);\n }\n\n deleteSend(id: string): Promise {\n return this.send('DELETE', '/sends/' + id, null, true, false);\n }\n\n // Cipher APIs\n\n async getCipher(id: string): Promise {\n const r = await this.send('GET', '/ciphers/' + id, null, true, true);\n return new CipherResponse(r);\n }\n\n async getCipherAdmin(id: string): Promise {\n const r = await this.send('GET', '/ciphers/' + id + '/admin', null, true, true);\n return new CipherResponse(r);\n }\n\n async getCiphersOrganization(organizationId: string): Promise> {\n const r = await this.send('GET', '/ciphers/organization-details?organizationId=' + organizationId,\n null, true, true);\n return new ListResponse(r, CipherResponse);\n }\n\n async postCipher(request: CipherRequest): Promise {\n const r = await this.send('POST', '/ciphers', request, true, true);\n return new CipherResponse(r);\n }\n\n async postCipherCreate(request: CipherCreateRequest): Promise {\n const r = await this.send('POST', '/ciphers/create', request, true, true);\n return new CipherResponse(r);\n }\n\n async postCipherAdmin(request: CipherCreateRequest): Promise {\n const r = await this.send('POST', '/ciphers/admin', request, true, true);\n return new CipherResponse(r);\n }\n\n async putCipher(id: string, request: CipherRequest): Promise {\n const r = await this.send('PUT', '/ciphers/' + id, request, true, true);\n return new CipherResponse(r);\n }\n\n async putCipherAdmin(id: string, request: CipherRequest): Promise {\n const r = await this.send('PUT', '/ciphers/' + id + '/admin', request, true, true);\n return new CipherResponse(r);\n }\n\n deleteCipher(id: string): Promise {\n return this.send('DELETE', '/ciphers/' + id, null, true, false);\n }\n\n deleteCipherAdmin(id: string): Promise {\n return this.send('DELETE', '/ciphers/' + id + '/admin', null, true, false);\n }\n\n deleteManyCiphers(request: CipherBulkDeleteRequest): Promise {\n return this.send('DELETE', '/ciphers', request, true, false);\n }\n\n deleteManyCiphersAdmin(request: CipherBulkDeleteRequest): Promise {\n return this.send('DELETE', '/ciphers/admin', request, true, false);\n }\n\n putMoveCiphers(request: CipherBulkMoveRequest): Promise {\n return this.send('PUT', '/ciphers/move', request, true, false);\n }\n\n async putShareCipher(id: string, request: CipherShareRequest): Promise {\n const r = await this.send('PUT', '/ciphers/' + id + '/share', request, true, true);\n return new CipherResponse(r);\n }\n\n putShareCiphers(request: CipherBulkShareRequest): Promise {\n return this.send('PUT', '/ciphers/share', request, true, false);\n }\n\n putCipherCollections(id: string, request: CipherCollectionsRequest): Promise {\n return this.send('PUT', '/ciphers/' + id + '/collections', request, true, false);\n }\n\n putCipherCollectionsAdmin(id: string, request: CipherCollectionsRequest): Promise {\n return this.send('PUT', '/ciphers/' + id + '/collections-admin', request, true, false);\n }\n\n postPurgeCiphers(request: PasswordVerificationRequest, organizationId: string = null): Promise {\n let path = '/ciphers/purge';\n if (organizationId != null) {\n path += '?organizationId=' + organizationId;\n }\n return this.send('POST', path, request, true, false);\n }\n\n postImportCiphers(request: ImportCiphersRequest): Promise {\n return this.send('POST', '/ciphers/import', request, true, false);\n }\n\n postImportOrganizationCiphers(organizationId: string, request: ImportOrganizationCiphersRequest): Promise {\n return this.send('POST', '/ciphers/import-organization?organizationId=' + organizationId, request, true, false);\n }\n\n putDeleteCipher(id: string): Promise {\n return this.send('PUT', '/ciphers/' + id + '/delete', null, true, false);\n }\n\n putDeleteCipherAdmin(id: string): Promise {\n return this.send('PUT', '/ciphers/' + id + '/delete-admin', null, true, false);\n }\n\n putDeleteManyCiphers(request: CipherBulkDeleteRequest): Promise {\n return this.send('PUT', '/ciphers/delete', request, true, false);\n }\n\n putDeleteManyCiphersAdmin(request: CipherBulkDeleteRequest): Promise {\n return this.send('PUT', '/ciphers/delete-admin', request, true, false);\n }\n\n async putRestoreCipher(id: string): Promise {\n const r = await this.send('PUT', '/ciphers/' + id + '/restore', null, true, true);\n return new CipherResponse(r);\n }\n\n async putRestoreCipherAdmin(id: string): Promise {\n const r = await this.send('PUT', '/ciphers/' + id + '/restore-admin', null, true, true);\n return new CipherResponse(r);\n }\n\n async putRestoreManyCiphers(request: CipherBulkDeleteRequest): Promise> {\n const r = await this.send('PUT', '/ciphers/restore', request, true, true);\n return new ListResponse(r, CipherResponse);\n }\n\n // Attachments APIs\n\n async getAttachmentData(cipherId: string, attachmentId: string, emergencyAccessId?: string): Promise {\n const path = (emergencyAccessId != null ?\n '/emergency-access/' + emergencyAccessId + '/' :\n '/ciphers/') + cipherId + '/attachment/' + attachmentId;\n const r = await this.send('GET', path, null, true, true);\n return new AttachmentResponse(r);\n }\n\n async postCipherAttachment(id: string, request: AttachmentRequest): Promise {\n const r = await this.send('POST', '/ciphers/' + id + '/attachment/v2', request, true, true);\n return new AttachmentUploadDataResponse(r);\n }\n\n /**\n * @deprecated Mar 25 2021: This method has been deprecated in favor of direct uploads.\n * This method still exists for backward compatibility with old server versions.\n */\n async postCipherAttachmentLegacy(id: string, data: FormData): Promise {\n const r = await this.send('POST', '/ciphers/' + id + '/attachment', data, true, true);\n return new CipherResponse(r);\n }\n\n /**\n * @deprecated Mar 25 2021: This method has been deprecated in favor of direct uploads.\n * This method still exists for backward compatibility with old server versions.\n */\n async postCipherAttachmentAdminLegacy(id: string, data: FormData): Promise {\n const r = await this.send('POST', '/ciphers/' + id + '/attachment-admin', data, true, true);\n return new CipherResponse(r);\n }\n\n deleteCipherAttachment(id: string, attachmentId: string): Promise {\n return this.send('DELETE', '/ciphers/' + id + '/attachment/' + attachmentId, null, true, false);\n }\n\n deleteCipherAttachmentAdmin(id: string, attachmentId: string): Promise {\n return this.send('DELETE', '/ciphers/' + id + '/attachment/' + attachmentId + '/admin', null, true, false);\n }\n\n postShareCipherAttachment(id: string, attachmentId: string, data: FormData,\n organizationId: string): Promise {\n return this.send('POST', '/ciphers/' + id + '/attachment/' +\n attachmentId + '/share?organizationId=' + organizationId, data, true, false);\n }\n\n async renewAttachmentUploadUrl(id: string, attachmentId: string): Promise {\n const r = await this.send('GET', '/ciphers/' + id + '/attachment/' + attachmentId + '/renew', null, true, true);\n return new AttachmentUploadDataResponse(r);\n }\n\n postAttachmentFile(id: string, attachmentId: string, data: FormData): Promise {\n return this.send('POST', '/ciphers/' + id + '/attachment/' + attachmentId, data, true, false);\n }\n\n // Collections APIs\n\n async getCollectionDetails(organizationId: string, id: string): Promise {\n const r = await this.send('GET', '/organizations/' + organizationId + '/collections/' + id + '/details',\n null, true, true);\n return new CollectionGroupDetailsResponse(r);\n }\n\n async getUserCollections(): Promise> {\n const r = await this.send('GET', '/collections', null, true, true);\n return new ListResponse(r, CollectionResponse);\n }\n\n async getCollections(organizationId: string): Promise> {\n const r = await this.send('GET', '/organizations/' + organizationId + '/collections', null, true, true);\n return new ListResponse(r, CollectionResponse);\n }\n\n async getCollectionUsers(organizationId: string, id: string): Promise {\n const r = await this.send('GET', '/organizations/' + organizationId + '/collections/' + id + '/users',\n null, true, true);\n return r.map((dr: any) => new SelectionReadOnlyResponse(dr));\n }\n\n async postCollection(organizationId: string, request: CollectionRequest): Promise {\n const r = await this.send('POST', '/organizations/' + organizationId + '/collections', request, true, true);\n return new CollectionResponse(r);\n }\n\n async putCollection(organizationId: string, id: string, request: CollectionRequest): Promise {\n const r = await this.send('PUT', '/organizations/' + organizationId + '/collections/' + id,\n request, true, true);\n return new CollectionResponse(r);\n }\n\n async putCollectionUsers(organizationId: string, id: string, request: SelectionReadOnlyRequest[]): Promise {\n await this.send('PUT', '/organizations/' + organizationId + '/collections/' + id + '/users',\n request, true, false);\n }\n\n deleteCollection(organizationId: string, id: string): Promise {\n return this.send('DELETE', '/organizations/' + organizationId + '/collections/' + id, null, true, false);\n }\n\n deleteCollectionUser(organizationId: string, id: string, organizationUserId: string): Promise {\n return this.send('DELETE',\n '/organizations/' + organizationId + '/collections/' + id + '/user/' + organizationUserId,\n null, true, false);\n }\n\n // Groups APIs\n\n async getGroupDetails(organizationId: string, id: string): Promise {\n const r = await this.send('GET', '/organizations/' + organizationId + '/groups/' + id + '/details',\n null, true, true);\n return new GroupDetailsResponse(r);\n }\n\n async getGroups(organizationId: string): Promise> {\n const r = await this.send('GET', '/organizations/' + organizationId + '/groups', null, true, true);\n return new ListResponse(r, GroupResponse);\n }\n\n async getGroupUsers(organizationId: string, id: string): Promise {\n const r = await this.send('GET', '/organizations/' + organizationId + '/groups/' + id + '/users',\n null, true, true);\n return r;\n }\n\n async postGroup(organizationId: string, request: GroupRequest): Promise {\n const r = await this.send('POST', '/organizations/' + organizationId + '/groups', request, true, true);\n return new GroupResponse(r);\n }\n\n async putGroup(organizationId: string, id: string, request: GroupRequest): Promise {\n const r = await this.send('PUT', '/organizations/' + organizationId + '/groups/' + id, request, true, true);\n return new GroupResponse(r);\n }\n\n async putGroupUsers(organizationId: string, id: string, request: string[]): Promise {\n await this.send('PUT', '/organizations/' + organizationId + '/groups/' + id + '/users', request, true, false);\n }\n\n deleteGroup(organizationId: string, id: string): Promise {\n return this.send('DELETE', '/organizations/' + organizationId + '/groups/' + id, null, true, false);\n }\n\n deleteGroupUser(organizationId: string, id: string, organizationUserId: string): Promise {\n return this.send('DELETE',\n '/organizations/' + organizationId + '/groups/' + id + '/user/' + organizationUserId, null, true, false);\n }\n\n // Policy APIs\n\n async getPolicy(organizationId: string, type: PolicyType): Promise {\n const r = await this.send('GET', '/organizations/' + organizationId + '/policies/' + type, null, true, true);\n return new PolicyResponse(r);\n }\n\n async getPolicies(organizationId: string): Promise> {\n const r = await this.send('GET', '/organizations/' + organizationId + '/policies', null, true, true);\n return new ListResponse(r, PolicyResponse);\n }\n\n async getPoliciesByToken(organizationId: string, token: string, email: string, organizationUserId: string):\n Promise> {\n const r = await this.send('GET', '/organizations/' + organizationId + '/policies/token?' +\n 'token=' + encodeURIComponent(token) + '&email=' + encodeURIComponent(email) +\n '&organizationUserId=' + organizationUserId, null, false, true);\n return new ListResponse(r, PolicyResponse);\n }\n\n async putPolicy(organizationId: string, type: PolicyType, request: PolicyRequest): Promise {\n const r = await this.send('PUT', '/organizations/' + organizationId + '/policies/' + type, request, true, true);\n return new PolicyResponse(r);\n }\n\n // Organization User APIs\n\n async getOrganizationUser(organizationId: string, id: string): Promise {\n const r = await this.send('GET', '/organizations/' + organizationId + '/users/' + id, null, true, true);\n return new OrganizationUserDetailsResponse(r);\n }\n\n async getOrganizationUserGroups(organizationId: string, id: string): Promise {\n const r = await this.send('GET', '/organizations/' + organizationId + '/users/' + id + '/groups',\n null, true, true);\n return r;\n }\n\n async getOrganizationUsers(organizationId: string): Promise> {\n const r = await this.send('GET', '/organizations/' + organizationId + '/users', null, true, true);\n return new ListResponse(r, OrganizationUserUserDetailsResponse);\n }\n\n postOrganizationUserInvite(organizationId: string, request: OrganizationUserInviteRequest): Promise {\n return this.send('POST', '/organizations/' + organizationId + '/users/invite', request, true, false);\n }\n\n postOrganizationUserReinvite(organizationId: string, id: string): Promise {\n return this.send('POST', '/organizations/' + organizationId + '/users/' + id + '/reinvite', null, true, false);\n }\n\n postOrganizationUserAccept(organizationId: string, id: string,\n request: OrganizationUserAcceptRequest): Promise {\n return this.send('POST', '/organizations/' + organizationId + '/users/' + id + '/accept', request, true, false);\n }\n\n postOrganizationUserConfirm(organizationId: string, id: string,\n request: OrganizationUserConfirmRequest): Promise {\n return this.send('POST', '/organizations/' + organizationId + '/users/' + id + '/confirm',\n request, true, false);\n }\n\n putOrganizationUser(organizationId: string, id: string, request: OrganizationUserUpdateRequest): Promise {\n return this.send('PUT', '/organizations/' + organizationId + '/users/' + id, request, true, false);\n }\n\n putOrganizationUserGroups(organizationId: string, id: string,\n request: OrganizationUserUpdateGroupsRequest): Promise {\n return this.send('PUT', '/organizations/' + organizationId + '/users/' + id + '/groups', request, true, false);\n }\n\n putOrganizationUserResetPasswordEnrollment(organizationId: string, userId: string,\n request: OrganizationUserResetPasswordEnrollmentRequest): Promise {\n return this.send('PUT', '/organizations/' + organizationId + '/users/' + userId + '/reset-password-enrollment',\n request, true, false);\n }\n\n deleteOrganizationUser(organizationId: string, id: string): Promise {\n return this.send('DELETE', '/organizations/' + organizationId + '/users/' + id, null, true, false);\n }\n\n // Plan APIs\n\n async getPlans(): Promise> {\n const r = await this.send('GET', '/plans/', null, true, true);\n return new ListResponse(r, PlanResponse);\n }\n\n async postImportDirectory(organizationId: string, request: ImportDirectoryRequest): Promise {\n return this.send('POST', '/organizations/' + organizationId + '/import', request, true, false);\n }\n\n async getTaxRates(): Promise> {\n const r = await this.send('GET', '/plans/sales-tax-rates/', null, true, true);\n return new ListResponse(r, TaxRateResponse);\n }\n\n // Settings APIs\n\n async getSettingsDomains(): Promise {\n const r = await this.send('GET', '/settings/domains', null, true, true);\n return new DomainsResponse(r);\n }\n\n async putSettingsDomains(request: UpdateDomainsRequest): Promise {\n const r = await this.send('PUT', '/settings/domains', request, true, true);\n return new DomainsResponse(r);\n }\n\n // Sync APIs\n\n async getSync(): Promise {\n const path = this.isDesktopClient || this.isWebClient ? '/sync?excludeDomains=true' : '/sync';\n const r = await this.send('GET', path, null, true, true);\n return new SyncResponse(r);\n }\n\n // Two-factor APIs\n\n async getTwoFactorProviders(): Promise> {\n const r = await this.send('GET', '/two-factor', null, true, true);\n return new ListResponse(r, TwoFactorProviderResponse);\n }\n\n async getTwoFactorOrganizationProviders(organizationId: string): Promise> {\n const r = await this.send('GET', '/organizations/' + organizationId + '/two-factor', null, true, true);\n return new ListResponse(r, TwoFactorProviderResponse);\n }\n\n async getTwoFactorAuthenticator(request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/two-factor/get-authenticator', request, true, true);\n return new TwoFactorAuthenticatorResponse(r);\n }\n\n async getTwoFactorEmail(request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/two-factor/get-email', request, true, true);\n return new TwoFactorEmailResponse(r);\n }\n\n async getTwoFactorDuo(request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/two-factor/get-duo', request, true, true);\n return new TwoFactorDuoResponse(r);\n }\n\n async getTwoFactorOrganizationDuo(organizationId: string,\n request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/organizations/' + organizationId + '/two-factor/get-duo',\n request, true, true);\n return new TwoFactorDuoResponse(r);\n }\n\n async getTwoFactorYubiKey(request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/two-factor/get-yubikey', request, true, true);\n return new TwoFactorYubiKeyResponse(r);\n }\n\n async getTwoFactorWebAuthn(request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/two-factor/get-webauthn', request, true, true);\n return new TwoFactorWebAuthnResponse(r);\n }\n\n async getTwoFactorWebAuthnChallenge(request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/two-factor/get-webauthn-challenge', request, true, true);\n return new ChallengeResponse(r);\n }\n\n async getTwoFactorRecover(request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/two-factor/get-recover', request, true, true);\n return new TwoFactorRecoverResponse(r);\n }\n\n async putTwoFactorAuthenticator(\n request: UpdateTwoFactorAuthenticatorRequest): Promise {\n const r = await this.send('PUT', '/two-factor/authenticator', request, true, true);\n return new TwoFactorAuthenticatorResponse(r);\n }\n\n async putTwoFactorEmail(request: UpdateTwoFactorEmailRequest): Promise {\n const r = await this.send('PUT', '/two-factor/email', request, true, true);\n return new TwoFactorEmailResponse(r);\n }\n\n async putTwoFactorDuo(request: UpdateTwoFactorDuoRequest): Promise {\n const r = await this.send('PUT', '/two-factor/duo', request, true, true);\n return new TwoFactorDuoResponse(r);\n }\n\n async putTwoFactorOrganizationDuo(organizationId: string,\n request: UpdateTwoFactorDuoRequest): Promise {\n const r = await this.send('PUT', '/organizations/' + organizationId + '/two-factor/duo', request, true, true);\n return new TwoFactorDuoResponse(r);\n }\n\n async putTwoFactorYubiKey(request: UpdateTwoFactorYubioOtpRequest): Promise {\n const r = await this.send('PUT', '/two-factor/yubikey', request, true, true);\n return new TwoFactorYubiKeyResponse(r);\n }\n\n async putTwoFactorWebAuthn(request: UpdateTwoFactorWebAuthnRequest): Promise {\n const response = request.deviceResponse.response as AuthenticatorAttestationResponse;\n const data: any = Object.assign({}, request);\n\n data.deviceResponse = {\n id: request.deviceResponse.id,\n rawId: btoa(request.deviceResponse.id),\n type: request.deviceResponse.type,\n extensions: request.deviceResponse.getClientExtensionResults(),\n response: {\n AttestationObject: Utils.fromBufferToB64(response.attestationObject),\n clientDataJson: Utils.fromBufferToB64(response.clientDataJSON),\n },\n };\n\n const r = await this.send('PUT', '/two-factor/webauthn', data, true, true);\n return new TwoFactorWebAuthnResponse(r);\n }\n\n async deleteTwoFactorWebAuthn(request: UpdateTwoFactorWebAuthnDeleteRequest): Promise {\n const r = await this.send('DELETE', '/two-factor/webauthn', request, true, true);\n return new TwoFactorWebAuthnResponse(r);\n }\n\n async putTwoFactorDisable(request: TwoFactorProviderRequest): Promise {\n const r = await this.send('PUT', '/two-factor/disable', request, true, true);\n return new TwoFactorProviderResponse(r);\n }\n\n async putTwoFactorOrganizationDisable(organizationId: string,\n request: TwoFactorProviderRequest): Promise {\n const r = await this.send('PUT', '/organizations/' + organizationId + '/two-factor/disable',\n request, true, true);\n return new TwoFactorProviderResponse(r);\n }\n\n postTwoFactorRecover(request: TwoFactorRecoveryRequest): Promise {\n return this.send('POST', '/two-factor/recover', request, false, false);\n }\n\n postTwoFactorEmailSetup(request: TwoFactorEmailRequest): Promise {\n return this.send('POST', '/two-factor/send-email', request, true, false);\n }\n\n postTwoFactorEmail(request: TwoFactorEmailRequest): Promise {\n return this.send('POST', '/two-factor/send-email-login', request, false, false);\n }\n\n // Emergency Access APIs\n\n async getEmergencyAccessTrusted(): Promise> {\n const r = await this.send('GET', '/emergency-access/trusted', null, true, true);\n return new ListResponse(r, EmergencyAccessGranteeDetailsResponse);\n }\n\n async getEmergencyAccessGranted(): Promise> {\n const r = await this.send('GET', '/emergency-access/granted', null, true, true);\n return new ListResponse(r, EmergencyAccessGrantorDetailsResponse);\n }\n\n async getEmergencyAccess(id: string): Promise {\n const r = await this.send('GET', '/emergency-access/' + id, null, true, true);\n return new EmergencyAccessGranteeDetailsResponse(r);\n }\n\n async getEmergencyGrantorPolicies(id: string): Promise> {\n const r = await this.send('GET', '/emergency-access/' + id + '/policies', null, true, true);\n return new ListResponse(r, PolicyResponse);\n }\n\n putEmergencyAccess(id: string, request: EmergencyAccessUpdateRequest): Promise {\n return this.send('PUT', '/emergency-access/' + id, request, true, false);\n }\n\n deleteEmergencyAccess(id: string): Promise {\n return this.send('DELETE', '/emergency-access/' + id, null, true, false);\n }\n\n postEmergencyAccessInvite(request: EmergencyAccessInviteRequest): Promise {\n return this.send('POST', '/emergency-access/invite', request, true, false);\n }\n\n postEmergencyAccessReinvite(id: string): Promise {\n return this.send('POST', '/emergency-access/' + id + '/reinvite', null, true, false);\n }\n\n postEmergencyAccessAccept(id: string, request: EmergencyAccessAcceptRequest): Promise {\n return this.send('POST', '/emergency-access/' + id + '/accept', request, true, false);\n }\n\n postEmergencyAccessConfirm(id: string, request: EmergencyAccessConfirmRequest): Promise {\n return this.send('POST', '/emergency-access/' + id + '/confirm', request, true, false);\n }\n\n postEmergencyAccessInitiate(id: string): Promise {\n return this.send('POST', '/emergency-access/' + id + '/initiate', null, true, false);\n }\n\n postEmergencyAccessApprove(id: string): Promise {\n return this.send('POST', '/emergency-access/' + id + '/approve', null, true, false);\n }\n\n postEmergencyAccessReject(id: string): Promise {\n return this.send('POST', '/emergency-access/' + id + '/reject', null, true, false);\n }\n\n async postEmergencyAccessTakeover(id: string): Promise {\n const r = await this.send('POST', '/emergency-access/' + id + '/takeover', null, true, true);\n return new EmergencyAccessTakeoverResponse(r);\n }\n\n async postEmergencyAccessPassword(id: string, request: EmergencyAccessPasswordRequest): Promise {\n const r = await this.send('POST', '/emergency-access/' + id + '/password', request, true, true);\n }\n\n async postEmergencyAccessView(id: string): Promise {\n const r = await this.send('POST', '/emergency-access/' + id + '/view', null, true, true);\n return new EmergencyAccessViewResponse(r);\n }\n\n // Organization APIs\n\n async getOrganization(id: string): Promise {\n const r = await this.send('GET', '/organizations/' + id, null, true, true);\n return new OrganizationResponse(r);\n }\n\n async getOrganizationBilling(id: string): Promise {\n const r = await this.send('GET', '/organizations/' + id + '/billing', null, true, true);\n return new BillingResponse(r);\n }\n\n async getOrganizationSubscription(id: string): Promise {\n const r = await this.send('GET', '/organizations/' + id + '/subscription', null, true, true);\n return new OrganizationSubscriptionResponse(r);\n }\n\n async getOrganizationLicense(id: string, installationId: string): Promise {\n return this.send('GET', '/organizations/' + id + '/license?installationId=' + installationId,\n null, true, true);\n }\n\n async getOrganizationTaxInfo(id: string): Promise {\n const r = await this.send('GET', '/organizations/' + id + '/tax', null, true, true);\n return new TaxInfoResponse(r);\n }\n\n async postOrganization(request: OrganizationCreateRequest): Promise {\n const r = await this.send('POST', '/organizations', request, true, true);\n return new OrganizationResponse(r);\n }\n\n async putOrganization(id: string, request: OrganizationUpdateRequest): Promise {\n const r = await this.send('PUT', '/organizations/' + id, request, true, true);\n return new OrganizationResponse(r);\n }\n\n async putOrganizationTaxInfo(id: string, request: OrganizationTaxInfoUpdateRequest): Promise {\n return this.send('PUT', '/organizations/' + id + '/tax', request, true, false);\n }\n\n postLeaveOrganization(id: string): Promise {\n return this.send('POST', '/organizations/' + id + '/leave', null, true, false);\n }\n\n async postOrganizationLicense(data: FormData): Promise {\n const r = await this.send('POST', '/organizations/license', data, true, true);\n return new OrganizationResponse(r);\n }\n\n async postOrganizationLicenseUpdate(id: string, data: FormData): Promise {\n return this.send('POST', '/organizations/' + id + '/license', data, true, false);\n }\n\n async postOrganizationApiKey(id: string, request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/organizations/' + id + '/api-key', request, true, true);\n return new ApiKeyResponse(r);\n }\n\n async postOrganizationRotateApiKey(id: string, request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/organizations/' + id + '/rotate-api-key', request, true, true);\n return new ApiKeyResponse(r);\n }\n\n async postOrganizationUpgrade(id: string, request: OrganizationUpgradeRequest): Promise {\n const r = await this.send('POST', '/organizations/' + id + '/upgrade', request, true, true);\n return new PaymentResponse(r);\n }\n\n async postOrganizationSeat(id: string, request: SeatRequest): Promise {\n const r = await this.send('POST', '/organizations/' + id + '/seat', request, true, true);\n return new PaymentResponse(r);\n }\n\n async postOrganizationStorage(id: string, request: StorageRequest): Promise {\n const r = await this.send('POST', '/organizations/' + id + '/storage', request, true, true);\n return new PaymentResponse(r);\n }\n\n postOrganizationPayment(id: string, request: PaymentRequest): Promise {\n return this.send('POST', '/organizations/' + id + '/payment', request, true, false);\n }\n\n postOrganizationVerifyBank(id: string, request: VerifyBankRequest): Promise {\n return this.send('POST', '/organizations/' + id + '/verify-bank', request, true, false);\n }\n\n postOrganizationCancel(id: string): Promise {\n return this.send('POST', '/organizations/' + id + '/cancel', null, true, false);\n }\n\n postOrganizationReinstate(id: string): Promise {\n return this.send('POST', '/organizations/' + id + '/reinstate', null, true, false);\n }\n\n deleteOrganization(id: string, request: PasswordVerificationRequest): Promise {\n return this.send('DELETE', '/organizations/' + id, request, true, false);\n }\n\n // Event APIs\n\n async getEvents(start: string, end: string, token: string): Promise> {\n const r = await this.send('GET', this.addEventParameters('/events', start, end, token), null, true, true);\n return new ListResponse(r, EventResponse);\n }\n\n async getEventsCipher(id: string, start: string, end: string,\n token: string): Promise> {\n const r = await this.send('GET', this.addEventParameters('/ciphers/' + id + '/events', start, end, token),\n null, true, true);\n return new ListResponse(r, EventResponse);\n }\n\n async getEventsOrganization(id: string, start: string, end: string,\n token: string): Promise> {\n const r = await this.send('GET', this.addEventParameters('/organizations/' + id + '/events', start, end, token),\n null, true, true);\n return new ListResponse(r, EventResponse);\n }\n\n async getEventsOrganizationUser(organizationId: string, id: string,\n start: string, end: string, token: string): Promise> {\n const r = await this.send('GET',\n this.addEventParameters('/organizations/' + organizationId + '/users/' + id + '/events', start, end, token),\n null, true, true);\n return new ListResponse(r, EventResponse);\n }\n\n async postEventsCollect(request: EventRequest[]): Promise {\n const authHeader = await this.getActiveBearerToken();\n const headers = new Headers({\n 'Device-Type': this.deviceType,\n 'Authorization': 'Bearer ' + authHeader,\n 'Content-Type': 'application/json; charset=utf-8',\n });\n if (this.customUserAgent != null) {\n headers.set('User-Agent', this.customUserAgent);\n }\n const response = await this.fetch(new Request(this.eventsBaseUrl + '/collect', {\n cache: 'no-store',\n credentials: this.getCredentials(),\n method: 'POST',\n body: JSON.stringify(request),\n headers: headers,\n }));\n if (response.status !== 200) {\n return Promise.reject('Event post failed.');\n }\n }\n\n // User APIs\n\n async getUserPublicKey(id: string): Promise {\n const r = await this.send('GET', '/users/' + id + '/public-key', null, true, true);\n return new UserKeyResponse(r);\n }\n\n // HIBP APIs\n\n async getHibpBreach(username: string): Promise {\n const r = await this.send('GET', '/hibp/breach?username=' + username, null, true, true);\n return r.map((a: any) => new BreachAccountResponse(a));\n }\n\n // Misc\n\n async postBitPayInvoice(request: BitPayInvoiceRequest): Promise {\n const r = await this.send('POST', '/bitpay-invoice', request, true, true);\n return r as string;\n }\n\n async postSetupPayment(): Promise {\n const r = await this.send('POST', '/setup-payment', null, true, true);\n return r as string;\n }\n\n // Helpers\n\n async getActiveBearerToken(): Promise {\n let accessToken = await this.tokenService.getToken();\n if (this.tokenService.tokenNeedsRefresh()) {\n const tokenResponse = await this.doRefreshToken();\n accessToken = tokenResponse.accessToken;\n }\n return accessToken;\n }\n\n fetch(request: Request): Promise {\n if (request.method === 'GET') {\n request.headers.set('Cache-Control', 'no-store');\n request.headers.set('Pragma', 'no-cache');\n }\n return this.nativeFetch(request);\n }\n\n nativeFetch(request: Request): Promise {\n return fetch(request);\n }\n\n async preValidateSso(identifier: string): Promise {\n if (identifier == null || identifier === '') {\n throw new Error('Organization Identifier was not provided.');\n }\n const headers = new Headers({\n 'Accept': 'application/json',\n 'Device-Type': this.deviceType,\n });\n if (this.customUserAgent != null) {\n headers.set('User-Agent', this.customUserAgent);\n }\n\n const path = `/account/prevalidate?domainHint=${encodeURIComponent(identifier)}`;\n const response = await this.fetch(new Request(this.identityBaseUrl + path, {\n cache: 'no-store',\n credentials: this.getCredentials(),\n headers: headers,\n method: 'GET',\n }));\n\n if (response.status === 200) {\n return true;\n } else {\n const error = await this.handleError(response, false, true);\n return Promise.reject(error);\n }\n }\n\n private async send(method: 'GET' | 'POST' | 'PUT' | 'DELETE', path: string, body: any,\n authed: boolean, hasResponse: boolean, apiUrl?: string): Promise {\n apiUrl = Utils.isNullOrWhitespace(apiUrl) ? this.apiBaseUrl : apiUrl;\n const headers = new Headers({\n 'Device-Type': this.deviceType,\n });\n if (this.customUserAgent != null) {\n headers.set('User-Agent', this.customUserAgent);\n }\n\n const requestInit: RequestInit = {\n cache: 'no-store',\n credentials: this.getCredentials(),\n method: method,\n };\n\n if (authed) {\n const authHeader = await this.getActiveBearerToken();\n headers.set('Authorization', 'Bearer ' + authHeader);\n }\n if (body != null) {\n if (typeof body === 'string') {\n requestInit.body = body;\n headers.set('Content-Type', 'application/x-www-form-urlencoded; charset=utf-8');\n } else if (typeof body === 'object') {\n if (body instanceof FormData) {\n requestInit.body = body;\n } else {\n headers.set('Content-Type', 'application/json; charset=utf-8');\n requestInit.body = JSON.stringify(body);\n }\n }\n }\n if (hasResponse) {\n headers.set('Accept', 'application/json');\n }\n\n requestInit.headers = headers;\n const response = await this.fetch(new Request(apiUrl + path, requestInit));\n\n if (hasResponse && response.status === 200) {\n const responseJson = await response.json();\n return responseJson;\n } else if (response.status !== 200) {\n const error = await this.handleError(response, false, authed);\n return Promise.reject(error);\n }\n }\n\n private async handleError(response: Response, tokenError: boolean, authed: boolean): Promise {\n if (authed && ((tokenError && response.status === 400) || response.status === 401 || response.status === 403)) {\n await this.logoutCallback(true);\n return null;\n }\n\n let responseJson: any = null;\n if (this.isJsonResponse(response)) {\n responseJson = await response.json();\n } else if (this.isTextResponse(response)) {\n responseJson = { Message: await response.text() };\n }\n\n return new ErrorResponse(responseJson, response.status, tokenError);\n }\n\n private async doRefreshToken(): Promise {\n const refreshToken = await this.tokenService.getRefreshToken();\n if (refreshToken == null || refreshToken === '') {\n throw new Error();\n }\n const headers = new Headers({\n 'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8',\n 'Accept': 'application/json',\n 'Device-Type': this.deviceType,\n });\n if (this.customUserAgent != null) {\n headers.set('User-Agent', this.customUserAgent);\n }\n\n const decodedToken = this.tokenService.decodeToken();\n const response = await this.fetch(new Request(this.identityBaseUrl + '/connect/token', {\n body: this.qsStringify({\n grant_type: 'refresh_token',\n client_id: decodedToken.client_id,\n refresh_token: refreshToken,\n }),\n cache: 'no-store',\n credentials: this.getCredentials(),\n headers: headers,\n method: 'POST',\n }));\n\n if (response.status === 200) {\n const responseJson = await response.json();\n const tokenResponse = new IdentityTokenResponse(responseJson);\n await this.tokenService.setTokens(tokenResponse.accessToken, tokenResponse.refreshToken);\n return tokenResponse;\n } else {\n const error = await this.handleError(response, true, true);\n return Promise.reject(error);\n }\n }\n\n private qsStringify(params: any): string {\n return Object.keys(params).map(key => {\n return encodeURIComponent(key) + '=' + encodeURIComponent(params[key]);\n }).join('&');\n }\n\n private getCredentials(): RequestCredentials {\n if (!this.isWebClient || this.usingBaseUrl) {\n return 'include';\n }\n return undefined;\n }\n\n private addEventParameters(base: string, start: string, end: string, token: string) {\n if (start != null) {\n base += ('?start=' + start);\n }\n if (end != null) {\n base += (base.indexOf('?') > -1 ? '&' : '?');\n base += ('end=' + end);\n }\n if (token != null) {\n base += (base.indexOf('?') > -1 ? '&' : '?');\n base += ('continuationToken=' + token);\n }\n return base;\n }\n\n private isJsonResponse(response: Response): boolean {\n const typeHeader = response.headers.get('content-type');\n return typeHeader != null && typeHeader.indexOf('application/json') > -1;\n }\n\n private isTextResponse(response: Response): boolean {\n const typeHeader = response.headers.get('content-type');\n return typeHeader != null && typeHeader.indexOf('text') > -1;\n }\n}\n","import { BaseResponse } from './baseResponse';\nimport { PlanResponse } from './planResponse';\n\nimport { PlanType } from '../../enums/planType';\n\nexport class OrganizationResponse extends BaseResponse {\n id: string;\n identifier: string;\n name: string;\n businessName: string;\n businessAddress1: string;\n businessAddress2: string;\n businessAddress3: string;\n businessCountry: string;\n businessTaxNumber: string;\n billingEmail: string;\n plan: PlanResponse;\n planType: PlanType;\n seats: number;\n maxCollections: number;\n maxStorageGb: number;\n useGroups: boolean;\n useDirectory: boolean;\n useEvents: boolean;\n useTotp: boolean;\n use2fa: boolean;\n useApi: boolean;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.identifier = this.getResponseProperty('Identifier');\n this.name = this.getResponseProperty('Name');\n this.businessName = this.getResponseProperty('BusinessName');\n this.businessAddress1 = this.getResponseProperty('BusinessAddress1');\n this.businessAddress2 = this.getResponseProperty('BusinessAddress2');\n this.businessAddress3 = this.getResponseProperty('BusinessAddress3');\n this.businessCountry = this.getResponseProperty('BusinessCountry');\n this.businessTaxNumber = this.getResponseProperty('BusinessTaxNumber');\n this.billingEmail = this.getResponseProperty('BillingEmail');\n const plan = this.getResponseProperty('Plan');\n this.plan = plan == null ? null : new PlanResponse(plan);\n this.planType = this.getResponseProperty('PlanType');\n this.seats = this.getResponseProperty('Seats');\n this.maxCollections = this.getResponseProperty('MaxCollections');\n this.maxStorageGb = this.getResponseProperty('MaxStorageGb');\n this.useGroups = this.getResponseProperty('UseGroups');\n this.useDirectory = this.getResponseProperty('UseDirectory');\n this.useEvents = this.getResponseProperty('UseEvents');\n this.useTotp = this.getResponseProperty('UseTotp');\n this.use2fa = this.getResponseProperty('Use2fa');\n this.useApi = this.getResponseProperty('UseApi');\n }\n}\n","import { PlanType } from '../../enums/planType';\nimport { ProductType } from '../../enums/productType';\n\nimport { BaseResponse } from './baseResponse';\n\nexport class PlanResponse extends BaseResponse {\n type: PlanType;\n product: ProductType;\n name: string;\n isAnnual: boolean;\n nameLocalizationKey: string;\n descriptionLocalizationKey: string;\n canBeUsedByBusiness: boolean;\n baseSeats: number;\n baseStorageGb: number;\n maxCollections: number;\n maxUsers: number;\n\n hasAdditionalSeatsOption: boolean;\n maxAdditionalSeats: number;\n hasAdditionalStorageOption: boolean;\n maxAdditionalStorage: number;\n hasPremiumAccessOption: boolean;\n trialPeriodDays: number;\n\n hasSelfHost: boolean;\n hasPolicies: boolean;\n hasGroups: boolean;\n hasDirectory: boolean;\n hasEvents: boolean;\n hasTotp: boolean;\n has2fa: boolean;\n hasApi: boolean;\n hasSso: boolean;\n usersGetPremium: boolean;\n\n upgradeSortOrder: number;\n displaySortOrder: number;\n legacyYear: number;\n disabled: boolean;\n\n stripePlanId: string;\n stripeSeatPlanId: string;\n stripeStoragePlanId: string;\n stripePremiumAccessPlanId: string;\n basePrice: number;\n seatPrice: number;\n additionalStoragePricePerGb: number;\n premiumAccessOptionPrice: number;\n\n constructor(response: any) {\n super(response);\n this.type = this.getResponseProperty('Type');\n this.product = this.getResponseProperty('Product');\n this.name = this.getResponseProperty('Name');\n this.isAnnual = this.getResponseProperty('IsAnnual');\n this.nameLocalizationKey = this.getResponseProperty('NameLocalizationKey');\n this.descriptionLocalizationKey = this.getResponseProperty('DescriptionLocalizationKey');\n this.canBeUsedByBusiness = this.getResponseProperty('CanBeUsedByBusiness');\n this.baseSeats = this.getResponseProperty('BaseSeats');\n this.baseStorageGb = this.getResponseProperty('BaseStorageGb');\n this.maxCollections = this.getResponseProperty('MaxCollections');\n this.maxUsers = this.getResponseProperty('MaxUsers');\n this.hasAdditionalSeatsOption = this.getResponseProperty('HasAdditionalSeatsOption');\n this.maxAdditionalSeats = this.getResponseProperty('MaxAdditionalSeats');\n this.hasAdditionalStorageOption = this.getResponseProperty('HasAdditionalStorageOption');\n this.maxAdditionalStorage = this.getResponseProperty('MaxAdditionalStorage');\n this.hasPremiumAccessOption = this.getResponseProperty('HasPremiumAccessOption');\n this.trialPeriodDays = this.getResponseProperty('TrialPeriodDays');\n this.hasSelfHost = this.getResponseProperty('HasSelfHost');\n this.hasPolicies = this.getResponseProperty('HasPolicies');\n this.hasGroups = this.getResponseProperty('HasGroups');\n this.hasDirectory = this.getResponseProperty('HasDirectory');\n this.hasEvents = this.getResponseProperty('HasEvents');\n this.hasTotp = this.getResponseProperty('HasTotp');\n this.has2fa = this.getResponseProperty('Has2fa');\n this.hasApi = this.getResponseProperty('HasApi');\n this.hasSso = this.getResponseProperty('HasSso');\n this.usersGetPremium = this.getResponseProperty('UsersGetPremium');\n this.upgradeSortOrder = this.getResponseProperty('UpgradeSortOrder');\n this.displaySortOrder = this.getResponseProperty('SortOrder');\n this.legacyYear = this.getResponseProperty('LegacyYear');\n this.disabled = this.getResponseProperty('Disabled');\n this.stripePlanId = this.getResponseProperty('StripePlanId');\n this.stripeSeatPlanId = this.getResponseProperty('StripeSeatPlanId');\n this.stripeStoragePlanId = this.getResponseProperty('StripeStoragePlanId');\n this.stripePremiumAccessPlanId = this.getResponseProperty('StripePremiumAccessPlanId');\n this.basePrice = this.getResponseProperty('BasePrice');\n this.seatPrice = this.getResponseProperty('SeatPrice');\n this.additionalStoragePricePerGb = this.getResponseProperty('AdditionalStoragePricePerGb');\n this.premiumAccessOptionPrice = this.getResponseProperty('PremiumAccessOptionPrice');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class SubscriptionResponse extends BaseResponse {\n storageName: string;\n storageGb: number;\n maxStorageGb: number;\n subscription: BillingSubscriptionResponse;\n upcomingInvoice: BillingSubscriptionUpcomingInvoiceResponse;\n license: any;\n expiration: string;\n usingInAppPurchase: boolean;\n\n constructor(response: any) {\n super(response);\n this.storageName = this.getResponseProperty('StorageName');\n this.storageGb = this.getResponseProperty('StorageGb');\n this.maxStorageGb = this.getResponseProperty('MaxStorageGb');\n this.license = this.getResponseProperty('License');\n this.expiration = this.getResponseProperty('Expiration');\n this.usingInAppPurchase = this.getResponseProperty('UsingInAppPurchase');\n const subscription = this.getResponseProperty('Subscription');\n const upcomingInvoice = this.getResponseProperty('UpcomingInvoice');\n this.subscription = subscription == null ? null : new BillingSubscriptionResponse(subscription);\n this.upcomingInvoice = upcomingInvoice == null ? null :\n new BillingSubscriptionUpcomingInvoiceResponse(upcomingInvoice);\n }\n}\n\nexport class BillingSubscriptionResponse extends BaseResponse {\n trialStartDate: string;\n trialEndDate: string;\n periodStartDate: string;\n periodEndDate: string;\n cancelledDate: string;\n cancelAtEndDate: boolean;\n status: string;\n cancelled: boolean;\n items: BillingSubscriptionItemResponse[] = [];\n\n constructor(response: any) {\n super(response);\n this.trialEndDate = this.getResponseProperty('TrialStartDate');\n this.trialEndDate = this.getResponseProperty('TrialEndDate');\n this.periodStartDate = this.getResponseProperty('PeriodStartDate');\n this.periodEndDate = this.getResponseProperty('PeriodEndDate');\n this.cancelledDate = this.getResponseProperty('CancelledDate');\n this.cancelAtEndDate = this.getResponseProperty('CancelAtEndDate');\n this.status = this.getResponseProperty('Status');\n this.cancelled = this.getResponseProperty('Cancelled');\n const items = this.getResponseProperty('Items');\n if (items != null) {\n this.items = items.map((i: any) => new BillingSubscriptionItemResponse(i));\n }\n }\n}\n\nexport class BillingSubscriptionItemResponse extends BaseResponse {\n name: string;\n amount: number;\n quantity: number;\n interval: string;\n\n constructor(response: any) {\n super(response);\n this.name = this.getResponseProperty('Name');\n this.amount = this.getResponseProperty('Amount');\n this.quantity = this.getResponseProperty('Quantity');\n this.interval = this.getResponseProperty('Interval');\n }\n}\n\nexport class BillingSubscriptionUpcomingInvoiceResponse extends BaseResponse {\n date: string;\n amount: number;\n\n constructor(response: any) {\n super(response);\n this.date = this.getResponseProperty('Date');\n this.amount = this.getResponseProperty('Amount');\n }\n}\n","import { Utils } from '../../misc/utils';\nimport { BaseResponse } from './baseResponse';\n\nexport class TwoFactorWebAuthnResponse extends BaseResponse {\n enabled: boolean;\n keys: KeyResponse[];\n\n constructor(response: any) {\n super(response);\n this.enabled = this.getResponseProperty('Enabled');\n const keys = this.getResponseProperty('Keys');\n this.keys = keys == null ? null : keys.map((k: any) => new KeyResponse(k));\n }\n}\n\nexport class KeyResponse extends BaseResponse {\n name: string;\n id: number;\n migrated: boolean;\n\n constructor(response: any) {\n super(response);\n this.name = this.getResponseProperty('Name');\n this.id = this.getResponseProperty('Id');\n this.migrated = this.getResponseProperty('Migrated');\n }\n}\n\nexport class ChallengeResponse extends BaseResponse implements PublicKeyCredentialCreationOptions {\n attestation?: AttestationConveyancePreference;\n authenticatorSelection?: AuthenticatorSelectionCriteria;\n challenge: BufferSource;\n excludeCredentials?: PublicKeyCredentialDescriptor[];\n extensions?: AuthenticationExtensionsClientInputs;\n pubKeyCredParams: PublicKeyCredentialParameters[];\n rp: PublicKeyCredentialRpEntity;\n timeout?: number;\n user: PublicKeyCredentialUserEntity;\n\n constructor(response: any) {\n super(response);\n this.attestation = this.getResponseProperty('attestation');\n this.authenticatorSelection = this.getResponseProperty('authenticatorSelection');\n this.challenge = Utils.fromUrlB64ToArray(this.getResponseProperty('challenge'));\n this.excludeCredentials = this.getResponseProperty('excludeCredentials').map((c: any) => {\n c.id = Utils.fromUrlB64ToArray(c.id).buffer;\n return c;\n });\n this.extensions = this.getResponseProperty('extensions');\n this.pubKeyCredParams = this.getResponseProperty('pubKeyCredParams');\n this.rp = this.getResponseProperty('rp');\n this.timeout = this.getResponseProperty('timeout');\n\n const user = this.getResponseProperty('user');\n user.id = Utils.fromUrlB64ToArray(user.id);\n\n this.user = user;\n }\n}\n","import { Utils } from '../misc/utils';\n\nimport { AppIdService as AppIdServiceAbstraction } from '../abstractions/appId.service';\nimport { StorageService } from '../abstractions/storage.service';\n\nexport class AppIdService implements AppIdServiceAbstraction {\n constructor(private storageService: StorageService) {\n }\n\n getAppId(): Promise {\n return this.makeAndGetAppId('appId');\n }\n\n getAnonymousAppId(): Promise {\n return this.makeAndGetAppId('anonymousAppId');\n }\n\n private async makeAndGetAppId(key: string) {\n const existingId = await this.storageService.get(key);\n if (existingId != null) {\n return existingId;\n }\n\n const guid = Utils.newGuid();\n await this.storageService.save(key, guid);\n return guid;\n }\n}\n","import { ApiService } from '../abstractions/api.service';\nimport { AuditService as AuditServiceAbstraction } from '../abstractions/audit.service';\nimport { CryptoFunctionService } from '../abstractions/cryptoFunction.service';\n\nimport { throttle } from '../misc/throttle';\nimport { Utils } from '../misc/utils';\n\nimport { BreachAccountResponse } from '../models/response/breachAccountResponse';\nimport { ErrorResponse } from '../models/response/errorResponse';\n\nconst PwnedPasswordsApi = 'https://api.pwnedpasswords.com/range/';\n\nexport class AuditService implements AuditServiceAbstraction {\n constructor(private cryptoFunctionService: CryptoFunctionService, private apiService: ApiService) { }\n\n @throttle(100, () => 'passwordLeaked')\n async passwordLeaked(password: string): Promise {\n const hashBytes = await this.cryptoFunctionService.hash(password, 'sha1');\n const hash = Utils.fromBufferToHex(hashBytes).toUpperCase();\n const hashStart = hash.substr(0, 5);\n const hashEnding = hash.substr(5);\n\n const response = await this.apiService.nativeFetch(new Request(PwnedPasswordsApi + hashStart));\n const leakedHashes = await response.text();\n const match = leakedHashes.split(/\\r?\\n/).find(v => {\n return v.split(':')[0] === hashEnding;\n });\n\n return match != null ? parseInt(match.split(':')[1], 10) : 0;\n }\n\n async breachedAccounts(username: string): Promise {\n try {\n return await this.apiService.getHibpBreach(username);\n } catch (e) {\n const error = e as ErrorResponse;\n if (error.statusCode === 404) {\n return [];\n }\n throw new Error();\n }\n }\n}\n","import { CipherType } from '../enums/cipherType';\nimport { FieldType } from '../enums/fieldType';\nimport { UriMatchType } from '../enums/uriMatchType';\n\nimport { CipherData } from '../models/data/cipherData';\n\nimport { Attachment } from '../models/domain/attachment';\nimport { Card } from '../models/domain/card';\nimport { Cipher } from '../models/domain/cipher';\nimport Domain from '../models/domain/domainBase';\nimport { EncArrayBuffer } from '../models/domain/encArrayBuffer';\nimport { EncString } from '../models/domain/encString';\nimport { Field } from '../models/domain/field';\nimport { Identity } from '../models/domain/identity';\nimport { Login } from '../models/domain/login';\nimport { LoginUri } from '../models/domain/loginUri';\nimport { Password } from '../models/domain/password';\nimport { SecureNote } from '../models/domain/secureNote';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nimport { AttachmentRequest } from '../models/request/attachmentRequest';\nimport { CipherBulkDeleteRequest } from '../models/request/cipherBulkDeleteRequest';\nimport { CipherBulkMoveRequest } from '../models/request/cipherBulkMoveRequest';\nimport { CipherBulkRestoreRequest } from '../models/request/cipherBulkRestoreRequest';\nimport { CipherBulkShareRequest } from '../models/request/cipherBulkShareRequest';\nimport { CipherCollectionsRequest } from '../models/request/cipherCollectionsRequest';\nimport { CipherCreateRequest } from '../models/request/cipherCreateRequest';\nimport { CipherRequest } from '../models/request/cipherRequest';\nimport { CipherShareRequest } from '../models/request/cipherShareRequest';\n\nimport { CipherResponse } from '../models/response/cipherResponse';\nimport { ErrorResponse } from '../models/response/errorResponse';\n\nimport { AttachmentView } from '../models/view/attachmentView';\nimport { CipherView } from '../models/view/cipherView';\nimport { FieldView } from '../models/view/fieldView';\nimport { PasswordHistoryView } from '../models/view/passwordHistoryView';\nimport { View } from '../models/view/view';\n\nimport { SortedCiphersCache } from '../models/domain/sortedCiphersCache';\n\nimport { ApiService } from '../abstractions/api.service';\nimport { CipherService as CipherServiceAbstraction } from '../abstractions/cipher.service';\nimport { CryptoService } from '../abstractions/crypto.service';\nimport { FileUploadService } from '../abstractions/fileUpload.service';\nimport { I18nService } from '../abstractions/i18n.service';\nimport { SearchService } from '../abstractions/search.service';\nimport { SettingsService } from '../abstractions/settings.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { UserService } from '../abstractions/user.service';\n\nimport { ConstantsService } from './constants.service';\n\nimport { sequentialize } from '../misc/sequentialize';\nimport { Utils } from '../misc/utils';\n\nconst Keys = {\n ciphersPrefix: 'ciphers_',\n localData: 'sitesLocalData',\n neverDomains: 'neverDomains',\n};\n\nconst DomainMatchBlacklist = new Map>([\n ['google.com', new Set(['script.google.com'])],\n]);\n\nexport class CipherService implements CipherServiceAbstraction {\n // tslint:disable-next-line\n _decryptedCipherCache: CipherView[];\n\n private sortedCiphersCache: SortedCiphersCache = new SortedCiphersCache(this.sortCiphersByLastUsed);\n\n constructor(private cryptoService: CryptoService, private userService: UserService,\n private settingsService: SettingsService, private apiService: ApiService,\n private fileUploadService: FileUploadService, private storageService: StorageService,\n private i18nService: I18nService, private searchService: () => SearchService) {\n }\n\n get decryptedCipherCache() {\n return this._decryptedCipherCache;\n }\n set decryptedCipherCache(value: CipherView[]) {\n this._decryptedCipherCache = value;\n if (this.searchService != null) {\n if (value == null) {\n this.searchService().clearIndex();\n } else {\n this.searchService().indexCiphers();\n }\n }\n }\n\n clearCache(): void {\n this.decryptedCipherCache = null;\n this.sortedCiphersCache.clear();\n }\n\n async encrypt(model: CipherView, key?: SymmetricCryptoKey, originalCipher: Cipher = null): Promise {\n // Adjust password history\n if (model.id != null) {\n if (originalCipher == null) {\n originalCipher = await this.get(model.id);\n }\n if (originalCipher != null) {\n const existingCipher = await originalCipher.decrypt();\n model.passwordHistory = existingCipher.passwordHistory || [];\n if (model.type === CipherType.Login && existingCipher.type === CipherType.Login) {\n if (existingCipher.login.password != null && existingCipher.login.password !== '' &&\n existingCipher.login.password !== model.login.password) {\n const ph = new PasswordHistoryView();\n ph.password = existingCipher.login.password;\n ph.lastUsedDate = model.login.passwordRevisionDate = new Date();\n model.passwordHistory.splice(0, 0, ph);\n } else {\n model.login.passwordRevisionDate = existingCipher.login.passwordRevisionDate;\n }\n }\n if (existingCipher.hasFields) {\n const existingHiddenFields = existingCipher.fields.filter(f => f.type === FieldType.Hidden &&\n f.name != null && f.name !== '' && f.value != null && f.value !== '');\n const hiddenFields = model.fields == null ? [] :\n model.fields.filter(f => f.type === FieldType.Hidden && f.name != null && f.name !== '');\n existingHiddenFields.forEach(ef => {\n const matchedField = hiddenFields.find(f => f.name === ef.name);\n if (matchedField == null || matchedField.value !== ef.value) {\n const ph = new PasswordHistoryView();\n ph.password = ef.name + ': ' + ef.value;\n ph.lastUsedDate = new Date();\n model.passwordHistory.splice(0, 0, ph);\n }\n });\n }\n }\n if (model.passwordHistory != null && model.passwordHistory.length === 0) {\n model.passwordHistory = null;\n } else if (model.passwordHistory != null && model.passwordHistory.length > 5) {\n // only save last 5 history\n model.passwordHistory = model.passwordHistory.slice(0, 5);\n }\n }\n\n const cipher = new Cipher();\n cipher.id = model.id;\n cipher.folderId = model.folderId;\n cipher.favorite = model.favorite;\n cipher.organizationId = model.organizationId;\n cipher.type = model.type;\n cipher.collectionIds = model.collectionIds;\n cipher.revisionDate = model.revisionDate;\n\n if (key == null && cipher.organizationId != null) {\n key = await this.cryptoService.getOrgKey(cipher.organizationId);\n if (key == null) {\n throw new Error('Cannot encrypt cipher for organization. No key.');\n }\n }\n await Promise.all([\n this.encryptObjProperty(model, cipher, {\n name: null,\n notes: null,\n }, key),\n this.encryptCipherData(cipher, model, key),\n this.encryptFields(model.fields, key).then(fields => {\n cipher.fields = fields;\n }),\n this.encryptPasswordHistories(model.passwordHistory, key).then(ph => {\n cipher.passwordHistory = ph;\n }),\n this.encryptAttachments(model.attachments, key).then(attachments => {\n cipher.attachments = attachments;\n }),\n ]);\n\n return cipher;\n }\n\n async encryptAttachments(attachmentsModel: AttachmentView[], key: SymmetricCryptoKey): Promise {\n if (attachmentsModel == null || attachmentsModel.length === 0) {\n return null;\n }\n\n const promises: Promise[] = [];\n const encAttachments: Attachment[] = [];\n attachmentsModel.forEach(async model => {\n const attachment = new Attachment();\n attachment.id = model.id;\n attachment.size = model.size;\n attachment.sizeName = model.sizeName;\n attachment.url = model.url;\n const promise = this.encryptObjProperty(model, attachment, {\n fileName: null,\n }, key).then(async () => {\n if (model.key != null) {\n attachment.key = await this.cryptoService.encrypt(model.key.key, key);\n }\n encAttachments.push(attachment);\n });\n promises.push(promise);\n });\n\n await Promise.all(promises);\n return encAttachments;\n }\n\n async encryptFields(fieldsModel: FieldView[], key: SymmetricCryptoKey): Promise {\n if (!fieldsModel || !fieldsModel.length) {\n return null;\n }\n\n const self = this;\n const encFields: Field[] = [];\n await fieldsModel.reduce((promise, field) => {\n return promise.then(() => {\n return self.encryptField(field, key);\n }).then((encField: Field) => {\n encFields.push(encField);\n });\n }, Promise.resolve());\n\n return encFields;\n }\n\n async encryptField(fieldModel: FieldView, key: SymmetricCryptoKey): Promise {\n const field = new Field();\n field.type = fieldModel.type;\n // normalize boolean type field values\n if (fieldModel.type === FieldType.Boolean && fieldModel.value !== 'true') {\n fieldModel.value = 'false';\n }\n\n await this.encryptObjProperty(fieldModel, field, {\n name: null,\n value: null,\n }, key);\n\n return field;\n }\n\n async encryptPasswordHistories(phModels: PasswordHistoryView[], key: SymmetricCryptoKey): Promise {\n if (!phModels || !phModels.length) {\n return null;\n }\n\n const self = this;\n const encPhs: Password[] = [];\n await phModels.reduce((promise, ph) => {\n return promise.then(() => {\n return self.encryptPasswordHistory(ph, key);\n }).then((encPh: Password) => {\n encPhs.push(encPh);\n });\n }, Promise.resolve());\n\n return encPhs;\n }\n\n async encryptPasswordHistory(phModel: PasswordHistoryView, key: SymmetricCryptoKey): Promise {\n const ph = new Password();\n ph.lastUsedDate = phModel.lastUsedDate;\n\n await this.encryptObjProperty(phModel, ph, {\n password: null,\n }, key);\n\n return ph;\n }\n\n async get(id: string): Promise {\n const userId = await this.userService.getUserId();\n const localData = await this.storageService.get(Keys.localData);\n const ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(\n Keys.ciphersPrefix + userId);\n if (ciphers == null || !ciphers.hasOwnProperty(id)) {\n return null;\n }\n\n return new Cipher(ciphers[id], false, localData ? localData[id] : null);\n }\n\n async getAll(): Promise {\n const userId = await this.userService.getUserId();\n const localData = await this.storageService.get(Keys.localData);\n const ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(\n Keys.ciphersPrefix + userId);\n const response: Cipher[] = [];\n for (const id in ciphers) {\n if (ciphers.hasOwnProperty(id)) {\n response.push(new Cipher(ciphers[id], false, localData ? localData[id] : null));\n }\n }\n return response;\n }\n\n @sequentialize(() => 'getAllDecrypted')\n async getAllDecrypted(): Promise {\n if (this.decryptedCipherCache != null) {\n const userId = await this.userService.getUserId();\n if ((this.searchService().indexedEntityId ?? userId) !== userId)\n {\n await this.searchService().indexCiphers(userId, this.decryptedCipherCache);\n }\n return this.decryptedCipherCache;\n }\n\n const decCiphers: CipherView[] = [];\n const hasKey = await this.cryptoService.hasKey();\n if (!hasKey) {\n throw new Error('No key.');\n }\n\n const promises: any[] = [];\n const ciphers = await this.getAll();\n ciphers.forEach(cipher => {\n promises.push(cipher.decrypt().then(c => decCiphers.push(c)));\n });\n\n await Promise.all(promises);\n decCiphers.sort(this.getLocaleSortingFunction());\n this.decryptedCipherCache = decCiphers;\n return this.decryptedCipherCache;\n }\n\n async getAllDecryptedForGrouping(groupingId: string, folder: boolean = true): Promise {\n const ciphers = await this.getAllDecrypted();\n\n return ciphers.filter(cipher => {\n if (cipher.isDeleted) {\n return false;\n }\n if (folder && cipher.folderId === groupingId) {\n return true;\n } else if (!folder && cipher.collectionIds != null && cipher.collectionIds.indexOf(groupingId) > -1) {\n return true;\n }\n\n return false;\n });\n }\n\n async getAllDecryptedForUrl(url: string, includeOtherTypes?: CipherType[],\n defaultMatch: UriMatchType = null): Promise {\n if (url == null && includeOtherTypes == null) {\n return Promise.resolve([]);\n }\n\n const domain = Utils.getDomain(url);\n const eqDomainsPromise = domain == null ? Promise.resolve([]) :\n this.settingsService.getEquivalentDomains().then((eqDomains: any[][]) => {\n let matches: any[] = [];\n eqDomains.forEach(eqDomain => {\n if (eqDomain.length && eqDomain.indexOf(domain) >= 0) {\n matches = matches.concat(eqDomain);\n }\n });\n\n if (!matches.length) {\n matches.push(domain);\n }\n\n return matches;\n });\n\n const result = await Promise.all([eqDomainsPromise, this.getAllDecrypted()]);\n const matchingDomains = result[0];\n const ciphers = result[1];\n\n if (defaultMatch == null) {\n defaultMatch = await this.storageService.get(ConstantsService.defaultUriMatch);\n if (defaultMatch == null) {\n defaultMatch = UriMatchType.Domain;\n }\n }\n\n return ciphers.filter(cipher => {\n if (cipher.deletedDate != null) {\n return false;\n }\n if (includeOtherTypes != null && includeOtherTypes.indexOf(cipher.type) > -1) {\n return true;\n }\n\n if (url != null && cipher.type === CipherType.Login && cipher.login.uris != null) {\n for (let i = 0; i < cipher.login.uris.length; i++) {\n const u = cipher.login.uris[i];\n if (u.uri == null) {\n continue;\n }\n\n const match = u.match == null ? defaultMatch : u.match;\n switch (match) {\n case UriMatchType.Domain:\n if (domain != null && u.domain != null && matchingDomains.indexOf(u.domain) > -1) {\n if (DomainMatchBlacklist.has(u.domain)) {\n const domainUrlHost = Utils.getHost(url);\n if (!DomainMatchBlacklist.get(u.domain).has(domainUrlHost)) {\n return true;\n }\n } else {\n return true;\n }\n }\n break;\n case UriMatchType.Host:\n const urlHost = Utils.getHost(url);\n if (urlHost != null && urlHost === Utils.getHost(u.uri)) {\n return true;\n }\n break;\n case UriMatchType.Exact:\n if (url === u.uri) {\n return true;\n }\n break;\n case UriMatchType.StartsWith:\n if (url.startsWith(u.uri)) {\n return true;\n }\n break;\n case UriMatchType.RegularExpression:\n try {\n const regex = new RegExp(u.uri, 'i');\n if (regex.test(url)) {\n return true;\n }\n } catch { }\n break;\n case UriMatchType.Never:\n default:\n break;\n }\n }\n }\n\n return false;\n });\n }\n\n async getAllFromApiForOrganization(organizationId: string): Promise {\n const ciphers = await this.apiService.getCiphersOrganization(organizationId);\n if (ciphers != null && ciphers.data != null && ciphers.data.length) {\n const decCiphers: CipherView[] = [];\n const promises: any[] = [];\n ciphers.data.forEach(r => {\n const data = new CipherData(r);\n const cipher = new Cipher(data);\n promises.push(cipher.decrypt().then(c => decCiphers.push(c)));\n });\n await Promise.all(promises);\n decCiphers.sort(this.getLocaleSortingFunction());\n return decCiphers;\n } else {\n return [];\n }\n }\n\n async getLastUsedForUrl(url: string): Promise {\n return this.getCipherForUrl(url, true, false);\n }\n\n async getLastLaunchedForUrl(url: string): Promise {\n return this.getCipherForUrl(url, false, true);\n }\n\n async getNextCipherForUrl(url: string): Promise {\n return this.getCipherForUrl(url, false, false);\n }\n\n updateLastUsedIndexForUrl(url: string) {\n this.sortedCiphersCache.updateLastUsedIndex(url);\n }\n\n async updateLastUsedDate(id: string): Promise {\n let ciphersLocalData = await this.storageService.get(Keys.localData);\n if (!ciphersLocalData) {\n ciphersLocalData = {};\n }\n\n if (ciphersLocalData[id]) {\n ciphersLocalData[id].lastUsedDate = new Date().getTime();\n } else {\n ciphersLocalData[id] = {\n lastUsedDate: new Date().getTime(),\n };\n }\n\n await this.storageService.save(Keys.localData, ciphersLocalData);\n\n if (this.decryptedCipherCache == null) {\n return;\n }\n\n for (let i = 0; i < this.decryptedCipherCache.length; i++) {\n const cached = this.decryptedCipherCache[i];\n if (cached.id === id) {\n cached.localData = ciphersLocalData[id];\n break;\n }\n }\n }\n\n async updateLastLaunchedDate(id: string): Promise {\n let ciphersLocalData = await this.storageService.get(Keys.localData);\n if (!ciphersLocalData) {\n ciphersLocalData = {};\n }\n\n if (ciphersLocalData[id]) {\n ciphersLocalData[id].lastLaunched = new Date().getTime();\n } else {\n ciphersLocalData[id] = {\n lastUsedDate: new Date().getTime(),\n };\n }\n\n await this.storageService.save(Keys.localData, ciphersLocalData);\n\n if (this.decryptedCipherCache == null) {\n return;\n }\n\n for (let i = 0; i < this.decryptedCipherCache.length; i++) {\n const cached = this.decryptedCipherCache[i];\n if (cached.id === id) {\n cached.localData = ciphersLocalData[id];\n break;\n }\n }\n }\n\n async saveNeverDomain(domain: string): Promise {\n if (domain == null) {\n return;\n }\n\n let domains = await this.storageService.get<{ [id: string]: any; }>(Keys.neverDomains);\n if (!domains) {\n domains = {};\n }\n domains[domain] = null;\n await this.storageService.save(Keys.neverDomains, domains);\n }\n\n async saveWithServer(cipher: Cipher): Promise {\n let response: CipherResponse;\n if (cipher.id == null) {\n if (cipher.collectionIds != null) {\n const request = new CipherCreateRequest(cipher);\n response = await this.apiService.postCipherCreate(request);\n } else {\n const request = new CipherRequest(cipher);\n response = await this.apiService.postCipher(request);\n }\n cipher.id = response.id;\n } else {\n const request = new CipherRequest(cipher);\n response = await this.apiService.putCipher(cipher.id, request);\n }\n\n const userId = await this.userService.getUserId();\n const data = new CipherData(response, userId, cipher.collectionIds);\n await this.upsert(data);\n }\n\n async shareWithServer(cipher: CipherView, organizationId: string, collectionIds: string[]): Promise {\n const attachmentPromises: Promise[] = [];\n if (cipher.attachments != null) {\n cipher.attachments.forEach(attachment => {\n if (attachment.key == null) {\n attachmentPromises.push(this.shareAttachmentWithServer(attachment, cipher.id, organizationId));\n }\n });\n }\n await Promise.all(attachmentPromises);\n\n cipher.organizationId = organizationId;\n cipher.collectionIds = collectionIds;\n const encCipher = await this.encrypt(cipher);\n const request = new CipherShareRequest(encCipher);\n const response = await this.apiService.putShareCipher(cipher.id, request);\n const userId = await this.userService.getUserId();\n const data = new CipherData(response, userId, collectionIds);\n await this.upsert(data);\n }\n\n async shareManyWithServer(ciphers: CipherView[], organizationId: string, collectionIds: string[]): Promise {\n const promises: Promise[] = [];\n const encCiphers: Cipher[] = [];\n for (const cipher of ciphers) {\n cipher.organizationId = organizationId;\n cipher.collectionIds = collectionIds;\n promises.push(this.encrypt(cipher).then(c => {\n encCiphers.push(c);\n }));\n }\n await Promise.all(promises);\n const request = new CipherBulkShareRequest(encCiphers, collectionIds);\n await this.apiService.putShareCiphers(request);\n const userId = await this.userService.getUserId();\n await this.upsert(encCiphers.map(c => c.toCipherData(userId)));\n }\n\n saveAttachmentWithServer(cipher: Cipher, unencryptedFile: any, admin = false): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsArrayBuffer(unencryptedFile);\n reader.onload = async (evt: any) => {\n try {\n const cData = await this.saveAttachmentRawWithServer(cipher,\n unencryptedFile.name, evt.target.result, admin);\n resolve(cData);\n } catch (e) {\n reject(e);\n }\n };\n reader.onerror = evt => {\n reject('Error reading file.');\n };\n });\n }\n\n async saveAttachmentRawWithServer(cipher: Cipher, filename: string,\n data: ArrayBuffer, admin = false): Promise {\n const key = await this.cryptoService.getOrgKey(cipher.organizationId);\n const encFileName = await this.cryptoService.encrypt(filename, key);\n\n const dataEncKey = await this.cryptoService.makeEncKey(key);\n const encData = await this.cryptoService.encryptToBytes(data, dataEncKey[0]);\n\n const request: AttachmentRequest = {\n key: dataEncKey[1].encryptedString,\n fileName: encFileName.encryptedString,\n fileSize: encData.buffer.byteLength,\n adminRequest: admin,\n };\n\n let response: CipherResponse;\n try {\n const uploadDataResponse = await this.apiService.postCipherAttachment(cipher.id, request);\n response = admin ? uploadDataResponse.cipherMiniResponse : uploadDataResponse.cipherResponse;\n await this.fileUploadService.uploadCipherAttachment(admin, uploadDataResponse, filename, encData);\n } catch (e) {\n if (e instanceof ErrorResponse && (e as ErrorResponse).statusCode === 404 || (e as ErrorResponse).statusCode === 405) {\n response = await this.legacyServerAttachmentFileUpload(admin, cipher.id, encFileName, encData, dataEncKey[1]);\n } else if (e instanceof ErrorResponse) {\n throw new Error((e as ErrorResponse).getSingleMessage());\n } else {\n throw e;\n }\n }\n\n const userId = await this.userService.getUserId();\n const cData = new CipherData(response, userId, cipher.collectionIds);\n if (!admin) {\n await this.upsert(cData);\n }\n return new Cipher(cData);\n }\n\n /**\n * @deprecated Mar 25 2021: This method has been deprecated in favor of direct uploads.\n * This method still exists for backward compatibility with old server versions.\n */\n async legacyServerAttachmentFileUpload(admin: boolean, cipherId: string, encFileName: EncString,\n encData: EncArrayBuffer, key: EncString) {\n const fd = new FormData();\n try {\n const blob = new Blob([encData.buffer], { type: 'application/octet-stream' });\n fd.append('key', key.encryptedString);\n fd.append('data', blob, encFileName.encryptedString);\n } catch (e) {\n if (Utils.isNode && !Utils.isBrowser) {\n fd.append('key', key.encryptedString);\n fd.append('data', Buffer.from(encData.buffer) as any, {\n filepath: encFileName.encryptedString,\n contentType: 'application/octet-stream',\n } as any);\n } else {\n throw e;\n }\n }\n\n let response: CipherResponse;\n try {\n if (admin) {\n response = await this.apiService.postCipherAttachmentAdminLegacy(cipherId, fd);\n } else {\n response = await this.apiService.postCipherAttachmentLegacy(cipherId, fd);\n }\n } catch (e) {\n throw new Error((e as ErrorResponse).getSingleMessage());\n }\n\n return response;\n }\n\n async saveCollectionsWithServer(cipher: Cipher): Promise {\n const request = new CipherCollectionsRequest(cipher.collectionIds);\n await this.apiService.putCipherCollections(cipher.id, request);\n const userId = await this.userService.getUserId();\n const data = cipher.toCipherData(userId);\n await this.upsert(data);\n }\n\n async upsert(cipher: CipherData | CipherData[]): Promise {\n const userId = await this.userService.getUserId();\n let ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(\n Keys.ciphersPrefix + userId);\n if (ciphers == null) {\n ciphers = {};\n }\n\n if (cipher instanceof CipherData) {\n const c = cipher as CipherData;\n ciphers[c.id] = c;\n } else {\n (cipher as CipherData[]).forEach(c => {\n ciphers[c.id] = c;\n });\n }\n\n await this.storageService.save(Keys.ciphersPrefix + userId, ciphers);\n this.decryptedCipherCache = null;\n }\n\n async replace(ciphers: { [id: string]: CipherData; }): Promise {\n const userId = await this.userService.getUserId();\n await this.storageService.save(Keys.ciphersPrefix + userId, ciphers);\n this.decryptedCipherCache = null;\n }\n\n async clear(userId: string): Promise {\n await this.storageService.remove(Keys.ciphersPrefix + userId);\n this.clearCache();\n }\n\n async moveManyWithServer(ids: string[], folderId: string): Promise {\n await this.apiService.putMoveCiphers(new CipherBulkMoveRequest(ids, folderId));\n\n const userId = await this.userService.getUserId();\n let ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(\n Keys.ciphersPrefix + userId);\n if (ciphers == null) {\n ciphers = {};\n }\n\n ids.forEach(id => {\n if (ciphers.hasOwnProperty(id)) {\n ciphers[id].folderId = folderId;\n }\n });\n\n await this.storageService.save(Keys.ciphersPrefix + userId, ciphers);\n this.decryptedCipherCache = null;\n }\n\n async delete(id: string | string[]): Promise {\n const userId = await this.userService.getUserId();\n const ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(\n Keys.ciphersPrefix + userId);\n if (ciphers == null) {\n return;\n }\n\n if (typeof id === 'string') {\n if (ciphers[id] == null) {\n return;\n }\n delete ciphers[id];\n } else {\n (id as string[]).forEach(i => {\n delete ciphers[i];\n });\n }\n\n await this.storageService.save(Keys.ciphersPrefix + userId, ciphers);\n this.decryptedCipherCache = null;\n }\n\n async deleteWithServer(id: string): Promise {\n await this.apiService.deleteCipher(id);\n await this.delete(id);\n }\n\n async deleteManyWithServer(ids: string[]): Promise {\n await this.apiService.deleteManyCiphers(new CipherBulkDeleteRequest(ids));\n await this.delete(ids);\n }\n\n async deleteAttachment(id: string, attachmentId: string): Promise {\n const userId = await this.userService.getUserId();\n const ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(\n Keys.ciphersPrefix + userId);\n\n if (ciphers == null || !ciphers.hasOwnProperty(id) || ciphers[id].attachments == null) {\n return;\n }\n\n for (let i = 0; i < ciphers[id].attachments.length; i++) {\n if (ciphers[id].attachments[i].id === attachmentId) {\n ciphers[id].attachments.splice(i, 1);\n }\n }\n\n await this.storageService.save(Keys.ciphersPrefix + userId, ciphers);\n this.decryptedCipherCache = null;\n }\n\n async deleteAttachmentWithServer(id: string, attachmentId: string): Promise {\n try {\n await this.apiService.deleteCipherAttachment(id, attachmentId);\n } catch (e) {\n return Promise.reject((e as ErrorResponse).getSingleMessage());\n }\n await this.deleteAttachment(id, attachmentId);\n }\n\n sortCiphersByLastUsed(a: CipherView, b: CipherView): number {\n const aLastUsed = a.localData && a.localData.lastUsedDate ? a.localData.lastUsedDate as number : null;\n const bLastUsed = b.localData && b.localData.lastUsedDate ? b.localData.lastUsedDate as number : null;\n\n const bothNotNull = aLastUsed != null && bLastUsed != null;\n if (bothNotNull && aLastUsed < bLastUsed) {\n return 1;\n }\n if (aLastUsed != null && bLastUsed == null) {\n return -1;\n }\n\n if (bothNotNull && aLastUsed > bLastUsed) {\n return -1;\n }\n if (bLastUsed != null && aLastUsed == null) {\n return 1;\n }\n\n return 0;\n }\n\n sortCiphersByLastUsedThenName(a: CipherView, b: CipherView): number {\n const result = this.sortCiphersByLastUsed(a, b);\n if (result !== 0) {\n return result;\n }\n\n return this.getLocaleSortingFunction()(a, b);\n }\n\n getLocaleSortingFunction(): (a: CipherView, b: CipherView) => number {\n return (a, b) => {\n let aName = a.name;\n let bName = b.name;\n\n if (aName == null && bName != null) {\n return -1;\n }\n if (aName != null && bName == null) {\n return 1;\n }\n if (aName == null && bName == null) {\n return 0;\n }\n\n const result = this.i18nService.collator ? this.i18nService.collator.compare(aName, bName) :\n aName.localeCompare(bName);\n\n if (result !== 0 || a.type !== CipherType.Login || b.type !== CipherType.Login) {\n return result;\n }\n\n if (a.login.username != null) {\n aName += a.login.username;\n }\n\n if (b.login.username != null) {\n bName += b.login.username;\n }\n\n return this.i18nService.collator ? this.i18nService.collator.compare(aName, bName) :\n aName.localeCompare(bName);\n };\n }\n\n async softDelete(id: string | string[]): Promise {\n const userId = await this.userService.getUserId();\n const ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(\n Keys.ciphersPrefix + userId);\n if (ciphers == null) {\n return;\n }\n\n const setDeletedDate = (cipherId: string) => {\n if (ciphers[cipherId] == null) {\n return;\n }\n ciphers[cipherId].deletedDate = new Date().toISOString();\n };\n\n if (typeof id === 'string') {\n setDeletedDate(id);\n } else {\n (id as string[]).forEach(setDeletedDate);\n }\n\n await this.storageService.save(Keys.ciphersPrefix + userId, ciphers);\n this.decryptedCipherCache = null;\n }\n\n async softDeleteWithServer(id: string): Promise {\n await this.apiService.putDeleteCipher(id);\n await this.softDelete(id);\n }\n\n async softDeleteManyWithServer(ids: string[]): Promise {\n await this.apiService.putDeleteManyCiphers(new CipherBulkDeleteRequest(ids));\n await this.softDelete(ids);\n }\n\n async restore(cipher: { id: string, revisionDate: string; } | { id: string, revisionDate: string; }[]) {\n const userId = await this.userService.getUserId();\n const ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(\n Keys.ciphersPrefix + userId);\n if (ciphers == null) {\n return;\n }\n\n const clearDeletedDate = (c: { id: string, revisionDate: string; }) => {\n if (ciphers[c.id] == null) {\n return;\n }\n ciphers[c.id].deletedDate = null;\n ciphers[c.id].revisionDate = c.revisionDate;\n };\n\n\n if (cipher.constructor.name === 'Array') {\n (cipher as { id: string, revisionDate: string; }[]).forEach(clearDeletedDate);\n } else {\n clearDeletedDate(cipher as { id: string, revisionDate: string; });\n }\n\n await this.storageService.save(Keys.ciphersPrefix + userId, ciphers);\n this.decryptedCipherCache = null;\n }\n\n async restoreWithServer(id: string): Promise {\n const response = await this.apiService.putRestoreCipher(id);\n await this.restore({ id: id, revisionDate: response.revisionDate });\n }\n\n async restoreManyWithServer(ids: string[]): Promise {\n const response = await this.apiService.putRestoreManyCiphers(new CipherBulkRestoreRequest(ids));\n const restores: { id: string, revisionDate: string; }[] = [];\n for (const cipher of response.data) {\n restores.push({ id: cipher.id, revisionDate: cipher.revisionDate });\n }\n await this.restore(restores);\n }\n\n // Helpers\n\n private async shareAttachmentWithServer(attachmentView: AttachmentView, cipherId: string,\n organizationId: string): Promise {\n const attachmentResponse = await this.apiService.nativeFetch(\n new Request(attachmentView.url, { cache: 'no-store' }));\n if (attachmentResponse.status !== 200) {\n throw Error('Failed to download attachment: ' + attachmentResponse.status.toString());\n }\n\n const buf = await attachmentResponse.arrayBuffer();\n const decBuf = await this.cryptoService.decryptFromBytes(buf, null);\n const key = await this.cryptoService.getOrgKey(organizationId);\n const encFileName = await this.cryptoService.encrypt(attachmentView.fileName, key);\n\n const dataEncKey = await this.cryptoService.makeEncKey(key);\n const encData = await this.cryptoService.encryptToBytes(decBuf, dataEncKey[0]);\n\n const fd = new FormData();\n try {\n const blob = new Blob([encData.buffer], { type: 'application/octet-stream' });\n fd.append('key', dataEncKey[1].encryptedString);\n fd.append('data', blob, encFileName.encryptedString);\n } catch (e) {\n if (Utils.isNode && !Utils.isBrowser) {\n fd.append('key', dataEncKey[1].encryptedString);\n fd.append('data', Buffer.from(encData.buffer) as any, {\n filepath: encFileName.encryptedString,\n contentType: 'application/octet-stream',\n } as any);\n } else {\n throw e;\n }\n }\n\n try {\n await this.apiService.postShareCipherAttachment(cipherId, attachmentView.id, fd, organizationId);\n } catch (e) {\n throw new Error((e as ErrorResponse).getSingleMessage());\n }\n }\n\n private async encryptObjProperty(model: V, obj: D,\n map: any, key: SymmetricCryptoKey): Promise {\n const promises = [];\n const self = this;\n\n for (const prop in map) {\n if (!map.hasOwnProperty(prop)) {\n continue;\n }\n\n // tslint:disable-next-line\n (function (theProp, theObj) {\n const p = Promise.resolve().then(() => {\n const modelProp = (model as any)[(map[theProp] || theProp)];\n if (modelProp && modelProp !== '') {\n return self.cryptoService.encrypt(modelProp, key);\n }\n return null;\n }).then((val: EncString) => {\n (theObj as any)[theProp] = val;\n });\n promises.push(p);\n })(prop, obj);\n }\n\n await Promise.all(promises);\n }\n\n private async encryptCipherData(cipher: Cipher, model: CipherView, key: SymmetricCryptoKey) {\n switch (cipher.type) {\n case CipherType.Login:\n cipher.login = new Login();\n cipher.login.passwordRevisionDate = model.login.passwordRevisionDate;\n await this.encryptObjProperty(model.login, cipher.login, {\n username: null,\n password: null,\n totp: null,\n }, key);\n\n if (model.login.uris != null) {\n cipher.login.uris = [];\n for (let i = 0; i < model.login.uris.length; i++) {\n const loginUri = new LoginUri();\n loginUri.match = model.login.uris[i].match;\n await this.encryptObjProperty(model.login.uris[i], loginUri, {\n uri: null,\n }, key);\n cipher.login.uris.push(loginUri);\n }\n }\n return;\n case CipherType.SecureNote:\n cipher.secureNote = new SecureNote();\n cipher.secureNote.type = model.secureNote.type;\n return;\n case CipherType.Card:\n cipher.card = new Card();\n await this.encryptObjProperty(model.card, cipher.card, {\n cardholderName: null,\n brand: null,\n number: null,\n expMonth: null,\n expYear: null,\n code: null,\n }, key);\n return;\n case CipherType.Identity:\n cipher.identity = new Identity();\n await this.encryptObjProperty(model.identity, cipher.identity, {\n title: null,\n firstName: null,\n middleName: null,\n lastName: null,\n address1: null,\n address2: null,\n address3: null,\n city: null,\n state: null,\n postalCode: null,\n country: null,\n company: null,\n email: null,\n phone: null,\n ssn: null,\n username: null,\n passportNumber: null,\n licenseNumber: null,\n }, key);\n return;\n default:\n throw new Error('Unknown cipher type.');\n }\n }\n\n private async getCipherForUrl(url: string, lastUsed: boolean, lastLaunched: boolean): Promise {\n if (!this.sortedCiphersCache.isCached(url)) {\n const ciphers = await this.getAllDecryptedForUrl(url);\n if (!ciphers) {\n return null;\n }\n this.sortedCiphersCache.addCiphers(url, ciphers);\n }\n\n if (lastLaunched) {\n return this.sortedCiphersCache.getLastLaunched(url);\n } else if (lastUsed) {\n return this.sortedCiphersCache.getLastUsed(url);\n } else {\n return this.sortedCiphersCache.getNext(url);\n }\n }\n}\n","/**\n * Use as a Decorator on async functions, it will prevent multiple 'active' calls as the same time\n *\n * If a promise was returned from a previous call to this function, that hasn't yet resolved it will\n * be returned, instead of calling the original function again\n *\n * Results are not cached, once the promise has returned, the next call will result in a fresh call\n *\n * Read more at https://github.com/bitwarden/jslib/pull/7\n */\nexport function sequentialize(cacheKey: (args: any[]) => string) {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n const originalMethod: () => Promise = descriptor.value;\n const caches = new Map>>();\n\n const getCache = (obj: any) => {\n let cache = caches.get(obj);\n if (cache != null) {\n return cache;\n }\n cache = new Map>();\n caches.set(obj, cache);\n return cache;\n };\n\n return {\n value: function(...args: any[]) {\n const cache = getCache(this);\n const argsCacheKey = cacheKey(args);\n let response = cache.get(argsCacheKey);\n if (response != null) {\n return response;\n }\n\n const onFinally = () => {\n cache.delete(argsCacheKey);\n if (cache.size === 0) {\n caches.delete(this);\n }\n };\n response = originalMethod.apply(this, args).then((val: any) => {\n onFinally();\n return val;\n }).catch((err: any) => {\n onFinally();\n throw err;\n });\n\n cache.set(argsCacheKey, response);\n return response;\n },\n };\n };\n}\n","import { CollectionData } from '../models/data/collectionData';\n\nimport { Collection } from '../models/domain/collection';\nimport { TreeNode } from '../models/domain/treeNode';\n\nimport { CollectionView } from '../models/view/collectionView';\n\nimport { CollectionService as CollectionServiceAbstraction } from '../abstractions/collection.service';\nimport { CryptoService } from '../abstractions/crypto.service';\nimport { I18nService } from '../abstractions/i18n.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { UserService } from '../abstractions/user.service';\n\nimport { ServiceUtils } from '../misc/serviceUtils';\nimport { Utils } from '../misc/utils';\n\nconst Keys = {\n collectionsPrefix: 'collections_',\n};\nconst NestingDelimiter = '/';\n\nexport class CollectionService implements CollectionServiceAbstraction {\n decryptedCollectionCache: CollectionView[];\n\n constructor(private cryptoService: CryptoService, private userService: UserService,\n private storageService: StorageService, private i18nService: I18nService) {\n }\n\n clearCache(): void {\n this.decryptedCollectionCache = null;\n }\n\n async encrypt(model: CollectionView): Promise {\n if (model.organizationId == null) {\n throw new Error('Collection has no organization id.');\n }\n const key = await this.cryptoService.getOrgKey(model.organizationId);\n if (key == null) {\n throw new Error('No key for this collection\\'s organization.');\n }\n const collection = new Collection();\n collection.id = model.id;\n collection.organizationId = model.organizationId;\n collection.readOnly = model.readOnly;\n collection.name = await this.cryptoService.encrypt(model.name, key);\n return collection;\n }\n\n async decryptMany(collections: Collection[]): Promise {\n if (collections == null) {\n return [];\n }\n const decCollections: CollectionView[] = [];\n const promises: Promise[] = [];\n collections.forEach(collection => {\n promises.push(collection.decrypt().then(c => decCollections.push(c)));\n });\n await Promise.all(promises);\n return decCollections.sort(Utils.getSortFunction(this.i18nService, 'name'));\n }\n\n async get(id: string): Promise {\n const userId = await this.userService.getUserId();\n const collections = await this.storageService.get<{ [id: string]: CollectionData; }>(\n Keys.collectionsPrefix + userId);\n if (collections == null || !collections.hasOwnProperty(id)) {\n return null;\n }\n\n return new Collection(collections[id]);\n }\n\n async getAll(): Promise {\n const userId = await this.userService.getUserId();\n const collections = await this.storageService.get<{ [id: string]: CollectionData; }>(\n Keys.collectionsPrefix + userId);\n const response: Collection[] = [];\n for (const id in collections) {\n if (collections.hasOwnProperty(id)) {\n response.push(new Collection(collections[id]));\n }\n }\n return response;\n }\n\n async getAllDecrypted(): Promise {\n if (this.decryptedCollectionCache != null) {\n return this.decryptedCollectionCache;\n }\n\n const hasKey = await this.cryptoService.hasKey();\n if (!hasKey) {\n throw new Error('No key.');\n }\n\n const collections = await this.getAll();\n this.decryptedCollectionCache = await this.decryptMany(collections);\n return this.decryptedCollectionCache;\n }\n\n async getAllNested(collections: CollectionView[] = null): Promise[]> {\n if (collections == null) {\n collections = await this.getAllDecrypted();\n }\n const nodes: TreeNode[] = [];\n collections.forEach(c => {\n const collectionCopy = new CollectionView();\n collectionCopy.id = c.id;\n collectionCopy.organizationId = c.organizationId;\n const parts = c.name != null ? c.name.replace(/^\\/+|\\/+$/g, '').split(NestingDelimiter) : [];\n ServiceUtils.nestedTraverse(nodes, 0, parts, collectionCopy, null, NestingDelimiter);\n });\n return nodes;\n }\n\n async getNested(id: string): Promise> {\n const collections = await this.getAllNested();\n return ServiceUtils.getTreeNodeObject(collections, id) as TreeNode;\n }\n\n async upsert(collection: CollectionData | CollectionData[]): Promise {\n const userId = await this.userService.getUserId();\n let collections = await this.storageService.get<{ [id: string]: CollectionData; }>(\n Keys.collectionsPrefix + userId);\n if (collections == null) {\n collections = {};\n }\n\n if (collection instanceof CollectionData) {\n const c = collection as CollectionData;\n collections[c.id] = c;\n } else {\n (collection as CollectionData[]).forEach(c => {\n collections[c.id] = c;\n });\n }\n\n await this.storageService.save(Keys.collectionsPrefix + userId, collections);\n this.decryptedCollectionCache = null;\n }\n\n async replace(collections: { [id: string]: CollectionData; }): Promise {\n const userId = await this.userService.getUserId();\n await this.storageService.save(Keys.collectionsPrefix + userId, collections);\n this.decryptedCollectionCache = null;\n }\n\n async clear(userId: string): Promise {\n await this.storageService.remove(Keys.collectionsPrefix + userId);\n this.decryptedCollectionCache = null;\n }\n\n async delete(id: string | string[]): Promise {\n const userId = await this.userService.getUserId();\n const collections = await this.storageService.get<{ [id: string]: CollectionData; }>(\n Keys.collectionsPrefix + userId);\n if (collections == null) {\n return;\n }\n\n if (typeof id === 'string') {\n const i = id as string;\n delete collections[id];\n } else {\n (id as string[]).forEach(i => {\n delete collections[i];\n });\n }\n\n await this.storageService.save(Keys.collectionsPrefix + userId, collections);\n this.decryptedCollectionCache = null;\n }\n}\n","import {\n ITreeNodeObject,\n TreeNode,\n} from '../models/domain/treeNode';\n\nexport class ServiceUtils {\n static nestedTraverse(nodeTree: TreeNode[], partIndex: number, parts: string[],\n obj: ITreeNodeObject, parent: ITreeNodeObject, delimiter: string) {\n if (parts.length <= partIndex) {\n return;\n }\n\n const end = partIndex === parts.length - 1;\n const partName = parts[partIndex];\n\n for (let i = 0; i < nodeTree.length; i++) {\n if (nodeTree[i].node.name !== parts[partIndex]) {\n continue;\n }\n if (end && nodeTree[i].node.id !== obj.id) {\n // Another node with the same name.\n nodeTree.push(new TreeNode(obj, partName, parent));\n return;\n }\n ServiceUtils.nestedTraverse(nodeTree[i].children, partIndex + 1, parts,\n obj, nodeTree[i].node, delimiter);\n return;\n }\n\n if (nodeTree.filter(n => n.node.name === partName).length === 0) {\n if (end) {\n nodeTree.push(new TreeNode(obj, partName, parent));\n return;\n }\n const newPartName = parts[partIndex] + delimiter + parts[partIndex + 1];\n ServiceUtils.nestedTraverse(nodeTree, 0, [newPartName, ...parts.slice(partIndex + 2)],\n obj, parent, delimiter);\n }\n }\n\n static getTreeNodeObject(nodeTree: TreeNode[], id: string): TreeNode {\n for (let i = 0; i < nodeTree.length; i++) {\n if (nodeTree[i].node.id === id) {\n return nodeTree[i];\n } else if (nodeTree[i].children != null) {\n const node = ServiceUtils.getTreeNodeObject(nodeTree[i].children, id);\n if (node !== null) {\n return node;\n }\n }\n }\n return null;\n }\n}\n","import { CryptoService } from '../abstractions/crypto.service';\n\nexport class ContainerService {\n constructor(private cryptoService: CryptoService) {\n }\n\n // deprecated, use attachToGlobal instead\n attachToWindow(win: any) {\n this.attachToGlobal(win);\n }\n\n attachToGlobal(global: any) {\n if (!global.bitwardenContainerService) {\n global.bitwardenContainerService = this;\n }\n }\n\n getCryptoService(): CryptoService {\n return this.cryptoService;\n }\n}\n","import * as bigInt from 'big-integer';\n\nimport { EncryptionType } from '../enums/encryptionType';\nimport { KdfType } from '../enums/kdfType';\n\nimport { EncArrayBuffer } from '../models/domain/encArrayBuffer';\nimport { EncryptedObject } from '../models/domain/encryptedObject';\nimport { EncString } from '../models/domain/encString';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\nimport { ProfileOrganizationResponse } from '../models/response/profileOrganizationResponse';\n\nimport { CryptoService as CryptoServiceAbstraction } from '../abstractions/crypto.service';\nimport { CryptoFunctionService } from '../abstractions/cryptoFunction.service';\nimport { LogService } from '../abstractions/log.service';\nimport { PlatformUtilsService } from '../abstractions/platformUtils.service';\nimport { StorageService } from '../abstractions/storage.service';\n\nimport { ConstantsService } from './constants.service';\n\nimport { sequentialize } from '../misc/sequentialize';\nimport { Utils } from '../misc/utils';\nimport { EEFLongWordList } from '../misc/wordlist';\n\nconst Keys = {\n key: 'key', // Master Key\n encOrgKeys: 'encOrgKeys',\n encPrivateKey: 'encPrivateKey',\n encKey: 'encKey', // Generated Symmetric Key\n keyHash: 'keyHash',\n};\n\nexport class CryptoService implements CryptoServiceAbstraction {\n private key: SymmetricCryptoKey;\n private encKey: SymmetricCryptoKey;\n private legacyEtmKey: SymmetricCryptoKey;\n private keyHash: string;\n private publicKey: ArrayBuffer;\n private privateKey: ArrayBuffer;\n private orgKeys: Map;\n\n constructor(private storageService: StorageService, private secureStorageService: StorageService,\n private cryptoFunctionService: CryptoFunctionService, private platformUtilService: PlatformUtilsService,\n private logService: LogService) {\n }\n\n async setKey(key: SymmetricCryptoKey): Promise {\n this.key = key;\n\n const option = await this.storageService.get(ConstantsService.vaultTimeoutKey);\n const biometric = await this.storageService.get(ConstantsService.biometricUnlockKey);\n if (option != null && !(biometric && this.platformUtilService.supportsSecureStorage())) {\n // if we have a lock option set, we do not store the key\n return;\n }\n\n return this.secureStorageService.save(Keys.key, key.keyB64);\n }\n\n setKeyHash(keyHash: string): Promise<{}> {\n this.keyHash = keyHash;\n return this.storageService.save(Keys.keyHash, keyHash);\n }\n\n async setEncKey(encKey: string): Promise<{}> {\n if (encKey == null) {\n return;\n }\n\n await this.storageService.save(Keys.encKey, encKey);\n this.encKey = null;\n }\n\n async setEncPrivateKey(encPrivateKey: string): Promise<{}> {\n if (encPrivateKey == null) {\n return;\n }\n\n await this.storageService.save(Keys.encPrivateKey, encPrivateKey);\n this.privateKey = null;\n }\n\n setOrgKeys(orgs: ProfileOrganizationResponse[]): Promise<{}> {\n const orgKeys: any = {};\n orgs.forEach(org => {\n orgKeys[org.id] = org.key;\n });\n\n this.orgKeys = null;\n return this.storageService.save(Keys.encOrgKeys, orgKeys);\n }\n\n async getKey(): Promise {\n if (this.key != null) {\n return this.key;\n }\n\n const key = await this.secureStorageService.get(Keys.key);\n if (key != null) {\n this.key = new SymmetricCryptoKey(Utils.fromB64ToArray(key).buffer);\n }\n\n return key == null ? null : this.key;\n }\n\n async getKeyHash(): Promise {\n if (this.keyHash != null) {\n return this.keyHash;\n }\n\n const keyHash = await this.storageService.get(Keys.keyHash);\n if (keyHash != null) {\n this.keyHash = keyHash;\n }\n\n return keyHash == null ? null : this.keyHash;\n }\n\n @sequentialize(() => 'getEncKey')\n async getEncKey(key: SymmetricCryptoKey = null): Promise {\n if (this.encKey != null) {\n return this.encKey;\n }\n\n const encKey = await this.storageService.get(Keys.encKey);\n if (encKey == null) {\n return null;\n }\n\n if (key == null) {\n key = await this.getKey();\n }\n if (key == null) {\n return null;\n }\n\n let decEncKey: ArrayBuffer;\n const encKeyCipher = new EncString(encKey);\n if (encKeyCipher.encryptionType === EncryptionType.AesCbc256_B64) {\n decEncKey = await this.decryptToBytes(encKeyCipher, key);\n } else if (encKeyCipher.encryptionType === EncryptionType.AesCbc256_HmacSha256_B64) {\n const newKey = await this.stretchKey(key);\n decEncKey = await this.decryptToBytes(encKeyCipher, newKey);\n } else {\n throw new Error('Unsupported encKey type.');\n }\n\n if (decEncKey == null) {\n return null;\n }\n this.encKey = new SymmetricCryptoKey(decEncKey);\n return this.encKey;\n }\n\n async getPublicKey(): Promise {\n if (this.publicKey != null) {\n return this.publicKey;\n }\n\n const privateKey = await this.getPrivateKey();\n if (privateKey == null) {\n return null;\n }\n\n this.publicKey = await this.cryptoFunctionService.rsaExtractPublicKey(privateKey);\n return this.publicKey;\n }\n\n async getPrivateKey(): Promise {\n if (this.privateKey != null) {\n return this.privateKey;\n }\n\n const encPrivateKey = await this.storageService.get(Keys.encPrivateKey);\n if (encPrivateKey == null) {\n return null;\n }\n\n this.privateKey = await this.decryptToBytes(new EncString(encPrivateKey), null);\n return this.privateKey;\n }\n\n async getFingerprint(userId: string, publicKey?: ArrayBuffer): Promise {\n if (publicKey == null) {\n publicKey = await this.getPublicKey();\n }\n if (publicKey === null) {\n throw new Error('No public key available.');\n }\n const keyFingerprint = await this.cryptoFunctionService.hash(publicKey, 'sha256');\n const userFingerprint = await this.cryptoFunctionService.hkdfExpand(keyFingerprint, userId, 32, 'sha256');\n return this.hashPhrase(userFingerprint);\n }\n\n @sequentialize(() => 'getOrgKeys')\n async getOrgKeys(): Promise> {\n if (this.orgKeys != null && this.orgKeys.size > 0) {\n return this.orgKeys;\n }\n\n const encOrgKeys = await this.storageService.get(Keys.encOrgKeys);\n if (encOrgKeys == null) {\n return null;\n }\n\n const orgKeys: Map = new Map();\n let setKey = false;\n\n for (const orgId in encOrgKeys) {\n if (!encOrgKeys.hasOwnProperty(orgId)) {\n continue;\n }\n\n const decValue = await this.rsaDecrypt(encOrgKeys[orgId]);\n orgKeys.set(orgId, new SymmetricCryptoKey(decValue));\n setKey = true;\n }\n\n if (setKey) {\n this.orgKeys = orgKeys;\n }\n\n return this.orgKeys;\n }\n\n async getOrgKey(orgId: string): Promise {\n if (orgId == null) {\n return null;\n }\n\n const orgKeys = await this.getOrgKeys();\n if (orgKeys == null || !orgKeys.has(orgId)) {\n return null;\n }\n\n return orgKeys.get(orgId);\n }\n\n async hasKey(): Promise {\n return (await this.getKey()) != null;\n }\n\n async hasEncKey(): Promise {\n const encKey = await this.storageService.get(Keys.encKey);\n return encKey != null;\n }\n\n clearKey(): Promise {\n this.key = this.legacyEtmKey = null;\n return this.secureStorageService.remove(Keys.key);\n }\n\n clearKeyHash(): Promise {\n this.keyHash = null;\n return this.storageService.remove(Keys.keyHash);\n }\n\n clearEncKey(memoryOnly?: boolean): Promise {\n this.encKey = null;\n if (memoryOnly) {\n return Promise.resolve();\n }\n return this.storageService.remove(Keys.encKey);\n }\n\n clearKeyPair(memoryOnly?: boolean): Promise {\n this.privateKey = null;\n this.publicKey = null;\n if (memoryOnly) {\n return Promise.resolve();\n }\n return this.storageService.remove(Keys.encPrivateKey);\n }\n\n clearOrgKeys(memoryOnly?: boolean): Promise {\n this.orgKeys = null;\n if (memoryOnly) {\n return Promise.resolve();\n }\n return this.storageService.remove(Keys.encOrgKeys);\n }\n\n clearPinProtectedKey(): Promise {\n return this.storageService.remove(ConstantsService.pinProtectedKey);\n }\n\n clearKeys(): Promise {\n return Promise.all([\n this.clearKey(),\n this.clearKeyHash(),\n this.clearOrgKeys(),\n this.clearEncKey(),\n this.clearKeyPair(),\n this.clearPinProtectedKey(),\n ]);\n }\n\n async toggleKey(): Promise {\n const key = await this.getKey();\n const option = await this.storageService.get(ConstantsService.vaultTimeoutKey);\n const biometric = await this.storageService.get(ConstantsService.biometricUnlockKey);\n if ((!biometric && this.platformUtilService.supportsSecureStorage()) && (option != null || option === 0)) {\n // if we have a lock option set, clear the key\n await this.clearKey();\n this.key = key;\n return;\n }\n\n await this.setKey(key);\n }\n\n async makeKey(password: string, salt: string, kdf: KdfType, kdfIterations: number):\n Promise {\n let key: ArrayBuffer = null;\n if (kdf == null || kdf === KdfType.PBKDF2_SHA256) {\n if (kdfIterations == null) {\n kdfIterations = 5000;\n } else if (kdfIterations < 5000) {\n throw new Error('PBKDF2 iteration minimum is 5000.');\n }\n key = await this.cryptoFunctionService.pbkdf2(password, salt, 'sha256', kdfIterations);\n } else {\n throw new Error('Unknown Kdf.');\n }\n return new SymmetricCryptoKey(key);\n }\n\n async makeKeyFromPin(pin: string, salt: string, kdf: KdfType, kdfIterations: number,\n protectedKeyCs: EncString = null):\n Promise {\n if (protectedKeyCs == null) {\n const pinProtectedKey = await this.storageService.get(ConstantsService.pinProtectedKey);\n if (pinProtectedKey == null) {\n throw new Error('No PIN protected key found.');\n }\n protectedKeyCs = new EncString(pinProtectedKey);\n }\n const pinKey = await this.makePinKey(pin, salt, kdf, kdfIterations);\n const decKey = await this.decryptToBytes(protectedKeyCs, pinKey);\n return new SymmetricCryptoKey(decKey);\n }\n\n async makeShareKey(): Promise<[EncString, SymmetricCryptoKey]> {\n const shareKey = await this.cryptoFunctionService.randomBytes(64);\n const publicKey = await this.getPublicKey();\n const encShareKey = await this.rsaEncrypt(shareKey, publicKey);\n return [encShareKey, new SymmetricCryptoKey(shareKey)];\n }\n\n async makeKeyPair(key?: SymmetricCryptoKey): Promise<[string, EncString]> {\n const keyPair = await this.cryptoFunctionService.rsaGenerateKeyPair(2048);\n const publicB64 = Utils.fromBufferToB64(keyPair[0]);\n const privateEnc = await this.encrypt(keyPair[1], key);\n return [publicB64, privateEnc];\n }\n\n async makePinKey(pin: string, salt: string, kdf: KdfType, kdfIterations: number): Promise {\n const pinKey = await this.makeKey(pin, salt, kdf, kdfIterations);\n return await this.stretchKey(pinKey);\n }\n\n async makeSendKey(keyMaterial: ArrayBuffer): Promise {\n const sendKey = await this.cryptoFunctionService.hkdf(keyMaterial, 'bitwarden-send', 'send', 64, 'sha256');\n return new SymmetricCryptoKey(sendKey);\n }\n\n async hashPassword(password: string, key: SymmetricCryptoKey): Promise {\n if (key == null) {\n key = await this.getKey();\n }\n if (password == null || key == null) {\n throw new Error('Invalid parameters.');\n }\n\n const hash = await this.cryptoFunctionService.pbkdf2(key.key, password, 'sha256', 1);\n return Utils.fromBufferToB64(hash);\n }\n\n async makeEncKey(key: SymmetricCryptoKey): Promise<[SymmetricCryptoKey, EncString]> {\n const theKey = await this.getKeyForEncryption(key);\n const encKey = await this.cryptoFunctionService.randomBytes(64);\n return this.buildEncKey(theKey, encKey);\n }\n\n async remakeEncKey(key: SymmetricCryptoKey, encKey?: SymmetricCryptoKey): Promise<[SymmetricCryptoKey, EncString]> {\n if (encKey == null) {\n encKey = await this.getEncKey();\n }\n return this.buildEncKey(key, encKey.key);\n }\n\n async encrypt(plainValue: string | ArrayBuffer, key?: SymmetricCryptoKey): Promise {\n if (plainValue == null) {\n return Promise.resolve(null);\n }\n\n let plainBuf: ArrayBuffer;\n if (typeof (plainValue) === 'string') {\n plainBuf = Utils.fromUtf8ToArray(plainValue).buffer;\n } else {\n plainBuf = plainValue;\n }\n\n const encObj = await this.aesEncrypt(plainBuf, key);\n const iv = Utils.fromBufferToB64(encObj.iv);\n const data = Utils.fromBufferToB64(encObj.data);\n const mac = encObj.mac != null ? Utils.fromBufferToB64(encObj.mac) : null;\n return new EncString(encObj.key.encType, data, iv, mac);\n }\n\n async encryptToBytes(plainValue: ArrayBuffer, key?: SymmetricCryptoKey): Promise {\n const encValue = await this.aesEncrypt(plainValue, key);\n let macLen = 0;\n if (encValue.mac != null) {\n macLen = encValue.mac.byteLength;\n }\n\n const encBytes = new Uint8Array(1 + encValue.iv.byteLength + macLen + encValue.data.byteLength);\n encBytes.set([encValue.key.encType]);\n encBytes.set(new Uint8Array(encValue.iv), 1);\n if (encValue.mac != null) {\n encBytes.set(new Uint8Array(encValue.mac), 1 + encValue.iv.byteLength);\n }\n\n encBytes.set(new Uint8Array(encValue.data), 1 + encValue.iv.byteLength + macLen);\n return new EncArrayBuffer(encBytes.buffer);\n }\n\n async rsaEncrypt(data: ArrayBuffer, publicKey?: ArrayBuffer): Promise {\n if (publicKey == null) {\n publicKey = await this.getPublicKey();\n }\n if (publicKey == null) {\n throw new Error('Public key unavailable.');\n }\n\n const encBytes = await this.cryptoFunctionService.rsaEncrypt(data, publicKey, 'sha1');\n return new EncString(EncryptionType.Rsa2048_OaepSha1_B64, Utils.fromBufferToB64(encBytes));\n }\n\n async rsaDecrypt(encValue: string): Promise {\n const headerPieces = encValue.split('.');\n let encType: EncryptionType = null;\n let encPieces: string[];\n\n if (headerPieces.length === 1) {\n encType = EncryptionType.Rsa2048_OaepSha256_B64;\n encPieces = [headerPieces[0]];\n } else if (headerPieces.length === 2) {\n try {\n encType = parseInt(headerPieces[0], null);\n encPieces = headerPieces[1].split('|');\n } catch (e) { }\n }\n\n switch (encType) {\n case EncryptionType.Rsa2048_OaepSha256_B64:\n case EncryptionType.Rsa2048_OaepSha1_B64:\n // HmacSha256 types are deprecated\n case EncryptionType.Rsa2048_OaepSha256_HmacSha256_B64:\n case EncryptionType.Rsa2048_OaepSha1_HmacSha256_B64:\n break;\n default:\n throw new Error('encType unavailable.');\n }\n\n if (encPieces == null || encPieces.length <= 0) {\n throw new Error('encPieces unavailable.');\n }\n\n const data = Utils.fromB64ToArray(encPieces[0]).buffer;\n const privateKey = await this.getPrivateKey();\n if (privateKey == null) {\n throw new Error('No private key.');\n }\n\n let alg: 'sha1' | 'sha256' = 'sha1';\n switch (encType) {\n case EncryptionType.Rsa2048_OaepSha256_B64:\n case EncryptionType.Rsa2048_OaepSha256_HmacSha256_B64:\n alg = 'sha256';\n break;\n case EncryptionType.Rsa2048_OaepSha1_B64:\n case EncryptionType.Rsa2048_OaepSha1_HmacSha256_B64:\n break;\n default:\n throw new Error('encType unavailable.');\n }\n\n return this.cryptoFunctionService.rsaDecrypt(data, privateKey, alg);\n }\n\n async decryptToBytes(encString: EncString, key?: SymmetricCryptoKey): Promise {\n const iv = Utils.fromB64ToArray(encString.iv).buffer;\n const data = Utils.fromB64ToArray(encString.data).buffer;\n const mac = encString.mac ? Utils.fromB64ToArray(encString.mac).buffer : null;\n const decipher = await this.aesDecryptToBytes(encString.encryptionType, data, iv, mac, key);\n if (decipher == null) {\n return null;\n }\n\n return decipher;\n }\n\n async decryptToUtf8(encString: EncString, key?: SymmetricCryptoKey): Promise {\n return await this.aesDecryptToUtf8(encString.encryptionType, encString.data,\n encString.iv, encString.mac, key);\n }\n\n async decryptFromBytes(encBuf: ArrayBuffer, key: SymmetricCryptoKey): Promise {\n if (encBuf == null) {\n throw new Error('no encBuf.');\n }\n\n const encBytes = new Uint8Array(encBuf);\n const encType = encBytes[0];\n let ctBytes: Uint8Array = null;\n let ivBytes: Uint8Array = null;\n let macBytes: Uint8Array = null;\n\n switch (encType) {\n case EncryptionType.AesCbc128_HmacSha256_B64:\n case EncryptionType.AesCbc256_HmacSha256_B64:\n if (encBytes.length <= 49) { // 1 + 16 + 32 + ctLength\n return null;\n }\n\n ivBytes = encBytes.slice(1, 17);\n macBytes = encBytes.slice(17, 49);\n ctBytes = encBytes.slice(49);\n break;\n case EncryptionType.AesCbc256_B64:\n if (encBytes.length <= 17) { // 1 + 16 + ctLength\n return null;\n }\n\n ivBytes = encBytes.slice(1, 17);\n ctBytes = encBytes.slice(17);\n break;\n default:\n return null;\n }\n\n return await this.aesDecryptToBytes(encType, ctBytes.buffer, ivBytes.buffer,\n macBytes != null ? macBytes.buffer : null, key);\n }\n\n // EFForg/OpenWireless\n // ref https://github.com/EFForg/OpenWireless/blob/master/app/js/diceware.js\n async randomNumber(min: number, max: number): Promise {\n let rval = 0;\n const range = max - min + 1;\n const bitsNeeded = Math.ceil(Math.log2(range));\n if (bitsNeeded > 53) {\n throw new Error('We cannot generate numbers larger than 53 bits.');\n }\n\n const bytesNeeded = Math.ceil(bitsNeeded / 8);\n const mask = Math.pow(2, bitsNeeded) - 1;\n // 7776 -> (2^13 = 8192) -1 == 8191 or 0x00001111 11111111\n\n // Fill a byte array with N random numbers\n const byteArray = new Uint8Array(await this.cryptoFunctionService.randomBytes(bytesNeeded));\n\n let p = (bytesNeeded - 1) * 8;\n for (let i = 0; i < bytesNeeded; i++) {\n rval += byteArray[i] * Math.pow(2, p);\n p -= 8;\n }\n\n // Use & to apply the mask and reduce the number of recursive lookups\n // tslint:disable-next-line\n rval = rval & mask;\n\n if (rval >= range) {\n // Integer out of acceptable range\n return this.randomNumber(min, max);\n }\n\n // Return an integer that falls within the range\n return min + rval;\n }\n\n // Helpers\n\n private async aesEncrypt(data: ArrayBuffer, key: SymmetricCryptoKey): Promise {\n const obj = new EncryptedObject();\n obj.key = await this.getKeyForEncryption(key);\n obj.iv = await this.cryptoFunctionService.randomBytes(16);\n obj.data = await this.cryptoFunctionService.aesEncrypt(data, obj.iv, obj.key.encKey);\n\n if (obj.key.macKey != null) {\n const macData = new Uint8Array(obj.iv.byteLength + obj.data.byteLength);\n macData.set(new Uint8Array(obj.iv), 0);\n macData.set(new Uint8Array(obj.data), obj.iv.byteLength);\n obj.mac = await this.cryptoFunctionService.hmac(macData.buffer, obj.key.macKey, 'sha256');\n }\n\n return obj;\n }\n\n private async aesDecryptToUtf8(encType: EncryptionType, data: string, iv: string, mac: string,\n key: SymmetricCryptoKey): Promise {\n const keyForEnc = await this.getKeyForEncryption(key);\n const theKey = this.resolveLegacyKey(encType, keyForEnc);\n\n if (theKey.macKey != null && mac == null) {\n this.logService.error('mac required.');\n return null;\n }\n\n if (theKey.encType !== encType) {\n this.logService.error('encType unavailable.');\n return null;\n }\n\n const fastParams = this.cryptoFunctionService.aesDecryptFastParameters(data, iv, mac, theKey);\n if (fastParams.macKey != null && fastParams.mac != null) {\n const computedMac = await this.cryptoFunctionService.hmacFast(fastParams.macData,\n fastParams.macKey, 'sha256');\n const macsEqual = await this.cryptoFunctionService.compareFast(fastParams.mac, computedMac);\n if (!macsEqual) {\n this.logService.error('mac failed.');\n return null;\n }\n }\n\n return this.cryptoFunctionService.aesDecryptFast(fastParams);\n }\n\n private async aesDecryptToBytes(encType: EncryptionType, data: ArrayBuffer, iv: ArrayBuffer,\n mac: ArrayBuffer, key: SymmetricCryptoKey): Promise {\n const keyForEnc = await this.getKeyForEncryption(key);\n const theKey = this.resolveLegacyKey(encType, keyForEnc);\n\n if (theKey.macKey != null && mac == null) {\n return null;\n }\n\n if (theKey.encType !== encType) {\n return null;\n }\n\n if (theKey.macKey != null && mac != null) {\n const macData = new Uint8Array(iv.byteLength + data.byteLength);\n macData.set(new Uint8Array(iv), 0);\n macData.set(new Uint8Array(data), iv.byteLength);\n const computedMac = await this.cryptoFunctionService.hmac(macData.buffer, theKey.macKey, 'sha256');\n if (computedMac === null) {\n return null;\n }\n\n const macsMatch = await this.cryptoFunctionService.compare(mac, computedMac);\n if (!macsMatch) {\n this.logService.error('mac failed.');\n return null;\n }\n }\n\n return await this.cryptoFunctionService.aesDecrypt(data, iv, theKey.encKey);\n }\n\n private async getKeyForEncryption(key?: SymmetricCryptoKey): Promise {\n if (key != null) {\n return key;\n }\n\n const encKey = await this.getEncKey();\n if (encKey != null) {\n return encKey;\n }\n\n return await this.getKey();\n }\n\n private resolveLegacyKey(encType: EncryptionType, key: SymmetricCryptoKey): SymmetricCryptoKey {\n if (encType === EncryptionType.AesCbc128_HmacSha256_B64 &&\n key.encType === EncryptionType.AesCbc256_B64) {\n // Old encrypt-then-mac scheme, make a new key\n if (this.legacyEtmKey == null) {\n this.legacyEtmKey = new SymmetricCryptoKey(key.key, EncryptionType.AesCbc128_HmacSha256_B64);\n }\n return this.legacyEtmKey;\n }\n\n return key;\n }\n\n private async stretchKey(key: SymmetricCryptoKey): Promise {\n const newKey = new Uint8Array(64);\n const encKey = await this.cryptoFunctionService.hkdfExpand(key.key, 'enc', 32, 'sha256');\n const macKey = await this.cryptoFunctionService.hkdfExpand(key.key, 'mac', 32, 'sha256');\n newKey.set(new Uint8Array(encKey));\n newKey.set(new Uint8Array(macKey), 32);\n return new SymmetricCryptoKey(newKey.buffer);\n }\n\n private async hashPhrase(hash: ArrayBuffer, minimumEntropy: number = 64) {\n const entropyPerWord = Math.log(EEFLongWordList.length) / Math.log(2);\n let numWords = Math.ceil(minimumEntropy / entropyPerWord);\n\n const hashArr = Array.from(new Uint8Array(hash));\n const entropyAvailable = hashArr.length * 4;\n if (numWords * entropyPerWord > entropyAvailable) {\n throw new Error('Output entropy of hash function is too small');\n }\n\n const phrase: string[] = [];\n let hashNumber = bigInt.fromArray(hashArr, 256);\n while (numWords--) {\n const remainder = hashNumber.mod(EEFLongWordList.length);\n hashNumber = hashNumber.divide(EEFLongWordList.length);\n phrase.push(EEFLongWordList[remainder as any]);\n }\n return phrase;\n }\n\n private async buildEncKey(key: SymmetricCryptoKey, encKey: ArrayBuffer)\n : Promise<[SymmetricCryptoKey, EncString]> {\n let encKeyEnc: EncString = null;\n if (key.key.byteLength === 32) {\n const newKey = await this.stretchKey(key);\n encKeyEnc = await this.encrypt(encKey, newKey);\n } else if (key.key.byteLength === 64) {\n encKeyEnc = await this.encrypt(encKey, key);\n } else {\n throw new Error('Invalid key size.');\n }\n return [new SymmetricCryptoKey(encKey), encKeyEnc];\n }\n}\n","// EFF's Long Wordlist from https://www.eff.org/dice\nexport const EEFLongWordList = [\n 'abacus',\n 'abdomen',\n 'abdominal',\n 'abide',\n 'abiding',\n 'ability',\n 'ablaze',\n 'able',\n 'abnormal',\n 'abrasion',\n 'abrasive',\n 'abreast',\n 'abridge',\n 'abroad',\n 'abruptly',\n 'absence',\n 'absentee',\n 'absently',\n 'absinthe',\n 'absolute',\n 'absolve',\n 'abstain',\n 'abstract',\n 'absurd',\n 'accent',\n 'acclaim',\n 'acclimate',\n 'accompany',\n 'account',\n 'accuracy',\n 'accurate',\n 'accustom',\n 'acetone',\n 'achiness',\n 'aching',\n 'acid',\n 'acorn',\n 'acquaint',\n 'acquire',\n 'acre',\n 'acrobat',\n 'acronym',\n 'acting',\n 'action',\n 'activate',\n 'activator',\n 'active',\n 'activism',\n 'activist',\n 'activity',\n 'actress',\n 'acts',\n 'acutely',\n 'acuteness',\n 'aeration',\n 'aerobics',\n 'aerosol',\n 'aerospace',\n 'afar',\n 'affair',\n 'affected',\n 'affecting',\n 'affection',\n 'affidavit',\n 'affiliate',\n 'affirm',\n 'affix',\n 'afflicted',\n 'affluent',\n 'afford',\n 'affront',\n 'aflame',\n 'afloat',\n 'aflutter',\n 'afoot',\n 'afraid',\n 'afterglow',\n 'afterlife',\n 'aftermath',\n 'aftermost',\n 'afternoon',\n 'aged',\n 'ageless',\n 'agency',\n 'agenda',\n 'agent',\n 'aggregate',\n 'aghast',\n 'agile',\n 'agility',\n 'aging',\n 'agnostic',\n 'agonize',\n 'agonizing',\n 'agony',\n 'agreeable',\n 'agreeably',\n 'agreed',\n 'agreeing',\n 'agreement',\n 'aground',\n 'ahead',\n 'ahoy',\n 'aide',\n 'aids',\n 'aim',\n 'ajar',\n 'alabaster',\n 'alarm',\n 'albatross',\n 'album',\n 'alfalfa',\n 'algebra',\n 'algorithm',\n 'alias',\n 'alibi',\n 'alienable',\n 'alienate',\n 'aliens',\n 'alike',\n 'alive',\n 'alkaline',\n 'alkalize',\n 'almanac',\n 'almighty',\n 'almost',\n 'aloe',\n 'aloft',\n 'aloha',\n 'alone',\n 'alongside',\n 'aloof',\n 'alphabet',\n 'alright',\n 'although',\n 'altitude',\n 'alto',\n 'aluminum',\n 'alumni',\n 'always',\n 'amaretto',\n 'amaze',\n 'amazingly',\n 'amber',\n 'ambiance',\n 'ambiguity',\n 'ambiguous',\n 'ambition',\n 'ambitious',\n 'ambulance',\n 'ambush',\n 'amendable',\n 'amendment',\n 'amends',\n 'amenity',\n 'amiable',\n 'amicably',\n 'amid',\n 'amigo',\n 'amino',\n 'amiss',\n 'ammonia',\n 'ammonium',\n 'amnesty',\n 'amniotic',\n 'among',\n 'amount',\n 'amperage',\n 'ample',\n 'amplifier',\n 'amplify',\n 'amply',\n 'amuck',\n 'amulet',\n 'amusable',\n 'amused',\n 'amusement',\n 'amuser',\n 'amusing',\n 'anaconda',\n 'anaerobic',\n 'anagram',\n 'anatomist',\n 'anatomy',\n 'anchor',\n 'anchovy',\n 'ancient',\n 'android',\n 'anemia',\n 'anemic',\n 'aneurism',\n 'anew',\n 'angelfish',\n 'angelic',\n 'anger',\n 'angled',\n 'angler',\n 'angles',\n 'angling',\n 'angrily',\n 'angriness',\n 'anguished',\n 'angular',\n 'animal',\n 'animate',\n 'animating',\n 'animation',\n 'animator',\n 'anime',\n 'animosity',\n 'ankle',\n 'annex',\n 'annotate',\n 'announcer',\n 'annoying',\n 'annually',\n 'annuity',\n 'anointer',\n 'another',\n 'answering',\n 'antacid',\n 'antarctic',\n 'anteater',\n 'antelope',\n 'antennae',\n 'anthem',\n 'anthill',\n 'anthology',\n 'antibody',\n 'antics',\n 'antidote',\n 'antihero',\n 'antiquely',\n 'antiques',\n 'antiquity',\n 'antirust',\n 'antitoxic',\n 'antitrust',\n 'antiviral',\n 'antivirus',\n 'antler',\n 'antonym',\n 'antsy',\n 'anvil',\n 'anybody',\n 'anyhow',\n 'anymore',\n 'anyone',\n 'anyplace',\n 'anything',\n 'anytime',\n 'anyway',\n 'anywhere',\n 'aorta',\n 'apache',\n 'apostle',\n 'appealing',\n 'appear',\n 'appease',\n 'appeasing',\n 'appendage',\n 'appendix',\n 'appetite',\n 'appetizer',\n 'applaud',\n 'applause',\n 'apple',\n 'appliance',\n 'applicant',\n 'applied',\n 'apply',\n 'appointee',\n 'appraisal',\n 'appraiser',\n 'apprehend',\n 'approach',\n 'approval',\n 'approve',\n 'apricot',\n 'april',\n 'apron',\n 'aptitude',\n 'aptly',\n 'aqua',\n 'aqueduct',\n 'arbitrary',\n 'arbitrate',\n 'ardently',\n 'area',\n 'arena',\n 'arguable',\n 'arguably',\n 'argue',\n 'arise',\n 'armadillo',\n 'armband',\n 'armchair',\n 'armed',\n 'armful',\n 'armhole',\n 'arming',\n 'armless',\n 'armoire',\n 'armored',\n 'armory',\n 'armrest',\n 'army',\n 'aroma',\n 'arose',\n 'around',\n 'arousal',\n 'arrange',\n 'array',\n 'arrest',\n 'arrival',\n 'arrive',\n 'arrogance',\n 'arrogant',\n 'arson',\n 'art',\n 'ascend',\n 'ascension',\n 'ascent',\n 'ascertain',\n 'ashamed',\n 'ashen',\n 'ashes',\n 'ashy',\n 'aside',\n 'askew',\n 'asleep',\n 'asparagus',\n 'aspect',\n 'aspirate',\n 'aspire',\n 'aspirin',\n 'astonish',\n 'astound',\n 'astride',\n 'astrology',\n 'astronaut',\n 'astronomy',\n 'astute',\n 'atlantic',\n 'atlas',\n 'atom',\n 'atonable',\n 'atop',\n 'atrium',\n 'atrocious',\n 'atrophy',\n 'attach',\n 'attain',\n 'attempt',\n 'attendant',\n 'attendee',\n 'attention',\n 'attentive',\n 'attest',\n 'attic',\n 'attire',\n 'attitude',\n 'attractor',\n 'attribute',\n 'atypical',\n 'auction',\n 'audacious',\n 'audacity',\n 'audible',\n 'audibly',\n 'audience',\n 'audio',\n 'audition',\n 'augmented',\n 'august',\n 'authentic',\n 'author',\n 'autism',\n 'autistic',\n 'autograph',\n 'automaker',\n 'automated',\n 'automatic',\n 'autopilot',\n 'available',\n 'avalanche',\n 'avatar',\n 'avenge',\n 'avenging',\n 'avenue',\n 'average',\n 'aversion',\n 'avert',\n 'aviation',\n 'aviator',\n 'avid',\n 'avoid',\n 'await',\n 'awaken',\n 'award',\n 'aware',\n 'awhile',\n 'awkward',\n 'awning',\n 'awoke',\n 'awry',\n 'axis',\n 'babble',\n 'babbling',\n 'babied',\n 'baboon',\n 'backache',\n 'backboard',\n 'backboned',\n 'backdrop',\n 'backed',\n 'backer',\n 'backfield',\n 'backfire',\n 'backhand',\n 'backing',\n 'backlands',\n 'backlash',\n 'backless',\n 'backlight',\n 'backlit',\n 'backlog',\n 'backpack',\n 'backpedal',\n 'backrest',\n 'backroom',\n 'backshift',\n 'backside',\n 'backslid',\n 'backspace',\n 'backspin',\n 'backstab',\n 'backstage',\n 'backtalk',\n 'backtrack',\n 'backup',\n 'backward',\n 'backwash',\n 'backwater',\n 'backyard',\n 'bacon',\n 'bacteria',\n 'bacterium',\n 'badass',\n 'badge',\n 'badland',\n 'badly',\n 'badness',\n 'baffle',\n 'baffling',\n 'bagel',\n 'bagful',\n 'baggage',\n 'bagged',\n 'baggie',\n 'bagginess',\n 'bagging',\n 'baggy',\n 'bagpipe',\n 'baguette',\n 'baked',\n 'bakery',\n 'bakeshop',\n 'baking',\n 'balance',\n 'balancing',\n 'balcony',\n 'balmy',\n 'balsamic',\n 'bamboo',\n 'banana',\n 'banish',\n 'banister',\n 'banjo',\n 'bankable',\n 'bankbook',\n 'banked',\n 'banker',\n 'banking',\n 'banknote',\n 'bankroll',\n 'banner',\n 'bannister',\n 'banshee',\n 'banter',\n 'barbecue',\n 'barbed',\n 'barbell',\n 'barber',\n 'barcode',\n 'barge',\n 'bargraph',\n 'barista',\n 'baritone',\n 'barley',\n 'barmaid',\n 'barman',\n 'barn',\n 'barometer',\n 'barrack',\n 'barracuda',\n 'barrel',\n 'barrette',\n 'barricade',\n 'barrier',\n 'barstool',\n 'bartender',\n 'barterer',\n 'bash',\n 'basically',\n 'basics',\n 'basil',\n 'basin',\n 'basis',\n 'basket',\n 'batboy',\n 'batch',\n 'bath',\n 'baton',\n 'bats',\n 'battalion',\n 'battered',\n 'battering',\n 'battery',\n 'batting',\n 'battle',\n 'bauble',\n 'bazooka',\n 'blabber',\n 'bladder',\n 'blade',\n 'blah',\n 'blame',\n 'blaming',\n 'blanching',\n 'blandness',\n 'blank',\n 'blaspheme',\n 'blasphemy',\n 'blast',\n 'blatancy',\n 'blatantly',\n 'blazer',\n 'blazing',\n 'bleach',\n 'bleak',\n 'bleep',\n 'blemish',\n 'blend',\n 'bless',\n 'blighted',\n 'blimp',\n 'bling',\n 'blinked',\n 'blinker',\n 'blinking',\n 'blinks',\n 'blip',\n 'blissful',\n 'blitz',\n 'blizzard',\n 'bloated',\n 'bloating',\n 'blob',\n 'blog',\n 'bloomers',\n 'blooming',\n 'blooper',\n 'blot',\n 'blouse',\n 'blubber',\n 'bluff',\n 'bluish',\n 'blunderer',\n 'blunt',\n 'blurb',\n 'blurred',\n 'blurry',\n 'blurt',\n 'blush',\n 'blustery',\n 'boaster',\n 'boastful',\n 'boasting',\n 'boat',\n 'bobbed',\n 'bobbing',\n 'bobble',\n 'bobcat',\n 'bobsled',\n 'bobtail',\n 'bodacious',\n 'body',\n 'bogged',\n 'boggle',\n 'bogus',\n 'boil',\n 'bok',\n 'bolster',\n 'bolt',\n 'bonanza',\n 'bonded',\n 'bonding',\n 'bondless',\n 'boned',\n 'bonehead',\n 'boneless',\n 'bonelike',\n 'boney',\n 'bonfire',\n 'bonnet',\n 'bonsai',\n 'bonus',\n 'bony',\n 'boogeyman',\n 'boogieman',\n 'book',\n 'boondocks',\n 'booted',\n 'booth',\n 'bootie',\n 'booting',\n 'bootlace',\n 'bootleg',\n 'boots',\n 'boozy',\n 'borax',\n 'boring',\n 'borough',\n 'borrower',\n 'borrowing',\n 'boss',\n 'botanical',\n 'botanist',\n 'botany',\n 'botch',\n 'both',\n 'bottle',\n 'bottling',\n 'bottom',\n 'bounce',\n 'bouncing',\n 'bouncy',\n 'bounding',\n 'boundless',\n 'bountiful',\n 'bovine',\n 'boxcar',\n 'boxer',\n 'boxing',\n 'boxlike',\n 'boxy',\n 'breach',\n 'breath',\n 'breeches',\n 'breeching',\n 'breeder',\n 'breeding',\n 'breeze',\n 'breezy',\n 'brethren',\n 'brewery',\n 'brewing',\n 'briar',\n 'bribe',\n 'brick',\n 'bride',\n 'bridged',\n 'brigade',\n 'bright',\n 'brilliant',\n 'brim',\n 'bring',\n 'brink',\n 'brisket',\n 'briskly',\n 'briskness',\n 'bristle',\n 'brittle',\n 'broadband',\n 'broadcast',\n 'broaden',\n 'broadly',\n 'broadness',\n 'broadside',\n 'broadways',\n 'broiler',\n 'broiling',\n 'broken',\n 'broker',\n 'bronchial',\n 'bronco',\n 'bronze',\n 'bronzing',\n 'brook',\n 'broom',\n 'brought',\n 'browbeat',\n 'brownnose',\n 'browse',\n 'browsing',\n 'bruising',\n 'brunch',\n 'brunette',\n 'brunt',\n 'brush',\n 'brussels',\n 'brute',\n 'brutishly',\n 'bubble',\n 'bubbling',\n 'bubbly',\n 'buccaneer',\n 'bucked',\n 'bucket',\n 'buckle',\n 'buckshot',\n 'buckskin',\n 'bucktooth',\n 'buckwheat',\n 'buddhism',\n 'buddhist',\n 'budding',\n 'buddy',\n 'budget',\n 'buffalo',\n 'buffed',\n 'buffer',\n 'buffing',\n 'buffoon',\n 'buggy',\n 'bulb',\n 'bulge',\n 'bulginess',\n 'bulgur',\n 'bulk',\n 'bulldog',\n 'bulldozer',\n 'bullfight',\n 'bullfrog',\n 'bullhorn',\n 'bullion',\n 'bullish',\n 'bullpen',\n 'bullring',\n 'bullseye',\n 'bullwhip',\n 'bully',\n 'bunch',\n 'bundle',\n 'bungee',\n 'bunion',\n 'bunkbed',\n 'bunkhouse',\n 'bunkmate',\n 'bunny',\n 'bunt',\n 'busboy',\n 'bush',\n 'busily',\n 'busload',\n 'bust',\n 'busybody',\n 'buzz',\n 'cabana',\n 'cabbage',\n 'cabbie',\n 'cabdriver',\n 'cable',\n 'caboose',\n 'cache',\n 'cackle',\n 'cacti',\n 'cactus',\n 'caddie',\n 'caddy',\n 'cadet',\n 'cadillac',\n 'cadmium',\n 'cage',\n 'cahoots',\n 'cake',\n 'calamari',\n 'calamity',\n 'calcium',\n 'calculate',\n 'calculus',\n 'caliber',\n 'calibrate',\n 'calm',\n 'caloric',\n 'calorie',\n 'calzone',\n 'camcorder',\n 'cameo',\n 'camera',\n 'camisole',\n 'camper',\n 'campfire',\n 'camping',\n 'campsite',\n 'campus',\n 'canal',\n 'canary',\n 'cancel',\n 'candied',\n 'candle',\n 'candy',\n 'cane',\n 'canine',\n 'canister',\n 'cannabis',\n 'canned',\n 'canning',\n 'cannon',\n 'cannot',\n 'canola',\n 'canon',\n 'canopener',\n 'canopy',\n 'canteen',\n 'canyon',\n 'capable',\n 'capably',\n 'capacity',\n 'cape',\n 'capillary',\n 'capital',\n 'capitol',\n 'capped',\n 'capricorn',\n 'capsize',\n 'capsule',\n 'caption',\n 'captivate',\n 'captive',\n 'captivity',\n 'capture',\n 'caramel',\n 'carat',\n 'caravan',\n 'carbon',\n 'cardboard',\n 'carded',\n 'cardiac',\n 'cardigan',\n 'cardinal',\n 'cardstock',\n 'carefully',\n 'caregiver',\n 'careless',\n 'caress',\n 'caretaker',\n 'cargo',\n 'caring',\n 'carless',\n 'carload',\n 'carmaker',\n 'carnage',\n 'carnation',\n 'carnival',\n 'carnivore',\n 'carol',\n 'carpenter',\n 'carpentry',\n 'carpool',\n 'carport',\n 'carried',\n 'carrot',\n 'carrousel',\n 'carry',\n 'cartel',\n 'cartload',\n 'carton',\n 'cartoon',\n 'cartridge',\n 'cartwheel',\n 'carve',\n 'carving',\n 'carwash',\n 'cascade',\n 'case',\n 'cash',\n 'casing',\n 'casino',\n 'casket',\n 'cassette',\n 'casually',\n 'casualty',\n 'catacomb',\n 'catalog',\n 'catalyst',\n 'catalyze',\n 'catapult',\n 'cataract',\n 'catatonic',\n 'catcall',\n 'catchable',\n 'catcher',\n 'catching',\n 'catchy',\n 'caterer',\n 'catering',\n 'catfight',\n 'catfish',\n 'cathedral',\n 'cathouse',\n 'catlike',\n 'catnap',\n 'catnip',\n 'catsup',\n 'cattail',\n 'cattishly',\n 'cattle',\n 'catty',\n 'catwalk',\n 'caucasian',\n 'caucus',\n 'causal',\n 'causation',\n 'cause',\n 'causing',\n 'cauterize',\n 'caution',\n 'cautious',\n 'cavalier',\n 'cavalry',\n 'caviar',\n 'cavity',\n 'cedar',\n 'celery',\n 'celestial',\n 'celibacy',\n 'celibate',\n 'celtic',\n 'cement',\n 'census',\n 'ceramics',\n 'ceremony',\n 'certainly',\n 'certainty',\n 'certified',\n 'certify',\n 'cesarean',\n 'cesspool',\n 'chafe',\n 'chaffing',\n 'chain',\n 'chair',\n 'chalice',\n 'challenge',\n 'chamber',\n 'chamomile',\n 'champion',\n 'chance',\n 'change',\n 'channel',\n 'chant',\n 'chaos',\n 'chaperone',\n 'chaplain',\n 'chapped',\n 'chaps',\n 'chapter',\n 'character',\n 'charbroil',\n 'charcoal',\n 'charger',\n 'charging',\n 'chariot',\n 'charity',\n 'charm',\n 'charred',\n 'charter',\n 'charting',\n 'chase',\n 'chasing',\n 'chaste',\n 'chastise',\n 'chastity',\n 'chatroom',\n 'chatter',\n 'chatting',\n 'chatty',\n 'cheating',\n 'cheddar',\n 'cheek',\n 'cheer',\n 'cheese',\n 'cheesy',\n 'chef',\n 'chemicals',\n 'chemist',\n 'chemo',\n 'cherisher',\n 'cherub',\n 'chess',\n 'chest',\n 'chevron',\n 'chevy',\n 'chewable',\n 'chewer',\n 'chewing',\n 'chewy',\n 'chief',\n 'chihuahua',\n 'childcare',\n 'childhood',\n 'childish',\n 'childless',\n 'childlike',\n 'chili',\n 'chill',\n 'chimp',\n 'chip',\n 'chirping',\n 'chirpy',\n 'chitchat',\n 'chivalry',\n 'chive',\n 'chloride',\n 'chlorine',\n 'choice',\n 'chokehold',\n 'choking',\n 'chomp',\n 'chooser',\n 'choosing',\n 'choosy',\n 'chop',\n 'chosen',\n 'chowder',\n 'chowtime',\n 'chrome',\n 'chubby',\n 'chuck',\n 'chug',\n 'chummy',\n 'chump',\n 'chunk',\n 'churn',\n 'chute',\n 'cider',\n 'cilantro',\n 'cinch',\n 'cinema',\n 'cinnamon',\n 'circle',\n 'circling',\n 'circular',\n 'circulate',\n 'circus',\n 'citable',\n 'citadel',\n 'citation',\n 'citizen',\n 'citric',\n 'citrus',\n 'city',\n 'civic',\n 'civil',\n 'clad',\n 'claim',\n 'clambake',\n 'clammy',\n 'clamor',\n 'clamp',\n 'clamshell',\n 'clang',\n 'clanking',\n 'clapped',\n 'clapper',\n 'clapping',\n 'clarify',\n 'clarinet',\n 'clarity',\n 'clash',\n 'clasp',\n 'class',\n 'clatter',\n 'clause',\n 'clavicle',\n 'claw',\n 'clay',\n 'clean',\n 'clear',\n 'cleat',\n 'cleaver',\n 'cleft',\n 'clench',\n 'clergyman',\n 'clerical',\n 'clerk',\n 'clever',\n 'clicker',\n 'client',\n 'climate',\n 'climatic',\n 'cling',\n 'clinic',\n 'clinking',\n 'clip',\n 'clique',\n 'cloak',\n 'clobber',\n 'clock',\n 'clone',\n 'cloning',\n 'closable',\n 'closure',\n 'clothes',\n 'clothing',\n 'cloud',\n 'clover',\n 'clubbed',\n 'clubbing',\n 'clubhouse',\n 'clump',\n 'clumsily',\n 'clumsy',\n 'clunky',\n 'clustered',\n 'clutch',\n 'clutter',\n 'coach',\n 'coagulant',\n 'coastal',\n 'coaster',\n 'coasting',\n 'coastland',\n 'coastline',\n 'coat',\n 'coauthor',\n 'cobalt',\n 'cobbler',\n 'cobweb',\n 'cocoa',\n 'coconut',\n 'cod',\n 'coeditor',\n 'coerce',\n 'coexist',\n 'coffee',\n 'cofounder',\n 'cognition',\n 'cognitive',\n 'cogwheel',\n 'coherence',\n 'coherent',\n 'cohesive',\n 'coil',\n 'coke',\n 'cola',\n 'cold',\n 'coleslaw',\n 'coliseum',\n 'collage',\n 'collapse',\n 'collar',\n 'collected',\n 'collector',\n 'collide',\n 'collie',\n 'collision',\n 'colonial',\n 'colonist',\n 'colonize',\n 'colony',\n 'colossal',\n 'colt',\n 'coma',\n 'come',\n 'comfort',\n 'comfy',\n 'comic',\n 'coming',\n 'comma',\n 'commence',\n 'commend',\n 'comment',\n 'commerce',\n 'commode',\n 'commodity',\n 'commodore',\n 'common',\n 'commotion',\n 'commute',\n 'commuting',\n 'compacted',\n 'compacter',\n 'compactly',\n 'compactor',\n 'companion',\n 'company',\n 'compare',\n 'compel',\n 'compile',\n 'comply',\n 'component',\n 'composed',\n 'composer',\n 'composite',\n 'compost',\n 'composure',\n 'compound',\n 'compress',\n 'comprised',\n 'computer',\n 'computing',\n 'comrade',\n 'concave',\n 'conceal',\n 'conceded',\n 'concept',\n 'concerned',\n 'concert',\n 'conch',\n 'concierge',\n 'concise',\n 'conclude',\n 'concrete',\n 'concur',\n 'condense',\n 'condiment',\n 'condition',\n 'condone',\n 'conducive',\n 'conductor',\n 'conduit',\n 'cone',\n 'confess',\n 'confetti',\n 'confidant',\n 'confident',\n 'confider',\n 'confiding',\n 'configure',\n 'confined',\n 'confining',\n 'confirm',\n 'conflict',\n 'conform',\n 'confound',\n 'confront',\n 'confused',\n 'confusing',\n 'confusion',\n 'congenial',\n 'congested',\n 'congrats',\n 'congress',\n 'conical',\n 'conjoined',\n 'conjure',\n 'conjuror',\n 'connected',\n 'connector',\n 'consensus',\n 'consent',\n 'console',\n 'consoling',\n 'consonant',\n 'constable',\n 'constant',\n 'constrain',\n 'constrict',\n 'construct',\n 'consult',\n 'consumer',\n 'consuming',\n 'contact',\n 'container',\n 'contempt',\n 'contend',\n 'contented',\n 'contently',\n 'contents',\n 'contest',\n 'context',\n 'contort',\n 'contour',\n 'contrite',\n 'control',\n 'contusion',\n 'convene',\n 'convent',\n 'copartner',\n 'cope',\n 'copied',\n 'copier',\n 'copilot',\n 'coping',\n 'copious',\n 'copper',\n 'copy',\n 'coral',\n 'cork',\n 'cornball',\n 'cornbread',\n 'corncob',\n 'cornea',\n 'corned',\n 'corner',\n 'cornfield',\n 'cornflake',\n 'cornhusk',\n 'cornmeal',\n 'cornstalk',\n 'corny',\n 'coronary',\n 'coroner',\n 'corporal',\n 'corporate',\n 'corral',\n 'correct',\n 'corridor',\n 'corrode',\n 'corroding',\n 'corrosive',\n 'corsage',\n 'corset',\n 'cortex',\n 'cosigner',\n 'cosmetics',\n 'cosmic',\n 'cosmos',\n 'cosponsor',\n 'cost',\n 'cottage',\n 'cotton',\n 'couch',\n 'cough',\n 'could',\n 'countable',\n 'countdown',\n 'counting',\n 'countless',\n 'country',\n 'county',\n 'courier',\n 'covenant',\n 'cover',\n 'coveted',\n 'coveting',\n 'coyness',\n 'cozily',\n 'coziness',\n 'cozy',\n 'crabbing',\n 'crabgrass',\n 'crablike',\n 'crabmeat',\n 'cradle',\n 'cradling',\n 'crafter',\n 'craftily',\n 'craftsman',\n 'craftwork',\n 'crafty',\n 'cramp',\n 'cranberry',\n 'crane',\n 'cranial',\n 'cranium',\n 'crank',\n 'crate',\n 'crave',\n 'craving',\n 'crawfish',\n 'crawlers',\n 'crawling',\n 'crayfish',\n 'crayon',\n 'crazed',\n 'crazily',\n 'craziness',\n 'crazy',\n 'creamed',\n 'creamer',\n 'creamlike',\n 'crease',\n 'creasing',\n 'creatable',\n 'create',\n 'creation',\n 'creative',\n 'creature',\n 'credible',\n 'credibly',\n 'credit',\n 'creed',\n 'creme',\n 'creole',\n 'crepe',\n 'crept',\n 'crescent',\n 'crested',\n 'cresting',\n 'crestless',\n 'crevice',\n 'crewless',\n 'crewman',\n 'crewmate',\n 'crib',\n 'cricket',\n 'cried',\n 'crier',\n 'crimp',\n 'crimson',\n 'cringe',\n 'cringing',\n 'crinkle',\n 'crinkly',\n 'crisped',\n 'crisping',\n 'crisply',\n 'crispness',\n 'crispy',\n 'criteria',\n 'critter',\n 'croak',\n 'crock',\n 'crook',\n 'croon',\n 'crop',\n 'cross',\n 'crouch',\n 'crouton',\n 'crowbar',\n 'crowd',\n 'crown',\n 'crucial',\n 'crudely',\n 'crudeness',\n 'cruelly',\n 'cruelness',\n 'cruelty',\n 'crumb',\n 'crummiest',\n 'crummy',\n 'crumpet',\n 'crumpled',\n 'cruncher',\n 'crunching',\n 'crunchy',\n 'crusader',\n 'crushable',\n 'crushed',\n 'crusher',\n 'crushing',\n 'crust',\n 'crux',\n 'crying',\n 'cryptic',\n 'crystal',\n 'cubbyhole',\n 'cube',\n 'cubical',\n 'cubicle',\n 'cucumber',\n 'cuddle',\n 'cuddly',\n 'cufflink',\n 'culinary',\n 'culminate',\n 'culpable',\n 'culprit',\n 'cultivate',\n 'cultural',\n 'culture',\n 'cupbearer',\n 'cupcake',\n 'cupid',\n 'cupped',\n 'cupping',\n 'curable',\n 'curator',\n 'curdle',\n 'cure',\n 'curfew',\n 'curing',\n 'curled',\n 'curler',\n 'curliness',\n 'curling',\n 'curly',\n 'curry',\n 'curse',\n 'cursive',\n 'cursor',\n 'curtain',\n 'curtly',\n 'curtsy',\n 'curvature',\n 'curve',\n 'curvy',\n 'cushy',\n 'cusp',\n 'cussed',\n 'custard',\n 'custodian',\n 'custody',\n 'customary',\n 'customer',\n 'customize',\n 'customs',\n 'cut',\n 'cycle',\n 'cyclic',\n 'cycling',\n 'cyclist',\n 'cylinder',\n 'cymbal',\n 'cytoplasm',\n 'cytoplast',\n 'dab',\n 'dad',\n 'daffodil',\n 'dagger',\n 'daily',\n 'daintily',\n 'dainty',\n 'dairy',\n 'daisy',\n 'dallying',\n 'dance',\n 'dancing',\n 'dandelion',\n 'dander',\n 'dandruff',\n 'dandy',\n 'danger',\n 'dangle',\n 'dangling',\n 'daredevil',\n 'dares',\n 'daringly',\n 'darkened',\n 'darkening',\n 'darkish',\n 'darkness',\n 'darkroom',\n 'darling',\n 'darn',\n 'dart',\n 'darwinism',\n 'dash',\n 'dastardly',\n 'data',\n 'datebook',\n 'dating',\n 'daughter',\n 'daunting',\n 'dawdler',\n 'dawn',\n 'daybed',\n 'daybreak',\n 'daycare',\n 'daydream',\n 'daylight',\n 'daylong',\n 'dayroom',\n 'daytime',\n 'dazzler',\n 'dazzling',\n 'deacon',\n 'deafening',\n 'deafness',\n 'dealer',\n 'dealing',\n 'dealmaker',\n 'dealt',\n 'dean',\n 'debatable',\n 'debate',\n 'debating',\n 'debit',\n 'debrief',\n 'debtless',\n 'debtor',\n 'debug',\n 'debunk',\n 'decade',\n 'decaf',\n 'decal',\n 'decathlon',\n 'decay',\n 'deceased',\n 'deceit',\n 'deceiver',\n 'deceiving',\n 'december',\n 'decency',\n 'decent',\n 'deception',\n 'deceptive',\n 'decibel',\n 'decidable',\n 'decimal',\n 'decimeter',\n 'decipher',\n 'deck',\n 'declared',\n 'decline',\n 'decode',\n 'decompose',\n 'decorated',\n 'decorator',\n 'decoy',\n 'decrease',\n 'decree',\n 'dedicate',\n 'dedicator',\n 'deduce',\n 'deduct',\n 'deed',\n 'deem',\n 'deepen',\n 'deeply',\n 'deepness',\n 'deface',\n 'defacing',\n 'defame',\n 'default',\n 'defeat',\n 'defection',\n 'defective',\n 'defendant',\n 'defender',\n 'defense',\n 'defensive',\n 'deferral',\n 'deferred',\n 'defiance',\n 'defiant',\n 'defile',\n 'defiling',\n 'define',\n 'definite',\n 'deflate',\n 'deflation',\n 'deflator',\n 'deflected',\n 'deflector',\n 'defog',\n 'deforest',\n 'defraud',\n 'defrost',\n 'deftly',\n 'defuse',\n 'defy',\n 'degraded',\n 'degrading',\n 'degrease',\n 'degree',\n 'dehydrate',\n 'deity',\n 'dejected',\n 'delay',\n 'delegate',\n 'delegator',\n 'delete',\n 'deletion',\n 'delicacy',\n 'delicate',\n 'delicious',\n 'delighted',\n 'delirious',\n 'delirium',\n 'deliverer',\n 'delivery',\n 'delouse',\n 'delta',\n 'deluge',\n 'delusion',\n 'deluxe',\n 'demanding',\n 'demeaning',\n 'demeanor',\n 'demise',\n 'democracy',\n 'democrat',\n 'demote',\n 'demotion',\n 'demystify',\n 'denatured',\n 'deniable',\n 'denial',\n 'denim',\n 'denote',\n 'dense',\n 'density',\n 'dental',\n 'dentist',\n 'denture',\n 'deny',\n 'deodorant',\n 'deodorize',\n 'departed',\n 'departure',\n 'depict',\n 'deplete',\n 'depletion',\n 'deplored',\n 'deploy',\n 'deport',\n 'depose',\n 'depraved',\n 'depravity',\n 'deprecate',\n 'depress',\n 'deprive',\n 'depth',\n 'deputize',\n 'deputy',\n 'derail',\n 'deranged',\n 'derby',\n 'derived',\n 'desecrate',\n 'deserve',\n 'deserving',\n 'designate',\n 'designed',\n 'designer',\n 'designing',\n 'deskbound',\n 'desktop',\n 'deskwork',\n 'desolate',\n 'despair',\n 'despise',\n 'despite',\n 'destiny',\n 'destitute',\n 'destruct',\n 'detached',\n 'detail',\n 'detection',\n 'detective',\n 'detector',\n 'detention',\n 'detergent',\n 'detest',\n 'detonate',\n 'detonator',\n 'detoxify',\n 'detract',\n 'deuce',\n 'devalue',\n 'deviancy',\n 'deviant',\n 'deviate',\n 'deviation',\n 'deviator',\n 'device',\n 'devious',\n 'devotedly',\n 'devotee',\n 'devotion',\n 'devourer',\n 'devouring',\n 'devoutly',\n 'dexterity',\n 'dexterous',\n 'diabetes',\n 'diabetic',\n 'diabolic',\n 'diagnoses',\n 'diagnosis',\n 'diagram',\n 'dial',\n 'diameter',\n 'diaper',\n 'diaphragm',\n 'diary',\n 'dice',\n 'dicing',\n 'dictate',\n 'dictation',\n 'dictator',\n 'difficult',\n 'diffused',\n 'diffuser',\n 'diffusion',\n 'diffusive',\n 'dig',\n 'dilation',\n 'diligence',\n 'diligent',\n 'dill',\n 'dilute',\n 'dime',\n 'diminish',\n 'dimly',\n 'dimmed',\n 'dimmer',\n 'dimness',\n 'dimple',\n 'diner',\n 'dingbat',\n 'dinghy',\n 'dinginess',\n 'dingo',\n 'dingy',\n 'dining',\n 'dinner',\n 'diocese',\n 'dioxide',\n 'diploma',\n 'dipped',\n 'dipper',\n 'dipping',\n 'directed',\n 'direction',\n 'directive',\n 'directly',\n 'directory',\n 'direness',\n 'dirtiness',\n 'disabled',\n 'disagree',\n 'disallow',\n 'disarm',\n 'disarray',\n 'disaster',\n 'disband',\n 'disbelief',\n 'disburse',\n 'discard',\n 'discern',\n 'discharge',\n 'disclose',\n 'discolor',\n 'discount',\n 'discourse',\n 'discover',\n 'discuss',\n 'disdain',\n 'disengage',\n 'disfigure',\n 'disgrace',\n 'dish',\n 'disinfect',\n 'disjoin',\n 'disk',\n 'dislike',\n 'disliking',\n 'dislocate',\n 'dislodge',\n 'disloyal',\n 'dismantle',\n 'dismay',\n 'dismiss',\n 'dismount',\n 'disobey',\n 'disorder',\n 'disown',\n 'disparate',\n 'disparity',\n 'dispatch',\n 'dispense',\n 'dispersal',\n 'dispersed',\n 'disperser',\n 'displace',\n 'display',\n 'displease',\n 'disposal',\n 'dispose',\n 'disprove',\n 'dispute',\n 'disregard',\n 'disrupt',\n 'dissuade',\n 'distance',\n 'distant',\n 'distaste',\n 'distill',\n 'distinct',\n 'distort',\n 'distract',\n 'distress',\n 'district',\n 'distrust',\n 'ditch',\n 'ditto',\n 'ditzy',\n 'dividable',\n 'divided',\n 'dividend',\n 'dividers',\n 'dividing',\n 'divinely',\n 'diving',\n 'divinity',\n 'divisible',\n 'divisibly',\n 'division',\n 'divisive',\n 'divorcee',\n 'dizziness',\n 'dizzy',\n 'doable',\n 'docile',\n 'dock',\n 'doctrine',\n 'document',\n 'dodge',\n 'dodgy',\n 'doily',\n 'doing',\n 'dole',\n 'dollar',\n 'dollhouse',\n 'dollop',\n 'dolly',\n 'dolphin',\n 'domain',\n 'domelike',\n 'domestic',\n 'dominion',\n 'dominoes',\n 'donated',\n 'donation',\n 'donator',\n 'donor',\n 'donut',\n 'doodle',\n 'doorbell',\n 'doorframe',\n 'doorknob',\n 'doorman',\n 'doormat',\n 'doornail',\n 'doorpost',\n 'doorstep',\n 'doorstop',\n 'doorway',\n 'doozy',\n 'dork',\n 'dormitory',\n 'dorsal',\n 'dosage',\n 'dose',\n 'dotted',\n 'doubling',\n 'douche',\n 'dove',\n 'down',\n 'dowry',\n 'doze',\n 'drab',\n 'dragging',\n 'dragonfly',\n 'dragonish',\n 'dragster',\n 'drainable',\n 'drainage',\n 'drained',\n 'drainer',\n 'drainpipe',\n 'dramatic',\n 'dramatize',\n 'drank',\n 'drapery',\n 'drastic',\n 'draw',\n 'dreaded',\n 'dreadful',\n 'dreadlock',\n 'dreamboat',\n 'dreamily',\n 'dreamland',\n 'dreamless',\n 'dreamlike',\n 'dreamt',\n 'dreamy',\n 'drearily',\n 'dreary',\n 'drench',\n 'dress',\n 'drew',\n 'dribble',\n 'dried',\n 'drier',\n 'drift',\n 'driller',\n 'drilling',\n 'drinkable',\n 'drinking',\n 'dripping',\n 'drippy',\n 'drivable',\n 'driven',\n 'driver',\n 'driveway',\n 'driving',\n 'drizzle',\n 'drizzly',\n 'drone',\n 'drool',\n 'droop',\n 'drop-down',\n 'dropbox',\n 'dropkick',\n 'droplet',\n 'dropout',\n 'dropper',\n 'drove',\n 'drown',\n 'drowsily',\n 'drudge',\n 'drum',\n 'dry',\n 'dubbed',\n 'dubiously',\n 'duchess',\n 'duckbill',\n 'ducking',\n 'duckling',\n 'ducktail',\n 'ducky',\n 'duct',\n 'dude',\n 'duffel',\n 'dugout',\n 'duh',\n 'duke',\n 'duller',\n 'dullness',\n 'duly',\n 'dumping',\n 'dumpling',\n 'dumpster',\n 'duo',\n 'dupe',\n 'duplex',\n 'duplicate',\n 'duplicity',\n 'durable',\n 'durably',\n 'duration',\n 'duress',\n 'during',\n 'dusk',\n 'dust',\n 'dutiful',\n 'duty',\n 'duvet',\n 'dwarf',\n 'dweeb',\n 'dwelled',\n 'dweller',\n 'dwelling',\n 'dwindle',\n 'dwindling',\n 'dynamic',\n 'dynamite',\n 'dynasty',\n 'dyslexia',\n 'dyslexic',\n 'each',\n 'eagle',\n 'earache',\n 'eardrum',\n 'earflap',\n 'earful',\n 'earlobe',\n 'early',\n 'earmark',\n 'earmuff',\n 'earphone',\n 'earpiece',\n 'earplugs',\n 'earring',\n 'earshot',\n 'earthen',\n 'earthlike',\n 'earthling',\n 'earthly',\n 'earthworm',\n 'earthy',\n 'earwig',\n 'easeful',\n 'easel',\n 'easiest',\n 'easily',\n 'easiness',\n 'easing',\n 'eastbound',\n 'eastcoast',\n 'easter',\n 'eastward',\n 'eatable',\n 'eaten',\n 'eatery',\n 'eating',\n 'eats',\n 'ebay',\n 'ebony',\n 'ebook',\n 'ecard',\n 'eccentric',\n 'echo',\n 'eclair',\n 'eclipse',\n 'ecologist',\n 'ecology',\n 'economic',\n 'economist',\n 'economy',\n 'ecosphere',\n 'ecosystem',\n 'edge',\n 'edginess',\n 'edging',\n 'edgy',\n 'edition',\n 'editor',\n 'educated',\n 'education',\n 'educator',\n 'eel',\n 'effective',\n 'effects',\n 'efficient',\n 'effort',\n 'eggbeater',\n 'egging',\n 'eggnog',\n 'eggplant',\n 'eggshell',\n 'egomaniac',\n 'egotism',\n 'egotistic',\n 'either',\n 'eject',\n 'elaborate',\n 'elastic',\n 'elated',\n 'elbow',\n 'eldercare',\n 'elderly',\n 'eldest',\n 'electable',\n 'election',\n 'elective',\n 'elephant',\n 'elevate',\n 'elevating',\n 'elevation',\n 'elevator',\n 'eleven',\n 'elf',\n 'eligible',\n 'eligibly',\n 'eliminate',\n 'elite',\n 'elitism',\n 'elixir',\n 'elk',\n 'ellipse',\n 'elliptic',\n 'elm',\n 'elongated',\n 'elope',\n 'eloquence',\n 'eloquent',\n 'elsewhere',\n 'elude',\n 'elusive',\n 'elves',\n 'email',\n 'embargo',\n 'embark',\n 'embassy',\n 'embattled',\n 'embellish',\n 'ember',\n 'embezzle',\n 'emblaze',\n 'emblem',\n 'embody',\n 'embolism',\n 'emboss',\n 'embroider',\n 'emcee',\n 'emerald',\n 'emergency',\n 'emission',\n 'emit',\n 'emote',\n 'emoticon',\n 'emotion',\n 'empathic',\n 'empathy',\n 'emperor',\n 'emphases',\n 'emphasis',\n 'emphasize',\n 'emphatic',\n 'empirical',\n 'employed',\n 'employee',\n 'employer',\n 'emporium',\n 'empower',\n 'emptier',\n 'emptiness',\n 'empty',\n 'emu',\n 'enable',\n 'enactment',\n 'enamel',\n 'enchanted',\n 'enchilada',\n 'encircle',\n 'enclose',\n 'enclosure',\n 'encode',\n 'encore',\n 'encounter',\n 'encourage',\n 'encroach',\n 'encrust',\n 'encrypt',\n 'endanger',\n 'endeared',\n 'endearing',\n 'ended',\n 'ending',\n 'endless',\n 'endnote',\n 'endocrine',\n 'endorphin',\n 'endorse',\n 'endowment',\n 'endpoint',\n 'endurable',\n 'endurance',\n 'enduring',\n 'energetic',\n 'energize',\n 'energy',\n 'enforced',\n 'enforcer',\n 'engaged',\n 'engaging',\n 'engine',\n 'engorge',\n 'engraved',\n 'engraver',\n 'engraving',\n 'engross',\n 'engulf',\n 'enhance',\n 'enigmatic',\n 'enjoyable',\n 'enjoyably',\n 'enjoyer',\n 'enjoying',\n 'enjoyment',\n 'enlarged',\n 'enlarging',\n 'enlighten',\n 'enlisted',\n 'enquirer',\n 'enrage',\n 'enrich',\n 'enroll',\n 'enslave',\n 'ensnare',\n 'ensure',\n 'entail',\n 'entangled',\n 'entering',\n 'entertain',\n 'enticing',\n 'entire',\n 'entitle',\n 'entity',\n 'entomb',\n 'entourage',\n 'entrap',\n 'entree',\n 'entrench',\n 'entrust',\n 'entryway',\n 'entwine',\n 'enunciate',\n 'envelope',\n 'enviable',\n 'enviably',\n 'envious',\n 'envision',\n 'envoy',\n 'envy',\n 'enzyme',\n 'epic',\n 'epidemic',\n 'epidermal',\n 'epidermis',\n 'epidural',\n 'epilepsy',\n 'epileptic',\n 'epilogue',\n 'epiphany',\n 'episode',\n 'equal',\n 'equate',\n 'equation',\n 'equator',\n 'equinox',\n 'equipment',\n 'equity',\n 'equivocal',\n 'eradicate',\n 'erasable',\n 'erased',\n 'eraser',\n 'erasure',\n 'ergonomic',\n 'errand',\n 'errant',\n 'erratic',\n 'error',\n 'erupt',\n 'escalate',\n 'escalator',\n 'escapable',\n 'escapade',\n 'escapist',\n 'escargot',\n 'eskimo',\n 'esophagus',\n 'espionage',\n 'espresso',\n 'esquire',\n 'essay',\n 'essence',\n 'essential',\n 'establish',\n 'estate',\n 'esteemed',\n 'estimate',\n 'estimator',\n 'estranged',\n 'estrogen',\n 'etching',\n 'eternal',\n 'eternity',\n 'ethanol',\n 'ether',\n 'ethically',\n 'ethics',\n 'euphemism',\n 'evacuate',\n 'evacuee',\n 'evade',\n 'evaluate',\n 'evaluator',\n 'evaporate',\n 'evasion',\n 'evasive',\n 'even',\n 'everglade',\n 'evergreen',\n 'everybody',\n 'everyday',\n 'everyone',\n 'evict',\n 'evidence',\n 'evident',\n 'evil',\n 'evoke',\n 'evolution',\n 'evolve',\n 'exact',\n 'exalted',\n 'example',\n 'excavate',\n 'excavator',\n 'exceeding',\n 'exception',\n 'excess',\n 'exchange',\n 'excitable',\n 'exciting',\n 'exclaim',\n 'exclude',\n 'excluding',\n 'exclusion',\n 'exclusive',\n 'excretion',\n 'excretory',\n 'excursion',\n 'excusable',\n 'excusably',\n 'excuse',\n 'exemplary',\n 'exemplify',\n 'exemption',\n 'exerciser',\n 'exert',\n 'exes',\n 'exfoliate',\n 'exhale',\n 'exhaust',\n 'exhume',\n 'exile',\n 'existing',\n 'exit',\n 'exodus',\n 'exonerate',\n 'exorcism',\n 'exorcist',\n 'expand',\n 'expanse',\n 'expansion',\n 'expansive',\n 'expectant',\n 'expedited',\n 'expediter',\n 'expel',\n 'expend',\n 'expenses',\n 'expensive',\n 'expert',\n 'expire',\n 'expiring',\n 'explain',\n 'expletive',\n 'explicit',\n 'explode',\n 'exploit',\n 'explore',\n 'exploring',\n 'exponent',\n 'exporter',\n 'exposable',\n 'expose',\n 'exposure',\n 'express',\n 'expulsion',\n 'exquisite',\n 'extended',\n 'extending',\n 'extent',\n 'extenuate',\n 'exterior',\n 'external',\n 'extinct',\n 'extortion',\n 'extradite',\n 'extras',\n 'extrovert',\n 'extrude',\n 'extruding',\n 'exuberant',\n 'fable',\n 'fabric',\n 'fabulous',\n 'facebook',\n 'facecloth',\n 'facedown',\n 'faceless',\n 'facelift',\n 'faceplate',\n 'faceted',\n 'facial',\n 'facility',\n 'facing',\n 'facsimile',\n 'faction',\n 'factoid',\n 'factor',\n 'factsheet',\n 'factual',\n 'faculty',\n 'fade',\n 'fading',\n 'failing',\n 'falcon',\n 'fall',\n 'false',\n 'falsify',\n 'fame',\n 'familiar',\n 'family',\n 'famine',\n 'famished',\n 'fanatic',\n 'fancied',\n 'fanciness',\n 'fancy',\n 'fanfare',\n 'fang',\n 'fanning',\n 'fantasize',\n 'fantastic',\n 'fantasy',\n 'fascism',\n 'fastball',\n 'faster',\n 'fasting',\n 'fastness',\n 'faucet',\n 'favorable',\n 'favorably',\n 'favored',\n 'favoring',\n 'favorite',\n 'fax',\n 'feast',\n 'federal',\n 'fedora',\n 'feeble',\n 'feed',\n 'feel',\n 'feisty',\n 'feline',\n 'felt-tip',\n 'feminine',\n 'feminism',\n 'feminist',\n 'feminize',\n 'femur',\n 'fence',\n 'fencing',\n 'fender',\n 'ferment',\n 'fernlike',\n 'ferocious',\n 'ferocity',\n 'ferret',\n 'ferris',\n 'ferry',\n 'fervor',\n 'fester',\n 'festival',\n 'festive',\n 'festivity',\n 'fetal',\n 'fetch',\n 'fever',\n 'fiber',\n 'fiction',\n 'fiddle',\n 'fiddling',\n 'fidelity',\n 'fidgeting',\n 'fidgety',\n 'fifteen',\n 'fifth',\n 'fiftieth',\n 'fifty',\n 'figment',\n 'figure',\n 'figurine',\n 'filing',\n 'filled',\n 'filler',\n 'filling',\n 'film',\n 'filter',\n 'filth',\n 'filtrate',\n 'finale',\n 'finalist',\n 'finalize',\n 'finally',\n 'finance',\n 'financial',\n 'finch',\n 'fineness',\n 'finer',\n 'finicky',\n 'finished',\n 'finisher',\n 'finishing',\n 'finite',\n 'finless',\n 'finlike',\n 'fiscally',\n 'fit',\n 'five',\n 'flaccid',\n 'flagman',\n 'flagpole',\n 'flagship',\n 'flagstick',\n 'flagstone',\n 'flail',\n 'flakily',\n 'flaky',\n 'flame',\n 'flammable',\n 'flanked',\n 'flanking',\n 'flannels',\n 'flap',\n 'flaring',\n 'flashback',\n 'flashbulb',\n 'flashcard',\n 'flashily',\n 'flashing',\n 'flashy',\n 'flask',\n 'flatbed',\n 'flatfoot',\n 'flatly',\n 'flatness',\n 'flatten',\n 'flattered',\n 'flatterer',\n 'flattery',\n 'flattop',\n 'flatware',\n 'flatworm',\n 'flavored',\n 'flavorful',\n 'flavoring',\n 'flaxseed',\n 'fled',\n 'fleshed',\n 'fleshy',\n 'flick',\n 'flier',\n 'flight',\n 'flinch',\n 'fling',\n 'flint',\n 'flip',\n 'flirt',\n 'float',\n 'flock',\n 'flogging',\n 'flop',\n 'floral',\n 'florist',\n 'floss',\n 'flounder',\n 'flyable',\n 'flyaway',\n 'flyer',\n 'flying',\n 'flyover',\n 'flypaper',\n 'foam',\n 'foe',\n 'fog',\n 'foil',\n 'folic',\n 'folk',\n 'follicle',\n 'follow',\n 'fondling',\n 'fondly',\n 'fondness',\n 'fondue',\n 'font',\n 'food',\n 'fool',\n 'footage',\n 'football',\n 'footbath',\n 'footboard',\n 'footer',\n 'footgear',\n 'foothill',\n 'foothold',\n 'footing',\n 'footless',\n 'footman',\n 'footnote',\n 'footpad',\n 'footpath',\n 'footprint',\n 'footrest',\n 'footsie',\n 'footsore',\n 'footwear',\n 'footwork',\n 'fossil',\n 'foster',\n 'founder',\n 'founding',\n 'fountain',\n 'fox',\n 'foyer',\n 'fraction',\n 'fracture',\n 'fragile',\n 'fragility',\n 'fragment',\n 'fragrance',\n 'fragrant',\n 'frail',\n 'frame',\n 'framing',\n 'frantic',\n 'fraternal',\n 'frayed',\n 'fraying',\n 'frays',\n 'freckled',\n 'freckles',\n 'freebase',\n 'freebee',\n 'freebie',\n 'freedom',\n 'freefall',\n 'freehand',\n 'freeing',\n 'freeload',\n 'freely',\n 'freemason',\n 'freeness',\n 'freestyle',\n 'freeware',\n 'freeway',\n 'freewill',\n 'freezable',\n 'freezing',\n 'freight',\n 'french',\n 'frenzied',\n 'frenzy',\n 'frequency',\n 'frequent',\n 'fresh',\n 'fretful',\n 'fretted',\n 'friction',\n 'friday',\n 'fridge',\n 'fried',\n 'friend',\n 'frighten',\n 'frightful',\n 'frigidity',\n 'frigidly',\n 'frill',\n 'fringe',\n 'frisbee',\n 'frisk',\n 'fritter',\n 'frivolous',\n 'frolic',\n 'from',\n 'front',\n 'frostbite',\n 'frosted',\n 'frostily',\n 'frosting',\n 'frostlike',\n 'frosty',\n 'froth',\n 'frown',\n 'frozen',\n 'fructose',\n 'frugality',\n 'frugally',\n 'fruit',\n 'frustrate',\n 'frying',\n 'gab',\n 'gaffe',\n 'gag',\n 'gainfully',\n 'gaining',\n 'gains',\n 'gala',\n 'gallantly',\n 'galleria',\n 'gallery',\n 'galley',\n 'gallon',\n 'gallows',\n 'gallstone',\n 'galore',\n 'galvanize',\n 'gambling',\n 'game',\n 'gaming',\n 'gamma',\n 'gander',\n 'gangly',\n 'gangrene',\n 'gangway',\n 'gap',\n 'garage',\n 'garbage',\n 'garden',\n 'gargle',\n 'garland',\n 'garlic',\n 'garment',\n 'garnet',\n 'garnish',\n 'garter',\n 'gas',\n 'gatherer',\n 'gathering',\n 'gating',\n 'gauging',\n 'gauntlet',\n 'gauze',\n 'gave',\n 'gawk',\n 'gazing',\n 'gear',\n 'gecko',\n 'geek',\n 'geiger',\n 'gem',\n 'gender',\n 'generic',\n 'generous',\n 'genetics',\n 'genre',\n 'gentile',\n 'gentleman',\n 'gently',\n 'gents',\n 'geography',\n 'geologic',\n 'geologist',\n 'geology',\n 'geometric',\n 'geometry',\n 'geranium',\n 'gerbil',\n 'geriatric',\n 'germicide',\n 'germinate',\n 'germless',\n 'germproof',\n 'gestate',\n 'gestation',\n 'gesture',\n 'getaway',\n 'getting',\n 'getup',\n 'giant',\n 'gibberish',\n 'giblet',\n 'giddily',\n 'giddiness',\n 'giddy',\n 'gift',\n 'gigabyte',\n 'gigahertz',\n 'gigantic',\n 'giggle',\n 'giggling',\n 'giggly',\n 'gigolo',\n 'gilled',\n 'gills',\n 'gimmick',\n 'girdle',\n 'giveaway',\n 'given',\n 'giver',\n 'giving',\n 'gizmo',\n 'gizzard',\n 'glacial',\n 'glacier',\n 'glade',\n 'gladiator',\n 'gladly',\n 'glamorous',\n 'glamour',\n 'glance',\n 'glancing',\n 'glandular',\n 'glare',\n 'glaring',\n 'glass',\n 'glaucoma',\n 'glazing',\n 'gleaming',\n 'gleeful',\n 'glider',\n 'gliding',\n 'glimmer',\n 'glimpse',\n 'glisten',\n 'glitch',\n 'glitter',\n 'glitzy',\n 'gloater',\n 'gloating',\n 'gloomily',\n 'gloomy',\n 'glorified',\n 'glorifier',\n 'glorify',\n 'glorious',\n 'glory',\n 'gloss',\n 'glove',\n 'glowing',\n 'glowworm',\n 'glucose',\n 'glue',\n 'gluten',\n 'glutinous',\n 'glutton',\n 'gnarly',\n 'gnat',\n 'goal',\n 'goatskin',\n 'goes',\n 'goggles',\n 'going',\n 'goldfish',\n 'goldmine',\n 'goldsmith',\n 'golf',\n 'goliath',\n 'gonad',\n 'gondola',\n 'gone',\n 'gong',\n 'good',\n 'gooey',\n 'goofball',\n 'goofiness',\n 'goofy',\n 'google',\n 'goon',\n 'gopher',\n 'gore',\n 'gorged',\n 'gorgeous',\n 'gory',\n 'gosling',\n 'gossip',\n 'gothic',\n 'gotten',\n 'gout',\n 'gown',\n 'grab',\n 'graceful',\n 'graceless',\n 'gracious',\n 'gradation',\n 'graded',\n 'grader',\n 'gradient',\n 'grading',\n 'gradually',\n 'graduate',\n 'graffiti',\n 'grafted',\n 'grafting',\n 'grain',\n 'granddad',\n 'grandkid',\n 'grandly',\n 'grandma',\n 'grandpa',\n 'grandson',\n 'granite',\n 'granny',\n 'granola',\n 'grant',\n 'granular',\n 'grape',\n 'graph',\n 'grapple',\n 'grappling',\n 'grasp',\n 'grass',\n 'gratified',\n 'gratify',\n 'grating',\n 'gratitude',\n 'gratuity',\n 'gravel',\n 'graveness',\n 'graves',\n 'graveyard',\n 'gravitate',\n 'gravity',\n 'gravy',\n 'gray',\n 'grazing',\n 'greasily',\n 'greedily',\n 'greedless',\n 'greedy',\n 'green',\n 'greeter',\n 'greeting',\n 'grew',\n 'greyhound',\n 'grid',\n 'grief',\n 'grievance',\n 'grieving',\n 'grievous',\n 'grill',\n 'grimace',\n 'grimacing',\n 'grime',\n 'griminess',\n 'grimy',\n 'grinch',\n 'grinning',\n 'grip',\n 'gristle',\n 'grit',\n 'groggily',\n 'groggy',\n 'groin',\n 'groom',\n 'groove',\n 'grooving',\n 'groovy',\n 'grope',\n 'ground',\n 'grouped',\n 'grout',\n 'grove',\n 'grower',\n 'growing',\n 'growl',\n 'grub',\n 'grudge',\n 'grudging',\n 'grueling',\n 'gruffly',\n 'grumble',\n 'grumbling',\n 'grumbly',\n 'grumpily',\n 'grunge',\n 'grunt',\n 'guacamole',\n 'guidable',\n 'guidance',\n 'guide',\n 'guiding',\n 'guileless',\n 'guise',\n 'gulf',\n 'gullible',\n 'gully',\n 'gulp',\n 'gumball',\n 'gumdrop',\n 'gumminess',\n 'gumming',\n 'gummy',\n 'gurgle',\n 'gurgling',\n 'guru',\n 'gush',\n 'gusto',\n 'gusty',\n 'gutless',\n 'guts',\n 'gutter',\n 'guy',\n 'guzzler',\n 'gyration',\n 'habitable',\n 'habitant',\n 'habitat',\n 'habitual',\n 'hacked',\n 'hacker',\n 'hacking',\n 'hacksaw',\n 'had',\n 'haggler',\n 'haiku',\n 'half',\n 'halogen',\n 'halt',\n 'halved',\n 'halves',\n 'hamburger',\n 'hamlet',\n 'hammock',\n 'hamper',\n 'hamster',\n 'hamstring',\n 'handbag',\n 'handball',\n 'handbook',\n 'handbrake',\n 'handcart',\n 'handclap',\n 'handclasp',\n 'handcraft',\n 'handcuff',\n 'handed',\n 'handful',\n 'handgrip',\n 'handgun',\n 'handheld',\n 'handiness',\n 'handiwork',\n 'handlebar',\n 'handled',\n 'handler',\n 'handling',\n 'handmade',\n 'handoff',\n 'handpick',\n 'handprint',\n 'handrail',\n 'handsaw',\n 'handset',\n 'handsfree',\n 'handshake',\n 'handstand',\n 'handwash',\n 'handwork',\n 'handwoven',\n 'handwrite',\n 'handyman',\n 'hangnail',\n 'hangout',\n 'hangover',\n 'hangup',\n 'hankering',\n 'hankie',\n 'hanky',\n 'haphazard',\n 'happening',\n 'happier',\n 'happiest',\n 'happily',\n 'happiness',\n 'happy',\n 'harbor',\n 'hardcopy',\n 'hardcore',\n 'hardcover',\n 'harddisk',\n 'hardened',\n 'hardener',\n 'hardening',\n 'hardhat',\n 'hardhead',\n 'hardiness',\n 'hardly',\n 'hardness',\n 'hardship',\n 'hardware',\n 'hardwired',\n 'hardwood',\n 'hardy',\n 'harmful',\n 'harmless',\n 'harmonica',\n 'harmonics',\n 'harmonize',\n 'harmony',\n 'harness',\n 'harpist',\n 'harsh',\n 'harvest',\n 'hash',\n 'hassle',\n 'haste',\n 'hastily',\n 'hastiness',\n 'hasty',\n 'hatbox',\n 'hatchback',\n 'hatchery',\n 'hatchet',\n 'hatching',\n 'hatchling',\n 'hate',\n 'hatless',\n 'hatred',\n 'haunt',\n 'haven',\n 'hazard',\n 'hazelnut',\n 'hazily',\n 'haziness',\n 'hazing',\n 'hazy',\n 'headache',\n 'headband',\n 'headboard',\n 'headcount',\n 'headdress',\n 'headed',\n 'header',\n 'headfirst',\n 'headgear',\n 'heading',\n 'headlamp',\n 'headless',\n 'headlock',\n 'headphone',\n 'headpiece',\n 'headrest',\n 'headroom',\n 'headscarf',\n 'headset',\n 'headsman',\n 'headstand',\n 'headstone',\n 'headway',\n 'headwear',\n 'heap',\n 'heat',\n 'heave',\n 'heavily',\n 'heaviness',\n 'heaving',\n 'hedge',\n 'hedging',\n 'heftiness',\n 'hefty',\n 'helium',\n 'helmet',\n 'helper',\n 'helpful',\n 'helping',\n 'helpless',\n 'helpline',\n 'hemlock',\n 'hemstitch',\n 'hence',\n 'henchman',\n 'henna',\n 'herald',\n 'herbal',\n 'herbicide',\n 'herbs',\n 'heritage',\n 'hermit',\n 'heroics',\n 'heroism',\n 'herring',\n 'herself',\n 'hertz',\n 'hesitancy',\n 'hesitant',\n 'hesitate',\n 'hexagon',\n 'hexagram',\n 'hubcap',\n 'huddle',\n 'huddling',\n 'huff',\n 'hug',\n 'hula',\n 'hulk',\n 'hull',\n 'human',\n 'humble',\n 'humbling',\n 'humbly',\n 'humid',\n 'humiliate',\n 'humility',\n 'humming',\n 'hummus',\n 'humongous',\n 'humorist',\n 'humorless',\n 'humorous',\n 'humpback',\n 'humped',\n 'humvee',\n 'hunchback',\n 'hundredth',\n 'hunger',\n 'hungrily',\n 'hungry',\n 'hunk',\n 'hunter',\n 'hunting',\n 'huntress',\n 'huntsman',\n 'hurdle',\n 'hurled',\n 'hurler',\n 'hurling',\n 'hurray',\n 'hurricane',\n 'hurried',\n 'hurry',\n 'hurt',\n 'husband',\n 'hush',\n 'husked',\n 'huskiness',\n 'hut',\n 'hybrid',\n 'hydrant',\n 'hydrated',\n 'hydration',\n 'hydrogen',\n 'hydroxide',\n 'hyperlink',\n 'hypertext',\n 'hyphen',\n 'hypnoses',\n 'hypnosis',\n 'hypnotic',\n 'hypnotism',\n 'hypnotist',\n 'hypnotize',\n 'hypocrisy',\n 'hypocrite',\n 'ibuprofen',\n 'ice',\n 'iciness',\n 'icing',\n 'icky',\n 'icon',\n 'icy',\n 'idealism',\n 'idealist',\n 'idealize',\n 'ideally',\n 'idealness',\n 'identical',\n 'identify',\n 'identity',\n 'ideology',\n 'idiocy',\n 'idiom',\n 'idly',\n 'igloo',\n 'ignition',\n 'ignore',\n 'iguana',\n 'illicitly',\n 'illusion',\n 'illusive',\n 'image',\n 'imaginary',\n 'imagines',\n 'imaging',\n 'imbecile',\n 'imitate',\n 'imitation',\n 'immature',\n 'immerse',\n 'immersion',\n 'imminent',\n 'immobile',\n 'immodest',\n 'immorally',\n 'immortal',\n 'immovable',\n 'immovably',\n 'immunity',\n 'immunize',\n 'impaired',\n 'impale',\n 'impart',\n 'impatient',\n 'impeach',\n 'impeding',\n 'impending',\n 'imperfect',\n 'imperial',\n 'impish',\n 'implant',\n 'implement',\n 'implicate',\n 'implicit',\n 'implode',\n 'implosion',\n 'implosive',\n 'imply',\n 'impolite',\n 'important',\n 'importer',\n 'impose',\n 'imposing',\n 'impotence',\n 'impotency',\n 'impotent',\n 'impound',\n 'imprecise',\n 'imprint',\n 'imprison',\n 'impromptu',\n 'improper',\n 'improve',\n 'improving',\n 'improvise',\n 'imprudent',\n 'impulse',\n 'impulsive',\n 'impure',\n 'impurity',\n 'iodine',\n 'iodize',\n 'ion',\n 'ipad',\n 'iphone',\n 'ipod',\n 'irate',\n 'irk',\n 'iron',\n 'irregular',\n 'irrigate',\n 'irritable',\n 'irritably',\n 'irritant',\n 'irritate',\n 'islamic',\n 'islamist',\n 'isolated',\n 'isolating',\n 'isolation',\n 'isotope',\n 'issue',\n 'issuing',\n 'italicize',\n 'italics',\n 'item',\n 'itinerary',\n 'itunes',\n 'ivory',\n 'ivy',\n 'jab',\n 'jackal',\n 'jacket',\n 'jackknife',\n 'jackpot',\n 'jailbird',\n 'jailbreak',\n 'jailer',\n 'jailhouse',\n 'jalapeno',\n 'jam',\n 'janitor',\n 'january',\n 'jargon',\n 'jarring',\n 'jasmine',\n 'jaundice',\n 'jaunt',\n 'java',\n 'jawed',\n 'jawless',\n 'jawline',\n 'jaws',\n 'jaybird',\n 'jaywalker',\n 'jazz',\n 'jeep',\n 'jeeringly',\n 'jellied',\n 'jelly',\n 'jersey',\n 'jester',\n 'jet',\n 'jiffy',\n 'jigsaw',\n 'jimmy',\n 'jingle',\n 'jingling',\n 'jinx',\n 'jitters',\n 'jittery',\n 'job',\n 'jockey',\n 'jockstrap',\n 'jogger',\n 'jogging',\n 'john',\n 'joining',\n 'jokester',\n 'jokingly',\n 'jolliness',\n 'jolly',\n 'jolt',\n 'jot',\n 'jovial',\n 'joyfully',\n 'joylessly',\n 'joyous',\n 'joyride',\n 'joystick',\n 'jubilance',\n 'jubilant',\n 'judge',\n 'judgingly',\n 'judicial',\n 'judiciary',\n 'judo',\n 'juggle',\n 'juggling',\n 'jugular',\n 'juice',\n 'juiciness',\n 'juicy',\n 'jujitsu',\n 'jukebox',\n 'july',\n 'jumble',\n 'jumbo',\n 'jump',\n 'junction',\n 'juncture',\n 'june',\n 'junior',\n 'juniper',\n 'junkie',\n 'junkman',\n 'junkyard',\n 'jurist',\n 'juror',\n 'jury',\n 'justice',\n 'justifier',\n 'justify',\n 'justly',\n 'justness',\n 'juvenile',\n 'kabob',\n 'kangaroo',\n 'karaoke',\n 'karate',\n 'karma',\n 'kebab',\n 'keenly',\n 'keenness',\n 'keep',\n 'keg',\n 'kelp',\n 'kennel',\n 'kept',\n 'kerchief',\n 'kerosene',\n 'kettle',\n 'kick',\n 'kiln',\n 'kilobyte',\n 'kilogram',\n 'kilometer',\n 'kilowatt',\n 'kilt',\n 'kimono',\n 'kindle',\n 'kindling',\n 'kindly',\n 'kindness',\n 'kindred',\n 'kinetic',\n 'kinfolk',\n 'king',\n 'kinship',\n 'kinsman',\n 'kinswoman',\n 'kissable',\n 'kisser',\n 'kissing',\n 'kitchen',\n 'kite',\n 'kitten',\n 'kitty',\n 'kiwi',\n 'kleenex',\n 'knapsack',\n 'knee',\n 'knelt',\n 'knickers',\n 'knoll',\n 'koala',\n 'kooky',\n 'kosher',\n 'krypton',\n 'kudos',\n 'kung',\n 'labored',\n 'laborer',\n 'laboring',\n 'laborious',\n 'labrador',\n 'ladder',\n 'ladies',\n 'ladle',\n 'ladybug',\n 'ladylike',\n 'lagged',\n 'lagging',\n 'lagoon',\n 'lair',\n 'lake',\n 'lance',\n 'landed',\n 'landfall',\n 'landfill',\n 'landing',\n 'landlady',\n 'landless',\n 'landline',\n 'landlord',\n 'landmark',\n 'landmass',\n 'landmine',\n 'landowner',\n 'landscape',\n 'landside',\n 'landslide',\n 'language',\n 'lankiness',\n 'lanky',\n 'lantern',\n 'lapdog',\n 'lapel',\n 'lapped',\n 'lapping',\n 'laptop',\n 'lard',\n 'large',\n 'lark',\n 'lash',\n 'lasso',\n 'last',\n 'latch',\n 'late',\n 'lather',\n 'latitude',\n 'latrine',\n 'latter',\n 'latticed',\n 'launch',\n 'launder',\n 'laundry',\n 'laurel',\n 'lavender',\n 'lavish',\n 'laxative',\n 'lazily',\n 'laziness',\n 'lazy',\n 'lecturer',\n 'left',\n 'legacy',\n 'legal',\n 'legend',\n 'legged',\n 'leggings',\n 'legible',\n 'legibly',\n 'legislate',\n 'lego',\n 'legroom',\n 'legume',\n 'legwarmer',\n 'legwork',\n 'lemon',\n 'lend',\n 'length',\n 'lens',\n 'lent',\n 'leotard',\n 'lesser',\n 'letdown',\n 'lethargic',\n 'lethargy',\n 'letter',\n 'lettuce',\n 'level',\n 'leverage',\n 'levers',\n 'levitate',\n 'levitator',\n 'liability',\n 'liable',\n 'liberty',\n 'librarian',\n 'library',\n 'licking',\n 'licorice',\n 'lid',\n 'life',\n 'lifter',\n 'lifting',\n 'liftoff',\n 'ligament',\n 'likely',\n 'likeness',\n 'likewise',\n 'liking',\n 'lilac',\n 'lilly',\n 'lily',\n 'limb',\n 'limeade',\n 'limelight',\n 'limes',\n 'limit',\n 'limping',\n 'limpness',\n 'line',\n 'lingo',\n 'linguini',\n 'linguist',\n 'lining',\n 'linked',\n 'linoleum',\n 'linseed',\n 'lint',\n 'lion',\n 'lip',\n 'liquefy',\n 'liqueur',\n 'liquid',\n 'lisp',\n 'list',\n 'litigate',\n 'litigator',\n 'litmus',\n 'litter',\n 'little',\n 'livable',\n 'lived',\n 'lively',\n 'liver',\n 'livestock',\n 'lividly',\n 'living',\n 'lizard',\n 'lubricant',\n 'lubricate',\n 'lucid',\n 'luckily',\n 'luckiness',\n 'luckless',\n 'lucrative',\n 'ludicrous',\n 'lugged',\n 'lukewarm',\n 'lullaby',\n 'lumber',\n 'luminance',\n 'luminous',\n 'lumpiness',\n 'lumping',\n 'lumpish',\n 'lunacy',\n 'lunar',\n 'lunchbox',\n 'luncheon',\n 'lunchroom',\n 'lunchtime',\n 'lung',\n 'lurch',\n 'lure',\n 'luridness',\n 'lurk',\n 'lushly',\n 'lushness',\n 'luster',\n 'lustfully',\n 'lustily',\n 'lustiness',\n 'lustrous',\n 'lusty',\n 'luxurious',\n 'luxury',\n 'lying',\n 'lyrically',\n 'lyricism',\n 'lyricist',\n 'lyrics',\n 'macarena',\n 'macaroni',\n 'macaw',\n 'mace',\n 'machine',\n 'machinist',\n 'magazine',\n 'magenta',\n 'maggot',\n 'magical',\n 'magician',\n 'magma',\n 'magnesium',\n 'magnetic',\n 'magnetism',\n 'magnetize',\n 'magnifier',\n 'magnify',\n 'magnitude',\n 'magnolia',\n 'mahogany',\n 'maimed',\n 'majestic',\n 'majesty',\n 'majorette',\n 'majority',\n 'makeover',\n 'maker',\n 'makeshift',\n 'making',\n 'malformed',\n 'malt',\n 'mama',\n 'mammal',\n 'mammary',\n 'mammogram',\n 'manager',\n 'managing',\n 'manatee',\n 'mandarin',\n 'mandate',\n 'mandatory',\n 'mandolin',\n 'manger',\n 'mangle',\n 'mango',\n 'mangy',\n 'manhandle',\n 'manhole',\n 'manhood',\n 'manhunt',\n 'manicotti',\n 'manicure',\n 'manifesto',\n 'manila',\n 'mankind',\n 'manlike',\n 'manliness',\n 'manly',\n 'manmade',\n 'manned',\n 'mannish',\n 'manor',\n 'manpower',\n 'mantis',\n 'mantra',\n 'manual',\n 'many',\n 'map',\n 'marathon',\n 'marauding',\n 'marbled',\n 'marbles',\n 'marbling',\n 'march',\n 'mardi',\n 'margarine',\n 'margarita',\n 'margin',\n 'marigold',\n 'marina',\n 'marine',\n 'marital',\n 'maritime',\n 'marlin',\n 'marmalade',\n 'maroon',\n 'married',\n 'marrow',\n 'marry',\n 'marshland',\n 'marshy',\n 'marsupial',\n 'marvelous',\n 'marxism',\n 'mascot',\n 'masculine',\n 'mashed',\n 'mashing',\n 'massager',\n 'masses',\n 'massive',\n 'mastiff',\n 'matador',\n 'matchbook',\n 'matchbox',\n 'matcher',\n 'matching',\n 'matchless',\n 'material',\n 'maternal',\n 'maternity',\n 'math',\n 'mating',\n 'matriarch',\n 'matrimony',\n 'matrix',\n 'matron',\n 'matted',\n 'matter',\n 'maturely',\n 'maturing',\n 'maturity',\n 'mauve',\n 'maverick',\n 'maximize',\n 'maximum',\n 'maybe',\n 'mayday',\n 'mayflower',\n 'moaner',\n 'moaning',\n 'mobile',\n 'mobility',\n 'mobilize',\n 'mobster',\n 'mocha',\n 'mocker',\n 'mockup',\n 'modified',\n 'modify',\n 'modular',\n 'modulator',\n 'module',\n 'moisten',\n 'moistness',\n 'moisture',\n 'molar',\n 'molasses',\n 'mold',\n 'molecular',\n 'molecule',\n 'molehill',\n 'mollusk',\n 'mom',\n 'monastery',\n 'monday',\n 'monetary',\n 'monetize',\n 'moneybags',\n 'moneyless',\n 'moneywise',\n 'mongoose',\n 'mongrel',\n 'monitor',\n 'monkhood',\n 'monogamy',\n 'monogram',\n 'monologue',\n 'monopoly',\n 'monorail',\n 'monotone',\n 'monotype',\n 'monoxide',\n 'monsieur',\n 'monsoon',\n 'monstrous',\n 'monthly',\n 'monument',\n 'moocher',\n 'moodiness',\n 'moody',\n 'mooing',\n 'moonbeam',\n 'mooned',\n 'moonlight',\n 'moonlike',\n 'moonlit',\n 'moonrise',\n 'moonscape',\n 'moonshine',\n 'moonstone',\n 'moonwalk',\n 'mop',\n 'morale',\n 'morality',\n 'morally',\n 'morbidity',\n 'morbidly',\n 'morphine',\n 'morphing',\n 'morse',\n 'mortality',\n 'mortally',\n 'mortician',\n 'mortified',\n 'mortify',\n 'mortuary',\n 'mosaic',\n 'mossy',\n 'most',\n 'mothball',\n 'mothproof',\n 'motion',\n 'motivate',\n 'motivator',\n 'motive',\n 'motocross',\n 'motor',\n 'motto',\n 'mountable',\n 'mountain',\n 'mounted',\n 'mounting',\n 'mourner',\n 'mournful',\n 'mouse',\n 'mousiness',\n 'moustache',\n 'mousy',\n 'mouth',\n 'movable',\n 'move',\n 'movie',\n 'moving',\n 'mower',\n 'mowing',\n 'much',\n 'muck',\n 'mud',\n 'mug',\n 'mulberry',\n 'mulch',\n 'mule',\n 'mulled',\n 'mullets',\n 'multiple',\n 'multiply',\n 'multitask',\n 'multitude',\n 'mumble',\n 'mumbling',\n 'mumbo',\n 'mummified',\n 'mummify',\n 'mummy',\n 'mumps',\n 'munchkin',\n 'mundane',\n 'municipal',\n 'muppet',\n 'mural',\n 'murkiness',\n 'murky',\n 'murmuring',\n 'muscular',\n 'museum',\n 'mushily',\n 'mushiness',\n 'mushroom',\n 'mushy',\n 'music',\n 'musket',\n 'muskiness',\n 'musky',\n 'mustang',\n 'mustard',\n 'muster',\n 'mustiness',\n 'musty',\n 'mutable',\n 'mutate',\n 'mutation',\n 'mute',\n 'mutilated',\n 'mutilator',\n 'mutiny',\n 'mutt',\n 'mutual',\n 'muzzle',\n 'myself',\n 'myspace',\n 'mystified',\n 'mystify',\n 'myth',\n 'nacho',\n 'nag',\n 'nail',\n 'name',\n 'naming',\n 'nanny',\n 'nanometer',\n 'nape',\n 'napkin',\n 'napped',\n 'napping',\n 'nappy',\n 'narrow',\n 'nastily',\n 'nastiness',\n 'national',\n 'native',\n 'nativity',\n 'natural',\n 'nature',\n 'naturist',\n 'nautical',\n 'navigate',\n 'navigator',\n 'navy',\n 'nearby',\n 'nearest',\n 'nearly',\n 'nearness',\n 'neatly',\n 'neatness',\n 'nebula',\n 'nebulizer',\n 'nectar',\n 'negate',\n 'negation',\n 'negative',\n 'neglector',\n 'negligee',\n 'negligent',\n 'negotiate',\n 'nemeses',\n 'nemesis',\n 'neon',\n 'nephew',\n 'nerd',\n 'nervous',\n 'nervy',\n 'nest',\n 'net',\n 'neurology',\n 'neuron',\n 'neurosis',\n 'neurotic',\n 'neuter',\n 'neutron',\n 'never',\n 'next',\n 'nibble',\n 'nickname',\n 'nicotine',\n 'niece',\n 'nifty',\n 'nimble',\n 'nimbly',\n 'nineteen',\n 'ninetieth',\n 'ninja',\n 'nintendo',\n 'ninth',\n 'nuclear',\n 'nuclei',\n 'nucleus',\n 'nugget',\n 'nullify',\n 'number',\n 'numbing',\n 'numbly',\n 'numbness',\n 'numeral',\n 'numerate',\n 'numerator',\n 'numeric',\n 'numerous',\n 'nuptials',\n 'nursery',\n 'nursing',\n 'nurture',\n 'nutcase',\n 'nutlike',\n 'nutmeg',\n 'nutrient',\n 'nutshell',\n 'nuttiness',\n 'nutty',\n 'nuzzle',\n 'nylon',\n 'oaf',\n 'oak',\n 'oasis',\n 'oat',\n 'obedience',\n 'obedient',\n 'obituary',\n 'object',\n 'obligate',\n 'obliged',\n 'oblivion',\n 'oblivious',\n 'oblong',\n 'obnoxious',\n 'oboe',\n 'obscure',\n 'obscurity',\n 'observant',\n 'observer',\n 'observing',\n 'obsessed',\n 'obsession',\n 'obsessive',\n 'obsolete',\n 'obstacle',\n 'obstinate',\n 'obstruct',\n 'obtain',\n 'obtrusive',\n 'obtuse',\n 'obvious',\n 'occultist',\n 'occupancy',\n 'occupant',\n 'occupier',\n 'occupy',\n 'ocean',\n 'ocelot',\n 'octagon',\n 'octane',\n 'october',\n 'octopus',\n 'ogle',\n 'oil',\n 'oink',\n 'ointment',\n 'okay',\n 'old',\n 'olive',\n 'olympics',\n 'omega',\n 'omen',\n 'ominous',\n 'omission',\n 'omit',\n 'omnivore',\n 'onboard',\n 'oncoming',\n 'ongoing',\n 'onion',\n 'online',\n 'onlooker',\n 'only',\n 'onscreen',\n 'onset',\n 'onshore',\n 'onslaught',\n 'onstage',\n 'onto',\n 'onward',\n 'onyx',\n 'oops',\n 'ooze',\n 'oozy',\n 'opacity',\n 'opal',\n 'open',\n 'operable',\n 'operate',\n 'operating',\n 'operation',\n 'operative',\n 'operator',\n 'opium',\n 'opossum',\n 'opponent',\n 'oppose',\n 'opposing',\n 'opposite',\n 'oppressed',\n 'oppressor',\n 'opt',\n 'opulently',\n 'osmosis',\n 'other',\n 'otter',\n 'ouch',\n 'ought',\n 'ounce',\n 'outage',\n 'outback',\n 'outbid',\n 'outboard',\n 'outbound',\n 'outbreak',\n 'outburst',\n 'outcast',\n 'outclass',\n 'outcome',\n 'outdated',\n 'outdoors',\n 'outer',\n 'outfield',\n 'outfit',\n 'outflank',\n 'outgoing',\n 'outgrow',\n 'outhouse',\n 'outing',\n 'outlast',\n 'outlet',\n 'outline',\n 'outlook',\n 'outlying',\n 'outmatch',\n 'outmost',\n 'outnumber',\n 'outplayed',\n 'outpost',\n 'outpour',\n 'output',\n 'outrage',\n 'outrank',\n 'outreach',\n 'outright',\n 'outscore',\n 'outsell',\n 'outshine',\n 'outshoot',\n 'outsider',\n 'outskirts',\n 'outsmart',\n 'outsource',\n 'outspoken',\n 'outtakes',\n 'outthink',\n 'outward',\n 'outweigh',\n 'outwit',\n 'oval',\n 'ovary',\n 'oven',\n 'overact',\n 'overall',\n 'overarch',\n 'overbid',\n 'overbill',\n 'overbite',\n 'overblown',\n 'overboard',\n 'overbook',\n 'overbuilt',\n 'overcast',\n 'overcoat',\n 'overcome',\n 'overcook',\n 'overcrowd',\n 'overdraft',\n 'overdrawn',\n 'overdress',\n 'overdrive',\n 'overdue',\n 'overeager',\n 'overeater',\n 'overexert',\n 'overfed',\n 'overfeed',\n 'overfill',\n 'overflow',\n 'overfull',\n 'overgrown',\n 'overhand',\n 'overhang',\n 'overhaul',\n 'overhead',\n 'overhear',\n 'overheat',\n 'overhung',\n 'overjoyed',\n 'overkill',\n 'overlabor',\n 'overlaid',\n 'overlap',\n 'overlay',\n 'overload',\n 'overlook',\n 'overlord',\n 'overlying',\n 'overnight',\n 'overpass',\n 'overpay',\n 'overplant',\n 'overplay',\n 'overpower',\n 'overprice',\n 'overrate',\n 'overreach',\n 'overreact',\n 'override',\n 'overripe',\n 'overrule',\n 'overrun',\n 'overshoot',\n 'overshot',\n 'oversight',\n 'oversized',\n 'oversleep',\n 'oversold',\n 'overspend',\n 'overstate',\n 'overstay',\n 'overstep',\n 'overstock',\n 'overstuff',\n 'oversweet',\n 'overtake',\n 'overthrow',\n 'overtime',\n 'overtly',\n 'overtone',\n 'overture',\n 'overturn',\n 'overuse',\n 'overvalue',\n 'overview',\n 'overwrite',\n 'owl',\n 'oxford',\n 'oxidant',\n 'oxidation',\n 'oxidize',\n 'oxidizing',\n 'oxygen',\n 'oxymoron',\n 'oyster',\n 'ozone',\n 'paced',\n 'pacemaker',\n 'pacific',\n 'pacifier',\n 'pacifism',\n 'pacifist',\n 'pacify',\n 'padded',\n 'padding',\n 'paddle',\n 'paddling',\n 'padlock',\n 'pagan',\n 'pager',\n 'paging',\n 'pajamas',\n 'palace',\n 'palatable',\n 'palm',\n 'palpable',\n 'palpitate',\n 'paltry',\n 'pampered',\n 'pamperer',\n 'pampers',\n 'pamphlet',\n 'panama',\n 'pancake',\n 'pancreas',\n 'panda',\n 'pandemic',\n 'pang',\n 'panhandle',\n 'panic',\n 'panning',\n 'panorama',\n 'panoramic',\n 'panther',\n 'pantomime',\n 'pantry',\n 'pants',\n 'pantyhose',\n 'paparazzi',\n 'papaya',\n 'paper',\n 'paprika',\n 'papyrus',\n 'parabola',\n 'parachute',\n 'parade',\n 'paradox',\n 'paragraph',\n 'parakeet',\n 'paralegal',\n 'paralyses',\n 'paralysis',\n 'paralyze',\n 'paramedic',\n 'parameter',\n 'paramount',\n 'parasail',\n 'parasite',\n 'parasitic',\n 'parcel',\n 'parched',\n 'parchment',\n 'pardon',\n 'parish',\n 'parka',\n 'parking',\n 'parkway',\n 'parlor',\n 'parmesan',\n 'parole',\n 'parrot',\n 'parsley',\n 'parsnip',\n 'partake',\n 'parted',\n 'parting',\n 'partition',\n 'partly',\n 'partner',\n 'partridge',\n 'party',\n 'passable',\n 'passably',\n 'passage',\n 'passcode',\n 'passenger',\n 'passerby',\n 'passing',\n 'passion',\n 'passive',\n 'passivism',\n 'passover',\n 'passport',\n 'password',\n 'pasta',\n 'pasted',\n 'pastel',\n 'pastime',\n 'pastor',\n 'pastrami',\n 'pasture',\n 'pasty',\n 'patchwork',\n 'patchy',\n 'paternal',\n 'paternity',\n 'path',\n 'patience',\n 'patient',\n 'patio',\n 'patriarch',\n 'patriot',\n 'patrol',\n 'patronage',\n 'patronize',\n 'pauper',\n 'pavement',\n 'paver',\n 'pavestone',\n 'pavilion',\n 'paving',\n 'pawing',\n 'payable',\n 'payback',\n 'paycheck',\n 'payday',\n 'payee',\n 'payer',\n 'paying',\n 'payment',\n 'payphone',\n 'payroll',\n 'pebble',\n 'pebbly',\n 'pecan',\n 'pectin',\n 'peculiar',\n 'peddling',\n 'pediatric',\n 'pedicure',\n 'pedigree',\n 'pedometer',\n 'pegboard',\n 'pelican',\n 'pellet',\n 'pelt',\n 'pelvis',\n 'penalize',\n 'penalty',\n 'pencil',\n 'pendant',\n 'pending',\n 'penholder',\n 'penknife',\n 'pennant',\n 'penniless',\n 'penny',\n 'penpal',\n 'pension',\n 'pentagon',\n 'pentagram',\n 'pep',\n 'perceive',\n 'percent',\n 'perch',\n 'percolate',\n 'perennial',\n 'perfected',\n 'perfectly',\n 'perfume',\n 'periscope',\n 'perish',\n 'perjurer',\n 'perjury',\n 'perkiness',\n 'perky',\n 'perm',\n 'peroxide',\n 'perpetual',\n 'perplexed',\n 'persecute',\n 'persevere',\n 'persuaded',\n 'persuader',\n 'pesky',\n 'peso',\n 'pessimism',\n 'pessimist',\n 'pester',\n 'pesticide',\n 'petal',\n 'petite',\n 'petition',\n 'petri',\n 'petroleum',\n 'petted',\n 'petticoat',\n 'pettiness',\n 'petty',\n 'petunia',\n 'phantom',\n 'phobia',\n 'phoenix',\n 'phonebook',\n 'phoney',\n 'phonics',\n 'phoniness',\n 'phony',\n 'phosphate',\n 'photo',\n 'phrase',\n 'phrasing',\n 'placard',\n 'placate',\n 'placidly',\n 'plank',\n 'planner',\n 'plant',\n 'plasma',\n 'plaster',\n 'plastic',\n 'plated',\n 'platform',\n 'plating',\n 'platinum',\n 'platonic',\n 'platter',\n 'platypus',\n 'plausible',\n 'plausibly',\n 'playable',\n 'playback',\n 'player',\n 'playful',\n 'playgroup',\n 'playhouse',\n 'playing',\n 'playlist',\n 'playmaker',\n 'playmate',\n 'playoff',\n 'playpen',\n 'playroom',\n 'playset',\n 'plaything',\n 'playtime',\n 'plaza',\n 'pleading',\n 'pleat',\n 'pledge',\n 'plentiful',\n 'plenty',\n 'plethora',\n 'plexiglas',\n 'pliable',\n 'plod',\n 'plop',\n 'plot',\n 'plow',\n 'ploy',\n 'pluck',\n 'plug',\n 'plunder',\n 'plunging',\n 'plural',\n 'plus',\n 'plutonium',\n 'plywood',\n 'poach',\n 'pod',\n 'poem',\n 'poet',\n 'pogo',\n 'pointed',\n 'pointer',\n 'pointing',\n 'pointless',\n 'pointy',\n 'poise',\n 'poison',\n 'poker',\n 'poking',\n 'polar',\n 'police',\n 'policy',\n 'polio',\n 'polish',\n 'politely',\n 'polka',\n 'polo',\n 'polyester',\n 'polygon',\n 'polygraph',\n 'polymer',\n 'poncho',\n 'pond',\n 'pony',\n 'popcorn',\n 'pope',\n 'poplar',\n 'popper',\n 'poppy',\n 'popsicle',\n 'populace',\n 'popular',\n 'populate',\n 'porcupine',\n 'pork',\n 'porous',\n 'porridge',\n 'portable',\n 'portal',\n 'portfolio',\n 'porthole',\n 'portion',\n 'portly',\n 'portside',\n 'poser',\n 'posh',\n 'posing',\n 'possible',\n 'possibly',\n 'possum',\n 'postage',\n 'postal',\n 'postbox',\n 'postcard',\n 'posted',\n 'poster',\n 'posting',\n 'postnasal',\n 'posture',\n 'postwar',\n 'pouch',\n 'pounce',\n 'pouncing',\n 'pound',\n 'pouring',\n 'pout',\n 'powdered',\n 'powdering',\n 'powdery',\n 'power',\n 'powwow',\n 'pox',\n 'praising',\n 'prance',\n 'prancing',\n 'pranker',\n 'prankish',\n 'prankster',\n 'prayer',\n 'praying',\n 'preacher',\n 'preaching',\n 'preachy',\n 'preamble',\n 'precinct',\n 'precise',\n 'precision',\n 'precook',\n 'precut',\n 'predator',\n 'predefine',\n 'predict',\n 'preface',\n 'prefix',\n 'preflight',\n 'preformed',\n 'pregame',\n 'pregnancy',\n 'pregnant',\n 'preheated',\n 'prelaunch',\n 'prelaw',\n 'prelude',\n 'premiere',\n 'premises',\n 'premium',\n 'prenatal',\n 'preoccupy',\n 'preorder',\n 'prepaid',\n 'prepay',\n 'preplan',\n 'preppy',\n 'preschool',\n 'prescribe',\n 'preseason',\n 'preset',\n 'preshow',\n 'president',\n 'presoak',\n 'press',\n 'presume',\n 'presuming',\n 'preteen',\n 'pretended',\n 'pretender',\n 'pretense',\n 'pretext',\n 'pretty',\n 'pretzel',\n 'prevail',\n 'prevalent',\n 'prevent',\n 'preview',\n 'previous',\n 'prewar',\n 'prewashed',\n 'prideful',\n 'pried',\n 'primal',\n 'primarily',\n 'primary',\n 'primate',\n 'primer',\n 'primp',\n 'princess',\n 'print',\n 'prior',\n 'prism',\n 'prison',\n 'prissy',\n 'pristine',\n 'privacy',\n 'private',\n 'privatize',\n 'prize',\n 'proactive',\n 'probable',\n 'probably',\n 'probation',\n 'probe',\n 'probing',\n 'probiotic',\n 'problem',\n 'procedure',\n 'process',\n 'proclaim',\n 'procreate',\n 'procurer',\n 'prodigal',\n 'prodigy',\n 'produce',\n 'product',\n 'profane',\n 'profanity',\n 'professed',\n 'professor',\n 'profile',\n 'profound',\n 'profusely',\n 'progeny',\n 'prognosis',\n 'program',\n 'progress',\n 'projector',\n 'prologue',\n 'prolonged',\n 'promenade',\n 'prominent',\n 'promoter',\n 'promotion',\n 'prompter',\n 'promptly',\n 'prone',\n 'prong',\n 'pronounce',\n 'pronto',\n 'proofing',\n 'proofread',\n 'proofs',\n 'propeller',\n 'properly',\n 'property',\n 'proponent',\n 'proposal',\n 'propose',\n 'props',\n 'prorate',\n 'protector',\n 'protegee',\n 'proton',\n 'prototype',\n 'protozoan',\n 'protract',\n 'protrude',\n 'proud',\n 'provable',\n 'proved',\n 'proven',\n 'provided',\n 'provider',\n 'providing',\n 'province',\n 'proving',\n 'provoke',\n 'provoking',\n 'provolone',\n 'prowess',\n 'prowler',\n 'prowling',\n 'proximity',\n 'proxy',\n 'prozac',\n 'prude',\n 'prudishly',\n 'prune',\n 'pruning',\n 'pry',\n 'psychic',\n 'public',\n 'publisher',\n 'pucker',\n 'pueblo',\n 'pug',\n 'pull',\n 'pulmonary',\n 'pulp',\n 'pulsate',\n 'pulse',\n 'pulverize',\n 'puma',\n 'pumice',\n 'pummel',\n 'punch',\n 'punctual',\n 'punctuate',\n 'punctured',\n 'pungent',\n 'punisher',\n 'punk',\n 'pupil',\n 'puppet',\n 'puppy',\n 'purchase',\n 'pureblood',\n 'purebred',\n 'purely',\n 'pureness',\n 'purgatory',\n 'purge',\n 'purging',\n 'purifier',\n 'purify',\n 'purist',\n 'puritan',\n 'purity',\n 'purple',\n 'purplish',\n 'purposely',\n 'purr',\n 'purse',\n 'pursuable',\n 'pursuant',\n 'pursuit',\n 'purveyor',\n 'pushcart',\n 'pushchair',\n 'pusher',\n 'pushiness',\n 'pushing',\n 'pushover',\n 'pushpin',\n 'pushup',\n 'pushy',\n 'putdown',\n 'putt',\n 'puzzle',\n 'puzzling',\n 'pyramid',\n 'pyromania',\n 'python',\n 'quack',\n 'quadrant',\n 'quail',\n 'quaintly',\n 'quake',\n 'quaking',\n 'qualified',\n 'qualifier',\n 'qualify',\n 'quality',\n 'qualm',\n 'quantum',\n 'quarrel',\n 'quarry',\n 'quartered',\n 'quarterly',\n 'quarters',\n 'quartet',\n 'quench',\n 'query',\n 'quicken',\n 'quickly',\n 'quickness',\n 'quicksand',\n 'quickstep',\n 'quiet',\n 'quill',\n 'quilt',\n 'quintet',\n 'quintuple',\n 'quirk',\n 'quit',\n 'quiver',\n 'quizzical',\n 'quotable',\n 'quotation',\n 'quote',\n 'rabid',\n 'race',\n 'racing',\n 'racism',\n 'rack',\n 'racoon',\n 'radar',\n 'radial',\n 'radiance',\n 'radiantly',\n 'radiated',\n 'radiation',\n 'radiator',\n 'radio',\n 'radish',\n 'raffle',\n 'raft',\n 'rage',\n 'ragged',\n 'raging',\n 'ragweed',\n 'raider',\n 'railcar',\n 'railing',\n 'railroad',\n 'railway',\n 'raisin',\n 'rake',\n 'raking',\n 'rally',\n 'ramble',\n 'rambling',\n 'ramp',\n 'ramrod',\n 'ranch',\n 'rancidity',\n 'random',\n 'ranged',\n 'ranger',\n 'ranging',\n 'ranked',\n 'ranking',\n 'ransack',\n 'ranting',\n 'rants',\n 'rare',\n 'rarity',\n 'rascal',\n 'rash',\n 'rasping',\n 'ravage',\n 'raven',\n 'ravine',\n 'raving',\n 'ravioli',\n 'ravishing',\n 'reabsorb',\n 'reach',\n 'reacquire',\n 'reaction',\n 'reactive',\n 'reactor',\n 'reaffirm',\n 'ream',\n 'reanalyze',\n 'reappear',\n 'reapply',\n 'reappoint',\n 'reapprove',\n 'rearrange',\n 'rearview',\n 'reason',\n 'reassign',\n 'reassure',\n 'reattach',\n 'reawake',\n 'rebalance',\n 'rebate',\n 'rebel',\n 'rebirth',\n 'reboot',\n 'reborn',\n 'rebound',\n 'rebuff',\n 'rebuild',\n 'rebuilt',\n 'reburial',\n 'rebuttal',\n 'recall',\n 'recant',\n 'recapture',\n 'recast',\n 'recede',\n 'recent',\n 'recess',\n 'recharger',\n 'recipient',\n 'recital',\n 'recite',\n 'reckless',\n 'reclaim',\n 'recliner',\n 'reclining',\n 'recluse',\n 'reclusive',\n 'recognize',\n 'recoil',\n 'recollect',\n 'recolor',\n 'reconcile',\n 'reconfirm',\n 'reconvene',\n 'recopy',\n 'record',\n 'recount',\n 'recoup',\n 'recovery',\n 'recreate',\n 'rectal',\n 'rectangle',\n 'rectified',\n 'rectify',\n 'recycled',\n 'recycler',\n 'recycling',\n 'reemerge',\n 'reenact',\n 'reenter',\n 'reentry',\n 'reexamine',\n 'referable',\n 'referee',\n 'reference',\n 'refill',\n 'refinance',\n 'refined',\n 'refinery',\n 'refining',\n 'refinish',\n 'reflected',\n 'reflector',\n 'reflex',\n 'reflux',\n 'refocus',\n 'refold',\n 'reforest',\n 'reformat',\n 'reformed',\n 'reformer',\n 'reformist',\n 'refract',\n 'refrain',\n 'refreeze',\n 'refresh',\n 'refried',\n 'refueling',\n 'refund',\n 'refurbish',\n 'refurnish',\n 'refusal',\n 'refuse',\n 'refusing',\n 'refutable',\n 'refute',\n 'regain',\n 'regalia',\n 'regally',\n 'reggae',\n 'regime',\n 'region',\n 'register',\n 'registrar',\n 'registry',\n 'regress',\n 'regretful',\n 'regroup',\n 'regular',\n 'regulate',\n 'regulator',\n 'rehab',\n 'reheat',\n 'rehire',\n 'rehydrate',\n 'reimburse',\n 'reissue',\n 'reiterate',\n 'rejoice',\n 'rejoicing',\n 'rejoin',\n 'rekindle',\n 'relapse',\n 'relapsing',\n 'relatable',\n 'related',\n 'relation',\n 'relative',\n 'relax',\n 'relay',\n 'relearn',\n 'release',\n 'relenting',\n 'reliable',\n 'reliably',\n 'reliance',\n 'reliant',\n 'relic',\n 'relieve',\n 'relieving',\n 'relight',\n 'relish',\n 'relive',\n 'reload',\n 'relocate',\n 'relock',\n 'reluctant',\n 'rely',\n 'remake',\n 'remark',\n 'remarry',\n 'rematch',\n 'remedial',\n 'remedy',\n 'remember',\n 'reminder',\n 'remindful',\n 'remission',\n 'remix',\n 'remnant',\n 'remodeler',\n 'remold',\n 'remorse',\n 'remote',\n 'removable',\n 'removal',\n 'removed',\n 'remover',\n 'removing',\n 'rename',\n 'renderer',\n 'rendering',\n 'rendition',\n 'renegade',\n 'renewable',\n 'renewably',\n 'renewal',\n 'renewed',\n 'renounce',\n 'renovate',\n 'renovator',\n 'rentable',\n 'rental',\n 'rented',\n 'renter',\n 'reoccupy',\n 'reoccur',\n 'reopen',\n 'reorder',\n 'repackage',\n 'repacking',\n 'repaint',\n 'repair',\n 'repave',\n 'repaying',\n 'repayment',\n 'repeal',\n 'repeated',\n 'repeater',\n 'repent',\n 'rephrase',\n 'replace',\n 'replay',\n 'replica',\n 'reply',\n 'reporter',\n 'repose',\n 'repossess',\n 'repost',\n 'repressed',\n 'reprimand',\n 'reprint',\n 'reprise',\n 'reproach',\n 'reprocess',\n 'reproduce',\n 'reprogram',\n 'reps',\n 'reptile',\n 'reptilian',\n 'repugnant',\n 'repulsion',\n 'repulsive',\n 'repurpose',\n 'reputable',\n 'reputably',\n 'request',\n 'require',\n 'requisite',\n 'reroute',\n 'rerun',\n 'resale',\n 'resample',\n 'rescuer',\n 'reseal',\n 'research',\n 'reselect',\n 'reseller',\n 'resemble',\n 'resend',\n 'resent',\n 'reset',\n 'reshape',\n 'reshoot',\n 'reshuffle',\n 'residence',\n 'residency',\n 'resident',\n 'residual',\n 'residue',\n 'resigned',\n 'resilient',\n 'resistant',\n 'resisting',\n 'resize',\n 'resolute',\n 'resolved',\n 'resonant',\n 'resonate',\n 'resort',\n 'resource',\n 'respect',\n 'resubmit',\n 'result',\n 'resume',\n 'resupply',\n 'resurface',\n 'resurrect',\n 'retail',\n 'retainer',\n 'retaining',\n 'retake',\n 'retaliate',\n 'retention',\n 'rethink',\n 'retinal',\n 'retired',\n 'retiree',\n 'retiring',\n 'retold',\n 'retool',\n 'retorted',\n 'retouch',\n 'retrace',\n 'retract',\n 'retrain',\n 'retread',\n 'retreat',\n 'retrial',\n 'retrieval',\n 'retriever',\n 'retry',\n 'return',\n 'retying',\n 'retype',\n 'reunion',\n 'reunite',\n 'reusable',\n 'reuse',\n 'reveal',\n 'reveler',\n 'revenge',\n 'revenue',\n 'reverb',\n 'revered',\n 'reverence',\n 'reverend',\n 'reversal',\n 'reverse',\n 'reversing',\n 'reversion',\n 'revert',\n 'revisable',\n 'revise',\n 'revision',\n 'revisit',\n 'revivable',\n 'revival',\n 'reviver',\n 'reviving',\n 'revocable',\n 'revoke',\n 'revolt',\n 'revolver',\n 'revolving',\n 'reward',\n 'rewash',\n 'rewind',\n 'rewire',\n 'reword',\n 'rework',\n 'rewrap',\n 'rewrite',\n 'rhyme',\n 'ribbon',\n 'ribcage',\n 'rice',\n 'riches',\n 'richly',\n 'richness',\n 'rickety',\n 'ricotta',\n 'riddance',\n 'ridden',\n 'ride',\n 'riding',\n 'rifling',\n 'rift',\n 'rigging',\n 'rigid',\n 'rigor',\n 'rimless',\n 'rimmed',\n 'rind',\n 'rink',\n 'rinse',\n 'rinsing',\n 'riot',\n 'ripcord',\n 'ripeness',\n 'ripening',\n 'ripping',\n 'ripple',\n 'rippling',\n 'riptide',\n 'rise',\n 'rising',\n 'risk',\n 'risotto',\n 'ritalin',\n 'ritzy',\n 'rival',\n 'riverbank',\n 'riverbed',\n 'riverboat',\n 'riverside',\n 'riveter',\n 'riveting',\n 'roamer',\n 'roaming',\n 'roast',\n 'robbing',\n 'robe',\n 'robin',\n 'robotics',\n 'robust',\n 'rockband',\n 'rocker',\n 'rocket',\n 'rockfish',\n 'rockiness',\n 'rocking',\n 'rocklike',\n 'rockslide',\n 'rockstar',\n 'rocky',\n 'rogue',\n 'roman',\n 'romp',\n 'rope',\n 'roping',\n 'roster',\n 'rosy',\n 'rotten',\n 'rotting',\n 'rotunda',\n 'roulette',\n 'rounding',\n 'roundish',\n 'roundness',\n 'roundup',\n 'roundworm',\n 'routine',\n 'routing',\n 'rover',\n 'roving',\n 'royal',\n 'rubbed',\n 'rubber',\n 'rubbing',\n 'rubble',\n 'rubdown',\n 'ruby',\n 'ruckus',\n 'rudder',\n 'rug',\n 'ruined',\n 'rule',\n 'rumble',\n 'rumbling',\n 'rummage',\n 'rumor',\n 'runaround',\n 'rundown',\n 'runner',\n 'running',\n 'runny',\n 'runt',\n 'runway',\n 'rupture',\n 'rural',\n 'ruse',\n 'rush',\n 'rust',\n 'rut',\n 'sabbath',\n 'sabotage',\n 'sacrament',\n 'sacred',\n 'sacrifice',\n 'sadden',\n 'saddlebag',\n 'saddled',\n 'saddling',\n 'sadly',\n 'sadness',\n 'safari',\n 'safeguard',\n 'safehouse',\n 'safely',\n 'safeness',\n 'saffron',\n 'saga',\n 'sage',\n 'sagging',\n 'saggy',\n 'said',\n 'saint',\n 'sake',\n 'salad',\n 'salami',\n 'salaried',\n 'salary',\n 'saline',\n 'salon',\n 'saloon',\n 'salsa',\n 'salt',\n 'salutary',\n 'salute',\n 'salvage',\n 'salvaging',\n 'salvation',\n 'same',\n 'sample',\n 'sampling',\n 'sanction',\n 'sanctity',\n 'sanctuary',\n 'sandal',\n 'sandbag',\n 'sandbank',\n 'sandbar',\n 'sandblast',\n 'sandbox',\n 'sanded',\n 'sandfish',\n 'sanding',\n 'sandlot',\n 'sandpaper',\n 'sandpit',\n 'sandstone',\n 'sandstorm',\n 'sandworm',\n 'sandy',\n 'sanitary',\n 'sanitizer',\n 'sank',\n 'santa',\n 'sapling',\n 'sappiness',\n 'sappy',\n 'sarcasm',\n 'sarcastic',\n 'sardine',\n 'sash',\n 'sasquatch',\n 'sassy',\n 'satchel',\n 'satiable',\n 'satin',\n 'satirical',\n 'satisfied',\n 'satisfy',\n 'saturate',\n 'saturday',\n 'sauciness',\n 'saucy',\n 'sauna',\n 'savage',\n 'savanna',\n 'saved',\n 'savings',\n 'savior',\n 'savor',\n 'saxophone',\n 'say',\n 'scabbed',\n 'scabby',\n 'scalded',\n 'scalding',\n 'scale',\n 'scaling',\n 'scallion',\n 'scallop',\n 'scalping',\n 'scam',\n 'scandal',\n 'scanner',\n 'scanning',\n 'scant',\n 'scapegoat',\n 'scarce',\n 'scarcity',\n 'scarecrow',\n 'scared',\n 'scarf',\n 'scarily',\n 'scariness',\n 'scarring',\n 'scary',\n 'scavenger',\n 'scenic',\n 'schedule',\n 'schematic',\n 'scheme',\n 'scheming',\n 'schilling',\n 'schnapps',\n 'scholar',\n 'science',\n 'scientist',\n 'scion',\n 'scoff',\n 'scolding',\n 'scone',\n 'scoop',\n 'scooter',\n 'scope',\n 'scorch',\n 'scorebook',\n 'scorecard',\n 'scored',\n 'scoreless',\n 'scorer',\n 'scoring',\n 'scorn',\n 'scorpion',\n 'scotch',\n 'scoundrel',\n 'scoured',\n 'scouring',\n 'scouting',\n 'scouts',\n 'scowling',\n 'scrabble',\n 'scraggly',\n 'scrambled',\n 'scrambler',\n 'scrap',\n 'scratch',\n 'scrawny',\n 'screen',\n 'scribble',\n 'scribe',\n 'scribing',\n 'scrimmage',\n 'script',\n 'scroll',\n 'scrooge',\n 'scrounger',\n 'scrubbed',\n 'scrubber',\n 'scruffy',\n 'scrunch',\n 'scrutiny',\n 'scuba',\n 'scuff',\n 'sculptor',\n 'sculpture',\n 'scurvy',\n 'scuttle',\n 'secluded',\n 'secluding',\n 'seclusion',\n 'second',\n 'secrecy',\n 'secret',\n 'sectional',\n 'sector',\n 'secular',\n 'securely',\n 'security',\n 'sedan',\n 'sedate',\n 'sedation',\n 'sedative',\n 'sediment',\n 'seduce',\n 'seducing',\n 'segment',\n 'seismic',\n 'seizing',\n 'seldom',\n 'selected',\n 'selection',\n 'selective',\n 'selector',\n 'self',\n 'seltzer',\n 'semantic',\n 'semester',\n 'semicolon',\n 'semifinal',\n 'seminar',\n 'semisoft',\n 'semisweet',\n 'senate',\n 'senator',\n 'send',\n 'senior',\n 'senorita',\n 'sensation',\n 'sensitive',\n 'sensitize',\n 'sensually',\n 'sensuous',\n 'sepia',\n 'september',\n 'septic',\n 'septum',\n 'sequel',\n 'sequence',\n 'sequester',\n 'series',\n 'sermon',\n 'serotonin',\n 'serpent',\n 'serrated',\n 'serve',\n 'service',\n 'serving',\n 'sesame',\n 'sessions',\n 'setback',\n 'setting',\n 'settle',\n 'settling',\n 'setup',\n 'sevenfold',\n 'seventeen',\n 'seventh',\n 'seventy',\n 'severity',\n 'shabby',\n 'shack',\n 'shaded',\n 'shadily',\n 'shadiness',\n 'shading',\n 'shadow',\n 'shady',\n 'shaft',\n 'shakable',\n 'shakily',\n 'shakiness',\n 'shaking',\n 'shaky',\n 'shale',\n 'shallot',\n 'shallow',\n 'shame',\n 'shampoo',\n 'shamrock',\n 'shank',\n 'shanty',\n 'shape',\n 'shaping',\n 'share',\n 'sharpener',\n 'sharper',\n 'sharpie',\n 'sharply',\n 'sharpness',\n 'shawl',\n 'sheath',\n 'shed',\n 'sheep',\n 'sheet',\n 'shelf',\n 'shell',\n 'shelter',\n 'shelve',\n 'shelving',\n 'sherry',\n 'shield',\n 'shifter',\n 'shifting',\n 'shiftless',\n 'shifty',\n 'shimmer',\n 'shimmy',\n 'shindig',\n 'shine',\n 'shingle',\n 'shininess',\n 'shining',\n 'shiny',\n 'ship',\n 'shirt',\n 'shivering',\n 'shock',\n 'shone',\n 'shoplift',\n 'shopper',\n 'shopping',\n 'shoptalk',\n 'shore',\n 'shortage',\n 'shortcake',\n 'shortcut',\n 'shorten',\n 'shorter',\n 'shorthand',\n 'shortlist',\n 'shortly',\n 'shortness',\n 'shorts',\n 'shortwave',\n 'shorty',\n 'shout',\n 'shove',\n 'showbiz',\n 'showcase',\n 'showdown',\n 'shower',\n 'showgirl',\n 'showing',\n 'showman',\n 'shown',\n 'showoff',\n 'showpiece',\n 'showplace',\n 'showroom',\n 'showy',\n 'shrank',\n 'shrapnel',\n 'shredder',\n 'shredding',\n 'shrewdly',\n 'shriek',\n 'shrill',\n 'shrimp',\n 'shrine',\n 'shrink',\n 'shrivel',\n 'shrouded',\n 'shrubbery',\n 'shrubs',\n 'shrug',\n 'shrunk',\n 'shucking',\n 'shudder',\n 'shuffle',\n 'shuffling',\n 'shun',\n 'shush',\n 'shut',\n 'shy',\n 'siamese',\n 'siberian',\n 'sibling',\n 'siding',\n 'sierra',\n 'siesta',\n 'sift',\n 'sighing',\n 'silenced',\n 'silencer',\n 'silent',\n 'silica',\n 'silicon',\n 'silk',\n 'silliness',\n 'silly',\n 'silo',\n 'silt',\n 'silver',\n 'similarly',\n 'simile',\n 'simmering',\n 'simple',\n 'simplify',\n 'simply',\n 'sincere',\n 'sincerity',\n 'singer',\n 'singing',\n 'single',\n 'singular',\n 'sinister',\n 'sinless',\n 'sinner',\n 'sinuous',\n 'sip',\n 'siren',\n 'sister',\n 'sitcom',\n 'sitter',\n 'sitting',\n 'situated',\n 'situation',\n 'sixfold',\n 'sixteen',\n 'sixth',\n 'sixties',\n 'sixtieth',\n 'sixtyfold',\n 'sizable',\n 'sizably',\n 'size',\n 'sizing',\n 'sizzle',\n 'sizzling',\n 'skater',\n 'skating',\n 'skedaddle',\n 'skeletal',\n 'skeleton',\n 'skeptic',\n 'sketch',\n 'skewed',\n 'skewer',\n 'skid',\n 'skied',\n 'skier',\n 'skies',\n 'skiing',\n 'skilled',\n 'skillet',\n 'skillful',\n 'skimmed',\n 'skimmer',\n 'skimming',\n 'skimpily',\n 'skincare',\n 'skinhead',\n 'skinless',\n 'skinning',\n 'skinny',\n 'skintight',\n 'skipper',\n 'skipping',\n 'skirmish',\n 'skirt',\n 'skittle',\n 'skydiver',\n 'skylight',\n 'skyline',\n 'skype',\n 'skyrocket',\n 'skyward',\n 'slab',\n 'slacked',\n 'slacker',\n 'slacking',\n 'slackness',\n 'slacks',\n 'slain',\n 'slam',\n 'slander',\n 'slang',\n 'slapping',\n 'slapstick',\n 'slashed',\n 'slashing',\n 'slate',\n 'slather',\n 'slaw',\n 'sled',\n 'sleek',\n 'sleep',\n 'sleet',\n 'sleeve',\n 'slept',\n 'sliceable',\n 'sliced',\n 'slicer',\n 'slicing',\n 'slick',\n 'slider',\n 'slideshow',\n 'sliding',\n 'slighted',\n 'slighting',\n 'slightly',\n 'slimness',\n 'slimy',\n 'slinging',\n 'slingshot',\n 'slinky',\n 'slip',\n 'slit',\n 'sliver',\n 'slobbery',\n 'slogan',\n 'sloped',\n 'sloping',\n 'sloppily',\n 'sloppy',\n 'slot',\n 'slouching',\n 'slouchy',\n 'sludge',\n 'slug',\n 'slum',\n 'slurp',\n 'slush',\n 'sly',\n 'small',\n 'smartly',\n 'smartness',\n 'smasher',\n 'smashing',\n 'smashup',\n 'smell',\n 'smelting',\n 'smile',\n 'smilingly',\n 'smirk',\n 'smite',\n 'smith',\n 'smitten',\n 'smock',\n 'smog',\n 'smoked',\n 'smokeless',\n 'smokiness',\n 'smoking',\n 'smoky',\n 'smolder',\n 'smooth',\n 'smother',\n 'smudge',\n 'smudgy',\n 'smuggler',\n 'smuggling',\n 'smugly',\n 'smugness',\n 'snack',\n 'snagged',\n 'snaking',\n 'snap',\n 'snare',\n 'snarl',\n 'snazzy',\n 'sneak',\n 'sneer',\n 'sneeze',\n 'sneezing',\n 'snide',\n 'sniff',\n 'snippet',\n 'snipping',\n 'snitch',\n 'snooper',\n 'snooze',\n 'snore',\n 'snoring',\n 'snorkel',\n 'snort',\n 'snout',\n 'snowbird',\n 'snowboard',\n 'snowbound',\n 'snowcap',\n 'snowdrift',\n 'snowdrop',\n 'snowfall',\n 'snowfield',\n 'snowflake',\n 'snowiness',\n 'snowless',\n 'snowman',\n 'snowplow',\n 'snowshoe',\n 'snowstorm',\n 'snowsuit',\n 'snowy',\n 'snub',\n 'snuff',\n 'snuggle',\n 'snugly',\n 'snugness',\n 'speak',\n 'spearfish',\n 'spearhead',\n 'spearman',\n 'spearmint',\n 'species',\n 'specimen',\n 'specked',\n 'speckled',\n 'specks',\n 'spectacle',\n 'spectator',\n 'spectrum',\n 'speculate',\n 'speech',\n 'speed',\n 'spellbind',\n 'speller',\n 'spelling',\n 'spendable',\n 'spender',\n 'spending',\n 'spent',\n 'spew',\n 'sphere',\n 'spherical',\n 'sphinx',\n 'spider',\n 'spied',\n 'spiffy',\n 'spill',\n 'spilt',\n 'spinach',\n 'spinal',\n 'spindle',\n 'spinner',\n 'spinning',\n 'spinout',\n 'spinster',\n 'spiny',\n 'spiral',\n 'spirited',\n 'spiritism',\n 'spirits',\n 'spiritual',\n 'splashed',\n 'splashing',\n 'splashy',\n 'splatter',\n 'spleen',\n 'splendid',\n 'splendor',\n 'splice',\n 'splicing',\n 'splinter',\n 'splotchy',\n 'splurge',\n 'spoilage',\n 'spoiled',\n 'spoiler',\n 'spoiling',\n 'spoils',\n 'spoken',\n 'spokesman',\n 'sponge',\n 'spongy',\n 'sponsor',\n 'spoof',\n 'spookily',\n 'spooky',\n 'spool',\n 'spoon',\n 'spore',\n 'sporting',\n 'sports',\n 'sporty',\n 'spotless',\n 'spotlight',\n 'spotted',\n 'spotter',\n 'spotting',\n 'spotty',\n 'spousal',\n 'spouse',\n 'spout',\n 'sprain',\n 'sprang',\n 'sprawl',\n 'spray',\n 'spree',\n 'sprig',\n 'spring',\n 'sprinkled',\n 'sprinkler',\n 'sprint',\n 'sprite',\n 'sprout',\n 'spruce',\n 'sprung',\n 'spry',\n 'spud',\n 'spur',\n 'sputter',\n 'spyglass',\n 'squabble',\n 'squad',\n 'squall',\n 'squander',\n 'squash',\n 'squatted',\n 'squatter',\n 'squatting',\n 'squeak',\n 'squealer',\n 'squealing',\n 'squeamish',\n 'squeegee',\n 'squeeze',\n 'squeezing',\n 'squid',\n 'squiggle',\n 'squiggly',\n 'squint',\n 'squire',\n 'squirt',\n 'squishier',\n 'squishy',\n 'stability',\n 'stabilize',\n 'stable',\n 'stack',\n 'stadium',\n 'staff',\n 'stage',\n 'staging',\n 'stagnant',\n 'stagnate',\n 'stainable',\n 'stained',\n 'staining',\n 'stainless',\n 'stalemate',\n 'staleness',\n 'stalling',\n 'stallion',\n 'stamina',\n 'stammer',\n 'stamp',\n 'stand',\n 'stank',\n 'staple',\n 'stapling',\n 'starboard',\n 'starch',\n 'stardom',\n 'stardust',\n 'starfish',\n 'stargazer',\n 'staring',\n 'stark',\n 'starless',\n 'starlet',\n 'starlight',\n 'starlit',\n 'starring',\n 'starry',\n 'starship',\n 'starter',\n 'starting',\n 'startle',\n 'startling',\n 'startup',\n 'starved',\n 'starving',\n 'stash',\n 'state',\n 'static',\n 'statistic',\n 'statue',\n 'stature',\n 'status',\n 'statute',\n 'statutory',\n 'staunch',\n 'stays',\n 'steadfast',\n 'steadier',\n 'steadily',\n 'steadying',\n 'steam',\n 'steed',\n 'steep',\n 'steerable',\n 'steering',\n 'steersman',\n 'stegosaur',\n 'stellar',\n 'stem',\n 'stench',\n 'stencil',\n 'step',\n 'stereo',\n 'sterile',\n 'sterility',\n 'sterilize',\n 'sterling',\n 'sternness',\n 'sternum',\n 'stew',\n 'stick',\n 'stiffen',\n 'stiffly',\n 'stiffness',\n 'stifle',\n 'stifling',\n 'stillness',\n 'stilt',\n 'stimulant',\n 'stimulate',\n 'stimuli',\n 'stimulus',\n 'stinger',\n 'stingily',\n 'stinging',\n 'stingray',\n 'stingy',\n 'stinking',\n 'stinky',\n 'stipend',\n 'stipulate',\n 'stir',\n 'stitch',\n 'stock',\n 'stoic',\n 'stoke',\n 'stole',\n 'stomp',\n 'stonewall',\n 'stoneware',\n 'stonework',\n 'stoning',\n 'stony',\n 'stood',\n 'stooge',\n 'stool',\n 'stoop',\n 'stoplight',\n 'stoppable',\n 'stoppage',\n 'stopped',\n 'stopper',\n 'stopping',\n 'stopwatch',\n 'storable',\n 'storage',\n 'storeroom',\n 'storewide',\n 'storm',\n 'stout',\n 'stove',\n 'stowaway',\n 'stowing',\n 'straddle',\n 'straggler',\n 'strained',\n 'strainer',\n 'straining',\n 'strangely',\n 'stranger',\n 'strangle',\n 'strategic',\n 'strategy',\n 'stratus',\n 'straw',\n 'stray',\n 'streak',\n 'stream',\n 'street',\n 'strength',\n 'strenuous',\n 'strep',\n 'stress',\n 'stretch',\n 'strewn',\n 'stricken',\n 'strict',\n 'stride',\n 'strife',\n 'strike',\n 'striking',\n 'strive',\n 'striving',\n 'strobe',\n 'strode',\n 'stroller',\n 'strongbox',\n 'strongly',\n 'strongman',\n 'struck',\n 'structure',\n 'strudel',\n 'struggle',\n 'strum',\n 'strung',\n 'strut',\n 'stubbed',\n 'stubble',\n 'stubbly',\n 'stubborn',\n 'stucco',\n 'stuck',\n 'student',\n 'studied',\n 'studio',\n 'study',\n 'stuffed',\n 'stuffing',\n 'stuffy',\n 'stumble',\n 'stumbling',\n 'stump',\n 'stung',\n 'stunned',\n 'stunner',\n 'stunning',\n 'stunt',\n 'stupor',\n 'sturdily',\n 'sturdy',\n 'styling',\n 'stylishly',\n 'stylist',\n 'stylized',\n 'stylus',\n 'suave',\n 'subarctic',\n 'subatomic',\n 'subdivide',\n 'subdued',\n 'subduing',\n 'subfloor',\n 'subgroup',\n 'subheader',\n 'subject',\n 'sublease',\n 'sublet',\n 'sublevel',\n 'sublime',\n 'submarine',\n 'submerge',\n 'submersed',\n 'submitter',\n 'subpanel',\n 'subpar',\n 'subplot',\n 'subprime',\n 'subscribe',\n 'subscript',\n 'subsector',\n 'subside',\n 'subsiding',\n 'subsidize',\n 'subsidy',\n 'subsoil',\n 'subsonic',\n 'substance',\n 'subsystem',\n 'subtext',\n 'subtitle',\n 'subtly',\n 'subtotal',\n 'subtract',\n 'subtype',\n 'suburb',\n 'subway',\n 'subwoofer',\n 'subzero',\n 'succulent',\n 'such',\n 'suction',\n 'sudden',\n 'sudoku',\n 'suds',\n 'sufferer',\n 'suffering',\n 'suffice',\n 'suffix',\n 'suffocate',\n 'suffrage',\n 'sugar',\n 'suggest',\n 'suing',\n 'suitable',\n 'suitably',\n 'suitcase',\n 'suitor',\n 'sulfate',\n 'sulfide',\n 'sulfite',\n 'sulfur',\n 'sulk',\n 'sullen',\n 'sulphate',\n 'sulphuric',\n 'sultry',\n 'superbowl',\n 'superglue',\n 'superhero',\n 'superior',\n 'superjet',\n 'superman',\n 'supermom',\n 'supernova',\n 'supervise',\n 'supper',\n 'supplier',\n 'supply',\n 'support',\n 'supremacy',\n 'supreme',\n 'surcharge',\n 'surely',\n 'sureness',\n 'surface',\n 'surfacing',\n 'surfboard',\n 'surfer',\n 'surgery',\n 'surgical',\n 'surging',\n 'surname',\n 'surpass',\n 'surplus',\n 'surprise',\n 'surreal',\n 'surrender',\n 'surrogate',\n 'surround',\n 'survey',\n 'survival',\n 'survive',\n 'surviving',\n 'survivor',\n 'sushi',\n 'suspect',\n 'suspend',\n 'suspense',\n 'sustained',\n 'sustainer',\n 'swab',\n 'swaddling',\n 'swagger',\n 'swampland',\n 'swan',\n 'swapping',\n 'swarm',\n 'sway',\n 'swear',\n 'sweat',\n 'sweep',\n 'swell',\n 'swept',\n 'swerve',\n 'swifter',\n 'swiftly',\n 'swiftness',\n 'swimmable',\n 'swimmer',\n 'swimming',\n 'swimsuit',\n 'swimwear',\n 'swinger',\n 'swinging',\n 'swipe',\n 'swirl',\n 'switch',\n 'swivel',\n 'swizzle',\n 'swooned',\n 'swoop',\n 'swoosh',\n 'swore',\n 'sworn',\n 'swung',\n 'sycamore',\n 'sympathy',\n 'symphonic',\n 'symphony',\n 'symptom',\n 'synapse',\n 'syndrome',\n 'synergy',\n 'synopses',\n 'synopsis',\n 'synthesis',\n 'synthetic',\n 'syrup',\n 'system',\n 't-shirt',\n 'tabasco',\n 'tabby',\n 'tableful',\n 'tables',\n 'tablet',\n 'tableware',\n 'tabloid',\n 'tackiness',\n 'tacking',\n 'tackle',\n 'tackling',\n 'tacky',\n 'taco',\n 'tactful',\n 'tactical',\n 'tactics',\n 'tactile',\n 'tactless',\n 'tadpole',\n 'taekwondo',\n 'tag',\n 'tainted',\n 'take',\n 'taking',\n 'talcum',\n 'talisman',\n 'tall',\n 'talon',\n 'tamale',\n 'tameness',\n 'tamer',\n 'tamper',\n 'tank',\n 'tanned',\n 'tannery',\n 'tanning',\n 'tantrum',\n 'tapeless',\n 'tapered',\n 'tapering',\n 'tapestry',\n 'tapioca',\n 'tapping',\n 'taps',\n 'tarantula',\n 'target',\n 'tarmac',\n 'tarnish',\n 'tarot',\n 'tartar',\n 'tartly',\n 'tartness',\n 'task',\n 'tassel',\n 'taste',\n 'tastiness',\n 'tasting',\n 'tasty',\n 'tattered',\n 'tattle',\n 'tattling',\n 'tattoo',\n 'taunt',\n 'tavern',\n 'thank',\n 'that',\n 'thaw',\n 'theater',\n 'theatrics',\n 'thee',\n 'theft',\n 'theme',\n 'theology',\n 'theorize',\n 'thermal',\n 'thermos',\n 'thesaurus',\n 'these',\n 'thesis',\n 'thespian',\n 'thicken',\n 'thicket',\n 'thickness',\n 'thieving',\n 'thievish',\n 'thigh',\n 'thimble',\n 'thing',\n 'think',\n 'thinly',\n 'thinner',\n 'thinness',\n 'thinning',\n 'thirstily',\n 'thirsting',\n 'thirsty',\n 'thirteen',\n 'thirty',\n 'thong',\n 'thorn',\n 'those',\n 'thousand',\n 'thrash',\n 'thread',\n 'threaten',\n 'threefold',\n 'thrift',\n 'thrill',\n 'thrive',\n 'thriving',\n 'throat',\n 'throbbing',\n 'throng',\n 'throttle',\n 'throwaway',\n 'throwback',\n 'thrower',\n 'throwing',\n 'thud',\n 'thumb',\n 'thumping',\n 'thursday',\n 'thus',\n 'thwarting',\n 'thyself',\n 'tiara',\n 'tibia',\n 'tidal',\n 'tidbit',\n 'tidiness',\n 'tidings',\n 'tidy',\n 'tiger',\n 'tighten',\n 'tightly',\n 'tightness',\n 'tightrope',\n 'tightwad',\n 'tigress',\n 'tile',\n 'tiling',\n 'till',\n 'tilt',\n 'timid',\n 'timing',\n 'timothy',\n 'tinderbox',\n 'tinfoil',\n 'tingle',\n 'tingling',\n 'tingly',\n 'tinker',\n 'tinkling',\n 'tinsel',\n 'tinsmith',\n 'tint',\n 'tinwork',\n 'tiny',\n 'tipoff',\n 'tipped',\n 'tipper',\n 'tipping',\n 'tiptoeing',\n 'tiptop',\n 'tiring',\n 'tissue',\n 'trace',\n 'tracing',\n 'track',\n 'traction',\n 'tractor',\n 'trade',\n 'trading',\n 'tradition',\n 'traffic',\n 'tragedy',\n 'trailing',\n 'trailside',\n 'train',\n 'traitor',\n 'trance',\n 'tranquil',\n 'transfer',\n 'transform',\n 'translate',\n 'transpire',\n 'transport',\n 'transpose',\n 'trapdoor',\n 'trapeze',\n 'trapezoid',\n 'trapped',\n 'trapper',\n 'trapping',\n 'traps',\n 'trash',\n 'travel',\n 'traverse',\n 'travesty',\n 'tray',\n 'treachery',\n 'treading',\n 'treadmill',\n 'treason',\n 'treat',\n 'treble',\n 'tree',\n 'trekker',\n 'tremble',\n 'trembling',\n 'tremor',\n 'trench',\n 'trend',\n 'trespass',\n 'triage',\n 'trial',\n 'triangle',\n 'tribesman',\n 'tribunal',\n 'tribune',\n 'tributary',\n 'tribute',\n 'triceps',\n 'trickery',\n 'trickily',\n 'tricking',\n 'trickle',\n 'trickster',\n 'tricky',\n 'tricolor',\n 'tricycle',\n 'trident',\n 'tried',\n 'trifle',\n 'trifocals',\n 'trillion',\n 'trilogy',\n 'trimester',\n 'trimmer',\n 'trimming',\n 'trimness',\n 'trinity',\n 'trio',\n 'tripod',\n 'tripping',\n 'triumph',\n 'trivial',\n 'trodden',\n 'trolling',\n 'trombone',\n 'trophy',\n 'tropical',\n 'tropics',\n 'trouble',\n 'troubling',\n 'trough',\n 'trousers',\n 'trout',\n 'trowel',\n 'truce',\n 'truck',\n 'truffle',\n 'trump',\n 'trunks',\n 'trustable',\n 'trustee',\n 'trustful',\n 'trusting',\n 'trustless',\n 'truth',\n 'try',\n 'tubby',\n 'tubeless',\n 'tubular',\n 'tucking',\n 'tuesday',\n 'tug',\n 'tuition',\n 'tulip',\n 'tumble',\n 'tumbling',\n 'tummy',\n 'turban',\n 'turbine',\n 'turbofan',\n 'turbojet',\n 'turbulent',\n 'turf',\n 'turkey',\n 'turmoil',\n 'turret',\n 'turtle',\n 'tusk',\n 'tutor',\n 'tutu',\n 'tux',\n 'tweak',\n 'tweed',\n 'tweet',\n 'tweezers',\n 'twelve',\n 'twentieth',\n 'twenty',\n 'twerp',\n 'twice',\n 'twiddle',\n 'twiddling',\n 'twig',\n 'twilight',\n 'twine',\n 'twins',\n 'twirl',\n 'twistable',\n 'twisted',\n 'twister',\n 'twisting',\n 'twisty',\n 'twitch',\n 'twitter',\n 'tycoon',\n 'tying',\n 'tyke',\n 'udder',\n 'ultimate',\n 'ultimatum',\n 'ultra',\n 'umbilical',\n 'umbrella',\n 'umpire',\n 'unabashed',\n 'unable',\n 'unadorned',\n 'unadvised',\n 'unafraid',\n 'unaired',\n 'unaligned',\n 'unaltered',\n 'unarmored',\n 'unashamed',\n 'unaudited',\n 'unawake',\n 'unaware',\n 'unbaked',\n 'unbalance',\n 'unbeaten',\n 'unbend',\n 'unbent',\n 'unbiased',\n 'unbitten',\n 'unblended',\n 'unblessed',\n 'unblock',\n 'unbolted',\n 'unbounded',\n 'unboxed',\n 'unbraided',\n 'unbridle',\n 'unbroken',\n 'unbuckled',\n 'unbundle',\n 'unburned',\n 'unbutton',\n 'uncanny',\n 'uncapped',\n 'uncaring',\n 'uncertain',\n 'unchain',\n 'unchanged',\n 'uncharted',\n 'uncheck',\n 'uncivil',\n 'unclad',\n 'unclaimed',\n 'unclamped',\n 'unclasp',\n 'uncle',\n 'unclip',\n 'uncloak',\n 'unclog',\n 'unclothed',\n 'uncoated',\n 'uncoiled',\n 'uncolored',\n 'uncombed',\n 'uncommon',\n 'uncooked',\n 'uncork',\n 'uncorrupt',\n 'uncounted',\n 'uncouple',\n 'uncouth',\n 'uncover',\n 'uncross',\n 'uncrown',\n 'uncrushed',\n 'uncured',\n 'uncurious',\n 'uncurled',\n 'uncut',\n 'undamaged',\n 'undated',\n 'undaunted',\n 'undead',\n 'undecided',\n 'undefined',\n 'underage',\n 'underarm',\n 'undercoat',\n 'undercook',\n 'undercut',\n 'underdog',\n 'underdone',\n 'underfed',\n 'underfeed',\n 'underfoot',\n 'undergo',\n 'undergrad',\n 'underhand',\n 'underline',\n 'underling',\n 'undermine',\n 'undermost',\n 'underpaid',\n 'underpass',\n 'underpay',\n 'underrate',\n 'undertake',\n 'undertone',\n 'undertook',\n 'undertow',\n 'underuse',\n 'underwear',\n 'underwent',\n 'underwire',\n 'undesired',\n 'undiluted',\n 'undivided',\n 'undocked',\n 'undoing',\n 'undone',\n 'undrafted',\n 'undress',\n 'undrilled',\n 'undusted',\n 'undying',\n 'unearned',\n 'unearth',\n 'unease',\n 'uneasily',\n 'uneasy',\n 'uneatable',\n 'uneaten',\n 'unedited',\n 'unelected',\n 'unending',\n 'unengaged',\n 'unenvied',\n 'unequal',\n 'unethical',\n 'uneven',\n 'unexpired',\n 'unexposed',\n 'unfailing',\n 'unfair',\n 'unfasten',\n 'unfazed',\n 'unfeeling',\n 'unfiled',\n 'unfilled',\n 'unfitted',\n 'unfitting',\n 'unfixable',\n 'unfixed',\n 'unflawed',\n 'unfocused',\n 'unfold',\n 'unfounded',\n 'unframed',\n 'unfreeze',\n 'unfrosted',\n 'unfrozen',\n 'unfunded',\n 'unglazed',\n 'ungloved',\n 'unglue',\n 'ungodly',\n 'ungraded',\n 'ungreased',\n 'unguarded',\n 'unguided',\n 'unhappily',\n 'unhappy',\n 'unharmed',\n 'unhealthy',\n 'unheard',\n 'unhearing',\n 'unheated',\n 'unhelpful',\n 'unhidden',\n 'unhinge',\n 'unhitched',\n 'unholy',\n 'unhook',\n 'unicorn',\n 'unicycle',\n 'unified',\n 'unifier',\n 'uniformed',\n 'uniformly',\n 'unify',\n 'unimpeded',\n 'uninjured',\n 'uninstall',\n 'uninsured',\n 'uninvited',\n 'union',\n 'uniquely',\n 'unisexual',\n 'unison',\n 'unissued',\n 'unit',\n 'universal',\n 'universe',\n 'unjustly',\n 'unkempt',\n 'unkind',\n 'unknotted',\n 'unknowing',\n 'unknown',\n 'unlaced',\n 'unlatch',\n 'unlawful',\n 'unleaded',\n 'unlearned',\n 'unleash',\n 'unless',\n 'unleveled',\n 'unlighted',\n 'unlikable',\n 'unlimited',\n 'unlined',\n 'unlinked',\n 'unlisted',\n 'unlit',\n 'unlivable',\n 'unloaded',\n 'unloader',\n 'unlocked',\n 'unlocking',\n 'unlovable',\n 'unloved',\n 'unlovely',\n 'unloving',\n 'unluckily',\n 'unlucky',\n 'unmade',\n 'unmanaged',\n 'unmanned',\n 'unmapped',\n 'unmarked',\n 'unmasked',\n 'unmasking',\n 'unmatched',\n 'unmindful',\n 'unmixable',\n 'unmixed',\n 'unmolded',\n 'unmoral',\n 'unmovable',\n 'unmoved',\n 'unmoving',\n 'unnamable',\n 'unnamed',\n 'unnatural',\n 'unneeded',\n 'unnerve',\n 'unnerving',\n 'unnoticed',\n 'unopened',\n 'unopposed',\n 'unpack',\n 'unpadded',\n 'unpaid',\n 'unpainted',\n 'unpaired',\n 'unpaved',\n 'unpeeled',\n 'unpicked',\n 'unpiloted',\n 'unpinned',\n 'unplanned',\n 'unplanted',\n 'unpleased',\n 'unpledged',\n 'unplowed',\n 'unplug',\n 'unpopular',\n 'unproven',\n 'unquote',\n 'unranked',\n 'unrated',\n 'unraveled',\n 'unreached',\n 'unread',\n 'unreal',\n 'unreeling',\n 'unrefined',\n 'unrelated',\n 'unrented',\n 'unrest',\n 'unretired',\n 'unrevised',\n 'unrigged',\n 'unripe',\n 'unrivaled',\n 'unroasted',\n 'unrobed',\n 'unroll',\n 'unruffled',\n 'unruly',\n 'unrushed',\n 'unsaddle',\n 'unsafe',\n 'unsaid',\n 'unsalted',\n 'unsaved',\n 'unsavory',\n 'unscathed',\n 'unscented',\n 'unscrew',\n 'unsealed',\n 'unseated',\n 'unsecured',\n 'unseeing',\n 'unseemly',\n 'unseen',\n 'unselect',\n 'unselfish',\n 'unsent',\n 'unsettled',\n 'unshackle',\n 'unshaken',\n 'unshaved',\n 'unshaven',\n 'unsheathe',\n 'unshipped',\n 'unsightly',\n 'unsigned',\n 'unskilled',\n 'unsliced',\n 'unsmooth',\n 'unsnap',\n 'unsocial',\n 'unsoiled',\n 'unsold',\n 'unsolved',\n 'unsorted',\n 'unspoiled',\n 'unspoken',\n 'unstable',\n 'unstaffed',\n 'unstamped',\n 'unsteady',\n 'unsterile',\n 'unstirred',\n 'unstitch',\n 'unstopped',\n 'unstuck',\n 'unstuffed',\n 'unstylish',\n 'unsubtle',\n 'unsubtly',\n 'unsuited',\n 'unsure',\n 'unsworn',\n 'untagged',\n 'untainted',\n 'untaken',\n 'untamed',\n 'untangled',\n 'untapped',\n 'untaxed',\n 'unthawed',\n 'unthread',\n 'untidy',\n 'untie',\n 'until',\n 'untimed',\n 'untimely',\n 'untitled',\n 'untoasted',\n 'untold',\n 'untouched',\n 'untracked',\n 'untrained',\n 'untreated',\n 'untried',\n 'untrimmed',\n 'untrue',\n 'untruth',\n 'unturned',\n 'untwist',\n 'untying',\n 'unusable',\n 'unused',\n 'unusual',\n 'unvalued',\n 'unvaried',\n 'unvarying',\n 'unveiled',\n 'unveiling',\n 'unvented',\n 'unviable',\n 'unvisited',\n 'unvocal',\n 'unwanted',\n 'unwarlike',\n 'unwary',\n 'unwashed',\n 'unwatched',\n 'unweave',\n 'unwed',\n 'unwelcome',\n 'unwell',\n 'unwieldy',\n 'unwilling',\n 'unwind',\n 'unwired',\n 'unwitting',\n 'unwomanly',\n 'unworldly',\n 'unworn',\n 'unworried',\n 'unworthy',\n 'unwound',\n 'unwoven',\n 'unwrapped',\n 'unwritten',\n 'unzip',\n 'upbeat',\n 'upchuck',\n 'upcoming',\n 'upcountry',\n 'update',\n 'upfront',\n 'upgrade',\n 'upheaval',\n 'upheld',\n 'uphill',\n 'uphold',\n 'uplifted',\n 'uplifting',\n 'upload',\n 'upon',\n 'upper',\n 'upright',\n 'uprising',\n 'upriver',\n 'uproar',\n 'uproot',\n 'upscale',\n 'upside',\n 'upstage',\n 'upstairs',\n 'upstart',\n 'upstate',\n 'upstream',\n 'upstroke',\n 'upswing',\n 'uptake',\n 'uptight',\n 'uptown',\n 'upturned',\n 'upward',\n 'upwind',\n 'uranium',\n 'urban',\n 'urchin',\n 'urethane',\n 'urgency',\n 'urgent',\n 'urging',\n 'urologist',\n 'urology',\n 'usable',\n 'usage',\n 'useable',\n 'used',\n 'uselessly',\n 'user',\n 'usher',\n 'usual',\n 'utensil',\n 'utility',\n 'utilize',\n 'utmost',\n 'utopia',\n 'utter',\n 'vacancy',\n 'vacant',\n 'vacate',\n 'vacation',\n 'vagabond',\n 'vagrancy',\n 'vagrantly',\n 'vaguely',\n 'vagueness',\n 'valiant',\n 'valid',\n 'valium',\n 'valley',\n 'valuables',\n 'value',\n 'vanilla',\n 'vanish',\n 'vanity',\n 'vanquish',\n 'vantage',\n 'vaporizer',\n 'variable',\n 'variably',\n 'varied',\n 'variety',\n 'various',\n 'varmint',\n 'varnish',\n 'varsity',\n 'varying',\n 'vascular',\n 'vaseline',\n 'vastly',\n 'vastness',\n 'veal',\n 'vegan',\n 'veggie',\n 'vehicular',\n 'velcro',\n 'velocity',\n 'velvet',\n 'vendetta',\n 'vending',\n 'vendor',\n 'veneering',\n 'vengeful',\n 'venomous',\n 'ventricle',\n 'venture',\n 'venue',\n 'venus',\n 'verbalize',\n 'verbally',\n 'verbose',\n 'verdict',\n 'verify',\n 'verse',\n 'version',\n 'versus',\n 'vertebrae',\n 'vertical',\n 'vertigo',\n 'very',\n 'vessel',\n 'vest',\n 'veteran',\n 'veto',\n 'vexingly',\n 'viability',\n 'viable',\n 'vibes',\n 'vice',\n 'vicinity',\n 'victory',\n 'video',\n 'viewable',\n 'viewer',\n 'viewing',\n 'viewless',\n 'viewpoint',\n 'vigorous',\n 'village',\n 'villain',\n 'vindicate',\n 'vineyard',\n 'vintage',\n 'violate',\n 'violation',\n 'violator',\n 'violet',\n 'violin',\n 'viper',\n 'viral',\n 'virtual',\n 'virtuous',\n 'virus',\n 'visa',\n 'viscosity',\n 'viscous',\n 'viselike',\n 'visible',\n 'visibly',\n 'vision',\n 'visiting',\n 'visitor',\n 'visor',\n 'vista',\n 'vitality',\n 'vitalize',\n 'vitally',\n 'vitamins',\n 'vivacious',\n 'vividly',\n 'vividness',\n 'vixen',\n 'vocalist',\n 'vocalize',\n 'vocally',\n 'vocation',\n 'voice',\n 'voicing',\n 'void',\n 'volatile',\n 'volley',\n 'voltage',\n 'volumes',\n 'voter',\n 'voting',\n 'voucher',\n 'vowed',\n 'vowel',\n 'voyage',\n 'wackiness',\n 'wad',\n 'wafer',\n 'waffle',\n 'waged',\n 'wager',\n 'wages',\n 'waggle',\n 'wagon',\n 'wake',\n 'waking',\n 'walk',\n 'walmart',\n 'walnut',\n 'walrus',\n 'waltz',\n 'wand',\n 'wannabe',\n 'wanted',\n 'wanting',\n 'wasabi',\n 'washable',\n 'washbasin',\n 'washboard',\n 'washbowl',\n 'washcloth',\n 'washday',\n 'washed',\n 'washer',\n 'washhouse',\n 'washing',\n 'washout',\n 'washroom',\n 'washstand',\n 'washtub',\n 'wasp',\n 'wasting',\n 'watch',\n 'water',\n 'waviness',\n 'waving',\n 'wavy',\n 'whacking',\n 'whacky',\n 'wham',\n 'wharf',\n 'wheat',\n 'whenever',\n 'whiff',\n 'whimsical',\n 'whinny',\n 'whiny',\n 'whisking',\n 'whoever',\n 'whole',\n 'whomever',\n 'whoopee',\n 'whooping',\n 'whoops',\n 'why',\n 'wick',\n 'widely',\n 'widen',\n 'widget',\n 'widow',\n 'width',\n 'wieldable',\n 'wielder',\n 'wife',\n 'wifi',\n 'wikipedia',\n 'wildcard',\n 'wildcat',\n 'wilder',\n 'wildfire',\n 'wildfowl',\n 'wildland',\n 'wildlife',\n 'wildly',\n 'wildness',\n 'willed',\n 'willfully',\n 'willing',\n 'willow',\n 'willpower',\n 'wilt',\n 'wimp',\n 'wince',\n 'wincing',\n 'wind',\n 'wing',\n 'winking',\n 'winner',\n 'winnings',\n 'winter',\n 'wipe',\n 'wired',\n 'wireless',\n 'wiring',\n 'wiry',\n 'wisdom',\n 'wise',\n 'wish',\n 'wisplike',\n 'wispy',\n 'wistful',\n 'wizard',\n 'wobble',\n 'wobbling',\n 'wobbly',\n 'wok',\n 'wolf',\n 'wolverine',\n 'womanhood',\n 'womankind',\n 'womanless',\n 'womanlike',\n 'womanly',\n 'womb',\n 'woof',\n 'wooing',\n 'wool',\n 'woozy',\n 'word',\n 'work',\n 'worried',\n 'worrier',\n 'worrisome',\n 'worry',\n 'worsening',\n 'worshiper',\n 'worst',\n 'wound',\n 'woven',\n 'wow',\n 'wrangle',\n 'wrath',\n 'wreath',\n 'wreckage',\n 'wrecker',\n 'wrecking',\n 'wrench',\n 'wriggle',\n 'wriggly',\n 'wrinkle',\n 'wrinkly',\n 'wrist',\n 'writing',\n 'written',\n 'wrongdoer',\n 'wronged',\n 'wrongful',\n 'wrongly',\n 'wrongness',\n 'wrought',\n 'xbox',\n 'xerox',\n 'yahoo',\n 'yam',\n 'yanking',\n 'yapping',\n 'yard',\n 'yarn',\n 'yeah',\n 'yearbook',\n 'yearling',\n 'yearly',\n 'yearning',\n 'yeast',\n 'yelling',\n 'yelp',\n 'yen',\n 'yesterday',\n 'yiddish',\n 'yield',\n 'yin',\n 'yippee',\n 'yo-yo',\n 'yodel',\n 'yoga',\n 'yogurt',\n 'yonder',\n 'yoyo',\n 'yummy',\n 'zap',\n 'zealous',\n 'zebra',\n 'zen',\n 'zeppelin',\n 'zero',\n 'zestfully',\n 'zesty',\n 'zigzagged',\n 'zipfile',\n 'zipping',\n 'zippy',\n 'zips',\n 'zit',\n 'zodiac',\n 'zombie',\n 'zone',\n 'zoning',\n 'zookeeper',\n 'zoologist',\n 'zoology',\n 'zoom',\n];\n","import { EnvironmentUrls } from '../models/domain/environmentUrls';\n\nimport { ConstantsService } from './constants.service';\n\nimport { ApiService } from '../abstractions/api.service';\nimport { EnvironmentService as EnvironmentServiceAbstraction } from '../abstractions/environment.service';\nimport { NotificationsService } from '../abstractions/notifications.service';\nimport { StorageService } from '../abstractions/storage.service';\n\nexport class EnvironmentService implements EnvironmentServiceAbstraction {\n baseUrl: string;\n webVaultUrl: string;\n apiUrl: string;\n identityUrl: string;\n iconsUrl: string;\n notificationsUrl: string;\n eventsUrl: string;\n enterpriseUrl: string;\n\n constructor(private apiService: ApiService, private storageService: StorageService,\n private notificationsService: NotificationsService) { }\n\n getWebVaultUrl(): string {\n if (this.webVaultUrl != null) {\n return this.webVaultUrl;\n } else if (this.baseUrl) {\n return this.baseUrl;\n }\n return null;\n }\n\n async setUrlsFromStorage(): Promise {\n const urlsObj: any = await this.storageService.get(ConstantsService.environmentUrlsKey);\n const urls = urlsObj || {\n base: null,\n api: null,\n identity: null,\n icons: null,\n notifications: null,\n events: null,\n webVault: null,\n enterprise: null,\n };\n\n const envUrls = new EnvironmentUrls();\n\n if (urls.base) {\n this.baseUrl = envUrls.base = urls.base;\n this.apiService.setUrls(envUrls);\n return;\n }\n\n this.webVaultUrl = urls.webVault;\n this.apiUrl = envUrls.api = urls.api;\n this.identityUrl = envUrls.identity = urls.identity;\n this.iconsUrl = urls.icons;\n this.notificationsUrl = urls.notifications;\n this.eventsUrl = envUrls.events = urls.events;\n this.enterpriseUrl = urls.enterprise;\n this.apiService.setUrls(envUrls);\n }\n\n async setUrls(urls: any): Promise {\n urls.base = this.formatUrl(urls.base);\n urls.webVault = this.formatUrl(urls.webVault);\n urls.api = this.formatUrl(urls.api);\n urls.identity = this.formatUrl(urls.identity);\n urls.icons = this.formatUrl(urls.icons);\n urls.notifications = this.formatUrl(urls.notifications);\n urls.events = this.formatUrl(urls.events);\n urls.enterprise = this.formatUrl(urls.enterprise);\n\n await this.storageService.save(ConstantsService.environmentUrlsKey, {\n base: urls.base,\n api: urls.api,\n identity: urls.identity,\n webVault: urls.webVault,\n icons: urls.icons,\n notifications: urls.notifications,\n events: urls.events,\n enterprise: urls.enterprise,\n });\n\n this.baseUrl = urls.base;\n this.webVaultUrl = urls.webVault;\n this.apiUrl = urls.api;\n this.identityUrl = urls.identity;\n this.iconsUrl = urls.icons;\n this.notificationsUrl = urls.notifications;\n this.eventsUrl = urls.events;\n this.enterpriseUrl = urls.enterprise;\n\n const envUrls = new EnvironmentUrls();\n if (this.baseUrl) {\n envUrls.base = this.baseUrl;\n } else {\n envUrls.api = this.apiUrl;\n envUrls.identity = this.identityUrl;\n envUrls.events = this.eventsUrl;\n }\n\n this.apiService.setUrls(envUrls);\n if (this.notificationsService != null) {\n this.notificationsService.init(this);\n }\n return urls;\n }\n\n private formatUrl(url: string): string {\n if (url == null || url === '') {\n return null;\n }\n\n url = url.replace(/\\/+$/g, '');\n if (!url.startsWith('http://') && !url.startsWith('https://')) {\n url = 'https://' + url;\n }\n\n return url.trim();\n }\n}\n","import { FolderData } from '../models/data/folderData';\n\nimport { Folder } from '../models/domain/folder';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\nimport { TreeNode } from '../models/domain/treeNode';\n\nimport { FolderRequest } from '../models/request/folderRequest';\n\nimport { FolderResponse } from '../models/response/folderResponse';\n\nimport { FolderView } from '../models/view/folderView';\n\nimport { ApiService } from '../abstractions/api.service';\nimport { CipherService } from '../abstractions/cipher.service';\nimport { CryptoService } from '../abstractions/crypto.service';\nimport { FolderService as FolderServiceAbstraction } from '../abstractions/folder.service';\nimport { I18nService } from '../abstractions/i18n.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { UserService } from '../abstractions/user.service';\nimport { CipherData } from '../models/data/cipherData';\n\nimport { ServiceUtils } from '../misc/serviceUtils';\nimport { Utils } from '../misc/utils';\n\nconst Keys = {\n foldersPrefix: 'folders_',\n ciphersPrefix: 'ciphers_',\n};\nconst NestingDelimiter = '/';\n\nexport class FolderService implements FolderServiceAbstraction {\n decryptedFolderCache: FolderView[];\n\n constructor(private cryptoService: CryptoService, private userService: UserService,\n private apiService: ApiService, private storageService: StorageService,\n private i18nService: I18nService, private cipherService: CipherService) { }\n\n clearCache(): void {\n this.decryptedFolderCache = null;\n }\n\n async encrypt(model: FolderView, key?: SymmetricCryptoKey): Promise {\n const folder = new Folder();\n folder.id = model.id;\n folder.name = await this.cryptoService.encrypt(model.name, key);\n return folder;\n }\n\n async get(id: string): Promise {\n const userId = await this.userService.getUserId();\n const folders = await this.storageService.get<{ [id: string]: FolderData; }>(\n Keys.foldersPrefix + userId);\n if (folders == null || !folders.hasOwnProperty(id)) {\n return null;\n }\n\n return new Folder(folders[id]);\n }\n\n async getAll(): Promise {\n const userId = await this.userService.getUserId();\n const folders = await this.storageService.get<{ [id: string]: FolderData; }>(\n Keys.foldersPrefix + userId);\n const response: Folder[] = [];\n for (const id in folders) {\n if (folders.hasOwnProperty(id)) {\n response.push(new Folder(folders[id]));\n }\n }\n return response;\n }\n\n async getAllDecrypted(): Promise {\n if (this.decryptedFolderCache != null) {\n return this.decryptedFolderCache;\n }\n\n const hasKey = await this.cryptoService.hasKey();\n if (!hasKey) {\n throw new Error('No key.');\n }\n\n const decFolders: FolderView[] = [];\n const promises: Promise[] = [];\n const folders = await this.getAll();\n folders.forEach(folder => {\n promises.push(folder.decrypt().then(f => decFolders.push(f)));\n });\n\n await Promise.all(promises);\n decFolders.sort(Utils.getSortFunction(this.i18nService, 'name'));\n\n const noneFolder = new FolderView();\n noneFolder.name = this.i18nService.t('noneFolder');\n decFolders.push(noneFolder);\n\n this.decryptedFolderCache = decFolders;\n return this.decryptedFolderCache;\n }\n\n async getAllNested(): Promise[]> {\n const folders = await this.getAllDecrypted();\n const nodes: TreeNode[] = [];\n folders.forEach(f => {\n const folderCopy = new FolderView();\n folderCopy.id = f.id;\n folderCopy.revisionDate = f.revisionDate;\n const parts = f.name != null ? f.name.replace(/^\\/+|\\/+$/g, '').split(NestingDelimiter) : [];\n ServiceUtils.nestedTraverse(nodes, 0, parts, folderCopy, null, NestingDelimiter);\n });\n return nodes;\n }\n\n async getNested(id: string): Promise> {\n const folders = await this.getAllNested();\n return ServiceUtils.getTreeNodeObject(folders, id) as TreeNode;\n }\n\n async saveWithServer(folder: Folder): Promise {\n const request = new FolderRequest(folder);\n\n let response: FolderResponse;\n if (folder.id == null) {\n response = await this.apiService.postFolder(request);\n folder.id = response.id;\n } else {\n response = await this.apiService.putFolder(folder.id, request);\n }\n\n const userId = await this.userService.getUserId();\n const data = new FolderData(response, userId);\n await this.upsert(data);\n }\n\n async upsert(folder: FolderData | FolderData[]): Promise {\n const userId = await this.userService.getUserId();\n let folders = await this.storageService.get<{ [id: string]: FolderData; }>(\n Keys.foldersPrefix + userId);\n if (folders == null) {\n folders = {};\n }\n\n if (folder instanceof FolderData) {\n const f = folder as FolderData;\n folders[f.id] = f;\n } else {\n (folder as FolderData[]).forEach(f => {\n folders[f.id] = f;\n });\n }\n\n await this.storageService.save(Keys.foldersPrefix + userId, folders);\n this.decryptedFolderCache = null;\n }\n\n async replace(folders: { [id: string]: FolderData; }): Promise {\n const userId = await this.userService.getUserId();\n await this.storageService.save(Keys.foldersPrefix + userId, folders);\n this.decryptedFolderCache = null;\n }\n\n async clear(userId: string): Promise {\n await this.storageService.remove(Keys.foldersPrefix + userId);\n this.decryptedFolderCache = null;\n }\n\n async delete(id: string | string[]): Promise {\n const userId = await this.userService.getUserId();\n const folders = await this.storageService.get<{ [id: string]: FolderData; }>(\n Keys.foldersPrefix + userId);\n if (folders == null) {\n return;\n }\n\n if (typeof id === 'string') {\n if (folders[id] == null) {\n return;\n }\n delete folders[id];\n } else {\n (id as string[]).forEach(i => {\n delete folders[i];\n });\n }\n\n await this.storageService.save(Keys.foldersPrefix + userId, folders);\n this.decryptedFolderCache = null;\n\n // Items in a deleted folder are re-assigned to \"No Folder\"\n const ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(Keys.ciphersPrefix + userId);\n if (ciphers != null) {\n const updates: CipherData[] = [];\n for (const cId in ciphers) {\n if (ciphers[cId].folderId === id) {\n ciphers[cId].folderId = null;\n updates.push(ciphers[cId]);\n }\n }\n if (updates.length > 0) {\n this.cipherService.upsert(updates);\n }\n }\n }\n\n async deleteWithServer(id: string): Promise {\n await this.apiService.deleteFolder(id);\n await this.delete(id);\n }\n}\n","import { I18nService as I18nServiceAbstraction } from '../abstractions/i18n.service';\n\nexport class I18nService implements I18nServiceAbstraction {\n locale: string;\n // First locale is the default (English)\n supportedTranslationLocales: string[] = ['en'];\n translationLocale: string;\n collator: Intl.Collator;\n localeNames = new Map([\n ['af', 'Afrikaans'],\n ['be', 'Беларуская'],\n ['bg', 'български'],\n ['ca', 'català'],\n ['cs', 'čeština'],\n ['da', 'dansk'],\n ['de', 'Deutsch'],\n ['el', 'Ελληνικά'],\n ['en', 'English'],\n ['en-GB', 'English (British)'],\n ['eo', 'Esperanto'],\n ['es', 'español'],\n ['et', 'eesti'],\n ['fa', 'فارسی'],\n ['fi', 'suomi'],\n ['fr', 'français'],\n ['he', 'עברית'],\n ['hi', 'हिन्दी'],\n ['hr', 'hrvatski'],\n ['hu', 'magyar'],\n ['id', 'Bahasa Indonesia'],\n ['it', 'italiano'],\n ['ja', '日本語'],\n ['ko', '한국어'],\n ['lv', 'Latvietis'],\n ['ml', 'മലയാളം'],\n ['nb', 'norsk (bokmål)'],\n ['nl', 'Nederlands'],\n ['pl', 'polski'],\n ['pt-BR', 'português do Brasil'],\n ['pt-PT', 'português'],\n ['ro', 'română'],\n ['ru', 'русский'],\n ['sk', 'slovenčina'],\n ['sr', 'Српски'],\n ['sv', 'svenska'],\n ['th', 'ไทย'],\n ['tr', 'Türkçe'],\n ['uk', 'українська'],\n ['vi', 'Tiếng Việt'],\n ['zh-CN', '中文(中国大陆)'],\n ['zh-TW', '中文(台灣)'],\n ]);\n\n protected inited: boolean;\n protected defaultMessages: any = {};\n protected localeMessages: any = {};\n\n constructor(protected systemLanguage: string, protected localesDirectory: string,\n protected getLocalesJson: (formattedLocale: string) => Promise) {\n this.systemLanguage = systemLanguage.replace('_', '-');\n }\n\n async init(locale?: string) {\n if (this.inited) {\n throw new Error('i18n already initialized.');\n }\n if (this.supportedTranslationLocales == null || this.supportedTranslationLocales.length === 0) {\n throw new Error('supportedTranslationLocales not set.');\n }\n\n this.inited = true;\n this.locale = this.translationLocale = locale != null ? locale : this.systemLanguage;\n\n try {\n this.collator = new Intl.Collator(this.locale, { numeric: true, sensitivity: 'base' });\n } catch {\n this.collator = null;\n }\n\n if (this.supportedTranslationLocales.indexOf(this.translationLocale) === -1) {\n this.translationLocale = this.translationLocale.slice(0, 2);\n\n if (this.supportedTranslationLocales.indexOf(this.translationLocale) === -1) {\n this.translationLocale = this.supportedTranslationLocales[0];\n }\n }\n\n if (this.localesDirectory != null) {\n await this.loadMessages(this.translationLocale, this.localeMessages);\n if (this.translationLocale !== this.supportedTranslationLocales[0]) {\n await this.loadMessages(this.supportedTranslationLocales[0], this.defaultMessages);\n }\n }\n }\n\n t(id: string, p1?: string, p2?: string, p3?: string): string {\n return this.translate(id, p1, p2, p3);\n }\n\n translate(id: string, p1?: string, p2?: string, p3?: string): string {\n let result: string;\n if (this.localeMessages.hasOwnProperty(id) && this.localeMessages[id]) {\n result = this.localeMessages[id];\n } else if (this.defaultMessages.hasOwnProperty(id) && this.defaultMessages[id]) {\n result = this.defaultMessages[id];\n } else {\n result = '';\n }\n\n if (result !== '') {\n if (p1 != null) {\n result = result.split('__$1__').join(p1);\n }\n if (p2 != null) {\n result = result.split('__$2__').join(p2);\n }\n if (p3 != null) {\n result = result.split('__$3__').join(p3);\n }\n }\n\n return result;\n }\n\n private async loadMessages(locale: string, messagesObj: any): Promise {\n const formattedLocale = locale.replace('-', '_');\n const locales = await this.getLocalesJson(formattedLocale);\n for (const prop in locales) {\n if (!locales.hasOwnProperty(prop)) {\n continue;\n }\n messagesObj[prop] = locales[prop].message;\n\n if (locales[prop].placeholders) {\n for (const placeProp in locales[prop].placeholders) {\n if (!locales[prop].placeholders.hasOwnProperty(placeProp) ||\n !locales[prop].placeholders[placeProp].content) {\n continue;\n }\n\n const replaceToken = '\\\\$' + placeProp.toUpperCase() + '\\\\$';\n let replaceContent = locales[prop].placeholders[placeProp].content;\n if (replaceContent === '$1' || replaceContent === '$2' || replaceContent === '$3') {\n replaceContent = '__$' + replaceContent + '__';\n }\n messagesObj[prop] = messagesObj[prop].replace(new RegExp(replaceToken, 'g'), replaceContent);\n }\n }\n }\n }\n\n}\n","import * as zxcvbn from 'zxcvbn';\n\nimport { EncString } from '../models/domain/encString';\nimport { GeneratedPasswordHistory } from '../models/domain/generatedPasswordHistory';\nimport { PasswordGeneratorPolicyOptions } from '../models/domain/passwordGeneratorPolicyOptions';\nimport { Policy } from '../models/domain/policy';\n\nimport { CryptoService } from '../abstractions/crypto.service';\nimport {\n PasswordGenerationService as PasswordGenerationServiceAbstraction,\n} from '../abstractions/passwordGeneration.service';\nimport { PolicyService } from '../abstractions/policy.service';\nimport { StorageService } from '../abstractions/storage.service';\n\nimport { EEFLongWordList } from '../misc/wordlist';\n\nimport { PolicyType } from '../enums/policyType';\n\nconst DefaultOptions = {\n length: 14,\n ambiguous: false,\n number: true,\n minNumber: 1,\n uppercase: true,\n minUppercase: 0,\n lowercase: true,\n minLowercase: 0,\n special: false,\n minSpecial: 1,\n type: 'password',\n numWords: 3,\n wordSeparator: '-',\n capitalize: false,\n includeNumber: false,\n};\n\nconst Keys = {\n options: 'passwordGenerationOptions',\n history: 'generatedPasswordHistory',\n};\n\nconst MaxPasswordsInHistory = 100;\n\nexport class PasswordGenerationService implements PasswordGenerationServiceAbstraction {\n private optionsCache: any;\n private history: GeneratedPasswordHistory[];\n\n constructor(private cryptoService: CryptoService, private storageService: StorageService,\n private policyService: PolicyService) { }\n\n async generatePassword(options: any): Promise {\n // overload defaults with given options\n const o = Object.assign({}, DefaultOptions, options);\n\n if (o.type === 'passphrase') {\n return this.generatePassphrase(options);\n }\n\n // sanitize\n this.sanitizePasswordLength(o, true);\n\n const minLength: number = o.minUppercase + o.minLowercase + o.minNumber + o.minSpecial;\n if (o.length < minLength) {\n o.length = minLength;\n }\n\n const positions: string[] = [];\n if (o.lowercase && o.minLowercase > 0) {\n for (let i = 0; i < o.minLowercase; i++) {\n positions.push('l');\n }\n }\n if (o.uppercase && o.minUppercase > 0) {\n for (let i = 0; i < o.minUppercase; i++) {\n positions.push('u');\n }\n }\n if (o.number && o.minNumber > 0) {\n for (let i = 0; i < o.minNumber; i++) {\n positions.push('n');\n }\n }\n if (o.special && o.minSpecial > 0) {\n for (let i = 0; i < o.minSpecial; i++) {\n positions.push('s');\n }\n }\n while (positions.length < o.length) {\n positions.push('a');\n }\n\n // shuffle\n await this.shuffleArray(positions);\n\n // build out the char sets\n let allCharSet = '';\n\n let lowercaseCharSet = 'abcdefghijkmnopqrstuvwxyz';\n if (o.ambiguous) {\n lowercaseCharSet += 'l';\n }\n if (o.lowercase) {\n allCharSet += lowercaseCharSet;\n }\n\n let uppercaseCharSet = 'ABCDEFGHJKLMNPQRSTUVWXYZ';\n if (o.ambiguous) {\n uppercaseCharSet += 'IO';\n }\n if (o.uppercase) {\n allCharSet += uppercaseCharSet;\n }\n\n let numberCharSet = '23456789';\n if (o.ambiguous) {\n numberCharSet += '01';\n }\n if (o.number) {\n allCharSet += numberCharSet;\n }\n\n const specialCharSet = '!@#$%^&*';\n if (o.special) {\n allCharSet += specialCharSet;\n }\n\n let password = '';\n for (let i = 0; i < o.length; i++) {\n let positionChars: string;\n switch (positions[i]) {\n case 'l':\n positionChars = lowercaseCharSet;\n break;\n case 'u':\n positionChars = uppercaseCharSet;\n break;\n case 'n':\n positionChars = numberCharSet;\n break;\n case 's':\n positionChars = specialCharSet;\n break;\n case 'a':\n positionChars = allCharSet;\n break;\n default:\n break;\n }\n\n const randomCharIndex = await this.cryptoService.randomNumber(0, positionChars.length - 1);\n password += positionChars.charAt(randomCharIndex);\n }\n\n return password;\n }\n\n async generatePassphrase(options: any): Promise {\n const o = Object.assign({}, DefaultOptions, options);\n\n if (o.numWords == null || o.numWords <= 2) {\n o.numWords = DefaultOptions.numWords;\n }\n if (o.wordSeparator == null || o.wordSeparator.length === 0 || o.wordSeparator.length > 1) {\n o.wordSeparator = ' ';\n }\n if (o.capitalize == null) {\n o.capitalize = false;\n }\n if (o.includeNumber == null) {\n o.includeNumber = false;\n }\n\n const listLength = EEFLongWordList.length - 1;\n const wordList = new Array(o.numWords);\n for (let i = 0; i < o.numWords; i++) {\n const wordIndex = await this.cryptoService.randomNumber(0, listLength);\n if (o.capitalize) {\n wordList[i] = this.capitalize(EEFLongWordList[wordIndex]);\n } else {\n wordList[i] = EEFLongWordList[wordIndex];\n }\n }\n\n if (o.includeNumber) {\n await this.appendRandomNumberToRandomWord(wordList);\n }\n return wordList.join(o.wordSeparator);\n }\n\n async getOptions(): Promise<[any, PasswordGeneratorPolicyOptions]> {\n if (this.optionsCache == null) {\n const options = await this.storageService.get(Keys.options);\n if (options == null) {\n this.optionsCache = DefaultOptions;\n } else {\n this.optionsCache = Object.assign({}, DefaultOptions, options);\n }\n }\n const enforcedOptions = await this.enforcePasswordGeneratorPoliciesOnOptions(this.optionsCache);\n this.optionsCache = enforcedOptions[0];\n return [this.optionsCache, enforcedOptions[1]];\n }\n\n async enforcePasswordGeneratorPoliciesOnOptions(options: any): Promise<[any, PasswordGeneratorPolicyOptions]> {\n let enforcedPolicyOptions = await this.getPasswordGeneratorPolicyOptions();\n if (enforcedPolicyOptions != null) {\n if (options.length < enforcedPolicyOptions.minLength) {\n options.length = enforcedPolicyOptions.minLength;\n }\n\n if (enforcedPolicyOptions.useUppercase) {\n options.uppercase = true;\n }\n\n if (enforcedPolicyOptions.useLowercase) {\n options.lowercase = true;\n }\n\n if (enforcedPolicyOptions.useNumbers) {\n options.number = true;\n }\n\n if (options.minNumber < enforcedPolicyOptions.numberCount) {\n options.minNumber = enforcedPolicyOptions.numberCount;\n }\n\n if (enforcedPolicyOptions.useSpecial) {\n options.special = true;\n }\n\n if (options.minSpecial < enforcedPolicyOptions.specialCount) {\n options.minSpecial = enforcedPolicyOptions.specialCount;\n }\n\n // Must normalize these fields because the receiving call expects all options to pass the current rules\n if (options.minSpecial + options.minNumber > options.length) {\n options.minSpecial = options.length - options.minNumber;\n }\n\n if (options.numWords < enforcedPolicyOptions.minNumberWords) {\n options.numWords = enforcedPolicyOptions.minNumberWords;\n }\n\n if (enforcedPolicyOptions.capitalize) {\n options.capitalize = true;\n }\n\n if (enforcedPolicyOptions.includeNumber) {\n options.includeNumber = true;\n }\n\n // Force default type if password/passphrase selected via policy\n if (enforcedPolicyOptions.defaultType === 'password' ||\n enforcedPolicyOptions.defaultType === 'passphrase') {\n options.type = enforcedPolicyOptions.defaultType;\n }\n } else { // UI layer expects an instantiated object to prevent more explicit null checks\n enforcedPolicyOptions = new PasswordGeneratorPolicyOptions();\n }\n return [options, enforcedPolicyOptions];\n }\n\n async getPasswordGeneratorPolicyOptions(): Promise {\n const policies: Policy[] = this.policyService == null ? null :\n await this.policyService.getAll(PolicyType.PasswordGenerator);\n let enforcedOptions: PasswordGeneratorPolicyOptions = null;\n\n if (policies == null || policies.length === 0) {\n return enforcedOptions;\n }\n\n policies.forEach(currentPolicy => {\n if (!currentPolicy.enabled || currentPolicy.data == null) {\n return;\n }\n\n if (enforcedOptions == null) {\n enforcedOptions = new PasswordGeneratorPolicyOptions();\n }\n\n // Password wins in multi-org collisions\n if (currentPolicy.data.defaultType != null && enforcedOptions.defaultType !== 'password') {\n enforcedOptions.defaultType = currentPolicy.data.defaultType;\n }\n\n if (currentPolicy.data.minLength != null\n && currentPolicy.data.minLength > enforcedOptions.minLength) {\n enforcedOptions.minLength = currentPolicy.data.minLength;\n }\n\n if (currentPolicy.data.useUpper) {\n enforcedOptions.useUppercase = true;\n }\n\n if (currentPolicy.data.useLower) {\n enforcedOptions.useLowercase = true;\n }\n\n if (currentPolicy.data.useNumbers) {\n enforcedOptions.useNumbers = true;\n }\n\n if (currentPolicy.data.minNumbers != null\n && currentPolicy.data.minNumbers > enforcedOptions.numberCount) {\n enforcedOptions.numberCount = currentPolicy.data.minNumbers;\n }\n\n if (currentPolicy.data.useSpecial) {\n enforcedOptions.useSpecial = true;\n }\n\n if (currentPolicy.data.minSpecial != null\n && currentPolicy.data.minSpecial > enforcedOptions.specialCount) {\n enforcedOptions.specialCount = currentPolicy.data.minSpecial;\n }\n\n if (currentPolicy.data.minNumberWords != null\n && currentPolicy.data.minNumberWords > enforcedOptions.minNumberWords) {\n enforcedOptions.minNumberWords = currentPolicy.data.minNumberWords;\n }\n\n if (currentPolicy.data.capitalize) {\n enforcedOptions.capitalize = true;\n }\n\n if (currentPolicy.data.includeNumber) {\n enforcedOptions.includeNumber = true;\n }\n });\n\n return enforcedOptions;\n }\n\n async saveOptions(options: any) {\n await this.storageService.save(Keys.options, options);\n this.optionsCache = options;\n }\n\n async getHistory(): Promise {\n const hasKey = await this.cryptoService.hasKey();\n if (!hasKey) {\n return new Array();\n }\n\n if (!this.history) {\n const encrypted = await this.storageService.get(Keys.history);\n this.history = await this.decryptHistory(encrypted);\n }\n\n return this.history || new Array();\n }\n\n async addHistory(password: string): Promise {\n // Cannot add new history if no key is available\n const hasKey = await this.cryptoService.hasKey();\n if (!hasKey) {\n return;\n }\n\n const currentHistory = await this.getHistory();\n\n // Prevent duplicates\n if (this.matchesPrevious(password, currentHistory)) {\n return;\n }\n\n currentHistory.unshift(new GeneratedPasswordHistory(password, Date.now()));\n\n // Remove old items.\n if (currentHistory.length > MaxPasswordsInHistory) {\n currentHistory.pop();\n }\n\n const newHistory = await this.encryptHistory(currentHistory);\n return await this.storageService.save(Keys.history, newHistory);\n }\n\n async clear(): Promise {\n this.history = [];\n return await this.storageService.remove(Keys.history);\n }\n\n passwordStrength(password: string, userInputs: string[] = null): zxcvbn.ZXCVBNResult {\n if (password == null || password.length === 0) {\n return null;\n }\n let globalUserInputs = ['bitwarden', 'bit', 'warden'];\n if (userInputs != null && userInputs.length > 0) {\n globalUserInputs = globalUserInputs.concat(userInputs);\n }\n // Use a hash set to get rid of any duplicate user inputs\n const finalUserInputs = Array.from(new Set(globalUserInputs));\n const result = zxcvbn(password, finalUserInputs);\n return result;\n }\n\n normalizeOptions(options: any, enforcedPolicyOptions: PasswordGeneratorPolicyOptions) {\n options.minLowercase = 0;\n options.minUppercase = 0;\n\n if (!options.length || options.length < 5) {\n options.length = 5;\n } else if (options.length > 128) {\n options.length = 128;\n }\n\n if (options.length < enforcedPolicyOptions.minLength) {\n options.length = enforcedPolicyOptions.minLength;\n }\n\n if (!options.minNumber) {\n options.minNumber = 0;\n } else if (options.minNumber > options.length) {\n options.minNumber = options.length;\n } else if (options.minNumber > 9) {\n options.minNumber = 9;\n }\n\n if (options.minNumber < enforcedPolicyOptions.numberCount) {\n options.minNumber = enforcedPolicyOptions.numberCount;\n }\n\n if (!options.minSpecial) {\n options.minSpecial = 0;\n } else if (options.minSpecial > options.length) {\n options.minSpecial = options.length;\n } else if (options.minSpecial > 9) {\n options.minSpecial = 9;\n }\n\n if (options.minSpecial < enforcedPolicyOptions.specialCount) {\n options.minSpecial = enforcedPolicyOptions.specialCount;\n }\n\n if (options.minSpecial + options.minNumber > options.length) {\n options.minSpecial = options.length - options.minNumber;\n }\n\n if (options.numWords == null || options.length < 3) {\n options.numWords = 3;\n } else if (options.numWords > 20) {\n options.numWords = 20;\n }\n\n if (options.numWords < enforcedPolicyOptions.minNumberWords) {\n options.numWords = enforcedPolicyOptions.minNumberWords;\n }\n\n if (options.wordSeparator != null && options.wordSeparator.length > 1) {\n options.wordSeparator = options.wordSeparator[0];\n }\n\n this.sanitizePasswordLength(options, false);\n }\n\n private capitalize(str: string) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n }\n\n private async appendRandomNumberToRandomWord(wordList: string[]) {\n if (wordList == null || wordList.length <= 0) {\n return;\n }\n const index = await this.cryptoService.randomNumber(0, wordList.length - 1);\n const num = await this.cryptoService.randomNumber(0, 9);\n wordList[index] = wordList[index] + num;\n }\n\n private async encryptHistory(history: GeneratedPasswordHistory[]): Promise {\n if (history == null || history.length === 0) {\n return Promise.resolve([]);\n }\n\n const promises = history.map(async item => {\n const encrypted = await this.cryptoService.encrypt(item.password);\n return new GeneratedPasswordHistory(encrypted.encryptedString, item.date);\n });\n\n return await Promise.all(promises);\n }\n\n private async decryptHistory(history: GeneratedPasswordHistory[]): Promise {\n if (history == null || history.length === 0) {\n return Promise.resolve([]);\n }\n\n const promises = history.map(async item => {\n const decrypted = await this.cryptoService.decryptToUtf8(new EncString(item.password));\n return new GeneratedPasswordHistory(decrypted, item.date);\n });\n\n return await Promise.all(promises);\n }\n\n private matchesPrevious(password: string, history: GeneratedPasswordHistory[]): boolean {\n if (history == null || history.length === 0) {\n return false;\n }\n\n return history[history.length - 1].password === password;\n }\n\n // ref: https://stackoverflow.com/a/12646864/1090359\n private async shuffleArray(array: string[]) {\n for (let i = array.length - 1; i > 0; i--) {\n const j = await this.cryptoService.randomNumber(0, i);\n [array[i], array[j]] = [array[j], array[i]];\n }\n }\n\n private sanitizePasswordLength(options: any, forGeneration: boolean) {\n let minUppercaseCalc = 0;\n let minLowercaseCalc = 0;\n let minNumberCalc: number = options.minNumber;\n let minSpecialCalc: number = options.minSpecial;\n\n if (options.uppercase && options.minUppercase <= 0) {\n minUppercaseCalc = 1;\n } else if (!options.uppercase) {\n minUppercaseCalc = 0;\n }\n\n if (options.lowercase && options.minLowercase <= 0) {\n minLowercaseCalc = 1;\n } else if (!options.lowercase) {\n minLowercaseCalc = 0;\n }\n\n if (options.number && options.minNumber <= 0) {\n minNumberCalc = 1;\n } else if (!options.number) {\n minNumberCalc = 0;\n }\n\n if (options.special && options.minSpecial <= 0) {\n minSpecialCalc = 1;\n } else if (!options.special) {\n minSpecialCalc = 0;\n }\n\n // This should never happen but is a final safety net\n if (!options.length || options.length < 1) {\n options.length = 10;\n }\n\n const minLength: number = minUppercaseCalc + minLowercaseCalc + minNumberCalc + minSpecialCalc;\n // Normalize and Generation both require this modification\n if (options.length < minLength) {\n options.length = minLength;\n }\n\n // Apply other changes if the options object passed in is for generation\n if (forGeneration) {\n options.minUppercase = minUppercaseCalc;\n options.minLowercase = minLowercaseCalc;\n options.minNumber = minNumberCalc;\n options.minSpecial = minSpecialCalc;\n }\n }\n}\n","import { SettingsService as SettingsServiceAbstraction } from '../abstractions/settings.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { UserService } from '../abstractions/user.service';\n\nconst Keys = {\n settingsPrefix: 'settings_',\n equivalentDomains: 'equivalentDomains',\n};\n\nexport class SettingsService implements SettingsServiceAbstraction {\n private settingsCache: any;\n\n constructor(private userService: UserService, private storageService: StorageService) {\n }\n\n clearCache(): void {\n this.settingsCache = null;\n }\n\n getEquivalentDomains(): Promise {\n return this.getSettingsKey(Keys.equivalentDomains);\n }\n\n async setEquivalentDomains(equivalentDomains: string[][]): Promise {\n await this.setSettingsKey(Keys.equivalentDomains, equivalentDomains);\n }\n\n async clear(userId: string): Promise {\n await this.storageService.remove(Keys.settingsPrefix + userId);\n this.clearCache();\n }\n\n // Helpers\n\n private async getSettings(): Promise {\n if (this.settingsCache == null) {\n const userId = await this.userService.getUserId();\n this.settingsCache = this.storageService.get(Keys.settingsPrefix + userId);\n }\n return this.settingsCache;\n }\n\n private async getSettingsKey(key: string): Promise {\n const settings = await this.getSettings();\n if (settings != null && settings[key]) {\n return settings[key];\n }\n return null;\n }\n\n private async setSettingsKey(key: string, value: any): Promise {\n const userId = await this.userService.getUserId();\n let settings = await this.getSettings();\n if (!settings) {\n settings = {};\n }\n\n settings[key] = value;\n await this.storageService.save(Keys.settingsPrefix + userId, settings);\n this.settingsCache = settings;\n }\n}\n","import { StateService as StateServiceAbstraction } from '../abstractions/state.service';\n\nexport class StateService implements StateServiceAbstraction {\n private state: any = {};\n\n get(key: string): Promise {\n if (this.state.hasOwnProperty(key)) {\n return Promise.resolve(this.state[key]);\n }\n return Promise.resolve(null);\n }\n\n save(key: string, obj: any): Promise {\n this.state[key] = obj;\n return Promise.resolve();\n }\n\n remove(key: string): Promise {\n delete this.state[key];\n return Promise.resolve();\n }\n\n purge(): Promise {\n this.state = {};\n return Promise.resolve();\n }\n}\n","import { ApiService } from '../abstractions/api.service';\nimport { CipherService } from '../abstractions/cipher.service';\nimport { CollectionService } from '../abstractions/collection.service';\nimport { CryptoService } from '../abstractions/crypto.service';\nimport { FolderService } from '../abstractions/folder.service';\nimport { MessagingService } from '../abstractions/messaging.service';\nimport { PolicyService } from '../abstractions/policy.service';\nimport { SendService } from '../abstractions/send.service';\nimport { SettingsService } from '../abstractions/settings.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { SyncService as SyncServiceAbstraction } from '../abstractions/sync.service';\nimport { UserService } from '../abstractions/user.service';\n\nimport { CipherData } from '../models/data/cipherData';\nimport { CollectionData } from '../models/data/collectionData';\nimport { FolderData } from '../models/data/folderData';\nimport { OrganizationData } from '../models/data/organizationData';\nimport { PolicyData } from '../models/data/policyData';\nimport { SendData } from '../models/data/sendData';\n\nimport { CipherResponse } from '../models/response/cipherResponse';\nimport { CollectionDetailsResponse } from '../models/response/collectionResponse';\nimport { DomainsResponse } from '../models/response/domainsResponse';\nimport { FolderResponse } from '../models/response/folderResponse';\nimport {\n SyncCipherNotification,\n SyncFolderNotification,\n SyncSendNotification,\n} from '../models/response/notificationResponse';\nimport { PolicyResponse } from '../models/response/policyResponse';\nimport { ProfileResponse } from '../models/response/profileResponse';\nimport { SendResponse } from '../models/response/sendResponse';\n\nconst Keys = {\n lastSyncPrefix: 'lastSync_',\n};\n\nexport class SyncService implements SyncServiceAbstraction {\n syncInProgress: boolean = false;\n\n constructor(private userService: UserService, private apiService: ApiService,\n private settingsService: SettingsService, private folderService: FolderService,\n private cipherService: CipherService, private cryptoService: CryptoService,\n private collectionService: CollectionService, private storageService: StorageService,\n private messagingService: MessagingService, private policyService: PolicyService,\n private sendService: SendService, private logoutCallback: (expired: boolean) => Promise) {\n }\n\n async getLastSync(): Promise {\n const userId = await this.userService.getUserId();\n if (userId == null) {\n return null;\n }\n\n const lastSync = await this.storageService.get(Keys.lastSyncPrefix + userId);\n if (lastSync) {\n return new Date(lastSync);\n }\n\n return null;\n }\n\n async setLastSync(date: Date): Promise {\n const userId = await this.userService.getUserId();\n if (userId == null) {\n return;\n }\n\n await this.storageService.save(Keys.lastSyncPrefix + userId, date.toJSON());\n }\n\n async fullSync(forceSync: boolean, allowThrowOnError = false): Promise {\n this.syncStarted();\n const isAuthenticated = await this.userService.isAuthenticated();\n if (!isAuthenticated) {\n return this.syncCompleted(false);\n }\n\n const now = new Date();\n let needsSync = false;\n try {\n needsSync = await this.needsSyncing(forceSync);\n } catch (e) {\n if (allowThrowOnError) {\n throw e;\n }\n }\n\n if (!needsSync) {\n await this.setLastSync(now);\n return this.syncCompleted(false);\n }\n\n const userId = await this.userService.getUserId();\n try {\n const response = await this.apiService.getSync();\n\n await this.syncProfile(response.profile);\n await this.syncFolders(userId, response.folders);\n await this.syncCollections(response.collections);\n await this.syncCiphers(userId, response.ciphers);\n await this.syncSends(userId, response.sends);\n await this.syncSettings(userId, response.domains);\n await this.syncPolicies(response.policies);\n\n await this.setLastSync(now);\n return this.syncCompleted(true);\n } catch (e) {\n if (allowThrowOnError) {\n throw e;\n } else {\n return this.syncCompleted(false);\n }\n }\n }\n\n async syncUpsertFolder(notification: SyncFolderNotification, isEdit: boolean): Promise {\n this.syncStarted();\n if (await this.userService.isAuthenticated()) {\n try {\n const localFolder = await this.folderService.get(notification.id);\n if ((!isEdit && localFolder == null) ||\n (isEdit && localFolder != null && localFolder.revisionDate < notification.revisionDate)) {\n const remoteFolder = await this.apiService.getFolder(notification.id);\n if (remoteFolder != null) {\n const userId = await this.userService.getUserId();\n await this.folderService.upsert(new FolderData(remoteFolder, userId));\n this.messagingService.send('syncedUpsertedFolder', { folderId: notification.id });\n return this.syncCompleted(true);\n }\n }\n } catch { }\n }\n return this.syncCompleted(false);\n }\n\n async syncDeleteFolder(notification: SyncFolderNotification): Promise {\n this.syncStarted();\n if (await this.userService.isAuthenticated()) {\n await this.folderService.delete(notification.id);\n this.messagingService.send('syncedDeletedFolder', { folderId: notification.id });\n this.syncCompleted(true);\n return true;\n }\n return this.syncCompleted(false);\n }\n\n async syncUpsertCipher(notification: SyncCipherNotification, isEdit: boolean): Promise {\n this.syncStarted();\n if (await this.userService.isAuthenticated()) {\n try {\n let shouldUpdate = true;\n const localCipher = await this.cipherService.get(notification.id);\n if (localCipher != null && localCipher.revisionDate >= notification.revisionDate) {\n shouldUpdate = false;\n }\n\n let checkCollections = false;\n if (shouldUpdate) {\n if (isEdit) {\n shouldUpdate = localCipher != null;\n checkCollections = true;\n } else {\n if (notification.collectionIds == null || notification.organizationId == null) {\n shouldUpdate = localCipher == null;\n } else {\n shouldUpdate = false;\n checkCollections = true;\n }\n }\n }\n\n if (!shouldUpdate && checkCollections && notification.organizationId != null &&\n notification.collectionIds != null && notification.collectionIds.length > 0) {\n const collections = await this.collectionService.getAll();\n if (collections != null) {\n for (let i = 0; i < collections.length; i++) {\n if (notification.collectionIds.indexOf(collections[i].id) > -1) {\n shouldUpdate = true;\n break;\n }\n }\n }\n }\n\n if (shouldUpdate) {\n const remoteCipher = await this.apiService.getCipher(notification.id);\n if (remoteCipher != null) {\n const userId = await this.userService.getUserId();\n await this.cipherService.upsert(new CipherData(remoteCipher, userId));\n this.messagingService.send('syncedUpsertedCipher', { cipherId: notification.id });\n return this.syncCompleted(true);\n }\n }\n } catch (e) {\n if (e != null && e.statusCode === 404 && isEdit) {\n await this.cipherService.delete(notification.id);\n this.messagingService.send('syncedDeletedCipher', { cipherId: notification.id });\n return this.syncCompleted(true);\n }\n }\n }\n return this.syncCompleted(false);\n }\n\n async syncDeleteCipher(notification: SyncCipherNotification): Promise {\n this.syncStarted();\n if (await this.userService.isAuthenticated()) {\n await this.cipherService.delete(notification.id);\n this.messagingService.send('syncedDeletedCipher', { cipherId: notification.id });\n return this.syncCompleted(true);\n }\n return this.syncCompleted(false);\n }\n\n async syncUpsertSend(notification: SyncSendNotification, isEdit: boolean): Promise {\n this.syncStarted();\n if (await this.userService.isAuthenticated()) {\n try {\n const localSend = await this.sendService.get(notification.id);\n if ((!isEdit && localSend == null) ||\n (isEdit && localSend != null && localSend.revisionDate < notification.revisionDate)) {\n const remoteSend = await this.apiService.getSend(notification.id);\n if (remoteSend != null) {\n const userId = await this.userService.getUserId();\n await this.sendService.upsert(new SendData(remoteSend, userId));\n this.messagingService.send('syncedUpsertedSend', { sendId: notification.id });\n return this.syncCompleted(true);\n }\n }\n } catch { }\n }\n return this.syncCompleted(false);\n }\n\n async syncDeleteSend(notification: SyncSendNotification): Promise {\n this.syncStarted();\n if (await this.userService.isAuthenticated()) {\n await this.sendService.delete(notification.id);\n this.messagingService.send('syncedDeletedSend', { sendId: notification.id });\n this.syncCompleted(true);\n return true;\n }\n return this.syncCompleted(false);\n }\n\n // Helpers\n\n private syncStarted() {\n this.syncInProgress = true;\n this.messagingService.send('syncStarted');\n }\n\n private syncCompleted(successfully: boolean): boolean {\n this.syncInProgress = false;\n this.messagingService.send('syncCompleted', { successfully: successfully });\n return successfully;\n }\n\n private async needsSyncing(forceSync: boolean) {\n if (forceSync) {\n return true;\n }\n\n const lastSync = await this.getLastSync();\n if (lastSync == null || lastSync.getTime() === 0) {\n return true;\n }\n\n const response = await this.apiService.getAccountRevisionDate();\n if (new Date(response) <= lastSync) {\n return false;\n }\n return true;\n }\n\n private async syncProfile(response: ProfileResponse) {\n const stamp = await this.userService.getSecurityStamp();\n if (stamp != null && stamp !== response.securityStamp) {\n if (this.logoutCallback != null) {\n await this.logoutCallback(true);\n }\n\n throw new Error('Stamp has changed');\n }\n\n await this.cryptoService.setEncKey(response.key);\n await this.cryptoService.setEncPrivateKey(response.privateKey);\n await this.cryptoService.setOrgKeys(response.organizations);\n await this.userService.setSecurityStamp(response.securityStamp);\n await this.userService.setEmailVerified(response.emailVerified);\n\n const organizations: { [id: string]: OrganizationData; } = {};\n response.organizations.forEach(o => {\n organizations[o.id] = new OrganizationData(o);\n });\n return await this.userService.replaceOrganizations(organizations);\n }\n\n private async syncFolders(userId: string, response: FolderResponse[]) {\n const folders: { [id: string]: FolderData; } = {};\n response.forEach(f => {\n folders[f.id] = new FolderData(f, userId);\n });\n return await this.folderService.replace(folders);\n }\n\n private async syncCollections(response: CollectionDetailsResponse[]) {\n const collections: { [id: string]: CollectionData; } = {};\n response.forEach(c => {\n collections[c.id] = new CollectionData(c);\n });\n return await this.collectionService.replace(collections);\n }\n\n private async syncCiphers(userId: string, response: CipherResponse[]) {\n const ciphers: { [id: string]: CipherData; } = {};\n response.forEach(c => {\n ciphers[c.id] = new CipherData(c, userId);\n });\n return await this.cipherService.replace(ciphers);\n }\n\n private async syncSends(userId: string, response: SendResponse[]) {\n const sends: { [id: string]: SendData; } = {};\n response.forEach(s => {\n sends[s.id] = new SendData(s, userId);\n });\n return await this.sendService.replace(sends);\n }\n\n private async syncSettings(userId: string, response: DomainsResponse) {\n let eqDomains: string[][] = [];\n if (response != null && response.equivalentDomains != null) {\n eqDomains = eqDomains.concat(response.equivalentDomains);\n }\n\n if (response != null && response.globalEquivalentDomains != null) {\n response.globalEquivalentDomains.forEach(global => {\n if (global.domains.length > 0) {\n eqDomains.push(global.domains);\n }\n });\n }\n\n return this.settingsService.setEquivalentDomains(eqDomains);\n }\n\n private async syncPolicies(response: PolicyResponse[]) {\n const policies: { [id: string]: PolicyData; } = {};\n if (response != null) {\n response.forEach(p => {\n policies[p.id] = new PolicyData(p);\n });\n }\n return await this.policyService.replace(policies);\n }\n}\n","import { SendType } from '../../enums/sendType';\n\nimport { SendFileData } from './sendFileData';\nimport { SendTextData } from './sendTextData';\n\nimport { SendResponse } from '../response/sendResponse';\n\nexport class SendData {\n id: string;\n accessId: string;\n userId: string;\n type: SendType;\n name: string;\n notes: string;\n file: SendFileData;\n text: SendTextData;\n key: string;\n maxAccessCount?: number;\n accessCount: number;\n revisionDate: string;\n expirationDate: string;\n deletionDate: string;\n password: string;\n disabled: boolean;\n hideEmail: boolean;\n\n constructor(response?: SendResponse, userId?: string) {\n if (response == null) {\n return;\n }\n\n this.id = response.id;\n this.accessId = response.accessId;\n this.userId = userId;\n this.type = response.type;\n this.name = response.name;\n this.notes = response.notes;\n this.key = response.key;\n this.maxAccessCount = response.maxAccessCount;\n this.accessCount = response.accessCount;\n this.revisionDate = response.revisionDate;\n this.expirationDate = response.expirationDate;\n this.deletionDate = response.deletionDate;\n this.password = response.password;\n this.disabled = response.disable;\n this.hideEmail = response.hideEmail;\n\n switch (this.type) {\n case SendType.Text:\n this.text = new SendTextData(response.text);\n break;\n case SendType.File:\n this.file = new SendFileData(response.file);\n break;\n default:\n break;\n }\n }\n}\n","import { ConstantsService } from './constants.service';\n\nimport { StorageService } from '../abstractions/storage.service';\nimport { TokenService as TokenServiceAbstraction } from '../abstractions/token.service';\n\nimport { Utils } from '../misc/utils';\n\nconst Keys = {\n accessToken: 'accessToken',\n refreshToken: 'refreshToken',\n twoFactorTokenPrefix: 'twoFactorToken_',\n};\n\nexport class TokenService implements TokenServiceAbstraction {\n token: string;\n decodedToken: any;\n refreshToken: string;\n\n constructor(private storageService: StorageService) {\n }\n\n setTokens(accessToken: string, refreshToken: string): Promise {\n return Promise.all([\n this.setToken(accessToken),\n this.setRefreshToken(refreshToken),\n ]);\n }\n\n async setToken(token: string): Promise {\n this.token = token;\n this.decodedToken = null;\n\n if (await this.skipTokenStorage()) {\n // if we have a vault timeout and the action is log out, don't store token\n return;\n }\n\n return this.storageService.save(Keys.accessToken, token);\n }\n\n async getToken(): Promise {\n if (this.token != null) {\n return this.token;\n }\n\n this.token = await this.storageService.get(Keys.accessToken);\n return this.token;\n }\n\n async setRefreshToken(refreshToken: string): Promise {\n this.refreshToken = refreshToken;\n\n if (await this.skipTokenStorage()) {\n // if we have a vault timeout and the action is log out, don't store token\n return;\n }\n\n return this.storageService.save(Keys.refreshToken, refreshToken);\n }\n\n async getRefreshToken(): Promise {\n if (this.refreshToken != null) {\n return this.refreshToken;\n }\n\n this.refreshToken = await this.storageService.get(Keys.refreshToken);\n return this.refreshToken;\n }\n\n async toggleTokens(): Promise {\n const token = await this.getToken();\n const refreshToken = await this.getRefreshToken();\n const timeout = await this.storageService.get(ConstantsService.vaultTimeoutKey);\n const action = await this.storageService.get(ConstantsService.vaultTimeoutActionKey);\n if ((timeout != null || timeout === 0) && action === 'logOut') {\n // if we have a vault timeout and the action is log out, reset tokens\n await this.clearToken();\n this.token = token;\n this.refreshToken = refreshToken;\n return;\n }\n\n await this.setToken(token);\n await this.setRefreshToken(refreshToken);\n }\n\n setTwoFactorToken(token: string, email: string): Promise {\n return this.storageService.save(Keys.twoFactorTokenPrefix + email, token);\n }\n\n getTwoFactorToken(email: string): Promise {\n return this.storageService.get(Keys.twoFactorTokenPrefix + email);\n }\n\n clearTwoFactorToken(email: string): Promise {\n return this.storageService.remove(Keys.twoFactorTokenPrefix + email);\n }\n\n clearToken(): Promise {\n this.token = null;\n this.decodedToken = null;\n this.refreshToken = null;\n\n return Promise.all([\n this.storageService.remove(Keys.accessToken),\n this.storageService.remove(Keys.refreshToken),\n ]);\n }\n\n // jwthelper methods\n // ref https://github.com/auth0/angular-jwt/blob/master/src/angularJwt/services/jwt.js\n\n decodeToken(): any {\n if (this.decodedToken) {\n return this.decodedToken;\n }\n\n if (this.token == null) {\n throw new Error('Token not found.');\n }\n\n const parts = this.token.split('.');\n if (parts.length !== 3) {\n throw new Error('JWT must have 3 parts');\n }\n\n const decoded = Utils.fromUrlB64ToUtf8(parts[1]);\n if (decoded == null) {\n throw new Error('Cannot decode the token');\n }\n\n this.decodedToken = JSON.parse(decoded);\n return this.decodedToken;\n }\n\n getTokenExpirationDate(): Date {\n const decoded = this.decodeToken();\n if (typeof decoded.exp === 'undefined') {\n return null;\n }\n\n const d = new Date(0); // The 0 here is the key, which sets the date to the epoch\n d.setUTCSeconds(decoded.exp);\n return d;\n }\n\n tokenSecondsRemaining(offsetSeconds: number = 0): number {\n const d = this.getTokenExpirationDate();\n if (d == null) {\n return 0;\n }\n\n const msRemaining = d.valueOf() - (new Date().valueOf() + (offsetSeconds * 1000));\n return Math.round(msRemaining / 1000);\n }\n\n tokenNeedsRefresh(minutes: number = 5): boolean {\n const sRemaining = this.tokenSecondsRemaining();\n return sRemaining < (60 * minutes);\n }\n\n getUserId(): string {\n const decoded = this.decodeToken();\n if (typeof decoded.sub === 'undefined') {\n throw new Error('No user id found');\n }\n\n return decoded.sub as string;\n }\n\n getEmail(): string {\n const decoded = this.decodeToken();\n if (typeof decoded.email === 'undefined') {\n throw new Error('No email found');\n }\n\n return decoded.email as string;\n }\n\n getEmailVerified(): boolean {\n const decoded = this.decodeToken();\n if (typeof decoded.email_verified === 'undefined') {\n throw new Error('No email verification found');\n }\n\n return decoded.email_verified as boolean;\n }\n\n getName(): string {\n const decoded = this.decodeToken();\n if (typeof decoded.name === 'undefined') {\n return null;\n }\n\n return decoded.name as string;\n }\n\n getPremium(): boolean {\n const decoded = this.decodeToken();\n if (typeof decoded.premium === 'undefined') {\n return false;\n }\n\n return decoded.premium as boolean;\n }\n\n getIssuer(): string {\n const decoded = this.decodeToken();\n if (typeof decoded.iss === 'undefined') {\n throw new Error('No issuer found');\n }\n\n return decoded.iss as string;\n }\n\n private async skipTokenStorage(): Promise {\n const timeout = await this.storageService.get(ConstantsService.vaultTimeoutKey);\n const action = await this.storageService.get(ConstantsService.vaultTimeoutActionKey);\n return timeout != null && action === 'logOut';\n }\n}\n","import { ConstantsService } from './constants.service';\n\nimport { CryptoFunctionService } from '../abstractions/cryptoFunction.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { TotpService as TotpServiceAbstraction } from '../abstractions/totp.service';\n\nimport { Utils } from '../misc/utils';\n\nconst B32Chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567';\nconst SteamChars = '23456789BCDFGHJKMNPQRTVWXY';\n\nexport class TotpService implements TotpServiceAbstraction {\n constructor(private storageService: StorageService, private cryptoFunctionService: CryptoFunctionService) { }\n\n async getCode(key: string): Promise {\n if (key == null) {\n return null;\n }\n let period = 30;\n let alg: 'sha1' | 'sha256' | 'sha512' = 'sha1';\n let digits = 6;\n let keyB32 = key;\n const isOtpAuth = key.toLowerCase().indexOf('otpauth://') === 0;\n const isSteamAuth = !isOtpAuth && key.toLowerCase().indexOf('steam://') === 0;\n if (isOtpAuth) {\n const params = Utils.getQueryParams(key);\n if (params.has('digits') && params.get('digits') != null) {\n try {\n const digitParams = parseInt(params.get('digits').trim(), null);\n if (digitParams > 10) {\n digits = 10;\n } else if (digitParams > 0) {\n digits = digitParams;\n }\n } catch { }\n }\n if (params.has('period') && params.get('period') != null) {\n try {\n const periodParam = parseInt(params.get('period').trim(), null);\n if (periodParam > 0) {\n period = periodParam;\n }\n } catch { }\n }\n if (params.has('secret') && params.get('secret') != null) {\n keyB32 = params.get('secret');\n }\n if (params.has('algorithm') && params.get('algorithm') != null) {\n const algParam = params.get('algorithm').toLowerCase();\n if (algParam === 'sha1' || algParam === 'sha256' || algParam === 'sha512') {\n alg = algParam;\n }\n }\n } else if (isSteamAuth) {\n keyB32 = key.substr('steam://'.length);\n digits = 5;\n }\n\n const epoch = Math.round(new Date().getTime() / 1000.0);\n const timeHex = this.leftPad(this.decToHex(Math.floor(epoch / period)), 16, '0');\n const timeBytes = Utils.fromHexToArray(timeHex);\n const keyBytes = this.b32ToBytes(keyB32);\n\n if (!keyBytes.length || !timeBytes.length) {\n return null;\n }\n\n const hash = await this.sign(keyBytes, timeBytes, alg);\n if (hash.length === 0) {\n return null;\n }\n\n /* tslint:disable */\n const offset = (hash[hash.length - 1] & 0xf);\n const binary = ((hash[offset] & 0x7f) << 24) | ((hash[offset + 1] & 0xff) << 16) |\n ((hash[offset + 2] & 0xff) << 8) | (hash[offset + 3] & 0xff);\n /* tslint:enable */\n\n let otp = '';\n if (isSteamAuth) {\n // tslint:disable-next-line\n let fullCode = binary & 0x7fffffff;\n for (let i = 0; i < digits; i++) {\n otp += SteamChars[fullCode % SteamChars.length];\n fullCode = Math.trunc(fullCode / SteamChars.length);\n }\n } else {\n otp = (binary % Math.pow(10, digits)).toString();\n otp = this.leftPad(otp, digits, '0');\n }\n\n return otp;\n }\n\n getTimeInterval(key: string): number {\n let period = 30;\n if (key != null && key.toLowerCase().indexOf('otpauth://') === 0) {\n const params = Utils.getQueryParams(key);\n if (params.has('period') && params.get('period') != null) {\n try {\n period = parseInt(params.get('period').trim(), null);\n } catch { }\n }\n }\n return period;\n }\n\n async isAutoCopyEnabled(): Promise {\n return !(await this.storageService.get(ConstantsService.disableAutoTotpCopyKey));\n }\n\n // Helpers\n\n private leftPad(s: string, l: number, p: string): string {\n if (l + 1 >= s.length) {\n s = Array(l + 1 - s.length).join(p) + s;\n }\n return s;\n }\n\n private decToHex(d: number): string {\n return (d < 15.5 ? '0' : '') + Math.round(d).toString(16);\n }\n\n private b32ToHex(s: string): string {\n s = s.toUpperCase();\n let cleanedInput = '';\n\n for (let i = 0; i < s.length; i++) {\n if (B32Chars.indexOf(s[i]) < 0) {\n continue;\n }\n\n cleanedInput += s[i];\n }\n s = cleanedInput;\n\n let bits = '';\n let hex = '';\n for (let i = 0; i < s.length; i++) {\n const byteIndex = B32Chars.indexOf(s.charAt(i));\n if (byteIndex < 0) {\n continue;\n }\n bits += this.leftPad(byteIndex.toString(2), 5, '0');\n }\n for (let i = 0; i + 4 <= bits.length; i += 4) {\n const chunk = bits.substr(i, 4);\n hex = hex + parseInt(chunk, 2).toString(16);\n }\n return hex;\n }\n\n private b32ToBytes(s: string): Uint8Array {\n return Utils.fromHexToArray(this.b32ToHex(s));\n }\n\n private async sign(keyBytes: Uint8Array, timeBytes: Uint8Array, alg: 'sha1' | 'sha256' | 'sha512') {\n const signature = await this.cryptoFunctionService.hmac(timeBytes.buffer, keyBytes.buffer, alg);\n return new Uint8Array(signature);\n }\n}\n","import { StorageService } from '../abstractions/storage.service';\nimport { TokenService } from '../abstractions/token.service';\nimport { UserService as UserServiceAbstraction } from '../abstractions/user.service';\n\nimport { OrganizationData } from '../models/data/organizationData';\nimport { Organization } from '../models/domain/organization';\n\nimport { KdfType } from '../enums/kdfType';\n\nconst Keys = {\n userId: 'userId',\n userEmail: 'userEmail',\n stamp: 'securityStamp',\n kdf: 'kdf',\n kdfIterations: 'kdfIterations',\n organizationsPrefix: 'organizations_',\n emailVerified: 'emailVerified',\n};\n\nexport class UserService implements UserServiceAbstraction {\n private userId: string;\n private email: string;\n private stamp: string;\n private kdf: KdfType;\n private kdfIterations: number;\n private emailVerified: boolean;\n\n constructor(private tokenService: TokenService, private storageService: StorageService) { }\n\n setInformation(userId: string, email: string, kdf: KdfType, kdfIterations: number): Promise {\n this.email = email;\n this.userId = userId;\n this.kdf = kdf;\n this.kdfIterations = kdfIterations;\n\n return Promise.all([\n this.storageService.save(Keys.userEmail, email),\n this.storageService.save(Keys.userId, userId),\n this.storageService.save(Keys.kdf, kdf),\n this.storageService.save(Keys.kdfIterations, kdfIterations),\n ]);\n }\n\n setSecurityStamp(stamp: string): Promise {\n this.stamp = stamp;\n return this.storageService.save(Keys.stamp, stamp);\n }\n\n setEmailVerified(emailVerified: boolean) {\n this.emailVerified = emailVerified;\n return this.storageService.save(Keys.emailVerified, emailVerified);\n }\n\n async getUserId(): Promise {\n if (this.userId == null) {\n this.userId = await this.storageService.get(Keys.userId);\n }\n return this.userId;\n }\n\n async getEmail(): Promise {\n if (this.email == null) {\n this.email = await this.storageService.get(Keys.userEmail);\n }\n return this.email;\n }\n\n async getSecurityStamp(): Promise {\n if (this.stamp == null) {\n this.stamp = await this.storageService.get(Keys.stamp);\n }\n return this.stamp;\n }\n\n async getKdf(): Promise {\n if (this.kdf == null) {\n this.kdf = await this.storageService.get(Keys.kdf);\n }\n return this.kdf;\n }\n\n async getKdfIterations(): Promise {\n if (this.kdfIterations == null) {\n this.kdfIterations = await this.storageService.get(Keys.kdfIterations);\n }\n return this.kdfIterations;\n }\n\n async getEmailVerified(): Promise {\n if (this.emailVerified == null) {\n this.emailVerified = await this.storageService.get(Keys.emailVerified);\n }\n return this.emailVerified;\n }\n\n async clear(): Promise {\n const userId = await this.getUserId();\n\n await Promise.all([\n this.storageService.remove(Keys.userId),\n this.storageService.remove(Keys.userEmail),\n this.storageService.remove(Keys.stamp),\n this.storageService.remove(Keys.kdf),\n this.storageService.remove(Keys.kdfIterations),\n this.clearOrganizations(userId),\n ]);\n\n this.userId = this.email = this.stamp = null;\n this.kdf = null;\n this.kdfIterations = null;\n }\n\n async isAuthenticated(): Promise {\n const token = await this.tokenService.getToken();\n if (token == null) {\n return false;\n }\n\n const userId = await this.getUserId();\n return userId != null;\n }\n\n async canAccessPremium(): Promise {\n const authed = await this.isAuthenticated();\n if (!authed) {\n return false;\n }\n\n const tokenPremium = this.tokenService.getPremium();\n if (tokenPremium) {\n return true;\n }\n\n const orgs = await this.getAllOrganizations();\n for (let i = 0; i < orgs.length; i++) {\n if (orgs[i].usersGetPremium && orgs[i].enabled) {\n return true;\n }\n }\n return false;\n }\n\n async getOrganization(id: string): Promise {\n const userId = await this.getUserId();\n const organizations = await this.storageService.get<{ [id: string]: OrganizationData; }>(\n Keys.organizationsPrefix + userId);\n if (organizations == null || !organizations.hasOwnProperty(id)) {\n return null;\n }\n\n return new Organization(organizations[id]);\n }\n\n async getAllOrganizations(): Promise {\n const userId = await this.getUserId();\n const organizations = await this.storageService.get<{ [id: string]: OrganizationData; }>(\n Keys.organizationsPrefix + userId);\n const response: Organization[] = [];\n for (const id in organizations) {\n if (organizations.hasOwnProperty(id)) {\n response.push(new Organization(organizations[id]));\n }\n }\n return response;\n }\n\n async replaceOrganizations(organizations: { [id: string]: OrganizationData; }): Promise {\n const userId = await this.getUserId();\n await this.storageService.save(Keys.organizationsPrefix + userId, organizations);\n }\n\n async clearOrganizations(userId: string): Promise {\n await this.storageService.remove(Keys.organizationsPrefix + userId);\n }\n}\n","import { ConstantsService } from './constants.service';\n\nimport { CipherService } from '../abstractions/cipher.service';\nimport { CollectionService } from '../abstractions/collection.service';\nimport { CryptoService } from '../abstractions/crypto.service';\nimport { FolderService } from '../abstractions/folder.service';\nimport { MessagingService } from '../abstractions/messaging.service';\nimport { PlatformUtilsService } from '../abstractions/platformUtils.service';\nimport { SearchService } from '../abstractions/search.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { TokenService } from '../abstractions/token.service';\nimport { UserService } from '../abstractions/user.service';\nimport { VaultTimeoutService as VaultTimeoutServiceAbstraction } from '../abstractions/vaultTimeout.service';\n\nimport { EncString } from '../models/domain/encString';\n\nexport class VaultTimeoutService implements VaultTimeoutServiceAbstraction {\n pinProtectedKey: EncString = null;\n biometricLocked: boolean = true;\n\n private inited = false;\n\n constructor(private cipherService: CipherService, private folderService: FolderService,\n private collectionService: CollectionService, private cryptoService: CryptoService,\n protected platformUtilsService: PlatformUtilsService, private storageService: StorageService,\n private messagingService: MessagingService, private searchService: SearchService,\n private userService: UserService, private tokenService: TokenService,\n private lockedCallback: () => Promise = null, private loggedOutCallback: () => Promise = null) {\n }\n\n init(checkOnInterval: boolean) {\n if (this.inited) {\n return;\n }\n\n this.inited = true;\n if (checkOnInterval) {\n this.startCheck();\n }\n }\n\n startCheck() {\n this.checkVaultTimeout();\n setInterval(() => this.checkVaultTimeout(), 10 * 1000); // check every 10 seconds\n }\n\n // Keys aren't stored for a device that is locked or logged out.\n async isLocked(): Promise {\n const hasKey = await this.cryptoService.hasKey();\n if (hasKey) {\n if (await this.isBiometricLockSet() && this.biometricLocked) {\n return true;\n }\n }\n return !hasKey;\n }\n\n async checkVaultTimeout(): Promise {\n if (await this.platformUtilsService.isViewOpen()) {\n // Do not lock\n return;\n }\n\n // \"is logged out check\" - similar to isLocked, below\n const authed = await this.userService.isAuthenticated();\n if (!authed) {\n return;\n }\n\n if (await this.isLocked()) {\n return;\n }\n\n // This has the potential to be removed. Evaluate after all platforms complete with auto-logout\n let vaultTimeout = this.platformUtilsService.lockTimeout();\n if (vaultTimeout == null) {\n vaultTimeout = await this.storageService.get(ConstantsService.vaultTimeoutKey);\n }\n\n if (vaultTimeout == null || vaultTimeout < 0) {\n return;\n }\n\n const lastActive = await this.storageService.get(ConstantsService.lastActiveKey);\n if (lastActive == null) {\n return;\n }\n\n const vaultTimeoutSeconds = vaultTimeout * 60;\n const diffSeconds = ((new Date()).getTime() - lastActive) / 1000;\n if (diffSeconds >= vaultTimeoutSeconds) {\n // Pivot based on the saved vault timeout action\n const timeoutAction = await this.storageService.get(ConstantsService.vaultTimeoutActionKey);\n timeoutAction === 'logOut' ? await this.logOut() : await this.lock(true);\n }\n }\n\n async lock(allowSoftLock = false): Promise {\n const authed = await this.userService.isAuthenticated();\n if (!authed) {\n return;\n }\n\n this.biometricLocked = true;\n if (allowSoftLock) {\n const biometricLocked = await this.isBiometricLockSet();\n if (biometricLocked && this.platformUtilsService.supportsSecureStorage()) {\n this.messagingService.send('locked');\n if (this.lockedCallback != null) {\n await this.lockedCallback();\n }\n return;\n }\n }\n\n await Promise.all([\n this.cryptoService.clearKey(),\n this.cryptoService.clearOrgKeys(true),\n this.cryptoService.clearKeyPair(true),\n this.cryptoService.clearEncKey(true),\n ]);\n\n this.folderService.clearCache();\n this.cipherService.clearCache();\n this.collectionService.clearCache();\n this.searchService.clearIndex();\n this.messagingService.send('locked');\n if (this.lockedCallback != null) {\n await this.lockedCallback();\n }\n }\n\n async logOut(): Promise {\n if (this.loggedOutCallback != null) {\n await this.loggedOutCallback();\n }\n }\n\n async setVaultTimeoutOptions(timeout: number, action: string): Promise {\n await this.storageService.save(ConstantsService.vaultTimeoutKey, timeout);\n await this.storageService.save(ConstantsService.vaultTimeoutActionKey, action);\n await this.cryptoService.toggleKey();\n await this.tokenService.toggleTokens();\n }\n\n async isPinLockSet(): Promise<[boolean, boolean]> {\n const protectedPin = await this.storageService.get(ConstantsService.protectedPin);\n const pinProtectedKey = await this.storageService.get(ConstantsService.pinProtectedKey);\n return [protectedPin != null, pinProtectedKey != null];\n }\n\n async isBiometricLockSet(): Promise {\n return await this.storageService.get(ConstantsService.biometricUnlockKey);\n }\n\n clear(): Promise {\n this.pinProtectedKey = null;\n return this.storageService.remove(ConstantsService.protectedPin);\n }\n}\n","import { LogLevelType } from '../enums/logLevelType';\n\nimport { LogService as LogServiceAbstraction } from '../abstractions/log.service';\n\nimport * as hrtime from 'browser-hrtime';\n\nexport class ConsoleLogService implements LogServiceAbstraction {\n protected timersMap: Map = new Map();\n\n constructor(protected isDev: boolean, protected filter: (level: LogLevelType) => boolean = null) { }\n\n debug(message: string) {\n if (!this.isDev) {\n return;\n }\n this.write(LogLevelType.Debug, message);\n }\n\n info(message: string) {\n this.write(LogLevelType.Info, message);\n }\n\n warning(message: string) {\n this.write(LogLevelType.Warning, message);\n }\n\n error(message: string) {\n this.write(LogLevelType.Error, message);\n }\n\n write(level: LogLevelType, message: string) {\n if (this.filter != null && this.filter(level)) {\n return;\n }\n\n switch (level) {\n case LogLevelType.Debug:\n // tslint:disable-next-line\n console.log(message);\n break;\n case LogLevelType.Info:\n // tslint:disable-next-line\n console.log(message);\n break;\n case LogLevelType.Warning:\n // tslint:disable-next-line\n console.warn(message);\n break;\n case LogLevelType.Error:\n // tslint:disable-next-line\n console.error(message);\n break;\n default:\n break;\n }\n }\n\n time(label: string = 'default') {\n if (!this.timersMap.has(label)) {\n this.timersMap.set(label, hrtime());\n }\n }\n\n timeEnd(label: string = 'default'): [number, number] {\n const elapsed = hrtime(this.timersMap.get(label));\n this.timersMap.delete(label);\n this.write(LogLevelType.Info, `${label}: ${elapsed[0] * 1000 + elapsed[1] / 10e6}ms`);\n return elapsed;\n }\n}\n","export enum LogLevelType {\n Debug,\n Info,\n Warning,\n Error,\n}\n","import { Cipher } from './cipher';\n\nimport { CipherView } from '../view/cipherView';\n\nimport { Cipher as CipherDomain } from '../domain/cipher';\n\nexport class CipherWithIds extends Cipher {\n id: string;\n collectionIds: string[];\n\n // Use build method instead of ctor so that we can control order of JSON stringify for pretty print\n build(o: CipherView | CipherDomain) {\n this.id = o.id;\n super.build(o);\n this.collectionIds = o.collectionIds;\n }\n}\n","import { Collection } from './collection';\n\nimport { CollectionView } from '../view/collectionView';\n\nimport { Collection as CollectionDomain } from '../domain/collection';\n\nexport class CollectionWithId extends Collection {\n id: string;\n\n // Use build method instead of ctor so that we can control order of JSON stringify for pretty print\n build(o: CollectionView | CollectionDomain) {\n this.id = o.id;\n super.build(o);\n }\n}\n","import { Folder } from './folder';\n\nimport { FolderView } from '../view/folderView';\n\nimport { Folder as FolderDomain } from '../domain/folder';\n\nexport class FolderWithId extends Folder {\n id: string;\n\n // Use build method instead of ctor so that we can control order of JSON stringify for pretty print\n build(o: FolderView | FolderDomain) {\n this.id = o.id;\n super.build(o);\n }\n}\n","import { ImportResult } from '../../models/domain/importResult';\nimport { BaseImporter } from '../baseImporter';\nimport { Importer } from '../importer';\n\nimport { CipherType } from '../../enums/cipherType';\nimport { FieldType } from '../../enums/fieldType';\nimport { CipherView } from '../../models/view';\nimport { CipherImportContext } from './cipherImportContext';\n\nexport const IgnoredProperties = ['ainfo', 'autosubmit', 'notesplain', 'ps', 'scope', 'tags', 'title', 'uuid', 'notes'];\n\nexport abstract class OnePasswordCsvImporter extends BaseImporter implements Importer {\n protected loginPropertyParsers = [this.setLoginUsername, this.setLoginPassword, this.setLoginUris];\n protected creditCardPropertyParsers = [this.setCreditCardNumber, this.setCreditCardVerification, this.setCreditCardCardholderName, this.setCreditCardExpiry];\n protected identityPropertyParsers = [this.setIdentityFirstName, this.setIdentityInitial, this.setIdentityLastName, this.setIdentityUserName, this.setIdentityEmail, this.setIdentityPhone, this.setIdentityCompany];\n\n abstract setCipherType(value: any, cipher: CipherView): void;\n\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true, {\n quoteChar: '\"',\n escapeChar: '\\\\',\n });\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (this.isNullOrWhitespace(this.getProp(value, 'title'))) {\n return;\n }\n\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(this.getProp(value, 'title'), '--');\n\n this.setNotes(value, cipher);\n\n this.setCipherType(value, cipher);\n\n let altUsername: string = null;\n for (const property in value) {\n if (!value.hasOwnProperty(property) || this.isNullOrWhitespace(value[property])) {\n continue;\n }\n\n const context = new CipherImportContext(value, property, cipher);\n if (cipher.type === CipherType.Login && this.setKnownLoginValue(context)) {\n continue;\n } else if (cipher.type === CipherType.Card && this.setKnownCreditCardValue(context)) {\n continue;\n } else if (cipher.type === CipherType.Identity && this.setKnownIdentityValue(context)) {\n continue;\n }\n\n altUsername = this.setUnknownValue(context, altUsername);\n }\n\n if (cipher.type === CipherType.Login && !this.isNullOrWhitespace(altUsername) &&\n this.isNullOrWhitespace(cipher.login.username) && altUsername.indexOf('://') === -1) {\n cipher.login.username = altUsername;\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n protected getProp(obj: any, name: string): any {\n const lowerObj = Object.entries(obj).reduce((agg: any, entry: [string, any]) => {\n agg[entry[0].toLowerCase()] = entry[1];\n return agg;\n }, {});\n return lowerObj[name.toLowerCase()];\n }\n\n protected getPropByRegexp(obj: any, regexp: RegExp): any {\n const matchingKeys = Object.keys(obj).reduce((agg: string[], key: string) => {\n if (key.match(regexp)) {\n agg.push(key);\n }\n return agg;\n }, []);\n if (matchingKeys.length === 0) {\n return null;\n } else {\n return obj[matchingKeys[0]];\n }\n }\n\n protected getPropIncluding(obj: any, name: string): any {\n const includesMap = Object.keys(obj).reduce((agg: string[], entry: string) => {\n if (entry.toLowerCase().includes(name.toLowerCase())) {\n agg.push(entry);\n }\n return agg;\n }, []);\n if (includesMap.length === 0) {\n return null;\n } else {\n return obj[includesMap[0]];\n }\n }\n\n protected setNotes(importRecord: any, cipher: CipherView) {\n cipher.notes = this.getValueOrDefault(this.getProp(importRecord, 'notesPlain'), '') + '\\n' +\n this.getValueOrDefault(this.getProp(importRecord, 'notes'), '') + '\\n';\n cipher.notes.trim();\n\n }\n\n protected setKnownLoginValue(context: CipherImportContext): boolean {\n return this.loginPropertyParsers.reduce((agg: boolean, func) => {\n if (!agg) {\n agg = func.bind(this)(context);\n }\n return agg;\n }, false);\n }\n\n protected setKnownCreditCardValue(context: CipherImportContext): boolean {\n return this.creditCardPropertyParsers.reduce((agg: boolean, func) => {\n if (!agg) {\n agg = func.bind(this)(context);\n }\n return agg;\n }, false);\n }\n\n protected setKnownIdentityValue(context: CipherImportContext): boolean {\n return this.identityPropertyParsers.reduce((agg: boolean, func) => {\n if (!agg) {\n agg = func.bind(this)(context);\n }\n return agg;\n }, false);\n }\n\n protected setUnknownValue(context: CipherImportContext, altUsername: string): string {\n if (IgnoredProperties.indexOf(context.lowerProperty) === -1 && !context.lowerProperty.startsWith('section:') &&\n !context.lowerProperty.startsWith('section ')) {\n if (altUsername == null && context.lowerProperty === 'email') {\n return context.importRecord[context.property];\n }\n else if (context.lowerProperty === 'created date' || context.lowerProperty === 'modified date') {\n const readableDate = new Date(parseInt(context.importRecord[context.property], 10) * 1000).toUTCString();\n this.processKvp(context.cipher, '1Password ' + context.property, readableDate);\n return null;\n }\n if (context.lowerProperty.includes('password') || context.lowerProperty.includes('key') || context.lowerProperty.includes('secret')) {\n this.processKvp(context.cipher, context.property, context.importRecord[context.property], FieldType.Hidden);\n } else {\n this.processKvp(context.cipher, context.property, context.importRecord[context.property]);\n }\n }\n return null;\n }\n\n protected setIdentityFirstName(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.identity.firstName) && context.lowerProperty.includes('first name')) {\n context.cipher.identity.firstName = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setIdentityInitial(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.identity.middleName) && context.lowerProperty.includes('initial')) {\n context.cipher.identity.middleName = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setIdentityLastName(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.identity.lastName) && context.lowerProperty.includes('last name')) {\n context.cipher.identity.lastName = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setIdentityUserName(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.identity.username) && context.lowerProperty.includes('username')) {\n context.cipher.identity.username = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setIdentityCompany(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.identity.company) && context.lowerProperty.includes('company')) {\n context.cipher.identity.company = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setIdentityPhone(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.identity.phone) && context.lowerProperty.includes('default phone')) {\n context.cipher.identity.phone = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setIdentityEmail(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.identity.email) && context.lowerProperty.includes('email')) {\n context.cipher.identity.email = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setCreditCardNumber(context: CipherImportContext): boolean {\n if (this.isNullOrWhitespace(context.cipher.card.number) && context.lowerProperty.includes('number')) {\n context.cipher.card.number = context.importRecord[context.property];\n context.cipher.card.brand = this.getCardBrand(context.cipher.card.number);\n return true;\n }\n return false;\n }\n\n protected setCreditCardVerification(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.card.code) && context.lowerProperty.includes('verification number')) {\n context.cipher.card.code = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setCreditCardCardholderName(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.card.cardholderName) && context.lowerProperty.includes('cardholder name')) {\n context.cipher.card.cardholderName = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setCreditCardExpiry(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.card.expiration) && context.lowerProperty.includes('expiry date') &&\n context.importRecord[context.property].length === 7) {\n context.cipher.card.expMonth = (context.importRecord[context.property] as string).substr(0, 2);\n if (context.cipher.card.expMonth[0] === '0') {\n context.cipher.card.expMonth = context.cipher.card.expMonth.substr(1, 1);\n }\n context.cipher.card.expYear = (context.importRecord[context.property] as string).substr(3, 4);\n return true;\n }\n return false;\n }\n\n protected setLoginPassword(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.login.password) && context.lowerProperty === 'password') {\n context.cipher.login.password = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setLoginUsername(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.login.username) && context.lowerProperty === 'username') {\n context.cipher.login.username = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setLoginUris(context: CipherImportContext) {\n if ((context.cipher.login.uris == null || context.cipher.login.uris.length === 0) && context.lowerProperty === 'urls') {\n const urls = context.importRecord[context.property].split(this.newLineRegex);\n context.cipher.login.uris = this.makeUriArray(urls);\n return true;\n } else if ((context.lowerProperty === 'url')) {\n if (context.cipher.login.uris == null) {\n context.cipher.login.uris = [];\n }\n context.cipher.login.uris.concat(this.makeUriArray(context.importRecord[context.property]));\n return true;\n }\n return false;\n }\n}\n","export { AttachmentView } from './attachmentView';\nexport { CardView } from './cardView';\nexport { CipherView } from './cipherView';\nexport { FieldView } from './fieldView';\nexport { IdentityView } from './identityView';\nexport { LoginUriView } from './loginUriView';\nexport { LoginView } from './loginView';\nexport { SecureNoteView } from './secureNoteView';\nexport { View } from './view';\n","export enum NotificationType {\n SyncCipherUpdate = 0,\n SyncCipherCreate = 1,\n SyncLoginDelete = 2,\n SyncFolderDelete = 3,\n SyncCiphers = 4,\n\n SyncVault = 5,\n SyncOrgKeys = 6,\n SyncFolderCreate = 7,\n SyncFolderUpdate = 8,\n SyncCipherDelete = 9,\n SyncSettings = 10,\n\n LogOut = 11,\n\n SyncSendCreate = 12,\n SyncSendUpdate = 13,\n SyncSendDelete = 14,\n}\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport 'bootstrap';\nimport 'jquery';\nimport 'popper.js';\n\n// tslint:disable-next-line\nrequire('../scss/styles.scss');\n\nimport { AppModule } from './app.module';\n\nif (process.env.ENV === 'production') {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule, { preserveWhitespaces: true });\n","import 'core-js';\n\nimport { ToasterModule } from 'angular2-toaster';\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\n\nimport { AppRoutingModule } from './app-routing.module';\n\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n\nimport { ServicesModule } from './services/services.module';\n\nimport { AppComponent } from './app.component';\nimport { ModalComponent } from './modal.component';\n\nimport { AvatarComponent } from './components/avatar.component';\nimport { PasswordStrengthComponent } from './components/password-strength.component';\n\nimport { FooterComponent } from './layouts/footer.component';\nimport { FrontendLayoutComponent } from './layouts/frontend-layout.component';\nimport { NavbarComponent } from './layouts/navbar.component';\nimport { OrganizationLayoutComponent } from './layouts/organization-layout.component';\nimport { UserLayoutComponent } from './layouts/user-layout.component';\n\nimport { AcceptEmergencyComponent } from './accounts/accept-emergency.component';\nimport { AcceptOrganizationComponent } from './accounts/accept-organization.component';\nimport { HintComponent } from './accounts/hint.component';\nimport { LockComponent } from './accounts/lock.component';\nimport { LoginComponent } from './accounts/login.component';\nimport { RecoverDeleteComponent } from './accounts/recover-delete.component';\nimport { RecoverTwoFactorComponent } from './accounts/recover-two-factor.component';\nimport { RegisterComponent } from './accounts/register.component';\nimport { SetPasswordComponent } from './accounts/set-password.component';\nimport { SsoComponent } from './accounts/sso.component';\nimport { TwoFactorOptionsComponent } from './accounts/two-factor-options.component';\nimport { TwoFactorComponent } from './accounts/two-factor.component';\nimport { VerifyEmailTokenComponent } from './accounts/verify-email-token.component';\nimport { VerifyRecoverDeleteComponent } from './accounts/verify-recover-delete.component';\n\nimport {\n CollectionAddEditComponent as OrgCollectionAddEditComponent,\n} from './organizations/manage/collection-add-edit.component';\nimport { CollectionsComponent as OrgManageCollectionsComponent } from './organizations/manage/collections.component';\nimport { EntityEventsComponent as OrgEntityEventsComponent } from './organizations/manage/entity-events.component';\nimport { EntityUsersComponent as OrgEntityUsersComponent } from './organizations/manage/entity-users.component';\nimport { EventsComponent as OrgEventsComponent } from './organizations/manage/events.component';\nimport { GroupAddEditComponent as OrgGroupAddEditComponent } from './organizations/manage/group-add-edit.component';\nimport { GroupsComponent as OrgGroupsComponent } from './organizations/manage/groups.component';\nimport { ManageComponent as OrgManageComponent } from './organizations/manage/manage.component';\nimport { PeopleComponent as OrgPeopleComponent } from './organizations/manage/people.component';\nimport { PoliciesComponent as OrgPoliciesComponent } from './organizations/manage/policies.component';\nimport { PolicyEditComponent as OrgPolicyEditComponent } from './organizations/manage/policy-edit.component';\nimport { UserAddEditComponent as OrgUserAddEditComponent } from './organizations/manage/user-add-edit.component';\nimport { UserConfirmComponent as OrgUserConfirmComponent } from './organizations/manage/user-confirm.component';\nimport { UserGroupsComponent as OrgUserGroupsComponent } from './organizations/manage/user-groups.component';\n\nimport { AccountComponent as OrgAccountComponent } from './organizations/settings/account.component';\nimport { AdjustSeatsComponent } from './organizations/settings/adjust-seats.component';\nimport { ChangePlanComponent } from './organizations/settings/change-plan.component';\nimport { DeleteOrganizationComponent } from './organizations/settings/delete-organization.component';\nimport { DownloadLicenseComponent } from './organizations/settings/download-license.component';\nimport { OrganizationBillingComponent } from './organizations/settings/organization-billing.component';\nimport { OrganizationSubscriptionComponent } from './organizations/settings/organization-subscription.component';\nimport { SettingsComponent as OrgSettingComponent } from './organizations/settings/settings.component';\nimport {\n TwoFactorSetupComponent as OrgTwoFactorSetupComponent,\n} from './organizations/settings/two-factor-setup.component';\n\nimport { ExportComponent as OrgExportComponent } from './organizations/tools/export.component';\nimport {\n ExposedPasswordsReportComponent as OrgExposedPasswordsReportComponent,\n} from './organizations/tools/exposed-passwords-report.component';\nimport { ImportComponent as OrgImportComponent } from './organizations/tools/import.component';\nimport {\n InactiveTwoFactorReportComponent as OrgInactiveTwoFactorReportComponent,\n} from './organizations/tools/inactive-two-factor-report.component';\nimport {\n ReusedPasswordsReportComponent as OrgReusedPasswordsReportComponent,\n} from './organizations/tools/reused-passwords-report.component';\nimport { ToolsComponent as OrgToolsComponent } from './organizations/tools/tools.component';\nimport {\n UnsecuredWebsitesReportComponent as OrgUnsecuredWebsitesReportComponent,\n} from './organizations/tools/unsecured-websites-report.component';\nimport {\n WeakPasswordsReportComponent as OrgWeakPasswordsReportComponent,\n} from './organizations/tools/weak-passwords-report.component';\n\nimport { AddEditComponent as OrgAddEditComponent } from './organizations/vault/add-edit.component';\nimport { AttachmentsComponent as OrgAttachmentsComponent } from './organizations/vault/attachments.component';\nimport { CiphersComponent as OrgCiphersComponent } from './organizations/vault/ciphers.component';\nimport { CollectionsComponent as OrgCollectionsComponent } from './organizations/vault/collections.component';\nimport { GroupingsComponent as OrgGroupingsComponent } from './organizations/vault/groupings.component';\nimport { VaultComponent as OrgVaultComponent } from './organizations/vault/vault.component';\n\nimport { AccessComponent } from './send/access.component';\nimport { AddEditComponent as SendAddEditComponent } from './send/add-edit.component';\nimport { SendComponent } from './send/send.component';\n\nimport { AccountComponent } from './settings/account.component';\nimport { AddCreditComponent } from './settings/add-credit.component';\nimport { AdjustPaymentComponent } from './settings/adjust-payment.component';\nimport { AdjustStorageComponent } from './settings/adjust-storage.component';\nimport { ApiKeyComponent } from './settings/api-key.component';\nimport { ChangeEmailComponent } from './settings/change-email.component';\nimport { ChangeKdfComponent } from './settings/change-kdf.component';\nimport { ChangePasswordComponent } from './settings/change-password.component';\nimport { CreateOrganizationComponent } from './settings/create-organization.component';\nimport { DeauthorizeSessionsComponent } from './settings/deauthorize-sessions.component';\nimport { DeleteAccountComponent } from './settings/delete-account.component';\nimport { DomainRulesComponent } from './settings/domain-rules.component';\nimport { EmergencyAccessAddEditComponent } from './settings/emergency-access-add-edit.component';\nimport { EmergencyAccessAttachmentsComponent } from './settings/emergency-access-attachments.component';\nimport { EmergencyAccessConfirmComponent } from './settings/emergency-access-confirm.component';\nimport { EmergencyAccessTakeoverComponent } from './settings/emergency-access-takeover.component';\nimport { EmergencyAccessViewComponent } from './settings/emergency-access-view.component';\nimport { EmergencyAccessComponent } from './settings/emergency-access.component';\nimport { EmergencyAddEditComponent } from './settings/emergency-add-edit.component';\nimport { LinkSsoComponent } from './settings/link-sso.component';\nimport { OptionsComponent } from './settings/options.component';\nimport { OrganizationPlansComponent } from './settings/organization-plans.component';\nimport { OrganizationsComponent } from './settings/organizations.component';\nimport { PaymentComponent } from './settings/payment.component';\nimport { PremiumComponent } from './settings/premium.component';\nimport { ProfileComponent } from './settings/profile.component';\nimport { PurgeVaultComponent } from './settings/purge-vault.component';\nimport { SettingsComponent } from './settings/settings.component';\nimport { TaxInfoComponent } from './settings/tax-info.component';\nimport { TwoFactorAuthenticatorComponent } from './settings/two-factor-authenticator.component';\nimport { TwoFactorDuoComponent } from './settings/two-factor-duo.component';\nimport { TwoFactorEmailComponent } from './settings/two-factor-email.component';\nimport { TwoFactorRecoveryComponent } from './settings/two-factor-recovery.component';\nimport { TwoFactorSetupComponent } from './settings/two-factor-setup.component';\nimport { TwoFactorVerifyComponent } from './settings/two-factor-verify.component';\nimport { TwoFactorWebAuthnComponent } from './settings/two-factor-webauthn.component';\nimport { TwoFactorYubiKeyComponent } from './settings/two-factor-yubikey.component';\nimport { UpdateKeyComponent } from './settings/update-key.component';\nimport { UpdateLicenseComponent } from './settings/update-license.component';\nimport { UserBillingComponent } from './settings/user-billing.component';\nimport { UserSubscriptionComponent } from './settings/user-subscription.component';\nimport { VerifyEmailComponent } from './settings/verify-email.component';\n\nimport { BreachReportComponent } from './tools/breach-report.component';\nimport { ExportComponent } from './tools/export.component';\nimport { ExposedPasswordsReportComponent } from './tools/exposed-passwords-report.component';\nimport { ImportComponent } from './tools/import.component';\nimport { InactiveTwoFactorReportComponent } from './tools/inactive-two-factor-report.component';\nimport { PasswordGeneratorHistoryComponent } from './tools/password-generator-history.component';\nimport { PasswordGeneratorComponent } from './tools/password-generator.component';\nimport { ReusedPasswordsReportComponent } from './tools/reused-passwords-report.component';\nimport { ToolsComponent } from './tools/tools.component';\nimport { UnsecuredWebsitesReportComponent } from './tools/unsecured-websites-report.component';\nimport { WeakPasswordsReportComponent } from './tools/weak-passwords-report.component';\n\nimport { AddEditComponent } from './vault/add-edit.component';\nimport { AttachmentsComponent } from './vault/attachments.component';\nimport { BulkActionsComponent } from './vault/bulk-actions.component';\nimport { BulkDeleteComponent } from './vault/bulk-delete.component';\nimport { BulkMoveComponent } from './vault/bulk-move.component';\nimport { BulkRestoreComponent } from './vault/bulk-restore.component';\nimport { BulkShareComponent } from './vault/bulk-share.component';\nimport { CiphersComponent } from './vault/ciphers.component';\nimport { CollectionsComponent } from './vault/collections.component';\nimport { FolderAddEditComponent } from './vault/folder-add-edit.component';\nimport { GroupingsComponent } from './vault/groupings.component';\nimport { SendInfoComponent } from './vault/send-info.component';\nimport { ShareComponent } from './vault/share.component';\nimport { VaultComponent } from './vault/vault.component';\n\nimport { CalloutComponent } from 'jslib/angular/components/callout.component';\nimport { IconComponent } from 'jslib/angular/components/icon.component';\n\nimport { A11yTitleDirective } from 'jslib/angular/directives/a11y-title.directive';\nimport { ApiActionDirective } from 'jslib/angular/directives/api-action.directive';\nimport { AutofocusDirective } from 'jslib/angular/directives/autofocus.directive';\nimport { BlurClickDirective } from 'jslib/angular/directives/blur-click.directive';\nimport { BoxRowDirective } from 'jslib/angular/directives/box-row.directive';\nimport { FallbackSrcDirective } from 'jslib/angular/directives/fallback-src.directive';\nimport { InputVerbatimDirective } from 'jslib/angular/directives/input-verbatim.directive';\nimport { SelectCopyDirective } from 'jslib/angular/directives/select-copy.directive';\nimport { StopClickDirective } from 'jslib/angular/directives/stop-click.directive';\nimport { StopPropDirective } from 'jslib/angular/directives/stop-prop.directive';\nimport { TrueFalseValueDirective } from 'jslib/angular/directives/true-false-value.directive';\n\nimport { ColorPasswordPipe } from 'jslib/angular/pipes/color-password.pipe';\nimport { I18nPipe } from 'jslib/angular/pipes/i18n.pipe';\nimport { SearchCiphersPipe } from 'jslib/angular/pipes/search-ciphers.pipe';\nimport { SearchPipe } from 'jslib/angular/pipes/search.pipe';\n\nimport {\n DatePipe,\n registerLocaleData,\n} from '@angular/common';\nimport localeCa from '@angular/common/locales/ca';\nimport localeCs from '@angular/common/locales/cs';\nimport localeDa from '@angular/common/locales/da';\nimport localeDe from '@angular/common/locales/de';\nimport localeEl from '@angular/common/locales/el';\nimport localeEnGb from '@angular/common/locales/en-GB';\nimport localeEs from '@angular/common/locales/es';\nimport localeEt from '@angular/common/locales/et';\nimport localeFr from '@angular/common/locales/fr';\nimport localeHe from '@angular/common/locales/he';\nimport localeIt from '@angular/common/locales/it';\nimport localeJa from '@angular/common/locales/ja';\nimport localeKo from '@angular/common/locales/ko';\nimport localeLv from '@angular/common/locales/lv';\nimport localeMl from '@angular/common/locales/ml';\nimport localeNb from '@angular/common/locales/nb';\nimport localeNl from '@angular/common/locales/nl';\nimport localePl from '@angular/common/locales/pl';\nimport localePtBr from '@angular/common/locales/pt';\nimport localePtPt from '@angular/common/locales/pt-PT';\nimport localeRu from '@angular/common/locales/ru';\nimport localeSk from '@angular/common/locales/sk';\nimport localeSv from '@angular/common/locales/sv';\nimport localeUk from '@angular/common/locales/uk';\nimport localeZhCn from '@angular/common/locales/zh-Hans';\nimport localeZhTw from '@angular/common/locales/zh-Hant';\n\nregisterLocaleData(localeCa, 'ca');\nregisterLocaleData(localeCs, 'cs');\nregisterLocaleData(localeDa, 'da');\nregisterLocaleData(localeDe, 'de');\nregisterLocaleData(localeEl, 'el');\nregisterLocaleData(localeEnGb, 'en-GB');\nregisterLocaleData(localeEs, 'es');\nregisterLocaleData(localeEt, 'et');\nregisterLocaleData(localeFr, 'fr');\nregisterLocaleData(localeHe, 'he');\nregisterLocaleData(localeIt, 'it');\nregisterLocaleData(localeJa, 'ja');\nregisterLocaleData(localeKo, 'ko');\nregisterLocaleData(localeLv, 'lv');\nregisterLocaleData(localeMl, 'ml');\nregisterLocaleData(localeNb, 'nb');\nregisterLocaleData(localeNl, 'nl');\nregisterLocaleData(localePl, 'pl');\nregisterLocaleData(localePtBr, 'pt-BR');\nregisterLocaleData(localePtPt, 'pt-PT');\nregisterLocaleData(localeRu, 'ru');\nregisterLocaleData(localeSk, 'sk');\nregisterLocaleData(localeSv, 'sv');\nregisterLocaleData(localeUk, 'uk');\nregisterLocaleData(localeZhCn, 'zh-CN');\nregisterLocaleData(localeZhTw, 'zh-TW');\n\n@NgModule({\n imports: [\n BrowserModule,\n BrowserAnimationsModule,\n FormsModule,\n AppRoutingModule,\n ServicesModule,\n ToasterModule.forRoot(),\n InfiniteScrollModule,\n DragDropModule,\n ],\n declarations: [\n A11yTitleDirective,\n AcceptEmergencyComponent,\n AccessComponent,\n AcceptOrganizationComponent,\n AccountComponent,\n SetPasswordComponent,\n AddCreditComponent,\n AddEditComponent,\n AdjustPaymentComponent,\n AdjustSeatsComponent,\n AdjustStorageComponent,\n ApiActionDirective,\n ApiKeyComponent,\n AppComponent,\n AttachmentsComponent,\n AutofocusDirective,\n AvatarComponent,\n BlurClickDirective,\n BoxRowDirective,\n BreachReportComponent,\n BulkActionsComponent,\n BulkDeleteComponent,\n BulkMoveComponent,\n BulkRestoreComponent,\n BulkShareComponent,\n CalloutComponent,\n ChangeEmailComponent,\n ChangeKdfComponent,\n ChangePasswordComponent,\n ChangePlanComponent,\n CiphersComponent,\n CollectionsComponent,\n ColorPasswordPipe,\n CreateOrganizationComponent,\n DeauthorizeSessionsComponent,\n DeleteAccountComponent,\n DeleteOrganizationComponent,\n DomainRulesComponent,\n DownloadLicenseComponent,\n EmergencyAccessAddEditComponent,\n EmergencyAccessAttachmentsComponent,\n EmergencyAccessComponent,\n EmergencyAccessConfirmComponent,\n EmergencyAccessTakeoverComponent,\n EmergencyAccessViewComponent,\n EmergencyAddEditComponent,\n ExportComponent,\n ExposedPasswordsReportComponent,\n FallbackSrcDirective,\n FolderAddEditComponent,\n FooterComponent,\n FrontendLayoutComponent,\n GroupingsComponent,\n HintComponent,\n I18nPipe,\n IconComponent,\n ImportComponent,\n InactiveTwoFactorReportComponent,\n InputVerbatimDirective,\n LinkSsoComponent,\n LockComponent,\n LoginComponent,\n ModalComponent,\n NavbarComponent,\n OptionsComponent,\n OrgAccountComponent,\n OrgAddEditComponent,\n OrganizationBillingComponent,\n OrganizationPlansComponent,\n OrganizationSubscriptionComponent,\n OrgAttachmentsComponent,\n OrgCiphersComponent,\n OrgCollectionAddEditComponent,\n OrgCollectionsComponent,\n OrgEntityEventsComponent,\n OrgEntityUsersComponent,\n OrgEventsComponent,\n OrgExportComponent,\n OrgExposedPasswordsReportComponent,\n OrgImportComponent,\n OrgInactiveTwoFactorReportComponent,\n OrgGroupAddEditComponent,\n OrgGroupingsComponent,\n OrgGroupsComponent,\n OrgManageCollectionsComponent,\n OrgManageComponent,\n OrgPeopleComponent,\n OrgPolicyEditComponent,\n OrgPoliciesComponent,\n OrgReusedPasswordsReportComponent,\n OrgSettingComponent,\n OrgToolsComponent,\n OrgTwoFactorSetupComponent,\n OrgUserAddEditComponent,\n OrgUserConfirmComponent,\n OrgUserGroupsComponent,\n OrganizationsComponent,\n OrganizationLayoutComponent,\n OrgUnsecuredWebsitesReportComponent,\n OrgVaultComponent,\n OrgWeakPasswordsReportComponent,\n PasswordGeneratorComponent,\n PasswordGeneratorHistoryComponent,\n PasswordStrengthComponent,\n PaymentComponent,\n PremiumComponent,\n ProfileComponent,\n PurgeVaultComponent,\n RecoverDeleteComponent,\n RecoverTwoFactorComponent,\n RegisterComponent,\n ReusedPasswordsReportComponent,\n SearchCiphersPipe,\n SearchPipe,\n SelectCopyDirective,\n SendAddEditComponent,\n SendComponent,\n SendInfoComponent,\n SettingsComponent,\n ShareComponent,\n SsoComponent,\n StopClickDirective,\n StopPropDirective,\n TaxInfoComponent,\n ToolsComponent,\n TrueFalseValueDirective,\n TwoFactorAuthenticatorComponent,\n TwoFactorComponent,\n TwoFactorDuoComponent,\n TwoFactorEmailComponent,\n TwoFactorOptionsComponent,\n TwoFactorRecoveryComponent,\n TwoFactorSetupComponent,\n TwoFactorVerifyComponent,\n TwoFactorWebAuthnComponent,\n TwoFactorYubiKeyComponent,\n UnsecuredWebsitesReportComponent,\n UpdateKeyComponent,\n UpdateLicenseComponent,\n UserBillingComponent,\n UserLayoutComponent,\n UserSubscriptionComponent,\n VaultComponent,\n VerifyEmailComponent,\n VerifyEmailTokenComponent,\n VerifyRecoverDeleteComponent,\n WeakPasswordsReportComponent,\n ],\n entryComponents: [\n AddEditComponent,\n ApiKeyComponent,\n AttachmentsComponent,\n BulkActionsComponent,\n BulkDeleteComponent,\n BulkMoveComponent,\n BulkRestoreComponent,\n BulkShareComponent,\n CollectionsComponent,\n DeauthorizeSessionsComponent,\n DeleteAccountComponent,\n DeleteOrganizationComponent,\n EmergencyAccessAddEditComponent,\n EmergencyAccessAttachmentsComponent,\n EmergencyAccessConfirmComponent,\n EmergencyAccessTakeoverComponent,\n EmergencyAddEditComponent,\n FolderAddEditComponent,\n ModalComponent,\n OrgAddEditComponent,\n OrgAttachmentsComponent,\n OrgCollectionAddEditComponent,\n OrgCollectionsComponent,\n OrgEntityEventsComponent,\n OrgEntityUsersComponent,\n OrgGroupAddEditComponent,\n OrgPolicyEditComponent,\n OrgUserAddEditComponent,\n OrgUserConfirmComponent,\n OrgUserGroupsComponent,\n PasswordGeneratorHistoryComponent,\n PurgeVaultComponent,\n SendAddEditComponent,\n ShareComponent,\n TwoFactorAuthenticatorComponent,\n TwoFactorDuoComponent,\n TwoFactorEmailComponent,\n TwoFactorOptionsComponent,\n TwoFactorRecoveryComponent,\n TwoFactorWebAuthnComponent,\n TwoFactorYubiKeyComponent,\n UpdateKeyComponent,\n ],\n providers: [DatePipe],\n bootstrap: [AppComponent],\n})\nexport class AppModule { }\n","import { NgModule } from '@angular/core';\nimport {\n RouterModule,\n Routes,\n} from '@angular/router';\n\nimport { FrontendLayoutComponent } from './layouts/frontend-layout.component';\nimport { OrganizationLayoutComponent } from './layouts/organization-layout.component';\nimport { UserLayoutComponent } from './layouts/user-layout.component';\n\nimport { AcceptEmergencyComponent } from './accounts/accept-emergency.component';\nimport { AcceptOrganizationComponent } from './accounts/accept-organization.component';\nimport { HintComponent } from './accounts/hint.component';\nimport { LockComponent } from './accounts/lock.component';\nimport { LoginComponent } from './accounts/login.component';\nimport { RecoverDeleteComponent } from './accounts/recover-delete.component';\nimport { RecoverTwoFactorComponent } from './accounts/recover-two-factor.component';\nimport { RegisterComponent } from './accounts/register.component';\nimport { SetPasswordComponent } from './accounts/set-password.component';\nimport { SsoComponent } from './accounts/sso.component';\nimport { TwoFactorComponent } from './accounts/two-factor.component';\nimport { VerifyEmailTokenComponent } from './accounts/verify-email-token.component';\nimport { VerifyRecoverDeleteComponent } from './accounts/verify-recover-delete.component';\n\nimport { CollectionsComponent as OrgManageCollectionsComponent } from './organizations/manage/collections.component';\nimport { EventsComponent as OrgEventsComponent } from './organizations/manage/events.component';\nimport { GroupsComponent as OrgGroupsComponent } from './organizations/manage/groups.component';\nimport { ManageComponent as OrgManageComponent } from './organizations/manage/manage.component';\nimport { PeopleComponent as OrgPeopleComponent } from './organizations/manage/people.component';\nimport { PoliciesComponent as OrgPoliciesComponent } from './organizations/manage/policies.component';\n\nimport { AccountComponent as OrgAccountComponent } from './organizations/settings/account.component';\nimport { OrganizationBillingComponent } from './organizations/settings/organization-billing.component';\nimport { OrganizationSubscriptionComponent } from './organizations/settings/organization-subscription.component';\nimport { SettingsComponent as OrgSettingsComponent } from './organizations/settings/settings.component';\nimport {\n TwoFactorSetupComponent as OrgTwoFactorSetupComponent,\n} from './organizations/settings/two-factor-setup.component';\n\nimport { ExportComponent as OrgExportComponent } from './organizations/tools/export.component';\nimport {\n ExposedPasswordsReportComponent as OrgExposedPasswordsReportComponent,\n} from './organizations/tools/exposed-passwords-report.component';\nimport { ImportComponent as OrgImportComponent } from './organizations/tools/import.component';\nimport {\n InactiveTwoFactorReportComponent as OrgInactiveTwoFactorReportComponent,\n} from './organizations/tools/inactive-two-factor-report.component';\nimport {\n ReusedPasswordsReportComponent as OrgReusedPasswordsReportComponent,\n} from './organizations/tools/reused-passwords-report.component';\nimport { ToolsComponent as OrgToolsComponent } from './organizations/tools/tools.component';\nimport {\n UnsecuredWebsitesReportComponent as OrgUnsecuredWebsitesReportComponent,\n} from './organizations/tools/unsecured-websites-report.component';\nimport {\n WeakPasswordsReportComponent as OrgWeakPasswordsReportComponent,\n} from './organizations/tools/weak-passwords-report.component';\n\nimport { VaultComponent as OrgVaultComponent } from './organizations/vault/vault.component';\n\nimport { AccessComponent } from './send/access.component';\nimport { SendComponent } from './send/send.component';\n\nimport { AccountComponent } from './settings/account.component';\nimport { CreateOrganizationComponent } from './settings/create-organization.component';\nimport { DomainRulesComponent } from './settings/domain-rules.component';\nimport { OptionsComponent } from './settings/options.component';\nimport { OrganizationsComponent } from './settings/organizations.component';\nimport { PremiumComponent } from './settings/premium.component';\nimport { SettingsComponent } from './settings/settings.component';\nimport { TwoFactorSetupComponent } from './settings/two-factor-setup.component';\nimport { UserBillingComponent } from './settings/user-billing.component';\nimport { UserSubscriptionComponent } from './settings/user-subscription.component';\n\nimport { BreachReportComponent } from './tools/breach-report.component';\nimport { ExportComponent } from './tools/export.component';\nimport { ExposedPasswordsReportComponent } from './tools/exposed-passwords-report.component';\nimport { ImportComponent } from './tools/import.component';\nimport { InactiveTwoFactorReportComponent } from './tools/inactive-two-factor-report.component';\nimport { PasswordGeneratorComponent } from './tools/password-generator.component';\nimport { ReusedPasswordsReportComponent } from './tools/reused-passwords-report.component';\nimport { ToolsComponent } from './tools/tools.component';\nimport { UnsecuredWebsitesReportComponent } from './tools/unsecured-websites-report.component';\nimport { WeakPasswordsReportComponent } from './tools/weak-passwords-report.component';\n\nimport { VaultComponent } from './vault/vault.component';\n\nimport { OrganizationGuardService } from './services/organization-guard.service';\nimport { OrganizationTypeGuardService } from './services/organization-type-guard.service';\n\nimport { AuthGuardService } from 'jslib/angular/services/auth-guard.service';\nimport { LockGuardService } from 'jslib/angular/services/lock-guard.service';\nimport { UnauthGuardService } from 'jslib/angular/services/unauth-guard.service';\n\nimport { Permissions } from 'jslib/enums/permissions';\n\nimport { EmergencyAccessViewComponent } from './settings/emergency-access-view.component';\nimport { EmergencyAccessComponent } from './settings/emergency-access.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: FrontendLayoutComponent,\n children: [\n { path: '', pathMatch: 'full', component: LoginComponent, canActivate: [UnauthGuardService] },\n { path: '2fa', component: TwoFactorComponent, canActivate: [UnauthGuardService] },\n {\n path: 'register', component: RegisterComponent,\n canActivate: [UnauthGuardService],\n data: { titleId: 'createAccount' },\n },\n {\n path: 'sso', component: SsoComponent,\n canActivate: [UnauthGuardService],\n data: { titleId: 'enterpriseSingleSignOn' },\n },\n {\n path: 'set-password', component: SetPasswordComponent,\n data: { titleId: 'setMasterPassword' },\n },\n {\n path: 'hint', component: HintComponent,\n canActivate: [UnauthGuardService],\n data: { titleId: 'passwordHint' },\n },\n {\n path: 'lock',\n component: LockComponent,\n canActivate: [LockGuardService],\n },\n { path: 'verify-email', component: VerifyEmailTokenComponent },\n {\n path: 'accept-organization',\n component: AcceptOrganizationComponent,\n data: { titleId: 'joinOrganization' },\n },\n {\n path: 'accept-emergency',\n component: AcceptEmergencyComponent,\n data: { titleId: 'acceptEmergency' },\n },\n { path: 'recover', pathMatch: 'full', redirectTo: 'recover-2fa' },\n {\n path: 'recover-2fa',\n component: RecoverTwoFactorComponent,\n canActivate: [UnauthGuardService],\n data: { titleId: 'recoverAccountTwoStep' },\n },\n {\n path: 'recover-delete',\n component: RecoverDeleteComponent,\n canActivate: [UnauthGuardService],\n data: { titleId: 'deleteAccount' },\n },\n {\n path: 'verify-recover-delete',\n component: VerifyRecoverDeleteComponent,\n canActivate: [UnauthGuardService],\n data: { titleId: 'deleteAccount' },\n },\n {\n path: 'send/:sendId/:key',\n component: AccessComponent,\n data: { title: 'Bitwarden Send' },\n },\n ],\n },\n {\n path: '',\n component: UserLayoutComponent,\n canActivate: [AuthGuardService],\n children: [\n { path: 'vault', component: VaultComponent, data: { titleId: 'myVault' } },\n { path: 'sends', component: SendComponent, data: { title: 'Send' } },\n {\n path: 'settings',\n component: SettingsComponent,\n children: [\n { path: '', pathMatch: 'full', redirectTo: 'account' },\n { path: 'account', component: AccountComponent, data: { titleId: 'myAccount' } },\n { path: 'options', component: OptionsComponent, data: { titleId: 'options' } },\n { path: 'domain-rules', component: DomainRulesComponent, data: { titleId: 'domainRules' } },\n { path: 'two-factor', component: TwoFactorSetupComponent, data: { titleId: 'twoStepLogin' } },\n { path: 'premium', component: PremiumComponent, data: { titleId: 'goPremium' } },\n { path: 'billing', component: UserBillingComponent, data: { titleId: 'billing' } },\n {\n path: 'subscription',\n component: UserSubscriptionComponent,\n data: { titleId: 'premiumMembership' },\n },\n { path: 'organizations', component: OrganizationsComponent, data: { titleId: 'organizations' } },\n {\n path: 'create-organization',\n component: CreateOrganizationComponent,\n data: { titleId: 'newOrganization' },\n },\n {\n path: 'emergency-access',\n children: [\n {\n path: '',\n component: EmergencyAccessComponent,\n data: { titleId: 'emergencyAccess'},\n },\n {\n path: ':id',\n component: EmergencyAccessViewComponent,\n data: { titleId: 'emergencyAccess'},\n },\n ],\n },\n ],\n },\n {\n path: 'tools',\n component: ToolsComponent,\n canActivate: [AuthGuardService],\n children: [\n { path: '', pathMatch: 'full', redirectTo: 'generator' },\n { path: 'import', component: ImportComponent, data: { titleId: 'importData' } },\n { path: 'export', component: ExportComponent, data: { titleId: 'exportVault' } },\n {\n path: 'generator',\n component: PasswordGeneratorComponent,\n data: { titleId: 'passwordGenerator' },\n },\n { path: 'breach-report', component: BreachReportComponent, data: { titleId: 'dataBreachReport' } },\n {\n path: 'reused-passwords-report',\n component: ReusedPasswordsReportComponent,\n data: { titleId: 'reusedPasswordsReport' },\n },\n {\n path: 'unsecured-websites-report',\n component: UnsecuredWebsitesReportComponent,\n data: { titleId: 'unsecuredWebsitesReport' },\n },\n {\n path: 'weak-passwords-report',\n component: WeakPasswordsReportComponent,\n data: { titleId: 'weakPasswordsReport' },\n },\n {\n path: 'exposed-passwords-report',\n component: ExposedPasswordsReportComponent,\n data: { titleId: 'exposedPasswordsReport' },\n },\n {\n path: 'inactive-two-factor-report',\n component: InactiveTwoFactorReportComponent,\n data: { titleId: 'inactive2faReport' },\n },\n ],\n },\n ],\n },\n {\n path: 'organizations/:organizationId',\n component: OrganizationLayoutComponent,\n canActivate: [AuthGuardService, OrganizationGuardService],\n children: [\n { path: '', pathMatch: 'full', redirectTo: 'vault' },\n { path: 'vault', component: OrgVaultComponent, data: { titleId: 'vault' } },\n {\n path: 'tools',\n component: OrgToolsComponent,\n canActivate: [OrganizationTypeGuardService],\n data: { permissions: [Permissions.AccessImportExport, Permissions.AccessReports] },\n children: [\n {\n path: '',\n pathMatch: 'full',\n redirectTo: 'import',\n },\n {\n path: 'import',\n component: OrgImportComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'importData',\n permissions: [Permissions.AccessImportExport],\n },\n },\n {\n path: 'export',\n component: OrgExportComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'exportVault',\n permissions: [Permissions.AccessImportExport],\n },\n },\n {\n path: 'exposed-passwords-report',\n component: OrgExposedPasswordsReportComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'exposedPasswordsReport',\n permissions: [Permissions.AccessReports],\n },\n },\n {\n path: 'inactive-two-factor-report',\n component: OrgInactiveTwoFactorReportComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'inactive2faReport',\n permissions: [Permissions.AccessReports],\n },\n },\n {\n path: 'reused-passwords-report',\n component: OrgReusedPasswordsReportComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'reusedPasswordsReport',\n permissions: [Permissions.AccessReports],\n },\n },\n {\n path: 'unsecured-websites-report',\n component: OrgUnsecuredWebsitesReportComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'unsecuredWebsitesReport',\n permissions: [Permissions.AccessReports],\n },\n },\n {\n path: 'weak-passwords-report',\n component: OrgWeakPasswordsReportComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'weakPasswordsReport',\n permissions: [Permissions.AccessReports],\n },\n },\n ],\n },\n {\n path: 'manage',\n component: OrgManageComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n permissions: [\n Permissions.ManageAssignedCollections,\n Permissions.ManageAllCollections,\n Permissions.AccessEventLogs,\n Permissions.ManageGroups,\n Permissions.ManageUsers,\n Permissions.ManagePolicies,\n ],\n },\n children: [\n {\n path: '',\n pathMatch: 'full',\n redirectTo: 'people',\n },\n {\n path: 'collections',\n component: OrgManageCollectionsComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'collections',\n permissions: [Permissions.ManageAssignedCollections, Permissions.ManageAllCollections],\n },\n },\n {\n path: 'events',\n component: OrgEventsComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'eventLogs',\n permissions: [Permissions.AccessEventLogs],\n },\n },\n {\n path: 'groups',\n component: OrgGroupsComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'groups',\n permissions: [Permissions.ManageGroups],\n },\n },\n {\n path: 'people',\n component: OrgPeopleComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'people',\n permissions: [Permissions.ManageUsers],\n },\n },\n {\n path: 'policies',\n component: OrgPoliciesComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'policies',\n permissions: [Permissions.ManagePolicies],\n },\n },\n ],\n },\n {\n path: 'settings',\n component: OrgSettingsComponent,\n canActivate: [OrganizationTypeGuardService],\n data: { permissions: [Permissions.ManageOrganization] },\n children: [\n { path: '', pathMatch: 'full', redirectTo: 'account' },\n { path: 'account', component: OrgAccountComponent, data: { titleId: 'myOrganization' } },\n { path: 'two-factor', component: OrgTwoFactorSetupComponent, data: { titleId: 'twoStepLogin' } },\n {\n path: 'billing',\n component: OrganizationBillingComponent,\n data: { titleId: 'billing' },\n },\n {\n path: 'subscription',\n component: OrganizationSubscriptionComponent,\n data: { titleId: 'subscription' },\n },\n ],\n },\n ],\n },\n { path: '**', redirectTo: '' },\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes, {\n useHash: true,\n paramsInheritanceStrategy: 'always',\n /*enableTracing: true,*/\n })],\n exports: [RouterModule],\n})\nexport class AppRoutingModule { }\n","import { BroadcasterService as BroadcasterServiceAbstraction } from '../abstractions/broadcaster.service';\n\nexport class BroadcasterService implements BroadcasterServiceAbstraction {\n subscribers: Map any> = new Map any>();\n\n send(message: any, id?: string) {\n if (id != null) {\n if (this.subscribers.has(id)) {\n this.subscribers.get(id)(message);\n }\n return;\n }\n\n this.subscribers.forEach(value => {\n value(message);\n });\n }\n\n subscribe(id: string, messageCallback: (message: any) => any) {\n this.subscribers.set(id, messageCallback);\n }\n\n unsubscribe(id: string) {\n if (this.subscribers.has(id)) {\n this.subscribers.delete(id);\n }\n }\n}\n","export function getDomain(host: string): string | null {\n return null;\n}\n","export class EmergencyAccessAcceptRequest {\n token: string;\n}\n","export class OrganizationUserAcceptRequest {\n token: string;\n}\n","import { Router } from '@angular/router';\n\nimport { PasswordHintRequest } from '../../models/request/passwordHintRequest';\n\nimport { ApiService } from '../../abstractions/api.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\nexport class HintComponent {\n email: string = '';\n formPromise: Promise;\n\n protected successRoute = 'login';\n protected onSuccessfulSubmit: () => void;\n\n constructor(protected router: Router, protected i18nService: I18nService,\n protected apiService: ApiService, protected platformUtilsService: PlatformUtilsService) { }\n\n async submit() {\n if (this.email == null || this.email === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('emailRequired'));\n return;\n }\n if (this.email.indexOf('@') === -1) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidEmail'));\n return;\n }\n\n try {\n this.formPromise = this.apiService.postPasswordHint(new PasswordHintRequest(this.email));\n await this.formPromise;\n this.platformUtilsService.showToast('success', null, this.i18nService.t('masterPassSent'));\n if (this.onSuccessfulSubmit != null) {\n this.onSuccessfulSubmit();\n } else if (this.router != null) {\n this.router.navigate([this.successRoute]);\n }\n } catch { }\n }\n}\n","export class PasswordHintRequest {\n email: string;\n\n constructor(email: string) {\n this.email = email;\n }\n}\n","import { OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ApiService } from '../../abstractions/api.service';\nimport { CryptoService } from '../../abstractions/crypto.service';\nimport { EnvironmentService } from '../../abstractions/environment.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { MessagingService } from '../../abstractions/messaging.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { StateService } from '../../abstractions/state.service';\nimport { StorageService } from '../../abstractions/storage.service';\nimport { UserService } from '../../abstractions/user.service';\nimport { VaultTimeoutService } from '../../abstractions/vaultTimeout.service';\n\nimport { ConstantsService } from '../../services/constants.service';\n\nimport { EncString } from '../../models/domain/encString';\nimport { SymmetricCryptoKey } from '../../models/domain/symmetricCryptoKey';\n\nimport { PasswordVerificationRequest } from '../../models/request/passwordVerificationRequest';\n\nimport { Utils } from '../../misc/utils';\n\nexport class LockComponent implements OnInit {\n masterPassword: string = '';\n pin: string = '';\n showPassword: boolean = false;\n email: string;\n pinLock: boolean = false;\n webVaultHostname: string = '';\n formPromise: Promise;\n supportsBiometric: boolean;\n biometricLock: boolean;\n biometricText: string;\n\n protected successRoute: string = 'vault';\n protected onSuccessfulSubmit: () => void;\n\n private invalidPinAttempts = 0;\n private pinSet: [boolean, boolean];\n\n constructor(protected router: Router, protected i18nService: I18nService,\n protected platformUtilsService: PlatformUtilsService, protected messagingService: MessagingService,\n protected userService: UserService, protected cryptoService: CryptoService,\n protected storageService: StorageService, protected vaultTimeoutService: VaultTimeoutService,\n protected environmentService: EnvironmentService, protected stateService: StateService,\n protected apiService: ApiService) { }\n\n async ngOnInit() {\n this.pinSet = await this.vaultTimeoutService.isPinLockSet();\n this.pinLock = (this.pinSet[0] && this.vaultTimeoutService.pinProtectedKey != null) || this.pinSet[1];\n this.supportsBiometric = await this.platformUtilsService.supportsBiometric();\n this.biometricLock = await this.vaultTimeoutService.isBiometricLockSet() && (await this.cryptoService.hasKey() || !this.platformUtilsService.supportsSecureStorage());\n this.biometricText = await this.storageService.get(ConstantsService.biometricText);\n this.email = await this.userService.getEmail();\n let vaultUrl = this.environmentService.getWebVaultUrl();\n if (vaultUrl == null) {\n vaultUrl = 'https://bitwarden.com';\n }\n this.webVaultHostname = Utils.getHostname(vaultUrl);\n }\n\n async submit() {\n if (this.pinLock && (this.pin == null || this.pin === '')) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('pinRequired'));\n return;\n }\n if (!this.pinLock && (this.masterPassword == null || this.masterPassword === '')) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n const kdf = await this.userService.getKdf();\n const kdfIterations = await this.userService.getKdfIterations();\n\n if (this.pinLock) {\n let failed = true;\n try {\n if (this.pinSet[0]) {\n const key = await this.cryptoService.makeKeyFromPin(this.pin, this.email, kdf, kdfIterations,\n this.vaultTimeoutService.pinProtectedKey);\n const encKey = await this.cryptoService.getEncKey(key);\n const protectedPin = await this.storageService.get(ConstantsService.protectedPin);\n const decPin = await this.cryptoService.decryptToUtf8(new EncString(protectedPin), encKey);\n failed = decPin !== this.pin;\n if (!failed) {\n await this.setKeyAndContinue(key);\n }\n } else {\n const key = await this.cryptoService.makeKeyFromPin(this.pin, this.email, kdf, kdfIterations);\n failed = false;\n await this.setKeyAndContinue(key);\n }\n } catch {\n failed = true;\n }\n\n if (failed) {\n this.invalidPinAttempts++;\n if (this.invalidPinAttempts >= 5) {\n this.messagingService.send('logout');\n return;\n }\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidPin'));\n }\n } else {\n const key = await this.cryptoService.makeKey(this.masterPassword, this.email, kdf, kdfIterations);\n const keyHash = await this.cryptoService.hashPassword(this.masterPassword, key);\n\n let passwordValid = false;\n\n if (keyHash != null) {\n const storedKeyHash = await this.cryptoService.getKeyHash();\n if (storedKeyHash != null) {\n passwordValid = storedKeyHash === keyHash;\n } else {\n const request = new PasswordVerificationRequest();\n request.masterPasswordHash = keyHash;\n try {\n this.formPromise = this.apiService.postAccountVerifyPassword(request);\n await this.formPromise;\n passwordValid = true;\n await this.cryptoService.setKeyHash(keyHash);\n } catch { }\n }\n }\n\n if (passwordValid) {\n if (this.pinSet[0]) {\n const protectedPin = await this.storageService.get(ConstantsService.protectedPin);\n const encKey = await this.cryptoService.getEncKey(key);\n const decPin = await this.cryptoService.decryptToUtf8(new EncString(protectedPin), encKey);\n const pinKey = await this.cryptoService.makePinKey(decPin, this.email, kdf, kdfIterations);\n this.vaultTimeoutService.pinProtectedKey = await this.cryptoService.encrypt(key.key, pinKey);\n }\n this.setKeyAndContinue(key);\n } else {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidMasterPassword'));\n }\n }\n }\n\n async logOut() {\n const confirmed = await this.platformUtilsService.showDialog(this.i18nService.t('logOutConfirmation'),\n this.i18nService.t('logOut'), this.i18nService.t('logOut'), this.i18nService.t('cancel'));\n if (confirmed) {\n this.messagingService.send('logout');\n }\n }\n\n async unlockBiometric() {\n if (!this.biometricLock) {\n return;\n }\n const success = await this.platformUtilsService.authenticateBiometric();\n\n if (success) {\n await this.doContinue();\n }\n }\n\n togglePassword() {\n this.showPassword = !this.showPassword;\n document.getElementById(this.pinLock ? 'pin' : 'masterPassword').focus();\n }\n\n private async setKeyAndContinue(key: SymmetricCryptoKey) {\n await this.cryptoService.setKey(key);\n this.doContinue();\n }\n\n private async doContinue() {\n this.vaultTimeoutService.biometricLocked = false;\n const disableFavicon = await this.storageService.get(ConstantsService.disableFaviconKey);\n await this.stateService.save(ConstantsService.disableFaviconKey, !!disableFavicon);\n this.messagingService.send('unlocked');\n if (this.onSuccessfulSubmit != null) {\n this.onSuccessfulSubmit();\n } else if (this.router != null) {\n this.router.navigate([this.successRoute]);\n }\n }\n}\n","import {\n Directive,\n Input,\n OnInit,\n} from '@angular/core';\n\nimport { Router } from '@angular/router';\n\nimport { AuthResult } from '../../models/domain/authResult';\n\nimport { AuthService } from '../../abstractions/auth.service';\nimport { CryptoFunctionService } from '../../abstractions/cryptoFunction.service';\nimport { EnvironmentService } from '../../abstractions/environment.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PasswordGenerationService } from '../../abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { StateService } from '../../abstractions/state.service';\nimport { StorageService } from '../../abstractions/storage.service';\n\nimport { ConstantsService } from '../../services/constants.service';\n\nimport { Utils } from '../../misc/utils';\n\nconst Keys = {\n rememberedEmail: 'rememberedEmail',\n rememberEmail: 'rememberEmail',\n};\n\n@Directive()\nexport class LoginComponent implements OnInit {\n @Input() email: string = '';\n @Input() rememberEmail = true;\n\n masterPassword: string = '';\n showPassword: boolean = false;\n formPromise: Promise;\n onSuccessfulLogin: () => Promise;\n onSuccessfulLoginNavigate: () => Promise;\n onSuccessfulLoginTwoFactorNavigate: () => Promise;\n\n protected twoFactorRoute = '2fa';\n protected successRoute = 'vault';\n\n constructor(protected authService: AuthService, protected router: Router,\n protected platformUtilsService: PlatformUtilsService, protected i18nService: I18nService,\n protected stateService: StateService, protected environmentService: EnvironmentService,\n protected passwordGenerationService: PasswordGenerationService,\n protected cryptoFunctionService: CryptoFunctionService, private storageService: StorageService) { }\n\n async ngOnInit() {\n if (this.email == null || this.email === '') {\n this.email = await this.storageService.get(Keys.rememberedEmail);\n if (this.email == null) {\n this.email = '';\n }\n }\n this.rememberEmail = await this.storageService.get(Keys.rememberEmail);\n if (this.rememberEmail == null) {\n this.rememberEmail = true;\n }\n if (Utils.isBrowser) {\n document.getElementById(this.email == null || this.email === '' ? 'email' : 'masterPassword').focus();\n }\n }\n\n async submit() {\n if (this.email == null || this.email === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('emailRequired'));\n return;\n }\n if (this.email.indexOf('@') === -1) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidEmail'));\n return;\n }\n if (this.masterPassword == null || this.masterPassword === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n try {\n this.formPromise = this.authService.logIn(this.email, this.masterPassword);\n const response = await this.formPromise;\n await this.storageService.save(Keys.rememberEmail, this.rememberEmail);\n if (this.rememberEmail) {\n await this.storageService.save(Keys.rememberedEmail, this.email);\n } else {\n await this.storageService.remove(Keys.rememberedEmail);\n }\n if (response.twoFactor) {\n if (this.onSuccessfulLoginTwoFactorNavigate != null) {\n this.onSuccessfulLoginTwoFactorNavigate();\n } else {\n this.router.navigate([this.twoFactorRoute]);\n }\n } else {\n const disableFavicon = await this.storageService.get(ConstantsService.disableFaviconKey);\n await this.stateService.save(ConstantsService.disableFaviconKey, !!disableFavicon);\n if (this.onSuccessfulLogin != null) {\n this.onSuccessfulLogin();\n }\n if (this.onSuccessfulLoginNavigate != null) {\n this.onSuccessfulLoginNavigate();\n } else {\n this.router.navigate([this.successRoute]);\n }\n }\n } catch { }\n }\n\n togglePassword() {\n this.showPassword = !this.showPassword;\n document.getElementById('masterPassword').focus();\n }\n\n async launchSsoBrowser(clientId: string, ssoRedirectUri: string) {\n // Generate necessary sso params\n const passwordOptions: any = {\n type: 'password',\n length: 64,\n uppercase: true,\n lowercase: true,\n numbers: true,\n special: false,\n };\n const state = await this.passwordGenerationService.generatePassword(passwordOptions);\n const ssoCodeVerifier = await this.passwordGenerationService.generatePassword(passwordOptions);\n const codeVerifierHash = await this.cryptoFunctionService.hash(ssoCodeVerifier, 'sha256');\n const codeChallenge = Utils.fromBufferToUrlB64(codeVerifierHash);\n\n // Save sso params\n await this.storageService.save(ConstantsService.ssoStateKey, state);\n await this.storageService.save(ConstantsService.ssoCodeVerifierKey, ssoCodeVerifier);\n\n // Build URI\n const webUrl = this.environmentService.getWebVaultUrl() == null ? 'https://vault.bitwarden.com' :\n this.environmentService.getWebVaultUrl();\n\n // Launch browser\n this.platformUtilsService.launchUri(webUrl + '/#/sso?clientId=' + clientId +\n '&redirectUri=' + encodeURIComponent(ssoRedirectUri) +\n '&state=' + state + '&codeChallenge=' + codeChallenge);\n }\n}\n","export class DeleteRecoverRequest {\n email: string;\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class TwoFactorRecoveryRequest extends PasswordVerificationRequest {\n recoveryCode: string;\n email: string;\n}\n","import { Router } from '@angular/router';\n\nimport { KeysRequest } from '../../models/request/keysRequest';\nimport { ReferenceEventRequest } from '../../models/request/referenceEventRequest';\nimport { RegisterRequest } from '../../models/request/registerRequest';\n\nimport { ApiService } from '../../abstractions/api.service';\nimport { AuthService } from '../../abstractions/auth.service';\nimport { CryptoService } from '../../abstractions/crypto.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PasswordGenerationService } from '../../abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { StateService } from '../../abstractions/state.service';\n\nimport { KdfType } from '../../enums/kdfType';\n\nexport class RegisterComponent {\n name: string = '';\n email: string = '';\n masterPassword: string = '';\n confirmMasterPassword: string = '';\n hint: string = '';\n showPassword: boolean = false;\n formPromise: Promise;\n masterPasswordScore: number;\n referenceData: ReferenceEventRequest;\n showTerms = true;\n acceptPolicies: boolean = false;\n\n protected successRoute = 'login';\n private masterPasswordStrengthTimeout: any;\n\n constructor(protected authService: AuthService, protected router: Router,\n protected i18nService: I18nService, protected cryptoService: CryptoService,\n protected apiService: ApiService, protected stateService: StateService,\n protected platformUtilsService: PlatformUtilsService,\n protected passwordGenerationService: PasswordGenerationService) {\n this.showTerms = !platformUtilsService.isSelfHost();\n }\n\n get masterPasswordScoreWidth() {\n return this.masterPasswordScore == null ? 0 : (this.masterPasswordScore + 1) * 20;\n }\n\n get masterPasswordScoreColor() {\n switch (this.masterPasswordScore) {\n case 4:\n return 'success';\n case 3:\n return 'primary';\n case 2:\n return 'warning';\n default:\n return 'danger';\n }\n }\n\n get masterPasswordScoreText() {\n switch (this.masterPasswordScore) {\n case 4:\n return this.i18nService.t('strong');\n case 3:\n return this.i18nService.t('good');\n case 2:\n return this.i18nService.t('weak');\n default:\n return this.masterPasswordScore != null ? this.i18nService.t('weak') : null;\n }\n }\n\n async submit() {\n if (!this.acceptPolicies && this.showTerms) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('acceptPoliciesError'));\n return;\n }\n\n if (this.email == null || this.email === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('emailRequired'));\n return;\n }\n if (this.email.indexOf('@') === -1) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidEmail'));\n return;\n }\n if (this.masterPassword == null || this.masterPassword === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n if (this.masterPassword.length < 8) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassLength'));\n return;\n }\n if (this.masterPassword !== this.confirmMasterPassword) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassDoesntMatch'));\n return;\n }\n\n const strengthResult = this.passwordGenerationService.passwordStrength(this.masterPassword,\n this.getPasswordStrengthUserInput());\n if (strengthResult != null && strengthResult.score < 3) {\n const result = await this.platformUtilsService.showDialog(this.i18nService.t('weakMasterPasswordDesc'),\n this.i18nService.t('weakMasterPassword'), this.i18nService.t('yes'), this.i18nService.t('no'),\n 'warning');\n if (!result) {\n return;\n }\n }\n\n if (this.hint === this.masterPassword) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'), this.i18nService.t('hintEqualsPassword'));\n return;\n }\n\n this.name = this.name === '' ? null : this.name;\n this.email = this.email.trim().toLowerCase();\n const kdf = KdfType.PBKDF2_SHA256;\n const useLowerKdf = this.platformUtilsService.isIE();\n const kdfIterations = useLowerKdf ? 10000 : 100000;\n const key = await this.cryptoService.makeKey(this.masterPassword, this.email, kdf, kdfIterations);\n const encKey = await this.cryptoService.makeEncKey(key);\n const hashedPassword = await this.cryptoService.hashPassword(this.masterPassword, key);\n const keys = await this.cryptoService.makeKeyPair(encKey[0]);\n const request = new RegisterRequest(this.email, this.name, hashedPassword,\n this.hint, encKey[1].encryptedString, kdf, kdfIterations, this.referenceData);\n request.keys = new KeysRequest(keys[0], keys[1].encryptedString);\n const orgInvite = await this.stateService.get('orgInvitation');\n if (orgInvite != null && orgInvite.token != null && orgInvite.organizationUserId != null) {\n request.token = orgInvite.token;\n request.organizationUserId = orgInvite.organizationUserId;\n }\n\n try {\n this.formPromise = this.apiService.postRegister(request);\n await this.formPromise;\n this.platformUtilsService.showToast('success', null, this.i18nService.t('newAccountCreated'));\n this.router.navigate([this.successRoute], { queryParams: { email: this.email } });\n } catch { }\n }\n\n togglePassword(confirmField: boolean) {\n this.showPassword = !this.showPassword;\n document.getElementById(confirmField ? 'masterPasswordRetype' : 'masterPassword').focus();\n }\n\n updatePasswordStrength() {\n if (this.masterPasswordStrengthTimeout != null) {\n clearTimeout(this.masterPasswordStrengthTimeout);\n }\n this.masterPasswordStrengthTimeout = setTimeout(() => {\n const strengthResult = this.passwordGenerationService.passwordStrength(this.masterPassword,\n this.getPasswordStrengthUserInput());\n this.masterPasswordScore = strengthResult == null ? null : strengthResult.score;\n }, 300);\n }\n\n private getPasswordStrengthUserInput() {\n let userInput: string[] = [];\n const atPosition = this.email.indexOf('@');\n if (atPosition > -1) {\n userInput = userInput.concat(this.email.substr(0, atPosition).trim().toLowerCase().split(/[^A-Za-z0-9]/));\n }\n if (this.name != null && this.name !== '') {\n userInput = userInput.concat(this.name.trim().toLowerCase().split(' '));\n }\n return userInput;\n }\n}\n","import { KeysRequest } from './keysRequest';\nimport { ReferenceEventRequest } from './referenceEventRequest';\n\nimport { KdfType } from '../../enums/kdfType';\n\nexport class RegisterRequest {\n name: string;\n email: string;\n masterPasswordHash: string;\n masterPasswordHint: string;\n key: string;\n keys: KeysRequest;\n token: string;\n organizationUserId: string;\n kdf: KdfType;\n kdfIterations: number;\n referenceData: ReferenceEventRequest;\n\n constructor(email: string, name: string, masterPasswordHash: string, masterPasswordHint: string, key: string,\n kdf: KdfType, kdfIterations: number, referenceData: ReferenceEventRequest) {\n this.name = name;\n this.email = email;\n this.masterPasswordHash = masterPasswordHash;\n this.masterPasswordHint = masterPasswordHint ? masterPasswordHint : null;\n this.key = key;\n this.kdf = kdf;\n this.kdfIterations = kdfIterations;\n this.referenceData = referenceData;\n }\n}\n","export class ReferenceEventRequest {\n id: string;\n layout: string;\n flow: string;\n}\n","import {\n ActivatedRoute,\n Router\n} from '@angular/router';\n\nimport { ApiService } from '../../abstractions/api.service';\nimport { CryptoService } from '../../abstractions/crypto.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { MessagingService } from '../../abstractions/messaging.service';\nimport { PasswordGenerationService } from '../../abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { PolicyService } from '../../abstractions/policy.service';\nimport { SyncService } from '../../abstractions/sync.service';\nimport { UserService } from '../../abstractions/user.service';\n\nimport { EncString } from '../../models/domain/encString';\nimport { SymmetricCryptoKey } from '../../models/domain/symmetricCryptoKey';\n\nimport { KeysRequest } from '../../models/request/keysRequest';\nimport { SetPasswordRequest } from '../../models/request/setPasswordRequest';\n\nimport { ChangePasswordComponent as BaseChangePasswordComponent } from './change-password.component';\n\nimport { KdfType } from '../../enums/kdfType';\n\nexport class SetPasswordComponent extends BaseChangePasswordComponent {\n syncLoading: boolean = true;\n showPassword: boolean = false;\n hint: string = '';\n identifier: string = null;\n\n onSuccessfulChangePassword: () => Promise;\n successRoute = 'vault';\n\n constructor(i18nService: I18nService, cryptoService: CryptoService, messagingService: MessagingService,\n userService: UserService, passwordGenerationService: PasswordGenerationService,\n platformUtilsService: PlatformUtilsService, policyService: PolicyService, private router: Router,\n private apiService: ApiService, private syncService: SyncService, private route: ActivatedRoute) {\n super(i18nService, cryptoService, messagingService, userService, passwordGenerationService,\n platformUtilsService, policyService);\n }\n\n async ngOnInit() {\n await this.syncService.fullSync(true);\n this.syncLoading = false;\n\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n if (qParams.identifier != null) {\n this.identifier = qParams.identifier;\n }\n\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n\n super.ngOnInit();\n }\n\n async setupSubmitActions() {\n this.kdf = KdfType.PBKDF2_SHA256;\n const useLowerKdf = this.platformUtilsService.isIE();\n this.kdfIterations = useLowerKdf ? 10000 : 100000;\n return true;\n }\n\n async performSubmitActions(masterPasswordHash: string, key: SymmetricCryptoKey,\n encKey: [SymmetricCryptoKey, EncString]) {\n const request = new SetPasswordRequest();\n request.masterPasswordHash = masterPasswordHash;\n request.key = encKey[1].encryptedString;\n request.masterPasswordHint = this.hint;\n request.kdf = this.kdf;\n request.kdfIterations = this.kdfIterations;\n request.orgIdentifier = this.identifier;\n\n const keys = await this.cryptoService.makeKeyPair(encKey[0]);\n request.keys = new KeysRequest(keys[0], keys[1].encryptedString);\n\n try {\n this.formPromise = this.apiService.setPassword(request);\n await this.formPromise;\n\n await this.userService.setInformation(await this.userService.getUserId(), await this.userService.getEmail(),\n this.kdf, this.kdfIterations);\n await this.cryptoService.setKey(key);\n await this.cryptoService.setKeyHash(masterPasswordHash);\n await this.cryptoService.setEncKey(encKey[1].encryptedString);\n await this.cryptoService.setEncPrivateKey(keys[1].encryptedString);\n\n if (this.onSuccessfulChangePassword != null) {\n this.onSuccessfulChangePassword();\n } else {\n this.router.navigate([this.successRoute]);\n }\n } catch {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('errorOccurred'));\n }\n }\n\n togglePassword(confirmField: boolean) {\n this.showPassword = !this.showPassword;\n document.getElementById(confirmField ? 'masterPasswordRetype' : 'masterPassword').focus();\n }\n}\n","import { KeysRequest } from './keysRequest';\n\nimport { KdfType } from '../../enums/kdfType';\n\nexport class SetPasswordRequest {\n masterPasswordHash: string;\n key: string;\n masterPasswordHint: string;\n keys: KeysRequest;\n kdf: KdfType;\n kdfIterations: number;\n orgIdentifier: string;\n}\n","import {\n Directive,\n EventEmitter,\n OnInit,\n Output,\n} from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { TwoFactorProviderType } from '../../enums/twoFactorProviderType';\n\nimport { AuthService } from '../../abstractions/auth.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\n@Directive()\nexport class TwoFactorOptionsComponent implements OnInit {\n @Output() onProviderSelected = new EventEmitter();\n @Output() onRecoverSelected = new EventEmitter();\n\n providers: any[] = [];\n\n constructor(protected authService: AuthService, protected router: Router,\n protected i18nService: I18nService, protected platformUtilsService: PlatformUtilsService,\n protected win: Window) { }\n\n ngOnInit() {\n this.providers = this.authService.getSupportedTwoFactorProviders(this.win);\n }\n\n choose(p: any) {\n this.onProviderSelected.emit(p.type);\n }\n\n recover() {\n this.platformUtilsService.launchUri('https://help.bitwarden.com/article/lost-two-step-device/');\n this.onRecoverSelected.emit();\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n EventEmitter,\n OnDestroy,\n Output,\n Type,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { MessagingService } from '../../abstractions/messaging.service';\n\n@Component({\n selector: 'app-modal',\n template: ``,\n})\nexport class ModalComponent implements OnDestroy {\n @Output() onClose = new EventEmitter();\n @Output() onClosed = new EventEmitter();\n @Output() onShow = new EventEmitter();\n @Output() onShown = new EventEmitter();\n @ViewChild('container', { read: ViewContainerRef, static: true }) container: ViewContainerRef;\n parentContainer: ViewContainerRef = null;\n fade: boolean = true;\n\n constructor(protected componentFactoryResolver: ComponentFactoryResolver,\n protected messagingService: MessagingService) { }\n\n ngOnDestroy() {\n document.body.classList.remove('modal-open');\n document.body.removeChild(document.querySelector('.modal-backdrop'));\n }\n\n show(type: Type, parentContainer: ViewContainerRef, fade: boolean = true,\n setComponentParameters: (component: T) => void = null): T {\n this.onShow.emit();\n this.messagingService.send('modalShow');\n this.parentContainer = parentContainer;\n this.fade = fade;\n\n document.body.classList.add('modal-open');\n const backdrop = document.createElement('div');\n backdrop.className = 'modal-backdrop' + (this.fade ? ' fade' : '');\n document.body.appendChild(backdrop);\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(type);\n const componentRef = this.container.createComponent(factory);\n if (setComponentParameters != null) {\n setComponentParameters(componentRef.instance);\n }\n\n document.querySelector('.modal-dialog').addEventListener('click', (e: Event) => {\n e.stopPropagation();\n });\n\n const modals = Array.from(document.querySelectorAll('.modal, .modal *[data-dismiss=\"modal\"]'));\n for (const closeElement of modals) {\n closeElement.addEventListener('click', event => {\n this.close();\n });\n }\n\n this.onShown.emit();\n this.messagingService.send('modalShown');\n return componentRef.instance;\n }\n\n close() {\n this.onClose.emit();\n this.messagingService.send('modalClose');\n this.onClosed.emit();\n this.messagingService.send('modalClosed');\n if (this.parentContainer != null) {\n this.parentContainer.clear();\n }\n }\n}\n","import {\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { TwoFactorProviderType } from '../../enums/twoFactorProviderType';\n\nimport { TwoFactorEmailRequest } from '../../models/request/twoFactorEmailRequest';\n\nimport { AuthResult } from '../../models/domain';\n\nimport { ApiService } from '../../abstractions/api.service';\nimport { AuthService } from '../../abstractions/auth.service';\nimport { EnvironmentService } from '../../abstractions/environment.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { StateService } from '../../abstractions/state.service';\nimport { StorageService } from '../../abstractions/storage.service';\n\nimport { TwoFactorProviders } from '../../services/auth.service';\nimport { ConstantsService } from '../../services/constants.service';\n\nimport * as DuoWebSDK from 'duo_web_sdk';\nimport { WebAuthn } from '../../misc/webauthn';\n\nexport class TwoFactorComponent implements OnInit, OnDestroy {\n token: string = '';\n remember: boolean = false;\n webAuthnReady: boolean = false;\n webAuthnNewTab: boolean = false;\n providers = TwoFactorProviders;\n providerType = TwoFactorProviderType;\n selectedProviderType: TwoFactorProviderType = TwoFactorProviderType.Authenticator;\n webAuthnSupported: boolean = false;\n webAuthn: WebAuthn = null;\n title: string = '';\n twoFactorEmail: string = null;\n formPromise: Promise;\n emailPromise: Promise;\n identifier: string = null;\n onSuccessfulLogin: () => Promise;\n onSuccessfulLoginNavigate: () => Promise;\n\n protected loginRoute = 'login';\n protected successRoute = 'vault';\n\n constructor(protected authService: AuthService, protected router: Router,\n protected i18nService: I18nService, protected apiService: ApiService,\n protected platformUtilsService: PlatformUtilsService, protected win: Window,\n protected environmentService: EnvironmentService, protected stateService: StateService,\n protected storageService: StorageService, protected route: ActivatedRoute) {\n this.webAuthnSupported = this.platformUtilsService.supportsWebAuthn(win);\n }\n\n async ngOnInit() {\n if (!this.authing || this.authService.twoFactorProvidersData == null) {\n this.router.navigate([this.loginRoute]);\n return;\n }\n\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n if (qParams.identifier != null) {\n this.identifier = qParams.identifier;\n }\n\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n\n if (this.needsLock) {\n this.successRoute = 'lock';\n }\n\n if (this.win != null && this.webAuthnSupported) {\n let webVaultUrl = this.environmentService.getWebVaultUrl();\n if (webVaultUrl == null) {\n webVaultUrl = 'https://vault.bitwarden.com';\n }\n this.webAuthn = new WebAuthn(this.win, webVaultUrl, this.webAuthnNewTab, this.platformUtilsService,\n this.i18nService, (token: string) => {\n this.token = token;\n this.submit();\n }, (error: string) => {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'), error);\n }, (info: string) => {\n if (info === 'ready') {\n this.webAuthnReady = true;\n }\n }\n );\n }\n\n this.selectedProviderType = this.authService.getDefaultTwoFactorProvider(this.webAuthnSupported);\n await this.init();\n }\n\n ngOnDestroy(): void {\n this.cleanupWebAuthn();\n this.webAuthn = null;\n }\n\n async init() {\n if (this.selectedProviderType == null) {\n this.title = this.i18nService.t('loginUnavailable');\n return;\n }\n\n this.cleanupWebAuthn();\n this.title = (TwoFactorProviders as any)[this.selectedProviderType].name;\n const providerData = this.authService.twoFactorProvidersData.get(this.selectedProviderType);\n switch (this.selectedProviderType) {\n case TwoFactorProviderType.WebAuthn:\n if (!this.webAuthnSupported || this.webAuthn == null) {\n break;\n }\n\n setTimeout(() => {\n this.webAuthn.init(providerData);\n }, 500);\n break;\n case TwoFactorProviderType.Duo:\n case TwoFactorProviderType.OrganizationDuo:\n setTimeout(() => {\n DuoWebSDK.init({\n iframe: undefined,\n host: providerData.Host,\n sig_request: providerData.Signature,\n submit_callback: async (f: HTMLFormElement) => {\n const sig = f.querySelector('input[name=\"sig_response\"]') as HTMLInputElement;\n if (sig != null) {\n this.token = sig.value;\n await this.submit();\n }\n },\n });\n }, 0);\n break;\n case TwoFactorProviderType.Email:\n this.twoFactorEmail = providerData.Email;\n if (this.authService.twoFactorProvidersData.size > 1) {\n await this.sendEmail(false);\n }\n break;\n default:\n break;\n }\n }\n\n async submit() {\n if (this.token == null || this.token === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('verificationCodeRequired'));\n return;\n }\n\n if (this.selectedProviderType === TwoFactorProviderType.WebAuthn) {\n if (this.webAuthn != null) {\n this.webAuthn.stop();\n } else {\n return;\n }\n } else if (this.selectedProviderType === TwoFactorProviderType.Email ||\n this.selectedProviderType === TwoFactorProviderType.Authenticator) {\n this.token = this.token.replace(' ', '').trim();\n }\n\n try {\n await this.doSubmit();\n } catch {\n if (this.selectedProviderType === TwoFactorProviderType.WebAuthn && this.webAuthn != null) {\n this.webAuthn.start();\n }\n }\n }\n\n async doSubmit() {\n this.formPromise = this.authService.logInTwoFactor(this.selectedProviderType, this.token, this.remember);\n const response: AuthResult = await this.formPromise;\n const disableFavicon = await this.storageService.get(ConstantsService.disableFaviconKey);\n await this.stateService.save(ConstantsService.disableFaviconKey, !!disableFavicon);\n if (this.onSuccessfulLogin != null) {\n this.onSuccessfulLogin();\n }\n if (response.resetMasterPassword) {\n this.successRoute = 'set-password';\n }\n if (this.onSuccessfulLoginNavigate != null) {\n this.onSuccessfulLoginNavigate();\n } else {\n this.router.navigate([this.successRoute], {\n queryParams: {\n identifier: this.identifier,\n },\n });\n }\n }\n\n async sendEmail(doToast: boolean) {\n if (this.selectedProviderType !== TwoFactorProviderType.Email) {\n return;\n }\n\n if (this.emailPromise != null) {\n return;\n }\n\n try {\n const request = new TwoFactorEmailRequest(this.authService.email, this.authService.masterPasswordHash);\n this.emailPromise = this.apiService.postTwoFactorEmail(request);\n await this.emailPromise;\n if (doToast) {\n this.platformUtilsService.showToast('success', null,\n this.i18nService.t('verificationCodeEmailSent', this.twoFactorEmail));\n }\n } catch { }\n\n this.emailPromise = null;\n }\n\n private cleanupWebAuthn() {\n if (this.webAuthn != null) {\n this.webAuthn.stop();\n this.webAuthn.cleanup();\n }\n }\n\n get authing(): boolean {\n return this.authService.authingWithPassword() || this.authService.authingWithSso() || this.authService.authingWithApiKey();\n }\n\n get needsLock(): boolean {\n return this.authService.authingWithSso() || this.authService.authingWithApiKey();\n }\n}\n","import { DeviceType } from '../../enums/deviceType';\n\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\nexport class DeviceRequest {\n type: DeviceType;\n name: string;\n identifier: string;\n pushToken?: string;\n\n constructor(appId: string, platformUtilsService: PlatformUtilsService) {\n this.type = platformUtilsService.getDevice();\n this.name = platformUtilsService.getDeviceString();\n this.identifier = appId;\n this.pushToken = null;\n }\n}\n","export class PreloginRequest {\n email: string;\n\n constructor(email: string) {\n this.email = email;\n }\n}\n","import { TwoFactorProviderType } from '../../enums/twoFactorProviderType';\n\nimport { DeviceRequest } from './deviceRequest';\n\nexport class TokenRequest {\n email: string;\n masterPasswordHash: string;\n code: string;\n codeVerifier: string;\n redirectUri: string;\n clientId: string;\n clientSecret: string;\n token: string;\n provider: TwoFactorProviderType;\n remember: boolean;\n device?: DeviceRequest;\n\n constructor(credentials: string[], codes: string[], clientIdClientSecret: string[], provider: TwoFactorProviderType,\n token: string, remember: boolean, device?: DeviceRequest) {\n if (credentials != null && credentials.length > 1) {\n this.email = credentials[0];\n this.masterPasswordHash = credentials[1];\n } else if (codes != null && codes.length > 2) {\n this.code = codes[0];\n this.codeVerifier = codes[1];\n this.redirectUri = codes[2];\n } else if (clientIdClientSecret != null && clientIdClientSecret.length > 1) {\n this.clientId = clientIdClientSecret[0];\n this.clientSecret = clientIdClientSecret[1];\n }\n this.token = token;\n this.provider = provider;\n this.remember = remember;\n this.device = device != null ? device : null;\n }\n\n toIdentityToken(clientId: string) {\n const obj: any = {\n scope: 'api offline_access',\n client_id: clientId,\n };\n\n if (this.clientSecret != null) {\n obj.scope = 'api';\n obj.grant_type = 'client_credentials';\n obj.client_secret = this.clientSecret;\n } else if (this.masterPasswordHash != null && this.email != null) {\n obj.grant_type = 'password';\n obj.username = this.email;\n obj.password = this.masterPasswordHash;\n } else if (this.code != null && this.codeVerifier != null && this.redirectUri != null) {\n obj.grant_type = 'authorization_code';\n obj.code = this.code;\n obj.code_verifier = this.codeVerifier;\n obj.redirect_uri = this.redirectUri;\n } else {\n throw new Error('must provide credentials or codes');\n }\n\n if (this.device) {\n obj.deviceType = this.device.type;\n obj.deviceIdentifier = this.device.identifier;\n obj.deviceName = this.device.name;\n // no push tokens for browser apps yet\n // obj.devicePushToken = this.device.pushToken;\n }\n\n if (this.token && this.provider != null) {\n obj.twoFactorToken = this.token;\n obj.twoFactorProvider = this.provider;\n obj.twoFactorRemember = this.remember ? '1' : '0';\n }\n\n return obj;\n }\n}\n","import { I18nService } from '../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../abstractions/platformUtils.service';\n\nexport class WebAuthn {\n private iframe: HTMLIFrameElement = null;\n private connectorLink: HTMLAnchorElement;\n private parseFunction = this.parseMessage.bind(this);\n\n constructor(private win: Window, private webVaultUrl: string, private webAuthnNewTab: boolean,\n private platformUtilsService: PlatformUtilsService, private i18nService: I18nService,\n private successCallback: Function, private errorCallback: Function, private infoCallback: Function) {\n this.connectorLink = win.document.createElement('a');\n }\n\n init(data: any): void {\n const params = new URLSearchParams({\n data: this.base64Encode(JSON.stringify(data)),\n parent: encodeURIComponent(this.win.document.location.href),\n btnText: encodeURIComponent(this.i18nService.t('webAuthnAuthenticate')),\n v: '1',\n });\n\n if (this.webAuthnNewTab) {\n // Firefox fallback which opens the webauthn page in a new tab\n params.append('locale', this.i18nService.translationLocale);\n this.platformUtilsService.launchUri(`${this.webVaultUrl}/webauthn-fallback-connector.html?${params}`);\n } else {\n this.connectorLink.href = `${this.webVaultUrl}/webauthn-connector.html?${params}`;\n this.iframe = this.win.document.getElementById('webauthn_iframe') as HTMLIFrameElement;\n this.iframe.allow = 'publickey-credentials-get ' + new URL(this.webVaultUrl).origin;\n this.iframe.src = this.connectorLink.href;\n\n this.win.addEventListener('message', this.parseFunction, false);\n }\n }\n\n stop() {\n this.sendMessage('stop');\n }\n\n start() {\n this.sendMessage('start');\n }\n\n sendMessage(message: any) {\n if (!this.iframe || !this.iframe.src || !this.iframe.contentWindow) {\n return;\n }\n\n this.iframe.contentWindow.postMessage(message, this.iframe.src);\n }\n\n base64Encode(str: string): string {\n return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, (match, p1) => {\n return String.fromCharCode(('0x' + p1) as any);\n }));\n }\n\n cleanup() {\n this.win.removeEventListener('message', this.parseFunction, false);\n }\n\n private parseMessage(event: MessageEvent) {\n if (!this.validMessage(event)) {\n return;\n }\n\n const parts: string[] = event.data.split('|');\n if (parts[0] === 'success' && this.successCallback) {\n this.successCallback(parts[1]);\n } else if (parts[0] === 'error' && this.errorCallback) {\n this.errorCallback(parts[1]);\n } else if (parts[0] === 'info' && this.infoCallback) {\n this.infoCallback(parts[1]);\n }\n }\n\n private validMessage(event: MessageEvent) {\n if (event.origin == null || event.origin === '' || event.origin !== (this.connectorLink as any).origin ||\n event.data == null || typeof (event.data) !== 'string') {\n return false;\n }\n\n return event.data.indexOf('success|') === 0 || event.data.indexOf('error|') === 0 ||\n event.data.indexOf('info|') === 0;\n }\n}\n","export class VerifyEmailRequest {\n userId: string;\n token: string;\n\n constructor(userId: string, token: string) {\n this.userId = userId;\n this.token = token;\n }\n}\n","export class VerifyDeleteRecoverRequest {\n userId: string;\n token: string;\n\n constructor(userId: string, token: string) {\n this.userId = userId;\n this.token = token;\n }\n}\n","import { SelectionReadOnlyRequest } from './selectionReadOnlyRequest';\n\nexport class GroupRequest {\n name: string;\n accessAll: boolean;\n externalId: string;\n collections: SelectionReadOnlyRequest[] = [];\n}\n","export class OrganizationUserConfirmRequest {\n key: string;\n}\n","import { SelectionReadOnlyRequest } from './selectionReadOnlyRequest';\n\nimport { OrganizationUserType } from '../../enums/organizationUserType';\nimport { PermissionsApi } from '../api/permissionsApi';\n\nexport class OrganizationUserInviteRequest {\n emails: string[] = [];\n type: OrganizationUserType;\n accessAll: boolean;\n collections: SelectionReadOnlyRequest[] = [];\n permissions: PermissionsApi;\n}\n","import { SelectionReadOnlyRequest } from './selectionReadOnlyRequest';\n\nimport { OrganizationUserType } from '../../enums/organizationUserType';\nimport { PermissionsApi } from '../api/permissionsApi';\n\nexport class OrganizationUserUpdateRequest {\n type: OrganizationUserType;\n accessAll: boolean;\n collections: SelectionReadOnlyRequest[] = [];\n permissions: PermissionsApi;\n}\n","export class OrganizationUserUpdateGroupsRequest {\n groupIds: string[] = [];\n}\n","export abstract class AppIdService {\n getAppId: () => Promise;\n getAnonymousAppId: () => Promise;\n}\n","import { LogLevelType } from '../enums/logLevelType';\n\nexport abstract class LogService {\n debug: (message: string) => void;\n info: (message: string) => void;\n warning: (message: string) => void;\n error: (message: string) => void;\n write: (level: LogLevelType, message: string) => void;\n time: (label: string) => void;\n timeEnd: (label: string) => [number, number];\n}\n","import { PolicyType } from '../../enums/policyType';\n\nexport class PolicyRequest {\n type: PolicyType;\n enabled: boolean;\n data: any;\n}\n","export class OrganizationUpdateRequest {\n name: string;\n identifier: string;\n businessName: string;\n billingEmail: string;\n}\n","export enum TransactionType {\n Charge = 0,\n Credit = 1,\n PromotionalCredit = 2,\n ReferralCredit = 3,\n Refund = 4,\n}\n","export class VerifyBankRequest {\n amount1: number;\n amount2: number;\n}\n","export class BitPayInvoiceRequest {\n userId: string;\n organizationId: string;\n credit: boolean;\n amount: number;\n returnUrl: string;\n name: string;\n email: string;\n}\n","import { PaymentMethodType } from '../../enums/paymentMethodType';\nimport { OrganizationTaxInfoUpdateRequest } from '../request/organizationTaxInfoUpdateRequest';\n\nexport class PaymentRequest extends OrganizationTaxInfoUpdateRequest {\n paymentMethodType: PaymentMethodType;\n paymentToken: string;\n}\n","import { PaymentMethodType } from '../../enums/paymentMethodType';\nimport { PlanType } from '../../enums/planType';\n\nexport class OrganizationCreateRequest {\n name: string;\n businessName: string;\n billingEmail: string;\n planType: PlanType;\n key: string;\n paymentMethodType: PaymentMethodType;\n paymentToken: string;\n additionalSeats: number;\n additionalStorageGb: number;\n premiumAccessAddon: boolean;\n collectionName: string;\n taxIdNumber: string;\n billingAddressLine1: string;\n billingAddressLine2: string;\n billingAddressCity: string;\n billingAddressState: string;\n billingAddressPostalCode: string;\n billingAddressCountry: string;\n}\n","import { PlanType } from '../../enums/planType';\n\nexport class OrganizationUpgradeRequest {\n businessName: string;\n planType: PlanType;\n additionalSeats: number;\n additionalStorageGb: number;\n premiumAccessAddon: boolean;\n billingAddressCountry: string;\n billingAddressPostalCode: string;\n}\n","export class SeatRequest {\n seatAdjustment: number;\n}\n","export class StorageRequest {\n storageGbAdjustment: number;\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class UpdateTwoFactorDuoRequest extends PasswordVerificationRequest {\n integrationKey: string;\n secretKey: string;\n host: string;\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nimport { TwoFactorProviderType } from '../../enums/twoFactorProviderType';\n\nexport class TwoFactorProviderRequest extends PasswordVerificationRequest {\n type: TwoFactorProviderType;\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class UpdateTwoFactorAuthenticatorRequest extends PasswordVerificationRequest {\n token: string;\n key: string;\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class UpdateTwoFactorEmailRequest extends PasswordVerificationRequest {\n token: string;\n email: string;\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class UpdateTwoFactorWebAuthnDeleteRequest extends PasswordVerificationRequest {\n id: number;\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class UpdateTwoFactorWebAuthnRequest extends PasswordVerificationRequest {\n deviceResponse: PublicKeyCredential;\n name: string;\n id: number;\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class UpdateTwoFactorYubioOtpRequest extends PasswordVerificationRequest {\n key1: string;\n key2: string;\n key3: string;\n key4: string;\n key5: string;\n nfc: boolean;\n}\n","import {\n Directive,\n EventEmitter,\n Output,\n} from '@angular/core';\n\nimport { CryptoService } from '../../abstractions/crypto.service';\nimport { EventService } from '../../abstractions/event.service';\nimport { ExportService } from '../../abstractions/export.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { EventType } from '../../enums/eventType';\n\n@Directive()\nexport class ExportComponent {\n @Output() onSaved = new EventEmitter();\n\n formPromise: Promise;\n masterPassword: string;\n format: 'json' | 'encrypted_json' | 'csv' = 'json';\n showPassword = false;\n\n constructor(protected cryptoService: CryptoService, protected i18nService: I18nService,\n protected platformUtilsService: PlatformUtilsService, protected exportService: ExportService,\n protected eventService: EventService, protected win: Window) { }\n\n get encryptedFormat() {\n return this.format === 'encrypted_json';\n }\n\n async submit() {\n if (this.masterPassword == null || this.masterPassword === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidMasterPassword'));\n return;\n }\n\n const acceptedWarning = await this.warningDialog();\n if (!acceptedWarning) {\n return;\n }\n\n const keyHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n const storedKeyHash = await this.cryptoService.getKeyHash();\n if (storedKeyHash != null && keyHash != null && storedKeyHash === keyHash) {\n try {\n this.formPromise = this.getExportData();\n const data = await this.formPromise;\n this.downloadFile(data);\n this.saved();\n await this.collectEvent();\n } catch { }\n } else {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidMasterPassword'));\n }\n }\n\n async warningDialog() {\n if (this.encryptedFormat) {\n return await this.platformUtilsService.showDialog(\n '

' + this.i18nService.t('encExportKeyWarningDesc') +\n '

' + this.i18nService.t('encExportAccountWarningDesc'),\n this.i18nService.t('confirmVaultExport'), this.i18nService.t('exportVault'),\n this.i18nService.t('cancel'), 'warning',\n true);\n } else {\n return await this.platformUtilsService.showDialog(\n this.i18nService.t('exportWarningDesc'),\n this.i18nService.t('confirmVaultExport'), this.i18nService.t('exportVault'),\n this.i18nService.t('cancel'), 'warning');\n }\n }\n\n togglePassword() {\n this.showPassword = !this.showPassword;\n document.getElementById('masterPassword').focus();\n }\n\n protected saved() {\n this.onSaved.emit();\n }\n\n protected getExportData() {\n return this.exportService.getExport(this.format);\n }\n\n protected getFileName(prefix?: string) {\n let extension = this.format;\n if (this.format === 'encrypted_json') {\n if (prefix == null) {\n prefix = 'encrypted';\n } else {\n prefix = 'encrypted_' + prefix;\n }\n extension = 'json';\n }\n return this.exportService.getFileName(prefix, extension);\n }\n\n protected async collectEvent(): Promise {\n await this.eventService.collect(EventType.User_ClientExportedVault);\n }\n\n private downloadFile(csv: string): void {\n const fileName = this.getFileName();\n this.platformUtilsService.saveFile(this.win, csv, { type: 'text/plain' }, fileName);\n }\n}\n","export class AttachmentRequest {\n fileName: string;\n key: string;\n fileSize: number;\n adminRequest: boolean;\n}\n","import {\n CdkDragDrop,\n moveItemInArray,\n} from '@angular/cdk/drag-drop';\nimport {\n Directive,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { CipherType } from '../../enums/cipherType';\nimport { EventType } from '../../enums/eventType';\nimport { FieldType } from '../../enums/fieldType';\nimport { OrganizationUserStatusType } from '../../enums/organizationUserStatusType';\nimport { PolicyType } from '../../enums/policyType';\nimport { SecureNoteType } from '../../enums/secureNoteType';\nimport { UriMatchType } from '../../enums/uriMatchType';\n\nimport { AuditService } from '../../abstractions/audit.service';\nimport { CipherService } from '../../abstractions/cipher.service';\nimport { CollectionService } from '../../abstractions/collection.service';\nimport { EventService } from '../../abstractions/event.service';\nimport { FolderService } from '../../abstractions/folder.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { MessagingService } from '../../abstractions/messaging.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { PolicyService } from '../../abstractions/policy.service';\nimport { StateService } from '../../abstractions/state.service';\nimport { UserService } from '../../abstractions/user.service';\n\nimport { Cipher } from '../../models/domain/cipher';\n\nimport { CardView } from '../../models/view/cardView';\nimport { CipherView } from '../../models/view/cipherView';\nimport { CollectionView } from '../../models/view/collectionView';\nimport { FieldView } from '../../models/view/fieldView';\nimport { FolderView } from '../../models/view/folderView';\nimport { IdentityView } from '../../models/view/identityView';\nimport { LoginUriView } from '../../models/view/loginUriView';\nimport { LoginView } from '../../models/view/loginView';\nimport { SecureNoteView } from '../../models/view/secureNoteView';\n\nimport { Utils } from '../../misc/utils';\n\n@Directive()\nexport class AddEditComponent implements OnInit {\n @Input() cloneMode: boolean = false;\n @Input() folderId: string = null;\n @Input() cipherId: string;\n @Input() type: CipherType;\n @Input() collectionIds: string[];\n @Input() organizationId: string = null;\n @Output() onSavedCipher = new EventEmitter();\n @Output() onDeletedCipher = new EventEmitter();\n @Output() onRestoredCipher = new EventEmitter();\n @Output() onCancelled = new EventEmitter();\n @Output() onEditAttachments = new EventEmitter();\n @Output() onShareCipher = new EventEmitter();\n @Output() onEditCollections = new EventEmitter();\n @Output() onGeneratePassword = new EventEmitter();\n\n editMode: boolean = false;\n cipher: CipherView;\n folders: FolderView[];\n collections: CollectionView[] = [];\n title: string;\n formPromise: Promise;\n deletePromise: Promise;\n restorePromise: Promise;\n checkPasswordPromise: Promise;\n showPassword: boolean = false;\n showCardCode: boolean = false;\n cipherType = CipherType;\n fieldType = FieldType;\n addFieldType: FieldType = FieldType.Text;\n typeOptions: any[];\n cardBrandOptions: any[];\n cardExpMonthOptions: any[];\n identityTitleOptions: any[];\n addFieldTypeOptions: any[];\n uriMatchOptions: any[];\n ownershipOptions: any[] = [];\n currentDate = new Date();\n allowPersonal = true;\n\n protected writeableCollections: CollectionView[];\n private previousCipherId: string;\n\n constructor(protected cipherService: CipherService, protected folderService: FolderService,\n protected i18nService: I18nService, protected platformUtilsService: PlatformUtilsService,\n protected auditService: AuditService, protected stateService: StateService,\n protected userService: UserService, protected collectionService: CollectionService,\n protected messagingService: MessagingService, protected eventService: EventService,\n protected policyService: PolicyService) {\n this.typeOptions = [\n { name: i18nService.t('typeLogin'), value: CipherType.Login },\n { name: i18nService.t('typeCard'), value: CipherType.Card },\n { name: i18nService.t('typeIdentity'), value: CipherType.Identity },\n { name: i18nService.t('typeSecureNote'), value: CipherType.SecureNote },\n ];\n this.cardBrandOptions = [\n { name: '-- ' + i18nService.t('select') + ' --', value: null },\n { name: 'Visa', value: 'Visa' },\n { name: 'Mastercard', value: 'Mastercard' },\n { name: 'American Express', value: 'Amex' },\n { name: 'Discover', value: 'Discover' },\n { name: 'Diners Club', value: 'Diners Club' },\n { name: 'JCB', value: 'JCB' },\n { name: 'Maestro', value: 'Maestro' },\n { name: 'UnionPay', value: 'UnionPay' },\n { name: i18nService.t('other'), value: 'Other' },\n ];\n this.cardExpMonthOptions = [\n { name: '-- ' + i18nService.t('select') + ' --', value: null },\n { name: '01 - ' + i18nService.t('january'), value: '1' },\n { name: '02 - ' + i18nService.t('february'), value: '2' },\n { name: '03 - ' + i18nService.t('march'), value: '3' },\n { name: '04 - ' + i18nService.t('april'), value: '4' },\n { name: '05 - ' + i18nService.t('may'), value: '5' },\n { name: '06 - ' + i18nService.t('june'), value: '6' },\n { name: '07 - ' + i18nService.t('july'), value: '7' },\n { name: '08 - ' + i18nService.t('august'), value: '8' },\n { name: '09 - ' + i18nService.t('september'), value: '9' },\n { name: '10 - ' + i18nService.t('october'), value: '10' },\n { name: '11 - ' + i18nService.t('november'), value: '11' },\n { name: '12 - ' + i18nService.t('december'), value: '12' },\n ];\n this.identityTitleOptions = [\n { name: '-- ' + i18nService.t('select') + ' --', value: null },\n { name: i18nService.t('mr'), value: i18nService.t('mr') },\n { name: i18nService.t('mrs'), value: i18nService.t('mrs') },\n { name: i18nService.t('ms'), value: i18nService.t('ms') },\n { name: i18nService.t('dr'), value: i18nService.t('dr') },\n ];\n this.addFieldTypeOptions = [\n { name: i18nService.t('cfTypeText'), value: FieldType.Text },\n { name: i18nService.t('cfTypeHidden'), value: FieldType.Hidden },\n { name: i18nService.t('cfTypeBoolean'), value: FieldType.Boolean },\n ];\n this.uriMatchOptions = [\n { name: i18nService.t('defaultMatchDetection'), value: null },\n { name: i18nService.t('baseDomain'), value: UriMatchType.Domain },\n { name: i18nService.t('host'), value: UriMatchType.Host },\n { name: i18nService.t('startsWith'), value: UriMatchType.StartsWith },\n { name: i18nService.t('regEx'), value: UriMatchType.RegularExpression },\n { name: i18nService.t('exact'), value: UriMatchType.Exact },\n { name: i18nService.t('never'), value: UriMatchType.Never },\n ];\n }\n\n async ngOnInit() {\n await this.init();\n }\n\n async init() {\n const policies = await this.policyService.getAll(PolicyType.PersonalOwnership);\n const myEmail = await this.userService.getEmail();\n this.ownershipOptions.push({ name: myEmail, value: null });\n const orgs = await this.userService.getAllOrganizations();\n orgs.sort(Utils.getSortFunction(this.i18nService, 'name')).forEach(o => {\n if (o.enabled && o.status === OrganizationUserStatusType.Confirmed) {\n this.ownershipOptions.push({ name: o.name, value: o.id });\n if (policies != null && o.usePolicies && !o.canManagePolicies && this.allowPersonal) {\n for (const policy of policies) {\n if (policy.organizationId === o.id && policy.enabled) {\n this.allowPersonal = false;\n this.ownershipOptions.splice(0, 1);\n // Default to the organization who owns this policy for now (if necessary)\n if (this.organizationId == null) {\n this.organizationId = o.id;\n }\n break;\n }\n }\n }\n }\n });\n this.writeableCollections = await this.loadCollections();\n }\n\n async load() {\n this.editMode = this.cipherId != null;\n if (this.editMode) {\n this.editMode = true;\n if (this.cloneMode) {\n this.cloneMode = true;\n this.title = this.i18nService.t('addItem');\n } else {\n this.title = this.i18nService.t('editItem');\n }\n } else {\n this.title = this.i18nService.t('addItem');\n }\n\n const addEditCipherInfo: any = await this.stateService.get('addEditCipherInfo');\n if (addEditCipherInfo != null) {\n this.cipher = addEditCipherInfo.cipher;\n this.collectionIds = addEditCipherInfo.collectionIds;\n }\n await this.stateService.remove('addEditCipherInfo');\n\n if (this.cipher == null) {\n if (this.editMode) {\n const cipher = await this.loadCipher();\n this.cipher = await cipher.decrypt();\n\n // Adjust Cipher Name if Cloning\n if (this.cloneMode) {\n this.cipher.name += ' - ' + this.i18nService.t('clone');\n // If not allowing personal ownership, update cipher's org Id to prompt downstream changes\n if (this.cipher.organizationId == null && !this.allowPersonal) {\n this.cipher.organizationId = this.organizationId;\n }\n }\n } else {\n this.cipher = new CipherView();\n this.cipher.organizationId = this.organizationId == null ? null : this.organizationId;\n this.cipher.folderId = this.folderId;\n this.cipher.type = this.type == null ? CipherType.Login : this.type;\n this.cipher.login = new LoginView();\n this.cipher.login.uris = [new LoginUriView()];\n this.cipher.card = new CardView();\n this.cipher.identity = new IdentityView();\n this.cipher.secureNote = new SecureNoteView();\n this.cipher.secureNote.type = SecureNoteType.Generic;\n }\n }\n\n if (this.cipher != null && (!this.editMode || addEditCipherInfo != null || this.cloneMode)) {\n await this.organizationChanged();\n if (this.collectionIds != null && this.collectionIds.length > 0 && this.collections.length > 0) {\n this.collections.forEach(c => {\n if (this.collectionIds.indexOf(c.id) > -1) {\n (c as any).checked = true;\n }\n });\n }\n }\n\n this.folders = await this.folderService.getAllDecrypted();\n\n if (this.editMode && this.previousCipherId !== this.cipherId) {\n this.eventService.collect(EventType.Cipher_ClientViewed, this.cipherId);\n }\n this.previousCipherId = this.cipherId;\n }\n\n async submit(): Promise {\n if (this.cipher.isDeleted) {\n return this.restore();\n }\n\n if (this.cipher.name == null || this.cipher.name === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('nameRequired'));\n return false;\n }\n\n if ((!this.editMode || this.cloneMode) && !this.allowPersonal && this.cipher.organizationId == null) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('personalOwnershipSubmitError'));\n return false;\n }\n\n if ((!this.editMode || this.cloneMode) && this.cipher.type === CipherType.Login &&\n this.cipher.login.uris != null && this.cipher.login.uris.length === 1 &&\n (this.cipher.login.uris[0].uri == null || this.cipher.login.uris[0].uri === '')) {\n this.cipher.login.uris = null;\n }\n\n // Allows saving of selected collections during \"Add\" and \"Clone\" flows\n if ((!this.editMode || this.cloneMode) && this.cipher.organizationId != null) {\n this.cipher.collectionIds = this.collections == null ? [] :\n this.collections.filter(c => (c as any).checked).map(c => c.id);\n }\n\n // Clear current Cipher Id to trigger \"Add\" cipher flow\n if (this.cloneMode) {\n this.cipher.id = null;\n }\n\n const cipher = await this.encryptCipher();\n try {\n this.formPromise = this.saveCipher(cipher);\n await this.formPromise;\n this.cipher.id = cipher.id;\n this.platformUtilsService.showToast('success', null,\n this.i18nService.t(this.editMode && !this.cloneMode ? 'editedItem' : 'addedItem'));\n this.onSavedCipher.emit(this.cipher);\n this.messagingService.send(this.editMode && !this.cloneMode ? 'editedCipher' : 'addedCipher');\n return true;\n } catch { }\n\n return false;\n }\n\n addUri() {\n if (this.cipher.type !== CipherType.Login) {\n return;\n }\n\n if (this.cipher.login.uris == null) {\n this.cipher.login.uris = [];\n }\n\n this.cipher.login.uris.push(new LoginUriView());\n }\n\n removeUri(uri: LoginUriView) {\n if (this.cipher.type !== CipherType.Login || this.cipher.login.uris == null) {\n return;\n }\n\n const i = this.cipher.login.uris.indexOf(uri);\n if (i > -1) {\n this.cipher.login.uris.splice(i, 1);\n }\n }\n\n addField() {\n if (this.cipher.fields == null) {\n this.cipher.fields = [];\n }\n\n const f = new FieldView();\n f.type = this.addFieldType;\n f.newField = true;\n this.cipher.fields.push(f);\n }\n\n removeField(field: FieldView) {\n const i = this.cipher.fields.indexOf(field);\n if (i > -1) {\n this.cipher.fields.splice(i, 1);\n }\n }\n\n trackByFunction(index: number, item: any) {\n return index;\n }\n\n cancel() {\n this.onCancelled.emit(this.cipher);\n }\n\n attachments() {\n this.onEditAttachments.emit(this.cipher);\n }\n\n share() {\n this.onShareCipher.emit(this.cipher);\n }\n\n editCollections() {\n this.onEditCollections.emit(this.cipher);\n }\n\n async delete(): Promise {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t(this.cipher.isDeleted ? 'permanentlyDeleteItemConfirmation' : 'deleteItemConfirmation'),\n this.i18nService.t('deleteItem'), this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.deletePromise = this.deleteCipher();\n await this.deletePromise;\n this.platformUtilsService.showToast('success', null,\n this.i18nService.t(this.cipher.isDeleted ? 'permanentlyDeletedItem' : 'deletedItem'));\n this.onDeletedCipher.emit(this.cipher);\n this.messagingService.send(this.cipher.isDeleted ? 'permanentlyDeletedCipher' : 'deletedCipher');\n } catch { }\n\n return true;\n }\n\n async restore(): Promise {\n if (!this.cipher.isDeleted) {\n return false;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('restoreItemConfirmation'), this.i18nService.t('restoreItem'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.restorePromise = this.restoreCipher();\n await this.restorePromise;\n this.platformUtilsService.showToast('success', null, this.i18nService.t('restoredItem'));\n this.onRestoredCipher.emit(this.cipher);\n this.messagingService.send('restoredCipher');\n } catch { }\n\n return true;\n }\n\n async generatePassword(): Promise {\n if (this.cipher.login != null && this.cipher.login.password != null && this.cipher.login.password.length) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('overwritePasswordConfirmation'), this.i18nService.t('overwritePassword'),\n this.i18nService.t('yes'), this.i18nService.t('no'));\n if (!confirmed) {\n return false;\n }\n }\n\n this.onGeneratePassword.emit();\n return true;\n }\n\n togglePassword() {\n this.showPassword = !this.showPassword;\n document.getElementById('loginPassword').focus();\n if (this.editMode && this.showPassword) {\n this.eventService.collect(EventType.Cipher_ClientToggledPasswordVisible, this.cipherId);\n }\n }\n\n toggleCardCode() {\n this.showCardCode = !this.showCardCode;\n document.getElementById('cardCode').focus();\n if (this.editMode && this.showCardCode) {\n this.eventService.collect(EventType.Cipher_ClientToggledCardCodeVisible, this.cipherId);\n }\n }\n\n toggleFieldValue(field: FieldView) {\n const f = (field as any);\n f.showValue = !f.showValue;\n if (this.editMode && f.showValue) {\n this.eventService.collect(EventType.Cipher_ClientToggledHiddenFieldVisible, this.cipherId);\n }\n }\n\n toggleUriOptions(uri: LoginUriView) {\n const u = (uri as any);\n u.showOptions = u.showOptions == null && uri.match != null ? false : !u.showOptions;\n }\n\n loginUriMatchChanged(uri: LoginUriView) {\n const u = (uri as any);\n u.showOptions = u.showOptions == null ? true : u.showOptions;\n }\n\n drop(event: CdkDragDrop) {\n moveItemInArray(this.cipher.fields, event.previousIndex, event.currentIndex);\n }\n\n async organizationChanged() {\n if (this.writeableCollections != null) {\n this.writeableCollections.forEach(c => (c as any).checked = false);\n }\n if (this.cipher.organizationId != null) {\n this.collections = this.writeableCollections.filter(c => c.organizationId === this.cipher.organizationId);\n const org = await this.userService.getOrganization(this.cipher.organizationId);\n if (org != null) {\n this.cipher.organizationUseTotp = org.useTotp;\n }\n } else {\n this.collections = [];\n }\n }\n\n async checkPassword() {\n if (this.checkPasswordPromise != null) {\n return;\n }\n\n if (this.cipher.login == null || this.cipher.login.password == null || this.cipher.login.password === '') {\n return;\n }\n\n this.checkPasswordPromise = this.auditService.passwordLeaked(this.cipher.login.password);\n const matches = await this.checkPasswordPromise;\n this.checkPasswordPromise = null;\n\n if (matches > 0) {\n this.platformUtilsService.showToast('warning', null,\n this.i18nService.t('passwordExposed', matches.toString()));\n } else {\n this.platformUtilsService.showToast('success', null, this.i18nService.t('passwordSafe'));\n }\n }\n\n protected async loadCollections() {\n const allCollections = await this.collectionService.getAllDecrypted();\n return allCollections.filter(c => !c.readOnly);\n }\n\n protected loadCipher() {\n return this.cipherService.get(this.cipherId);\n }\n\n protected encryptCipher() {\n return this.cipherService.encrypt(this.cipher);\n }\n\n protected saveCipher(cipher: Cipher) {\n return this.cipherService.saveWithServer(cipher);\n }\n\n protected deleteCipher() {\n return this.cipher.isDeleted ? this.cipherService.deleteWithServer(this.cipher.id)\n : this.cipherService.softDeleteWithServer(this.cipher.id);\n }\n\n protected restoreCipher() {\n return this.cipherService.restoreWithServer(this.cipher.id);\n }\n}\n","export { AttachmentResponse } from './attachmentResponse';\nexport { CipherResponse } from './cipherResponse';\nexport { CollectionResponse } from './collectionResponse';\nexport { DeviceResponse } from './deviceResponse';\nexport { DomainsResponse } from './domainsResponse';\nexport { ErrorResponse } from './errorResponse';\nexport { FolderResponse } from './folderResponse';\nexport { GlobalDomainResponse } from './globalDomainResponse';\nexport { IdentityTokenResponse } from './identityTokenResponse';\nexport { IdentityTwoFactorResponse } from './identityTwoFactorResponse';\nexport { KeysResponse } from './keysResponse';\nexport { ListResponse } from './listResponse';\nexport { ProfileOrganizationResponse } from './profileOrganizationResponse';\nexport { ProfileResponse } from './profileResponse';\nexport { SyncResponse } from './syncResponse';\n","import { BaseResponse } from './baseResponse';\n\nexport class PasswordHistoryResponse extends BaseResponse {\n password: string;\n lastUsedDate: string;\n\n constructor(response: any) {\n super(response);\n this.password = this.getResponseProperty('Password');\n this.lastUsedDate = this.getResponseProperty('LastUsedDate');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { DeviceType } from '../../enums/deviceType';\n\nexport class DeviceResponse extends BaseResponse {\n id: string;\n name: number;\n identifier: string;\n type: DeviceType;\n creationDate: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.name = this.getResponseProperty('Name');\n this.identifier = this.getResponseProperty('Identifier');\n this.type = this.getResponseProperty('Type');\n this.creationDate = this.getResponseProperty('CreationDate');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class KeysResponse extends BaseResponse {\n privateKey: string;\n publicKey: string;\n\n constructor(response: any) {\n super(response);\n this.privateKey = this.getResponseProperty('PrivateKey');\n this.publicKey = this.getResponseProperty('PublicKey');\n }\n}\n","import {\n Directive,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { SearchService } from '../../abstractions/search.service';\n\nimport { CipherView } from '../../models/view/cipherView';\n\n@Directive()\nexport class CiphersComponent {\n @Input() activeCipherId: string = null;\n @Output() onCipherClicked = new EventEmitter();\n @Output() onCipherRightClicked = new EventEmitter();\n @Output() onAddCipher = new EventEmitter();\n @Output() onAddCipherOptions = new EventEmitter();\n\n loaded: boolean = false;\n ciphers: CipherView[] = [];\n pagedCiphers: CipherView[] = [];\n searchText: string;\n searchPlaceholder: string = null;\n filter: (cipher: CipherView) => boolean = null;\n deleted: boolean = false;\n\n protected searchPending = false;\n protected didScroll = false;\n protected pageSize = 100;\n\n private searchTimeout: any = null;\n private pagedCiphersCount = 0;\n private refreshing = false;\n\n constructor(protected searchService: SearchService) { }\n\n async load(filter: (cipher: CipherView) => boolean = null, deleted: boolean = false) {\n this.deleted = deleted || false;\n await this.applyFilter(filter);\n this.loaded = true;\n }\n\n loadMore() {\n if (this.ciphers.length <= this.pageSize) {\n return;\n }\n const pagedLength = this.pagedCiphers.length;\n let pagedSize = this.pageSize;\n if (this.refreshing && pagedLength === 0 && this.pagedCiphersCount > this.pageSize) {\n pagedSize = this.pagedCiphersCount;\n }\n if (this.ciphers.length > pagedLength) {\n this.pagedCiphers = this.pagedCiphers.concat(this.ciphers.slice(pagedLength, pagedLength + pagedSize));\n }\n this.pagedCiphersCount = this.pagedCiphers.length;\n this.didScroll = this.pagedCiphers.length > this.pageSize;\n }\n\n async reload(filter: (cipher: CipherView) => boolean = null, deleted: boolean = false) {\n this.loaded = false;\n this.ciphers = [];\n await this.load(filter, deleted);\n }\n\n async refresh() {\n try {\n this.refreshing = true;\n await this.reload(this.filter, this.deleted);\n } finally {\n this.refreshing = false;\n }\n }\n\n async applyFilter(filter: (cipher: CipherView) => boolean = null) {\n this.filter = filter;\n await this.search(null);\n }\n\n async search(timeout: number = null, indexedCiphers?: CipherView[]) {\n this.searchPending = false;\n if (this.searchTimeout != null) {\n clearTimeout(this.searchTimeout);\n }\n const deletedFilter: (cipher: CipherView) => boolean = c => c.isDeleted === this.deleted;\n if (timeout == null) {\n this.ciphers = await this.searchService.searchCiphers(this.searchText, [this.filter, deletedFilter], indexedCiphers);\n await this.resetPaging();\n return;\n }\n this.searchPending = true;\n this.searchTimeout = setTimeout(async () => {\n this.ciphers = await this.searchService.searchCiphers(this.searchText, [this.filter, deletedFilter], indexedCiphers);\n await this.resetPaging();\n this.searchPending = false;\n }, timeout);\n }\n\n selectCipher(cipher: CipherView) {\n this.onCipherClicked.emit(cipher);\n }\n\n rightClickCipher(cipher: CipherView) {\n this.onCipherRightClicked.emit(cipher);\n }\n\n addCipher() {\n this.onAddCipher.emit();\n }\n\n addCipherOptions() {\n this.onAddCipherOptions.emit();\n }\n\n isSearching() {\n return !this.searchPending && this.searchService.isSearchable(this.searchText);\n }\n\n isPaging() {\n const searching = this.isSearching();\n if (searching && this.didScroll) {\n this.resetPaging();\n }\n return !searching && this.ciphers.length > this.pageSize;\n }\n\n async resetPaging() {\n this.pagedCiphers = [];\n this.loadMore();\n }\n}\n","import {\n Directive,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { CipherService } from '../../abstractions/cipher.service';\nimport { CollectionService } from '../../abstractions/collection.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\nimport { CipherView } from '../../models/view/cipherView';\nimport { CollectionView } from '../../models/view/collectionView';\n\nimport { Cipher } from '../../models/domain/cipher';\n\n@Directive()\nexport class CollectionsComponent implements OnInit {\n @Input() cipherId: string;\n @Input() allowSelectNone = false;\n @Output() onSavedCollections = new EventEmitter();\n\n formPromise: Promise;\n cipher: CipherView;\n collectionIds: string[];\n collections: CollectionView[] = [];\n\n protected cipherDomain: Cipher;\n\n constructor(protected collectionService: CollectionService, protected platformUtilsService: PlatformUtilsService,\n protected i18nService: I18nService, protected cipherService: CipherService) { }\n\n async ngOnInit() {\n await this.load();\n }\n\n async load() {\n this.cipherDomain = await this.loadCipher();\n this.collectionIds = this.loadCipherCollections();\n this.cipher = await this.cipherDomain.decrypt();\n this.collections = await this.loadCollections();\n\n this.collections.forEach(c => (c as any).checked = false);\n if (this.collectionIds != null) {\n this.collections.forEach(c => {\n (c as any).checked = this.collectionIds != null && this.collectionIds.indexOf(c.id) > -1;\n });\n }\n }\n\n async submit() {\n const selectedCollectionIds = this.collections\n .filter(c => !!(c as any).checked)\n .map(c => c.id);\n if (!this.allowSelectNone && selectedCollectionIds.length === 0) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectOneCollection'));\n return;\n }\n this.cipherDomain.collectionIds = selectedCollectionIds;\n try {\n this.formPromise = this.saveCollections();\n await this.formPromise;\n this.onSavedCollections.emit();\n this.platformUtilsService.showToast('success', null, this.i18nService.t('editedItem'));\n } catch { }\n }\n\n protected loadCipher() {\n return this.cipherService.get(this.cipherId);\n }\n\n protected loadCipherCollections() {\n return this.cipherDomain.collectionIds;\n }\n\n protected async loadCollections() {\n const allCollections = await this.collectionService.getAllDecrypted();\n return allCollections.filter(c => !c.readOnly && c.organizationId === this.cipher.organizationId);\n }\n\n protected saveCollections() {\n return this.cipherService.saveCollectionsWithServer(this.cipherDomain);\n }\n}\n","import {\n Directive,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { CipherType } from '../../enums/cipherType';\n\nimport { CollectionView } from '../../models/view/collectionView';\nimport { FolderView } from '../../models/view/folderView';\n\nimport { TreeNode } from '../../models/domain/treeNode';\n\nimport { CollectionService } from '../../abstractions/collection.service';\nimport { FolderService } from '../../abstractions/folder.service';\nimport { StorageService } from '../../abstractions/storage.service';\nimport { UserService } from '../../abstractions/user.service';\n\nimport { ConstantsService } from '../../services/constants.service';\n\n@Directive()\nexport class GroupingsComponent {\n @Input() showFolders = true;\n @Input() showCollections = true;\n @Input() showFavorites = true;\n @Input() showTrash = true;\n\n @Output() onAllClicked = new EventEmitter();\n @Output() onFavoritesClicked = new EventEmitter();\n @Output() onTrashClicked = new EventEmitter();\n @Output() onCipherTypeClicked = new EventEmitter();\n @Output() onFolderClicked = new EventEmitter();\n @Output() onAddFolder = new EventEmitter();\n @Output() onEditFolder = new EventEmitter();\n @Output() onCollectionClicked = new EventEmitter();\n\n folders: FolderView[];\n nestedFolders: TreeNode[];\n collections: CollectionView[];\n nestedCollections: TreeNode[];\n loaded: boolean = false;\n cipherType = CipherType;\n selectedAll: boolean = false;\n selectedFavorites: boolean = false;\n selectedTrash: boolean = false;\n selectedType: CipherType = null;\n selectedFolder: boolean = false;\n selectedFolderId: string = null;\n selectedCollectionId: string = null;\n\n private collapsedGroupings: Set;\n private collapsedGroupingsKey: string;\n\n constructor(protected collectionService: CollectionService, protected folderService: FolderService,\n protected storageService: StorageService, protected userService: UserService) { }\n\n async load(setLoaded = true) {\n const userId = await this.userService.getUserId();\n this.collapsedGroupingsKey = ConstantsService.collapsedGroupingsKey + '_' + userId;\n const collapsedGroupings = await this.storageService.get(this.collapsedGroupingsKey);\n if (collapsedGroupings == null) {\n this.collapsedGroupings = new Set();\n } else {\n this.collapsedGroupings = new Set(collapsedGroupings);\n }\n\n await this.loadFolders();\n await this.loadCollections();\n\n if (setLoaded) {\n this.loaded = true;\n }\n }\n\n async loadCollections(organizationId?: string) {\n if (!this.showCollections) {\n return;\n }\n const collections = await this.collectionService.getAllDecrypted();\n if (organizationId != null) {\n this.collections = collections.filter(c => c.organizationId === organizationId);\n } else {\n this.collections = collections;\n }\n this.nestedCollections = await this.collectionService.getAllNested(this.collections);\n }\n\n async loadFolders() {\n if (!this.showFolders) {\n return;\n }\n this.folders = await this.folderService.getAllDecrypted();\n this.nestedFolders = await this.folderService.getAllNested();\n }\n\n selectAll() {\n this.clearSelections();\n this.selectedAll = true;\n this.onAllClicked.emit();\n }\n\n selectFavorites() {\n this.clearSelections();\n this.selectedFavorites = true;\n this.onFavoritesClicked.emit();\n }\n\n selectTrash() {\n this.clearSelections();\n this.selectedTrash = true;\n this.onTrashClicked.emit();\n }\n\n selectType(type: CipherType) {\n this.clearSelections();\n this.selectedType = type;\n this.onCipherTypeClicked.emit(type);\n }\n\n selectFolder(folder: FolderView) {\n this.clearSelections();\n this.selectedFolder = true;\n this.selectedFolderId = folder.id;\n this.onFolderClicked.emit(folder);\n }\n\n addFolder() {\n this.onAddFolder.emit();\n }\n\n editFolder(folder: FolderView) {\n this.onEditFolder.emit(folder);\n }\n\n selectCollection(collection: CollectionView) {\n this.clearSelections();\n this.selectedCollectionId = collection.id;\n this.onCollectionClicked.emit(collection);\n }\n\n clearSelections() {\n this.selectedAll = false;\n this.selectedFavorites = false;\n this.selectedTrash = false;\n this.selectedType = null;\n this.selectedFolder = false;\n this.selectedFolderId = null;\n this.selectedCollectionId = null;\n }\n\n collapse(grouping: FolderView | CollectionView, idPrefix = '') {\n if (grouping.id == null) {\n return;\n }\n const id = idPrefix + grouping.id;\n if (this.isCollapsed(grouping, idPrefix)) {\n this.collapsedGroupings.delete(id);\n } else {\n this.collapsedGroupings.add(id);\n }\n this.storageService.save(this.collapsedGroupingsKey, this.collapsedGroupings);\n }\n\n isCollapsed(grouping: FolderView | CollectionView, idPrefix = '') {\n return this.collapsedGroupings.has(idPrefix + grouping.id);\n }\n}\n","import { SendType } from '../../enums/sendType';\n\nimport { SendAccessResponse } from '../response/sendAccessResponse';\n\nimport { SendAccessView } from '../view/sendAccessView';\n\nimport Domain from './domainBase';\nimport { EncString } from './encString';\nimport { SendFile } from './sendFile';\nimport { SendText } from './sendText';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class SendAccess extends Domain {\n id: string;\n type: SendType;\n name: EncString;\n file: SendFile;\n text: SendText;\n expirationDate: Date;\n creatorIdentifier: string;\n\n constructor(obj?: SendAccessResponse, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.buildDomainModel(this, obj, {\n id: null,\n name: null,\n expirationDate: null,\n creatorIdentifier: null,\n }, alreadyEncrypted, ['id', 'expirationDate', 'creatorIdentifier']);\n\n this.type = obj.type;\n\n switch (this.type) {\n case SendType.Text:\n this.text = new SendText(obj.text, alreadyEncrypted);\n break;\n case SendType.File:\n this.file = new SendFile(obj.file, alreadyEncrypted);\n break;\n default:\n break;\n }\n }\n\n async decrypt(key: SymmetricCryptoKey): Promise {\n const model = new SendAccessView(this);\n\n await this.decryptObj(model, {\n name: null,\n }, null, key);\n\n switch (this.type) {\n case SendType.File:\n model.file = await this.file.decrypt(key);\n break;\n case SendType.Text:\n model.text = await this.text.decrypt(key);\n break;\n default:\n break;\n }\n\n return model;\n }\n}\n","import { SendType } from '../../enums/sendType';\n\nimport { SendAccess } from '../domain/sendAccess';\n\nimport { SendFileView } from './sendFileView';\nimport { SendTextView } from './sendTextView';\nimport { View } from './view';\n\nexport class SendAccessView implements View {\n id: string = null;\n name: string = null;\n type: SendType = null;\n text = new SendTextView();\n file = new SendFileView();\n expirationDate: Date = null;\n creatorIdentifier: string = null;\n\n constructor(s?: SendAccess) {\n if (!s) {\n return;\n }\n\n this.id = s.id;\n this.type = s.type;\n this.expirationDate = s.expirationDate;\n this.creatorIdentifier = s.creatorIdentifier;\n }\n}\n","export class SendAccessRequest {\n password: string;\n}\n","import {\n NgZone,\n OnInit,\n} from '@angular/core';\n\nimport { OrganizationUserStatusType } from '../../../enums/organizationUserStatusType';\nimport { PolicyType } from '../../../enums/policyType';\nimport { SendType } from '../../../enums/sendType';\n\nimport { SendView } from '../../../models/view/sendView';\n\nimport { EnvironmentService } from '../../../abstractions/environment.service';\nimport { I18nService } from '../../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../../abstractions/platformUtils.service';\nimport { PolicyService } from '../../../abstractions/policy.service';\nimport { SearchService } from '../../../abstractions/search.service';\nimport { SendService } from '../../../abstractions/send.service';\nimport { UserService } from '../../../abstractions/user.service';\n\nexport class SendComponent implements OnInit {\n\n disableSend = false;\n sendType = SendType;\n loaded = false;\n loading = true;\n refreshing = false;\n expired: boolean = false;\n type: SendType = null;\n sends: SendView[] = [];\n filteredSends: SendView[] = [];\n searchText: string;\n selectedType: SendType;\n selectedAll: boolean;\n searchPlaceholder: string;\n filter: (cipher: SendView) => boolean;\n searchPending = false;\n hasSearched = false; // search() function called - returns true if text qualifies for search\n\n actionPromise: any;\n onSuccessfulRemovePassword: () => Promise;\n onSuccessfulDelete: () => Promise;\n onSuccessfulLoad: () => Promise;\n\n private searchTimeout: any;\n\n constructor(protected sendService: SendService, protected i18nService: I18nService,\n protected platformUtilsService: PlatformUtilsService, protected environmentService: EnvironmentService,\n protected ngZone: NgZone, protected searchService: SearchService,\n protected policyService: PolicyService, protected userService: UserService) { }\n\n async ngOnInit() {\n const policies = await this.policyService.getAll(PolicyType.DisableSend);\n const organizations = await this.userService.getAllOrganizations();\n this.disableSend = organizations.some(o => {\n return o.enabled &&\n o.status === OrganizationUserStatusType.Confirmed &&\n o.usePolicies &&\n !o.canManagePolicies &&\n policies.some(p => p.organizationId === o.id && p.enabled);\n });\n }\n\n async load(filter: (send: SendView) => boolean = null) {\n this.loading = true;\n const sends = await this.sendService.getAllDecrypted();\n this.sends = sends;\n if (this.onSuccessfulLoad != null) {\n await this.onSuccessfulLoad();\n } else {\n // Default action\n this.selectAll();\n }\n this.loading = false;\n this.loaded = true;\n }\n\n async reload(filter: (send: SendView) => boolean = null) {\n this.loaded = false;\n this.sends = [];\n await this.load(filter);\n }\n\n async refresh() {\n try {\n this.refreshing = true;\n await this.reload(this.filter);\n } finally {\n this.refreshing = false;\n }\n }\n\n async applyFilter(filter: (send: SendView) => boolean = null) {\n this.filter = filter;\n await this.search(null);\n }\n\n async search(timeout: number = null) {\n this.searchPending = false;\n if (this.searchTimeout != null) {\n clearTimeout(this.searchTimeout);\n }\n if (timeout == null) {\n this.hasSearched = this.searchService.isSearchable(this.searchText);\n this.filteredSends = this.sends.filter(s => this.filter == null || this.filter(s));\n this.applyTextSearch();\n return;\n }\n this.searchPending = true;\n this.searchTimeout = setTimeout(async () => {\n this.hasSearched = this.searchService.isSearchable(this.searchText);\n this.filteredSends = this.sends.filter(s => this.filter == null || this.filter(s));\n this.applyTextSearch();\n this.searchPending = false;\n }, timeout);\n }\n\n async removePassword(s: SendView): Promise {\n if (this.actionPromise != null || s.password == null) {\n return;\n }\n const confirmed = await this.platformUtilsService.showDialog(this.i18nService.t('removePasswordConfirmation'),\n this.i18nService.t('removePassword'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.actionPromise = this.sendService.removePasswordWithServer(s.id);\n await this.actionPromise;\n if (this.onSuccessfulRemovePassword != null) {\n this.onSuccessfulRemovePassword();\n } else {\n // Default actions\n this.platformUtilsService.showToast('success', null, this.i18nService.t('removedPassword'));\n await this.load();\n }\n } catch { }\n this.actionPromise = null;\n }\n\n async delete(s: SendView): Promise {\n if (this.actionPromise != null) {\n return false;\n }\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('deleteSendConfirmation'),\n this.i18nService.t('deleteSend'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.actionPromise = this.sendService.deleteWithServer(s.id);\n await this.actionPromise;\n\n if (this.onSuccessfulDelete != null) {\n this.onSuccessfulDelete();\n } else {\n // Default actions\n this.platformUtilsService.showToast('success', null, this.i18nService.t('deletedSend'));\n await this.refresh();\n }\n } catch { }\n this.actionPromise = null;\n return true;\n }\n\n copy(s: SendView) {\n let sendLinkBaseUrl = 'https://send.bitwarden.com/#';\n const webVaultUrl = this.environmentService.getWebVaultUrl();\n if (webVaultUrl != null) {\n sendLinkBaseUrl = webVaultUrl + '/#/send/';\n }\n const link = sendLinkBaseUrl + s.accessId + '/' + s.urlB64Key;\n this.platformUtilsService.copyToClipboard(link);\n this.platformUtilsService.showToast('success', null,\n this.i18nService.t('valueCopied', this.i18nService.t('sendLink')));\n }\n\n searchTextChanged() {\n this.search(200);\n }\n\n selectAll() {\n this.clearSelections();\n this.selectedAll = true;\n this.applyFilter(null);\n }\n\n selectType(type: SendType) {\n this.clearSelections();\n this.selectedType = type;\n this.applyFilter(s => s.type === type);\n }\n\n clearSelections() {\n this.selectedAll = false;\n this.selectedType = null;\n }\n\n private applyTextSearch() {\n if (this.searchText != null) {\n this.filteredSends = this.searchService.searchSends(this.filteredSends, this.searchText);\n }\n }\n}\n","import { DatePipe } from '@angular/common';\n\nimport {\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { OrganizationUserStatusType } from '../../../enums/organizationUserStatusType';\nimport { PolicyType } from '../../../enums/policyType';\nimport { SendType } from '../../../enums/sendType';\n\nimport { EnvironmentService } from '../../../abstractions/environment.service';\nimport { I18nService } from '../../../abstractions/i18n.service';\nimport { MessagingService } from '../../../abstractions/messaging.service';\nimport { PlatformUtilsService } from '../../../abstractions/platformUtils.service';\nimport { PolicyService } from '../../../abstractions/policy.service';\nimport { SendService } from '../../../abstractions/send.service';\nimport { UserService } from '../../../abstractions/user.service';\n\nimport { SendFileView } from '../../../models/view/sendFileView';\nimport { SendTextView } from '../../../models/view/sendTextView';\nimport { SendView } from '../../../models/view/sendView';\n\nimport { EncArrayBuffer } from '../../../models/domain/encArrayBuffer';\nimport { Send } from '../../../models/domain/send';\n\n// TimeOption is used for the dropdown implementation of custom times\n// Standard = displayed time; Military = stored time\ninterface TimeOption {\n standard: string;\n military: string;\n}\n\nenum DateField {\n DeletionDate = 'deletion',\n ExpriationDate = 'expiration',\n}\n\nexport class AddEditComponent implements OnInit {\n @Input() sendId: string;\n @Input() type: SendType;\n\n @Output() onSavedSend = new EventEmitter();\n @Output() onDeletedSend = new EventEmitter();\n @Output() onCancelled = new EventEmitter();\n\n copyLink = false;\n disableSend = false;\n disableHideEmail = false;\n send: SendView;\n deletionDate: string;\n deletionDateFallback: string;\n deletionTimeFallback: string;\n expirationDate: string = null;\n expirationDateFallback: string;\n expirationTimeFallback: string;\n hasPassword: boolean;\n password: string;\n showPassword = false;\n formPromise: Promise;\n deletePromise: Promise;\n sendType = SendType;\n typeOptions: any[];\n deletionDateOptions: any[];\n expirationDateOptions: any[];\n deletionDateSelect = 168;\n expirationDateSelect: number = null;\n canAccessPremium = true;\n emailVerified = true;\n alertShown = false;\n showOptions = false;\n\n safariDeletionTime: string;\n safariExpirationTime: string;\n safariDeletionTimeOptions: TimeOption[];\n safariExpirationTimeOptions: TimeOption[];\n\n private sendLinkBaseUrl: string;\n\n constructor(protected i18nService: I18nService, protected platformUtilsService: PlatformUtilsService,\n protected environmentService: EnvironmentService, protected datePipe: DatePipe,\n protected sendService: SendService, protected userService: UserService,\n protected messagingService: MessagingService, protected policyService: PolicyService) {\n this.typeOptions = [\n { name: i18nService.t('sendTypeFile'), value: SendType.File },\n { name: i18nService.t('sendTypeText'), value: SendType.Text },\n ];\n this.deletionDateOptions = this.expirationDateOptions = [\n { name: i18nService.t('oneHour'), value: 1 },\n { name: i18nService.t('oneDay'), value: 24 },\n { name: i18nService.t('days', '2'), value: 48 },\n { name: i18nService.t('days', '3'), value: 72 },\n { name: i18nService.t('days', '7'), value: 168 },\n { name: i18nService.t('days', '30'), value: 720 },\n { name: i18nService.t('custom'), value: 0 },\n ];\n this.expirationDateOptions = [\n { name: i18nService.t('never'), value: null },\n ].concat([...this.deletionDateOptions]);\n\n const webVaultUrl = this.environmentService.getWebVaultUrl();\n if (webVaultUrl == null) {\n this.sendLinkBaseUrl = 'https://send.bitwarden.com/#';\n } else {\n this.sendLinkBaseUrl = webVaultUrl + '/#/send/';\n }\n }\n\n get link(): string {\n if (this.send.id != null && this.send.accessId != null) {\n return this.sendLinkBaseUrl + this.send.accessId + '/' + this.send.urlB64Key;\n }\n return null;\n }\n\n get isSafari() {\n return this.platformUtilsService.isSafari();\n }\n\n get isDateTimeLocalSupported(): boolean {\n return !(this.platformUtilsService.isFirefox() || this.platformUtilsService.isSafari());\n }\n\n async ngOnInit() {\n await this.load();\n }\n\n get editMode(): boolean {\n return this.sendId != null;\n }\n\n get title(): string {\n return this.i18nService.t(\n this.editMode ?\n 'editSend' :\n 'createSend'\n );\n }\n\n get expirationDateTimeFallback() {\n return this.nullOrWhiteSpaceCount([this.expirationDateFallback, this.expirationTimeFallback]) > 0 ?\n null :\n `${this.formatDateFallbacks(this.expirationDateFallback)}T${this.expirationTimeFallback}`;\n }\n\n get deletionDateTimeFallback() {\n return this.nullOrWhiteSpaceCount([this.deletionDateFallback, this.deletionTimeFallback]) > 0 ?\n null :\n `${this.formatDateFallbacks(this.deletionDateFallback)}T${this.deletionTimeFallback}`;\n }\n\n async load() {\n const disableSendPolicies = await this.policyService.getAll(PolicyType.DisableSend);\n const organizations = await this.userService.getAllOrganizations();\n this.disableSend = organizations.some(o => {\n return o.enabled &&\n o.status === OrganizationUserStatusType.Confirmed &&\n o.usePolicies &&\n !o.canManagePolicies &&\n disableSendPolicies.some(p => p.organizationId === o.id && p.enabled);\n });\n\n const sendOptionsPolicies = await this.policyService.getAll(PolicyType.SendOptions);\n this.disableHideEmail = await organizations.some(o => {\n return o.enabled &&\n o.status === OrganizationUserStatusType.Confirmed &&\n o.usePolicies &&\n !o.canManagePolicies &&\n sendOptionsPolicies.some(p => p.organizationId === o.id && p.enabled && p.data.disableHideEmail);\n });\n\n this.canAccessPremium = await this.userService.canAccessPremium();\n this.emailVerified = await this.userService.getEmailVerified();\n if (!this.canAccessPremium || !this.emailVerified) {\n this.type = SendType.Text;\n }\n\n if (this.send == null) {\n if (this.editMode) {\n const send = await this.loadSend();\n this.send = await send.decrypt();\n } else {\n this.send = new SendView();\n this.send.type = this.type == null ? SendType.File : this.type;\n this.send.file = new SendFileView();\n this.send.text = new SendTextView();\n this.send.deletionDate = new Date();\n this.send.deletionDate.setDate(this.send.deletionDate.getDate() + 7);\n }\n }\n\n this.hasPassword = this.send.password != null && this.send.password.trim() !== '';\n\n // Parse dates\n if (!this.isDateTimeLocalSupported) {\n const deletionDateParts = this.dateToSplitString(this.send.deletionDate);\n if (deletionDateParts !== undefined && deletionDateParts.length > 0) {\n this.deletionDateFallback = deletionDateParts[0];\n this.deletionTimeFallback = deletionDateParts[1];\n if (this.isSafari) {\n this.safariDeletionTime = this.deletionTimeFallback;\n }\n }\n\n const expirationDateParts = this.dateToSplitString(this.send.expirationDate);\n if (expirationDateParts !== undefined && expirationDateParts.length > 0) {\n this.expirationDateFallback = expirationDateParts[0];\n this.expirationTimeFallback = expirationDateParts[1];\n if (this.isSafari) {\n this.safariExpirationTime = this.expirationTimeFallback;\n }\n }\n } else {\n this.deletionDate = this.dateToString(this.send.deletionDate);\n this.expirationDate = this.dateToString(this.send.expirationDate);\n }\n\n if (this.isSafari) {\n this.safariDeletionTimeOptions = this.safariTimeOptions(DateField.DeletionDate);\n this.safariExpirationTimeOptions = this.safariTimeOptions(DateField.ExpriationDate);\n }\n }\n\n async submit(): Promise {\n if (!this.isDateTimeLocalSupported) {\n if (this.isSafari) {\n this.expirationTimeFallback = this.safariExpirationTime ?? this.expirationTimeFallback;\n this.deletionTimeFallback = this.safariDeletionTime ?? this.deletionTimeFallback;\n }\n this.deletionDate = this.deletionDateTimeFallback;\n if (this.expirationDateTimeFallback != null && isNaN(Date.parse(this.expirationDateTimeFallback))) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('expirationDateIsInvalid'));\n return;\n }\n if (isNaN(Date.parse(this.deletionDateTimeFallback))) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('deletionDateIsInvalid'));\n return;\n }\n if (this.nullOrWhiteSpaceCount([this.expirationDateFallback, this.expirationTimeFallback]) === 1) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('expirationDateAndTimeRequired'));\n return;\n }\n if (this.editMode || this.expirationDateSelect === 0) {\n this.expirationDate = this.expirationDateTimeFallback;\n }\n }\n\n if (this.disableSend) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('sendDisabledWarning'));\n return false;\n }\n\n if (this.send.name == null || this.send.name === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('nameRequired'));\n return false;\n }\n\n let file: File = null;\n if (this.send.type === SendType.File && !this.editMode) {\n const fileEl = document.getElementById('file') as HTMLInputElement;\n const files = fileEl.files;\n if (files == null || files.length === 0) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectFile'));\n return;\n }\n\n file = files[0];\n if (files[0].size > 524288000) { // 500 MB\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('maxFileSize'));\n return;\n }\n }\n\n if (!this.editMode) {\n const now = new Date();\n if (this.deletionDateSelect > 0) {\n const d = new Date();\n d.setHours(now.getHours() + this.deletionDateSelect);\n this.deletionDate = this.dateToString(d);\n }\n if (this.expirationDateSelect != null && this.expirationDateSelect > 0) {\n const d = new Date();\n d.setHours(now.getHours() + this.expirationDateSelect);\n this.expirationDate = this.dateToString(d);\n }\n }\n\n if (this.password != null && this.password.trim() === '') {\n this.password = null;\n }\n\n const encSend = await this.encryptSend(file);\n try {\n this.formPromise = this.sendService.saveWithServer(encSend);\n await this.formPromise;\n if (this.send.id == null) {\n this.send.id = encSend[0].id;\n }\n if (this.send.accessId == null) {\n this.send.accessId = encSend[0].accessId;\n }\n this.platformUtilsService.showToast('success', null,\n this.i18nService.t(this.editMode ? 'editedSend' : 'createdSend'));\n this.onSavedSend.emit(this.send);\n if (this.copyLink) {\n this.copyLinkToClipboard(this.link);\n }\n return true;\n } catch { }\n\n return false;\n }\n\n clearExpiration() {\n this.expirationDate = null;\n this.expirationDateFallback = null;\n this.expirationTimeFallback = null;\n this.safariExpirationTime = null;\n }\n\n copyLinkToClipboard(link: string) {\n if (link != null) {\n this.platformUtilsService.copyToClipboard(link);\n }\n }\n\n async delete(): Promise {\n if (this.deletePromise != null) {\n return false;\n }\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('deleteSendConfirmation'),\n this.i18nService.t('deleteSend'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.deletePromise = this.sendService.deleteWithServer(this.send.id);\n await this.deletePromise;\n this.platformUtilsService.showToast('success', null, this.i18nService.t('deletedSend'));\n await this.load();\n this.onDeletedSend.emit(this.send);\n return true;\n } catch { }\n\n return false;\n }\n\n typeChanged() {\n if (this.send.type === SendType.File && !this.alertShown)\n {\n if (!this.canAccessPremium) {\n this.alertShown = true;\n this.messagingService.send('premiumRequired');\n } else if (!this.emailVerified) {\n this.alertShown = true;\n this.messagingService.send('emailVerificationRequired');\n }\n }\n }\n\n toggleOptions() {\n this.showOptions = !this.showOptions;\n }\n\n expirationDateFallbackChanged() {\n this.isSafari ?\n this.safariExpirationTime = this.safariExpirationTime ?? '00:00' :\n this.expirationTimeFallback = this.expirationTimeFallback ?? this.datePipe.transform(new Date(), 'HH:mm');\n }\n\n protected async loadSend(): Promise {\n return this.sendService.get(this.sendId);\n }\n\n protected async encryptSend(file: File): Promise<[Send, EncArrayBuffer]> {\n const sendData = await this.sendService.encrypt(this.send, file, this.password, null);\n\n // Parse dates\n try {\n sendData[0].deletionDate = this.deletionDate == null ? null : new Date(this.deletionDate);\n } catch {\n sendData[0].deletionDate = null;\n }\n try {\n sendData[0].expirationDate = this.expirationDate == null ? null : new Date(this.expirationDate);\n } catch {\n sendData[0].expirationDate = null;\n }\n\n return sendData;\n }\n\n protected dateToString(d: Date) {\n return d == null ? null : this.datePipe.transform(d, 'yyyy-MM-ddTHH:mm');\n }\n\n protected formatDateFallbacks(dateString: string) {\n try {\n // The Firefox date picker doesn't supply a time, safari's polyfill does.\n // Unknown if Safari's native date picker will or not when it releases.\n if (!this.isSafari) {\n dateString += ' 00:00';\n }\n return this.datePipe.transform(new Date(dateString), 'yyyy-MM-dd');\n } catch {\n // this should never happen\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('dateParsingError'));\n }\n }\n\n protected dateToSplitString(d: Date) {\n if (d != null) {\n const date = !this.isSafari ?\n this.datePipe.transform(d, 'yyyy-MM-dd') :\n this.datePipe.transform(d, 'MM/dd/yyyy');\n const time = this.datePipe.transform(d, 'HH:mm');\n return [date, time];\n }\n }\n\n protected togglePasswordVisible() {\n this.showPassword = !this.showPassword;\n document.getElementById('password').focus();\n }\n\n protected nullOrWhiteSpaceCount(strarray: string[]): number {\n return strarray.filter(str => str == null || str.trim() === '').length;\n }\n\n protected safariTimeOptions(field: DateField): TimeOption[] {\n // init individual arrays for major sort groups\n const noon: TimeOption[] = [];\n const midnight: TimeOption[] = [];\n const ams: TimeOption[] = [];\n const pms: TimeOption[] = [];\n\n // determine minute skip (5 min, 10 min, 15 min, etc.)\n const minuteIncrementer = 15;\n\n // loop through each hour on a 12 hour system\n for (let h = 1; h <= 12; h++) {\n // loop through each minute in the hour using the skip to incriment\n for (let m = 0; m < 60; m += minuteIncrementer) {\n // init the final strings that will be added to the lists\n let hour = h.toString();\n let minutes = m.toString();\n\n // add prepending 0s to single digit hours/minutes\n if (h < 10) {\n hour = '0' + hour;\n }\n if (m < 10) {\n minutes = '0' + minutes;\n }\n\n // build time strings and push to relevant sort groups\n if (h === 12) {\n const midnightOption: TimeOption = {\n standard: `${hour}:${minutes} AM`,\n military: `00:${minutes}`,\n };\n midnight.push(midnightOption);\n\n const noonOption: TimeOption = {\n standard: `${hour}:${minutes} PM`,\n military: `${hour}:${minutes}`,\n };\n noon.push(noonOption);\n } else {\n const amOption: TimeOption = {\n standard: `${hour}:${minutes} AM`,\n military: `${hour}:${minutes}`,\n };\n ams.push(amOption);\n\n const pmOption: TimeOption = {\n standard: `${hour}:${minutes} PM`,\n military: `${h + 12}:${minutes}`,\n };\n pms.push(pmOption);\n }\n }\n }\n\n // bring all the arrays together in the right order\n const validTimes = [...midnight, ...ams, ...noon, ...pms];\n\n // determine if an unsupported value already exists on the send & add that to the top of the option list\n // example: if the Send was created with a different client\n if (field === DateField.ExpriationDate && this.expirationDateTimeFallback != null && this.editMode) {\n const previousValue: TimeOption = {\n standard: this.datePipe.transform(this.expirationDateTimeFallback, 'hh:mm a'),\n military: this.datePipe.transform(this.expirationDateTimeFallback, 'HH:mm'),\n };\n return [previousValue, { standard: null, military: null }, ...validTimes];\n } else if (field === DateField.DeletionDate && this.deletionDateTimeFallback != null && this.editMode) {\n const previousValue: TimeOption = {\n standard: this.datePipe.transform(this.deletionDateTimeFallback, 'hh:mm a'),\n military: this.datePipe.transform(this.deletionDateTimeFallback, 'HH:mm'),\n };\n return [previousValue, ...validTimes];\n } else {\n return [{ standard: null, military: null }, ...validTimes];\n }\n }\n}\n","export class UpdateProfileRequest {\n name: string;\n masterPasswordHint: string;\n culture = 'en-US'; // deprecated\n\n constructor(name: string, masterPasswordHint: string) {\n this.name = name;\n this.masterPasswordHint = masterPasswordHint ? masterPasswordHint : null;\n }\n}\n","import { EmailTokenRequest } from './emailTokenRequest';\n\nexport class EmailRequest extends EmailTokenRequest {\n newMasterPasswordHash: string;\n token: string;\n key: string;\n}\n","import { PasswordRequest } from './passwordRequest';\n\nimport { KdfType } from '../../enums/kdfType';\n\nexport class KdfRequest extends PasswordRequest {\n kdf: KdfType;\n kdfIterations: number;\n}\n","export class UpdateDomainsRequest {\n equivalentDomains: string[][];\n excludedGlobalEquivalentDomains: number[];\n}\n","import {\n Directive,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PasswordGenerationService } from '../../abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\nimport { PasswordGeneratorPolicyOptions } from '../../models/domain/passwordGeneratorPolicyOptions';\n\n@Directive()\nexport class PasswordGeneratorComponent implements OnInit {\n @Input() showSelect: boolean = false;\n @Output() onSelected = new EventEmitter();\n\n options: any = {};\n password: string = '-';\n showOptions = false;\n avoidAmbiguous = false;\n enforcedPolicyOptions: PasswordGeneratorPolicyOptions;\n\n constructor(protected passwordGenerationService: PasswordGenerationService,\n protected platformUtilsService: PlatformUtilsService, protected i18nService: I18nService,\n private win: Window) { }\n\n async ngOnInit() {\n const optionsResponse = await this.passwordGenerationService.getOptions();\n this.options = optionsResponse[0];\n this.enforcedPolicyOptions = optionsResponse[1];\n this.avoidAmbiguous = !this.options.ambiguous;\n this.options.type = this.options.type === 'passphrase' ? 'passphrase' : 'password';\n this.password = await this.passwordGenerationService.generatePassword(this.options);\n await this.passwordGenerationService.addHistory(this.password);\n }\n\n async sliderChanged() {\n this.saveOptions(false);\n await this.passwordGenerationService.addHistory(this.password);\n }\n\n async sliderInput() {\n this.normalizeOptions();\n this.password = await this.passwordGenerationService.generatePassword(this.options);\n }\n\n async saveOptions(regenerate: boolean = true) {\n this.normalizeOptions();\n await this.passwordGenerationService.saveOptions(this.options);\n\n if (regenerate) {\n await this.regenerate();\n }\n }\n\n async regenerate() {\n this.password = await this.passwordGenerationService.generatePassword(this.options);\n await this.passwordGenerationService.addHistory(this.password);\n }\n\n copy() {\n const copyOptions = this.win != null ? { window: this.win } : null;\n this.platformUtilsService.copyToClipboard(this.password, copyOptions);\n this.platformUtilsService.showToast('info', null,\n this.i18nService.t('valueCopied', this.i18nService.t('password')));\n }\n\n select() {\n this.onSelected.emit(this.password);\n }\n\n toggleOptions() {\n this.showOptions = !this.showOptions;\n }\n\n private normalizeOptions() {\n // Application level normalize options depedent on class variables\n this.options.ambiguous = !this.avoidAmbiguous;\n\n if (!this.options.uppercase && !this.options.lowercase && !this.options.number && !this.options.special) {\n this.options.lowercase = true;\n if (this.win != null) {\n const lowercase = this.win.document.querySelector('#lowercase') as HTMLInputElement;\n if (lowercase) {\n lowercase.checked = true;\n }\n }\n }\n\n this.passwordGenerationService.normalizeOptions(this.options, this.enforcedPolicyOptions);\n }\n}\n","import { OnInit } from '@angular/core';\n\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PasswordGenerationService } from '../../abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\nimport { GeneratedPasswordHistory } from '../../models/domain/generatedPasswordHistory';\n\nexport class PasswordGeneratorHistoryComponent implements OnInit {\n history: GeneratedPasswordHistory[] = [];\n\n constructor(protected passwordGenerationService: PasswordGenerationService,\n protected platformUtilsService: PlatformUtilsService, protected i18nService: I18nService,\n private win: Window) { }\n\n async ngOnInit() {\n this.history = await this.passwordGenerationService.getHistory();\n }\n\n clear() {\n this.history = [];\n this.passwordGenerationService.clear();\n }\n\n copy(password: string) {\n const copyOptions = this.win != null ? { window: this.win } : null;\n this.platformUtilsService.copyToClipboard(password, copyOptions);\n this.platformUtilsService.showToast('info', null,\n this.i18nService.t('valueCopied', this.i18nService.t('password')));\n }\n}\n","import {\n Directive,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { FolderService } from '../../abstractions/folder.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\nimport { FolderView } from '../../models/view/folderView';\n\n@Directive()\nexport class FolderAddEditComponent implements OnInit {\n @Input() folderId: string;\n @Output() onSavedFolder = new EventEmitter();\n @Output() onDeletedFolder = new EventEmitter();\n\n editMode: boolean = false;\n folder: FolderView = new FolderView();\n title: string;\n formPromise: Promise;\n deletePromise: Promise;\n\n constructor(protected folderService: FolderService, protected i18nService: I18nService,\n protected platformUtilsService: PlatformUtilsService) { }\n\n async ngOnInit() {\n await this.init();\n }\n\n async submit(): Promise {\n if (this.folder.name == null || this.folder.name === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('nameRequired'));\n return false;\n }\n\n try {\n const folder = await this.folderService.encrypt(this.folder);\n this.formPromise = this.folderService.saveWithServer(folder);\n await this.formPromise;\n this.platformUtilsService.showToast('success', null,\n this.i18nService.t(this.editMode ? 'editedFolder' : 'addedFolder'));\n this.onSavedFolder.emit(this.folder);\n return true;\n } catch { }\n\n return false;\n }\n\n async delete(): Promise {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('deleteFolderConfirmation'), this.i18nService.t('deleteFolder'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.deletePromise = this.folderService.deleteWithServer(this.folder.id);\n await this.deletePromise;\n this.platformUtilsService.showToast('success', null, this.i18nService.t('deletedFolder'));\n this.onDeletedFolder.emit(this.folder);\n } catch { }\n\n return true;\n }\n\n protected async init() {\n this.editMode = this.folderId != null;\n\n if (this.editMode) {\n this.editMode = true;\n this.title = this.i18nService.t('editFolder');\n const folder = await this.folderService.get(this.folderId);\n this.folder = await folder.decrypt();\n } else {\n this.title = this.i18nService.t('addFolder');\n }\n }\n}\n","import {\n Directive,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { OrganizationUserStatusType } from '../../enums/organizationUserStatusType';\n\nimport { CipherService } from '../../abstractions/cipher.service';\nimport { CollectionService } from '../../abstractions/collection.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { UserService } from '../../abstractions/user.service';\n\nimport { Organization } from '../../models/domain/organization';\nimport { CipherView } from '../../models/view/cipherView';\nimport { CollectionView } from '../../models/view/collectionView';\n\nimport { Utils } from '../../misc/utils';\n\n@Directive()\nexport class ShareComponent implements OnInit {\n @Input() cipherId: string;\n @Input() organizationId: string;\n @Output() onSharedCipher = new EventEmitter();\n\n formPromise: Promise;\n cipher: CipherView;\n collections: CollectionView[] = [];\n organizations: Organization[] = [];\n\n protected writeableCollections: CollectionView[] = [];\n\n constructor(protected collectionService: CollectionService, protected platformUtilsService: PlatformUtilsService,\n protected i18nService: I18nService, protected userService: UserService,\n protected cipherService: CipherService) { }\n\n async ngOnInit() {\n await this.load();\n }\n\n async load() {\n const allCollections = await this.collectionService.getAllDecrypted();\n this.writeableCollections = allCollections.map(c => c).filter(c => !c.readOnly);\n const orgs = await this.userService.getAllOrganizations();\n this.organizations = orgs.sort(Utils.getSortFunction(this.i18nService, 'name'))\n .filter(o => o.enabled && o.status === OrganizationUserStatusType.Confirmed);\n\n const cipherDomain = await this.cipherService.get(this.cipherId);\n this.cipher = await cipherDomain.decrypt();\n if (this.organizationId == null && this.organizations.length > 0) {\n this.organizationId = this.organizations[0].id;\n }\n this.filterCollections();\n }\n\n filterCollections() {\n this.writeableCollections.forEach(c => (c as any).checked = false);\n if (this.organizationId == null || this.writeableCollections.length === 0) {\n this.collections = [];\n } else {\n this.collections = this.writeableCollections.filter(c => c.organizationId === this.organizationId);\n }\n }\n\n async submit(): Promise {\n const selectedCollectionIds = this.collections\n .filter(c => !!(c as any).checked)\n .map(c => c.id);\n if (selectedCollectionIds.length === 0) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectOneCollection'));\n return;\n }\n\n const cipherDomain = await this.cipherService.get(this.cipherId);\n const cipherView = await cipherDomain.decrypt();\n\n try {\n this.formPromise = this.cipherService.shareWithServer(cipherView, this.organizationId,\n selectedCollectionIds).then(async () => {\n this.onSharedCipher.emit();\n this.platformUtilsService.showToast('success', null, this.i18nService.t('sharedItem'));\n });\n await this.formPromise;\n return true;\n } catch { }\n return false;\n }\n\n get canSave() {\n if (this.collections != null) {\n for (let i = 0; i < this.collections.length; i++) {\n if ((this.collections[i] as any).checked) {\n return true;\n }\n }\n }\n return false;\n }\n}\n","export { AttachmentData } from './attachmentData';\nexport { CardData } from './cardData';\nexport { CipherData } from './cipherData';\nexport { CollectionData } from './collectionData';\nexport { FieldData } from './fieldData';\nexport { FolderData } from './folderData';\nexport { IdentityData } from './identityData';\nexport { LoginData } from './loginData';\nexport { LoginUriData } from './loginUriData';\nexport { SecureNoteData } from './secureNoteData';\n","export { Attachment } from './attachment';\nexport { AuthResult } from './authResult';\nexport { Card } from './card';\nexport { Cipher } from './cipher';\nexport { EncString } from './encString';\nexport { Collection } from './collection';\nexport { EncryptedObject } from './encryptedObject';\nexport { EnvironmentUrls } from './environmentUrls';\nexport { Field } from './field';\nexport { Folder } from './folder';\nexport { Identity } from './identity';\nexport { Login } from './login';\nexport { LoginUri } from './loginUri';\nexport { GeneratedPasswordHistory } from './generatedPasswordHistory';\nexport { SecureNote } from './secureNote';\nexport { SymmetricCryptoKey } from './symmetricCryptoKey';\n","export class EmergencyAccessConfirmRequest {\n key: string;\n}\n","import { EmergencyAccessType } from '../../enums/emergencyAccessType';\n\nexport class EmergencyAccessInviteRequest {\n email: string;\n type: EmergencyAccessType;\n waitTimeDays: number;\n}\n","export class EmergencyAccessPasswordRequest {\n newMasterPasswordHash: string;\n key: string;\n}\n","import {\n APP_INITIALIZER,\n LOCALE_ID,\n NgModule,\n} from '@angular/core';\n\nimport { ToasterModule } from 'angular2-toaster';\n\nimport { BroadcasterMessagingService } from '../../services/broadcasterMessaging.service';\nimport { HtmlStorageService } from '../../services/htmlStorage.service';\nimport { I18nService } from '../../services/i18n.service';\nimport { MemoryStorageService } from '../../services/memoryStorage.service';\nimport { WebPlatformUtilsService } from '../../services/webPlatformUtils.service';\n\nimport { EventService } from './event.service';\nimport { OrganizationGuardService } from './organization-guard.service';\nimport { OrganizationTypeGuardService } from './organization-type-guard.service';\nimport { RouterService } from './router.service';\n\nimport { AuthGuardService } from 'jslib/angular/services/auth-guard.service';\nimport { BroadcasterService } from 'jslib/angular/services/broadcaster.service';\nimport { LockGuardService } from 'jslib/angular/services/lock-guard.service';\nimport { UnauthGuardService } from 'jslib/angular/services/unauth-guard.service';\nimport { ValidationService } from 'jslib/angular/services/validation.service';\n\nimport { ApiService } from 'jslib/services/api.service';\nimport { AppIdService } from 'jslib/services/appId.service';\nimport { AuditService } from 'jslib/services/audit.service';\nimport { AuthService } from 'jslib/services/auth.service';\nimport { CipherService } from 'jslib/services/cipher.service';\nimport { CollectionService } from 'jslib/services/collection.service';\nimport { ConsoleLogService } from 'jslib/services/consoleLog.service';\nimport { ConstantsService } from 'jslib/services/constants.service';\nimport { ContainerService } from 'jslib/services/container.service';\nimport { CryptoService } from 'jslib/services/crypto.service';\nimport { EnvironmentService } from 'jslib/services/environment.service';\nimport { EventService as EventLoggingService } from 'jslib/services/event.service';\nimport { ExportService } from 'jslib/services/export.service';\nimport { FileUploadService } from 'jslib/services/fileUpload.service';\nimport { FolderService } from 'jslib/services/folder.service';\nimport { ImportService } from 'jslib/services/import.service';\nimport { NotificationsService } from 'jslib/services/notifications.service';\nimport { PasswordGenerationService } from 'jslib/services/passwordGeneration.service';\nimport { PolicyService } from 'jslib/services/policy.service';\nimport { SearchService } from 'jslib/services/search.service';\nimport { SendService } from 'jslib/services/send.service';\nimport { SettingsService } from 'jslib/services/settings.service';\nimport { StateService } from 'jslib/services/state.service';\nimport { SyncService } from 'jslib/services/sync.service';\nimport { TokenService } from 'jslib/services/token.service';\nimport { TotpService } from 'jslib/services/totp.service';\nimport { UserService } from 'jslib/services/user.service';\nimport { VaultTimeoutService } from 'jslib/services/vaultTimeout.service';\nimport { WebCryptoFunctionService } from 'jslib/services/webCryptoFunction.service';\n\nimport { ApiService as ApiServiceAbstraction } from 'jslib/abstractions/api.service';\nimport { AppIdService as AppIdServiceAbstraction } from 'jslib/abstractions/appId.service';\nimport { AuditService as AuditServiceAbstraction } from 'jslib/abstractions/audit.service';\nimport { AuthService as AuthServiceAbstraction } from 'jslib/abstractions/auth.service';\nimport { CipherService as CipherServiceAbstraction } from 'jslib/abstractions/cipher.service';\nimport { CollectionService as CollectionServiceAbstraction } from 'jslib/abstractions/collection.service';\nimport { CryptoService as CryptoServiceAbstraction } from 'jslib/abstractions/crypto.service';\nimport { CryptoFunctionService as CryptoFunctionServiceAbstraction } from 'jslib/abstractions/cryptoFunction.service';\nimport { EnvironmentService as EnvironmentServiceAbstraction } from 'jslib/abstractions/environment.service';\nimport { EventService as EventLoggingServiceAbstraction } from 'jslib/abstractions/event.service';\nimport { ExportService as ExportServiceAbstraction } from 'jslib/abstractions/export.service';\nimport { FileUploadService as FileUploadServiceAbstraction } from 'jslib/abstractions/fileUpload.service';\nimport { FolderService as FolderServiceAbstraction } from 'jslib/abstractions/folder.service';\nimport { I18nService as I18nServiceAbstraction } from 'jslib/abstractions/i18n.service';\nimport { ImportService as ImportServiceAbstraction } from 'jslib/abstractions/import.service';\nimport { LogService as LogServiceAbstraction } from 'jslib/abstractions/log.service';\nimport { MessagingService as MessagingServiceAbstraction } from 'jslib/abstractions/messaging.service';\nimport { NotificationsService as NotificationsServiceAbstraction } from 'jslib/abstractions/notifications.service';\nimport {\n PasswordGenerationService as PasswordGenerationServiceAbstraction,\n} from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService as PlatformUtilsServiceAbstraction } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService as PolicyServiceAbstraction } from 'jslib/abstractions/policy.service';\nimport { SearchService as SearchServiceAbstraction } from 'jslib/abstractions/search.service';\nimport { SendService as SendServiceAbstraction } from 'jslib/abstractions/send.service';\nimport { SettingsService as SettingsServiceAbstraction } from 'jslib/abstractions/settings.service';\nimport { StateService as StateServiceAbstraction } from 'jslib/abstractions/state.service';\nimport { StorageService as StorageServiceAbstraction } from 'jslib/abstractions/storage.service';\nimport { SyncService as SyncServiceAbstraction } from 'jslib/abstractions/sync.service';\nimport { TokenService as TokenServiceAbstraction } from 'jslib/abstractions/token.service';\nimport { TotpService as TotpServiceAbstraction } from 'jslib/abstractions/totp.service';\nimport { UserService as UserServiceAbstraction } from 'jslib/abstractions/user.service';\nimport { VaultTimeoutService as VaultTimeoutServiceAbstraction } from 'jslib/abstractions/vaultTimeout.service';\n\nconst i18nService = new I18nService(window.navigator.language, 'locales');\nconst stateService = new StateService();\nconst broadcasterService = new BroadcasterService();\nconst messagingService = new BroadcasterMessagingService(broadcasterService);\nconst platformUtilsService = new WebPlatformUtilsService(i18nService, messagingService);\nconst storageService: StorageServiceAbstraction = new HtmlStorageService(platformUtilsService);\nconst secureStorageService: StorageServiceAbstraction = new MemoryStorageService();\nconst cryptoFunctionService: CryptoFunctionServiceAbstraction = new WebCryptoFunctionService(window,\n platformUtilsService);\nconst consoleLogService = new ConsoleLogService(false);\nconst cryptoService = new CryptoService(storageService,\n platformUtilsService.isDev() ? storageService : secureStorageService, cryptoFunctionService, platformUtilsService,\n consoleLogService);\nconst tokenService = new TokenService(storageService);\nconst appIdService = new AppIdService(storageService);\nconst apiService = new ApiService(tokenService, platformUtilsService,\n async (expired: boolean) => messagingService.send('logout', { expired: expired }));\nconst userService = new UserService(tokenService, storageService);\nconst settingsService = new SettingsService(userService, storageService);\nexport let searchService: SearchService = null;\nconst fileUploadService = new FileUploadService(consoleLogService, apiService);\nconst cipherService = new CipherService(cryptoService, userService, settingsService,\n apiService, fileUploadService, storageService, i18nService, () => searchService);\nconst folderService = new FolderService(cryptoService, userService, apiService, storageService,\n i18nService, cipherService);\nconst collectionService = new CollectionService(cryptoService, userService, storageService, i18nService);\nsearchService = new SearchService(cipherService, consoleLogService, i18nService);\nconst policyService = new PolicyService(userService, storageService);\nconst sendService = new SendService(cryptoService, userService, apiService, fileUploadService, storageService,\n i18nService, cryptoFunctionService);\nconst vaultTimeoutService = new VaultTimeoutService(cipherService, folderService, collectionService,\n cryptoService, platformUtilsService, storageService, messagingService, searchService, userService, tokenService,\n null, async () => messagingService.send('logout', { expired: false }));\nconst syncService = new SyncService(userService, apiService, settingsService,\n folderService, cipherService, cryptoService, collectionService, storageService, messagingService, policyService,\n sendService, async (expired: boolean) => messagingService.send('logout', { expired: expired }));\nconst passwordGenerationService = new PasswordGenerationService(cryptoService, storageService, policyService);\nconst totpService = new TotpService(storageService, cryptoFunctionService);\nconst containerService = new ContainerService(cryptoService);\nconst authService = new AuthService(cryptoService, apiService,\n userService, tokenService, appIdService, i18nService, platformUtilsService, messagingService, vaultTimeoutService,\n consoleLogService);\nconst exportService = new ExportService(folderService, cipherService, apiService);\nconst importService = new ImportService(cipherService, folderService, apiService, i18nService, collectionService,\n platformUtilsService);\nconst notificationsService = new NotificationsService(userService, syncService, appIdService,\n apiService, vaultTimeoutService, async () => messagingService.send('logout', { expired: true }), consoleLogService);\nconst environmentService = new EnvironmentService(apiService, storageService, notificationsService);\nconst auditService = new AuditService(cryptoFunctionService, apiService);\nconst eventLoggingService = new EventLoggingService(storageService, apiService, userService, cipherService);\n\ncontainerService.attachToWindow(window);\n\nexport function initFactory(): Function {\n return async () => {\n await (storageService as HtmlStorageService).init();\n const isDev = platformUtilsService.isDev();\n\n if (isDev || platformUtilsService.isSelfHost()) {\n environmentService.baseUrl = window.location.origin;\n } else {\n environmentService.notificationsUrl = 'https://notifications.bitwarden.com';\n environmentService.enterpriseUrl = 'https://portal.bitwarden.com';\n }\n\n apiService.setUrls({\n base: window.location.origin,\n api: null,\n identity: null,\n events: null,\n });\n setTimeout(() => notificationsService.init(environmentService), 3000);\n\n vaultTimeoutService.init(true);\n const locale = await storageService.get(ConstantsService.localeKey);\n await i18nService.init(locale);\n eventLoggingService.init(true);\n authService.init();\n const htmlEl = window.document.documentElement;\n htmlEl.classList.add('locale_' + i18nService.translationLocale);\n let theme = await storageService.get(ConstantsService.themeKey);\n if (theme == null) {\n theme = 'light';\n }\n htmlEl.classList.add('theme_' + theme);\n stateService.save(ConstantsService.disableFaviconKey,\n await storageService.get(ConstantsService.disableFaviconKey));\n stateService.save('enableGravatars', await storageService.get('enableGravatars'));\n };\n}\n\n@NgModule({\n imports: [\n ToasterModule,\n ],\n declarations: [],\n providers: [\n ValidationService,\n AuthGuardService,\n OrganizationGuardService,\n OrganizationTypeGuardService,\n UnauthGuardService,\n RouterService,\n EventService,\n LockGuardService,\n { provide: AuditServiceAbstraction, useValue: auditService },\n { provide: AuthServiceAbstraction, useValue: authService },\n { provide: CipherServiceAbstraction, useValue: cipherService },\n { provide: FolderServiceAbstraction, useValue: folderService },\n { provide: CollectionServiceAbstraction, useValue: collectionService },\n { provide: EnvironmentServiceAbstraction, useValue: environmentService },\n { provide: TotpServiceAbstraction, useValue: totpService },\n { provide: TokenServiceAbstraction, useValue: tokenService },\n { provide: I18nServiceAbstraction, useValue: i18nService },\n { provide: CryptoServiceAbstraction, useValue: cryptoService },\n { provide: PlatformUtilsServiceAbstraction, useValue: platformUtilsService },\n { provide: PasswordGenerationServiceAbstraction, useValue: passwordGenerationService },\n { provide: ApiServiceAbstraction, useValue: apiService },\n { provide: FileUploadServiceAbstraction, useValue: fileUploadService },\n { provide: SyncServiceAbstraction, useValue: syncService },\n { provide: UserServiceAbstraction, useValue: userService },\n { provide: MessagingServiceAbstraction, useValue: messagingService },\n { provide: BroadcasterService, useValue: broadcasterService },\n { provide: SettingsServiceAbstraction, useValue: settingsService },\n { provide: VaultTimeoutServiceAbstraction, useValue: vaultTimeoutService },\n { provide: StorageServiceAbstraction, useValue: storageService },\n { provide: StateServiceAbstraction, useValue: stateService },\n { provide: ExportServiceAbstraction, useValue: exportService },\n { provide: SearchServiceAbstraction, useValue: searchService },\n { provide: ImportServiceAbstraction, useValue: importService },\n { provide: NotificationsServiceAbstraction, useValue: notificationsService },\n { provide: CryptoFunctionServiceAbstraction, useValue: cryptoFunctionService },\n { provide: EventLoggingServiceAbstraction, useValue: eventLoggingService },\n { provide: PolicyServiceAbstraction, useValue: policyService },\n { provide: SendServiceAbstraction, useValue: sendService },\n {\n provide: APP_INITIALIZER,\n useFactory: initFactory,\n deps: [],\n multi: true,\n },\n {\n provide: LOCALE_ID,\n useFactory: () => i18nService.translationLocale,\n deps: [],\n },\n ],\n})\nexport class ServicesModule {\n}\n","import { MessagingService } from 'jslib/abstractions/messaging.service';\n\nimport { BroadcasterService } from 'jslib/angular/services/broadcaster.service';\n\nexport class BroadcasterMessagingService implements MessagingService {\n constructor(private broadcasterService: BroadcasterService) { }\n\n send(subscriber: string, arg: any = {}) {\n const message = Object.assign({}, { command: subscriber }, arg);\n this.broadcasterService.send(message);\n }\n}\n","import { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\nimport { ConstantsService } from 'jslib/services';\n\nexport class HtmlStorageService implements StorageService {\n private localStorageKeys = new Set(['appId', 'anonymousAppId', 'rememberedEmail', 'passwordGenerationOptions',\n ConstantsService.disableFaviconKey, 'rememberEmail', 'enableGravatars', 'enableFullWidth',\n ConstantsService.localeKey, ConstantsService.autoConfirmFingerprints,\n ConstantsService.vaultTimeoutKey, ConstantsService.vaultTimeoutActionKey, ConstantsService.ssoCodeVerifierKey,\n ConstantsService.ssoStateKey, 'ssoOrgIdentifier']);\n private localStorageStartsWithKeys = ['twoFactorToken_', ConstantsService.collapsedGroupingsKey + '_'];\n private memoryStorageStartsWithKeys = ['ciphers_', 'folders_', 'collections_', 'settings_', 'lastSync_'];\n private memoryStorage = new Map();\n\n constructor(private platformUtilsService: PlatformUtilsService) { }\n\n async init() {\n // LockOption -> VaultTimeout (uses the same legacy string value for backwards compat)\n const vaultTimeout = await this.get(ConstantsService.vaultTimeoutKey);\n if (vaultTimeout == null && !this.platformUtilsService.isDev()) {\n await this.save(ConstantsService.vaultTimeoutKey, 15);\n }\n\n // Default Action to lock\n const vaultTimeoutAction = await this.get(ConstantsService.vaultTimeoutActionKey);\n if (vaultTimeoutAction == null) {\n await this.save(ConstantsService.vaultTimeoutActionKey, 'lock');\n }\n }\n\n get(key: string): Promise {\n let json: string = null;\n if (this.isLocalStorage(key)) {\n json = window.localStorage.getItem(key);\n } else if (this.isMemoryStorage(key)) {\n json = this.memoryStorage.get(key);\n } else {\n json = window.sessionStorage.getItem(key);\n }\n if (json != null) {\n const obj = JSON.parse(json);\n return Promise.resolve(obj as T);\n }\n return Promise.resolve(null);\n }\n\n save(key: string, obj: any): Promise {\n if (obj == null) {\n return this.remove(key);\n }\n\n const json = JSON.stringify(obj);\n if (this.isLocalStorage(key)) {\n window.localStorage.setItem(key, json);\n } else if (this.isMemoryStorage(key)) {\n this.memoryStorage.set(key, json);\n } else {\n window.sessionStorage.setItem(key, json);\n }\n return Promise.resolve();\n }\n\n remove(key: string): Promise {\n if (this.isLocalStorage(key)) {\n window.localStorage.removeItem(key);\n } else if (this.isMemoryStorage(key)) {\n this.memoryStorage.delete(key);\n } else {\n window.sessionStorage.removeItem(key);\n }\n return Promise.resolve();\n }\n\n private isLocalStorage(key: string): boolean {\n if (this.localStorageKeys.has(key)) {\n return true;\n }\n for (const swKey of this.localStorageStartsWithKeys) {\n if (key.startsWith(swKey)) {\n return true;\n }\n }\n return false;\n }\n\n private isMemoryStorage(key: string): boolean {\n for (const swKey of this.memoryStorageStartsWithKeys) {\n if (key.startsWith(swKey)) {\n return true;\n }\n }\n return false;\n }\n}\n","export { ApiService } from './api.service';\nexport { AppIdService } from './appId.service';\nexport { AuditService } from './audit.service';\nexport { AuthService } from './auth.service';\nexport { CipherService } from './cipher.service';\nexport { CollectionService } from './collection.service';\nexport { ConstantsService } from './constants.service';\nexport { ContainerService } from './container.service';\nexport { CryptoService } from './crypto.service';\nexport { EnvironmentService } from './environment.service';\nexport { FolderService } from './folder.service';\nexport { I18nService } from './i18n.service';\nexport { PasswordGenerationService } from './passwordGeneration.service';\nexport { SettingsService } from './settings.service';\nexport { StateService } from './state.service';\nexport { SyncService } from './sync.service';\nexport { TokenService } from './token.service';\nexport { TotpService } from './totp.service';\nexport { UserService } from './user.service';\nexport { VaultTimeoutService } from './vaultTimeout.service';\n","import { BaseResponse } from './baseResponse';\n\nexport class ApiKeyResponse extends BaseResponse {\n apiKey: string;\n\n constructor(response: any) {\n super(response);\n this.apiKey = this.getResponseProperty('ApiKey');\n }\n}\n","import { FileUploadType } from '../../enums/fileUploadType';\nimport { BaseResponse } from './baseResponse';\nimport { CipherResponse } from './cipherResponse';\n\nexport class AttachmentUploadDataResponse extends BaseResponse {\n attachmentId: string;\n fileUploadType: FileUploadType;\n cipherResponse: CipherResponse;\n cipherMiniResponse: CipherResponse;\n url: string = null;\n constructor(response: any) {\n super(response);\n this.attachmentId = this.getResponseProperty('AttachmentId');\n this.fileUploadType = this.getResponseProperty('FileUploadType');\n const cipherResponse = this.getResponseProperty('CipherResponse');\n const cipherMiniResponse = this.getResponseProperty('CipherMiniResponse');\n this.cipherResponse = cipherResponse == null ? null : new CipherResponse(cipherResponse);\n this.cipherMiniResponse = cipherMiniResponse == null ? null : new CipherResponse(cipherMiniResponse);\n this.url = this.getResponseProperty('Url');\n }\n\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { PaymentMethodType } from '../../enums/paymentMethodType';\nimport { TransactionType } from '../../enums/transactionType';\n\nexport class BillingResponse extends BaseResponse {\n balance: number;\n paymentSource: BillingSourceResponse;\n invoices: BillingInvoiceResponse[] = [];\n transactions: BillingTransactionResponse[] = [];\n\n constructor(response: any) {\n super(response);\n this.balance = this.getResponseProperty('Balance');\n const paymentSource = this.getResponseProperty('PaymentSource');\n const transactions = this.getResponseProperty('Transactions');\n const invoices = this.getResponseProperty('Invoices');\n this.paymentSource = paymentSource == null ? null : new BillingSourceResponse(paymentSource);\n if (transactions != null) {\n this.transactions = transactions.map((t: any) => new BillingTransactionResponse(t));\n }\n if (invoices != null) {\n this.invoices = invoices.map((i: any) => new BillingInvoiceResponse(i));\n }\n }\n}\n\nexport class BillingSourceResponse extends BaseResponse {\n type: PaymentMethodType;\n cardBrand: string;\n description: string;\n needsVerification: boolean;\n\n constructor(response: any) {\n super(response);\n this.type = this.getResponseProperty('Type');\n this.cardBrand = this.getResponseProperty('CardBrand');\n this.description = this.getResponseProperty('Description');\n this.needsVerification = this.getResponseProperty('NeedsVerification');\n }\n}\n\nexport class BillingInvoiceResponse extends BaseResponse {\n url: string;\n pdfUrl: string;\n number: string;\n paid: boolean;\n date: string;\n amount: number;\n\n constructor(response: any) {\n super(response);\n this.url = this.getResponseProperty('Url');\n this.pdfUrl = this.getResponseProperty('PdfUrl');\n this.number = this.getResponseProperty('Number');\n this.paid = this.getResponseProperty('Paid');\n this.date = this.getResponseProperty('Date');\n this.amount = this.getResponseProperty('Amount');\n }\n}\n\nexport class BillingTransactionResponse extends BaseResponse {\n createdDate: string;\n amount: number;\n refunded: boolean;\n partiallyRefunded: boolean;\n refundedAmount: number;\n type: TransactionType;\n paymentMethodType: PaymentMethodType;\n details: string;\n\n constructor(response: any) {\n super(response);\n this.createdDate = this.getResponseProperty('CreatedDate');\n this.amount = this.getResponseProperty('Amount');\n this.refunded = this.getResponseProperty('Refunded');\n this.partiallyRefunded = this.getResponseProperty('PartiallyRefunded');\n this.refundedAmount = this.getResponseProperty('RefundedAmount');\n this.type = this.getResponseProperty('Type');\n this.paymentMethodType = this.getResponseProperty('PaymentMethodType');\n this.details = this.getResponseProperty('Details');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class BreachAccountResponse extends BaseResponse {\n addedDate: string;\n breachDate: string;\n dataClasses: string[];\n description: string;\n domain: string;\n isActive: boolean;\n isVerified: boolean;\n logoPath: string;\n modifiedDate: string;\n name: string;\n pwnCount: number;\n title: string;\n\n constructor(response: any) {\n super(response);\n this.addedDate = this.getResponseProperty('AddedDate');\n this.breachDate = this.getResponseProperty('BreachDate');\n this.dataClasses = this.getResponseProperty('DataClasses');\n this.description = this.getResponseProperty('Description');\n this.domain = this.getResponseProperty('Domain');\n this.isActive = this.getResponseProperty('IsActive');\n this.isVerified = this.getResponseProperty('IsVerified');\n this.logoPath = this.getResponseProperty('LogoPath');\n this.modifiedDate = this.getResponseProperty('ModifiedDate');\n this.name = this.getResponseProperty('Name');\n this.pwnCount = this.getResponseProperty('PwnCount');\n this.title = this.getResponseProperty('Title');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { DeviceType } from '../../enums/deviceType';\nimport { EventType } from '../../enums/eventType';\n\nexport class EventResponse extends BaseResponse {\n type: EventType;\n userId: string;\n organizationId: string;\n cipherId: string;\n collectionId: string;\n groupId: string;\n policyId: string;\n organizationUserId: string;\n actingUserId: string;\n date: string;\n deviceType: DeviceType;\n ipAddress: string;\n\n constructor(response: any) {\n super(response);\n this.type = this.getResponseProperty('Type');\n this.userId = this.getResponseProperty('UserId');\n this.organizationId = this.getResponseProperty('OrganizationId');\n this.cipherId = this.getResponseProperty('CipherId');\n this.collectionId = this.getResponseProperty('CollectionId');\n this.groupId = this.getResponseProperty('GroupId');\n this.policyId = this.getResponseProperty('PolicyId');\n this.organizationUserId = this.getResponseProperty('OrganizationUserId');\n this.actingUserId = this.getResponseProperty('ActingUserId');\n this.date = this.getResponseProperty('Date');\n this.deviceType = this.getResponseProperty('DeviceType');\n this.ipAddress = this.getResponseProperty('IpAddress');\n }\n}\n","import { BaseResponse } from './baseResponse';\nimport { SelectionReadOnlyResponse } from './selectionReadOnlyResponse';\n\nexport class GroupResponse extends BaseResponse {\n id: string;\n organizationId: string;\n name: string;\n accessAll: boolean;\n externalId: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.organizationId = this.getResponseProperty('OrganizationId');\n this.name = this.getResponseProperty('Name');\n this.accessAll = this.getResponseProperty('AccessAll');\n this.externalId = this.getResponseProperty('ExternalId');\n }\n}\n\nexport class GroupDetailsResponse extends GroupResponse {\n collections: SelectionReadOnlyResponse[] = [];\n\n constructor(response: any) {\n super(response);\n const collections = this.getResponseProperty('Collections');\n if (collections != null) {\n this.collections = collections.map((c: any) => new SelectionReadOnlyResponse(c));\n }\n }\n}\n","import { OrganizationResponse } from './organizationResponse';\nimport {\n BillingSubscriptionResponse,\n BillingSubscriptionUpcomingInvoiceResponse,\n} from './subscriptionResponse';\n\nexport class OrganizationSubscriptionResponse extends OrganizationResponse {\n storageName: string;\n storageGb: number;\n subscription: BillingSubscriptionResponse;\n upcomingInvoice: BillingSubscriptionUpcomingInvoiceResponse;\n expiration: string;\n\n constructor(response: any) {\n super(response);\n this.storageName = this.getResponseProperty('StorageName');\n this.storageGb = this.getResponseProperty('StorageGb');\n const subscription = this.getResponseProperty('Subscription');\n this.subscription = subscription == null ? null : new BillingSubscriptionResponse(subscription);\n const upcomingInvoice = this.getResponseProperty('UpcomingInvoice');\n this.upcomingInvoice = upcomingInvoice == null ? null :\n new BillingSubscriptionUpcomingInvoiceResponse(upcomingInvoice);\n this.expiration = this.getResponseProperty('Expiration');\n }\n}\n","import { BaseResponse } from './baseResponse';\nimport { SelectionReadOnlyResponse } from './selectionReadOnlyResponse';\n\nimport { PermissionsApi } from '../api/permissionsApi';\n\nimport { OrganizationUserStatusType } from '../../enums/organizationUserStatusType';\nimport { OrganizationUserType } from '../../enums/organizationUserType';\n\nexport class OrganizationUserResponse extends BaseResponse {\n id: string;\n userId: string;\n type: OrganizationUserType;\n status: OrganizationUserStatusType;\n accessAll: boolean;\n permissions: PermissionsApi;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.userId = this.getResponseProperty('UserId');\n this.type = this.getResponseProperty('Type');\n this.status = this.getResponseProperty('Status');\n this.permissions = new PermissionsApi(this.getResponseProperty('Permissions'));\n this.accessAll = this.getResponseProperty('AccessAll');\n }\n}\n\nexport class OrganizationUserUserDetailsResponse extends OrganizationUserResponse {\n name: string;\n email: string;\n twoFactorEnabled: boolean;\n\n constructor(response: any) {\n super(response);\n this.name = this.getResponseProperty('Name');\n this.email = this.getResponseProperty('Email');\n this.twoFactorEnabled = this.getResponseProperty('TwoFactorEnabled');\n }\n}\n\nexport class OrganizationUserDetailsResponse extends OrganizationUserResponse {\n collections: SelectionReadOnlyResponse[] = [];\n\n constructor(response: any) {\n super(response);\n const collections = this.getResponseProperty('Collections');\n if (collections != null) {\n this.collections = collections.map((c: any) => new SelectionReadOnlyResponse(c));\n }\n }\n}\n","import { BaseResponse } from './baseResponse';\nimport { ProfileResponse } from './profileResponse';\n\nexport class PaymentResponse extends BaseResponse {\n userProfile: ProfileResponse;\n paymentIntentClientSecret: string;\n success: boolean;\n\n constructor(response: any) {\n super(response);\n const userProfile = this.getResponseProperty('UserProfile');\n if (userProfile != null) {\n this.userProfile = new ProfileResponse(userProfile);\n }\n this.paymentIntentClientSecret = this.getResponseProperty('PaymentIntentClientSecret');\n this.success = this.getResponseProperty('Success');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { KdfType } from '../../enums/kdfType';\n\nexport class PreloginResponse extends BaseResponse {\n kdf: KdfType;\n kdfIterations: number;\n\n constructor(response: any) {\n super(response);\n this.kdf = this.getResponseProperty('Kdf');\n this.kdfIterations = this.getResponseProperty('KdfIterations');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { SendType } from '../../enums/sendType';\n\nimport { SendFileApi } from '../api/sendFileApi';\nimport { SendTextApi } from '../api/sendTextApi';\n\nexport class SendAccessResponse extends BaseResponse {\n id: string;\n type: SendType;\n name: string;\n file: SendFileApi;\n text: SendTextApi;\n expirationDate: Date;\n creatorIdentifier: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.type = this.getResponseProperty('Type');\n this.name = this.getResponseProperty('Name');\n\n const text = this.getResponseProperty('Text');\n if (text != null) {\n this.text = new SendTextApi(text);\n }\n\n const file = this.getResponseProperty('File');\n if (file != null) {\n this.file = new SendFileApi(file);\n }\n\n this.expirationDate = this.getResponseProperty('ExpirationDate');\n this.creatorIdentifier = this.getResponseProperty('CreatorIdentifier');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class SendFileDownloadDataResponse extends BaseResponse {\n\n id: string = null;\n url: string = null;\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.url = this.getResponseProperty('Url');\n }\n}\n","import { FileUploadType } from '../../enums/fileUploadType';\n\nimport { BaseResponse } from './baseResponse';\nimport { SendResponse } from './sendResponse';\n\nexport class SendFileUploadDataResponse extends BaseResponse {\n\n fileUploadType: FileUploadType;\n sendResponse: SendResponse;\n url: string = null;\n constructor(response: any) {\n super(response);\n this.fileUploadType = this.getResponseProperty('FileUploadType');\n const sendResponse = this.getResponseProperty('SendResponse');\n this.sendResponse = sendResponse == null ? null : new SendResponse(sendResponse);\n this.url = this.getResponseProperty('Url');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class TaxInfoResponse extends BaseResponse {\n taxId: string;\n taxIdType: string;\n line1: string;\n line2: string;\n city: string;\n state: string;\n country: string;\n postalCode: string;\n\n constructor(response: any) {\n super(response);\n this.taxId = this.getResponseProperty('TaxIdNumber');\n this.taxIdType = this.getResponseProperty('TaxIdType');\n this.line1 = this.getResponseProperty('Line1');\n this.line2 = this.getResponseProperty('Line2');\n this.city = this.getResponseProperty('City');\n this.state = this.getResponseProperty('State');\n this.postalCode = this.getResponseProperty('PostalCode');\n this.country = this.getResponseProperty('Country');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class TaxRateResponse extends BaseResponse {\n id: string;\n country: string;\n state: string;\n postalCode: string;\n rate: number;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.country = this.getResponseProperty('Country');\n this.state = this.getResponseProperty('State');\n this.postalCode = this.getResponseProperty('PostalCode');\n this.rate = this.getResponseProperty('Rate');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class TwoFactorAuthenticatorResponse extends BaseResponse {\n enabled: boolean;\n key: string;\n\n constructor(response: any) {\n super(response);\n this.enabled = this.getResponseProperty('Enabled');\n this.key = this.getResponseProperty('Key');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class TwoFactorDuoResponse extends BaseResponse {\n enabled: boolean;\n host: string;\n secretKey: string;\n integrationKey: string;\n\n constructor(response: any) {\n super(response);\n this.enabled = this.getResponseProperty('Enabled');\n this.host = this.getResponseProperty('Host');\n this.secretKey = this.getResponseProperty('SecretKey');\n this.integrationKey = this.getResponseProperty('IntegrationKey');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class TwoFactorEmailResponse extends BaseResponse {\n enabled: boolean;\n email: string;\n\n constructor(response: any) {\n super(response);\n this.enabled = this.getResponseProperty('Enabled');\n this.email = this.getResponseProperty('Email');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { TwoFactorProviderType } from '../../enums/twoFactorProviderType';\n\nexport class TwoFactorProviderResponse extends BaseResponse {\n enabled: boolean;\n type: TwoFactorProviderType;\n\n constructor(response: any) {\n super(response);\n this.enabled = this.getResponseProperty('Enabled');\n this.type = this.getResponseProperty('Type');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class TwoFactorRecoverResponse extends BaseResponse {\n code: string;\n\n constructor(response: any) {\n super(response);\n this.code = this.getResponseProperty('Code');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class TwoFactorYubiKeyResponse extends BaseResponse {\n enabled: boolean;\n key1: string;\n key2: string;\n key3: string;\n key4: string;\n key5: string;\n nfc: boolean;\n\n constructor(response: any) {\n super(response);\n this.enabled = this.getResponseProperty('Enabled');\n this.key1 = this.getResponseProperty('Key1');\n this.key2 = this.getResponseProperty('Key2');\n this.key3 = this.getResponseProperty('Key3');\n this.key4 = this.getResponseProperty('Key4');\n this.key5 = this.getResponseProperty('Key5');\n this.nfc = this.getResponseProperty('Nfc');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class UserKeyResponse extends BaseResponse {\n userId: string;\n publicKey: string;\n\n constructor(response: any) {\n super(response);\n this.userId = this.getResponseProperty('UserId');\n this.publicKey = this.getResponseProperty('PublicKey');\n }\n}\n","/**\n * Use as a Decorator on async functions, it will limit how many times the function can be\n * in-flight at a time.\n *\n * Calls beyond the limit will be queued, and run when one of the active calls finishes\n */\nexport function throttle(limit: number, throttleKey: (args: any[]) => string) {\n return (target: any, propertyKey: string | symbol,\n descriptor: TypedPropertyDescriptor<(...args: any[]) => Promise>) => {\n const originalMethod: () => Promise = descriptor.value;\n const allThrottles = new Map void)[]>>();\n\n const getThrottles = (obj: any) => {\n let throttles = allThrottles.get(obj);\n if (throttles != null) {\n return throttles;\n }\n throttles = new Map void)[]>();\n allThrottles.set(obj, throttles);\n return throttles;\n };\n\n return {\n value: function(...args: any[]) {\n const throttles = getThrottles(this);\n const argsThrottleKey = throttleKey(args);\n let queue = throttles.get(argsThrottleKey);\n if (queue == null) {\n queue = [];\n throttles.set(argsThrottleKey, queue);\n }\n\n return new Promise((resolve, reject) => {\n const exec = () => {\n const onFinally = () => {\n queue.splice(queue.indexOf(exec), 1);\n if (queue.length >= limit) {\n queue[limit - 1]();\n } else if (queue.length === 0) {\n throttles.delete(argsThrottleKey);\n if (throttles.size === 0) {\n allThrottles.delete(this);\n }\n }\n };\n originalMethod.apply(this, args).then((val: any) => {\n onFinally();\n return val;\n }).catch((err: any) => {\n onFinally();\n throw err;\n }).then(resolve, reject);\n };\n queue.push(exec);\n if (queue.length <= limit) {\n exec();\n }\n });\n },\n };\n };\n}\n","export class CipherBulkMoveRequest {\n ids: string[];\n folderId: string;\n\n constructor(ids: string[], folderId: string) {\n this.ids = ids == null ? [] : ids;\n this.folderId = folderId;\n }\n}\n","export class CipherBulkRestoreRequest {\n ids: string[];\n\n constructor(ids: string[]) {\n this.ids = ids == null ? [] : ids;\n }\n}\n","import { CipherWithIdRequest } from './cipherWithIdRequest';\n\nimport { Cipher } from '../domain/cipher';\n\nexport class CipherBulkShareRequest {\n ciphers: CipherWithIdRequest[];\n collectionIds: string[];\n\n constructor(ciphers: Cipher[], collectionIds: string[]) {\n if (ciphers != null) {\n this.ciphers = [];\n ciphers.forEach(c => {\n this.ciphers.push(new CipherWithIdRequest(c));\n });\n }\n this.collectionIds = collectionIds;\n }\n}\n","import { CipherRequest } from './cipherRequest';\n\nimport { Cipher } from '../domain/cipher';\n\nexport class CipherShareRequest {\n cipher: CipherRequest;\n collectionIds: string[];\n\n constructor(cipher: Cipher) {\n this.cipher = new CipherRequest(cipher);\n this.collectionIds = cipher.collectionIds;\n }\n}\n","import { CipherView } from '../view';\n\nconst CacheTTL = 3000;\n\nexport class SortedCiphersCache {\n private readonly sortedCiphersByUrl: Map = new Map();\n private readonly timeouts: Map = new Map();\n\n constructor(private readonly comparator: (a: CipherView, b: CipherView) => number) { }\n\n isCached(url: string) {\n return this.sortedCiphersByUrl.has(url);\n }\n\n addCiphers(url: string, ciphers: CipherView[]) {\n ciphers.sort(this.comparator);\n this.sortedCiphersByUrl.set(url, new Ciphers(ciphers));\n this.resetTimer(url);\n }\n\n getLastUsed(url: string) {\n this.resetTimer(url);\n return this.isCached(url) ? this.sortedCiphersByUrl.get(url).getLastUsed() : null;\n }\n\n getLastLaunched(url: string) {\n return this.isCached(url) ? this.sortedCiphersByUrl.get(url).getLastLaunched() : null;\n }\n\n getNext(url: string) {\n this.resetTimer(url);\n return this.isCached(url) ? this.sortedCiphersByUrl.get(url).getNext() : null;\n }\n\n updateLastUsedIndex(url: string) {\n if (this.isCached(url)) {\n this.sortedCiphersByUrl.get(url).updateLastUsedIndex();\n }\n }\n\n clear() {\n this.sortedCiphersByUrl.clear();\n this.timeouts.clear();\n }\n\n private resetTimer(url: string) {\n clearTimeout(this.timeouts.get(url));\n this.timeouts.set(url, setTimeout(() => {\n this.sortedCiphersByUrl.delete(url);\n this.timeouts.delete(url);\n }, CacheTTL));\n }\n}\n\nclass Ciphers {\n lastUsedIndex = -1;\n\n constructor(private readonly ciphers: CipherView[]) { }\n\n getLastUsed() {\n this.lastUsedIndex = Math.max(this.lastUsedIndex, 0);\n return this.ciphers[this.lastUsedIndex];\n }\n\n getLastLaunched() {\n const usedCiphers = this.ciphers.filter(cipher => cipher.localData?.lastLaunched);\n const sortedCiphers = usedCiphers.sort((x, y) => y.localData.lastLaunched.valueOf() - x.localData.lastLaunched.valueOf());\n return sortedCiphers[0];\n }\n\n getNextIndex() {\n return (this.lastUsedIndex + 1) % this.ciphers.length;\n }\n\n getNext() {\n return this.ciphers[this.getNextIndex()];\n }\n\n updateLastUsedIndex() {\n this.lastUsedIndex = this.getNextIndex();\n }\n}\n","export class TreeNode {\n parent: T;\n node: T;\n children: TreeNode[] = [];\n\n constructor(node: T, name: string, parent: T) {\n this.parent = parent;\n this.node = node;\n this.node.name = name;\n }\n}\n\nexport interface ITreeNodeObject {\n id: string;\n name: string;\n}\n","export class EncArrayBuffer {\n constructor(public buffer: ArrayBuffer) { }\n}\n","import Domain from './domainBase';\n\nexport class PasswordGeneratorPolicyOptions extends Domain {\n defaultType: string = '';\n minLength: number = 0;\n useUppercase: boolean = false;\n useLowercase: boolean = false;\n useNumbers: boolean = false;\n numberCount: number = 0;\n useSpecial: boolean = false;\n specialCount: number = 0;\n minNumberWords: number = 0;\n capitalize: boolean = false;\n includeNumber: boolean = false;\n\n inEffect() {\n return this.defaultType !== '' ||\n this.minLength > 0 ||\n this.numberCount > 0 ||\n this.specialCount > 0 ||\n this.useUppercase ||\n this.useLowercase ||\n this.useNumbers ||\n this.useSpecial ||\n this.minNumberWords > 0 ||\n this.capitalize ||\n this.includeNumber;\n }\n}\n","import { ProfileOrganizationResponse } from '../response/profileOrganizationResponse';\n\nimport { OrganizationUserStatusType } from '../../enums/organizationUserStatusType';\nimport { OrganizationUserType } from '../../enums/organizationUserType';\nimport { PermissionsApi } from '../api/permissionsApi';\n\nexport class OrganizationData {\n id: string;\n name: string;\n status: OrganizationUserStatusType;\n type: OrganizationUserType;\n enabled: boolean;\n usePolicies: boolean;\n useGroups: boolean;\n useDirectory: boolean;\n useEvents: boolean;\n useTotp: boolean;\n use2fa: boolean;\n useApi: boolean;\n useBusinessPortal: boolean;\n useSso: boolean;\n selfHost: boolean;\n usersGetPremium: boolean;\n seats: number;\n maxCollections: number;\n maxStorageGb?: number;\n ssoBound: boolean;\n identifier: string;\n permissions: PermissionsApi;\n resetPasswordKey: string;\n userId: string;\n\n constructor(response: ProfileOrganizationResponse) {\n this.id = response.id;\n this.name = response.name;\n this.status = response.status;\n this.type = response.type;\n this.enabled = response.enabled;\n this.usePolicies = response.usePolicies;\n this.useGroups = response.useGroups;\n this.useDirectory = response.useDirectory;\n this.useEvents = response.useEvents;\n this.useTotp = response.useTotp;\n this.use2fa = response.use2fa;\n this.useApi = response.useApi;\n this.useBusinessPortal = response.useBusinessPortal;\n this.useSso = response.useSso;\n this.selfHost = response.selfHost;\n this.usersGetPremium = response.usersGetPremium;\n this.seats = response.seats;\n this.maxCollections = response.maxCollections;\n this.maxStorageGb = response.maxStorageGb;\n this.ssoBound = response.ssoBound;\n this.identifier = response.identifier;\n this.permissions = response.permissions;\n this.resetPasswordKey = response.resetPasswordKey;\n this.userId = response.userId;\n }\n}\n","import { SendFileApi } from '../api/sendFileApi';\n\nexport class SendFileData {\n id: string;\n fileName: string;\n key: string;\n size: string;\n sizeName: string;\n\n constructor(data?: SendFileApi) {\n if (data == null) {\n return;\n }\n\n this.id = data.id;\n this.fileName = data.fileName;\n this.key = data.key;\n this.size = data.size;\n this.sizeName = data.sizeName;\n }\n}\n","import { SendTextApi } from '../api/sendTextApi';\n\nexport class SendTextData {\n text: string;\n hidden: boolean;\n\n constructor(data?: SendTextApi) {\n if (data == null) {\n return;\n }\n\n this.text = data.text;\n this.hidden = data.hidden;\n }\n}\n","import { I18nService as BaseI18nService } from 'jslib/services/i18n.service';\n\nexport class I18nService extends BaseI18nService {\n constructor(systemLanguage: string, localesDirectory: string) {\n super(systemLanguage || 'en-US', localesDirectory, async (formattedLocale: string) => {\n const filePath = this.localesDirectory + '/' + formattedLocale + '/messages.json?cache=' +\n process.env.CACHE_TAG;\n const localesResult = await fetch(filePath);\n const locales = await localesResult.json();\n return locales;\n });\n\n this.supportedTranslationLocales = [\n 'en', 'ca', 'cs', 'da', 'de', 'el', 'en-GB', 'es', 'et', 'fr', 'he', 'it', 'ja', 'ko', 'lv', 'ml', 'nb',\n 'nl', 'pl', 'pt-PT', 'pt-BR', 'ru', 'sk', 'sv', 'uk', 'zh-CN', 'zh-TW',\n ];\n }\n}\n","import { StorageService } from 'jslib/abstractions/storage.service';\n\nexport class MemoryStorageService implements StorageService {\n private store = new Map();\n\n get(key: string): Promise {\n if (this.store.has(key)) {\n const obj = this.store.get(key);\n return Promise.resolve(obj as T);\n }\n return Promise.resolve(null);\n }\n\n save(key: string, obj: any): Promise {\n if (obj == null) {\n return this.remove(key);\n }\n this.store.set(key, obj);\n return Promise.resolve();\n }\n\n remove(key: string): Promise {\n this.store.delete(key);\n return Promise.resolve();\n }\n}\n","import Swal, { SweetAlertIcon } from 'sweetalert2/dist/sweetalert2.js';\n\nimport { DeviceType } from 'jslib/enums/deviceType';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nexport class WebPlatformUtilsService implements PlatformUtilsService {\n identityClientId: string = 'web';\n\n private browserCache: DeviceType = null;\n\n constructor(private i18nService: I18nService, private messagingService: MessagingService) { }\n\n getDevice(): DeviceType {\n if (this.browserCache != null) {\n return this.browserCache;\n }\n\n if (navigator.userAgent.indexOf(' Firefox/') !== -1 || navigator.userAgent.indexOf(' Gecko/') !== -1) {\n this.browserCache = DeviceType.FirefoxBrowser;\n } else if (navigator.userAgent.indexOf(' OPR/') >= 0) {\n this.browserCache = DeviceType.OperaBrowser;\n } else if (navigator.userAgent.indexOf(' Edg/') !== -1) {\n this.browserCache = DeviceType.EdgeBrowser;\n } else if (navigator.userAgent.indexOf(' Vivaldi/') !== -1) {\n this.browserCache = DeviceType.VivaldiBrowser;\n } else if (navigator.userAgent.indexOf(' Safari/') !== -1 && navigator.userAgent.indexOf('Chrome') === -1) {\n this.browserCache = DeviceType.SafariBrowser;\n } else if ((window as any).chrome && navigator.userAgent.indexOf(' Chrome/') !== -1) {\n this.browserCache = DeviceType.ChromeBrowser;\n } else if (navigator.userAgent.indexOf(' Trident/') !== -1) {\n this.browserCache = DeviceType.IEBrowser;\n } else {\n this.browserCache = DeviceType.UnknownBrowser;\n }\n\n return this.browserCache;\n }\n\n getDeviceString(): string {\n const device = DeviceType[this.getDevice()].toLowerCase();\n return device.replace('browser', '');\n }\n\n isFirefox(): boolean {\n return this.getDevice() === DeviceType.FirefoxBrowser;\n }\n\n isChrome(): boolean {\n return this.getDevice() === DeviceType.ChromeBrowser;\n }\n\n isEdge(): boolean {\n return this.getDevice() === DeviceType.EdgeBrowser;\n }\n\n isOpera(): boolean {\n return this.getDevice() === DeviceType.OperaBrowser;\n }\n\n isVivaldi(): boolean {\n return this.getDevice() === DeviceType.VivaldiBrowser;\n }\n\n isSafari(): boolean {\n return this.getDevice() === DeviceType.SafariBrowser;\n }\n\n isIE(): boolean {\n return this.getDevice() === DeviceType.IEBrowser;\n }\n\n isMacAppStore(): boolean {\n return false;\n }\n\n isViewOpen(): Promise {\n return Promise.resolve(false);\n }\n\n lockTimeout(): number {\n return null;\n }\n\n launchUri(uri: string, options?: any): void {\n const a = document.createElement('a');\n a.href = uri;\n if (options == null || !options.sameWindow) {\n a.target = '_blank';\n a.rel = 'noreferrer noopener';\n }\n a.classList.add('d-none');\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n }\n\n saveFile(win: Window, blobData: any, blobOptions: any, fileName: string): void {\n let blob: Blob = null;\n let type: string = null;\n const fileNameLower = fileName.toLowerCase();\n let doDownload = true;\n if (fileNameLower.endsWith('.pdf')) {\n type = 'application/pdf';\n doDownload = false;\n } else if (fileNameLower.endsWith('.xlsx')) {\n type = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';\n } else if (fileNameLower.endsWith('.docx')) {\n type = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';\n } else if (fileNameLower.endsWith('.pptx')) {\n type = 'application/vnd.openxmlformats-officedocument.presentationml.presentation';\n } else if (fileNameLower.endsWith('.csv')) {\n type = 'text/csv';\n } else if (fileNameLower.endsWith('.png')) {\n type = 'image/png';\n } else if (fileNameLower.endsWith('.jpg') || fileNameLower.endsWith('.jpeg')) {\n type = 'image/jpeg';\n } else if (fileNameLower.endsWith('.gif')) {\n type = 'image/gif';\n }\n if (type != null) {\n blobOptions = blobOptions || {};\n if (blobOptions.type == null) {\n blobOptions.type = type;\n }\n }\n if (blobOptions != null && !this.isIE()) {\n blob = new Blob([blobData], blobOptions);\n } else {\n blob = new Blob([blobData]);\n }\n if (navigator.msSaveOrOpenBlob) {\n navigator.msSaveBlob(blob, fileName);\n } else {\n const a = win.document.createElement('a');\n if (doDownload) {\n a.download = fileName;\n } else if (!this.isSafari()) {\n a.target = '_blank';\n }\n a.href = URL.createObjectURL(blob);\n a.style.position = 'fixed';\n win.document.body.appendChild(a);\n a.click();\n win.document.body.removeChild(a);\n }\n }\n\n getApplicationVersion(): Promise {\n return Promise.resolve(process.env.APPLICATION_VERSION || '-');\n }\n\n supportsWebAuthn(win: Window): boolean {\n return (typeof(PublicKeyCredential) !== 'undefined');\n }\n\n supportsDuo(): boolean {\n return true;\n }\n\n showToast(type: 'error' | 'success' | 'warning' | 'info', title: string, text: string | string[],\n options?: any): void {\n this.messagingService.send('showToast', {\n text: text,\n title: title,\n type: type,\n options: options,\n });\n }\n\n async showDialog(body: string, title?: string, confirmText?: string, cancelText?: string, type?: string,\n bodyIsHtml: boolean = false) {\n let iconClasses: string = null;\n if (type != null) {\n // If you add custom types to this part, the type to SweetAlertIcon cast below needs to be changed.\n switch (type) {\n case 'success':\n iconClasses = 'fa-check text-success';\n break;\n case 'warning':\n iconClasses = 'fa-warning text-warning';\n break;\n case 'error':\n iconClasses = 'fa-bolt text-danger';\n break;\n case 'info':\n iconClasses = 'fa-info-circle text-info';\n break;\n default:\n break;\n }\n }\n\n const iconHtmlStr = iconClasses != null ? `` : undefined;\n const confirmed = await Swal.fire({\n heightAuto: false,\n buttonsStyling: false,\n icon: type as SweetAlertIcon, // required to be any of the SweetAlertIcons to output the iconHtml.\n iconHtml: iconHtmlStr,\n text: bodyIsHtml ? null : body,\n html: bodyIsHtml ? body : null,\n title: title,\n showCancelButton: (cancelText != null),\n cancelButtonText: cancelText,\n showConfirmButton: true,\n confirmButtonText: confirmText == null ? this.i18nService.t('ok') : confirmText,\n });\n\n return confirmed.value;\n }\n\n isDev(): boolean {\n return process.env.ENV === 'development';\n }\n\n isSelfHost(): boolean {\n return process.env.SELF_HOST.toString() === 'true';\n }\n\n copyToClipboard(text: string, options?: any): void {\n let win = window;\n let doc = window.document;\n if (options && (options.window || options.win)) {\n win = options.window || options.win;\n doc = win.document;\n } else if (options && options.doc) {\n doc = options.doc;\n }\n if ((win as any).clipboardData && (win as any).clipboardData.setData) {\n // IE specific code path to prevent textarea being shown while dialog is visible.\n (win as any).clipboardData.setData('Text', text);\n } else if (doc.queryCommandSupported && doc.queryCommandSupported('copy')) {\n const textarea = doc.createElement('textarea');\n textarea.textContent = text;\n // Prevent scrolling to bottom of page in MS Edge.\n textarea.style.position = 'fixed';\n let copyEl = doc.body;\n // For some reason copy command won't work when modal is open if appending to body\n if (doc.body.classList.contains('modal-open')) {\n copyEl = doc.body.querySelector('.modal');\n }\n copyEl.appendChild(textarea);\n textarea.select();\n try {\n // Security exception may be thrown by some browsers.\n doc.execCommand('copy');\n } catch (e) {\n // tslint:disable-next-line\n console.warn('Copy to clipboard failed.', e);\n } finally {\n copyEl.removeChild(textarea);\n }\n }\n }\n\n readFromClipboard(options?: any): Promise {\n throw new Error('Cannot read from clipboard on web.');\n }\n\n supportsBiometric() {\n return Promise.resolve(false);\n }\n\n authenticateBiometric() {\n return Promise.resolve(false);\n }\n\n supportsSecureStorage() {\n return false;\n }\n\n getDefaultSystemTheme() {\n return Promise.resolve(null as 'light' | 'dark');\n }\n\n onDefaultSystemThemeChange() {\n /* noop */\n }\n}\n","import { EventType } from '../enums/eventType';\n\nimport { EventData } from '../models/data/eventData';\n\nimport { EventRequest } from '../models/request/eventRequest';\n\nimport { ApiService } from '../abstractions/api.service';\nimport { CipherService } from '../abstractions/cipher.service';\nimport { EventService as EventServiceAbstraction } from '../abstractions/event.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { UserService } from '../abstractions/user.service';\n\nimport { ConstantsService } from './constants.service';\n\nexport class EventService implements EventServiceAbstraction {\n private inited = false;\n\n constructor(private storageService: StorageService, private apiService: ApiService,\n private userService: UserService, private cipherService: CipherService) { }\n\n init(checkOnInterval: boolean) {\n if (this.inited) {\n return;\n }\n\n this.inited = true;\n if (checkOnInterval) {\n this.uploadEvents();\n setInterval(() => this.uploadEvents(), 60 * 1000); // check every 60 seconds\n }\n }\n\n async collect(eventType: EventType, cipherId: string = null, uploadImmediately = false): Promise {\n const authed = await this.userService.isAuthenticated();\n if (!authed) {\n return;\n }\n const organizations = await this.userService.getAllOrganizations();\n if (organizations == null) {\n return;\n }\n const orgIds = new Set(organizations.filter(o => o.useEvents).map(o => o.id));\n if (orgIds.size === 0) {\n return;\n }\n if (cipherId != null) {\n const cipher = await this.cipherService.get(cipherId);\n if (cipher == null || cipher.organizationId == null || !orgIds.has(cipher.organizationId)) {\n return;\n }\n }\n let eventCollection = await this.storageService.get(ConstantsService.eventCollectionKey);\n if (eventCollection == null) {\n eventCollection = [];\n }\n const event = new EventData();\n event.type = eventType;\n event.cipherId = cipherId;\n event.date = new Date().toISOString();\n eventCollection.push(event);\n await this.storageService.save(ConstantsService.eventCollectionKey, eventCollection);\n if (uploadImmediately) {\n await this.uploadEvents();\n }\n }\n\n async uploadEvents(): Promise {\n const authed = await this.userService.isAuthenticated();\n if (!authed) {\n return;\n }\n const eventCollection = await this.storageService.get(ConstantsService.eventCollectionKey);\n if (eventCollection == null || eventCollection.length === 0) {\n return;\n }\n const request = eventCollection.map(e => {\n const req = new EventRequest();\n req.type = e.type;\n req.cipherId = e.cipherId;\n req.date = e.date;\n return req;\n });\n try {\n await this.apiService.postEventsCollect(request);\n this.clearEvents();\n } catch { }\n }\n\n async clearEvents(): Promise {\n await this.storageService.remove(ConstantsService.eventCollectionKey);\n }\n}\n","import { EventType } from '../../enums/eventType';\n\nexport class EventData {\n type: EventType;\n cipherId: string;\n date: string;\n}\n","import { EventType } from '../../enums/eventType';\n\nexport class EventRequest {\n type: EventType;\n cipherId: string;\n date: string;\n}\n","import * as papa from 'papaparse';\n\nimport { CipherType } from '../enums/cipherType';\n\nimport { ApiService } from '../abstractions/api.service';\nimport { CipherService } from '../abstractions/cipher.service';\nimport { ExportService as ExportServiceAbstraction } from '../abstractions/export.service';\nimport { FolderService } from '../abstractions/folder.service';\n\nimport { CipherView } from '../models/view/cipherView';\nimport { CollectionView } from '../models/view/collectionView';\nimport { FolderView } from '../models/view/folderView';\n\nimport { Cipher } from '../models/domain/cipher';\nimport { Collection } from '../models/domain/collection';\nimport { Folder } from '../models/domain/folder';\n\nimport { CipherData } from '../models/data/cipherData';\nimport { CollectionData } from '../models/data/collectionData';\nimport { CollectionDetailsResponse } from '../models/response/collectionResponse';\n\nimport { CipherWithIds as CipherExport } from '../models/export/cipherWithIds';\nimport { CollectionWithId as CollectionExport } from '../models/export/collectionWithId';\nimport { FolderWithId as FolderExport } from '../models/export/folderWithId';\n\nexport class ExportService implements ExportServiceAbstraction {\n constructor(private folderService: FolderService, private cipherService: CipherService,\n private apiService: ApiService) { }\n\n async getExport(format: 'csv' | 'json' | 'encrypted_json' = 'csv'): Promise {\n if (format === 'encrypted_json') {\n return this.getEncryptedExport();\n } else {\n return this.getDecryptedExport(format);\n }\n }\n\n async getOrganizationExport(organizationId: string,\n format: 'csv' | 'json' | 'encrypted_json' = 'csv'): Promise {\n if (format === 'encrypted_json') {\n return this.getOrganizationEncryptedExport(organizationId);\n } else {\n return this.getOrganizationDecryptedExport(organizationId, format);\n }\n }\n\n getFileName(prefix: string = null, extension: string = 'csv'): string {\n const now = new Date();\n const dateString =\n now.getFullYear() + '' + this.padNumber(now.getMonth() + 1, 2) + '' + this.padNumber(now.getDate(), 2) +\n this.padNumber(now.getHours(), 2) + '' + this.padNumber(now.getMinutes(), 2) +\n this.padNumber(now.getSeconds(), 2);\n\n return 'bitwarden' + (prefix ? ('_' + prefix) : '') + '_export_' + dateString + '.' + extension;\n }\n\n private async getDecryptedExport(format: 'json' | 'csv'): Promise {\n let decFolders: FolderView[] = [];\n let decCiphers: CipherView[] = [];\n const promises = [];\n\n promises.push(this.folderService.getAllDecrypted().then(folders => {\n decFolders = folders;\n }));\n\n promises.push(this.cipherService.getAllDecrypted().then(ciphers => {\n decCiphers = ciphers.filter(f => f.deletedDate == null);\n }));\n\n await Promise.all(promises);\n\n if (format === 'csv') {\n const foldersMap = new Map();\n decFolders.forEach(f => {\n if (f.id != null) {\n foldersMap.set(f.id, f);\n }\n });\n\n const exportCiphers: any[] = [];\n decCiphers.forEach(c => {\n // only export logins and secure notes\n if (c.type !== CipherType.Login && c.type !== CipherType.SecureNote) {\n return;\n }\n if (c.organizationId != null) {\n return;\n }\n\n const cipher: any = {};\n cipher.folder = c.folderId != null && foldersMap.has(c.folderId) ?\n foldersMap.get(c.folderId).name : null;\n cipher.favorite = c.favorite ? 1 : null;\n this.buildCommonCipher(cipher, c);\n exportCiphers.push(cipher);\n });\n\n return papa.unparse(exportCiphers);\n } else {\n const jsonDoc: any = {\n encrypted: false,\n folders: [],\n items: [],\n };\n\n decFolders.forEach(f => {\n if (f.id == null) {\n return;\n }\n const folder = new FolderExport();\n folder.build(f);\n jsonDoc.folders.push(folder);\n });\n\n decCiphers.forEach(c => {\n if (c.organizationId != null) {\n return;\n }\n const cipher = new CipherExport();\n cipher.build(c);\n cipher.collectionIds = null;\n jsonDoc.items.push(cipher);\n });\n\n return JSON.stringify(jsonDoc, null, ' ');\n }\n }\n\n private async getEncryptedExport(): Promise {\n let folders: Folder[] = [];\n let ciphers: Cipher[] = [];\n const promises = [];\n\n promises.push(this.folderService.getAll().then(f => {\n folders = f;\n }));\n\n promises.push(this.cipherService.getAll().then(c => {\n ciphers = c.filter(f => f.deletedDate == null);\n }));\n\n await Promise.all(promises);\n\n const jsonDoc: any = {\n encrypted: true,\n folders: [],\n items: [],\n };\n\n folders.forEach(f => {\n if (f.id == null) {\n return;\n }\n const folder = new FolderExport();\n folder.build(f);\n jsonDoc.folders.push(folder);\n });\n\n ciphers.forEach(c => {\n if (c.organizationId != null) {\n return;\n }\n const cipher = new CipherExport();\n cipher.build(c);\n cipher.collectionIds = null;\n jsonDoc.items.push(cipher);\n });\n\n return JSON.stringify(jsonDoc, null, ' ');\n }\n\n private async getOrganizationDecryptedExport(organizationId: string, format: 'json' | 'csv'): Promise {\n const decCollections: CollectionView[] = [];\n const decCiphers: CipherView[] = [];\n const promises = [];\n\n promises.push(this.apiService.getCollections(organizationId).then(collections => {\n const collectionPromises: any = [];\n if (collections != null && collections.data != null && collections.data.length > 0) {\n collections.data.forEach(c => {\n const collection = new Collection(new CollectionData(c as CollectionDetailsResponse));\n collectionPromises.push(collection.decrypt().then(decCol => {\n decCollections.push(decCol);\n }));\n });\n }\n return Promise.all(collectionPromises);\n }));\n\n promises.push(this.apiService.getCiphersOrganization(organizationId).then(ciphers => {\n const cipherPromises: any = [];\n if (ciphers != null && ciphers.data != null && ciphers.data.length > 0) {\n ciphers.data.filter(c => c.deletedDate === null).forEach(c => {\n const cipher = new Cipher(new CipherData(c));\n cipherPromises.push(cipher.decrypt().then(decCipher => {\n decCiphers.push(decCipher);\n }));\n });\n }\n return Promise.all(cipherPromises);\n }));\n\n await Promise.all(promises);\n\n if (format === 'csv') {\n const collectionsMap = new Map();\n decCollections.forEach(c => {\n collectionsMap.set(c.id, c);\n });\n\n const exportCiphers: any[] = [];\n decCiphers.forEach(c => {\n // only export logins and secure notes\n if (c.type !== CipherType.Login && c.type !== CipherType.SecureNote) {\n return;\n }\n\n const cipher: any = {};\n cipher.collections = [];\n if (c.collectionIds != null) {\n cipher.collections = c.collectionIds.filter(id => collectionsMap.has(id))\n .map(id => collectionsMap.get(id).name);\n }\n this.buildCommonCipher(cipher, c);\n exportCiphers.push(cipher);\n });\n\n return papa.unparse(exportCiphers);\n } else {\n const jsonDoc: any = {\n encrypted: false,\n collections: [],\n items: [],\n };\n\n decCollections.forEach(c => {\n const collection = new CollectionExport();\n collection.build(c);\n jsonDoc.collections.push(collection);\n });\n\n decCiphers.forEach(c => {\n const cipher = new CipherExport();\n cipher.build(c);\n jsonDoc.items.push(cipher);\n });\n return JSON.stringify(jsonDoc, null, ' ');\n }\n }\n\n private async getOrganizationEncryptedExport(organizationId: string): Promise {\n const collections: Collection[] = [];\n const ciphers: Cipher[] = [];\n const promises = [];\n\n promises.push(this.apiService.getCollections(organizationId).then(c => {\n const collectionPromises: any = [];\n if (c != null && c.data != null && c.data.length > 0) {\n c.data.forEach(r => {\n const collection = new Collection(new CollectionData(r as CollectionDetailsResponse));\n collections.push(collection);\n });\n }\n return Promise.all(collectionPromises);\n }));\n\n promises.push(this.apiService.getCiphersOrganization(organizationId).then(c => {\n const cipherPromises: any = [];\n if (c != null && c.data != null && c.data.length > 0) {\n c.data.filter(item => item.deletedDate === null).forEach(item => {\n const cipher = new Cipher(new CipherData(item));\n ciphers.push(cipher);\n });\n }\n return Promise.all(cipherPromises);\n }));\n\n await Promise.all(promises);\n\n const jsonDoc: any = {\n encrypted: true,\n collections: [],\n items: [],\n };\n\n collections.forEach(c => {\n const collection = new CollectionExport();\n collection.build(c);\n jsonDoc.collections.push(collection);\n });\n\n ciphers.forEach(c => {\n const cipher = new CipherExport();\n cipher.build(c);\n jsonDoc.items.push(cipher);\n });\n return JSON.stringify(jsonDoc, null, ' ');\n }\n\n private padNumber(num: number, width: number, padCharacter: string = '0'): string {\n const numString = num.toString();\n return numString.length >= width ? numString :\n new Array(width - numString.length + 1).join(padCharacter) + numString;\n }\n\n private buildCommonCipher(cipher: any, c: CipherView) {\n cipher.type = null;\n cipher.name = c.name;\n cipher.notes = c.notes;\n cipher.fields = null;\n // Login props\n cipher.login_uri = null;\n cipher.login_username = null;\n cipher.login_password = null;\n cipher.login_totp = null;\n\n if (c.fields) {\n c.fields.forEach((f: any) => {\n if (!cipher.fields) {\n cipher.fields = '';\n } else {\n cipher.fields += '\\n';\n }\n\n cipher.fields += ((f.name || '') + ': ' + f.value);\n });\n }\n\n switch (c.type) {\n case CipherType.Login:\n cipher.type = 'login';\n cipher.login_username = c.login.username;\n cipher.login_password = c.login.password;\n cipher.login_totp = c.login.totp;\n\n if (c.login.uris) {\n cipher.login_uri = [];\n c.login.uris.forEach(u => {\n cipher.login_uri.push(u.uri);\n });\n }\n break;\n case CipherType.SecureNote:\n cipher.type = 'note';\n break;\n default:\n return;\n }\n\n return cipher;\n }\n}\n","import { CipherType } from '../../enums/cipherType';\n\nimport { CipherView } from '../view/cipherView';\n\nimport { Cipher as CipherDomain } from '../domain/cipher';\nimport { EncString } from '../domain/encString';\n\nimport { Card } from './card';\nimport { Field } from './field';\nimport { Identity } from './identity';\nimport { Login } from './login';\nimport { SecureNote } from './secureNote';\n\nexport class Cipher {\n static template(): Cipher {\n const req = new Cipher();\n req.organizationId = null;\n req.collectionIds = null;\n req.folderId = null;\n req.type = CipherType.Login;\n req.name = 'Item name';\n req.notes = 'Some notes about this item.';\n req.favorite = false;\n req.fields = [];\n req.login = null;\n req.secureNote = null;\n req.card = null;\n req.identity = null;\n return req;\n }\n\n static toView(req: Cipher, view = new CipherView()) {\n view.type = req.type;\n view.folderId = req.folderId;\n if (view.organizationId == null) {\n view.organizationId = req.organizationId;\n }\n if (view.collectionIds || req.collectionIds) {\n const set = new Set((view.collectionIds ?? []).concat(req.collectionIds ?? []));\n view.collectionIds = Array.from(set.values());\n }\n view.name = req.name;\n view.notes = req.notes;\n view.favorite = req.favorite;\n\n if (req.fields != null) {\n view.fields = req.fields.map(f => Field.toView(f));\n }\n\n switch (req.type) {\n case CipherType.Login:\n view.login = Login.toView(req.login);\n break;\n case CipherType.SecureNote:\n view.secureNote = SecureNote.toView(req.secureNote);\n break;\n case CipherType.Card:\n view.card = Card.toView(req.card);\n break;\n case CipherType.Identity:\n view.identity = Identity.toView(req.identity);\n break;\n }\n\n return view;\n }\n\n static toDomain(req: Cipher, domain = new CipherDomain()) {\n domain.type = req.type;\n domain.folderId = req.folderId;\n if (domain.organizationId == null) {\n domain.organizationId = req.organizationId;\n }\n domain.name = req.name != null ? new EncString(req.name) : null;\n domain.notes = req.notes != null ? new EncString(req.notes) : null;\n domain.favorite = req.favorite;\n\n if (req.fields != null) {\n domain.fields = req.fields.map(f => Field.toDomain(f));\n }\n\n switch (req.type) {\n case CipherType.Login:\n domain.login = Login.toDomain(req.login);\n break;\n case CipherType.SecureNote:\n domain.secureNote = SecureNote.toDomain(req.secureNote);\n break;\n case CipherType.Card:\n domain.card = Card.toDomain(req.card);\n break;\n case CipherType.Identity:\n domain.identity = Identity.toDomain(req.identity);\n break;\n }\n\n return domain;\n }\n\n type: CipherType;\n folderId: string;\n organizationId: string;\n collectionIds: string[];\n name: string;\n notes: string;\n favorite: boolean;\n fields: Field[];\n login: Login;\n secureNote: SecureNote;\n card: Card;\n identity: Identity;\n\n // Use build method instead of ctor so that we can control order of JSON stringify for pretty print\n build(o: CipherView | CipherDomain) {\n this.organizationId = o.organizationId;\n this.folderId = o.folderId;\n this.type = o.type;\n\n if (o instanceof CipherView) {\n this.name = o.name;\n this.notes = o.notes;\n } else {\n this.name = o.name?.encryptedString;\n this.notes = o.notes?.encryptedString;\n }\n\n this.favorite = o.favorite;\n\n if (o.fields != null) {\n if (o instanceof CipherView) {\n this.fields = o.fields.map(f => new Field(f));\n } else {\n this.fields = o.fields.map(f => new Field(f));\n }\n }\n\n switch (o.type) {\n case CipherType.Login:\n this.login = new Login(o.login);\n break;\n case CipherType.SecureNote:\n this.secureNote = new SecureNote(o.secureNote);\n break;\n case CipherType.Card:\n this.card = new Card(o.card);\n break;\n case CipherType.Identity:\n this.identity = new Identity(o.identity);\n break;\n }\n }\n}\n","import { CardView } from '../view/cardView';\n\nimport { Card as CardDomain } from '../domain/card';\nimport { EncString } from '../domain/encString';\n\nexport class Card {\n static template(): Card {\n const req = new Card();\n req.cardholderName = 'John Doe';\n req.brand = 'visa';\n req.number = '4242424242424242';\n req.expMonth = '04';\n req.expYear = '2023';\n req.code = '123';\n return req;\n }\n\n static toView(req: Card, view = new CardView()) {\n view.cardholderName = req.cardholderName;\n view.brand = req.brand;\n view.number = req.number;\n view.expMonth = req.expMonth;\n view.expYear = req.expYear;\n view.code = req.code;\n return view;\n }\n\n static toDomain(req: Card, domain = new CardDomain()) {\n domain.cardholderName = req.cardholderName != null ? new EncString(req.cardholderName) : null;\n domain.brand = req.brand != null ? new EncString(req.brand) : null;\n domain.number = req.number != null ? new EncString(req.number) : null;\n domain.expMonth = req.expMonth != null ? new EncString(req.expMonth) : null;\n domain.expYear = req.expYear != null ? new EncString(req.expYear) : null;\n domain.code = req.code != null ? new EncString(req.code) : null;\n return domain;\n }\n\n cardholderName: string;\n brand: string;\n number: string;\n expMonth: string;\n expYear: string;\n code: string;\n\n constructor(o?: CardView | CardDomain) {\n if (o == null) {\n return;\n }\n\n if (o instanceof CardView) {\n this.cardholderName = o.cardholderName;\n this.brand = o.brand;\n this.number = o.number;\n this.expMonth = o.expMonth;\n this.expYear = o.expYear;\n this.code = o.code;\n } else {\n this.cardholderName = o.cardholderName?.encryptedString;\n this.brand = o.brand?.encryptedString;\n this.number = o.number?.encryptedString;\n this.expMonth = o.expMonth?.encryptedString;\n this.expYear = o.expYear?.encryptedString;\n this.code = o.code?.encryptedString;\n }\n }\n}\n","import { FieldType } from '../../enums/fieldType';\n\nimport { FieldView } from '../view/fieldView';\n\nimport { EncString } from '../domain/encString';\nimport { Field as FieldDomain } from '../domain/field';\n\nexport class Field {\n static template(): Field {\n const req = new Field();\n req.name = 'Field name';\n req.value = 'Some value';\n req.type = FieldType.Text;\n return req;\n }\n\n static toView(req: Field, view = new FieldView()) {\n view.type = req.type;\n view.value = req.value;\n view.name = req.name;\n return view;\n }\n\n static toDomain(req: Field, domain = new FieldDomain()) {\n domain.type = req.type;\n domain.value = req.value != null ? new EncString(req.value) : null;\n domain.name = req.name != null ? new EncString(req.name) : null;\n return domain;\n }\n\n name: string;\n value: string;\n type: FieldType;\n\n constructor(o?: FieldView | FieldDomain) {\n if (o == null) {\n return;\n }\n\n if (o instanceof FieldView) {\n this.name = o.name;\n this.value = o.value;\n } else {\n this.name = o.name?.encryptedString;\n this.value = o.value?.encryptedString;\n }\n this.type = o.type;\n }\n}\n","import { IdentityView } from '../view/identityView';\n\nimport { EncString } from '../domain/encString';\nimport { Identity as IdentityDomain } from '../domain/identity';\n\nexport class Identity {\n static template(): Identity {\n const req = new Identity();\n req.title = 'Mr';\n req.firstName = 'John';\n req.middleName = 'William';\n req.lastName = 'Doe';\n req.address1 = '123 Any St';\n req.address2 = 'Apt #123';\n req.address3 = null;\n req.city = 'New York';\n req.state = 'NY';\n req.postalCode = '10001';\n req.country = 'US';\n req.company = 'Acme Inc.';\n req.email = 'john@company.com';\n req.phone = '5555551234';\n req.ssn = '000-123-4567';\n req.username = 'jdoe';\n req.passportNumber = 'US-123456789';\n req.licenseNumber = 'D123-12-123-12333';\n return req;\n }\n\n static toView(req: Identity, view = new IdentityView()) {\n view.title = req.title;\n view.firstName = req.firstName;\n view.middleName = req.middleName;\n view.lastName = req.lastName;\n view.address1 = req.address1;\n view.address2 = req.address2;\n view.address3 = req.address3;\n view.city = req.city;\n view.state = req.state;\n view.postalCode = req.postalCode;\n view.country = req.country;\n view.company = req.company;\n view.email = req.email;\n view.phone = req.phone;\n view.ssn = req.ssn;\n view.username = req.username;\n view.passportNumber = req.passportNumber;\n view.licenseNumber = req.licenseNumber;\n return view;\n }\n\n static toDomain(req: Identity, domain = new IdentityDomain()) {\n domain.title = req.title != null ? new EncString(req.title) : null;\n domain.firstName = req.firstName != null ? new EncString(req.firstName) : null;\n domain.middleName = req.middleName != null ? new EncString(req.middleName) : null;\n domain.lastName = req.lastName != null ? new EncString(req.lastName) : null;\n domain.address1 = req.address1 != null ? new EncString(req.address1) : null;\n domain.address2 = req.address2 != null ? new EncString(req.address2) : null;\n domain.address3 = req.address3 != null ? new EncString(req.address3) : null;\n domain.city = req.city != null ? new EncString(req.city) : null;\n domain.state = req.state != null ? new EncString(req.state) : null;\n domain.postalCode = req.postalCode != null ? new EncString(req.postalCode) : null;\n domain.country = req.country != null ? new EncString(req.country) : null;\n domain.company = req.company != null ? new EncString(req.company) : null;\n domain.email = req.email != null ? new EncString(req.email) : null;\n domain.phone = req.phone != null ? new EncString(req.phone) : null;\n domain.ssn = req.ssn != null ? new EncString(req.ssn) : null;\n domain.username = req.username != null ? new EncString(req.username) : null;\n domain.passportNumber = req.passportNumber != null ? new EncString(req.passportNumber) : null;\n domain.licenseNumber = req.licenseNumber != null ? new EncString(req.licenseNumber) : null;\n return domain;\n }\n\n title: string;\n firstName: string;\n middleName: string;\n lastName: string;\n address1: string;\n address2: string;\n address3: string;\n city: string;\n state: string;\n postalCode: string;\n country: string;\n company: string;\n email: string;\n phone: string;\n ssn: string;\n username: string;\n passportNumber: string;\n licenseNumber: string;\n\n constructor(o?: IdentityView | IdentityDomain) {\n if (o == null) {\n return;\n }\n\n if (o instanceof IdentityView) {\n this.title = o.title;\n this.firstName = o.firstName;\n this.middleName = o.middleName;\n this.lastName = o.lastName;\n this.address1 = o.address1;\n this.address2 = o.address2;\n this.address3 = o.address3;\n this.city = o.city;\n this.state = o.state;\n this.postalCode = o.postalCode;\n this.country = o.country;\n this.company = o.company;\n this.email = o.email;\n this.phone = o.phone;\n this.ssn = o.ssn;\n this.username = o.username;\n this.passportNumber = o.passportNumber;\n this.licenseNumber = o.licenseNumber;\n } else {\n this.title = o.title?.encryptedString;\n this.firstName = o.firstName?.encryptedString;\n this.middleName = o.middleName?.encryptedString;\n this.lastName = o.lastName?.encryptedString;\n this.address1 = o.address1?.encryptedString;\n this.address2 = o.address2?.encryptedString;\n this.address3 = o.address3?.encryptedString;\n this.city = o.city?.encryptedString;\n this.state = o.state?.encryptedString;\n this.postalCode = o.postalCode?.encryptedString;\n this.country = o.country?.encryptedString;\n this.company = o.company?.encryptedString;\n this.email = o.email?.encryptedString;\n this.phone = o.phone?.encryptedString;\n this.ssn = o.ssn?.encryptedString;\n this.username = o.username?.encryptedString;\n this.passportNumber = o.passportNumber?.encryptedString;\n this.licenseNumber = o.licenseNumber?.encryptedString;\n }\n }\n}\n","import { LoginUri } from './loginUri';\n\nimport { LoginView } from '../view/loginView';\n\nimport { EncString } from '../domain/encString';\nimport { Login as LoginDomain } from '../domain/login';\n\nexport class Login {\n static template(): Login {\n const req = new Login();\n req.uris = [];\n req.username = 'jdoe';\n req.password = 'myp@ssword123';\n req.totp = 'JBSWY3DPEHPK3PXP';\n return req;\n }\n\n static toView(req: Login, view = new LoginView()) {\n if (req.uris != null) {\n view.uris = req.uris.map(u => LoginUri.toView(u));\n }\n view.username = req.username;\n view.password = req.password;\n view.totp = req.totp;\n return view;\n }\n\n static toDomain(req: Login, domain = new LoginDomain()) {\n if (req.uris != null) {\n domain.uris = req.uris.map(u => LoginUri.toDomain(u));\n }\n domain.username = req.username != null ? new EncString(req.username) : null;\n domain.password = req.password != null ? new EncString(req.password) : null;\n domain.totp = req.totp != null ? new EncString(req.totp) : null;\n return domain;\n }\n\n uris: LoginUri[];\n username: string;\n password: string;\n totp: string;\n\n constructor(o?: LoginView | LoginDomain) {\n if (o == null) {\n return;\n }\n\n if (o.uris != null) {\n if (o instanceof LoginView) {\n this.uris = o.uris.map(u => new LoginUri(u));\n } else {\n this.uris = o.uris.map(u => new LoginUri(u));\n }\n }\n\n if (o instanceof LoginView) {\n this.username = o.username;\n this.password = o.password;\n this.totp = o.totp;\n } else {\n this.username = o.username?.encryptedString;\n this.password = o.password?.encryptedString;\n this.totp = o.totp?.encryptedString;\n }\n }\n}\n","import { UriMatchType } from '../../enums/uriMatchType';\n\nimport { LoginUriView } from '../view/loginUriView';\n\nimport { EncString } from '../domain/encString';\nimport { LoginUri as LoginUriDomain } from '../domain/loginUri';\n\nexport class LoginUri {\n static template(): LoginUri {\n const req = new LoginUri();\n req.uri = 'https://google.com';\n req.match = null;\n return req;\n }\n\n static toView(req: LoginUri, view = new LoginUriView()) {\n view.uri = req.uri;\n view.match = req.match;\n return view;\n }\n\n static toDomain(req: LoginUri, domain = new LoginUriDomain()) {\n domain.uri = req.uri != null ? new EncString(req.uri) : null;\n domain.match = req.match;\n return domain;\n }\n\n uri: string;\n match: UriMatchType = null;\n\n constructor(o?: LoginUriView | LoginUriDomain) {\n if (o == null) {\n return;\n }\n\n if (o instanceof LoginUriView) {\n this.uri = o.uri;\n } else {\n this.uri = o.uri?.encryptedString;\n }\n this.match = o.match;\n }\n}\n","import { SecureNoteType } from '../../enums/secureNoteType';\n\nimport { SecureNoteView } from '../view/secureNoteView';\n\nimport { SecureNote as SecureNoteDomain } from '../domain/secureNote';\n\nexport class SecureNote {\n static template(): SecureNote {\n const req = new SecureNote();\n req.type = SecureNoteType.Generic;\n return req;\n }\n\n static toView(req: SecureNote, view = new SecureNoteView()) {\n view.type = req.type;\n return view;\n }\n\n static toDomain(req: SecureNote, view = new SecureNoteDomain()) {\n view.type = req.type;\n return view;\n }\n\n type: SecureNoteType;\n\n constructor(o?: SecureNoteView | SecureNoteDomain) {\n if (o == null) {\n return;\n }\n\n this.type = o.type;\n }\n}\n","import { CollectionView } from '../view/collectionView';\n\nimport { Collection as CollectionDomain } from '../domain/collection';\nimport { EncString } from '../domain/encString';\n\nexport class Collection {\n static template(): Collection {\n const req = new Collection();\n req.organizationId = '00000000-0000-0000-0000-000000000000';\n req.name = 'Collection name';\n req.externalId = null;\n return req;\n }\n\n static toView(req: Collection, view = new CollectionView()) {\n view.name = req.name;\n view.externalId = req.externalId;\n if (view.organizationId == null) {\n view.organizationId = req.organizationId;\n }\n return view;\n }\n\n static toDomain(req: Collection, domain = new CollectionDomain()) {\n domain.name = req.name != null ? new EncString(req.name) : null;\n domain.externalId = req.externalId;\n if (domain.organizationId == null) {\n domain.organizationId = req.organizationId;\n }\n return domain;\n }\n\n organizationId: string;\n name: string;\n externalId: string;\n\n // Use build method instead of ctor so that we can control order of JSON stringify for pretty print\n build(o: CollectionView | CollectionDomain) {\n this.organizationId = o.organizationId;\n if (o instanceof CollectionView) {\n this.name = o.name;\n } else {\n this.name = o.name?.encryptedString;\n }\n this.externalId = o.externalId;\n }\n}\n","import { FolderView } from '../view/folderView';\n\nimport { EncString } from '../domain/encString';\nimport { Folder as FolderDomain } from '../domain/folder';\n\nexport class Folder {\n static template(): Folder {\n const req = new Folder();\n req.name = 'Folder name';\n return req;\n }\n\n static toView(req: Folder, view = new FolderView()) {\n view.name = req.name;\n return view;\n }\n\n static toDomain(req: Folder, domain = new FolderDomain()) {\n domain.name = req.name != null ? new EncString(req.name) : null;\n return domain;\n }\n\n name: string;\n\n // Use build method instead of ctor so that we can control order of JSON stringify for pretty print\n build(o: FolderView | FolderDomain) {\n if (o instanceof FolderView) {\n this.name = o.name;\n } else {\n this.name = o.name?.encryptedString;\n }\n }\n}\n","import { ApiService } from '../abstractions/api.service';\nimport { FileUploadService as FileUploadServiceAbstraction } from '../abstractions/fileUpload.service';\nimport { LogService } from '../abstractions/log.service';\n\nimport { FileUploadType } from '../enums/fileUploadType';\n\nimport { EncArrayBuffer } from '../models/domain/encArrayBuffer';\nimport { EncString } from '../models/domain/encString';\n\nimport { AttachmentUploadDataResponse } from '../models/response/attachmentUploadDataResponse';\nimport { SendFileUploadDataResponse } from '../models/response/sendFileUploadDataResponse';\n\nimport { AzureFileUploadService } from './azureFileUpload.service';\nimport { BitwardenFileUploadService } from './bitwardenFileUpload.service';\n\nexport class FileUploadService implements FileUploadServiceAbstraction {\n private azureFileUploadService: AzureFileUploadService;\n private bitwardenFileUploadService: BitwardenFileUploadService;\n\n constructor(private logService: LogService, private apiService: ApiService) {\n this.azureFileUploadService = new AzureFileUploadService(logService);\n this.bitwardenFileUploadService = new BitwardenFileUploadService(apiService);\n }\n\n async uploadSendFile(uploadData: SendFileUploadDataResponse, fileName: EncString, encryptedFileData: EncArrayBuffer) {\n try {\n switch (uploadData.fileUploadType) {\n case FileUploadType.Direct:\n await this.bitwardenFileUploadService.upload(fileName.encryptedString, encryptedFileData,\n fd => this.apiService.postSendFile(uploadData.sendResponse.id, uploadData.sendResponse.file.id, fd));\n break;\n case FileUploadType.Azure:\n const renewalCallback = async () => {\n const renewalResponse = await this.apiService.renewSendFileUploadUrl(uploadData.sendResponse.id,\n uploadData.sendResponse.file.id);\n return renewalResponse.url;\n };\n await this.azureFileUploadService.upload(uploadData.url, encryptedFileData,\n renewalCallback);\n break;\n default:\n throw new Error('Unknown file upload type');\n }\n } catch (e) {\n await this.apiService.deleteSend(uploadData.sendResponse.id);\n throw e;\n }\n }\n\n async uploadCipherAttachment(admin: boolean, uploadData: AttachmentUploadDataResponse, encryptedFileName: string, encryptedFileData: EncArrayBuffer) {\n const response = admin ? uploadData.cipherMiniResponse : uploadData.cipherResponse;\n try {\n switch (uploadData.fileUploadType) {\n case FileUploadType.Direct:\n await this.bitwardenFileUploadService.upload(encryptedFileName, encryptedFileData,\n fd => this.apiService.postAttachmentFile(response.id, uploadData.attachmentId, fd));\n break;\n case FileUploadType.Azure:\n const renewalCallback = async () => {\n const renewalResponse = await this.apiService.renewAttachmentUploadUrl(response.id,\n uploadData.attachmentId);\n return renewalResponse.url;\n };\n await this.azureFileUploadService.upload(uploadData.url, encryptedFileData, renewalCallback);\n break;\n default:\n throw new Error('Unknown file upload type.');\n }\n } catch (e) {\n if (admin) {\n await this.apiService.deleteCipherAttachmentAdmin(response.id, uploadData.attachmentId);\n } else {\n await this.apiService.deleteCipherAttachment(response.id, uploadData.attachmentId);\n }\n throw e;\n }\n }\n}\n","export enum FileUploadType {\n Direct = 0,\n Azure = 1,\n}\n","import { LogService } from '../abstractions/log.service';\n\nimport { Utils } from '../misc/utils';\n\nimport { EncArrayBuffer } from '../models/domain/encArrayBuffer';\n\nconst MAX_SINGLE_BLOB_UPLOAD_SIZE = 256 * 1024 * 1024; // 256 MiB\nconst MAX_BLOCKS_PER_BLOB = 50000;\n\nexport class AzureFileUploadService {\n constructor(private logService: LogService) { }\n\n async upload(url: string, data: EncArrayBuffer, renewalCallback: () => Promise) {\n if (data.buffer.byteLength <= MAX_SINGLE_BLOB_UPLOAD_SIZE) {\n return await this.azureUploadBlob(url, data);\n } else {\n return await this.azureUploadBlocks(url, data, renewalCallback);\n }\n }\n private async azureUploadBlob(url: string, data: EncArrayBuffer) {\n const urlObject = Utils.getUrl(url);\n const headers = new Headers({\n 'x-ms-date': new Date().toUTCString(),\n 'x-ms-version': urlObject.searchParams.get('sv'),\n 'Content-Length': data.buffer.byteLength.toString(),\n 'x-ms-blob-type': 'BlockBlob',\n });\n\n const request = new Request(url, {\n body: data.buffer,\n cache: 'no-store',\n method: 'PUT',\n headers: headers,\n });\n\n const blobResponse = await fetch(request);\n\n if (blobResponse.status !== 201) {\n throw new Error(`Failed to create Azure blob: ${blobResponse.status}`);\n }\n }\n private async azureUploadBlocks(url: string, data: EncArrayBuffer, renewalCallback: () => Promise) {\n const baseUrl = Utils.getUrl(url);\n const blockSize = this.getMaxBlockSize(baseUrl.searchParams.get('sv'));\n let blockIndex = 0;\n const numBlocks = Math.ceil(data.buffer.byteLength / blockSize);\n const blocksStaged: string[] = [];\n\n if (numBlocks > MAX_BLOCKS_PER_BLOB) {\n throw new Error(`Cannot upload file, exceeds maximum size of ${blockSize * MAX_BLOCKS_PER_BLOB}`);\n }\n\n try {\n while (blockIndex < numBlocks) {\n url = await this.renewUrlIfNecessary(url, renewalCallback);\n const blockUrl = Utils.getUrl(url);\n const blockId = this.encodedBlockId(blockIndex);\n blockUrl.searchParams.append('comp', 'block');\n blockUrl.searchParams.append('blockid', blockId);\n const start = blockIndex * blockSize;\n const blockData = data.buffer.slice(start, start + blockSize);\n const blockHeaders = new Headers({\n 'x-ms-date': new Date().toUTCString(),\n 'x-ms-version': blockUrl.searchParams.get('sv'),\n 'Content-Length': blockData.byteLength.toString(),\n });\n\n const blockRequest = new Request(blockUrl.toString(), {\n body: blockData,\n cache: 'no-store',\n method: 'PUT',\n headers: blockHeaders,\n });\n\n const blockResponse = await fetch(blockRequest);\n\n if (blockResponse.status !== 201) {\n const message = `Unsuccessful block PUT. Received status ${blockResponse.status}`;\n this.logService.error(message + '\\n' + await blockResponse.json());\n throw new Error(message);\n }\n\n blocksStaged.push(blockId);\n blockIndex++;\n }\n\n url = await this.renewUrlIfNecessary(url, renewalCallback);\n const blockListUrl = Utils.getUrl(url);\n const blockListXml = this.blockListXml(blocksStaged);\n blockListUrl.searchParams.append('comp', 'blocklist');\n const headers = new Headers({\n 'x-ms-date': new Date().toUTCString(),\n 'x-ms-version': blockListUrl.searchParams.get('sv'),\n 'Content-Length': blockListXml.length.toString(),\n });\n\n const request = new Request(blockListUrl.toString(), {\n body: blockListXml,\n cache: 'no-store',\n method: 'PUT',\n headers: headers,\n });\n\n const response = await fetch(request);\n\n if (response.status !== 201) {\n const message = `Unsuccessful block list PUT. Received status ${response.status}`;\n this.logService.error(message + '\\n' + await response.json());\n throw new Error(message);\n }\n } catch (e) {\n throw e;\n }\n }\n\n private async renewUrlIfNecessary(url: string, renewalCallback: () => Promise): Promise {\n const urlObject = Utils.getUrl(url);\n const expiry = new Date(urlObject.searchParams.get('se') ?? '');\n\n if (isNaN(expiry.getTime())) {\n expiry.setTime(Date.now() + 3600000);\n }\n\n if (expiry.getTime() < Date.now() + 1000) {\n return await renewalCallback();\n }\n return url;\n }\n\n private encodedBlockId(blockIndex: number) {\n // Encoded blockId max size is 64, so pre-encoding max size is 48\n const utfBlockId = ('000000000000000000000000000000000000000000000000' + blockIndex.toString()).slice(-48);\n return Utils.fromUtf8ToB64(utfBlockId);\n }\n\n private blockListXml(blockIdList: string[]) {\n let xml = '';\n blockIdList.forEach(blockId => {\n xml += `${blockId}`;\n });\n xml += '';\n return xml;\n }\n\n private getMaxBlockSize(version: string) {\n if (Version.compare(version, '2019-12-12') >= 0) {\n return 4000 * 1024 * 1024; // 4000 MiB\n } else if (Version.compare(version, '2016-05-31') >= 0) {\n return 100 * 1024 * 1024; // 100 MiB\n } else {\n return 4 * 1024 * 1024; // 4 MiB\n }\n }\n}\n\nclass Version {\n /**\n * Compares two Azure Versions against each other\n * @param a Version to compare\n * @param b Version to compare\n * @returns a number less than zero if b is newer than a, 0 if equal,\n * and greater than zero if a is newer than b\n */\n static compare(a: Required | string, b: Required | string) {\n if (typeof (a) === 'string') {\n a = new Version(a);\n }\n\n if (typeof (b) === 'string') {\n b = new Version(b);\n }\n\n return a.year !== b.year ? a.year - b.year :\n a.month !== b.month ? a.month - b.month :\n a.day !== b.day ? a.day - b.day :\n 0;\n }\n year = 0;\n month = 0;\n day = 0;\n\n constructor(version: string) {\n try {\n const parts = version.split('-').map(v => Number.parseInt(v, 10));\n this.year = parts[0];\n this.month = parts[1];\n this.day = parts[2];\n } catch { }\n }\n /**\n * Compares two Azure Versions against each other\n * @param compareTo Version to compare against\n * @returns a number less than zero if compareTo is newer, 0 if equal,\n * and greater than zero if this is greater than compareTo\n */\n compare(compareTo: Required | string) {\n return Version.compare(this, compareTo);\n }\n}\n","import { ApiService } from '../abstractions/api.service';\n\nimport { EncArrayBuffer } from '../models/domain/encArrayBuffer';\n\nimport { Utils } from '../misc/utils';\n\nexport class BitwardenFileUploadService\n{\n constructor(private apiService: ApiService) { }\n\n async upload(encryptedFileName: string, encryptedFileData: EncArrayBuffer, apiCall: (fd: FormData) => Promise) {\n const fd = new FormData();\n try {\n const blob = new Blob([encryptedFileData.buffer], { type: 'application/octet-stream' });\n fd.append('data', blob, encryptedFileName);\n } catch (e) {\n if (Utils.isNode && !Utils.isBrowser) {\n fd.append('data', Buffer.from(encryptedFileData.buffer) as any, {\n filepath: encryptedFileName,\n contentType: 'application/octet-stream',\n } as any);\n } else {\n throw e;\n }\n }\n\n await apiCall(fd);\n }\n}\n","import { ApiService } from '../abstractions/api.service';\nimport { CipherService } from '../abstractions/cipher.service';\nimport { CollectionService } from '../abstractions/collection.service';\nimport { FolderService } from '../abstractions/folder.service';\nimport { I18nService } from '../abstractions/i18n.service';\nimport {\n ImportOption,\n ImportService as ImportServiceAbstraction,\n} from '../abstractions/import.service';\nimport { PlatformUtilsService } from '../abstractions/platformUtils.service';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CipherType } from '../enums/cipherType';\n\nimport { Utils } from '../misc/utils';\n\nimport { CipherRequest } from '../models/request/cipherRequest';\nimport { CollectionRequest } from '../models/request/collectionRequest';\nimport { FolderRequest } from '../models/request/folderRequest';\nimport { ImportCiphersRequest } from '../models/request/importCiphersRequest';\nimport { ImportOrganizationCiphersRequest } from '../models/request/importOrganizationCiphersRequest';\nimport { KvpRequest } from '../models/request/kvpRequest';\n\nimport { ErrorResponse } from '../models/response/errorResponse';\nimport { CipherView } from '../models/view/cipherView';\n\nimport { AscendoCsvImporter } from '../importers/ascendoCsvImporter';\nimport { AvastCsvImporter } from '../importers/avastCsvImporter';\nimport { AvastJsonImporter } from '../importers/avastJsonImporter';\nimport { AviraCsvImporter } from '../importers/aviraCsvImporter';\nimport { BitwardenCsvImporter } from '../importers/bitwardenCsvImporter';\nimport { BitwardenJsonImporter } from '../importers/bitwardenJsonImporter';\nimport { BlackBerryCsvImporter } from '../importers/blackBerryCsvImporter';\nimport { BlurCsvImporter } from '../importers/blurCsvImporter';\nimport { ButtercupCsvImporter } from '../importers/buttercupCsvImporter';\nimport { ChromeCsvImporter } from '../importers/chromeCsvImporter';\nimport { ClipperzHtmlImporter } from '../importers/clipperzHtmlImporter';\nimport { CodebookCsvImporter } from '../importers/codebookCsvImporter';\nimport { DashlaneJsonImporter } from '../importers/dashlaneJsonImporter';\nimport { EncryptrCsvImporter } from '../importers/encryptrCsvImporter';\nimport { EnpassCsvImporter } from '../importers/enpassCsvImporter';\nimport { EnpassJsonImporter } from '../importers/enpassJsonImporter';\nimport { FirefoxCsvImporter } from '../importers/firefoxCsvImporter';\nimport { FSecureFskImporter } from '../importers/fsecureFskImporter';\nimport { GnomeJsonImporter } from '../importers/gnomeJsonImporter';\nimport { Importer } from '../importers/importer';\nimport { KasperskyTxtImporter } from '../importers/kasperskyTxtImporter';\nimport { KeePass2XmlImporter } from '../importers/keepass2XmlImporter';\nimport { KeePassXCsvImporter } from '../importers/keepassxCsvImporter';\nimport { KeeperCsvImporter } from '../importers/keeperCsvImporter';\nimport { LastPassCsvImporter } from '../importers/lastpassCsvImporter';\nimport { LogMeOnceCsvImporter } from '../importers/logMeOnceCsvImporter';\nimport { MeldiumCsvImporter } from '../importers/meldiumCsvImporter';\nimport { MSecureCsvImporter } from '../importers/msecureCsvImporter';\nimport { MykiCsvImporter } from '../importers/mykiCsvImporter';\nimport { OnePassword1PifImporter } from '../importers/onepasswordImporters/onepassword1PifImporter';\nimport { OnePasswordMacCsvImporter } from '../importers/onepasswordImporters/onepasswordMacCsvImporter';\nimport { OnePasswordWinCsvImporter } from '../importers/onepasswordImporters/onepasswordWinCsvImporter';\nimport { PadlockCsvImporter } from '../importers/padlockCsvImporter';\nimport { PassKeepCsvImporter } from '../importers/passkeepCsvImporter';\nimport { PassmanJsonImporter } from '../importers/passmanJsonImporter';\nimport { PasspackCsvImporter } from '../importers/passpackCsvImporter';\nimport { PasswordAgentCsvImporter } from '../importers/passwordAgentCsvImporter';\nimport { PasswordBossJsonImporter } from '../importers/passwordBossJsonImporter';\nimport { PasswordDragonXmlImporter } from '../importers/passwordDragonXmlImporter';\nimport { PasswordSafeXmlImporter } from '../importers/passwordSafeXmlImporter';\nimport { PasswordWalletTxtImporter } from '../importers/passwordWalletTxtImporter';\nimport { RememBearCsvImporter } from '../importers/rememBearCsvImporter';\nimport { RoboFormCsvImporter } from '../importers/roboformCsvImporter';\nimport { SafeInCloudXmlImporter } from '../importers/safeInCloudXmlImporter';\nimport { SaferPassCsvImporter } from '../importers/saferpassCsvImport';\nimport { SecureSafeCsvImporter } from '../importers/secureSafeCsvImporter';\nimport { SplashIdCsvImporter } from '../importers/splashIdCsvImporter';\nimport { StickyPasswordXmlImporter } from '../importers/stickyPasswordXmlImporter';\nimport { TrueKeyCsvImporter } from '../importers/truekeyCsvImporter';\nimport { UpmCsvImporter } from '../importers/upmCsvImporter';\nimport { YotiCsvImporter } from '../importers/yotiCsvImporter';\nimport { ZohoVaultCsvImporter } from '../importers/zohoVaultCsvImporter';\n\nexport class ImportService implements ImportServiceAbstraction {\n featuredImportOptions = [\n { id: 'bitwardenjson', name: 'Bitwarden (json)' },\n { id: 'bitwardencsv', name: 'Bitwarden (csv)' },\n { id: 'lastpasscsv', name: 'LastPass (csv)' },\n { id: 'chromecsv', name: 'Chrome (csv)' },\n { id: 'firefoxcsv', name: 'Firefox (csv)' },\n { id: 'keepass2xml', name: 'KeePass 2 (xml)' },\n { id: '1password1pif', name: '1Password (1pif)' },\n { id: 'dashlanejson', name: 'Dashlane (json)' },\n ];\n\n regularImportOptions: ImportOption[] = [\n { id: 'keepassxcsv', name: 'KeePassX (csv)' },\n { id: '1passwordwincsv', name: '1Password 6 and 7 Windows (csv)' },\n { id: '1passwordmaccsv', name: '1Password 6 and 7 Mac (csv)' },\n { id: 'roboformcsv', name: 'RoboForm (csv)' },\n { id: 'keepercsv', name: 'Keeper (csv)' },\n { id: 'enpasscsv', name: 'Enpass (csv)' },\n { id: 'enpassjson', name: 'Enpass (json)' },\n { id: 'safeincloudxml', name: 'SafeInCloud (xml)' },\n { id: 'pwsafexml', name: 'Password Safe (xml)' },\n { id: 'stickypasswordxml', name: 'Sticky Password (xml)' },\n { id: 'msecurecsv', name: 'mSecure (csv)' },\n { id: 'truekeycsv', name: 'True Key (csv)' },\n { id: 'passwordbossjson', name: 'Password Boss (json)' },\n { id: 'zohovaultcsv', name: 'Zoho Vault (csv)' },\n { id: 'splashidcsv', name: 'SplashID (csv)' },\n { id: 'passworddragonxml', name: 'Password Dragon (xml)' },\n { id: 'padlockcsv', name: 'Padlock (csv)' },\n { id: 'passboltcsv', name: 'Passbolt (csv)' },\n { id: 'clipperzhtml', name: 'Clipperz (html)' },\n { id: 'aviracsv', name: 'Avira (csv)' },\n { id: 'saferpasscsv', name: 'SaferPass (csv)' },\n { id: 'upmcsv', name: 'Universal Password Manager (csv)' },\n { id: 'ascendocsv', name: 'Ascendo DataVault (csv)' },\n { id: 'meldiumcsv', name: 'Meldium (csv)' },\n { id: 'passkeepcsv', name: 'PassKeep (csv)' },\n { id: 'operacsv', name: 'Opera (csv)' },\n { id: 'vivaldicsv', name: 'Vivaldi (csv)' },\n { id: 'gnomejson', name: 'GNOME Passwords and Keys/Seahorse (json)' },\n { id: 'blurcsv', name: 'Blur (csv)' },\n { id: 'passwordagentcsv', name: 'Password Agent (csv)' },\n { id: 'passpackcsv', name: 'Passpack (csv)' },\n { id: 'passmanjson', name: 'Passman (json)' },\n { id: 'avastcsv', name: 'Avast Passwords (csv)' },\n { id: 'avastjson', name: 'Avast Passwords (json)' },\n { id: 'fsecurefsk', name: 'F-Secure KEY (fsk)' },\n { id: 'kasperskytxt', name: 'Kaspersky Password Manager (txt)' },\n { id: 'remembearcsv', name: 'RememBear (csv)' },\n { id: 'passwordwallettxt', name: 'PasswordWallet (txt)' },\n { id: 'mykicsv', name: 'Myki (csv)' },\n { id: 'securesafecsv', name: 'SecureSafe (csv)' },\n { id: 'logmeoncecsv', name: 'LogMeOnce (csv)' },\n { id: 'blackberrycsv', name: 'BlackBerry Password Keeper (csv)' },\n { id: 'buttercupcsv', name: 'Buttercup (csv)' },\n { id: 'codebookcsv', name: 'Codebook (csv)' },\n { id: 'encryptrcsv', name: 'Encryptr (csv)' },\n { id: 'yoticsv', name: 'Yoti (csv)' },\n ];\n\n constructor(private cipherService: CipherService, private folderService: FolderService,\n private apiService: ApiService, private i18nService: I18nService,\n private collectionService: CollectionService, private platformUtilsService: PlatformUtilsService) { }\n\n getImportOptions(): ImportOption[] {\n return this.featuredImportOptions.concat(this.regularImportOptions);\n }\n\n async import(importer: Importer, fileContents: string, organizationId: string = null): Promise {\n const importResult = await importer.parse(fileContents);\n if (importResult.success) {\n if (importResult.folders.length === 0 && importResult.ciphers.length === 0) {\n return new Error(this.i18nService.t('importNothingError'));\n } else if (importResult.ciphers.length > 0) {\n const halfway = Math.floor(importResult.ciphers.length / 2);\n const last = importResult.ciphers.length - 1;\n\n if (this.badData(importResult.ciphers[0]) &&\n this.badData(importResult.ciphers[halfway]) &&\n this.badData(importResult.ciphers[last])) {\n return new Error(this.i18nService.t('importFormatError'));\n }\n }\n try {\n await this.postImport(importResult, organizationId);\n } catch (error) {\n const errorResponse = new ErrorResponse(error, 400);\n return this.handleServerError(errorResponse, importResult);\n }\n return null;\n } else {\n return new Error(this.i18nService.t('importFormatError'));\n }\n }\n\n getImporter(format: string, organizationId: string = null): Importer {\n const importer = this.getImporterInstance(format);\n if (importer == null) {\n return null;\n }\n importer.organizationId = organizationId;\n return importer;\n }\n\n private getImporterInstance(format: string) {\n if (format == null || format === '') {\n return null;\n }\n\n switch (format) {\n case 'bitwardencsv':\n return new BitwardenCsvImporter();\n case 'bitwardenjson':\n return new BitwardenJsonImporter();\n case 'lastpasscsv':\n case 'passboltcsv':\n return new LastPassCsvImporter();\n case 'keepassxcsv':\n return new KeePassXCsvImporter();\n case 'aviracsv':\n return new AviraCsvImporter();\n case 'blurcsv':\n return new BlurCsvImporter();\n case 'safeincloudxml':\n return new SafeInCloudXmlImporter();\n case 'padlockcsv':\n return new PadlockCsvImporter();\n case 'keepass2xml':\n return new KeePass2XmlImporter();\n case 'chromecsv':\n case 'operacsv':\n case 'vivaldicsv':\n return new ChromeCsvImporter();\n case 'firefoxcsv':\n return new FirefoxCsvImporter();\n case 'upmcsv':\n return new UpmCsvImporter();\n case 'saferpasscsv':\n return new SaferPassCsvImporter();\n case 'meldiumcsv':\n return new MeldiumCsvImporter();\n case '1password1pif':\n return new OnePassword1PifImporter();\n case '1passwordwincsv':\n return new OnePasswordWinCsvImporter();\n case '1passwordmaccsv':\n return new OnePasswordMacCsvImporter();\n case 'keepercsv':\n return new KeeperCsvImporter();\n case 'passworddragonxml':\n return new PasswordDragonXmlImporter();\n case 'enpasscsv':\n return new EnpassCsvImporter();\n case 'enpassjson':\n return new EnpassJsonImporter();\n case 'pwsafexml':\n return new PasswordSafeXmlImporter();\n case 'dashlanejson':\n return new DashlaneJsonImporter();\n case 'msecurecsv':\n return new MSecureCsvImporter();\n case 'stickypasswordxml':\n return new StickyPasswordXmlImporter();\n case 'truekeycsv':\n return new TrueKeyCsvImporter();\n case 'clipperzhtml':\n return new ClipperzHtmlImporter();\n case 'roboformcsv':\n return new RoboFormCsvImporter();\n case 'ascendocsv':\n return new AscendoCsvImporter();\n case 'passwordbossjson':\n return new PasswordBossJsonImporter();\n case 'zohovaultcsv':\n return new ZohoVaultCsvImporter();\n case 'splashidcsv':\n return new SplashIdCsvImporter();\n case 'passkeepcsv':\n return new PassKeepCsvImporter();\n case 'gnomejson':\n return new GnomeJsonImporter();\n case 'passwordagentcsv':\n return new PasswordAgentCsvImporter();\n case 'passpackcsv':\n return new PasspackCsvImporter();\n case 'passmanjson':\n return new PassmanJsonImporter();\n case 'avastcsv':\n return new AvastCsvImporter();\n case 'avastjson':\n return new AvastJsonImporter();\n case 'fsecurefsk':\n return new FSecureFskImporter();\n case 'kasperskytxt':\n return new KasperskyTxtImporter();\n case 'remembearcsv':\n return new RememBearCsvImporter();\n case 'passwordwallettxt':\n return new PasswordWalletTxtImporter();\n case 'mykicsv':\n return new MykiCsvImporter();\n case 'securesafecsv':\n return new SecureSafeCsvImporter();\n case 'logmeoncecsv':\n return new LogMeOnceCsvImporter();\n case 'blackberrycsv':\n return new BlackBerryCsvImporter();\n case 'buttercupcsv':\n return new ButtercupCsvImporter();\n case 'codebookcsv':\n return new CodebookCsvImporter();\n case 'encryptrcsv':\n return new EncryptrCsvImporter();\n case 'yoticsv':\n return new YotiCsvImporter();\n default:\n return null;\n }\n }\n\n private async postImport(importResult: ImportResult, organizationId: string = null) {\n if (organizationId == null) {\n const request = new ImportCiphersRequest();\n for (let i = 0; i < importResult.ciphers.length; i++) {\n const c = await this.cipherService.encrypt(importResult.ciphers[i]);\n request.ciphers.push(new CipherRequest(c));\n }\n if (importResult.folders != null) {\n for (let i = 0; i < importResult.folders.length; i++) {\n const f = await this.folderService.encrypt(importResult.folders[i]);\n request.folders.push(new FolderRequest(f));\n }\n }\n if (importResult.folderRelationships != null) {\n importResult.folderRelationships.forEach(r =>\n request.folderRelationships.push(new KvpRequest(r[0], r[1])));\n }\n return await this.apiService.postImportCiphers(request);\n } else {\n const request = new ImportOrganizationCiphersRequest();\n for (let i = 0; i < importResult.ciphers.length; i++) {\n importResult.ciphers[i].organizationId = organizationId;\n const c = await this.cipherService.encrypt(importResult.ciphers[i]);\n request.ciphers.push(new CipherRequest(c));\n }\n if (importResult.collections != null) {\n for (let i = 0; i < importResult.collections.length; i++) {\n importResult.collections[i].organizationId = organizationId;\n const c = await this.collectionService.encrypt(importResult.collections[i]);\n request.collections.push(new CollectionRequest(c));\n }\n }\n if (importResult.collectionRelationships != null) {\n importResult.collectionRelationships.forEach(r =>\n request.collectionRelationships.push(new KvpRequest(r[0], r[1])));\n }\n return await this.apiService.postImportOrganizationCiphers(organizationId, request);\n }\n }\n\n private badData(c: CipherView) {\n return (c.name == null || c.name === '--') &&\n (c.type === CipherType.Login && c.login != null && Utils.isNullOrWhitespace(c.login.password));\n }\n\n private handleServerError(errorResponse: ErrorResponse, importResult: ImportResult): Error {\n if (errorResponse.validationErrors == null) {\n return new Error(errorResponse.message);\n }\n\n let errorMessage = '';\n\n Object.entries(errorResponse.validationErrors).forEach(([key, value], index) => {\n let item;\n let itemType;\n const i = Number(key.match(/[0-9]+/)[0]);\n\n switch (key.match(/^\\w+/)[0]) {\n case 'Ciphers':\n item = importResult.ciphers[i];\n itemType = CipherType[item.type];\n break;\n case 'Folders':\n item = importResult.folders[i];\n itemType = 'Folder';\n break;\n case 'Collections':\n item = importResult.collections[i];\n itemType = 'Collection';\n break;\n default:\n return;\n }\n\n if (index > 0) {\n errorMessage += '\\n\\n';\n }\n\n if (itemType !== 'Folder' && itemType !== 'Collection') {\n errorMessage += '[' + (i + 1) + '] ';\n }\n\n errorMessage += '[' + itemType + '] \"' + item.name + '\": ' + value;\n });\n\n return new Error(errorMessage);\n }\n}\n","import { CipherRequest } from './cipherRequest';\nimport { FolderRequest } from './folderRequest';\nimport { KvpRequest } from './kvpRequest';\n\nexport class ImportCiphersRequest {\n ciphers: CipherRequest[] = [];\n folders: FolderRequest[] = [];\n folderRelationships: KvpRequest[] = [];\n}\n","import { CipherRequest } from './cipherRequest';\nimport { CollectionRequest } from './collectionRequest';\nimport { KvpRequest } from './kvpRequest';\n\nexport class ImportOrganizationCiphersRequest {\n ciphers: CipherRequest[] = [];\n collections: CollectionRequest[] = [];\n collectionRelationships: KvpRequest[] = [];\n}\n","export class KvpRequest {\n key: TK;\n value: TV;\n\n constructor(key: TK, value: TV) {\n this.key = key;\n this.value = value;\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class AscendoCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.length < 2) {\n return;\n }\n\n const cipher = this.initLoginCipher();\n cipher.notes = this.getValueOrDefault(value[value.length - 1]);\n cipher.name = this.getValueOrDefault(value[0], '--');\n\n if (value.length > 2 && (value.length % 2) === 0) {\n for (let i = 0; i < value.length - 2; i += 2) {\n const val: string = value[i + 2];\n const field: string = value[i + 1];\n if (this.isNullOrWhitespace(val) || this.isNullOrWhitespace(field)) {\n continue;\n }\n\n const fieldLower = field.toLowerCase();\n if (cipher.login.password == null && this.passwordFieldNames.indexOf(fieldLower) > -1) {\n cipher.login.password = this.getValueOrDefault(val);\n } else if (cipher.login.username == null &&\n this.usernameFieldNames.indexOf(fieldLower) > -1) {\n cipher.login.username = this.getValueOrDefault(val);\n } else if ((cipher.login.uris == null || cipher.login.uris.length === 0) &&\n this.uriFieldNames.indexOf(fieldLower) > -1) {\n cipher.login.uris = this.makeUriArray(val);\n } else {\n this.processKvp(cipher, field, val);\n }\n }\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class AvastCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.name);\n cipher.login.uris = this.makeUriArray(value.web);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.username = this.getValueOrDefault(value.login);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CipherType } from '../enums/cipherType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nexport class AvastJsonImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = JSON.parse(data);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n if (results.logins != null) {\n results.logins.forEach((value: any) => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.custName);\n cipher.notes = this.getValueOrDefault(value.note);\n cipher.login.uris = this.makeUriArray(value.url);\n cipher.login.password = this.getValueOrDefault(value.pwd);\n cipher.login.username = this.getValueOrDefault(value.loginName);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n }\n\n if (results.notes != null) {\n results.notes.forEach((value: any) => {\n const cipher = this.initLoginCipher();\n cipher.type = CipherType.SecureNote;\n cipher.secureNote.type = SecureNoteType.Generic;\n cipher.name = this.getValueOrDefault(value.label);\n cipher.notes = this.getValueOrDefault(value.text);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n }\n\n if (results.cards != null) {\n results.cards.forEach((value: any) => {\n const cipher = this.initLoginCipher();\n cipher.type = CipherType.Card;\n cipher.name = this.getValueOrDefault(value.custName);\n cipher.notes = this.getValueOrDefault(value.note);\n cipher.card.cardholderName = this.getValueOrDefault(value.holderName);\n cipher.card.number = this.getValueOrDefault(value.cardNumber);\n cipher.card.code = this.getValueOrDefault(value.cvv);\n cipher.card.brand = this.getCardBrand(cipher.card.number);\n if (value.expirationDate != null) {\n if (value.expirationDate.month != null) {\n cipher.card.expMonth = value.expirationDate.month + '';\n }\n if (value.expirationDate.year != null) {\n cipher.card.expYear = value.expirationDate.year + '';\n }\n }\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class AviraCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.name,\n this.getValueOrDefault(this.nameFromUrl(value.website), '--'));\n cipher.login.uris = this.makeUriArray(value.website);\n cipher.login.password = this.getValueOrDefault(value.password);\n\n if (this.isNullOrWhitespace(value.username) && !this.isNullOrWhitespace(value.secondary_username)) {\n cipher.login.username = value.secondary_username;\n } else {\n cipher.login.username = this.getValueOrDefault(value.username);\n cipher.notes = this.getValueOrDefault(value.secondary_username);\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CipherView } from '../models/view/cipherView';\nimport { CollectionView } from '../models/view/collectionView';\nimport { FieldView } from '../models/view/fieldView';\nimport { FolderView } from '../models/view/folderView';\nimport { LoginView } from '../models/view/loginView';\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nimport { CipherType } from '../enums/cipherType';\nimport { FieldType } from '../enums/fieldType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nexport class BitwardenCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (this.organization && !this.isNullOrWhitespace(value.collections)) {\n const collections = (value.collections as string).split(',');\n collections.forEach(col => {\n let addCollection = true;\n let collectionIndex = result.collections.length;\n\n for (let i = 0; i < result.collections.length; i++) {\n if (result.collections[i].name === col) {\n addCollection = false;\n collectionIndex = i;\n break;\n }\n }\n\n if (addCollection) {\n const collection = new CollectionView();\n collection.name = col;\n result.collections.push(collection);\n }\n\n result.collectionRelationships.push([result.ciphers.length, collectionIndex]);\n });\n } else if (!this.organization) {\n this.processFolder(result, value.folder);\n }\n\n const cipher = new CipherView();\n cipher.favorite = !this.organization && this.getValueOrDefault(value.favorite, '0') !== '0' ? true : false;\n cipher.type = CipherType.Login;\n cipher.notes = this.getValueOrDefault(value.notes);\n cipher.name = this.getValueOrDefault(value.name, '--');\n\n if (!this.isNullOrWhitespace(value.fields)) {\n const fields = this.splitNewLine(value.fields);\n for (let i = 0; i < fields.length; i++) {\n if (this.isNullOrWhitespace(fields[i])) {\n continue;\n }\n\n const delimPosition = fields[i].lastIndexOf(': ');\n if (delimPosition === -1) {\n continue;\n }\n\n if (cipher.fields == null) {\n cipher.fields = [];\n }\n\n const field = new FieldView();\n field.name = fields[i].substr(0, delimPosition);\n field.value = null;\n field.type = FieldType.Text;\n if (fields[i].length > (delimPosition + 2)) {\n field.value = fields[i].substr(delimPosition + 2);\n }\n cipher.fields.push(field);\n }\n }\n\n const valueType = value.type != null ? value.type.toLowerCase() : null;\n switch (valueType) {\n case 'note':\n cipher.type = CipherType.SecureNote;\n cipher.secureNote = new SecureNoteView();\n cipher.secureNote.type = SecureNoteType.Generic;\n break;\n default:\n cipher.type = CipherType.Login;\n cipher.login = new LoginView();\n cipher.login.totp = this.getValueOrDefault(value.login_totp || value.totp);\n cipher.login.username = this.getValueOrDefault(value.login_username || value.username);\n cipher.login.password = this.getValueOrDefault(value.login_password || value.password);\n const uris = this.parseSingleRowCsv(value.login_uri || value.uri);\n cipher.login.uris = this.makeUriArray(uris);\n break;\n }\n\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CipherWithIds } from '../models/export/cipherWithIds';\nimport { CollectionWithId } from '../models/export/collectionWithId';\nimport { FolderWithId } from '../models/export/folderWithId';\n\nexport class BitwardenJsonImporter extends BaseImporter implements Importer {\n private results: any;\n private result: ImportResult;\n\n async parse(data: string): Promise {\n this.result = new ImportResult();\n this.results = JSON.parse(data);\n if (this.results == null || this.results.items == null || this.results.items.length === 0) {\n this.result.success = false;\n return this.result;\n }\n\n if (this.results.encrypted) {\n await this.parseEncrypted();\n } else {\n this.parseDecrypted();\n }\n\n this.result.success = true;\n return this.result;\n }\n\n private async parseEncrypted() {\n const groupingsMap = new Map();\n\n if (this.organization && this.results.collections != null) {\n for (const c of this.results.collections as CollectionWithId[]) {\n const collection = CollectionWithId.toDomain(c);\n if (collection != null) {\n collection.id = null;\n collection.organizationId = this.organizationId;\n const view = await collection.decrypt();\n groupingsMap.set(c.id, this.result.collections.length);\n this.result.collections.push(view);\n }\n }\n } else if (!this.organization && this.results.folders != null) {\n for (const f of this.results.folders as FolderWithId[]) {\n const folder = FolderWithId.toDomain(f);\n if (folder != null) {\n folder.id = null;\n const view = await folder.decrypt();\n groupingsMap.set(f.id, this.result.folders.length);\n this.result.folders.push(view);\n }\n }\n }\n\n for (const c of this.results.items as CipherWithIds[]) {\n const cipher = CipherWithIds.toDomain(c);\n // reset ids incase they were set for some reason\n cipher.id = null;\n cipher.folderId = null;\n cipher.organizationId = this.organizationId;\n cipher.collectionIds = null;\n\n // make sure password history is limited\n if (cipher.passwordHistory != null && cipher.passwordHistory.length > 5) {\n cipher.passwordHistory = cipher.passwordHistory.slice(0, 5);\n }\n\n if (!this.organization && c.folderId != null && groupingsMap.has(c.folderId)) {\n this.result.folderRelationships.push([this.result.ciphers.length, groupingsMap.get(c.folderId)]);\n } else if (this.organization && c.collectionIds != null) {\n c.collectionIds.forEach(cId => {\n if (groupingsMap.has(cId)) {\n this.result.collectionRelationships.push([this.result.ciphers.length, groupingsMap.get(cId)]);\n }\n });\n }\n\n const view = await cipher.decrypt();\n this.cleanupCipher(view);\n this.result.ciphers.push(view);\n }\n }\n\n private parseDecrypted() {\n const groupingsMap = new Map();\n if (this.organization && this.results.collections != null) {\n this.results.collections.forEach((c: CollectionWithId) => {\n const collection = CollectionWithId.toView(c);\n if (collection != null) {\n collection.id = null;\n collection.organizationId = null;\n groupingsMap.set(c.id, this.result.collections.length);\n this.result.collections.push(collection);\n }\n });\n } else if (!this.organization && this.results.folders != null) {\n this.results.folders.forEach((f: FolderWithId) => {\n const folder = FolderWithId.toView(f);\n if (folder != null) {\n folder.id = null;\n groupingsMap.set(f.id, this.result.folders.length);\n this.result.folders.push(folder);\n }\n });\n }\n\n this.results.items.forEach((c: CipherWithIds) => {\n const cipher = CipherWithIds.toView(c);\n // reset ids incase they were set for some reason\n cipher.id = null;\n cipher.folderId = null;\n cipher.organizationId = null;\n cipher.collectionIds = null;\n\n // make sure password history is limited\n if (cipher.passwordHistory != null && cipher.passwordHistory.length > 5) {\n cipher.passwordHistory = cipher.passwordHistory.slice(0, 5);\n }\n\n if (!this.organization && c.folderId != null && groupingsMap.has(c.folderId)) {\n this.result.folderRelationships.push([this.result.ciphers.length, groupingsMap.get(c.folderId)]);\n } else if (this.organization && c.collectionIds != null) {\n c.collectionIds.forEach(cId => {\n if (groupingsMap.has(cId)) {\n this.result.collectionRelationships.push([this.result.ciphers.length, groupingsMap.get(cId)]);\n }\n });\n }\n\n this.cleanupCipher(cipher);\n this.result.ciphers.push(cipher);\n });\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class BlackBerryCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.grouping === 'list') {\n return;\n }\n const cipher = this.initLoginCipher();\n cipher.favorite = value.fav === '1';\n cipher.name = this.getValueOrDefault(value.name);\n cipher.notes = this.getValueOrDefault(value.extra);\n if (value.grouping !== 'note') {\n cipher.login.uris = this.makeUriArray(value.url);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.username = this.getValueOrDefault(value.username);\n }\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class BlurCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.label === 'null') {\n value.label = null;\n }\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.label,\n this.getValueOrDefault(this.nameFromUrl(value.domain), '--'));\n cipher.login.uris = this.makeUriArray(value.domain);\n cipher.login.password = this.getValueOrDefault(value.password);\n\n if (this.isNullOrWhitespace(value.email) && !this.isNullOrWhitespace(value.username)) {\n cipher.login.username = value.username;\n } else {\n cipher.login.username = this.getValueOrDefault(value.email);\n cipher.notes = this.getValueOrDefault(value.username);\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nconst OfficialProps = [\n '!group_id', '!group_name', 'title', 'username', 'password', 'URL', 'id',\n];\n\nexport class ButtercupCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n this.processFolder(result, this.getValueOrDefault(value['!group_name']));\n\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.title, '--');\n cipher.login.username = this.getValueOrDefault(value.username);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.uris = this.makeUriArray(value.URL);\n\n let processingCustomFields = false;\n for (const prop in value) {\n if (value.hasOwnProperty(prop)) {\n if (!processingCustomFields && OfficialProps.indexOf(prop) === -1) {\n processingCustomFields = true;\n }\n if (processingCustomFields) {\n this.processKvp(cipher, prop, value[prop]);\n }\n }\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class ChromeCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.name, '--');\n cipher.login.username = this.getValueOrDefault(value.username);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.uris = this.makeUriArray(value.url);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class ClipperzHtmlImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const doc = this.parseXml(data);\n if (doc == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n const textarea = doc.querySelector('textarea');\n if (textarea == null || this.isNullOrWhitespace(textarea.textContent)) {\n result.errorMessage = 'Missing textarea.';\n result.success = false;\n return Promise.resolve(result);\n }\n\n const entries = JSON.parse(textarea.textContent);\n entries.forEach((entry: any) => {\n const cipher = this.initLoginCipher();\n if (!this.isNullOrWhitespace(entry.label)) {\n cipher.name = entry.label.split(' ')[0];\n }\n if (entry.data != null && !this.isNullOrWhitespace(entry.data.notes)) {\n cipher.notes = entry.data.notes.split('\\\\n').join('\\n');\n }\n\n if (entry.currentVersion != null && entry.currentVersion.fields != null) {\n for (const property in entry.currentVersion.fields) {\n if (!entry.currentVersion.fields.hasOwnProperty(property)) {\n continue;\n }\n\n const field = entry.currentVersion.fields[property];\n const actionType = field.actionType != null ? field.actionType.toLowerCase() : null;\n switch (actionType) {\n case 'password':\n cipher.login.password = this.getValueOrDefault(field.value);\n break;\n case 'email':\n case 'username':\n case 'user':\n case 'name':\n cipher.login.username = this.getValueOrDefault(field.value);\n break;\n case 'url':\n cipher.login.uris = this.makeUriArray(field.value);\n break;\n default:\n const labelLower = field.label != null ? field.label.toLowerCase() : null;\n if (cipher.login.password == null && this.passwordFieldNames.indexOf(labelLower) > -1) {\n cipher.login.password = this.getValueOrDefault(field.value);\n } else if (cipher.login.username == null &&\n this.usernameFieldNames.indexOf(labelLower) > -1) {\n cipher.login.username = this.getValueOrDefault(field.value);\n } else if ((cipher.login.uris == null || cipher.login.uris.length === 0) &&\n this.uriFieldNames.indexOf(labelLower) > -1) {\n cipher.login.uris = this.makeUriArray(field.value);\n } else {\n this.processKvp(cipher, field.label, field.value);\n }\n break;\n }\n }\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class CodebookCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n this.processFolder(result, this.getValueOrDefault(value.Category));\n\n const cipher = this.initLoginCipher();\n cipher.favorite = this.getValueOrDefault(value.Favorite) === 'True';\n cipher.name = this.getValueOrDefault(value.Entry, '--');\n cipher.notes = this.getValueOrDefault(value.Note);\n cipher.login.username = this.getValueOrDefault(value.Username, value.Email);\n cipher.login.password = this.getValueOrDefault(value.Password);\n cipher.login.totp = this.getValueOrDefault(value.TOTP);\n cipher.login.uris = this.makeUriArray(value.Website);\n\n if (!this.isNullOrWhitespace(value.Username)) {\n this.processKvp(cipher, 'Email', value.Email);\n }\n this.processKvp(cipher, 'Phone', value.Phone);\n this.processKvp(cipher, 'PIN', value.PIN);\n this.processKvp(cipher, 'Account', value.Account);\n this.processKvp(cipher, 'Date', value.Date);\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CardView } from '../models/view/cardView';\nimport { CipherView } from '../models/view/cipherView';\nimport { IdentityView } from '../models/view/identityView';\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nimport { CipherType } from '../enums/cipherType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nconst HandledResults = new Set(['ADDRESS', 'AUTHENTIFIANT', 'BANKSTATEMENT', 'IDCARD', 'IDENTITY',\n 'PAYMENTMEANS_CREDITCARD', 'PAYMENTMEAN_PAYPAL', 'EMAIL']);\n\nexport class DashlaneJsonImporter extends BaseImporter implements Importer {\n private result: ImportResult;\n\n parse(data: string): Promise {\n this.result = new ImportResult();\n const results = JSON.parse(data);\n if (results == null || results.length === 0) {\n this.result.success = false;\n return Promise.resolve(this.result);\n }\n\n if (results.ADDRESS != null) {\n this.processAddress(results.ADDRESS);\n }\n if (results.AUTHENTIFIANT != null) {\n this.processAuth(results.AUTHENTIFIANT);\n }\n if (results.BANKSTATEMENT != null) {\n this.processNote(results.BANKSTATEMENT, 'BankAccountName');\n }\n if (results.IDCARD != null) {\n this.processNote(results.IDCARD, 'Fullname');\n }\n if (results.PAYMENTMEANS_CREDITCARD != null) {\n this.processCard(results.PAYMENTMEANS_CREDITCARD);\n }\n if (results.IDENTITY != null) {\n this.processIdentity(results.IDENTITY);\n }\n\n for (const key in results) {\n if (results.hasOwnProperty(key) && !HandledResults.has(key)) {\n this.processNote(results[key], null, 'Generic Note');\n }\n }\n\n this.result.success = true;\n return Promise.resolve(this.result);\n }\n\n private processAuth(results: any[]) {\n results.forEach((credential: any) => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(credential.title);\n\n cipher.login.username = this.getValueOrDefault(credential.login,\n this.getValueOrDefault(credential.secondaryLogin));\n if (this.isNullOrWhitespace(cipher.login.username)) {\n cipher.login.username = this.getValueOrDefault(credential.email);\n } else if (!this.isNullOrWhitespace(credential.email)) {\n cipher.notes = ('Email: ' + credential.email + '\\n');\n }\n\n cipher.login.password = this.getValueOrDefault(credential.password);\n cipher.login.uris = this.makeUriArray(credential.domain);\n cipher.notes += this.getValueOrDefault(credential.note, '');\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n this.result.ciphers.push(cipher);\n });\n }\n\n private processIdentity(results: any[]) {\n results.forEach((obj: any) => {\n const cipher = new CipherView();\n cipher.identity = new IdentityView();\n cipher.type = CipherType.Identity;\n cipher.name = this.getValueOrDefault(obj.fullName, '');\n const nameParts = cipher.name.split(' ');\n if (nameParts.length > 0) {\n cipher.identity.firstName = this.getValueOrDefault(nameParts[0]);\n }\n if (nameParts.length === 2) {\n cipher.identity.lastName = this.getValueOrDefault(nameParts[1]);\n } else if (nameParts.length === 3) {\n cipher.identity.middleName = this.getValueOrDefault(nameParts[1]);\n cipher.identity.lastName = this.getValueOrDefault(nameParts[2]);\n }\n cipher.identity.username = this.getValueOrDefault(obj.pseudo);\n this.cleanupCipher(cipher);\n this.result.ciphers.push(cipher);\n });\n }\n\n private processAddress(results: any[]) {\n results.forEach((obj: any) => {\n const cipher = new CipherView();\n cipher.identity = new IdentityView();\n cipher.type = CipherType.Identity;\n cipher.name = this.getValueOrDefault(obj.addressName);\n cipher.identity.address1 = this.getValueOrDefault(obj.addressFull);\n cipher.identity.city = this.getValueOrDefault(obj.city);\n cipher.identity.state = this.getValueOrDefault(obj.state);\n cipher.identity.postalCode = this.getValueOrDefault(obj.zipcode);\n cipher.identity.country = this.getValueOrDefault(obj.country);\n if (cipher.identity.country != null) {\n cipher.identity.country = cipher.identity.country.toUpperCase();\n }\n this.cleanupCipher(cipher);\n this.result.ciphers.push(cipher);\n });\n }\n\n private processCard(results: any[]) {\n results.forEach((obj: any) => {\n const cipher = new CipherView();\n cipher.card = new CardView();\n cipher.type = CipherType.Card;\n cipher.name = this.getValueOrDefault(obj.bank);\n cipher.card.number = this.getValueOrDefault(obj.cardNumber);\n cipher.card.brand = this.getCardBrand(cipher.card.number);\n cipher.card.cardholderName = this.getValueOrDefault(obj.owner);\n if (!this.isNullOrWhitespace(cipher.card.brand)) {\n if (this.isNullOrWhitespace(cipher.name)) {\n cipher.name = cipher.card.brand;\n } else {\n cipher.name += (' - ' + cipher.card.brand);\n }\n }\n this.cleanupCipher(cipher);\n this.result.ciphers.push(cipher);\n });\n }\n\n private processNote(results: any[], nameProperty: string, name: string = null) {\n results.forEach((obj: any) => {\n const cipher = new CipherView();\n cipher.secureNote = new SecureNoteView();\n cipher.type = CipherType.SecureNote;\n cipher.secureNote.type = SecureNoteType.Generic;\n if (name != null) {\n cipher.name = name;\n } else {\n cipher.name = this.getValueOrDefault(obj[nameProperty]);\n }\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && key !== nameProperty) {\n this.processKvp(cipher, key, obj[key].toString());\n }\n }\n this.cleanupCipher(cipher);\n this.result.ciphers.push(cipher);\n });\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CardView } from '../models/view/cardView';\n\nimport { CipherType } from '../enums/cipherType';\n\nexport class EncryptrCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.Label, '--');\n cipher.notes = this.getValueOrDefault(value.Notes);\n const text = this.getValueOrDefault(value.Text);\n if (!this.isNullOrWhitespace(text)) {\n if (this.isNullOrWhitespace(cipher.notes)) {\n cipher.notes = text;\n } else {\n cipher.notes += ('\\n\\n' + text);\n }\n }\n\n const type = value['Entry Type'];\n if (type === 'Password') {\n cipher.login.username = this.getValueOrDefault(value.Username);\n cipher.login.password = this.getValueOrDefault(value.Password);\n cipher.login.uris = this.makeUriArray(value['Site URL']);\n } else if (type === 'Credit Card') {\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n cipher.card.cardholderName = this.getValueOrDefault(value['Name on card']);\n cipher.card.number = this.getValueOrDefault(value['Card Number']);\n cipher.card.brand = this.getCardBrand(cipher.card.number);\n cipher.card.code = this.getValueOrDefault(value.CVV);\n const expiry = this.getValueOrDefault(value.Expiry);\n if (!this.isNullOrWhitespace(expiry)) {\n const expParts = expiry.split('/');\n if (expParts.length > 1) {\n cipher.card.expMonth = parseInt(expParts[0], null).toString();\n cipher.card.expYear = (2000 + parseInt(expParts[1], null)).toString();\n }\n }\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CipherType } from '../enums/cipherType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nimport { CardView } from '../models/view/cardView';\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nexport class EnpassCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n let firstRow = true;\n results.forEach(value => {\n if (value.length < 2 || (firstRow && (value[0] === 'Title' || value[0] === 'title'))) {\n firstRow = false;\n return;\n }\n\n const cipher = this.initLoginCipher();\n cipher.notes = this.getValueOrDefault(value[value.length - 1]);\n cipher.name = this.getValueOrDefault(value[0], '--');\n\n if (value.length === 2 || (!this.containsField(value, 'username') &&\n !this.containsField(value, 'password') && !this.containsField(value, 'email') &&\n !this.containsField(value, 'url'))) {\n cipher.type = CipherType.SecureNote;\n cipher.secureNote = new SecureNoteView();\n cipher.secureNote.type = SecureNoteType.Generic;\n }\n\n if (this.containsField(value, 'cardholder') && this.containsField(value, 'number') &&\n this.containsField(value, 'expiry date')) {\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n }\n\n if (value.length > 2 && (value.length % 2) === 0) {\n for (let i = 0; i < value.length - 2; i += 2) {\n const fieldValue: string = value[i + 2];\n if (this.isNullOrWhitespace(fieldValue)) {\n continue;\n }\n\n const fieldName: string = value[i + 1];\n const fieldNameLower = fieldName.toLowerCase();\n\n if (cipher.type === CipherType.Login) {\n if (fieldNameLower === 'url' && (cipher.login.uris == null || cipher.login.uris.length === 0)) {\n cipher.login.uris = this.makeUriArray(fieldValue);\n continue;\n } else if ((fieldNameLower === 'username' || fieldNameLower === 'email') &&\n this.isNullOrWhitespace(cipher.login.username)) {\n cipher.login.username = fieldValue;\n continue;\n } else if (fieldNameLower === 'password' && this.isNullOrWhitespace(cipher.login.password)) {\n cipher.login.password = fieldValue;\n continue;\n } else if (fieldNameLower === 'totp' && this.isNullOrWhitespace(cipher.login.totp)) {\n cipher.login.totp = fieldValue;\n continue;\n }\n } else if (cipher.type === CipherType.Card) {\n if (fieldNameLower === 'cardholder' && this.isNullOrWhitespace(cipher.card.cardholderName)) {\n cipher.card.cardholderName = fieldValue;\n continue;\n } else if (fieldNameLower === 'number' && this.isNullOrWhitespace(cipher.card.number)) {\n cipher.card.number = fieldValue;\n cipher.card.brand = this.getCardBrand(fieldValue);\n continue;\n } else if (fieldNameLower === 'cvc' && this.isNullOrWhitespace(cipher.card.code)) {\n cipher.card.code = fieldValue;\n continue;\n } else if (fieldNameLower === 'expiry date' && this.isNullOrWhitespace(cipher.card.expMonth) &&\n this.isNullOrWhitespace(cipher.card.expYear)) {\n if (this.setCardExpiration(cipher, fieldValue)) {\n continue;\n }\n } else if (fieldNameLower === 'type') {\n // Skip since brand was determined from number above\n continue;\n }\n }\n\n this.processKvp(cipher, fieldName, fieldValue);\n }\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n private containsField(fields: any[], name: string) {\n if (fields == null || name == null) {\n return false;\n }\n return fields.filter(f => !this.isNullOrWhitespace(f) &&\n f.toLowerCase() === name.toLowerCase()).length > 0;\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CardView } from '../models/view/cardView';\nimport { CipherView } from '../models/view/cipherView';\nimport { FolderView } from '../models/view/folderView';\n\nimport { CipherType } from '../enums/cipherType';\nimport { FieldType } from '../enums/fieldType';\n\nexport class EnpassJsonImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = JSON.parse(data);\n if (results == null || results.items == null || results.items.length === 0) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n const foldersMap = new Map();\n const foldersIndexMap = new Map();\n const folderTree = this.buildFolderTree(results.folders);\n this.flattenFolderTree(null, folderTree, foldersMap);\n foldersMap.forEach((val, key) => {\n foldersIndexMap.set(key, result.folders.length);\n const f = new FolderView();\n f.name = val;\n result.folders.push(f);\n });\n\n results.items.forEach((item: any) => {\n if (item.folders != null && item.folders.length > 0 && foldersIndexMap.has(item.folders[0])) {\n result.folderRelationships.push([result.ciphers.length, foldersIndexMap.get(item.folders[0])]);\n }\n\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(item.title);\n cipher.favorite = item.favorite > 0;\n\n if (item.template_type != null && item.fields != null && item.fields.length > 0) {\n if (item.template_type.indexOf('login.') === 0 || item.template_type.indexOf('password.') === 0) {\n this.processLogin(cipher, item.fields);\n } else if (item.template_type.indexOf('creditcard.') === 0) {\n this.processCard(cipher, item.fields);\n } else if (item.template_type.indexOf('identity.') < 0 &&\n item.fields.some((f: any) => f.type === 'password' && !this.isNullOrWhitespace(f.value))) {\n this.processLogin(cipher, item.fields);\n } else {\n this.processNote(cipher, item.fields);\n }\n }\n\n cipher.notes += ('\\n' + this.getValueOrDefault(item.note, ''));\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n private processLogin(cipher: CipherView, fields: any[]) {\n const urls: string[] = [];\n fields.forEach((field: any) => {\n if (this.isNullOrWhitespace(field.value) || field.type === 'section') {\n return;\n }\n\n if ((field.type === 'username' || field.type === 'email') &&\n this.isNullOrWhitespace(cipher.login.username)) {\n cipher.login.username = field.value;\n } else if (field.type === 'password' && this.isNullOrWhitespace(cipher.login.password)) {\n cipher.login.password = field.value;\n } else if (field.type === 'totp' && this.isNullOrWhitespace(cipher.login.totp)) {\n cipher.login.totp = field.value;\n } else if (field.type === 'url') {\n urls.push(field.value);\n } else {\n this.processKvp(cipher, field.label, field.value,\n field.sensitive === 1 ? FieldType.Hidden : FieldType.Text);\n }\n });\n cipher.login.uris = this.makeUriArray(urls);\n }\n\n private processCard(cipher: CipherView, fields: any[]) {\n cipher.card = new CardView();\n cipher.type = CipherType.Card;\n fields.forEach((field: any) => {\n if (this.isNullOrWhitespace(field.value) || field.type === 'section' || field.type === 'ccType') {\n return;\n }\n\n if (field.type === 'ccName' && this.isNullOrWhitespace(cipher.card.cardholderName)) {\n cipher.card.cardholderName = field.value;\n } else if (field.type === 'ccNumber' && this.isNullOrWhitespace(cipher.card.number)) {\n cipher.card.number = field.value;\n cipher.card.brand = this.getCardBrand(cipher.card.number);\n } else if (field.type === 'ccCvc' && this.isNullOrWhitespace(cipher.card.code)) {\n cipher.card.code = field.value;\n } else if (field.type === 'ccExpiry' && this.isNullOrWhitespace(cipher.card.expYear)) {\n if (!this.setCardExpiration(cipher, field.value)) {\n this.processKvp(cipher, field.label, field.value,\n field.sensitive === 1 ? FieldType.Hidden : FieldType.Text);\n }\n } else {\n this.processKvp(cipher, field.label, field.value,\n field.sensitive === 1 ? FieldType.Hidden : FieldType.Text);\n }\n });\n }\n\n private processNote(cipher: CipherView, fields: any[]) {\n fields.forEach((field: any) => {\n if (this.isNullOrWhitespace(field.value) || field.type === 'section') {\n return;\n }\n this.processKvp(cipher, field.label, field.value,\n field.sensitive === 1 ? FieldType.Hidden : FieldType.Text);\n });\n }\n\n private buildFolderTree(folders: any[]): any[] {\n if (folders == null) {\n return [];\n }\n const folderTree: any[] = [];\n const map = new Map([]);\n folders.forEach((obj: any) => {\n map.set(obj.uuid, obj);\n obj.children = [];\n });\n folders.forEach((obj: any) => {\n if (obj.parent_uuid != null && obj.parent_uuid !== '' && map.has(obj.parent_uuid)) {\n map.get(obj.parent_uuid).children.push(obj);\n } else {\n folderTree.push(obj);\n }\n });\n return folderTree;\n }\n\n private flattenFolderTree(titlePrefix: string, tree: any[], map: Map) {\n if (tree == null) {\n return;\n }\n tree.forEach((f: any) => {\n if (f.title != null && f.title.trim() !== '') {\n let title = f.title.trim();\n if (titlePrefix != null && titlePrefix.trim() !== '') {\n title = titlePrefix + '/' + title;\n }\n map.set(f.uuid, title);\n if (f.children != null && f.children.length !== 0) {\n this.flattenFolderTree(title, f.children, map);\n }\n }\n });\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class FirefoxCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.filter(value => {\n return value.url !== 'chrome://FirefoxAccounts';\n }).forEach(value => {\n const cipher = this.initLoginCipher();\n const url = this.getValueOrDefault(value.url, this.getValueOrDefault(value.hostname));\n cipher.name = this.getValueOrDefault(this.nameFromUrl(url), '--');\n cipher.login.username = this.getValueOrDefault(value.username);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.uris = this.makeUriArray(url);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CardView } from '../models/view/cardView';\n\nimport { CipherType } from '../enums/cipherType';\n\nexport class FSecureFskImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = JSON.parse(data);\n if (results == null || results.data == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n for (const key in results.data) {\n if (!results.data.hasOwnProperty(key)) {\n continue;\n }\n\n const value = results.data[key];\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.service);\n cipher.notes = this.getValueOrDefault(value.notes);\n\n if (value.style === 'website') {\n cipher.login.username = this.getValueOrDefault(value.username);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.uris = this.makeUriArray(value.url);\n } else if (value.style === 'creditcard') {\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n cipher.card.cardholderName = this.getValueOrDefault(value.username);\n cipher.card.number = this.getValueOrDefault(value.creditNumber);\n cipher.card.brand = this.getCardBrand(cipher.card.number);\n cipher.card.code = this.getValueOrDefault(value.creditCvv);\n if (!this.isNullOrWhitespace(value.creditExpiry)) {\n if (!this.setCardExpiration(cipher, value.creditExpiry)) {\n this.processKvp(cipher, 'Expiration', value.creditExpiry);\n }\n }\n if (!this.isNullOrWhitespace(value.password)) {\n this.processKvp(cipher, 'PIN', value.password);\n }\n } else {\n continue;\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class GnomeJsonImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = JSON.parse(data);\n if (results == null || Object.keys(results).length === 0) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n for (const keyRing in results) {\n if (!results.hasOwnProperty(keyRing) || this.isNullOrWhitespace(keyRing) ||\n results[keyRing].length === 0) {\n continue;\n }\n\n results[keyRing].forEach((value: any) => {\n if (this.isNullOrWhitespace(value.display_name) || value.display_name.indexOf('http') !== 0) {\n return;\n }\n\n this.processFolder(result, keyRing);\n const cipher = this.initLoginCipher();\n cipher.name = value.display_name.replace('http://', '').replace('https://', '');\n if (cipher.name.length > 30) {\n cipher.name = cipher.name.substring(0, 30);\n }\n cipher.login.password = this.getValueOrDefault(value.secret);\n cipher.login.uris = this.makeUriArray(value.display_name);\n\n if (value.attributes != null) {\n cipher.login.username = value.attributes != null ?\n this.getValueOrDefault(value.attributes.username_value) : null;\n for (const attr in value.attributes) {\n if (!value.attributes.hasOwnProperty(attr) || attr === 'username_value' ||\n attr === 'xdg:schema') {\n continue;\n }\n this.processKvp(cipher, attr, value.attributes[attr]);\n }\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n }\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nconst NotesHeader = 'Notes\\n\\n';\nconst ApplicationsHeader = 'Applications\\n\\n';\nconst WebsitesHeader = 'Websites\\n\\n';\nconst Delimiter = '\\n---\\n';\n\nexport class KasperskyTxtImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n\n let notesData: string;\n let applicationsData: string;\n let websitesData: string;\n let workingData = this.splitNewLine(data).join('\\n');\n\n if (workingData.indexOf(NotesHeader) !== -1) {\n const parts = workingData.split(NotesHeader);\n if (parts.length > 1) {\n workingData = parts[0];\n notesData = parts[1];\n }\n }\n if (workingData.indexOf(ApplicationsHeader) !== -1) {\n const parts = workingData.split(ApplicationsHeader);\n if (parts.length > 1) {\n workingData = parts[0];\n applicationsData = parts[1];\n }\n }\n if (workingData.indexOf(WebsitesHeader) === 0) {\n const parts = workingData.split(WebsitesHeader);\n if (parts.length > 1) {\n workingData = parts[0];\n websitesData = parts[1];\n }\n }\n\n const notes = this.parseDataCategory(notesData);\n const applications = this.parseDataCategory(applicationsData);\n const websites = this.parseDataCategory(websitesData);\n\n notes.forEach(n => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(n.get('Name'));\n cipher.notes = this.getValueOrDefault(n.get('Text'));\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n websites.concat(applications).forEach(w => {\n const cipher = this.initLoginCipher();\n const nameKey = w.has('Website name') ? 'Website name' : 'Application';\n cipher.name = this.getValueOrDefault(w.get(nameKey), '');\n if (!this.isNullOrWhitespace(w.get('Login name'))) {\n if (!this.isNullOrWhitespace(cipher.name)) {\n cipher.name += ': ';\n }\n cipher.name += w.get('Login name');\n }\n cipher.notes = this.getValueOrDefault(w.get('Comment'));\n if (w.has('Website URL')) {\n cipher.login.uris = this.makeUriArray(w.get('Website URL'));\n }\n cipher.login.username = this.getValueOrDefault(w.get('Login'));\n cipher.login.password = this.getValueOrDefault(w.get('Password'));\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n private parseDataCategory(data: string): Map[] {\n if (this.isNullOrWhitespace(data) || data.indexOf(Delimiter) === -1) {\n return [];\n }\n const items: Map[] = [];\n data.split(Delimiter).forEach(p => {\n if (p.indexOf('\\n') === -1) {\n return;\n }\n const item = new Map();\n let itemComment: string;\n let itemCommentKey: string;\n p.split('\\n').forEach(l => {\n if (itemComment != null) {\n itemComment += ('\\n' + l);\n return;\n }\n const colonIndex = l.indexOf(':');\n let key: string;\n let val: string;\n if (colonIndex === -1) {\n return;\n } else {\n key = l.substring(0, colonIndex);\n if (l.length > colonIndex + 1) {\n val = l.substring(colonIndex + 2);\n }\n }\n if (key != null) {\n item.set(key, val);\n }\n if (key === 'Comment' || key === 'Text') {\n itemComment = val;\n itemCommentKey = key;\n }\n });\n if (itemComment != null && itemCommentKey != null) {\n item.set(itemCommentKey, itemComment);\n }\n if (item.size === 0) {\n return;\n }\n items.push(item);\n });\n return items;\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { FieldType } from '../enums/fieldType';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { FolderView } from '../models/view/folderView';\n\nexport class KeePass2XmlImporter extends BaseImporter implements Importer {\n result = new ImportResult();\n\n parse(data: string): Promise {\n const doc = this.parseXml(data);\n if (doc == null) {\n this.result.success = false;\n return Promise.resolve(this.result);\n }\n\n const rootGroup = doc.querySelector('KeePassFile > Root > Group');\n if (rootGroup == null) {\n this.result.errorMessage = 'Missing `KeePassFile > Root > Group` node.';\n this.result.success = false;\n return Promise.resolve(this.result);\n }\n\n this.traverse(rootGroup, true, '');\n\n if (this.organization) {\n this.moveFoldersToCollections(this.result);\n }\n\n this.result.success = true;\n return Promise.resolve(this.result);\n }\n\n traverse(node: Element, isRootNode: boolean, groupPrefixName: string) {\n const folderIndex = this.result.folders.length;\n let groupName = groupPrefixName;\n\n if (!isRootNode) {\n if (groupName !== '') {\n groupName += '/';\n }\n const nameEl = this.querySelectorDirectChild(node, 'Name');\n groupName += nameEl == null ? '-' : nameEl.textContent;\n const folder = new FolderView();\n folder.name = groupName;\n this.result.folders.push(folder);\n }\n\n this.querySelectorAllDirectChild(node, 'Entry').forEach(entry => {\n const cipherIndex = this.result.ciphers.length;\n\n const cipher = this.initLoginCipher();\n this.querySelectorAllDirectChild(entry, 'String').forEach(entryString => {\n const valueEl = this.querySelectorDirectChild(entryString, 'Value');\n const value = valueEl != null ? valueEl.textContent : null;\n if (this.isNullOrWhitespace(value)) {\n return;\n }\n const keyEl = this.querySelectorDirectChild(entryString, 'Key');\n const key = keyEl != null ? keyEl.textContent : null;\n\n if (key === 'URL') {\n cipher.login.uris = this.makeUriArray(value);\n } else if (key === 'UserName') {\n cipher.login.username = value;\n } else if (key === 'Password') {\n cipher.login.password = value;\n } else if (key === 'otp') {\n cipher.login.totp = value.replace('key=', '');\n } else if (key === 'Title') {\n cipher.name = value;\n } else if (key === 'Notes') {\n cipher.notes += (value + '\\n');\n } else {\n let type = FieldType.Text;\n const attrs = (valueEl.attributes as any);\n if (attrs.length > 0 && attrs.ProtectInMemory != null &&\n attrs.ProtectInMemory.value === 'True') {\n type = FieldType.Hidden;\n }\n this.processKvp(cipher, key, value, type);\n }\n });\n\n this.cleanupCipher(cipher);\n this.result.ciphers.push(cipher);\n\n if (!isRootNode) {\n this.result.folderRelationships.push([cipherIndex, folderIndex]);\n }\n });\n\n this.querySelectorAllDirectChild(node, 'Group').forEach(group => {\n this.traverse(group, false, groupName);\n });\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class KeePassXCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (this.isNullOrWhitespace(value.Title)) {\n return;\n }\n\n value.Group = !this.isNullOrWhitespace(value.Group) && value.Group.startsWith('Root/') ?\n value.Group.replace('Root/', '') : value.Group;\n const groupName = !this.isNullOrWhitespace(value.Group) ? value.Group : null;\n this.processFolder(result, groupName);\n\n const cipher = this.initLoginCipher();\n cipher.notes = this.getValueOrDefault(value.Notes);\n cipher.name = this.getValueOrDefault(value.Title, '--');\n cipher.login.username = this.getValueOrDefault(value.Username);\n cipher.login.password = this.getValueOrDefault(value.Password);\n cipher.login.uris = this.makeUriArray(value.URL);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { FolderView } from '../models/view/folderView';\n\nexport class KeeperCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.length < 6) {\n return;\n }\n\n this.processFolder(result, value[0]);\n const cipher = this.initLoginCipher();\n cipher.notes = this.getValueOrDefault(value[5]) + '\\n';\n cipher.name = this.getValueOrDefault(value[1], '--');\n cipher.login.username = this.getValueOrDefault(value[2]);\n cipher.login.password = this.getValueOrDefault(value[3]);\n cipher.login.uris = this.makeUriArray(value[4]);\n\n if (value.length > 7) {\n // we have some custom fields.\n for (let i = 7; i < value.length; i = i + 2) {\n this.processKvp(cipher, value[i], value[i + 1]);\n }\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CardView } from '../models/view/cardView';\nimport { CipherView } from '../models/view/cipherView';\nimport { FolderView } from '../models/view/folderView';\nimport { IdentityView } from '../models/view/identityView';\nimport { LoginView } from '../models/view/loginView';\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nimport { CipherType } from '../enums/cipherType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nexport class LastPassCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach((value, index) => {\n const cipherIndex = result.ciphers.length;\n let folderIndex = result.folders.length;\n let grouping = value.grouping;\n if (grouping != null) {\n grouping = grouping.replace(/\\\\/g, '/').replace(/[\\x00-\\x1F\\x7F-\\x9F]/g, '');\n }\n const hasFolder = this.getValueOrDefault(grouping, '(none)') !== '(none)';\n let addFolder = hasFolder;\n\n if (hasFolder) {\n for (let i = 0; i < result.folders.length; i++) {\n if (result.folders[i].name === grouping) {\n addFolder = false;\n folderIndex = i;\n break;\n }\n }\n }\n\n const cipher = this.buildBaseCipher(value);\n if (cipher.type === CipherType.Login) {\n cipher.notes = this.getValueOrDefault(value.extra);\n cipher.login = new LoginView();\n cipher.login.uris = this.makeUriArray(value.url);\n cipher.login.username = this.getValueOrDefault(value.username);\n cipher.login.password = this.getValueOrDefault(value.password);\n } else if (cipher.type === CipherType.SecureNote) {\n this.parseSecureNote(value, cipher);\n } else if (cipher.type === CipherType.Card) {\n cipher.card = this.parseCard(value);\n cipher.notes = this.getValueOrDefault(value.notes);\n } else if (cipher.type === CipherType.Identity) {\n cipher.identity = this.parseIdentity(value);\n cipher.notes = this.getValueOrDefault(value.notes);\n if (!this.isNullOrWhitespace(value.ccnum)) {\n // there is a card on this identity too\n const cardCipher = this.buildBaseCipher(value);\n cardCipher.identity = null;\n cardCipher.type = CipherType.Card;\n cardCipher.card = this.parseCard(value);\n result.ciphers.push(cardCipher);\n }\n }\n\n result.ciphers.push(cipher);\n\n if (addFolder) {\n const f = new FolderView();\n f.name = grouping;\n result.folders.push(f);\n }\n if (hasFolder) {\n result.folderRelationships.push([cipherIndex, folderIndex]);\n }\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n private buildBaseCipher(value: any) {\n const cipher = new CipherView();\n if (value.hasOwnProperty('profilename') && value.hasOwnProperty('profilelanguage')) {\n // form fill\n cipher.favorite = false;\n cipher.name = this.getValueOrDefault(value.profilename, '--');\n cipher.type = CipherType.Card;\n\n if (!this.isNullOrWhitespace(value.title) || !this.isNullOrWhitespace(value.firstname) ||\n !this.isNullOrWhitespace(value.lastname) || !this.isNullOrWhitespace(value.address1) ||\n !this.isNullOrWhitespace(value.phone) || !this.isNullOrWhitespace(value.username) ||\n !this.isNullOrWhitespace(value.email)) {\n cipher.type = CipherType.Identity;\n }\n } else {\n // site or secure note\n cipher.favorite = !this.organization && this.getValueOrDefault(value.fav, '0') === '1';\n cipher.name = this.getValueOrDefault(value.name, '--');\n cipher.type = value.url === 'http://sn' ? CipherType.SecureNote : CipherType.Login;\n }\n return cipher;\n }\n\n private parseCard(value: any): CardView {\n const card = new CardView();\n card.cardholderName = this.getValueOrDefault(value.ccname);\n card.number = this.getValueOrDefault(value.ccnum);\n card.code = this.getValueOrDefault(value.cccsc);\n card.brand = this.getCardBrand(value.ccnum);\n\n if (!this.isNullOrWhitespace(value.ccexp) && value.ccexp.indexOf('-') > -1) {\n const ccexpParts = (value.ccexp as string).split('-');\n if (ccexpParts.length > 1) {\n card.expYear = ccexpParts[0];\n card.expMonth = ccexpParts[1];\n if (card.expMonth.length === 2 && card.expMonth[0] === '0') {\n card.expMonth = card.expMonth[1];\n }\n }\n }\n\n return card;\n }\n\n private parseIdentity(value: any): IdentityView {\n const identity = new IdentityView();\n identity.title = this.getValueOrDefault(value.title);\n identity.firstName = this.getValueOrDefault(value.firstname);\n identity.middleName = this.getValueOrDefault(value.middlename);\n identity.lastName = this.getValueOrDefault(value.lastname);\n identity.username = this.getValueOrDefault(value.username);\n identity.company = this.getValueOrDefault(value.company);\n identity.ssn = this.getValueOrDefault(value.ssn);\n identity.address1 = this.getValueOrDefault(value.address1);\n identity.address2 = this.getValueOrDefault(value.address2);\n identity.address3 = this.getValueOrDefault(value.address3);\n identity.city = this.getValueOrDefault(value.city);\n identity.state = this.getValueOrDefault(value.state);\n identity.postalCode = this.getValueOrDefault(value.zip);\n identity.country = this.getValueOrDefault(value.country);\n identity.email = this.getValueOrDefault(value.email);\n identity.phone = this.getValueOrDefault(value.phone);\n\n if (!this.isNullOrWhitespace(identity.title)) {\n identity.title = identity.title.charAt(0).toUpperCase() + identity.title.slice(1);\n }\n\n return identity;\n }\n\n private parseSecureNote(value: any, cipher: CipherView) {\n const extraParts = this.splitNewLine(value.extra);\n let processedNote = false;\n\n if (extraParts.length) {\n const typeParts = extraParts[0].split(':');\n if (typeParts.length > 1 && typeParts[0] === 'NoteType' &&\n (typeParts[1] === 'Credit Card' || typeParts[1] === 'Address')) {\n if (typeParts[1] === 'Credit Card') {\n const mappedData = this.parseSecureNoteMapping(cipher, extraParts, {\n 'Number': 'number',\n 'Name on Card': 'cardholderName',\n 'Security Code': 'code',\n // LP provides date in a format like 'June,2020'\n // Store in expMonth, then parse and modify\n 'Expiration Date': 'expMonth',\n });\n\n if (this.isNullOrWhitespace(mappedData.expMonth) || mappedData.expMonth === ',') {\n // No expiration data\n mappedData.expMonth = undefined;\n } else {\n const [monthString, year] = mappedData.expMonth.split(',');\n // Parse month name into number\n if (!this.isNullOrWhitespace(monthString)) {\n const month = new Date(Date.parse(monthString.trim() + ' 1, 2012')).getMonth() + 1;\n if (isNaN(month)) {\n mappedData.expMonth = undefined;\n } else {\n mappedData.expMonth = month.toString();\n }\n } else {\n mappedData.expMonth = undefined;\n }\n if (!this.isNullOrWhitespace(year)) {\n mappedData.expYear = year;\n }\n }\n\n cipher.type = CipherType.Card;\n cipher.card = mappedData;\n } else if (typeParts[1] === 'Address') {\n const mappedData = this.parseSecureNoteMapping(cipher, extraParts, {\n 'Title': 'title',\n 'First Name': 'firstName',\n 'Last Name': 'lastName',\n 'Middle Name': 'middleName',\n 'Company': 'company',\n 'Address 1': 'address1',\n 'Address 2': 'address2',\n 'Address 3': 'address3',\n 'City / Town': 'city',\n 'State': 'state',\n 'Zip / Postal Code': 'postalCode',\n 'Country': 'country',\n 'Email Address': 'email',\n 'Username': 'username',\n });\n cipher.type = CipherType.Identity;\n cipher.identity = mappedData;\n }\n processedNote = true;\n }\n }\n\n if (!processedNote) {\n cipher.secureNote = new SecureNoteView();\n cipher.secureNote.type = SecureNoteType.Generic;\n cipher.notes = this.getValueOrDefault(value.extra);\n }\n }\n\n private parseSecureNoteMapping(cipher: CipherView, extraParts: string[], map: any): T {\n const dataObj: any = {};\n\n let processingNotes = false;\n extraParts.forEach(extraPart => {\n let key: string = null;\n let val: string = null;\n if (!processingNotes) {\n if (this.isNullOrWhitespace(extraPart)) {\n return;\n }\n const colonIndex = extraPart.indexOf(':');\n if (colonIndex === -1) {\n key = extraPart;\n } else {\n key = extraPart.substring(0, colonIndex);\n if (extraPart.length > colonIndex) {\n val = extraPart.substring(colonIndex + 1);\n }\n }\n if (this.isNullOrWhitespace(key) || this.isNullOrWhitespace(val) || key === 'NoteType') {\n return;\n }\n }\n\n if (processingNotes) {\n cipher.notes += ('\\n' + extraPart);\n } else if (key === 'Notes') {\n if (!this.isNullOrWhitespace(cipher.notes)) {\n cipher.notes += ('\\n' + val);\n } else {\n cipher.notes = val;\n }\n processingNotes = true;\n } else if (map.hasOwnProperty(key)) {\n dataObj[map[key]] = val;\n } else {\n this.processKvp(cipher, key, val);\n }\n });\n\n return dataObj;\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class LogMeOnceCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.length < 4) {\n return;\n }\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value[0], '--');\n cipher.login.username = this.getValueOrDefault(value[2]);\n cipher.login.password = this.getValueOrDefault(value[3]);\n cipher.login.uris = this.makeUriArray(value[1]);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class MeldiumCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.DisplayName, '--');\n cipher.notes = this.getValueOrDefault(value.Notes);\n cipher.login.username = this.getValueOrDefault(value.UserName);\n cipher.login.password = this.getValueOrDefault(value.Password);\n cipher.login.uris = this.makeUriArray(value.Url);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CipherType } from '../enums/cipherType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nexport class MSecureCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.length < 3) {\n return;\n }\n\n const folderName = this.getValueOrDefault(value[0], 'Unassigned') !== 'Unassigned' ? value[0] : null;\n this.processFolder(result, folderName);\n\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value[2], '--');\n\n if (value[1] === 'Web Logins' || value[1] === 'Login') {\n cipher.login.uris = this.makeUriArray(value[4]);\n cipher.login.username = this.getValueOrDefault(value[5]);\n cipher.login.password = this.getValueOrDefault(value[6]);\n cipher.notes = !this.isNullOrWhitespace(value[3]) ? value[3].split('\\\\n').join('\\n') : null;\n } else if (value.length > 3) {\n cipher.type = CipherType.SecureNote;\n cipher.secureNote = new SecureNoteView();\n cipher.secureNote.type = SecureNoteType.Generic;\n for (let i = 3; i < value.length; i++) {\n if (!this.isNullOrWhitespace(value[i])) {\n cipher.notes += (value[i] + '\\n');\n }\n }\n }\n\n if (!this.isNullOrWhitespace(value[1]) && cipher.type !== CipherType.Login) {\n cipher.name = value[1] + ': ' + cipher.name;\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { CipherType } from '../enums/cipherType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nimport { CardView } from '../models/view/cardView';\nimport { IdentityView } from '../models/view/identityView';\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class MykiCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.nickname, '--');\n cipher.notes = this.getValueOrDefault(value.additionalInfo);\n\n if (value.url !== undefined) {\n // Accounts\n cipher.login.uris = this.makeUriArray(value.url);\n cipher.login.username = this.getValueOrDefault(value.username);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.totp = this.getValueOrDefault(value.twoFactAuthToken);\n } else if (value.cardNumber !== undefined) {\n // Cards\n cipher.card = new CardView();\n cipher.type = CipherType.Card;\n cipher.card.cardholderName = this.getValueOrDefault(value.cardName);\n cipher.card.number = this.getValueOrDefault(value.cardNumber);\n cipher.card.brand = this.getCardBrand(cipher.card.number);\n cipher.card.expMonth = this.getValueOrDefault(value.exp_month);\n cipher.card.expYear = this.getValueOrDefault(value.exp_year);\n cipher.card.code = this.getValueOrDefault(value.cvv);\n } else if (value.firstName !== undefined) {\n // Identities\n cipher.identity = new IdentityView();\n cipher.type = CipherType.Identity;\n cipher.identity.title = this.getValueOrDefault(value.title);\n cipher.identity.firstName = this.getValueOrDefault(value.firstName);\n cipher.identity.middleName = this.getValueOrDefault(value.middleName);\n cipher.identity.lastName = this.getValueOrDefault(value.lastName);\n cipher.identity.phone = this.getValueOrDefault(value.number);\n cipher.identity.email = this.getValueOrDefault(value.email);\n cipher.identity.address1 = this.getValueOrDefault(value.firstAddressLine);\n cipher.identity.address2 = this.getValueOrDefault(value.secondAddressLine);\n cipher.identity.city = this.getValueOrDefault(value.city);\n cipher.identity.country = this.getValueOrDefault(value.country);\n cipher.identity.postalCode = this.getValueOrDefault(value.zipCode);\n } else if (value.content !== undefined) {\n // Notes\n cipher.secureNote = new SecureNoteView();\n cipher.type = CipherType.SecureNote;\n cipher.secureNote.type = SecureNoteType.Generic;\n cipher.name = this.getValueOrDefault(value.title, '--');\n cipher.notes = this.getValueOrDefault(value.content);\n } else {\n return;\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from '../baseImporter';\nimport { Importer } from '../importer';\n\nimport { ImportResult } from '../../models/domain/importResult';\n\nimport { CardView } from '../../models/view/cardView';\nimport { CipherView } from '../../models/view/cipherView';\nimport { IdentityView } from '../../models/view/identityView';\nimport { PasswordHistoryView } from '../../models/view/passwordHistoryView';\nimport { SecureNoteView } from '../../models/view/secureNoteView';\n\nimport { CipherType } from '../../enums/cipherType';\nimport { FieldType } from '../../enums/fieldType';\nimport { SecureNoteType } from '../../enums/secureNoteType';\n\nexport class OnePassword1PifImporter extends BaseImporter implements Importer {\n result = new ImportResult();\n\n parse(data: string): Promise {\n data.split(this.newLineRegex).forEach(line => {\n if (this.isNullOrWhitespace(line) || line[0] !== '{') {\n return;\n }\n const item = JSON.parse(line);\n if (item.trashed === true) {\n return;\n }\n const cipher = this.initLoginCipher();\n\n if (this.isNullOrWhitespace(item.hmac)) {\n this.processStandardItem(item, cipher);\n } else {\n this.processWinOpVaultItem(item, cipher);\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n this.result.ciphers.push(cipher);\n });\n\n this.result.success = true;\n return Promise.resolve(this.result);\n }\n\n private processWinOpVaultItem(item: any, cipher: CipherView) {\n if (item.overview != null) {\n cipher.name = this.getValueOrDefault(item.overview.title);\n if (item.overview.URLs != null) {\n const urls: string[] = [];\n item.overview.URLs.forEach((url: any) => {\n if (!this.isNullOrWhitespace(url.u)) {\n urls.push(url.u);\n }\n });\n cipher.login.uris = this.makeUriArray(urls);\n }\n }\n\n if (item.details != null) {\n if (item.details.passwordHistory != null) {\n this.parsePasswordHistory(item.details.passwordHistory, cipher);\n }\n if (!this.isNullOrWhitespace(item.details.ccnum) || !this.isNullOrWhitespace(item.details.cvv)) {\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n } else if (!this.isNullOrWhitespace(item.details.firstname) ||\n !this.isNullOrWhitespace(item.details.address1)) {\n cipher.type = CipherType.Identity;\n cipher.identity = new IdentityView();\n }\n if (cipher.type === CipherType.Login && !this.isNullOrWhitespace(item.details.password)) {\n cipher.login.password = item.details.password;\n }\n if (!this.isNullOrWhitespace(item.details.notesPlain)) {\n cipher.notes = item.details.notesPlain.split(this.newLineRegex).join('\\n') + '\\n';\n }\n if (item.details.fields != null) {\n this.parseFields(item.details.fields, cipher, 'designation', 'value', 'name');\n }\n if (item.details.sections != null) {\n item.details.sections.forEach((section: any) => {\n if (section.fields != null) {\n this.parseFields(section.fields, cipher, 'n', 'v', 't');\n }\n });\n }\n }\n }\n\n private processStandardItem(item: any, cipher: CipherView) {\n cipher.favorite = item.openContents && item.openContents.faveIndex ? true : false;\n cipher.name = this.getValueOrDefault(item.title);\n\n if (item.typeName === 'securenotes.SecureNote') {\n cipher.type = CipherType.SecureNote;\n cipher.secureNote = new SecureNoteView();\n cipher.secureNote.type = SecureNoteType.Generic;\n } else if (item.typeName === 'wallet.financial.CreditCard') {\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n } else if (item.typeName === 'identities.Identity') {\n cipher.type = CipherType.Identity;\n cipher.identity = new IdentityView();\n } else {\n cipher.login.uris = this.makeUriArray(item.location);\n }\n\n if (item.secureContents != null) {\n if (item.secureContents.passwordHistory != null) {\n this.parsePasswordHistory(item.secureContents.passwordHistory, cipher);\n }\n if (!this.isNullOrWhitespace(item.secureContents.notesPlain)) {\n cipher.notes = item.secureContents.notesPlain.split(this.newLineRegex).join('\\n') + '\\n';\n }\n if (cipher.type === CipherType.Login) {\n if (!this.isNullOrWhitespace(item.secureContents.password)) {\n cipher.login.password = item.secureContents.password;\n }\n if (item.secureContents.URLs != null) {\n const urls: string[] = [];\n item.secureContents.URLs.forEach((u: any) => {\n if (!this.isNullOrWhitespace(u.url)) {\n urls.push(u.url);\n }\n });\n if (urls.length > 0) {\n cipher.login.uris = this.makeUriArray(urls);\n }\n }\n }\n if (item.secureContents.fields != null) {\n this.parseFields(item.secureContents.fields, cipher, 'designation', 'value', 'name');\n }\n if (item.secureContents.sections != null) {\n item.secureContents.sections.forEach((section: any) => {\n if (section.fields != null) {\n this.parseFields(section.fields, cipher, 'n', 'v', 't');\n }\n });\n }\n }\n }\n\n private parsePasswordHistory(items: any[], cipher: CipherView) {\n const maxSize = items.length > 5 ? 5 : items.length;\n cipher.passwordHistory = items\n .filter((h: any) => !this.isNullOrWhitespace(h.value) && h.time != null)\n .sort((a, b) => b.time - a.time)\n .slice(0, maxSize)\n .map((h: any) => {\n const ph = new PasswordHistoryView();\n ph.password = h.value;\n ph.lastUsedDate = new Date(('' + h.time).length >= 13 ? h.time : h.time * 1000);\n return ph;\n });\n }\n\n private parseFields(fields: any[], cipher: CipherView, designationKey: string, valueKey: string, nameKey: string) {\n fields.forEach((field: any) => {\n if (field[valueKey] == null || field[valueKey].toString().trim() === '') {\n return;\n }\n\n const fieldValue = field[valueKey].toString();\n const fieldDesignation = field[designationKey] != null ? field[designationKey].toString() : null;\n\n if (cipher.type === CipherType.Login) {\n if (this.isNullOrWhitespace(cipher.login.username) && fieldDesignation === 'username') {\n cipher.login.username = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(cipher.login.password) && fieldDesignation === 'password') {\n cipher.login.password = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(cipher.login.totp) && fieldDesignation != null &&\n fieldDesignation.startsWith('TOTP_')) {\n cipher.login.totp = fieldValue;\n return;\n }\n } else if (cipher.type === CipherType.Card) {\n if (this.isNullOrWhitespace(cipher.card.number) && fieldDesignation === 'ccnum') {\n cipher.card.number = fieldValue;\n cipher.card.brand = this.getCardBrand(fieldValue);\n return;\n } else if (this.isNullOrWhitespace(cipher.card.code) && fieldDesignation === 'cvv') {\n cipher.card.code = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(cipher.card.cardholderName) && fieldDesignation === 'cardholder') {\n cipher.card.cardholderName = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(cipher.card.expiration) && fieldDesignation === 'expiry' &&\n fieldValue.length === 6) {\n cipher.card.expMonth = (fieldValue as string).substr(4, 2);\n if (cipher.card.expMonth[0] === '0') {\n cipher.card.expMonth = cipher.card.expMonth.substr(1, 1);\n }\n cipher.card.expYear = (fieldValue as string).substr(0, 4);\n return;\n } else if (fieldDesignation === 'type') {\n // Skip since brand was determined from number above\n return;\n }\n } else if (cipher.type === CipherType.Identity) {\n const identity = cipher.identity;\n if (this.isNullOrWhitespace(identity.firstName) && fieldDesignation === 'firstname') {\n identity.firstName = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(identity.lastName) && fieldDesignation === 'lastname') {\n identity.lastName = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(identity.middleName) && fieldDesignation === 'initial') {\n identity.middleName = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(identity.phone) && fieldDesignation === 'defphone') {\n identity.phone = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(identity.company) && fieldDesignation === 'company') {\n identity.company = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(identity.email) && fieldDesignation === 'email') {\n identity.email = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(identity.username) && fieldDesignation === 'username') {\n identity.username = fieldValue;\n return;\n } else if (fieldDesignation === 'address') {\n // fieldValue is an object casted into a string, so access the plain value instead\n const { street, city, country, zip } = field[valueKey];\n identity.address1 = this.getValueOrDefault(street);\n identity.city = this.getValueOrDefault(city);\n if (!this.isNullOrWhitespace(country)) {\n identity.country = country.toUpperCase();\n }\n identity.postalCode = this.getValueOrDefault(zip);\n return;\n }\n }\n\n const fieldName = this.isNullOrWhitespace(field[nameKey]) ? 'no_name' : field[nameKey];\n if (fieldName === 'password' && cipher.passwordHistory != null &&\n cipher.passwordHistory.some(h => h.password === fieldValue)) {\n return;\n }\n\n const fieldType = field.k === 'concealed' ? FieldType.Hidden : FieldType.Text;\n this.processKvp(cipher, fieldName, fieldValue, fieldType);\n });\n }\n}\n","import { Importer } from '../importer';\nimport { IgnoredProperties, OnePasswordCsvImporter } from './onepasswordCsvImporter';\n\nimport { CipherType } from '../../enums/cipherType';\nimport { CardView, CipherView, IdentityView } from '../../models/view';\n\nexport class OnePasswordMacCsvImporter extends OnePasswordCsvImporter implements Importer {\n setCipherType(value: any, cipher: CipherView) {\n const onePassType = this.getValueOrDefault(this.getProp(value, 'type'), 'Login');\n switch (onePassType) {\n case 'Credit Card':\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n IgnoredProperties.push('type');\n break;\n case 'Identity':\n cipher.type = CipherType.Identity;\n cipher.identity = new IdentityView();\n IgnoredProperties.push('type');\n break;\n case 'Login':\n case 'Secure Note':\n IgnoredProperties.push('type');\n default:\n break;\n }\n }\n}\n","import { CipherView } from '../../models/view';\n\nexport class CipherImportContext {\n lowerProperty: string;\n constructor(public importRecord: any, public property: string, public cipher: CipherView) {\n this.lowerProperty = property.toLowerCase();\n }\n}\n","export class View {\n}\n","import { Importer } from '../importer';\nimport { CipherImportContext } from './cipherImportContext';\nimport { OnePasswordCsvImporter } from './onepasswordCsvImporter';\n\nimport { CipherType } from '../../enums/cipherType';\nimport { CardView, CipherView, IdentityView, LoginView } from '../../models/view';\n\nexport class OnePasswordWinCsvImporter extends OnePasswordCsvImporter implements Importer {\n constructor() {\n super();\n this.identityPropertyParsers.push(this.setIdentityAddress);\n }\n\n setCipherType(value: any, cipher: CipherView) {\n cipher.type = CipherType.Login;\n cipher.login = new LoginView();\n\n if (!this.isNullOrWhitespace(this.getPropByRegexp(value, /\\d+: number/i)) &&\n !this.isNullOrWhitespace(this.getPropByRegexp(value, /\\d+: expiry date/i))) {\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n }\n\n if (!this.isNullOrWhitespace(this.getPropByRegexp(value, /name \\d+: first name/i)) ||\n !this.isNullOrWhitespace(this.getPropByRegexp(value, /name \\d+: initial/i)) ||\n !this.isNullOrWhitespace(this.getPropByRegexp(value, /name \\d+: last name/i)) ||\n !this.isNullOrWhitespace(this.getPropByRegexp(value, /internet \\d+: email/i))) {\n cipher.type = CipherType.Identity;\n cipher.identity = new IdentityView();\n }\n }\n\n setIdentityAddress(context: CipherImportContext) {\n if (context.lowerProperty.match(/address \\d+: address/i)) {\n this.processKvp(context.cipher, 'address', context.importRecord[context.property]);\n return true;\n }\n return false;\n }\n\n setCreditCardExpiry(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.card.expiration) && context.lowerProperty.includes('expiry date')) {\n const expSplit = (context.importRecord[context.property] as string).split('/');\n context.cipher.card.expMonth = expSplit[0];\n if (context.cipher.card.expMonth[0] === '0' && context.cipher.card.expMonth.length === 2) {\n context.cipher.card.expMonth = context.cipher.card.expMonth.substr(1, 1);\n }\n context.cipher.card.expYear = expSplit[2].length > 4 ? expSplit[2].substr(0, 4) : expSplit[2];\n return true;\n }\n return false;\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CollectionView } from '../models/view/collectionView';\nimport { FolderView } from '../models/view/folderView';\n\nexport class PadlockCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n let headers: string[] = null;\n results.forEach(value => {\n if (headers == null) {\n headers = value.map((v: string) => v);\n return;\n }\n\n if (value.length < 2 || value.length !== headers.length) {\n return;\n }\n\n if (!this.isNullOrWhitespace(value[1])) {\n if (this.organization) {\n const tags = (value[1] as string).split(',');\n tags.forEach(tag => {\n tag = tag.trim();\n let addCollection = true;\n let collectionIndex = result.collections.length;\n\n for (let i = 0; i < result.collections.length; i++) {\n if (result.collections[i].name === tag) {\n addCollection = false;\n collectionIndex = i;\n break;\n }\n }\n\n if (addCollection) {\n const collection = new CollectionView();\n collection.name = tag;\n result.collections.push(collection);\n }\n\n result.collectionRelationships.push([result.ciphers.length, collectionIndex]);\n });\n } else {\n const tags = (value[1] as string).split(',');\n const tag = tags.length > 0 ? tags[0].trim() : null;\n this.processFolder(result, tag);\n }\n }\n\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value[0], '--');\n\n for (let i = 2; i < value.length; i++) {\n const header = headers[i].trim().toLowerCase();\n if (this.isNullOrWhitespace(value[i]) || this.isNullOrWhitespace(header)) {\n continue;\n }\n\n if (this.usernameFieldNames.indexOf(header) > -1) {\n cipher.login.username = value[i];\n } else if (this.passwordFieldNames.indexOf(header) > -1) {\n cipher.login.password = value[i];\n } else if (this.uriFieldNames.indexOf(header) > -1) {\n cipher.login.uris = this.makeUriArray(value[i]);\n } else {\n this.processKvp(cipher, headers[i], value[i]);\n }\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class PassKeepCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n this.processFolder(result, this.getValue('category', value));\n const cipher = this.initLoginCipher();\n cipher.notes = this.getValue('description', value);\n cipher.name = this.getValueOrDefault(this.getValue('title', value), '--');\n cipher.login.username = this.getValue('username', value);\n cipher.login.password = this.getValue('password', value);\n cipher.login.uris = this.makeUriArray(this.getValue('site', value));\n this.processKvp(cipher, 'Password 2', this.getValue('password2', value));\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n private getValue(key: string, value: any) {\n return this.getValueOrDefault(value[key], this.getValueOrDefault(value[(' ' + key)]));\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class PassmanJsonImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = JSON.parse(data);\n if (results == null || results.length === 0) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach((credential: any) => {\n if (credential.tags != null && credential.tags.length > 0) {\n const folderName = credential.tags[0].text;\n this.processFolder(result, folderName);\n }\n\n const cipher = this.initLoginCipher();\n cipher.name = credential.label;\n\n cipher.login.username = this.getValueOrDefault(credential.username);\n if (this.isNullOrWhitespace(cipher.login.username)) {\n cipher.login.username = this.getValueOrDefault(credential.email);\n } else if (!this.isNullOrWhitespace(credential.email)) {\n cipher.notes = ('Email: ' + credential.email + '\\n');\n }\n\n cipher.login.password = this.getValueOrDefault(credential.password);\n cipher.login.uris = this.makeUriArray(credential.url);\n cipher.notes += this.getValueOrDefault(credential.description, '');\n if (credential.otp != null) {\n cipher.login.totp = this.getValueOrDefault(credential.otp.secret);\n }\n\n if (credential.custom_fields != null) {\n credential.custom_fields.forEach((customField: any) => {\n switch (customField.field_type) {\n case 'text':\n case 'password':\n this.processKvp(cipher, customField.label, customField.value);\n break;\n }\n });\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CollectionView } from '../models/view/collectionView';\n\nexport class PasspackCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const tagsJson = !this.isNullOrWhitespace(value.Tags) ? JSON.parse(value.Tags) : null;\n const tags: string[] = tagsJson != null && tagsJson.tags != null && tagsJson.tags.length > 0 ?\n tagsJson.tags.map((tagJson: string) => {\n try {\n const t = JSON.parse(tagJson);\n return this.getValueOrDefault(t.tag);\n } catch { }\n return null;\n }).filter((t: string) => !this.isNullOrWhitespace(t)) : null;\n\n if (this.organization && tags != null && tags.length > 0) {\n tags.forEach(tag => {\n let addCollection = true;\n let collectionIndex = result.collections.length;\n\n for (let i = 0; i < result.collections.length; i++) {\n if (result.collections[i].name === tag) {\n addCollection = false;\n collectionIndex = i;\n break;\n }\n }\n\n if (addCollection) {\n const collection = new CollectionView();\n collection.name = tag;\n result.collections.push(collection);\n }\n\n result.collectionRelationships.push([result.ciphers.length, collectionIndex]);\n });\n } else if (!this.organization && tags != null && tags.length > 0) {\n this.processFolder(result, tags[0]);\n }\n\n const cipher = this.initLoginCipher();\n cipher.notes = this.getValueOrDefault(value.Notes, '');\n cipher.notes += ('\\n\\n' + this.getValueOrDefault(value['Shared Notes'], '') + '\\n');\n cipher.name = this.getValueOrDefault(value['Entry Name'], '--');\n cipher.login.username = this.getValueOrDefault(value['User ID']);\n cipher.login.password = this.getValueOrDefault(value.Password);\n cipher.login.uris = this.makeUriArray(value.URL);\n\n if (value.__parsed_extra != null && value.__parsed_extra.length > 0) {\n value.__parsed_extra.forEach((extra: string) => {\n if (!this.isNullOrWhitespace(extra)) {\n cipher.notes += ('\\n' + extra);\n }\n });\n }\n\n const fieldsJson = !this.isNullOrWhitespace(value['Extra Fields']) ?\n JSON.parse(value['Extra Fields']) : null;\n const fields = fieldsJson != null && fieldsJson.extraFields != null &&\n fieldsJson.extraFields.length > 0 ? fieldsJson.extraFields.map((fieldJson: string) => {\n try {\n return JSON.parse(fieldJson);\n } catch { }\n return null;\n }) : null;\n if (fields != null) {\n fields.forEach((f: any) => {\n if (f != null) {\n this.processKvp(cipher, f.name, f.data);\n }\n });\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class PasswordAgentCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n let newVersion = true;\n results.forEach(value => {\n if (value.length !== 5 && value.length < 9) {\n return;\n }\n const altFormat = value.length === 10 && value[0] === '0';\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value[altFormat ? 1 : 0], '--');\n cipher.login.username = this.getValueOrDefault(value[altFormat ? 2 : 1]);\n cipher.login.password = this.getValueOrDefault(value[altFormat ? 3 : 2]);\n if (value.length === 5) {\n newVersion = false;\n cipher.notes = this.getValueOrDefault(value[4]);\n cipher.login.uris = this.makeUriArray(value[3]);\n } else {\n const folder = this.getValueOrDefault(value[altFormat ? 9 : 8], '(None)');\n let folderName = folder !== '(None)' ? folder.split('\\\\').join('/') : null;\n if (folderName != null) {\n folderName = folder.split(' > ').join('/');\n folderName = folder.split('>').join('/');\n }\n this.processFolder(result, folderName);\n cipher.notes = this.getValueOrDefault(value[altFormat ? 5 : 3]);\n cipher.login.uris = this.makeUriArray(value[4]);\n }\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (newVersion && this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CardView } from '../models/view/cardView';\nimport { FolderView } from '../models/view/folderView';\n\nimport { CipherType } from '../enums/cipherType';\n\nexport class PasswordBossJsonImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = JSON.parse(data);\n if (results == null || results.items == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n const foldersMap = new Map();\n results.folders.forEach((value: any) => {\n foldersMap.set(value.id, value.name);\n });\n const foldersIndexMap = new Map();\n foldersMap.forEach((val, key) => {\n foldersIndexMap.set(key, result.folders.length);\n const f = new FolderView();\n f.name = val;\n result.folders.push(f);\n });\n\n results.items.forEach((value: any) => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.name, '--');\n cipher.login.uris = this.makeUriArray(value.login_url);\n\n if (value.folder != null && foldersIndexMap.has(value.folder)) {\n result.folderRelationships.push([result.ciphers.length, foldersIndexMap.get(value.folder)]);\n }\n\n if (value.identifiers == null) {\n return;\n }\n\n if (!this.isNullOrWhitespace(value.identifiers.notes)) {\n cipher.notes = value.identifiers.notes.split('\\\\r\\\\n').join('\\n').split('\\\\n').join('\\n');\n }\n\n if (value.type === 'CreditCard') {\n cipher.card = new CardView();\n cipher.type = CipherType.Card;\n }\n\n for (const property in value.identifiers) {\n if (!value.identifiers.hasOwnProperty(property)) {\n continue;\n }\n const valObj = value.identifiers[property];\n const val = valObj != null ? valObj.toString() : null;\n if (this.isNullOrWhitespace(val) || property === 'notes' || property === 'ignoreItemInSecurityScore') {\n continue;\n }\n\n if (property === 'custom_fields') {\n valObj.forEach((cf: any) => {\n this.processKvp(cipher, cf.name, cf.value);\n });\n continue;\n }\n\n if (cipher.type === CipherType.Card) {\n if (property === 'cardNumber') {\n cipher.card.number = val;\n cipher.card.brand = this.getCardBrand(val);\n continue;\n } else if (property === 'nameOnCard') {\n cipher.card.cardholderName = val;\n continue;\n } else if (property === 'security_code') {\n cipher.card.code = val;\n continue;\n } else if (property === 'expires') {\n try {\n const expDate = new Date(val);\n cipher.card.expYear = expDate.getFullYear().toString();\n cipher.card.expMonth = (expDate.getMonth() + 1).toString();\n } catch { }\n continue;\n } else if (property === 'cardType') {\n continue;\n }\n } else {\n if ((property === 'username' || property === 'email') &&\n this.isNullOrWhitespace(cipher.login.username)) {\n cipher.login.username = val;\n continue;\n } else if (property === 'password') {\n cipher.login.password = val;\n continue;\n } else if (property === 'totp') {\n cipher.login.totp = val;\n continue;\n } else if ((cipher.login.uris == null || cipher.login.uris.length === 0) &&\n this.uriFieldNames.indexOf(property) > -1) {\n cipher.login.uris = this.makeUriArray(val);\n continue;\n }\n }\n\n this.processKvp(cipher, property, val);\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class PasswordDragonXmlImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const doc = this.parseXml(data);\n if (doc == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n const records = doc.querySelectorAll('PasswordManager > record');\n Array.from(records).forEach(record => {\n const category = this.querySelectorDirectChild(record, 'Category');\n const categoryText = category != null && !this.isNullOrWhitespace(category.textContent) &&\n category.textContent !== 'Unfiled' ? category.textContent : null;\n this.processFolder(result, categoryText);\n\n const accountName = this.querySelectorDirectChild(record, 'Account-Name');\n const userId = this.querySelectorDirectChild(record, 'User-Id');\n const password = this.querySelectorDirectChild(record, 'Password');\n const url = this.querySelectorDirectChild(record, 'URL');\n const notes = this.querySelectorDirectChild(record, 'Notes');\n const cipher = this.initLoginCipher();\n cipher.name = accountName != null ? this.getValueOrDefault(accountName.textContent, '--') : '--';\n cipher.notes = notes != null ? this.getValueOrDefault(notes.textContent) : '';\n cipher.login.username = userId != null ? this.getValueOrDefault(userId.textContent) : null;\n cipher.login.password = password != null ? this.getValueOrDefault(password.textContent) : null;\n cipher.login.uris = url != null ? this.makeUriArray(url.textContent) : null;\n\n const attributes: string[] = [];\n for (let i = 1; i <= 10; i++) {\n attributes.push('Attribute-' + i);\n }\n\n this.querySelectorAllDirectChild(record, attributes.join(',')).forEach(attr => {\n if (this.isNullOrWhitespace(attr.textContent) || attr.textContent === 'null') {\n return;\n }\n this.processKvp(cipher, attr.tagName, attr.textContent);\n });\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class PasswordSafeXmlImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const doc = this.parseXml(data);\n if (doc == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n const passwordSafe = doc.querySelector('passwordsafe');\n if (passwordSafe == null) {\n result.errorMessage = 'Missing `passwordsafe` node.';\n result.success = false;\n return Promise.resolve(result);\n }\n\n const notesDelimiter = passwordSafe.getAttribute('delimiter');\n const entries = doc.querySelectorAll('passwordsafe > entry');\n Array.from(entries).forEach(entry => {\n const group = this.querySelectorDirectChild(entry, 'group');\n const groupText = group != null && !this.isNullOrWhitespace(group.textContent) ?\n group.textContent.split('.').join('/') : null;\n this.processFolder(result, groupText);\n\n const title = this.querySelectorDirectChild(entry, 'title');\n const username = this.querySelectorDirectChild(entry, 'username');\n const email = this.querySelectorDirectChild(entry, 'email');\n const password = this.querySelectorDirectChild(entry, 'password');\n const url = this.querySelectorDirectChild(entry, 'url');\n const notes = this.querySelectorDirectChild(entry, 'notes');\n const cipher = this.initLoginCipher();\n cipher.name = title != null ? this.getValueOrDefault(title.textContent, '--') : '--';\n cipher.notes = notes != null ?\n this.getValueOrDefault(notes.textContent, '').split(notesDelimiter).join('\\n') : null;\n cipher.login.username = username != null ? this.getValueOrDefault(username.textContent) : null;\n cipher.login.password = password != null ? this.getValueOrDefault(password.textContent) : null;\n cipher.login.uris = url != null ? this.makeUriArray(url.textContent) : null;\n\n if (this.isNullOrWhitespace(cipher.login.username) && email != null) {\n cipher.login.username = this.getValueOrDefault(email.textContent);\n } else if (email != null && !this.isNullOrWhitespace(email.textContent)) {\n cipher.notes = this.isNullOrWhitespace(cipher.notes) ? 'Email: ' + email.textContent\n : (cipher.notes + '\\n' + 'Email: ' + email.textContent);\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class PasswordWalletTxtImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.length < 1) {\n return;\n }\n if (value.length > 5) {\n this.processFolder(result, value[5]);\n }\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value[0], '--');\n if (value.length > 4) {\n cipher.notes = this.getValueOrDefault(value[4], '').split('¬').join('\\n');\n }\n if (value.length > 2) {\n cipher.login.username = this.getValueOrDefault(value[2]);\n }\n if (value.length > 3) {\n cipher.login.password = this.getValueOrDefault(value[3]);\n }\n if (value.length > 1) {\n cipher.login.uris = this.makeUriArray(value[1]);\n }\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { CipherType } from '../enums/cipherType';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CardView } from '../models/view/cardView';\n\nexport class RememBearCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.trash === 'true') {\n return;\n }\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.name);\n cipher.notes = this.getValueOrDefault(value.notes);\n if (value.type === 'LoginItem') {\n cipher.login.uris = this.makeUriArray(value.website);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.username = this.getValueOrDefault(value.username);\n } else if (value.type === 'CreditCardItem') {\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n cipher.card.cardholderName = this.getValueOrDefault(value.cardholder);\n cipher.card.number = this.getValueOrDefault(value.number);\n cipher.card.brand = this.getCardBrand(cipher.card.number);\n cipher.card.code = this.getValueOrDefault(value.verification);\n\n try {\n const expMonth = this.getValueOrDefault(value.expiryMonth);\n if (expMonth != null) {\n const expMonthNumber = parseInt(expMonth, null);\n if (expMonthNumber != null && expMonthNumber >= 1 && expMonthNumber <= 12) {\n cipher.card.expMonth = expMonthNumber.toString();\n }\n }\n } catch { }\n try {\n const expYear = this.getValueOrDefault(value.expiryYear);\n if (expYear != null) {\n const expYearNumber = parseInt(expYear, null);\n if (expYearNumber != null) {\n cipher.card.expYear = expYearNumber.toString();\n }\n }\n } catch { }\n\n const pin = this.getValueOrDefault(value.pin);\n if (pin != null) {\n this.processKvp(cipher, 'PIN', pin);\n }\n const zip = this.getValueOrDefault(value.zipCode);\n if (zip != null) {\n this.processKvp(cipher, 'Zip Code', zip);\n }\n }\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class RoboFormCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n let i = 1;\n results.forEach(value => {\n const folder = !this.isNullOrWhitespace(value.Folder) && value.Folder.startsWith('/') ?\n value.Folder.replace('/', '') : value.Folder;\n const folderName = !this.isNullOrWhitespace(folder) ? folder : null;\n this.processFolder(result, folderName);\n\n const cipher = this.initLoginCipher();\n cipher.notes = this.getValueOrDefault(value.Note);\n cipher.name = this.getValueOrDefault(value.Name, '--');\n cipher.login.username = this.getValueOrDefault(value.Login);\n cipher.login.password = this.getValueOrDefault(value.Pwd);\n cipher.login.uris = this.makeUriArray(value.Url);\n\n if (!this.isNullOrWhitespace(value.Rf_fields)) {\n let fields: string[] = [value.Rf_fields];\n if (value.__parsed_extra != null && value.__parsed_extra.length > 0) {\n fields = fields.concat(value.__parsed_extra);\n }\n fields.forEach((field: string) => {\n const parts = field.split(':');\n if (parts.length < 3) {\n return;\n }\n const key = parts[0] === '-no-name-' ? null : parts[0];\n const val = parts.length === 4 && parts[2] === 'rck' ? parts[1] : parts[2];\n this.processKvp(cipher, key, val);\n });\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n\n if (i === results.length && cipher.name === '--' && this.isNullOrWhitespace(cipher.login.password)) {\n return;\n }\n\n result.ciphers.push(cipher);\n i++;\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { FolderView } from '../models/view/folderView';\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nimport { CipherType } from '../enums/cipherType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nimport { FieldType } from '../enums';\nimport { CipherView, FieldView } from '../models/view';\n\nexport class SafeInCloudXmlImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const doc = this.parseXml(data);\n if (doc == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n const db = doc.querySelector('database');\n if (db == null) {\n result.errorMessage = 'Missing `database` node.';\n result.success = false;\n return Promise.resolve(result);\n }\n\n const foldersMap = new Map();\n\n Array.from(doc.querySelectorAll('database > label')).forEach(labelEl => {\n const name = labelEl.getAttribute('name');\n const id = labelEl.getAttribute('id');\n if (!this.isNullOrWhitespace(name) && !this.isNullOrWhitespace(id)) {\n foldersMap.set(id, result.folders.length);\n const folder = new FolderView();\n folder.name = name;\n result.folders.push(folder);\n }\n });\n\n Array.from(doc.querySelectorAll('database > card')).forEach(cardEl => {\n if (cardEl.getAttribute('template') === 'true' || cardEl.getAttribute('deleted') === 'true') {\n return;\n }\n\n const labelIdEl = this.querySelectorDirectChild(cardEl, 'label_id');\n if (labelIdEl != null) {\n const labelId = labelIdEl.textContent;\n if (!this.isNullOrWhitespace(labelId) && foldersMap.has(labelId)) {\n result.folderRelationships.push([result.ciphers.length, foldersMap.get(labelId)]);\n }\n }\n\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(cardEl.getAttribute('title'), '--');\n\n if (cardEl.getAttribute('star') === 'true') {\n cipher.favorite = true;\n }\n\n const cardType = cardEl.getAttribute('type');\n if (cardType === 'note') {\n cipher.type = CipherType.SecureNote;\n cipher.secureNote = new SecureNoteView();\n cipher.secureNote.type = SecureNoteType.Generic;\n } else {\n Array.from(this.querySelectorAllDirectChild(cardEl, 'field')).forEach(fieldEl => {\n const text = fieldEl.textContent;\n if (this.isNullOrWhitespace(text)) {\n return;\n }\n const name = fieldEl.getAttribute('name');\n const fieldType = this.getValueOrDefault(fieldEl.getAttribute('type'), '').toLowerCase();\n if (fieldType === 'login') {\n cipher.login.username = text;\n } else if (fieldType === 'password' || fieldType === 'secret') {\n // safeInCloud allows for more than one password. we just insert them here and find the one used as password later\n this.processKvp(cipher, name, text, FieldType.Hidden);\n } else if (fieldType === 'one_time_password') {\n cipher.login.totp = text;\n } else if (fieldType === 'notes') {\n cipher.notes += (text + '\\n');\n } else if (fieldType === 'weblogin' || fieldType === 'website') {\n cipher.login.uris = this.makeUriArray(text);\n }\n else {\n this.processKvp(cipher, name, text);\n }\n });\n }\n\n Array.from(this.querySelectorAllDirectChild(cardEl, 'notes')).forEach(notesEl => {\n cipher.notes += (notesEl.textContent + '\\n');\n });\n\n this.setPassword(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n // Choose a password from all passwords. Take one that has password in its name, or the first one if there is no such entry\n // if its name is password, we can safely remove it form the fields. otherwise, it would maybe be best to keep it as a hidden field\n setPassword(cipher: CipherView) {\n const candidates = cipher.fields.filter(field => field.type === FieldType.Hidden);\n if (!candidates.length) {\n return;\n }\n\n let choice: FieldView;\n for (const field of candidates) {\n if (this.passwordFieldNames.includes(field.name.toLowerCase())) {\n choice = field;\n cipher.fields = cipher.fields.filter(f => f !== choice);\n break;\n }\n }\n\n if (!choice) {\n choice = candidates[0];\n }\n\n cipher.login.password = choice.value;\n }\n}\n","export { CipherType } from './cipherType';\nexport { DeviceType } from './deviceType';\nexport { EncryptionType } from './encryptionType';\nexport { FieldType } from './fieldType';\nexport { LogLevelType } from './logLevelType';\nexport { SecureNoteType } from './secureNoteType';\nexport { TwoFactorProviderType } from './twoFactorProviderType';\nexport { UriMatchType } from './uriMatchType';\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class SaferPassCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(this.nameFromUrl(value.url), '--');\n cipher.notes = this.getValueOrDefault(value.notes);\n cipher.login.username = this.getValueOrDefault(value.username);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.uris = this.makeUriArray(value.url);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class SecureSafeCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.Title);\n cipher.notes = this.getValueOrDefault(value.Comment);\n cipher.login.uris = this.makeUriArray(value.Url);\n cipher.login.password = this.getValueOrDefault(value.Password);\n cipher.login.username = this.getValueOrDefault(value.Username);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\nimport { CipherView } from '../models/view/cipherView';\n\nexport class SplashIdCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.length < 3) {\n return;\n }\n\n this.processFolder(result, this.getValueOrDefault(value[value.length - 1]));\n const cipher = this.initLoginCipher();\n cipher.notes = this.getValueOrDefault(value[value.length - 2], '');\n cipher.name = this.getValueOrDefault(value[1], '--');\n\n if (value[0] === 'Web Logins' || value[0] === 'Servers' || value[0] === 'Email Accounts') {\n cipher.login.username = this.getValueOrDefault(value[2]);\n cipher.login.password = this.getValueOrDefault(value[3]);\n cipher.login.uris = this.makeUriArray(value[4]);\n this.parseFieldsToNotes(cipher, 5, value);\n } else {\n this.parseFieldsToNotes(cipher, 2, value);\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n private parseFieldsToNotes(cipher: CipherView, startIndex: number, value: any) {\n // last 3 rows do not get parsed\n for (let i = startIndex; i < value.length - 3; i++) {\n if (this.isNullOrWhitespace(value[i])) {\n continue;\n }\n cipher.notes += (value[i] + '\\n');\n }\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class StickyPasswordXmlImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const doc = this.parseXml(data);\n if (doc == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n const loginNodes = doc.querySelectorAll('root > Database > Logins > Login');\n Array.from(loginNodes).forEach(loginNode => {\n const accountId = loginNode.getAttribute('ID');\n if (this.isNullOrWhitespace(accountId)) {\n return;\n }\n\n const usernameText = loginNode.getAttribute('Name');\n const passwordText = loginNode.getAttribute('Password');\n let titleText: string = null;\n let linkText: string = null;\n let notesText: string = null;\n let groupId: string = null;\n let groupText: string = null;\n\n const accountLogin = doc.querySelector('root > Database > Accounts > Account > ' +\n 'LoginLinks > Login[SourceLoginID=\"' + accountId + '\"]');\n if (accountLogin != null) {\n const account = accountLogin.parentElement.parentElement;\n if (account != null) {\n titleText = account.getAttribute('Name');\n linkText = account.getAttribute('Link');\n groupId = account.getAttribute('ParentID');\n notesText = account.getAttribute('Comments');\n if (!this.isNullOrWhitespace(notesText)) {\n notesText = notesText.split('/n').join('\\n');\n }\n }\n }\n\n if (!this.isNullOrWhitespace(groupId)) {\n groupText = this.buildGroupText(doc, groupId, '');\n this.processFolder(result, groupText);\n }\n\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(titleText, '--');\n cipher.notes = this.getValueOrDefault(notesText);\n cipher.login.username = this.getValueOrDefault(usernameText);\n cipher.login.password = this.getValueOrDefault(passwordText);\n cipher.login.uris = this.makeUriArray(linkText);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n buildGroupText(doc: Document, groupId: string, groupText: string): string {\n const group = doc.querySelector('root > Database > Groups > Group[ID=\"' + groupId + '\"]');\n if (group == null) {\n return groupText;\n }\n if (!this.isNullOrWhitespace(groupText)) {\n groupText = '/' + groupText;\n }\n groupText = group.getAttribute('Name') + groupText;\n return this.buildGroupText(doc, group.getAttribute('ParentID'), groupText);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CardView } from '../models/view/cardView';\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nimport { CipherType } from '../enums/cipherType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nconst PropertiesToIgnore = ['kind', 'autologin', 'favorite', 'hexcolor', 'protectedwithpassword', 'subdomainonly',\n 'type', 'tk_export_version', 'note', 'title', 'document_content',\n];\n\nexport class TrueKeyCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.favorite = this.getValueOrDefault(value.favorite, '').toLowerCase() === 'true';\n cipher.name = this.getValueOrDefault(value.name, '--');\n cipher.notes = this.getValueOrDefault(value.memo, '');\n cipher.login.username = this.getValueOrDefault(value.login);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.uris = this.makeUriArray(value.url);\n\n if (value.kind !== 'login') {\n cipher.name = this.getValueOrDefault(value.title, '--');\n cipher.notes = this.getValueOrDefault(value.note, '');\n }\n\n if (value.kind === 'cc') {\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n cipher.card.cardholderName = this.getValueOrDefault(value.cardholder);\n cipher.card.number = this.getValueOrDefault(value.number);\n cipher.card.brand = this.getCardBrand(cipher.card.number);\n if (!this.isNullOrWhitespace(value.expiryDate)) {\n try {\n const expDate = new Date(value.expiryDate);\n cipher.card.expYear = expDate.getFullYear().toString();\n cipher.card.expMonth = (expDate.getMonth() + 1).toString();\n } catch { }\n }\n } else if (value.kind !== 'login') {\n cipher.type = CipherType.SecureNote;\n cipher.secureNote = new SecureNoteView();\n cipher.secureNote.type = SecureNoteType.Generic;\n if (!this.isNullOrWhitespace(cipher.notes)) {\n cipher.notes = this.getValueOrDefault(value.document_content, '');\n }\n for (const property in value) {\n if (value.hasOwnProperty(property) && PropertiesToIgnore.indexOf(property.toLowerCase()) < 0 &&\n !this.isNullOrWhitespace(value[property])) {\n this.processKvp(cipher, property, value[property]);\n }\n }\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class UpmCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.length !== 5) {\n return;\n }\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value[0], '--');\n cipher.notes = this.getValueOrDefault(value[4]);\n cipher.login.username = this.getValueOrDefault(value[1]);\n cipher.login.password = this.getValueOrDefault(value[2]);\n cipher.login.uris = this.makeUriArray(value[3]);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class YotiCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.Name, '--');\n cipher.login.username = this.getValueOrDefault(value['User name']);\n cipher.login.password = this.getValueOrDefault(value.Password);\n cipher.login.uris = this.makeUriArray(value.URL);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\nimport { CipherView } from '../models/view';\n\nexport class ZohoVaultCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (this.isNullOrWhitespace(value['Password Name']) && this.isNullOrWhitespace(value['Secret Name'])) {\n return;\n }\n this.processFolder(result, this.getValueOrDefault(value.ChamberName));\n const cipher = this.initLoginCipher();\n cipher.favorite = this.getValueOrDefault(value.Favorite, '0') === '1';\n cipher.notes = this.getValueOrDefault(value.Notes);\n cipher.name = this.getValueOrDefault(\n value['Password Name'], this.getValueOrDefault(value['Secret Name'], '--'));\n cipher.login.uris = this.makeUriArray(\n this.getValueOrDefault(value['Password URL'], this.getValueOrDefault(value['Secret URL'])));\n this.parseData(cipher, value.SecretData);\n this.parseData(cipher, value.CustomData);\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n private parseData(cipher: CipherView, data: string) {\n if (this.isNullOrWhitespace(data)) {\n return;\n }\n const dataLines = this.splitNewLine(data);\n dataLines.forEach(line => {\n const delimPosition = line.indexOf(':');\n if (delimPosition < 0) {\n return;\n }\n const field = line.substring(0, delimPosition);\n const value = line.length > delimPosition ? line.substring(delimPosition + 1) : null;\n if (this.isNullOrWhitespace(field) || this.isNullOrWhitespace(value) || field === 'SecretType') {\n return;\n }\n const fieldLower = field.toLowerCase();\n if (cipher.login.username == null && this.usernameFieldNames.indexOf(fieldLower) > -1) {\n cipher.login.username = value;\n } else if (cipher.login.password == null && this.passwordFieldNames.indexOf(fieldLower) > -1) {\n cipher.login.password = value;\n } else {\n this.processKvp(cipher, field, value);\n }\n });\n }\n}\n","import * as signalR from '@microsoft/signalr';\nimport * as signalRMsgPack from '@microsoft/signalr-protocol-msgpack';\n\nimport { NotificationType } from '../enums/notificationType';\n\nimport { ApiService } from '../abstractions/api.service';\nimport { AppIdService } from '../abstractions/appId.service';\nimport { EnvironmentService } from '../abstractions/environment.service';\nimport { LogService } from '../abstractions/log.service';\nimport { NotificationsService as NotificationsServiceAbstraction } from '../abstractions/notifications.service';\nimport { SyncService } from '../abstractions/sync.service';\nimport { UserService } from '../abstractions/user.service';\nimport { VaultTimeoutService } from '../abstractions/vaultTimeout.service';\n\nimport {\n NotificationResponse,\n SyncCipherNotification,\n SyncFolderNotification,\n SyncSendNotification,\n} from '../models/response/notificationResponse';\n\nexport class NotificationsService implements NotificationsServiceAbstraction {\n private signalrConnection: signalR.HubConnection;\n private url: string;\n private connected = false;\n private inited = false;\n private inactive = false;\n private reconnectTimer: any = null;\n\n constructor(private userService: UserService, private syncService: SyncService,\n private appIdService: AppIdService, private apiService: ApiService,\n private vaultTimeoutService: VaultTimeoutService,\n private logoutCallback: () => Promise, private logService: LogService) {\n }\n\n async init(environmentService: EnvironmentService): Promise {\n this.inited = false;\n this.url = 'https://notifications.bitwarden.com';\n if (environmentService.notificationsUrl != null) {\n this.url = environmentService.notificationsUrl;\n } else if (environmentService.baseUrl != null) {\n this.url = environmentService.baseUrl + '/notifications';\n }\n\n // Set notifications server URL to `https://-` to effectively disable communication\n // with the notifications server from the client app\n if (this.url === 'https://-') {\n return;\n }\n\n if (this.signalrConnection != null) {\n this.signalrConnection.off('ReceiveMessage');\n this.signalrConnection.off('Heartbeat');\n await this.signalrConnection.stop();\n this.connected = false;\n this.signalrConnection = null;\n }\n\n this.signalrConnection = new signalR.HubConnectionBuilder()\n .withUrl(this.url + '/hub', {\n accessTokenFactory: () => this.apiService.getActiveBearerToken(),\n skipNegotiation: true,\n transport: signalR.HttpTransportType.WebSockets,\n })\n .withHubProtocol(new signalRMsgPack.MessagePackHubProtocol() as signalR.IHubProtocol)\n // .configureLogging(signalR.LogLevel.Trace)\n .build();\n\n this.signalrConnection.on('ReceiveMessage',\n (data: any) => this.processNotification(new NotificationResponse(data)));\n this.signalrConnection.on('Heartbeat',\n (data: any) => { /*console.log('Heartbeat!');*/ });\n this.signalrConnection.onclose(() => {\n this.connected = false;\n this.reconnect(true);\n });\n this.inited = true;\n if (await this.isAuthedAndUnlocked()) {\n await this.reconnect(false);\n }\n }\n\n async updateConnection(sync = false): Promise {\n if (!this.inited) {\n return;\n }\n try {\n if (await this.isAuthedAndUnlocked()) {\n await this.reconnect(sync);\n } else {\n await this.signalrConnection.stop();\n }\n } catch (e) {\n this.logService.error(e.toString());\n }\n }\n\n async reconnectFromActivity(): Promise {\n this.inactive = false;\n if (this.inited && !this.connected) {\n await this.reconnect(true);\n }\n }\n\n async disconnectFromInactivity(): Promise {\n this.inactive = true;\n if (this.inited && this.connected) {\n await this.signalrConnection.stop();\n }\n }\n\n private async processNotification(notification: NotificationResponse) {\n const appId = await this.appIdService.getAppId();\n if (notification == null || notification.contextId === appId) {\n return;\n }\n\n const isAuthenticated = await this.userService.isAuthenticated();\n const payloadUserId = notification.payload.userId || notification.payload.UserId;\n const myUserId = await this.userService.getUserId();\n if (isAuthenticated && payloadUserId != null && payloadUserId !== myUserId) {\n return;\n }\n\n switch (notification.type) {\n case NotificationType.SyncCipherCreate:\n case NotificationType.SyncCipherUpdate:\n await this.syncService.syncUpsertCipher(notification.payload as SyncCipherNotification,\n notification.type === NotificationType.SyncCipherUpdate);\n break;\n case NotificationType.SyncCipherDelete:\n case NotificationType.SyncLoginDelete:\n await this.syncService.syncDeleteCipher(notification.payload as SyncCipherNotification);\n break;\n case NotificationType.SyncFolderCreate:\n case NotificationType.SyncFolderUpdate:\n await this.syncService.syncUpsertFolder(notification.payload as SyncFolderNotification,\n notification.type === NotificationType.SyncFolderUpdate);\n break;\n case NotificationType.SyncFolderDelete:\n await this.syncService.syncDeleteFolder(notification.payload as SyncFolderNotification);\n break;\n case NotificationType.SyncVault:\n case NotificationType.SyncCiphers:\n case NotificationType.SyncSettings:\n if (isAuthenticated) {\n await this.syncService.fullSync(false);\n }\n break;\n case NotificationType.SyncOrgKeys:\n if (isAuthenticated) {\n await this.apiService.refreshIdentityToken();\n await this.syncService.fullSync(true);\n // Stop so a reconnect can be made\n await this.signalrConnection.stop();\n }\n break;\n case NotificationType.LogOut:\n if (isAuthenticated) {\n this.logoutCallback();\n }\n break;\n case NotificationType.SyncSendCreate:\n case NotificationType.SyncSendUpdate:\n await this.syncService.syncUpsertSend(notification.payload as SyncSendNotification,\n notification.type === NotificationType.SyncSendUpdate);\n break;\n case NotificationType.SyncSendDelete:\n await this.syncService.syncDeleteSend(notification.payload as SyncSendNotification);\n default:\n break;\n }\n }\n\n private async reconnect(sync: boolean) {\n if (this.reconnectTimer != null) {\n clearTimeout(this.reconnectTimer);\n this.reconnectTimer = null;\n }\n if (this.connected || !this.inited || this.inactive) {\n return;\n }\n const authedAndUnlocked = await this.isAuthedAndUnlocked();\n if (!authedAndUnlocked) {\n return;\n }\n\n try {\n await this.signalrConnection.start();\n this.connected = true;\n if (sync) {\n await this.syncService.fullSync(false);\n }\n } catch { }\n\n if (!this.connected) {\n this.reconnectTimer = setTimeout(() => this.reconnect(sync), this.random(120000, 300000));\n }\n }\n\n private async isAuthedAndUnlocked() {\n if (await this.userService.isAuthenticated()) {\n const locked = await this.vaultTimeoutService.isLocked();\n return !locked;\n }\n return false;\n }\n\n private random(min: number, max: number) {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { NotificationType } from '../../enums/notificationType';\n\nexport class NotificationResponse extends BaseResponse {\n contextId: string;\n type: NotificationType;\n payload: any;\n\n constructor(response: any) {\n super(response);\n this.contextId = this.getResponseProperty('ContextId');\n this.type = this.getResponseProperty('Type');\n\n const payload = this.getResponseProperty('Payload');\n switch (this.type) {\n case NotificationType.SyncCipherCreate:\n case NotificationType.SyncCipherDelete:\n case NotificationType.SyncCipherUpdate:\n case NotificationType.SyncLoginDelete:\n this.payload = new SyncCipherNotification(payload);\n break;\n case NotificationType.SyncFolderCreate:\n case NotificationType.SyncFolderDelete:\n case NotificationType.SyncFolderUpdate:\n this.payload = new SyncFolderNotification(payload);\n break;\n case NotificationType.SyncVault:\n case NotificationType.SyncCiphers:\n case NotificationType.SyncOrgKeys:\n case NotificationType.SyncSettings:\n case NotificationType.LogOut:\n this.payload = new UserNotification(payload);\n break;\n case NotificationType.SyncSendCreate:\n case NotificationType.SyncSendUpdate:\n case NotificationType.SyncSendDelete:\n this.payload = new SyncSendNotification(payload);\n default:\n break;\n }\n }\n}\n\nexport class SyncCipherNotification extends BaseResponse {\n id: string;\n userId: string;\n organizationId: string;\n collectionIds: string[];\n revisionDate: Date;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.userId = this.getResponseProperty('UserId');\n this.organizationId = this.getResponseProperty('OrganizationId');\n this.collectionIds = this.getResponseProperty('CollectionIds');\n this.revisionDate = new Date(this.getResponseProperty('RevisionDate'));\n }\n}\n\nexport class SyncFolderNotification extends BaseResponse {\n id: string;\n userId: string;\n revisionDate: Date;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.userId = this.getResponseProperty('UserId');\n this.revisionDate = new Date(this.getResponseProperty('RevisionDate'));\n }\n}\n\nexport class UserNotification extends BaseResponse {\n userId: string;\n date: Date;\n\n constructor(response: any) {\n super(response);\n this.userId = this.getResponseProperty('UserId');\n this.date = new Date(this.getResponseProperty('Date'));\n }\n}\n\nexport class SyncSendNotification extends BaseResponse {\n id: string;\n userId: string;\n revisionDate: Date;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.userId = this.getResponseProperty('UserId');\n this.revisionDate = new Date(this.getResponseProperty('RevisionDate'));\n }\n}\n","import { PolicyService as PolicyServiceAbstraction } from '../abstractions/policy.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { UserService } from '../abstractions/user.service';\n\nimport { PolicyData } from '../models/data/policyData';\n\nimport { MasterPasswordPolicyOptions } from '../models/domain/masterPasswordPolicyOptions';\nimport { Policy } from '../models/domain/policy';\n\nimport { PolicyType } from '../enums/policyType';\n\nconst Keys = {\n policiesPrefix: 'policies_',\n};\n\nexport class PolicyService implements PolicyServiceAbstraction {\n policyCache: Policy[];\n\n constructor(private userService: UserService, private storageService: StorageService) {\n }\n\n clearCache(): void {\n this.policyCache = null;\n }\n\n async getAll(type?: PolicyType): Promise {\n if (this.policyCache == null) {\n const userId = await this.userService.getUserId();\n const policies = await this.storageService.get<{ [id: string]: PolicyData; }>(\n Keys.policiesPrefix + userId);\n const response: Policy[] = [];\n for (const id in policies) {\n if (policies.hasOwnProperty(id)) {\n response.push(new Policy(policies[id]));\n }\n }\n this.policyCache = response;\n }\n if (type != null) {\n return this.policyCache.filter(p => p.type === type);\n } else {\n return this.policyCache;\n }\n }\n\n async replace(policies: { [id: string]: PolicyData; }): Promise {\n const userId = await this.userService.getUserId();\n await this.storageService.save(Keys.policiesPrefix + userId, policies);\n this.policyCache = null;\n }\n\n async clear(userId: string): Promise {\n await this.storageService.remove(Keys.policiesPrefix + userId);\n this.policyCache = null;\n }\n\n async getMasterPasswordPolicyOptions(policies?: Policy[]): Promise {\n let enforcedOptions: MasterPasswordPolicyOptions = null;\n\n if (policies == null) {\n policies = await this.getAll(PolicyType.MasterPassword);\n } else {\n policies = policies.filter(p => p.type === PolicyType.MasterPassword);\n }\n\n if (policies == null || policies.length === 0) {\n return enforcedOptions;\n }\n\n policies.forEach(currentPolicy => {\n if (!currentPolicy.enabled || currentPolicy.data == null) {\n return;\n }\n\n if (enforcedOptions == null) {\n enforcedOptions = new MasterPasswordPolicyOptions();\n }\n\n if (currentPolicy.data.minComplexity != null\n && currentPolicy.data.minComplexity > enforcedOptions.minComplexity) {\n enforcedOptions.minComplexity = currentPolicy.data.minComplexity;\n }\n\n if (currentPolicy.data.minLength != null\n && currentPolicy.data.minLength > enforcedOptions.minLength) {\n enforcedOptions.minLength = currentPolicy.data.minLength;\n }\n\n if (currentPolicy.data.requireUpper) {\n enforcedOptions.requireUpper = true;\n }\n\n if (currentPolicy.data.requireLower) {\n enforcedOptions.requireLower = true;\n }\n\n if (currentPolicy.data.requireNumbers) {\n enforcedOptions.requireNumbers = true;\n }\n\n if (currentPolicy.data.requireSpecial) {\n enforcedOptions.requireSpecial = true;\n }\n });\n\n return enforcedOptions;\n }\n\n evaluateMasterPassword(passwordStrength: number, newPassword: string,\n enforcedPolicyOptions: MasterPasswordPolicyOptions): boolean {\n if (enforcedPolicyOptions == null) {\n return true;\n }\n\n if (enforcedPolicyOptions.minComplexity > 0 && enforcedPolicyOptions.minComplexity > passwordStrength) {\n return false;\n }\n\n if (enforcedPolicyOptions.minLength > 0 && enforcedPolicyOptions.minLength > newPassword.length) {\n return false;\n }\n\n if (enforcedPolicyOptions.requireUpper && newPassword.toLocaleLowerCase() === newPassword) {\n return false;\n }\n\n if (enforcedPolicyOptions.requireLower && newPassword.toLocaleUpperCase() === newPassword) {\n return false;\n }\n\n if (enforcedPolicyOptions.requireNumbers && !(/[0-9]/.test(newPassword))) {\n return false;\n }\n\n if (enforcedPolicyOptions.requireSpecial && !(/[!@#$%\\^&*]/g.test(newPassword))) {\n return false;\n }\n\n return true;\n }\n}\n","import Domain from './domainBase';\n\nexport class MasterPasswordPolicyOptions extends Domain {\n minComplexity: number = 0;\n minLength: number = 0;\n requireUpper: boolean = false;\n requireLower: boolean = false;\n requireNumbers: boolean = false;\n requireSpecial: boolean = false;\n}\n","import * as lunr from 'lunr';\n\nimport { CipherView } from '../models/view/cipherView';\n\nimport { CipherService } from '../abstractions/cipher.service';\nimport { I18nService } from '../abstractions/i18n.service';\nimport { LogService } from '../abstractions/log.service';\nimport { SearchService as SearchServiceAbstraction } from '../abstractions/search.service';\n\nimport { CipherType } from '../enums/cipherType';\nimport { FieldType } from '../enums/fieldType';\nimport { UriMatchType } from '../enums/uriMatchType';\nimport { SendView } from '../models/view/sendView';\n\nexport class SearchService implements SearchServiceAbstraction {\n indexedEntityId?: string = null;\n private indexing = false;\n private index: lunr.Index = null;\n private searchableMinLength = 2;\n\n constructor(private cipherService: CipherService, private logService: LogService,\n private i18nService: I18nService) {\n if (['zh-CN', 'zh-TW'].indexOf(i18nService.locale) !== -1) {\n this.searchableMinLength = 1;\n }\n }\n\n clearIndex(): void {\n this.indexedEntityId = null;\n this.index = null;\n }\n\n isSearchable(query: string): boolean {\n const notSearchable = query == null || (this.index == null && query.length < this.searchableMinLength) ||\n (this.index != null && query.length < this.searchableMinLength && query.indexOf('>') !== 0);\n return !notSearchable;\n }\n\n async indexCiphers(indexedEntityId?: string, ciphers?: CipherView[]): Promise {\n if (this.indexing) {\n return;\n }\n\n this.logService.time('search indexing');\n this.indexing = true;\n this.indexedEntityId = indexedEntityId;\n this.index = null;\n const builder = new lunr.Builder();\n builder.ref('id');\n builder.field('shortid', { boost: 100, extractor: (c: CipherView) => c.id.substr(0, 8) });\n builder.field('name', { boost: 10 });\n builder.field('subtitle', {\n boost: 5,\n extractor: (c: CipherView) => {\n if (c.subTitle != null && c.type === CipherType.Card) {\n return c.subTitle.replace(/\\*/g, '');\n }\n return c.subTitle;\n },\n });\n builder.field('notes');\n builder.field('login.username', {\n extractor: (c: CipherView) => c.type === CipherType.Login && c.login != null ? c.login.username : null,\n });\n builder.field('login.uris', { boost: 2, extractor: (c: CipherView) => this.uriExtractor(c) });\n builder.field('fields', { extractor: (c: CipherView) => this.fieldExtractor(c, false) });\n builder.field('fields_joined', { extractor: (c: CipherView) => this.fieldExtractor(c, true) });\n builder.field('attachments', { extractor: (c: CipherView) => this.attachmentExtractor(c, false) });\n builder.field('attachments_joined',\n { extractor: (c: CipherView) => this.attachmentExtractor(c, true) });\n builder.field('organizationid', { extractor: (c: CipherView) => c.organizationId });\n ciphers = ciphers || await this.cipherService.getAllDecrypted();\n ciphers.forEach(c => builder.add(c));\n this.index = builder.build();\n\n this.indexing = false;\n\n this.logService.timeEnd('search indexing');\n }\n\n async searchCiphers(query: string,\n filter: (((cipher: CipherView) => boolean) | (((cipher: CipherView) => boolean)[])) = null,\n ciphers: CipherView[] = null):\n Promise {\n const results: CipherView[] = [];\n if (query != null) {\n query = query.trim().toLowerCase();\n }\n if (query === '') {\n query = null;\n }\n\n if (ciphers == null) {\n ciphers = await this.cipherService.getAllDecrypted();\n }\n\n if (filter != null && Array.isArray(filter) && filter.length > 0) {\n ciphers = ciphers.filter(c => filter.every(f => f == null || f(c)));\n } else if (filter != null) {\n ciphers = ciphers.filter(filter as (cipher: CipherView) => boolean);\n }\n\n if (!this.isSearchable(query)) {\n return ciphers;\n }\n\n if (this.indexing) {\n await new Promise(r => setTimeout(r, 250));\n if (this.indexing) {\n await new Promise(r => setTimeout(r, 500));\n }\n }\n\n const index = this.getIndexForSearch();\n if (index == null) {\n // Fall back to basic search if index is not available\n return this.searchCiphersBasic(ciphers, query);\n }\n\n const ciphersMap = new Map();\n ciphers.forEach(c => ciphersMap.set(c.id, c));\n\n let searchResults: lunr.Index.Result[] = null;\n const isQueryString = query != null && query.length > 1 && query.indexOf('>') === 0;\n if (isQueryString) {\n try {\n searchResults = index.search(query.substr(1).trim());\n } catch { }\n } else {\n // tslint:disable-next-line\n const soWild = lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING;\n searchResults = index.query(q => {\n lunr.tokenizer(query).forEach(token => {\n const t = token.toString();\n q.term(t, { fields: ['name'], wildcard: soWild });\n q.term(t, { fields: ['subtitle'], wildcard: soWild });\n q.term(t, { fields: ['login.uris'], wildcard: soWild });\n q.term(t, {});\n });\n });\n }\n\n if (searchResults != null) {\n searchResults.forEach(r => {\n if (ciphersMap.has(r.ref)) {\n results.push(ciphersMap.get(r.ref));\n }\n });\n }\n return results;\n }\n\n searchCiphersBasic(ciphers: CipherView[], query: string, deleted: boolean = false) {\n query = query.trim().toLowerCase();\n return ciphers.filter(c => {\n if (deleted !== c.isDeleted) {\n return false;\n }\n if (c.name != null && c.name.toLowerCase().indexOf(query) > -1) {\n return true;\n }\n if (query.length >= 8 && c.id.startsWith(query)) {\n return true;\n }\n if (c.subTitle != null && c.subTitle.toLowerCase().indexOf(query) > -1) {\n return true;\n }\n if (c.login && c.login.uri != null && c.login.uri.toLowerCase().indexOf(query) > -1) {\n return true;\n }\n return false;\n });\n }\n\n searchSends(sends: SendView[], query: string) {\n query = query.trim().toLocaleLowerCase();\n\n return sends.filter(s => {\n if (s.name != null && s.name.toLowerCase().indexOf(query) > -1) {\n return true;\n }\n if (query.length >= 8 && (s.id.startsWith(query) || s.accessId.toLocaleLowerCase().startsWith(query) || (s.file?.id != null && s.file.id.startsWith(query)))) {\n return true;\n }\n if (s.notes != null && s.notes.toLowerCase().indexOf(query) > -1) {\n return true;\n }\n if (s.text?.text != null && s.text.text.toLowerCase().indexOf(query) > -1) {\n return true;\n }\n if (s.file?.fileName != null && s.file.fileName.toLowerCase().indexOf(query) > -1) {\n return true;\n }\n });\n }\n\n getIndexForSearch(): lunr.Index {\n return this.index;\n }\n\n private fieldExtractor(c: CipherView, joined: boolean) {\n if (!c.hasFields) {\n return null;\n }\n let fields: string[] = [];\n c.fields.forEach(f => {\n if (f.name != null) {\n fields.push(f.name);\n }\n if (f.type === FieldType.Text && f.value != null) {\n fields.push(f.value);\n }\n });\n fields = fields.filter(f => f.trim() !== '');\n if (fields.length === 0) {\n return null;\n }\n return joined ? fields.join(' ') : fields;\n }\n\n private attachmentExtractor(c: CipherView, joined: boolean) {\n if (!c.hasAttachments) {\n return null;\n }\n let attachments: string[] = [];\n c.attachments.forEach(a => {\n if (a != null && a.fileName != null) {\n if (joined && a.fileName.indexOf('.') > -1) {\n attachments.push(a.fileName.substr(0, a.fileName.lastIndexOf('.')));\n } else {\n attachments.push(a.fileName);\n }\n }\n });\n attachments = attachments.filter(f => f.trim() !== '');\n if (attachments.length === 0) {\n return null;\n }\n return joined ? attachments.join(' ') : attachments;\n }\n\n private uriExtractor(c: CipherView) {\n if (c.type !== CipherType.Login || c.login == null || !c.login.hasUris) {\n return null;\n }\n const uris: string[] = [];\n c.login.uris.forEach(u => {\n if (u.uri == null || u.uri === '') {\n return;\n }\n if (u.hostname != null) {\n uris.push(u.hostname);\n return;\n }\n let uri = u.uri;\n if (u.match !== UriMatchType.RegularExpression) {\n const protocolIndex = uri.indexOf('://');\n if (protocolIndex > -1) {\n uri = uri.substr(protocolIndex + 3);\n }\n const queryIndex = uri.search(/\\?|&|#/);\n if (queryIndex > -1) {\n uri = uri.substring(0, queryIndex);\n }\n }\n uris.push(uri);\n });\n return uris.length > 0 ? uris : null;\n }\n}\n","import { SendData } from '../models/data/sendData';\n\nimport { SendRequest } from '../models/request/sendRequest';\n\nimport { ErrorResponse } from '../models/response/errorResponse';\nimport { SendResponse } from '../models/response/sendResponse';\n\nimport { EncArrayBuffer } from '../models/domain/encArrayBuffer';\nimport { EncString } from '../models/domain/encString';\nimport { Send } from '../models/domain/send';\nimport { SendFile } from '../models/domain/sendFile';\nimport { SendText } from '../models/domain/sendText';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nimport { FileUploadType } from '../enums/fileUploadType';\nimport { SendType } from '../enums/sendType';\n\nimport { SendView } from '../models/view/sendView';\n\nimport { ApiService } from '../abstractions/api.service';\nimport { CryptoService } from '../abstractions/crypto.service';\nimport { CryptoFunctionService } from '../abstractions/cryptoFunction.service';\nimport { FileUploadService } from '../abstractions/fileUpload.service';\nimport { I18nService } from '../abstractions/i18n.service';\nimport { SendService as SendServiceAbstraction } from '../abstractions/send.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { UserService } from '../abstractions/user.service';\n\nimport { Utils } from '../misc/utils';\n\nconst Keys = {\n sendsPrefix: 'sends_',\n};\n\nexport class SendService implements SendServiceAbstraction {\n decryptedSendCache: SendView[];\n\n constructor(private cryptoService: CryptoService, private userService: UserService,\n private apiService: ApiService, private fileUploadService: FileUploadService,\n private storageService: StorageService, private i18nService: I18nService,\n private cryptoFunctionService: CryptoFunctionService) { }\n\n clearCache(): void {\n this.decryptedSendCache = null;\n }\n\n async encrypt(model: SendView, file: File | ArrayBuffer, password: string,\n key?: SymmetricCryptoKey): Promise<[Send, EncArrayBuffer]> {\n let fileData: EncArrayBuffer = null;\n const send = new Send();\n send.id = model.id;\n send.type = model.type;\n send.disabled = model.disabled;\n send.hideEmail = model.hideEmail;\n send.maxAccessCount = model.maxAccessCount;\n if (model.key == null) {\n model.key = await this.cryptoFunctionService.randomBytes(16);\n model.cryptoKey = await this.cryptoService.makeSendKey(model.key);\n }\n if (password != null) {\n const passwordHash = await this.cryptoFunctionService.pbkdf2(password, model.key, 'sha256', 100000);\n send.password = Utils.fromBufferToB64(passwordHash);\n }\n send.key = await this.cryptoService.encrypt(model.key, key);\n send.name = await this.cryptoService.encrypt(model.name, model.cryptoKey);\n send.notes = await this.cryptoService.encrypt(model.notes, model.cryptoKey);\n if (send.type === SendType.Text) {\n send.text = new SendText();\n send.text.text = await this.cryptoService.encrypt(model.text.text, model.cryptoKey);\n send.text.hidden = model.text.hidden;\n } else if (send.type === SendType.File) {\n send.file = new SendFile();\n if (file != null) {\n if (file instanceof ArrayBuffer) {\n const [name, data] = await this.encryptFileData(model.file.fileName, file, model.cryptoKey);\n send.file.fileName = name;\n fileData = data;\n } else {\n fileData = await this.parseFile(send, file, model.cryptoKey);\n }\n }\n }\n\n return [send, fileData];\n }\n\n async get(id: string): Promise {\n const userId = await this.userService.getUserId();\n const sends = await this.storageService.get<{ [id: string]: SendData; }>(\n Keys.sendsPrefix + userId);\n if (sends == null || !sends.hasOwnProperty(id)) {\n return null;\n }\n\n return new Send(sends[id]);\n }\n\n async getAll(): Promise {\n const userId = await this.userService.getUserId();\n const sends = await this.storageService.get<{ [id: string]: SendData; }>(\n Keys.sendsPrefix + userId);\n const response: Send[] = [];\n for (const id in sends) {\n if (sends.hasOwnProperty(id)) {\n response.push(new Send(sends[id]));\n }\n }\n return response;\n }\n\n async getAllDecrypted(): Promise {\n if (this.decryptedSendCache != null) {\n return this.decryptedSendCache;\n }\n\n const hasKey = await this.cryptoService.hasKey();\n if (!hasKey) {\n throw new Error('No key.');\n }\n\n const decSends: SendView[] = [];\n const promises: Promise[] = [];\n const sends = await this.getAll();\n sends.forEach(send => {\n promises.push(send.decrypt().then(f => decSends.push(f)));\n });\n\n await Promise.all(promises);\n decSends.sort(Utils.getSortFunction(this.i18nService, 'name'));\n\n this.decryptedSendCache = decSends;\n return this.decryptedSendCache;\n }\n\n async saveWithServer(sendData: [Send, EncArrayBuffer]): Promise {\n const request = new SendRequest(sendData[0], sendData[1]?.buffer.byteLength);\n let response: SendResponse;\n if (sendData[0].id == null) {\n if (sendData[0].type === SendType.Text) {\n response = await this.apiService.postSend(request);\n } else {\n try {\n const uploadDataResponse = await this.apiService.postFileTypeSend(request);\n response = uploadDataResponse.sendResponse;\n\n await this.fileUploadService.uploadSendFile(uploadDataResponse, sendData[0].file.fileName, sendData[1]);\n } catch (e) {\n if (e instanceof ErrorResponse && (e as ErrorResponse).statusCode === 404) {\n response = await this.legacyServerSendFileUpload(sendData, request);\n } else if (e instanceof ErrorResponse) {\n throw new Error((e as ErrorResponse).getSingleMessage());\n } else {\n throw e;\n }\n }\n }\n sendData[0].id = response.id;\n sendData[0].accessId = response.accessId;\n } else {\n response = await this.apiService.putSend(sendData[0].id, request);\n }\n\n const userId = await this.userService.getUserId();\n const data = new SendData(response, userId);\n await this.upsert(data);\n }\n\n /**\n * @deprecated Mar 25 2021: This method has been deprecated in favor of direct uploads.\n * This method still exists for backward compatibility with old server versions.\n */\n async legacyServerSendFileUpload(sendData: [Send, EncArrayBuffer], request: SendRequest): Promise\n {\n const fd = new FormData();\n try {\n const blob = new Blob([sendData[1].buffer], { type: 'application/octet-stream' });\n fd.append('model', JSON.stringify(request));\n fd.append('data', blob, sendData[0].file.fileName.encryptedString);\n } catch (e) {\n if (Utils.isNode && !Utils.isBrowser) {\n fd.append('model', JSON.stringify(request));\n fd.append('data', Buffer.from(sendData[1].buffer) as any, {\n filepath: sendData[0].file.fileName.encryptedString,\n contentType: 'application/octet-stream',\n } as any);\n } else {\n throw e;\n }\n }\n return await this.apiService.postSendFileLegacy(fd);\n }\n\n async upsert(send: SendData | SendData[]): Promise {\n const userId = await this.userService.getUserId();\n let sends = await this.storageService.get<{ [id: string]: SendData; }>(\n Keys.sendsPrefix + userId);\n if (sends == null) {\n sends = {};\n }\n\n if (send instanceof SendData) {\n const s = send as SendData;\n sends[s.id] = s;\n } else {\n (send as SendData[]).forEach(s => {\n sends[s.id] = s;\n });\n }\n\n await this.storageService.save(Keys.sendsPrefix + userId, sends);\n this.decryptedSendCache = null;\n }\n\n async replace(sends: { [id: string]: SendData; }): Promise {\n const userId = await this.userService.getUserId();\n await this.storageService.save(Keys.sendsPrefix + userId, sends);\n this.decryptedSendCache = null;\n }\n\n async clear(userId: string): Promise {\n await this.storageService.remove(Keys.sendsPrefix + userId);\n this.decryptedSendCache = null;\n }\n\n async delete(id: string | string[]): Promise {\n const userId = await this.userService.getUserId();\n const sends = await this.storageService.get<{ [id: string]: SendData; }>(\n Keys.sendsPrefix + userId);\n if (sends == null) {\n return;\n }\n\n if (typeof id === 'string') {\n if (sends[id] == null) {\n return;\n }\n delete sends[id];\n } else {\n (id as string[]).forEach(i => {\n delete sends[i];\n });\n }\n\n await this.storageService.save(Keys.sendsPrefix + userId, sends);\n this.decryptedSendCache = null;\n }\n\n async deleteWithServer(id: string): Promise {\n await this.apiService.deleteSend(id);\n await this.delete(id);\n }\n\n async removePasswordWithServer(id: string): Promise {\n const response = await this.apiService.putSendRemovePassword(id);\n const userId = await this.userService.getUserId();\n const data = new SendData(response, userId);\n await this.upsert(data);\n }\n\n private parseFile(send: Send, file: File, key: SymmetricCryptoKey): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsArrayBuffer(file);\n reader.onload = async evt => {\n try {\n const [name, data] = await this.encryptFileData(file.name, evt.target.result as ArrayBuffer, key);\n send.file.fileName = name;\n resolve(data);\n } catch (e) {\n reject(e);\n }\n };\n reader.onerror = evt => {\n reject('Error reading file.');\n };\n });\n }\n\n private async encryptFileData(fileName: string, data: ArrayBuffer,\n key: SymmetricCryptoKey): Promise<[EncString, EncArrayBuffer]> {\n const encFileName = await this.cryptoService.encrypt(fileName, key);\n const encFileData = await this.cryptoService.encryptToBytes(data, key);\n return [encFileName, encFileData];\n }\n}\n","import { SendType } from '../../enums/sendType';\n\nimport { SendFileApi } from '../api/sendFileApi';\nimport { SendTextApi } from '../api/sendTextApi';\n\nimport { Send } from '../domain/send';\n\nexport class SendRequest {\n type: SendType;\n fileLength?: number;\n name: string;\n notes: string;\n key: string;\n maxAccessCount?: number;\n expirationDate: string;\n deletionDate: string;\n text: SendTextApi;\n file: SendFileApi;\n password: string;\n disabled: boolean;\n hideEmail: boolean;\n\n constructor(send: Send, fileLength?: number) {\n this.type = send.type;\n this.fileLength = fileLength;\n this.name = send.name ? send.name.encryptedString : null;\n this.notes = send.notes ? send.notes.encryptedString : null;\n this.maxAccessCount = send.maxAccessCount;\n this.expirationDate = send.expirationDate != null ? send.expirationDate.toISOString() : null;\n this.deletionDate = send.deletionDate != null ? send.deletionDate.toISOString() : null;\n this.key = send.key != null ? send.key.encryptedString : null;\n this.password = send.password;\n this.disabled = send.disabled;\n this.hideEmail = send.hideEmail;\n\n switch (this.type) {\n case SendType.Text:\n this.text = new SendTextApi();\n this.text.text = send.text.text != null ? send.text.text.encryptedString : null;\n this.text.hidden = send.text.hidden;\n break;\n case SendType.File:\n this.file = new SendFileApi();\n this.file.fileName = send.file.fileName != null ? send.file.fileName.encryptedString : null;\n break;\n default:\n break;\n }\n }\n}\n","import { CryptoService } from '../../abstractions/crypto.service';\n\nimport { SendType } from '../../enums/sendType';\n\nimport { Utils } from '../../misc/utils';\n\nimport { SendData } from '../data/sendData';\n\nimport { SendView } from '../view/sendView';\n\nimport Domain from './domainBase';\nimport { EncString } from './encString';\nimport { SendFile } from './sendFile';\nimport { SendText } from './sendText';\n\nexport class Send extends Domain {\n id: string;\n accessId: string;\n userId: string;\n type: SendType;\n name: EncString;\n notes: EncString;\n file: SendFile;\n text: SendText;\n key: EncString;\n maxAccessCount?: number;\n accessCount: number;\n revisionDate: Date;\n expirationDate: Date;\n deletionDate: Date;\n password: string;\n disabled: boolean;\n hideEmail: boolean;\n\n constructor(obj?: SendData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.buildDomainModel(this, obj, {\n id: null,\n accessId: null,\n userId: null,\n name: null,\n notes: null,\n key: null,\n }, alreadyEncrypted, ['id', 'accessId', 'userId']);\n\n this.type = obj.type;\n this.maxAccessCount = obj.maxAccessCount;\n this.accessCount = obj.accessCount;\n this.password = obj.password;\n this.disabled = obj.disabled;\n this.revisionDate = obj.revisionDate != null ? new Date(obj.revisionDate) : null;\n this.deletionDate = obj.deletionDate != null ? new Date(obj.deletionDate) : null;\n this.expirationDate = obj.expirationDate != null ? new Date(obj.expirationDate) : null;\n this.hideEmail = obj.hideEmail;\n\n switch (this.type) {\n case SendType.Text:\n this.text = new SendText(obj.text, alreadyEncrypted);\n break;\n case SendType.File:\n this.file = new SendFile(obj.file, alreadyEncrypted);\n break;\n default:\n break;\n }\n }\n\n async decrypt(): Promise {\n const model = new SendView(this);\n\n let cryptoService: CryptoService;\n const containerService = (Utils.global as any).bitwardenContainerService;\n if (containerService) {\n cryptoService = containerService.getCryptoService();\n } else {\n throw new Error('global bitwardenContainerService not initialized.');\n }\n\n try {\n model.key = await cryptoService.decryptToBytes(this.key, null);\n model.cryptoKey = await cryptoService.makeSendKey(model.key);\n } catch (e) {\n // TODO: error?\n }\n\n await this.decryptObj(model, {\n name: null,\n notes: null,\n }, null, model.cryptoKey);\n\n switch (this.type) {\n case SendType.File:\n model.file = await this.file.decrypt(model.cryptoKey);\n break;\n case SendType.Text:\n model.text = await this.text.decrypt(model.cryptoKey);\n break;\n default:\n break;\n }\n\n return model;\n }\n}\n","import * as forge from 'node-forge';\n\nimport { CryptoFunctionService } from '../abstractions/cryptoFunction.service';\nimport { PlatformUtilsService } from '../abstractions/platformUtils.service';\n\nimport { Utils } from '../misc/utils';\n\nimport { DecryptParameters } from '../models/domain/decryptParameters';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nexport class WebCryptoFunctionService implements CryptoFunctionService {\n private crypto: Crypto;\n private subtle: SubtleCrypto;\n private isIE: boolean;\n private isOldSafari: boolean;\n\n constructor(private win: Window, private platformUtilsService: PlatformUtilsService) {\n this.crypto = typeof win.crypto !== 'undefined' ? win.crypto : null;\n this.subtle = (!!this.crypto && typeof win.crypto.subtle !== 'undefined') ? win.crypto.subtle : null;\n this.isIE = platformUtilsService.isIE();\n const ua = win.navigator.userAgent;\n this.isOldSafari = platformUtilsService.isSafari() &&\n (ua.indexOf(' Version/10.') > -1 || ua.indexOf(' Version/9.') > -1);\n }\n\n async pbkdf2(password: string | ArrayBuffer, salt: string | ArrayBuffer, algorithm: 'sha256' | 'sha512',\n iterations: number): Promise {\n if (this.isIE || this.isOldSafari) {\n const forgeLen = algorithm === 'sha256' ? 32 : 64;\n const passwordBytes = this.toByteString(password);\n const saltBytes = this.toByteString(salt);\n const derivedKeyBytes = (forge as any).pbkdf2(passwordBytes, saltBytes, iterations, forgeLen, algorithm);\n return Utils.fromByteStringToArray(derivedKeyBytes).buffer;\n }\n\n const wcLen = algorithm === 'sha256' ? 256 : 512;\n const passwordBuf = this.toBuf(password);\n const saltBuf = this.toBuf(salt);\n\n const pbkdf2Params: Pbkdf2Params = {\n name: 'PBKDF2',\n salt: saltBuf,\n iterations: iterations,\n hash: { name: this.toWebCryptoAlgorithm(algorithm) },\n };\n\n const impKey = await this.subtle.importKey('raw', passwordBuf, { name: 'PBKDF2' } as any,\n false, ['deriveBits']);\n return await this.subtle.deriveBits(pbkdf2Params, impKey, wcLen);\n }\n\n async hkdf(ikm: ArrayBuffer, salt: string | ArrayBuffer, info: string | ArrayBuffer,\n outputByteSize: number, algorithm: 'sha256' | 'sha512'): Promise {\n const saltBuf = this.toBuf(salt);\n const infoBuf = this.toBuf(info);\n\n const hkdfParams: HkdfParams = {\n name: 'HKDF',\n salt: saltBuf,\n info: infoBuf,\n hash: { name: this.toWebCryptoAlgorithm(algorithm) },\n };\n\n const impKey = await this.subtle.importKey('raw', ikm, { name: 'HKDF' } as any,\n false, ['deriveBits']);\n return await this.subtle.deriveBits(hkdfParams as any, impKey, outputByteSize * 8);\n }\n\n // ref: https://tools.ietf.org/html/rfc5869\n async hkdfExpand(prk: ArrayBuffer, info: string | ArrayBuffer, outputByteSize: number,\n algorithm: 'sha256' | 'sha512'): Promise {\n const hashLen = algorithm === 'sha256' ? 32 : 64;\n if (outputByteSize > 255 * hashLen) {\n throw new Error('outputByteSize is too large.');\n }\n const prkArr = new Uint8Array(prk);\n if (prkArr.length < hashLen) {\n throw new Error('prk is too small.');\n }\n const infoBuf = this.toBuf(info);\n const infoArr = new Uint8Array(infoBuf);\n let runningOkmLength = 0;\n let previousT = new Uint8Array(0);\n const n = Math.ceil(outputByteSize / hashLen);\n const okm = new Uint8Array(n * hashLen);\n for (let i = 0; i < n; i++) {\n const t = new Uint8Array(previousT.length + infoArr.length + 1);\n t.set(previousT);\n t.set(infoArr, previousT.length);\n t.set([i + 1], t.length - 1);\n previousT = new Uint8Array(await this.hmac(t.buffer, prk, algorithm));\n okm.set(previousT, runningOkmLength);\n runningOkmLength += previousT.length;\n if (runningOkmLength >= outputByteSize) {\n break;\n }\n }\n return okm.slice(0, outputByteSize).buffer;\n }\n\n async hash(value: string | ArrayBuffer, algorithm: 'sha1' | 'sha256' | 'sha512' | 'md5'): Promise {\n if ((this.isIE && algorithm === 'sha1') || algorithm === 'md5') {\n const md = algorithm === 'md5' ? forge.md.md5.create() : forge.md.sha1.create();\n const valueBytes = this.toByteString(value);\n md.update(valueBytes, 'raw');\n return Utils.fromByteStringToArray(md.digest().data).buffer;\n }\n\n const valueBuf = this.toBuf(value);\n return await this.subtle.digest({ name: this.toWebCryptoAlgorithm(algorithm) }, valueBuf);\n }\n\n async hmac(value: ArrayBuffer, key: ArrayBuffer, algorithm: 'sha1' | 'sha256' | 'sha512'): Promise {\n if (this.isIE && algorithm === 'sha512') {\n const hmac = (forge as any).hmac.create();\n const keyBytes = this.toByteString(key);\n const valueBytes = this.toByteString(value);\n hmac.start(algorithm, keyBytes);\n hmac.update(valueBytes, 'raw');\n return Utils.fromByteStringToArray(hmac.digest().data).buffer;\n }\n\n const signingAlgorithm = {\n name: 'HMAC',\n hash: { name: this.toWebCryptoAlgorithm(algorithm) },\n };\n\n const impKey = await this.subtle.importKey('raw', key, signingAlgorithm, false, ['sign']);\n return await this.subtle.sign(signingAlgorithm, impKey, value);\n }\n\n // Safely compare two values in a way that protects against timing attacks (Double HMAC Verification).\n // ref: https://www.nccgroup.trust/us/about-us/newsroom-and-events/blog/2011/february/double-hmac-verification/\n // ref: https://paragonie.com/blog/2015/11/preventing-timing-attacks-on-string-comparison-with-double-hmac-strategy\n async compare(a: ArrayBuffer, b: ArrayBuffer): Promise {\n const macKey = await this.randomBytes(32);\n const signingAlgorithm = {\n name: 'HMAC',\n hash: { name: 'SHA-256' },\n };\n const impKey = await this.subtle.importKey('raw', macKey, signingAlgorithm, false, ['sign']);\n const mac1 = await this.subtle.sign(signingAlgorithm, impKey, a);\n const mac2 = await this.subtle.sign(signingAlgorithm, impKey, b);\n\n if (mac1.byteLength !== mac2.byteLength) {\n return false;\n }\n\n const arr1 = new Uint8Array(mac1);\n const arr2 = new Uint8Array(mac2);\n for (let i = 0; i < arr2.length; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n hmacFast(value: string, key: string, algorithm: 'sha1' | 'sha256' | 'sha512'): Promise {\n const hmac = (forge as any).hmac.create();\n hmac.start(algorithm, key);\n hmac.update(value);\n const bytes = hmac.digest().getBytes();\n return Promise.resolve(bytes);\n }\n\n async compareFast(a: string, b: string): Promise {\n const rand = await this.randomBytes(32);\n const bytes = new Uint32Array(rand);\n const buffer = forge.util.createBuffer();\n for (let i = 0; i < bytes.length; i++) {\n buffer.putInt32(bytes[i]);\n }\n const macKey = buffer.getBytes();\n\n const hmac = (forge as any).hmac.create();\n hmac.start('sha256', macKey);\n hmac.update(a);\n const mac1 = hmac.digest().getBytes();\n\n hmac.start(null, null);\n hmac.update(b);\n const mac2 = hmac.digest().getBytes();\n\n const equals = mac1 === mac2;\n return equals;\n }\n\n async aesEncrypt(data: ArrayBuffer, iv: ArrayBuffer, key: ArrayBuffer): Promise {\n const impKey = await this.subtle.importKey('raw', key, { name: 'AES-CBC' } as any, false, ['encrypt']);\n return await this.subtle.encrypt({ name: 'AES-CBC', iv: iv }, impKey, data);\n }\n\n aesDecryptFastParameters(data: string, iv: string, mac: string, key: SymmetricCryptoKey):\n DecryptParameters {\n const p = new DecryptParameters();\n if (key.meta != null) {\n p.encKey = key.meta.encKeyByteString;\n p.macKey = key.meta.macKeyByteString;\n }\n\n if (p.encKey == null) {\n p.encKey = forge.util.decode64(key.encKeyB64);\n }\n p.data = forge.util.decode64(data);\n p.iv = forge.util.decode64(iv);\n p.macData = p.iv + p.data;\n if (p.macKey == null && key.macKeyB64 != null) {\n p.macKey = forge.util.decode64(key.macKeyB64);\n }\n if (mac != null) {\n p.mac = forge.util.decode64(mac);\n }\n\n // cache byte string keys for later\n if (key.meta == null) {\n key.meta = {};\n }\n if (key.meta.encKeyByteString == null) {\n key.meta.encKeyByteString = p.encKey;\n }\n if (p.macKey != null && key.meta.macKeyByteString == null) {\n key.meta.macKeyByteString = p.macKey;\n }\n\n return p;\n }\n\n aesDecryptFast(parameters: DecryptParameters): Promise {\n const dataBuffer = (forge as any).util.createBuffer(parameters.data);\n const decipher = (forge as any).cipher.createDecipher('AES-CBC', parameters.encKey);\n decipher.start({ iv: parameters.iv });\n decipher.update(dataBuffer);\n decipher.finish();\n const val = decipher.output.toString('utf8');\n return Promise.resolve(val);\n }\n\n async aesDecrypt(data: ArrayBuffer, iv: ArrayBuffer, key: ArrayBuffer): Promise {\n const impKey = await this.subtle.importKey('raw', key, { name: 'AES-CBC' } as any, false, ['decrypt']);\n return await this.subtle.decrypt({ name: 'AES-CBC', iv: iv }, impKey, data);\n }\n\n async rsaEncrypt(data: ArrayBuffer, publicKey: ArrayBuffer, algorithm: 'sha1' | 'sha256'): Promise {\n // Note: Edge browser requires that we specify name and hash for both key import and decrypt.\n // We cannot use the proper types here.\n const rsaParams = {\n name: 'RSA-OAEP',\n hash: { name: this.toWebCryptoAlgorithm(algorithm) },\n };\n const impKey = await this.subtle.importKey('spki', publicKey, rsaParams, false, ['encrypt']);\n return await this.subtle.encrypt(rsaParams, impKey, data);\n }\n\n async rsaDecrypt(data: ArrayBuffer, privateKey: ArrayBuffer, algorithm: 'sha1' | 'sha256'): Promise {\n // Note: Edge browser requires that we specify name and hash for both key import and decrypt.\n // We cannot use the proper types here.\n const rsaParams = {\n name: 'RSA-OAEP',\n hash: { name: this.toWebCryptoAlgorithm(algorithm) },\n };\n const impKey = await this.subtle.importKey('pkcs8', privateKey, rsaParams, false, ['decrypt']);\n return await this.subtle.decrypt(rsaParams, impKey, data);\n }\n\n async rsaExtractPublicKey(privateKey: ArrayBuffer): Promise {\n const rsaParams = {\n name: 'RSA-OAEP',\n // Have to specify some algorithm\n hash: { name: this.toWebCryptoAlgorithm('sha1') },\n };\n const impPrivateKey = await this.subtle.importKey('pkcs8', privateKey, rsaParams, true, ['decrypt']);\n const jwkPrivateKey = await this.subtle.exportKey('jwk', impPrivateKey);\n const jwkPublicKeyParams = {\n kty: 'RSA',\n e: jwkPrivateKey.e,\n n: jwkPrivateKey.n,\n alg: 'RSA-OAEP',\n ext: true,\n };\n const impPublicKey = await this.subtle.importKey('jwk', jwkPublicKeyParams, rsaParams, true, ['encrypt']);\n return await this.subtle.exportKey('spki', impPublicKey);\n }\n\n async rsaGenerateKeyPair(length: 1024 | 2048 | 4096): Promise<[ArrayBuffer, ArrayBuffer]> {\n const rsaParams = {\n name: 'RSA-OAEP',\n modulusLength: length,\n publicExponent: new Uint8Array([0x01, 0x00, 0x01]), // 65537\n // Have to specify some algorithm\n hash: { name: this.toWebCryptoAlgorithm('sha1') },\n };\n const keyPair = await this.subtle.generateKey(rsaParams, true, ['encrypt', 'decrypt']);\n const publicKey = await this.subtle.exportKey('spki', keyPair.publicKey);\n const privateKey = await this.subtle.exportKey('pkcs8', keyPair.privateKey);\n return [publicKey, privateKey];\n }\n\n randomBytes(length: number): Promise {\n const arr = new Uint8Array(length);\n this.crypto.getRandomValues(arr);\n return Promise.resolve(arr.buffer);\n }\n\n private toBuf(value: string | ArrayBuffer): ArrayBuffer {\n let buf: ArrayBuffer;\n if (typeof (value) === 'string') {\n buf = Utils.fromUtf8ToArray(value).buffer;\n } else {\n buf = value;\n }\n return buf;\n }\n\n private toByteString(value: string | ArrayBuffer): string {\n let bytes: string;\n if (typeof (value) === 'string') {\n bytes = forge.util.encodeUtf8(value);\n } else {\n bytes = Utils.fromBufferToByteString(value);\n }\n return bytes;\n }\n\n private toWebCryptoAlgorithm(algorithm: 'sha1' | 'sha256' | 'sha512' | 'md5'): string {\n if (algorithm === 'md5') {\n throw new Error('MD5 is not supported in WebCrypto.');\n }\n return algorithm === 'sha1' ? 'SHA-1' : algorithm === 'sha256' ? 'SHA-256' : 'SHA-512';\n }\n}\n","export class DecryptParameters {\n encKey: T;\n data: T;\n iv: T;\n macKey: T;\n mac: T;\n macData: T;\n}\n","import { EncArrayBuffer } from '../models/domain/encArrayBuffer';\nimport { EncString } from '../models/domain/encString';\nimport { AttachmentUploadDataResponse } from '../models/response/attachmentUploadDataResponse';\nimport { SendFileUploadDataResponse } from '../models/response/sendFileUploadDataResponse';\n\nexport abstract class FileUploadService {\n uploadSendFile: (uploadData: SendFileUploadDataResponse, fileName: EncString,\n encryptedFileData: EncArrayBuffer) => Promise;\n uploadCipherAttachment: (admin: boolean, uploadData: AttachmentUploadDataResponse, fileName: string,\n encryptedFileData: EncArrayBuffer) => Promise;\n}\n","import * as jq from 'jquery';\nimport Swal from 'sweetalert2/dist/sweetalert2.js';\n\nimport {\n BodyOutputType,\n Toast,\n ToasterConfig,\n ToasterService,\n} from 'angular2-toaster';\n\nimport {\n Component,\n NgZone,\n OnDestroy,\n OnInit,\n SecurityContext,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport {\n NavigationEnd,\n Router,\n} from '@angular/router';\n\nimport { BroadcasterService } from 'jslib/angular/services/broadcaster.service';\n\nimport { StorageService } from 'jslib/abstractions/storage.service';\n\nimport { AuthService } from 'jslib/abstractions/auth.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { EventService } from 'jslib/abstractions/event.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { NotificationsService } from 'jslib/abstractions/notifications.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { SearchService } from 'jslib/abstractions/search.service';\nimport { SettingsService } from 'jslib/abstractions/settings.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\nimport { TokenService } from 'jslib/abstractions/token.service';\nimport { UserService } from 'jslib/abstractions/user.service';\nimport { VaultTimeoutService } from 'jslib/abstractions/vaultTimeout.service';\n\nimport { ConstantsService } from 'jslib/services/constants.service';\n\nimport { RouterService } from './services/router.service';\n\nconst BroadcasterSubscriptionId = 'AppComponent';\nconst IdleTimeout = 60000 * 10; // 10 minutes\n\n@Component({\n selector: 'app-root',\n templateUrl: 'app.component.html',\n})\nexport class AppComponent implements OnDestroy, OnInit {\n toasterConfig: ToasterConfig = new ToasterConfig({\n showCloseButton: true,\n mouseoverTimerStop: true,\n animation: 'flyRight',\n limit: 5,\n });\n\n private lastActivity: number = null;\n private idleTimer: number = null;\n private isIdle = false;\n\n constructor(\n private broadcasterService: BroadcasterService, private userService: UserService,\n private tokenService: TokenService, private folderService: FolderService,\n private settingsService: SettingsService, private syncService: SyncService,\n private passwordGenerationService: PasswordGenerationService, private cipherService: CipherService,\n private authService: AuthService, private router: Router,\n private toasterService: ToasterService, private i18nService: I18nService,\n private platformUtilsService: PlatformUtilsService, private ngZone: NgZone,\n private vaultTimeoutService: VaultTimeoutService, private storageService: StorageService,\n private cryptoService: CryptoService, private collectionService: CollectionService,\n private sanitizer: DomSanitizer, private searchService: SearchService,\n private notificationsService: NotificationsService, private routerService: RouterService,\n private stateService: StateService, private eventService: EventService,\n private policyService: PolicyService) { }\n\n ngOnInit() {\n this.ngZone.runOutsideAngular(() => {\n window.onmousemove = () => this.recordActivity();\n window.onmousedown = () => this.recordActivity();\n window.ontouchstart = () => this.recordActivity();\n window.onclick = () => this.recordActivity();\n window.onscroll = () => this.recordActivity();\n window.onkeypress = () => this.recordActivity();\n });\n\n this.broadcasterService.subscribe(BroadcasterSubscriptionId, async (message: any) => {\n this.ngZone.run(async () => {\n switch (message.command) {\n case 'loggedIn':\n case 'loggedOut':\n case 'unlocked':\n this.notificationsService.updateConnection(false);\n break;\n case 'authBlocked':\n this.router.navigate(['/']);\n break;\n case 'logout':\n this.logOut(!!message.expired);\n break;\n case 'lockVault':\n await this.vaultTimeoutService.lock();\n break;\n case 'locked':\n this.notificationsService.updateConnection(false);\n this.router.navigate(['lock']);\n break;\n case 'lockedUrl':\n window.setTimeout(() => this.routerService.setPreviousUrl(message.url), 500);\n break;\n case 'syncStarted':\n break;\n case 'syncCompleted':\n break;\n case 'upgradeOrganization':\n const upgradeConfirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('upgradeOrganizationDesc'), this.i18nService.t('upgradeOrganization'),\n this.i18nService.t('upgradeOrganization'), this.i18nService.t('cancel'));\n if (upgradeConfirmed) {\n this.router.navigate(['organizations', message.organizationId, 'settings', 'billing']);\n }\n break;\n case 'premiumRequired':\n const premiumConfirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('premiumRequiredDesc'), this.i18nService.t('premiumRequired'),\n this.i18nService.t('learnMore'), this.i18nService.t('cancel'));\n if (premiumConfirmed) {\n this.router.navigate(['settings/premium']);\n }\n break;\n case 'emailVerificationRequired':\n const emailVerificationConfirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('emailVerificationRequiredDesc'),\n this.i18nService.t('emailVerificationRequired'),\n this.i18nService.t('learnMore'), this.i18nService.t('cancel'));\n if (emailVerificationConfirmed) {\n this.platformUtilsService.launchUri('https://bitwarden.com/help/article/create-bitwarden-account/');\n }\n break;\n case 'showToast':\n this.showToast(message);\n break;\n case 'setFullWidth':\n this.setFullWidth();\n break;\n default:\n break;\n }\n });\n });\n\n this.router.events.subscribe(event => {\n if (event instanceof NavigationEnd) {\n const modals = Array.from(document.querySelectorAll('.modal'));\n for (const modal of modals) {\n (jq(modal) as any).modal('hide');\n }\n\n if (document.querySelector('.swal-modal') != null) {\n Swal.close(undefined);\n }\n }\n });\n\n this.setFullWidth();\n }\n\n ngOnDestroy() {\n this.broadcasterService.unsubscribe(BroadcasterSubscriptionId);\n }\n\n private async logOut(expired: boolean) {\n await this.eventService.uploadEvents();\n const userId = await this.userService.getUserId();\n\n await Promise.all([\n this.eventService.clearEvents(),\n this.syncService.setLastSync(new Date(0)),\n this.tokenService.clearToken(),\n this.cryptoService.clearKeys(),\n this.userService.clear(),\n this.settingsService.clear(userId),\n this.cipherService.clear(userId),\n this.folderService.clear(userId),\n this.collectionService.clear(userId),\n this.policyService.clear(userId),\n this.passwordGenerationService.clear(),\n this.stateService.purge(),\n ]);\n\n this.searchService.clearIndex();\n this.authService.logOut(async () => {\n if (expired) {\n this.toasterService.popAsync('warning', this.i18nService.t('loggedOut'),\n this.i18nService.t('loginExpired'));\n }\n\n Swal.close();\n this.router.navigate(['/']);\n });\n }\n\n private async recordActivity() {\n const now = (new Date()).getTime();\n if (this.lastActivity != null && now - this.lastActivity < 250) {\n return;\n }\n\n this.lastActivity = now;\n this.storageService.save(ConstantsService.lastActiveKey, now);\n\n // Idle states\n if (this.isIdle) {\n this.isIdle = false;\n this.idleStateChanged();\n }\n if (this.idleTimer != null) {\n window.clearTimeout(this.idleTimer);\n this.idleTimer = null;\n }\n this.idleTimer = window.setTimeout(() => {\n if (!this.isIdle) {\n this.isIdle = true;\n this.idleStateChanged();\n }\n }, IdleTimeout);\n }\n\n private showToast(msg: any) {\n const toast: Toast = {\n type: msg.type,\n title: msg.title,\n };\n if (typeof (msg.text) === 'string') {\n toast.body = msg.text;\n } else if (msg.text.length === 1) {\n toast.body = msg.text[0];\n } else {\n let message = '';\n msg.text.forEach((t: string) =>\n message += ('

' + this.sanitizer.sanitize(SecurityContext.HTML, t) + '

'));\n toast.body = message;\n toast.bodyOutputType = BodyOutputType.TrustedHtml;\n }\n if (msg.options != null) {\n if (msg.options.trustedHtml === true) {\n toast.bodyOutputType = BodyOutputType.TrustedHtml;\n }\n if (msg.options.timeout != null && msg.options.timeout > 0) {\n toast.timeout = msg.options.timeout;\n }\n }\n this.toasterService.popAsync(toast);\n }\n\n private idleStateChanged() {\n if (this.isIdle) {\n this.notificationsService.disconnectFromInactivity();\n } else {\n this.notificationsService.reconnectFromActivity();\n }\n }\n\n private async setFullWidth() {\n const enableFullWidth = await this.storageService.get('enableFullWidth');\n if (enableFullWidth) {\n document.body.classList.add('full-width');\n } else {\n document.body.classList.remove('full-width');\n }\n }\n}\n","\n\n","import {\n Directive,\n ElementRef,\n HostListener,\n} from '@angular/core';\n\n@Directive({\n selector: '[appBlurClick]',\n})\nexport class BlurClickDirective {\n constructor(private el: ElementRef) {\n }\n\n @HostListener('click') onClick() {\n this.el.nativeElement.blur();\n }\n}\n","import {\n Directive,\n ElementRef,\n HostListener,\n OnInit,\n} from '@angular/core';\n\n@Directive({\n selector: '[appBoxRow]',\n})\nexport class BoxRowDirective implements OnInit {\n el: HTMLElement = null;\n formEls: Element[];\n\n constructor(private elRef: ElementRef) {\n this.el = elRef.nativeElement;\n }\n\n ngOnInit(): void {\n this.formEls = Array.from(this.el.querySelectorAll('input:not([type=\"hidden\"]), select, textarea'));\n this.formEls.forEach(formEl => {\n formEl.addEventListener('focus', (event: Event) => {\n this.el.classList.add('active');\n }, false);\n\n formEl.addEventListener('blur', (event: Event) => {\n this.el.classList.remove('active');\n }, false);\n });\n }\n\n @HostListener('click', ['$event']) onClick(event: Event) {\n const target = event.target as HTMLElement;\n if (target !== this.el && !target.classList.contains('progress') &&\n !target.classList.contains('progress-bar')) {\n return;\n }\n\n if (this.formEls.length > 0) {\n const formEl = (this.formEls[0] as HTMLElement);\n if (formEl.tagName.toLowerCase() === 'input') {\n const inputEl = (formEl as HTMLInputElement);\n if (inputEl.type != null && inputEl.type.toLowerCase() === 'checkbox') {\n inputEl.click();\n return;\n }\n }\n formEl.focus();\n }\n }\n}\n","import {\n Pipe,\n PipeTransform,\n} from '@angular/core';\n\nimport { CipherView } from '../../models/view/cipherView';\n\n@Pipe({\n name: 'searchCiphers',\n})\nexport class SearchCiphersPipe implements PipeTransform {\n transform(ciphers: CipherView[], searchText: string, deleted: boolean = false): CipherView[] {\n if (ciphers == null || ciphers.length === 0) {\n return [];\n }\n\n if (searchText == null || searchText.length < 2) {\n return ciphers.filter(c => {\n return deleted !== c.isDeleted;\n });\n }\n\n searchText = searchText.trim().toLowerCase();\n return ciphers.filter(c => {\n if (deleted !== c.isDeleted) {\n return false;\n }\n if (c.name != null && c.name.toLowerCase().indexOf(searchText) > -1) {\n return true;\n }\n if (searchText.length >= 8 && c.id.startsWith(searchText)) {\n return true;\n }\n if (c.subTitle != null && c.subTitle.toLowerCase().indexOf(searchText) > -1) {\n return true;\n }\n if (c.login && c.login.uri != null && c.login.uri.toLowerCase().indexOf(searchText) > -1) {\n return true;\n }\n\n return false;\n });\n }\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/app/main.d8139e017ad9a069b29d.css b/app/main.d8139e017ad9a069b29d.css deleted file mode 100644 index ea4474e0..00000000 --- a/app/main.d8139e017ad9a069b29d.css +++ /dev/null @@ -1,11460 +0,0 @@ -@font-face { - font-family: 'Open Sans'; - font-style: italic; - font-weight: 300; - src: url(../fonts/Open_Sans-italic-300.woff) format('woff'); - unicode-range: U+0-10FFFF; -} - -@font-face { - font-family: 'Open Sans'; - font-style: italic; - font-weight: 400; - src: url(../fonts/Open_Sans-italic-400.woff) format('woff'); - unicode-range: U+0-10FFFF; -} - -@font-face { - font-family: 'Open Sans'; - font-style: italic; - font-weight: 600; - src: url(../fonts/Open_Sans-italic-600.woff) format('woff'); - unicode-range: U+0-10FFFF; -} - -@font-face { - font-family: 'Open Sans'; - font-style: italic; - font-weight: 700; - src: url(../fonts/Open_Sans-italic-700.woff) format('woff'); - unicode-range: U+0-10FFFF; -} - -@font-face { - font-family: 'Open Sans'; - font-style: italic; - font-weight: 800; - src: url(../fonts/Open_Sans-italic-800.woff) format('woff'); - unicode-range: U+0-10FFFF; -} - -@font-face { - font-family: 'Open Sans'; - font-style: normal; - font-weight: 300; - src: url(../fonts/Open_Sans-normal-300.woff) format('woff'); - unicode-range: U+0-10FFFF; -} - -@font-face { - font-family: 'Open Sans'; - font-style: normal; - font-weight: 400; - src: url(../fonts/Open_Sans-normal-400.woff) format('woff'); - unicode-range: U+0-10FFFF; -} - -@font-face { - font-family: 'Open Sans'; - font-style: normal; - font-weight: 600; - src: url(../fonts/Open_Sans-normal-600.woff) format('woff'); - unicode-range: U+0-10FFFF; -} - -@font-face { - font-family: 'Open Sans'; - font-style: normal; - font-weight: 700; - src: url(../fonts/Open_Sans-normal-700.woff) format('woff'); - unicode-range: U+0-10FFFF; -} - -@font-face { - font-family: 'Open Sans'; - font-style: normal; - font-weight: 800; - src: url(../fonts/Open_Sans-normal-800.woff) format('woff'); - unicode-range: U+0-10FFFF; -} - - -@charset "UTF-8"; -: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: #175DDC; - --secondary: #ced4da; - --success: #00a65a; - --info: #555555; - --warning: #bf7e16; - --danger: #dd4b39; - --light: #f8f9fa; - --dark: #343a40; - --primary-accent: #1252A3; - --secondary-alt: #1A3B66; - --breakpoint-xs: 0; - --breakpoint-sm: 1px; - --breakpoint-md: 2px; - --breakpoint-lg: 3px; - --breakpoint-xl: 4px; - --font-family-sans-serif: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; } - -*, -*::before, -*::after { - box-sizing: border-box; } - -html { - font-family: sans-serif; - line-height: 1.15; - -webkit-text-size-adjust: 100%; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } - -article, aside, figcaption, figure, footer, header, hgroup, main, nav, section { - display: block; } - -body { - margin: 0; - font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - font-size: 1rem; - font-weight: 400; - line-height: 1.5; - color: #333333; - text-align: left; - background-color: #ffffff; } - -[tabindex="-1"]:focus { - outline: 0 !important; } - -hr { - box-sizing: content-box; - height: 0; - overflow: visible; } - -h1, h2, h3, h4, h5, h6 { - margin-top: 0; - margin-bottom: 0.5rem; } - -p { - margin-top: 0; - margin-bottom: 1rem; } - -abbr[title], -abbr[data-original-title] { - text-decoration: underline; - text-decoration: underline dotted; - cursor: help; - border-bottom: 0; - text-decoration-skip-ink: none; } - -address { - margin-bottom: 1rem; - font-style: normal; - line-height: inherit; } - -ol, -ul, -dl { - margin-top: 0; - margin-bottom: 1rem; } - -ol ol, -ul ul, -ol ul, -ul ol { - 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: #175DDC; - text-decoration: none; - background-color: transparent; } - a:hover { - color: #104097; - text-decoration: underline; } - -a:not([href]):not([tabindex]) { - color: inherit; - text-decoration: none; } - a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus { - color: inherit; - text-decoration: none; } - a:not([href]):not([tabindex]):focus { - outline: 0; } - -pre, -code, -kbd, -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: 0.75rem; - padding-bottom: 0.75rem; - color: #6c757d; - text-align: left; - caption-side: bottom; } - -th { - text-align: inherit; } - -label { - display: inline-block; - margin-bottom: 0.5rem; } - -button { - border-radius: 0; } - -button:focus { - outline: 1px dotted; - outline: 5px auto -webkit-focus-ring-color; } - -input, -button, -select, -optgroup, -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; } - -button, -[type="button"], -[type="reset"], -[type="submit"] { - -webkit-appearance: button; } - -button:not(:disabled), -[type="button"]:not(:disabled), -[type="reset"]:not(:disabled), -[type="submit"]:not(:disabled) { - cursor: pointer; } - -button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, -[type="submit"]::-moz-focus-inner { - padding: 0; - border-style: none; } - -input[type="radio"], -input[type="checkbox"] { - box-sizing: border-box; - padding: 0; } - -input[type="date"], -input[type="time"], -input[type="datetime-local"], -input[type="month"] { - -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: 0.5rem; - font-weight: 500; - line-height: 1.2; } - -h1, .h1 { - font-size: 1.7rem; } - -h2, .h2 { - font-size: 1.3rem; } - -h3, .h3 { - font-size: 1rem; } - -h4, .h4 { - font-size: 1rem; } - -h5, .h5 { - font-size: 1rem; } - -h6, .h6 { - font-size: 1rem; } - -.lead { - font-size: 1.25rem; - font-weight: normal; } - -.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, 0.1); } - -small, -.small { - font-size: 90%; - font-weight: 400; } - -mark, -.mark { - padding: 0.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: 0.5rem; } - -.initialism { - font-size: 90%; - text-transform: uppercase; } - -.blockquote { - margin-bottom: 1rem; - font-size: 1.25rem; } - -.blockquote-footer { - display: block; - font-size: 90%; - color: #6c757d; } - .blockquote-footer::before { - content: "\2014\A0"; } - -.img-fluid, .table.table-list td.table-list-icon img { - max-width: 100%; - height: auto; } - -.img-thumbnail { - padding: 0.25rem; - background-color: #ffffff; - border: 1px solid #dee2e6; - border-radius: 0.25rem; - max-width: 100%; - height: auto; } - -.figure { - display: inline-block; } - -.figure-img { - margin-bottom: 0.5rem; - line-height: 1; } - -.figure-caption { - font-size: 90%; - color: #6c757d; } - -code { - font-size: 100%; - color: #e83e8c; - word-break: break-word; } - a > code { - color: inherit; } - -kbd { - padding: 0.2rem 0.4rem; - font-size: 100%; - color: #fff; - background-color: #212529; - border-radius: 0.2rem; } - kbd kbd { - padding: 0; - font-size: 100%; - font-weight: 700; } - -pre { - display: block; - font-size: 100%; - 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: 10px; - padding-left: 10px; - margin-right: auto; - margin-left: auto; } - @media (min-width: 1px) { - .container { - max-width: 540px; } } - @media (min-width: 2px) { - .container { - max-width: 720px; } } - @media (min-width: 3px) { - .container { - max-width: 960px; } } - @media (min-width: 4px) { - .container { - max-width: 1140px; } } - -.container-fluid { - width: 100%; - padding-right: 10px; - padding-left: 10px; - margin-right: auto; - margin-left: auto; } - -.row { - display: flex; - flex-wrap: wrap; - margin-right: -10px; - margin-left: -10px; } - -.no-gutters { - margin-right: 0; - margin-left: 0; } - .no-gutters > .col, - .no-gutters > [class*="col-"] { - padding-right: 0; - padding-left: 0; } - -.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, -.col-auto, .col-sm-1, .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-10, .col-sm-11, .col-sm-12, .col-sm, -.col-sm-auto, .col-md-1, .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-10, .col-md-11, .col-md-12, .col-md, -.col-md-auto, .col-lg-1, .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-10, .col-lg-11, .col-lg-12, .col-lg, -.col-lg-auto, .col-xl-1, .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-10, .col-xl-11, .col-xl-12, .col-xl, -.col-xl-auto { - position: relative; - width: 100%; - padding-right: 10px; - padding-left: 10px; } - -.col { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; } - -.col-auto { - flex: 0 0 auto; - width: auto; - max-width: 100%; } - -.col-1 { - flex: 0 0 8.33333%; - max-width: 8.33333%; } - -.col-2 { - flex: 0 0 16.66667%; - max-width: 16.66667%; } - -.col-3 { - flex: 0 0 25%; - max-width: 25%; } - -.col-4 { - flex: 0 0 33.33333%; - max-width: 33.33333%; } - -.col-5 { - flex: 0 0 41.66667%; - max-width: 41.66667%; } - -.col-6 { - flex: 0 0 50%; - max-width: 50%; } - -.col-7 { - flex: 0 0 58.33333%; - max-width: 58.33333%; } - -.col-8 { - flex: 0 0 66.66667%; - max-width: 66.66667%; } - -.col-9 { - flex: 0 0 75%; - max-width: 75%; } - -.col-10 { - flex: 0 0 83.33333%; - max-width: 83.33333%; } - -.col-11 { - flex: 0 0 91.66667%; - max-width: 91.66667%; } - -.col-12 { - flex: 0 0 100%; - max-width: 100%; } - -.order-first { - order: -1; } - -.order-last { - order: 13; } - -.order-0 { - order: 0; } - -.order-1 { - order: 1; } - -.order-2 { - order: 2; } - -.order-3 { - order: 3; } - -.order-4 { - order: 4; } - -.order-5 { - order: 5; } - -.order-6 { - order: 6; } - -.order-7 { - order: 7; } - -.order-8 { - order: 8; } - -.order-9 { - order: 9; } - -.order-10 { - order: 10; } - -.order-11 { - order: 11; } - -.order-12 { - order: 12; } - -.offset-1 { - margin-left: 8.33333%; } - -.offset-2 { - margin-left: 16.66667%; } - -.offset-3 { - margin-left: 25%; } - -.offset-4 { - margin-left: 33.33333%; } - -.offset-5 { - margin-left: 41.66667%; } - -.offset-6 { - margin-left: 50%; } - -.offset-7 { - margin-left: 58.33333%; } - -.offset-8 { - margin-left: 66.66667%; } - -.offset-9 { - margin-left: 75%; } - -.offset-10 { - margin-left: 83.33333%; } - -.offset-11 { - margin-left: 91.66667%; } - -@media (min-width: 1px) { - .col-sm { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; } - .col-sm-auto { - flex: 0 0 auto; - width: auto; - max-width: 100%; } - .col-sm-1 { - flex: 0 0 8.33333%; - max-width: 8.33333%; } - .col-sm-2 { - flex: 0 0 16.66667%; - max-width: 16.66667%; } - .col-sm-3 { - flex: 0 0 25%; - max-width: 25%; } - .col-sm-4 { - flex: 0 0 33.33333%; - max-width: 33.33333%; } - .col-sm-5 { - flex: 0 0 41.66667%; - max-width: 41.66667%; } - .col-sm-6 { - flex: 0 0 50%; - max-width: 50%; } - .col-sm-7 { - flex: 0 0 58.33333%; - max-width: 58.33333%; } - .col-sm-8 { - flex: 0 0 66.66667%; - max-width: 66.66667%; } - .col-sm-9 { - flex: 0 0 75%; - max-width: 75%; } - .col-sm-10 { - flex: 0 0 83.33333%; - max-width: 83.33333%; } - .col-sm-11 { - flex: 0 0 91.66667%; - max-width: 91.66667%; } - .col-sm-12 { - flex: 0 0 100%; - max-width: 100%; } - .order-sm-first { - order: -1; } - .order-sm-last { - order: 13; } - .order-sm-0 { - order: 0; } - .order-sm-1 { - order: 1; } - .order-sm-2 { - order: 2; } - .order-sm-3 { - order: 3; } - .order-sm-4 { - order: 4; } - .order-sm-5 { - order: 5; } - .order-sm-6 { - order: 6; } - .order-sm-7 { - order: 7; } - .order-sm-8 { - order: 8; } - .order-sm-9 { - order: 9; } - .order-sm-10 { - order: 10; } - .order-sm-11 { - order: 11; } - .order-sm-12 { - order: 12; } - .offset-sm-0 { - margin-left: 0; } - .offset-sm-1 { - margin-left: 8.33333%; } - .offset-sm-2 { - margin-left: 16.66667%; } - .offset-sm-3 { - margin-left: 25%; } - .offset-sm-4 { - margin-left: 33.33333%; } - .offset-sm-5 { - margin-left: 41.66667%; } - .offset-sm-6 { - margin-left: 50%; } - .offset-sm-7 { - margin-left: 58.33333%; } - .offset-sm-8 { - margin-left: 66.66667%; } - .offset-sm-9 { - margin-left: 75%; } - .offset-sm-10 { - margin-left: 83.33333%; } - .offset-sm-11 { - margin-left: 91.66667%; } } - -@media (min-width: 2px) { - .col-md { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; } - .col-md-auto { - flex: 0 0 auto; - width: auto; - max-width: 100%; } - .col-md-1 { - flex: 0 0 8.33333%; - max-width: 8.33333%; } - .col-md-2 { - flex: 0 0 16.66667%; - max-width: 16.66667%; } - .col-md-3 { - flex: 0 0 25%; - max-width: 25%; } - .col-md-4 { - flex: 0 0 33.33333%; - max-width: 33.33333%; } - .col-md-5 { - flex: 0 0 41.66667%; - max-width: 41.66667%; } - .col-md-6 { - flex: 0 0 50%; - max-width: 50%; } - .col-md-7 { - flex: 0 0 58.33333%; - max-width: 58.33333%; } - .col-md-8 { - flex: 0 0 66.66667%; - max-width: 66.66667%; } - .col-md-9 { - flex: 0 0 75%; - max-width: 75%; } - .col-md-10 { - flex: 0 0 83.33333%; - max-width: 83.33333%; } - .col-md-11 { - flex: 0 0 91.66667%; - max-width: 91.66667%; } - .col-md-12 { - flex: 0 0 100%; - max-width: 100%; } - .order-md-first { - order: -1; } - .order-md-last { - order: 13; } - .order-md-0 { - order: 0; } - .order-md-1 { - order: 1; } - .order-md-2 { - order: 2; } - .order-md-3 { - order: 3; } - .order-md-4 { - order: 4; } - .order-md-5 { - order: 5; } - .order-md-6 { - order: 6; } - .order-md-7 { - order: 7; } - .order-md-8 { - order: 8; } - .order-md-9 { - order: 9; } - .order-md-10 { - order: 10; } - .order-md-11 { - order: 11; } - .order-md-12 { - order: 12; } - .offset-md-0 { - margin-left: 0; } - .offset-md-1 { - margin-left: 8.33333%; } - .offset-md-2 { - margin-left: 16.66667%; } - .offset-md-3 { - margin-left: 25%; } - .offset-md-4 { - margin-left: 33.33333%; } - .offset-md-5 { - margin-left: 41.66667%; } - .offset-md-6 { - margin-left: 50%; } - .offset-md-7 { - margin-left: 58.33333%; } - .offset-md-8 { - margin-left: 66.66667%; } - .offset-md-9 { - margin-left: 75%; } - .offset-md-10 { - margin-left: 83.33333%; } - .offset-md-11 { - margin-left: 91.66667%; } } - -@media (min-width: 3px) { - .col-lg { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; } - .col-lg-auto { - flex: 0 0 auto; - width: auto; - max-width: 100%; } - .col-lg-1 { - flex: 0 0 8.33333%; - max-width: 8.33333%; } - .col-lg-2 { - flex: 0 0 16.66667%; - max-width: 16.66667%; } - .col-lg-3 { - flex: 0 0 25%; - max-width: 25%; } - .col-lg-4 { - flex: 0 0 33.33333%; - max-width: 33.33333%; } - .col-lg-5 { - flex: 0 0 41.66667%; - max-width: 41.66667%; } - .col-lg-6 { - flex: 0 0 50%; - max-width: 50%; } - .col-lg-7 { - flex: 0 0 58.33333%; - max-width: 58.33333%; } - .col-lg-8 { - flex: 0 0 66.66667%; - max-width: 66.66667%; } - .col-lg-9 { - flex: 0 0 75%; - max-width: 75%; } - .col-lg-10 { - flex: 0 0 83.33333%; - max-width: 83.33333%; } - .col-lg-11 { - flex: 0 0 91.66667%; - max-width: 91.66667%; } - .col-lg-12 { - flex: 0 0 100%; - max-width: 100%; } - .order-lg-first { - order: -1; } - .order-lg-last { - order: 13; } - .order-lg-0 { - order: 0; } - .order-lg-1 { - order: 1; } - .order-lg-2 { - order: 2; } - .order-lg-3 { - order: 3; } - .order-lg-4 { - order: 4; } - .order-lg-5 { - order: 5; } - .order-lg-6 { - order: 6; } - .order-lg-7 { - order: 7; } - .order-lg-8 { - order: 8; } - .order-lg-9 { - order: 9; } - .order-lg-10 { - order: 10; } - .order-lg-11 { - order: 11; } - .order-lg-12 { - order: 12; } - .offset-lg-0 { - margin-left: 0; } - .offset-lg-1 { - margin-left: 8.33333%; } - .offset-lg-2 { - margin-left: 16.66667%; } - .offset-lg-3 { - margin-left: 25%; } - .offset-lg-4 { - margin-left: 33.33333%; } - .offset-lg-5 { - margin-left: 41.66667%; } - .offset-lg-6 { - margin-left: 50%; } - .offset-lg-7 { - margin-left: 58.33333%; } - .offset-lg-8 { - margin-left: 66.66667%; } - .offset-lg-9 { - margin-left: 75%; } - .offset-lg-10 { - margin-left: 83.33333%; } - .offset-lg-11 { - margin-left: 91.66667%; } } - -@media (min-width: 4px) { - .col-xl { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; } - .col-xl-auto { - flex: 0 0 auto; - width: auto; - max-width: 100%; } - .col-xl-1 { - flex: 0 0 8.33333%; - max-width: 8.33333%; } - .col-xl-2 { - flex: 0 0 16.66667%; - max-width: 16.66667%; } - .col-xl-3 { - flex: 0 0 25%; - max-width: 25%; } - .col-xl-4 { - flex: 0 0 33.33333%; - max-width: 33.33333%; } - .col-xl-5 { - flex: 0 0 41.66667%; - max-width: 41.66667%; } - .col-xl-6 { - flex: 0 0 50%; - max-width: 50%; } - .col-xl-7 { - flex: 0 0 58.33333%; - max-width: 58.33333%; } - .col-xl-8 { - flex: 0 0 66.66667%; - max-width: 66.66667%; } - .col-xl-9 { - flex: 0 0 75%; - max-width: 75%; } - .col-xl-10 { - flex: 0 0 83.33333%; - max-width: 83.33333%; } - .col-xl-11 { - flex: 0 0 91.66667%; - max-width: 91.66667%; } - .col-xl-12 { - flex: 0 0 100%; - max-width: 100%; } - .order-xl-first { - order: -1; } - .order-xl-last { - order: 13; } - .order-xl-0 { - order: 0; } - .order-xl-1 { - order: 1; } - .order-xl-2 { - order: 2; } - .order-xl-3 { - order: 3; } - .order-xl-4 { - order: 4; } - .order-xl-5 { - order: 5; } - .order-xl-6 { - order: 6; } - .order-xl-7 { - order: 7; } - .order-xl-8 { - order: 8; } - .order-xl-9 { - order: 9; } - .order-xl-10 { - order: 10; } - .order-xl-11 { - order: 11; } - .order-xl-12 { - order: 12; } - .offset-xl-0 { - margin-left: 0; } - .offset-xl-1 { - margin-left: 8.33333%; } - .offset-xl-2 { - margin-left: 16.66667%; } - .offset-xl-3 { - margin-left: 25%; } - .offset-xl-4 { - margin-left: 33.33333%; } - .offset-xl-5 { - margin-left: 41.66667%; } - .offset-xl-6 { - margin-left: 50%; } - .offset-xl-7 { - margin-left: 58.33333%; } - .offset-xl-8 { - margin-left: 66.66667%; } - .offset-xl-9 { - margin-left: 75%; } - .offset-xl-10 { - margin-left: 83.33333%; } - .offset-xl-11 { - margin-left: 91.66667%; } } - -.table { - width: 100%; - margin-bottom: 1rem; - color: #333333; } - .table th, - .table td { - padding: 0.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 th, -.table-sm td { - padding: 0.3rem; } - -.table-bordered { - border: 1px solid #dee2e6; } - .table-bordered th, - .table-bordered td { - border: 1px solid #dee2e6; } - .table-bordered thead th, - .table-bordered thead td { - border-bottom-width: 2px; } - -.table-borderless th, -.table-borderless td, -.table-borderless thead th, -.table-borderless tbody + tbody { - border: 0; } - -.table-striped tbody tr:nth-of-type(odd) { - background-color: rgba(0, 0, 0, 0.02); } - -.table-hover tbody tr:hover { - color: #333333; - background-color: rgba(0, 0, 0, 0.03); } - -.table-primary, -.table-primary > th, -.table-primary > td { - background-color: #bed2f5; } - -.table-primary th, -.table-primary td, -.table-primary thead th, -.table-primary tbody + tbody { - border-color: #86abed; } - -.table-hover .table-primary:hover { - background-color: #a8c3f2; } - .table-hover .table-primary:hover > td, - .table-hover .table-primary:hover > th { - background-color: #a8c3f2; } - -.table-secondary, -.table-secondary > th, -.table-secondary > td { - background-color: #f1f3f5; } - -.table-secondary th, -.table-secondary td, -.table-secondary thead th, -.table-secondary tbody + tbody { - border-color: #e6e9ec; } - -.table-hover .table-secondary:hover { - background-color: #e2e6ea; } - .table-hover .table-secondary:hover > td, - .table-hover .table-secondary:hover > th { - background-color: #e2e6ea; } - -.table-success, -.table-success > th, -.table-success > td { - background-color: #b8e6d1; } - -.table-success th, -.table-success td, -.table-success thead th, -.table-success tbody + tbody { - border-color: #7ad1a9; } - -.table-hover .table-success:hover { - background-color: #a5dfc5; } - .table-hover .table-success:hover > td, - .table-hover .table-success:hover > th { - background-color: #a5dfc5; } - -.table-info, -.table-info > th, -.table-info > td { - background-color: #cfcfcf; } - -.table-info th, -.table-info td, -.table-info thead th, -.table-info tbody + tbody { - border-color: #a7a7a7; } - -.table-hover .table-info:hover { - background-color: #c2c2c2; } - .table-hover .table-info:hover > td, - .table-hover .table-info:hover > th { - background-color: #c2c2c2; } - -.table-warning, -.table-warning > th, -.table-warning > td { - background-color: #eddbbe; } - -.table-warning th, -.table-warning td, -.table-warning thead th, -.table-warning tbody + tbody { - border-color: #debc86; } - -.table-hover .table-warning:hover { - background-color: #e7d0aa; } - .table-hover .table-warning:hover > td, - .table-hover .table-warning:hover > th { - background-color: #e7d0aa; } - -.table-danger, -.table-danger > th, -.table-danger > td { - background-color: #f5cdc8; } - -.table-danger th, -.table-danger td, -.table-danger thead th, -.table-danger tbody + tbody { - border-color: #eda198; } - -.table-hover .table-danger:hover { - background-color: #f1b9b2; } - .table-hover .table-danger:hover > td, - .table-hover .table-danger:hover > th { - background-color: #f1b9b2; } - -.table-light, -.table-light > th, -.table-light > td { - background-color: #fdfdfe; } - -.table-light th, -.table-light td, -.table-light thead th, -.table-light tbody + tbody { - 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 > th, -.table-dark > td { - background-color: #c6c8ca; } - -.table-dark th, -.table-dark td, -.table-dark thead th, -.table-dark tbody + tbody { - 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-primary-accent, -.table-primary-accent > th, -.table-primary-accent > td { - background-color: #bdcfe5; } - -.table-primary-accent th, -.table-primary-accent td, -.table-primary-accent thead th, -.table-primary-accent tbody + tbody { - border-color: #84a5cf; } - -.table-hover .table-primary-accent:hover { - background-color: #abc2de; } - .table-hover .table-primary-accent:hover > td, - .table-hover .table-primary-accent:hover > th { - background-color: #abc2de; } - -.table-secondary-alt, -.table-secondary-alt > th, -.table-secondary-alt > td { - background-color: #bfc8d4; } - -.table-secondary-alt th, -.table-secondary-alt td, -.table-secondary-alt thead th, -.table-secondary-alt tbody + tbody { - border-color: #8899af; } - -.table-hover .table-secondary-alt:hover { - background-color: #b0bbca; } - .table-hover .table-secondary-alt:hover > td, - .table-hover .table-secondary-alt:hover > th { - background-color: #b0bbca; } - -.table-active, -.table-active > th, -.table-active > td { - background-color: rgba(0, 0, 0, 0.03); } - -.table-hover .table-active:hover { - background-color: rgba(0, 0, 0, 0.03); } - .table-hover .table-active:hover > td, - .table-hover .table-active:hover > th { - background-color: rgba(0, 0, 0, 0.03); } - -.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 th, - .table-dark td, - .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, 0.05); } - .table-dark.table-hover tbody tr:hover { - color: #fff; - background-color: rgba(255, 255, 255, 0.075); } - -@media (max-width: 0.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: 1.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: 2.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: 3.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 + 0.75rem + 2px); - padding: 0.375rem 0.75rem; - font-size: 1rem; - font-weight: 400; - line-height: 1.5; - color: #495057; - background-color: #fbfbfb; - background-clip: padding-box; - border: 1px solid #ced4da; - border-radius: 0.25rem; - transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } - @media (prefers-reduced-motion: reduce) { - .form-control { - transition: none; } } - .form-control::-ms-expand { - background-color: transparent; - border: 0; } - .form-control:focus { - color: #495057; - background-color: #ffffff; - border-color: #81a9f2; - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.25); } - .form-control::placeholder { - color: #b4b4b4; - opacity: 1; } - .form-control:disabled, .form-control[readonly] { - background-color: #e0e0e0; - opacity: 1; } - -select.form-control:focus::-ms-value { - color: #495057; - background-color: #fbfbfb; } - -.form-control-file, -.form-control-range { - display: block; - width: 100%; } - -.col-form-label { - padding-top: calc(0.375rem + 1px); - padding-bottom: calc(0.375rem + 1px); - margin-bottom: 0; - font-size: inherit; - line-height: 1.5; } - -.col-form-label-lg { - padding-top: calc(0.5rem + 1px); - padding-bottom: calc(0.5rem + 1px); - font-size: 1.15rem; - line-height: 1.5; } - -.col-form-label-sm { - padding-top: calc(0.25rem + 1px); - padding-bottom: calc(0.25rem + 1px); - font-size: 0.875rem; - line-height: 1.5; } - -.form-control-plaintext { - display: block; - width: 100%; - padding-top: 0.375rem; - padding-bottom: 0.375rem; - margin-bottom: 0; - line-height: 1.5; - color: #333333; - background-color: transparent; - border: solid transparent; - border-width: 1px 0; } - .form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg { - padding-right: 0; - padding-left: 0; } - -.form-control-sm { - height: calc(1.5em + 0.5rem + 2px); - padding: 0.25rem 0.5rem; - font-size: 0.875rem; - line-height: 1.5; - border-radius: 0.2rem; } - -.form-control-lg { - height: calc(1.5em + 1rem + 2px); - padding: 0.5rem 1rem; - font-size: 1.15rem; - line-height: 1.5; - border-radius: 0.3rem; } - -select.form-control[size], select.form-control[multiple] { - height: auto; } - -textarea.form-control { - height: auto; } - -.form-group { - margin-bottom: 1rem; } - -.form-text { - display: block; - margin-top: 0.25rem; } - -.form-row { - display: flex; - 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: 0.3rem; - margin-left: -1.25rem; } - .form-check-input:disabled ~ .form-check-label { - color: #6c757d; } - -.form-check-label { - margin-bottom: 0; } - -.form-check-inline { - display: inline-flex; - align-items: center; - padding-left: 0; - margin-right: 0.75rem; } - .form-check-inline .form-check-input { - position: static; - margin-top: 0; - margin-right: 0.3125rem; - margin-left: 0; } - -.valid-feedback { - display: none; - width: 100%; - margin-top: 0.25rem; - font-size: 90%; - color: #00a65a; } - -.valid-tooltip { - position: absolute; - top: 100%; - z-index: 5; - display: none; - max-width: 100%; - padding: 0.25rem 0.5rem; - margin-top: .1rem; - font-size: 0.875rem; - line-height: 1.5; - color: #fff; - background-color: rgba(0, 166, 90, 0.9); - border-radius: 0.25rem; } - -.was-validated .form-control:valid, .form-control.is-valid { - border-color: #00a65a; - padding-right: calc(1.5em + 0.75rem); - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2300a65a' 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: center right calc(0.375em + 0.1875rem); - background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } - .was-validated .form-control:valid:focus, .form-control.is-valid:focus { - border-color: #00a65a; - box-shadow: 0 0 0 0.2rem rgba(0, 166, 90, 0.25); } - .was-validated .form-control:valid ~ .valid-feedback, - .was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback, - .form-control.is-valid ~ .valid-tooltip { - display: block; } - -.was-validated textarea.form-control:valid, textarea.form-control.is-valid { - padding-right: calc(1.5em + 0.75rem); - background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); } - -.was-validated .custom-select:valid, .custom-select.is-valid { - border-color: #00a65a; - padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem); - background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2300a65a' 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") #fbfbfb no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } - .was-validated .custom-select:valid:focus, .custom-select.is-valid:focus { - border-color: #00a65a; - box-shadow: 0 0 0 0.2rem rgba(0, 166, 90, 0.25); } - .was-validated .custom-select:valid ~ .valid-feedback, - .was-validated .custom-select:valid ~ .valid-tooltip, .custom-select.is-valid ~ .valid-feedback, - .custom-select.is-valid ~ .valid-tooltip { - display: block; } - -.was-validated .form-control-file:valid ~ .valid-feedback, -.was-validated .form-control-file:valid ~ .valid-tooltip, .form-control-file.is-valid ~ .valid-feedback, -.form-control-file.is-valid ~ .valid-tooltip { - display: block; } - -.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label { - color: #00a65a; } - -.was-validated .form-check-input:valid ~ .valid-feedback, -.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback, -.form-check-input.is-valid ~ .valid-tooltip { - display: block; } - -.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label { - color: #00a65a; } - .was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before { - border-color: #00a65a; } - -.was-validated .custom-control-input:valid ~ .valid-feedback, -.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback, -.custom-control-input.is-valid ~ .valid-tooltip { - display: block; } - -.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before { - border-color: #00d976; - background-color: #00d976; } - -.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before { - box-shadow: 0 0 0 0.2rem rgba(0, 166, 90, 0.25); } - -.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before { - border-color: #00a65a; } - -.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label { - border-color: #00a65a; } - -.was-validated .custom-file-input:valid ~ .valid-feedback, -.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback, -.custom-file-input.is-valid ~ .valid-tooltip { - display: block; } - -.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label { - border-color: #00a65a; - box-shadow: 0 0 0 0.2rem rgba(0, 166, 90, 0.25); } - -.invalid-feedback { - display: none; - width: 100%; - margin-top: 0.25rem; - font-size: 90%; - color: #dd4b39; } - -.invalid-tooltip { - position: absolute; - top: 100%; - z-index: 5; - display: none; - max-width: 100%; - padding: 0.25rem 0.5rem; - margin-top: .1rem; - font-size: 0.875rem; - line-height: 1.5; - color: #fff; - background-color: rgba(221, 75, 57, 0.9); - border-radius: 0.25rem; } - -.was-validated .form-control:invalid, .form-control.is-invalid { - border-color: #dd4b39; - padding-right: calc(1.5em + 0.75rem); - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dd4b39' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dd4b39' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E"); - background-repeat: no-repeat; - background-position: center right calc(0.375em + 0.1875rem); - background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } - .was-validated .form-control:invalid:focus, .form-control.is-invalid:focus { - border-color: #dd4b39; - box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.25); } - .was-validated .form-control:invalid ~ .invalid-feedback, - .was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback, - .form-control.is-invalid ~ .invalid-tooltip { - display: block; } - -.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid { - padding-right: calc(1.5em + 0.75rem); - background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); } - -.was-validated .custom-select:invalid, .custom-select.is-invalid { - border-color: #dd4b39; - padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem); - background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dd4b39' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dd4b39' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E") #fbfbfb no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } - .was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus { - border-color: #dd4b39; - box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.25); } - .was-validated .custom-select:invalid ~ .invalid-feedback, - .was-validated .custom-select:invalid ~ .invalid-tooltip, .custom-select.is-invalid ~ .invalid-feedback, - .custom-select.is-invalid ~ .invalid-tooltip { - display: block; } - -.was-validated .form-control-file:invalid ~ .invalid-feedback, -.was-validated .form-control-file:invalid ~ .invalid-tooltip, .form-control-file.is-invalid ~ .invalid-feedback, -.form-control-file.is-invalid ~ .invalid-tooltip { - display: block; } - -.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label { - color: #dd4b39; } - -.was-validated .form-check-input:invalid ~ .invalid-feedback, -.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback, -.form-check-input.is-invalid ~ .invalid-tooltip { - display: block; } - -.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label { - color: #dd4b39; } - .was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before { - border-color: #dd4b39; } - -.was-validated .custom-control-input:invalid ~ .invalid-feedback, -.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback, -.custom-control-input.is-invalid ~ .invalid-tooltip { - display: block; } - -.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before { - border-color: #e47365; - background-color: #e47365; } - -.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before { - box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.25); } - -.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before { - border-color: #dd4b39; } - -.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label { - border-color: #dd4b39; } - -.was-validated .custom-file-input:invalid ~ .invalid-feedback, -.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback, -.custom-file-input.is-invalid ~ .invalid-tooltip { - display: block; } - -.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label { - border-color: #dd4b39; - box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.25); } - -.form-inline { - display: flex; - flex-flow: row wrap; - align-items: center; } - .form-inline .form-check { - width: 100%; } - @media (min-width: 1px) { - .form-inline label { - display: flex; - align-items: center; - justify-content: center; - margin-bottom: 0; } - .form-inline .form-group { - display: flex; - flex: 0 0 auto; - flex-flow: row wrap; - 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 .input-group, - .form-inline .custom-select { - width: auto; } - .form-inline .form-check { - display: flex; - align-items: center; - justify-content: center; - width: auto; - padding-left: 0; } - .form-inline .form-check-input { - position: relative; - flex-shrink: 0; - margin-top: 0; - margin-right: 0.25rem; - margin-left: 0; } - .form-inline .custom-control { - align-items: center; - justify-content: center; } - .form-inline .custom-control-label { - margin-bottom: 0; } } - -.btn, .swal2-popup .swal2-actions button { - display: inline-block; - font-weight: 600; - color: #333333; - text-align: center; - vertical-align: middle; - user-select: none; - background-color: transparent; - border: 1px solid transparent; - padding: 0.375rem 0.75rem; - font-size: 1rem; - line-height: 1.5; - border-radius: 0.25rem; - transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } - @media (prefers-reduced-motion: reduce) { - .btn, .swal2-popup .swal2-actions button { - transition: none; } } - .btn:hover, .swal2-popup .swal2-actions button:hover { - color: #333333; - text-decoration: none; } - .btn:focus, .swal2-popup .swal2-actions button:focus, .btn.focus, .swal2-popup .swal2-actions button.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.25); } - .btn.disabled, .swal2-popup .swal2-actions button.disabled, .btn:disabled, .swal2-popup .swal2-actions button:disabled { - opacity: 0.65; } - -a.btn.disabled, -fieldset:disabled a.btn { - pointer-events: none; } - -.btn-primary, .swal2-popup .swal2-actions button.swal2-confirm { - color: #fff; - background-color: #175DDC; - border-color: #175DDC; } - .btn-primary:hover, .swal2-popup .swal2-actions button.swal2-confirm:hover { - color: #fff; - background-color: #134eb9; - border-color: #1249ae; } - .btn-primary:focus, .swal2-popup .swal2-actions button.swal2-confirm:focus, .btn-primary.focus, .swal2-popup .swal2-actions button.focus.swal2-confirm { - box-shadow: 0 0 0 0.2rem rgba(58, 117, 225, 0.5); } - .btn-primary.disabled, .swal2-popup .swal2-actions button.disabled.swal2-confirm, .btn-primary:disabled, .swal2-popup .swal2-actions button.swal2-confirm:disabled { - color: #fff; - background-color: #175DDC; - border-color: #175DDC; } - .btn-primary:not(:disabled):not(.disabled):active, .swal2-popup .swal2-actions button.swal2-confirm:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active, .swal2-popup .swal2-actions button.swal2-confirm:not(:disabled):not(.disabled).active, - .show > .btn-primary.dropdown-toggle, - .swal2-popup .swal2-actions .show > button.dropdown-toggle.swal2-confirm { - color: #fff; - background-color: #1249ae; - border-color: #1145a2; } - .btn-primary:not(:disabled):not(.disabled):active:focus, .swal2-popup .swal2-actions button.swal2-confirm:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus, .swal2-popup .swal2-actions button.swal2-confirm:not(:disabled):not(.disabled).active:focus, - .show > .btn-primary.dropdown-toggle:focus, - .swal2-popup .swal2-actions .show > button.dropdown-toggle.swal2-confirm:focus { - box-shadow: 0 0 0 0.2rem rgba(58, 117, 225, 0.5); } - -.btn-secondary { - color: #212529; - background-color: #ced4da; - border-color: #ced4da; } - .btn-secondary:hover { - color: #212529; - background-color: #b8c1ca; - border-color: #b1bbc4; } - .btn-secondary:focus, .btn-secondary.focus { - box-shadow: 0 0 0 0.2rem rgba(180, 186, 191, 0.5); } - .btn-secondary.disabled, .btn-secondary:disabled { - color: #212529; - background-color: #ced4da; - border-color: #ced4da; } - .btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active, - .show > .btn-secondary.dropdown-toggle { - color: #212529; - background-color: #b1bbc4; - border-color: #aab4bf; } - .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 0.2rem rgba(180, 186, 191, 0.5); } - -.btn-success { - color: #fff; - background-color: #00a65a; - border-color: #00a65a; } - .btn-success:hover { - color: #fff; - background-color: #008045; - border-color: #00733e; } - .btn-success:focus, .btn-success.focus { - box-shadow: 0 0 0 0.2rem rgba(38, 179, 115, 0.5); } - .btn-success.disabled, .btn-success:disabled { - color: #fff; - background-color: #00a65a; - border-color: #00a65a; } - .btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active, - .show > .btn-success.dropdown-toggle { - color: #fff; - background-color: #00733e; - border-color: #006637; } - .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 0.2rem rgba(38, 179, 115, 0.5); } - -.btn-info { - color: #fff; - background-color: #555555; - border-color: #555555; } - .btn-info:hover { - color: #fff; - background-color: #424242; - border-color: #3c3c3c; } - .btn-info:focus, .btn-info.focus { - box-shadow: 0 0 0 0.2rem rgba(111, 111, 111, 0.5); } - .btn-info.disabled, .btn-info:disabled { - color: #fff; - background-color: #555555; - border-color: #555555; } - .btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active, - .show > .btn-info.dropdown-toggle { - color: #fff; - background-color: #3c3c3c; - border-color: #353535; } - .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 0.2rem rgba(111, 111, 111, 0.5); } - -.btn-warning { - color: #fff; - background-color: #bf7e16; - border-color: #bf7e16; } - .btn-warning:hover { - color: #fff; - background-color: #9d6712; - border-color: #916011; } - .btn-warning:focus, .btn-warning.focus { - box-shadow: 0 0 0 0.2rem rgba(201, 145, 57, 0.5); } - .btn-warning.disabled, .btn-warning:disabled { - color: #fff; - background-color: #bf7e16; - border-color: #bf7e16; } - .btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active, - .show > .btn-warning.dropdown-toggle { - color: #fff; - background-color: #916011; - border-color: #86580f; } - .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 0.2rem rgba(201, 145, 57, 0.5); } - -.btn-danger { - color: #fff; - background-color: #dd4b39; - border-color: #dd4b39; } - .btn-danger:hover { - color: #fff; - background-color: #cd3623; - border-color: #c23321; } - .btn-danger:focus, .btn-danger.focus { - box-shadow: 0 0 0 0.2rem rgba(226, 102, 87, 0.5); } - .btn-danger.disabled, .btn-danger:disabled { - color: #fff; - background-color: #dd4b39; - border-color: #dd4b39; } - .btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active, - .show > .btn-danger.dropdown-toggle { - color: #fff; - background-color: #c23321; - border-color: #b7301f; } - .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 0.2rem rgba(226, 102, 87, 0.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 { - box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.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 0.2rem rgba(216, 217, 219, 0.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 { - box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.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 0.2rem rgba(82, 88, 93, 0.5); } - -.btn-primary-accent { - color: #fff; - background-color: #1252A3; - border-color: #1252A3; } - .btn-primary-accent:hover { - color: #fff; - background-color: #0e4181; - border-color: #0d3b75; } - .btn-primary-accent:focus, .btn-primary-accent.focus { - box-shadow: 0 0 0 0.2rem rgba(54, 108, 177, 0.5); } - .btn-primary-accent.disabled, .btn-primary-accent:disabled { - color: #fff; - background-color: #1252A3; - border-color: #1252A3; } - .btn-primary-accent:not(:disabled):not(.disabled):active, .btn-primary-accent:not(:disabled):not(.disabled).active, - .show > .btn-primary-accent.dropdown-toggle { - color: #fff; - background-color: #0d3b75; - border-color: #0c356a; } - .btn-primary-accent:not(:disabled):not(.disabled):active:focus, .btn-primary-accent:not(:disabled):not(.disabled).active:focus, - .show > .btn-primary-accent.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(54, 108, 177, 0.5); } - -.btn-secondary-alt { - color: #fff; - background-color: #1A3B66; - border-color: #1A3B66; } - .btn-secondary-alt:hover { - color: #fff; - background-color: #122948; - border-color: #10233d; } - .btn-secondary-alt:focus, .btn-secondary-alt.focus { - box-shadow: 0 0 0 0.2rem rgba(60, 88, 125, 0.5); } - .btn-secondary-alt.disabled, .btn-secondary-alt:disabled { - color: #fff; - background-color: #1A3B66; - border-color: #1A3B66; } - .btn-secondary-alt:not(:disabled):not(.disabled):active, .btn-secondary-alt:not(:disabled):not(.disabled).active, - .show > .btn-secondary-alt.dropdown-toggle { - color: #fff; - background-color: #10233d; - border-color: #0d1e33; } - .btn-secondary-alt:not(:disabled):not(.disabled):active:focus, .btn-secondary-alt:not(:disabled):not(.disabled).active:focus, - .show > .btn-secondary-alt.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(60, 88, 125, 0.5); } - -.btn-outline-primary { - color: #175DDC; - border-color: #175DDC; } - .btn-outline-primary:hover { - color: #fff; - background-color: #175DDC; - border-color: #175DDC; } - .btn-outline-primary:focus, .btn-outline-primary.focus { - box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.5); } - .btn-outline-primary.disabled, .btn-outline-primary:disabled { - color: #175DDC; - 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: #175DDC; - border-color: #175DDC; } - .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 0.2rem rgba(23, 93, 220, 0.5); } - -.btn-outline-secondary, .swal2-popup .swal2-actions button.swal2-cancel { - color: #ced4da; - border-color: #ced4da; } - .btn-outline-secondary:hover, .swal2-popup .swal2-actions button.swal2-cancel:hover { - color: #212529; - background-color: #ced4da; - border-color: #ced4da; } - .btn-outline-secondary:focus, .swal2-popup .swal2-actions button.swal2-cancel:focus, .btn-outline-secondary.focus, .swal2-popup .swal2-actions button.focus.swal2-cancel { - box-shadow: 0 0 0 0.2rem rgba(206, 212, 218, 0.5); } - .btn-outline-secondary.disabled, .swal2-popup .swal2-actions button.disabled.swal2-cancel, .btn-outline-secondary:disabled, .swal2-popup .swal2-actions button.swal2-cancel:disabled { - color: #ced4da; - background-color: transparent; } - .btn-outline-secondary:not(:disabled):not(.disabled):active, .swal2-popup .swal2-actions button.swal2-cancel:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active, .swal2-popup .swal2-actions button.swal2-cancel:not(:disabled):not(.disabled).active, - .show > .btn-outline-secondary.dropdown-toggle, - .swal2-popup .swal2-actions .show > button.dropdown-toggle.swal2-cancel { - color: #212529; - background-color: #ced4da; - border-color: #ced4da; } - .btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .swal2-popup .swal2-actions button.swal2-cancel:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus, .swal2-popup .swal2-actions button.swal2-cancel:not(:disabled):not(.disabled).active:focus, - .show > .btn-outline-secondary.dropdown-toggle:focus, - .swal2-popup .swal2-actions .show > button.dropdown-toggle.swal2-cancel:focus { - box-shadow: 0 0 0 0.2rem rgba(206, 212, 218, 0.5); } - -.btn-outline-success { - color: #00a65a; - border-color: #00a65a; } - .btn-outline-success:hover { - color: #fff; - background-color: #00a65a; - border-color: #00a65a; } - .btn-outline-success:focus, .btn-outline-success.focus { - box-shadow: 0 0 0 0.2rem rgba(0, 166, 90, 0.5); } - .btn-outline-success.disabled, .btn-outline-success:disabled { - color: #00a65a; - 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: #00a65a; - border-color: #00a65a; } - .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 0.2rem rgba(0, 166, 90, 0.5); } - -.btn-outline-info { - color: #555555; - border-color: #555555; } - .btn-outline-info:hover { - color: #fff; - background-color: #555555; - border-color: #555555; } - .btn-outline-info:focus, .btn-outline-info.focus { - box-shadow: 0 0 0 0.2rem rgba(85, 85, 85, 0.5); } - .btn-outline-info.disabled, .btn-outline-info:disabled { - color: #555555; - 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: #555555; - border-color: #555555; } - .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 0.2rem rgba(85, 85, 85, 0.5); } - -.btn-outline-warning { - color: #bf7e16; - border-color: #bf7e16; } - .btn-outline-warning:hover { - color: #fff; - background-color: #bf7e16; - border-color: #bf7e16; } - .btn-outline-warning:focus, .btn-outline-warning.focus { - box-shadow: 0 0 0 0.2rem rgba(191, 126, 22, 0.5); } - .btn-outline-warning.disabled, .btn-outline-warning:disabled { - color: #bf7e16; - 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: #fff; - background-color: #bf7e16; - border-color: #bf7e16; } - .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 0.2rem rgba(191, 126, 22, 0.5); } - -.btn-outline-danger { - color: #dd4b39; - border-color: #dd4b39; } - .btn-outline-danger:hover { - color: #fff; - background-color: #dd4b39; - border-color: #dd4b39; } - .btn-outline-danger:focus, .btn-outline-danger.focus { - box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.5); } - .btn-outline-danger.disabled, .btn-outline-danger:disabled { - color: #dd4b39; - 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: #dd4b39; - border-color: #dd4b39; } - .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 0.2rem rgba(221, 75, 57, 0.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 0.2rem rgba(248, 249, 250, 0.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 0.2rem rgba(248, 249, 250, 0.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 0.2rem rgba(52, 58, 64, 0.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 0.2rem rgba(52, 58, 64, 0.5); } - -.btn-outline-primary-accent { - color: #1252A3; - border-color: #1252A3; } - .btn-outline-primary-accent:hover { - color: #fff; - background-color: #1252A3; - border-color: #1252A3; } - .btn-outline-primary-accent:focus, .btn-outline-primary-accent.focus { - box-shadow: 0 0 0 0.2rem rgba(18, 82, 163, 0.5); } - .btn-outline-primary-accent.disabled, .btn-outline-primary-accent:disabled { - color: #1252A3; - background-color: transparent; } - .btn-outline-primary-accent:not(:disabled):not(.disabled):active, .btn-outline-primary-accent:not(:disabled):not(.disabled).active, - .show > .btn-outline-primary-accent.dropdown-toggle { - color: #fff; - background-color: #1252A3; - border-color: #1252A3; } - .btn-outline-primary-accent:not(:disabled):not(.disabled):active:focus, .btn-outline-primary-accent:not(:disabled):not(.disabled).active:focus, - .show > .btn-outline-primary-accent.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(18, 82, 163, 0.5); } - -.btn-outline-secondary-alt { - color: #1A3B66; - border-color: #1A3B66; } - .btn-outline-secondary-alt:hover { - color: #fff; - background-color: #1A3B66; - border-color: #1A3B66; } - .btn-outline-secondary-alt:focus, .btn-outline-secondary-alt.focus { - box-shadow: 0 0 0 0.2rem rgba(26, 59, 102, 0.5); } - .btn-outline-secondary-alt.disabled, .btn-outline-secondary-alt:disabled { - color: #1A3B66; - background-color: transparent; } - .btn-outline-secondary-alt:not(:disabled):not(.disabled):active, .btn-outline-secondary-alt:not(:disabled):not(.disabled).active, - .show > .btn-outline-secondary-alt.dropdown-toggle { - color: #fff; - background-color: #1A3B66; - border-color: #1A3B66; } - .btn-outline-secondary-alt:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary-alt:not(:disabled):not(.disabled).active:focus, - .show > .btn-outline-secondary-alt.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(26, 59, 102, 0.5); } - -.btn-link { - font-weight: 400; - color: #175DDC; - text-decoration: none; } - .btn-link:hover { - color: #104097; - 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-lg, .btn-group-lg > .btn, .swal2-popup .swal2-actions .btn-group-lg > button { - padding: 0.5rem 1rem; - font-size: 1.15rem; - line-height: 1.5; - border-radius: 0.3rem; } - -.btn-sm, .btn-group-sm > .btn, .swal2-popup .swal2-actions .btn-group-sm > button { - padding: 0.25rem 0.5rem; - font-size: 0.875rem; - line-height: 1.5; - border-radius: 0.2rem; } - -.btn-block { - display: block; - width: 100%; } - .btn-block + .btn-block { - margin-top: 0.5rem; } - -input[type="submit"].btn-block, -input[type="reset"].btn-block, -input[type="button"].btn-block { - width: 100%; } - -.fade { - transition: opacity 0.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 0.35s ease; } - @media (prefers-reduced-motion: reduce) { - .collapsing { - transition: none; } } - -.dropup, -.dropright, -.dropdown, -.dropleft { - position: relative; } - -.dropdown-toggle { - white-space: nowrap; } - .dropdown-toggle::after { - display: inline-block; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0.3em solid; - border-right: 0.3em solid transparent; - border-bottom: 0; - border-left: 0.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: 0.5rem 0; - margin: 0.125rem 0 0; - font-size: 1rem; - color: #333333; - text-align: left; - list-style: none; - background-color: #fff; - background-clip: padding-box; - border: 1px solid rgba(0, 0, 0, 0.15); - border-radius: 0.25rem; } - -.dropdown-menu-left { - right: auto; - left: 0; } - -.dropdown-menu-right { - right: 0; - left: auto; } - -@media (min-width: 1px) { - .dropdown-menu-sm-left { - right: auto; - left: 0; } - .dropdown-menu-sm-right { - right: 0; - left: auto; } } - -@media (min-width: 2px) { - .dropdown-menu-md-left { - right: auto; - left: 0; } - .dropdown-menu-md-right { - right: 0; - left: auto; } } - -@media (min-width: 3px) { - .dropdown-menu-lg-left { - right: auto; - left: 0; } - .dropdown-menu-lg-right { - right: 0; - left: auto; } } - -@media (min-width: 4px) { - .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: 0.125rem; } - -.dropup .dropdown-toggle::after { - display: inline-block; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0; - border-right: 0.3em solid transparent; - border-bottom: 0.3em solid; - border-left: 0.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: 0.125rem; } - -.dropright .dropdown-toggle::after { - display: inline-block; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0.3em solid transparent; - border-right: 0; - border-bottom: 0.3em solid transparent; - border-left: 0.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: 0.125rem; } - -.dropleft .dropdown-toggle::after { - display: inline-block; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; } - -.dropleft .dropdown-toggle::after { - display: none; } - -.dropleft .dropdown-toggle::before { - display: inline-block; - margin-right: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0.3em solid transparent; - border-right: 0.3em solid; - border-bottom: 0.3em solid transparent; } - -.dropleft .dropdown-toggle:empty::after { - margin-left: 0; } - -.dropleft .dropdown-toggle::before { - vertical-align: 0; } - -.dropdown-menu[x-placement^="top"], .dropdown-menu[x-placement^="right"], .dropdown-menu[x-placement^="bottom"], .dropdown-menu[x-placement^="left"] { - right: auto; - bottom: auto; } - -.dropdown-divider { - height: 0; - margin: 0.5rem 0; - overflow: hidden; - border-top: 1px solid #e9ecef; } - -.dropdown-item { - display: block; - width: 100%; - padding: 0.25rem 1rem; - clear: both; - font-weight: 400; - color: #333333; - text-align: inherit; - white-space: nowrap; - background-color: transparent; - border: 0; } - .dropdown-item:hover, .dropdown-item:focus { - color: #16181b; - text-decoration: none; - background-color: rgba(0, 0, 0, 0.06); } - .dropdown-item.active, .dropdown-item:active { - color: #333333; - text-decoration: none; - background-color: rgba(0, 0, 0, 0.1); } - .dropdown-item.disabled, .dropdown-item:disabled { - color: #6c757d; - pointer-events: none; - background-color: transparent; } - -.dropdown-menu.show { - display: block; } - -.dropdown-header { - display: block; - padding: 0.5rem 1rem; - margin-bottom: 0; - font-size: 0.875rem; - color: #6c757d; - white-space: nowrap; } - -.dropdown-item-text { - display: block; - padding: 0.25rem 1rem; - color: #333333; } - -.btn-group, -.btn-group-vertical { - position: relative; - display: inline-flex; - vertical-align: middle; } - .btn-group > .btn, .swal2-popup .swal2-actions .btn-group > button, - .btn-group-vertical > .btn, - .swal2-popup .swal2-actions .btn-group-vertical > button { - position: relative; - flex: 1 1 auto; } - .btn-group > .btn:hover, .swal2-popup .swal2-actions .btn-group > button:hover, - .btn-group-vertical > .btn:hover, - .swal2-popup .swal2-actions .btn-group-vertical > button:hover { - z-index: 1; } - .btn-group > .btn:focus, .swal2-popup .swal2-actions .btn-group > button:focus, .btn-group > .btn:active, .swal2-popup .swal2-actions .btn-group > button:active, .btn-group > .btn.active, .swal2-popup .swal2-actions .btn-group > button.active, - .btn-group-vertical > .btn:focus, - .swal2-popup .swal2-actions .btn-group-vertical > button:focus, - .btn-group-vertical > .btn:active, - .swal2-popup .swal2-actions .btn-group-vertical > button:active, - .btn-group-vertical > .btn.active, - .swal2-popup .swal2-actions .btn-group-vertical > button.active { - z-index: 1; } - -.btn-toolbar { - display: flex; - flex-wrap: wrap; - justify-content: flex-start; } - .btn-toolbar .input-group { - width: auto; } - -.btn-group > .btn:not(:first-child), .swal2-popup .swal2-actions .btn-group > button:not(:first-child), -.btn-group > .btn-group:not(:first-child) { - margin-left: -1px; } - -.btn-group > .btn:not(:last-child):not(.dropdown-toggle), .swal2-popup .swal2-actions .btn-group > button:not(:last-child):not(.dropdown-toggle), -.btn-group > .btn-group:not(:last-child) > .btn, -.swal2-popup .swal2-actions .btn-group > .btn-group:not(:last-child) > button { - border-top-right-radius: 0; - border-bottom-right-radius: 0; } - -.btn-group > .btn:not(:first-child), .swal2-popup .swal2-actions .btn-group > button:not(:first-child), -.btn-group > .btn-group:not(:first-child) > .btn, -.swal2-popup .swal2-actions .btn-group > .btn-group:not(:first-child) > button { - border-top-left-radius: 0; - border-bottom-left-radius: 0; } - -.dropdown-toggle-split { - padding-right: 0.5625rem; - padding-left: 0.5625rem; } - .dropdown-toggle-split::after, - .dropup .dropdown-toggle-split::after, - .dropright .dropdown-toggle-split::after { - margin-left: 0; } - .dropleft .dropdown-toggle-split::before { - margin-right: 0; } - -.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split, .swal2-popup .swal2-actions .btn-group-sm > button + .dropdown-toggle-split { - padding-right: 0.375rem; - padding-left: 0.375rem; } - -.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split, .swal2-popup .swal2-actions .btn-group-lg > button + .dropdown-toggle-split { - padding-right: 0.75rem; - padding-left: 0.75rem; } - -.btn-group-vertical { - flex-direction: column; - align-items: flex-start; - justify-content: center; } - - .btn-group-vertical > .btn, - .swal2-popup .swal2-actions .btn-group-vertical > button, - .btn-group-vertical > .btn-group { - width: 100%; } - .btn-group-vertical > .btn:not(:first-child), .swal2-popup .swal2-actions .btn-group-vertical > button:not(:first-child), - .btn-group-vertical > .btn-group:not(:first-child) { - margin-top: -1px; } - .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), .swal2-popup .swal2-actions .btn-group-vertical > button:not(:last-child):not(.dropdown-toggle), - .btn-group-vertical > .btn-group:not(:last-child) > .btn, - .swal2-popup .swal2-actions .btn-group-vertical > .btn-group:not(:last-child) > button { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; } - .btn-group-vertical > .btn:not(:first-child), .swal2-popup .swal2-actions .btn-group-vertical > button:not(:first-child), - .btn-group-vertical > .btn-group:not(:first-child) > .btn, - .swal2-popup .swal2-actions .btn-group-vertical > .btn-group:not(:first-child) > button { - border-top-left-radius: 0; - border-top-right-radius: 0; } - -.btn-group-toggle > .btn, .swal2-popup .swal2-actions .btn-group-toggle > button, -.btn-group-toggle > .btn-group > .btn, -.swal2-popup .swal2-actions .btn-group-toggle > .btn-group > button { - margin-bottom: 0; } - .btn-group-toggle > .btn input[type="radio"], .swal2-popup .swal2-actions .btn-group-toggle > button input[type="radio"], - .btn-group-toggle > .btn input[type="checkbox"], - .swal2-popup .swal2-actions .btn-group-toggle > button input[type="checkbox"], - .btn-group-toggle > .btn-group > .btn input[type="radio"], - .swal2-popup .swal2-actions .btn-group-toggle > .btn-group > button input[type="radio"], - .btn-group-toggle > .btn-group > .btn input[type="checkbox"], - .swal2-popup .swal2-actions .btn-group-toggle > .btn-group > button input[type="checkbox"] { - position: absolute; - clip: rect(0, 0, 0, 0); - pointer-events: none; } - -.input-group { - position: relative; - display: flex; - flex-wrap: wrap; - align-items: stretch; - width: 100%; } - .input-group > .form-control, - .input-group > .form-control-plaintext, - .input-group > .custom-select, - .input-group > .custom-file { - position: relative; - flex: 1 1 auto; - width: 1%; - margin-bottom: 0; } - .input-group > .form-control + .form-control, - .input-group > .form-control + .custom-select, - .input-group > .form-control + .custom-file, - .input-group > .form-control-plaintext + .form-control, - .input-group > .form-control-plaintext + .custom-select, - .input-group > .form-control-plaintext + .custom-file, - .input-group > .custom-select + .form-control, - .input-group > .custom-select + .custom-select, - .input-group > .custom-select + .custom-file, - .input-group > .custom-file + .form-control, - .input-group > .custom-file + .custom-select, - .input-group > .custom-file + .custom-file { - margin-left: -1px; } - .input-group > .form-control:focus, - .input-group > .custom-select:focus, - .input-group > .custom-file .custom-file-input:focus ~ .custom-file-label { - z-index: 3; } - .input-group > .custom-file .custom-file-input:focus { - z-index: 4; } - .input-group > .form-control:not(:last-child), - .input-group > .custom-select:not(:last-child) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; } - .input-group > .form-control:not(:first-child), - .input-group > .custom-select:not(:first-child) { - border-top-left-radius: 0; - border-bottom-left-radius: 0; } - .input-group > .custom-file { - display: flex; - 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-prepend, -.input-group-append { - display: flex; } - .input-group-prepend .btn, .input-group-prepend .swal2-popup .swal2-actions button, .swal2-popup .swal2-actions .input-group-prepend button, - .input-group-append .btn, - .input-group-append .swal2-popup .swal2-actions button, - .swal2-popup .swal2-actions .input-group-append button { - position: relative; - z-index: 2; } - .input-group-prepend .btn:focus, .input-group-prepend .swal2-popup .swal2-actions button:focus, .swal2-popup .swal2-actions .input-group-prepend button:focus, - .input-group-append .btn:focus, - .input-group-append .swal2-popup .swal2-actions button:focus, - .swal2-popup .swal2-actions .input-group-append button:focus { - z-index: 3; } - .input-group-prepend .btn + .btn, .input-group-prepend .swal2-popup .swal2-actions button + .btn, .swal2-popup .swal2-actions .input-group-prepend button + .btn, .input-group-prepend .swal2-popup .swal2-actions .btn + button, .swal2-popup .swal2-actions .input-group-prepend .btn + button, .input-group-prepend .swal2-popup .swal2-actions button + button, .swal2-popup .swal2-actions .input-group-prepend button + button, - .input-group-prepend .btn + .input-group-text, - .input-group-prepend .swal2-popup .swal2-actions button + .input-group-text, - .swal2-popup .swal2-actions .input-group-prepend button + .input-group-text, - .input-group-prepend .input-group-text + .input-group-text, - .input-group-prepend .input-group-text + .btn, - .input-group-prepend .swal2-popup .swal2-actions .input-group-text + button, - .swal2-popup .swal2-actions .input-group-prepend .input-group-text + button, - .input-group-append .btn + .btn, - .input-group-append .swal2-popup .swal2-actions button + .btn, - .swal2-popup .swal2-actions .input-group-append button + .btn, - .input-group-append .swal2-popup .swal2-actions .btn + button, - .swal2-popup .swal2-actions .input-group-append .btn + button, - .input-group-append .swal2-popup .swal2-actions button + button, - .swal2-popup .swal2-actions .input-group-append button + button, - .input-group-append .btn + .input-group-text, - .input-group-append .swal2-popup .swal2-actions button + .input-group-text, - .swal2-popup .swal2-actions .input-group-append button + .input-group-text, - .input-group-append .input-group-text + .input-group-text, - .input-group-append .input-group-text + .btn, - .input-group-append .swal2-popup .swal2-actions .input-group-text + button, - .swal2-popup .swal2-actions .input-group-append .input-group-text + button { - margin-left: -1px; } - -.input-group-prepend { - margin-right: -1px; } - -.input-group-append { - margin-left: -1px; } - -.input-group-text { - display: flex; - align-items: center; - padding: 0.375rem 0.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: 0.25rem; } - .input-group-text input[type="radio"], - .input-group-text input[type="checkbox"] { - margin-top: 0; } - -.input-group-lg > .form-control:not(textarea), -.input-group-lg > .custom-select { - height: calc(1.5em + 1rem + 2px); } - -.input-group-lg > .form-control, -.input-group-lg > .custom-select, -.input-group-lg > .input-group-prepend > .input-group-text, -.input-group-lg > .input-group-append > .input-group-text, -.input-group-lg > .input-group-prepend > .btn, -.swal2-popup .swal2-actions .input-group-lg > .input-group-prepend > button, -.input-group-lg > .input-group-append > .btn, -.swal2-popup .swal2-actions .input-group-lg > .input-group-append > button { - padding: 0.5rem 1rem; - font-size: 1.15rem; - line-height: 1.5; - border-radius: 0.3rem; } - -.input-group-sm > .form-control:not(textarea), -.input-group-sm > .custom-select { - height: calc(1.5em + 0.5rem + 2px); } - -.input-group-sm > .form-control, -.input-group-sm > .custom-select, -.input-group-sm > .input-group-prepend > .input-group-text, -.input-group-sm > .input-group-append > .input-group-text, -.input-group-sm > .input-group-prepend > .btn, -.swal2-popup .swal2-actions .input-group-sm > .input-group-prepend > button, -.input-group-sm > .input-group-append > .btn, -.swal2-popup .swal2-actions .input-group-sm > .input-group-append > button { - padding: 0.25rem 0.5rem; - font-size: 0.875rem; - line-height: 1.5; - border-radius: 0.2rem; } - -.input-group-lg > .custom-select, -.input-group-sm > .custom-select { - padding-right: 1.75rem; } - -.input-group > .input-group-prepend > .btn, .swal2-popup .swal2-actions .input-group > .input-group-prepend > button, -.input-group > .input-group-prepend > .input-group-text, -.input-group > .input-group-append:not(:last-child) > .btn, -.swal2-popup .swal2-actions .input-group > .input-group-append:not(:last-child) > button, -.input-group > .input-group-append:not(:last-child) > .input-group-text, -.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle), -.swal2-popup .swal2-actions .input-group > .input-group-append:last-child > button:not(:last-child):not(.dropdown-toggle), -.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; } - -.input-group > .input-group-append > .btn, .swal2-popup .swal2-actions .input-group > .input-group-append > button, -.input-group > .input-group-append > .input-group-text, -.input-group > .input-group-prepend:not(:first-child) > .btn, -.swal2-popup .swal2-actions .input-group > .input-group-prepend:not(:first-child) > button, -.input-group > .input-group-prepend:not(:first-child) > .input-group-text, -.input-group > .input-group-prepend:first-child > .btn:not(:first-child), -.swal2-popup .swal2-actions .input-group > .input-group-prepend:first-child > button:not(:first-child), -.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) { - 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: inline-flex; - margin-right: 1rem; } - -.custom-control-input { - position: absolute; - z-index: -1; - opacity: 0; } - .custom-control-input:checked ~ .custom-control-label::before { - color: #fff; - border-color: #175DDC; - background-color: #175DDC; } - .custom-control-input:focus ~ .custom-control-label::before { - box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.25); } - .custom-control-input:focus:not(:checked) ~ .custom-control-label::before { - border-color: #81a9f2; } - .custom-control-input:not(:disabled):active ~ .custom-control-label::before { - color: #fff; - background-color: #afc8f7; - border-color: #afc8f7; } - .custom-control-input:disabled ~ .custom-control-label { - color: #6c757d; } - .custom-control-input:disabled ~ .custom-control-label::before { - background-color: #e0e0e0; } - -.custom-control-label { - position: relative; - margin-bottom: 0; - vertical-align: top; } - .custom-control-label::before { - position: absolute; - top: 0.25rem; - left: -1.5rem; - display: block; - width: 1rem; - height: 1rem; - pointer-events: none; - content: ""; - background-color: #fbfbfb; - border: #adb5bd solid 1px; } - .custom-control-label::after { - position: absolute; - top: 0.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: 0.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' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e"); } - -.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before { - border-color: #175DDC; - background-color: #175DDC; } - -.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' 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(23, 93, 220, 0.5); } - -.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before { - background-color: rgba(23, 93, 220, 0.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' 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(23, 93, 220, 0.5); } - -.custom-switch { - padding-left: 2.25rem; } - .custom-switch .custom-control-label::before { - left: -2.25rem; - width: 1.75rem; - pointer-events: all; - border-radius: 0.5rem; } - .custom-switch .custom-control-label::after { - top: calc(0.25rem + 2px); - left: calc(-2.25rem + 2px); - width: calc(1rem - 4px); - height: calc(1rem - 4px); - background-color: #adb5bd; - border-radius: 0.5rem; - transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.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: #fbfbfb; - transform: translateX(0.75rem); } - .custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before { - background-color: rgba(23, 93, 220, 0.5); } - -.custom-select { - display: inline-block; - width: 100%; - height: calc(1.5em + 0.75rem + 2px); - padding: 0.375rem 1.75rem 0.375rem 0.75rem; - font-size: 1rem; - font-weight: 400; - line-height: 1.5; - color: #495057; - vertical-align: middle; - background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px; - background-color: #fbfbfb; - border: 1px solid #ced4da; - border-radius: 0.25rem; - appearance: none; } - .custom-select:focus { - border-color: #81a9f2; - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.25); } - .custom-select:focus::-ms-value { - color: #495057; - background-color: #fbfbfb; } - .custom-select[multiple], .custom-select[size]:not([size="1"]) { - height: auto; - padding-right: 0.75rem; - background-image: none; } - .custom-select:disabled { - color: #6c757d; - background-color: #e9ecef; } - .custom-select::-ms-expand { - display: none; } - -.custom-select-sm { - height: calc(1.5em + 0.5rem + 2px); - padding-top: 0.25rem; - padding-bottom: 0.25rem; - padding-left: 0.5rem; - font-size: 0.875rem; } - -.custom-select-lg { - height: calc(1.5em + 1rem + 2px); - padding-top: 0.5rem; - padding-bottom: 0.5rem; - padding-left: 1rem; - font-size: 1.15rem; } - -.custom-file { - position: relative; - display: inline-block; - width: 100%; - height: calc(1.5em + 0.75rem + 2px); - margin-bottom: 0; } - -.custom-file-input { - position: relative; - z-index: 2; - width: 100%; - height: calc(1.5em + 0.75rem + 2px); - margin: 0; - opacity: 0; } - .custom-file-input:focus ~ .custom-file-label { - border-color: #81a9f2; - box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.25); } - .custom-file-input:disabled ~ .custom-file-label { - background-color: #e0e0e0; } - .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 + 0.75rem + 2px); - padding: 0.375rem 0.75rem; - font-weight: 400; - line-height: 1.5; - color: #495057; - background-color: #fbfbfb; - border: 1px solid #ced4da; - border-radius: 0.25rem; } - .custom-file-label::after { - position: absolute; - top: 0; - right: 0; - bottom: 0; - z-index: 3; - display: block; - height: calc(1.5em + 0.75rem); - padding: 0.375rem 0.75rem; - line-height: 1.5; - color: #495057; - content: "Browse"; - background-color: #e9ecef; - border-left: inherit; - border-radius: 0 0.25rem 0.25rem 0; } - -.custom-range { - width: 100%; - height: calc(1rem + 0.4rem); - padding: 0; - background-color: transparent; - appearance: none; } - .custom-range:focus { - outline: none; } - .custom-range:focus::-webkit-slider-thumb { - box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(23, 93, 220, 0.25); } - .custom-range:focus::-moz-range-thumb { - box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(23, 93, 220, 0.25); } - .custom-range:focus::-ms-thumb { - box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(23, 93, 220, 0.25); } - .custom-range::-moz-focus-outer { - border: 0; } - .custom-range::-webkit-slider-thumb { - width: 1rem; - height: 1rem; - margin-top: -0.25rem; - background-color: #175DDC; - border: 0; - border-radius: 1rem; - transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; - appearance: none; } - @media (prefers-reduced-motion: reduce) { - .custom-range::-webkit-slider-thumb { - transition: none; } } - .custom-range::-webkit-slider-thumb:active { - background-color: #afc8f7; } - .custom-range::-webkit-slider-runnable-track { - width: 100%; - height: 0.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: #175DDC; - border: 0; - border-radius: 1rem; - transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; - appearance: none; } - @media (prefers-reduced-motion: reduce) { - .custom-range::-moz-range-thumb { - transition: none; } } - .custom-range::-moz-range-thumb:active { - background-color: #afc8f7; } - .custom-range::-moz-range-track { - width: 100%; - height: 0.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: 0.2rem; - margin-left: 0.2rem; - background-color: #175DDC; - border: 0; - border-radius: 1rem; - transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; - appearance: none; } - @media (prefers-reduced-motion: reduce) { - .custom-range::-ms-thumb { - transition: none; } } - .custom-range::-ms-thumb:active { - background-color: #afc8f7; } - .custom-range::-ms-track { - width: 100%; - height: 0.5rem; - color: transparent; - cursor: pointer; - background-color: transparent; - border-color: transparent; - border-width: 0.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 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } - @media (prefers-reduced-motion: reduce) { - .custom-control-label::before, - .custom-file-label, - .custom-select { - transition: none; } } - -.nav { - display: flex; - flex-wrap: wrap; - padding-left: 0; - margin-bottom: 0; - list-style: none; } - -.nav-link { - display: block; - padding: 0.5rem 1rem; } - .nav-link:hover, .nav-link:focus { - 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: 0.25rem; - border-top-right-radius: 0.25rem; } - .nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { - border-color: #e9ecef #e9ecef #dee2e6; } - .nav-tabs .nav-link.disabled { - color: #6c757d; - background-color: transparent; - border-color: transparent; } - .nav-tabs .nav-link.active, - .nav-tabs .nav-item.show .nav-link { - color: #495057; - background-color: #ffffff; - border-color: #dee2e6 #dee2e6 #ffffff; } - .nav-tabs .dropdown-menu { - margin-top: -1px; - border-top-left-radius: 0; - border-top-right-radius: 0; } - -.nav-pills .nav-link { - border-radius: 0.25rem; } - -.nav-pills .nav-link.active, -.nav-pills .show > .nav-link { - color: #fff; - background-color: #175DDC; } - -.nav-fill .nav-item { - flex: 1 1 auto; - text-align: center; } - -.nav-justified .nav-item { - flex-basis: 0; - flex-grow: 1; - text-align: center; } - -.tab-content > .tab-pane { - display: none; } - -.tab-content > .active { - display: block; } - -.navbar { - position: relative; - display: flex; - flex-wrap: wrap; - align-items: center; - justify-content: space-between; - padding: 0.75rem 1rem; } - .navbar > .container, - .navbar > .container-fluid { - display: flex; - flex-wrap: wrap; - align-items: center; - justify-content: space-between; } - -.navbar-brand { - display: inline-block; - padding-top: 0; - padding-bottom: 0; - margin-right: 1rem; - font-size: 2.1875rem; - line-height: inherit; - white-space: nowrap; } - .navbar-brand:hover, .navbar-brand:focus { - text-decoration: none; } - -.navbar-nav { - display: flex; - 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: 0.5rem; - padding-bottom: 0.5rem; } - -.navbar-collapse { - flex-basis: 100%; - flex-grow: 1; - align-items: center; } - -.navbar-toggler { - padding: 0.25rem 0.75rem; - font-size: 1.15rem; - line-height: 1; - background-color: transparent; - border: 1px solid transparent; - border-radius: 0.25rem; } - .navbar-toggler:hover, .navbar-toggler:focus { - 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: 0.98px) { - .navbar-expand-sm > .container, - .navbar-expand-sm > .container-fluid { - padding-right: 0; - padding-left: 0; } } - -@media (min-width: 1px) { - .navbar-expand-sm { - flex-flow: row nowrap; - justify-content: flex-start; } - .navbar-expand-sm .navbar-nav { - flex-direction: row; } - .navbar-expand-sm .navbar-nav .dropdown-menu { - position: absolute; } - .navbar-expand-sm .navbar-nav .nav-link { - padding-right: 0.8rem; - padding-left: 0.8rem; } - .navbar-expand-sm > .container, - .navbar-expand-sm > .container-fluid { - flex-wrap: nowrap; } - .navbar-expand-sm .navbar-collapse { - display: flex !important; - flex-basis: auto; } - .navbar-expand-sm .navbar-toggler { - display: none; } } - -@media (max-width: 1.98px) { - .navbar-expand-md > .container, - .navbar-expand-md > .container-fluid { - padding-right: 0; - padding-left: 0; } } - -@media (min-width: 2px) { - .navbar-expand-md { - flex-flow: row nowrap; - justify-content: flex-start; } - .navbar-expand-md .navbar-nav { - flex-direction: row; } - .navbar-expand-md .navbar-nav .dropdown-menu { - position: absolute; } - .navbar-expand-md .navbar-nav .nav-link { - padding-right: 0.8rem; - padding-left: 0.8rem; } - .navbar-expand-md > .container, - .navbar-expand-md > .container-fluid { - flex-wrap: nowrap; } - .navbar-expand-md .navbar-collapse { - display: flex !important; - flex-basis: auto; } - .navbar-expand-md .navbar-toggler { - display: none; } } - -@media (max-width: 2.98px) { - .navbar-expand-lg > .container, - .navbar-expand-lg > .container-fluid { - padding-right: 0; - padding-left: 0; } } - -@media (min-width: 3px) { - .navbar-expand-lg { - flex-flow: row nowrap; - justify-content: flex-start; } - .navbar-expand-lg .navbar-nav { - flex-direction: row; } - .navbar-expand-lg .navbar-nav .dropdown-menu { - position: absolute; } - .navbar-expand-lg .navbar-nav .nav-link { - padding-right: 0.8rem; - padding-left: 0.8rem; } - .navbar-expand-lg > .container, - .navbar-expand-lg > .container-fluid { - flex-wrap: nowrap; } - .navbar-expand-lg .navbar-collapse { - display: flex !important; - flex-basis: auto; } - .navbar-expand-lg .navbar-toggler { - display: none; } } - -@media (max-width: 3.98px) { - .navbar-expand-xl > .container, - .navbar-expand-xl > .container-fluid { - padding-right: 0; - padding-left: 0; } } - -@media (min-width: 4px) { - .navbar-expand-xl { - flex-flow: row nowrap; - justify-content: flex-start; } - .navbar-expand-xl .navbar-nav { - flex-direction: row; } - .navbar-expand-xl .navbar-nav .dropdown-menu { - position: absolute; } - .navbar-expand-xl .navbar-nav .nav-link { - padding-right: 0.8rem; - padding-left: 0.8rem; } - .navbar-expand-xl > .container, - .navbar-expand-xl > .container-fluid { - flex-wrap: nowrap; } - .navbar-expand-xl .navbar-collapse { - display: flex !important; - flex-basis: auto; } - .navbar-expand-xl .navbar-toggler { - display: none; } } - -.navbar-expand { - flex-flow: row nowrap; - justify-content: flex-start; } - .navbar-expand > .container, - .navbar-expand > .container-fluid { - padding-right: 0; - padding-left: 0; } - .navbar-expand .navbar-nav { - flex-direction: row; } - .navbar-expand .navbar-nav .dropdown-menu { - position: absolute; } - .navbar-expand .navbar-nav .nav-link { - padding-right: 0.8rem; - padding-left: 0.8rem; } - .navbar-expand > .container, - .navbar-expand > .container-fluid { - flex-wrap: nowrap; } - .navbar-expand .navbar-collapse { - display: flex !important; - flex-basis: auto; } - .navbar-expand .navbar-toggler { - display: none; } - -.navbar-light .navbar-brand { - color: rgba(0, 0, 0, 0.9); } - .navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus { - color: rgba(0, 0, 0, 0.9); } - -.navbar-light .navbar-nav .nav-link { - color: rgba(0, 0, 0, 0.5); } - .navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus { - color: rgba(0, 0, 0, 0.7); } - .navbar-light .navbar-nav .nav-link.disabled { - color: rgba(0, 0, 0, 0.3); } - -.navbar-light .navbar-nav .show > .nav-link, -.navbar-light .navbar-nav .active > .nav-link, -.navbar-light .navbar-nav .nav-link.show, -.navbar-light .navbar-nav .nav-link.active { - color: rgba(0, 0, 0, 0.9); } - -.navbar-light .navbar-toggler { - color: rgba(0, 0, 0, 0.5); - border-color: rgba(0, 0, 0, 0.1); } - -.navbar-light .navbar-toggler-icon { - background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); } - -.navbar-light .navbar-text { - color: rgba(0, 0, 0, 0.5); } - .navbar-light .navbar-text a { - color: rgba(0, 0, 0, 0.9); } - .navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus { - color: rgba(0, 0, 0, 0.9); } - -.navbar-dark .navbar-brand { - color: #fff; } - .navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus { - color: #fff; } - -.navbar-dark .navbar-nav .nav-link { - color: rgba(255, 255, 255, 0.7); } - .navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus { - color: rgba(255, 255, 255, 0.9); } - .navbar-dark .navbar-nav .nav-link.disabled { - color: rgba(255, 255, 255, 0.25); } - -.navbar-dark .navbar-nav .show > .nav-link, -.navbar-dark .navbar-nav .active > .nav-link, -.navbar-dark .navbar-nav .nav-link.show, -.navbar-dark .navbar-nav .nav-link.active { - color: #fff; } - -.navbar-dark .navbar-toggler { - color: rgba(255, 255, 255, 0.7); - border-color: rgba(255, 255, 255, 0.1); } - -.navbar-dark .navbar-toggler-icon { - background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.7)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); } - -.navbar-dark .navbar-text { - color: rgba(255, 255, 255, 0.7); } - .navbar-dark .navbar-text a { - color: #fff; } - .navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus { - color: #fff; } - -.card { - position: relative; - display: flex; - flex-direction: column; - min-width: 0; - word-wrap: break-word; - background-color: #fff; - background-clip: border-box; - border: 1px solid rgba(0, 0, 0, 0.125); - border-radius: 0.25rem; } - .card > hr { - margin-right: 0; - margin-left: 0; } - .card > .list-group:first-child .list-group-item:first-child { - border-top-left-radius: 0.25rem; - border-top-right-radius: 0.25rem; } - .card > .list-group:last-child .list-group-item:last-child { - border-bottom-right-radius: 0.25rem; - border-bottom-left-radius: 0.25rem; } - -.card-body { - flex: 1 1 auto; - padding: 1.25rem; } - -.card-title { - margin-bottom: 0.6rem; } - -.card-subtitle { - margin-top: -0.3rem; - 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: 0.6rem 1.25rem; - margin-bottom: 0; - background-color: rgba(0, 0, 0, 0.03); - border-bottom: 1px solid rgba(0, 0, 0, 0.125); } - .card-header:first-child { - border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; } - .card-header + .list-group .list-group-item:first-child { - border-top: 0; } - -.card-footer { - padding: 0.6rem 1.25rem; - background-color: rgba(0, 0, 0, 0.03); - border-top: 1px solid rgba(0, 0, 0, 0.125); } - .card-footer:last-child { - border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); } - -.card-header-tabs { - margin-right: -0.625rem; - margin-bottom: -0.6rem; - margin-left: -0.625rem; - border-bottom: 0; } - -.card-header-pills { - margin-right: -0.625rem; - margin-left: -0.625rem; } - -.card-img-overlay { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - padding: 1.25rem; } - -.card-img { - width: 100%; - border-radius: calc(0.25rem - 1px); } - -.card-img-top { - width: 100%; - border-top-left-radius: calc(0.25rem - 1px); - border-top-right-radius: calc(0.25rem - 1px); } - -.card-img-bottom { - width: 100%; - border-bottom-right-radius: calc(0.25rem - 1px); - border-bottom-left-radius: calc(0.25rem - 1px); } - -.card-deck { - display: flex; - flex-direction: column; } - .card-deck .card { - margin-bottom: 10px; } - @media (min-width: 1px) { - .card-deck { - flex-flow: row wrap; - margin-right: -10px; - margin-left: -10px; } - .card-deck .card { - display: flex; - flex: 1 0 0%; - flex-direction: column; - margin-right: 10px; - margin-bottom: 0; - margin-left: 10px; } } - -.card-group { - display: flex; - flex-direction: column; } - .card-group > .card { - margin-bottom: 10px; } - @media (min-width: 1px) { - .card-group { - flex-flow: row wrap; } - .card-group > .card { - 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-img-top, - .card-group > .card:not(:last-child) .card-header { - border-top-right-radius: 0; } - .card-group > .card:not(:last-child) .card-img-bottom, - .card-group > .card:not(:last-child) .card-footer { - 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-img-top, - .card-group > .card:not(:first-child) .card-header { - border-top-left-radius: 0; } - .card-group > .card:not(:first-child) .card-img-bottom, - .card-group > .card:not(:first-child) .card-footer { - border-bottom-left-radius: 0; } } - -.card-columns .card { - margin-bottom: 0.6rem; } - -@media (min-width: 1px) { - .card-columns { - column-count: 3; - column-gap: 1.25rem; - orphans: 1; - widows: 1; } - .card-columns .card { - display: inline-block; - width: 100%; } } - -.accordion > .card { - overflow: hidden; } - .accordion > .card:not(:first-of-type) .card-header:first-child { - border-radius: 0; } - .accordion > .card:not(:first-of-type):not(:last-of-type) { - border-bottom: 0; - border-radius: 0; } - .accordion > .card:first-of-type { - border-bottom: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; } - .accordion > .card:last-of-type { - border-top-left-radius: 0; - border-top-right-radius: 0; } - .accordion > .card .card-header { - margin-bottom: -1px; } - -.breadcrumb { - display: flex; - flex-wrap: wrap; - padding: 0.75rem 1rem; - margin-bottom: 1rem; - list-style: none; - background-color: #e9ecef; - border-radius: 0.25rem; } - -.breadcrumb-item + .breadcrumb-item { - padding-left: 0.5rem; } - .breadcrumb-item + .breadcrumb-item::before { - display: inline-block; - padding-right: 0.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: flex; - padding-left: 0; - list-style: none; - border-radius: 0.25rem; } - -.page-link { - position: relative; - display: block; - padding: 0.5rem 0.75rem; - margin-left: -1px; - line-height: 1.25; - color: #175DDC; - background-color: #fff; - border: 1px solid #dee2e6; } - .page-link:hover { - z-index: 2; - color: #104097; - text-decoration: none; - background-color: #e9ecef; - border-color: #dee2e6; } - .page-link:focus { - z-index: 2; - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.25); } - -.page-item:first-child .page-link { - margin-left: 0; - border-top-left-radius: 0.25rem; - border-bottom-left-radius: 0.25rem; } - -.page-item:last-child .page-link { - border-top-right-radius: 0.25rem; - border-bottom-right-radius: 0.25rem; } - -.page-item.active .page-link { - z-index: 1; - color: #fff; - background-color: #175DDC; - border-color: #175DDC; } - -.page-item.disabled .page-link { - color: #6c757d; - pointer-events: none; - cursor: auto; - background-color: #fff; - border-color: #dee2e6; } - -.pagination-lg .page-link { - padding: 0.75rem 1.5rem; - font-size: 1.15rem; - line-height: 1.5; } - -.pagination-lg .page-item:first-child .page-link { - border-top-left-radius: 0.3rem; - border-bottom-left-radius: 0.3rem; } - -.pagination-lg .page-item:last-child .page-link { - border-top-right-radius: 0.3rem; - border-bottom-right-radius: 0.3rem; } - -.pagination-sm .page-link { - padding: 0.25rem 0.5rem; - font-size: 0.875rem; - line-height: 1.5; } - -.pagination-sm .page-item:first-child .page-link { - border-top-left-radius: 0.2rem; - border-bottom-left-radius: 0.2rem; } - -.pagination-sm .page-item:last-child .page-link { - border-top-right-radius: 0.2rem; - border-bottom-right-radius: 0.2rem; } - -.badge { - display: inline-block; - padding: 0.25em 0.4em; - font-size: 75%; - font-weight: 700; - line-height: 1; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: 0.25rem; - transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } - @media (prefers-reduced-motion: reduce) { - .badge { - transition: none; } } - a.badge:hover, a.badge:focus { - text-decoration: none; } - .badge:empty { - display: none; } - -.btn .badge, .swal2-popup .swal2-actions button .badge { - position: relative; - top: -1px; } - -.badge-pill { - padding-right: 0.6em; - padding-left: 0.6em; - border-radius: 10rem; } - -.badge-primary { - color: #fff; - background-color: #175DDC; } - a.badge-primary:hover, a.badge-primary:focus { - color: #fff; - background-color: #1249ae; } - a.badge-primary:focus, a.badge-primary.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.5); } - -.badge-secondary { - color: #212529; - background-color: #ced4da; } - a.badge-secondary:hover, a.badge-secondary:focus { - color: #212529; - background-color: #b1bbc4; } - a.badge-secondary:focus, a.badge-secondary.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(206, 212, 218, 0.5); } - -.badge-success { - color: #fff; - background-color: #00a65a; } - a.badge-success:hover, a.badge-success:focus { - color: #fff; - background-color: #00733e; } - a.badge-success:focus, a.badge-success.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(0, 166, 90, 0.5); } - -.badge-info { - color: #fff; - background-color: #555555; } - a.badge-info:hover, a.badge-info:focus { - color: #fff; - background-color: #3c3c3c; } - a.badge-info:focus, a.badge-info.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(85, 85, 85, 0.5); } - -.badge-warning { - color: #fff; - background-color: #bf7e16; } - a.badge-warning:hover, a.badge-warning:focus { - color: #fff; - background-color: #916011; } - a.badge-warning:focus, a.badge-warning.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(191, 126, 22, 0.5); } - -.badge-danger { - color: #fff; - background-color: #dd4b39; } - a.badge-danger:hover, a.badge-danger:focus { - color: #fff; - background-color: #c23321; } - a.badge-danger:focus, a.badge-danger.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.5); } - -.badge-light { - color: #212529; - background-color: #f8f9fa; } - a.badge-light:hover, a.badge-light:focus { - color: #212529; - background-color: #dae0e5; } - a.badge-light:focus, a.badge-light.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); } - -.badge-dark { - color: #fff; - background-color: #343a40; } - a.badge-dark:hover, a.badge-dark:focus { - color: #fff; - background-color: #1d2124; } - a.badge-dark:focus, a.badge-dark.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); } - -.badge-primary-accent { - color: #fff; - background-color: #1252A3; } - a.badge-primary-accent:hover, a.badge-primary-accent:focus { - color: #fff; - background-color: #0d3b75; } - a.badge-primary-accent:focus, a.badge-primary-accent.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(18, 82, 163, 0.5); } - -.badge-secondary-alt { - color: #fff; - background-color: #1A3B66; } - a.badge-secondary-alt:hover, a.badge-secondary-alt:focus { - color: #fff; - background-color: #10233d; } - a.badge-secondary-alt:focus, a.badge-secondary-alt.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(26, 59, 102, 0.5); } - -.jumbotron { - padding: 2rem 1rem; - margin-bottom: 2rem; - background-color: #e9ecef; - border-radius: 0.3rem; } - @media (min-width: 1px) { - .jumbotron { - padding: 4rem 2rem; } } - -.jumbotron-fluid { - padding-right: 0; - padding-left: 0; - border-radius: 0; } - -.alert { - position: relative; - padding: 0.75rem 1.25rem; - margin-bottom: 1rem; - border: 1px solid transparent; - border-radius: 0.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: 0.75rem 1.25rem; - color: inherit; } - -.alert-primary { - color: #0c3072; - background-color: #d1dff8; - border-color: #bed2f5; } - .alert-primary hr { - border-top-color: #a8c3f2; } - .alert-primary .alert-link { - color: #071d44; } - -.alert-secondary { - color: #6b6e71; - background-color: #f5f6f8; - border-color: #f1f3f5; } - .alert-secondary hr { - border-top-color: #e2e6ea; } - .alert-secondary .alert-link { - color: #525557; } - -.alert-success { - color: #00562f; - background-color: #ccedde; - border-color: #b8e6d1; } - .alert-success hr { - border-top-color: #a5dfc5; } - .alert-success .alert-link { - color: #002313; } - -.alert-info { - color: #2c2c2c; - background-color: #dddddd; - border-color: #cfcfcf; } - .alert-info hr { - border-top-color: #c2c2c2; } - .alert-info .alert-link { - color: #131313; } - -.alert-warning { - color: #63420b; - background-color: #f2e5d0; - border-color: #eddbbe; } - .alert-warning hr { - border-top-color: #e7d0aa; } - .alert-warning .alert-link { - color: #352306; } - -.alert-danger { - color: #73271e; - background-color: #f8dbd7; - border-color: #f5cdc8; } - .alert-danger hr { - border-top-color: #f1b9b2; } - .alert-danger .alert-link { - color: #4b1913; } - -.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; } - -.alert-primary-accent { - color: #092b55; - background-color: #d0dced; - border-color: #bdcfe5; } - .alert-primary-accent hr { - border-top-color: #abc2de; } - .alert-primary-accent .alert-link { - color: #041427; } - -.alert-secondary-alt { - color: #0e1f35; - background-color: #d1d8e0; - border-color: #bfc8d4; } - .alert-secondary-alt hr { - border-top-color: #b0bbca; } - .alert-secondary-alt .alert-link { - color: #03070d; } - -@keyframes progress-bar-stripes { - from { - background-position: 1rem 0; } - to { - background-position: 0 0; } } - -.progress { - display: flex; - height: 1rem; - overflow: hidden; - font-size: 0.75rem; - background-color: #e9ecef; - border-radius: 0.25rem; } - -.progress-bar { - display: flex; - flex-direction: column; - justify-content: center; - color: #fff; - text-align: center; - white-space: nowrap; - background-color: #175DDC; - transition: width 0.6s ease; } - @media (prefers-reduced-motion: reduce) { - .progress-bar { - transition: none; } } - -.progress-bar-striped { - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-size: 1rem 1rem; } - -.progress-bar-animated { - animation: progress-bar-stripes 1s linear infinite; } - @media (prefers-reduced-motion: reduce) { - .progress-bar-animated { - animation: none; } } - -.media { - display: flex; - align-items: flex-start; } - -.media-body { - flex: 1; } - -.list-group { - display: flex; - flex-direction: column; - padding-left: 0; - margin-bottom: 0; } - -.list-group-item-action { - width: 100%; - color: #495057; - text-align: inherit; } - .list-group-item-action:hover, .list-group-item-action:focus { - z-index: 1; - color: #495057; - text-decoration: none; - background-color: #f8f9fa; } - .list-group-item-action:active { - color: #333333; - background-color: #e9ecef; } - -.list-group-item { - position: relative; - display: block; - padding: 0.6rem 1.25rem; - margin-bottom: -1px; - background-color: #fff; - border: 1px solid rgba(0, 0, 0, 0.125); } - .list-group-item:first-child { - border-top-left-radius: 0.25rem; - border-top-right-radius: 0.25rem; } - .list-group-item:last-child { - margin-bottom: 0; - border-bottom-right-radius: 0.25rem; - border-bottom-left-radius: 0.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: #333333; - background-color: #ffffff; - border-color: rgba(0, 0, 0, 0.125); } - -.list-group-horizontal { - flex-direction: row; } - .list-group-horizontal .list-group-item { - margin-right: -1px; - margin-bottom: 0; } - .list-group-horizontal .list-group-item:first-child { - border-top-left-radius: 0.25rem; - border-bottom-left-radius: 0.25rem; - border-top-right-radius: 0; } - .list-group-horizontal .list-group-item:last-child { - margin-right: 0; - border-top-right-radius: 0.25rem; - border-bottom-right-radius: 0.25rem; - border-bottom-left-radius: 0; } - -@media (min-width: 1px) { - .list-group-horizontal-sm { - flex-direction: row; } - .list-group-horizontal-sm .list-group-item { - margin-right: -1px; - margin-bottom: 0; } - .list-group-horizontal-sm .list-group-item:first-child { - border-top-left-radius: 0.25rem; - border-bottom-left-radius: 0.25rem; - border-top-right-radius: 0; } - .list-group-horizontal-sm .list-group-item:last-child { - margin-right: 0; - border-top-right-radius: 0.25rem; - border-bottom-right-radius: 0.25rem; - border-bottom-left-radius: 0; } } - -@media (min-width: 2px) { - .list-group-horizontal-md { - flex-direction: row; } - .list-group-horizontal-md .list-group-item { - margin-right: -1px; - margin-bottom: 0; } - .list-group-horizontal-md .list-group-item:first-child { - border-top-left-radius: 0.25rem; - border-bottom-left-radius: 0.25rem; - border-top-right-radius: 0; } - .list-group-horizontal-md .list-group-item:last-child { - margin-right: 0; - border-top-right-radius: 0.25rem; - border-bottom-right-radius: 0.25rem; - border-bottom-left-radius: 0; } } - -@media (min-width: 3px) { - .list-group-horizontal-lg { - flex-direction: row; } - .list-group-horizontal-lg .list-group-item { - margin-right: -1px; - margin-bottom: 0; } - .list-group-horizontal-lg .list-group-item:first-child { - border-top-left-radius: 0.25rem; - border-bottom-left-radius: 0.25rem; - border-top-right-radius: 0; } - .list-group-horizontal-lg .list-group-item:last-child { - margin-right: 0; - border-top-right-radius: 0.25rem; - border-bottom-right-radius: 0.25rem; - border-bottom-left-radius: 0; } } - -@media (min-width: 4px) { - .list-group-horizontal-xl { - flex-direction: row; } - .list-group-horizontal-xl .list-group-item { - margin-right: -1px; - margin-bottom: 0; } - .list-group-horizontal-xl .list-group-item:first-child { - border-top-left-radius: 0.25rem; - border-bottom-left-radius: 0.25rem; - border-top-right-radius: 0; } - .list-group-horizontal-xl .list-group-item:last-child { - margin-right: 0; - border-top-right-radius: 0.25rem; - border-bottom-right-radius: 0.25rem; - border-bottom-left-radius: 0; } } - -.list-group-flush .list-group-item { - border-right: 0; - border-left: 0; - border-radius: 0; } - .list-group-flush .list-group-item:last-child { - margin-bottom: -1px; } - -.list-group-flush:first-child .list-group-item:first-child { - border-top: 0; } - -.list-group-flush:last-child .list-group-item:last-child { - margin-bottom: 0; - border-bottom: 0; } - -.list-group-item-primary { - color: #0c3072; - background-color: #bed2f5; } - .list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus { - color: #0c3072; - background-color: #a8c3f2; } - .list-group-item-primary.list-group-item-action.active { - color: #fff; - background-color: #0c3072; - border-color: #0c3072; } - -.list-group-item-secondary { - color: #6b6e71; - background-color: #f1f3f5; } - .list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus { - color: #6b6e71; - background-color: #e2e6ea; } - .list-group-item-secondary.list-group-item-action.active { - color: #fff; - background-color: #6b6e71; - border-color: #6b6e71; } - -.list-group-item-success { - color: #00562f; - background-color: #b8e6d1; } - .list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus { - color: #00562f; - background-color: #a5dfc5; } - .list-group-item-success.list-group-item-action.active { - color: #fff; - background-color: #00562f; - border-color: #00562f; } - -.list-group-item-info { - color: #2c2c2c; - background-color: #cfcfcf; } - .list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus { - color: #2c2c2c; - background-color: #c2c2c2; } - .list-group-item-info.list-group-item-action.active { - color: #fff; - background-color: #2c2c2c; - border-color: #2c2c2c; } - -.list-group-item-warning { - color: #63420b; - background-color: #eddbbe; } - .list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus { - color: #63420b; - background-color: #e7d0aa; } - .list-group-item-warning.list-group-item-action.active { - color: #fff; - background-color: #63420b; - border-color: #63420b; } - -.list-group-item-danger { - color: #73271e; - background-color: #f5cdc8; } - .list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus { - color: #73271e; - background-color: #f1b9b2; } - .list-group-item-danger.list-group-item-action.active { - color: #fff; - background-color: #73271e; - border-color: #73271e; } - -.list-group-item-light { - color: #818182; - background-color: #fdfdfe; } - .list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus { - 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:hover, .list-group-item-dark.list-group-item-action:focus { - color: #1b1e21; - background-color: #b9bbbe; } - .list-group-item-dark.list-group-item-action.active { - color: #fff; - background-color: #1b1e21; - border-color: #1b1e21; } - -.list-group-item-primary-accent { - color: #092b55; - background-color: #bdcfe5; } - .list-group-item-primary-accent.list-group-item-action:hover, .list-group-item-primary-accent.list-group-item-action:focus { - color: #092b55; - background-color: #abc2de; } - .list-group-item-primary-accent.list-group-item-action.active { - color: #fff; - background-color: #092b55; - border-color: #092b55; } - -.list-group-item-secondary-alt { - color: #0e1f35; - background-color: #bfc8d4; } - .list-group-item-secondary-alt.list-group-item-action:hover, .list-group-item-secondary-alt.list-group-item-action:focus { - color: #0e1f35; - background-color: #b0bbca; } - .list-group-item-secondary-alt.list-group-item-action.active { - color: #fff; - background-color: #0e1f35; - border-color: #0e1f35; } - -.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):hover, .close:not(:disabled):not(.disabled):focus { - opacity: .75; } - -button.close { - padding: 0; - background-color: transparent; - border: 0; - appearance: none; } - -a.close.disabled { - pointer-events: none; } - -.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: 0.5rem; - pointer-events: none; } - .modal.fade .modal-dialog { - transition: transform 0.3s ease-out; - transform: translate(0, -50px); } - @media (prefers-reduced-motion: reduce) { - .modal.fade .modal-dialog { - transition: none; } } - .modal.show .modal-dialog { - transform: none; } - -.modal-dialog-scrollable { - display: flex; - max-height: calc(100% - 1rem); } - .modal-dialog-scrollable .modal-content { - max-height: calc(100vh - 1rem); - overflow: hidden; } - .modal-dialog-scrollable .modal-header, - .modal-dialog-scrollable .modal-footer { - flex-shrink: 0; } - .modal-dialog-scrollable .modal-body { - overflow-y: auto; } - -.modal-dialog-centered { - display: flex; - 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 { - flex-direction: column; - 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: flex; - flex-direction: column; - width: 100%; - pointer-events: auto; - background-color: #fff; - background-clip: padding-box; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 0.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: 0.3; } - -.modal-header { - display: flex; - align-items: flex-start; - justify-content: space-between; - padding: 1rem 1rem; - border-bottom: 1px solid #dee2e6; - border-top-left-radius: 0.3rem; - border-top-right-radius: 0.3rem; } - .modal-header .close { - padding: 1rem 1rem; - margin: -1rem -1rem -1rem auto; } - -.modal-title { - margin-bottom: 0; - line-height: 1.5; } - -.modal-body { - position: relative; - flex: 1 1 auto; - padding: 1rem; } - -.modal-footer { - display: flex; - align-items: center; - justify-content: flex-end; - padding: 1rem; - border-top: 1px solid #dee2e6; - border-bottom-right-radius: 0.3rem; - border-bottom-left-radius: 0.3rem; } - .modal-footer > :not(:first-child) { - margin-left: .25rem; } - .modal-footer > :not(:last-child) { - margin-right: .25rem; } - -.modal-scrollbar-measure { - position: absolute; - top: -9999px; - width: 50px; - height: 50px; - overflow: scroll; } - -@media (min-width: 1px) { - .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: 3px) { - .modal-lg, - .modal-xl { - max-width: 800px; } } - -@media (min-width: 4px) { - .modal-xl { - max-width: 1140px; } } - -.tooltip { - position: absolute; - z-index: 1070; - display: block; - margin: 0; - font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - 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: 0.875rem; - word-wrap: break-word; - opacity: 0; } - .tooltip.show { - opacity: 0.9; } - .tooltip .arrow { - position: absolute; - display: block; - width: 0.8rem; - height: 0.4rem; } - .tooltip .arrow::before { - position: absolute; - content: ""; - border-color: transparent; - border-style: solid; } - -.bs-tooltip-top, .bs-tooltip-auto[x-placement^="top"] { - padding: 0.4rem 0; } - .bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^="top"] .arrow { - bottom: 0; } - .bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^="top"] .arrow::before { - top: 0; - border-width: 0.4rem 0.4rem 0; - border-top-color: #000; } - -.bs-tooltip-right, .bs-tooltip-auto[x-placement^="right"] { - padding: 0 0.4rem; } - .bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^="right"] .arrow { - left: 0; - width: 0.4rem; - height: 0.8rem; } - .bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^="right"] .arrow::before { - right: 0; - border-width: 0.4rem 0.4rem 0.4rem 0; - border-right-color: #000; } - -.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^="bottom"] { - padding: 0.4rem 0; } - .bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^="bottom"] .arrow { - top: 0; } - .bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^="bottom"] .arrow::before { - bottom: 0; - border-width: 0 0.4rem 0.4rem; - border-bottom-color: #000; } - -.bs-tooltip-left, .bs-tooltip-auto[x-placement^="left"] { - padding: 0 0.4rem; } - .bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^="left"] .arrow { - right: 0; - width: 0.4rem; - height: 0.8rem; } - .bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^="left"] .arrow::before { - left: 0; - border-width: 0.4rem 0 0.4rem 0.4rem; - border-left-color: #000; } - -.tooltip-inner { - max-width: 200px; - padding: 0.25rem 0.5rem; - color: #fff; - text-align: center; - background-color: #000; - border-radius: 0.25rem; } - -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1060; - display: block; - max-width: 276px; - font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - 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: 0.875rem; - word-wrap: break-word; - background-color: #fff; - background-clip: padding-box; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 0.3rem; } - .popover .arrow { - position: absolute; - display: block; - width: 1rem; - height: 0.5rem; - margin: 0 0.3rem; } - .popover .arrow::before, .popover .arrow::after { - position: absolute; - display: block; - content: ""; - border-color: transparent; - border-style: solid; } - -.bs-popover-top, .bs-popover-auto[x-placement^="top"] { - margin-bottom: 0.5rem; } - .bs-popover-top > .arrow, .bs-popover-auto[x-placement^="top"] > .arrow { - bottom: calc((0.5rem + 1px) * -1); } - .bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^="top"] > .arrow::before { - bottom: 0; - border-width: 0.5rem 0.5rem 0; - border-top-color: rgba(0, 0, 0, 0.25); } - .bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^="top"] > .arrow::after { - bottom: 1px; - border-width: 0.5rem 0.5rem 0; - border-top-color: #fff; } - -.bs-popover-right, .bs-popover-auto[x-placement^="right"] { - margin-left: 0.5rem; } - .bs-popover-right > .arrow, .bs-popover-auto[x-placement^="right"] > .arrow { - left: calc((0.5rem + 1px) * -1); - width: 0.5rem; - height: 1rem; - margin: 0.3rem 0; } - .bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^="right"] > .arrow::before { - left: 0; - border-width: 0.5rem 0.5rem 0.5rem 0; - border-right-color: rgba(0, 0, 0, 0.25); } - .bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^="right"] > .arrow::after { - left: 1px; - border-width: 0.5rem 0.5rem 0.5rem 0; - border-right-color: #fff; } - -.bs-popover-bottom, .bs-popover-auto[x-placement^="bottom"] { - margin-top: 0.5rem; } - .bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^="bottom"] > .arrow { - top: calc((0.5rem + 1px) * -1); } - .bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^="bottom"] > .arrow::before { - top: 0; - border-width: 0 0.5rem 0.5rem 0.5rem; - border-bottom-color: rgba(0, 0, 0, 0.25); } - .bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^="bottom"] > .arrow::after { - top: 1px; - border-width: 0 0.5rem 0.5rem 0.5rem; - border-bottom-color: #fff; } - .bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^="bottom"] .popover-header::before { - position: absolute; - top: 0; - left: 50%; - display: block; - width: 1rem; - margin-left: -0.5rem; - content: ""; - border-bottom: 1px solid #f7f7f7; } - -.bs-popover-left, .bs-popover-auto[x-placement^="left"] { - margin-right: 0.5rem; } - .bs-popover-left > .arrow, .bs-popover-auto[x-placement^="left"] > .arrow { - right: calc((0.5rem + 1px) * -1); - width: 0.5rem; - height: 1rem; - margin: 0.3rem 0; } - .bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^="left"] > .arrow::before { - right: 0; - border-width: 0.5rem 0 0.5rem 0.5rem; - border-left-color: rgba(0, 0, 0, 0.25); } - .bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^="left"] > .arrow::after { - right: 1px; - border-width: 0.5rem 0 0.5rem 0.5rem; - border-left-color: #fff; } - -.popover-header { - padding: 0.5rem 0.75rem; - margin-bottom: 0; - font-size: 1rem; - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - border-top-left-radius: calc(0.3rem - 1px); - border-top-right-radius: calc(0.3rem - 1px); } - .popover-header:empty { - display: none; } - -.popover-body { - padding: 0.5rem 0.75rem; - color: #333333; } - -.carousel { - position: relative; } - -.carousel.pointer-event { - 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%; - backface-visibility: hidden; - transition: transform 0.6s ease-in-out; } - @media (prefers-reduced-motion: reduce) { - .carousel-item { - transition: none; } } - -.carousel-item.active, -.carousel-item-next, -.carousel-item-prev { - display: block; } - -.carousel-item-next:not(.carousel-item-left), -.active.carousel-item-right { - transform: translateX(100%); } - -.carousel-item-prev:not(.carousel-item-right), -.active.carousel-item-left { - transform: translateX(-100%); } - -.carousel-fade .carousel-item { - opacity: 0; - transition-property: opacity; - transform: none; } - -.carousel-fade .carousel-item.active, -.carousel-fade .carousel-item-next.carousel-item-left, -.carousel-fade .carousel-item-prev.carousel-item-right { - z-index: 1; - opacity: 1; } - -.carousel-fade .active.carousel-item-left, -.carousel-fade .active.carousel-item-right { - z-index: 0; - opacity: 0; - transition: 0s 0.6s opacity; } - @media (prefers-reduced-motion: reduce) { - .carousel-fade .active.carousel-item-left, - .carousel-fade .active.carousel-item-right { - transition: none; } } - -.carousel-control-prev, -.carousel-control-next { - position: absolute; - top: 0; - bottom: 0; - z-index: 1; - display: flex; - align-items: center; - justify-content: center; - width: 15%; - color: #fff; - text-align: center; - opacity: 0.5; - transition: opacity 0.15s ease; } - @media (prefers-reduced-motion: reduce) { - .carousel-control-prev, - .carousel-control-next { - transition: none; } } - .carousel-control-prev:hover, .carousel-control-prev:focus, - .carousel-control-next:hover, - .carousel-control-next:focus { - color: #fff; - text-decoration: none; - outline: 0; - opacity: 0.9; } - -.carousel-control-prev { - left: 0; } - -.carousel-control-next { - right: 0; } - -.carousel-control-prev-icon, -.carousel-control-next-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' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%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' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e"); } - -.carousel-indicators { - position: absolute; - right: 0; - bottom: 0; - left: 0; - z-index: 15; - display: flex; - justify-content: center; - padding-left: 0; - margin-right: 15%; - margin-left: 15%; - list-style: none; } - .carousel-indicators li { - box-sizing: content-box; - 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 0.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; } - -@keyframes spinner-border { - to { - transform: rotate(360deg); } } - -.spinner-border { - display: inline-block; - width: 2rem; - height: 2rem; - vertical-align: text-bottom; - border: 0.25em solid currentColor; - border-right-color: transparent; - border-radius: 50%; - animation: spinner-border .75s linear infinite; } - -.spinner-border-sm { - width: 1rem; - height: 1rem; - border-width: 0.2em; } - -@keyframes spinner-grow { - 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; - 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: #175DDC !important; } - -a.bg-primary:hover, a.bg-primary:focus, -button.bg-primary:hover, -button.bg-primary:focus { - background-color: #1249ae !important; } - -.bg-secondary { - background-color: #ced4da !important; } - -a.bg-secondary:hover, a.bg-secondary:focus, -button.bg-secondary:hover, -button.bg-secondary:focus { - background-color: #b1bbc4 !important; } - -.bg-success { - background-color: #00a65a !important; } - -a.bg-success:hover, a.bg-success:focus, -button.bg-success:hover, -button.bg-success:focus { - background-color: #00733e !important; } - -.bg-info { - background-color: #555555 !important; } - -a.bg-info:hover, a.bg-info:focus, -button.bg-info:hover, -button.bg-info:focus { - background-color: #3c3c3c !important; } - -.bg-warning { - background-color: #bf7e16 !important; } - -a.bg-warning:hover, a.bg-warning:focus, -button.bg-warning:hover, -button.bg-warning:focus { - background-color: #916011 !important; } - -.bg-danger { - background-color: #dd4b39 !important; } - -a.bg-danger:hover, a.bg-danger:focus, -button.bg-danger:hover, -button.bg-danger:focus { - background-color: #c23321 !important; } - -.bg-light { - background-color: #f8f9fa !important; } - -a.bg-light:hover, a.bg-light:focus, -button.bg-light:hover, -button.bg-light:focus { - background-color: #dae0e5 !important; } - -.bg-dark { - background-color: #343a40 !important; } - -a.bg-dark:hover, a.bg-dark:focus, -button.bg-dark:hover, -button.bg-dark:focus { - background-color: #1d2124 !important; } - -.bg-primary-accent { - background-color: #1252A3 !important; } - -a.bg-primary-accent:hover, a.bg-primary-accent:focus, -button.bg-primary-accent:hover, -button.bg-primary-accent:focus { - background-color: #0d3b75 !important; } - -.bg-secondary-alt { - background-color: #1A3B66 !important; } - -a.bg-secondary-alt:hover, a.bg-secondary-alt:focus, -button.bg-secondary-alt:hover, -button.bg-secondary-alt:focus { - background-color: #10233d !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: #175DDC !important; } - -.border-secondary { - border-color: #ced4da !important; } - -.border-success { - border-color: #00a65a !important; } - -.border-info { - border-color: #555555 !important; } - -.border-warning { - border-color: #bf7e16 !important; } - -.border-danger { - border-color: #dd4b39 !important; } - -.border-light { - border-color: #f8f9fa !important; } - -.border-dark { - border-color: #343a40 !important; } - -.border-primary-accent { - border-color: #1252A3 !important; } - -.border-secondary-alt { - border-color: #1A3B66 !important; } - -.border-white { - border-color: #fff !important; } - -.rounded-sm { - border-radius: 0.2rem !important; } - -.rounded, .table.table-list td.table-list-icon img, app-avatar img { - border-radius: 0.25rem !important; } - -.rounded-top { - border-top-left-radius: 0.25rem !important; - border-top-right-radius: 0.25rem !important; } - -.rounded-right { - border-top-right-radius: 0.25rem !important; - border-bottom-right-radius: 0.25rem !important; } - -.rounded-bottom { - border-bottom-right-radius: 0.25rem !important; - border-bottom-left-radius: 0.25rem !important; } - -.rounded-left { - border-top-left-radius: 0.25rem !important; - border-bottom-left-radius: 0.25rem !important; } - -.rounded-lg { - border-radius: 0.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: flex !important; } - -.d-inline-flex { - display: inline-flex !important; } - -@media (min-width: 1px) { - .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: flex !important; } - .d-sm-inline-flex { - display: inline-flex !important; } } - -@media (min-width: 2px) { - .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: flex !important; } - .d-md-inline-flex { - display: inline-flex !important; } } - -@media (min-width: 3px) { - .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: flex !important; } - .d-lg-inline-flex { - display: inline-flex !important; } } - -@media (min-width: 4px) { - .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: flex !important; } - .d-xl-inline-flex { - 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: flex !important; } - .d-print-inline-flex { - 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 iframe, - .embed-responsive embed, - .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.85714%; } - -.embed-responsive-16by9::before { - padding-top: 56.25%; } - -.embed-responsive-4by3::before { - padding-top: 75%; } - -.embed-responsive-1by1::before { - padding-top: 100%; } - -.flex-row { - flex-direction: row !important; } - -.flex-column { - flex-direction: column !important; } - -.flex-row-reverse { - flex-direction: row-reverse !important; } - -.flex-column-reverse { - flex-direction: column-reverse !important; } - -.flex-wrap { - flex-wrap: wrap !important; } - -.flex-nowrap { - flex-wrap: nowrap !important; } - -.flex-wrap-reverse { - flex-wrap: wrap-reverse !important; } - -.flex-fill { - flex: 1 1 auto !important; } - -.flex-grow-0 { - flex-grow: 0 !important; } - -.flex-grow-1 { - flex-grow: 1 !important; } - -.flex-shrink-0 { - flex-shrink: 0 !important; } - -.flex-shrink-1 { - flex-shrink: 1 !important; } - -.justify-content-start { - justify-content: flex-start !important; } - -.justify-content-end { - justify-content: flex-end !important; } - -.justify-content-center { - justify-content: center !important; } - -.justify-content-between { - justify-content: space-between !important; } - -.justify-content-around { - justify-content: space-around !important; } - -.align-items-start { - align-items: flex-start !important; } - -.align-items-end { - align-items: flex-end !important; } - -.align-items-center { - align-items: center !important; } - -.align-items-baseline { - align-items: baseline !important; } - -.align-items-stretch { - align-items: stretch !important; } - -.align-content-start { - align-content: flex-start !important; } - -.align-content-end { - align-content: flex-end !important; } - -.align-content-center { - align-content: center !important; } - -.align-content-between { - align-content: space-between !important; } - -.align-content-around { - align-content: space-around !important; } - -.align-content-stretch { - align-content: stretch !important; } - -.align-self-auto { - align-self: auto !important; } - -.align-self-start { - align-self: flex-start !important; } - -.align-self-end { - align-self: flex-end !important; } - -.align-self-center { - align-self: center !important; } - -.align-self-baseline { - align-self: baseline !important; } - -.align-self-stretch { - align-self: stretch !important; } - -@media (min-width: 1px) { - .flex-sm-row { - flex-direction: row !important; } - .flex-sm-column { - flex-direction: column !important; } - .flex-sm-row-reverse { - flex-direction: row-reverse !important; } - .flex-sm-column-reverse { - flex-direction: column-reverse !important; } - .flex-sm-wrap { - flex-wrap: wrap !important; } - .flex-sm-nowrap { - flex-wrap: nowrap !important; } - .flex-sm-wrap-reverse { - flex-wrap: wrap-reverse !important; } - .flex-sm-fill { - flex: 1 1 auto !important; } - .flex-sm-grow-0 { - flex-grow: 0 !important; } - .flex-sm-grow-1 { - flex-grow: 1 !important; } - .flex-sm-shrink-0 { - flex-shrink: 0 !important; } - .flex-sm-shrink-1 { - flex-shrink: 1 !important; } - .justify-content-sm-start { - justify-content: flex-start !important; } - .justify-content-sm-end { - justify-content: flex-end !important; } - .justify-content-sm-center { - justify-content: center !important; } - .justify-content-sm-between { - justify-content: space-between !important; } - .justify-content-sm-around { - justify-content: space-around !important; } - .align-items-sm-start { - align-items: flex-start !important; } - .align-items-sm-end { - align-items: flex-end !important; } - .align-items-sm-center { - align-items: center !important; } - .align-items-sm-baseline { - align-items: baseline !important; } - .align-items-sm-stretch { - align-items: stretch !important; } - .align-content-sm-start { - align-content: flex-start !important; } - .align-content-sm-end { - align-content: flex-end !important; } - .align-content-sm-center { - align-content: center !important; } - .align-content-sm-between { - align-content: space-between !important; } - .align-content-sm-around { - align-content: space-around !important; } - .align-content-sm-stretch { - align-content: stretch !important; } - .align-self-sm-auto { - align-self: auto !important; } - .align-self-sm-start { - align-self: flex-start !important; } - .align-self-sm-end { - align-self: flex-end !important; } - .align-self-sm-center { - align-self: center !important; } - .align-self-sm-baseline { - align-self: baseline !important; } - .align-self-sm-stretch { - align-self: stretch !important; } } - -@media (min-width: 2px) { - .flex-md-row { - flex-direction: row !important; } - .flex-md-column { - flex-direction: column !important; } - .flex-md-row-reverse { - flex-direction: row-reverse !important; } - .flex-md-column-reverse { - flex-direction: column-reverse !important; } - .flex-md-wrap { - flex-wrap: wrap !important; } - .flex-md-nowrap { - flex-wrap: nowrap !important; } - .flex-md-wrap-reverse { - flex-wrap: wrap-reverse !important; } - .flex-md-fill { - flex: 1 1 auto !important; } - .flex-md-grow-0 { - flex-grow: 0 !important; } - .flex-md-grow-1 { - flex-grow: 1 !important; } - .flex-md-shrink-0 { - flex-shrink: 0 !important; } - .flex-md-shrink-1 { - flex-shrink: 1 !important; } - .justify-content-md-start { - justify-content: flex-start !important; } - .justify-content-md-end { - justify-content: flex-end !important; } - .justify-content-md-center { - justify-content: center !important; } - .justify-content-md-between { - justify-content: space-between !important; } - .justify-content-md-around { - justify-content: space-around !important; } - .align-items-md-start { - align-items: flex-start !important; } - .align-items-md-end { - align-items: flex-end !important; } - .align-items-md-center { - align-items: center !important; } - .align-items-md-baseline { - align-items: baseline !important; } - .align-items-md-stretch { - align-items: stretch !important; } - .align-content-md-start { - align-content: flex-start !important; } - .align-content-md-end { - align-content: flex-end !important; } - .align-content-md-center { - align-content: center !important; } - .align-content-md-between { - align-content: space-between !important; } - .align-content-md-around { - align-content: space-around !important; } - .align-content-md-stretch { - align-content: stretch !important; } - .align-self-md-auto { - align-self: auto !important; } - .align-self-md-start { - align-self: flex-start !important; } - .align-self-md-end { - align-self: flex-end !important; } - .align-self-md-center { - align-self: center !important; } - .align-self-md-baseline { - align-self: baseline !important; } - .align-self-md-stretch { - align-self: stretch !important; } } - -@media (min-width: 3px) { - .flex-lg-row { - flex-direction: row !important; } - .flex-lg-column { - flex-direction: column !important; } - .flex-lg-row-reverse { - flex-direction: row-reverse !important; } - .flex-lg-column-reverse { - flex-direction: column-reverse !important; } - .flex-lg-wrap { - flex-wrap: wrap !important; } - .flex-lg-nowrap { - flex-wrap: nowrap !important; } - .flex-lg-wrap-reverse { - flex-wrap: wrap-reverse !important; } - .flex-lg-fill { - flex: 1 1 auto !important; } - .flex-lg-grow-0 { - flex-grow: 0 !important; } - .flex-lg-grow-1 { - flex-grow: 1 !important; } - .flex-lg-shrink-0 { - flex-shrink: 0 !important; } - .flex-lg-shrink-1 { - flex-shrink: 1 !important; } - .justify-content-lg-start { - justify-content: flex-start !important; } - .justify-content-lg-end { - justify-content: flex-end !important; } - .justify-content-lg-center { - justify-content: center !important; } - .justify-content-lg-between { - justify-content: space-between !important; } - .justify-content-lg-around { - justify-content: space-around !important; } - .align-items-lg-start { - align-items: flex-start !important; } - .align-items-lg-end { - align-items: flex-end !important; } - .align-items-lg-center { - align-items: center !important; } - .align-items-lg-baseline { - align-items: baseline !important; } - .align-items-lg-stretch { - align-items: stretch !important; } - .align-content-lg-start { - align-content: flex-start !important; } - .align-content-lg-end { - align-content: flex-end !important; } - .align-content-lg-center { - align-content: center !important; } - .align-content-lg-between { - align-content: space-between !important; } - .align-content-lg-around { - align-content: space-around !important; } - .align-content-lg-stretch { - align-content: stretch !important; } - .align-self-lg-auto { - align-self: auto !important; } - .align-self-lg-start { - align-self: flex-start !important; } - .align-self-lg-end { - align-self: flex-end !important; } - .align-self-lg-center { - align-self: center !important; } - .align-self-lg-baseline { - align-self: baseline !important; } - .align-self-lg-stretch { - align-self: stretch !important; } } - -@media (min-width: 4px) { - .flex-xl-row { - flex-direction: row !important; } - .flex-xl-column { - flex-direction: column !important; } - .flex-xl-row-reverse { - flex-direction: row-reverse !important; } - .flex-xl-column-reverse { - flex-direction: column-reverse !important; } - .flex-xl-wrap { - flex-wrap: wrap !important; } - .flex-xl-nowrap { - flex-wrap: nowrap !important; } - .flex-xl-wrap-reverse { - flex-wrap: wrap-reverse !important; } - .flex-xl-fill { - flex: 1 1 auto !important; } - .flex-xl-grow-0 { - flex-grow: 0 !important; } - .flex-xl-grow-1 { - flex-grow: 1 !important; } - .flex-xl-shrink-0 { - flex-shrink: 0 !important; } - .flex-xl-shrink-1 { - flex-shrink: 1 !important; } - .justify-content-xl-start { - justify-content: flex-start !important; } - .justify-content-xl-end { - justify-content: flex-end !important; } - .justify-content-xl-center { - justify-content: center !important; } - .justify-content-xl-between { - justify-content: space-between !important; } - .justify-content-xl-around { - justify-content: space-around !important; } - .align-items-xl-start { - align-items: flex-start !important; } - .align-items-xl-end { - align-items: flex-end !important; } - .align-items-xl-center { - align-items: center !important; } - .align-items-xl-baseline { - align-items: baseline !important; } - .align-items-xl-stretch { - align-items: stretch !important; } - .align-content-xl-start { - align-content: flex-start !important; } - .align-content-xl-end { - align-content: flex-end !important; } - .align-content-xl-center { - align-content: center !important; } - .align-content-xl-between { - align-content: space-between !important; } - .align-content-xl-around { - align-content: space-around !important; } - .align-content-xl-stretch { - align-content: stretch !important; } - .align-self-xl-auto { - align-self: auto !important; } - .align-self-xl-start { - align-self: flex-start !important; } - .align-self-xl-end { - align-self: flex-end !important; } - .align-self-xl-center { - align-self: center !important; } - .align-self-xl-baseline { - align-self: baseline !important; } - .align-self-xl-stretch { - align-self: stretch !important; } } - -.float-left { - float: left !important; } - -.float-right { - float: right !important; } - -.float-none { - float: none !important; } - -@media (min-width: 1px) { - .float-sm-left { - float: left !important; } - .float-sm-right { - float: right !important; } - .float-sm-none { - float: none !important; } } - -@media (min-width: 2px) { - .float-md-left { - float: left !important; } - .float-md-right { - float: right !important; } - .float-md-none { - float: none !important; } } - -@media (min-width: 3px) { - .float-lg-left { - float: left !important; } - .float-lg-right { - float: right !important; } - .float-lg-none { - float: none !important; } } - -@media (min-width: 4px) { - .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: 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: sticky) { - .sticky-top { - position: sticky; - top: 0; - z-index: 1020; } } - -.sr-only, .table.table-list tr:not(:hover) td.table-list-options > .dropdown:not(.show) button:not(:focus):not(:active), .table.table-list tr:not(:hover) td.table-list-options > button:not(:focus):not(:active) { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - 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 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; } - -.shadow { - box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; } - -.shadow-lg { - box-shadow: 0 1rem 3rem rgba(0, 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: 0.25rem !important; } - -.mt-1, -.my-1 { - margin-top: 0.25rem !important; } - -.mr-1, -.mx-1 { - margin-right: 0.25rem !important; } - -.mb-1, -.my-1 { - margin-bottom: 0.25rem !important; } - -.ml-1, -.mx-1 { - margin-left: 0.25rem !important; } - -.m-2 { - margin: 0.5rem !important; } - -.mt-2, .form-check-block .form-check-label > span, -.my-2 { - margin-top: 0.5rem !important; } - -.mr-2, -.mx-2 { - margin-right: 0.5rem !important; } - -.mb-2, -.my-2 { - margin-bottom: 0.5rem !important; } - -.ml-2, -.mx-2 { - margin-left: 0.5rem !important; } - -.m-3 { - margin: 1rem !important; } - -.mt-3, .form-check-block + .form-check-block:not(.mt-2), -.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, .card-body-header, -.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: 0.25rem !important; } - -.pt-1, -.py-1 { - padding-top: 0.25rem !important; } - -.pr-1, -.px-1 { - padding-right: 0.25rem !important; } - -.pb-1, -.py-1 { - padding-bottom: 0.25rem !important; } - -.pl-1, -.px-1 { - padding-left: 0.25rem !important; } - -.p-2 { - padding: 0.5rem !important; } - -.pt-2, -.py-2 { - padding-top: 0.5rem !important; } - -.pr-2, -.px-2 { - padding-right: 0.5rem !important; } - -.pb-2, -.py-2 { - padding-bottom: 0.5rem !important; } - -.pl-2, -.px-2 { - padding-left: 0.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: -0.25rem !important; } - -.mt-n1, -.my-n1 { - margin-top: -0.25rem !important; } - -.mr-n1, -.mx-n1 { - margin-right: -0.25rem !important; } - -.mb-n1, -.my-n1 { - margin-bottom: -0.25rem !important; } - -.ml-n1, -.mx-n1 { - margin-left: -0.25rem !important; } - -.m-n2 { - margin: -0.5rem !important; } - -.mt-n2, -.my-n2 { - margin-top: -0.5rem !important; } - -.mr-n2, -.mx-n2 { - margin-right: -0.5rem !important; } - -.mb-n2, -.my-n2 { - margin-bottom: -0.5rem !important; } - -.ml-n2, -.mx-n2 { - margin-left: -0.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: 1px) { - .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: 0.25rem !important; } - .mt-sm-1, - .my-sm-1 { - margin-top: 0.25rem !important; } - .mr-sm-1, - .mx-sm-1 { - margin-right: 0.25rem !important; } - .mb-sm-1, - .my-sm-1 { - margin-bottom: 0.25rem !important; } - .ml-sm-1, - .mx-sm-1 { - margin-left: 0.25rem !important; } - .m-sm-2 { - margin: 0.5rem !important; } - .mt-sm-2, - .my-sm-2 { - margin-top: 0.5rem !important; } - .mr-sm-2, - .mx-sm-2 { - margin-right: 0.5rem !important; } - .mb-sm-2, - .my-sm-2 { - margin-bottom: 0.5rem !important; } - .ml-sm-2, - .mx-sm-2 { - margin-left: 0.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: 0.25rem !important; } - .pt-sm-1, - .py-sm-1 { - padding-top: 0.25rem !important; } - .pr-sm-1, - .px-sm-1 { - padding-right: 0.25rem !important; } - .pb-sm-1, - .py-sm-1 { - padding-bottom: 0.25rem !important; } - .pl-sm-1, - .px-sm-1 { - padding-left: 0.25rem !important; } - .p-sm-2 { - padding: 0.5rem !important; } - .pt-sm-2, - .py-sm-2 { - padding-top: 0.5rem !important; } - .pr-sm-2, - .px-sm-2 { - padding-right: 0.5rem !important; } - .pb-sm-2, - .py-sm-2 { - padding-bottom: 0.5rem !important; } - .pl-sm-2, - .px-sm-2 { - padding-left: 0.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: -0.25rem !important; } - .mt-sm-n1, - .my-sm-n1 { - margin-top: -0.25rem !important; } - .mr-sm-n1, - .mx-sm-n1 { - margin-right: -0.25rem !important; } - .mb-sm-n1, - .my-sm-n1 { - margin-bottom: -0.25rem !important; } - .ml-sm-n1, - .mx-sm-n1 { - margin-left: -0.25rem !important; } - .m-sm-n2 { - margin: -0.5rem !important; } - .mt-sm-n2, - .my-sm-n2 { - margin-top: -0.5rem !important; } - .mr-sm-n2, - .mx-sm-n2 { - margin-right: -0.5rem !important; } - .mb-sm-n2, - .my-sm-n2 { - margin-bottom: -0.5rem !important; } - .ml-sm-n2, - .mx-sm-n2 { - margin-left: -0.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: 2px) { - .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: 0.25rem !important; } - .mt-md-1, - .my-md-1 { - margin-top: 0.25rem !important; } - .mr-md-1, - .mx-md-1 { - margin-right: 0.25rem !important; } - .mb-md-1, - .my-md-1 { - margin-bottom: 0.25rem !important; } - .ml-md-1, - .mx-md-1 { - margin-left: 0.25rem !important; } - .m-md-2 { - margin: 0.5rem !important; } - .mt-md-2, - .my-md-2 { - margin-top: 0.5rem !important; } - .mr-md-2, - .mx-md-2 { - margin-right: 0.5rem !important; } - .mb-md-2, - .my-md-2 { - margin-bottom: 0.5rem !important; } - .ml-md-2, - .mx-md-2 { - margin-left: 0.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: 0.25rem !important; } - .pt-md-1, - .py-md-1 { - padding-top: 0.25rem !important; } - .pr-md-1, - .px-md-1 { - padding-right: 0.25rem !important; } - .pb-md-1, - .py-md-1 { - padding-bottom: 0.25rem !important; } - .pl-md-1, - .px-md-1 { - padding-left: 0.25rem !important; } - .p-md-2 { - padding: 0.5rem !important; } - .pt-md-2, - .py-md-2 { - padding-top: 0.5rem !important; } - .pr-md-2, - .px-md-2 { - padding-right: 0.5rem !important; } - .pb-md-2, - .py-md-2 { - padding-bottom: 0.5rem !important; } - .pl-md-2, - .px-md-2 { - padding-left: 0.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: -0.25rem !important; } - .mt-md-n1, - .my-md-n1 { - margin-top: -0.25rem !important; } - .mr-md-n1, - .mx-md-n1 { - margin-right: -0.25rem !important; } - .mb-md-n1, - .my-md-n1 { - margin-bottom: -0.25rem !important; } - .ml-md-n1, - .mx-md-n1 { - margin-left: -0.25rem !important; } - .m-md-n2 { - margin: -0.5rem !important; } - .mt-md-n2, - .my-md-n2 { - margin-top: -0.5rem !important; } - .mr-md-n2, - .mx-md-n2 { - margin-right: -0.5rem !important; } - .mb-md-n2, - .my-md-n2 { - margin-bottom: -0.5rem !important; } - .ml-md-n2, - .mx-md-n2 { - margin-left: -0.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: 3px) { - .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: 0.25rem !important; } - .mt-lg-1, - .my-lg-1 { - margin-top: 0.25rem !important; } - .mr-lg-1, - .mx-lg-1 { - margin-right: 0.25rem !important; } - .mb-lg-1, - .my-lg-1 { - margin-bottom: 0.25rem !important; } - .ml-lg-1, - .mx-lg-1 { - margin-left: 0.25rem !important; } - .m-lg-2 { - margin: 0.5rem !important; } - .mt-lg-2, - .my-lg-2 { - margin-top: 0.5rem !important; } - .mr-lg-2, - .mx-lg-2 { - margin-right: 0.5rem !important; } - .mb-lg-2, - .my-lg-2 { - margin-bottom: 0.5rem !important; } - .ml-lg-2, - .mx-lg-2 { - margin-left: 0.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: 0.25rem !important; } - .pt-lg-1, - .py-lg-1 { - padding-top: 0.25rem !important; } - .pr-lg-1, - .px-lg-1 { - padding-right: 0.25rem !important; } - .pb-lg-1, - .py-lg-1 { - padding-bottom: 0.25rem !important; } - .pl-lg-1, - .px-lg-1 { - padding-left: 0.25rem !important; } - .p-lg-2 { - padding: 0.5rem !important; } - .pt-lg-2, - .py-lg-2 { - padding-top: 0.5rem !important; } - .pr-lg-2, - .px-lg-2 { - padding-right: 0.5rem !important; } - .pb-lg-2, - .py-lg-2 { - padding-bottom: 0.5rem !important; } - .pl-lg-2, - .px-lg-2 { - padding-left: 0.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: -0.25rem !important; } - .mt-lg-n1, - .my-lg-n1 { - margin-top: -0.25rem !important; } - .mr-lg-n1, - .mx-lg-n1 { - margin-right: -0.25rem !important; } - .mb-lg-n1, - .my-lg-n1 { - margin-bottom: -0.25rem !important; } - .ml-lg-n1, - .mx-lg-n1 { - margin-left: -0.25rem !important; } - .m-lg-n2 { - margin: -0.5rem !important; } - .mt-lg-n2, - .my-lg-n2 { - margin-top: -0.5rem !important; } - .mr-lg-n2, - .mx-lg-n2 { - margin-right: -0.5rem !important; } - .mb-lg-n2, - .my-lg-n2 { - margin-bottom: -0.5rem !important; } - .ml-lg-n2, - .mx-lg-n2 { - margin-left: -0.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: 4px) { - .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: 0.25rem !important; } - .mt-xl-1, - .my-xl-1 { - margin-top: 0.25rem !important; } - .mr-xl-1, - .mx-xl-1 { - margin-right: 0.25rem !important; } - .mb-xl-1, - .my-xl-1 { - margin-bottom: 0.25rem !important; } - .ml-xl-1, - .mx-xl-1 { - margin-left: 0.25rem !important; } - .m-xl-2 { - margin: 0.5rem !important; } - .mt-xl-2, - .my-xl-2 { - margin-top: 0.5rem !important; } - .mr-xl-2, - .mx-xl-2 { - margin-right: 0.5rem !important; } - .mb-xl-2, - .my-xl-2 { - margin-bottom: 0.5rem !important; } - .ml-xl-2, - .mx-xl-2 { - margin-left: 0.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: 0.25rem !important; } - .pt-xl-1, - .py-xl-1 { - padding-top: 0.25rem !important; } - .pr-xl-1, - .px-xl-1 { - padding-right: 0.25rem !important; } - .pb-xl-1, - .py-xl-1 { - padding-bottom: 0.25rem !important; } - .pl-xl-1, - .px-xl-1 { - padding-left: 0.25rem !important; } - .p-xl-2 { - padding: 0.5rem !important; } - .pt-xl-2, - .py-xl-2 { - padding-top: 0.5rem !important; } - .pr-xl-2, - .px-xl-2 { - padding-right: 0.5rem !important; } - .pb-xl-2, - .py-xl-2 { - padding-bottom: 0.5rem !important; } - .pl-xl-2, - .px-xl-2 { - padding-left: 0.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: -0.25rem !important; } - .mt-xl-n1, - .my-xl-n1 { - margin-top: -0.25rem !important; } - .mr-xl-n1, - .mx-xl-n1 { - margin-right: -0.25rem !important; } - .mb-xl-n1, - .my-xl-n1 { - margin-bottom: -0.25rem !important; } - .ml-xl-n1, - .mx-xl-n1 { - margin-left: -0.25rem !important; } - .m-xl-n2 { - margin: -0.5rem !important; } - .mt-xl-n2, - .my-xl-n2 { - margin-top: -0.5rem !important; } - .mr-xl-n2, - .mx-xl-n2 { - margin-right: -0.5rem !important; } - .mb-xl-n2, - .my-xl-n2 { - margin-bottom: -0.5rem !important; } - .ml-xl-n2, - .mx-xl-n2 { - margin-left: -0.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, .totp .totp-code { - 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: 1px) { - .text-sm-left { - text-align: left !important; } - .text-sm-right { - text-align: right !important; } - .text-sm-center { - text-align: center !important; } } - -@media (min-width: 2px) { - .text-md-left { - text-align: left !important; } - .text-md-right { - text-align: right !important; } - .text-md-center { - text-align: center !important; } } - -@media (min-width: 3px) { - .text-lg-left { - text-align: left !important; } - .text-lg-right { - text-align: right !important; } - .text-lg-center { - text-align: center !important; } } - -@media (min-width: 4px) { - .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: #175DDC !important; } - -a.text-primary:hover, a.text-primary:focus { - color: #104097 !important; } - -.text-secondary { - color: #ced4da !important; } - -a.text-secondary:hover, a.text-secondary:focus { - color: #a2aeb9 !important; } - -.text-success { - color: #00a65a !important; } - -a.text-success:hover, a.text-success:focus { - color: #005a31 !important; } - -.text-info { - color: #555555 !important; } - -a.text-info:hover, a.text-info:focus { - color: #2f2f2f !important; } - -.text-warning { - color: #bf7e16 !important; } - -a.text-warning:hover, a.text-warning:focus { - color: #7a510e !important; } - -.text-danger { - color: #dd4b39 !important; } - -a.text-danger:hover, a.text-danger:focus { - color: #ac2d1e !important; } - -.text-light { - color: #f8f9fa !important; } - -a.text-light:hover, a.text-light:focus { - color: #cbd3da !important; } - -.text-dark { - color: #343a40 !important; } - -a.text-dark:hover, a.text-dark:focus { - color: #121416 !important; } - -.text-primary-accent { - color: #1252A3 !important; } - -a.text-primary-accent:hover, a.text-primary-accent:focus { - color: #0a2f5e !important; } - -.text-secondary-alt { - color: #1A3B66 !important; } - -a.text-secondary-alt:hover, a.text-secondary-alt:focus { - color: #0a1829 !important; } - -.text-body { - color: #333333 !important; } - -.text-muted, .card-header small, .modal-header small { - color: #6c757d !important; } - -.text-black-50 { - color: rgba(0, 0, 0, 0.5) !important; } - -.text-white-50 { - color: rgba(255, 255, 255, 0.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 { - *, - *::before, - *::after { - 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; } - pre, - blockquote { - border: 1px solid #adb5bd; - page-break-inside: avoid; } - thead { - display: table-header-group; } - tr, - img { - page-break-inside: avoid; } - p, - h2, - h3 { - orphans: 3; - widows: 3; } - h2, - h3 { - page-break-after: avoid; } - @page { - size: a3; } - body { - min-width: 3px !important; } - .container { - min-width: 3px !important; } - .navbar { - display: none; } - .badge { - border: 1px solid #000; } - .table { - border-collapse: collapse !important; } - .table td, - .table th { - background-color: #fff !important; } - .table-bordered th, - .table-bordered td { - border: 1px solid #dee2e6 !important; } - .table-dark { - color: inherit; } - .table-dark th, - .table-dark td, - .table-dark thead th, - .table-dark tbody + tbody { - border-color: #dee2e6; } - .table .thead-dark th { - color: inherit; - border-color: #dee2e6; } } - -/*! - * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */ -/* FONT PATH - * -------------------------- */ -@font-face { - font-family: 'FontAwesome'; - src: url(../fonts/fontawesome-webfont.eot); - src: url(../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0) format("embedded-opentype"), url(../fonts/fontawesome-webfont.woff2) format("woff2"), url(../fonts/fontawesome-webfont.woff) format("woff"), url(../fonts/fontawesome-webfont.ttf) format("truetype"), url(../fonts/fontawesome-webfont.svg#fontawesomeregular) format("svg"); - font-weight: normal; - font-style: normal; } - -.fa { - display: inline-block; - font: normal normal normal 14px/1 FontAwesome; - font-size: inherit; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; } - -/* makes the font 33% larger relative to the icon container */ -.fa-lg { - font-size: 1.33333em; - line-height: 0.75em; - vertical-align: -15%; } - -.fa-2x { - font-size: 2em; } - -.fa-3x { - font-size: 3em; } - -.fa-4x { - font-size: 4em; } - -.fa-5x { - font-size: 5em; } - -.fa-fw { - width: 1.28571em; - text-align: center; } - -.fa-ul { - padding-left: 0; - margin-left: 2.14286em; - list-style-type: none; } - .fa-ul > li { - position: relative; } - -.fa-li { - position: absolute; - left: -2.14286em; - width: 2.14286em; - top: 0.14286em; - text-align: center; } - .fa-li.fa-lg { - left: -1.85714em; } - -.fa-border { - padding: .2em .25em .15em; - border: solid 0.08em #eee; - border-radius: .1em; } - -.fa-pull-left { - float: left; } - -.fa-pull-right { - float: right; } - -.fa.fa-pull-left { - margin-right: .3em; } - -.fa.fa-pull-right { - margin-left: .3em; } - -/* Deprecated as of 4.4.0 */ -.pull-right { - float: right; } - -.pull-left { - float: left; } - -.fa.pull-left { - margin-right: .3em; } - -.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(0deg); - transform: rotate(0deg); } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); } } - -@keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); } } - -.fa-rotate-90 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; - -webkit-transform: rotate(90deg); - -ms-transform: rotate(90deg); - transform: rotate(90deg); } - -.fa-rotate-180 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; - -webkit-transform: rotate(180deg); - -ms-transform: rotate(180deg); - transform: rotate(180deg); } - -.fa-rotate-270 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; - -webkit-transform: rotate(270deg); - -ms-transform: rotate(270deg); - transform: rotate(270deg); } - -.fa-flip-horizontal { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; - -webkit-transform: scale(-1, 1); - -ms-transform: scale(-1, 1); - transform: scale(-1, 1); } - -.fa-flip-vertical { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; - -webkit-transform: scale(1, -1); - -ms-transform: scale(1, -1); - transform: scale(1, -1); } - -:root .fa-rotate-90, -:root .fa-rotate-180, -:root .fa-rotate-270, -:root .fa-flip-horizontal, -:root .fa-flip-vertical { - filter: none; } - -.fa-stack { - position: relative; - display: inline-block; - width: 2em; - height: 2em; - line-height: 2em; - vertical-align: middle; } - -.fa-stack-1x, .fa-stack-2x { - position: absolute; - left: 0; - width: 100%; - text-align: center; } - -.fa-stack-1x { - line-height: inherit; } - -.fa-stack-2x { - font-size: 2em; } - -.fa-inverse { - color: #fff; } - -/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen - readers do not read off random characters that represent icons */ -.fa-glass:before { - content: "\F000"; } - -.fa-music:before { - content: "\F001"; } - -.fa-search:before { - content: "\F002"; } - -.fa-envelope-o:before { - content: "\F003"; } - -.fa-heart:before { - content: "\F004"; } - -.fa-star:before { - content: "\F005"; } - -.fa-star-o:before { - content: "\F006"; } - -.fa-user:before { - content: "\F007"; } - -.fa-film:before { - content: "\F008"; } - -.fa-th-large:before { - content: "\F009"; } - -.fa-th:before { - content: "\F00A"; } - -.fa-th-list:before { - content: "\F00B"; } - -.fa-check:before { - content: "\F00C"; } - -.fa-remove:before, -.fa-close:before, -.fa-times:before { - content: "\F00D"; } - -.fa-search-plus:before { - content: "\F00E"; } - -.fa-search-minus:before { - content: "\F010"; } - -.fa-power-off:before { - content: "\F011"; } - -.fa-signal:before { - content: "\F012"; } - -.fa-gear:before, -.fa-cog:before { - content: "\F013"; } - -.fa-trash-o:before { - content: "\F014"; } - -.fa-home:before { - content: "\F015"; } - -.fa-file-o:before { - content: "\F016"; } - -.fa-clock-o:before { - content: "\F017"; } - -.fa-road:before { - content: "\F018"; } - -.fa-download:before { - content: "\F019"; } - -.fa-arrow-circle-o-down:before { - content: "\F01A"; } - -.fa-arrow-circle-o-up:before { - content: "\F01B"; } - -.fa-inbox:before { - content: "\F01C"; } - -.fa-play-circle-o:before { - content: "\F01D"; } - -.fa-rotate-right:before, -.fa-repeat:before { - content: "\F01E"; } - -.fa-refresh:before { - content: "\F021"; } - -.fa-list-alt:before { - content: "\F022"; } - -.fa-lock:before { - content: "\F023"; } - -.fa-flag:before { - content: "\F024"; } - -.fa-headphones:before { - content: "\F025"; } - -.fa-volume-off:before { - content: "\F026"; } - -.fa-volume-down:before { - content: "\F027"; } - -.fa-volume-up:before { - content: "\F028"; } - -.fa-qrcode:before { - content: "\F029"; } - -.fa-barcode:before { - content: "\F02A"; } - -.fa-tag:before { - content: "\F02B"; } - -.fa-tags:before { - content: "\F02C"; } - -.fa-book:before { - content: "\F02D"; } - -.fa-bookmark:before { - content: "\F02E"; } - -.fa-print:before { - content: "\F02F"; } - -.fa-camera:before { - content: "\F030"; } - -.fa-font:before { - content: "\F031"; } - -.fa-bold:before { - content: "\F032"; } - -.fa-italic:before { - content: "\F033"; } - -.fa-text-height:before { - content: "\F034"; } - -.fa-text-width:before { - content: "\F035"; } - -.fa-align-left:before { - content: "\F036"; } - -.fa-align-center:before { - content: "\F037"; } - -.fa-align-right:before { - content: "\F038"; } - -.fa-align-justify:before { - content: "\F039"; } - -.fa-list:before { - content: "\F03A"; } - -.fa-dedent:before, -.fa-outdent:before { - content: "\F03B"; } - -.fa-indent:before { - content: "\F03C"; } - -.fa-video-camera:before { - content: "\F03D"; } - -.fa-photo:before, -.fa-image:before, -.fa-picture-o:before { - content: "\F03E"; } - -.fa-pencil:before { - content: "\F040"; } - -.fa-map-marker:before { - content: "\F041"; } - -.fa-adjust:before { - content: "\F042"; } - -.fa-tint:before { - content: "\F043"; } - -.fa-edit:before, -.fa-pencil-square-o:before { - content: "\F044"; } - -.fa-share-square-o:before { - content: "\F045"; } - -.fa-check-square-o:before { - content: "\F046"; } - -.fa-arrows:before { - content: "\F047"; } - -.fa-step-backward:before { - content: "\F048"; } - -.fa-fast-backward:before { - content: "\F049"; } - -.fa-backward:before { - content: "\F04A"; } - -.fa-play:before { - content: "\F04B"; } - -.fa-pause:before { - content: "\F04C"; } - -.fa-stop:before { - content: "\F04D"; } - -.fa-forward:before { - content: "\F04E"; } - -.fa-fast-forward:before { - content: "\F050"; } - -.fa-step-forward:before { - content: "\F051"; } - -.fa-eject:before { - content: "\F052"; } - -.fa-chevron-left:before { - content: "\F053"; } - -.fa-chevron-right:before { - content: "\F054"; } - -.fa-plus-circle:before { - content: "\F055"; } - -.fa-minus-circle:before { - content: "\F056"; } - -.fa-times-circle:before { - content: "\F057"; } - -.fa-check-circle:before { - content: "\F058"; } - -.fa-question-circle:before { - content: "\F059"; } - -.fa-info-circle:before { - content: "\F05A"; } - -.fa-crosshairs:before { - content: "\F05B"; } - -.fa-times-circle-o:before { - content: "\F05C"; } - -.fa-check-circle-o:before { - content: "\F05D"; } - -.fa-ban:before { - content: "\F05E"; } - -.fa-arrow-left:before { - content: "\F060"; } - -.fa-arrow-right:before { - content: "\F061"; } - -.fa-arrow-up:before { - content: "\F062"; } - -.fa-arrow-down:before { - content: "\F063"; } - -.fa-mail-forward:before, -.fa-share:before { - content: "\F064"; } - -.fa-expand:before { - content: "\F065"; } - -.fa-compress:before { - content: "\F066"; } - -.fa-plus:before { - content: "\F067"; } - -.fa-minus:before { - content: "\F068"; } - -.fa-asterisk:before { - content: "\F069"; } - -.fa-exclamation-circle:before { - content: "\F06A"; } - -.fa-gift:before { - content: "\F06B"; } - -.fa-leaf:before { - content: "\F06C"; } - -.fa-fire:before { - content: "\F06D"; } - -.fa-eye:before { - content: "\F06E"; } - -.fa-eye-slash:before { - content: "\F070"; } - -.fa-warning:before, -.fa-exclamation-triangle:before { - content: "\F071"; } - -.fa-plane:before { - content: "\F072"; } - -.fa-calendar:before { - content: "\F073"; } - -.fa-random:before { - content: "\F074"; } - -.fa-comment:before { - content: "\F075"; } - -.fa-magnet:before { - content: "\F076"; } - -.fa-chevron-up:before { - content: "\F077"; } - -.fa-chevron-down:before { - content: "\F078"; } - -.fa-retweet:before { - content: "\F079"; } - -.fa-shopping-cart:before { - content: "\F07A"; } - -.fa-folder:before { - content: "\F07B"; } - -.fa-folder-open:before { - content: "\F07C"; } - -.fa-arrows-v:before { - content: "\F07D"; } - -.fa-arrows-h:before { - content: "\F07E"; } - -.fa-bar-chart-o:before, -.fa-bar-chart:before { - content: "\F080"; } - -.fa-twitter-square:before { - content: "\F081"; } - -.fa-facebook-square:before { - content: "\F082"; } - -.fa-camera-retro:before { - content: "\F083"; } - -.fa-key:before { - content: "\F084"; } - -.fa-gears:before, -.fa-cogs:before { - content: "\F085"; } - -.fa-comments:before { - content: "\F086"; } - -.fa-thumbs-o-up:before { - content: "\F087"; } - -.fa-thumbs-o-down:before { - content: "\F088"; } - -.fa-star-half:before { - content: "\F089"; } - -.fa-heart-o:before { - content: "\F08A"; } - -.fa-sign-out:before { - content: "\F08B"; } - -.fa-linkedin-square:before { - content: "\F08C"; } - -.fa-thumb-tack:before { - content: "\F08D"; } - -.fa-external-link:before { - content: "\F08E"; } - -.fa-sign-in:before { - content: "\F090"; } - -.fa-trophy:before { - content: "\F091"; } - -.fa-github-square:before { - content: "\F092"; } - -.fa-upload:before { - content: "\F093"; } - -.fa-lemon-o:before { - content: "\F094"; } - -.fa-phone:before { - content: "\F095"; } - -.fa-square-o:before { - content: "\F096"; } - -.fa-bookmark-o:before { - content: "\F097"; } - -.fa-phone-square:before { - content: "\F098"; } - -.fa-twitter:before { - content: "\F099"; } - -.fa-facebook-f:before, -.fa-facebook:before { - content: "\F09A"; } - -.fa-github:before { - content: "\F09B"; } - -.fa-unlock:before { - content: "\F09C"; } - -.fa-credit-card:before { - content: "\F09D"; } - -.fa-feed:before, -.fa-rss:before { - content: "\F09E"; } - -.fa-hdd-o:before { - content: "\F0A0"; } - -.fa-bullhorn:before { - content: "\F0A1"; } - -.fa-bell:before { - content: "\F0F3"; } - -.fa-certificate:before { - content: "\F0A3"; } - -.fa-hand-o-right:before { - content: "\F0A4"; } - -.fa-hand-o-left:before { - content: "\F0A5"; } - -.fa-hand-o-up:before { - content: "\F0A6"; } - -.fa-hand-o-down:before { - content: "\F0A7"; } - -.fa-arrow-circle-left:before { - content: "\F0A8"; } - -.fa-arrow-circle-right:before { - content: "\F0A9"; } - -.fa-arrow-circle-up:before { - content: "\F0AA"; } - -.fa-arrow-circle-down:before { - content: "\F0AB"; } - -.fa-globe:before { - content: "\F0AC"; } - -.fa-wrench:before { - content: "\F0AD"; } - -.fa-tasks:before { - content: "\F0AE"; } - -.fa-filter:before { - content: "\F0B0"; } - -.fa-briefcase:before { - content: "\F0B1"; } - -.fa-arrows-alt:before { - content: "\F0B2"; } - -.fa-group:before, -.fa-users:before { - content: "\F0C0"; } - -.fa-chain:before, -.fa-link:before { - content: "\F0C1"; } - -.fa-cloud:before { - content: "\F0C2"; } - -.fa-flask:before { - content: "\F0C3"; } - -.fa-cut:before, -.fa-scissors:before { - content: "\F0C4"; } - -.fa-copy:before, -.fa-files-o:before { - content: "\F0C5"; } - -.fa-paperclip:before { - content: "\F0C6"; } - -.fa-save:before, -.fa-floppy-o:before { - content: "\F0C7"; } - -.fa-square:before { - content: "\F0C8"; } - -.fa-navicon:before, -.fa-reorder:before, -.fa-bars:before { - content: "\F0C9"; } - -.fa-list-ul:before { - content: "\F0CA"; } - -.fa-list-ol:before { - content: "\F0CB"; } - -.fa-strikethrough:before { - content: "\F0CC"; } - -.fa-underline:before { - content: "\F0CD"; } - -.fa-table:before { - content: "\F0CE"; } - -.fa-magic:before { - content: "\F0D0"; } - -.fa-truck:before { - content: "\F0D1"; } - -.fa-pinterest:before { - content: "\F0D2"; } - -.fa-pinterest-square:before { - content: "\F0D3"; } - -.fa-google-plus-square:before { - content: "\F0D4"; } - -.fa-google-plus:before { - content: "\F0D5"; } - -.fa-money:before { - content: "\F0D6"; } - -.fa-caret-down:before { - content: "\F0D7"; } - -.fa-caret-up:before { - content: "\F0D8"; } - -.fa-caret-left:before { - content: "\F0D9"; } - -.fa-caret-right:before { - content: "\F0DA"; } - -.fa-columns:before { - content: "\F0DB"; } - -.fa-unsorted:before, -.fa-sort:before { - content: "\F0DC"; } - -.fa-sort-down:before, -.fa-sort-desc:before { - content: "\F0DD"; } - -.fa-sort-up:before, -.fa-sort-asc:before { - content: "\F0DE"; } - -.fa-envelope:before { - content: "\F0E0"; } - -.fa-linkedin:before { - content: "\F0E1"; } - -.fa-rotate-left:before, -.fa-undo:before { - content: "\F0E2"; } - -.fa-legal:before, -.fa-gavel:before { - content: "\F0E3"; } - -.fa-dashboard:before, -.fa-tachometer:before { - content: "\F0E4"; } - -.fa-comment-o:before { - content: "\F0E5"; } - -.fa-comments-o:before { - content: "\F0E6"; } - -.fa-flash:before, -.fa-bolt:before { - content: "\F0E7"; } - -.fa-sitemap:before { - content: "\F0E8"; } - -.fa-umbrella:before { - content: "\F0E9"; } - -.fa-paste:before, -.fa-clipboard:before { - content: "\F0EA"; } - -.fa-lightbulb-o:before { - content: "\F0EB"; } - -.fa-exchange:before { - content: "\F0EC"; } - -.fa-cloud-download:before { - content: "\F0ED"; } - -.fa-cloud-upload:before { - content: "\F0EE"; } - -.fa-user-md:before { - content: "\F0F0"; } - -.fa-stethoscope:before { - content: "\F0F1"; } - -.fa-suitcase:before { - content: "\F0F2"; } - -.fa-bell-o:before { - content: "\F0A2"; } - -.fa-coffee:before { - content: "\F0F4"; } - -.fa-cutlery:before { - content: "\F0F5"; } - -.fa-file-text-o:before { - content: "\F0F6"; } - -.fa-building-o:before { - content: "\F0F7"; } - -.fa-hospital-o:before { - content: "\F0F8"; } - -.fa-ambulance:before { - content: "\F0F9"; } - -.fa-medkit:before { - content: "\F0FA"; } - -.fa-fighter-jet:before { - content: "\F0FB"; } - -.fa-beer:before { - content: "\F0FC"; } - -.fa-h-square:before { - content: "\F0FD"; } - -.fa-plus-square:before { - content: "\F0FE"; } - -.fa-angle-double-left:before { - content: "\F100"; } - -.fa-angle-double-right:before { - content: "\F101"; } - -.fa-angle-double-up:before { - content: "\F102"; } - -.fa-angle-double-down:before { - content: "\F103"; } - -.fa-angle-left:before { - content: "\F104"; } - -.fa-angle-right:before { - content: "\F105"; } - -.fa-angle-up:before { - content: "\F106"; } - -.fa-angle-down:before { - content: "\F107"; } - -.fa-desktop:before { - content: "\F108"; } - -.fa-laptop:before { - content: "\F109"; } - -.fa-tablet:before { - content: "\F10A"; } - -.fa-mobile-phone:before, -.fa-mobile:before { - content: "\F10B"; } - -.fa-circle-o:before { - content: "\F10C"; } - -.fa-quote-left:before { - content: "\F10D"; } - -.fa-quote-right:before { - content: "\F10E"; } - -.fa-spinner:before { - content: "\F110"; } - -.fa-circle:before { - content: "\F111"; } - -.fa-mail-reply:before, -.fa-reply:before { - content: "\F112"; } - -.fa-github-alt:before { - content: "\F113"; } - -.fa-folder-o:before { - content: "\F114"; } - -.fa-folder-open-o:before { - content: "\F115"; } - -.fa-smile-o:before { - content: "\F118"; } - -.fa-frown-o:before { - content: "\F119"; } - -.fa-meh-o:before { - content: "\F11A"; } - -.fa-gamepad:before { - content: "\F11B"; } - -.fa-keyboard-o:before { - content: "\F11C"; } - -.fa-flag-o:before { - content: "\F11D"; } - -.fa-flag-checkered:before { - content: "\F11E"; } - -.fa-terminal:before { - content: "\F120"; } - -.fa-code:before { - content: "\F121"; } - -.fa-mail-reply-all:before, -.fa-reply-all:before { - content: "\F122"; } - -.fa-star-half-empty:before, -.fa-star-half-full:before, -.fa-star-half-o:before { - content: "\F123"; } - -.fa-location-arrow:before { - content: "\F124"; } - -.fa-crop:before { - content: "\F125"; } - -.fa-code-fork:before { - content: "\F126"; } - -.fa-unlink:before, -.fa-chain-broken:before { - content: "\F127"; } - -.fa-question:before { - content: "\F128"; } - -.fa-info:before { - content: "\F129"; } - -.fa-exclamation:before { - content: "\F12A"; } - -.fa-superscript:before { - content: "\F12B"; } - -.fa-subscript:before { - content: "\F12C"; } - -.fa-eraser:before { - content: "\F12D"; } - -.fa-puzzle-piece:before { - content: "\F12E"; } - -.fa-microphone:before { - content: "\F130"; } - -.fa-microphone-slash:before { - content: "\F131"; } - -.fa-shield:before { - content: "\F132"; } - -.fa-calendar-o:before { - content: "\F133"; } - -.fa-fire-extinguisher:before { - content: "\F134"; } - -.fa-rocket:before { - content: "\F135"; } - -.fa-maxcdn:before { - content: "\F136"; } - -.fa-chevron-circle-left:before { - content: "\F137"; } - -.fa-chevron-circle-right:before { - content: "\F138"; } - -.fa-chevron-circle-up:before { - content: "\F139"; } - -.fa-chevron-circle-down:before { - content: "\F13A"; } - -.fa-html5:before { - content: "\F13B"; } - -.fa-css3:before { - content: "\F13C"; } - -.fa-anchor:before { - content: "\F13D"; } - -.fa-unlock-alt:before { - content: "\F13E"; } - -.fa-bullseye:before { - content: "\F140"; } - -.fa-ellipsis-h:before { - content: "\F141"; } - -.fa-ellipsis-v:before { - content: "\F142"; } - -.fa-rss-square:before { - content: "\F143"; } - -.fa-play-circle:before { - content: "\F144"; } - -.fa-ticket:before { - content: "\F145"; } - -.fa-minus-square:before { - content: "\F146"; } - -.fa-minus-square-o:before { - content: "\F147"; } - -.fa-level-up:before { - content: "\F148"; } - -.fa-level-down:before { - content: "\F149"; } - -.fa-check-square:before { - content: "\F14A"; } - -.fa-pencil-square:before { - content: "\F14B"; } - -.fa-external-link-square:before { - content: "\F14C"; } - -.fa-share-square:before { - content: "\F14D"; } - -.fa-compass:before { - content: "\F14E"; } - -.fa-toggle-down:before, -.fa-caret-square-o-down:before { - content: "\F150"; } - -.fa-toggle-up:before, -.fa-caret-square-o-up:before { - content: "\F151"; } - -.fa-toggle-right:before, -.fa-caret-square-o-right:before { - content: "\F152"; } - -.fa-euro:before, -.fa-eur:before { - content: "\F153"; } - -.fa-gbp:before { - content: "\F154"; } - -.fa-dollar:before, -.fa-usd:before { - content: "\F155"; } - -.fa-rupee:before, -.fa-inr:before { - content: "\F156"; } - -.fa-cny:before, -.fa-rmb:before, -.fa-yen:before, -.fa-jpy:before { - content: "\F157"; } - -.fa-ruble:before, -.fa-rouble:before, -.fa-rub:before { - content: "\F158"; } - -.fa-won:before, -.fa-krw:before { - content: "\F159"; } - -.fa-bitcoin:before, -.fa-btc:before { - content: "\F15A"; } - -.fa-file:before { - content: "\F15B"; } - -.fa-file-text:before { - content: "\F15C"; } - -.fa-sort-alpha-asc:before { - content: "\F15D"; } - -.fa-sort-alpha-desc:before { - content: "\F15E"; } - -.fa-sort-amount-asc:before { - content: "\F160"; } - -.fa-sort-amount-desc:before { - content: "\F161"; } - -.fa-sort-numeric-asc:before { - content: "\F162"; } - -.fa-sort-numeric-desc:before { - content: "\F163"; } - -.fa-thumbs-up:before { - content: "\F164"; } - -.fa-thumbs-down:before { - content: "\F165"; } - -.fa-youtube-square:before { - content: "\F166"; } - -.fa-youtube:before { - content: "\F167"; } - -.fa-xing:before { - content: "\F168"; } - -.fa-xing-square:before { - content: "\F169"; } - -.fa-youtube-play:before { - content: "\F16A"; } - -.fa-dropbox:before { - content: "\F16B"; } - -.fa-stack-overflow:before { - content: "\F16C"; } - -.fa-instagram:before { - content: "\F16D"; } - -.fa-flickr:before { - content: "\F16E"; } - -.fa-adn:before { - content: "\F170"; } - -.fa-bitbucket:before { - content: "\F171"; } - -.fa-bitbucket-square:before { - content: "\F172"; } - -.fa-tumblr:before { - content: "\F173"; } - -.fa-tumblr-square:before { - content: "\F174"; } - -.fa-long-arrow-down:before { - content: "\F175"; } - -.fa-long-arrow-up:before { - content: "\F176"; } - -.fa-long-arrow-left:before { - content: "\F177"; } - -.fa-long-arrow-right:before { - content: "\F178"; } - -.fa-apple:before { - content: "\F179"; } - -.fa-windows:before { - content: "\F17A"; } - -.fa-android:before { - content: "\F17B"; } - -.fa-linux:before { - content: "\F17C"; } - -.fa-dribbble:before { - content: "\F17D"; } - -.fa-skype:before { - content: "\F17E"; } - -.fa-foursquare:before { - content: "\F180"; } - -.fa-trello:before { - content: "\F181"; } - -.fa-female:before { - content: "\F182"; } - -.fa-male:before { - content: "\F183"; } - -.fa-gittip:before, -.fa-gratipay:before { - content: "\F184"; } - -.fa-sun-o:before { - content: "\F185"; } - -.fa-moon-o:before { - content: "\F186"; } - -.fa-archive:before { - content: "\F187"; } - -.fa-bug:before { - content: "\F188"; } - -.fa-vk:before { - content: "\F189"; } - -.fa-weibo:before { - content: "\F18A"; } - -.fa-renren:before { - content: "\F18B"; } - -.fa-pagelines:before { - content: "\F18C"; } - -.fa-stack-exchange:before { - content: "\F18D"; } - -.fa-arrow-circle-o-right:before { - content: "\F18E"; } - -.fa-arrow-circle-o-left:before { - content: "\F190"; } - -.fa-toggle-left:before, -.fa-caret-square-o-left:before { - content: "\F191"; } - -.fa-dot-circle-o:before { - content: "\F192"; } - -.fa-wheelchair:before { - content: "\F193"; } - -.fa-vimeo-square:before { - content: "\F194"; } - -.fa-turkish-lira:before, -.fa-try:before { - content: "\F195"; } - -.fa-plus-square-o:before { - content: "\F196"; } - -.fa-space-shuttle:before { - content: "\F197"; } - -.fa-slack:before { - content: "\F198"; } - -.fa-envelope-square:before { - content: "\F199"; } - -.fa-wordpress:before { - content: "\F19A"; } - -.fa-openid:before { - content: "\F19B"; } - -.fa-institution:before, -.fa-bank:before, -.fa-university:before { - content: "\F19C"; } - -.fa-mortar-board:before, -.fa-graduation-cap:before { - content: "\F19D"; } - -.fa-yahoo:before { - content: "\F19E"; } - -.fa-google:before { - content: "\F1A0"; } - -.fa-reddit:before { - content: "\F1A1"; } - -.fa-reddit-square:before { - content: "\F1A2"; } - -.fa-stumbleupon-circle:before { - content: "\F1A3"; } - -.fa-stumbleupon:before { - content: "\F1A4"; } - -.fa-delicious:before { - content: "\F1A5"; } - -.fa-digg:before { - content: "\F1A6"; } - -.fa-pied-piper-pp:before { - content: "\F1A7"; } - -.fa-pied-piper-alt:before { - content: "\F1A8"; } - -.fa-drupal:before { - content: "\F1A9"; } - -.fa-joomla:before { - content: "\F1AA"; } - -.fa-language:before { - content: "\F1AB"; } - -.fa-fax:before { - content: "\F1AC"; } - -.fa-building:before { - content: "\F1AD"; } - -.fa-child:before { - content: "\F1AE"; } - -.fa-paw:before { - content: "\F1B0"; } - -.fa-spoon:before { - content: "\F1B1"; } - -.fa-cube:before { - content: "\F1B2"; } - -.fa-cubes:before { - content: "\F1B3"; } - -.fa-behance:before { - content: "\F1B4"; } - -.fa-behance-square:before { - content: "\F1B5"; } - -.fa-steam:before { - content: "\F1B6"; } - -.fa-steam-square:before { - content: "\F1B7"; } - -.fa-recycle:before { - content: "\F1B8"; } - -.fa-automobile:before, -.fa-car:before { - content: "\F1B9"; } - -.fa-cab:before, -.fa-taxi:before { - content: "\F1BA"; } - -.fa-tree:before { - content: "\F1BB"; } - -.fa-spotify:before { - content: "\F1BC"; } - -.fa-deviantart:before { - content: "\F1BD"; } - -.fa-soundcloud:before { - content: "\F1BE"; } - -.fa-database:before { - content: "\F1C0"; } - -.fa-file-pdf-o:before { - content: "\F1C1"; } - -.fa-file-word-o:before { - content: "\F1C2"; } - -.fa-file-excel-o:before { - content: "\F1C3"; } - -.fa-file-powerpoint-o:before { - content: "\F1C4"; } - -.fa-file-photo-o:before, -.fa-file-picture-o:before, -.fa-file-image-o:before { - content: "\F1C5"; } - -.fa-file-zip-o:before, -.fa-file-archive-o:before { - content: "\F1C6"; } - -.fa-file-sound-o:before, -.fa-file-audio-o:before { - content: "\F1C7"; } - -.fa-file-movie-o:before, -.fa-file-video-o:before { - content: "\F1C8"; } - -.fa-file-code-o:before { - content: "\F1C9"; } - -.fa-vine:before { - content: "\F1CA"; } - -.fa-codepen:before { - content: "\F1CB"; } - -.fa-jsfiddle:before { - content: "\F1CC"; } - -.fa-life-bouy:before, -.fa-life-buoy:before, -.fa-life-saver:before, -.fa-support:before, -.fa-life-ring:before { - content: "\F1CD"; } - -.fa-circle-o-notch:before { - content: "\F1CE"; } - -.fa-ra:before, -.fa-resistance:before, -.fa-rebel:before { - content: "\F1D0"; } - -.fa-ge:before, -.fa-empire:before { - content: "\F1D1"; } - -.fa-git-square:before { - content: "\F1D2"; } - -.fa-git:before { - content: "\F1D3"; } - -.fa-y-combinator-square:before, -.fa-yc-square:before, -.fa-hacker-news:before { - content: "\F1D4"; } - -.fa-tencent-weibo:before { - content: "\F1D5"; } - -.fa-qq:before { - content: "\F1D6"; } - -.fa-wechat:before, -.fa-weixin:before { - content: "\F1D7"; } - -.fa-send:before, -.fa-paper-plane:before { - content: "\F1D8"; } - -.fa-send-o:before, -.fa-paper-plane-o:before { - content: "\F1D9"; } - -.fa-history:before { - content: "\F1DA"; } - -.fa-circle-thin:before { - content: "\F1DB"; } - -.fa-header:before { - content: "\F1DC"; } - -.fa-paragraph:before { - content: "\F1DD"; } - -.fa-sliders:before { - content: "\F1DE"; } - -.fa-share-alt:before { - content: "\F1E0"; } - -.fa-share-alt-square:before { - content: "\F1E1"; } - -.fa-bomb:before { - content: "\F1E2"; } - -.fa-soccer-ball-o:before, -.fa-futbol-o:before { - content: "\F1E3"; } - -.fa-tty:before { - content: "\F1E4"; } - -.fa-binoculars:before { - content: "\F1E5"; } - -.fa-plug:before { - content: "\F1E6"; } - -.fa-slideshare:before { - content: "\F1E7"; } - -.fa-twitch:before { - content: "\F1E8"; } - -.fa-yelp:before { - content: "\F1E9"; } - -.fa-newspaper-o:before { - content: "\F1EA"; } - -.fa-wifi:before { - content: "\F1EB"; } - -.fa-calculator:before { - content: "\F1EC"; } - -.fa-paypal:before { - content: "\F1ED"; } - -.fa-google-wallet:before { - content: "\F1EE"; } - -.fa-cc-visa:before { - content: "\F1F0"; } - -.fa-cc-mastercard:before { - content: "\F1F1"; } - -.fa-cc-discover:before { - content: "\F1F2"; } - -.fa-cc-amex:before { - content: "\F1F3"; } - -.fa-cc-paypal:before { - content: "\F1F4"; } - -.fa-cc-stripe:before { - content: "\F1F5"; } - -.fa-bell-slash:before { - content: "\F1F6"; } - -.fa-bell-slash-o:before { - content: "\F1F7"; } - -.fa-trash:before { - content: "\F1F8"; } - -.fa-copyright:before { - content: "\F1F9"; } - -.fa-at:before { - content: "\F1FA"; } - -.fa-eyedropper:before { - content: "\F1FB"; } - -.fa-paint-brush:before { - content: "\F1FC"; } - -.fa-birthday-cake:before { - content: "\F1FD"; } - -.fa-area-chart:before { - content: "\F1FE"; } - -.fa-pie-chart:before { - content: "\F200"; } - -.fa-line-chart:before { - content: "\F201"; } - -.fa-lastfm:before { - content: "\F202"; } - -.fa-lastfm-square:before { - content: "\F203"; } - -.fa-toggle-off:before { - content: "\F204"; } - -.fa-toggle-on:before { - content: "\F205"; } - -.fa-bicycle:before { - content: "\F206"; } - -.fa-bus:before { - content: "\F207"; } - -.fa-ioxhost:before { - content: "\F208"; } - -.fa-angellist:before { - content: "\F209"; } - -.fa-cc:before { - content: "\F20A"; } - -.fa-shekel:before, -.fa-sheqel:before, -.fa-ils:before { - content: "\F20B"; } - -.fa-meanpath:before { - content: "\F20C"; } - -.fa-buysellads:before { - content: "\F20D"; } - -.fa-connectdevelop:before { - content: "\F20E"; } - -.fa-dashcube:before { - content: "\F210"; } - -.fa-forumbee:before { - content: "\F211"; } - -.fa-leanpub:before { - content: "\F212"; } - -.fa-sellsy:before { - content: "\F213"; } - -.fa-shirtsinbulk:before { - content: "\F214"; } - -.fa-simplybuilt:before { - content: "\F215"; } - -.fa-skyatlas:before { - content: "\F216"; } - -.fa-cart-plus:before { - content: "\F217"; } - -.fa-cart-arrow-down:before { - content: "\F218"; } - -.fa-diamond:before { - content: "\F219"; } - -.fa-ship:before { - content: "\F21A"; } - -.fa-user-secret:before { - content: "\F21B"; } - -.fa-motorcycle:before { - content: "\F21C"; } - -.fa-street-view:before { - content: "\F21D"; } - -.fa-heartbeat:before { - content: "\F21E"; } - -.fa-venus:before { - content: "\F221"; } - -.fa-mars:before { - content: "\F222"; } - -.fa-mercury:before { - content: "\F223"; } - -.fa-intersex:before, -.fa-transgender:before { - content: "\F224"; } - -.fa-transgender-alt:before { - content: "\F225"; } - -.fa-venus-double:before { - content: "\F226"; } - -.fa-mars-double:before { - content: "\F227"; } - -.fa-venus-mars:before { - content: "\F228"; } - -.fa-mars-stroke:before { - content: "\F229"; } - -.fa-mars-stroke-v:before { - content: "\F22A"; } - -.fa-mars-stroke-h:before { - content: "\F22B"; } - -.fa-neuter:before { - content: "\F22C"; } - -.fa-genderless:before { - content: "\F22D"; } - -.fa-facebook-official:before { - content: "\F230"; } - -.fa-pinterest-p:before { - content: "\F231"; } - -.fa-whatsapp:before { - content: "\F232"; } - -.fa-server:before { - content: "\F233"; } - -.fa-user-plus:before { - content: "\F234"; } - -.fa-user-times:before { - content: "\F235"; } - -.fa-hotel:before, -.fa-bed:before { - content: "\F236"; } - -.fa-viacoin:before { - content: "\F237"; } - -.fa-train:before { - content: "\F238"; } - -.fa-subway:before { - content: "\F239"; } - -.fa-medium:before { - content: "\F23A"; } - -.fa-yc:before, -.fa-y-combinator:before { - content: "\F23B"; } - -.fa-optin-monster:before { - content: "\F23C"; } - -.fa-opencart:before { - content: "\F23D"; } - -.fa-expeditedssl:before { - content: "\F23E"; } - -.fa-battery-4:before, -.fa-battery:before, -.fa-battery-full:before { - content: "\F240"; } - -.fa-battery-3:before, -.fa-battery-three-quarters:before { - content: "\F241"; } - -.fa-battery-2:before, -.fa-battery-half:before { - content: "\F242"; } - -.fa-battery-1:before, -.fa-battery-quarter:before { - content: "\F243"; } - -.fa-battery-0:before, -.fa-battery-empty:before { - content: "\F244"; } - -.fa-mouse-pointer:before { - content: "\F245"; } - -.fa-i-cursor:before { - content: "\F246"; } - -.fa-object-group:before { - content: "\F247"; } - -.fa-object-ungroup:before { - content: "\F248"; } - -.fa-sticky-note:before { - content: "\F249"; } - -.fa-sticky-note-o:before { - content: "\F24A"; } - -.fa-cc-jcb:before { - content: "\F24B"; } - -.fa-cc-diners-club:before { - content: "\F24C"; } - -.fa-clone:before { - content: "\F24D"; } - -.fa-balance-scale:before { - content: "\F24E"; } - -.fa-hourglass-o:before { - content: "\F250"; } - -.fa-hourglass-1:before, -.fa-hourglass-start:before { - content: "\F251"; } - -.fa-hourglass-2:before, -.fa-hourglass-half:before { - content: "\F252"; } - -.fa-hourglass-3:before, -.fa-hourglass-end:before { - content: "\F253"; } - -.fa-hourglass:before { - content: "\F254"; } - -.fa-hand-grab-o:before, -.fa-hand-rock-o:before { - content: "\F255"; } - -.fa-hand-stop-o:before, -.fa-hand-paper-o:before { - content: "\F256"; } - -.fa-hand-scissors-o:before { - content: "\F257"; } - -.fa-hand-lizard-o:before { - content: "\F258"; } - -.fa-hand-spock-o:before { - content: "\F259"; } - -.fa-hand-pointer-o:before { - content: "\F25A"; } - -.fa-hand-peace-o:before { - content: "\F25B"; } - -.fa-trademark:before { - content: "\F25C"; } - -.fa-registered:before { - content: "\F25D"; } - -.fa-creative-commons:before { - content: "\F25E"; } - -.fa-gg:before { - content: "\F260"; } - -.fa-gg-circle:before { - content: "\F261"; } - -.fa-tripadvisor:before { - content: "\F262"; } - -.fa-odnoklassniki:before { - content: "\F263"; } - -.fa-odnoklassniki-square:before { - content: "\F264"; } - -.fa-get-pocket:before { - content: "\F265"; } - -.fa-wikipedia-w:before { - content: "\F266"; } - -.fa-safari:before { - content: "\F267"; } - -.fa-chrome:before { - content: "\F268"; } - -.fa-firefox:before { - content: "\F269"; } - -.fa-opera:before { - content: "\F26A"; } - -.fa-internet-explorer:before { - content: "\F26B"; } - -.fa-tv:before, -.fa-television:before { - content: "\F26C"; } - -.fa-contao:before { - content: "\F26D"; } - -.fa-500px:before { - content: "\F26E"; } - -.fa-amazon:before { - content: "\F270"; } - -.fa-calendar-plus-o:before { - content: "\F271"; } - -.fa-calendar-minus-o:before { - content: "\F272"; } - -.fa-calendar-times-o:before { - content: "\F273"; } - -.fa-calendar-check-o:before { - content: "\F274"; } - -.fa-industry:before { - content: "\F275"; } - -.fa-map-pin:before { - content: "\F276"; } - -.fa-map-signs:before { - content: "\F277"; } - -.fa-map-o:before { - content: "\F278"; } - -.fa-map:before { - content: "\F279"; } - -.fa-commenting:before { - content: "\F27A"; } - -.fa-commenting-o:before { - content: "\F27B"; } - -.fa-houzz:before { - content: "\F27C"; } - -.fa-vimeo:before { - content: "\F27D"; } - -.fa-black-tie:before { - content: "\F27E"; } - -.fa-fonticons:before { - content: "\F280"; } - -.fa-reddit-alien:before { - content: "\F281"; } - -.fa-edge:before { - content: "\F282"; } - -.fa-credit-card-alt:before { - content: "\F283"; } - -.fa-codiepie:before { - content: "\F284"; } - -.fa-modx:before { - content: "\F285"; } - -.fa-fort-awesome:before { - content: "\F286"; } - -.fa-usb:before { - content: "\F287"; } - -.fa-product-hunt:before { - content: "\F288"; } - -.fa-mixcloud:before { - content: "\F289"; } - -.fa-scribd:before { - content: "\F28A"; } - -.fa-pause-circle:before { - content: "\F28B"; } - -.fa-pause-circle-o:before { - content: "\F28C"; } - -.fa-stop-circle:before { - content: "\F28D"; } - -.fa-stop-circle-o:before { - content: "\F28E"; } - -.fa-shopping-bag:before { - content: "\F290"; } - -.fa-shopping-basket:before { - content: "\F291"; } - -.fa-hashtag:before { - content: "\F292"; } - -.fa-bluetooth:before { - content: "\F293"; } - -.fa-bluetooth-b:before { - content: "\F294"; } - -.fa-percent:before { - content: "\F295"; } - -.fa-gitlab:before { - content: "\F296"; } - -.fa-wpbeginner:before { - content: "\F297"; } - -.fa-wpforms:before { - content: "\F298"; } - -.fa-envira:before { - content: "\F299"; } - -.fa-universal-access:before { - content: "\F29A"; } - -.fa-wheelchair-alt:before { - content: "\F29B"; } - -.fa-question-circle-o:before { - content: "\F29C"; } - -.fa-blind:before { - content: "\F29D"; } - -.fa-audio-description:before { - content: "\F29E"; } - -.fa-volume-control-phone:before { - content: "\F2A0"; } - -.fa-braille:before { - content: "\F2A1"; } - -.fa-assistive-listening-systems:before { - content: "\F2A2"; } - -.fa-asl-interpreting:before, -.fa-american-sign-language-interpreting:before { - content: "\F2A3"; } - -.fa-deafness:before, -.fa-hard-of-hearing:before, -.fa-deaf:before { - content: "\F2A4"; } - -.fa-glide:before { - content: "\F2A5"; } - -.fa-glide-g:before { - content: "\F2A6"; } - -.fa-signing:before, -.fa-sign-language:before { - content: "\F2A7"; } - -.fa-low-vision:before { - content: "\F2A8"; } - -.fa-viadeo:before { - content: "\F2A9"; } - -.fa-viadeo-square:before { - content: "\F2AA"; } - -.fa-snapchat:before { - content: "\F2AB"; } - -.fa-snapchat-ghost:before { - content: "\F2AC"; } - -.fa-snapchat-square:before { - content: "\F2AD"; } - -.fa-pied-piper:before { - content: "\F2AE"; } - -.fa-first-order:before { - content: "\F2B0"; } - -.fa-yoast:before { - content: "\F2B1"; } - -.fa-themeisle:before { - content: "\F2B2"; } - -.fa-google-plus-circle:before, -.fa-google-plus-official:before { - content: "\F2B3"; } - -.fa-fa:before, -.fa-font-awesome:before { - content: "\F2B4"; } - -.fa-handshake-o:before { - content: "\F2B5"; } - -.fa-envelope-open:before { - content: "\F2B6"; } - -.fa-envelope-open-o:before { - content: "\F2B7"; } - -.fa-linode:before { - content: "\F2B8"; } - -.fa-address-book:before { - content: "\F2B9"; } - -.fa-address-book-o:before { - content: "\F2BA"; } - -.fa-vcard:before, -.fa-address-card:before { - content: "\F2BB"; } - -.fa-vcard-o:before, -.fa-address-card-o:before { - content: "\F2BC"; } - -.fa-user-circle:before { - content: "\F2BD"; } - -.fa-user-circle-o:before { - content: "\F2BE"; } - -.fa-user-o:before { - content: "\F2C0"; } - -.fa-id-badge:before { - content: "\F2C1"; } - -.fa-drivers-license:before, -.fa-id-card:before { - content: "\F2C2"; } - -.fa-drivers-license-o:before, -.fa-id-card-o:before { - content: "\F2C3"; } - -.fa-quora:before { - content: "\F2C4"; } - -.fa-free-code-camp:before { - content: "\F2C5"; } - -.fa-telegram:before { - content: "\F2C6"; } - -.fa-thermometer-4:before, -.fa-thermometer:before, -.fa-thermometer-full:before { - content: "\F2C7"; } - -.fa-thermometer-3:before, -.fa-thermometer-three-quarters:before { - content: "\F2C8"; } - -.fa-thermometer-2:before, -.fa-thermometer-half:before { - content: "\F2C9"; } - -.fa-thermometer-1:before, -.fa-thermometer-quarter:before { - content: "\F2CA"; } - -.fa-thermometer-0:before, -.fa-thermometer-empty:before { - content: "\F2CB"; } - -.fa-shower:before { - content: "\F2CC"; } - -.fa-bathtub:before, -.fa-s15:before, -.fa-bath:before { - content: "\F2CD"; } - -.fa-podcast:before { - content: "\F2CE"; } - -.fa-window-maximize:before { - content: "\F2D0"; } - -.fa-window-minimize:before { - content: "\F2D1"; } - -.fa-window-restore:before { - content: "\F2D2"; } - -.fa-times-rectangle:before, -.fa-window-close:before { - content: "\F2D3"; } - -.fa-times-rectangle-o:before, -.fa-window-close-o:before { - content: "\F2D4"; } - -.fa-bandcamp:before { - content: "\F2D5"; } - -.fa-grav:before { - content: "\F2D6"; } - -.fa-etsy:before { - content: "\F2D7"; } - -.fa-imdb:before { - content: "\F2D8"; } - -.fa-ravelry:before { - content: "\F2D9"; } - -.fa-eercast:before { - content: "\F2DA"; } - -.fa-microchip:before { - content: "\F2DB"; } - -.fa-snowflake-o:before { - content: "\F2DC"; } - -.fa-superpowers:before { - content: "\F2DD"; } - -.fa-wpexplorer:before { - content: "\F2DE"; } - -.fa-meetup:before { - content: "\F2E0"; } - -.sr-only, .table.table-list tr:not(:hover) td.table-list-options > .dropdown:not(.show) button:not(:focus):not(:active), .table.table-list tr:not(:hover) td.table-list-options > button:not(:focus):not(:active) { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; } - -.sr-only-focusable:active, .sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; } - -.toaster-icon { - position: absolute; - left: 0.0em; - top: 0.0em; - font-weight: normal; - color: #ffffff; } - -.toast-title { - font-weight: bold; } - -.toast-message { - -ms-word-wrap: break-word; - word-wrap: break-word; } - -.toast-message a, -.toast-message label { - color: #ffffff; } - -.toast-message a:hover { - color: #cccccc; - text-decoration: none; } - -.toast-close-button { - position: relative; - right: -0.3em; - top: -0.3em; - float: right; - font-size: 20px; - font-weight: bold; - color: #ffffff; - -webkit-text-shadow: 0 1px 0 #ffffff; - text-shadow: 0 1px 0 #ffffff; - opacity: 0.8; - -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80); - filter: alpha(opacity=80); - z-index: 999; } - -.toast-close-button:hover, .toast-close-button:focus { - color: #000000; - text-decoration: none; - cursor: pointer; - opacity: 0.4; - -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40); - filter: alpha(opacity=40); } - -/*Additional properties for button version - iOS requires the button element instead of an anchor tag. - If you want the anchor version, it requires `href="#"`.*/ -button.toast-close-button { - padding: 0; - cursor: pointer; - background: transparent; - border: 0; - -webkit-appearance: none; } - -.toast-content { - display: inline-block; - width: 95%; } - -.toast-top-full-width { - top: 0; - right: 0; - width: 100%; } - -.toast-bottom-full-width { - bottom: 0; - right: 0; - width: 100%; } - -.toast-top-left { - top: 12px; - left: 12px; } - -.toast-top-center { - top: 12px; } - -.toast-top-right { - top: 12px; - right: 12px; } - -.toast-bottom-right { - right: 12px; - bottom: 12px; } - -.toast-bottom-center { - bottom: 12px; } - -.toast-bottom-left { - bottom: 12px; - left: 12px; } - -.toast-center { - top: 45%; } - -#toast-container { - position: fixed; - z-index: 999999; - /*overrides*/ - pointer-events: auto; } - -#toast-container.toast-center, -#toast-container.toast-top-center, -#toast-container.toast-bottom-center { - width: 100%; - pointer-events: none; - left: 0; - right: 0; } - -#toast-container.toast-center > div, -#toast-container.toast-top-center > div, -#toast-container.toast-bottom-center > div { - margin: 6px auto; - pointer-events: auto; } - -#toast-container.toast-center > button, -#toast-container.toast-top-center > button, -#toast-container.toast-bottom-center > button { - pointer-events: auto; } - -#toast-container * { - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; } - -#toast-container > div { - margin: 0 0 6px; - padding: 15px 15px 15px 50px; - width: 300px; - -moz-border-radius: 3px 3px 3px 3px; - -webkit-border-radius: 3px 3px 3px 3px; - border-radius: 3px 3px 3px 3px; - background-position: 15px center; - background-repeat: no-repeat; - -moz-box-shadow: 0 0 12px #999999; - -webkit-box-shadow: 0 0 12px #999999; - box-shadow: 0 0 12px #999999; - color: #ffffff; - opacity: 0.8; - -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80); - filter: alpha(opacity=80); } - -#toast-container > :hover { - -moz-box-shadow: 0 0 12px #000000; - -webkit-box-shadow: 0 0 12px #000000; - box-shadow: 0 0 12px #000000; - opacity: 1; - -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100); - filter: alpha(opacity=100); - cursor: pointer; } - -.icon-success { - width: 35px; - height: 100%; - display: inline-block; - background-repeat: no-repeat; - background-position: 100% 50%; - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==") !important; } - -.icon-error { - width: 35px; - height: 100%; - display: inline-block; - background-repeat: no-repeat; - background-position: 100% 50%; - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=") !important; } - -.icon-info { - width: 35px; - height: 100%; - display: inline-block; - background-repeat: no-repeat; - background-position: 100% 50%; - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=") !important; } - -.icon-wait { - width: 35px; - height: 100%; - display: inline-block; - background-repeat: no-repeat; - background-position: 100% 50%; - background-image: url("data:image/gif;base64,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") !important; } - -.icon-warning { - width: 35px; - height: 100%; - display: inline-block; - background-repeat: no-repeat; - background-position: 100% 50%; - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=") !important; } - -#toast-container.toast-top-full-width > div, -#toast-container.toast-bottom-full-width > div { - width: 96%; - margin: auto; } - -.toast { - position: relative; - background-color: #030303; } - -.toast-success { - background-color: #51a351; } - -.toast-error { - background-color: #bd362f; } - -.toast-info { - background-color: #2f96b4; } - -.toast-wait { - background-color: #2f96b4; } - -.toast-warning { - background-color: #f89406; } - -/*Responsive Design*/ -@media all and (max-width: 240px) { - #toast-container > div { - padding: 8px 8px 8px 50px; - width: 11em; } - #toast-container .toast-close-button { - right: -0.1em; - top: -0.2em; } - .toast-content { - width: 94%; } } - -@media all and (min-width: 241px) and (max-width: 480px) { - #toast-container > div { - padding: 8px 8px 8px 50px; - width: 18em; } - #toast-container .toast-close-button { - right: -0.1em; - top: -0.2em; } - .toast-content { - width: 94%; } } - -@media all and (min-width: 481px) and (max-width: 768px) { - #toast-container > div { - padding: 15px 15px 15px 50px; - width: 25em; } } - -.swal2-popup.swal2-toast { - flex-direction: row; - align-items: center; - width: auto; - padding: 0.625em; - overflow-y: hidden; - background: #fff; - box-shadow: 0 0 0.625em #d9d9d9; } - .swal2-popup.swal2-toast .swal2-header { - flex-direction: row; - padding: 0; } - .swal2-popup.swal2-toast .swal2-title { - flex-grow: 1; - justify-content: flex-start; - margin: 0 0.6em; - font-size: 1em; } - .swal2-popup.swal2-toast .swal2-footer { - margin: 0.5em 0 0; - padding: 0.5em 0 0; - font-size: 0.8em; } - .swal2-popup.swal2-toast .swal2-close { - position: static; - width: 0.8em; - height: 0.8em; - line-height: 0.8; } - .swal2-popup.swal2-toast .swal2-content { - justify-content: flex-start; - padding: 0; - font-size: 1em; } - .swal2-popup.swal2-toast .swal2-icon { - width: 2em; - min-width: 2em; - height: 2em; - margin: 0; } - .swal2-popup.swal2-toast .swal2-icon .swal2-icon-content { - display: flex; - align-items: center; - font-size: 1.8em; - font-weight: bold; } - @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) { - .swal2-popup.swal2-toast .swal2-icon .swal2-icon-content { - font-size: .25em; } } - .swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring { - width: 2em; - height: 2em; } - .swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'] { - top: .875em; - width: 1.375em; } - .swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='left'] { - left: .3125em; } - .swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='right'] { - right: .3125em; } - .swal2-popup.swal2-toast .swal2-actions { - flex-basis: auto !important; - width: auto; - height: auto; - margin: 0 .3125em; - padding: 0; } - .swal2-popup.swal2-toast .swal2-styled { - margin: .125em .3125em; - padding: .3125em .625em; - font-size: 1em; } - .swal2-popup.swal2-toast .swal2-styled:focus { - box-shadow: 0 0 0 1px #fff, 0 0 0 3px rgba(100, 150, 200, 0.5); } - .swal2-popup.swal2-toast .swal2-success { - border-color: #a5dc86; } - .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'] { - position: absolute; - width: 1.6em; - height: 3em; - transform: rotate(45deg); - border-radius: 50%; } - .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'][class$='left'] { - top: -.8em; - left: -.5em; - transform: rotate(-45deg); - transform-origin: 2em 2em; - border-radius: 4em 0 0 4em; } - .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'][class$='right'] { - top: -.25em; - left: .9375em; - transform-origin: 0 1.5em; - border-radius: 0 4em 4em 0; } - .swal2-popup.swal2-toast .swal2-success .swal2-success-ring { - width: 2em; - height: 2em; } - .swal2-popup.swal2-toast .swal2-success .swal2-success-fix { - top: 0; - left: .4375em; - width: .4375em; - height: 2.6875em; } - .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'] { - height: .3125em; } - .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'][class$='tip'] { - top: 1.125em; - left: .1875em; - width: .75em; } - .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'][class$='long'] { - top: .9375em; - right: .1875em; - width: 1.375em; } - .swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip { - animation: swal2-toast-animate-success-line-tip .75s; } - .swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long { - animation: swal2-toast-animate-success-line-long .75s; } - .swal2-popup.swal2-toast.swal2-show { - animation: swal2-toast-show 0.5s; } - .swal2-popup.swal2-toast.swal2-hide { - animation: swal2-toast-hide 0.1s forwards; } - -.swal2-container { - display: flex; - position: fixed; - z-index: 1060; - top: 0; - right: 0; - bottom: 0; - left: 0; - flex-direction: row; - align-items: center; - justify-content: center; - padding: 0.625em; - overflow-x: hidden; - transition: background-color 0.1s; - -webkit-overflow-scrolling: touch; } - .swal2-container.swal2-backdrop-show, .swal2-container.swal2-noanimation { - background: rgba(0, 0, 0, 0.4); } - .swal2-container.swal2-backdrop-hide { - background: transparent !important; } - .swal2-container.swal2-top { - align-items: flex-start; } - .swal2-container.swal2-top-start, .swal2-container.swal2-top-left { - align-items: flex-start; - justify-content: flex-start; } - .swal2-container.swal2-top-end, .swal2-container.swal2-top-right { - align-items: flex-start; - justify-content: flex-end; } - .swal2-container.swal2-center { - align-items: center; } - .swal2-container.swal2-center-start, .swal2-container.swal2-center-left { - align-items: center; - justify-content: flex-start; } - .swal2-container.swal2-center-end, .swal2-container.swal2-center-right { - align-items: center; - justify-content: flex-end; } - .swal2-container.swal2-bottom { - align-items: flex-end; } - .swal2-container.swal2-bottom-start, .swal2-container.swal2-bottom-left { - align-items: flex-end; - justify-content: flex-start; } - .swal2-container.swal2-bottom-end, .swal2-container.swal2-bottom-right { - align-items: flex-end; - justify-content: flex-end; } - .swal2-container.swal2-bottom > :first-child, - .swal2-container.swal2-bottom-start > :first-child, - .swal2-container.swal2-bottom-left > :first-child, - .swal2-container.swal2-bottom-end > :first-child, - .swal2-container.swal2-bottom-right > :first-child { - margin-top: auto; } - .swal2-container.swal2-grow-fullscreen > .swal2-modal { - display: flex !important; - flex: 1; - align-self: stretch; - justify-content: center; } - .swal2-container.swal2-grow-row > .swal2-modal { - display: flex !important; - flex: 1; - align-content: center; - justify-content: center; } - .swal2-container.swal2-grow-column { - flex: 1; - flex-direction: column; } - .swal2-container.swal2-grow-column.swal2-top, .swal2-container.swal2-grow-column.swal2-center, .swal2-container.swal2-grow-column.swal2-bottom { - align-items: center; } - .swal2-container.swal2-grow-column.swal2-top-start, .swal2-container.swal2-grow-column.swal2-center-start, .swal2-container.swal2-grow-column.swal2-bottom-start, .swal2-container.swal2-grow-column.swal2-top-left, .swal2-container.swal2-grow-column.swal2-center-left, .swal2-container.swal2-grow-column.swal2-bottom-left { - align-items: flex-start; } - .swal2-container.swal2-grow-column.swal2-top-end, .swal2-container.swal2-grow-column.swal2-center-end, .swal2-container.swal2-grow-column.swal2-bottom-end, .swal2-container.swal2-grow-column.swal2-top-right, .swal2-container.swal2-grow-column.swal2-center-right, .swal2-container.swal2-grow-column.swal2-bottom-right { - align-items: flex-end; } - .swal2-container.swal2-grow-column > .swal2-modal { - display: flex !important; - flex: 1; - align-content: center; - justify-content: center; } - .swal2-container.swal2-no-transition { - transition: none !important; } - .swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen) > .swal2-modal { - margin: auto; } - @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) { - .swal2-container .swal2-modal { - margin: 0 !important; } } - -.swal2-popup { - display: none; - position: relative; - box-sizing: border-box; - flex-direction: column; - justify-content: center; - width: 32em; - max-width: 100%; - padding: 1.25em; - border: none; - border-radius: 5px; - background: #fff; - font-family: inherit; - font-size: 1rem; } - .swal2-popup:focus { - outline: none; } - .swal2-popup.swal2-loading { - overflow-y: hidden; } - -.swal2-header { - display: flex; - flex-direction: column; - align-items: center; - padding: 0 1.8em; } - -.swal2-title { - position: relative; - max-width: 100%; - margin: 0 0 0.4em; - padding: 0; - color: #595959; - font-size: 1.875em; - font-weight: 600; - text-align: center; - text-transform: none; - word-wrap: break-word; } - -.swal2-actions { - display: flex; - z-index: 1; - box-sizing: border-box; - flex-wrap: wrap; - align-items: center; - justify-content: center; - width: 100%; - margin: 1.25em auto 0; - padding: 0 1.6em; } - .swal2-actions:not(.swal2-loading) .swal2-styled[disabled] { - opacity: .4; } - .swal2-actions:not(.swal2-loading) .swal2-styled:hover { - background-image: linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1)); } - .swal2-actions:not(.swal2-loading) .swal2-styled:active { - background-image: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)); } - -.swal2-loader { - display: none; - align-items: center; - justify-content: center; - width: 2.2em; - height: 2.2em; - margin: 0 1.875em; - animation: swal2-rotate-loading 1.5s linear 0s infinite normal; - border-width: 0.25em; - border-style: solid; - border-radius: 100%; - border-color: #2778c4 transparent #2778c4 transparent; } - -.swal2-styled { - margin: 0.3125em; - padding: 0.625em 1.1em; - box-shadow: none; - font-weight: 500; } - .swal2-styled:not([disabled]) { - cursor: pointer; } - .swal2-styled.swal2-confirm { - border: 0; - border-radius: 0.25em; - background: initial; - background-color: #2778c4; - color: #fff; - font-size: 1.0625em; } - .swal2-styled.swal2-deny { - border: 0; - border-radius: 0.25em; - background: initial; - background-color: #d14529; - color: #fff; - font-size: 1.0625em; } - .swal2-styled.swal2-cancel { - border: 0; - border-radius: 0.25em; - background: initial; - background-color: #757575; - color: #fff; - font-size: 1.0625em; } - .swal2-styled:focus { - outline: none; - box-shadow: 0 0 0 3px rgba(100, 150, 200, 0.5); } - .swal2-styled::-moz-focus-inner { - border: 0; } - -.swal2-footer { - justify-content: center; - margin: 1.25em 0 0; - padding: 1em 0 0; - border-top: 1px solid #eee; - color: #545454; - font-size: 1em; } - -.swal2-timer-progress-bar-container { - position: absolute; - right: 0; - bottom: 0; - left: 0; - height: 0.25em; - overflow: hidden; - border-bottom-right-radius: 5px; - border-bottom-left-radius: 5px; } - -.swal2-timer-progress-bar { - width: 100%; - height: 0.25em; - background: rgba(0, 0, 0, 0.2); } - -.swal2-image { - max-width: 100%; - margin: 1.25em auto; } - -.swal2-close { - position: absolute; - z-index: 2; - top: 0; - right: 0; - align-items: center; - justify-content: center; - width: 1.2em; - height: 1.2em; - padding: 0; - overflow: hidden; - transition: color 0.1s ease-out; - border: none; - border-radius: 5px; - background: transparent; - color: #cccccc; - font-family: serif; - font-size: 2.5em; - line-height: 1.2; - cursor: pointer; } - .swal2-close:hover { - transform: none; - background: transparent; - color: #f27474; } - .swal2-close:focus { - outline: none; - box-shadow: inset 0 0 0 3px rgba(100, 150, 200, 0.5); } - .swal2-close::-moz-focus-inner { - border: 0; } - -.swal2-content { - z-index: 1; - justify-content: center; - margin: 0; - padding: 0 1.6em; - color: #545454; - font-size: 1.125em; - font-weight: normal; - line-height: normal; - text-align: center; - word-wrap: break-word; } - -.swal2-input, -.swal2-file, -.swal2-textarea, -.swal2-select, -.swal2-radio, -.swal2-checkbox { - margin: 1em auto; } - -.swal2-input, -.swal2-file, -.swal2-textarea { - box-sizing: border-box; - width: 100%; - transition: border-color 0.3s, box-shadow 0.3s; - border: 1px solid #d9d9d9; - border-radius: 0.1875em; - background: inherit; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06); - color: inherit; - font-size: 1.125em; } - .swal2-input.swal2-inputerror, - .swal2-file.swal2-inputerror, - .swal2-textarea.swal2-inputerror { - border-color: #f27474 !important; - box-shadow: 0 0 2px #f27474 !important; } - .swal2-input:focus, - .swal2-file:focus, - .swal2-textarea:focus { - border: 1px solid #b4dbed; - outline: none; - box-shadow: 0 0 0 3px rgba(100, 150, 200, 0.5); } - .swal2-input::placeholder, - .swal2-file::placeholder, - .swal2-textarea::placeholder { - color: #cccccc; } - -.swal2-range { - margin: 1em auto; - background: #fff; } - .swal2-range input { - width: 80%; } - .swal2-range output { - width: 20%; - color: inherit; - font-weight: 600; - text-align: center; } - .swal2-range input, - .swal2-range output { - height: 2.625em; - padding: 0; - font-size: 1.125em; - line-height: 2.625em; } - -.swal2-input { - height: 2.625em; - padding: 0 0.75em; } - .swal2-input[type='number'] { - max-width: 10em; } - -.swal2-file { - background: inherit; - font-size: 1.125em; } - -.swal2-textarea { - height: 6.75em; - padding: 0.75em; } - -.swal2-select { - min-width: 50%; - max-width: 100%; - padding: .375em .625em; - background: inherit; - color: inherit; - font-size: 1.125em; } - -.swal2-radio, -.swal2-checkbox { - align-items: center; - justify-content: center; - background: #fff; - color: inherit; } - .swal2-radio label, - .swal2-checkbox label { - margin: 0 .6em; - font-size: 1.125em; } - .swal2-radio input, - .swal2-checkbox input { - margin: 0 .4em; } - -.swal2-input-label { - display: flex; - justify-content: center; - margin: 1em auto; } - -.swal2-validation-message { - display: none; - align-items: center; - justify-content: center; - margin: 0 -2.7em; - padding: 0.625em; - overflow: hidden; - background: #f0f0f0; - color: #666666; - font-size: 1em; - font-weight: 300; } - .swal2-validation-message::before { - content: '!'; - display: inline-block; - width: 1.5em; - min-width: 1.5em; - height: 1.5em; - margin: 0 .625em; - border-radius: 50%; - background-color: #f27474; - color: #fff; - font-weight: 600; - line-height: 1.5em; - text-align: center; } - -.swal2-icon { - position: relative; - box-sizing: content-box; - justify-content: center; - width: 5em; - height: 5em; - margin: 1.25em auto 1.875em; - border: 0.25em solid transparent; - border-radius: 50%; - border-color: #000; - font-family: inherit; - line-height: 5em; - cursor: default; - user-select: none; } - .swal2-icon .swal2-icon-content { - display: flex; - align-items: center; - font-size: 3.75em; } - .swal2-icon.swal2-error { - border-color: #f27474; - color: #f27474; } - .swal2-icon.swal2-error .swal2-x-mark { - position: relative; - flex-grow: 1; } - .swal2-icon.swal2-error [class^='swal2-x-mark-line'] { - display: block; - position: absolute; - top: 2.3125em; - width: 2.9375em; - height: .3125em; - border-radius: .125em; - background-color: #f27474; } - .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='left'] { - left: 1.0625em; - transform: rotate(45deg); } - .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='right'] { - right: 1em; - transform: rotate(-45deg); } - .swal2-icon.swal2-error.swal2-icon-show { - animation: swal2-animate-error-icon .5s; } - .swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark { - animation: swal2-animate-error-x-mark .5s; } - .swal2-icon.swal2-warning { - border-color: #facea8; - color: #f8bb86; } - .swal2-icon.swal2-info { - border-color: #9de0f6; - color: #3fc3ee; } - .swal2-icon.swal2-question { - border-color: #c9dae1; - color: #87adbd; } - .swal2-icon.swal2-success { - border-color: #a5dc86; - color: #a5dc86; } - .swal2-icon.swal2-success [class^='swal2-success-circular-line'] { - position: absolute; - width: 3.75em; - height: 7.5em; - transform: rotate(45deg); - border-radius: 50%; } - .swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='left'] { - top: -.4375em; - left: -2.0635em; - transform: rotate(-45deg); - transform-origin: 3.75em 3.75em; - border-radius: 7.5em 0 0 7.5em; } - .swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='right'] { - top: -.6875em; - left: 1.875em; - transform: rotate(-45deg); - transform-origin: 0 3.75em; - border-radius: 0 7.5em 7.5em 0; } - .swal2-icon.swal2-success .swal2-success-ring { - position: absolute; - z-index: 2; - top: -.25em; - left: -.25em; - box-sizing: content-box; - width: 100%; - height: 100%; - border: 0.25em solid rgba(165, 220, 134, 0.3); - border-radius: 50%; } - .swal2-icon.swal2-success .swal2-success-fix { - position: absolute; - z-index: 1; - top: .5em; - left: 1.625em; - width: .4375em; - height: 5.625em; - transform: rotate(-45deg); } - .swal2-icon.swal2-success [class^='swal2-success-line'] { - display: block; - position: absolute; - z-index: 2; - height: .3125em; - border-radius: .125em; - background-color: #a5dc86; } - .swal2-icon.swal2-success [class^='swal2-success-line'][class$='tip'] { - top: 2.875em; - left: .8125em; - width: 1.5625em; - transform: rotate(45deg); } - .swal2-icon.swal2-success [class^='swal2-success-line'][class$='long'] { - top: 2.375em; - right: .5em; - width: 2.9375em; - transform: rotate(-45deg); } - .swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip { - animation: swal2-animate-success-line-tip .75s; } - .swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long { - animation: swal2-animate-success-line-long .75s; } - .swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right { - animation: swal2-rotate-success-circular-line 4.25s ease-in; } - -.swal2-progress-steps { - flex-wrap: wrap; - align-items: center; - max-width: 100%; - margin: 0 0 1.25em; - padding: 0; - background: inherit; - font-weight: 600; } - .swal2-progress-steps li { - display: inline-block; - position: relative; } - .swal2-progress-steps .swal2-progress-step { - z-index: 20; - flex-shrink: 0; - width: 2em; - height: 2em; - border-radius: 2em; - background: #2778c4; - color: #fff; - line-height: 2em; - text-align: center; } - .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step { - background: #2778c4; } - .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step { - background: #add8e6; - color: #fff; } - .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step-line { - background: #add8e6; } - .swal2-progress-steps .swal2-progress-step-line { - z-index: 10; - flex-shrink: 0; - width: 2.5em; - height: .4em; - margin: 0 -1px; - background: #2778c4; } - -[class^='swal2'] { - -webkit-tap-highlight-color: transparent; } - -.swal2-show { - animation: swal2-show 0.3s; } - -.swal2-hide { - animation: swal2-hide 0.15s forwards; } - -.swal2-noanimation { - transition: none; } - -.swal2-scrollbar-measure { - position: absolute; - top: -9999px; - width: 50px; - height: 50px; - overflow: scroll; } - -.swal2-rtl .swal2-close { - right: auto; - left: 0; } - -.swal2-rtl .swal2-timer-progress-bar { - right: 0; - left: auto; } - -@supports (-ms-accelerator: true) { - .swal2-range input { - width: 100% !important; } - .swal2-range output { - display: none; } } - -@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) { - .swal2-range input { - width: 100% !important; } - .swal2-range output { - display: none; } } - -@keyframes swal2-toast-show { - 0% { - transform: translateY(-0.625em) rotateZ(2deg); } - 33% { - transform: translateY(0) rotateZ(-2deg); } - 66% { - transform: translateY(0.3125em) rotateZ(2deg); } - 100% { - transform: translateY(0) rotateZ(0deg); } } - -@keyframes swal2-toast-hide { - 100% { - transform: rotateZ(1deg); - opacity: 0; } } - -@keyframes swal2-toast-animate-success-line-tip { - 0% { - top: .5625em; - left: .0625em; - width: 0; } - 54% { - top: .125em; - left: .125em; - width: 0; } - 70% { - top: .625em; - left: -.25em; - width: 1.625em; } - 84% { - top: 1.0625em; - left: .75em; - width: .5em; } - 100% { - top: 1.125em; - left: .1875em; - width: .75em; } } - -@keyframes swal2-toast-animate-success-line-long { - 0% { - top: 1.625em; - right: 1.375em; - width: 0; } - 65% { - top: 1.25em; - right: .9375em; - width: 0; } - 84% { - top: .9375em; - right: 0; - width: 1.125em; } - 100% { - top: .9375em; - right: .1875em; - width: 1.375em; } } - -@keyframes swal2-show { - 0% { - transform: scale(0.7); } - 45% { - transform: scale(1.05); } - 80% { - transform: scale(0.95); } - 100% { - transform: scale(1); } } - -@keyframes swal2-hide { - 0% { - transform: scale(1); - opacity: 1; } - 100% { - transform: scale(0.5); - opacity: 0; } } - -@keyframes swal2-animate-success-line-tip { - 0% { - top: 1.1875em; - left: .0625em; - width: 0; } - 54% { - top: 1.0625em; - left: .125em; - width: 0; } - 70% { - top: 2.1875em; - left: -.375em; - width: 3.125em; } - 84% { - top: 3em; - left: 1.3125em; - width: 1.0625em; } - 100% { - top: 2.8125em; - left: .8125em; - width: 1.5625em; } } - -@keyframes swal2-animate-success-line-long { - 0% { - top: 3.375em; - right: 2.875em; - width: 0; } - 65% { - top: 3.375em; - right: 2.875em; - width: 0; } - 84% { - top: 2.1875em; - right: 0; - width: 3.4375em; } - 100% { - top: 2.375em; - right: .5em; - width: 2.9375em; } } - -@keyframes swal2-rotate-success-circular-line { - 0% { - transform: rotate(-45deg); } - 5% { - transform: rotate(-45deg); } - 12% { - transform: rotate(-405deg); } - 100% { - transform: rotate(-405deg); } } - -@keyframes swal2-animate-error-x-mark { - 0% { - margin-top: 1.625em; - transform: scale(0.4); - opacity: 0; } - 50% { - margin-top: 1.625em; - transform: scale(0.4); - opacity: 0; } - 80% { - margin-top: -.375em; - transform: scale(1.15); } - 100% { - margin-top: 0; - transform: scale(1); - opacity: 1; } } - -@keyframes swal2-animate-error-icon { - 0% { - transform: rotateX(100deg); - opacity: 0; } - 100% { - transform: rotateX(0deg); - opacity: 1; } } - -@keyframes swal2-rotate-loading { - 0% { - transform: rotate(0deg); } - 100% { - transform: rotate(360deg); } } - -body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) { - overflow: hidden; } - -body.swal2-height-auto { - height: auto !important; } - -body.swal2-no-backdrop .swal2-container { - top: auto; - right: auto; - bottom: auto; - left: auto; - max-width: calc(100% - 0.625em * 2); - background-color: transparent !important; } - body.swal2-no-backdrop .swal2-container > .swal2-modal { - box-shadow: 0 0 10px rgba(0, 0, 0, 0.4); } - body.swal2-no-backdrop .swal2-container.swal2-top { - top: 0; - left: 50%; - transform: translateX(-50%); } - body.swal2-no-backdrop .swal2-container.swal2-top-start, body.swal2-no-backdrop .swal2-container.swal2-top-left { - top: 0; - left: 0; } - body.swal2-no-backdrop .swal2-container.swal2-top-end, body.swal2-no-backdrop .swal2-container.swal2-top-right { - top: 0; - right: 0; } - body.swal2-no-backdrop .swal2-container.swal2-center { - top: 50%; - left: 50%; - transform: translate(-50%, -50%); } - body.swal2-no-backdrop .swal2-container.swal2-center-start, body.swal2-no-backdrop .swal2-container.swal2-center-left { - top: 50%; - left: 0; - transform: translateY(-50%); } - body.swal2-no-backdrop .swal2-container.swal2-center-end, body.swal2-no-backdrop .swal2-container.swal2-center-right { - top: 50%; - right: 0; - transform: translateY(-50%); } - body.swal2-no-backdrop .swal2-container.swal2-bottom { - bottom: 0; - left: 50%; - transform: translateX(-50%); } - body.swal2-no-backdrop .swal2-container.swal2-bottom-start, body.swal2-no-backdrop .swal2-container.swal2-bottom-left { - bottom: 0; - left: 0; } - body.swal2-no-backdrop .swal2-container.swal2-bottom-end, body.swal2-no-backdrop .swal2-container.swal2-bottom-right { - right: 0; - bottom: 0; } - -@media print { - body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) { - overflow-y: scroll !important; } - body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) > [aria-hidden='true'] { - display: none; } - body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container { - position: static !important; } } - -body.swal2-toast-shown .swal2-container { - background-color: transparent; } - body.swal2-toast-shown .swal2-container.swal2-top { - top: 0; - right: auto; - bottom: auto; - left: 50%; - transform: translateX(-50%); } - body.swal2-toast-shown .swal2-container.swal2-top-end, body.swal2-toast-shown .swal2-container.swal2-top-right { - top: 0; - right: 0; - bottom: auto; - left: auto; } - body.swal2-toast-shown .swal2-container.swal2-top-start, body.swal2-toast-shown .swal2-container.swal2-top-left { - top: 0; - right: auto; - bottom: auto; - left: 0; } - body.swal2-toast-shown .swal2-container.swal2-center-start, body.swal2-toast-shown .swal2-container.swal2-center-left { - top: 50%; - right: auto; - bottom: auto; - left: 0; - transform: translateY(-50%); } - body.swal2-toast-shown .swal2-container.swal2-center { - top: 50%; - right: auto; - bottom: auto; - left: 50%; - transform: translate(-50%, -50%); } - body.swal2-toast-shown .swal2-container.swal2-center-end, body.swal2-toast-shown .swal2-container.swal2-center-right { - top: 50%; - right: 0; - bottom: auto; - left: auto; - transform: translateY(-50%); } - body.swal2-toast-shown .swal2-container.swal2-bottom-start, body.swal2-toast-shown .swal2-container.swal2-bottom-left { - top: auto; - right: auto; - bottom: 0; - left: 0; } - body.swal2-toast-shown .swal2-container.swal2-bottom { - top: auto; - right: auto; - bottom: 0; - left: 50%; - transform: translateX(-50%); } - body.swal2-toast-shown .swal2-container.swal2-bottom-end, body.swal2-toast-shown .swal2-container.swal2-bottom-right { - top: auto; - right: 0; - bottom: 0; - left: auto; } - -body.swal2-toast-column .swal2-toast { - flex-direction: column; - align-items: stretch; } - body.swal2-toast-column .swal2-toast .swal2-actions { - flex: 1; - align-self: stretch; - height: 2.2em; - margin-top: .3125em; } - body.swal2-toast-column .swal2-toast .swal2-loading { - justify-content: center; } - body.swal2-toast-column .swal2-toast .swal2-input { - height: 2em; - margin: .3125em auto; - font-size: 1em; } - body.swal2-toast-column .swal2-toast .swal2-validation-message { - font-size: 1em; } - -#toast-container.toast-top-right { - top: 76px; } - -#toast-container .toast-close-button { - right: -0.15em; } - -#toast-container .toast { - opacity: 1 !important; - background-image: none !important; - border-radius: 0.25rem; - box-shadow: 0 0 8px rgba(0, 0, 0, 0.35); - display: flex; - align-items: center; } - #toast-container .toast:hover { - box-shadow: 0 0 10px rgba(0, 0, 0, 0.6); } - #toast-container .toast:before { - font-family: FontAwesome; - font-size: 25px; - line-height: 20px; - float: left; - color: #ffffff; - padding-right: 10px; - margin: auto 0 auto -36px; } - #toast-container .toast .toaster-icon { - display: none; } - #toast-container .toast .toast-message p { - margin-bottom: 0.5rem; } - #toast-container .toast .toast-message p:last-child { - margin-bottom: 0; } - #toast-container .toast.toast-danger, #toast-container .toast.toast-error { - background-image: none !important; - background-color: #dd4b39; } - #toast-container .toast.toast-danger:before, #toast-container .toast.toast-error:before { - content: "\F0E7"; - margin-left: -30px; } - #toast-container .toast.toast-warning { - background-image: none !important; - background-color: #bf7e16; } - #toast-container .toast.toast-warning:before { - content: "\F071"; } - #toast-container .toast.toast-info { - background-image: none !important; - background-color: #555555; } - #toast-container .toast.toast-info:before { - content: "\F05A"; } - #toast-container .toast.toast-success { - background-image: none !important; - background-color: #00a65a; } - #toast-container .toast.toast-success:before { - content: "\F00C"; } - -.swal2-container { - background-color: rgba(0, 0, 0, 0.3); } - -.swal2-popup { - padding: 15px 0 0; - background-color: #fff; - color: #333333; - border: 1px solid #9a9a9a; - border-radius: 0.3rem; - width: 34em; } - .swal2-popup .swal2-header { - padding: 0 15px; } - .swal2-popup .swal2-icon { - margin: 0 auto; - width: auto; - height: auto; - border: none; } - .swal2-popup .swal2-content { - padding-bottom: 15px; - font-size: 1rem; - border-bottom: 1px solid #dee2e6; } - .swal2-popup i.swal-custom-icon { - display: block; - margin: 0 auto; - font-size: 35px; } - .swal2-popup .swal2-title { - padding: 10px 0 15px; - margin: 0; - font-size: 1.15rem; - color: #333333; } - .swal2-popup .swal2-content { - font-size: 1rem; - color: #333333; - padding: 0 15px 15px; } - .swal2-popup .swal2-actions { - padding: 15px; - margin: 0; - background-color: #fbfbfb; - border-radius: 0.3rem; - display: flex; - flex-direction: row; - justify-content: flex-start; - font-size: 1rem; } - .swal2-popup .swal2-actions button { - margin-right: 10px; } - .swal2-popup .swal2-actions button.swal2-confirm { - font-weight: bold; } - .swal2-popup .swal2-actions button.swal2-cancel { - background-color: #ffffff; } - -date-input-polyfill[data-open="true"] { - z-index: 10000 !important; } - -html { - font-size: 14px; } - -body { - min-width: 1010px; } - body.layout_frontend { - background-color: #ecf0f5; } - body.full-width:not(.layout_frontend) .container { - min-width: 980px; - width: 90%; } - -.page-header, .secondary-header { - border-bottom: 1px solid #dee2e6; - padding-bottom: 0.6rem; - margin-bottom: 0.5rem; } - .page-header h1, .page-header h2, .page-header h3, .page-header h4, .secondary-header h1, .secondary-header h2, .secondary-header h3, .secondary-header h4 { - margin: 0; } - -h1 small, h2 small, h3 small, h4 small, h5 small { - font-size: 80%; } - -input:required, select:required, textarea:required { - box-shadow: none; } - -.secondary-header, .spaced-header { - margin-top: 4rem; } - -.navbar { - padding-left: 0; - padding-right: 0; } - .navbar .dropdown-menu { - min-width: 200px; - max-width: 300px; } - .navbar .dropdown-menu .dropdown-item-text { - line-height: 1.3; } - .navbar .dropdown-menu .dropdown-item-text span, .navbar .dropdown-menu .dropdown-item-text small { - display: block; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; } - .navbar .nav-link { - font-weight: 600; } - -.navbar-brand { - margin-top: -20px; - margin-bottom: -20px; } - -.dropdown-menu button { - cursor: pointer; } - -.container { - width: 980px; - max-width: none !important; - margin: 0 auto; - padding: 0; } - -.page-content { - margin-top: 20px; } - -.footer { - margin-top: 40px; - padding: 40px 0 40px 0; - border-top: 1px solid #dee2e6; } - -.list-group-item.active { - border-left: 3px solid #175DDC; - font-weight: bold; - padding-left: calc(1.25rem - 3px); } - -.card-header, .modal-header { - font-weight: bold; - text-transform: uppercase; } - .card-header small, .modal-header small { - font-weight: normal; - text-transform: none; } - -.card-body-header { - font-size: 1.15rem; } - -.card ul.fa-ul.card-ul { - margin-left: 1.9em; } - .card ul.fa-ul.card-ul li { - word-break: break-all; } - .card ul.fa-ul.card-ul .fa-li { - top: 4px; } - .card ul.fa-ul.card-ul.carets { - margin-left: 1.1em; } - .card ul.fa-ul.card-ul.carets .fa-li { - left: -17px; - width: 1.1em; } - .card ul.fa-ul.card-ul ul.carets { - margin-left: 0.85em; } - -.card-org-plans h2 { - font-size: 1.15rem; } - -.modal-dialog { - width: 500px; } - -.modal-sm { - width: 300px; } - -.modal-lg { - width: 800px; } - -.modal-body h3, .modal-body .section-header > * { - font-weight: normal; - text-transform: uppercase; - color: #6c757d; } - -.modal .list-group-flush :first-child { - border-top: none; } - -.modal .list-group-flush :last-child { - border-bottom: none; } - -.modal-footer { - justify-content: flex-start; - background-color: #fbfbfb; - border-radius: 0.3rem; } - -label:not(.form-check-label):not(.btn), label.bold { - font-weight: 600; } - -input[type="search"]::-webkit-search-cancel-button { - -webkit-appearance: searchfield-cancel-button; } - -.btn[class*="btn-outline-"]:not(:hover), .swal2-popup .swal2-actions button[class*="btn-outline-"]:not(:hover) { - border-color: #ced4da; - background-color: #fbfbfb; } - -.btn-link:focus, .btn-link.focus { - outline-color: -webkit-focus-ring-color; - outline-offset: 1px; - outline-style: auto; - outline-width: 1px; } - -.btn-outline-secondary, .swal2-popup .swal2-actions button.swal2-cancel { - color: #6c757d; } - .btn-outline-secondary:hover:not(:disabled), .swal2-popup .swal2-actions button.swal2-cancel:hover:not(:disabled) { - color: #333333; } - .btn-outline-secondary:disabled, .swal2-popup .swal2-actions button.swal2-cancel:disabled { - opacity: 1; } - .btn-outline-secondary:focus, .swal2-popup .swal2-actions button.swal2-cancel:focus, .btn-outline-secondary.focus, .swal2-popup .swal2-actions button.focus.swal2-cancel { - box-shadow: 0 0 0 0.2rem rgba(58, 117, 225, 0.5); } - -.btn-submit { - position: relative; } - .btn-submit .fa-spinner { - position: absolute; - display: none; - align-items: center; - justify-content: center; - bottom: 0; - top: 0; - left: 0; - right: 0; } - .btn-submit:disabled:not(.manual) .fa-spinner, .btn-submit.loading .fa-spinner { - display: flex; } - .btn-submit:disabled:not(.manual) span, .btn-submit.loading span { - visibility: hidden; } - -.list-group-item:focus, .list-group-item.focus { - z-index: 100; } - -.fa-icon-above-input { - height: 1.5em; } - -.table.table-list thead th { - border-top: none; } - -.table.table-list tr:first-child td { - border: none; } - -.table.table-list td { - vertical-align: middle; } - .table.table-list td.reduced-lh { - line-height: 1; } - .table.table-list td.reduced-lh small { - font-size: 80%; } - .table.table-list td small, .table.table-list td > .fa, .table.table-list td .icon { - color: #6c757d; } - -.table.table-list td.wrap { - word-break: break-all; } - -.table.table-list td.table-list-options { - width: 76px; - max-width: 76px; - text-align: right; - height: 50px; } - .table.table-list td.table-list-options.wider { - width: 100px; - max-width: 100px; } - .table.table-list td.table-list-options .btn, .table.table-list td.table-list-options .swal2-popup .swal2-actions button, .swal2-popup .swal2-actions .table.table-list td.table-list-options button { - line-height: 1; - transition: initial; } - .table.table-list td.table-list-options .dropdown-menu { - line-height: 1.5; } - -.table.table-list td.table-list-icon { - width: 45px; - max-width: 45px; - text-align: center; } - .table.table-list td.table-list-icon img { - max-height: 24px; } - -.table.table-list td.table-list-checkbox { - width: 35px; - max-width: 35px; } - -.table.table-list td.table-list-strike { - color: #6c757d; - text-decoration: line-through; } - -.text-lg { - font-size: 1.15rem; } - -.text-strike { - text-decoration: line-through; } - -.font-weight-semibold { - font-weight: 600; } - -.password-wrapper { - word-break: break-all; - white-space: pre-wrap; - min-width: 0; } - -.password-row { - min-width: 0; } - -.password-number { - color: #007fde; } - -.password-special { - color: #c40800; } - -app-vault-groupings .card #search, app-org-vault-groupings .card #search, .groupings .card #search { - margin-bottom: 1rem; } - -app-vault-groupings .card h3, app-org-vault-groupings .card h3, .groupings .card h3 { - font-weight: normal; - text-transform: uppercase; - color: #6c757d; } - -app-vault-groupings .card ul:last-child, app-org-vault-groupings .card ul:last-child, .groupings .card ul:last-child { - margin-bottom: 0; } - -app-vault-groupings .card .card-body a, app-org-vault-groupings .card .card-body a, .groupings .card .card-body a { - color: #333333; } - app-vault-groupings .card .card-body a:hover.text-muted, app-org-vault-groupings .card .card-body a:hover.text-muted, .groupings .card .card-body a:hover.text-muted { - color: #333333 !important; } - -app-vault-groupings .card .show-active, app-org-vault-groupings .card .show-active, .groupings .card .show-active { - display: none; } - -app-vault-groupings .card li > .fa, app-vault-groupings .card li > div > .fa, app-org-vault-groupings .card li > .fa, app-org-vault-groupings .card li > div > .fa, .groupings .card li > .fa, .groupings .card li > div > .fa { - cursor: pointer; } - -app-vault-groupings .card li.active > .show-active, app-vault-groupings .card li.active > div .show-active, app-org-vault-groupings .card li.active > .show-active, app-org-vault-groupings .card li.active > div .show-active, .groupings .card li.active > .show-active, .groupings .card li.active > div .show-active { - display: inline; } - -app-vault-groupings .card li.active > a:first-of-type, app-vault-groupings .card li.active > div a:first-of-type, app-org-vault-groupings .card li.active > a:first-of-type, app-org-vault-groupings .card li.active > div a:first-of-type, .groupings .card li.active > a:first-of-type, .groupings .card li.active > div a:first-of-type { - font-weight: bold; - color: #175DDC; } - -app-vault-groupings .card li.active > .fa, app-vault-groupings .card li.active > div > .fa, app-org-vault-groupings .card li.active > .fa, app-org-vault-groupings .card li.active > div > .fa, .groupings .card li.active > .fa, .groupings .card li.active > div > .fa { - color: #175DDC; } - -app-password-generator #lengthRange { - width: 100%; } - -app-password-generator .card-password .card-body { - display: flex; - flex-wrap: wrap; - align-items: center; - justify-content: center; - text-align: center; - font-size: 1.15rem; - font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; } - -app-password-generator-history .list-group-item { - line-height: 1; } - app-password-generator-history .list-group-item .password { - font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; } - -app-import textarea { - height: 150px; } - -app-user-billing .progress { - height: 20px; } - app-user-billing .progress .progress-bar { - min-width: 50px; } - -#duo-frame { - background: url(../images/loading.svg) 0 0 no-repeat; - height: 330px; } - #duo-frame iframe { - width: 100%; - height: 100%; - border: none; } - -#bt-dropin-container { - background: url(../images/loading.svg) 0 0 no-repeat; - min-height: 50px; } - -.braintree-placeholder, .braintree-sheet__header { - display: none; } - -.braintree-sheet__content--button { - text-align: left; - padding: 0; - min-height: 0; } - -.braintree-sheet__container { - margin-bottom: 0; } - -.braintree-sheet { - border: none; } - -.totp .totp-code { - font-size: 1.2rem; } - -.totp .totp-countdown { - margin: 3px 3px 0 0; - display: block; - user-select: none; } - .totp .totp-countdown .totp-sec { - font-size: 0.85em; - position: absolute; - line-height: 32px; - width: 32px; - text-align: center; } - .totp .totp-countdown svg { - width: 32px; - height: 32px; - transform: rotate(-90deg); } - .totp .totp-countdown .totp-circle { - fill: none; - stroke: #175DDC; } - .totp .totp-countdown .totp-circle.inner { - stroke-width: 3; - stroke-dasharray: 78.6; - stroke-dashoffset: 0; } - .totp .totp-countdown .totp-circle.outer { - stroke-width: 2; - stroke-dasharray: 88; - stroke-dashoffset: 0; } - -.totp > .align-items-center { - margin-bottom: -5px; } - -.totp.low .totp-sec, .totp.low .totp-code { - color: #dd4b39; } - -.totp.low .totp-circle { - stroke: #dd4b39; } - -.callout { - padding: 0.75rem 1.25rem; - margin-bottom: 1rem; - border: 1px solid rgba(0, 0, 0, 0.125); - border-left-width: 5px; - border-radius: calc(0.25rem - 1px); - background-color: #fafafa; } - .callout .callout-heading { - margin-top: 0; } - .callout h3.callout-heading { - font-weight: bold; - text-transform: uppercase; } - .callout.callout-primary { - border-left-color: #175DDC; } - .callout.callout-primary .callout-heading { - color: #175DDC; } - .callout.callout-info { - border-left-color: #343a40; } - .callout.callout-info .callout-heading { - color: #343a40; } - .callout.callout-danger { - border-left-color: #dd4b39; } - .callout.callout-danger .callout-heading { - color: #dd4b39; } - .callout.callout-success { - border-left-color: #00a65a; } - .callout.callout-success .callout-heading { - color: #00a65a; } - .callout.callout-warning { - border-left-color: #bf7e16; } - .callout.callout-warning .callout-heading { - color: #bf7e16; } - -.list-group-2fa .logo-2fa { - min-width: 100px; } - -.form-check-block .form-check-label { - font-weight: 600; } - .form-check-block .form-check-label > small { - display: block; - color: #6c757d; - font-weight: normal; } - .form-check-block .form-check-label > span { - display: block; - font-weight: normal; } - -.form-inline input[type='datetime-local'] { - width: 200px; } - -.form-control.stripe-form-control { - padding-top: 0.55rem; } - .form-control.stripe-form-control.is-focused { - color: #495057; - background-color: #ffffff; - border-color: #81a9f2; - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.25); } - .form-control.stripe-form-control.is-focused.is-invalid { - box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.25); } - .form-control.stripe-form-control.is-invalid { - border-color: #dd4b39; } - -.org-nav { - background-color: #fbfbfb; - border-bottom: 1px solid #dee2e6; - height: 100px; - min-height: 100px; } - .org-nav .container { - height: 100%; } - .org-nav .nav-tabs { - border-bottom: none; } - .org-nav .nav-tabs a { - color: #333333; } - .org-nav .nav-tabs a:not(.active) { - border-color: transparent; } - .org-nav .nav-tabs a.active { - border-top: 3px solid #175DDC; - font-weight: bold; - padding-top: calc(0.5rem - 2px); } - .org-nav .nav-tabs a.disabled { - color: #b4b4b4; } - .org-nav .org-name { - line-height: 1; } - .org-nav .org-name span { - font-size: 1.15rem; - display: block; } - -img.logo { - width: 284px; - height: 43px; - margin: 0 auto; - display: block; } - -.min-height-fix { - min-height: 1px; } - -.overflow-hidden { - overflow: hidden; } - -.cdk-drag-preview { - z-index: 1070 !important; - opacity: 0.8; - background-color: #fff; - border-radius: 0.25rem; } - -.cursor-move { - cursor: move !important; } - -.layout.enterprise2 header { - color: #ced4da; - background-color: #175DDC; } - .layout.enterprise2 header:before { - content: ""; - position: absolute; - z-index: -1; - width: 100%; - height: 340px; - left: 0; - transform: skewY(-3deg); - background: #175DDC; } - .layout.enterprise2 header img.logo { - margin: 12px 0 0; - width: 284px; - max-width: 284px; - height: auto; } - -.layout.enterprise2 h2 { - color: #ffffff; - font-size: 1.8rem; - margin: 100px 0 150px 0; } - -.layout.enterprise2 p { - margin: 20px 0 40px 0; - font-size: 1.4rem; } - .layout.enterprise2 p:before { - content: "/"; - padding-right: 12px; } - .layout.enterprise2 p:not(.highlight):before { - color: #1252A3; } - .layout.enterprise2 p b:after { - content: "\27F6"; - font-size: 2rem; - padding-left: 6px; } - -.layout.enterprise2 blockquote { - margin: 20px 0 0 0; - font-size: 1.4rem; - padding-right: 40px; } - - -/*# sourceMappingURL=main.d8139e017ad9a069b29d.css.map*/ \ No newline at end of file diff --git a/app/main.d8139e017ad9a069b29d.css.map b/app/main.d8139e017ad9a069b29d.css.map deleted file mode 100644 index ef861e59..00000000 --- a/app/main.d8139e017ad9a069b29d.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./src/css/webfonts.css","webpack:///./src/scss/styles.scss"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gHAAgH;;AAEhH;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA,gDAAgD;;AAEhD;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA,wBAAwB;;AAExB;AACA;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA,wBAAwB;;AAExB;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,iBAAiB;;AAEjB;AACA,mBAAmB;;AAEnB;AACA;AACA,sBAAsB;;AAEtB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA,2BAA2B;;AAE3B;AACA,iBAAiB;;AAEjB;AACA,aAAa;;AAEb;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,+BAA+B;;AAE/B;AACA;AACA,wBAAwB;AACxB;AACA;AACA,0BAA0B;AAC1B;AACA,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA,mBAAmB;;AAEnB;AACA;AACA,qBAAqB;;AAErB;AACA;AACA,yBAAyB;;AAEzB;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA,sBAAsB;;AAEtB;AACA;AACA,wBAAwB;;AAExB;AACA,mBAAmB;;AAEnB;AACA;AACA,6CAA6C;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA,uBAAuB;;AAEvB;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA,6BAA6B;;AAE7B;AACA;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA,2BAA2B;;AAE3B;AACA;AACA,eAAe;;AAEf;AACA;AACA,2BAA2B;;AAE3B;AACA,2BAA2B;;AAE3B;AACA;AACA,6BAA6B;;AAE7B;AACA,wBAAwB;;AAExB;AACA;AACA,kBAAkB;;AAElB;AACA,gBAAgB;;AAEhB;AACA,2BAA2B;;AAE3B;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA,oBAAoB;;AAEpB;AACA,oBAAoB;;AAEpB;AACA,kBAAkB;;AAElB;AACA,kBAAkB;;AAElB;AACA,kBAAkB;;AAElB;AACA,kBAAkB;;AAElB;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA,2CAA2C;;AAE3C;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,wBAAwB;AACxB;AACA,yBAAyB;;AAEzB;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,iBAAiB;AACjB;AACA,wBAAwB;;AAExB;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;;AAEf;AACA,wBAAwB;;AAExB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,yBAAyB;AACzB;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,wBAAwB,EAAE;;AAE1B;AACA;AACA;AACA;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA,kBAAkB;;AAElB;AACA,YAAY;;AAEZ;AACA,YAAY;;AAEZ;AACA,WAAW;;AAEX;AACA,WAAW;;AAEX;AACA,WAAW;;AAEX;AACA,WAAW;;AAEX;AACA,WAAW;;AAEX;AACA,WAAW;;AAEX;AACA,WAAW;;AAEX;AACA,WAAW;;AAEX;AACA,WAAW;;AAEX;AACA,WAAW;;AAEX;AACA,YAAY;;AAEZ;AACA,YAAY;;AAEZ;AACA,YAAY;;AAEZ;AACA,wBAAwB;;AAExB;AACA,yBAAyB;;AAEzB;AACA,mBAAmB;;AAEnB;AACA,yBAAyB;;AAEzB;AACA,yBAAyB;;AAEzB;AACA,mBAAmB;;AAEnB;AACA,yBAAyB;;AAEzB;AACA,yBAAyB;;AAEzB;AACA,mBAAmB;;AAEnB;AACA,yBAAyB;;AAEzB;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,wBAAwB;AACxB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,oBAAoB;AACpB;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,mBAAmB;AACnB;AACA,0BAA0B;AAC1B;AACA,2BAA2B;AAC3B;AACA,qBAAqB;AACrB;AACA,2BAA2B;AAC3B;AACA,2BAA2B;AAC3B;AACA,qBAAqB;AACrB;AACA,2BAA2B;AAC3B;AACA,2BAA2B;AAC3B;AACA,qBAAqB;AACrB;AACA,2BAA2B;AAC3B;AACA,2BAA2B,EAAE;;AAE7B;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,wBAAwB;AACxB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,oBAAoB;AACpB;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,mBAAmB;AACnB;AACA,0BAA0B;AAC1B;AACA,2BAA2B;AAC3B;AACA,qBAAqB;AACrB;AACA,2BAA2B;AAC3B;AACA,2BAA2B;AAC3B;AACA,qBAAqB;AACrB;AACA,2BAA2B;AAC3B;AACA,2BAA2B;AAC3B;AACA,qBAAqB;AACrB;AACA,2BAA2B;AAC3B;AACA,2BAA2B,EAAE;;AAE7B;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,wBAAwB;AACxB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,oBAAoB;AACpB;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,mBAAmB;AACnB;AACA,0BAA0B;AAC1B;AACA,2BAA2B;AAC3B;AACA,qBAAqB;AACrB;AACA,2BAA2B;AAC3B;AACA,2BAA2B;AAC3B;AACA,qBAAqB;AACrB;AACA,2BAA2B;AAC3B;AACA,2BAA2B;AAC3B;AACA,qBAAqB;AACrB;AACA,2BAA2B;AAC3B;AACA,2BAA2B,EAAE;;AAE7B;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,wBAAwB;AACxB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,oBAAoB;AACpB;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,mBAAmB;AACnB;AACA,0BAA0B;AAC1B;AACA,2BAA2B;AAC3B;AACA,qBAAqB;AACrB;AACA,2BAA2B;AAC3B;AACA,2BAA2B;AAC3B;AACA,qBAAqB;AACrB;AACA,2BAA2B;AAC3B;AACA,2BAA2B;AAC3B;AACA,qBAAqB;AACrB;AACA,2BAA2B;AAC3B;AACA,2BAA2B,EAAE;;AAE7B;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA,qCAAqC;AACrC;AACA,kCAAkC;;AAElC;AACA;AACA,kBAAkB;;AAElB;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,6BAA6B;;AAE7B;AACA;AACA;AACA;AACA,YAAY;;AAEZ;AACA,wCAAwC;;AAExC;AACA;AACA,wCAAwC;;AAExC;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA,wCAAwC;;AAExC;AACA,wCAAwC;AACxC;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,cAAc;AACd;AACA,gDAAgD;AAChD;AACA;AACA,iDAAiD;;AAEjD;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,gBAAgB,EAAE;;AAElB;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,gBAAgB,EAAE;;AAElB;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,gBAAgB,EAAE;;AAElB;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,gBAAgB,EAAE;;AAElB;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA,cAAc;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA,eAAe;AACf;AACA;AACA,eAAe;;AAEf;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA,eAAe;;AAEf;AACA,eAAe;;AAEf;AACA,sBAAsB;;AAEtB;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA,wBAAwB;AACxB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,qFAAqF;;AAErF;AACA;AACA;AACA,mhBAAmhB;AACnhB;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA,iBAAiB;AACjB;AACA,0BAA0B;;AAE1B;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,4BAA4B;;AAE5B;AACA,kDAAkD;;AAElD;AACA,wBAAwB;;AAExB;AACA,wBAAwB;;AAExB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,kDAAkD;;AAElD;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,qFAAqF;;AAErF;AACA;AACA;AACA,6jBAA6jB;AAC7jB;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA,iBAAiB;AACjB;AACA,0BAA0B;;AAE1B;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,4BAA4B;;AAE5B;AACA,mDAAmD;;AAEnD;AACA,wBAAwB;;AAExB;AACA,wBAAwB;;AAExB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,mDAAmD;;AAEnD;AACA;AACA;AACA,sBAAsB;AACtB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,4BAA4B;AAC5B;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,8BAA8B;AAC9B;AACA,uBAAuB,EAAE;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wIAAwI;AACxI;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,qDAAqD;AACrD;AACA,kBAAkB;;AAElB;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,qDAAqD;AACrD;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,uDAAuD;;AAEvD;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,sDAAsD;AACtD;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,wDAAwD;;AAExD;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,qDAAqD;AACrD;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,uDAAuD;;AAEvD;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,sDAAsD;AACtD;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,wDAAwD;;AAExD;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,qDAAqD;AACrD;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,uDAAuD;;AAEvD;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,qDAAqD;AACrD;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,uDAAuD;;AAEvD;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,sDAAsD;AACtD;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,wDAAwD;;AAExD;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,mDAAmD;AACnD;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,qDAAqD;;AAErD;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,qDAAqD;AACrD;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,uDAAuD;;AAEvD;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,oDAAoD;AACpD;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,sDAAsD;;AAEtD;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,oDAAoD;AACpD;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,sDAAsD;;AAEtD;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,sDAAsD;AACtD;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,wDAAwD;;AAExD;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,mDAAmD;AACnD;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,qDAAqD;;AAErD;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,mDAAmD;AACnD;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,qDAAqD;;AAErD;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,qDAAqD;AACrD;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,uDAAuD;;AAEvD;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,oDAAoD;AACpD;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,sDAAsD;;AAEtD;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,sDAAsD;AACtD;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,wDAAwD;;AAExD;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,mDAAmD;AACnD;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,qDAAqD;;AAErD;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,oDAAoD;AACpD;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,sDAAsD;;AAEtD;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,oDAAoD;AACpD;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,sDAAsD;;AAEtD;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA,cAAc;AACd;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA,cAAc;;AAEd;AACA,mCAAmC;AACnC;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,eAAe;;AAEf;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,uBAAuB,EAAE;;AAEzB;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA,UAAU;;AAEV;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,eAAe,EAAE;;AAEjB;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,eAAe,EAAE;;AAEjB;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,eAAe,EAAE;;AAEjB;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,eAAe,EAAE;;AAEjB;AACA;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;;AAEvC;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;;AAE3B;AACA,iBAAiB;;AAEjB;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA,cAAc;;AAEd;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;;AAEzC;AACA,iBAAiB;;AAEjB;AACA,oBAAoB;;AAEpB;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA;AACA,gCAAgC;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA,kCAAkC;;AAElC;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,gBAAgB;;AAEhB;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA,gCAAgC;;AAEhC;AACA;AACA;AACA;AACA,+BAA+B;;AAE/B;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,mBAAmB;AACnB;AACA,oBAAoB;;AAEpB;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,+BAA+B;;AAE/B;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,eAAe;AACf;AACA,eAAe;AACf;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA,mCAAmC;;AAEnC;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA,qBAAqB;;AAErB;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,kBAAkB;;AAElB;AACA;AACA,mCAAmC;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA,qCAAqC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;;AAE/B;AACA;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,qDAAqD;AACrD;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,mBAAmB;AACnB;AACA,gCAAgC;;AAEhC;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;;AAExC;AACA,yBAAyB;;AAEzB;AACA,gNAAgN;;AAEhN;AACA;AACA,4BAA4B;;AAE5B;AACA,6JAA6J;;AAE7J;AACA,2CAA2C;;AAE3C;AACA,2CAA2C;;AAE3C;AACA,qBAAqB;;AAErB;AACA,0JAA0J;;AAE1J;AACA,2CAA2C;;AAE3C;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8IAA8I;AAC9I;AACA;AACA,yBAAyB,EAAE;AAC3B;AACA;AACA,mCAAmC;AACnC;AACA,6CAA6C;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,8BAA8B;AAC9B;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,qDAAqD;AACrD;AACA,8BAA8B;AAC9B;AACA,sBAAsB;AACtB;AACA,+BAA+B;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;;AAEvC;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA,kBAAkB;AAClB;AACA,0EAA0E;AAC1E;AACA,0EAA0E;AAC1E;AACA,0EAA0E;AAC1E;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB,EAAE;AAC3B;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB,EAAE;AAC3B;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB,EAAE;AAC3B;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB;AACxB;AACA,8BAA8B;AAC9B;AACA,oBAAoB;AACpB;AACA,8BAA8B;AAC9B;AACA,oBAAoB;AACpB;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA,+GAA+G;AAC/G;AACA;AACA;AACA;AACA,uBAAuB,EAAE;;AAEzB;AACA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,uBAAuB;AACvB;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,oBAAoB;;AAEpB;AACA,mCAAmC;AACnC;AACA,wBAAwB;AACxB;AACA;AACA;AACA,qCAAqC;AACrC;AACA,4CAA4C;AAC5C;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA,+BAA+B;;AAE/B;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,qBAAqB;;AAErB;AACA,gBAAgB;;AAEhB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,mCAAmC;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,0BAA0B;;AAE1B;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,oBAAoB;AACpB;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,0BAA0B;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;;AAE7B;AACA;AACA;AACA;AACA,oBAAoB,EAAE;;AAEtB;AACA;AACA;AACA,gCAAgC;AAChC;AACA,0BAA0B;AAC1B;AACA,2BAA2B;AAC3B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,wBAAwB;AACxB;AACA;AACA,uBAAuB;AACvB;AACA,oBAAoB,EAAE;;AAEtB;AACA;AACA;AACA;AACA,oBAAoB,EAAE;;AAEtB;AACA;AACA;AACA,gCAAgC;AAChC;AACA,0BAA0B;AAC1B;AACA,2BAA2B;AAC3B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,wBAAwB;AACxB;AACA;AACA,uBAAuB;AACvB;AACA,oBAAoB,EAAE;;AAEtB;AACA;AACA;AACA;AACA,oBAAoB,EAAE;;AAEtB;AACA;AACA;AACA,gCAAgC;AAChC;AACA,0BAA0B;AAC1B;AACA,2BAA2B;AAC3B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,wBAAwB;AACxB;AACA;AACA,uBAAuB;AACvB;AACA,oBAAoB,EAAE;;AAEtB;AACA;AACA;AACA;AACA,oBAAoB,EAAE;;AAEtB;AACA;AACA;AACA,gCAAgC;AAChC;AACA,0BAA0B;AAC1B;AACA,2BAA2B;AAC3B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,wBAAwB;AACxB;AACA;AACA,uBAAuB;AACvB;AACA,oBAAoB,EAAE;;AAEtB;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,oBAAoB;AACpB;AACA,wBAAwB;AACxB;AACA,yBAAyB;AACzB;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,sBAAsB;AACtB;AACA;AACA,qBAAqB;AACrB;AACA,kBAAkB;;AAElB;AACA,4BAA4B;AAC5B;AACA,8BAA8B;;AAE9B;AACA,4BAA4B;AAC5B;AACA,8BAA8B;AAC9B;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA,mCAAmC;;AAEnC;AACA,2PAA2P;;AAE3P;AACA,4BAA4B;AAC5B;AACA,8BAA8B;AAC9B;AACA,gCAAgC;;AAEhC;AACA,cAAc;AACd;AACA,gBAAgB;;AAEhB;AACA,kCAAkC;AAClC;AACA,oCAAoC;AACpC;AACA,qCAAqC;;AAErC;AACA;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA,yCAAyC;;AAEzC;AACA,iQAAiQ;;AAEjQ;AACA,kCAAkC;AAClC;AACA,gBAAgB;AAChB;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,qCAAqC;AACrC;AACA;AACA,uCAAuC;;AAEvC;AACA;AACA,mBAAmB;;AAEnB;AACA,wBAAwB;;AAExB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,wBAAwB;;AAExB;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA,+DAA+D;AAC/D;AACA,kBAAkB;;AAElB;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,+DAA+D;;AAE/D;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,qCAAqC;;AAErC;AACA;AACA;AACA,+CAA+C;;AAE/C;AACA;AACA;AACA,iDAAiD;;AAEjD;AACA;AACA,yBAAyB;AACzB;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,EAAE;;AAE5B;AACA;AACA,yBAAyB;AACzB;AACA,wBAAwB;AACxB;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,wCAAwC;AACxC;AACA;AACA,uCAAuC;AACvC;AACA;AACA,0CAA0C;AAC1C;AACA;AACA,uCAAuC;AACvC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,yCAAyC,EAAE;;AAE3C;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,kBAAkB,EAAE;;AAEpB;AACA,mBAAmB;AACnB;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,+BAA+B;AAC/B;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA,6BAA6B;;AAE7B;AACA,wBAAwB;;AAExB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,qDAAqD;;AAErD;AACA;AACA;AACA,qCAAqC;;AAErC;AACA;AACA,sCAAsC;;AAEtC;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,oCAAoC;;AAEpC;AACA;AACA,qCAAqC;;AAErC;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,oCAAoC;;AAEpC;AACA;AACA,qCAAqC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wIAAwI;AACxI;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,0BAA0B;AAC1B;AACA,kBAAkB;;AAElB;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,oDAAoD;;AAEpD;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,sDAAsD;;AAEtD;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,mDAAmD;;AAEnD;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,mDAAmD;;AAEnD;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,qDAAqD;;AAErD;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,oDAAoD;;AAEpD;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,sDAAsD;;AAEtD;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,mDAAmD;;AAEnD;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,oDAAoD;;AAEpD;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,oDAAoD;;AAEpD;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,yBAAyB,EAAE;;AAE3B;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA,iBAAiB;;AAEjB;AACA,mBAAmB;;AAEnB;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,wBAAwB;AACxB;AACA,8BAA8B;AAC9B;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,wBAAwB;AACxB;AACA,8BAA8B;AAC9B;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,wBAAwB;AACxB;AACA,8BAA8B;AAC9B;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,wBAAwB;AACxB;AACA,8BAA8B;AAC9B;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,wBAAwB;AACxB;AACA,8BAA8B;AAC9B;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,wBAAwB;AACxB;AACA,8BAA8B;AAC9B;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,wBAAwB;AACxB;AACA,8BAA8B;AAC9B;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,wBAAwB;AACxB;AACA,8BAA8B;AAC9B;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,wBAAwB;AACxB;AACA,8BAA8B;AAC9B;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,wBAAwB;AACxB;AACA,8BAA8B;AAC9B;AACA,mBAAmB;;AAEnB;AACA;AACA,gCAAgC;AAChC;AACA,6BAA6B,EAAE;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,uBAAuB,EAAE;;AAEzB;AACA;AACA,6BAA6B;;AAE7B;AACA,qDAAqD;AACrD;AACA;AACA,sBAAsB,EAAE;;AAExB;AACA;AACA,0BAA0B;;AAE1B;AACA,UAAU;;AAEV;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,uCAAuC;;AAEvC;AACA,sBAAsB;AACtB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,mCAAmC;;AAEnC;AACA;AACA,wBAAwB;AACxB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA,qCAAqC,EAAE;;AAEvC;AACA;AACA,wBAAwB;AACxB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA,qCAAqC,EAAE;;AAEvC;AACA;AACA,wBAAwB;AACxB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA,qCAAqC,EAAE;;AAEvC;AACA;AACA,wBAAwB;AACxB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA,qCAAqC,EAAE;;AAEvC;AACA;AACA;AACA,mBAAmB;AACnB;AACA,wBAAwB;;AAExB;AACA,gBAAgB;;AAEhB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,0BAA0B;AAC1B;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA,uBAAuB;;AAEvB;AACA,mBAAmB;AACnB;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,mCAAmC;AACnC;AACA;AACA,yBAAyB,EAAE;AAC3B;AACA,oBAAoB;;AAEpB;AACA;AACA,gCAAgC;AAChC;AACA;AACA,qBAAqB;AACrB;AACA;AACA,mBAAmB;AACnB;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,iBAAiB;AACjB;AACA,uBAAuB;AACvB;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,eAAe;AACf;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA,mCAAmC;;AAEnC;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA,wBAAwB;AACxB;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,yBAAyB;AACzB;AACA,oCAAoC;AACpC;AACA,uCAAuC;AACvC;AACA,oCAAoC;AACpC;AACA,mCAAmC;AACnC;AACA,qBAAqB,EAAE;;AAEvB;AACA;AACA;AACA,qBAAqB,EAAE;;AAEvB;AACA;AACA,sBAAsB,EAAE;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA,oBAAoB;AACpB;AACA,cAAc;AACd;AACA;AACA;AACA,6BAA6B;;AAE7B;AACA,oBAAoB;AACpB;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,+BAA+B;;AAE/B;AACA,oBAAoB;AACpB;AACA,WAAW;AACX;AACA;AACA;AACA,gCAAgC;;AAEhC;AACA,oBAAoB;AACpB;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA,wBAAwB;AACxB;AACA,sCAAsC;AACtC;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA,6BAA6B;;AAE7B;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA,+BAA+B;;AAE/B;AACA,qBAAqB;AACrB;AACA,mCAAmC;AACnC;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;;AAErC;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,kBAAkB;;AAElB;AACA;AACA,iBAAiB;;AAEjB;AACA,qBAAqB;;AAErB;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,uBAAuB,EAAE;;AAEzB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA,+BAA+B;;AAE/B;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,uBAAuB,EAAE;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA,UAAU;;AAEV;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA;AACA,wCAAwC;;AAExC;AACA,sMAAsM;;AAEtM;AACA,sMAAsM;;AAEtM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA,yBAAyB,EAAE;AAC3B;AACA,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA,8BAA8B,EAAE;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;;AAEjD;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA,wBAAwB;AACxB;AACA,eAAe,EAAE;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;;AAE/C;AACA;AACA,eAAe;;AAEf;AACA,sCAAsC;;AAEtC;AACA,iC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;AACA,kCAAkC;;AAElC;AACA;AACA,gCAAgC;;AAEhC;AACA,6BAA6B;;AAE7B;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA,mCAAmC;;AAEnC;AACA;AACA,oCAAoC;;AAEpC;AACA;AACA,kCAAkC;;AAElC;AACA,2BAA2B;;AAE3B;AACA;AACA,+BAA+B;;AAE/B;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA,kCAAkC;;AAElC;AACA;AACA,gCAAgC;;AAEhC;AACA,0BAA0B;;AAE1B;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA,gCAAgC;;AAEhC;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA,+BAA+B;;AAE/B;AACA;AACA,yBAAyB;AACzB;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,8BAA8B;AAC9B;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,8BAA8B;AAC9B;AACA;AACA,kCAAkC;AAClC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,mCAAmC;AACnC;AACA,4BAA4B;AAC5B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,iCAAiC;AACjC;AACA,8BAA8B;AAC9B;AACA;AACA,kCAAkC;AAClC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,mCAAmC;AACnC;AACA,4BAA4B;AAC5B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,iCAAiC;AACjC;AACA,0BAA0B;AAC1B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,iCAAiC;AACjC;AACA;AACA,+BAA+B;AAC/B;AACA,gCAAgC;AAChC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,uCAAuC;AACvC;AACA;AACA,qCAAqC;AACrC;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,kCAAkC;AAClC;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,kCAAkC;AAClC;AACA,gCAAgC;AAChC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,uCAAuC;AACvC;AACA;AACA,qCAAqC;AACrC;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,kCAAkC;AAClC;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,kCAAkC;AAClC;AACA,4BAA4B;AAC5B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,iCAAiC,EAAE;;AAEnC;AACA;AACA,yBAAyB;AACzB;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,8BAA8B;AAC9B;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,8BAA8B;AAC9B;AACA;AACA,kCAAkC;AAClC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,mCAAmC;AACnC;AACA,4BAA4B;AAC5B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,iCAAiC;AACjC;AACA,8BAA8B;AAC9B;AACA;AACA,kCAAkC;AAClC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,mCAAmC;AACnC;AACA,4BAA4B;AAC5B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,iCAAiC;AACjC;AACA,0BAA0B;AAC1B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,iCAAiC;AACjC;AACA;AACA,+BAA+B;AAC/B;AACA,gCAAgC;AAChC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,uCAAuC;AACvC;AACA;AACA,qCAAqC;AACrC;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,kCAAkC;AAClC;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,kCAAkC;AAClC;AACA,gCAAgC;AAChC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,uCAAuC;AACvC;AACA;AACA,qCAAqC;AACrC;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,kCAAkC;AAClC;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,kCAAkC;AAClC;AACA,4BAA4B;AAC5B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,iCAAiC,EAAE;;AAEnC;AACA;AACA,yBAAyB;AACzB;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,8BAA8B;AAC9B;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,8BAA8B;AAC9B;AACA;AACA,kCAAkC;AAClC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,mCAAmC;AACnC;AACA,4BAA4B;AAC5B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,iCAAiC;AACjC;AACA,8BAA8B;AAC9B;AACA;AACA,kCAAkC;AAClC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,mCAAmC;AACnC;AACA,4BAA4B;AAC5B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,iCAAiC;AACjC;AACA,0BAA0B;AAC1B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,iCAAiC;AACjC;AACA;AACA,+BAA+B;AAC/B;AACA,gCAAgC;AAChC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,uCAAuC;AACvC;AACA;AACA,qCAAqC;AACrC;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,kCAAkC;AAClC;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,kCAAkC;AAClC;AACA,gCAAgC;AAChC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,uCAAuC;AACvC;AACA;AACA,qCAAqC;AACrC;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,kCAAkC;AAClC;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,kCAAkC;AAClC;AACA,4BAA4B;AAC5B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,iCAAiC,EAAE;;AAEnC;AACA;AACA,yBAAyB;AACzB;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,8BAA8B;AAC9B;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,8BAA8B;AAC9B;AACA;AACA,kCAAkC;AAClC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,mCAAmC;AACnC;AACA,4BAA4B;AAC5B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,iCAAiC;AACjC;AACA,8BAA8B;AAC9B;AACA;AACA,kCAAkC;AAClC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,mCAAmC;AACnC;AACA,4BAA4B;AAC5B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,iCAAiC;AACjC;AACA,0BAA0B;AAC1B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,iCAAiC;AACjC;AACA;AACA,+BAA+B;AAC/B;AACA,gCAAgC;AAChC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,uCAAuC;AACvC;AACA;AACA,qCAAqC;AACrC;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,kCAAkC;AAClC;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,kCAAkC;AAClC;AACA,gCAAgC;AAChC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,uCAAuC;AACvC;AACA;AACA,qCAAqC;AACrC;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,kCAAkC;AAClC;AACA,+BAA+B;AAC/B;AACA;AACA,mCAAmC;AACnC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,oCAAoC;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,oCAAoC;AACpC;AACA;AACA,kCAAkC;AAClC;AACA,4BAA4B;AAC5B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,iCAAiC,EAAE;;AAEnC;AACA,+GAA+G;;AAE/G;AACA,iCAAiC;;AAEjC;AACA,iCAAiC;;AAEjC;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA,8BAA8B;;AAE9B;AACA,+BAA+B;;AAE/B;AACA,gCAAgC;;AAEhC;AACA;AACA,gCAAgC;AAChC;AACA,iCAAiC;AACjC;AACA,kCAAkC,EAAE;;AAEpC;AACA;AACA,gCAAgC;AAChC;AACA,iCAAiC;AACjC;AACA,kCAAkC,EAAE;;AAEpC;AACA;AACA,gCAAgC;AAChC;AACA,iCAAiC;AACjC;AACA,kCAAkC,EAAE;;AAEpC;AACA;AACA,gCAAgC;AAChC;AACA,iCAAiC;AACjC;AACA,kCAAkC,EAAE;;AAEpC;AACA,uCAAuC;;AAEvC;AACA,uCAAuC;;AAEvC;AACA,wCAAwC;;AAExC;AACA,8BAA8B;;AAE9B;AACA,kCAAkC;;AAElC;AACA,8BAA8B;;AAE9B;AACA,8BAA8B;;AAE9B;AACA,iCAAiC;;AAEjC;AACA,gCAAgC;;AAEhC;AACA,yBAAyB;;AAEzB;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,uCAAuC;;AAEvC;AACA,6CAA6C;;AAE7C;AACA;AACA;AACA;AACA;AACA,YAAY;;AAEZ;AACA,mCAAmC;;AAEnC;AACA;AACA,uCAAuC;;AAEvC;AACA,4BAA4B;;AAE5B;AACA,iCAAiC;;AAEjC;AACA,gCAAgC;;AAEhC;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,+BAA+B;AAC/B;AACA,kCAAkC;AAClC;AACA,qCAAqC;AACrC;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,gCAAgC;AAChC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,4BAA4B;AAC5B;AACA,aAAa;AACb;AACA,8BAA8B;AAC9B;AACA,8BAA8B;AAC9B;AACA,kBAAkB;AAClB;AACA,2BAA2B;AAC3B;AACA,yCAAyC;AACzC;AACA;AACA,wCAAwC;AACxC;AACA;AACA,yCAAyC;AACzC;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,0BAA0B,EAAE;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;;AAErC;AACA;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA,iBAAiB;;AAEjB;AACA,iBAAiB;;AAEjB;AACA,iBAAiB;;AAEjB;AACA,iBAAiB;;AAEjB;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,wBAAwB;AACxB;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA,cAAc;;AAEd;AACA,eAAe;;AAEf;AACA,qBAAqB;;AAErB;AACA,oBAAoB;;AAEpB;AACA;AACA,eAAe;;AAEf;AACA,cAAc;;AAEd;AACA,qBAAqB;;AAErB;AACA,oBAAoB;;AAEpB;AACA;AACA,wCAAwC;;AAExC;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B,EAAE;;AAEhC;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8BAA8B,EAAE;;AAEhC;AACA;AACA;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA,uBAAuB;;AAEvB;AACA,iBAAiB;;AAEjB;AACA,cAAc;;AAEd;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA,oBAAoB;;AAEpB;AACA;AACA,wBAAwB;;AAExB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA,aAAa;;AAEb;AACA,YAAY;;AAEZ;AACA;AACA,cAAc;;AAEd;AACA;AACA,eAAe;;AAEf;AACA,eAAe;;AAEf;AACA;AACA,aAAa;;AAEb;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,ieAAie;;AAEzgB;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,6wBAA6wB;;AAErzB;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,quBAAquB;;AAE7wB;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,qyHAAqyH;;AAE70H;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,qsBAAqsB;;AAE7uB;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA,eAAe,EAAE;;AAEjB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA,eAAe,EAAE;;AAEjB;AACA;AACA;AACA,gBAAgB,EAAE;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA,kBAAkB;AAClB;AACA;AACA,qBAAqB;AACrB;AACA,sBAAsB;AACtB;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,mBAAmB;AACnB;AACA,qEAAqE;AACrE;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,sBAAsB;AACtB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,uBAAuB;AACvB;AACA,2DAA2D;AAC3D;AACA,4DAA4D;AAC5D;AACA,qCAAqC;AACrC;AACA,8CAA8C;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA,mCAAmC;AACnC;AACA,uCAAuC;AACvC;AACA,4BAA4B;AAC5B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,8BAA8B;AAC9B;AACA,wBAAwB;AACxB;AACA;AACA,gCAAgC;AAChC;AACA;AACA,8BAA8B;AAC9B;AACA,0BAA0B;AAC1B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,2BAA2B;AAC3B;AACA,0BAA0B;AAC1B;AACA,8BAA8B;AAC9B;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,gCAAgC;AAChC;AACA,iBAAiB;AACjB;AACA;AACA,2BAA2B,EAAE;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA,gBAAgB;AAChB;AACA,8EAA8E;AAC9E;AACA,8EAA8E;;AAE9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;;AAExD;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,mDAAmD;AACnD;AACA,cAAc;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,yDAAyD;AACzD;AACA,cAAc;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;AACnB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA,oBAAoB;AACpB;AACA,oBAAoB;;AAEpB;AACA;AACA,qBAAqB;;AAErB;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,iCAAiC;AACjC;AACA;AACA,kCAAkC;AAClC;AACA,8CAA8C;AAC9C;AACA,kDAAkD;AAClD;AACA;AACA,mBAAmB;AACnB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA,qDAAqD;AACrD;AACA,sDAAsD;AACtD;AACA,kEAAkE;;AAElE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,0BAA0B;AAC1B;AACA;AACA,oBAAoB;AACpB;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA,2CAA2C;;AAE3C;AACA,6BAA6B;;AAE7B;AACA,uCAAuC;;AAEvC;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,UAAU;;AAEV;AACA;AACA,aAAa;;AAEb;AACA;AACA,2BAA2B;AAC3B;AACA,kBAAkB,EAAE;;AAEpB;AACA;AACA,2BAA2B;AAC3B;AACA,kBAAkB,EAAE;;AAEpB;AACA;AACA,kDAAkD;AAClD;AACA,4CAA4C;AAC5C;AACA,kDAAkD;AAClD;AACA,2CAA2C,EAAE;;AAE7C;AACA;AACA;AACA,eAAe,EAAE;;AAEjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,iBAAiB,EAAE;;AAEnB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,mBAAmB,EAAE;;AAErB;AACA;AACA,0BAA0B;AAC1B;AACA,2BAA2B;AAC3B;AACA,2BAA2B;AAC3B;AACA,wBAAwB,EAAE;;AAE1B;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,eAAe,EAAE;;AAEjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,oBAAoB,EAAE;;AAEtB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,oBAAoB,EAAE;;AAEtB;AACA;AACA,8BAA8B;AAC9B;AACA,8BAA8B;AAC9B;AACA,+BAA+B;AAC/B;AACA,+BAA+B,EAAE;;AAEjC;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,eAAe,EAAE;;AAEjB;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,eAAe,EAAE;;AAEjB;AACA;AACA,4BAA4B;AAC5B;AACA,8BAA8B,EAAE;;AAEhC;AACA,mBAAmB;;AAEnB;AACA,0BAA0B;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA,4CAA4C;AAC5C;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,YAAY;AACZ;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,YAAY;AACZ;AACA;AACA,cAAc;;AAEd;AACA;AACA,kCAAkC;AAClC;AACA,oBAAoB;AACpB;AACA,kCAAkC,EAAE;;AAEpC;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,mBAAmB;AACnB;AACA,mBAAmB;;AAEnB;AACA,YAAY;;AAEZ;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,kBAAkB;AAClB;AACA,0BAA0B;AAC1B;AACA,uBAAuB;AACvB;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,yBAAyB;AACzB;AACA;AACA,8BAA8B;AAC9B;AACA,uBAAuB;AACvB;AACA;AACA,8BAA8B;AAC9B;AACA,uBAAuB;AACvB;AACA;AACA,8BAA8B;AAC9B;AACA,uBAAuB;;AAEvB;AACA,uCAAuC;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,yBAAyB;AACzB;AACA,0BAA0B;AAC1B;AACA,kCAAkC;;AAElC;AACA,4BAA4B;;AAE5B;AACA,kBAAkB;;AAElB;AACA,oBAAoB;AACpB;AACA,8BAA8B;AAC9B;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA,wBAAwB;AACxB;AACA,cAAc;;AAEd;AACA,iBAAiB;;AAEjB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;;AAEnB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,qBAAqB;AACrB;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,qBAAqB;;AAErB;AACA;AACA,uBAAuB;;AAEvB;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,gCAAgC;;AAEhC;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,yBAAyB;;AAEzB;AACA,qBAAqB;;AAErB;AACA,qBAAqB;AACrB;AACA,0BAA0B;AAC1B;AACA,aAAa;AACb;AACA,uBAAuB;AACvB;AACA;AACA,mBAAmB;AACnB;AACA,wBAAwB;;AAExB;AACA,qBAAqB;;AAErB;AACA,eAAe;;AAEf;AACA,eAAe;;AAEf;AACA,eAAe;;AAEf;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA,mBAAmB;;AAEnB;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,wBAAwB;;AAExB;AACA,mBAAmB;;AAEnB;AACA,gDAAgD;;AAEhD;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA,iBAAiB;AACjB;AACA,mBAAmB;AACnB;AACA,eAAe;AACf;AACA,qDAAqD;;AAErD;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,kBAAkB;AAClB;AACA,uBAAuB;;AAEvB;AACA,eAAe;;AAEf;AACA,gBAAgB;;AAEhB;AACA,mBAAmB;;AAEnB;AACA,eAAe;;AAEf;AACA,yBAAyB;AACzB;AACA,mBAAmB;AACnB;AACA,qBAAqB;AACrB;AACA,mBAAmB;;AAEnB;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,qBAAqB;AACrB;AACA;AACA,wBAAwB;AACxB;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;;AAErB;AACA;AACA,kBAAkB;;AAElB;AACA;AACA,gCAAgC;;AAEhC;AACA,qBAAqB;;AAErB;AACA,gCAAgC;;AAEhC;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,eAAe;;AAEf;AACA,eAAe;;AAEf;AACA,iBAAiB;;AAEjB;AACA,iBAAiB;;AAEjB;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA,mBAAmB;;AAEnB;AACA,iBAAiB;AACjB;AACA,8BAA8B;;AAE9B;AACA,gBAAgB;;AAEhB;AACA,kBAAkB;;AAElB;AACA,kBAAkB;;AAElB;AACA;AACA,iBAAiB;;AAEjB;AACA,iBAAiB;;AAEjB;AACA,cAAc;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oGAAoG;;AAEpG;AACA,iBAAiB;AACjB;AACA,sGAAsG;;AAEtG;AACA,gBAAgB;;AAEhB;AACA,eAAe;AACf;AACA,oBAAoB;;AAEpB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,mBAAmB;;AAEnB;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA,mBAAmB;;AAEnB;AACA,eAAe;;AAEf;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,2BAA2B;;AAE3B;AACA,sBAAsB;;AAEtB;AACA,iBAAiB;;AAEjB;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,kBAAkB;AAClB;AACA;AACA,8BAA8B;AAC9B;AACA,+BAA+B;AAC/B;AACA,qBAAqB;AACrB;AACA,+BAA+B;AAC/B;AACA,qBAAqB;AACrB;AACA,+BAA+B;AAC/B;AACA,qBAAqB;AACrB;AACA,+BAA+B;AAC/B;AACA,qBAAqB;AACrB;AACA,+BAA+B;AAC/B;AACA,qBAAqB;;AAErB;AACA,mBAAmB;;AAEnB;AACA,mBAAmB;AACnB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,wBAAwB;;AAExB;AACA,eAAe;;AAEf;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA,uDAAuD;AACvD;AACA,0BAA0B;;AAE1B;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,iBAAiB;AACjB;AACA,wBAAwB;AACxB;AACA,qBAAqB;AACrB;AACA,kCAAkC;AAClC;AACA;AACA;AACA,wCAAwC;AACxC;AACA,uBAAuB;AACvB;AACA,mBAAmB;AACnB;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA,kBAAkB;;AAElB;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA,0BAA0B;;AAE1B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA,oBAAoB;AACpB;AACA;AACA,wBAAwB;AACxB;AACA,mBAAmB;AACnB;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,sBAAsB","file":"app/main.d8139e017ad9a069b29d.css","sourcesContent":["@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: italic;\n\tfont-weight: 300;\n\tsrc: url(../fonts/Open_Sans-italic-300.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: italic;\n\tfont-weight: 400;\n\tsrc: url(../fonts/Open_Sans-italic-400.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: italic;\n\tfont-weight: 600;\n\tsrc: url(../fonts/Open_Sans-italic-600.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: italic;\n\tfont-weight: 700;\n\tsrc: url(../fonts/Open_Sans-italic-700.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: italic;\n\tfont-weight: 800;\n\tsrc: url(../fonts/Open_Sans-italic-800.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: normal;\n\tfont-weight: 300;\n\tsrc: url(../fonts/Open_Sans-normal-300.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: normal;\n\tfont-weight: 400;\n\tsrc: url(../fonts/Open_Sans-normal-400.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: normal;\n\tfont-weight: 600;\n\tsrc: url(../fonts/Open_Sans-normal-600.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: normal;\n\tfont-weight: 700;\n\tsrc: url(../fonts/Open_Sans-normal-700.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n@font-face {\n\tfont-family: 'Open Sans';\n\tfont-style: normal;\n\tfont-weight: 800;\n\tsrc: url(../fonts/Open_Sans-normal-800.woff) format('woff');\n\tunicode-range: U+0-10FFFF;\n}\n\n","@charset \"UTF-8\";\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #175DDC;\n --secondary: #ced4da;\n --success: #00a65a;\n --info: #555555;\n --warning: #bf7e16;\n --danger: #dd4b39;\n --light: #f8f9fa;\n --dark: #343a40;\n --primary-accent: #1252A3;\n --secondary-alt: #1A3B66;\n --breakpoint-xs: 0;\n --breakpoint-sm: 1px;\n --breakpoint-md: 2px;\n --breakpoint-lg: 3px;\n --breakpoint-xl: 4px;\n --font-family-sans-serif: \"Open Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace; }\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; }\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block; }\n\nbody {\n margin: 0;\n font-family: \"Open Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #333333;\n text-align: left;\n background-color: #ffffff; }\n\n[tabindex=\"-1\"]:focus {\n outline: 0 !important; }\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible; }\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem; }\n\np {\n margin-top: 0;\n margin-bottom: 1rem; }\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none; }\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit; }\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem; }\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0; }\n\ndt {\n font-weight: 700; }\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; }\n\nblockquote {\n margin: 0 0 1rem; }\n\nb,\nstrong {\n font-weight: bolder; }\n\nsmall {\n font-size: 80%; }\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline; }\n\nsub {\n bottom: -.25em; }\n\nsup {\n top: -.5em; }\n\na {\n color: #175DDC;\n text-decoration: none;\n background-color: transparent; }\n a:hover {\n color: #104097;\n text-decoration: underline; }\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none; }\n a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none; }\n a:not([href]):not([tabindex]):focus {\n outline: 0; }\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em; }\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto; }\n\nfigure {\n margin: 0 0 1rem; }\n\nimg {\n vertical-align: middle;\n border-style: none; }\n\nsvg {\n overflow: hidden;\n vertical-align: middle; }\n\ntable {\n border-collapse: collapse; }\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom; }\n\nth {\n text-align: inherit; }\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem; }\n\nbutton {\n border-radius: 0; }\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color; }\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit; }\n\nbutton,\ninput {\n overflow: visible; }\n\nbutton,\nselect {\n text-transform: none; }\n\nselect {\n word-wrap: normal; }\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; }\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer; }\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none; }\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0; }\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox; }\n\ntextarea {\n overflow: auto;\n resize: vertical; }\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0; }\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal; }\n\nprogress {\n vertical-align: baseline; }\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto; }\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none; }\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none; }\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button; }\n\noutput {\n display: inline-block; }\n\nsummary {\n display: list-item;\n cursor: pointer; }\n\ntemplate {\n display: none; }\n\n[hidden] {\n display: none !important; }\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2; }\n\nh1, .h1 {\n font-size: 1.7rem; }\n\nh2, .h2 {\n font-size: 1.3rem; }\n\nh3, .h3 {\n font-size: 1rem; }\n\nh4, .h4 {\n font-size: 1rem; }\n\nh5, .h5 {\n font-size: 1rem; }\n\nh6, .h6 {\n font-size: 1rem; }\n\n.lead {\n font-size: 1.25rem;\n font-weight: normal; }\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2; }\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2; }\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2; }\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2; }\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1); }\n\nsmall,\n.small {\n font-size: 90%;\n font-weight: 400; }\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3; }\n\n.list-unstyled {\n padding-left: 0;\n list-style: none; }\n\n.list-inline {\n padding-left: 0;\n list-style: none; }\n\n.list-inline-item {\n display: inline-block; }\n .list-inline-item:not(:last-child) {\n margin-right: 0.5rem; }\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase; }\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem; }\n\n.blockquote-footer {\n display: block;\n font-size: 90%;\n color: #6c757d; }\n .blockquote-footer::before {\n content: \"\\2014\\A0\"; }\n\n.img-fluid, .table.table-list td.table-list-icon img {\n max-width: 100%;\n height: auto; }\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #ffffff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto; }\n\n.figure {\n display: inline-block; }\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1; }\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d; }\n\ncode {\n font-size: 100%;\n color: #e83e8c;\n word-break: break-word; }\n a > code {\n color: inherit; }\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 100%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem; }\n kbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700; }\n\npre {\n display: block;\n font-size: 100%;\n color: #212529; }\n pre code {\n font-size: inherit;\n color: inherit;\n word-break: normal; }\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll; }\n\n.container {\n width: 100%;\n padding-right: 10px;\n padding-left: 10px;\n margin-right: auto;\n margin-left: auto; }\n @media (min-width: 1px) {\n .container {\n max-width: 540px; } }\n @media (min-width: 2px) {\n .container {\n max-width: 720px; } }\n @media (min-width: 3px) {\n .container {\n max-width: 960px; } }\n @media (min-width: 4px) {\n .container {\n max-width: 1140px; } }\n\n.container-fluid {\n width: 100%;\n padding-right: 10px;\n padding-left: 10px;\n margin-right: auto;\n margin-left: auto; }\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -10px;\n margin-left: -10px; }\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0; }\n .no-gutters > .col,\n .no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0; }\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .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-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .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-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .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-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .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-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 10px;\n padding-left: 10px; }\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%; }\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; }\n\n.col-1 {\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n\n.col-2 {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%; }\n\n.col-4 {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n\n.col-5 {\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%; }\n\n.col-7 {\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n\n.col-8 {\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%; }\n\n.col-10 {\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n\n.col-11 {\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%; }\n\n.order-first {\n order: -1; }\n\n.order-last {\n order: 13; }\n\n.order-0 {\n order: 0; }\n\n.order-1 {\n order: 1; }\n\n.order-2 {\n order: 2; }\n\n.order-3 {\n order: 3; }\n\n.order-4 {\n order: 4; }\n\n.order-5 {\n order: 5; }\n\n.order-6 {\n order: 6; }\n\n.order-7 {\n order: 7; }\n\n.order-8 {\n order: 8; }\n\n.order-9 {\n order: 9; }\n\n.order-10 {\n order: 10; }\n\n.order-11 {\n order: 11; }\n\n.order-12 {\n order: 12; }\n\n.offset-1 {\n margin-left: 8.33333%; }\n\n.offset-2 {\n margin-left: 16.66667%; }\n\n.offset-3 {\n margin-left: 25%; }\n\n.offset-4 {\n margin-left: 33.33333%; }\n\n.offset-5 {\n margin-left: 41.66667%; }\n\n.offset-6 {\n margin-left: 50%; }\n\n.offset-7 {\n margin-left: 58.33333%; }\n\n.offset-8 {\n margin-left: 66.66667%; }\n\n.offset-9 {\n margin-left: 75%; }\n\n.offset-10 {\n margin-left: 83.33333%; }\n\n.offset-11 {\n margin-left: 91.66667%; }\n\n@media (min-width: 1px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%; }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; }\n .col-sm-1 {\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n .col-sm-2 {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%; }\n .col-sm-4 {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .col-sm-5 {\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%; }\n .col-sm-7 {\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n .col-sm-8 {\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%; }\n .col-sm-10 {\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n .col-sm-11 {\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%; }\n .order-sm-first {\n order: -1; }\n .order-sm-last {\n order: 13; }\n .order-sm-0 {\n order: 0; }\n .order-sm-1 {\n order: 1; }\n .order-sm-2 {\n order: 2; }\n .order-sm-3 {\n order: 3; }\n .order-sm-4 {\n order: 4; }\n .order-sm-5 {\n order: 5; }\n .order-sm-6 {\n order: 6; }\n .order-sm-7 {\n order: 7; }\n .order-sm-8 {\n order: 8; }\n .order-sm-9 {\n order: 9; }\n .order-sm-10 {\n order: 10; }\n .order-sm-11 {\n order: 11; }\n .order-sm-12 {\n order: 12; }\n .offset-sm-0 {\n margin-left: 0; }\n .offset-sm-1 {\n margin-left: 8.33333%; }\n .offset-sm-2 {\n margin-left: 16.66667%; }\n .offset-sm-3 {\n margin-left: 25%; }\n .offset-sm-4 {\n margin-left: 33.33333%; }\n .offset-sm-5 {\n margin-left: 41.66667%; }\n .offset-sm-6 {\n margin-left: 50%; }\n .offset-sm-7 {\n margin-left: 58.33333%; }\n .offset-sm-8 {\n margin-left: 66.66667%; }\n .offset-sm-9 {\n margin-left: 75%; }\n .offset-sm-10 {\n margin-left: 83.33333%; }\n .offset-sm-11 {\n margin-left: 91.66667%; } }\n\n@media (min-width: 2px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%; }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; }\n .col-md-1 {\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n .col-md-2 {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%; }\n .col-md-4 {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .col-md-5 {\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%; }\n .col-md-7 {\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n .col-md-8 {\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%; }\n .col-md-10 {\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n .col-md-11 {\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%; }\n .order-md-first {\n order: -1; }\n .order-md-last {\n order: 13; }\n .order-md-0 {\n order: 0; }\n .order-md-1 {\n order: 1; }\n .order-md-2 {\n order: 2; }\n .order-md-3 {\n order: 3; }\n .order-md-4 {\n order: 4; }\n .order-md-5 {\n order: 5; }\n .order-md-6 {\n order: 6; }\n .order-md-7 {\n order: 7; }\n .order-md-8 {\n order: 8; }\n .order-md-9 {\n order: 9; }\n .order-md-10 {\n order: 10; }\n .order-md-11 {\n order: 11; }\n .order-md-12 {\n order: 12; }\n .offset-md-0 {\n margin-left: 0; }\n .offset-md-1 {\n margin-left: 8.33333%; }\n .offset-md-2 {\n margin-left: 16.66667%; }\n .offset-md-3 {\n margin-left: 25%; }\n .offset-md-4 {\n margin-left: 33.33333%; }\n .offset-md-5 {\n margin-left: 41.66667%; }\n .offset-md-6 {\n margin-left: 50%; }\n .offset-md-7 {\n margin-left: 58.33333%; }\n .offset-md-8 {\n margin-left: 66.66667%; }\n .offset-md-9 {\n margin-left: 75%; }\n .offset-md-10 {\n margin-left: 83.33333%; }\n .offset-md-11 {\n margin-left: 91.66667%; } }\n\n@media (min-width: 3px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%; }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; }\n .col-lg-1 {\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n .col-lg-2 {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%; }\n .col-lg-4 {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .col-lg-5 {\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%; }\n .col-lg-7 {\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n .col-lg-8 {\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%; }\n .col-lg-10 {\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n .col-lg-11 {\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%; }\n .order-lg-first {\n order: -1; }\n .order-lg-last {\n order: 13; }\n .order-lg-0 {\n order: 0; }\n .order-lg-1 {\n order: 1; }\n .order-lg-2 {\n order: 2; }\n .order-lg-3 {\n order: 3; }\n .order-lg-4 {\n order: 4; }\n .order-lg-5 {\n order: 5; }\n .order-lg-6 {\n order: 6; }\n .order-lg-7 {\n order: 7; }\n .order-lg-8 {\n order: 8; }\n .order-lg-9 {\n order: 9; }\n .order-lg-10 {\n order: 10; }\n .order-lg-11 {\n order: 11; }\n .order-lg-12 {\n order: 12; }\n .offset-lg-0 {\n margin-left: 0; }\n .offset-lg-1 {\n margin-left: 8.33333%; }\n .offset-lg-2 {\n margin-left: 16.66667%; }\n .offset-lg-3 {\n margin-left: 25%; }\n .offset-lg-4 {\n margin-left: 33.33333%; }\n .offset-lg-5 {\n margin-left: 41.66667%; }\n .offset-lg-6 {\n margin-left: 50%; }\n .offset-lg-7 {\n margin-left: 58.33333%; }\n .offset-lg-8 {\n margin-left: 66.66667%; }\n .offset-lg-9 {\n margin-left: 75%; }\n .offset-lg-10 {\n margin-left: 83.33333%; }\n .offset-lg-11 {\n margin-left: 91.66667%; } }\n\n@media (min-width: 4px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%; }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; }\n .col-xl-1 {\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n .col-xl-2 {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%; }\n .col-xl-4 {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .col-xl-5 {\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%; }\n .col-xl-7 {\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n .col-xl-8 {\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%; }\n .col-xl-10 {\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n .col-xl-11 {\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%; }\n .order-xl-first {\n order: -1; }\n .order-xl-last {\n order: 13; }\n .order-xl-0 {\n order: 0; }\n .order-xl-1 {\n order: 1; }\n .order-xl-2 {\n order: 2; }\n .order-xl-3 {\n order: 3; }\n .order-xl-4 {\n order: 4; }\n .order-xl-5 {\n order: 5; }\n .order-xl-6 {\n order: 6; }\n .order-xl-7 {\n order: 7; }\n .order-xl-8 {\n order: 8; }\n .order-xl-9 {\n order: 9; }\n .order-xl-10 {\n order: 10; }\n .order-xl-11 {\n order: 11; }\n .order-xl-12 {\n order: 12; }\n .offset-xl-0 {\n margin-left: 0; }\n .offset-xl-1 {\n margin-left: 8.33333%; }\n .offset-xl-2 {\n margin-left: 16.66667%; }\n .offset-xl-3 {\n margin-left: 25%; }\n .offset-xl-4 {\n margin-left: 33.33333%; }\n .offset-xl-5 {\n margin-left: 41.66667%; }\n .offset-xl-6 {\n margin-left: 50%; }\n .offset-xl-7 {\n margin-left: 58.33333%; }\n .offset-xl-8 {\n margin-left: 66.66667%; }\n .offset-xl-9 {\n margin-left: 75%; }\n .offset-xl-10 {\n margin-left: 83.33333%; }\n .offset-xl-11 {\n margin-left: 91.66667%; } }\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #333333; }\n .table th,\n .table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6; }\n .table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6; }\n .table tbody + tbody {\n border-top: 2px solid #dee2e6; }\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem; }\n\n.table-bordered {\n border: 1px solid #dee2e6; }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6; }\n .table-bordered thead th,\n .table-bordered thead td {\n border-bottom-width: 2px; }\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0; }\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.02); }\n\n.table-hover tbody tr:hover {\n color: #333333;\n background-color: rgba(0, 0, 0, 0.03); }\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #bed2f5; }\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #86abed; }\n\n.table-hover .table-primary:hover {\n background-color: #a8c3f2; }\n .table-hover .table-primary:hover > td,\n .table-hover .table-primary:hover > th {\n background-color: #a8c3f2; }\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #f1f3f5; }\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #e6e9ec; }\n\n.table-hover .table-secondary:hover {\n background-color: #e2e6ea; }\n .table-hover .table-secondary:hover > td,\n .table-hover .table-secondary:hover > th {\n background-color: #e2e6ea; }\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #b8e6d1; }\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #7ad1a9; }\n\n.table-hover .table-success:hover {\n background-color: #a5dfc5; }\n .table-hover .table-success:hover > td,\n .table-hover .table-success:hover > th {\n background-color: #a5dfc5; }\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #cfcfcf; }\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #a7a7a7; }\n\n.table-hover .table-info:hover {\n background-color: #c2c2c2; }\n .table-hover .table-info:hover > td,\n .table-hover .table-info:hover > th {\n background-color: #c2c2c2; }\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #eddbbe; }\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #debc86; }\n\n.table-hover .table-warning:hover {\n background-color: #e7d0aa; }\n .table-hover .table-warning:hover > td,\n .table-hover .table-warning:hover > th {\n background-color: #e7d0aa; }\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5cdc8; }\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #eda198; }\n\n.table-hover .table-danger:hover {\n background-color: #f1b9b2; }\n .table-hover .table-danger:hover > td,\n .table-hover .table-danger:hover > th {\n background-color: #f1b9b2; }\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe; }\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #fbfcfc; }\n\n.table-hover .table-light:hover {\n background-color: #ececf6; }\n .table-hover .table-light:hover > td,\n .table-hover .table-light:hover > th {\n background-color: #ececf6; }\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca; }\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #95999c; }\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe; }\n .table-hover .table-dark:hover > td,\n .table-hover .table-dark:hover > th {\n background-color: #b9bbbe; }\n\n.table-primary-accent,\n.table-primary-accent > th,\n.table-primary-accent > td {\n background-color: #bdcfe5; }\n\n.table-primary-accent th,\n.table-primary-accent td,\n.table-primary-accent thead th,\n.table-primary-accent tbody + tbody {\n border-color: #84a5cf; }\n\n.table-hover .table-primary-accent:hover {\n background-color: #abc2de; }\n .table-hover .table-primary-accent:hover > td,\n .table-hover .table-primary-accent:hover > th {\n background-color: #abc2de; }\n\n.table-secondary-alt,\n.table-secondary-alt > th,\n.table-secondary-alt > td {\n background-color: #bfc8d4; }\n\n.table-secondary-alt th,\n.table-secondary-alt td,\n.table-secondary-alt thead th,\n.table-secondary-alt tbody + tbody {\n border-color: #8899af; }\n\n.table-hover .table-secondary-alt:hover {\n background-color: #b0bbca; }\n .table-hover .table-secondary-alt:hover > td,\n .table-hover .table-secondary-alt:hover > th {\n background-color: #b0bbca; }\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.03); }\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.03); }\n .table-hover .table-active:hover > td,\n .table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.03); }\n\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: #454d55; }\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6; }\n\n.table-dark {\n color: #fff;\n background-color: #343a40; }\n .table-dark th,\n .table-dark td,\n .table-dark thead th {\n border-color: #454d55; }\n .table-dark.table-bordered {\n border: 0; }\n .table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05); }\n .table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075); }\n\n@media (max-width: 0.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n .table-responsive-sm > .table-bordered {\n border: 0; } }\n\n@media (max-width: 1.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n .table-responsive-md > .table-bordered {\n border: 0; } }\n\n@media (max-width: 2.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n .table-responsive-lg > .table-bordered {\n border: 0; } }\n\n@media (max-width: 3.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n .table-responsive-xl > .table-bordered {\n border: 0; } }\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n .table-responsive > .table-bordered {\n border: 0; }\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fbfbfb;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none; } }\n .form-control::-ms-expand {\n background-color: transparent;\n border: 0; }\n .form-control:focus {\n color: #495057;\n background-color: #ffffff;\n border-color: #81a9f2;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.25); }\n .form-control::placeholder {\n color: #b4b4b4;\n opacity: 1; }\n .form-control:disabled, .form-control[readonly] {\n background-color: #e0e0e0;\n opacity: 1; }\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fbfbfb; }\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%; }\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5; }\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.15rem;\n line-height: 1.5; }\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5; }\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n margin-bottom: 0;\n line-height: 1.5;\n color: #333333;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0; }\n .form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0; }\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem; }\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.15rem;\n line-height: 1.5;\n border-radius: 0.3rem; }\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto; }\n\ntextarea.form-control {\n height: auto; }\n\n.form-group {\n margin-bottom: 1rem; }\n\n.form-text {\n display: block;\n margin-top: 0.25rem; }\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px; }\n .form-row > .col,\n .form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px; }\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem; }\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem; }\n .form-check-input:disabled ~ .form-check-label {\n color: #6c757d; }\n\n.form-check-label {\n margin-bottom: 0; }\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem; }\n .form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0; }\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 90%;\n color: #00a65a; }\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(0, 166, 90, 0.9);\n border-radius: 0.25rem; }\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #00a65a;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2300a65a' 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\");\n background-repeat: no-repeat;\n background-position: center right calc(0.375em + 0.1875rem);\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }\n .was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #00a65a;\n box-shadow: 0 0 0 0.2rem rgba(0, 166, 90, 0.25); }\n .was-validated .form-control:valid ~ .valid-feedback,\n .was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,\n .form-control.is-valid ~ .valid-tooltip {\n display: block; }\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); }\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #00a65a;\n padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2300a65a' 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\") #fbfbfb no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }\n .was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #00a65a;\n box-shadow: 0 0 0 0.2rem rgba(0, 166, 90, 0.25); }\n .was-validated .custom-select:valid ~ .valid-feedback,\n .was-validated .custom-select:valid ~ .valid-tooltip, .custom-select.is-valid ~ .valid-feedback,\n .custom-select.is-valid ~ .valid-tooltip {\n display: block; }\n\n.was-validated .form-control-file:valid ~ .valid-feedback,\n.was-validated .form-control-file:valid ~ .valid-tooltip, .form-control-file.is-valid ~ .valid-feedback,\n.form-control-file.is-valid ~ .valid-tooltip {\n display: block; }\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #00a65a; }\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block; }\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #00a65a; }\n .was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #00a65a; }\n\n.was-validated .custom-control-input:valid ~ .valid-feedback,\n.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback,\n.custom-control-input.is-valid ~ .valid-tooltip {\n display: block; }\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #00d976;\n background-color: #00d976; }\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 166, 90, 0.25); }\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #00a65a; }\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #00a65a; }\n\n.was-validated .custom-file-input:valid ~ .valid-feedback,\n.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback,\n.custom-file-input.is-valid ~ .valid-tooltip {\n display: block; }\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #00a65a;\n box-shadow: 0 0 0 0.2rem rgba(0, 166, 90, 0.25); }\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 90%;\n color: #dd4b39; }\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(221, 75, 57, 0.9);\n border-radius: 0.25rem; }\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dd4b39;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dd4b39' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dd4b39' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\");\n background-repeat: no-repeat;\n background-position: center right calc(0.375em + 0.1875rem);\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }\n .was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dd4b39;\n box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.25); }\n .was-validated .form-control:invalid ~ .invalid-feedback,\n .was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,\n .form-control.is-invalid ~ .invalid-tooltip {\n display: block; }\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); }\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dd4b39;\n padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dd4b39' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dd4b39' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\") #fbfbfb no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }\n .was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dd4b39;\n box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.25); }\n .was-validated .custom-select:invalid ~ .invalid-feedback,\n .was-validated .custom-select:invalid ~ .invalid-tooltip, .custom-select.is-invalid ~ .invalid-feedback,\n .custom-select.is-invalid ~ .invalid-tooltip {\n display: block; }\n\n.was-validated .form-control-file:invalid ~ .invalid-feedback,\n.was-validated .form-control-file:invalid ~ .invalid-tooltip, .form-control-file.is-invalid ~ .invalid-feedback,\n.form-control-file.is-invalid ~ .invalid-tooltip {\n display: block; }\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dd4b39; }\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block; }\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dd4b39; }\n .was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dd4b39; }\n\n.was-validated .custom-control-input:invalid ~ .invalid-feedback,\n.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback,\n.custom-control-input.is-invalid ~ .invalid-tooltip {\n display: block; }\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #e47365;\n background-color: #e47365; }\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.25); }\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dd4b39; }\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dd4b39; }\n\n.was-validated .custom-file-input:invalid ~ .invalid-feedback,\n.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback,\n.custom-file-input.is-invalid ~ .invalid-tooltip {\n display: block; }\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dd4b39;\n box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.25); }\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center; }\n .form-inline .form-check {\n width: 100%; }\n @media (min-width: 1px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0; }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0; }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle; }\n .form-inline .form-control-plaintext {\n display: inline-block; }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto; }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0; }\n .form-inline .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0; }\n .form-inline .custom-control {\n align-items: center;\n justify-content: center; }\n .form-inline .custom-control-label {\n margin-bottom: 0; } }\n\n.btn, .swal2-popup .swal2-actions button {\n display: inline-block;\n font-weight: 600;\n color: #333333;\n text-align: center;\n vertical-align: middle;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .btn, .swal2-popup .swal2-actions button {\n transition: none; } }\n .btn:hover, .swal2-popup .swal2-actions button:hover {\n color: #333333;\n text-decoration: none; }\n .btn:focus, .swal2-popup .swal2-actions button:focus, .btn.focus, .swal2-popup .swal2-actions button.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.25); }\n .btn.disabled, .swal2-popup .swal2-actions button.disabled, .btn:disabled, .swal2-popup .swal2-actions button:disabled {\n opacity: 0.65; }\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none; }\n\n.btn-primary, .swal2-popup .swal2-actions button.swal2-confirm {\n color: #fff;\n background-color: #175DDC;\n border-color: #175DDC; }\n .btn-primary:hover, .swal2-popup .swal2-actions button.swal2-confirm:hover {\n color: #fff;\n background-color: #134eb9;\n border-color: #1249ae; }\n .btn-primary:focus, .swal2-popup .swal2-actions button.swal2-confirm:focus, .btn-primary.focus, .swal2-popup .swal2-actions button.focus.swal2-confirm {\n box-shadow: 0 0 0 0.2rem rgba(58, 117, 225, 0.5); }\n .btn-primary.disabled, .swal2-popup .swal2-actions button.disabled.swal2-confirm, .btn-primary:disabled, .swal2-popup .swal2-actions button.swal2-confirm:disabled {\n color: #fff;\n background-color: #175DDC;\n border-color: #175DDC; }\n .btn-primary:not(:disabled):not(.disabled):active, .swal2-popup .swal2-actions button.swal2-confirm:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active, .swal2-popup .swal2-actions button.swal2-confirm:not(:disabled):not(.disabled).active,\n .show > .btn-primary.dropdown-toggle,\n .swal2-popup .swal2-actions .show > button.dropdown-toggle.swal2-confirm {\n color: #fff;\n background-color: #1249ae;\n border-color: #1145a2; }\n .btn-primary:not(:disabled):not(.disabled):active:focus, .swal2-popup .swal2-actions button.swal2-confirm:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus, .swal2-popup .swal2-actions button.swal2-confirm:not(:disabled):not(.disabled).active:focus,\n .show > .btn-primary.dropdown-toggle:focus,\n .swal2-popup .swal2-actions .show > button.dropdown-toggle.swal2-confirm:focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 117, 225, 0.5); }\n\n.btn-secondary {\n color: #212529;\n background-color: #ced4da;\n border-color: #ced4da; }\n .btn-secondary:hover {\n color: #212529;\n background-color: #b8c1ca;\n border-color: #b1bbc4; }\n .btn-secondary:focus, .btn-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(180, 186, 191, 0.5); }\n .btn-secondary.disabled, .btn-secondary:disabled {\n color: #212529;\n background-color: #ced4da;\n border-color: #ced4da; }\n .btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n .show > .btn-secondary.dropdown-toggle {\n color: #212529;\n background-color: #b1bbc4;\n border-color: #aab4bf; }\n .btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n .show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(180, 186, 191, 0.5); }\n\n.btn-success {\n color: #fff;\n background-color: #00a65a;\n border-color: #00a65a; }\n .btn-success:hover {\n color: #fff;\n background-color: #008045;\n border-color: #00733e; }\n .btn-success:focus, .btn-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 179, 115, 0.5); }\n .btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #00a65a;\n border-color: #00a65a; }\n .btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n .show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #00733e;\n border-color: #006637; }\n .btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n .show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 179, 115, 0.5); }\n\n.btn-info {\n color: #fff;\n background-color: #555555;\n border-color: #555555; }\n .btn-info:hover {\n color: #fff;\n background-color: #424242;\n border-color: #3c3c3c; }\n .btn-info:focus, .btn-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(111, 111, 111, 0.5); }\n .btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #555555;\n border-color: #555555; }\n .btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n .show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #3c3c3c;\n border-color: #353535; }\n .btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n .show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(111, 111, 111, 0.5); }\n\n.btn-warning {\n color: #fff;\n background-color: #bf7e16;\n border-color: #bf7e16; }\n .btn-warning:hover {\n color: #fff;\n background-color: #9d6712;\n border-color: #916011; }\n .btn-warning:focus, .btn-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(201, 145, 57, 0.5); }\n .btn-warning.disabled, .btn-warning:disabled {\n color: #fff;\n background-color: #bf7e16;\n border-color: #bf7e16; }\n .btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n .show > .btn-warning.dropdown-toggle {\n color: #fff;\n background-color: #916011;\n border-color: #86580f; }\n .btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n .show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(201, 145, 57, 0.5); }\n\n.btn-danger {\n color: #fff;\n background-color: #dd4b39;\n border-color: #dd4b39; }\n .btn-danger:hover {\n color: #fff;\n background-color: #cd3623;\n border-color: #c23321; }\n .btn-danger:focus, .btn-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(226, 102, 87, 0.5); }\n .btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dd4b39;\n border-color: #dd4b39; }\n .btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n .show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #c23321;\n border-color: #b7301f; }\n .btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n .show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(226, 102, 87, 0.5); }\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa; }\n .btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5; }\n .btn-light:focus, .btn-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5); }\n .btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa; }\n .btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n .show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df; }\n .btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n .show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5); }\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40; }\n .btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124; }\n .btn-dark:focus, .btn-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5); }\n .btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40; }\n .btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n .show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d; }\n .btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n .show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5); }\n\n.btn-primary-accent {\n color: #fff;\n background-color: #1252A3;\n border-color: #1252A3; }\n .btn-primary-accent:hover {\n color: #fff;\n background-color: #0e4181;\n border-color: #0d3b75; }\n .btn-primary-accent:focus, .btn-primary-accent.focus {\n box-shadow: 0 0 0 0.2rem rgba(54, 108, 177, 0.5); }\n .btn-primary-accent.disabled, .btn-primary-accent:disabled {\n color: #fff;\n background-color: #1252A3;\n border-color: #1252A3; }\n .btn-primary-accent:not(:disabled):not(.disabled):active, .btn-primary-accent:not(:disabled):not(.disabled).active,\n .show > .btn-primary-accent.dropdown-toggle {\n color: #fff;\n background-color: #0d3b75;\n border-color: #0c356a; }\n .btn-primary-accent:not(:disabled):not(.disabled):active:focus, .btn-primary-accent:not(:disabled):not(.disabled).active:focus,\n .show > .btn-primary-accent.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(54, 108, 177, 0.5); }\n\n.btn-secondary-alt {\n color: #fff;\n background-color: #1A3B66;\n border-color: #1A3B66; }\n .btn-secondary-alt:hover {\n color: #fff;\n background-color: #122948;\n border-color: #10233d; }\n .btn-secondary-alt:focus, .btn-secondary-alt.focus {\n box-shadow: 0 0 0 0.2rem rgba(60, 88, 125, 0.5); }\n .btn-secondary-alt.disabled, .btn-secondary-alt:disabled {\n color: #fff;\n background-color: #1A3B66;\n border-color: #1A3B66; }\n .btn-secondary-alt:not(:disabled):not(.disabled):active, .btn-secondary-alt:not(:disabled):not(.disabled).active,\n .show > .btn-secondary-alt.dropdown-toggle {\n color: #fff;\n background-color: #10233d;\n border-color: #0d1e33; }\n .btn-secondary-alt:not(:disabled):not(.disabled):active:focus, .btn-secondary-alt:not(:disabled):not(.disabled).active:focus,\n .show > .btn-secondary-alt.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(60, 88, 125, 0.5); }\n\n.btn-outline-primary {\n color: #175DDC;\n border-color: #175DDC; }\n .btn-outline-primary:hover {\n color: #fff;\n background-color: #175DDC;\n border-color: #175DDC; }\n .btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.5); }\n .btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #175DDC;\n background-color: transparent; }\n .btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n .show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #175DDC;\n border-color: #175DDC; }\n .btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.5); }\n\n.btn-outline-secondary, .swal2-popup .swal2-actions button.swal2-cancel {\n color: #ced4da;\n border-color: #ced4da; }\n .btn-outline-secondary:hover, .swal2-popup .swal2-actions button.swal2-cancel:hover {\n color: #212529;\n background-color: #ced4da;\n border-color: #ced4da; }\n .btn-outline-secondary:focus, .swal2-popup .swal2-actions button.swal2-cancel:focus, .btn-outline-secondary.focus, .swal2-popup .swal2-actions button.focus.swal2-cancel {\n box-shadow: 0 0 0 0.2rem rgba(206, 212, 218, 0.5); }\n .btn-outline-secondary.disabled, .swal2-popup .swal2-actions button.disabled.swal2-cancel, .btn-outline-secondary:disabled, .swal2-popup .swal2-actions button.swal2-cancel:disabled {\n color: #ced4da;\n background-color: transparent; }\n .btn-outline-secondary:not(:disabled):not(.disabled):active, .swal2-popup .swal2-actions button.swal2-cancel:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active, .swal2-popup .swal2-actions button.swal2-cancel:not(:disabled):not(.disabled).active,\n .show > .btn-outline-secondary.dropdown-toggle,\n .swal2-popup .swal2-actions .show > button.dropdown-toggle.swal2-cancel {\n color: #212529;\n background-color: #ced4da;\n border-color: #ced4da; }\n .btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .swal2-popup .swal2-actions button.swal2-cancel:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus, .swal2-popup .swal2-actions button.swal2-cancel:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-secondary.dropdown-toggle:focus,\n .swal2-popup .swal2-actions .show > button.dropdown-toggle.swal2-cancel:focus {\n box-shadow: 0 0 0 0.2rem rgba(206, 212, 218, 0.5); }\n\n.btn-outline-success {\n color: #00a65a;\n border-color: #00a65a; }\n .btn-outline-success:hover {\n color: #fff;\n background-color: #00a65a;\n border-color: #00a65a; }\n .btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 166, 90, 0.5); }\n .btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #00a65a;\n background-color: transparent; }\n .btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n .show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #00a65a;\n border-color: #00a65a; }\n .btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 166, 90, 0.5); }\n\n.btn-outline-info {\n color: #555555;\n border-color: #555555; }\n .btn-outline-info:hover {\n color: #fff;\n background-color: #555555;\n border-color: #555555; }\n .btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(85, 85, 85, 0.5); }\n .btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #555555;\n background-color: transparent; }\n .btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n .show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #555555;\n border-color: #555555; }\n .btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(85, 85, 85, 0.5); }\n\n.btn-outline-warning {\n color: #bf7e16;\n border-color: #bf7e16; }\n .btn-outline-warning:hover {\n color: #fff;\n background-color: #bf7e16;\n border-color: #bf7e16; }\n .btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(191, 126, 22, 0.5); }\n .btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #bf7e16;\n background-color: transparent; }\n .btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n .show > .btn-outline-warning.dropdown-toggle {\n color: #fff;\n background-color: #bf7e16;\n border-color: #bf7e16; }\n .btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(191, 126, 22, 0.5); }\n\n.btn-outline-danger {\n color: #dd4b39;\n border-color: #dd4b39; }\n .btn-outline-danger:hover {\n color: #fff;\n background-color: #dd4b39;\n border-color: #dd4b39; }\n .btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.5); }\n .btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dd4b39;\n background-color: transparent; }\n .btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n .show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dd4b39;\n border-color: #dd4b39; }\n .btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.5); }\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa; }\n .btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa; }\n .btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); }\n .btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent; }\n .btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n .show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa; }\n .btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); }\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40; }\n .btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40; }\n .btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); }\n .btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent; }\n .btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n .show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40; }\n .btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); }\n\n.btn-outline-primary-accent {\n color: #1252A3;\n border-color: #1252A3; }\n .btn-outline-primary-accent:hover {\n color: #fff;\n background-color: #1252A3;\n border-color: #1252A3; }\n .btn-outline-primary-accent:focus, .btn-outline-primary-accent.focus {\n box-shadow: 0 0 0 0.2rem rgba(18, 82, 163, 0.5); }\n .btn-outline-primary-accent.disabled, .btn-outline-primary-accent:disabled {\n color: #1252A3;\n background-color: transparent; }\n .btn-outline-primary-accent:not(:disabled):not(.disabled):active, .btn-outline-primary-accent:not(:disabled):not(.disabled).active,\n .show > .btn-outline-primary-accent.dropdown-toggle {\n color: #fff;\n background-color: #1252A3;\n border-color: #1252A3; }\n .btn-outline-primary-accent:not(:disabled):not(.disabled):active:focus, .btn-outline-primary-accent:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-primary-accent.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(18, 82, 163, 0.5); }\n\n.btn-outline-secondary-alt {\n color: #1A3B66;\n border-color: #1A3B66; }\n .btn-outline-secondary-alt:hover {\n color: #fff;\n background-color: #1A3B66;\n border-color: #1A3B66; }\n .btn-outline-secondary-alt:focus, .btn-outline-secondary-alt.focus {\n box-shadow: 0 0 0 0.2rem rgba(26, 59, 102, 0.5); }\n .btn-outline-secondary-alt.disabled, .btn-outline-secondary-alt:disabled {\n color: #1A3B66;\n background-color: transparent; }\n .btn-outline-secondary-alt:not(:disabled):not(.disabled):active, .btn-outline-secondary-alt:not(:disabled):not(.disabled).active,\n .show > .btn-outline-secondary-alt.dropdown-toggle {\n color: #fff;\n background-color: #1A3B66;\n border-color: #1A3B66; }\n .btn-outline-secondary-alt:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary-alt:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-secondary-alt.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(26, 59, 102, 0.5); }\n\n.btn-link {\n font-weight: 400;\n color: #175DDC;\n text-decoration: none; }\n .btn-link:hover {\n color: #104097;\n text-decoration: underline; }\n .btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n box-shadow: none; }\n .btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none; }\n\n.btn-lg, .btn-group-lg > .btn, .swal2-popup .swal2-actions .btn-group-lg > button {\n padding: 0.5rem 1rem;\n font-size: 1.15rem;\n line-height: 1.5;\n border-radius: 0.3rem; }\n\n.btn-sm, .btn-group-sm > .btn, .swal2-popup .swal2-actions .btn-group-sm > button {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem; }\n\n.btn-block {\n display: block;\n width: 100%; }\n .btn-block + .btn-block {\n margin-top: 0.5rem; }\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%; }\n\n.fade {\n transition: opacity 0.15s linear; }\n @media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none; } }\n .fade:not(.show) {\n opacity: 0; }\n\n.collapse:not(.show) {\n display: none; }\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease; }\n @media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none; } }\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative; }\n\n.dropdown-toggle {\n white-space: nowrap; }\n .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent; }\n .dropdown-toggle:empty::after {\n margin-left: 0; }\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #333333;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem; }\n\n.dropdown-menu-left {\n right: auto;\n left: 0; }\n\n.dropdown-menu-right {\n right: 0;\n left: auto; }\n\n@media (min-width: 1px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0; }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto; } }\n\n@media (min-width: 2px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0; }\n .dropdown-menu-md-right {\n right: 0;\n left: auto; } }\n\n@media (min-width: 3px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0; }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto; } }\n\n@media (min-width: 4px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0; }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto; } }\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem; }\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent; }\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0; }\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem; }\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid; }\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0; }\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0; }\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem; }\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\"; }\n\n.dropleft .dropdown-toggle::after {\n display: none; }\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent; }\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0; }\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0; }\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto; }\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef; }\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1rem;\n clear: both;\n font-weight: 400;\n color: #333333;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0; }\n .dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: rgba(0, 0, 0, 0.06); }\n .dropdown-item.active, .dropdown-item:active {\n color: #333333;\n text-decoration: none;\n background-color: rgba(0, 0, 0, 0.1); }\n .dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: transparent; }\n\n.dropdown-menu.show {\n display: block; }\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap; }\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1rem;\n color: #333333; }\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle; }\n .btn-group > .btn, .swal2-popup .swal2-actions .btn-group > button,\n .btn-group-vertical > .btn,\n .swal2-popup .swal2-actions .btn-group-vertical > button {\n position: relative;\n flex: 1 1 auto; }\n .btn-group > .btn:hover, .swal2-popup .swal2-actions .btn-group > button:hover,\n .btn-group-vertical > .btn:hover,\n .swal2-popup .swal2-actions .btn-group-vertical > button:hover {\n z-index: 1; }\n .btn-group > .btn:focus, .swal2-popup .swal2-actions .btn-group > button:focus, .btn-group > .btn:active, .swal2-popup .swal2-actions .btn-group > button:active, .btn-group > .btn.active, .swal2-popup .swal2-actions .btn-group > button.active,\n .btn-group-vertical > .btn:focus,\n .swal2-popup .swal2-actions .btn-group-vertical > button:focus,\n .btn-group-vertical > .btn:active,\n .swal2-popup .swal2-actions .btn-group-vertical > button:active,\n .btn-group-vertical > .btn.active,\n .swal2-popup .swal2-actions .btn-group-vertical > button.active {\n z-index: 1; }\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start; }\n .btn-toolbar .input-group {\n width: auto; }\n\n.btn-group > .btn:not(:first-child), .swal2-popup .swal2-actions .btn-group > button:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px; }\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle), .swal2-popup .swal2-actions .btn-group > button:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn,\n.swal2-popup .swal2-actions .btn-group > .btn-group:not(:last-child) > button {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n\n.btn-group > .btn:not(:first-child), .swal2-popup .swal2-actions .btn-group > button:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn,\n.swal2-popup .swal2-actions .btn-group > .btn-group:not(:first-child) > button {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0; }\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem; }\n .dropdown-toggle-split::after,\n .dropup .dropdown-toggle-split::after,\n .dropright .dropdown-toggle-split::after {\n margin-left: 0; }\n .dropleft .dropdown-toggle-split::before {\n margin-right: 0; }\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split, .swal2-popup .swal2-actions .btn-group-sm > button + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem; }\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split, .swal2-popup .swal2-actions .btn-group-lg > button + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem; }\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center; }\n \n .btn-group-vertical > .btn,\n .swal2-popup .swal2-actions .btn-group-vertical > button,\n .btn-group-vertical > .btn-group {\n width: 100%; }\n .btn-group-vertical > .btn:not(:first-child), .swal2-popup .swal2-actions .btn-group-vertical > button:not(:first-child),\n .btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px; }\n .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), .swal2-popup .swal2-actions .btn-group-vertical > button:not(:last-child):not(.dropdown-toggle),\n .btn-group-vertical > .btn-group:not(:last-child) > .btn,\n .swal2-popup .swal2-actions .btn-group-vertical > .btn-group:not(:last-child) > button {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0; }\n .btn-group-vertical > .btn:not(:first-child), .swal2-popup .swal2-actions .btn-group-vertical > button:not(:first-child),\n .btn-group-vertical > .btn-group:not(:first-child) > .btn,\n .swal2-popup .swal2-actions .btn-group-vertical > .btn-group:not(:first-child) > button {\n border-top-left-radius: 0;\n border-top-right-radius: 0; }\n\n.btn-group-toggle > .btn, .swal2-popup .swal2-actions .btn-group-toggle > button,\n.btn-group-toggle > .btn-group > .btn,\n.swal2-popup .swal2-actions .btn-group-toggle > .btn-group > button {\n margin-bottom: 0; }\n .btn-group-toggle > .btn input[type=\"radio\"], .swal2-popup .swal2-actions .btn-group-toggle > button input[type=\"radio\"],\n .btn-group-toggle > .btn input[type=\"checkbox\"],\n .swal2-popup .swal2-actions .btn-group-toggle > button input[type=\"checkbox\"],\n .btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n .swal2-popup .swal2-actions .btn-group-toggle > .btn-group > button input[type=\"radio\"],\n .btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"],\n .swal2-popup .swal2-actions .btn-group-toggle > .btn-group > button input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none; }\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%; }\n .input-group > .form-control,\n .input-group > .form-control-plaintext,\n .input-group > .custom-select,\n .input-group > .custom-file {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n margin-bottom: 0; }\n .input-group > .form-control + .form-control,\n .input-group > .form-control + .custom-select,\n .input-group > .form-control + .custom-file,\n .input-group > .form-control-plaintext + .form-control,\n .input-group > .form-control-plaintext + .custom-select,\n .input-group > .form-control-plaintext + .custom-file,\n .input-group > .custom-select + .form-control,\n .input-group > .custom-select + .custom-select,\n .input-group > .custom-select + .custom-file,\n .input-group > .custom-file + .form-control,\n .input-group > .custom-file + .custom-select,\n .input-group > .custom-file + .custom-file {\n margin-left: -1px; }\n .input-group > .form-control:focus,\n .input-group > .custom-select:focus,\n .input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3; }\n .input-group > .custom-file .custom-file-input:focus {\n z-index: 4; }\n .input-group > .form-control:not(:last-child),\n .input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n .input-group > .form-control:not(:first-child),\n .input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0; }\n .input-group > .custom-file {\n display: flex;\n align-items: center; }\n .input-group > .custom-file:not(:last-child) .custom-file-label,\n .input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n .input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0; }\n\n.input-group-prepend,\n.input-group-append {\n display: flex; }\n .input-group-prepend .btn, .input-group-prepend .swal2-popup .swal2-actions button, .swal2-popup .swal2-actions .input-group-prepend button,\n .input-group-append .btn,\n .input-group-append .swal2-popup .swal2-actions button,\n .swal2-popup .swal2-actions .input-group-append button {\n position: relative;\n z-index: 2; }\n .input-group-prepend .btn:focus, .input-group-prepend .swal2-popup .swal2-actions button:focus, .swal2-popup .swal2-actions .input-group-prepend button:focus,\n .input-group-append .btn:focus,\n .input-group-append .swal2-popup .swal2-actions button:focus,\n .swal2-popup .swal2-actions .input-group-append button:focus {\n z-index: 3; }\n .input-group-prepend .btn + .btn, .input-group-prepend .swal2-popup .swal2-actions button + .btn, .swal2-popup .swal2-actions .input-group-prepend button + .btn, .input-group-prepend .swal2-popup .swal2-actions .btn + button, .swal2-popup .swal2-actions .input-group-prepend .btn + button, .input-group-prepend .swal2-popup .swal2-actions button + button, .swal2-popup .swal2-actions .input-group-prepend button + button,\n .input-group-prepend .btn + .input-group-text,\n .input-group-prepend .swal2-popup .swal2-actions button + .input-group-text,\n .swal2-popup .swal2-actions .input-group-prepend button + .input-group-text,\n .input-group-prepend .input-group-text + .input-group-text,\n .input-group-prepend .input-group-text + .btn,\n .input-group-prepend .swal2-popup .swal2-actions .input-group-text + button,\n .swal2-popup .swal2-actions .input-group-prepend .input-group-text + button,\n .input-group-append .btn + .btn,\n .input-group-append .swal2-popup .swal2-actions button + .btn,\n .swal2-popup .swal2-actions .input-group-append button + .btn,\n .input-group-append .swal2-popup .swal2-actions .btn + button,\n .swal2-popup .swal2-actions .input-group-append .btn + button,\n .input-group-append .swal2-popup .swal2-actions button + button,\n .swal2-popup .swal2-actions .input-group-append button + button,\n .input-group-append .btn + .input-group-text,\n .input-group-append .swal2-popup .swal2-actions button + .input-group-text,\n .swal2-popup .swal2-actions .input-group-append button + .input-group-text,\n .input-group-append .input-group-text + .input-group-text,\n .input-group-append .input-group-text + .btn,\n .input-group-append .swal2-popup .swal2-actions .input-group-text + button,\n .swal2-popup .swal2-actions .input-group-append .input-group-text + button {\n margin-left: -1px; }\n\n.input-group-prepend {\n margin-right: -1px; }\n\n.input-group-append {\n margin-left: -1px; }\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem; }\n .input-group-text input[type=\"radio\"],\n .input-group-text input[type=\"checkbox\"] {\n margin-top: 0; }\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px); }\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.swal2-popup .swal2-actions .input-group-lg > .input-group-prepend > button,\n.input-group-lg > .input-group-append > .btn,\n.swal2-popup .swal2-actions .input-group-lg > .input-group-append > button {\n padding: 0.5rem 1rem;\n font-size: 1.15rem;\n line-height: 1.5;\n border-radius: 0.3rem; }\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px); }\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.swal2-popup .swal2-actions .input-group-sm > .input-group-prepend > button,\n.input-group-sm > .input-group-append > .btn,\n.swal2-popup .swal2-actions .input-group-sm > .input-group-append > button {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem; }\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem; }\n\n.input-group > .input-group-prepend > .btn, .swal2-popup .swal2-actions .input-group > .input-group-prepend > button,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.swal2-popup .swal2-actions .input-group > .input-group-append:not(:last-child) > button,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.swal2-popup .swal2-actions .input-group > .input-group-append:last-child > button:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n\n.input-group > .input-group-append > .btn, .swal2-popup .swal2-actions .input-group > .input-group-append > button,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.swal2-popup .swal2-actions .input-group > .input-group-prepend:not(:first-child) > button,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.swal2-popup .swal2-actions .input-group > .input-group-prepend:first-child > button:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0; }\n\n.custom-control {\n position: relative;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem; }\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem; }\n\n.custom-control-input {\n position: absolute;\n z-index: -1;\n opacity: 0; }\n .custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #175DDC;\n background-color: #175DDC; }\n .custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.25); }\n .custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #81a9f2; }\n .custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #afc8f7;\n border-color: #afc8f7; }\n .custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d; }\n .custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e0e0e0; }\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top; }\n .custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fbfbfb;\n border: #adb5bd solid 1px; }\n .custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: no-repeat 50% / 50% 50%; }\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem; }\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e\"); }\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #175DDC;\n background-color: #175DDC; }\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\"); }\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(23, 93, 220, 0.5); }\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(23, 93, 220, 0.5); }\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%; }\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\"); }\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(23, 93, 220, 0.5); }\n\n.custom-switch {\n padding-left: 2.25rem; }\n .custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem; }\n .custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none; } }\n .custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fbfbfb;\n transform: translateX(0.75rem); }\n .custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(23, 93, 220, 0.5); }\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px;\n background-color: #fbfbfb;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n appearance: none; }\n .custom-select:focus {\n border-color: #81a9f2;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.25); }\n .custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fbfbfb; }\n .custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none; }\n .custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef; }\n .custom-select::-ms-expand {\n display: none; }\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem; }\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.15rem; }\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0; }\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n opacity: 0; }\n .custom-file-input:focus ~ .custom-file-label {\n border-color: #81a9f2;\n box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.25); }\n .custom-file-input:disabled ~ .custom-file-label {\n background-color: #e0e0e0; }\n .custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\"; }\n .custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse); }\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fbfbfb;\n border: 1px solid #ced4da;\n border-radius: 0.25rem; }\n .custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0; }\n\n.custom-range {\n width: 100%;\n height: calc(1rem + 0.4rem);\n padding: 0;\n background-color: transparent;\n appearance: none; }\n .custom-range:focus {\n outline: none; }\n .custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(23, 93, 220, 0.25); }\n .custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(23, 93, 220, 0.25); }\n .custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(23, 93, 220, 0.25); }\n .custom-range::-moz-focus-outer {\n border: 0; }\n .custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #175DDC;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none; }\n @media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n transition: none; } }\n .custom-range::-webkit-slider-thumb:active {\n background-color: #afc8f7; }\n .custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem; }\n .custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #175DDC;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none; }\n @media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n transition: none; } }\n .custom-range::-moz-range-thumb:active {\n background-color: #afc8f7; }\n .custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem; }\n .custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #175DDC;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none; }\n @media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n transition: none; } }\n .custom-range::-ms-thumb:active {\n background-color: #afc8f7; }\n .custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem; }\n .custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem; }\n .custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem; }\n .custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd; }\n .custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default; }\n .custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd; }\n .custom-range:disabled::-moz-range-track {\n cursor: default; }\n .custom-range:disabled::-ms-thumb {\n background-color: #adb5bd; }\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none; } }\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none; }\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem; }\n .nav-link:hover, .nav-link:focus {\n text-decoration: none; }\n .nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default; }\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6; }\n .nav-tabs .nav-item {\n margin-bottom: -1px; }\n .nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem; }\n .nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6; }\n .nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent; }\n .nav-tabs .nav-link.active,\n .nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #ffffff;\n border-color: #dee2e6 #dee2e6 #ffffff; }\n .nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0; }\n\n.nav-pills .nav-link {\n border-radius: 0.25rem; }\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #175DDC; }\n\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center; }\n\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center; }\n\n.tab-content > .tab-pane {\n display: none; }\n\n.tab-content > .active {\n display: block; }\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 0.75rem 1rem; }\n .navbar > .container,\n .navbar > .container-fluid {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between; }\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0;\n padding-bottom: 0;\n margin-right: 1rem;\n font-size: 2.1875rem;\n line-height: inherit;\n white-space: nowrap; }\n .navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none; }\n\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none; }\n .navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0; }\n .navbar-nav .dropdown-menu {\n position: static;\n float: none; }\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem; }\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center; }\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.15rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem; }\n .navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none; }\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%; }\n\n@media (max-width: 0.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n padding-right: 0;\n padding-left: 0; } }\n\n@media (min-width: 1px) {\n .navbar-expand-sm {\n flex-flow: row nowrap;\n justify-content: flex-start; }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row; }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.8rem;\n padding-left: 0.8rem; }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n flex-wrap: nowrap; }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand-sm .navbar-toggler {\n display: none; } }\n\n@media (max-width: 1.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n padding-right: 0;\n padding-left: 0; } }\n\n@media (min-width: 2px) {\n .navbar-expand-md {\n flex-flow: row nowrap;\n justify-content: flex-start; }\n .navbar-expand-md .navbar-nav {\n flex-direction: row; }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.8rem;\n padding-left: 0.8rem; }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n flex-wrap: nowrap; }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand-md .navbar-toggler {\n display: none; } }\n\n@media (max-width: 2.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n padding-right: 0;\n padding-left: 0; } }\n\n@media (min-width: 3px) {\n .navbar-expand-lg {\n flex-flow: row nowrap;\n justify-content: flex-start; }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row; }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.8rem;\n padding-left: 0.8rem; }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n flex-wrap: nowrap; }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand-lg .navbar-toggler {\n display: none; } }\n\n@media (max-width: 3.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n padding-right: 0;\n padding-left: 0; } }\n\n@media (min-width: 4px) {\n .navbar-expand-xl {\n flex-flow: row nowrap;\n justify-content: flex-start; }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row; }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.8rem;\n padding-left: 0.8rem; }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n flex-wrap: nowrap; }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand-xl .navbar-toggler {\n display: none; } }\n\n.navbar-expand {\n flex-flow: row nowrap;\n justify-content: flex-start; }\n .navbar-expand > .container,\n .navbar-expand > .container-fluid {\n padding-right: 0;\n padding-left: 0; }\n .navbar-expand .navbar-nav {\n flex-direction: row; }\n .navbar-expand .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand .navbar-nav .nav-link {\n padding-right: 0.8rem;\n padding-left: 0.8rem; }\n .navbar-expand > .container,\n .navbar-expand > .container-fluid {\n flex-wrap: nowrap; }\n .navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand .navbar-toggler {\n display: none; }\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9); }\n .navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9); }\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5); }\n .navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7); }\n .navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3); }\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9); }\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1); }\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\"); }\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5); }\n .navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9); }\n .navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9); }\n\n.navbar-dark .navbar-brand {\n color: #fff; }\n .navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff; }\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.7); }\n .navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.9); }\n .navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25); }\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff; }\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.7);\n border-color: rgba(255, 255, 255, 0.1); }\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.7)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\"); }\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.7); }\n .navbar-dark .navbar-text a {\n color: #fff; }\n .navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff; }\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem; }\n .card > hr {\n margin-right: 0;\n margin-left: 0; }\n .card > .list-group:first-child .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem; }\n .card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem; }\n\n.card-body {\n flex: 1 1 auto;\n padding: 1.25rem; }\n\n.card-title {\n margin-bottom: 0.6rem; }\n\n.card-subtitle {\n margin-top: -0.3rem;\n margin-bottom: 0; }\n\n.card-text:last-child {\n margin-bottom: 0; }\n\n.card-link:hover {\n text-decoration: none; }\n\n.card-link + .card-link {\n margin-left: 1.25rem; }\n\n.card-header {\n padding: 0.6rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125); }\n .card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; }\n .card-header + .list-group .list-group-item:first-child {\n border-top: 0; }\n\n.card-footer {\n padding: 0.6rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125); }\n .card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); }\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.6rem;\n margin-left: -0.625rem;\n border-bottom: 0; }\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem; }\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem; }\n\n.card-img {\n width: 100%;\n border-radius: calc(0.25rem - 1px); }\n\n.card-img-top {\n width: 100%;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px); }\n\n.card-img-bottom {\n width: 100%;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px); }\n\n.card-deck {\n display: flex;\n flex-direction: column; }\n .card-deck .card {\n margin-bottom: 10px; }\n @media (min-width: 1px) {\n .card-deck {\n flex-flow: row wrap;\n margin-right: -10px;\n margin-left: -10px; }\n .card-deck .card {\n display: flex;\n flex: 1 0 0%;\n flex-direction: column;\n margin-right: 10px;\n margin-bottom: 0;\n margin-left: 10px; } }\n\n.card-group {\n display: flex;\n flex-direction: column; }\n .card-group > .card {\n margin-bottom: 10px; }\n @media (min-width: 1px) {\n .card-group {\n flex-flow: row wrap; }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0; }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0; }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0; }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0; }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0; }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0; }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0; } }\n\n.card-columns .card {\n margin-bottom: 0.6rem; }\n\n@media (min-width: 1px) {\n .card-columns {\n column-count: 3;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1; }\n .card-columns .card {\n display: inline-block;\n width: 100%; } }\n\n.accordion > .card {\n overflow: hidden; }\n .accordion > .card:not(:first-of-type) .card-header:first-child {\n border-radius: 0; }\n .accordion > .card:not(:first-of-type):not(:last-of-type) {\n border-bottom: 0;\n border-radius: 0; }\n .accordion > .card:first-of-type {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0; }\n .accordion > .card:last-of-type {\n border-top-left-radius: 0;\n border-top-right-radius: 0; }\n .accordion > .card .card-header {\n margin-bottom: -1px; }\n\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem; }\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem; }\n .breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\"; }\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline; }\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none; }\n\n.breadcrumb-item.active {\n color: #6c757d; }\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem; }\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #175DDC;\n background-color: #fff;\n border: 1px solid #dee2e6; }\n .page-link:hover {\n z-index: 2;\n color: #104097;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6; }\n .page-link:focus {\n z-index: 2;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.25); }\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem; }\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem; }\n\n.page-item.active .page-link {\n z-index: 1;\n color: #fff;\n background-color: #175DDC;\n border-color: #175DDC; }\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6; }\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.15rem;\n line-height: 1.5; }\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem; }\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem; }\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5; }\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem; }\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem; }\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none; } }\n a.badge:hover, a.badge:focus {\n text-decoration: none; }\n .badge:empty {\n display: none; }\n\n.btn .badge, .swal2-popup .swal2-actions button .badge {\n position: relative;\n top: -1px; }\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem; }\n\n.badge-primary {\n color: #fff;\n background-color: #175DDC; }\n a.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #1249ae; }\n a.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.5); }\n\n.badge-secondary {\n color: #212529;\n background-color: #ced4da; }\n a.badge-secondary:hover, a.badge-secondary:focus {\n color: #212529;\n background-color: #b1bbc4; }\n a.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(206, 212, 218, 0.5); }\n\n.badge-success {\n color: #fff;\n background-color: #00a65a; }\n a.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #00733e; }\n a.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 166, 90, 0.5); }\n\n.badge-info {\n color: #fff;\n background-color: #555555; }\n a.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #3c3c3c; }\n a.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(85, 85, 85, 0.5); }\n\n.badge-warning {\n color: #fff;\n background-color: #bf7e16; }\n a.badge-warning:hover, a.badge-warning:focus {\n color: #fff;\n background-color: #916011; }\n a.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(191, 126, 22, 0.5); }\n\n.badge-danger {\n color: #fff;\n background-color: #dd4b39; }\n a.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #c23321; }\n a.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.5); }\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa; }\n a.badge-light:hover, a.badge-light:focus {\n color: #212529;\n background-color: #dae0e5; }\n a.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); }\n\n.badge-dark {\n color: #fff;\n background-color: #343a40; }\n a.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #1d2124; }\n a.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); }\n\n.badge-primary-accent {\n color: #fff;\n background-color: #1252A3; }\n a.badge-primary-accent:hover, a.badge-primary-accent:focus {\n color: #fff;\n background-color: #0d3b75; }\n a.badge-primary-accent:focus, a.badge-primary-accent.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(18, 82, 163, 0.5); }\n\n.badge-secondary-alt {\n color: #fff;\n background-color: #1A3B66; }\n a.badge-secondary-alt:hover, a.badge-secondary-alt:focus {\n color: #fff;\n background-color: #10233d; }\n a.badge-secondary-alt:focus, a.badge-secondary-alt.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(26, 59, 102, 0.5); }\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem; }\n @media (min-width: 1px) {\n .jumbotron {\n padding: 4rem 2rem; } }\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0; }\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem; }\n\n.alert-heading {\n color: inherit; }\n\n.alert-link {\n font-weight: 700; }\n\n.alert-dismissible {\n padding-right: 4rem; }\n .alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.75rem 1.25rem;\n color: inherit; }\n\n.alert-primary {\n color: #0c3072;\n background-color: #d1dff8;\n border-color: #bed2f5; }\n .alert-primary hr {\n border-top-color: #a8c3f2; }\n .alert-primary .alert-link {\n color: #071d44; }\n\n.alert-secondary {\n color: #6b6e71;\n background-color: #f5f6f8;\n border-color: #f1f3f5; }\n .alert-secondary hr {\n border-top-color: #e2e6ea; }\n .alert-secondary .alert-link {\n color: #525557; }\n\n.alert-success {\n color: #00562f;\n background-color: #ccedde;\n border-color: #b8e6d1; }\n .alert-success hr {\n border-top-color: #a5dfc5; }\n .alert-success .alert-link {\n color: #002313; }\n\n.alert-info {\n color: #2c2c2c;\n background-color: #dddddd;\n border-color: #cfcfcf; }\n .alert-info hr {\n border-top-color: #c2c2c2; }\n .alert-info .alert-link {\n color: #131313; }\n\n.alert-warning {\n color: #63420b;\n background-color: #f2e5d0;\n border-color: #eddbbe; }\n .alert-warning hr {\n border-top-color: #e7d0aa; }\n .alert-warning .alert-link {\n color: #352306; }\n\n.alert-danger {\n color: #73271e;\n background-color: #f8dbd7;\n border-color: #f5cdc8; }\n .alert-danger hr {\n border-top-color: #f1b9b2; }\n .alert-danger .alert-link {\n color: #4b1913; }\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe; }\n .alert-light hr {\n border-top-color: #ececf6; }\n .alert-light .alert-link {\n color: #686868; }\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca; }\n .alert-dark hr {\n border-top-color: #b9bbbe; }\n .alert-dark .alert-link {\n color: #040505; }\n\n.alert-primary-accent {\n color: #092b55;\n background-color: #d0dced;\n border-color: #bdcfe5; }\n .alert-primary-accent hr {\n border-top-color: #abc2de; }\n .alert-primary-accent .alert-link {\n color: #041427; }\n\n.alert-secondary-alt {\n color: #0e1f35;\n background-color: #d1d8e0;\n border-color: #bfc8d4; }\n .alert-secondary-alt hr {\n border-top-color: #b0bbca; }\n .alert-secondary-alt .alert-link {\n color: #03070d; }\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0; }\n to {\n background-position: 0 0; } }\n\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem; }\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #175DDC;\n transition: width 0.6s ease; }\n @media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none; } }\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem; }\n\n.progress-bar-animated {\n animation: progress-bar-stripes 1s linear infinite; }\n @media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none; } }\n\n.media {\n display: flex;\n align-items: flex-start; }\n\n.media-body {\n flex: 1; }\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0; }\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit; }\n .list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa; }\n .list-group-item-action:active {\n color: #333333;\n background-color: #e9ecef; }\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.6rem 1.25rem;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125); }\n .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem; }\n .list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem; }\n .list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff; }\n .list-group-item.active {\n z-index: 2;\n color: #333333;\n background-color: #ffffff;\n border-color: rgba(0, 0, 0, 0.125); }\n\n.list-group-horizontal {\n flex-direction: row; }\n .list-group-horizontal .list-group-item {\n margin-right: -1px;\n margin-bottom: 0; }\n .list-group-horizontal .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0; }\n\n@media (min-width: 1px) {\n .list-group-horizontal-sm {\n flex-direction: row; }\n .list-group-horizontal-sm .list-group-item {\n margin-right: -1px;\n margin-bottom: 0; }\n .list-group-horizontal-sm .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal-sm .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0; } }\n\n@media (min-width: 2px) {\n .list-group-horizontal-md {\n flex-direction: row; }\n .list-group-horizontal-md .list-group-item {\n margin-right: -1px;\n margin-bottom: 0; }\n .list-group-horizontal-md .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal-md .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0; } }\n\n@media (min-width: 3px) {\n .list-group-horizontal-lg {\n flex-direction: row; }\n .list-group-horizontal-lg .list-group-item {\n margin-right: -1px;\n margin-bottom: 0; }\n .list-group-horizontal-lg .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal-lg .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0; } }\n\n@media (min-width: 4px) {\n .list-group-horizontal-xl {\n flex-direction: row; }\n .list-group-horizontal-xl .list-group-item {\n margin-right: -1px;\n margin-bottom: 0; }\n .list-group-horizontal-xl .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal-xl .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0; } }\n\n.list-group-flush .list-group-item {\n border-right: 0;\n border-left: 0;\n border-radius: 0; }\n .list-group-flush .list-group-item:last-child {\n margin-bottom: -1px; }\n\n.list-group-flush:first-child .list-group-item:first-child {\n border-top: 0; }\n\n.list-group-flush:last-child .list-group-item:last-child {\n margin-bottom: 0;\n border-bottom: 0; }\n\n.list-group-item-primary {\n color: #0c3072;\n background-color: #bed2f5; }\n .list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #0c3072;\n background-color: #a8c3f2; }\n .list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #0c3072;\n border-color: #0c3072; }\n\n.list-group-item-secondary {\n color: #6b6e71;\n background-color: #f1f3f5; }\n .list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #6b6e71;\n background-color: #e2e6ea; }\n .list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #6b6e71;\n border-color: #6b6e71; }\n\n.list-group-item-success {\n color: #00562f;\n background-color: #b8e6d1; }\n .list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #00562f;\n background-color: #a5dfc5; }\n .list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #00562f;\n border-color: #00562f; }\n\n.list-group-item-info {\n color: #2c2c2c;\n background-color: #cfcfcf; }\n .list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #2c2c2c;\n background-color: #c2c2c2; }\n .list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #2c2c2c;\n border-color: #2c2c2c; }\n\n.list-group-item-warning {\n color: #63420b;\n background-color: #eddbbe; }\n .list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #63420b;\n background-color: #e7d0aa; }\n .list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #63420b;\n border-color: #63420b; }\n\n.list-group-item-danger {\n color: #73271e;\n background-color: #f5cdc8; }\n .list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #73271e;\n background-color: #f1b9b2; }\n .list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #73271e;\n border-color: #73271e; }\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe; }\n .list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6; }\n .list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182; }\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca; }\n .list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe; }\n .list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21; }\n\n.list-group-item-primary-accent {\n color: #092b55;\n background-color: #bdcfe5; }\n .list-group-item-primary-accent.list-group-item-action:hover, .list-group-item-primary-accent.list-group-item-action:focus {\n color: #092b55;\n background-color: #abc2de; }\n .list-group-item-primary-accent.list-group-item-action.active {\n color: #fff;\n background-color: #092b55;\n border-color: #092b55; }\n\n.list-group-item-secondary-alt {\n color: #0e1f35;\n background-color: #bfc8d4; }\n .list-group-item-secondary-alt.list-group-item-action:hover, .list-group-item-secondary-alt.list-group-item-action:focus {\n color: #0e1f35;\n background-color: #b0bbca; }\n .list-group-item-secondary-alt.list-group-item-action.active {\n color: #fff;\n background-color: #0e1f35;\n border-color: #0e1f35; }\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5; }\n .close:hover {\n color: #000;\n text-decoration: none; }\n .close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75; }\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n appearance: none; }\n\na.close.disabled {\n pointer-events: none; }\n\n.modal-open {\n overflow: hidden; }\n .modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto; }\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0; }\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none; }\n .modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px); }\n @media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none; } }\n .modal.show .modal-dialog {\n transform: none; }\n\n.modal-dialog-scrollable {\n display: flex;\n max-height: calc(100% - 1rem); }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden; }\n .modal-dialog-scrollable .modal-header,\n .modal-dialog-scrollable .modal-footer {\n flex-shrink: 0; }\n .modal-dialog-scrollable .modal-body {\n overflow-y: auto; }\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - 1rem); }\n .modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n content: \"\"; }\n .modal-dialog-centered.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%; }\n .modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none; }\n .modal-dialog-centered.modal-dialog-scrollable::before {\n content: none; }\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0; }\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000; }\n .modal-backdrop.fade {\n opacity: 0; }\n .modal-backdrop.show {\n opacity: 0.3; }\n\n.modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: 0.3rem;\n border-top-right-radius: 0.3rem; }\n .modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto; }\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5; }\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem; }\n\n.modal-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 1rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem; }\n .modal-footer > :not(:first-child) {\n margin-left: .25rem; }\n .modal-footer > :not(:last-child) {\n margin-right: .25rem; }\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll; }\n\n@media (min-width: 1px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto; }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem); }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem); }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem); }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem); }\n .modal-sm {\n max-width: 300px; } }\n\n@media (min-width: 3px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px; } }\n\n@media (min-width: 4px) {\n .modal-xl {\n max-width: 1140px; } }\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: \"Open Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0; }\n .tooltip.show {\n opacity: 0.9; }\n .tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem; }\n .tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid; }\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0; }\n .bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n bottom: 0; }\n .bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000; }\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem; }\n .bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem; }\n .bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000; }\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0; }\n .bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n top: 0; }\n .bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000; }\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem; }\n .bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem; }\n .bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000; }\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem; }\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: \"Open Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem; }\n .popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem; }\n .popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid; }\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem; }\n .bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\n bottom: calc((0.5rem + 1px) * -1); }\n .bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25); }\n .bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff; }\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem; }\n .bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\n left: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0; }\n .bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25); }\n .bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff; }\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem; }\n .bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\n top: calc((0.5rem + 1px) * -1); }\n .bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25); }\n .bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff; }\n .bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7; }\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem; }\n .bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\n right: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0; }\n .bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25); }\n .bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff; }\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px); }\n .popover-header:empty {\n display: none; }\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #333333; }\n\n.carousel {\n position: relative; }\n\n.carousel.pointer-event {\n touch-action: pan-y; }\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden; }\n .carousel-inner::after {\n display: block;\n clear: both;\n content: \"\"; }\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n transition: transform 0.6s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none; } }\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block; }\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%); }\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%); }\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none; }\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1; }\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: 0s 0.6s opacity; }\n @media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none; } }\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease; }\n @media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none; } }\n .carousel-control-prev:hover, .carousel-control-prev:focus,\n .carousel-control-next:hover,\n .carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9; }\n\n.carousel-control-prev {\n left: 0; }\n\n.carousel-control-next {\n right: 0; }\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: no-repeat 50% / 100% 100%; }\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e\"); }\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e\"); }\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none; }\n .carousel-indicators li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease; }\n @media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none; } }\n .carousel-indicators .active {\n opacity: 1; }\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center; }\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg); } }\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: spinner-border .75s linear infinite; }\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em; }\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0); }\n 50% {\n opacity: 1; } }\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n animation: spinner-grow .75s linear infinite; }\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem; }\n\n.align-baseline {\n vertical-align: baseline !important; }\n\n.align-top {\n vertical-align: top !important; }\n\n.align-middle {\n vertical-align: middle !important; }\n\n.align-bottom {\n vertical-align: bottom !important; }\n\n.align-text-bottom {\n vertical-align: text-bottom !important; }\n\n.align-text-top {\n vertical-align: text-top !important; }\n\n.bg-primary {\n background-color: #175DDC !important; }\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #1249ae !important; }\n\n.bg-secondary {\n background-color: #ced4da !important; }\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #b1bbc4 !important; }\n\n.bg-success {\n background-color: #00a65a !important; }\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #00733e !important; }\n\n.bg-info {\n background-color: #555555 !important; }\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #3c3c3c !important; }\n\n.bg-warning {\n background-color: #bf7e16 !important; }\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #916011 !important; }\n\n.bg-danger {\n background-color: #dd4b39 !important; }\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #c23321 !important; }\n\n.bg-light {\n background-color: #f8f9fa !important; }\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important; }\n\n.bg-dark {\n background-color: #343a40 !important; }\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important; }\n\n.bg-primary-accent {\n background-color: #1252A3 !important; }\n\na.bg-primary-accent:hover, a.bg-primary-accent:focus,\nbutton.bg-primary-accent:hover,\nbutton.bg-primary-accent:focus {\n background-color: #0d3b75 !important; }\n\n.bg-secondary-alt {\n background-color: #1A3B66 !important; }\n\na.bg-secondary-alt:hover, a.bg-secondary-alt:focus,\nbutton.bg-secondary-alt:hover,\nbutton.bg-secondary-alt:focus {\n background-color: #10233d !important; }\n\n.bg-white {\n background-color: #fff !important; }\n\n.bg-transparent {\n background-color: transparent !important; }\n\n.border {\n border: 1px solid #dee2e6 !important; }\n\n.border-top {\n border-top: 1px solid #dee2e6 !important; }\n\n.border-right {\n border-right: 1px solid #dee2e6 !important; }\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important; }\n\n.border-left {\n border-left: 1px solid #dee2e6 !important; }\n\n.border-0 {\n border: 0 !important; }\n\n.border-top-0 {\n border-top: 0 !important; }\n\n.border-right-0 {\n border-right: 0 !important; }\n\n.border-bottom-0 {\n border-bottom: 0 !important; }\n\n.border-left-0 {\n border-left: 0 !important; }\n\n.border-primary {\n border-color: #175DDC !important; }\n\n.border-secondary {\n border-color: #ced4da !important; }\n\n.border-success {\n border-color: #00a65a !important; }\n\n.border-info {\n border-color: #555555 !important; }\n\n.border-warning {\n border-color: #bf7e16 !important; }\n\n.border-danger {\n border-color: #dd4b39 !important; }\n\n.border-light {\n border-color: #f8f9fa !important; }\n\n.border-dark {\n border-color: #343a40 !important; }\n\n.border-primary-accent {\n border-color: #1252A3 !important; }\n\n.border-secondary-alt {\n border-color: #1A3B66 !important; }\n\n.border-white {\n border-color: #fff !important; }\n\n.rounded-sm {\n border-radius: 0.2rem !important; }\n\n.rounded, .table.table-list td.table-list-icon img, app-avatar img {\n border-radius: 0.25rem !important; }\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important; }\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important; }\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important; }\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important; }\n\n.rounded-lg {\n border-radius: 0.3rem !important; }\n\n.rounded-circle {\n border-radius: 50% !important; }\n\n.rounded-pill {\n border-radius: 50rem !important; }\n\n.rounded-0 {\n border-radius: 0 !important; }\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\"; }\n\n.d-none {\n display: none !important; }\n\n.d-inline {\n display: inline !important; }\n\n.d-inline-block {\n display: inline-block !important; }\n\n.d-block {\n display: block !important; }\n\n.d-table {\n display: table !important; }\n\n.d-table-row {\n display: table-row !important; }\n\n.d-table-cell {\n display: table-cell !important; }\n\n.d-flex {\n display: flex !important; }\n\n.d-inline-flex {\n display: inline-flex !important; }\n\n@media (min-width: 1px) {\n .d-sm-none {\n display: none !important; }\n .d-sm-inline {\n display: inline !important; }\n .d-sm-inline-block {\n display: inline-block !important; }\n .d-sm-block {\n display: block !important; }\n .d-sm-table {\n display: table !important; }\n .d-sm-table-row {\n display: table-row !important; }\n .d-sm-table-cell {\n display: table-cell !important; }\n .d-sm-flex {\n display: flex !important; }\n .d-sm-inline-flex {\n display: inline-flex !important; } }\n\n@media (min-width: 2px) {\n .d-md-none {\n display: none !important; }\n .d-md-inline {\n display: inline !important; }\n .d-md-inline-block {\n display: inline-block !important; }\n .d-md-block {\n display: block !important; }\n .d-md-table {\n display: table !important; }\n .d-md-table-row {\n display: table-row !important; }\n .d-md-table-cell {\n display: table-cell !important; }\n .d-md-flex {\n display: flex !important; }\n .d-md-inline-flex {\n display: inline-flex !important; } }\n\n@media (min-width: 3px) {\n .d-lg-none {\n display: none !important; }\n .d-lg-inline {\n display: inline !important; }\n .d-lg-inline-block {\n display: inline-block !important; }\n .d-lg-block {\n display: block !important; }\n .d-lg-table {\n display: table !important; }\n .d-lg-table-row {\n display: table-row !important; }\n .d-lg-table-cell {\n display: table-cell !important; }\n .d-lg-flex {\n display: flex !important; }\n .d-lg-inline-flex {\n display: inline-flex !important; } }\n\n@media (min-width: 4px) {\n .d-xl-none {\n display: none !important; }\n .d-xl-inline {\n display: inline !important; }\n .d-xl-inline-block {\n display: inline-block !important; }\n .d-xl-block {\n display: block !important; }\n .d-xl-table {\n display: table !important; }\n .d-xl-table-row {\n display: table-row !important; }\n .d-xl-table-cell {\n display: table-cell !important; }\n .d-xl-flex {\n display: flex !important; }\n .d-xl-inline-flex {\n display: inline-flex !important; } }\n\n@media print {\n .d-print-none {\n display: none !important; }\n .d-print-inline {\n display: inline !important; }\n .d-print-inline-block {\n display: inline-block !important; }\n .d-print-block {\n display: block !important; }\n .d-print-table {\n display: table !important; }\n .d-print-table-row {\n display: table-row !important; }\n .d-print-table-cell {\n display: table-cell !important; }\n .d-print-flex {\n display: flex !important; }\n .d-print-inline-flex {\n display: inline-flex !important; } }\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden; }\n .embed-responsive::before {\n display: block;\n content: \"\"; }\n .embed-responsive .embed-responsive-item,\n .embed-responsive iframe,\n .embed-responsive embed,\n .embed-responsive object,\n .embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0; }\n\n.embed-responsive-21by9::before {\n padding-top: 42.85714%; }\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%; }\n\n.embed-responsive-4by3::before {\n padding-top: 75%; }\n\n.embed-responsive-1by1::before {\n padding-top: 100%; }\n\n.flex-row {\n flex-direction: row !important; }\n\n.flex-column {\n flex-direction: column !important; }\n\n.flex-row-reverse {\n flex-direction: row-reverse !important; }\n\n.flex-column-reverse {\n flex-direction: column-reverse !important; }\n\n.flex-wrap {\n flex-wrap: wrap !important; }\n\n.flex-nowrap {\n flex-wrap: nowrap !important; }\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n\n.flex-fill {\n flex: 1 1 auto !important; }\n\n.flex-grow-0 {\n flex-grow: 0 !important; }\n\n.flex-grow-1 {\n flex-grow: 1 !important; }\n\n.flex-shrink-0 {\n flex-shrink: 0 !important; }\n\n.flex-shrink-1 {\n flex-shrink: 1 !important; }\n\n.justify-content-start {\n justify-content: flex-start !important; }\n\n.justify-content-end {\n justify-content: flex-end !important; }\n\n.justify-content-center {\n justify-content: center !important; }\n\n.justify-content-between {\n justify-content: space-between !important; }\n\n.justify-content-around {\n justify-content: space-around !important; }\n\n.align-items-start {\n align-items: flex-start !important; }\n\n.align-items-end {\n align-items: flex-end !important; }\n\n.align-items-center {\n align-items: center !important; }\n\n.align-items-baseline {\n align-items: baseline !important; }\n\n.align-items-stretch {\n align-items: stretch !important; }\n\n.align-content-start {\n align-content: flex-start !important; }\n\n.align-content-end {\n align-content: flex-end !important; }\n\n.align-content-center {\n align-content: center !important; }\n\n.align-content-between {\n align-content: space-between !important; }\n\n.align-content-around {\n align-content: space-around !important; }\n\n.align-content-stretch {\n align-content: stretch !important; }\n\n.align-self-auto {\n align-self: auto !important; }\n\n.align-self-start {\n align-self: flex-start !important; }\n\n.align-self-end {\n align-self: flex-end !important; }\n\n.align-self-center {\n align-self: center !important; }\n\n.align-self-baseline {\n align-self: baseline !important; }\n\n.align-self-stretch {\n align-self: stretch !important; }\n\n@media (min-width: 1px) {\n .flex-sm-row {\n flex-direction: row !important; }\n .flex-sm-column {\n flex-direction: column !important; }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important; }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important; }\n .flex-sm-wrap {\n flex-wrap: wrap !important; }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important; }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n .flex-sm-fill {\n flex: 1 1 auto !important; }\n .flex-sm-grow-0 {\n flex-grow: 0 !important; }\n .flex-sm-grow-1 {\n flex-grow: 1 !important; }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important; }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important; }\n .justify-content-sm-start {\n justify-content: flex-start !important; }\n .justify-content-sm-end {\n justify-content: flex-end !important; }\n .justify-content-sm-center {\n justify-content: center !important; }\n .justify-content-sm-between {\n justify-content: space-between !important; }\n .justify-content-sm-around {\n justify-content: space-around !important; }\n .align-items-sm-start {\n align-items: flex-start !important; }\n .align-items-sm-end {\n align-items: flex-end !important; }\n .align-items-sm-center {\n align-items: center !important; }\n .align-items-sm-baseline {\n align-items: baseline !important; }\n .align-items-sm-stretch {\n align-items: stretch !important; }\n .align-content-sm-start {\n align-content: flex-start !important; }\n .align-content-sm-end {\n align-content: flex-end !important; }\n .align-content-sm-center {\n align-content: center !important; }\n .align-content-sm-between {\n align-content: space-between !important; }\n .align-content-sm-around {\n align-content: space-around !important; }\n .align-content-sm-stretch {\n align-content: stretch !important; }\n .align-self-sm-auto {\n align-self: auto !important; }\n .align-self-sm-start {\n align-self: flex-start !important; }\n .align-self-sm-end {\n align-self: flex-end !important; }\n .align-self-sm-center {\n align-self: center !important; }\n .align-self-sm-baseline {\n align-self: baseline !important; }\n .align-self-sm-stretch {\n align-self: stretch !important; } }\n\n@media (min-width: 2px) {\n .flex-md-row {\n flex-direction: row !important; }\n .flex-md-column {\n flex-direction: column !important; }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important; }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important; }\n .flex-md-wrap {\n flex-wrap: wrap !important; }\n .flex-md-nowrap {\n flex-wrap: nowrap !important; }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n .flex-md-fill {\n flex: 1 1 auto !important; }\n .flex-md-grow-0 {\n flex-grow: 0 !important; }\n .flex-md-grow-1 {\n flex-grow: 1 !important; }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important; }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important; }\n .justify-content-md-start {\n justify-content: flex-start !important; }\n .justify-content-md-end {\n justify-content: flex-end !important; }\n .justify-content-md-center {\n justify-content: center !important; }\n .justify-content-md-between {\n justify-content: space-between !important; }\n .justify-content-md-around {\n justify-content: space-around !important; }\n .align-items-md-start {\n align-items: flex-start !important; }\n .align-items-md-end {\n align-items: flex-end !important; }\n .align-items-md-center {\n align-items: center !important; }\n .align-items-md-baseline {\n align-items: baseline !important; }\n .align-items-md-stretch {\n align-items: stretch !important; }\n .align-content-md-start {\n align-content: flex-start !important; }\n .align-content-md-end {\n align-content: flex-end !important; }\n .align-content-md-center {\n align-content: center !important; }\n .align-content-md-between {\n align-content: space-between !important; }\n .align-content-md-around {\n align-content: space-around !important; }\n .align-content-md-stretch {\n align-content: stretch !important; }\n .align-self-md-auto {\n align-self: auto !important; }\n .align-self-md-start {\n align-self: flex-start !important; }\n .align-self-md-end {\n align-self: flex-end !important; }\n .align-self-md-center {\n align-self: center !important; }\n .align-self-md-baseline {\n align-self: baseline !important; }\n .align-self-md-stretch {\n align-self: stretch !important; } }\n\n@media (min-width: 3px) {\n .flex-lg-row {\n flex-direction: row !important; }\n .flex-lg-column {\n flex-direction: column !important; }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important; }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important; }\n .flex-lg-wrap {\n flex-wrap: wrap !important; }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important; }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n .flex-lg-fill {\n flex: 1 1 auto !important; }\n .flex-lg-grow-0 {\n flex-grow: 0 !important; }\n .flex-lg-grow-1 {\n flex-grow: 1 !important; }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important; }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important; }\n .justify-content-lg-start {\n justify-content: flex-start !important; }\n .justify-content-lg-end {\n justify-content: flex-end !important; }\n .justify-content-lg-center {\n justify-content: center !important; }\n .justify-content-lg-between {\n justify-content: space-between !important; }\n .justify-content-lg-around {\n justify-content: space-around !important; }\n .align-items-lg-start {\n align-items: flex-start !important; }\n .align-items-lg-end {\n align-items: flex-end !important; }\n .align-items-lg-center {\n align-items: center !important; }\n .align-items-lg-baseline {\n align-items: baseline !important; }\n .align-items-lg-stretch {\n align-items: stretch !important; }\n .align-content-lg-start {\n align-content: flex-start !important; }\n .align-content-lg-end {\n align-content: flex-end !important; }\n .align-content-lg-center {\n align-content: center !important; }\n .align-content-lg-between {\n align-content: space-between !important; }\n .align-content-lg-around {\n align-content: space-around !important; }\n .align-content-lg-stretch {\n align-content: stretch !important; }\n .align-self-lg-auto {\n align-self: auto !important; }\n .align-self-lg-start {\n align-self: flex-start !important; }\n .align-self-lg-end {\n align-self: flex-end !important; }\n .align-self-lg-center {\n align-self: center !important; }\n .align-self-lg-baseline {\n align-self: baseline !important; }\n .align-self-lg-stretch {\n align-self: stretch !important; } }\n\n@media (min-width: 4px) {\n .flex-xl-row {\n flex-direction: row !important; }\n .flex-xl-column {\n flex-direction: column !important; }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important; }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important; }\n .flex-xl-wrap {\n flex-wrap: wrap !important; }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important; }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n .flex-xl-fill {\n flex: 1 1 auto !important; }\n .flex-xl-grow-0 {\n flex-grow: 0 !important; }\n .flex-xl-grow-1 {\n flex-grow: 1 !important; }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important; }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important; }\n .justify-content-xl-start {\n justify-content: flex-start !important; }\n .justify-content-xl-end {\n justify-content: flex-end !important; }\n .justify-content-xl-center {\n justify-content: center !important; }\n .justify-content-xl-between {\n justify-content: space-between !important; }\n .justify-content-xl-around {\n justify-content: space-around !important; }\n .align-items-xl-start {\n align-items: flex-start !important; }\n .align-items-xl-end {\n align-items: flex-end !important; }\n .align-items-xl-center {\n align-items: center !important; }\n .align-items-xl-baseline {\n align-items: baseline !important; }\n .align-items-xl-stretch {\n align-items: stretch !important; }\n .align-content-xl-start {\n align-content: flex-start !important; }\n .align-content-xl-end {\n align-content: flex-end !important; }\n .align-content-xl-center {\n align-content: center !important; }\n .align-content-xl-between {\n align-content: space-between !important; }\n .align-content-xl-around {\n align-content: space-around !important; }\n .align-content-xl-stretch {\n align-content: stretch !important; }\n .align-self-xl-auto {\n align-self: auto !important; }\n .align-self-xl-start {\n align-self: flex-start !important; }\n .align-self-xl-end {\n align-self: flex-end !important; }\n .align-self-xl-center {\n align-self: center !important; }\n .align-self-xl-baseline {\n align-self: baseline !important; }\n .align-self-xl-stretch {\n align-self: stretch !important; } }\n\n.float-left {\n float: left !important; }\n\n.float-right {\n float: right !important; }\n\n.float-none {\n float: none !important; }\n\n@media (min-width: 1px) {\n .float-sm-left {\n float: left !important; }\n .float-sm-right {\n float: right !important; }\n .float-sm-none {\n float: none !important; } }\n\n@media (min-width: 2px) {\n .float-md-left {\n float: left !important; }\n .float-md-right {\n float: right !important; }\n .float-md-none {\n float: none !important; } }\n\n@media (min-width: 3px) {\n .float-lg-left {\n float: left !important; }\n .float-lg-right {\n float: right !important; }\n .float-lg-none {\n float: none !important; } }\n\n@media (min-width: 4px) {\n .float-xl-left {\n float: left !important; }\n .float-xl-right {\n float: right !important; }\n .float-xl-none {\n float: none !important; } }\n\n.overflow-auto {\n overflow: auto !important; }\n\n.overflow-hidden {\n overflow: hidden !important; }\n\n.position-static {\n position: static !important; }\n\n.position-relative {\n position: relative !important; }\n\n.position-absolute {\n position: absolute !important; }\n\n.position-fixed {\n position: fixed !important; }\n\n.position-sticky {\n position: sticky !important; }\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030; }\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030; }\n\n@supports (position: sticky) {\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020; } }\n\n.sr-only, .table.table-list tr:not(:hover) td.table-list-options > .dropdown:not(.show) button:not(:focus):not(:active), .table.table-list tr:not(:hover) td.table-list-options > button:not(:focus):not(:active) {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0; }\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal; }\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; }\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; }\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; }\n\n.shadow-none {\n box-shadow: none !important; }\n\n.w-25 {\n width: 25% !important; }\n\n.w-50 {\n width: 50% !important; }\n\n.w-75 {\n width: 75% !important; }\n\n.w-100 {\n width: 100% !important; }\n\n.w-auto {\n width: auto !important; }\n\n.h-25 {\n height: 25% !important; }\n\n.h-50 {\n height: 50% !important; }\n\n.h-75 {\n height: 75% !important; }\n\n.h-100 {\n height: 100% !important; }\n\n.h-auto {\n height: auto !important; }\n\n.mw-100 {\n max-width: 100% !important; }\n\n.mh-100 {\n max-height: 100% !important; }\n\n.min-vw-100 {\n min-width: 100vw !important; }\n\n.min-vh-100 {\n min-height: 100vh !important; }\n\n.vw-100 {\n width: 100vw !important; }\n\n.vh-100 {\n height: 100vh !important; }\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0); }\n\n.m-0 {\n margin: 0 !important; }\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important; }\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important; }\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important; }\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important; }\n\n.m-1 {\n margin: 0.25rem !important; }\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important; }\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important; }\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important; }\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important; }\n\n.m-2 {\n margin: 0.5rem !important; }\n\n.mt-2, .form-check-block .form-check-label > span,\n.my-2 {\n margin-top: 0.5rem !important; }\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important; }\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important; }\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important; }\n\n.m-3 {\n margin: 1rem !important; }\n\n.mt-3, .form-check-block + .form-check-block:not(.mt-2),\n.my-3 {\n margin-top: 1rem !important; }\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important; }\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important; }\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important; }\n\n.m-4 {\n margin: 1.5rem !important; }\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important; }\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important; }\n\n.mb-4, .card-body-header,\n.my-4 {\n margin-bottom: 1.5rem !important; }\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important; }\n\n.m-5 {\n margin: 3rem !important; }\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important; }\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important; }\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important; }\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important; }\n\n.p-0 {\n padding: 0 !important; }\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important; }\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important; }\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important; }\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important; }\n\n.p-1 {\n padding: 0.25rem !important; }\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important; }\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important; }\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important; }\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important; }\n\n.p-2 {\n padding: 0.5rem !important; }\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important; }\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important; }\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important; }\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important; }\n\n.p-3 {\n padding: 1rem !important; }\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important; }\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important; }\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important; }\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important; }\n\n.p-4 {\n padding: 1.5rem !important; }\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important; }\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important; }\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important; }\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important; }\n\n.p-5 {\n padding: 3rem !important; }\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important; }\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important; }\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important; }\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important; }\n\n.m-n1 {\n margin: -0.25rem !important; }\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important; }\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important; }\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important; }\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important; }\n\n.m-n2 {\n margin: -0.5rem !important; }\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important; }\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important; }\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important; }\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important; }\n\n.m-n3 {\n margin: -1rem !important; }\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important; }\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important; }\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important; }\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important; }\n\n.m-n4 {\n margin: -1.5rem !important; }\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important; }\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important; }\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important; }\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important; }\n\n.m-n5 {\n margin: -3rem !important; }\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important; }\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important; }\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important; }\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important; }\n\n.m-auto {\n margin: auto !important; }\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important; }\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important; }\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important; }\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important; }\n\n@media (min-width: 1px) {\n .m-sm-0 {\n margin: 0 !important; }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important; }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important; }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important; }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important; }\n .m-sm-1 {\n margin: 0.25rem !important; }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important; }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important; }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important; }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important; }\n .m-sm-2 {\n margin: 0.5rem !important; }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important; }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important; }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important; }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important; }\n .m-sm-3 {\n margin: 1rem !important; }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important; }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important; }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important; }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important; }\n .m-sm-4 {\n margin: 1.5rem !important; }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important; }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important; }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important; }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important; }\n .m-sm-5 {\n margin: 3rem !important; }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important; }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important; }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important; }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important; }\n .p-sm-0 {\n padding: 0 !important; }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important; }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important; }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important; }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important; }\n .p-sm-1 {\n padding: 0.25rem !important; }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important; }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important; }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important; }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important; }\n .p-sm-2 {\n padding: 0.5rem !important; }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important; }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important; }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important; }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important; }\n .p-sm-3 {\n padding: 1rem !important; }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important; }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important; }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important; }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important; }\n .p-sm-4 {\n padding: 1.5rem !important; }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important; }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important; }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important; }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important; }\n .p-sm-5 {\n padding: 3rem !important; }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important; }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important; }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important; }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important; }\n .m-sm-n1 {\n margin: -0.25rem !important; }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important; }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important; }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important; }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important; }\n .m-sm-n2 {\n margin: -0.5rem !important; }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important; }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important; }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important; }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important; }\n .m-sm-n3 {\n margin: -1rem !important; }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important; }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important; }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important; }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important; }\n .m-sm-n4 {\n margin: -1.5rem !important; }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important; }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important; }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important; }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important; }\n .m-sm-n5 {\n margin: -3rem !important; }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important; }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important; }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important; }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important; }\n .m-sm-auto {\n margin: auto !important; }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important; }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important; }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important; }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important; } }\n\n@media (min-width: 2px) {\n .m-md-0 {\n margin: 0 !important; }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important; }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important; }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important; }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important; }\n .m-md-1 {\n margin: 0.25rem !important; }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important; }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important; }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important; }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important; }\n .m-md-2 {\n margin: 0.5rem !important; }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important; }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important; }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important; }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important; }\n .m-md-3 {\n margin: 1rem !important; }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important; }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important; }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important; }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important; }\n .m-md-4 {\n margin: 1.5rem !important; }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important; }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important; }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important; }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important; }\n .m-md-5 {\n margin: 3rem !important; }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important; }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important; }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important; }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important; }\n .p-md-0 {\n padding: 0 !important; }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important; }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important; }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important; }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important; }\n .p-md-1 {\n padding: 0.25rem !important; }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important; }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important; }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important; }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important; }\n .p-md-2 {\n padding: 0.5rem !important; }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important; }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important; }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important; }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important; }\n .p-md-3 {\n padding: 1rem !important; }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important; }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important; }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important; }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important; }\n .p-md-4 {\n padding: 1.5rem !important; }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important; }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important; }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important; }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important; }\n .p-md-5 {\n padding: 3rem !important; }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important; }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important; }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important; }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important; }\n .m-md-n1 {\n margin: -0.25rem !important; }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important; }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important; }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important; }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important; }\n .m-md-n2 {\n margin: -0.5rem !important; }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important; }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important; }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important; }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important; }\n .m-md-n3 {\n margin: -1rem !important; }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important; }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important; }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important; }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important; }\n .m-md-n4 {\n margin: -1.5rem !important; }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important; }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important; }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important; }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important; }\n .m-md-n5 {\n margin: -3rem !important; }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important; }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important; }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important; }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important; }\n .m-md-auto {\n margin: auto !important; }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important; }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important; }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important; }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important; } }\n\n@media (min-width: 3px) {\n .m-lg-0 {\n margin: 0 !important; }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important; }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important; }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important; }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important; }\n .m-lg-1 {\n margin: 0.25rem !important; }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important; }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important; }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important; }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important; }\n .m-lg-2 {\n margin: 0.5rem !important; }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important; }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important; }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important; }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important; }\n .m-lg-3 {\n margin: 1rem !important; }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important; }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important; }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important; }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important; }\n .m-lg-4 {\n margin: 1.5rem !important; }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important; }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important; }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important; }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important; }\n .m-lg-5 {\n margin: 3rem !important; }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important; }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important; }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important; }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important; }\n .p-lg-0 {\n padding: 0 !important; }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important; }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important; }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important; }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important; }\n .p-lg-1 {\n padding: 0.25rem !important; }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important; }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important; }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important; }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important; }\n .p-lg-2 {\n padding: 0.5rem !important; }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important; }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important; }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important; }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important; }\n .p-lg-3 {\n padding: 1rem !important; }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important; }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important; }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important; }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important; }\n .p-lg-4 {\n padding: 1.5rem !important; }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important; }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important; }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important; }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important; }\n .p-lg-5 {\n padding: 3rem !important; }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important; }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important; }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important; }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important; }\n .m-lg-n1 {\n margin: -0.25rem !important; }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important; }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important; }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important; }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important; }\n .m-lg-n2 {\n margin: -0.5rem !important; }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important; }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important; }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important; }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important; }\n .m-lg-n3 {\n margin: -1rem !important; }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important; }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important; }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important; }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important; }\n .m-lg-n4 {\n margin: -1.5rem !important; }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important; }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important; }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important; }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important; }\n .m-lg-n5 {\n margin: -3rem !important; }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important; }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important; }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important; }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important; }\n .m-lg-auto {\n margin: auto !important; }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important; }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important; }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important; }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important; } }\n\n@media (min-width: 4px) {\n .m-xl-0 {\n margin: 0 !important; }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important; }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important; }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important; }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important; }\n .m-xl-1 {\n margin: 0.25rem !important; }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important; }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important; }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important; }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important; }\n .m-xl-2 {\n margin: 0.5rem !important; }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important; }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important; }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important; }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important; }\n .m-xl-3 {\n margin: 1rem !important; }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important; }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important; }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important; }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important; }\n .m-xl-4 {\n margin: 1.5rem !important; }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important; }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important; }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important; }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important; }\n .m-xl-5 {\n margin: 3rem !important; }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important; }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important; }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important; }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important; }\n .p-xl-0 {\n padding: 0 !important; }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important; }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important; }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important; }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important; }\n .p-xl-1 {\n padding: 0.25rem !important; }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important; }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important; }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important; }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important; }\n .p-xl-2 {\n padding: 0.5rem !important; }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important; }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important; }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important; }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important; }\n .p-xl-3 {\n padding: 1rem !important; }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important; }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important; }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important; }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important; }\n .p-xl-4 {\n padding: 1.5rem !important; }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important; }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important; }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important; }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important; }\n .p-xl-5 {\n padding: 3rem !important; }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important; }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important; }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important; }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important; }\n .m-xl-n1 {\n margin: -0.25rem !important; }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important; }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important; }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important; }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important; }\n .m-xl-n2 {\n margin: -0.5rem !important; }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important; }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important; }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important; }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important; }\n .m-xl-n3 {\n margin: -1rem !important; }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important; }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important; }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important; }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important; }\n .m-xl-n4 {\n margin: -1.5rem !important; }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important; }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important; }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important; }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important; }\n .m-xl-n5 {\n margin: -3rem !important; }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important; }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important; }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important; }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important; }\n .m-xl-auto {\n margin: auto !important; }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important; }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important; }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important; }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important; } }\n\n.text-monospace, .totp .totp-code {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important; }\n\n.text-justify {\n text-align: justify !important; }\n\n.text-wrap {\n white-space: normal !important; }\n\n.text-nowrap {\n white-space: nowrap !important; }\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap; }\n\n.text-left {\n text-align: left !important; }\n\n.text-right {\n text-align: right !important; }\n\n.text-center {\n text-align: center !important; }\n\n@media (min-width: 1px) {\n .text-sm-left {\n text-align: left !important; }\n .text-sm-right {\n text-align: right !important; }\n .text-sm-center {\n text-align: center !important; } }\n\n@media (min-width: 2px) {\n .text-md-left {\n text-align: left !important; }\n .text-md-right {\n text-align: right !important; }\n .text-md-center {\n text-align: center !important; } }\n\n@media (min-width: 3px) {\n .text-lg-left {\n text-align: left !important; }\n .text-lg-right {\n text-align: right !important; }\n .text-lg-center {\n text-align: center !important; } }\n\n@media (min-width: 4px) {\n .text-xl-left {\n text-align: left !important; }\n .text-xl-right {\n text-align: right !important; }\n .text-xl-center {\n text-align: center !important; } }\n\n.text-lowercase {\n text-transform: lowercase !important; }\n\n.text-uppercase {\n text-transform: uppercase !important; }\n\n.text-capitalize {\n text-transform: capitalize !important; }\n\n.font-weight-light {\n font-weight: 300 !important; }\n\n.font-weight-lighter {\n font-weight: lighter !important; }\n\n.font-weight-normal {\n font-weight: 400 !important; }\n\n.font-weight-bold {\n font-weight: 700 !important; }\n\n.font-weight-bolder {\n font-weight: bolder !important; }\n\n.font-italic {\n font-style: italic !important; }\n\n.text-white {\n color: #fff !important; }\n\n.text-primary {\n color: #175DDC !important; }\n\na.text-primary:hover, a.text-primary:focus {\n color: #104097 !important; }\n\n.text-secondary {\n color: #ced4da !important; }\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #a2aeb9 !important; }\n\n.text-success {\n color: #00a65a !important; }\n\na.text-success:hover, a.text-success:focus {\n color: #005a31 !important; }\n\n.text-info {\n color: #555555 !important; }\n\na.text-info:hover, a.text-info:focus {\n color: #2f2f2f !important; }\n\n.text-warning {\n color: #bf7e16 !important; }\n\na.text-warning:hover, a.text-warning:focus {\n color: #7a510e !important; }\n\n.text-danger {\n color: #dd4b39 !important; }\n\na.text-danger:hover, a.text-danger:focus {\n color: #ac2d1e !important; }\n\n.text-light {\n color: #f8f9fa !important; }\n\na.text-light:hover, a.text-light:focus {\n color: #cbd3da !important; }\n\n.text-dark {\n color: #343a40 !important; }\n\na.text-dark:hover, a.text-dark:focus {\n color: #121416 !important; }\n\n.text-primary-accent {\n color: #1252A3 !important; }\n\na.text-primary-accent:hover, a.text-primary-accent:focus {\n color: #0a2f5e !important; }\n\n.text-secondary-alt {\n color: #1A3B66 !important; }\n\na.text-secondary-alt:hover, a.text-secondary-alt:focus {\n color: #0a1829 !important; }\n\n.text-body {\n color: #333333 !important; }\n\n.text-muted, .card-header small, .modal-header small {\n color: #6c757d !important; }\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important; }\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important; }\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0; }\n\n.text-decoration-none {\n text-decoration: none !important; }\n\n.text-break {\n word-break: break-word !important;\n overflow-wrap: break-word !important; }\n\n.text-reset {\n color: inherit !important; }\n\n.visible {\n visibility: visible !important; }\n\n.invisible {\n visibility: hidden !important; }\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important; }\n a:not(.btn) {\n text-decoration: underline; }\n abbr[title]::after {\n content: \" (\" attr(title) \")\"; }\n pre {\n white-space: pre-wrap !important; }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid; }\n thead {\n display: table-header-group; }\n tr,\n img {\n page-break-inside: avoid; }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3; }\n h2,\n h3 {\n page-break-after: avoid; }\n @page {\n size: a3; }\n body {\n min-width: 3px !important; }\n .container {\n min-width: 3px !important; }\n .navbar {\n display: none; }\n .badge {\n border: 1px solid #000; }\n .table {\n border-collapse: collapse !important; }\n .table td,\n .table th {\n background-color: #fff !important; }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important; }\n .table-dark {\n color: inherit; }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #dee2e6; }\n .table .thead-dark th {\n color: inherit;\n border-color: #dee2e6; } }\n\n/*!\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n font-family: 'FontAwesome';\n src: url(../fonts/fontawesome-webfont.eot);\n src: url(../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0) format(\"embedded-opentype\"), url(../fonts/fontawesome-webfont.woff2) format(\"woff2\"), url(../fonts/fontawesome-webfont.woff) format(\"woff\"), url(../fonts/fontawesome-webfont.ttf) format(\"truetype\"), url(../fonts/fontawesome-webfont.svg#fontawesomeregular) format(\"svg\");\n font-weight: normal;\n font-style: normal; }\n\n.fa {\n display: inline-block;\n font: normal normal normal 14px/1 FontAwesome;\n font-size: inherit;\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale; }\n\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n font-size: 1.33333em;\n line-height: 0.75em;\n vertical-align: -15%; }\n\n.fa-2x {\n font-size: 2em; }\n\n.fa-3x {\n font-size: 3em; }\n\n.fa-4x {\n font-size: 4em; }\n\n.fa-5x {\n font-size: 5em; }\n\n.fa-fw {\n width: 1.28571em;\n text-align: center; }\n\n.fa-ul {\n padding-left: 0;\n margin-left: 2.14286em;\n list-style-type: none; }\n .fa-ul > li {\n position: relative; }\n\n.fa-li {\n position: absolute;\n left: -2.14286em;\n width: 2.14286em;\n top: 0.14286em;\n text-align: center; }\n .fa-li.fa-lg {\n left: -1.85714em; }\n\n.fa-border {\n padding: .2em .25em .15em;\n border: solid 0.08em #eee;\n border-radius: .1em; }\n\n.fa-pull-left {\n float: left; }\n\n.fa-pull-right {\n float: right; }\n\n.fa.fa-pull-left {\n margin-right: .3em; }\n\n.fa.fa-pull-right {\n margin-left: .3em; }\n\n/* Deprecated as of 4.4.0 */\n.pull-right {\n float: right; }\n\n.pull-left {\n float: left; }\n\n.fa.pull-left {\n margin-right: .3em; }\n\n.fa.pull-right {\n margin-left: .3em; }\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear; }\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8); }\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg); } }\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg); } }\n\n.fa-rotate-90 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n -webkit-transform: rotate(90deg);\n -ms-transform: rotate(90deg);\n transform: rotate(90deg); }\n\n.fa-rotate-180 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n -webkit-transform: rotate(180deg);\n -ms-transform: rotate(180deg);\n transform: rotate(180deg); }\n\n.fa-rotate-270 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n -webkit-transform: rotate(270deg);\n -ms-transform: rotate(270deg);\n transform: rotate(270deg); }\n\n.fa-flip-horizontal {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n -webkit-transform: scale(-1, 1);\n -ms-transform: scale(-1, 1);\n transform: scale(-1, 1); }\n\n.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(1, -1);\n -ms-transform: scale(1, -1);\n transform: scale(1, -1); }\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n filter: none; }\n\n.fa-stack {\n position: relative;\n display: inline-block;\n width: 2em;\n height: 2em;\n line-height: 2em;\n vertical-align: middle; }\n\n.fa-stack-1x, .fa-stack-2x {\n position: absolute;\n left: 0;\n width: 100%;\n text-align: center; }\n\n.fa-stack-1x {\n line-height: inherit; }\n\n.fa-stack-2x {\n font-size: 2em; }\n\n.fa-inverse {\n color: #fff; }\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n readers do not read off random characters that represent icons */\n.fa-glass:before {\n content: \"\\F000\"; }\n\n.fa-music:before {\n content: \"\\F001\"; }\n\n.fa-search:before {\n content: \"\\F002\"; }\n\n.fa-envelope-o:before {\n content: \"\\F003\"; }\n\n.fa-heart:before {\n content: \"\\F004\"; }\n\n.fa-star:before {\n content: \"\\F005\"; }\n\n.fa-star-o:before {\n content: \"\\F006\"; }\n\n.fa-user:before {\n content: \"\\F007\"; }\n\n.fa-film:before {\n content: \"\\F008\"; }\n\n.fa-th-large:before {\n content: \"\\F009\"; }\n\n.fa-th:before {\n content: \"\\F00A\"; }\n\n.fa-th-list:before {\n content: \"\\F00B\"; }\n\n.fa-check:before {\n content: \"\\F00C\"; }\n\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n content: \"\\F00D\"; }\n\n.fa-search-plus:before {\n content: \"\\F00E\"; }\n\n.fa-search-minus:before {\n content: \"\\F010\"; }\n\n.fa-power-off:before {\n content: \"\\F011\"; }\n\n.fa-signal:before {\n content: \"\\F012\"; }\n\n.fa-gear:before,\n.fa-cog:before {\n content: \"\\F013\"; }\n\n.fa-trash-o:before {\n content: \"\\F014\"; }\n\n.fa-home:before {\n content: \"\\F015\"; }\n\n.fa-file-o:before {\n content: \"\\F016\"; }\n\n.fa-clock-o:before {\n content: \"\\F017\"; }\n\n.fa-road:before {\n content: \"\\F018\"; }\n\n.fa-download:before {\n content: \"\\F019\"; }\n\n.fa-arrow-circle-o-down:before {\n content: \"\\F01A\"; }\n\n.fa-arrow-circle-o-up:before {\n content: \"\\F01B\"; }\n\n.fa-inbox:before {\n content: \"\\F01C\"; }\n\n.fa-play-circle-o:before {\n content: \"\\F01D\"; }\n\n.fa-rotate-right:before,\n.fa-repeat:before {\n content: \"\\F01E\"; }\n\n.fa-refresh:before {\n content: \"\\F021\"; }\n\n.fa-list-alt:before {\n content: \"\\F022\"; }\n\n.fa-lock:before {\n content: \"\\F023\"; }\n\n.fa-flag:before {\n content: \"\\F024\"; }\n\n.fa-headphones:before {\n content: \"\\F025\"; }\n\n.fa-volume-off:before {\n content: \"\\F026\"; }\n\n.fa-volume-down:before {\n content: \"\\F027\"; }\n\n.fa-volume-up:before {\n content: \"\\F028\"; }\n\n.fa-qrcode:before {\n content: \"\\F029\"; }\n\n.fa-barcode:before {\n content: \"\\F02A\"; }\n\n.fa-tag:before {\n content: \"\\F02B\"; }\n\n.fa-tags:before {\n content: \"\\F02C\"; }\n\n.fa-book:before {\n content: \"\\F02D\"; }\n\n.fa-bookmark:before {\n content: \"\\F02E\"; }\n\n.fa-print:before {\n content: \"\\F02F\"; }\n\n.fa-camera:before {\n content: \"\\F030\"; }\n\n.fa-font:before {\n content: \"\\F031\"; }\n\n.fa-bold:before {\n content: \"\\F032\"; }\n\n.fa-italic:before {\n content: \"\\F033\"; }\n\n.fa-text-height:before {\n content: \"\\F034\"; }\n\n.fa-text-width:before {\n content: \"\\F035\"; }\n\n.fa-align-left:before {\n content: \"\\F036\"; }\n\n.fa-align-center:before {\n content: \"\\F037\"; }\n\n.fa-align-right:before {\n content: \"\\F038\"; }\n\n.fa-align-justify:before {\n content: \"\\F039\"; }\n\n.fa-list:before {\n content: \"\\F03A\"; }\n\n.fa-dedent:before,\n.fa-outdent:before {\n content: \"\\F03B\"; }\n\n.fa-indent:before {\n content: \"\\F03C\"; }\n\n.fa-video-camera:before {\n content: \"\\F03D\"; }\n\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n content: \"\\F03E\"; }\n\n.fa-pencil:before {\n content: \"\\F040\"; }\n\n.fa-map-marker:before {\n content: \"\\F041\"; }\n\n.fa-adjust:before {\n content: \"\\F042\"; }\n\n.fa-tint:before {\n content: \"\\F043\"; }\n\n.fa-edit:before,\n.fa-pencil-square-o:before {\n content: \"\\F044\"; }\n\n.fa-share-square-o:before {\n content: \"\\F045\"; }\n\n.fa-check-square-o:before {\n content: \"\\F046\"; }\n\n.fa-arrows:before {\n content: \"\\F047\"; }\n\n.fa-step-backward:before {\n content: \"\\F048\"; }\n\n.fa-fast-backward:before {\n content: \"\\F049\"; }\n\n.fa-backward:before {\n content: \"\\F04A\"; }\n\n.fa-play:before {\n content: \"\\F04B\"; }\n\n.fa-pause:before {\n content: \"\\F04C\"; }\n\n.fa-stop:before {\n content: \"\\F04D\"; }\n\n.fa-forward:before {\n content: \"\\F04E\"; }\n\n.fa-fast-forward:before {\n content: \"\\F050\"; }\n\n.fa-step-forward:before {\n content: \"\\F051\"; }\n\n.fa-eject:before {\n content: \"\\F052\"; }\n\n.fa-chevron-left:before {\n content: \"\\F053\"; }\n\n.fa-chevron-right:before {\n content: \"\\F054\"; }\n\n.fa-plus-circle:before {\n content: \"\\F055\"; }\n\n.fa-minus-circle:before {\n content: \"\\F056\"; }\n\n.fa-times-circle:before {\n content: \"\\F057\"; }\n\n.fa-check-circle:before {\n content: \"\\F058\"; }\n\n.fa-question-circle:before {\n content: \"\\F059\"; }\n\n.fa-info-circle:before {\n content: \"\\F05A\"; }\n\n.fa-crosshairs:before {\n content: \"\\F05B\"; }\n\n.fa-times-circle-o:before {\n content: \"\\F05C\"; }\n\n.fa-check-circle-o:before {\n content: \"\\F05D\"; }\n\n.fa-ban:before {\n content: \"\\F05E\"; }\n\n.fa-arrow-left:before {\n content: \"\\F060\"; }\n\n.fa-arrow-right:before {\n content: \"\\F061\"; }\n\n.fa-arrow-up:before {\n content: \"\\F062\"; }\n\n.fa-arrow-down:before {\n content: \"\\F063\"; }\n\n.fa-mail-forward:before,\n.fa-share:before {\n content: \"\\F064\"; }\n\n.fa-expand:before {\n content: \"\\F065\"; }\n\n.fa-compress:before {\n content: \"\\F066\"; }\n\n.fa-plus:before {\n content: \"\\F067\"; }\n\n.fa-minus:before {\n content: \"\\F068\"; }\n\n.fa-asterisk:before {\n content: \"\\F069\"; }\n\n.fa-exclamation-circle:before {\n content: \"\\F06A\"; }\n\n.fa-gift:before {\n content: \"\\F06B\"; }\n\n.fa-leaf:before {\n content: \"\\F06C\"; }\n\n.fa-fire:before {\n content: \"\\F06D\"; }\n\n.fa-eye:before {\n content: \"\\F06E\"; }\n\n.fa-eye-slash:before {\n content: \"\\F070\"; }\n\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n content: \"\\F071\"; }\n\n.fa-plane:before {\n content: \"\\F072\"; }\n\n.fa-calendar:before {\n content: \"\\F073\"; }\n\n.fa-random:before {\n content: \"\\F074\"; }\n\n.fa-comment:before {\n content: \"\\F075\"; }\n\n.fa-magnet:before {\n content: \"\\F076\"; }\n\n.fa-chevron-up:before {\n content: \"\\F077\"; }\n\n.fa-chevron-down:before {\n content: \"\\F078\"; }\n\n.fa-retweet:before {\n content: \"\\F079\"; }\n\n.fa-shopping-cart:before {\n content: \"\\F07A\"; }\n\n.fa-folder:before {\n content: \"\\F07B\"; }\n\n.fa-folder-open:before {\n content: \"\\F07C\"; }\n\n.fa-arrows-v:before {\n content: \"\\F07D\"; }\n\n.fa-arrows-h:before {\n content: \"\\F07E\"; }\n\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n content: \"\\F080\"; }\n\n.fa-twitter-square:before {\n content: \"\\F081\"; }\n\n.fa-facebook-square:before {\n content: \"\\F082\"; }\n\n.fa-camera-retro:before {\n content: \"\\F083\"; }\n\n.fa-key:before {\n content: \"\\F084\"; }\n\n.fa-gears:before,\n.fa-cogs:before {\n content: \"\\F085\"; }\n\n.fa-comments:before {\n content: \"\\F086\"; }\n\n.fa-thumbs-o-up:before {\n content: \"\\F087\"; }\n\n.fa-thumbs-o-down:before {\n content: \"\\F088\"; }\n\n.fa-star-half:before {\n content: \"\\F089\"; }\n\n.fa-heart-o:before {\n content: \"\\F08A\"; }\n\n.fa-sign-out:before {\n content: \"\\F08B\"; }\n\n.fa-linkedin-square:before {\n content: \"\\F08C\"; }\n\n.fa-thumb-tack:before {\n content: \"\\F08D\"; }\n\n.fa-external-link:before {\n content: \"\\F08E\"; }\n\n.fa-sign-in:before {\n content: \"\\F090\"; }\n\n.fa-trophy:before {\n content: \"\\F091\"; }\n\n.fa-github-square:before {\n content: \"\\F092\"; }\n\n.fa-upload:before {\n content: \"\\F093\"; }\n\n.fa-lemon-o:before {\n content: \"\\F094\"; }\n\n.fa-phone:before {\n content: \"\\F095\"; }\n\n.fa-square-o:before {\n content: \"\\F096\"; }\n\n.fa-bookmark-o:before {\n content: \"\\F097\"; }\n\n.fa-phone-square:before {\n content: \"\\F098\"; }\n\n.fa-twitter:before {\n content: \"\\F099\"; }\n\n.fa-facebook-f:before,\n.fa-facebook:before {\n content: \"\\F09A\"; }\n\n.fa-github:before {\n content: \"\\F09B\"; }\n\n.fa-unlock:before {\n content: \"\\F09C\"; }\n\n.fa-credit-card:before {\n content: \"\\F09D\"; }\n\n.fa-feed:before,\n.fa-rss:before {\n content: \"\\F09E\"; }\n\n.fa-hdd-o:before {\n content: \"\\F0A0\"; }\n\n.fa-bullhorn:before {\n content: \"\\F0A1\"; }\n\n.fa-bell:before {\n content: \"\\F0F3\"; }\n\n.fa-certificate:before {\n content: \"\\F0A3\"; }\n\n.fa-hand-o-right:before {\n content: \"\\F0A4\"; }\n\n.fa-hand-o-left:before {\n content: \"\\F0A5\"; }\n\n.fa-hand-o-up:before {\n content: \"\\F0A6\"; }\n\n.fa-hand-o-down:before {\n content: \"\\F0A7\"; }\n\n.fa-arrow-circle-left:before {\n content: \"\\F0A8\"; }\n\n.fa-arrow-circle-right:before {\n content: \"\\F0A9\"; }\n\n.fa-arrow-circle-up:before {\n content: \"\\F0AA\"; }\n\n.fa-arrow-circle-down:before {\n content: \"\\F0AB\"; }\n\n.fa-globe:before {\n content: \"\\F0AC\"; }\n\n.fa-wrench:before {\n content: \"\\F0AD\"; }\n\n.fa-tasks:before {\n content: \"\\F0AE\"; }\n\n.fa-filter:before {\n content: \"\\F0B0\"; }\n\n.fa-briefcase:before {\n content: \"\\F0B1\"; }\n\n.fa-arrows-alt:before {\n content: \"\\F0B2\"; }\n\n.fa-group:before,\n.fa-users:before {\n content: \"\\F0C0\"; }\n\n.fa-chain:before,\n.fa-link:before {\n content: \"\\F0C1\"; }\n\n.fa-cloud:before {\n content: \"\\F0C2\"; }\n\n.fa-flask:before {\n content: \"\\F0C3\"; }\n\n.fa-cut:before,\n.fa-scissors:before {\n content: \"\\F0C4\"; }\n\n.fa-copy:before,\n.fa-files-o:before {\n content: \"\\F0C5\"; }\n\n.fa-paperclip:before {\n content: \"\\F0C6\"; }\n\n.fa-save:before,\n.fa-floppy-o:before {\n content: \"\\F0C7\"; }\n\n.fa-square:before {\n content: \"\\F0C8\"; }\n\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n content: \"\\F0C9\"; }\n\n.fa-list-ul:before {\n content: \"\\F0CA\"; }\n\n.fa-list-ol:before {\n content: \"\\F0CB\"; }\n\n.fa-strikethrough:before {\n content: \"\\F0CC\"; }\n\n.fa-underline:before {\n content: \"\\F0CD\"; }\n\n.fa-table:before {\n content: \"\\F0CE\"; }\n\n.fa-magic:before {\n content: \"\\F0D0\"; }\n\n.fa-truck:before {\n content: \"\\F0D1\"; }\n\n.fa-pinterest:before {\n content: \"\\F0D2\"; }\n\n.fa-pinterest-square:before {\n content: \"\\F0D3\"; }\n\n.fa-google-plus-square:before {\n content: \"\\F0D4\"; }\n\n.fa-google-plus:before {\n content: \"\\F0D5\"; }\n\n.fa-money:before {\n content: \"\\F0D6\"; }\n\n.fa-caret-down:before {\n content: \"\\F0D7\"; }\n\n.fa-caret-up:before {\n content: \"\\F0D8\"; }\n\n.fa-caret-left:before {\n content: \"\\F0D9\"; }\n\n.fa-caret-right:before {\n content: \"\\F0DA\"; }\n\n.fa-columns:before {\n content: \"\\F0DB\"; }\n\n.fa-unsorted:before,\n.fa-sort:before {\n content: \"\\F0DC\"; }\n\n.fa-sort-down:before,\n.fa-sort-desc:before {\n content: \"\\F0DD\"; }\n\n.fa-sort-up:before,\n.fa-sort-asc:before {\n content: \"\\F0DE\"; }\n\n.fa-envelope:before {\n content: \"\\F0E0\"; }\n\n.fa-linkedin:before {\n content: \"\\F0E1\"; }\n\n.fa-rotate-left:before,\n.fa-undo:before {\n content: \"\\F0E2\"; }\n\n.fa-legal:before,\n.fa-gavel:before {\n content: \"\\F0E3\"; }\n\n.fa-dashboard:before,\n.fa-tachometer:before {\n content: \"\\F0E4\"; }\n\n.fa-comment-o:before {\n content: \"\\F0E5\"; }\n\n.fa-comments-o:before {\n content: \"\\F0E6\"; }\n\n.fa-flash:before,\n.fa-bolt:before {\n content: \"\\F0E7\"; }\n\n.fa-sitemap:before {\n content: \"\\F0E8\"; }\n\n.fa-umbrella:before {\n content: \"\\F0E9\"; }\n\n.fa-paste:before,\n.fa-clipboard:before {\n content: \"\\F0EA\"; }\n\n.fa-lightbulb-o:before {\n content: \"\\F0EB\"; }\n\n.fa-exchange:before {\n content: \"\\F0EC\"; }\n\n.fa-cloud-download:before {\n content: \"\\F0ED\"; }\n\n.fa-cloud-upload:before {\n content: \"\\F0EE\"; }\n\n.fa-user-md:before {\n content: \"\\F0F0\"; }\n\n.fa-stethoscope:before {\n content: \"\\F0F1\"; }\n\n.fa-suitcase:before {\n content: \"\\F0F2\"; }\n\n.fa-bell-o:before {\n content: \"\\F0A2\"; }\n\n.fa-coffee:before {\n content: \"\\F0F4\"; }\n\n.fa-cutlery:before {\n content: \"\\F0F5\"; }\n\n.fa-file-text-o:before {\n content: \"\\F0F6\"; }\n\n.fa-building-o:before {\n content: \"\\F0F7\"; }\n\n.fa-hospital-o:before {\n content: \"\\F0F8\"; }\n\n.fa-ambulance:before {\n content: \"\\F0F9\"; }\n\n.fa-medkit:before {\n content: \"\\F0FA\"; }\n\n.fa-fighter-jet:before {\n content: \"\\F0FB\"; }\n\n.fa-beer:before {\n content: \"\\F0FC\"; }\n\n.fa-h-square:before {\n content: \"\\F0FD\"; }\n\n.fa-plus-square:before {\n content: \"\\F0FE\"; }\n\n.fa-angle-double-left:before {\n content: \"\\F100\"; }\n\n.fa-angle-double-right:before {\n content: \"\\F101\"; }\n\n.fa-angle-double-up:before {\n content: \"\\F102\"; }\n\n.fa-angle-double-down:before {\n content: \"\\F103\"; }\n\n.fa-angle-left:before {\n content: \"\\F104\"; }\n\n.fa-angle-right:before {\n content: \"\\F105\"; }\n\n.fa-angle-up:before {\n content: \"\\F106\"; }\n\n.fa-angle-down:before {\n content: \"\\F107\"; }\n\n.fa-desktop:before {\n content: \"\\F108\"; }\n\n.fa-laptop:before {\n content: \"\\F109\"; }\n\n.fa-tablet:before {\n content: \"\\F10A\"; }\n\n.fa-mobile-phone:before,\n.fa-mobile:before {\n content: \"\\F10B\"; }\n\n.fa-circle-o:before {\n content: \"\\F10C\"; }\n\n.fa-quote-left:before {\n content: \"\\F10D\"; }\n\n.fa-quote-right:before {\n content: \"\\F10E\"; }\n\n.fa-spinner:before {\n content: \"\\F110\"; }\n\n.fa-circle:before {\n content: \"\\F111\"; }\n\n.fa-mail-reply:before,\n.fa-reply:before {\n content: \"\\F112\"; }\n\n.fa-github-alt:before {\n content: \"\\F113\"; }\n\n.fa-folder-o:before {\n content: \"\\F114\"; }\n\n.fa-folder-open-o:before {\n content: \"\\F115\"; }\n\n.fa-smile-o:before {\n content: \"\\F118\"; }\n\n.fa-frown-o:before {\n content: \"\\F119\"; }\n\n.fa-meh-o:before {\n content: \"\\F11A\"; }\n\n.fa-gamepad:before {\n content: \"\\F11B\"; }\n\n.fa-keyboard-o:before {\n content: \"\\F11C\"; }\n\n.fa-flag-o:before {\n content: \"\\F11D\"; }\n\n.fa-flag-checkered:before {\n content: \"\\F11E\"; }\n\n.fa-terminal:before {\n content: \"\\F120\"; }\n\n.fa-code:before {\n content: \"\\F121\"; }\n\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n content: \"\\F122\"; }\n\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n content: \"\\F123\"; }\n\n.fa-location-arrow:before {\n content: \"\\F124\"; }\n\n.fa-crop:before {\n content: \"\\F125\"; }\n\n.fa-code-fork:before {\n content: \"\\F126\"; }\n\n.fa-unlink:before,\n.fa-chain-broken:before {\n content: \"\\F127\"; }\n\n.fa-question:before {\n content: \"\\F128\"; }\n\n.fa-info:before {\n content: \"\\F129\"; }\n\n.fa-exclamation:before {\n content: \"\\F12A\"; }\n\n.fa-superscript:before {\n content: \"\\F12B\"; }\n\n.fa-subscript:before {\n content: \"\\F12C\"; }\n\n.fa-eraser:before {\n content: \"\\F12D\"; }\n\n.fa-puzzle-piece:before {\n content: \"\\F12E\"; }\n\n.fa-microphone:before {\n content: \"\\F130\"; }\n\n.fa-microphone-slash:before {\n content: \"\\F131\"; }\n\n.fa-shield:before {\n content: \"\\F132\"; }\n\n.fa-calendar-o:before {\n content: \"\\F133\"; }\n\n.fa-fire-extinguisher:before {\n content: \"\\F134\"; }\n\n.fa-rocket:before {\n content: \"\\F135\"; }\n\n.fa-maxcdn:before {\n content: \"\\F136\"; }\n\n.fa-chevron-circle-left:before {\n content: \"\\F137\"; }\n\n.fa-chevron-circle-right:before {\n content: \"\\F138\"; }\n\n.fa-chevron-circle-up:before {\n content: \"\\F139\"; }\n\n.fa-chevron-circle-down:before {\n content: \"\\F13A\"; }\n\n.fa-html5:before {\n content: \"\\F13B\"; }\n\n.fa-css3:before {\n content: \"\\F13C\"; }\n\n.fa-anchor:before {\n content: \"\\F13D\"; }\n\n.fa-unlock-alt:before {\n content: \"\\F13E\"; }\n\n.fa-bullseye:before {\n content: \"\\F140\"; }\n\n.fa-ellipsis-h:before {\n content: \"\\F141\"; }\n\n.fa-ellipsis-v:before {\n content: \"\\F142\"; }\n\n.fa-rss-square:before {\n content: \"\\F143\"; }\n\n.fa-play-circle:before {\n content: \"\\F144\"; }\n\n.fa-ticket:before {\n content: \"\\F145\"; }\n\n.fa-minus-square:before {\n content: \"\\F146\"; }\n\n.fa-minus-square-o:before {\n content: \"\\F147\"; }\n\n.fa-level-up:before {\n content: \"\\F148\"; }\n\n.fa-level-down:before {\n content: \"\\F149\"; }\n\n.fa-check-square:before {\n content: \"\\F14A\"; }\n\n.fa-pencil-square:before {\n content: \"\\F14B\"; }\n\n.fa-external-link-square:before {\n content: \"\\F14C\"; }\n\n.fa-share-square:before {\n content: \"\\F14D\"; }\n\n.fa-compass:before {\n content: \"\\F14E\"; }\n\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n content: \"\\F150\"; }\n\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n content: \"\\F151\"; }\n\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n content: \"\\F152\"; }\n\n.fa-euro:before,\n.fa-eur:before {\n content: \"\\F153\"; }\n\n.fa-gbp:before {\n content: \"\\F154\"; }\n\n.fa-dollar:before,\n.fa-usd:before {\n content: \"\\F155\"; }\n\n.fa-rupee:before,\n.fa-inr:before {\n content: \"\\F156\"; }\n\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n content: \"\\F157\"; }\n\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n content: \"\\F158\"; }\n\n.fa-won:before,\n.fa-krw:before {\n content: \"\\F159\"; }\n\n.fa-bitcoin:before,\n.fa-btc:before {\n content: \"\\F15A\"; }\n\n.fa-file:before {\n content: \"\\F15B\"; }\n\n.fa-file-text:before {\n content: \"\\F15C\"; }\n\n.fa-sort-alpha-asc:before {\n content: \"\\F15D\"; }\n\n.fa-sort-alpha-desc:before {\n content: \"\\F15E\"; }\n\n.fa-sort-amount-asc:before {\n content: \"\\F160\"; }\n\n.fa-sort-amount-desc:before {\n content: \"\\F161\"; }\n\n.fa-sort-numeric-asc:before {\n content: \"\\F162\"; }\n\n.fa-sort-numeric-desc:before {\n content: \"\\F163\"; }\n\n.fa-thumbs-up:before {\n content: \"\\F164\"; }\n\n.fa-thumbs-down:before {\n content: \"\\F165\"; }\n\n.fa-youtube-square:before {\n content: \"\\F166\"; }\n\n.fa-youtube:before {\n content: \"\\F167\"; }\n\n.fa-xing:before {\n content: \"\\F168\"; }\n\n.fa-xing-square:before {\n content: \"\\F169\"; }\n\n.fa-youtube-play:before {\n content: \"\\F16A\"; }\n\n.fa-dropbox:before {\n content: \"\\F16B\"; }\n\n.fa-stack-overflow:before {\n content: \"\\F16C\"; }\n\n.fa-instagram:before {\n content: \"\\F16D\"; }\n\n.fa-flickr:before {\n content: \"\\F16E\"; }\n\n.fa-adn:before {\n content: \"\\F170\"; }\n\n.fa-bitbucket:before {\n content: \"\\F171\"; }\n\n.fa-bitbucket-square:before {\n content: \"\\F172\"; }\n\n.fa-tumblr:before {\n content: \"\\F173\"; }\n\n.fa-tumblr-square:before {\n content: \"\\F174\"; }\n\n.fa-long-arrow-down:before {\n content: \"\\F175\"; }\n\n.fa-long-arrow-up:before {\n content: \"\\F176\"; }\n\n.fa-long-arrow-left:before {\n content: \"\\F177\"; }\n\n.fa-long-arrow-right:before {\n content: \"\\F178\"; }\n\n.fa-apple:before {\n content: \"\\F179\"; }\n\n.fa-windows:before {\n content: \"\\F17A\"; }\n\n.fa-android:before {\n content: \"\\F17B\"; }\n\n.fa-linux:before {\n content: \"\\F17C\"; }\n\n.fa-dribbble:before {\n content: \"\\F17D\"; }\n\n.fa-skype:before {\n content: \"\\F17E\"; }\n\n.fa-foursquare:before {\n content: \"\\F180\"; }\n\n.fa-trello:before {\n content: \"\\F181\"; }\n\n.fa-female:before {\n content: \"\\F182\"; }\n\n.fa-male:before {\n content: \"\\F183\"; }\n\n.fa-gittip:before,\n.fa-gratipay:before {\n content: \"\\F184\"; }\n\n.fa-sun-o:before {\n content: \"\\F185\"; }\n\n.fa-moon-o:before {\n content: \"\\F186\"; }\n\n.fa-archive:before {\n content: \"\\F187\"; }\n\n.fa-bug:before {\n content: \"\\F188\"; }\n\n.fa-vk:before {\n content: \"\\F189\"; }\n\n.fa-weibo:before {\n content: \"\\F18A\"; }\n\n.fa-renren:before {\n content: \"\\F18B\"; }\n\n.fa-pagelines:before {\n content: \"\\F18C\"; }\n\n.fa-stack-exchange:before {\n content: \"\\F18D\"; }\n\n.fa-arrow-circle-o-right:before {\n content: \"\\F18E\"; }\n\n.fa-arrow-circle-o-left:before {\n content: \"\\F190\"; }\n\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n content: \"\\F191\"; }\n\n.fa-dot-circle-o:before {\n content: \"\\F192\"; }\n\n.fa-wheelchair:before {\n content: \"\\F193\"; }\n\n.fa-vimeo-square:before {\n content: \"\\F194\"; }\n\n.fa-turkish-lira:before,\n.fa-try:before {\n content: \"\\F195\"; }\n\n.fa-plus-square-o:before {\n content: \"\\F196\"; }\n\n.fa-space-shuttle:before {\n content: \"\\F197\"; }\n\n.fa-slack:before {\n content: \"\\F198\"; }\n\n.fa-envelope-square:before {\n content: \"\\F199\"; }\n\n.fa-wordpress:before {\n content: \"\\F19A\"; }\n\n.fa-openid:before {\n content: \"\\F19B\"; }\n\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n content: \"\\F19C\"; }\n\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n content: \"\\F19D\"; }\n\n.fa-yahoo:before {\n content: \"\\F19E\"; }\n\n.fa-google:before {\n content: \"\\F1A0\"; }\n\n.fa-reddit:before {\n content: \"\\F1A1\"; }\n\n.fa-reddit-square:before {\n content: \"\\F1A2\"; }\n\n.fa-stumbleupon-circle:before {\n content: \"\\F1A3\"; }\n\n.fa-stumbleupon:before {\n content: \"\\F1A4\"; }\n\n.fa-delicious:before {\n content: \"\\F1A5\"; }\n\n.fa-digg:before {\n content: \"\\F1A6\"; }\n\n.fa-pied-piper-pp:before {\n content: \"\\F1A7\"; }\n\n.fa-pied-piper-alt:before {\n content: \"\\F1A8\"; }\n\n.fa-drupal:before {\n content: \"\\F1A9\"; }\n\n.fa-joomla:before {\n content: \"\\F1AA\"; }\n\n.fa-language:before {\n content: \"\\F1AB\"; }\n\n.fa-fax:before {\n content: \"\\F1AC\"; }\n\n.fa-building:before {\n content: \"\\F1AD\"; }\n\n.fa-child:before {\n content: \"\\F1AE\"; }\n\n.fa-paw:before {\n content: \"\\F1B0\"; }\n\n.fa-spoon:before {\n content: \"\\F1B1\"; }\n\n.fa-cube:before {\n content: \"\\F1B2\"; }\n\n.fa-cubes:before {\n content: \"\\F1B3\"; }\n\n.fa-behance:before {\n content: \"\\F1B4\"; }\n\n.fa-behance-square:before {\n content: \"\\F1B5\"; }\n\n.fa-steam:before {\n content: \"\\F1B6\"; }\n\n.fa-steam-square:before {\n content: \"\\F1B7\"; }\n\n.fa-recycle:before {\n content: \"\\F1B8\"; }\n\n.fa-automobile:before,\n.fa-car:before {\n content: \"\\F1B9\"; }\n\n.fa-cab:before,\n.fa-taxi:before {\n content: \"\\F1BA\"; }\n\n.fa-tree:before {\n content: \"\\F1BB\"; }\n\n.fa-spotify:before {\n content: \"\\F1BC\"; }\n\n.fa-deviantart:before {\n content: \"\\F1BD\"; }\n\n.fa-soundcloud:before {\n content: \"\\F1BE\"; }\n\n.fa-database:before {\n content: \"\\F1C0\"; }\n\n.fa-file-pdf-o:before {\n content: \"\\F1C1\"; }\n\n.fa-file-word-o:before {\n content: \"\\F1C2\"; }\n\n.fa-file-excel-o:before {\n content: \"\\F1C3\"; }\n\n.fa-file-powerpoint-o:before {\n content: \"\\F1C4\"; }\n\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n content: \"\\F1C5\"; }\n\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n content: \"\\F1C6\"; }\n\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n content: \"\\F1C7\"; }\n\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n content: \"\\F1C8\"; }\n\n.fa-file-code-o:before {\n content: \"\\F1C9\"; }\n\n.fa-vine:before {\n content: \"\\F1CA\"; }\n\n.fa-codepen:before {\n content: \"\\F1CB\"; }\n\n.fa-jsfiddle:before {\n content: \"\\F1CC\"; }\n\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n content: \"\\F1CD\"; }\n\n.fa-circle-o-notch:before {\n content: \"\\F1CE\"; }\n\n.fa-ra:before,\n.fa-resistance:before,\n.fa-rebel:before {\n content: \"\\F1D0\"; }\n\n.fa-ge:before,\n.fa-empire:before {\n content: \"\\F1D1\"; }\n\n.fa-git-square:before {\n content: \"\\F1D2\"; }\n\n.fa-git:before {\n content: \"\\F1D3\"; }\n\n.fa-y-combinator-square:before,\n.fa-yc-square:before,\n.fa-hacker-news:before {\n content: \"\\F1D4\"; }\n\n.fa-tencent-weibo:before {\n content: \"\\F1D5\"; }\n\n.fa-qq:before {\n content: \"\\F1D6\"; }\n\n.fa-wechat:before,\n.fa-weixin:before {\n content: \"\\F1D7\"; }\n\n.fa-send:before,\n.fa-paper-plane:before {\n content: \"\\F1D8\"; }\n\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n content: \"\\F1D9\"; }\n\n.fa-history:before {\n content: \"\\F1DA\"; }\n\n.fa-circle-thin:before {\n content: \"\\F1DB\"; }\n\n.fa-header:before {\n content: \"\\F1DC\"; }\n\n.fa-paragraph:before {\n content: \"\\F1DD\"; }\n\n.fa-sliders:before {\n content: \"\\F1DE\"; }\n\n.fa-share-alt:before {\n content: \"\\F1E0\"; }\n\n.fa-share-alt-square:before {\n content: \"\\F1E1\"; }\n\n.fa-bomb:before {\n content: \"\\F1E2\"; }\n\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n content: \"\\F1E3\"; }\n\n.fa-tty:before {\n content: \"\\F1E4\"; }\n\n.fa-binoculars:before {\n content: \"\\F1E5\"; }\n\n.fa-plug:before {\n content: \"\\F1E6\"; }\n\n.fa-slideshare:before {\n content: \"\\F1E7\"; }\n\n.fa-twitch:before {\n content: \"\\F1E8\"; }\n\n.fa-yelp:before {\n content: \"\\F1E9\"; }\n\n.fa-newspaper-o:before {\n content: \"\\F1EA\"; }\n\n.fa-wifi:before {\n content: \"\\F1EB\"; }\n\n.fa-calculator:before {\n content: \"\\F1EC\"; }\n\n.fa-paypal:before {\n content: \"\\F1ED\"; }\n\n.fa-google-wallet:before {\n content: \"\\F1EE\"; }\n\n.fa-cc-visa:before {\n content: \"\\F1F0\"; }\n\n.fa-cc-mastercard:before {\n content: \"\\F1F1\"; }\n\n.fa-cc-discover:before {\n content: \"\\F1F2\"; }\n\n.fa-cc-amex:before {\n content: \"\\F1F3\"; }\n\n.fa-cc-paypal:before {\n content: \"\\F1F4\"; }\n\n.fa-cc-stripe:before {\n content: \"\\F1F5\"; }\n\n.fa-bell-slash:before {\n content: \"\\F1F6\"; }\n\n.fa-bell-slash-o:before {\n content: \"\\F1F7\"; }\n\n.fa-trash:before {\n content: \"\\F1F8\"; }\n\n.fa-copyright:before {\n content: \"\\F1F9\"; }\n\n.fa-at:before {\n content: \"\\F1FA\"; }\n\n.fa-eyedropper:before {\n content: \"\\F1FB\"; }\n\n.fa-paint-brush:before {\n content: \"\\F1FC\"; }\n\n.fa-birthday-cake:before {\n content: \"\\F1FD\"; }\n\n.fa-area-chart:before {\n content: \"\\F1FE\"; }\n\n.fa-pie-chart:before {\n content: \"\\F200\"; }\n\n.fa-line-chart:before {\n content: \"\\F201\"; }\n\n.fa-lastfm:before {\n content: \"\\F202\"; }\n\n.fa-lastfm-square:before {\n content: \"\\F203\"; }\n\n.fa-toggle-off:before {\n content: \"\\F204\"; }\n\n.fa-toggle-on:before {\n content: \"\\F205\"; }\n\n.fa-bicycle:before {\n content: \"\\F206\"; }\n\n.fa-bus:before {\n content: \"\\F207\"; }\n\n.fa-ioxhost:before {\n content: \"\\F208\"; }\n\n.fa-angellist:before {\n content: \"\\F209\"; }\n\n.fa-cc:before {\n content: \"\\F20A\"; }\n\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n content: \"\\F20B\"; }\n\n.fa-meanpath:before {\n content: \"\\F20C\"; }\n\n.fa-buysellads:before {\n content: \"\\F20D\"; }\n\n.fa-connectdevelop:before {\n content: \"\\F20E\"; }\n\n.fa-dashcube:before {\n content: \"\\F210\"; }\n\n.fa-forumbee:before {\n content: \"\\F211\"; }\n\n.fa-leanpub:before {\n content: \"\\F212\"; }\n\n.fa-sellsy:before {\n content: \"\\F213\"; }\n\n.fa-shirtsinbulk:before {\n content: \"\\F214\"; }\n\n.fa-simplybuilt:before {\n content: \"\\F215\"; }\n\n.fa-skyatlas:before {\n content: \"\\F216\"; }\n\n.fa-cart-plus:before {\n content: \"\\F217\"; }\n\n.fa-cart-arrow-down:before {\n content: \"\\F218\"; }\n\n.fa-diamond:before {\n content: \"\\F219\"; }\n\n.fa-ship:before {\n content: \"\\F21A\"; }\n\n.fa-user-secret:before {\n content: \"\\F21B\"; }\n\n.fa-motorcycle:before {\n content: \"\\F21C\"; }\n\n.fa-street-view:before {\n content: \"\\F21D\"; }\n\n.fa-heartbeat:before {\n content: \"\\F21E\"; }\n\n.fa-venus:before {\n content: \"\\F221\"; }\n\n.fa-mars:before {\n content: \"\\F222\"; }\n\n.fa-mercury:before {\n content: \"\\F223\"; }\n\n.fa-intersex:before,\n.fa-transgender:before {\n content: \"\\F224\"; }\n\n.fa-transgender-alt:before {\n content: \"\\F225\"; }\n\n.fa-venus-double:before {\n content: \"\\F226\"; }\n\n.fa-mars-double:before {\n content: \"\\F227\"; }\n\n.fa-venus-mars:before {\n content: \"\\F228\"; }\n\n.fa-mars-stroke:before {\n content: \"\\F229\"; }\n\n.fa-mars-stroke-v:before {\n content: \"\\F22A\"; }\n\n.fa-mars-stroke-h:before {\n content: \"\\F22B\"; }\n\n.fa-neuter:before {\n content: \"\\F22C\"; }\n\n.fa-genderless:before {\n content: \"\\F22D\"; }\n\n.fa-facebook-official:before {\n content: \"\\F230\"; }\n\n.fa-pinterest-p:before {\n content: \"\\F231\"; }\n\n.fa-whatsapp:before {\n content: \"\\F232\"; }\n\n.fa-server:before {\n content: \"\\F233\"; }\n\n.fa-user-plus:before {\n content: \"\\F234\"; }\n\n.fa-user-times:before {\n content: \"\\F235\"; }\n\n.fa-hotel:before,\n.fa-bed:before {\n content: \"\\F236\"; }\n\n.fa-viacoin:before {\n content: \"\\F237\"; }\n\n.fa-train:before {\n content: \"\\F238\"; }\n\n.fa-subway:before {\n content: \"\\F239\"; }\n\n.fa-medium:before {\n content: \"\\F23A\"; }\n\n.fa-yc:before,\n.fa-y-combinator:before {\n content: \"\\F23B\"; }\n\n.fa-optin-monster:before {\n content: \"\\F23C\"; }\n\n.fa-opencart:before {\n content: \"\\F23D\"; }\n\n.fa-expeditedssl:before {\n content: \"\\F23E\"; }\n\n.fa-battery-4:before,\n.fa-battery:before,\n.fa-battery-full:before {\n content: \"\\F240\"; }\n\n.fa-battery-3:before,\n.fa-battery-three-quarters:before {\n content: \"\\F241\"; }\n\n.fa-battery-2:before,\n.fa-battery-half:before {\n content: \"\\F242\"; }\n\n.fa-battery-1:before,\n.fa-battery-quarter:before {\n content: \"\\F243\"; }\n\n.fa-battery-0:before,\n.fa-battery-empty:before {\n content: \"\\F244\"; }\n\n.fa-mouse-pointer:before {\n content: \"\\F245\"; }\n\n.fa-i-cursor:before {\n content: \"\\F246\"; }\n\n.fa-object-group:before {\n content: \"\\F247\"; }\n\n.fa-object-ungroup:before {\n content: \"\\F248\"; }\n\n.fa-sticky-note:before {\n content: \"\\F249\"; }\n\n.fa-sticky-note-o:before {\n content: \"\\F24A\"; }\n\n.fa-cc-jcb:before {\n content: \"\\F24B\"; }\n\n.fa-cc-diners-club:before {\n content: \"\\F24C\"; }\n\n.fa-clone:before {\n content: \"\\F24D\"; }\n\n.fa-balance-scale:before {\n content: \"\\F24E\"; }\n\n.fa-hourglass-o:before {\n content: \"\\F250\"; }\n\n.fa-hourglass-1:before,\n.fa-hourglass-start:before {\n content: \"\\F251\"; }\n\n.fa-hourglass-2:before,\n.fa-hourglass-half:before {\n content: \"\\F252\"; }\n\n.fa-hourglass-3:before,\n.fa-hourglass-end:before {\n content: \"\\F253\"; }\n\n.fa-hourglass:before {\n content: \"\\F254\"; }\n\n.fa-hand-grab-o:before,\n.fa-hand-rock-o:before {\n content: \"\\F255\"; }\n\n.fa-hand-stop-o:before,\n.fa-hand-paper-o:before {\n content: \"\\F256\"; }\n\n.fa-hand-scissors-o:before {\n content: \"\\F257\"; }\n\n.fa-hand-lizard-o:before {\n content: \"\\F258\"; }\n\n.fa-hand-spock-o:before {\n content: \"\\F259\"; }\n\n.fa-hand-pointer-o:before {\n content: \"\\F25A\"; }\n\n.fa-hand-peace-o:before {\n content: \"\\F25B\"; }\n\n.fa-trademark:before {\n content: \"\\F25C\"; }\n\n.fa-registered:before {\n content: \"\\F25D\"; }\n\n.fa-creative-commons:before {\n content: \"\\F25E\"; }\n\n.fa-gg:before {\n content: \"\\F260\"; }\n\n.fa-gg-circle:before {\n content: \"\\F261\"; }\n\n.fa-tripadvisor:before {\n content: \"\\F262\"; }\n\n.fa-odnoklassniki:before {\n content: \"\\F263\"; }\n\n.fa-odnoklassniki-square:before {\n content: \"\\F264\"; }\n\n.fa-get-pocket:before {\n content: \"\\F265\"; }\n\n.fa-wikipedia-w:before {\n content: \"\\F266\"; }\n\n.fa-safari:before {\n content: \"\\F267\"; }\n\n.fa-chrome:before {\n content: \"\\F268\"; }\n\n.fa-firefox:before {\n content: \"\\F269\"; }\n\n.fa-opera:before {\n content: \"\\F26A\"; }\n\n.fa-internet-explorer:before {\n content: \"\\F26B\"; }\n\n.fa-tv:before,\n.fa-television:before {\n content: \"\\F26C\"; }\n\n.fa-contao:before {\n content: \"\\F26D\"; }\n\n.fa-500px:before {\n content: \"\\F26E\"; }\n\n.fa-amazon:before {\n content: \"\\F270\"; }\n\n.fa-calendar-plus-o:before {\n content: \"\\F271\"; }\n\n.fa-calendar-minus-o:before {\n content: \"\\F272\"; }\n\n.fa-calendar-times-o:before {\n content: \"\\F273\"; }\n\n.fa-calendar-check-o:before {\n content: \"\\F274\"; }\n\n.fa-industry:before {\n content: \"\\F275\"; }\n\n.fa-map-pin:before {\n content: \"\\F276\"; }\n\n.fa-map-signs:before {\n content: \"\\F277\"; }\n\n.fa-map-o:before {\n content: \"\\F278\"; }\n\n.fa-map:before {\n content: \"\\F279\"; }\n\n.fa-commenting:before {\n content: \"\\F27A\"; }\n\n.fa-commenting-o:before {\n content: \"\\F27B\"; }\n\n.fa-houzz:before {\n content: \"\\F27C\"; }\n\n.fa-vimeo:before {\n content: \"\\F27D\"; }\n\n.fa-black-tie:before {\n content: \"\\F27E\"; }\n\n.fa-fonticons:before {\n content: \"\\F280\"; }\n\n.fa-reddit-alien:before {\n content: \"\\F281\"; }\n\n.fa-edge:before {\n content: \"\\F282\"; }\n\n.fa-credit-card-alt:before {\n content: \"\\F283\"; }\n\n.fa-codiepie:before {\n content: \"\\F284\"; }\n\n.fa-modx:before {\n content: \"\\F285\"; }\n\n.fa-fort-awesome:before {\n content: \"\\F286\"; }\n\n.fa-usb:before {\n content: \"\\F287\"; }\n\n.fa-product-hunt:before {\n content: \"\\F288\"; }\n\n.fa-mixcloud:before {\n content: \"\\F289\"; }\n\n.fa-scribd:before {\n content: \"\\F28A\"; }\n\n.fa-pause-circle:before {\n content: \"\\F28B\"; }\n\n.fa-pause-circle-o:before {\n content: \"\\F28C\"; }\n\n.fa-stop-circle:before {\n content: \"\\F28D\"; }\n\n.fa-stop-circle-o:before {\n content: \"\\F28E\"; }\n\n.fa-shopping-bag:before {\n content: \"\\F290\"; }\n\n.fa-shopping-basket:before {\n content: \"\\F291\"; }\n\n.fa-hashtag:before {\n content: \"\\F292\"; }\n\n.fa-bluetooth:before {\n content: \"\\F293\"; }\n\n.fa-bluetooth-b:before {\n content: \"\\F294\"; }\n\n.fa-percent:before {\n content: \"\\F295\"; }\n\n.fa-gitlab:before {\n content: \"\\F296\"; }\n\n.fa-wpbeginner:before {\n content: \"\\F297\"; }\n\n.fa-wpforms:before {\n content: \"\\F298\"; }\n\n.fa-envira:before {\n content: \"\\F299\"; }\n\n.fa-universal-access:before {\n content: \"\\F29A\"; }\n\n.fa-wheelchair-alt:before {\n content: \"\\F29B\"; }\n\n.fa-question-circle-o:before {\n content: \"\\F29C\"; }\n\n.fa-blind:before {\n content: \"\\F29D\"; }\n\n.fa-audio-description:before {\n content: \"\\F29E\"; }\n\n.fa-volume-control-phone:before {\n content: \"\\F2A0\"; }\n\n.fa-braille:before {\n content: \"\\F2A1\"; }\n\n.fa-assistive-listening-systems:before {\n content: \"\\F2A2\"; }\n\n.fa-asl-interpreting:before,\n.fa-american-sign-language-interpreting:before {\n content: \"\\F2A3\"; }\n\n.fa-deafness:before,\n.fa-hard-of-hearing:before,\n.fa-deaf:before {\n content: \"\\F2A4\"; }\n\n.fa-glide:before {\n content: \"\\F2A5\"; }\n\n.fa-glide-g:before {\n content: \"\\F2A6\"; }\n\n.fa-signing:before,\n.fa-sign-language:before {\n content: \"\\F2A7\"; }\n\n.fa-low-vision:before {\n content: \"\\F2A8\"; }\n\n.fa-viadeo:before {\n content: \"\\F2A9\"; }\n\n.fa-viadeo-square:before {\n content: \"\\F2AA\"; }\n\n.fa-snapchat:before {\n content: \"\\F2AB\"; }\n\n.fa-snapchat-ghost:before {\n content: \"\\F2AC\"; }\n\n.fa-snapchat-square:before {\n content: \"\\F2AD\"; }\n\n.fa-pied-piper:before {\n content: \"\\F2AE\"; }\n\n.fa-first-order:before {\n content: \"\\F2B0\"; }\n\n.fa-yoast:before {\n content: \"\\F2B1\"; }\n\n.fa-themeisle:before {\n content: \"\\F2B2\"; }\n\n.fa-google-plus-circle:before,\n.fa-google-plus-official:before {\n content: \"\\F2B3\"; }\n\n.fa-fa:before,\n.fa-font-awesome:before {\n content: \"\\F2B4\"; }\n\n.fa-handshake-o:before {\n content: \"\\F2B5\"; }\n\n.fa-envelope-open:before {\n content: \"\\F2B6\"; }\n\n.fa-envelope-open-o:before {\n content: \"\\F2B7\"; }\n\n.fa-linode:before {\n content: \"\\F2B8\"; }\n\n.fa-address-book:before {\n content: \"\\F2B9\"; }\n\n.fa-address-book-o:before {\n content: \"\\F2BA\"; }\n\n.fa-vcard:before,\n.fa-address-card:before {\n content: \"\\F2BB\"; }\n\n.fa-vcard-o:before,\n.fa-address-card-o:before {\n content: \"\\F2BC\"; }\n\n.fa-user-circle:before {\n content: \"\\F2BD\"; }\n\n.fa-user-circle-o:before {\n content: \"\\F2BE\"; }\n\n.fa-user-o:before {\n content: \"\\F2C0\"; }\n\n.fa-id-badge:before {\n content: \"\\F2C1\"; }\n\n.fa-drivers-license:before,\n.fa-id-card:before {\n content: \"\\F2C2\"; }\n\n.fa-drivers-license-o:before,\n.fa-id-card-o:before {\n content: \"\\F2C3\"; }\n\n.fa-quora:before {\n content: \"\\F2C4\"; }\n\n.fa-free-code-camp:before {\n content: \"\\F2C5\"; }\n\n.fa-telegram:before {\n content: \"\\F2C6\"; }\n\n.fa-thermometer-4:before,\n.fa-thermometer:before,\n.fa-thermometer-full:before {\n content: \"\\F2C7\"; }\n\n.fa-thermometer-3:before,\n.fa-thermometer-three-quarters:before {\n content: \"\\F2C8\"; }\n\n.fa-thermometer-2:before,\n.fa-thermometer-half:before {\n content: \"\\F2C9\"; }\n\n.fa-thermometer-1:before,\n.fa-thermometer-quarter:before {\n content: \"\\F2CA\"; }\n\n.fa-thermometer-0:before,\n.fa-thermometer-empty:before {\n content: \"\\F2CB\"; }\n\n.fa-shower:before {\n content: \"\\F2CC\"; }\n\n.fa-bathtub:before,\n.fa-s15:before,\n.fa-bath:before {\n content: \"\\F2CD\"; }\n\n.fa-podcast:before {\n content: \"\\F2CE\"; }\n\n.fa-window-maximize:before {\n content: \"\\F2D0\"; }\n\n.fa-window-minimize:before {\n content: \"\\F2D1\"; }\n\n.fa-window-restore:before {\n content: \"\\F2D2\"; }\n\n.fa-times-rectangle:before,\n.fa-window-close:before {\n content: \"\\F2D3\"; }\n\n.fa-times-rectangle-o:before,\n.fa-window-close-o:before {\n content: \"\\F2D4\"; }\n\n.fa-bandcamp:before {\n content: \"\\F2D5\"; }\n\n.fa-grav:before {\n content: \"\\F2D6\"; }\n\n.fa-etsy:before {\n content: \"\\F2D7\"; }\n\n.fa-imdb:before {\n content: \"\\F2D8\"; }\n\n.fa-ravelry:before {\n content: \"\\F2D9\"; }\n\n.fa-eercast:before {\n content: \"\\F2DA\"; }\n\n.fa-microchip:before {\n content: \"\\F2DB\"; }\n\n.fa-snowflake-o:before {\n content: \"\\F2DC\"; }\n\n.fa-superpowers:before {\n content: \"\\F2DD\"; }\n\n.fa-wpexplorer:before {\n content: \"\\F2DE\"; }\n\n.fa-meetup:before {\n content: \"\\F2E0\"; }\n\n.sr-only, .table.table-list tr:not(:hover) td.table-list-options > .dropdown:not(.show) button:not(:focus):not(:active), .table.table-list tr:not(:hover) td.table-list-options > button:not(:focus):not(:active) {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0; }\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto; }\n\n.toaster-icon {\n position: absolute;\n left: 0.0em;\n top: 0.0em;\n font-weight: normal;\n color: #ffffff; }\n\n.toast-title {\n font-weight: bold; }\n\n.toast-message {\n -ms-word-wrap: break-word;\n word-wrap: break-word; }\n\n.toast-message a,\n.toast-message label {\n color: #ffffff; }\n\n.toast-message a:hover {\n color: #cccccc;\n text-decoration: none; }\n\n.toast-close-button {\n position: relative;\n right: -0.3em;\n top: -0.3em;\n float: right;\n font-size: 20px;\n font-weight: bold;\n color: #ffffff;\n -webkit-text-shadow: 0 1px 0 #ffffff;\n text-shadow: 0 1px 0 #ffffff;\n opacity: 0.8;\n -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);\n filter: alpha(opacity=80);\n z-index: 999; }\n\n.toast-close-button:hover, .toast-close-button:focus {\n color: #000000;\n text-decoration: none;\n cursor: pointer;\n opacity: 0.4;\n -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);\n filter: alpha(opacity=40); }\n\n/*Additional properties for button version\n iOS requires the button element instead of an anchor tag.\n If you want the anchor version, it requires `href=\"#\"`.*/\nbutton.toast-close-button {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none; }\n\n.toast-content {\n display: inline-block;\n width: 95%; }\n\n.toast-top-full-width {\n top: 0;\n right: 0;\n width: 100%; }\n\n.toast-bottom-full-width {\n bottom: 0;\n right: 0;\n width: 100%; }\n\n.toast-top-left {\n top: 12px;\n left: 12px; }\n\n.toast-top-center {\n top: 12px; }\n\n.toast-top-right {\n top: 12px;\n right: 12px; }\n\n.toast-bottom-right {\n right: 12px;\n bottom: 12px; }\n\n.toast-bottom-center {\n bottom: 12px; }\n\n.toast-bottom-left {\n bottom: 12px;\n left: 12px; }\n\n.toast-center {\n top: 45%; }\n\n#toast-container {\n position: fixed;\n z-index: 999999;\n /*overrides*/\n pointer-events: auto; }\n\n#toast-container.toast-center,\n#toast-container.toast-top-center,\n#toast-container.toast-bottom-center {\n width: 100%;\n pointer-events: none;\n left: 0;\n right: 0; }\n\n#toast-container.toast-center > div,\n#toast-container.toast-top-center > div,\n#toast-container.toast-bottom-center > div {\n margin: 6px auto;\n pointer-events: auto; }\n\n#toast-container.toast-center > button,\n#toast-container.toast-top-center > button,\n#toast-container.toast-bottom-center > button {\n pointer-events: auto; }\n\n#toast-container * {\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n box-sizing: border-box; }\n\n#toast-container > div {\n margin: 0 0 6px;\n padding: 15px 15px 15px 50px;\n width: 300px;\n -moz-border-radius: 3px 3px 3px 3px;\n -webkit-border-radius: 3px 3px 3px 3px;\n border-radius: 3px 3px 3px 3px;\n background-position: 15px center;\n background-repeat: no-repeat;\n -moz-box-shadow: 0 0 12px #999999;\n -webkit-box-shadow: 0 0 12px #999999;\n box-shadow: 0 0 12px #999999;\n color: #ffffff;\n opacity: 0.8;\n -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);\n filter: alpha(opacity=80); }\n\n#toast-container > :hover {\n -moz-box-shadow: 0 0 12px #000000;\n -webkit-box-shadow: 0 0 12px #000000;\n box-shadow: 0 0 12px #000000;\n opacity: 1;\n -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);\n filter: alpha(opacity=100);\n cursor: pointer; }\n\n.icon-success {\n width: 35px;\n height: 100%;\n display: inline-block;\n background-repeat: no-repeat;\n background-position: 100% 50%;\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==\") !important; }\n\n.icon-error {\n width: 35px;\n height: 100%;\n display: inline-block;\n background-repeat: no-repeat;\n background-position: 100% 50%;\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=\") !important; }\n\n.icon-info {\n width: 35px;\n height: 100%;\n display: inline-block;\n background-repeat: no-repeat;\n background-position: 100% 50%;\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=\") !important; }\n\n.icon-wait {\n width: 35px;\n height: 100%;\n display: inline-block;\n background-repeat: no-repeat;\n background-position: 100% 50%;\n background-image: url(\"data:image/gif;base64,R0lGODlhIAAgAIQAAAQCBISGhMzKzERCROTm5CQiJKyurHx+fPz+/ExOTOzu7Dw+PIyOjCwqLFRWVAwKDIyKjMzOzOzq7CQmJLy6vFRSVPTy9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJCQAXACwAAAAAIAAgAAAF3eAljmRpnmh6VRSVqLDpIDTixOdUlFSNUDhSQUAT7ES9GnD0SFQAKWItMqr4bqKHVPDI+WiTkaOFFVlrFe83rDrT0qeIjwrT0iLdU0GOiBxhAA4VeSk6QYeIOAsQEAuJKgw+EI8nA18IA48JBAQvFxCXDI8SNAQikV+iiaQIpheWX5mJmxKeF6g0qpQmA4yOu8C7EwYWCgZswRcTFj4KyMAGlwYxDwcHhCXMXxYxBzQHKNo+3DDeCOAn0V/TddbYJA0K48gAEAFQicMWFsfwNA3JSgAIAAFfwIMIL4QAACH5BAkJABoALAAAAAAgACAAhAQCBIyKjERCRMzOzCQiJPTy9DQyNGRmZMTCxOTm5CwqLHx+fBQWFJyenNTW1Pz6/Dw6PGxubAwKDIyOjNTS1CQmJCwuLPz+/Dw+PHRydAAAAAAAAAAAAAAAAAAAAAAAAAXboCaOZGmeaKoxWcSosMkk15W8cZ7VdZaXkcEgQtrxfD9RhHchima1GwlCGUBSFCaFxMrgRtnLFhWujWHhs2nJc8KoVlWGQnEn7/i8XgOwWAB7JwoONQ4KgSQAZRcOgHgSCwsSIhZMNRZ5CzULIgaWF5h4mhecfIQ8jXmQkiODhYeIiRYGjrG2PxgBARi3IhNMAbcCnwI5BAQpAZ8TIwK6vCQVDwUVKL+WzAANTA210g/VJ8OWxQefByQE4dZMzBoInwh4zrtgn2p725YNthUFTNRuGYB3AYGBHCEAACH5BAkJAB0ALAAAAAAgACAAhAQCBISChFRWVMzKzCQiJOTm5GxqbCwuLJSWlPz6/NTW1AwODJSSlGRmZCwqLOzu7HR2dDQ2NAQGBISGhFxaXNTS1CQmJOzq7GxubDQyNKSmpPz+/Nza3AAAAAAAAAAAAAXfYCeOZGmeaKqurHBdAiuP17Zdc0lMAVHWt9yI8LA9fCPB4xEjARoNSWpis01kBpshFahurqzsZosiGpErScMAUO0maKF8Tq/bTQCIQgFp30cQXhB1BHEcXhx0FgkJFiOHVYlzi42AgoRxeRx8fn+en3UABwedKgsBAwMBCygOCjYKDisLFV4VrCUAtVUKpSZdXl8mB8EbByQWcQPFAyYZxccdB7sV0cvBzbmvvG0LBV4FrFTBYCWuNhyyHRTFFB20trh4BxmdYl4YIqepq0IRxRE+IfDCAFQHARo0NGERAgAh+QQJCQAgACwAAAAAIAAgAIUEAgSEgoRMTkzMyswcHhzk5uR0cnQUFhRcXlwsKiz09vQMCgyMiozU1tQkJiR8fnxkZmT8/vwEBgSEhoRcWlzU0tQkIiT08vR0dnQcGhxkYmQ0MjT8+vwMDgyMjozc2twAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG+UCQcEgsGo/IpHLJXDweC6Z0+IhEHlOjRGIMWLHZoUZx0RQlAajxkFFKFFYFl5m5KNpIySU+X2bIBEoQZBBZGQdMElFhjI2Oj5AgHQEDAw8dQxYeDBaNHRVWVhWYCXsRFwmMXqFWEyAerB6MA6xWA6+xs7URt6VWqIwTu64gDh4eDp6goaORQ5OVAZjO1EgEGhB4RwAYDQ0YAEwIcBEKFEgYrBhLBORxgUYfrB9LELuF8fNDAAaVBuEg7NXCVyRdqHVCGLBiIIQAB1Yc4BXh9uEbwAXuyi2iQI7DuSwHdiFqCEGDtizLRFUDsaGAlQIbVoJYIEDAIiZBAAAh+QQJCQAbACwAAAAAIAAgAIQEAgSMioxcWlz08vQcHhysqqwMDgx8enwsKiykoqRkZmT8+vzEwsQMCgyUlpQkJiS0srQEBgSMjoxcXlz09vQkIiSsrqwUEhQ0MjRsamz8/vwAAAAAAAAAAAAAAAAAAAAF7+AmjmRpnmiqruz2PG0sIssCj4CQJAIgj4/abRNJaI6agu9kCAQaphdJgEQKUIFjgGWsahJYLdf7RTWfLKr3+jsBClVlG5Xb9eb4fImgUBBKDVB4ExRHFGwbGRQLGXMEhUgUfw2QC4IyCmSNDQtHlm2ZXgoiGQsUjW0EnUgLfyKBeYSeiHojfH61uS0GBisVEgEVLRcWRxAXKAgDRwMILMVIECgSVRIrBmS9JtRI1iMVBweuGxerSNolyszOIhjLGs0jEFXSKA8SEkMbcEgWIxfzNBxrw6AKgxIGkM05UOWALhERHJhysOThBgAVWYQAACH5BAkJABkALAAAAAAgACAAhAQGBIyKjERCRMzOzCwuLGRiZPz6/OTm5AwODLSytFRSVNTW1Dw6PHx6fAwKDJSSlERGRNTS1DQyNGxqbPz+/BQSFLy6vFRWVNza3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAXqYCaO5FgFwxBUZeu61ULNFMa+eBvQdJD/owFvFhkBBAwHsBQZUooZyWF2YOQkBNJu6ANMaQeli0AxSEwymi0DcUJeEgPlbEJFAghRe/h+Eeg/Dl9UYks5DF9VhksOAgKFi5GSSwh5kzgVCXIJNxknD5aSCTwJIw8zD5MITpanFKmSCHI8NxUPoJejNKWXLZkznL0vCJ3CxsckDpA/ChYJFzkTBgYTSxc80C4OswbLLhY8Fi/bMwYAJVgl4DTiL9LUJADrFuci1zTZLwD1IwU8BSQuWLCQb1EDHg2QiSDALYvCDAISJLDy8FIIACH5BAkJAB4ALAAAAAAgACAAhAQGBISGhFRSVNTW1CQiJKyqrGRmZOzu7CwuLIyOjGxubPz6/BQSFGRiZOTi5CwqLLy6vDQ2NIyKjFRWVCQmJKyurGxqbPT29DQyNJSSlHRydPz+/BQWFOzq7AAAAAAAAAXhoCeOJElYClGubOs117YtjWuvxCLLi3qbhc6h4FPsdorfiNI5dige43GT9AAkHUcCwCpMNxVP7tgTJY4J1uF7EBl0M8Ooueuo2SOCIkVa11kVX2E2EmgsFH4yBz4uAAkdHVstBAUHQ4xKmZqbnJ2bAhAQAiURGJ4eE0cTIxgzpp0QRxCsrp6xO7MjpaepO6unKxOhv8DFxsfIJBwaChw2DAkZDEocDjIOzi0ZMhlKUjIaLtsb3T8aR+EtDBkJ0yQUBQVQI9XX2ZsDMgMlyxr3mzE2XEgmotCGAARFIHiQ0FMIACH5BAkJABgALAAAAAAgACAAhAQCBISGhDw+POTi5CwuLLS2tPTy9BQSFJyenGRiZDQ2NIyOjLy+vPz6/BweHIyKjFRSVOzq7DQyNLy6vBQWFHRydDw6PPz+/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXXICaOZHkcZaquIjVd10SxtFrAcFGrVhBYIwoON9uNAsOA6DCEFTEKBEKxEjQvAtELNxkpGrAGNfW4Plpb2QgxRKjKzfPoVGLj3CnLNUv7hscpSDhKOxJSgDwPP0ZGAACMjAQFDQYFBJA0BAZDBpeYGBQVFUU3TV2YFAMwAzNgTQ2PkBVDFRiuQ7CYszi1pUOnkKmrM5qcnqiiTwQTDQ2Wn9DR0tPUfRKQEBEREDQSFw3XRhEwEd3f4TvjF+XWKgJ8JNnb0QkwCdUlCzAL+CQODAwc9BtIMAQAOw==\") !important; }\n\n.icon-warning {\n width: 35px;\n height: 100%;\n display: inline-block;\n background-repeat: no-repeat;\n background-position: 100% 50%;\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=\") !important; }\n\n#toast-container.toast-top-full-width > div,\n#toast-container.toast-bottom-full-width > div {\n width: 96%;\n margin: auto; }\n\n.toast {\n position: relative;\n background-color: #030303; }\n\n.toast-success {\n background-color: #51a351; }\n\n.toast-error {\n background-color: #bd362f; }\n\n.toast-info {\n background-color: #2f96b4; }\n\n.toast-wait {\n background-color: #2f96b4; }\n\n.toast-warning {\n background-color: #f89406; }\n\n/*Responsive Design*/\n@media all and (max-width: 240px) {\n #toast-container > div {\n padding: 8px 8px 8px 50px;\n width: 11em; }\n #toast-container .toast-close-button {\n right: -0.1em;\n top: -0.2em; }\n .toast-content {\n width: 94%; } }\n\n@media all and (min-width: 241px) and (max-width: 480px) {\n #toast-container > div {\n padding: 8px 8px 8px 50px;\n width: 18em; }\n #toast-container .toast-close-button {\n right: -0.1em;\n top: -0.2em; }\n .toast-content {\n width: 94%; } }\n\n@media all and (min-width: 481px) and (max-width: 768px) {\n #toast-container > div {\n padding: 15px 15px 15px 50px;\n width: 25em; } }\n\n.swal2-popup.swal2-toast {\n flex-direction: row;\n align-items: center;\n width: auto;\n padding: 0.625em;\n overflow-y: hidden;\n background: #fff;\n box-shadow: 0 0 0.625em #d9d9d9; }\n .swal2-popup.swal2-toast .swal2-header {\n flex-direction: row;\n padding: 0; }\n .swal2-popup.swal2-toast .swal2-title {\n flex-grow: 1;\n justify-content: flex-start;\n margin: 0 0.6em;\n font-size: 1em; }\n .swal2-popup.swal2-toast .swal2-footer {\n margin: 0.5em 0 0;\n padding: 0.5em 0 0;\n font-size: 0.8em; }\n .swal2-popup.swal2-toast .swal2-close {\n position: static;\n width: 0.8em;\n height: 0.8em;\n line-height: 0.8; }\n .swal2-popup.swal2-toast .swal2-content {\n justify-content: flex-start;\n padding: 0;\n font-size: 1em; }\n .swal2-popup.swal2-toast .swal2-icon {\n width: 2em;\n min-width: 2em;\n height: 2em;\n margin: 0; }\n .swal2-popup.swal2-toast .swal2-icon .swal2-icon-content {\n display: flex;\n align-items: center;\n font-size: 1.8em;\n font-weight: bold; }\n @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n .swal2-popup.swal2-toast .swal2-icon .swal2-icon-content {\n font-size: .25em; } }\n .swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring {\n width: 2em;\n height: 2em; }\n .swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'] {\n top: .875em;\n width: 1.375em; }\n .swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='left'] {\n left: .3125em; }\n .swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='right'] {\n right: .3125em; }\n .swal2-popup.swal2-toast .swal2-actions {\n flex-basis: auto !important;\n width: auto;\n height: auto;\n margin: 0 .3125em;\n padding: 0; }\n .swal2-popup.swal2-toast .swal2-styled {\n margin: .125em .3125em;\n padding: .3125em .625em;\n font-size: 1em; }\n .swal2-popup.swal2-toast .swal2-styled:focus {\n box-shadow: 0 0 0 1px #fff, 0 0 0 3px rgba(100, 150, 200, 0.5); }\n .swal2-popup.swal2-toast .swal2-success {\n border-color: #a5dc86; }\n .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'] {\n position: absolute;\n width: 1.6em;\n height: 3em;\n transform: rotate(45deg);\n border-radius: 50%; }\n .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'][class$='left'] {\n top: -.8em;\n left: -.5em;\n transform: rotate(-45deg);\n transform-origin: 2em 2em;\n border-radius: 4em 0 0 4em; }\n .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'][class$='right'] {\n top: -.25em;\n left: .9375em;\n transform-origin: 0 1.5em;\n border-radius: 0 4em 4em 0; }\n .swal2-popup.swal2-toast .swal2-success .swal2-success-ring {\n width: 2em;\n height: 2em; }\n .swal2-popup.swal2-toast .swal2-success .swal2-success-fix {\n top: 0;\n left: .4375em;\n width: .4375em;\n height: 2.6875em; }\n .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'] {\n height: .3125em; }\n .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'][class$='tip'] {\n top: 1.125em;\n left: .1875em;\n width: .75em; }\n .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'][class$='long'] {\n top: .9375em;\n right: .1875em;\n width: 1.375em; }\n .swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip {\n animation: swal2-toast-animate-success-line-tip .75s; }\n .swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long {\n animation: swal2-toast-animate-success-line-long .75s; }\n .swal2-popup.swal2-toast.swal2-show {\n animation: swal2-toast-show 0.5s; }\n .swal2-popup.swal2-toast.swal2-hide {\n animation: swal2-toast-hide 0.1s forwards; }\n\n.swal2-container {\n display: flex;\n position: fixed;\n z-index: 1060;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n padding: 0.625em;\n overflow-x: hidden;\n transition: background-color 0.1s;\n -webkit-overflow-scrolling: touch; }\n .swal2-container.swal2-backdrop-show, .swal2-container.swal2-noanimation {\n background: rgba(0, 0, 0, 0.4); }\n .swal2-container.swal2-backdrop-hide {\n background: transparent !important; }\n .swal2-container.swal2-top {\n align-items: flex-start; }\n .swal2-container.swal2-top-start, .swal2-container.swal2-top-left {\n align-items: flex-start;\n justify-content: flex-start; }\n .swal2-container.swal2-top-end, .swal2-container.swal2-top-right {\n align-items: flex-start;\n justify-content: flex-end; }\n .swal2-container.swal2-center {\n align-items: center; }\n .swal2-container.swal2-center-start, .swal2-container.swal2-center-left {\n align-items: center;\n justify-content: flex-start; }\n .swal2-container.swal2-center-end, .swal2-container.swal2-center-right {\n align-items: center;\n justify-content: flex-end; }\n .swal2-container.swal2-bottom {\n align-items: flex-end; }\n .swal2-container.swal2-bottom-start, .swal2-container.swal2-bottom-left {\n align-items: flex-end;\n justify-content: flex-start; }\n .swal2-container.swal2-bottom-end, .swal2-container.swal2-bottom-right {\n align-items: flex-end;\n justify-content: flex-end; }\n .swal2-container.swal2-bottom > :first-child,\n .swal2-container.swal2-bottom-start > :first-child,\n .swal2-container.swal2-bottom-left > :first-child,\n .swal2-container.swal2-bottom-end > :first-child,\n .swal2-container.swal2-bottom-right > :first-child {\n margin-top: auto; }\n .swal2-container.swal2-grow-fullscreen > .swal2-modal {\n display: flex !important;\n flex: 1;\n align-self: stretch;\n justify-content: center; }\n .swal2-container.swal2-grow-row > .swal2-modal {\n display: flex !important;\n flex: 1;\n align-content: center;\n justify-content: center; }\n .swal2-container.swal2-grow-column {\n flex: 1;\n flex-direction: column; }\n .swal2-container.swal2-grow-column.swal2-top, .swal2-container.swal2-grow-column.swal2-center, .swal2-container.swal2-grow-column.swal2-bottom {\n align-items: center; }\n .swal2-container.swal2-grow-column.swal2-top-start, .swal2-container.swal2-grow-column.swal2-center-start, .swal2-container.swal2-grow-column.swal2-bottom-start, .swal2-container.swal2-grow-column.swal2-top-left, .swal2-container.swal2-grow-column.swal2-center-left, .swal2-container.swal2-grow-column.swal2-bottom-left {\n align-items: flex-start; }\n .swal2-container.swal2-grow-column.swal2-top-end, .swal2-container.swal2-grow-column.swal2-center-end, .swal2-container.swal2-grow-column.swal2-bottom-end, .swal2-container.swal2-grow-column.swal2-top-right, .swal2-container.swal2-grow-column.swal2-center-right, .swal2-container.swal2-grow-column.swal2-bottom-right {\n align-items: flex-end; }\n .swal2-container.swal2-grow-column > .swal2-modal {\n display: flex !important;\n flex: 1;\n align-content: center;\n justify-content: center; }\n .swal2-container.swal2-no-transition {\n transition: none !important; }\n .swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen) > .swal2-modal {\n margin: auto; }\n @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n .swal2-container .swal2-modal {\n margin: 0 !important; } }\n\n.swal2-popup {\n display: none;\n position: relative;\n box-sizing: border-box;\n flex-direction: column;\n justify-content: center;\n width: 32em;\n max-width: 100%;\n padding: 1.25em;\n border: none;\n border-radius: 5px;\n background: #fff;\n font-family: inherit;\n font-size: 1rem; }\n .swal2-popup:focus {\n outline: none; }\n .swal2-popup.swal2-loading {\n overflow-y: hidden; }\n\n.swal2-header {\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 0 1.8em; }\n\n.swal2-title {\n position: relative;\n max-width: 100%;\n margin: 0 0 0.4em;\n padding: 0;\n color: #595959;\n font-size: 1.875em;\n font-weight: 600;\n text-align: center;\n text-transform: none;\n word-wrap: break-word; }\n\n.swal2-actions {\n display: flex;\n z-index: 1;\n box-sizing: border-box;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n width: 100%;\n margin: 1.25em auto 0;\n padding: 0 1.6em; }\n .swal2-actions:not(.swal2-loading) .swal2-styled[disabled] {\n opacity: .4; }\n .swal2-actions:not(.swal2-loading) .swal2-styled:hover {\n background-image: linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1)); }\n .swal2-actions:not(.swal2-loading) .swal2-styled:active {\n background-image: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)); }\n\n.swal2-loader {\n display: none;\n align-items: center;\n justify-content: center;\n width: 2.2em;\n height: 2.2em;\n margin: 0 1.875em;\n animation: swal2-rotate-loading 1.5s linear 0s infinite normal;\n border-width: 0.25em;\n border-style: solid;\n border-radius: 100%;\n border-color: #2778c4 transparent #2778c4 transparent; }\n\n.swal2-styled {\n margin: 0.3125em;\n padding: 0.625em 1.1em;\n box-shadow: none;\n font-weight: 500; }\n .swal2-styled:not([disabled]) {\n cursor: pointer; }\n .swal2-styled.swal2-confirm {\n border: 0;\n border-radius: 0.25em;\n background: initial;\n background-color: #2778c4;\n color: #fff;\n font-size: 1.0625em; }\n .swal2-styled.swal2-deny {\n border: 0;\n border-radius: 0.25em;\n background: initial;\n background-color: #d14529;\n color: #fff;\n font-size: 1.0625em; }\n .swal2-styled.swal2-cancel {\n border: 0;\n border-radius: 0.25em;\n background: initial;\n background-color: #757575;\n color: #fff;\n font-size: 1.0625em; }\n .swal2-styled:focus {\n outline: none;\n box-shadow: 0 0 0 3px rgba(100, 150, 200, 0.5); }\n .swal2-styled::-moz-focus-inner {\n border: 0; }\n\n.swal2-footer {\n justify-content: center;\n margin: 1.25em 0 0;\n padding: 1em 0 0;\n border-top: 1px solid #eee;\n color: #545454;\n font-size: 1em; }\n\n.swal2-timer-progress-bar-container {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n height: 0.25em;\n overflow: hidden;\n border-bottom-right-radius: 5px;\n border-bottom-left-radius: 5px; }\n\n.swal2-timer-progress-bar {\n width: 100%;\n height: 0.25em;\n background: rgba(0, 0, 0, 0.2); }\n\n.swal2-image {\n max-width: 100%;\n margin: 1.25em auto; }\n\n.swal2-close {\n position: absolute;\n z-index: 2;\n top: 0;\n right: 0;\n align-items: center;\n justify-content: center;\n width: 1.2em;\n height: 1.2em;\n padding: 0;\n overflow: hidden;\n transition: color 0.1s ease-out;\n border: none;\n border-radius: 5px;\n background: transparent;\n color: #cccccc;\n font-family: serif;\n font-size: 2.5em;\n line-height: 1.2;\n cursor: pointer; }\n .swal2-close:hover {\n transform: none;\n background: transparent;\n color: #f27474; }\n .swal2-close:focus {\n outline: none;\n box-shadow: inset 0 0 0 3px rgba(100, 150, 200, 0.5); }\n .swal2-close::-moz-focus-inner {\n border: 0; }\n\n.swal2-content {\n z-index: 1;\n justify-content: center;\n margin: 0;\n padding: 0 1.6em;\n color: #545454;\n font-size: 1.125em;\n font-weight: normal;\n line-height: normal;\n text-align: center;\n word-wrap: break-word; }\n\n.swal2-input,\n.swal2-file,\n.swal2-textarea,\n.swal2-select,\n.swal2-radio,\n.swal2-checkbox {\n margin: 1em auto; }\n\n.swal2-input,\n.swal2-file,\n.swal2-textarea {\n box-sizing: border-box;\n width: 100%;\n transition: border-color 0.3s, box-shadow 0.3s;\n border: 1px solid #d9d9d9;\n border-radius: 0.1875em;\n background: inherit;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06);\n color: inherit;\n font-size: 1.125em; }\n .swal2-input.swal2-inputerror,\n .swal2-file.swal2-inputerror,\n .swal2-textarea.swal2-inputerror {\n border-color: #f27474 !important;\n box-shadow: 0 0 2px #f27474 !important; }\n .swal2-input:focus,\n .swal2-file:focus,\n .swal2-textarea:focus {\n border: 1px solid #b4dbed;\n outline: none;\n box-shadow: 0 0 0 3px rgba(100, 150, 200, 0.5); }\n .swal2-input::placeholder,\n .swal2-file::placeholder,\n .swal2-textarea::placeholder {\n color: #cccccc; }\n\n.swal2-range {\n margin: 1em auto;\n background: #fff; }\n .swal2-range input {\n width: 80%; }\n .swal2-range output {\n width: 20%;\n color: inherit;\n font-weight: 600;\n text-align: center; }\n .swal2-range input,\n .swal2-range output {\n height: 2.625em;\n padding: 0;\n font-size: 1.125em;\n line-height: 2.625em; }\n\n.swal2-input {\n height: 2.625em;\n padding: 0 0.75em; }\n .swal2-input[type='number'] {\n max-width: 10em; }\n\n.swal2-file {\n background: inherit;\n font-size: 1.125em; }\n\n.swal2-textarea {\n height: 6.75em;\n padding: 0.75em; }\n\n.swal2-select {\n min-width: 50%;\n max-width: 100%;\n padding: .375em .625em;\n background: inherit;\n color: inherit;\n font-size: 1.125em; }\n\n.swal2-radio,\n.swal2-checkbox {\n align-items: center;\n justify-content: center;\n background: #fff;\n color: inherit; }\n .swal2-radio label,\n .swal2-checkbox label {\n margin: 0 .6em;\n font-size: 1.125em; }\n .swal2-radio input,\n .swal2-checkbox input {\n margin: 0 .4em; }\n\n.swal2-input-label {\n display: flex;\n justify-content: center;\n margin: 1em auto; }\n\n.swal2-validation-message {\n display: none;\n align-items: center;\n justify-content: center;\n margin: 0 -2.7em;\n padding: 0.625em;\n overflow: hidden;\n background: #f0f0f0;\n color: #666666;\n font-size: 1em;\n font-weight: 300; }\n .swal2-validation-message::before {\n content: '!';\n display: inline-block;\n width: 1.5em;\n min-width: 1.5em;\n height: 1.5em;\n margin: 0 .625em;\n border-radius: 50%;\n background-color: #f27474;\n color: #fff;\n font-weight: 600;\n line-height: 1.5em;\n text-align: center; }\n\n.swal2-icon {\n position: relative;\n box-sizing: content-box;\n justify-content: center;\n width: 5em;\n height: 5em;\n margin: 1.25em auto 1.875em;\n border: 0.25em solid transparent;\n border-radius: 50%;\n border-color: #000;\n font-family: inherit;\n line-height: 5em;\n cursor: default;\n user-select: none; }\n .swal2-icon .swal2-icon-content {\n display: flex;\n align-items: center;\n font-size: 3.75em; }\n .swal2-icon.swal2-error {\n border-color: #f27474;\n color: #f27474; }\n .swal2-icon.swal2-error .swal2-x-mark {\n position: relative;\n flex-grow: 1; }\n .swal2-icon.swal2-error [class^='swal2-x-mark-line'] {\n display: block;\n position: absolute;\n top: 2.3125em;\n width: 2.9375em;\n height: .3125em;\n border-radius: .125em;\n background-color: #f27474; }\n .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='left'] {\n left: 1.0625em;\n transform: rotate(45deg); }\n .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='right'] {\n right: 1em;\n transform: rotate(-45deg); }\n .swal2-icon.swal2-error.swal2-icon-show {\n animation: swal2-animate-error-icon .5s; }\n .swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark {\n animation: swal2-animate-error-x-mark .5s; }\n .swal2-icon.swal2-warning {\n border-color: #facea8;\n color: #f8bb86; }\n .swal2-icon.swal2-info {\n border-color: #9de0f6;\n color: #3fc3ee; }\n .swal2-icon.swal2-question {\n border-color: #c9dae1;\n color: #87adbd; }\n .swal2-icon.swal2-success {\n border-color: #a5dc86;\n color: #a5dc86; }\n .swal2-icon.swal2-success [class^='swal2-success-circular-line'] {\n position: absolute;\n width: 3.75em;\n height: 7.5em;\n transform: rotate(45deg);\n border-radius: 50%; }\n .swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='left'] {\n top: -.4375em;\n left: -2.0635em;\n transform: rotate(-45deg);\n transform-origin: 3.75em 3.75em;\n border-radius: 7.5em 0 0 7.5em; }\n .swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='right'] {\n top: -.6875em;\n left: 1.875em;\n transform: rotate(-45deg);\n transform-origin: 0 3.75em;\n border-radius: 0 7.5em 7.5em 0; }\n .swal2-icon.swal2-success .swal2-success-ring {\n position: absolute;\n z-index: 2;\n top: -.25em;\n left: -.25em;\n box-sizing: content-box;\n width: 100%;\n height: 100%;\n border: 0.25em solid rgba(165, 220, 134, 0.3);\n border-radius: 50%; }\n .swal2-icon.swal2-success .swal2-success-fix {\n position: absolute;\n z-index: 1;\n top: .5em;\n left: 1.625em;\n width: .4375em;\n height: 5.625em;\n transform: rotate(-45deg); }\n .swal2-icon.swal2-success [class^='swal2-success-line'] {\n display: block;\n position: absolute;\n z-index: 2;\n height: .3125em;\n border-radius: .125em;\n background-color: #a5dc86; }\n .swal2-icon.swal2-success [class^='swal2-success-line'][class$='tip'] {\n top: 2.875em;\n left: .8125em;\n width: 1.5625em;\n transform: rotate(45deg); }\n .swal2-icon.swal2-success [class^='swal2-success-line'][class$='long'] {\n top: 2.375em;\n right: .5em;\n width: 2.9375em;\n transform: rotate(-45deg); }\n .swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip {\n animation: swal2-animate-success-line-tip .75s; }\n .swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long {\n animation: swal2-animate-success-line-long .75s; }\n .swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right {\n animation: swal2-rotate-success-circular-line 4.25s ease-in; }\n\n.swal2-progress-steps {\n flex-wrap: wrap;\n align-items: center;\n max-width: 100%;\n margin: 0 0 1.25em;\n padding: 0;\n background: inherit;\n font-weight: 600; }\n .swal2-progress-steps li {\n display: inline-block;\n position: relative; }\n .swal2-progress-steps .swal2-progress-step {\n z-index: 20;\n flex-shrink: 0;\n width: 2em;\n height: 2em;\n border-radius: 2em;\n background: #2778c4;\n color: #fff;\n line-height: 2em;\n text-align: center; }\n .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step {\n background: #2778c4; }\n .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step {\n background: #add8e6;\n color: #fff; }\n .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step-line {\n background: #add8e6; }\n .swal2-progress-steps .swal2-progress-step-line {\n z-index: 10;\n flex-shrink: 0;\n width: 2.5em;\n height: .4em;\n margin: 0 -1px;\n background: #2778c4; }\n\n[class^='swal2'] {\n -webkit-tap-highlight-color: transparent; }\n\n.swal2-show {\n animation: swal2-show 0.3s; }\n\n.swal2-hide {\n animation: swal2-hide 0.15s forwards; }\n\n.swal2-noanimation {\n transition: none; }\n\n.swal2-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll; }\n\n.swal2-rtl .swal2-close {\n right: auto;\n left: 0; }\n\n.swal2-rtl .swal2-timer-progress-bar {\n right: 0;\n left: auto; }\n\n@supports (-ms-accelerator: true) {\n .swal2-range input {\n width: 100% !important; }\n .swal2-range output {\n display: none; } }\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n .swal2-range input {\n width: 100% !important; }\n .swal2-range output {\n display: none; } }\n\n@keyframes swal2-toast-show {\n 0% {\n transform: translateY(-0.625em) rotateZ(2deg); }\n 33% {\n transform: translateY(0) rotateZ(-2deg); }\n 66% {\n transform: translateY(0.3125em) rotateZ(2deg); }\n 100% {\n transform: translateY(0) rotateZ(0deg); } }\n\n@keyframes swal2-toast-hide {\n 100% {\n transform: rotateZ(1deg);\n opacity: 0; } }\n\n@keyframes swal2-toast-animate-success-line-tip {\n 0% {\n top: .5625em;\n left: .0625em;\n width: 0; }\n 54% {\n top: .125em;\n left: .125em;\n width: 0; }\n 70% {\n top: .625em;\n left: -.25em;\n width: 1.625em; }\n 84% {\n top: 1.0625em;\n left: .75em;\n width: .5em; }\n 100% {\n top: 1.125em;\n left: .1875em;\n width: .75em; } }\n\n@keyframes swal2-toast-animate-success-line-long {\n 0% {\n top: 1.625em;\n right: 1.375em;\n width: 0; }\n 65% {\n top: 1.25em;\n right: .9375em;\n width: 0; }\n 84% {\n top: .9375em;\n right: 0;\n width: 1.125em; }\n 100% {\n top: .9375em;\n right: .1875em;\n width: 1.375em; } }\n\n@keyframes swal2-show {\n 0% {\n transform: scale(0.7); }\n 45% {\n transform: scale(1.05); }\n 80% {\n transform: scale(0.95); }\n 100% {\n transform: scale(1); } }\n\n@keyframes swal2-hide {\n 0% {\n transform: scale(1);\n opacity: 1; }\n 100% {\n transform: scale(0.5);\n opacity: 0; } }\n\n@keyframes swal2-animate-success-line-tip {\n 0% {\n top: 1.1875em;\n left: .0625em;\n width: 0; }\n 54% {\n top: 1.0625em;\n left: .125em;\n width: 0; }\n 70% {\n top: 2.1875em;\n left: -.375em;\n width: 3.125em; }\n 84% {\n top: 3em;\n left: 1.3125em;\n width: 1.0625em; }\n 100% {\n top: 2.8125em;\n left: .8125em;\n width: 1.5625em; } }\n\n@keyframes swal2-animate-success-line-long {\n 0% {\n top: 3.375em;\n right: 2.875em;\n width: 0; }\n 65% {\n top: 3.375em;\n right: 2.875em;\n width: 0; }\n 84% {\n top: 2.1875em;\n right: 0;\n width: 3.4375em; }\n 100% {\n top: 2.375em;\n right: .5em;\n width: 2.9375em; } }\n\n@keyframes swal2-rotate-success-circular-line {\n 0% {\n transform: rotate(-45deg); }\n 5% {\n transform: rotate(-45deg); }\n 12% {\n transform: rotate(-405deg); }\n 100% {\n transform: rotate(-405deg); } }\n\n@keyframes swal2-animate-error-x-mark {\n 0% {\n margin-top: 1.625em;\n transform: scale(0.4);\n opacity: 0; }\n 50% {\n margin-top: 1.625em;\n transform: scale(0.4);\n opacity: 0; }\n 80% {\n margin-top: -.375em;\n transform: scale(1.15); }\n 100% {\n margin-top: 0;\n transform: scale(1);\n opacity: 1; } }\n\n@keyframes swal2-animate-error-icon {\n 0% {\n transform: rotateX(100deg);\n opacity: 0; }\n 100% {\n transform: rotateX(0deg);\n opacity: 1; } }\n\n@keyframes swal2-rotate-loading {\n 0% {\n transform: rotate(0deg); }\n 100% {\n transform: rotate(360deg); } }\n\nbody.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) {\n overflow: hidden; }\n\nbody.swal2-height-auto {\n height: auto !important; }\n\nbody.swal2-no-backdrop .swal2-container {\n top: auto;\n right: auto;\n bottom: auto;\n left: auto;\n max-width: calc(100% - 0.625em * 2);\n background-color: transparent !important; }\n body.swal2-no-backdrop .swal2-container > .swal2-modal {\n box-shadow: 0 0 10px rgba(0, 0, 0, 0.4); }\n body.swal2-no-backdrop .swal2-container.swal2-top {\n top: 0;\n left: 50%;\n transform: translateX(-50%); }\n body.swal2-no-backdrop .swal2-container.swal2-top-start, body.swal2-no-backdrop .swal2-container.swal2-top-left {\n top: 0;\n left: 0; }\n body.swal2-no-backdrop .swal2-container.swal2-top-end, body.swal2-no-backdrop .swal2-container.swal2-top-right {\n top: 0;\n right: 0; }\n body.swal2-no-backdrop .swal2-container.swal2-center {\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%); }\n body.swal2-no-backdrop .swal2-container.swal2-center-start, body.swal2-no-backdrop .swal2-container.swal2-center-left {\n top: 50%;\n left: 0;\n transform: translateY(-50%); }\n body.swal2-no-backdrop .swal2-container.swal2-center-end, body.swal2-no-backdrop .swal2-container.swal2-center-right {\n top: 50%;\n right: 0;\n transform: translateY(-50%); }\n body.swal2-no-backdrop .swal2-container.swal2-bottom {\n bottom: 0;\n left: 50%;\n transform: translateX(-50%); }\n body.swal2-no-backdrop .swal2-container.swal2-bottom-start, body.swal2-no-backdrop .swal2-container.swal2-bottom-left {\n bottom: 0;\n left: 0; }\n body.swal2-no-backdrop .swal2-container.swal2-bottom-end, body.swal2-no-backdrop .swal2-container.swal2-bottom-right {\n right: 0;\n bottom: 0; }\n\n@media print {\n body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) {\n overflow-y: scroll !important; }\n body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) > [aria-hidden='true'] {\n display: none; }\n body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container {\n position: static !important; } }\n\nbody.swal2-toast-shown .swal2-container {\n background-color: transparent; }\n body.swal2-toast-shown .swal2-container.swal2-top {\n top: 0;\n right: auto;\n bottom: auto;\n left: 50%;\n transform: translateX(-50%); }\n body.swal2-toast-shown .swal2-container.swal2-top-end, body.swal2-toast-shown .swal2-container.swal2-top-right {\n top: 0;\n right: 0;\n bottom: auto;\n left: auto; }\n body.swal2-toast-shown .swal2-container.swal2-top-start, body.swal2-toast-shown .swal2-container.swal2-top-left {\n top: 0;\n right: auto;\n bottom: auto;\n left: 0; }\n body.swal2-toast-shown .swal2-container.swal2-center-start, body.swal2-toast-shown .swal2-container.swal2-center-left {\n top: 50%;\n right: auto;\n bottom: auto;\n left: 0;\n transform: translateY(-50%); }\n body.swal2-toast-shown .swal2-container.swal2-center {\n top: 50%;\n right: auto;\n bottom: auto;\n left: 50%;\n transform: translate(-50%, -50%); }\n body.swal2-toast-shown .swal2-container.swal2-center-end, body.swal2-toast-shown .swal2-container.swal2-center-right {\n top: 50%;\n right: 0;\n bottom: auto;\n left: auto;\n transform: translateY(-50%); }\n body.swal2-toast-shown .swal2-container.swal2-bottom-start, body.swal2-toast-shown .swal2-container.swal2-bottom-left {\n top: auto;\n right: auto;\n bottom: 0;\n left: 0; }\n body.swal2-toast-shown .swal2-container.swal2-bottom {\n top: auto;\n right: auto;\n bottom: 0;\n left: 50%;\n transform: translateX(-50%); }\n body.swal2-toast-shown .swal2-container.swal2-bottom-end, body.swal2-toast-shown .swal2-container.swal2-bottom-right {\n top: auto;\n right: 0;\n bottom: 0;\n left: auto; }\n\nbody.swal2-toast-column .swal2-toast {\n flex-direction: column;\n align-items: stretch; }\n body.swal2-toast-column .swal2-toast .swal2-actions {\n flex: 1;\n align-self: stretch;\n height: 2.2em;\n margin-top: .3125em; }\n body.swal2-toast-column .swal2-toast .swal2-loading {\n justify-content: center; }\n body.swal2-toast-column .swal2-toast .swal2-input {\n height: 2em;\n margin: .3125em auto;\n font-size: 1em; }\n body.swal2-toast-column .swal2-toast .swal2-validation-message {\n font-size: 1em; }\n\n#toast-container.toast-top-right {\n top: 76px; }\n\n#toast-container .toast-close-button {\n right: -0.15em; }\n\n#toast-container .toast {\n opacity: 1 !important;\n background-image: none !important;\n border-radius: 0.25rem;\n box-shadow: 0 0 8px rgba(0, 0, 0, 0.35);\n display: flex;\n align-items: center; }\n #toast-container .toast:hover {\n box-shadow: 0 0 10px rgba(0, 0, 0, 0.6); }\n #toast-container .toast:before {\n font-family: FontAwesome;\n font-size: 25px;\n line-height: 20px;\n float: left;\n color: #ffffff;\n padding-right: 10px;\n margin: auto 0 auto -36px; }\n #toast-container .toast .toaster-icon {\n display: none; }\n #toast-container .toast .toast-message p {\n margin-bottom: 0.5rem; }\n #toast-container .toast .toast-message p:last-child {\n margin-bottom: 0; }\n #toast-container .toast.toast-danger, #toast-container .toast.toast-error {\n background-image: none !important;\n background-color: #dd4b39; }\n #toast-container .toast.toast-danger:before, #toast-container .toast.toast-error:before {\n content: \"\\F0E7\";\n margin-left: -30px; }\n #toast-container .toast.toast-warning {\n background-image: none !important;\n background-color: #bf7e16; }\n #toast-container .toast.toast-warning:before {\n content: \"\\F071\"; }\n #toast-container .toast.toast-info {\n background-image: none !important;\n background-color: #555555; }\n #toast-container .toast.toast-info:before {\n content: \"\\F05A\"; }\n #toast-container .toast.toast-success {\n background-image: none !important;\n background-color: #00a65a; }\n #toast-container .toast.toast-success:before {\n content: \"\\F00C\"; }\n\n.swal2-container {\n background-color: rgba(0, 0, 0, 0.3); }\n\n.swal2-popup {\n padding: 15px 0 0;\n background-color: #fff;\n color: #333333;\n border: 1px solid #9a9a9a;\n border-radius: 0.3rem;\n width: 34em; }\n .swal2-popup .swal2-header {\n padding: 0 15px; }\n .swal2-popup .swal2-icon {\n margin: 0 auto;\n width: auto;\n height: auto;\n border: none; }\n .swal2-popup .swal2-content {\n padding-bottom: 15px;\n font-size: 1rem;\n border-bottom: 1px solid #dee2e6; }\n .swal2-popup i.swal-custom-icon {\n display: block;\n margin: 0 auto;\n font-size: 35px; }\n .swal2-popup .swal2-title {\n padding: 10px 0 15px;\n margin: 0;\n font-size: 1.15rem;\n color: #333333; }\n .swal2-popup .swal2-content {\n font-size: 1rem;\n color: #333333;\n padding: 0 15px 15px; }\n .swal2-popup .swal2-actions {\n padding: 15px;\n margin: 0;\n background-color: #fbfbfb;\n border-radius: 0.3rem;\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n font-size: 1rem; }\n .swal2-popup .swal2-actions button {\n margin-right: 10px; }\n .swal2-popup .swal2-actions button.swal2-confirm {\n font-weight: bold; }\n .swal2-popup .swal2-actions button.swal2-cancel {\n background-color: #ffffff; }\n\ndate-input-polyfill[data-open=\"true\"] {\n z-index: 10000 !important; }\n\nhtml {\n font-size: 14px; }\n\nbody {\n min-width: 1010px; }\n body.layout_frontend {\n background-color: #ecf0f5; }\n body.full-width:not(.layout_frontend) .container {\n min-width: 980px;\n width: 90%; }\n\n.page-header, .secondary-header {\n border-bottom: 1px solid #dee2e6;\n padding-bottom: 0.6rem;\n margin-bottom: 0.5rem; }\n .page-header h1, .page-header h2, .page-header h3, .page-header h4, .secondary-header h1, .secondary-header h2, .secondary-header h3, .secondary-header h4 {\n margin: 0; }\n\nh1 small, h2 small, h3 small, h4 small, h5 small {\n font-size: 80%; }\n\ninput:required, select:required, textarea:required {\n box-shadow: none; }\n\n.secondary-header, .spaced-header {\n margin-top: 4rem; }\n\n.navbar {\n padding-left: 0;\n padding-right: 0; }\n .navbar .dropdown-menu {\n min-width: 200px;\n max-width: 300px; }\n .navbar .dropdown-menu .dropdown-item-text {\n line-height: 1.3; }\n .navbar .dropdown-menu .dropdown-item-text span, .navbar .dropdown-menu .dropdown-item-text small {\n display: block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .navbar .nav-link {\n font-weight: 600; }\n\n.navbar-brand {\n margin-top: -20px;\n margin-bottom: -20px; }\n\n.dropdown-menu button {\n cursor: pointer; }\n\n.container {\n width: 980px;\n max-width: none !important;\n margin: 0 auto;\n padding: 0; }\n\n.page-content {\n margin-top: 20px; }\n\n.footer {\n margin-top: 40px;\n padding: 40px 0 40px 0;\n border-top: 1px solid #dee2e6; }\n\n.list-group-item.active {\n border-left: 3px solid #175DDC;\n font-weight: bold;\n padding-left: calc(1.25rem - 3px); }\n\n.card-header, .modal-header {\n font-weight: bold;\n text-transform: uppercase; }\n .card-header small, .modal-header small {\n font-weight: normal;\n text-transform: none; }\n\n.card-body-header {\n font-size: 1.15rem; }\n\n.card ul.fa-ul.card-ul {\n margin-left: 1.9em; }\n .card ul.fa-ul.card-ul li {\n word-break: break-all; }\n .card ul.fa-ul.card-ul .fa-li {\n top: 4px; }\n .card ul.fa-ul.card-ul.carets {\n margin-left: 1.1em; }\n .card ul.fa-ul.card-ul.carets .fa-li {\n left: -17px;\n width: 1.1em; }\n .card ul.fa-ul.card-ul ul.carets {\n margin-left: 0.85em; }\n\n.card-org-plans h2 {\n font-size: 1.15rem; }\n\n.modal-dialog {\n width: 500px; }\n\n.modal-sm {\n width: 300px; }\n\n.modal-lg {\n width: 800px; }\n\n.modal-body h3, .modal-body .section-header > * {\n font-weight: normal;\n text-transform: uppercase;\n color: #6c757d; }\n\n.modal .list-group-flush :first-child {\n border-top: none; }\n\n.modal .list-group-flush :last-child {\n border-bottom: none; }\n\n.modal-footer {\n justify-content: flex-start;\n background-color: #fbfbfb;\n border-radius: 0.3rem; }\n\nlabel:not(.form-check-label):not(.btn), label.bold {\n font-weight: 600; }\n\ninput[type=\"search\"]::-webkit-search-cancel-button {\n -webkit-appearance: searchfield-cancel-button; }\n\n.btn[class*=\"btn-outline-\"]:not(:hover), .swal2-popup .swal2-actions button[class*=\"btn-outline-\"]:not(:hover) {\n border-color: #ced4da;\n background-color: #fbfbfb; }\n\n.btn-link:focus, .btn-link.focus {\n outline-color: -webkit-focus-ring-color;\n outline-offset: 1px;\n outline-style: auto;\n outline-width: 1px; }\n\n.btn-outline-secondary, .swal2-popup .swal2-actions button.swal2-cancel {\n color: #6c757d; }\n .btn-outline-secondary:hover:not(:disabled), .swal2-popup .swal2-actions button.swal2-cancel:hover:not(:disabled) {\n color: #333333; }\n .btn-outline-secondary:disabled, .swal2-popup .swal2-actions button.swal2-cancel:disabled {\n opacity: 1; }\n .btn-outline-secondary:focus, .swal2-popup .swal2-actions button.swal2-cancel:focus, .btn-outline-secondary.focus, .swal2-popup .swal2-actions button.focus.swal2-cancel {\n box-shadow: 0 0 0 0.2rem rgba(58, 117, 225, 0.5); }\n\n.btn-submit {\n position: relative; }\n .btn-submit .fa-spinner {\n position: absolute;\n display: none;\n align-items: center;\n justify-content: center;\n bottom: 0;\n top: 0;\n left: 0;\n right: 0; }\n .btn-submit:disabled:not(.manual) .fa-spinner, .btn-submit.loading .fa-spinner {\n display: flex; }\n .btn-submit:disabled:not(.manual) span, .btn-submit.loading span {\n visibility: hidden; }\n\n.list-group-item:focus, .list-group-item.focus {\n z-index: 100; }\n\n.fa-icon-above-input {\n height: 1.5em; }\n\n.table.table-list thead th {\n border-top: none; }\n\n.table.table-list tr:first-child td {\n border: none; }\n\n.table.table-list td {\n vertical-align: middle; }\n .table.table-list td.reduced-lh {\n line-height: 1; }\n .table.table-list td.reduced-lh small {\n font-size: 80%; }\n .table.table-list td small, .table.table-list td > .fa, .table.table-list td .icon {\n color: #6c757d; }\n\n.table.table-list td.wrap {\n word-break: break-all; }\n\n.table.table-list td.table-list-options {\n width: 76px;\n max-width: 76px;\n text-align: right;\n height: 50px; }\n .table.table-list td.table-list-options.wider {\n width: 100px;\n max-width: 100px; }\n .table.table-list td.table-list-options .btn, .table.table-list td.table-list-options .swal2-popup .swal2-actions button, .swal2-popup .swal2-actions .table.table-list td.table-list-options button {\n line-height: 1;\n transition: initial; }\n .table.table-list td.table-list-options .dropdown-menu {\n line-height: 1.5; }\n\n.table.table-list td.table-list-icon {\n width: 45px;\n max-width: 45px;\n text-align: center; }\n .table.table-list td.table-list-icon img {\n max-height: 24px; }\n\n.table.table-list td.table-list-checkbox {\n width: 35px;\n max-width: 35px; }\n\n.table.table-list td.table-list-strike {\n color: #6c757d;\n text-decoration: line-through; }\n\n.text-lg {\n font-size: 1.15rem; }\n\n.text-strike {\n text-decoration: line-through; }\n\n.font-weight-semibold {\n font-weight: 600; }\n\n.password-wrapper {\n word-break: break-all;\n white-space: pre-wrap;\n min-width: 0; }\n\n.password-row {\n min-width: 0; }\n\n.password-number {\n color: #007fde; }\n\n.password-special {\n color: #c40800; }\n\napp-vault-groupings .card #search, app-org-vault-groupings .card #search, .groupings .card #search {\n margin-bottom: 1rem; }\n\napp-vault-groupings .card h3, app-org-vault-groupings .card h3, .groupings .card h3 {\n font-weight: normal;\n text-transform: uppercase;\n color: #6c757d; }\n\napp-vault-groupings .card ul:last-child, app-org-vault-groupings .card ul:last-child, .groupings .card ul:last-child {\n margin-bottom: 0; }\n\napp-vault-groupings .card .card-body a, app-org-vault-groupings .card .card-body a, .groupings .card .card-body a {\n color: #333333; }\n app-vault-groupings .card .card-body a:hover.text-muted, app-org-vault-groupings .card .card-body a:hover.text-muted, .groupings .card .card-body a:hover.text-muted {\n color: #333333 !important; }\n\napp-vault-groupings .card .show-active, app-org-vault-groupings .card .show-active, .groupings .card .show-active {\n display: none; }\n\napp-vault-groupings .card li > .fa, app-vault-groupings .card li > div > .fa, app-org-vault-groupings .card li > .fa, app-org-vault-groupings .card li > div > .fa, .groupings .card li > .fa, .groupings .card li > div > .fa {\n cursor: pointer; }\n\napp-vault-groupings .card li.active > .show-active, app-vault-groupings .card li.active > div .show-active, app-org-vault-groupings .card li.active > .show-active, app-org-vault-groupings .card li.active > div .show-active, .groupings .card li.active > .show-active, .groupings .card li.active > div .show-active {\n display: inline; }\n\napp-vault-groupings .card li.active > a:first-of-type, app-vault-groupings .card li.active > div a:first-of-type, app-org-vault-groupings .card li.active > a:first-of-type, app-org-vault-groupings .card li.active > div a:first-of-type, .groupings .card li.active > a:first-of-type, .groupings .card li.active > div a:first-of-type {\n font-weight: bold;\n color: #175DDC; }\n\napp-vault-groupings .card li.active > .fa, app-vault-groupings .card li.active > div > .fa, app-org-vault-groupings .card li.active > .fa, app-org-vault-groupings .card li.active > div > .fa, .groupings .card li.active > .fa, .groupings .card li.active > div > .fa {\n color: #175DDC; }\n\napp-password-generator #lengthRange {\n width: 100%; }\n\napp-password-generator .card-password .card-body {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n text-align: center;\n font-size: 1.15rem;\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace; }\n\napp-password-generator-history .list-group-item {\n line-height: 1; }\n app-password-generator-history .list-group-item .password {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace; }\n\napp-import textarea {\n height: 150px; }\n\napp-user-billing .progress {\n height: 20px; }\n app-user-billing .progress .progress-bar {\n min-width: 50px; }\n\n#duo-frame {\n background: url(../images/loading.svg) 0 0 no-repeat;\n height: 330px; }\n #duo-frame iframe {\n width: 100%;\n height: 100%;\n border: none; }\n\n#bt-dropin-container {\n background: url(../images/loading.svg) 0 0 no-repeat;\n min-height: 50px; }\n\n.braintree-placeholder, .braintree-sheet__header {\n display: none; }\n\n.braintree-sheet__content--button {\n text-align: left;\n padding: 0;\n min-height: 0; }\n\n.braintree-sheet__container {\n margin-bottom: 0; }\n\n.braintree-sheet {\n border: none; }\n\n.totp .totp-code {\n font-size: 1.2rem; }\n\n.totp .totp-countdown {\n margin: 3px 3px 0 0;\n display: block;\n user-select: none; }\n .totp .totp-countdown .totp-sec {\n font-size: 0.85em;\n position: absolute;\n line-height: 32px;\n width: 32px;\n text-align: center; }\n .totp .totp-countdown svg {\n width: 32px;\n height: 32px;\n transform: rotate(-90deg); }\n .totp .totp-countdown .totp-circle {\n fill: none;\n stroke: #175DDC; }\n .totp .totp-countdown .totp-circle.inner {\n stroke-width: 3;\n stroke-dasharray: 78.6;\n stroke-dashoffset: 0; }\n .totp .totp-countdown .totp-circle.outer {\n stroke-width: 2;\n stroke-dasharray: 88;\n stroke-dashoffset: 0; }\n\n.totp > .align-items-center {\n margin-bottom: -5px; }\n\n.totp.low .totp-sec, .totp.low .totp-code {\n color: #dd4b39; }\n\n.totp.low .totp-circle {\n stroke: #dd4b39; }\n\n.callout {\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-left-width: 5px;\n border-radius: calc(0.25rem - 1px);\n background-color: #fafafa; }\n .callout .callout-heading {\n margin-top: 0; }\n .callout h3.callout-heading {\n font-weight: bold;\n text-transform: uppercase; }\n .callout.callout-primary {\n border-left-color: #175DDC; }\n .callout.callout-primary .callout-heading {\n color: #175DDC; }\n .callout.callout-info {\n border-left-color: #343a40; }\n .callout.callout-info .callout-heading {\n color: #343a40; }\n .callout.callout-danger {\n border-left-color: #dd4b39; }\n .callout.callout-danger .callout-heading {\n color: #dd4b39; }\n .callout.callout-success {\n border-left-color: #00a65a; }\n .callout.callout-success .callout-heading {\n color: #00a65a; }\n .callout.callout-warning {\n border-left-color: #bf7e16; }\n .callout.callout-warning .callout-heading {\n color: #bf7e16; }\n\n.list-group-2fa .logo-2fa {\n min-width: 100px; }\n\n.form-check-block .form-check-label {\n font-weight: 600; }\n .form-check-block .form-check-label > small {\n display: block;\n color: #6c757d;\n font-weight: normal; }\n .form-check-block .form-check-label > span {\n display: block;\n font-weight: normal; }\n\n.form-inline input[type='datetime-local'] {\n width: 200px; }\n\n.form-control.stripe-form-control {\n padding-top: 0.55rem; }\n .form-control.stripe-form-control.is-focused {\n color: #495057;\n background-color: #ffffff;\n border-color: #81a9f2;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 93, 220, 0.25); }\n .form-control.stripe-form-control.is-focused.is-invalid {\n box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.25); }\n .form-control.stripe-form-control.is-invalid {\n border-color: #dd4b39; }\n\n.org-nav {\n background-color: #fbfbfb;\n border-bottom: 1px solid #dee2e6;\n height: 100px;\n min-height: 100px; }\n .org-nav .container {\n height: 100%; }\n .org-nav .nav-tabs {\n border-bottom: none; }\n .org-nav .nav-tabs a {\n color: #333333; }\n .org-nav .nav-tabs a:not(.active) {\n border-color: transparent; }\n .org-nav .nav-tabs a.active {\n border-top: 3px solid #175DDC;\n font-weight: bold;\n padding-top: calc(0.5rem - 2px); }\n .org-nav .nav-tabs a.disabled {\n color: #b4b4b4; }\n .org-nav .org-name {\n line-height: 1; }\n .org-nav .org-name span {\n font-size: 1.15rem;\n display: block; }\n\nimg.logo {\n width: 284px;\n height: 43px;\n margin: 0 auto;\n display: block; }\n\n.min-height-fix {\n min-height: 1px; }\n\n.overflow-hidden {\n overflow: hidden; }\n\n.cdk-drag-preview {\n z-index: 1070 !important;\n opacity: 0.8;\n background-color: #fff;\n border-radius: 0.25rem; }\n\n.cursor-move {\n cursor: move !important; }\n\n.layout.enterprise2 header {\n color: #ced4da;\n background-color: #175DDC; }\n .layout.enterprise2 header:before {\n content: \"\";\n position: absolute;\n z-index: -1;\n width: 100%;\n height: 340px;\n left: 0;\n transform: skewY(-3deg);\n background: #175DDC; }\n .layout.enterprise2 header img.logo {\n margin: 12px 0 0;\n width: 284px;\n max-width: 284px;\n height: auto; }\n\n.layout.enterprise2 h2 {\n color: #ffffff;\n font-size: 1.8rem;\n margin: 100px 0 150px 0; }\n\n.layout.enterprise2 p {\n margin: 20px 0 40px 0;\n font-size: 1.4rem; }\n .layout.enterprise2 p:before {\n content: \"/\";\n padding-right: 12px; }\n .layout.enterprise2 p:not(.highlight):before {\n color: #1252A3; }\n .layout.enterprise2 p b:after {\n content: \"\\27F6\";\n font-size: 2rem;\n padding-left: 6px; }\n\n.layout.enterprise2 blockquote {\n margin: 20px 0 0 0;\n font-size: 1.4rem;\n padding-right: 40px; }\n"],"sourceRoot":""} \ No newline at end of file diff --git a/app/main.d8139e017ad9a069b29d.js b/app/main.d8139e017ad9a069b29d.js deleted file mode 100644 index 666fedfb..00000000 --- a/app/main.d8139e017ad9a069b29d.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(e){function t(t){for(var r,o,s=t[0],l=t[1],c=t[2],u=0,d=[];u1&&(r+=e.slice(1)),void 0===t[e=r]&&(e=e.toLowerCase()),void 0===t[e]&&(e=e.toUpperCase())}return t[e]},e}();t.BaseResponse=r},,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0),n(3);var r=n(0),i=n(3),a=n(4);function o(e,t){if(1&e&&r.ɵɵelement(0,"i",4),2&e){var n=r.ɵɵnextContext(2);r.ɵɵclassMapInterpolate1("fa ",n.icon,"")}}function s(e,t){if(1&e&&(r.ɵɵelementStart(0,"h3",2),r.ɵɵtext(1,"\n "),r.ɵɵtemplate(2,o,1,3,"i",3),r.ɵɵtext(3),r.ɵɵelementEnd()),2&e){var n=r.ɵɵnextContext();r.ɵɵadvance(2),r.ɵɵproperty("ngIf",n.icon),r.ɵɵadvance(1),r.ɵɵtextInterpolate1("\n ",n.title,"\n ")}}var l=function(e){return{clickable:e}},c=["*"],p=function(){function e(e){this.i18nService=e,this.type="info"}return e.prototype.ngOnInit=function(){this.calloutStyle=this.type,"warning"===this.type||"danger"===this.type?("danger"===this.type&&(this.calloutStyle="danger"),void 0===this.title&&(this.title=this.i18nService.t("warning")),void 0===this.icon&&(this.icon="fa-warning")):"error"===this.type?(this.calloutStyle="danger",void 0===this.title&&(this.title=this.i18nService.t("error")),void 0===this.icon&&(this.icon="fa-bolt")):"tip"===this.type&&(this.calloutStyle="success",void 0===this.title&&(this.title=this.i18nService.t("tip")),void 0===this.icon&&(this.icon="fa-lightbulb-o"))},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(i.I18nService))},e.ɵcmp=r.ɵɵdefineComponent({type:e,selectors:[["app-callout"]],inputs:{type:"type",icon:"icon",title:"title",clickable:"clickable"},ngContentSelectors:c,decls:7,vars:7,consts:[["role","alert",3,"ngClass"],["class","callout-heading",4,"ngIf"],[1,"callout-heading"],["aria-hidden","true",3,"class",4,"ngIf"],["aria-hidden","true"]],template:function(e,t){1&e&&(r.ɵɵprojectionDef(),r.ɵɵelementStart(0,"div",0),r.ɵɵtext(1,"\n "),r.ɵɵtemplate(2,s,4,2,"h3",1),r.ɵɵtext(3,"\n "),r.ɵɵprojection(4),r.ɵɵtext(5,"\n"),r.ɵɵelementEnd(),r.ɵɵtext(6,"\n")),2&e&&(r.ɵɵclassMapInterpolate1("callout callout-",t.calloutStyle,""),r.ɵɵproperty("ngClass",r.ɵɵpureFunction1(5,l,t.clickable)),r.ɵɵadvance(2),r.ɵɵproperty("ngIf",t.title))},directives:[a.NgClass,a.NgIf],encapsulation:2}),e}();t.CalloutComponent=p},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(702),i=n(144),a=n(158),o=n(257),s=n(32),l=n(211),c=n(129),p=n(161),u=n(94),d=n(40),m=n(128),h=n(113),f=n(701),v=function(){function e(){this.organizationId=null,this.logService=new f.ConsoleLogService(!1),this.newLineRegex=/(?:\r\n|\r|\n)/,this.passwordFieldNames=["password","pass word","passphrase","pass phrase","pass","code","code word","codeword","secret","secret word","personpwd","key","keyword","key word","keyphrase","key phrase","form_pw","wppassword","pin","pwd","pw","pword","passwd","p","serial","serial#","license key","reg #","passwort"],this.usernameFieldNames=["user","name","user name","username","login name","email","e-mail","id","userid","user id","login","form_loginname","wpname","mail","loginid","login id","log","personlogin","first name","last name","card#","account #","member","member #","nom","benutzername"],this.notesFieldNames=["note","notes","comment","comments","memo","description","free form","freeform","free text","freetext","free","kommentar"],this.uriFieldNames=["url","hyper link","hyperlink","link","host","hostname","host name","server","address","hyper ref","href","web","website","web site","site","web-site","uri","ort","adresse"],this.parseCsvOptions={encoding:"UTF-8",skipEmptyLines:!1}}return Object.defineProperty(e.prototype,"organization",{get:function(){return null!=this.organizationId},enumerable:!0,configurable:!0}),e.prototype.parseXml=function(e){var t=(new DOMParser).parseFromString(e,"application/xml");return null!=t&&null==t.querySelector("parsererror")?t:null},e.prototype.parseCsv=function(e,t,n){var i=this;void 0===n&&(n={});var a=Object.assign({header:t},this.parseCsvOptions,n);e=this.splitNewLine(e).join("\n").trim();var o=r.parse(e,a);return null!=o.errors&&o.errors.length>0&&o.errors.forEach(function(e){null!=e.row&&i.logService.warning("Error parsing row "+e.row+": "+e.message)}),o.data&&o.data.length>0?o.data:null},e.prototype.parseSingleRowCsv=function(e){if(this.isNullOrWhitespace(e))return null;var t=this.parseCsv(e,!1);return null!=t&&t.length>0&&t[0].length>0?t[0]:null},e.prototype.makeUriArray=function(e){var t=this;if(null==e)return null;if("string"==typeof e){var n=new o.LoginUriView;return n.uri=this.fixUri(e),this.isNullOrWhitespace(n.uri)?null:(n.match=null,[n])}if(e.length>0){var r=[];return e.forEach(function(e){var n=new o.LoginUriView;n.uri=t.fixUri(e),t.isNullOrWhitespace(n.uri)||(n.match=null,r.push(n))}),0===r.length?null:r}return null},e.prototype.fixUri=function(e){return null==e?null:(-1===(e=e.trim()).indexOf("://")&&e.indexOf(".")>=0&&(e="http://"+e),e.length>1e3?e.substring(0,1e3):e)},e.prototype.nameFromUrl=function(e){var t=s.Utils.getHostname(e);return this.isNullOrWhitespace(t)?null:t.startsWith("www.")?t.replace("www.",""):t},e.prototype.isNullOrWhitespace=function(e){return s.Utils.isNullOrWhitespace(e)},e.prototype.getValueOrDefault=function(e,t){return void 0===t&&(t=null),this.isNullOrWhitespace(e)?t:e},e.prototype.splitNewLine=function(e){return e.split(this.newLineRegex)},e.prototype.getCardBrand=function(e){if(this.isNullOrWhitespace(e))return null;var t=new RegExp("^4");return null!=e.match(t)?"Visa":/^(5[1-5][0-9]{14}|2(22[1-9][0-9]{12}|2[3-9][0-9]{13}|[3-6][0-9]{14}|7[0-1][0-9]{13}|720[0-9]{12}))$/.test(e)?"Mastercard":(t=new RegExp("^3[47]"),null!=e.match(t)?"Amex":(t=new RegExp("^(6011|622(12[6-9]|1[3-9][0-9]|[2-8][0-9]{2}|9[0-1][0-9]|92[0-5]|64[4-9])|65)"),null!=e.match(t)?"Discover":(t=new RegExp("^36"),null!=e.match(t)?"Diners Club":(t=new RegExp("^30[0-5]"),null!=e.match(t)?"Diners Club":(t=new RegExp("^35(2[89]|[3-8][0-9])"),null!=e.match(t)?"JCB":(t=new RegExp("^(4026|417500|4508|4844|491(3|7))"),null!=e.match(t)?"Visa":null))))))},e.prototype.setCardExpiration=function(e,t){if(!this.isNullOrWhitespace(t)){var n=t.split("/");if(2===n.length){var r=null,i=null;if(1!==n[0].length&&2!==n[0].length||2===(r=n[0]).length&&"0"===r[0]&&(r=r.substr(1,1)),2!==n[1].length&&4!==n[1].length||(i=2===r.length?"20"+n[1]:n[1]),null!=r&&null!=i)return e.card.expMonth=r,e.card.expYear=i,!0}}return!1},e.prototype.moveFoldersToCollections=function(e){e.folderRelationships.forEach(function(t){return e.collectionRelationships.push(t)}),e.collections=e.folders.map(function(e){var t=new a.CollectionView;return t.name=e.name,t}),e.folderRelationships=[],e.folders=[]},e.prototype.querySelectorDirectChild=function(e,t){var n=this.querySelectorAllDirectChild(e,t);return 0===n.length?null:n[0]},e.prototype.querySelectorAllDirectChild=function(e,t){return Array.from(e.querySelectorAll(t)).filter(function(t){return t.parentNode===e})},e.prototype.initLoginCipher=function(){var e=new i.CipherView;return e.favorite=!1,e.notes="",e.fields=[],e.login=new p.LoginView,e.type=d.CipherType.Login,e},e.prototype.cleanupCipher=function(e){null!=e&&(e.type!==d.CipherType.Login&&(e.login=null),this.isNullOrWhitespace(e.name)&&(e.name="--"),this.isNullOrWhitespace(e.notes)?e.notes=null:e.notes=e.notes.trim(),null!=e.fields&&0===e.fields.length&&(e.fields=null))},e.prototype.processKvp=function(e,t,n,r){if(void 0===r&&(r=m.FieldType.Text),!this.isNullOrWhitespace(n))if(this.isNullOrWhitespace(t)&&(t=""),n.length>200||n.trim().search(this.newLineRegex)>-1)null==e.notes&&(e.notes=""),e.notes+=t+": "+this.splitNewLine(n).join("\n")+"\n";else{null==e.fields&&(e.fields=[]);var i=new l.FieldView;i.type=r,i.name=t,i.value=n,e.fields.push(i)}},e.prototype.processFolder=function(e,t){var n=e.folders.length,r=!this.isNullOrWhitespace(t),i=r;if(r)for(var a=0;a-1&&(n=t.getUrlObject("http://"+e)));return n},t.getUrlObject=function(e){try{if(null!=o)return o.URL?new o.URL(e):o.parse(e);if("function"==typeof URL)return new URL(e);if(null!=window){var t=e.indexOf("://")>-1;if(!t&&e.indexOf(".")>-1)e="http://"+e;else if(!t)return null;var n=window.document.createElement("a");return n.href=e,n}}catch(r){}return null},t.inited=!1,t.isNativeScript=!1,t.isNode=!1,t.isBrowser=!0,t.isMobileBrowser=!1,t.isAppleMobileBrowser=!1,t.global=null,t.tldEndingRegex=/.*\.(com|net|org|edu|uk|gov|ca|de|jp|fr|au|ru|ch|io|es|us|co|xyz|info|ly|mil)$/,t}();t.Utils=s,s.init()}).call(this,n(127),n(110),n(105).Buffer)},,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.PasswordGenerationService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(0),i=function(){function e(){}return e.prototype.onClick=function(e){e.preventDefault()},e.ɵfac=function(t){return new(t||e)},e.ɵdir=r.ɵɵdefineDirective({type:e,selectors:[["","appStopClick",""]],hostBindings:function(e,t){1&e&&r.ɵɵlistener("click",function(e){return t.onClick(e)})}}),e}();t.StopClickDirective=i},,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.StateService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Login=1]="Login",e[e.SecureNote=2]="SecureNote",e[e.Card=3]="Card",e[e.Identity=4]="Identity"}(t.CipherType||(t.CipherType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.CollectionService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.StorageService=r},,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.PolicyService=r},,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(0),i=function(){function e(e,t){this.el=e,this.renderer=t}return Object.defineProperty(e.prototype,"appInputVerbatim",{set:function(e){this.disableComplete=""===e||!0===e},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){this.disableComplete&&!this.el.nativeElement.hasAttribute("autocomplete")&&this.renderer.setAttribute(this.el.nativeElement,"autocomplete","off"),this.el.nativeElement.hasAttribute("autocapitalize")||this.renderer.setAttribute(this.el.nativeElement,"autocapitalize","none"),this.el.nativeElement.hasAttribute("autocorrect")||this.renderer.setAttribute(this.el.nativeElement,"autocorrect","none"),this.el.nativeElement.hasAttribute("spellcheck")||this.renderer.setAttribute(this.el.nativeElement,"spellcheck","false"),this.el.nativeElement.hasAttribute("inputmode")||this.renderer.setAttribute(this.el.nativeElement,"inputmode","verbatim")},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(r.ElementRef),r.ɵɵdirectiveInject(r.Renderer2))},e.ɵdir=r.ɵɵdefineDirective({type:e,selectors:[["","appInputVerbatim",""]],inputs:{appInputVerbatim:"appInputVerbatim"}}),e}();t.InputVerbatimDirective=i},,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.FolderService=r},,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(0),i=function(){function e(){}return e.prototype.onClick=function(e){e.stopPropagation()},e.ɵfac=function(t){return new(t||e)},e.ɵdir=r.ɵɵdefineDirective({type:e,selectors:[["","appStopProp",""]],hostBindings:function(e,t){1&e&&r.ɵɵlistener("click",function(e){return t.onClick(e)})}}),e}();t.StopPropDirective=i},,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.AuthService=r},,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.SyncService=r},,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.EnvironmentService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(32),i=n(0),a=function(){function e(e){this.el=e}return Object.defineProperty(e.prototype,"appAutofocus",{set:function(e){this.autofocus=""===e||!0===e},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){!r.Utils.isMobileBrowser&&this.autofocus&&this.el.nativeElement.focus()},e.ɵfac=function(t){return new(t||e)(i.ɵɵdirectiveInject(i.ElementRef))},e.ɵdir=i.ɵɵdefineDirective({type:e,selectors:[["","appAutofocus",""]],inputs:{appAutofocus:"appAutofocus"}}),e}();t.AutofocusDirective=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){this.environmentUrlsKey=e.environmentUrlsKey,this.disableGaKey=e.disableGaKey,this.disableAddLoginNotificationKey=e.disableAddLoginNotificationKey,this.disableContextMenuItemKey=e.disableContextMenuItemKey,this.disableFaviconKey=e.disableFaviconKey,this.disableBadgeCounterKey=e.disableBadgeCounterKey,this.disableAutoTotpCopyKey=e.disableAutoTotpCopyKey,this.enableAutoFillOnPageLoadKey=e.enableAutoFillOnPageLoadKey,this.vaultTimeoutKey=e.vaultTimeoutKey,this.vaultTimeoutActionKey=e.vaultTimeoutActionKey,this.lastActiveKey=e.lastActiveKey,this.neverDomainsKey=e.neverDomainsKey,this.installedVersionKey=e.installedVersionKey,this.localeKey=e.localeKey,this.themeKey=e.themeKey,this.collapsedGroupingsKey=e.collapsedGroupingsKey,this.autoConfirmFingerprints=e.autoConfirmFingerprints,this.dontShowCardsCurrentTab=e.dontShowCardsCurrentTab,this.dontShowIdentitiesCurrentTab=e.dontShowIdentitiesCurrentTab,this.defaultUriMatch=e.defaultUriMatch,this.pinProtectedKey=e.pinProtectedKey,this.protectedPin=e.protectedPin,this.clearClipboardKey=e.clearClipboardKey,this.eventCollectionKey=e.eventCollectionKey,this.ssoCodeVerifierKey=e.ssoCodeVerifierKey,this.ssoStateKey=e.ssoStateKey,this.biometricUnlockKey=e.biometricUnlockKey,this.biometricText=e.biometricText,this.biometricAwaitingAcceptance=e.biometricAwaitingAcceptance,this.biometricFingerprintValidated=e.biometricFingerprintValidated}return e.environmentUrlsKey="environmentUrls",e.disableGaKey="disableGa",e.disableAddLoginNotificationKey="disableAddLoginNotification",e.disableChangedPasswordNotificationKey="disableChangedPasswordNotification",e.disableContextMenuItemKey="disableContextMenuItem",e.disableFaviconKey="disableFavicon",e.disableBadgeCounterKey="disableBadgeCounter",e.disableAutoTotpCopyKey="disableAutoTotpCopy",e.enableAutoFillOnPageLoadKey="enableAutoFillOnPageLoad",e.vaultTimeoutKey="lockOption",e.vaultTimeoutActionKey="vaultTimeoutAction",e.lastActiveKey="lastActive",e.neverDomainsKey="neverDomains",e.installedVersionKey="installedVersion",e.localeKey="locale",e.themeKey="theme",e.collapsedGroupingsKey="collapsedGroupings",e.autoConfirmFingerprints="autoConfirmFingerprints",e.dontShowCardsCurrentTab="dontShowCardsCurrentTab",e.dontShowIdentitiesCurrentTab="dontShowIdentitiesCurrentTab",e.defaultUriMatch="defaultUriMatch",e.pinProtectedKey="pinProtectedKey",e.protectedPin="protectedPin",e.clearClipboardKey="clearClipboardKey",e.eventCollectionKey="eventCollection",e.ssoCodeVerifierKey="ssoCodeVerifier",e.ssoStateKey="ssoState",e.biometricUnlockKey="biometric",e.biometricText="biometricText",e.biometricAwaitingAcceptance="biometricAwaitingAcceptance",e.biometricFingerprintValidated="biometricFingerprintValidated",e}();t.ConstantsService=r},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.EventService=r},,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.PasswordVerificationRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.SearchService=r},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]-1?e[o]=s||null:e[o]=s?new a.CipherString(s):null}},e.prototype.buildDataModel=function(e,t,n,r){for(var i in void 0===r&&(r=[]),n)if(n.hasOwnProperty(i)){var a=e[n[i]||i];r.indexOf(i)>-1?t[i]=null!=a?a:null:t[i]=null!=a?a.encryptedString:null}},e.prototype.decryptObj=function(e,t,n,a){return void 0===a&&(a=null),r(this,void 0,void 0,function(){var r,o,s;return i(this,function(i){switch(i.label){case 0:for(s in r=[],o=this,t)t.hasOwnProperty(s)&&function(i){var s=Promise.resolve().then(function(){var e=t[i]||i;return o[e]?o[e].decrypt(n,a):null}).then(function(t){e[i]=t});r.push(s)}(s);return[4,Promise.all(r)];case 1:return i.sent(),[2,e]}})})},e}();t.default=o},,,function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(271),o=(n(0),n(838)),s=n(32),l=(n(15),n(0)),c=n(15);function p(e,t){}var u=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.el=null,r}return i(t,e),t.prototype.ngOnDestroy=function(){},t.prototype.show=function(e,t,n,r){var i=this;void 0===n&&(n=!0),void 0===r&&(r=null),this.parentContainer=t,this.fade=n;var o=this.componentFactoryResolver.resolveComponentFactory(e),l=this.container.createComponent(o);null!=r&&r(l.instance);var c=Array.from(document.querySelectorAll(".modal"));return c.length>0&&(this.el=a(c[0]),this.el.modal("show"),this.el.on("show.bs.modal",function(){i.onShow.emit(),i.messagingService.send("modalShow")}),this.el.on("shown.bs.modal",function(){i.onShown.emit(),i.messagingService.send("modalShown"),s.Utils.isMobileBrowser||i.el.find("*[appAutoFocus]").focus()}),this.el.on("hide.bs.modal",function(){i.onClose.emit(),i.messagingService.send("modalClose")}),this.el.on("hidden.bs.modal",function(){i.onClosed.emit(),i.messagingService.send("modalClosed"),null!=i.parentContainer&&i.parentContainer.clear()})),l.instance},t.prototype.close=function(){null!=this.el&&this.el.modal("hide")},t.ɵfac=function(e){return new(e||t)(l.ɵɵdirectiveInject(l.ComponentFactoryResolver),l.ɵɵdirectiveInject(c.MessagingService))},t.ɵcmp=l.ɵɵdefineComponent({type:t,selectors:[["app-modal"]],features:[l.ɵɵInheritDefinitionFeature],decls:2,vars:0,consts:[["container",""]],template:function(e,t){1&e&&l.ɵɵtemplate(0,p,0,0,"ng-template",null,0,l.ɵɵtemplateRefExtractor)},encapsulation:2}),t}(o.ModalComponent);t.ModalComponent=u},,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.AuditService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.cardholderName=null,this.expMonth=null,this.expYear=null,this.code=null,this._brand=null,this._number=null,this._subTitle=null}return Object.defineProperty(e.prototype,"maskedCode",{get:function(){return null!=this.code?"•".repeat(this.code.length):null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"brand",{get:function(){return this._brand},set:function(e){this._brand=e,this._subTitle=null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"number",{get:function(){return this._number},set:function(e){this._number=e,this._subTitle=null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"subTitle",{get:function(){if(null==this._subTitle&&(this._subTitle=this.brand,null!=this.number&&this.number.length>=4)){null!=this._subTitle&&""!==this._subTitle?this._subTitle+=", ":this._subTitle="";var e=this.number.length>=5&&null!=this.number.match(new RegExp("^3[47]"))?5:4;this._subTitle+="*"+this.number.substr(this.number.length-e)}return this._subTitle},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"expiration",{get:function(){if(!this.expMonth&&!this.expYear)return null;var e=null!=this.expMonth?("0"+this.expMonth).slice(-2):"__";return e+=" / "+(null!=this.expYear?this.formatYear(this.expYear):"____")},enumerable:!0,configurable:!0}),e.prototype.formatYear=function(e){return 2===e.length?"20"+e:e},e}();t.CardView=r},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.type=null,e&&(this.type=e.type)}return Object.defineProperty(e.prototype,"subTitle",{get:function(){return null},enumerable:!0,configurable:!0}),e}();t.SecureNoteView=r},,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.TokenService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.CryptoFunctionService=r},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]-1?(e="http://"+e,t=!0):this.imageEnabled&&(t=0===e.indexOf("http")&&e.indexOf(".")>-1),this.imageEnabled&&t)try{this.image=this.iconsUrl+"/"+s.Utils.getHostname(e)+"/icon.png",this.fallbackImage="images/fa-globe.png"}catch(n){}}else this.image=null},e.ɵfac=function(t){return new(t||e)(l.ɵɵdirectiveInject(c.EnvironmentService),l.ɵɵdirectiveInject(p.StateService))},e.ɵcmp=l.ɵɵdefineComponent({type:e,selectors:[["app-vault-icon"]],inputs:{cipher:"cipher"},features:[l.ɵɵNgOnChangesFeature],decls:7,vars:2,consts:[["aria-hidden","true",1,"icon"],["alt","",3,"src","appFallbackSrc",4,"ngIf"],[3,"class",4,"ngIf"],["alt","",3,"src","appFallbackSrc"]],template:function(e,t){1&e&&(l.ɵɵelementStart(0,"div",0),l.ɵɵtext(1,"\n "),l.ɵɵtemplate(2,m,1,2,"img",1),l.ɵɵtext(3,"\n "),l.ɵɵtemplate(4,h,1,3,"i",2),l.ɵɵtext(5,"\n"),l.ɵɵelementEnd(),l.ɵɵtext(6,"\n")),2&e&&(l.ɵɵadvance(2),l.ɵɵproperty("ngIf",t.imageEnabled&&t.image),l.ɵɵadvance(2),l.ɵɵproperty("ngIf",!t.imageEnabled||!t.image))},directives:[u.NgIf,d.FallbackSrcDirective],encapsulation:2}),e}();t.IconComponent=v},,,,,,,function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});n(0);var a=n(814),o=n(0),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.ɵfac=function(e){return l(e||t)},t.ɵprov=o.ɵɵdefineInjectable({token:t,factory:t.ɵfac}),t}(a.BroadcasterService);t.BroadcasterService=s;var l=o.ɵɵgetInheritedFactory(s)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.VaultTimeoutService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Generic=0]="Generic"}(t.SecureNoteType||(t.SecureNoteType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Authenticator=0]="Authenticator",e[e.Email=1]="Email",e[e.Duo=2]="Duo",e[e.Yubikey=3]="Yubikey",e[e.U2f=4]="U2f",e[e.Remember=5]="Remember",e[e.OrganizationDuo=6]="OrganizationDuo"}(t.TwoFactorProviderType||(t.TwoFactorProviderType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.TotpService=r},,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]-1)try{window.document.body.removeChild(e)}catch(t){}})},500),this.hidePaypal||(window.document.head.removeChild(this.btScript),window.setTimeout(function(){Array.from(window.document.head.querySelectorAll("script")).forEach(function(e){if(null!=e.src&&e.src.indexOf("paypal")>-1)try{window.document.head.removeChild(e)}catch(t){}});var e=window.document.head.querySelector("#braintree-dropin-stylesheet");if(null!=e)try{window.document.head.removeChild(e)}catch(t){}},500))},e.prototype.changeMethod=function(){var e=this;this.btInstance=null,this.method===a.PaymentMethodType.PayPal?window.setTimeout(function(){window.braintree.dropin.create({authorization:e.platformUtilsService.isDev()?o.WebConstants.btSandboxKey:o.WebConstants.btProductionKey,container:"#bt-dropin-container",paymentOptionPriority:["paypal"],paypal:{flow:"vault",buttonStyle:{label:"pay",size:"medium",shape:"pill",color:"blue"}}},function(t,n){null==t?e.btInstance=n:console.error(t)})},250):this.setStripeElement()},e.prototype.createPaymentToken=function(){var e=this;return new Promise(function(t,n){e.method===a.PaymentMethodType.Credit?t([null,e.method]):e.method===a.PaymentMethodType.PayPal?e.btInstance.requestPaymentMethod().then(function(n){t([n.nonce,e.method])}).catch(function(e){n(e.message)}):e.method!==a.PaymentMethodType.Card&&e.method!==a.PaymentMethodType.BankAccount||(e.method===a.PaymentMethodType.Card?e.apiService.postSetupPayment().then(function(t){return e.stripe.handleCardSetup(t,e.stripeCardNumberElement)}).then(function(r){r.error?n(r.error.message):r.setupIntent&&"succeeded"===r.setupIntent.status?t([r.setupIntent.payment_method,e.method]):n()}):e.stripe.createToken("bank_account",e.bank).then(function(r){r.error?n(r.error.message):r.token&&null!=r.token.id?t([r.token.id,e.method]):n()}))})},e.prototype.handleStripeCardPayment=function(e,t){var n=this;return new Promise(function(a,o){if(!n.showMethods||null!=n.stripeCardNumberElement){return(n.showMethods?n.stripe.handleCardSetup(e,n.stripeCardNumberElement):n.stripe.handleCardSetup(e)).then(function(e){return r(n,void 0,void 0,function(){return i(this,function(n){switch(n.label){case 0:return e.error?(o(e.error.message),[3,5]):[3,1];case 1:return e.paymentIntent&&"succeeded"===e.paymentIntent.status?null==t?[3,3]:[4,t()]:[3,4];case 2:n.sent(),n.label=3;case 3:return a(),[3,5];case 4:o(),n.label=5;case 5:return[2]}})})})}o()})},e.prototype.setStripeElement=function(){var e=this;window.setTimeout(function(){e.showMethods&&e.method===a.PaymentMethodType.Card&&(null==e.stripeCardNumberElement&&(e.stripeCardNumberElement=e.stripeElements.create("cardNumber",{style:I,classes:E,placeholder:""})),null==e.stripeCardExpiryElement&&(e.stripeCardExpiryElement=e.stripeElements.create("cardExpiry",{style:I,classes:E})),null==e.stripeCardCvcElement&&(e.stripeCardCvcElement=e.stripeElements.create("cardCvc",{style:I,classes:E,placeholder:""})),e.stripeCardNumberElement.mount("#stripe-card-number-element"),e.stripeCardExpiryElement.mount("#stripe-card-expiry-element"),e.stripeCardCvcElement.mount("#stripe-card-cvc-element"))},50)},e.ɵfac=function(t){return new(t||e)(s.ɵɵdirectiveInject(l.PlatformUtilsService),s.ɵɵdirectiveInject(c.ApiService))},e.ɵcmp=s.ɵɵdefineComponent({type:e,selectors:[["app-payment"]],inputs:{showMethods:"showMethods",showOptions:"showOptions",method:"method",hideBank:"hideBank",hidePaypal:"hidePaypal",hideCredit:"hideCredit"},decls:10,vars:5,consts:[["class","mb-4 text-lg",4,"ngIf"],[4,"ngIf"],[1,"mb-4","text-lg"],[1,"form-check","form-check-inline","mr-4"],["type","radio","name","Method","id","method-card",1,"form-check-input",3,"value","ngModel","ngModelChange","change"],["for","method-card",1,"form-check-label"],["aria-hidden","true",1,"fa","fa-fw","fa-credit-card"],["class","form-check form-check-inline mr-4",4,"ngIf"],["class","form-check form-check-inline",4,"ngIf"],["type","radio","name","Method","id","method-bank",1,"form-check-input",3,"value","ngModel","ngModelChange","change"],["for","method-bank",1,"form-check-label"],["aria-hidden","true",1,"fa","fa-fw","fa-university"],[1,"form-check","form-check-inline"],["type","radio","name","Method","id","method-paypal",1,"form-check-input",3,"value","ngModel","ngModelChange","change"],["for","method-paypal",1,"form-check-label"],["aria-hidden","true",1,"fa","fa-fw","fa-paypal"],["type","radio","name","Method","id","method-credit",1,"form-check-input",3,"value","ngModel","ngModelChange","change"],["for","method-credit",1,"form-check-label"],["aria-hidden","true",1,"fa","fa-fw","fa-dollar"],[1,"row"],[1,"form-group","col-4"],["for","stripe-card-number-element"],["id","stripe-card-number-element",1,"form-control","stripe-form-control"],[1,"form-group","col-8","d-flex","align-items-end"],["src","images/cards.png","alt","Visa, MasterCard, Discover, AmEx, JCB, Diners Club, UnionPay","width","323","height","32"],["for","stripe-card-expiry-element"],["id","stripe-card-expiry-element",1,"form-control","stripe-form-control"],[1,"d-flex"],["for","stripe-card-cvc-element"],["href","https://www.cvvnumber.com/cvv.html","tabindex","-1","target","_blank","rel","noopener noreferrer",1,"ml-auto",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-question-circle-o"],["id","stripe-card-cvc-element",1,"form-control","stripe-form-control"],["type","warning",3,"title"],[1,"form-group","col-6"],["for","routing_number"],["id","routing_number","type","text","name","routing_number","required","","appInputVerbatim","",1,"form-control",3,"ngModel","ngModelChange"],["for","account_number"],["id","account_number","type","text","name","account_number","required","","appInputVerbatim","",1,"form-control",3,"ngModel","ngModelChange"],["for","account_holder_name"],["id","account_holder_name","type","text","name","account_holder_name","required","",1,"form-control",3,"ngModel","ngModelChange"],["for","account_holder_type"],["id","account_holder_type","name","account_holder_type","required","",1,"form-control",3,"ngModel","ngModelChange"],["value",""],["value","company"],["value","individual"],[1,"mb-3"],["id","bt-dropin-container",1,"mb-1"],[1,"text-muted"],["type","note"]],template:function(e,t){1&e&&(s.ɵɵtemplate(0,x,19,8,"div",0),s.ɵɵtext(1,"\n"),s.ɵɵtemplate(2,b,46,12,"ng-container",1),s.ɵɵtext(3,"\n"),s.ɵɵtemplate(4,S,60,34,"ng-container",1),s.ɵɵtext(5,"\n"),s.ɵɵtemplate(6,w,11,3,"ng-container",1),s.ɵɵtext(7,"\n"),s.ɵɵtemplate(8,C,6,3,"ng-container",1),s.ɵɵtext(9,"\n")),2&e&&(s.ɵɵproperty("ngIf",t.showOptions&&t.showMethods),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",t.showMethods&&t.method===t.paymentMethodType.Card),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",t.showMethods&&t.method===t.paymentMethodType.BankAccount),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",t.showMethods&&t.method===t.paymentMethodType.PayPal),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",t.showMethods&&t.method===t.paymentMethodType.Credit))},directives:[p.NgIf,u.RadioControlValueAccessor,u.DefaultValueAccessor,u.NgControlStatus,u.NgModel,d.A11yTitleDirective,m.CalloutComponent,u.RequiredValidator,h.InputVerbatimDirective,u.SelectControlValueAccessor,u.NgSelectOption,u.ɵangular_packages_forms_forms_x],pipes:[f.I18nPipe],encapsulation:2}),e}();t.PaymentComponent=P},,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Text=0]="Text",e[e.Hidden=1]="Hidden",e[e.Boolean=2]="Boolean"}(t.FieldType||(t.FieldType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e){this.id=null,this.name=null,this.revisionDate=null,e&&(this.id=e.id,this.revisionDate=e.revisionDate)}}();t.FolderView=r},,,,,,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]1&&(n=this.getFirstLetters(r,this.charCount)),null==n&&(n=r.substr(0,this.charCount)),o=this.getCharText(n),s=this.stringToColor(r),(l=this.getSvg(this.size,s)).appendChild(o),c=window.document.createElement("div").appendChild(l).outerHTML,p=window.btoa(unescape(encodeURIComponent(c))),this.src="data:image/svg+xml;base64,"+p,i.label=4;case 4:return[2]}})})},e.prototype.stringToColor=function(e){for(var t=0,n=0;n>8*n&255).toString(16)).substr(-2)}return r},e.prototype.getFirstLetters=function(e,t){var n=e.split(" ");if(n.length>1){for(var r="",i=0;i0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasAttachments",{get:function(){return this.attachments&&this.attachments.length>0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasOldAttachments",{get:function(){if(this.hasAttachments)for(var e=0;e0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"passwordRevisionDisplayDate",{get:function(){return this.type!==r.CipherType.Login||null==this.login?null:null==this.login.password||""===this.login.password?null:this.login.passwordRevisionDate},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isDeleted",{get:function(){return null!=this.deletedDate},enumerable:!0,configurable:!0}),e}();t.CipherView=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(32),i=function(){function e(e){this.title=null,this.middleName=null,this.address1=null,this.address2=null,this.address3=null,this.city=null,this.state=null,this.postalCode=null,this.country=null,this.company=null,this.email=null,this.phone=null,this.ssn=null,this.username=null,this.passportNumber=null,this.licenseNumber=null,this._firstName=null,this._lastName=null,this._subTitle=null}return Object.defineProperty(e.prototype,"firstName",{get:function(){return this._firstName},set:function(e){this._firstName=e,this._subTitle=null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"lastName",{get:function(){return this._lastName},set:function(e){this._lastName=e,this._subTitle=null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"subTitle",{get:function(){return null!=this._subTitle||null==this.firstName&&null==this.lastName||(this._subTitle="",null!=this.firstName&&(this._subTitle=this.firstName),null!=this.lastName&&(""!==this._subTitle&&(this._subTitle+=" "),this._subTitle+=this.lastName)),this._subTitle},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fullName",{get:function(){if(null!=this.title||null!=this.firstName||null!=this.middleName||null!=this.lastName){var e="";return null!=this.title&&(e+=this.title+" "),null!=this.firstName&&(e+=this.firstName+" "),null!=this.middleName&&(e+=this.middleName+" "),null!=this.lastName&&(e+=this.lastName),e.trim()}return null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fullAddress",{get:function(){var e=this.address1;return r.Utils.isNullOrWhitespace(this.address2)||(r.Utils.isNullOrWhitespace(e)||(e+=", "),e+=this.address2),r.Utils.isNullOrWhitespace(this.address3)||(r.Utils.isNullOrWhitespace(e)||(e+=", "),e+=this.address3),e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fullAddressPart2",{get:function(){if(null==this.city&&null==this.state&&null==this.postalCode)return null;var e=this.city||"-",t=this.state,n=this.postalCode||"-",i=e;return r.Utils.isNullOrWhitespace(t)||(i+=", "+t),i+=", "+n},enumerable:!0,configurable:!0}),e}();t.IdentityView=i},,,,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e){this.id=e.id,this.organizationId=e.organizationId,this.name=e.name,this.externalId=e.externalId,this.readOnly=e.readOnly}}();t.CollectionData=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(141),i=function(){return function(e){this.id=null,this.organizationId=null,this.name=null,this.externalId=null,this.readOnly=null,this.hidePasswords=null,e&&(this.id=e.id,this.organizationId=e.organizationId,this.externalId=e.externalId,e instanceof r.Collection&&(this.readOnly=e.readOnly,this.hidePasswords=e.hidePasswords))}}();t.CollectionView=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Invited=0]="Invited",e[e.Accepted=1]="Accepted",e[e.Confirmed=2]="Confirmed"}(t.OrganizationUserStatusType||(t.OrganizationUserStatusType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(40),i=n(481),a=n(482),o=n(483),s=n(484),l=n(485),c=n(592),p=n(487),u=function(){return function(e,t,n){if(null!=e){switch(this.id=e.id,this.organizationId=e.organizationId,this.folderId=e.folderId,this.userId=t,this.edit=e.edit,this.viewPassword=e.viewPassword,this.organizationUseTotp=e.organizationUseTotp,this.favorite=e.favorite,this.revisionDate=e.revisionDate,this.type=e.type,this.name=e.name,this.notes=e.notes,this.collectionIds=null!=n?n:e.collectionIds,this.deletedDate=e.deletedDate,this.type){case r.CipherType.Login:this.login=new l.LoginData(e.login);break;case r.CipherType.SecureNote:this.secureNote=new p.SecureNoteData(e.secureNote);break;case r.CipherType.Card:this.card=new a.CardData(e.card);break;case r.CipherType.Identity:this.identity=new s.IdentityData(e.identity)}null!=e.fields&&(this.fields=e.fields.map(function(e){return new o.FieldData(e)})),null!=e.attachments&&(this.attachments=e.attachments.map(function(e){return new i.AttachmentData(e)})),null!=e.passwordHistory&&(this.passwordHistory=e.passwordHistory.map(function(e){return new c.PasswordHistoryData(e)}))}}}();t.CipherData=u},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(32),i=function(){function e(e){this.username=null,this.password=null,this.passwordRevisionDate=null,this.totp=null,this.uris=null,e&&(this.passwordRevisionDate=e.passwordRevisionDate)}return Object.defineProperty(e.prototype,"uri",{get:function(){return this.hasUris?this.uris[0].uri:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maskedPassword",{get:function(){return null!=this.password?"••••••••":null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"subTitle",{get:function(){return this.username},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canLaunch",{get:function(){return this.hasUris&&this.uris.some(function(e){return e.canLaunch})},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasTotp",{get:function(){return!r.Utils.isNullOrWhitespace(this.totp)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"launchUri",{get:function(){if(this.hasUris){var e=this.uris.find(function(e){return e.canLaunch});if(null!=e)return e.launchUri}return null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasUris",{get:function(){return null!=this.uris&&this.uris.length>0},enumerable:!0,configurable:!0}),e}();t.LoginView=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Text=0]="Text",e[e.File=1]="File"}(t.SendType||(t.SendType={}))},,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0?(p=[],[4,this.attachments.reduce(function(t,n){return t.then(function(){return n.decrypt(l,e)}).then(function(e){p.push(e)})},Promise.resolve())]):[3,13];case 12:o.sent(),t.attachments=p,o.label=13;case 13:return null!=this.fields&&this.fields.length>0?(u=[],[4,this.fields.reduce(function(t,n){return t.then(function(){return n.decrypt(l,e)}).then(function(e){u.push(e)})},Promise.resolve())]):[3,15];case 14:o.sent(),t.fields=u,o.label=15;case 15:return null!=this.passwordHistory&&this.passwordHistory.length>0?(d=[],[4,this.passwordHistory.reduce(function(t,n){return t.then(function(){return n.decrypt(l,e)}).then(function(e){d.push(e)})},Promise.resolve())]):[3,17];case 16:o.sent(),t.passwordHistory=d,o.label=17;case 17:return[2,t]}})})},t.prototype.toCipherData=function(e){var t=new l.CipherData;switch(t.id=this.id,t.organizationId=this.organizationId,t.folderId=this.folderId,t.userId=null!=this.organizationId?e:null,t.edit=this.edit,t.viewPassword=this.viewPassword,t.organizationUseTotp=this.organizationUseTotp,t.favorite=this.favorite,t.revisionDate=null!=this.revisionDate?this.revisionDate.toISOString():null,t.type=this.type,t.collectionIds=this.collectionIds,t.deletedDate=null!=this.deletedDate?this.deletedDate.toISOString():null,this.buildDataModel(this,t,{name:null,notes:null}),t.type){case s.CipherType.Login:t.login=this.login.toLoginData();break;case s.CipherType.SecureNote:t.secureNote=this.secureNote.toSecureNoteData();break;case s.CipherType.Card:t.card=this.card.toCardData();break;case s.CipherType.Identity:t.identity=this.identity.toIdentityData()}return null!=this.fields&&(t.fields=this.fields.map(function(e){return e.toFieldData()})),null!=this.attachments&&(t.attachments=this.attachments.map(function(e){return e.toAttachmentData()})),null!=this.passwordHistory&&(t.passwordHistory=this.passwordHistory.map(function(e){return e.toPasswordHistoryData()})),t},t}(d.default);t.Cipher=g},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.SendService=r},,,,,,,,,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.name=null,this.value=null,this.type=null,this.newField=!1,this.showValue=!1,e&&(this.type=e.type)}return Object.defineProperty(e.prototype,"maskedValue",{get:function(){return null!=this.value?"••••••••":null},enumerable:!0,configurable:!0}),e}();t.FieldView=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(40),i=n(596),a=n(597),o=n(598),s=n(599),l=n(600),c=n(601),p=n(870),u=function(){return function(e){var t=this;switch(this.type=e.type,this.folderId=e.folderId,this.organizationId=e.organizationId,this.name=e.name?e.name.encryptedString:null,this.notes=e.notes?e.notes.encryptedString:null,this.favorite=e.favorite,this.lastKnownRevisionDate=e.revisionDate,this.type){case r.CipherType.Login:this.login=new s.LoginApi,this.login.uris=null,this.login.username=e.login.username?e.login.username.encryptedString:null,this.login.password=e.login.password?e.login.password.encryptedString:null,this.login.passwordRevisionDate=null!=e.login.passwordRevisionDate?e.login.passwordRevisionDate.toISOString():null,this.login.totp=e.login.totp?e.login.totp.encryptedString:null,null!=e.login.uris&&(this.login.uris=e.login.uris.map(function(e){var t=new l.LoginUriApi;return t.uri=null!=e.uri?e.uri.encryptedString:null,t.match=null!=e.match?e.match:null,t}));break;case r.CipherType.SecureNote:this.secureNote=new c.SecureNoteApi,this.secureNote.type=e.secureNote.type;break;case r.CipherType.Card:this.card=new i.CardApi,this.card.cardholderName=null!=e.card.cardholderName?e.card.cardholderName.encryptedString:null,this.card.brand=null!=e.card.brand?e.card.brand.encryptedString:null,this.card.number=null!=e.card.number?e.card.number.encryptedString:null,this.card.expMonth=null!=e.card.expMonth?e.card.expMonth.encryptedString:null,this.card.expYear=null!=e.card.expYear?e.card.expYear.encryptedString:null,this.card.code=null!=e.card.code?e.card.code.encryptedString:null;break;case r.CipherType.Identity:this.identity=new o.IdentityApi,this.identity.title=null!=e.identity.title?e.identity.title.encryptedString:null,this.identity.firstName=null!=e.identity.firstName?e.identity.firstName.encryptedString:null,this.identity.middleName=null!=e.identity.middleName?e.identity.middleName.encryptedString:null,this.identity.lastName=null!=e.identity.lastName?e.identity.lastName.encryptedString:null,this.identity.address1=null!=e.identity.address1?e.identity.address1.encryptedString:null,this.identity.address2=null!=e.identity.address2?e.identity.address2.encryptedString:null,this.identity.address3=null!=e.identity.address3?e.identity.address3.encryptedString:null,this.identity.city=null!=e.identity.city?e.identity.city.encryptedString:null,this.identity.state=null!=e.identity.state?e.identity.state.encryptedString:null,this.identity.postalCode=null!=e.identity.postalCode?e.identity.postalCode.encryptedString:null,this.identity.country=null!=e.identity.country?e.identity.country.encryptedString:null,this.identity.company=null!=e.identity.company?e.identity.company.encryptedString:null,this.identity.email=null!=e.identity.email?e.identity.email.encryptedString:null,this.identity.phone=null!=e.identity.phone?e.identity.phone.encryptedString:null,this.identity.ssn=null!=e.identity.ssn?e.identity.ssn.encryptedString:null,this.identity.username=null!=e.identity.username?e.identity.username.encryptedString:null,this.identity.passportNumber=null!=e.identity.passportNumber?e.identity.passportNumber.encryptedString:null,this.identity.licenseNumber=null!=e.identity.licenseNumber?e.identity.licenseNumber.encryptedString:null}null!=e.fields&&(this.fields=e.fields.map(function(e){var t=new a.FieldApi;return t.type=e.type,t.name=e.name?e.name.encryptedString:null,t.value=e.value?e.value.encryptedString:null,t})),null!=e.passwordHistory&&(this.passwordHistory=[],e.passwordHistory.forEach(function(e){t.passwordHistory.push({lastUsedDate:e.lastUsedDate,password:e.password?e.password.encryptedString:null})})),null!=e.attachments&&(this.attachments={},this.attachments2={},e.attachments.forEach(function(e){var n=e.fileName?e.fileName.encryptedString:null;t.attachments[e.id]=n;var r=new p.AttachmentRequest;r.fileName=n,null!=e.key&&(r.key=e.key.encryptedString),t.attachments2[e.id]=r}))}}();t.CipherRequest=u},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0),n(73);var r=n(8),i=(n(3),n(0)),a=n(8),o=n(73),s=n(3),l=function(){function e(e,t,n,i){var a=this;this.router=e,this.activatedRoute=t,this.titleService=n,this.previousUrl=void 0,this.currentUrl=void 0,this.currentUrl=this.router.url,e.events.subscribe(function(e){if(e instanceof r.NavigationEnd){a.previousUrl=a.currentUrl,a.currentUrl=e.url;for(var t=i.t("pageTitle","Bitwarden"),n=null,o=null,s=a.activatedRoute.firstChild;null!=s;){if(null==s.firstChild){if(null!=s.snapshot.data&&null!=s.snapshot.data.title){o=s.snapshot.data.title;break}if(null!=s.snapshot.data&&null!=s.snapshot.data.titleId){n=s.snapshot.data.titleId;break}n=null,o=null;break}s=s.firstChild}if(null!=n||null!=o){var l=null!=o?o:i.t(n);null!=l&&""!==l&&(t=l+" | "+t)}a.titleService.setTitle(t)}})}return e.prototype.getPreviousUrl=function(){return this.previousUrl},e.prototype.setPreviousUrl=function(e){this.previousUrl=e},e.ɵfac=function(t){return new(t||e)(i.ɵɵinject(a.Router),i.ɵɵinject(a.ActivatedRoute),i.ɵɵinject(o.Title),i.ɵɵinject(s.I18nService))},e.ɵprov=i.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.RouterService=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.PBKDF2_SHA256=0]="PBKDF2_SHA256"}(t.KdfType||(t.KdfType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0),n(3);var r=n(0),i=n(3),a=n(4);function o(e,t){if(1&e&&(r.ɵɵelementContainerStart(0),r.ɵɵtext(1),r.ɵɵelementContainerEnd()),2&e){var n=r.ɵɵnextContext();r.ɵɵadvance(1),r.ɵɵtextInterpolate1("\n ",n.text,"\n ")}}var s=function(e){return{width:e}},l=function(){function e(e){this.i18nService=e,this.showText=!1,this.scoreWidth=0,this.color="bg-danger"}return e.prototype.ngOnChanges=function(){switch(this.scoreWidth=null==this.score?0:20*(this.score+1),this.score){case 4:this.color="bg-success",this.text=this.i18nService.t("strong");break;case 3:this.color="bg-primary",this.text=this.i18nService.t("good");break;case 2:this.color="bg-warning",this.text=this.i18nService.t("weak");break;default:this.color="bg-danger",this.text=null!=this.score?this.i18nService.t("weak"):null}},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(i.I18nService))},e.ɵcmp=r.ɵɵdefineComponent({type:e,selectors:[["app-password-strength"]],inputs:{score:"score",showText:"showText"},features:[r.ɵɵNgOnChangesFeature],decls:8,vars:8,consts:[[1,"progress"],["role","progressbar","aria-valuemin","0","aria-valuemax","100",3,"ngStyle"],[4,"ngIf"]],template:function(e,t){1&e&&(r.ɵɵelementStart(0,"div",0),r.ɵɵtext(1,"\n "),r.ɵɵelementStart(2,"div",1),r.ɵɵtext(3,"\n "),r.ɵɵtemplate(4,o,2,1,"ng-container",2),r.ɵɵtext(5,"\n "),r.ɵɵelementEnd(),r.ɵɵtext(6,"\n"),r.ɵɵelementEnd(),r.ɵɵtext(7,"\n")),2&e&&(r.ɵɵadvance(2),r.ɵɵclassMapInterpolate1("progress-bar ",t.color,""),r.ɵɵproperty("ngStyle",r.ɵɵpureFunction1(6,s,t.scoreWidth+"%")),r.ɵɵattribute("aria-valuenow",t.scoreWidth),r.ɵɵadvance(2),r.ɵɵproperty("ngIf",t.showText&&t.text))},directives:[a.NgStyle,a.NgIf],encapsulation:2}),e}();t.PasswordStrengthComponent=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Owner=0]="Owner",e[e.Admin=1]="Admin",e[e.User=2]="User",e[e.Manager=3]="Manager",e[e.Custom=4]="Custom"}(t.OrganizationUserType||(t.OrganizationUserType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(0),i=function(){function e(){}return e.prototype.transform=function(e,t,n,r,i){return null==e||0===e.length?[]:null==t||t.length<2?e:(t=t.trim().toLowerCase(),e.filter(function(e){return null!=n&&null!=e[n]&&e[n].toString().toLowerCase().indexOf(t)>-1||(null!=r&&null!=e[r]&&e[r].toString().toLowerCase().indexOf(t)>-1||null!=i&&null!=e[i]&&e[i].toString().toLowerCase().indexOf(t)>-1)}))},e.ɵfac=function(t){return new(t||e)},e.ɵpipe=r.ɵɵdefinePipe({name:"search",type:e,pure:!0}),e}();t.SearchPipe=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0),n(3);var r=n(277),i=n(253),a=n(0),o=n(3),s=function(){function e(e){this.i18nService=e}return e.prototype.getDefaultDateFilters=function(){var e=new Date,t=new Date(e.getFullYear(),e.getMonth(),e.getDate(),23,59);e.setDate(e.getDate()-30);var n=new Date(e.getFullYear(),e.getMonth(),e.getDate(),0,0);return[this.toDateTimeLocalString(n),this.toDateTimeLocalString(t)]},e.prototype.formatDateFilters=function(e,t){var n=new Date(e),r=new Date(t+":59.999");if(isNaN(n.getTime())||isNaN(r.getTime())||r"+n+"";var r=this.makeAnchor(n);return r.setAttribute("href","#/organizations/"+e.organizationId+"/vault?search="+n+"&viewEvents="+e.cipherId),r.outerHTML},e.prototype.formatGroupId=function(e){var t=this.getShortId(e.groupId),n=this.makeAnchor(t);return n.setAttribute("href","#/organizations/"+e.organizationId+"/manage/groups?search="+t),n.outerHTML},e.prototype.formatCollectionId=function(e){var t=this.getShortId(e.collectionId),n=this.makeAnchor(t);return n.setAttribute("href","#/organizations/"+e.organizationId+"/manage/collections?search="+t),n.outerHTML},e.prototype.formatOrgUserId=function(e){var t=this.getShortId(e.organizationUserId),n=this.makeAnchor(t);return n.setAttribute("href","#/organizations/"+e.organizationId+"/manage/people?search="+t+"&viewEvents="+e.organizationUserId),n.outerHTML},e.prototype.formatPolicyId=function(e){var t=this.getShortId(e.policyId),n=this.makeAnchor(t);return n.setAttribute("href","#/organizations/"+e.organizationId+"/manage/policies?policyId="+e.policyId),n.outerHTML},e.prototype.makeAnchor=function(e){var t=document.createElement("a");return t.title=this.i18nService.t("view"),t.innerHTML=""+e+"",t},e.prototype.getShortId=function(e){return e.substring(0,8)},e.prototype.toDateTimeLocalString=function(e){return e.getFullYear()+"-"+this.pad(e.getMonth()+1)+"-"+this.pad(e.getDate())+"T"+this.pad(e.getHours())+":"+this.pad(e.getMinutes())},e.prototype.pad=function(e){var t=Math.floor(Math.abs(e));return(t<10?"0":"")+t},e.ɵfac=function(t){return new(t||e)(a.ɵɵinject(o.I18nService))},e.ɵprov=a.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.EventService=s;var l=function(){return function(){}}();t.EventInfo=l;var c=function(){return function(){this.cipherInfo=!0}}();t.EventOptions=c},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.User_LoggedIn=1e3]="User_LoggedIn",e[e.User_ChangedPassword=1001]="User_ChangedPassword",e[e.User_Updated2fa=1002]="User_Updated2fa",e[e.User_Disabled2fa=1003]="User_Disabled2fa",e[e.User_Recovered2fa=1004]="User_Recovered2fa",e[e.User_FailedLogIn=1005]="User_FailedLogIn",e[e.User_FailedLogIn2fa=1006]="User_FailedLogIn2fa",e[e.User_ClientExportedVault=1007]="User_ClientExportedVault",e[e.Cipher_Created=1100]="Cipher_Created",e[e.Cipher_Updated=1101]="Cipher_Updated",e[e.Cipher_Deleted=1102]="Cipher_Deleted",e[e.Cipher_AttachmentCreated=1103]="Cipher_AttachmentCreated",e[e.Cipher_AttachmentDeleted=1104]="Cipher_AttachmentDeleted",e[e.Cipher_Shared=1105]="Cipher_Shared",e[e.Cipher_UpdatedCollections=1106]="Cipher_UpdatedCollections",e[e.Cipher_ClientViewed=1107]="Cipher_ClientViewed",e[e.Cipher_ClientToggledPasswordVisible=1108]="Cipher_ClientToggledPasswordVisible",e[e.Cipher_ClientToggledHiddenFieldVisible=1109]="Cipher_ClientToggledHiddenFieldVisible",e[e.Cipher_ClientToggledCardCodeVisible=1110]="Cipher_ClientToggledCardCodeVisible",e[e.Cipher_ClientCopiedPassword=1111]="Cipher_ClientCopiedPassword",e[e.Cipher_ClientCopiedHiddenField=1112]="Cipher_ClientCopiedHiddenField",e[e.Cipher_ClientCopiedCardCode=1113]="Cipher_ClientCopiedCardCode",e[e.Cipher_ClientAutofilled=1114]="Cipher_ClientAutofilled",e[e.Cipher_SoftDeleted=1115]="Cipher_SoftDeleted",e[e.Cipher_Restored=1116]="Cipher_Restored",e[e.Collection_Created=1300]="Collection_Created",e[e.Collection_Updated=1301]="Collection_Updated",e[e.Collection_Deleted=1302]="Collection_Deleted",e[e.Group_Created=1400]="Group_Created",e[e.Group_Updated=1401]="Group_Updated",e[e.Group_Deleted=1402]="Group_Deleted",e[e.OrganizationUser_Invited=1500]="OrganizationUser_Invited",e[e.OrganizationUser_Confirmed=1501]="OrganizationUser_Confirmed",e[e.OrganizationUser_Updated=1502]="OrganizationUser_Updated",e[e.OrganizationUser_Removed=1503]="OrganizationUser_Removed",e[e.OrganizationUser_UpdatedGroups=1504]="OrganizationUser_UpdatedGroups",e[e.OrganizationUser_UnlinkedSso=1505]="OrganizationUser_UnlinkedSso",e[e.Organization_Updated=1600]="Organization_Updated",e[e.Organization_PurgedVault=1601]="Organization_PurgedVault",e[e.Policy_Updated=1700]="Policy_Updated"}(t.EventType||(t.EventType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Card=0]="Card",e[e.BankAccount=1]="BankAccount",e[e.PayPal=2]="PayPal",e[e.BitPay=3]="BitPay",e[e.Credit=4]="Credit",e[e.WireTransfer=5]="WireTransfer",e[e.AppleInApp=6]="AppleInApp",e[e.GoogleInApp=7]="GoogleInApp",e[e.Check=8]="Check"}(t.PaymentMethodType||(t.PaymentMethodType={}))},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]4?(t=Math.floor(this.totpCode.length/2),this.totpCodeFormatted=this.totpCode.substring(0,t)+" "+this.totpCode.substring(t)):this.totpCodeFormatted=this.totpCode:(this.totpCodeFormatted=null,this.totpInterval&&window.clearInterval(this.totpInterval)),[2]}})})},t.prototype.allowOwnershipAssignment=function(){return(!this.editMode||this.cloneMode)&&null!=this.ownershipOptions&&(this.ownershipOptions.length>1||!this.allowPersonal)},t.prototype.totpTick=function(e){return a(this,void 0,void 0,function(){var t,n;return o(this,function(r){switch(r.label){case 0:return t=Math.round((new Date).getTime()/1e3),n=t%e,this.totpSec=e-n,this.totpDash=+(Math.round(78.6/e*n+"e+2")+"e-2"),this.totpLow=this.totpSec<=7,0!==n?[3,2]:[4,this.totpUpdateCode()];case 1:r.sent(),r.label=2;case 2:return[2]}})})},t.ɵfac=function(e){return new(e||t)(p.ɵɵdirectiveInject(u.CipherService),p.ɵɵdirectiveInject(d.FolderService),p.ɵɵdirectiveInject(m.I18nService),p.ɵɵdirectiveInject(h.PlatformUtilsService),p.ɵɵdirectiveInject(f.AuditService),p.ɵɵdirectiveInject(v.StateService),p.ɵɵdirectiveInject(y.UserService),p.ɵɵdirectiveInject(g.CollectionService),p.ɵɵdirectiveInject(x.TotpService),p.ɵɵdirectiveInject(b.PasswordGenerationService),p.ɵɵdirectiveInject(S.MessagingService),p.ɵɵdirectiveInject(w.EventService),p.ɵɵdirectiveInject(C.PolicyService))},t.ɵcmp=p.ɵɵdefineComponent({type:t,selectors:[["app-vault-add-edit"]],features:[p.ɵɵInheritDefinitionFeature],decls:36,vars:11,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","cipherAddEditTitle",1,"modal","fade"],["role","document",1,"modal-dialog","modal-lg"],["ngNativeValidate","","autocomplete","off",1,"modal-content",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-header"],["id","cipherAddEditTitle",1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],["class","modal-body",4,"ngIf"],[1,"modal-footer"],["type","submit","class","btn btn-primary btn-submit",3,"disabled",4,"ngIf"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],["class","ml-auto",4,"ngIf"],[1,"modal-body"],["type","info",4,"ngIf"],["class","row",4,"ngIf"],[1,"row"],[1,"col-6","form-group"],["for","name"],["id","name","type","text","name","Name","required","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["class","col-6 form-group",4,"ngIf"],[4,"ngIf"],[1,"form-group"],["for","notes"],["id","notes","name","Notes","rows","6",1,"form-control",3,"ngModel","disabled","ngModelChange"],[1,"mt-4"],["cdkDropList","",3,"cdkDropListDropped",4,"ngIf"],["href","#","appStopClick","","class","d-inline-block mb-2",3,"click",4,"ngIf"],["type","info"],["for","type"],["id","type","name","Type","appAutofocus","",1,"form-control",3,"ngModel","disabled","ngModelChange"],[3,"ngValue",4,"ngFor","ngForOf"],[3,"ngValue"],["for","folder"],["id","folder","name","FolderId",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","loginUsername"],[1,"input-group"],["id","loginUsername","type","text","name","Login.Username","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["class","input-group-append",4,"ngIf"],[1,"d-flex"],["for","loginPassword"],["class","ml-auto d-flex",4,"ngIf"],["id","loginPassword","name","Login.Password","appInputVerbatim","","autocomplete","new-password",1,"form-control","text-monospace",3,"type","ngModel","disabled","ngModelChange"],[1,"input-group-append"],["type","button",1,"btn","btn-outline-secondary",3,"appA11yTitle","disabled","click"],["aria-hidden","true",1,"fa","fa-lg",3,"ngClass"],["aria-hidden","true",1,"fa","fa-lg","fa-clone"],["for","loginTotp"],["id","loginTotp","name","Login.Totp","appInputVerbatim","",1,"form-control","text-monospace",3,"type","ngModel","disabled","ngModelChange"],[1,"col-6","form-group","totp","d-flex","align-items-end",3,"ngClass"],["class","d-flex align-items-center",4,"ngIf"],["href","#","appStopClick","","class","d-inline-block mb-3",3,"click",4,"ngIf"],["type","button",1,"btn","btn-outline-secondary",3,"appA11yTitle","click"],[1,"ml-auto","d-flex"],["href","#","class","d-block mr-2 fa-icon-above-input","appStopClick","",3,"appA11yTitle","click",4,"ngIf"],["href","#","appStopClick","",1,"d-block","fa-icon-above-input",3,"appA11yTitle","appApiAction","click"],["checkPasswordBtn",""],["aria-hidden","true",1,"fa","fa-lg","fa-fw","fa-check-circle",3,"hidden"],["aria-hidden","true",1,"fa","fa-lg","fa-fw","fa-spinner","fa-spin",3,"hidden","title"],["href","#","appStopClick","",1,"d-block","mr-2","fa-icon-above-input",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-lg","fa-fw","fa-refresh"],["src","images/totp-countdown.png",1,"ml-2",3,"title"],["href","#","appStopClick","","class","badge badge-primary ml-3",3,"click",4,"ngIf"],["href","#","appStopClick","",1,"badge","badge-primary","ml-3",3,"click"],[1,"d-flex","align-items-center"],[1,"totp-countdown","mr-3","ml-2"],[1,"totp-sec"],["r","12.6","cy","16","cx","16",1,"totp-circle","inner",3,"ngStyle"],["r","14","cy","16","cx","16",1,"totp-circle","outer"],[1,"totp-code","mr-2",3,"title"],["type","button",1,"btn","btn-link",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-clone"],["class","row",4,"ngFor","ngForOf","ngForTrackBy"],[1,"col-7","form-group"],[3,"for"],["type","text","appInputVerbatim","",1,"form-control",3,"id","name","ngModel","disabled","placeholder","ngModelChange"],["aria-hidden","true",1,"fa","fa-lg","fa-share"],[1,"col-5","form-group"],["href","https://help.bitwarden.com/article/uri-match-detection/","target","_blank","rel","noopener",1,"ml-auto",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-question-circle-o"],[1,"form-control","overflow-hidden",3,"id","name","ngModel","disabled","ngModelChange","change"],["type","button","class","btn btn-link text-danger ml-2",3,"appA11yTitle","click",4,"ngIf"],["type","button",1,"btn","btn-link","text-danger","ml-2",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-minus-circle","fa-lg"],["href","#","appStopClick","",1,"d-inline-block","mb-3",3,"click"],["aria-hidden","true",1,"fa","fa-plus-circle","fa-fw"],["for","cardCardholderName"],["id","cardCardholderName","type","text","name","Card.CardCardholderName",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","cardBrand"],["id","cardBrand","name","Card.Brand",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","cardNumber"],["id","cardNumber","type","text","name","Card.Number","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],[1,"col","form-group"],["for","cardExpMonth"],["id","cardExpMonth","name","Card.ExpMonth",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","cardExpYear"],["id","cardExpYear","type","text","name","Card.ExpYear",1,"form-control",3,"ngModel","placeholder","disabled","ngModelChange"],["for","cardCode"],["id","cardCode","name","Card.Code","appInputVerbatim","","autocomplete","new-password",1,"form-control","text-monospace",3,"type","ngModel","disabled","ngModelChange"],[1,"col-4","form-group"],["for","idTitle"],["id","idTitle","name","Identity.Title",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idFirstName"],["id","idFirstName","type","text","name","Identity.FirstName",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idMiddleName"],["id","idMiddleName","type","text","name","Identity.MiddleName",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idLastName"],["id","idLastName","type","text","name","Identity.LastName",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idUsername"],["id","idUsername","type","text","name","Identity.Username","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idCompany"],["id","idCompany","type","text","name","Identity.Company",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idSsn"],["id","idSsn","type","text","name","Identity.SSN","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idPassportNumber"],["id","idPassportNumber","type","text","name","Identity.PassportNumber","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idLicenseNumber"],["id","idLicenseNumber","type","text","name","Identity.LicenseNumber","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idEmail"],["id","idEmail","type","text","name","Identity.Email","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idPhone"],["id","idPhone","type","text","name","Identity.Phone",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idAddress1"],["id","idAddress1","type","text","name","Identity.Address1",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idAddress2"],["id","idAddress2","type","text","name","Identity.Address2",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idAddress3"],["id","idAddress3","type","text","name","Identity.Address3",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idCity"],["id","idCity","type","text","name","Identity.City",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idState"],["id","idState","type","text","name","Identity.State",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idPostalCode"],["id","idPostalCode","type","text","name","Identity.PostalCode",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idCountry"],["id","idCountry","type","text","name","Identity.Country",1,"form-control",3,"ngModel","disabled","ngModelChange"],["cdkDropList","",3,"cdkDropListDropped"],["class","row","cdkDrag","",4,"ngFor","ngForOf","ngForTrackBy"],["cdkDrag","",1,"row"],["href","https://help.bitwarden.com/article/custom-fields/","target","_blank","rel","noopener",1,"ml-auto",3,"appA11yTitle"],["type","text","appInputVerbatim","",1,"form-control",3,"id","name","ngModel","disabled","ngModelChange"],["class","input-group",4,"ngIf"],[1,"flex-fill"],["type","checkbox","appTrueFalseValue","","trueValue","true","falseValue","false",3,"id","name","ngModel","disabled","ngModelChange",4,"ngIf"],["type","button","class","btn btn-link text-muted cursor-move",3,"appA11yTitle",4,"ngIf"],["appInputVerbatim","","autocomplete","new-password",1,"form-control","text-monospace",3,"id","type","name","ngModel","disabled","ngModelChange"],["type","checkbox","appTrueFalseValue","","trueValue","true","falseValue","false",3,"id","name","ngModel","disabled","ngModelChange"],["type","button",1,"btn","btn-link","text-muted","cursor-move",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-bars","fa-lg"],["href","#","appStopClick","",1,"d-inline-block","mb-2",3,"click"],[1,"col-5"],["for","addFieldType",1,"sr-only"],["id","addFieldType","name","AddFieldType",1,"form-control",3,"ngModel","ngModelChange"],["for","organizationId"],["id","organizationId","name","OrganizationId",1,"form-control",3,"ngModel","disabled","ngModelChange","change"],["class","form-check",4,"ngFor","ngForOf"],[1,"form-check"],["type","checkbox",1,"form-check-input",3,"ngModel","id","name","disabled","ngModelChange"],[1,"form-check-label",3,"for"],[1,"small","text-muted","mt-4"],[1,"font-weight-semibold"],["class","ml-3",4,"ngIf"],["href","#","appStopClick","",3,"title","click"],[1,"ml-3"],[4,"ngFor","ngForOf"],[1,"password-wrapper","text-monospace","ml-2"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],[1,"ml-auto"],["type","button","class","btn btn-link",3,"appA11yTitle","click",4,"ngIf"],["type","button","class","btn btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click",4,"ngIf"],["type","button",1,"btn","btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click"],["deleteBtn",""],["aria-hidden","true",1,"fa","fa-trash-o","fa-lg","fa-fw",3,"hidden"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","fa-lg","fa-fw",3,"hidden","title"]],template:function(e,t){1&e&&(p.ɵɵelementStart(0,"div",0),p.ɵɵtext(1,"\n "),p.ɵɵelementStart(2,"div",1),p.ɵɵtext(3,"\n "),p.ɵɵelementStart(4,"form",2,3),p.ɵɵlistener("ngSubmit",function(){return t.submit()}),p.ɵɵtext(6,"\n "),p.ɵɵelementStart(7,"div",4),p.ɵɵtext(8,"\n "),p.ɵɵelementStart(9,"h2",5),p.ɵɵtext(10),p.ɵɵelementEnd(),p.ɵɵtext(11,"\n "),p.ɵɵelementStart(12,"button",6),p.ɵɵpipe(13,"i18n"),p.ɵɵtext(14,"\n "),p.ɵɵelementStart(15,"span",7),p.ɵɵtext(16,"×"),p.ɵɵelementEnd(),p.ɵɵtext(17,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(18,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(19,"\n "),p.ɵɵtemplate(20,_e,54,25,"div",8),p.ɵɵtext(21,"\n "),p.ɵɵelementStart(22,"div",9),p.ɵɵtext(23,"\n "),p.ɵɵtemplate(24,Ae,9,7,"button",10),p.ɵɵtext(25,"\n "),p.ɵɵelementStart(26,"button",11),p.ɵɵtext(27),p.ɵɵpipe(28,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(29,"\n "),p.ɵɵtemplate(30,Be,6,2,"div",12),p.ɵɵtext(31,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(32,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(33,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(34,"\n"),p.ɵɵelementEnd(),p.ɵɵtext(35,"\n")),2&e&&(p.ɵɵadvance(4),p.ɵɵproperty("appApiAction",t.formPromise),p.ɵɵadvance(6),p.ɵɵtextInterpolate(t.title),p.ɵɵadvance(2),p.ɵɵpropertyInterpolate("appA11yTitle",p.ɵɵpipeBind1(13,7,"close")),p.ɵɵadvance(8),p.ɵɵproperty("ngIf",t.cipher),p.ɵɵadvance(4),p.ɵɵproperty("ngIf",!t.viewOnly),p.ɵɵadvance(3),p.ɵɵtextInterpolate1("\n ",p.ɵɵpipeBind1(28,9,t.viewOnly?"close":"cancel"),"\n "),p.ɵɵadvance(3),p.ɵɵproperty("ngIf",t.cipher&&!t.viewOnly))},directives:[I.NgControlStatusGroup,I.NgForm,E.ApiActionDirective,P.A11yTitleDirective,k.NgIf,I.DefaultValueAccessor,I.RequiredValidator,I.NgControlStatus,I.NgModel,_.CalloutComponent,I.SelectControlValueAccessor,A.AutofocusDirective,k.NgForOf,I.NgSelectOption,I.ɵangular_packages_forms_forms_x,O.InputVerbatimDirective,k.NgClass,T.StopClickDirective,k.NgStyle,M.CdkDropList,M.CdkDrag,B.TrueFalseValueDirective,I.CheckboxControlValueAccessor],pipes:[D.I18nPipe,k.DatePipe],encapsulation:2}),t}(c.AddEditComponent);t.AddEditComponent=De},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.ImportService=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]500?500:this.ciphers.length,n=0;n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]r){if(a===o.TwoFactorProviderType.U2f&&!e)return;n=a,r=s.priority}}),n},e.prototype.makePreloginKey=function(e,t){return i(this,void 0,void 0,function(){var n,r,i,o;return a(this,function(a){switch(a.label){case 0:t=t.trim().toLowerCase(),n=null,r=null,a.label=1;case 1:return a.trys.push([1,3,,4]),[4,this.apiService.postPrelogin(new p.PreloginRequest(t))];case 2:return null!=(i=a.sent())&&(n=i.kdf,r=i.kdfIterations),[3,4];case 3:if(null==(o=a.sent())||404!==o.statusCode)throw o;return[3,4];case 4:return[2,this.cryptoService.makeKey(e,t,n,r)]}})})},e.prototype.authingWithApiKey=function(){return null!=this.clientId&&null!=this.clientSecret},e.prototype.authingWithSso=function(){return null!=this.code&&null!=this.codeVerifier&&null!=this.ssoRedirectUrl},e.prototype.authingWithPassword=function(){return null!=this.email&&null!=this.masterPasswordHash},e.prototype.logInHelper=function(e,t,n,r,p,d,m,h,f,v,y){return i(this,void 0,void 0,function(){var i,g,x,b,S,w,C,I,E,P,k,_,A;return a(this,function(a){switch(a.label){case 0:return[4,this.tokenService.getTwoFactorToken(e)];case 1:return i=a.sent(),[4,this.appIdService.getAppId()];case 2:return g=a.sent(),x=new l.DeviceRequest(g,this.platformUtilsService),b=[],S=[],w=[],b=null!=e&&null!=t?[e,t]:null,S=null!=n&&null!=r&&null!=p?[n,r,p]:null,w=null!=d&&null!=m?[d,m]:null,C=null!=v&&null!=f?new u.TokenRequest(b,S,w,f,v,y,x):null!=i?new u.TokenRequest(b,S,w,o.TwoFactorProviderType.Remember,i,!1,x):new u.TokenRequest(b,S,w,null,null,!1,x),[4,this.apiService.postIdentityToken(C)];case 3:return I=a.sent(),this.clearState(),(E=new s.AuthResult).twoFactor=!I.accessToken,E.twoFactor?(P=I,this.email=e,this.masterPasswordHash=t,this.code=n,this.codeVerifier=r,this.ssoRedirectUrl=p,this.clientId=d,this.clientSecret=m,this.key=this.setCryptoKeys?h:null,this.twoFactorProvidersData=P.twoFactorProviders2,E.twoFactorProviders=P.twoFactorProviders2,[2,E]):(k=I,E.resetMasterPassword=k.resetMasterPassword,null==k.twoFactorToken?[3,5]:[4,this.tokenService.setTwoFactorToken(k.twoFactorToken,e)]);case 4:a.sent(),a.label=5;case 5:return[4,this.tokenService.setTokens(k.accessToken,k.refreshToken)];case 6:return a.sent(),[4,this.userService.setInformation(this.tokenService.getUserId(),this.tokenService.getEmail(),k.kdf,k.kdfIterations)];case 7:return a.sent(),this.setCryptoKeys?null==h?[3,9]:[4,this.cryptoService.setKey(h)]:[3,19];case 8:a.sent(),a.label=9;case 9:return null==t?[3,11]:[4,this.cryptoService.setKeyHash(t)];case 10:a.sent(),a.label=11;case 11:return null!=n&&null==k.key?[3,19]:[4,this.cryptoService.setEncKey(k.key)];case 12:if(a.sent(),null!=k.privateKey)return[3,17];a.label=13;case 13:return a.trys.push([13,16,,17]),[4,this.cryptoService.makeKeyPair()];case 14:return _=a.sent(),[4,this.apiService.postAccountKeys(new c.KeysRequest(_[0],_[1].encryptedString))];case 15:return a.sent(),k.privateKey=_[1].encryptedString,[3,17];case 16:return A=a.sent(),this.logService.error(A),[3,17];case 17:return[4,this.cryptoService.setEncPrivateKey(k.privateKey)];case 18:a.sent(),a.label=19;case 19:return null!=this.vaultTimeoutService&&(this.vaultTimeoutService.biometricLocked=!1),this.messagingService.send("loggedIn"),[2,E]}})})},e.prototype.clearState=function(){this.key=null,this.email=null,this.masterPasswordHash=null,this.code=null,this.codeVerifier=null,this.ssoRedirectUrl=null,this.clientId=null,this.clientSecret=null,this.twoFactorProvidersData=null,this.selectedTwoFactorProviderType=null},e}();t.AuthService=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e,t,n){this.id=e,this.readOnly=t,this.hidePasswords=n}}();t.SelectionReadOnlyRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Android=0]="Android",e[e.iOS=1]="iOS",e[e.ChromeExtension=2]="ChromeExtension",e[e.FirefoxExtension=3]="FirefoxExtension",e[e.OperaExtension=4]="OperaExtension",e[e.EdgeExtension=5]="EdgeExtension",e[e.WindowsDesktop=6]="WindowsDesktop",e[e.MacOsDesktop=7]="MacOsDesktop",e[e.LinuxDesktop=8]="LinuxDesktop",e[e.ChromeBrowser=9]="ChromeBrowser",e[e.FirefoxBrowser=10]="FirefoxBrowser",e[e.OperaBrowser=11]="OperaBrowser",e[e.EdgeBrowser=12]="EdgeBrowser",e[e.IEBrowser=13]="IEBrowser",e[e.UnknownBrowser=14]="UnknownBrowser",e[e.AndroidAmazon=15]="AndroidAmazon",e[e.UWP=16]="UWP",e[e.SafariBrowser=17]="SafariBrowser",e[e.VivaldiBrowser=18]="VivaldiBrowser",e[e.VivaldiExtension=19]="VivaldiExtension",e[e.SafariExtension=20]="SafariExtension"}(t.DeviceType||(t.DeviceType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.SettingsService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Free=0]="Free",e[e.FamiliesAnnually2019=1]="FamiliesAnnually2019",e[e.TeamsMonthly2019=2]="TeamsMonthly2019",e[e.TeamsAnnually2019=3]="TeamsAnnually2019",e[e.EnterpriseMonthly2019=4]="EnterpriseMonthly2019",e[e.EnterpriseAnnually2019=5]="EnterpriseAnnually2019",e[e.Custom=6]="Custom",e[e.FamiliesAnnually=7]="FamiliesAnnually",e[e.TeamsMonthly=8]="TeamsMonthly",e[e.TeamsAnnually=9]="TeamsAnnually",e[e.EnterpriseMonthly=10]="EnterpriseMonthly",e[e.EnterpriseAnnually=11]="EnterpriseAnnually"}(t.PlanType||(t.PlanType={}))},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&(e.uris=[],this.uris.forEach(function(t){e.uris.push(t.toLoginUriData())})),e},t}(n(82).default);t.Login=p},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(486),o=n(257),s=function(e){function t(t,n){void 0===n&&(n=!1);var r=e.call(this)||this;return null==t?r:(r.match=t.match,r.buildDomainModel(r,t,{uri:null},n,[]),r)}return i(t,e),t.prototype.decrypt=function(e,t){return this.decryptObj(new o.LoginUriView(this),{uri:null},e,t)},t.prototype.toLoginUriData=function(){var e=new a.LoginUriData;return this.buildDataModel(this,e,{uri:null},["match"]),e},t}(n(82).default);t.LoginUri=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Domain=0]="Domain",e[e.Host=1]="Host",e[e.StartsWith=2]="StartsWith",e[e.Exact=3]="Exact",e[e.RegularExpression=4]="RegularExpression",e[e.Never=5]="Never"}(t.UriMatchType||(t.UriMatchType={}))},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(487),o=n(82),s=n(94),l=function(e){function t(t,n){void 0===n&&(n=!1);var r=e.call(this)||this;return null==t?r:(r.type=t.type,r)}return i(t,e),t.prototype.decrypt=function(e,t){return Promise.resolve(new s.SecureNoteView(this))},t.prototype.toSecureNoteData=function(){var e=new a.SecureNoteData;return e.type=this.type,e},t}(o.default);t.SecureNote=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),i=n(14),a=n(0),o=function(){function e(e,t){this.elementRef=e,this.renderer=t,this.trueValue=!0,this.falseValue=!1,this.propagateChange=function(e){}}return e.prototype.onHostChange=function(e){this.propagateChange(e.target.checked?this.trueValue:this.falseValue)},e.prototype.writeValue=function(e){e===this.trueValue?this.renderer.setProperty(this.elementRef.nativeElement,"checked",!0):this.renderer.setProperty(this.elementRef.nativeElement,"checked",!1)},e.prototype.registerOnChange=function(e){this.propagateChange=e},e.prototype.registerOnTouched=function(e){},e.prototype.setDisabledState=function(e){},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(a.ElementRef),a.ɵɵdirectiveInject(a.Renderer2))},e.ɵdir=a.ɵɵdefineDirective({type:e,selectors:[["input","type","checkbox","appTrueFalseValue",""]],hostBindings:function(e,t){1&e&&a.ɵɵlistener("change",function(e){return t.onHostChange(e)})},inputs:{trueValue:"trueValue",falseValue:"falseValue"},features:[a.ɵɵProvidersFeature([{provide:i.NG_VALUE_ACCESSOR,useExisting:r.forwardRef(function(){return e}),multi:!0}])]}),e}();t.TrueFalseValueDirective=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(0),o=(n(41),n(49),n(42),n(7),n(874)),s=n(0),l=n(41),c=n(49),p=n(42),u=n(7),d=n(18),m=n(14),h=n(66),f=n(4),v=n(37),y=n(10),g=function(e){return{active:e}};function x(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"li",7),s.ɵɵtext(1,"\n "),s.ɵɵelementStart(2,"a",8),s.ɵɵlistener("click",function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext().selectFavorites()}),s.ɵɵtext(3,"\n "),s.ɵɵelement(4,"i",17),s.ɵɵtext(5),s.ɵɵpipe(6,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(7,"\n "),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext();s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(4,g,r.selectedFavorites)),s.ɵɵadvance(5),s.ɵɵtextInterpolate1("",s.ɵɵpipeBind1(6,2,"favorites"),"\n ")}}function b(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"li",7),s.ɵɵtext(1,"\n "),s.ɵɵelementStart(2,"a",8),s.ɵɵlistener("click",function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext().selectTrash()}),s.ɵɵtext(3,"\n "),s.ɵɵelement(4,"i",18),s.ɵɵtext(5),s.ɵɵpipe(6,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(7,"\n "),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext();s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(4,g,r.selectedTrash)),s.ɵɵadvance(5),s.ɵɵtextInterpolate1("",s.ɵɵpipeBind1(6,2,"trash"),"\n ")}}function S(e,t){1&e&&(s.ɵɵelementStart(0,"p",19),s.ɵɵtext(1,"\n "),s.ɵɵelement(2,"i",20),s.ɵɵpipe(3,"i18n"),s.ɵɵtext(4,"\n "),s.ɵɵelementStart(5,"span",21),s.ɵɵtext(6),s.ɵɵpipe(7,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(8,"\n "),s.ɵɵelementEnd()),2&e&&(s.ɵɵadvance(2),s.ɵɵpropertyInterpolate("title",s.ɵɵpipeBind1(3,2,"loading")),s.ɵɵadvance(4),s.ɵɵtextInterpolate(s.ɵɵpipeBind1(7,4,"loading")))}var w=function(e,t){return{"fa-caret-right":e,"fa-caret-down":t}};function C(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"i",32),s.ɵɵlistener("click",function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext().$implicit;return s.ɵɵnextContext(4).collapse(e.node)}),s.ɵɵpipe(1,"i18n"),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext().$implicit,i=s.ɵɵnextContext(4);s.ɵɵpropertyInterpolate("title",s.ɵɵpipeBind1(1,2,"toggleCollapse")),s.ɵɵproperty("ngClass",s.ɵɵpureFunction2(4,w,i.isCollapsed(r.node),!i.isCollapsed(r.node)))}}function I(e,t){1&e&&s.ɵɵelement(0,"i",33)}function E(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"a",34),s.ɵɵlistener("click",function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext().$implicit;return s.ɵɵnextContext(4).editFolder(e.node)}),s.ɵɵpipe(1,"i18n"),s.ɵɵtext(2,"\n "),s.ɵɵelement(3,"i",35),s.ɵɵtext(4,"\n "),s.ɵɵelementEnd()}2&e&&s.ɵɵpropertyInterpolate("appA11yTitle",s.ɵɵpipeBind1(1,1,"editFolder"))}function P(e,t){1&e&&(s.ɵɵelementContainerStart(0),s.ɵɵtext(1,"\n "),s.ɵɵelementContainerEnd())}var k=function(e){return{$implicit:e}};function _(e,t){if(1&e&&(s.ɵɵelementStart(0,"ul",36),s.ɵɵtext(1,"\n "),s.ɵɵtemplate(2,P,2,0,"ng-container",26),s.ɵɵtext(3,"\n "),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext().$implicit;s.ɵɵnextContext(2);var r=s.ɵɵreference(15);s.ɵɵadvance(2),s.ɵɵproperty("ngTemplateOutlet",r)("ngTemplateOutletContext",s.ɵɵpureFunction1(2,k,n.children))}}function A(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"li",7),s.ɵɵtext(1,"\n "),s.ɵɵelementStart(2,"div",22),s.ɵɵtext(3,"\n "),s.ɵɵtemplate(4,C,2,7,"i",28),s.ɵɵtext(5,"\n "),s.ɵɵelementStart(6,"a",8),s.ɵɵlistener("click",function(){s.ɵɵrestoreView(n);var e=t.$implicit;return s.ɵɵnextContext(4).selectFolder(e.node)}),s.ɵɵtext(7,"\n "),s.ɵɵtemplate(8,I,1,0,"i",29),s.ɵɵtext(9),s.ɵɵelementEnd(),s.ɵɵtext(10,"\n "),s.ɵɵtemplate(11,E,5,3,"a",30),s.ɵɵtext(12,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(13,"\n "),s.ɵɵtemplate(14,_,4,4,"ul",31),s.ɵɵtext(15,"\n "),s.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=s.ɵɵnextContext(4);s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(6,g,i.selectedFolder&&r.node.id===i.selectedFolderId)),s.ɵɵadvance(4),s.ɵɵproperty("ngIf",r.children.length),s.ɵɵadvance(4),s.ɵɵproperty("ngIf",0===r.children.length),s.ɵɵadvance(1),s.ɵɵtextInterpolate1("",r.node.name,"\n "),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",r.node.id),s.ɵɵadvance(3),s.ɵɵproperty("ngIf",r.children.length&&!i.isCollapsed(r.node))}}function O(e,t){if(1&e&&(s.ɵɵtext(0,"\n "),s.ɵɵtemplate(1,A,16,8,"li",27),s.ɵɵtext(2,"\n ")),2&e){var n=t.$implicit;s.ɵɵadvance(1),s.ɵɵproperty("ngForOf",n)}}function T(e,t){1&e&&(s.ɵɵelementContainerStart(0),s.ɵɵtext(1,"\n "),s.ɵɵelementContainerEnd())}function M(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementContainerStart(0),s.ɵɵtext(1,"\n "),s.ɵɵelementStart(2,"h3",22),s.ɵɵtext(3),s.ɵɵpipe(4,"i18n"),s.ɵɵelementStart(5,"a",23),s.ɵɵlistener("click",function(){return s.ɵɵrestoreView(n),s.ɵɵnextContext(2).addFolder()}),s.ɵɵpipe(6,"i18n"),s.ɵɵtext(7,"\n "),s.ɵɵelement(8,"i",24),s.ɵɵtext(9,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(10,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(11,"\n "),s.ɵɵelementStart(12,"ul",6),s.ɵɵtext(13,"\n "),s.ɵɵtemplate(14,O,3,1,"ng-template",null,25,s.ɵɵtemplateRefExtractor),s.ɵɵtext(16,"\n "),s.ɵɵtemplate(17,T,2,0,"ng-container",26),s.ɵɵtext(18,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(19,"\n "),s.ɵɵelementContainerEnd()}if(2&e){var r=s.ɵɵreference(15),i=s.ɵɵnextContext(2);s.ɵɵadvance(3),s.ɵɵtextInterpolate1("\n ",s.ɵɵpipeBind1(4,4,"folders"),"\n "),s.ɵɵadvance(2),s.ɵɵpropertyInterpolate("appA11yTitle",s.ɵɵpipeBind1(6,6,"addFolder")),s.ɵɵadvance(12),s.ɵɵproperty("ngTemplateOutlet",r)("ngTemplateOutletContext",s.ɵɵpureFunction1(8,k,i.nestedFolders))}}function B(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"i",32),s.ɵɵlistener("click",function(){s.ɵɵrestoreView(n);var e=s.ɵɵnextContext().$implicit;return s.ɵɵnextContext(4).collapse(e.node)}),s.ɵɵpipe(1,"i18n"),s.ɵɵelementEnd()}if(2&e){var r=s.ɵɵnextContext().$implicit,i=s.ɵɵnextContext(4);s.ɵɵpropertyInterpolate("title",s.ɵɵpipeBind1(1,2,"toggleCollapse")),s.ɵɵproperty("ngClass",s.ɵɵpureFunction2(4,w,i.isCollapsed(r.node),!i.isCollapsed(r.node)))}}function D(e,t){1&e&&s.ɵɵelement(0,"i",39)}function V(e,t){1&e&&(s.ɵɵelementContainerStart(0),s.ɵɵtext(1,"\n "),s.ɵɵelementContainerEnd())}function j(e,t){if(1&e&&(s.ɵɵelementStart(0,"ul",36),s.ɵɵtext(1,"\n "),s.ɵɵtemplate(2,V,2,0,"ng-container",26),s.ɵɵtext(3,"\n "),s.ɵɵelementEnd()),2&e){var n=s.ɵɵnextContext().$implicit;s.ɵɵnextContext(2);var r=s.ɵɵreference(9);s.ɵɵadvance(2),s.ɵɵproperty("ngTemplateOutlet",r)("ngTemplateOutletContext",s.ɵɵpureFunction1(2,k,n.children))}}function R(e,t){if(1&e){var n=s.ɵɵgetCurrentView();s.ɵɵelementStart(0,"li",7),s.ɵɵtext(1,"\n "),s.ɵɵtemplate(2,B,2,7,"i",28),s.ɵɵtext(3,"\n "),s.ɵɵelementStart(4,"a",8),s.ɵɵlistener("click",function(){s.ɵɵrestoreView(n);var e=t.$implicit;return s.ɵɵnextContext(4).selectCollection(e.node)}),s.ɵɵtext(5,"\n "),s.ɵɵtemplate(6,D,1,0,"i",38),s.ɵɵtext(7),s.ɵɵelementEnd(),s.ɵɵtext(8,"\n "),s.ɵɵtemplate(9,j,4,4,"ul",31),s.ɵɵtext(10,"\n "),s.ɵɵelementEnd()}if(2&e){var r=t.$implicit,i=s.ɵɵnextContext(4);s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(5,g,r.node.id===i.selectedCollectionId)),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",r.children.length),s.ɵɵadvance(4),s.ɵɵproperty("ngIf",0===r.children.length),s.ɵɵadvance(1),s.ɵɵtextInterpolate1("",r.node.name,"\n "),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",r.children.length&&!i.isCollapsed(r.node))}}function F(e,t){if(1&e&&(s.ɵɵtext(0,"\n "),s.ɵɵtemplate(1,R,11,7,"li",27),s.ɵɵtext(2,"\n ")),2&e){var n=t.$implicit;s.ɵɵadvance(1),s.ɵɵproperty("ngForOf",n)}}function U(e,t){1&e&&(s.ɵɵelementContainerStart(0),s.ɵɵtext(1,"\n "),s.ɵɵelementContainerEnd())}function N(e,t){if(1&e&&(s.ɵɵelementContainerStart(0),s.ɵɵtext(1,"\n "),s.ɵɵelementStart(2,"h3"),s.ɵɵtext(3),s.ɵɵpipe(4,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(5,"\n "),s.ɵɵelementStart(6,"ul",6),s.ɵɵtext(7,"\n "),s.ɵɵtemplate(8,F,3,1,"ng-template",null,37,s.ɵɵtemplateRefExtractor),s.ɵɵtext(10,"\n "),s.ɵɵtemplate(11,U,2,0,"ng-container",26),s.ɵɵtext(12,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(13,"\n "),s.ɵɵelementContainerEnd()),2&e){var n=s.ɵɵreference(9),r=s.ɵɵnextContext(2);s.ɵɵadvance(3),s.ɵɵtextInterpolate(s.ɵɵpipeBind1(4,3,"collections")),s.ɵɵadvance(8),s.ɵɵproperty("ngTemplateOutlet",n)("ngTemplateOutletContext",s.ɵɵpureFunction1(5,k,r.nestedCollections))}}function z(e,t){if(1&e&&(s.ɵɵelementContainerStart(0),s.ɵɵtext(1,"\n "),s.ɵɵtemplate(2,M,20,10,"ng-container",16),s.ɵɵtext(3,"\n "),s.ɵɵtemplate(4,N,14,7,"ng-container",16),s.ɵɵtext(5,"\n "),s.ɵɵelementContainerEnd()),2&e){var n=s.ɵɵnextContext();s.ɵɵadvance(2),s.ɵɵproperty("ngIf",n.showFolders),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",n.showCollections&&n.collections&&n.collections.length)}}var L=function(e){function t(t,n,r,i){var o=e.call(this,t,n,r,i)||this;return o.onSearchTextChanged=new a.EventEmitter,o.searchText="",o.searchPlaceholder=null,o}return i(t,e),t.prototype.searchTextChanged=function(){this.onSearchTextChanged.emit(this.searchText)},t.ɵfac=function(e){return new(e||t)(s.ɵɵdirectiveInject(l.CollectionService),s.ɵɵdirectiveInject(c.FolderService),s.ɵɵdirectiveInject(p.StorageService),s.ɵɵdirectiveInject(u.UserService))},t.ɵcmp=s.ɵɵdefineComponent({type:t,selectors:[["app-vault-groupings"]],outputs:{onSearchTextChanged:"onSearchTextChanged"},features:[s.ɵɵInheritDefinitionFeature],decls:82,vars:47,consts:[[1,"card","vault-filters"],[1,"card-header","d-flex"],["href","https://help.bitwarden.com/article/searching-vault/","target","_blank","rel","noopener",1,"ml-auto",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-question-circle-o"],[1,"card-body"],["type","search","id","search","autocomplete","off","appAutofocus","",1,"form-control",3,"placeholder","ngModel","ngModelChange","input"],[1,"fa-ul","card-ul"],[3,"ngClass"],["href","#","appStopClick","",3,"click"],[1,"fa-li","fa","fa-fw","fa-th"],[3,"ngClass",4,"ngIf"],[1,"fa-li","fa","fa-fw","fa-globe"],[1,"fa-li","fa","fa-fw","fa-credit-card"],[1,"fa-li","fa","fa-fw","fa-id-card-o"],[1,"fa-li","fa","fa-fw","fa-sticky-note-o"],["class","text-muted",4,"ngIf"],[4,"ngIf"],[1,"fa-li","fa","fa-fw","fa-star"],[1,"fa-li","fa","fa-fw","fa-trash-o"],[1,"text-muted"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],[1,"sr-only"],[1,"d-flex"],["href","#","appStopClick","",1,"text-muted","ml-auto",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-plus","fa-fw"],["recursiveFolders",""],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"ngClass",4,"ngFor","ngForOf"],["class","fa-li fa",3,"title","ngClass","click",4,"ngIf"],["class","fa-li fa fa-folder-o","aria-hidden","true",4,"ngIf"],["href","#","class","text-muted ml-auto show-active","appStopClick","",3,"appA11yTitle","click",4,"ngIf"],["class","fa-ul card-ul carets",4,"ngIf"],[1,"fa-li","fa",3,"title","ngClass","click"],["aria-hidden","true",1,"fa-li","fa","fa-folder-o"],["href","#","appStopClick","",1,"text-muted","ml-auto","show-active",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-pencil","fa-fw"],[1,"fa-ul","card-ul","carets"],["recursiveCollections",""],["class","fa-li fa fa-cube","aria-hidden","true",4,"ngIf"],["aria-hidden","true",1,"fa-li","fa","fa-cube"]],template:function(e,t){1&e&&(s.ɵɵelementStart(0,"div",0),s.ɵɵtext(1,"\n "),s.ɵɵelementStart(2,"div",1),s.ɵɵtext(3),s.ɵɵpipe(4,"i18n"),s.ɵɵelementStart(5,"a",2),s.ɵɵpipe(6,"i18n"),s.ɵɵtext(7,"\n "),s.ɵɵelement(8,"i",3),s.ɵɵtext(9,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(10,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(11,"\n "),s.ɵɵelementStart(12,"div",4),s.ɵɵtext(13,"\n "),s.ɵɵelementStart(14,"input",5),s.ɵɵlistener("ngModelChange",function(e){return t.searchText=e})("input",function(){return t.searchTextChanged()}),s.ɵɵpipe(15,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(16,"\n "),s.ɵɵelementStart(17,"ul",6),s.ɵɵtext(18,"\n "),s.ɵɵelementStart(19,"li",7),s.ɵɵtext(20,"\n "),s.ɵɵelementStart(21,"a",8),s.ɵɵlistener("click",function(){return t.selectAll()}),s.ɵɵtext(22,"\n "),s.ɵɵelement(23,"i",9),s.ɵɵtext(24),s.ɵɵpipe(25,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(26,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(27,"\n "),s.ɵɵtemplate(28,x,8,6,"li",10),s.ɵɵtext(29,"\n "),s.ɵɵtemplate(30,b,8,6,"li",10),s.ɵɵtext(31,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(32,"\n "),s.ɵɵelementStart(33,"h3"),s.ɵɵtext(34),s.ɵɵpipe(35,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(36,"\n "),s.ɵɵelementStart(37,"ul",6),s.ɵɵtext(38,"\n "),s.ɵɵelementStart(39,"li",7),s.ɵɵtext(40,"\n "),s.ɵɵelementStart(41,"a",8),s.ɵɵlistener("click",function(){return t.selectType(t.cipherType.Login)}),s.ɵɵtext(42,"\n "),s.ɵɵelement(43,"i",11),s.ɵɵtext(44),s.ɵɵpipe(45,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(46,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(47,"\n "),s.ɵɵelementStart(48,"li",7),s.ɵɵtext(49,"\n "),s.ɵɵelementStart(50,"a",8),s.ɵɵlistener("click",function(){return t.selectType(t.cipherType.Card)}),s.ɵɵtext(51,"\n "),s.ɵɵelement(52,"i",12),s.ɵɵtext(53),s.ɵɵpipe(54,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(55,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(56,"\n "),s.ɵɵelementStart(57,"li",7),s.ɵɵtext(58,"\n "),s.ɵɵelementStart(59,"a",8),s.ɵɵlistener("click",function(){return t.selectType(t.cipherType.Identity)}),s.ɵɵtext(60,"\n "),s.ɵɵelement(61,"i",13),s.ɵɵtext(62),s.ɵɵpipe(63,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(64,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(65,"\n "),s.ɵɵelementStart(66,"li",7),s.ɵɵtext(67,"\n "),s.ɵɵelementStart(68,"a",8),s.ɵɵlistener("click",function(){return t.selectType(t.cipherType.SecureNote)}),s.ɵɵtext(69,"\n "),s.ɵɵelement(70,"i",14),s.ɵɵtext(71),s.ɵɵpipe(72,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(73,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(74,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(75,"\n "),s.ɵɵtemplate(76,S,9,6,"p",15),s.ɵɵtext(77,"\n "),s.ɵɵtemplate(78,z,6,2,"ng-container",16),s.ɵɵtext(79,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(80,"\n"),s.ɵɵelementEnd(),s.ɵɵtext(81,"\n")),2&e&&(s.ɵɵadvance(3),s.ɵɵtextInterpolate1("\n ",s.ɵɵpipeBind1(4,19,"filters"),"\n "),s.ɵɵadvance(2),s.ɵɵpropertyInterpolate("appA11yTitle",s.ɵɵpipeBind1(6,21,"learnMore")),s.ɵɵadvance(9),s.ɵɵpropertyInterpolate("placeholder",t.searchPlaceholder||s.ɵɵpipeBind1(15,23,"searchVault")),s.ɵɵproperty("ngModel",t.searchText),s.ɵɵadvance(5),s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(37,g,t.selectedAll)),s.ɵɵadvance(5),s.ɵɵtextInterpolate1("",s.ɵɵpipeBind1(25,25,"allItems"),"\n "),s.ɵɵadvance(4),s.ɵɵproperty("ngIf",t.showFavorites),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",t.showTrash),s.ɵɵadvance(4),s.ɵɵtextInterpolate(s.ɵɵpipeBind1(35,27,"types")),s.ɵɵadvance(5),s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(39,g,t.selectedType===t.cipherType.Login)),s.ɵɵadvance(5),s.ɵɵtextInterpolate1("",s.ɵɵpipeBind1(45,29,"typeLogin"),"\n "),s.ɵɵadvance(4),s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(41,g,t.selectedType===t.cipherType.Card)),s.ɵɵadvance(5),s.ɵɵtextInterpolate1("",s.ɵɵpipeBind1(54,31,"typeCard"),"\n "),s.ɵɵadvance(4),s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(43,g,t.selectedType===t.cipherType.Identity)),s.ɵɵadvance(5),s.ɵɵtextInterpolate1("",s.ɵɵpipeBind1(63,33,"typeIdentity"),"\n "),s.ɵɵadvance(4),s.ɵɵproperty("ngClass",s.ɵɵpureFunction1(45,g,t.selectedType===t.cipherType.SecureNote)),s.ɵɵadvance(5),s.ɵɵtextInterpolate1("",s.ɵɵpipeBind1(72,35,"typeSecureNote"),"\n "),s.ɵɵadvance(5),s.ɵɵproperty("ngIf",!t.loaded),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",t.loaded))},directives:[d.A11yTitleDirective,m.DefaultValueAccessor,h.AutofocusDirective,m.NgControlStatus,m.NgModel,f.NgClass,v.StopClickDirective,f.NgIf,f.NgTemplateOutlet,f.NgForOf],pipes:[y.I18nPipe],encapsulation:2}),t}(o.GroupingsComponent);t.GroupingsComponent=L},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(159),i=n(250),a=function(){function e(e){null!=e&&(this.id=e.id,this.name=e.name,this.status=e.status,this.type=e.type,this.enabled=e.enabled,this.usePolicies=e.usePolicies,this.useGroups=e.useGroups,this.useDirectory=e.useDirectory,this.useEvents=e.useEvents,this.useTotp=e.useTotp,this.use2fa=e.use2fa,this.useApi=e.useApi,this.useBusinessPortal=e.useBusinessPortal,this.useSso=e.useSso,this.selfHost=e.selfHost,this.usersGetPremium=e.usersGetPremium,this.seats=e.seats,this.maxCollections=e.maxCollections,this.maxStorageGb=e.maxStorageGb,this.ssoBound=e.ssoBound,this.identifier=e.identifier,this.permissions=e.permissions)}return Object.defineProperty(e.prototype,"canAccess",{get:function(){return this.type===i.OrganizationUserType.Owner||this.enabled&&this.status===r.OrganizationUserStatusType.Confirmed},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isManager",{get:function(){return this.type===i.OrganizationUserType.Manager||this.type===i.OrganizationUserType.Owner||this.type===i.OrganizationUserType.Admin},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isAdmin",{get:function(){return this.type===i.OrganizationUserType.Owner||this.type===i.OrganizationUserType.Admin},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isOwner",{get:function(){return this.type===i.OrganizationUserType.Owner},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canAccessBusinessPortal",{get:function(){return this.isAdmin||this.permissions.accessBusinessPortal},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canAccessEventLogs",{get:function(){return this.isAdmin||this.permissions.accessEventLogs},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canAccessImportExport",{get:function(){return this.isAdmin||this.permissions.accessImportExport},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canAccessReports",{get:function(){return this.isAdmin||this.permissions.accessReports},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canManageAllCollections",{get:function(){return this.isAdmin||this.permissions.manageAllCollections},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canManageAssignedCollections",{get:function(){return this.isManager||this.permissions.manageAssignedCollections},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canManageGroups",{get:function(){return this.isAdmin||this.permissions.manageGroups},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canManageSso",{get:function(){return this.isAdmin||this.permissions.manageSso},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canManagePolicies",{get:function(){return this.isAdmin||this.permissions.managePolicies},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canManageUsers",{get:function(){return this.isAdmin||this.permissions.manageUsers},enumerable:!0,configurable:!0}),e}();t.Organization=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.id=null,this.size=null,this.sizeName=null,this.fileName=null,e&&(this.id=e.id,this.size=e.size,this.sizeName=e.sizeName)}return Object.defineProperty(e.prototype,"fileSize",{get:function(){try{if(null!=this.size)return parseInt(this.size,null)}catch(e){}return 0},enumerable:!0,configurable:!0}),e}();t.SendFileView=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.text=null,e&&(this.hidden=e.hidden)}return Object.defineProperty(e.prototype,"maskedText",{get:function(){return null!=this.text?"••••••••":null},enumerable:!0,configurable:!0}),e}();t.SendTextView=r},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]1&&this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),n,{timeout:5e3*n.length}),n},e.ɵfac=function(t){return new(t||e)(r.ɵɵinject(i.I18nService),r.ɵɵinject(a.PlatformUtilsService))},e.ɵprov=r.ɵɵdefineInjectable({token:e,factory:e.ɵfac}),e}();t.ValidationService=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.AesCbc256_B64=0]="AesCbc256_B64",e[e.AesCbc128_HmacSha256_B64=1]="AesCbc128_HmacSha256_B64",e[e.AesCbc256_HmacSha256_B64=2]="AesCbc256_HmacSha256_B64",e[e.Rsa2048_OaepSha256_B64=3]="Rsa2048_OaepSha256_B64",e[e.Rsa2048_OaepSha1_B64=4]="Rsa2048_OaepSha1_B64",e[e.Rsa2048_OaepSha256_HmacSha256_B64=5]="Rsa2048_OaepSha256_HmacSha256_B64",e[e.Rsa2048_OaepSha1_HmacSha256_B64=6]="Rsa2048_OaepSha1_HmacSha256_B64"}(t.EncryptionType||(t.EncryptionType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e,t){this.publicKey=e,this.encryptedPrivateKey=t}}();t.KeysRequest=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(t){var n=e.call(this)||this;return null==t?n:(n.id=t.id,n.organizationId=t.organizationId,n.type=t.type,n.data=t.data,n.enabled=t.enabled,n)}return i(t,e),t}(n(82).default);t.Policy=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e){this.id=e.id,this.organizationId=e.organizationId,this.type=e.type,this.data=e.data,this.enabled=e.enabled}}();t.PolicyData=r},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]-1&&(e=e.concat(this.email.substr(0,t).trim().toLowerCase().split(/[^A-Za-z0-9]/))),e},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(o.I18nService),a.ɵɵdirectiveInject(s.CryptoService),a.ɵɵdirectiveInject(l.MessagingService),a.ɵɵdirectiveInject(c.UserService),a.ɵɵdirectiveInject(p.PasswordGenerationService),a.ɵɵdirectiveInject(u.PlatformUtilsService),a.ɵɵdirectiveInject(d.PolicyService))},e.ɵdir=a.ɵɵdefineDirective({type:e}),e}();t.ChangePasswordComponent=m},,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&t.forEach(function(t){var n=e.data.filter(function(e){return e.id===t});null!=n&&n.length>0&&(n[0].checked=!0)}),[3,5];case 3:return"collection"!==this.entity?[3,5]:[4,this.apiService.getCollectionUsers(this.organizationId,this.entityId)];case 4:null!=(t=r.sent())&&e.data.length>0&&t.forEach(function(t){var n=e.data.filter(function(e){return!e.accessAll&&e.id===t.id});null!=n&&n.length>0&&(n[0].checked=!0,n[0].readOnly=t.readOnly,n[0].hidePasswords=t.hidePasswords)}),r.label=5;case 5:return this.allUsers.forEach(function(e){"collection"===n.entity&&e.accessAll&&(e.checked=!0),e.checked&&n.selectedCount++}),[2]}})})},e.prototype.check=function(e){"collection"===this.entity&&e.accessAll||(e.checked=!e.checked,this.selectedChanged(e))},e.prototype.selectedChanged=function(e){e.checked?this.selectedCount++:("collection"===this.entity&&(e.readOnly=!1,e.hidePasswords=!1),this.selectedCount--)},e.prototype.filterSelected=function(e){this.showSelected=e},e.prototype.submit=function(){return r(this,void 0,void 0,function(){var e;return i(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),"group"===this.entity?(e=this.users.filter(function(e){return e.checked}).map(function(e){return e.id}),this.formPromise=this.apiService.putGroupUsers(this.organizationId,this.entityId,e)):(e=this.users.filter(function(e){return e.checked&&!e.accessAll}).map(function(e){return new l.SelectionReadOnlyRequest(e.id,!!e.readOnly,!!e.hidePasswords)}),this.formPromise=this.apiService.putCollectionUsers(this.organizationId,this.entityId,e)),[4,this.formPromise];case 1:return t.sent(),this.analytics.eventTrack.next({action:"group"===this.entity?"Edited Group Users":"Edited Collection Users"}),this.toasterService.popAsync("success",null,this.i18nService.t("updatedUsers")),this.onEditedUsers.emit(),[3,3];case 2:return t.sent(),[3,3];case 3:return[2]}})})},e.ɵfac=function(t){return new(t||e)(p.ɵɵdirectiveInject(u.ApiService),p.ɵɵdirectiveInject(d.I18nService),p.ɵɵdirectiveInject(m.Angulartics2),p.ɵɵdirectiveInject(h.ToasterService))},e.ɵcmp=p.ɵɵdefineComponent({type:e,selectors:[["app-entity-users"]],inputs:{entity:"entity",entityId:"entityId",entityName:"entityName",organizationId:"organizationId"},outputs:{onEditedUsers:"onEditedUsers"},decls:49,vars:29,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","userAccessTitle",1,"modal","fade"],["role","document",1,"modal-dialog","modal-lg"],["ngNativeValidate","",1,"modal-content",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-header"],["id","userAccessTitle",1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],["class","modal-body",4,"ngIf"],[1,"modal-footer"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],[1,"modal-body"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[1,"d-flex"],[1,"mr-3"],["for","search",1,"sr-only"],["type","search","id","search","name","SearchText",1,"form-control","form-control-sm",3,"placeholder","ngModel","ngModelChange"],["role","group",1,"btn-group","btn-group-sm"],["type","button",1,"btn","btn-outline-secondary",3,"ngClass","click"],["class","badge badge-pill badge-info",4,"ngIf"],[4,"ngIf"],[1,"badge","badge-pill","badge-info"],[1,"table","table-hover","table-list","mb-0"],["width","100","class","text-center",4,"ngIf"],[4,"ngFor","ngForOf"],["width","100",1,"text-center"],[1,"table-list-checkbox",3,"click"],["type","checkbox","appStopProp","",3,"ngModel","name","disabled","ngModelChange","change"],["width","30",3,"click"],["size","25",3,"data","email","circle","fontSize"],["class","badge badge-secondary",4,"ngIf"],["class","badge badge-warning",4,"ngIf"],["class","text-muted d-block",4,"ngIf"],["class","text-center",4,"ngIf"],[1,"badge","badge-secondary"],[1,"badge","badge-warning"],[1,"text-muted","d-block"],["aria-hidden","true",1,"fa","fa-th",3,"title"],[1,"text-center"],["type","checkbox",3,"ngModel","name","disabled","ngModelChange"]],template:function(e,t){if(1&e&&(p.ɵɵelementStart(0,"div",0),p.ɵɵtext(1,"\n "),p.ɵɵelementStart(2,"div",1),p.ɵɵtext(3,"\n "),p.ɵɵelementStart(4,"form",2,3),p.ɵɵlistener("ngSubmit",function(){return t.submit()}),p.ɵɵtext(6,"\n "),p.ɵɵelementStart(7,"div",4),p.ɵɵtext(8,"\n "),p.ɵɵelementStart(9,"h2",5),p.ɵɵtext(10),p.ɵɵpipe(11,"i18n"),p.ɵɵelementStart(12,"small"),p.ɵɵtext(13),p.ɵɵelementEnd(),p.ɵɵtext(14,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(15,"\n "),p.ɵɵelementStart(16,"button",6),p.ɵɵpipe(17,"i18n"),p.ɵɵtext(18,"\n "),p.ɵɵelementStart(19,"span",7),p.ɵɵtext(20,"×"),p.ɵɵelementEnd(),p.ɵɵtext(21,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(22,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(23,"\n "),p.ɵɵtemplate(24,C,9,6,"div",8),p.ɵɵtext(25,"\n "),p.ɵɵtemplate(26,K,32,22,"div",8),p.ɵɵpipe(27,"search"),p.ɵɵtext(28,"\n "),p.ɵɵelementStart(29,"div",9),p.ɵɵtext(30,"\n "),p.ɵɵelementStart(31,"button",10),p.ɵɵtext(32,"\n "),p.ɵɵelement(33,"i",11),p.ɵɵpipe(34,"i18n"),p.ɵɵtext(35,"\n "),p.ɵɵelementStart(36,"span"),p.ɵɵtext(37),p.ɵɵpipe(38,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(39,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(40,"\n "),p.ɵɵelementStart(41,"button",12),p.ɵɵtext(42),p.ɵɵpipe(43,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(44,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(45,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(46,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(47,"\n"),p.ɵɵelementEnd(),p.ɵɵtext(48,"\n")),2&e){var n=p.ɵɵreference(5);p.ɵɵadvance(4),p.ɵɵproperty("appApiAction",t.formPromise),p.ɵɵadvance(6),p.ɵɵtextInterpolate1("\n ",p.ɵɵpipeBind1(11,10,"userAccess"),"\n "),p.ɵɵadvance(3),p.ɵɵtextInterpolate(t.entityName),p.ɵɵadvance(3),p.ɵɵpropertyInterpolate("appA11yTitle",p.ɵɵpipeBind1(17,12,"close")),p.ɵɵadvance(8),p.ɵɵproperty("ngIf",t.loading||!t.users),p.ɵɵadvance(2),p.ɵɵproperty("ngIf",!t.loading&&t.users&&p.ɵɵpipeBindV(27,14,p.ɵɵpureFunction2(26,q,t.users,t.searchText))),p.ɵɵadvance(5),p.ɵɵproperty("disabled",n.loading),p.ɵɵadvance(2),p.ɵɵpropertyInterpolate("title",p.ɵɵpipeBind1(34,20,"loading")),p.ɵɵadvance(4),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(38,22,"save")),p.ɵɵadvance(5),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(43,24,"close"))}},directives:[f.NgControlStatusGroup,f.NgForm,v.ApiActionDirective,y.A11yTitleDirective,g.NgIf,f.DefaultValueAccessor,f.NgControlStatus,f.NgModel,g.NgClass,g.NgForOf,f.CheckboxControlValueAccessor,x.StopPropDirective,b.AvatarComponent],pipes:[S.I18nPipe,w.SearchPipe],encapsulation:2}),e}();t.EntityUsersComponent=W},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0?this.events=this.events.concat(a):this.events=a,this.loading=!1,this.morePromise=null,this.refreshPromise=null,[2]}})})},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(o.ApiService),a.ɵɵdirectiveInject(s.I18nService),a.ɵɵdirectiveInject(l.EventService),a.ɵɵdirectiveInject(c.ToasterService))},e.ɵcmp=a.ɵɵdefineComponent({type:e,selectors:[["app-entity-events"]],inputs:{name:"name",entity:"entity",entityId:"entityId",organizationId:"organizationId",showUser:"showUser"},decls:36,vars:12,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","eventLogsTitle",1,"modal","fade"],["role","document",1,"modal-dialog","modal-lg"],[1,"modal-content"],[1,"modal-header"],["id","eventLogsTitle",1,"modal-title"],["class","text-muted",4,"ngIf"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],["class","modal-body",4,"ngIf"],[1,"modal-footer"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],[1,"text-muted"],[1,"modal-body"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[1,"d-flex"],[1,"form-inline"],["for","start",1,"sr-only"],["type","datetime-local","id","start","placeholder","YYYY-MM-DDTHH:MM",1,"form-control","form-control-sm",3,"placeholder","ngModel","ngModelChange"],[1,"mx-2"],["for","end",1,"sr-only"],["type","datetime-local","id","end","placeholder","YYYY-MM-DDTHH:MM",1,"form-control","form-control-sm",3,"placeholder","ngModel","ngModelChange"],["type","button",1,"btn","btn-sm","btn-outline-primary","ml-3",3,"appApiAction","disabled","click"],["refreshBtn",""],["aria-hidden","true",1,"fa","fa-refresh","fa-fw",3,"ngClass"],[4,"ngIf"],["class","table table-hover mb-0",4,"ngIf"],["type","button","class","btn btn-block btn-link btn-submit",3,"appApiAction","disabled","click",4,"ngIf"],[1,"table","table-hover","mb-0"],["width","210",1,"border-top-0"],["width","40",1,"border-top-0"],["class","border-top-0","width","150",4,"ngIf"],[1,"border-top-0"],[4,"ngFor","ngForOf"],["width","150",1,"border-top-0"],["aria-hidden","true",3,"title"],[3,"innerHTML"],[3,"appA11yTitle"],["type","button",1,"btn","btn-block","btn-link","btn-submit",3,"appApiAction","disabled","click"],["moreBtn",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"]],template:function(e,t){1&e&&(a.ɵɵelementStart(0,"div",0),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"div",1),a.ɵɵtext(3,"\n "),a.ɵɵelementStart(4,"div",2),a.ɵɵtext(5,"\n "),a.ɵɵelementStart(6,"div",3),a.ɵɵtext(7,"\n "),a.ɵɵelementStart(8,"h2",4),a.ɵɵtext(9),a.ɵɵpipe(10,"i18n"),a.ɵɵtemplate(11,f,2,1,"small",5),a.ɵɵtext(12,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(13,"\n "),a.ɵɵelementStart(14,"button",6),a.ɵɵpipe(15,"i18n"),a.ɵɵtext(16,"\n "),a.ɵɵelementStart(17,"span",7),a.ɵɵtext(18,"×"),a.ɵɵelementEnd(),a.ɵɵtext(19,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(20,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(21,"\n "),a.ɵɵtemplate(22,v,9,6,"div",8),a.ɵɵtext(23,"\n "),a.ɵɵtemplate(24,I,40,25,"div",8),a.ɵɵtext(25,"\n "),a.ɵɵelementStart(26,"div",9),a.ɵɵtext(27,"\n "),a.ɵɵelementStart(28,"button",10),a.ɵɵtext(29),a.ɵɵpipe(30,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(31,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(32,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(33,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(34,"\n"),a.ɵɵelementEnd(),a.ɵɵtext(35,"\n")),2&e&&(a.ɵɵadvance(9),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(10,6,"eventLogs"),"\n "),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",t.name),a.ɵɵadvance(3),a.ɵɵpropertyInterpolate("appA11yTitle",a.ɵɵpipeBind1(15,8,"close")),a.ɵɵadvance(8),a.ɵɵproperty("ngIf",!t.loaded),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",t.loaded),a.ɵɵadvance(5),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(30,10,"close")))},directives:[p.NgIf,u.A11yTitleDirective,d.DefaultValueAccessor,d.NgControlStatus,d.NgModel,m.ApiActionDirective,p.NgClass,p.NgForOf],pipes:[h.I18nPipe,p.DatePipe],encapsulation:2}),e}();t.EntityEventsComponent=E},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(t){void 0===t&&(t=null);var n=e.call(this,t)||this;return null==t?n:(n.accessBusinessPortal=n.getResponseProperty("AccessBusinessPortal"),n.accessEventLogs=n.getResponseProperty("AccessEventLogs"),n.accessImportExport=n.getResponseProperty("AccessImportExport"),n.accessReports=n.getResponseProperty("AccessReports"),n.manageAllCollections=n.getResponseProperty("ManageAllCollections"),n.manageAssignedCollections=n.getResponseProperty("ManageAssignedCollections"),n.manageCiphers=n.getResponseProperty("ManageCiphers"),n.manageGroups=n.getResponseProperty("ManageGroups"),n.manageSso=n.getResponseProperty("ManageSso"),n.managePolicies=n.getResponseProperty("ManagePolicies"),n.manageUsers=n.getResponseProperty("ManageUsers"),n)}return i(t,e),t}(n(24).BaseResponse);t.PermissionsApi=a},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0)return void(this.creditAmount=parseFloat((Math.round(100*e)/100).toString()).toFixed(2).toString())}}catch(t){}this.creditAmount=""},Object.defineProperty(e.prototype,"creditAmountNumber",{get:function(){if(null!=this.creditAmount&&""!==this.creditAmount)try{return parseFloat(this.creditAmount)}catch(e){}return null},enumerable:!0,configurable:!0}),e.ɵfac=function(t){return new(t||e)(c.ɵɵdirectiveInject(p.UserService),c.ɵɵdirectiveInject(u.ApiService),c.ɵɵdirectiveInject(d.Angulartics2),c.ɵɵdirectiveInject(m.ToasterService),c.ɵɵdirectiveInject(h.PlatformUtilsService))},e.ɵcmp=c.ɵɵdefineComponent({type:e,selectors:[["app-add-credit"]],viewQuery:function(e,t){var n;(1&e&&c.ɵɵstaticViewQuery(b,!0,a.ElementRef),2&e)&&(c.ɵɵqueryRefresh(n=c.ɵɵloadQuery())&&(t.ppButtonFormRef=n.first))},inputs:{creditAmount:"creditAmount",showOptions:"showOptions",method:"method",organizationId:"organizationId"},outputs:{onAdded:"onAdded",onCanceled:"onCanceled"},decls:92,vars:32,consts:[["ngNativeValidate","",1,"card",3,"appApiAction","ngSubmit"],["form",""],[1,"card-body"],["type","button",1,"close",3,"appA11yTitle","click"],["aria-hidden","true"],[1,"card-body-header"],["class","mb-4 text-lg",4,"ngIf"],[1,"form-group"],[1,"row"],[1,"col-4"],["for","creditAmount"],[1,"input-group"],[1,"input-group-prepend"],[1,"input-group-text"],["id","creditAmount","type","text","name","CreditAmount","required","",1,"form-control",3,"ngModel","ngModelChange","blur"],[1,"form-text","text-muted"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["type","button",1,"btn","btn-outline-secondary",3,"click"],["method","post","target","_top",3,"action"],["ppButtonForm",""],["type","hidden","name","cmd","value","_xclick"],["type","hidden","name","business",3,"value"],["type","hidden","name","button_subtype","value","services"],["type","hidden","name","no_note","value","1"],["type","hidden","name","no_shipping","value","1"],["type","hidden","name","rm","value","1"],["type","hidden","name","return",3,"value"],["type","hidden","name","cancel_return",3,"value"],["type","hidden","name","currency_code","value","USD"],["type","hidden","name","image_url","value","https://bitwarden.com/images/paypal-banner.png"],["type","hidden","name","bn","value","PP-BuyNowBF:btn_buynow_LG.gif:NonHosted"],["type","hidden","name","amount",3,"value"],["type","hidden","name","custom",3,"value"],["type","hidden","name","item_name","value","Bitwarden Account Credit"],["type","hidden","name","item_number",3,"value"],[1,"mb-4","text-lg"],[1,"form-check","form-check-inline"],["type","radio","name","Method","id","credit-method-paypal",1,"form-check-input",3,"value","ngModel","ngModelChange"],["for","credit-method-paypal",1,"form-check-label"],["aria-hidden","true",1,"fa","fa-fw","fa-paypal"],["type","radio","name","Method","id","credit-method-bitcoin",1,"form-check-input",3,"value","ngModel","ngModelChange"],["for","credit-method-bitcoin",1,"form-check-label"],["aria-hidden","true",1,"fa","fa-fw","fa-bitcoin"]],template:function(e,t){if(1&e&&(c.ɵɵelementStart(0,"form",0,1),c.ɵɵlistener("ngSubmit",function(){return t.submit()}),c.ɵɵtext(2,"\n "),c.ɵɵelementStart(3,"div",2),c.ɵɵtext(4,"\n "),c.ɵɵelementStart(5,"button",3),c.ɵɵlistener("click",function(){return t.cancel()}),c.ɵɵpipe(6,"i18n"),c.ɵɵelementStart(7,"span",4),c.ɵɵtext(8,"×"),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵtext(9,"\n "),c.ɵɵelementStart(10,"h3",5),c.ɵɵtext(11),c.ɵɵpipe(12,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(13,"\n "),c.ɵɵtemplate(14,S,22,4,"div",6),c.ɵɵtext(15,"\n "),c.ɵɵelementStart(16,"div",7),c.ɵɵtext(17,"\n "),c.ɵɵelementStart(18,"div",8),c.ɵɵtext(19,"\n "),c.ɵɵelementStart(20,"div",9),c.ɵɵtext(21,"\n "),c.ɵɵelementStart(22,"label",10),c.ɵɵtext(23),c.ɵɵpipe(24,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(25,"\n "),c.ɵɵelementStart(26,"div",11),c.ɵɵtext(27,"\n "),c.ɵɵelementStart(28,"div",12),c.ɵɵelementStart(29,"span",13),c.ɵɵtext(30,"$USD"),c.ɵɵelementEnd(),c.ɵɵelementEnd(),c.ɵɵtext(31,"\n "),c.ɵɵelementStart(32,"input",14),c.ɵɵlistener("ngModelChange",function(e){return t.creditAmount=e})("blur",function(){return t.formatAmount()}),c.ɵɵelementEnd(),c.ɵɵtext(33,"\n "),c.ɵɵelementEnd(),c.ɵɵtext(34,"\n "),c.ɵɵelementEnd(),c.ɵɵtext(35,"\n "),c.ɵɵelementEnd(),c.ɵɵtext(36,"\n "),c.ɵɵelementStart(37,"small",15),c.ɵɵtext(38),c.ɵɵpipe(39,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(40,"\n "),c.ɵɵelementEnd(),c.ɵɵtext(41,"\n "),c.ɵɵelementStart(42,"button",16),c.ɵɵtext(43,"\n "),c.ɵɵelement(44,"i",17),c.ɵɵpipe(45,"i18n"),c.ɵɵtext(46,"\n "),c.ɵɵelementStart(47,"span"),c.ɵɵtext(48),c.ɵɵpipe(49,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(50,"\n "),c.ɵɵelementEnd(),c.ɵɵtext(51,"\n "),c.ɵɵelementStart(52,"button",18),c.ɵɵlistener("click",function(){return t.cancel()}),c.ɵɵtext(53),c.ɵɵpipe(54,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(55,"\n "),c.ɵɵelementEnd(),c.ɵɵtext(56,"\n"),c.ɵɵelementEnd(),c.ɵɵtext(57,"\n"),c.ɵɵelementStart(58,"form",19,20),c.ɵɵtext(60,"\n "),c.ɵɵelement(61,"input",21),c.ɵɵtext(62,"\n "),c.ɵɵelement(63,"input",22),c.ɵɵtext(64,"\n "),c.ɵɵelement(65,"input",23),c.ɵɵtext(66,"\n "),c.ɵɵelement(67,"input",24),c.ɵɵtext(68,"\n "),c.ɵɵelement(69,"input",25),c.ɵɵtext(70,"\n "),c.ɵɵelement(71,"input",26),c.ɵɵtext(72,"\n "),c.ɵɵelement(73,"input",27),c.ɵɵtext(74,"\n "),c.ɵɵelement(75,"input",28),c.ɵɵtext(76,"\n "),c.ɵɵelement(77,"input",29),c.ɵɵtext(78,"\n "),c.ɵɵelement(79,"input",30),c.ɵɵtext(80,"\n "),c.ɵɵelement(81,"input",31),c.ɵɵtext(82,"\n "),c.ɵɵelement(83,"input",32),c.ɵɵtext(84,"\n "),c.ɵɵelement(85,"input",33),c.ɵɵtext(86,"\n "),c.ɵɵelement(87,"input",34),c.ɵɵtext(88,"\n "),c.ɵɵelement(89,"input",35),c.ɵɵtext(90,"\n"),c.ɵɵelementEnd(),c.ɵɵtext(91,"\n")),2&e){var n=c.ɵɵreference(1);c.ɵɵproperty("appApiAction",t.formPromise),c.ɵɵadvance(5),c.ɵɵpropertyInterpolate("appA11yTitle",c.ɵɵpipeBind1(6,18,"cancel")),c.ɵɵadvance(6),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(12,20,"addCredit")),c.ɵɵadvance(3),c.ɵɵproperty("ngIf",t.showOptions),c.ɵɵadvance(9),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(24,22,"amount")),c.ɵɵadvance(9),c.ɵɵproperty("ngModel",t.creditAmount),c.ɵɵadvance(6),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(39,24,"creditDelayed")),c.ɵɵadvance(4),c.ɵɵproperty("disabled",n.loading||t.ppLoading),c.ɵɵadvance(2),c.ɵɵpropertyInterpolate("title",c.ɵɵpipeBind1(45,26,"loading")),c.ɵɵadvance(4),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(49,28,"submit")),c.ɵɵadvance(5),c.ɵɵtextInterpolate1("\n ",c.ɵɵpipeBind1(54,30,"cancel"),"\n "),c.ɵɵadvance(5),c.ɵɵpropertyInterpolate("action",t.ppButtonFormAction,c.ɵɵsanitizeUrl),c.ɵɵadvance(5),c.ɵɵpropertyInterpolate("value",t.ppButtonBusinessId),c.ɵɵadvance(10),c.ɵɵpropertyInterpolate("value",t.returnUrl),c.ɵɵadvance(2),c.ɵɵpropertyInterpolate("value",t.returnUrl),c.ɵɵadvance(8),c.ɵɵpropertyInterpolate("value",t.creditAmount),c.ɵɵadvance(2),c.ɵɵpropertyInterpolate("value",t.ppButtonCustomField),c.ɵɵadvance(4),c.ɵɵpropertyInterpolate("value",t.subject)}},directives:[f.NgControlStatusGroup,f.NgForm,v.ApiActionDirective,y.A11yTitleDirective,g.NgIf,f.DefaultValueAccessor,f.RequiredValidator,f.NgControlStatus,f.NgModel,f.ɵangular_packages_forms_forms_y,f.RadioControlValueAccessor],pipes:[x.I18nPipe],encapsulation:2}),e}();t.AddCreditComponent=w},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&(t.push(e),r.exposedPasswordMap.set(e.id,n))});n.push(i)}}),[4,Promise.all(n)];case 2:return i.sent(),this.ciphers=t,[2]}})})},t.prototype.getAllCiphers=function(){return this.cipherService.getAllDecrypted()},t.prototype.canManageCipher=function(e){return!0},t.ɵfac=function(e){return new(e||t)(c.ɵɵdirectiveInject(p.CipherService),c.ɵɵdirectiveInject(u.AuditService),c.ɵɵdirectiveInject(c.ComponentFactoryResolver),c.ɵɵdirectiveInject(d.MessagingService),c.ɵɵdirectiveInject(m.UserService))},t.ɵcmp=c.ɵɵdefineComponent({type:t,selectors:[["app-exposed-passwords-report"]],features:[c.ɵɵInheritDefinitionFeature],decls:26,vars:14,consts:[[1,"page-header"],["type","button",1,"btn","btn-primary","btn-submit",3,"disabled","click"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["class","mt-4",4,"ngIf"],["cipherAddEdit",""],[1,"mt-4"],["type","success",3,"title",4,"ngIf"],[4,"ngIf"],["type","success",3,"title"],["type","danger",3,"title"],[1,"table","table-hover","table-list","table-ciphers"],[4,"ngFor","ngForOf"],[1,"table-list-icon"],[3,"cipher"],[1,"reduced-lh","wrap"],[4,"ngIf","ngIfElse"],["cantManage",""],[1,"text-right"],[1,"badge","badge-warning"],["href","#","appStopClick","",3,"title","click"],["appStopProp","","aria-hidden","true",1,"fa","fa-share-alt",3,"title"],[1,"sr-only"],["appStopProp","","aria-hidden","true",1,"fa","fa-paperclip",3,"title"]],template:function(e,t){1&e&&(c.ɵɵelementStart(0,"div",0),c.ɵɵtext(1,"\n "),c.ɵɵelementStart(2,"h1"),c.ɵɵtext(3),c.ɵɵpipe(4,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(5,"\n"),c.ɵɵelementEnd(),c.ɵɵtext(6,"\n"),c.ɵɵelementStart(7,"p"),c.ɵɵtext(8),c.ɵɵpipe(9,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(10,"\n"),c.ɵɵelementStart(11,"button",1),c.ɵɵlistener("click",function(){return t.load()}),c.ɵɵtext(12,"\n "),c.ɵɵelement(13,"i",2),c.ɵɵpipe(14,"i18n"),c.ɵɵtext(15,"\n "),c.ɵɵelementStart(16,"span"),c.ɵɵtext(17),c.ɵɵpipe(18,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(19,"\n"),c.ɵɵelementEnd(),c.ɵɵtext(20,"\n"),c.ɵɵtemplate(21,k,6,2,"div",3),c.ɵɵtext(22,"\n"),c.ɵɵtemplate(23,_,0,0,"ng-template",null,4,c.ɵɵtemplateRefExtractor),c.ɵɵtext(25,"\n")),2&e&&(c.ɵɵadvance(3),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(4,6,"exposedPasswordsReport")),c.ɵɵadvance(5),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(9,8,"exposedPasswordsReportDesc")),c.ɵɵadvance(3),c.ɵɵproperty("disabled",t.loading),c.ɵɵadvance(2),c.ɵɵpropertyInterpolate("title",c.ɵɵpipeBind1(14,10,"loading")),c.ɵɵadvance(4),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(18,12,"checkExposedPasswords")),c.ɵɵadvance(4),c.ɵɵproperty("ngIf",t.hasLoaded))},directives:[h.NgIf,f.CalloutComponent,h.NgForOf,v.IconComponent,y.StopClickDirective,g.StopPropDirective],pipes:[x.I18nPipe,h.DecimalPipe],encapsulation:2}),t}(l.CipherReportComponent);t.ExposedPasswordsReportComponent=A},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]1||!this.allowPersonal)&&(null!=this.organization?this.cloneMode&&this.organization.canManageAllCollections:!this.editMode||this.cloneMode)},t.prototype.loadCollections=function(){return this.organization.canManageAllCollections?Promise.resolve(this.collections):e.prototype.loadCollections.call(this)},t.prototype.loadCipher=function(){return a(this,void 0,void 0,function(){var t,n;return o(this,function(r){switch(r.label){case 0:return this.organization.canManageAllCollections?[3,2]:[4,e.prototype.loadCipher.call(this)];case 1:return[2,r.sent()];case 2:return[4,this.apiService.getCipherAdmin(this.cipherId)];case 3:return t=r.sent(),n=new s.CipherData(t),this.originalCipher=new l.Cipher(n),[2,new l.Cipher(n)]}})})},t.prototype.encryptCipher=function(){return this.organization.canManageAllCollections?this.cipherService.encrypt(this.cipher,null,this.originalCipher):e.prototype.encryptCipher.call(this)},t.prototype.saveCipher=function(t){return a(this,void 0,void 0,function(){var n;return o(this,function(r){return this.organization.canManageAllCollections&&null!=t.organizationId?this.editMode&&!this.cloneMode?(n=new p.CipherRequest(t),[2,this.apiService.putCipherAdmin(this.cipherId,n)]):(n=new c.CipherCreateRequest(t),[2,this.apiService.postCipherAdmin(n)]):[2,e.prototype.saveCipher.call(this,t)]})})},t.prototype.deleteCipher=function(){return a(this,void 0,void 0,function(){return o(this,function(t){return this.organization.canManageAllCollections?[2,this.cipher.isDeleted?this.apiService.deleteCipherAdmin(this.cipherId):this.apiService.putDeleteCipherAdmin(this.cipherId)]:[2,e.prototype.deleteCipher.call(this)]})})},t.ɵfac=function(e){return new(e||t)(d.ɵɵdirectiveInject(m.CipherService),d.ɵɵdirectiveInject(h.FolderService),d.ɵɵdirectiveInject(f.I18nService),d.ɵɵdirectiveInject(v.PlatformUtilsService),d.ɵɵdirectiveInject(y.AuditService),d.ɵɵdirectiveInject(g.StateService),d.ɵɵdirectiveInject(x.UserService),d.ɵɵdirectiveInject(b.CollectionService),d.ɵɵdirectiveInject(S.TotpService),d.ɵɵdirectiveInject(w.PasswordGenerationService),d.ɵɵdirectiveInject(C.ApiService),d.ɵɵdirectiveInject(I.MessagingService),d.ɵɵdirectiveInject(E.EventService),d.ɵɵdirectiveInject(P.PolicyService))},t.ɵcmp=d.ɵɵdefineComponent({type:t,selectors:[["app-org-vault-add-edit"]],features:[d.ɵɵInheritDefinitionFeature],decls:36,vars:11,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","cipherAddEditTitle",1,"modal","fade"],["role","document",1,"modal-dialog","modal-lg"],["ngNativeValidate","","autocomplete","off",1,"modal-content",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-header"],["id","cipherAddEditTitle",1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],["class","modal-body",4,"ngIf"],[1,"modal-footer"],["type","submit","class","btn btn-primary btn-submit",3,"disabled",4,"ngIf"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],["class","ml-auto",4,"ngIf"],[1,"modal-body"],["type","info",4,"ngIf"],["class","row",4,"ngIf"],[1,"row"],[1,"col-6","form-group"],["for","name"],["id","name","type","text","name","Name","required","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["class","col-6 form-group",4,"ngIf"],[4,"ngIf"],[1,"form-group"],["for","notes"],["id","notes","name","Notes","rows","6",1,"form-control",3,"ngModel","disabled","ngModelChange"],[1,"mt-4"],["cdkDropList","",3,"cdkDropListDropped",4,"ngIf"],["href","#","appStopClick","","class","d-inline-block mb-2",3,"click",4,"ngIf"],["type","info"],["for","type"],["id","type","name","Type","appAutofocus","",1,"form-control",3,"ngModel","disabled","ngModelChange"],[3,"ngValue",4,"ngFor","ngForOf"],[3,"ngValue"],["for","folder"],["id","folder","name","FolderId",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","loginUsername"],[1,"input-group"],["id","loginUsername","type","text","name","Login.Username","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["class","input-group-append",4,"ngIf"],[1,"d-flex"],["for","loginPassword"],["class","ml-auto d-flex",4,"ngIf"],["id","loginPassword","name","Login.Password","appInputVerbatim","","autocomplete","new-password",1,"form-control","text-monospace",3,"type","ngModel","disabled","ngModelChange"],[1,"input-group-append"],["type","button",1,"btn","btn-outline-secondary",3,"appA11yTitle","disabled","click"],["aria-hidden","true",1,"fa","fa-lg",3,"ngClass"],["aria-hidden","true",1,"fa","fa-lg","fa-clone"],["for","loginTotp"],["id","loginTotp","name","Login.Totp","appInputVerbatim","",1,"form-control","text-monospace",3,"type","ngModel","disabled","ngModelChange"],[1,"col-6","form-group","totp","d-flex","align-items-end",3,"ngClass"],["class","d-flex align-items-center",4,"ngIf"],["href","#","appStopClick","","class","d-inline-block mb-3",3,"click",4,"ngIf"],["type","button",1,"btn","btn-outline-secondary",3,"appA11yTitle","click"],[1,"ml-auto","d-flex"],["href","#","class","d-block mr-2 fa-icon-above-input","appStopClick","",3,"appA11yTitle","click",4,"ngIf"],["href","#","appStopClick","",1,"d-block","fa-icon-above-input",3,"appA11yTitle","appApiAction","click"],["checkPasswordBtn",""],["aria-hidden","true",1,"fa","fa-lg","fa-fw","fa-check-circle",3,"hidden"],["aria-hidden","true",1,"fa","fa-lg","fa-fw","fa-spinner","fa-spin",3,"hidden","title"],["href","#","appStopClick","",1,"d-block","mr-2","fa-icon-above-input",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-lg","fa-fw","fa-refresh"],["src","images/totp-countdown.png",1,"ml-2",3,"title"],["href","#","appStopClick","","class","badge badge-primary ml-3",3,"click",4,"ngIf"],["href","#","appStopClick","",1,"badge","badge-primary","ml-3",3,"click"],[1,"d-flex","align-items-center"],[1,"totp-countdown","mr-3","ml-2"],[1,"totp-sec"],["r","12.6","cy","16","cx","16",1,"totp-circle","inner",3,"ngStyle"],["r","14","cy","16","cx","16",1,"totp-circle","outer"],[1,"totp-code","mr-2",3,"title"],["type","button",1,"btn","btn-link",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-clone"],["class","row",4,"ngFor","ngForOf","ngForTrackBy"],[1,"col-7","form-group"],[3,"for"],["type","text","appInputVerbatim","",1,"form-control",3,"id","name","ngModel","disabled","placeholder","ngModelChange"],["aria-hidden","true",1,"fa","fa-lg","fa-share"],[1,"col-5","form-group"],["href","https://help.bitwarden.com/article/uri-match-detection/","target","_blank","rel","noopener",1,"ml-auto",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-question-circle-o"],[1,"form-control","overflow-hidden",3,"id","name","ngModel","disabled","ngModelChange","change"],["type","button","class","btn btn-link text-danger ml-2",3,"appA11yTitle","click",4,"ngIf"],["type","button",1,"btn","btn-link","text-danger","ml-2",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-minus-circle","fa-lg"],["href","#","appStopClick","",1,"d-inline-block","mb-3",3,"click"],["aria-hidden","true",1,"fa","fa-plus-circle","fa-fw"],["for","cardCardholderName"],["id","cardCardholderName","type","text","name","Card.CardCardholderName",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","cardBrand"],["id","cardBrand","name","Card.Brand",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","cardNumber"],["id","cardNumber","type","text","name","Card.Number","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],[1,"col","form-group"],["for","cardExpMonth"],["id","cardExpMonth","name","Card.ExpMonth",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","cardExpYear"],["id","cardExpYear","type","text","name","Card.ExpYear",1,"form-control",3,"ngModel","placeholder","disabled","ngModelChange"],["for","cardCode"],["id","cardCode","name","Card.Code","appInputVerbatim","","autocomplete","new-password",1,"form-control","text-monospace",3,"type","ngModel","disabled","ngModelChange"],[1,"col-4","form-group"],["for","idTitle"],["id","idTitle","name","Identity.Title",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idFirstName"],["id","idFirstName","type","text","name","Identity.FirstName",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idMiddleName"],["id","idMiddleName","type","text","name","Identity.MiddleName",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idLastName"],["id","idLastName","type","text","name","Identity.LastName",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idUsername"],["id","idUsername","type","text","name","Identity.Username","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idCompany"],["id","idCompany","type","text","name","Identity.Company",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idSsn"],["id","idSsn","type","text","name","Identity.SSN","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idPassportNumber"],["id","idPassportNumber","type","text","name","Identity.PassportNumber","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idLicenseNumber"],["id","idLicenseNumber","type","text","name","Identity.LicenseNumber","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idEmail"],["id","idEmail","type","text","name","Identity.Email","appInputVerbatim","",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idPhone"],["id","idPhone","type","text","name","Identity.Phone",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idAddress1"],["id","idAddress1","type","text","name","Identity.Address1",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idAddress2"],["id","idAddress2","type","text","name","Identity.Address2",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idAddress3"],["id","idAddress3","type","text","name","Identity.Address3",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idCity"],["id","idCity","type","text","name","Identity.City",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idState"],["id","idState","type","text","name","Identity.State",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idPostalCode"],["id","idPostalCode","type","text","name","Identity.PostalCode",1,"form-control",3,"ngModel","disabled","ngModelChange"],["for","idCountry"],["id","idCountry","type","text","name","Identity.Country",1,"form-control",3,"ngModel","disabled","ngModelChange"],["cdkDropList","",3,"cdkDropListDropped"],["class","row","cdkDrag","",4,"ngFor","ngForOf","ngForTrackBy"],["cdkDrag","",1,"row"],["href","https://help.bitwarden.com/article/custom-fields/","target","_blank","rel","noopener",1,"ml-auto",3,"appA11yTitle"],["type","text","appInputVerbatim","",1,"form-control",3,"id","name","ngModel","disabled","ngModelChange"],["class","input-group",4,"ngIf"],[1,"flex-fill"],["type","checkbox","appTrueFalseValue","","trueValue","true","falseValue","false",3,"id","name","ngModel","disabled","ngModelChange",4,"ngIf"],["type","button","class","btn btn-link text-muted cursor-move",3,"appA11yTitle",4,"ngIf"],["appInputVerbatim","","autocomplete","new-password",1,"form-control","text-monospace",3,"id","type","name","ngModel","disabled","ngModelChange"],["type","checkbox","appTrueFalseValue","","trueValue","true","falseValue","false",3,"id","name","ngModel","disabled","ngModelChange"],["type","button",1,"btn","btn-link","text-muted","cursor-move",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-bars","fa-lg"],["href","#","appStopClick","",1,"d-inline-block","mb-2",3,"click"],[1,"col-5"],["for","addFieldType",1,"sr-only"],["id","addFieldType","name","AddFieldType",1,"form-control",3,"ngModel","ngModelChange"],["for","organizationId"],["id","organizationId","name","OrganizationId",1,"form-control",3,"ngModel","disabled","ngModelChange","change"],["class","form-check",4,"ngFor","ngForOf"],[1,"form-check"],["type","checkbox",1,"form-check-input",3,"ngModel","id","name","disabled","ngModelChange"],[1,"form-check-label",3,"for"],[1,"small","text-muted","mt-4"],[1,"font-weight-semibold"],["class","ml-3",4,"ngIf"],["href","#","appStopClick","",3,"title","click"],[1,"ml-3"],[4,"ngFor","ngForOf"],[1,"password-wrapper","text-monospace","ml-2"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],[1,"ml-auto"],["type","button","class","btn btn-link",3,"appA11yTitle","click",4,"ngIf"],["type","button","class","btn btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click",4,"ngIf"],["type","button",1,"btn","btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click"],["deleteBtn",""],["aria-hidden","true",1,"fa","fa-trash-o","fa-lg","fa-fw",3,"hidden"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","fa-lg","fa-fw",3,"hidden","title"]],template:function(e,t){1&e&&(d.ɵɵelementStart(0,"div",0),d.ɵɵtext(1,"\n "),d.ɵɵelementStart(2,"div",1),d.ɵɵtext(3,"\n "),d.ɵɵelementStart(4,"form",2,3),d.ɵɵlistener("ngSubmit",function(){return t.submit()}),d.ɵɵtext(6,"\n "),d.ɵɵelementStart(7,"div",4),d.ɵɵtext(8,"\n "),d.ɵɵelementStart(9,"h2",5),d.ɵɵtext(10),d.ɵɵelementEnd(),d.ɵɵtext(11,"\n "),d.ɵɵelementStart(12,"button",6),d.ɵɵpipe(13,"i18n"),d.ɵɵtext(14,"\n "),d.ɵɵelementStart(15,"span",7),d.ɵɵtext(16,"×"),d.ɵɵelementEnd(),d.ɵɵtext(17,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(18,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(19,"\n "),d.ɵɵtemplate(20,Te,54,25,"div",8),d.ɵɵtext(21,"\n "),d.ɵɵelementStart(22,"div",9),d.ɵɵtext(23,"\n "),d.ɵɵtemplate(24,Me,9,7,"button",10),d.ɵɵtext(25,"\n "),d.ɵɵelementStart(26,"button",11),d.ɵɵtext(27),d.ɵɵpipe(28,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(29,"\n "),d.ɵɵtemplate(30,je,6,2,"div",12),d.ɵɵtext(31,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(32,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(33,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(34,"\n"),d.ɵɵelementEnd(),d.ɵɵtext(35,"\n")),2&e&&(d.ɵɵadvance(4),d.ɵɵproperty("appApiAction",t.formPromise),d.ɵɵadvance(6),d.ɵɵtextInterpolate(t.title),d.ɵɵadvance(2),d.ɵɵpropertyInterpolate("appA11yTitle",d.ɵɵpipeBind1(13,7,"close")),d.ɵɵadvance(8),d.ɵɵproperty("ngIf",t.cipher),d.ɵɵadvance(4),d.ɵɵproperty("ngIf",!t.viewOnly),d.ɵɵadvance(3),d.ɵɵtextInterpolate1("\n ",d.ɵɵpipeBind1(28,9,t.viewOnly?"close":"cancel"),"\n "),d.ɵɵadvance(3),d.ɵɵproperty("ngIf",t.cipher&&!t.viewOnly))},directives:[k.NgControlStatusGroup,k.NgForm,_.ApiActionDirective,A.A11yTitleDirective,O.NgIf,k.DefaultValueAccessor,k.RequiredValidator,k.NgControlStatus,k.NgModel,T.CalloutComponent,k.SelectControlValueAccessor,M.AutofocusDirective,O.NgForOf,k.NgSelectOption,k.ɵangular_packages_forms_forms_x,B.InputVerbatimDirective,O.NgClass,D.StopClickDirective,O.NgStyle,V.CdkDropList,V.CdkDrag,j.TrueFalseValueDirective,k.CheckboxControlValueAccessor],pipes:[R.I18nPipe,O.DatePipe],encapsulation:2}),t}(u.AddEditComponent);t.AddEditComponent=Re},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e){null!=e&&(this.id=e.id,this.url=e.url,this.fileName=e.fileName,this.key=e.key,this.size=e.size,this.sizeName=e.sizeName)}}();t.AttachmentData=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e){null!=e&&(this.cardholderName=e.cardholderName,this.brand=e.brand,this.number=e.number,this.expMonth=e.expMonth,this.expYear=e.expYear,this.code=e.code)}}();t.CardData=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e){null!=e&&(this.type=e.type,this.name=e.name,this.value=e.value)}}();t.FieldData=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e){null!=e&&(this.title=e.title,this.firstName=e.firstName,this.middleName=e.middleName,this.lastName=e.lastName,this.address1=e.address1,this.address2=e.address2,this.address3=e.address3,this.city=e.city,this.state=e.state,this.postalCode=e.postalCode,this.country=e.country,this.company=e.company,this.email=e.email,this.phone=e.phone,this.ssn=e.ssn,this.username=e.username,this.passportNumber=e.passportNumber,this.licenseNumber=e.licenseNumber)}}();t.IdentityData=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(486),i=function(){return function(e){null!=e&&(this.username=e.username,this.password=e.password,this.passwordRevisionDate=e.passwordRevisionDate,this.totp=e.totp,e.uris&&(this.uris=e.uris.map(function(e){return new r.LoginUriData(e)})))}}();t.LoginData=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e){this.match=null,null!=e&&(this.uri=e.uri,this.match=e.match)}}();t.LoginUriData=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e){null!=e&&(this.type=e.type)}}();t.SecureNoteData=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0))return[3,4];i.label=1;case 1:return i.trys.push([1,3,,4]),[4,this.getFileContents(n[0])];case 2:return null!=(a=i.sent())&&(r=a),[3,4];case 3:return i.sent(),[3,4];case 4:if(null==r||""===r)return this.toasterService.popAsync("error",this.i18nService.t("errorOccurred"),this.i18nService.t("selectFile")),this.loading=!1,[2];i.label=5;case 5:return i.trys.push([5,7,,8]),this.formPromise=this.importService.import(e,r,this.organizationId),[4,this.formPromise];case 6:return null!=(o=i.sent())?(this.error(o),this.loading=!1,[2]):(this.analytics.eventTrack.next({action:"Imported Data",properties:{label:this.format}}),this.toasterService.popAsync("success",null,this.i18nService.t("importSuccess")),this.router.navigate(this.successNavigate),[3,8]);case 7:return i.sent(),[3,8];case 8:return this.loading=!1,[2]}})})},e.prototype.getFormatInstructionTitle=function(){var e=this;if(null==this.format)return null;var t=this.featuredImportOptions.concat(this.importOptions).filter(function(t){return t.id===e.format});return t.length>0?this.i18nService.t("instructionsFor",t[0].name):null},e.prototype.setImportOptions=function(){this.featuredImportOptions=a([{id:null,name:"-- "+this.i18nService.t("select")+" --"}],this.importService.featuredImportOptions),this.importOptions=this.importService.regularImportOptions},e.prototype.error=function(e){return r(this,void 0,void 0,function(){return i(this,function(t){switch(t.label){case 0:return this.analytics.eventTrack.next({action:"Import Data Failed",properties:{label:this.format}}),[4,o.default.fire({heightAuto:!1,buttonsStyling:!1,icon:"error",iconHtml:'',input:"textarea",inputValue:e.message,inputAttributes:{readonly:"true"},title:this.i18nService.t("importError"),text:this.i18nService.t("importErrorDesc"),showConfirmButton:!0,confirmButtonText:this.i18nService.t("ok"),onOpen:function(e){e.querySelector(".swal2-textarea").scrollTo(0,0)}})];case 1:return t.sent(),[2]}})})},e.prototype.getFileContents=function(e){var t=this;return new Promise(function(n,r){var i=new FileReader;i.readAsText(e,"utf-8"),i.onload=function(i){if("lastpasscsv"===t.format&&"text/html"===e.type){var a=(new DOMParser).parseFromString(i.target.result,"text/html").querySelector("pre");return null!=a?void n(a.textContent):void r()}n(i.target.result)},i.onerror=function(){r()}})},e.ɵfac=function(t){return new(t||e)(s.ɵɵdirectiveInject(l.I18nService),s.ɵɵdirectiveInject(c.Angulartics2),s.ɵɵdirectiveInject(p.ToasterService),s.ɵɵdirectiveInject(u.ImportService),s.ɵɵdirectiveInject(d.Router),s.ɵɵdirectiveInject(m.PlatformUtilsService))},e.ɵcmp=s.ɵɵdefineComponent({type:e,selectors:[["app-import"]],decls:67,vars:24,consts:[[1,"page-header"],["ngNativeValidate","",3,"ngSubmit"],["form",""],[1,"row"],[1,"col-6"],[1,"form-group"],["for","type"],["id","type","name","Format","required","",1,"form-control",3,"ngModel","ngModelChange"],[3,"ngValue",4,"ngFor","ngForOf"],[4,"ngIf"],["type","info",3,"title",4,"ngIf"],["for","file"],["type","file","id","file","name","file",1,"form-control-file"],["for","fileContents"],["id","fileContents","name","FileContents",1,"form-control",3,"ngModel","ngModelChange"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],[3,"ngValue"],["value","-","disabled",""],["type","info",3,"title"],["target","_blank","rel","noopener","href","https://help.bitwarden.com/article/export-your-data/"],["target","_blank","rel","noopener","href","https://help.bitwarden.com/article/import-from-lastpass/"],["target","_blank","rel","noopener","href","https://help.bitwarden.com/article/import-from-chrome/"],["target","_blank","rel","noopener","href","https://bitwarden.com/help/article/import-from-firefox/"],["target","_blank","rel","noopener","href","https://help.bitwarden.com/article/import-from-1password/"],["target","_blank","rel","noopener","href","https://bit.ly/2GpOMTg"]],template:function(e,t){1&e&&(s.ɵɵelementStart(0,"div",0),s.ɵɵtext(1,"\n "),s.ɵɵelementStart(2,"h1"),s.ɵɵtext(3),s.ɵɵpipe(4,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(5,"\n"),s.ɵɵelementEnd(),s.ɵɵtext(6,"\n"),s.ɵɵelementStart(7,"form",1,2),s.ɵɵlistener("ngSubmit",function(){return t.submit()}),s.ɵɵtext(9,"\n "),s.ɵɵelementStart(10,"div",3),s.ɵɵtext(11,"\n "),s.ɵɵelementStart(12,"div",4),s.ɵɵtext(13,"\n "),s.ɵɵelementStart(14,"div",5),s.ɵɵtext(15,"\n "),s.ɵɵelementStart(16,"label",6),s.ɵɵtext(17),s.ɵɵpipe(18,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(19,"\n "),s.ɵɵelementStart(20,"select",7),s.ɵɵlistener("ngModelChange",function(e){return t.format=e}),s.ɵɵtext(21,"\n "),s.ɵɵtemplate(22,g,2,2,"option",8),s.ɵɵtext(23,"\n "),s.ɵɵtemplate(24,b,6,1,"ng-container",9),s.ɵɵtext(25,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(26,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(27,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(28,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(29,"\n "),s.ɵɵtemplate(30,ye,100,50,"app-callout",10),s.ɵɵtext(31,"\n "),s.ɵɵelementStart(32,"div",3),s.ɵɵtext(33,"\n "),s.ɵɵelementStart(34,"div",4),s.ɵɵtext(35,"\n "),s.ɵɵelementStart(36,"div",5),s.ɵɵtext(37,"\n "),s.ɵɵelementStart(38,"label",11),s.ɵɵtext(39),s.ɵɵpipe(40,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(41,"\n "),s.ɵɵelement(42,"input",12),s.ɵɵtext(43,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(44,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(45,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(46,"\n "),s.ɵɵelementStart(47,"div",5),s.ɵɵtext(48,"\n "),s.ɵɵelementStart(49,"label",13),s.ɵɵtext(50),s.ɵɵpipe(51,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(52,"\n "),s.ɵɵelementStart(53,"textarea",14),s.ɵɵlistener("ngModelChange",function(e){return t.fileContents=e}),s.ɵɵelementEnd(),s.ɵɵtext(54,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(55,"\n "),s.ɵɵelementStart(56,"button",15),s.ɵɵtext(57,"\n "),s.ɵɵelement(58,"i",16),s.ɵɵpipe(59,"i18n"),s.ɵɵtext(60,"\n "),s.ɵɵelementStart(61,"span"),s.ɵɵtext(62),s.ɵɵpipe(63,"i18n"),s.ɵɵelementEnd(),s.ɵɵtext(64,"\n "),s.ɵɵelementEnd(),s.ɵɵtext(65,"\n"),s.ɵɵelementEnd(),s.ɵɵtext(66,"\n")),2&e&&(s.ɵɵadvance(3),s.ɵɵtextInterpolate(s.ɵɵpipeBind1(4,12,"importData")),s.ɵɵadvance(14),s.ɵɵtextInterpolate1("1. ",s.ɵɵpipeBind1(18,14,"selectFormat"),""),s.ɵɵadvance(3),s.ɵɵproperty("ngModel",t.format),s.ɵɵadvance(2),s.ɵɵproperty("ngForOf",t.featuredImportOptions),s.ɵɵadvance(2),s.ɵɵproperty("ngIf",t.importOptions&&t.importOptions.length),s.ɵɵadvance(6),s.ɵɵproperty("ngIf",t.format),s.ɵɵadvance(9),s.ɵɵtextInterpolate1("2. ",s.ɵɵpipeBind1(40,16,"selectImportFile"),""),s.ɵɵadvance(11),s.ɵɵtextInterpolate(s.ɵɵpipeBind1(51,18,"orCopyPasteFileContents")),s.ɵɵadvance(3),s.ɵɵproperty("ngModel",t.fileContents),s.ɵɵadvance(3),s.ɵɵproperty("disabled",t.loading),s.ɵɵadvance(2),s.ɵɵpropertyInterpolate("title",s.ɵɵpipeBind1(59,20,"loading")),s.ɵɵadvance(4),s.ɵɵtextInterpolate(s.ɵɵpipeBind1(63,22,"importData")))},directives:[h.NgControlStatusGroup,h.NgForm,h.SelectControlValueAccessor,h.RequiredValidator,h.NgControlStatus,h.NgModel,f.NgForOf,f.NgIf,h.DefaultValueAccessor,h.NgSelectOption,h.ɵangular_packages_forms_forms_x,v.CalloutComponent],pipes:[y.I18nPipe],encapsulation:2}),e}();t.ImportComponent=ge},,function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0?[4,this.getAllCiphers()]:[3,6];case 4:return e=a.sent(),t=[],n=[],r=new Map,e.forEach(function(e){if(e.type===s.CipherType.Login&&(null==e.login.totp||""===e.login.totp)&&e.login.hasUris&&!e.isDeleted)for(var n=0;n0?[2]:[4,fetch(new Request("https://2fa.directory/api/v2/totp.json"))];case 1:if(200!==(e=o.sent()).status)throw new Error;return[4,e.json()];case 2:for(n in t=o.sent())if(t.hasOwnProperty(n))for(i in r=t[n])r.hasOwnProperty(i)&&null!=(a=r[i]).url&&null!=(s=l.Utils.getHostname(a.url))&&this.services.set(s,a.doc);return[2]}})})},t.ɵfac=function(e){return new(e||t)(p.ɵɵdirectiveInject(u.CipherService),p.ɵɵdirectiveInject(p.ComponentFactoryResolver),p.ɵɵdirectiveInject(d.MessagingService),p.ɵɵdirectiveInject(m.UserService))},t.ɵcmp=p.ɵɵdefineComponent({type:t,selectors:[["app-inactive-two-factor-report"]],features:[p.ɵɵInheritDefinitionFeature],decls:20,vars:9,consts:[[1,"page-header"],[4,"ngIf"],["class","mt-4",4,"ngIf"],["cipherAddEdit",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[1,"mt-4"],["type","success",3,"title",4,"ngIf"],["type","success",3,"title"],["type","danger",3,"title"],[1,"table","table-hover","table-list","table-ciphers"],[4,"ngFor","ngForOf"],[1,"table-list-icon"],[3,"cipher"],[1,"reduced-lh","wrap"],["href","#","appStopClick","",3,"title","click"],[1,"text-right"],["class","badge badge-primary","target","_blank","rel","noopener",3,"href",4,"ngIf"],["appStopProp","","aria-hidden","true",1,"fa","fa-share-alt",3,"title"],["appStopProp","","aria-hidden","true",1,"fa","fa-paperclip",3,"title"],["target","_blank","rel","noopener",1,"badge","badge-primary",3,"href"]],template:function(e,t){1&e&&(p.ɵɵelementStart(0,"div",0),p.ɵɵtext(1,"\n "),p.ɵɵelementStart(2,"h1"),p.ɵɵtext(3),p.ɵɵpipe(4,"i18n"),p.ɵɵtemplate(5,b,9,6,"small",1),p.ɵɵtext(6,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(7,"\n"),p.ɵɵelementEnd(),p.ɵɵtext(8,"\n"),p.ɵɵelementStart(9,"p"),p.ɵɵtext(10),p.ɵɵpipe(11,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(12,"\n"),p.ɵɵtemplate(13,S,9,6,"div",1),p.ɵɵtext(14,"\n"),p.ɵɵtemplate(15,_,6,2,"div",2),p.ɵɵtext(16,"\n"),p.ɵɵtemplate(17,A,0,0,"ng-template",null,3,p.ɵɵtemplateRefExtractor),p.ɵɵtext(19,"\n")),2&e&&(p.ɵɵadvance(3),p.ɵɵtextInterpolate1("\n ",p.ɵɵpipeBind1(4,5,"inactive2faReport"),"\n "),p.ɵɵadvance(2),p.ɵɵproperty("ngIf",t.hasLoaded&&t.loading),p.ɵɵadvance(5),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(11,7,"inactive2faReportDesc")),p.ɵɵadvance(3),p.ɵɵproperty("ngIf",!t.hasLoaded&&t.loading),p.ɵɵadvance(2),p.ɵɵproperty("ngIf",t.hasLoaded))},directives:[h.NgIf,f.CalloutComponent,h.NgForOf,v.IconComponent,y.StopClickDirective,g.StopPropDirective],pipes:[x.I18nPipe,h.DecimalPipe],encapsulation:2}),t}(c.CipherReportComponent);t.InactiveTwoFactorReportComponent=O},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]1}),this.ciphers=n,[2]}})})},t.prototype.getAllCiphers=function(){return this.cipherService.getAllDecrypted()},t.prototype.canManageCipher=function(e){return!0},t.ɵfac=function(e){return new(e||t)(c.ɵɵdirectiveInject(p.CipherService),c.ɵɵdirectiveInject(c.ComponentFactoryResolver),c.ɵɵdirectiveInject(u.MessagingService),c.ɵɵdirectiveInject(d.UserService))},t.ɵcmp=c.ɵɵdefineComponent({type:t,selectors:[["app-reused-passwords-report"]],features:[c.ɵɵInheritDefinitionFeature],decls:20,vars:9,consts:[[1,"page-header"],[4,"ngIf"],["class","mt-4",4,"ngIf"],["cipherAddEdit",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[1,"mt-4"],["type","success",3,"title",4,"ngIf"],["type","success",3,"title"],["type","danger",3,"title"],[1,"table","table-hover","table-list","table-ciphers"],[4,"ngFor","ngForOf"],[1,"table-list-icon"],[3,"cipher"],[1,"reduced-lh","wrap"],[4,"ngIf","ngIfElse"],["cantManage",""],[1,"text-right"],[1,"badge","badge-warning"],["href","#","appStopClick","",3,"title","click"],["appStopProp","","aria-hidden","true",1,"fa","fa-share-alt",3,"title"],["appStopProp","","aria-hidden","true",1,"fa","fa-paperclip",3,"title"]],template:function(e,t){1&e&&(c.ɵɵelementStart(0,"div",0),c.ɵɵtext(1,"\n "),c.ɵɵelementStart(2,"h1"),c.ɵɵtext(3),c.ɵɵpipe(4,"i18n"),c.ɵɵtemplate(5,x,9,6,"small",1),c.ɵɵtext(6,"\n "),c.ɵɵelementEnd(),c.ɵɵtext(7,"\n"),c.ɵɵelementEnd(),c.ɵɵtext(8,"\n"),c.ɵɵelementStart(9,"p"),c.ɵɵtext(10),c.ɵɵpipe(11,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(12,"\n"),c.ɵɵtemplate(13,b,9,6,"div",1),c.ɵɵtext(14,"\n"),c.ɵɵtemplate(15,_,6,2,"div",2),c.ɵɵtext(16,"\n"),c.ɵɵtemplate(17,A,0,0,"ng-template",null,3,c.ɵɵtemplateRefExtractor),c.ɵɵtext(19,"\n")),2&e&&(c.ɵɵadvance(3),c.ɵɵtextInterpolate1("\n ",c.ɵɵpipeBind1(4,5,"reusedPasswordsReport"),"\n "),c.ɵɵadvance(2),c.ɵɵproperty("ngIf",t.hasLoaded&&t.loading),c.ɵɵadvance(5),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(11,7,"reusedPasswordsReportDesc")),c.ɵɵadvance(3),c.ɵɵproperty("ngIf",!t.hasLoaded&&t.loading),c.ɵɵadvance(2),c.ɵɵproperty("ngIf",t.hasLoaded))},directives:[m.NgIf,h.CalloutComponent,m.NgForOf,f.IconComponent,v.StopClickDirective,y.StopPropDirective],pipes:[g.I18nPipe,m.DecimalPipe],encapsulation:2}),t}(l.CipherReportComponent);t.ReusedPasswordsReportComponent=O},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]-1?a.concat(e.login.username.substr(0,o).trim().toLowerCase().split(/[^A-Za-z0-9]/)).filter(function(e){return e.length>=3}):e.login.username.trim().toLowerCase().split(/[^A-Za-z0-9]/).filter(function(e){return e.length>=3})}var l=n.passwordGenerationService.passwordStrength(e.login.password,a.length>0?a:null);n.passwordStrengthCache.set(i,l.score)}var c=n.passwordStrengthCache.get(i);null!=c&&c<=2&&(n.passwordStrengthMap.set(e.id,n.scoreKey(c)),t.push(e))}}),this.ciphers=t,[2]}})})},t.prototype.getAllCiphers=function(){return this.cipherService.getAllDecrypted()},t.prototype.canManageCipher=function(e){return!0},t.prototype.scoreKey=function(e){switch(e){case 4:return["strong","success"];case 3:return["good","primary"];case 2:return["weak","warning"];default:return["veryWeak","danger"]}},t.ɵfac=function(e){return new(e||t)(c.ɵɵdirectiveInject(p.CipherService),c.ɵɵdirectiveInject(u.PasswordGenerationService),c.ɵɵdirectiveInject(c.ComponentFactoryResolver),c.ɵɵdirectiveInject(d.MessagingService),c.ɵɵdirectiveInject(m.UserService))},t.ɵcmp=c.ɵɵdefineComponent({type:t,selectors:[["app-weak-passwords-report"]],features:[c.ɵɵInheritDefinitionFeature],decls:20,vars:9,consts:[[1,"page-header"],[4,"ngIf"],["class","mt-4",4,"ngIf"],["cipherAddEdit",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[1,"mt-4"],["type","success",3,"title",4,"ngIf"],["type","success",3,"title"],["type","danger",3,"title"],[1,"table","table-hover","table-list","table-ciphers"],[4,"ngFor","ngForOf"],[1,"table-list-icon"],[3,"cipher"],[1,"reduced-lh","wrap"],[4,"ngIf","ngIfElse"],["cantManage",""],[1,"text-right"],["href","#","appStopClick","",3,"title","click"],["appStopProp","","aria-hidden","true",1,"fa","fa-share-alt",3,"title"],["appStopProp","","aria-hidden","true",1,"fa","fa-paperclip",3,"title"]],template:function(e,t){1&e&&(c.ɵɵelementStart(0,"div",0),c.ɵɵtext(1,"\n "),c.ɵɵelementStart(2,"h1"),c.ɵɵtext(3),c.ɵɵpipe(4,"i18n"),c.ɵɵtemplate(5,b,9,6,"small",1),c.ɵɵtext(6,"\n "),c.ɵɵelementEnd(),c.ɵɵtext(7,"\n"),c.ɵɵelementEnd(),c.ɵɵtext(8,"\n"),c.ɵɵelementStart(9,"p"),c.ɵɵtext(10),c.ɵɵpipe(11,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(12,"\n"),c.ɵɵtemplate(13,S,9,6,"div",1),c.ɵɵtext(14,"\n"),c.ɵɵtemplate(15,A,6,2,"div",2),c.ɵɵtext(16,"\n"),c.ɵɵtemplate(17,O,0,0,"ng-template",null,3,c.ɵɵtemplateRefExtractor),c.ɵɵtext(19,"\n")),2&e&&(c.ɵɵadvance(3),c.ɵɵtextInterpolate1("\n ",c.ɵɵpipeBind1(4,5,"weakPasswordsReport"),"\n "),c.ɵɵadvance(2),c.ɵɵproperty("ngIf",t.hasLoaded&&t.loading),c.ɵɵadvance(5),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(11,7,"weakPasswordsReportDesc")),c.ɵɵadvance(3),c.ɵɵproperty("ngIf",!t.hasLoaded&&t.loading),c.ɵɵadvance(2),c.ɵɵproperty("ngIf",t.hasLoaded))},directives:[h.NgIf,f.CalloutComponent,h.NgForOf,v.IconComponent,y.StopClickDirective,g.StopPropDirective],pipes:[x.I18nPipe,h.DecimalPipe],encapsulation:2}),t}(l.CipherReportComponent);t.WeakPasswordsReportComponent=T},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]-1&&t.indexOf("]")>-1){var i=t.lastIndexOf(".");r=t.substr(0,i>-1?i:t.length)+": "}e.push(r+n)})},n=this;for(var r in this.validationErrors)t(r);return e},t}(n(24).BaseResponse);t.ErrorResponse=a},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(t){var n=e.call(this,t)||this;return n.id=t.id,n}return i(t,e),t}(n(212).CipherRequest);t.CipherWithIdRequest=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e){this.name=e.name?e.name.encryptedString:null}}();t.FolderRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0),n(5);var r=n(0),i=n(5),a=function(){function e(e,t){this.el=e,this.platformUtilsService=t}return e.prototype.onCopy=function(){if(null!=window){for(var e="",t=window.getSelection(),n=0;n-1)""===r.substr(a).trim()&&(i=a);e+=r.substring(0,i)}this.platformUtilsService.copyToClipboard(e,{window:window})}},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(r.ElementRef),r.ɵɵdirectiveInject(i.PlatformUtilsService))},e.ɵdir=r.ɵɵdefineDirective({type:e,selectors:[["","appSelectCopy",""]],hostBindings:function(e,t){1&e&&r.ɵɵlistener("copy",function(){return t.onCopy()})}}),e}();t.SelectCopyDirective=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(0),i=function(){function e(){}return e.prototype.transform=function(e){for(var t="",n=0;n":r=">",i=!0;break;case" ":r=" ",i=!0}var a="letter";i||r.match(/[^\w ]/)?a="special":r.match(/\d/)&&(a="number"),t+=''+r+""}return t},e.ɵfac=function(t){return new(t||e)},e.ɵpipe=r.ɵɵdefinePipe({name:"colorPassword",type:e,pure:!0}),e}();t.ColorPasswordPipe=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e,t){this.userId=t,this.name=e.name,this.id=e.id,this.revisionDate=e.revisionDate}}();t.FolderData=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(129),o=function(e){function t(t,n){void 0===n&&(n=!1);var r=e.call(this)||this;return null==t?r:(r.buildDomainModel(r,t,{id:null,name:null},n,["id"]),r.revisionDate=null!=t.revisionDate?new Date(t.revisionDate):null,r)}return i(t,e),t.prototype.decrypt=function(){return this.decryptObj(new a.FolderView(this),{name:null},null)},t}(n(82).default);t.Folder=o},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(891),o=n(24),s=n(892),l=n(596),c=n(597),p=n(598),u=n(599),d=n(601),m=function(e){function t(t){var n=e.call(this,t)||this;n.id=n.getResponseProperty("Id"),n.organizationId=n.getResponseProperty("OrganizationId"),n.folderId=n.getResponseProperty("FolderId")||null,n.type=n.getResponseProperty("Type"),n.name=n.getResponseProperty("Name"),n.notes=n.getResponseProperty("Notes"),n.favorite=n.getResponseProperty("Favorite")||!1,n.edit=!!n.getResponseProperty("Edit"),null==n.getResponseProperty("ViewPassword")?n.viewPassword=!0:n.viewPassword=n.getResponseProperty("ViewPassword"),n.organizationUseTotp=n.getResponseProperty("OrganizationUseTotp"),n.revisionDate=n.getResponseProperty("RevisionDate"),n.collectionIds=n.getResponseProperty("CollectionIds"),n.deletedDate=n.getResponseProperty("DeletedDate");var r=n.getResponseProperty("Login");null!=r&&(n.login=new u.LoginApi(r));var i=n.getResponseProperty("Card");null!=i&&(n.card=new l.CardApi(i));var o=n.getResponseProperty("Identity");null!=o&&(n.identity=new p.IdentityApi(o));var m=n.getResponseProperty("SecureNote");null!=m&&(n.secureNote=new d.SecureNoteApi(m));var h=n.getResponseProperty("Fields");null!=h&&(n.fields=h.map(function(e){return new c.FieldApi(e)}));var f=n.getResponseProperty("Attachments");null!=f&&(n.attachments=f.map(function(e){return new a.AttachmentResponse(e)}));var v=n.getResponseProperty("PasswordHistory");return null!=v&&(n.passwordHistory=v.map(function(e){return new s.PasswordHistoryResponse(e)})),n}return i(t,e),t}(o.BaseResponse);t.CipherResponse=m},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(24),o=n(912),s=function(e){function t(t){var n=e.call(this,t)||this;n.organizations=[],n.id=n.getResponseProperty("Id"),n.name=n.getResponseProperty("Name"),n.email=n.getResponseProperty("Email"),n.emailVerified=n.getResponseProperty("EmailVerified"),n.masterPasswordHint=n.getResponseProperty("MasterPasswordHint"),n.premium=n.getResponseProperty("Premium"),n.culture=n.getResponseProperty("Culture"),n.twoFactorEnabled=n.getResponseProperty("TwoFactorEnabled"),n.key=n.getResponseProperty("Key"),n.privateKey=n.getResponseProperty("PrivateKey"),n.securityStamp=n.getResponseProperty("SecurityStamp");var r=n.getResponseProperty("Organizations");return null!=r&&(n.organizations=r.map(function(e){return new o.ProfileOrganizationResponse(e)})),n}return i(t,e),t}(a.BaseResponse);t.ProfileResponse=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(t){void 0===t&&(t=null);var n=e.call(this,t)||this;return null==t?n:(n.id=n.getResponseProperty("Id"),n.fileName=n.getResponseProperty("FileName"),n.key=n.getResponseProperty("Key"),n.size=n.getResponseProperty("Size"),n.sizeName=n.getResponseProperty("SizeName"),n)}return i(t,e),t}(n(24).BaseResponse);t.SendFileApi=a},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(t){void 0===t&&(t=null);var n=e.call(this,t)||this;return null==t?n:(n.text=n.getResponseProperty("Text"),n.hidden=n.getResponseProperty("Hidden")||!1,n)}return i(t,e),t}(n(24).BaseResponse);t.SendTextApi=a},,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.NotificationsService=r},,function(e,t){function n(e){return Promise.resolve().then(function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t})}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=525},,,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0),n(5);var r=n(0),i=n(5),a=n(8),o=n(10),s=function(){function e(e){this.platformUtilsService=e,this.year="2015"}return e.prototype.ngOnInit=function(){this.year=(new Date).getFullYear().toString(),this.version=this.platformUtilsService.getApplicationVersion(),document.body.classList.add("layout_frontend")},e.prototype.ngOnDestroy=function(){document.body.classList.remove("layout_frontend")},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(i.PlatformUtilsService))},e.ɵcmp=r.ɵɵdefineComponent({type:e,selectors:[["app-frontend-layout"]],decls:8,vars:5,consts:[[1,"container","my-5","text-muted","text-center"]],template:function(e,t){1&e&&(r.ɵɵelement(0,"router-outlet"),r.ɵɵtext(1,"\n"),r.ɵɵelementStart(2,"div",0),r.ɵɵtext(3),r.ɵɵelement(4,"br"),r.ɵɵtext(5),r.ɵɵpipe(6,"i18n"),r.ɵɵelementEnd(),r.ɵɵtext(7,"\n")),2&e&&(r.ɵɵadvance(3),r.ɵɵtextInterpolate1("\n © ",t.year,", Bitwarden Inc.\n "),r.ɵɵadvance(2),r.ɵɵtextInterpolate1(" ",r.ɵɵpipeBind2(6,2,"versionNumber",t.version),"\n"))},directives:[a.RouterOutlet],pipes:[o.I18nPipe],encapsulation:2}),e}();t.FrontendLayoutComponent=s},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]-1&&(this.email=r.email),null!=r.premium?this.stateService.save("loginRedirect",{route:"/settings/premium"}):null!=r.org&&this.stateService.save("loginRedirect",{route:"/settings/create-organization",qParams:{plan:r.org}}),[4,e.prototype.ngOnInit.call(this)];case 1:return n.sent(),null!=t&&t.unsubscribe(),[2]}})})}),[2]})})},t.prototype.goAfterLogIn=function(){return a(this,void 0,void 0,function(){var e,t,n;return o(this,function(r){switch(r.label){case 0:return[4,this.stateService.get("orgInvitation")];case 1:return e=r.sent(),[4,this.stateService.get("emergencyInvitation")];case 2:return t=r.sent(),null==e?[3,3]:(this.router.navigate(["accept-organization"],{queryParams:e}),[3,8]);case 3:return null==t?[3,4]:(this.router.navigate(["accept-emergency"],{queryParams:t}),[3,8]);case 4:return[4,this.stateService.get("loginRedirect")];case 5:return null==(n=r.sent())?[3,7]:(this.router.navigate([n.route],{queryParams:n.qParams}),[4,this.stateService.remove("loginRedirect")]);case 6:return r.sent(),[3,8];case 7:this.router.navigate([this.successRoute]),r.label=8;case 8:return[2]}})})},t.ɵfac=function(e){return new(e||t)(l.ɵɵdirectiveInject(c.AuthService),l.ɵɵdirectiveInject(p.Router),l.ɵɵdirectiveInject(u.I18nService),l.ɵɵdirectiveInject(p.ActivatedRoute),l.ɵɵdirectiveInject(d.StorageService),l.ɵɵdirectiveInject(m.StateService),l.ɵɵdirectiveInject(h.PlatformUtilsService),l.ɵɵdirectiveInject(f.EnvironmentService),l.ɵɵdirectiveInject(v.PasswordGenerationService),l.ɵɵdirectiveInject(y.CryptoFunctionService))},t.ɵcmp=l.ɵɵdefineComponent({type:t,selectors:[["app-login"]],features:[l.ɵɵInheritDefinitionFeature],decls:97,vars:43,consts:[["ngNativeValidate","",1,"container",3,"appApiAction","ngSubmit"],["form",""],[1,"row","justify-content-md-center","mt-5"],[1,"col-5"],["src","images/logo-dark@2x.png","alt","Bitwarden",1,"logo","mb-2"],[1,"lead","text-center","mx-4","mb-4"],[1,"card","d-block"],[1,"card-body"],[1,"form-group"],["for","email"],["id","email","type","text","name","Email","required","","inputmode","email","appInputVerbatim","false",1,"form-control",3,"ngModel","ngModelChange"],["for","masterPassword"],[1,"d-flex"],["id","masterPassword","name","MasterPassword","required","","appInputVerbatim","",1,"text-monospace","form-control",3,"type","ngModel","ngModelChange"],["type","button",1,"ml-1","btn","btn-link",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-lg",3,"ngClass"],[1,"form-text"],["routerLink","/hint"],[1,"form-check"],["type","checkbox","id","rememberEmail","name","RememberEmail",1,"form-check-input",3,"ngModel","ngModelChange"],["for","rememberEmail",1,"form-check-label"],["type","submit",1,"btn","btn-primary","btn-block","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-sign-in"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["routerLink","/register",1,"btn","btn-outline-secondary","btn-block","ml-2","mt-0",3,"queryParams"],["aria-hidden","true",1,"fa","fa-pencil-square-o"],["routerLink","/sso",1,"btn","btn-outline-secondary","btn-block","mt-2"],["aria-hidden","true",1,"fa","fa-bank"]],template:function(e,t){if(1&e&&(l.ɵɵelementStart(0,"form",0,1),l.ɵɵlistener("ngSubmit",function(){return t.submit()}),l.ɵɵtext(2,"\n "),l.ɵɵelementStart(3,"div",2),l.ɵɵtext(4,"\n "),l.ɵɵelementStart(5,"div",3),l.ɵɵtext(6,"\n "),l.ɵɵelement(7,"img",4),l.ɵɵtext(8,"\n "),l.ɵɵelementStart(9,"p",5),l.ɵɵtext(10),l.ɵɵpipe(11,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(12,"\n "),l.ɵɵelementStart(13,"div",6),l.ɵɵtext(14,"\n "),l.ɵɵelementStart(15,"div",7),l.ɵɵtext(16,"\n "),l.ɵɵelementStart(17,"div",8),l.ɵɵtext(18,"\n "),l.ɵɵelementStart(19,"label",9),l.ɵɵtext(20),l.ɵɵpipe(21,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(22,"\n "),l.ɵɵelementStart(23,"input",10),l.ɵɵlistener("ngModelChange",function(e){return t.email=e}),l.ɵɵelementEnd(),l.ɵɵtext(24,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(25,"\n "),l.ɵɵelementStart(26,"div",8),l.ɵɵtext(27,"\n "),l.ɵɵelementStart(28,"label",11),l.ɵɵtext(29),l.ɵɵpipe(30,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(31,"\n "),l.ɵɵelementStart(32,"div",12),l.ɵɵtext(33,"\n "),l.ɵɵelementStart(34,"input",13),l.ɵɵlistener("ngModelChange",function(e){return t.masterPassword=e}),l.ɵɵelementEnd(),l.ɵɵtext(35,"\n "),l.ɵɵelementStart(36,"button",14),l.ɵɵlistener("click",function(){return t.togglePassword()}),l.ɵɵpipe(37,"i18n"),l.ɵɵtext(38,"\n "),l.ɵɵelement(39,"i",15),l.ɵɵtext(40,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(41,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(42,"\n "),l.ɵɵelementStart(43,"small",16),l.ɵɵtext(44,"\n "),l.ɵɵelementStart(45,"a",17),l.ɵɵtext(46),l.ɵɵpipe(47,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(48,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(49,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(50,"\n "),l.ɵɵelementStart(51,"div",18),l.ɵɵtext(52,"\n "),l.ɵɵelementStart(53,"input",19),l.ɵɵlistener("ngModelChange",function(e){return t.rememberEmail=e}),l.ɵɵelementEnd(),l.ɵɵtext(54,"\n "),l.ɵɵelementStart(55,"label",20),l.ɵɵtext(56),l.ɵɵpipe(57,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(58,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(59,"\n "),l.ɵɵelement(60,"hr"),l.ɵɵtext(61,"\n "),l.ɵɵelementStart(62,"div",12),l.ɵɵtext(63,"\n "),l.ɵɵelementStart(64,"button",21),l.ɵɵtext(65,"\n "),l.ɵɵelementStart(66,"span"),l.ɵɵtext(67,"\n "),l.ɵɵelement(68,"i",22),l.ɵɵtext(69),l.ɵɵpipe(70,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(71,"\n "),l.ɵɵelement(72,"i",23),l.ɵɵpipe(73,"i18n"),l.ɵɵtext(74,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(75,"\n "),l.ɵɵelementStart(76,"a",24),l.ɵɵtext(77,"\n "),l.ɵɵelement(78,"i",25),l.ɵɵtext(79),l.ɵɵpipe(80,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(81,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(82,"\n "),l.ɵɵelementStart(83,"div",12),l.ɵɵtext(84,"\n "),l.ɵɵelementStart(85,"a",26),l.ɵɵtext(86,"\n "),l.ɵɵelement(87,"i",27),l.ɵɵtext(88),l.ɵɵpipe(89,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(90,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(91,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(92,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(93,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(94,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(95,"\n"),l.ɵɵelementEnd(),l.ɵɵtext(96,"\n")),2&e){var n=l.ɵɵreference(1);l.ɵɵproperty("appApiAction",t.formPromise),l.ɵɵadvance(10),l.ɵɵtextInterpolate(l.ɵɵpipeBind1(11,18,"loginOrCreateNewAccount")),l.ɵɵadvance(10),l.ɵɵtextInterpolate(l.ɵɵpipeBind1(21,20,"emailAddress")),l.ɵɵadvance(3),l.ɵɵproperty("ngModel",t.email),l.ɵɵadvance(6),l.ɵɵtextInterpolate(l.ɵɵpipeBind1(30,22,"masterPass")),l.ɵɵadvance(5),l.ɵɵpropertyInterpolate("type",t.showPassword?"text":"password"),l.ɵɵproperty("ngModel",t.masterPassword),l.ɵɵadvance(2),l.ɵɵpropertyInterpolate("appA11yTitle",l.ɵɵpipeBind1(37,24,"toggleVisibility")),l.ɵɵadvance(3),l.ɵɵproperty("ngClass",l.ɵɵpureFunction2(38,I,!t.showPassword,t.showPassword)),l.ɵɵadvance(7),l.ɵɵtextInterpolate(l.ɵɵpipeBind1(47,26,"getMasterPasswordHint")),l.ɵɵadvance(7),l.ɵɵproperty("ngModel",t.rememberEmail),l.ɵɵadvance(3),l.ɵɵtextInterpolate(l.ɵɵpipeBind1(57,28,"rememberEmail")),l.ɵɵadvance(8),l.ɵɵproperty("disabled",n.loading),l.ɵɵadvance(5),l.ɵɵtextInterpolate1(" ",l.ɵɵpipeBind1(70,30,"logIn"),"\n "),l.ɵɵadvance(3),l.ɵɵpropertyInterpolate("title",l.ɵɵpipeBind1(73,32,"loading")),l.ɵɵadvance(4),l.ɵɵproperty("queryParams",l.ɵɵpureFunction1(41,E,t.email)),l.ɵɵadvance(3),l.ɵɵtextInterpolate1(" ",l.ɵɵpipeBind1(80,34,"createAccount"),"\n "),l.ɵɵadvance(9),l.ɵɵtextInterpolate1(" ",l.ɵɵpipeBind1(89,36,"enterpriseSingleSignOn"),"\n ")}},directives:[g.NgControlStatusGroup,g.NgForm,x.ApiActionDirective,g.DefaultValueAccessor,g.RequiredValidator,b.InputVerbatimDirective,g.NgControlStatus,g.NgModel,S.A11yTitleDirective,w.NgClass,p.RouterLinkWithHref,g.CheckboxControlValueAccessor],pipes:[C.I18nPipe],encapsulation:2}),t}(s.LoginComponent);t.LoginComponent=P},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0),u.ɵɵadvance(2),u.ɵɵproperty("ngIf",(null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.minLength)>0),u.ɵɵadvance(2),u.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireUpper),u.ɵɵadvance(2),u.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireLower),u.ɵɵadvance(2),u.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireNumbers),u.ɵɵadvance(2),u.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireSpecial)}}function K(e,t){if(1&e){var n=u.ɵɵgetCurrentView();u.ɵɵelementStart(0,"div",12),u.ɵɵtext(1,"\n "),u.ɵɵelementStart(2,"div",48),u.ɵɵtext(3,"\n "),u.ɵɵelementStart(4,"input",49),u.ɵɵlistener("ngModelChange",function(e){return u.ɵɵrestoreView(n),u.ɵɵnextContext().acceptPolicies=e}),u.ɵɵelementEnd(),u.ɵɵtext(5,"\n "),u.ɵɵelementStart(6,"label",50),u.ɵɵtext(7),u.ɵɵpipe(8,"i18n"),u.ɵɵelement(9,"br"),u.ɵɵtext(10,"\n "),u.ɵɵelementStart(11,"a",51),u.ɵɵtext(12),u.ɵɵpipe(13,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(14,",\n "),u.ɵɵelementStart(15,"a",52),u.ɵɵtext(16),u.ɵɵpipe(17,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(18,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(19,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(20,"\n "),u.ɵɵelementEnd()}if(2&e){var r=u.ɵɵnextContext();u.ɵɵadvance(4),u.ɵɵproperty("ngModel",r.acceptPolicies),u.ɵɵadvance(3),u.ɵɵtextInterpolate1("\n ",u.ɵɵpipeBind1(8,4,"acceptPolicies"),""),u.ɵɵadvance(5),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(13,6,"termsOfService")),u.ɵɵadvance(4),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(17,8,"privacyPolicy"))}}var q=function(e){return["layout",e]},W=function(e,t){return{"col-5":e,"col-12":t}},H=function(e,t){return{"fa-eye":e,"fa-eye-slash":t}},$=function(e){function t(t,n,r,i,a,o,s,l,c,p){var u=e.call(this,t,n,r,i,a,s,l,c)||this;return u.route=o,u.policyService=p,u.showCreateOrgMessage=!1,u.layout="",u}return i(t,e),t.prototype.getPasswordScoreAlertDisplay=function(){if(null==this.enforcedPolicyOptions)return"";var e;switch(this.enforcedPolicyOptions.minComplexity){case 4:e=this.i18nService.t("strong");break;case 3:e=this.i18nService.t("good");break;default:e=this.i18nService.t("weak")}return e+" ("+this.enforcedPolicyOptions.minComplexity+")"},t.prototype.ngOnInit=function(){return a(this,void 0,void 0,function(){var e,t,n,r,i,a=this;return o(this,function(o){switch(o.label){case 0:return e=this.route.queryParams.subscribe(function(t){a.referenceData=new p.ReferenceEventRequest,null!=t.email&&t.email.indexOf("@")>-1&&(a.email=t.email),null!=t.premium?a.stateService.save("loginRedirect",{route:"/settings/premium"}):null!=t.org&&(a.showCreateOrgMessage=!0,a.referenceData.flow=t.org,a.stateService.save("loginRedirect",{route:"/settings/create-organization",qParams:{plan:t.org}})),null!=t.layout&&(a.layout=a.referenceData.layout=t.layout),null!=t.reference?a.referenceData.id=t.reference:a.referenceData.id=("; "+document.cookie).split("; reference=").pop().split(";").shift(),""===a.referenceData.id&&(a.referenceData.id=null),null!=e&&e.unsubscribe()}),[4,this.stateService.get("orgInvitation")];case 1:if(null==(t=o.sent()))return[3,5];o.label=2;case 2:return o.trys.push([2,4,,5]),[4,this.apiService.getPoliciesByToken(t.organizationId,t.token,t.email,t.organizationUserId)];case 3:return null!=(n=o.sent()).data&&(r=n.data.map(function(e){return new c.PolicyData(e)}),this.policies=r.map(function(e){return new l.Policy(e)})),[3,5];case 4:return o.sent(),[3,5];case 5:return null==this.policies?[3,7]:(i=this,[4,this.policyService.getMasterPasswordPolicyOptions(this.policies)]);case 6:i.enforcedPolicyOptions=o.sent(),o.label=7;case 7:return[2]}})})},t.prototype.submit=function(){return a(this,void 0,void 0,function(){return o(this,function(t){switch(t.label){case 0:return null==this.enforcedPolicyOptions||this.policyService.evaluateMasterPassword(this.masterPasswordScore,this.masterPassword,this.enforcedPolicyOptions)?[4,e.prototype.submit.call(this)]:(this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("masterPasswordPolicyRequirementsNotMet")),[2]);case 1:return t.sent(),[2]}})})},t.ɵfac=function(e){return new(e||t)(u.ɵɵdirectiveInject(d.AuthService),u.ɵɵdirectiveInject(m.Router),u.ɵɵdirectiveInject(h.I18nService),u.ɵɵdirectiveInject(f.CryptoService),u.ɵɵdirectiveInject(v.ApiService),u.ɵɵdirectiveInject(m.ActivatedRoute),u.ɵɵdirectiveInject(y.StateService),u.ɵɵdirectiveInject(g.PlatformUtilsService),u.ɵɵdirectiveInject(x.PasswordGenerationService),u.ɵɵdirectiveInject(b.PolicyService))},t.ɵcmp=u.ɵɵdefineComponent({type:t,selectors:[["app-register"]],features:[u.ɵɵInheritDefinitionFeature],decls:146,vars:80,consts:[[1,"layout",3,"ngClass"],["class","header",4,"ngIf"],["ngNativeValidate","",1,"container",3,"appApiAction","ngSubmit"],["form",""],[1,"row"],["class","col-7",4,"ngIf"],[3,"ngClass"],[1,"row","justify-content-md-center","mt-5"],["class","lead text-center mb-4",4,"ngIf"],[1,"card","d-block"],[1,"card-body"],["type","info","icon","fa-thumb-tack",3,"title",4,"ngIf"],[1,"form-group"],["for","email"],["id","email","type","text","name","Email","required","","inputmode","email","appInputVerbatim","false",1,"form-control",3,"ngModel","appAutofocus","ngModelChange"],[1,"form-text","text-muted"],["for","name"],["id","name","type","text","name","Name",1,"form-control",3,"ngModel","appAutofocus","ngModelChange"],["type","info",4,"ngIf"],["for","masterPassword"],[1,"d-flex"],[1,"w-100"],["id","masterPassword","name","MasterPassword","required","","appInputVerbatim","",1,"text-monospace","form-control","mb-1",3,"type","ngModel","ngModelChange","input"],[3,"score","showText"],["type","button",1,"ml-1","btn","btn-link",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-lg",3,"ngClass"],[1,"progress-bar","invisible"],["for","masterPasswordRetype"],["id","masterPasswordRetype","name","MasterPasswordRetype","required","","appInputVerbatim","",1,"text-monospace","form-control",3,"type","ngModel","ngModelChange"],["for","hint"],["id","hint","type","text","name","Hint",1,"form-control",3,"ngModel","ngModelChange"],["class","form-group",4,"ngIf"],[1,"d-flex","mb-2"],["type","submit",1,"btn","btn-primary","btn-block","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["routerLink","/",1,"btn","btn-outline-secondary","btn-block","ml-2","mt-0"],[1,"header"],[1,"container"],[1,"col-7"],["alt","Bitwarden","src","images/logo-horizontal-white.png",1,"logo","mb-2"],[1,"mt-5"],[4,"ngIf"],[1,"highlight"],["src","images/wired-logo.png","alt","Wired"],[1,"lead","text-center","mb-4"],["type","info","icon","fa-thumb-tack",3,"title"],["type","info"],[1,"mb-0"],[1,"form-check"],["type","checkbox","id","acceptPolicies","name","AcceptPolicies",1,"form-check-input",3,"ngModel","ngModelChange"],["for","acceptPolicies",1,"form-check-label","small","text-muted"],["href","https://bitwarden.com/terms/","target","_blank","rel","noopener"],["href","https://bitwarden.com/privacy/","target","_blank","rel","noopener"]],template:function(e,t){if(1&e&&(u.ɵɵelementStart(0,"div",0),u.ɵɵtext(1,"\n "),u.ɵɵtemplate(2,O,13,0,"header",1),u.ɵɵtext(3,"\n "),u.ɵɵelementStart(4,"form",2,3),u.ɵɵlistener("ngSubmit",function(){return t.submit()}),u.ɵɵtext(6,"\n "),u.ɵɵelementStart(7,"div",4),u.ɵɵtext(8,"\n "),u.ɵɵtemplate(9,D,11,3,"div",5),u.ɵɵtext(10,"\n "),u.ɵɵelementStart(11,"div",6),u.ɵɵtext(12,"\n "),u.ɵɵelementStart(13,"div",7),u.ɵɵtext(14,"\n "),u.ɵɵelementStart(15,"div",6),u.ɵɵtext(16,"\n "),u.ɵɵtemplate(17,V,3,3,"p",8),u.ɵɵtext(18,"\n "),u.ɵɵelementStart(19,"div",9),u.ɵɵtext(20,"\n "),u.ɵɵelementStart(21,"div",10),u.ɵɵtext(22,"\n "),u.ɵɵtemplate(23,j,4,6,"app-callout",11),u.ɵɵtext(24,"\n "),u.ɵɵelementStart(25,"div",12),u.ɵɵtext(26,"\n "),u.ɵɵelementStart(27,"label",13),u.ɵɵtext(28),u.ɵɵpipe(29,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(30,"\n "),u.ɵɵelementStart(31,"input",14),u.ɵɵlistener("ngModelChange",function(e){return t.email=e}),u.ɵɵelementEnd(),u.ɵɵtext(32,"\n "),u.ɵɵelementStart(33,"small",15),u.ɵɵtext(34),u.ɵɵpipe(35,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(36,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(37,"\n "),u.ɵɵelementStart(38,"div",12),u.ɵɵtext(39,"\n "),u.ɵɵelementStart(40,"label",16),u.ɵɵtext(41),u.ɵɵpipe(42,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(43,"\n "),u.ɵɵelementStart(44,"input",17),u.ɵɵlistener("ngModelChange",function(e){return t.name=e}),u.ɵɵelementEnd(),u.ɵɵtext(45,"\n "),u.ɵɵelementStart(46,"small",15),u.ɵɵtext(47),u.ɵɵpipe(48,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(49,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(50,"\n "),u.ɵɵelementStart(51,"div",12),u.ɵɵtext(52,"\n "),u.ɵɵtemplate(53,G,18,9,"app-callout",18),u.ɵɵtext(54,"\n "),u.ɵɵelementStart(55,"label",19),u.ɵɵtext(56),u.ɵɵpipe(57,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(58,"\n "),u.ɵɵelementStart(59,"div",20),u.ɵɵtext(60,"\n "),u.ɵɵelementStart(61,"div",21),u.ɵɵtext(62,"\n "),u.ɵɵelementStart(63,"input",22),u.ɵɵlistener("ngModelChange",function(e){return t.masterPassword=e})("input",function(){return t.updatePasswordStrength()}),u.ɵɵelementEnd(),u.ɵɵtext(64,"\n "),u.ɵɵelementStart(65,"app-password-strength",23),u.ɵɵtext(66,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(67,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(68,"\n "),u.ɵɵelementStart(69,"div"),u.ɵɵtext(70,"\n "),u.ɵɵelementStart(71,"button",24),u.ɵɵlistener("click",function(){return t.togglePassword(!1)}),u.ɵɵpipe(72,"i18n"),u.ɵɵtext(73,"\n "),u.ɵɵelement(74,"i",25),u.ɵɵtext(75,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(76,"\n "),u.ɵɵelement(77,"div",26),u.ɵɵtext(78,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(79,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(80,"\n "),u.ɵɵelementStart(81,"small",15),u.ɵɵtext(82),u.ɵɵpipe(83,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(84,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(85,"\n "),u.ɵɵelementStart(86,"div",12),u.ɵɵtext(87,"\n "),u.ɵɵelementStart(88,"label",27),u.ɵɵtext(89),u.ɵɵpipe(90,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(91,"\n "),u.ɵɵelementStart(92,"div",20),u.ɵɵtext(93,"\n "),u.ɵɵelementStart(94,"input",28),u.ɵɵlistener("ngModelChange",function(e){return t.confirmMasterPassword=e}),u.ɵɵelementEnd(),u.ɵɵtext(95,"\n "),u.ɵɵelementStart(96,"button",24),u.ɵɵlistener("click",function(){return t.togglePassword(!0)}),u.ɵɵpipe(97,"i18n"),u.ɵɵtext(98,"\n "),u.ɵɵelement(99,"i",25),u.ɵɵtext(100,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(101,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(102,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(103,"\n "),u.ɵɵelementStart(104,"div",12),u.ɵɵtext(105,"\n "),u.ɵɵelementStart(106,"label",29),u.ɵɵtext(107),u.ɵɵpipe(108,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(109,"\n "),u.ɵɵelementStart(110,"input",30),u.ɵɵlistener("ngModelChange",function(e){return t.hint=e}),u.ɵɵelementEnd(),u.ɵɵtext(111,"\n "),u.ɵɵelementStart(112,"small",15),u.ɵɵtext(113),u.ɵɵpipe(114,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(115,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(116,"\n "),u.ɵɵtemplate(117,K,21,10,"div",31),u.ɵɵtext(118,"\n "),u.ɵɵelement(119,"hr"),u.ɵɵtext(120,"\n "),u.ɵɵelementStart(121,"div",32),u.ɵɵtext(122,"\n "),u.ɵɵelementStart(123,"button",33),u.ɵɵtext(124,"\n "),u.ɵɵelementStart(125,"span"),u.ɵɵtext(126),u.ɵɵpipe(127,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(128,"\n "),u.ɵɵelement(129,"i",34),u.ɵɵpipe(130,"i18n"),u.ɵɵtext(131,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(132,"\n "),u.ɵɵelementStart(133,"a",35),u.ɵɵtext(134),u.ɵɵpipe(135,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(136,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(137,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(138,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(139,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(140,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(141,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(142,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(143,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(144,"\n"),u.ɵɵelementEnd(),u.ɵɵtext(145,"\n")),2&e){var n=u.ɵɵreference(5);u.ɵɵproperty("ngClass",u.ɵɵpureFunction1(66,q,t.layout)),u.ɵɵadvance(2),u.ɵɵproperty("ngIf","enterprise2"===t.layout),u.ɵɵadvance(2),u.ɵɵproperty("appApiAction",t.formPromise),u.ɵɵadvance(5),u.ɵɵproperty("ngIf",t.layout),u.ɵɵadvance(2),u.ɵɵproperty("ngClass",u.ɵɵpureFunction2(68,W,t.layout,!t.layout)),u.ɵɵadvance(4),u.ɵɵproperty("ngClass",u.ɵɵpureFunction2(71,W,!t.layout,t.layout)),u.ɵɵadvance(2),u.ɵɵproperty("ngIf",!t.layout),u.ɵɵadvance(6),u.ɵɵproperty("ngIf",t.showCreateOrgMessage),u.ɵɵadvance(5),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(29,38,"emailAddress")),u.ɵɵadvance(3),u.ɵɵproperty("ngModel",t.email)("appAutofocus",""===t.email),u.ɵɵadvance(3),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(35,40,"emailAddressDesc")),u.ɵɵadvance(7),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(42,42,"yourName")),u.ɵɵadvance(3),u.ɵɵproperty("ngModel",t.name)("appAutofocus",""!==t.email),u.ɵɵadvance(3),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(48,44,"yourNameDesc")),u.ɵɵadvance(6),u.ɵɵproperty("ngIf",t.enforcedPolicyOptions),u.ɵɵadvance(3),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(57,46,"masterPass")),u.ɵɵadvance(7),u.ɵɵpropertyInterpolate("type",t.showPassword?"text":"password"),u.ɵɵproperty("ngModel",t.masterPassword),u.ɵɵadvance(2),u.ɵɵproperty("score",t.masterPasswordScore)("showText",!0),u.ɵɵadvance(6),u.ɵɵpropertyInterpolate("appA11yTitle",u.ɵɵpipeBind1(72,48,"toggleVisibility")),u.ɵɵadvance(3),u.ɵɵproperty("ngClass",u.ɵɵpureFunction2(74,H,!t.showPassword,t.showPassword)),u.ɵɵadvance(8),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(83,50,"masterPassDesc")),u.ɵɵadvance(7),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(90,52,"reTypeMasterPass")),u.ɵɵadvance(5),u.ɵɵpropertyInterpolate("type",t.showPassword?"text":"password"),u.ɵɵproperty("ngModel",t.confirmMasterPassword),u.ɵɵadvance(2),u.ɵɵpropertyInterpolate("appA11yTitle",u.ɵɵpipeBind1(97,54,"toggleVisibility")),u.ɵɵadvance(3),u.ɵɵproperty("ngClass",u.ɵɵpureFunction2(77,H,!t.showPassword,t.showPassword)),u.ɵɵadvance(8),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(108,56,"masterPassHint")),u.ɵɵadvance(3),u.ɵɵproperty("ngModel",t.hint),u.ɵɵadvance(3),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(114,58,"masterPassHintDesc")),u.ɵɵadvance(4),u.ɵɵproperty("ngIf",t.showTerms),u.ɵɵadvance(6),u.ɵɵproperty("disabled",n.loading),u.ɵɵadvance(3),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(127,60,"submit")),u.ɵɵadvance(3),u.ɵɵpropertyInterpolate("title",u.ɵɵpipeBind1(130,62,"loading")),u.ɵɵadvance(5),u.ɵɵtextInterpolate1("\n ",u.ɵɵpipeBind1(135,64,"cancel"),"\n ")}},directives:[S.NgClass,S.NgIf,w.NgControlStatusGroup,w.NgForm,C.ApiActionDirective,w.DefaultValueAccessor,w.RequiredValidator,I.InputVerbatimDirective,w.NgControlStatus,w.NgModel,E.AutofocusDirective,P.PasswordStrengthComponent,k.A11yTitleDirective,m.RouterLinkWithHref,_.CalloutComponent,w.CheckboxControlValueAccessor],pipes:[A.I18nPipe],encapsulation:2}),t}(s.RegisterComponent);t.RegisterComponent=$},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});n(0),n(8),n(6),n(19),n(3),n(15),n(36),n(5),n(44),n(62),n(7);var a=n(835),o=n(0),s=n(6),l=n(3),c=n(19),p=n(15),u=n(7),d=n(36),m=n(5),h=n(44),f=n(8),v=n(62),y=n(14),g=n(17),x=n(4),b=n(26),S=n(46),w=n(249),C=n(18),I=n(10);function E(e,t){1&e&&(o.ɵɵelementStart(0,"div",8),o.ɵɵtext(1,"\n "),o.ɵɵelement(2,"i",9),o.ɵɵpipe(3,"i18n"),o.ɵɵtext(4),o.ɵɵpipe(5,"i18n"),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(2),o.ɵɵpropertyInterpolate("title",o.ɵɵpipeBind1(3,2,"loading")),o.ɵɵadvance(2),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(5,4,"loading"),"\n "))}function P(e,t){if(1&e&&(o.ɵɵelementStart(0,"li"),o.ɵɵtext(1),o.ɵɵpipe(2,"i18n"),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext(3);o.ɵɵadvance(1),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind2(2,1,"policyInEffectMinComplexity",n.getPasswordScoreAlertDisplay()),"\n ")}}function k(e,t){if(1&e&&(o.ɵɵelementStart(0,"li"),o.ɵɵtext(1),o.ɵɵpipe(2,"i18n"),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext(3);o.ɵɵadvance(1),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind2(2,1,"policyInEffectMinLength",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.minLength.toString()),"\n ")}}function _(e,t){1&e&&(o.ɵɵelementStart(0,"li"),o.ɵɵtext(1),o.ɵɵpipe(2,"i18n"),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(1),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(2,1,"policyInEffectUppercase"),""))}function A(e,t){1&e&&(o.ɵɵelementStart(0,"li"),o.ɵɵtext(1),o.ɵɵpipe(2,"i18n"),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(1),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(2,1,"policyInEffectLowercase"),""))}function O(e,t){1&e&&(o.ɵɵelementStart(0,"li"),o.ɵɵtext(1),o.ɵɵpipe(2,"i18n"),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(1),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(2,1,"policyInEffectNumbers"),""))}function T(e,t){1&e&&(o.ɵɵelementStart(0,"li"),o.ɵɵtext(1),o.ɵɵpipe(2,"i18n"),o.ɵɵelementEnd()),2&e&&(o.ɵɵadvance(1),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind2(2,1,"policyInEffectSpecial","!@#$%^&*"),""))}function M(e,t){if(1&e&&(o.ɵɵelementStart(0,"app-callout",11),o.ɵɵtext(1),o.ɵɵpipe(2,"i18n"),o.ɵɵelementStart(3,"ul",29),o.ɵɵtext(4,"\n "),o.ɵɵtemplate(5,P,3,4,"li",30),o.ɵɵtext(6,"\n "),o.ɵɵtemplate(7,k,3,4,"li",30),o.ɵɵtext(8,"\n "),o.ɵɵtemplate(9,_,3,3,"li",30),o.ɵɵtext(10,"\n "),o.ɵɵtemplate(11,A,3,3,"li",30),o.ɵɵtext(12,"\n "),o.ɵɵtemplate(13,O,3,3,"li",30),o.ɵɵtext(14,"\n "),o.ɵɵtemplate(15,T,3,4,"li",30),o.ɵɵtext(16,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(17,"\n "),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext(2);o.ɵɵadvance(1),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(2,7,"masterPasswordPolicyInEffect"),"\n "),o.ɵɵadvance(4),o.ɵɵproperty("ngIf",(null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.minComplexity)>0),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",(null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.minLength)>0),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireUpper),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireLower),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireNumbers),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireSpecial)}}var B=function(e,t){return{"fa-eye":e,"fa-eye-slash":t}};function D(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",10),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"app-callout",11),o.ɵɵtext(3),o.ɵɵpipe(4,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(5,"\n "),o.ɵɵelementStart(6,"div",12),o.ɵɵtext(7,"\n "),o.ɵɵtemplate(8,M,18,9,"app-callout",13),o.ɵɵtext(9,"\n "),o.ɵɵelementStart(10,"label",14),o.ɵɵtext(11),o.ɵɵpipe(12,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(13,"\n "),o.ɵɵelementStart(14,"div",15),o.ɵɵtext(15,"\n "),o.ɵɵelementStart(16,"div",16),o.ɵɵtext(17,"\n "),o.ɵɵelementStart(18,"input",17),o.ɵɵlistener("ngModelChange",function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext().masterPassword=e})("input",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext().updatePasswordStrength()}),o.ɵɵelementEnd(),o.ɵɵtext(19,"\n "),o.ɵɵelementStart(20,"app-password-strength",18),o.ɵɵtext(21,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(22,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(23,"\n "),o.ɵɵelementStart(24,"div"),o.ɵɵtext(25,"\n "),o.ɵɵelementStart(26,"button",19),o.ɵɵlistener("click",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext().togglePassword(!1)}),o.ɵɵpipe(27,"i18n"),o.ɵɵtext(28,"\n "),o.ɵɵelement(29,"i",20),o.ɵɵtext(30,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(31,"\n "),o.ɵɵelement(32,"div",21),o.ɵɵtext(33,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(34,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(35,"\n "),o.ɵɵelementStart(36,"small",22),o.ɵɵtext(37),o.ɵɵpipe(38,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(39,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(40,"\n "),o.ɵɵelementStart(41,"div",12),o.ɵɵtext(42,"\n "),o.ɵɵelementStart(43,"label",23),o.ɵɵtext(44),o.ɵɵpipe(45,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(46,"\n "),o.ɵɵelementStart(47,"div",15),o.ɵɵtext(48,"\n "),o.ɵɵelementStart(49,"input",24),o.ɵɵlistener("ngModelChange",function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext().masterPasswordRetype=e}),o.ɵɵelementEnd(),o.ɵɵtext(50,"\n "),o.ɵɵelementStart(51,"button",19),o.ɵɵlistener("click",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext().togglePassword(!0)}),o.ɵɵpipe(52,"i18n"),o.ɵɵtext(53,"\n "),o.ɵɵelement(54,"i",20),o.ɵɵtext(55,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(56,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(57,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(58,"\n "),o.ɵɵelementStart(59,"div",12),o.ɵɵtext(60,"\n "),o.ɵɵelementStart(61,"label",25),o.ɵɵtext(62),o.ɵɵpipe(63,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(64,"\n "),o.ɵɵelementStart(65,"input",26),o.ɵɵlistener("ngModelChange",function(e){return o.ɵɵrestoreView(n),o.ɵɵnextContext().hint=e}),o.ɵɵelementEnd(),o.ɵɵtext(66,"\n "),o.ɵɵelementStart(67,"small",22),o.ɵɵtext(68),o.ɵɵpipe(69,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(70,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(71,"\n "),o.ɵɵelement(72,"hr"),o.ɵɵtext(73,"\n "),o.ɵɵelementStart(74,"div",15),o.ɵɵtext(75,"\n "),o.ɵɵelementStart(76,"button",27),o.ɵɵtext(77,"\n "),o.ɵɵelement(78,"i",9),o.ɵɵpipe(79,"i18n"),o.ɵɵtext(80,"\n "),o.ɵɵelementStart(81,"span"),o.ɵɵtext(82),o.ɵɵpipe(83,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(84,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(85,"\n "),o.ɵɵelementStart(86,"button",28),o.ɵɵlistener("click",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext().logOut()}),o.ɵɵtext(87),o.ɵɵpipe(88,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(89,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(90,"\n "),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext(),i=o.ɵɵreference(1);o.ɵɵadvance(3),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(4,22,"ssoCompleteRegistration")),o.ɵɵadvance(5),o.ɵɵproperty("ngIf",r.enforcedPolicyOptions),o.ɵɵadvance(3),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(12,24,"masterPass")),o.ɵɵadvance(7),o.ɵɵpropertyInterpolate("type",r.showPassword?"text":"password"),o.ɵɵproperty("ngModel",r.masterPassword),o.ɵɵadvance(2),o.ɵɵproperty("score",r.masterPasswordScore)("showText",!0),o.ɵɵadvance(6),o.ɵɵpropertyInterpolate("appA11yTitle",o.ɵɵpipeBind1(27,26,"toggleVisibility")),o.ɵɵadvance(3),o.ɵɵproperty("ngClass",o.ɵɵpureFunction2(44,B,!r.showPassword,r.showPassword)),o.ɵɵadvance(8),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(38,28,"masterPassDesc")),o.ɵɵadvance(7),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(45,30,"reTypeMasterPass")),o.ɵɵadvance(5),o.ɵɵpropertyInterpolate("type",r.showPassword?"text":"password"),o.ɵɵproperty("ngModel",r.masterPasswordRetype),o.ɵɵadvance(2),o.ɵɵpropertyInterpolate("appA11yTitle",o.ɵɵpipeBind1(52,32,"toggleVisibility")),o.ɵɵadvance(3),o.ɵɵproperty("ngClass",o.ɵɵpureFunction2(47,B,!r.showPassword,r.showPassword)),o.ɵɵadvance(8),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(63,34,"masterPassHint")),o.ɵɵadvance(3),o.ɵɵproperty("ngModel",r.hint),o.ɵɵadvance(3),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(69,36,"masterPassHintDesc")),o.ɵɵadvance(8),o.ɵɵproperty("disabled",i.loading),o.ɵɵadvance(2),o.ɵɵpropertyInterpolate("title",o.ɵɵpipeBind1(79,38,"loading")),o.ɵɵadvance(4),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(83,40,"submit")),o.ɵɵadvance(5),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(88,42,"logOut"),"\n ")}}var V=function(e){function t(t,n,r,i,a,o,s,l,c,p,u){return e.call(this,n,r,i,a,o,s,l,c,t,p,u)||this}return i(t,e),t.ɵfac=function(e){return new(e||t)(o.ɵɵdirectiveInject(s.ApiService),o.ɵɵdirectiveInject(l.I18nService),o.ɵɵdirectiveInject(c.CryptoService),o.ɵɵdirectiveInject(p.MessagingService),o.ɵɵdirectiveInject(u.UserService),o.ɵɵdirectiveInject(d.PasswordGenerationService),o.ɵɵdirectiveInject(m.PlatformUtilsService),o.ɵɵdirectiveInject(h.PolicyService),o.ɵɵdirectiveInject(f.Router),o.ɵɵdirectiveInject(v.SyncService),o.ɵɵdirectiveInject(f.ActivatedRoute))},t.ɵcmp=o.ɵɵdefineComponent({type:t,selectors:[["app-set-password"]],features:[o.ɵɵInheritDefinitionFeature],decls:21,vars:6,consts:[["ngNativeValidate","","autocomplete","off",3,"appApiAction","ngSubmit"],["form",""],[1,"row","justify-content-md-center","mt-5"],[1,"col-5"],[1,"lead","text-center","mb-4"],[1,"card","d-block"],["class","card-body text-center",4,"ngIf"],["class","card-body",4,"ngIf"],[1,"card-body","text-center"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],[1,"card-body"],["type","info"],[1,"form-group"],["type","info",4,"ngIf"],["for","masterPassword"],[1,"d-flex"],[1,"w-100"],["id","masterPassword","name","MasterPasswordHash","required","","appInputVerbatim","",1,"text-monospace","form-control","mb-1",3,"type","ngModel","ngModelChange","input"],[3,"score","showText"],["type","button",1,"ml-1","btn","btn-link",3,"appA11yTitle","click"],["aria-hidden","true",1,"fa","fa-lg",3,"ngClass"],[1,"progress-bar","invisible"],[1,"form-text","text-muted"],["for","masterPasswordRetype"],["id","masterPasswordRetype","name","MasterPasswordRetype","required","","appInputVerbatim","",1,"text-monospace","form-control",3,"type","ngModel","ngModelChange"],["for","hint"],["id","hint","type","text","name","Hint",1,"form-control",3,"ngModel","ngModelChange"],["type","submit",1,"btn","btn-primary","btn-block","btn-submit",3,"disabled"],["type","button",1,"btn","btn-outline-secondary","btn-block","ml-2","mt-0",3,"click"],[1,"mb-0"],[4,"ngIf"]],template:function(e,t){1&e&&(o.ɵɵelementStart(0,"form",0,1),o.ɵɵlistener("ngSubmit",function(){return t.submit()}),o.ɵɵtext(2,"\n "),o.ɵɵelementStart(3,"div",2),o.ɵɵtext(4,"\n "),o.ɵɵelementStart(5,"div",3),o.ɵɵtext(6,"\n "),o.ɵɵelementStart(7,"p",4),o.ɵɵtext(8),o.ɵɵpipe(9,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(10,"\n "),o.ɵɵelementStart(11,"div",5),o.ɵɵtext(12,"\n "),o.ɵɵtemplate(13,E,6,6,"div",6),o.ɵɵtext(14,"\n "),o.ɵɵtemplate(15,D,91,50,"div",7),o.ɵɵtext(16,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(17,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(18,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(19,"\n"),o.ɵɵelementEnd(),o.ɵɵtext(20,"\n")),2&e&&(o.ɵɵproperty("appApiAction",t.formPromise),o.ɵɵadvance(8),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(9,4,"setMasterPassword")),o.ɵɵadvance(5),o.ɵɵproperty("ngIf",t.syncLoading),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",!t.syncLoading))},directives:[y.NgControlStatusGroup,y.NgForm,g.ApiActionDirective,x.NgIf,b.CalloutComponent,y.DefaultValueAccessor,y.RequiredValidator,S.InputVerbatimDirective,y.NgControlStatus,y.NgModel,w.PasswordStrengthComponent,C.A11yTitleDirective,x.NgClass],pipes:[I.I18nPipe],encapsulation:2}),t}(a.SetPasswordComponent);t.SetPasswordComponent=V},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]1?t[1]:null},e.prototype.checkState=function(e,t){if(null==e)return!1;if(null==t)return!1;var n=e.split("_identifier="),r=t.split("_identifier=");return n[0]===r[0]},e.ɵfac=function(t){return new(t||e)(s.ɵɵdirectiveInject(l.AuthService),s.ɵɵdirectiveInject(c.Router),s.ɵɵdirectiveInject(p.I18nService),s.ɵɵdirectiveInject(c.ActivatedRoute),s.ɵɵdirectiveInject(u.StorageService),s.ɵɵdirectiveInject(d.StateService),s.ɵɵdirectiveInject(m.PlatformUtilsService),s.ɵɵdirectiveInject(h.ApiService),s.ɵɵdirectiveInject(f.CryptoFunctionService),s.ɵɵdirectiveInject(v.PasswordGenerationService))},e.ɵdir=s.ɵɵdefineDirective({type:e}),e}();t.SsoComponent=y},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]this.pageSize&&(t=this.pagedCollectionsCount),this.collections.length>e&&(this.pagedCollections=this.pagedCollections.concat(this.collections.slice(e,e+t))),this.pagedCollectionsCount=this.pagedCollections.length,this.didScroll=this.pagedCollections.length>this.pageSize}},e.prototype.edit=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(l.ModalComponent);this.modal=this.addEditModalRef.createComponent(n).instance;var r=this.modal.show(c.CollectionAddEditComponent,this.addEditModalRef);r.organizationId=this.organizationId,r.collectionId=null!=e?e.id:null,r.onSavedCollection.subscribe(function(){t.modal.close(),t.load()}),r.onDeletedCollection.subscribe(function(){t.modal.close(),t.removeCollection(e)}),this.modal.onClosed.subscribe(function(){t.modal=null})},e.prototype.add=function(){this.edit(null)},e.prototype.delete=function(e){return r(this,void 0,void 0,function(){return i(this,function(t){switch(t.label){case 0:return[4,this.platformUtilsService.showDialog(this.i18nService.t("deleteCollectionConfirmation"),e.name,this.i18nService.t("yes"),this.i18nService.t("no"),"warning")];case 1:if(!t.sent())return[2,!1];t.label=2;case 2:return t.trys.push([2,4,,5]),[4,this.apiService.deleteCollection(this.organizationId,e.id)];case 3:return t.sent(),this.analytics.eventTrack.next({action:"Deleted Collection"}),this.toasterService.popAsync("success",null,this.i18nService.t("deletedCollectionId",e.name)),this.removeCollection(e),[3,5];case 4:return t.sent(),[3,5];case 5:return[2]}})})},e.prototype.users=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(l.ModalComponent);this.modal=this.usersModalRef.createComponent(n).instance;var r=this.modal.show(p.EntityUsersComponent,this.usersModalRef);r.organizationId=this.organizationId,r.entity="collection",r.entityId=e.id,r.entityName=e.name,r.onEditedUsers.subscribe(function(){t.load(),t.modal.close()}),this.modal.onClosed.subscribe(function(){t.modal=null})},e.prototype.resetPaging=function(){return r(this,void 0,void 0,function(){return i(this,function(e){return this.pagedCollections=[],this.loadMore(),[2]})})},e.prototype.isSearching=function(){return this.searchService.isSearchable(this.searchText)},e.prototype.isPaging=function(){var e=this.isSearching();return e&&this.didScroll&&this.resetPaging(),!e&&this.collections&&this.collections.length>this.pageSize},e.prototype.removeCollection=function(e){var t=this.collections.indexOf(e);t>-1&&(this.collections.splice(t,1),this.resetPaging())},e.ɵfac=function(t){return new(t||e)(u.ɵɵdirectiveInject(d.ApiService),u.ɵɵdirectiveInject(m.ActivatedRoute),u.ɵɵdirectiveInject(h.CollectionService),u.ɵɵdirectiveInject(u.ComponentFactoryResolver),u.ɵɵdirectiveInject(f.Angulartics2),u.ɵɵdirectiveInject(v.ToasterService),u.ɵɵdirectiveInject(y.I18nService),u.ɵɵdirectiveInject(g.PlatformUtilsService),u.ɵɵdirectiveInject(x.UserService),u.ɵɵdirectiveInject(b.SearchService))},e.ɵcmp=u.ɵɵdefineComponent({type:e,selectors:[["app-org-manage-collections"]],viewQuery:function(e,t){var n;(1&e&&(u.ɵɵstaticViewQuery(_,!0,a.ViewContainerRef),u.ɵɵstaticViewQuery(A,!0,a.ViewContainerRef)),2&e)&&(u.ɵɵqueryRefresh(n=u.ɵɵloadQuery())&&(t.addEditModalRef=n.first),u.ɵɵqueryRefresh(n=u.ɵɵloadQuery())&&(t.usersModalRef=n.first))},decls:37,vars:20,consts:[[1,"page-header","d-flex"],[1,"ml-auto","d-flex"],["for","search",1,"sr-only"],["type","search","id","search",1,"form-control","form-control-sm",3,"placeholder","ngModel","ngModelChange"],["type","button",1,"btn","btn-sm","btn-outline-primary","ml-3",3,"click"],["aria-hidden","true",1,"fa","fa-plus","fa-fw"],[4,"ngIf"],["addEdit",""],["usersTemplate",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],["class","table table-hover table-list","infiniteScroll","",3,"infiniteScrollDistance","infiniteScrollDisabled","scrolled",4,"ngIf"],["infiniteScroll","",1,"table","table-hover","table-list",3,"infiniteScrollDistance","infiniteScrollDisabled","scrolled"],[4,"ngFor","ngForOf"],["href","#","appStopClick","",3,"click"],[1,"table-list-options"],["appListDropdown","",1,"dropdown"],["type","button","data-toggle","dropdown","aria-haspopup","true","aria-expanded","false",1,"btn","btn-outline-secondary","dropdown-toggle",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-cog","fa-lg"],[1,"dropdown-menu","dropdown-menu-right"],["href","#","appStopClick","",1,"dropdown-item",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-users"],["href","#","appStopClick","",1,"dropdown-item","text-danger",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-trash-o"]],template:function(e,t){1&e&&(u.ɵɵelementStart(0,"div",0),u.ɵɵtext(1,"\n "),u.ɵɵelementStart(2,"h1"),u.ɵɵtext(3),u.ɵɵpipe(4,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(5,"\n "),u.ɵɵelementStart(6,"div",1),u.ɵɵtext(7,"\n "),u.ɵɵelementStart(8,"div"),u.ɵɵtext(9,"\n "),u.ɵɵelementStart(10,"label",2),u.ɵɵtext(11),u.ɵɵpipe(12,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(13,"\n "),u.ɵɵelementStart(14,"input",3),u.ɵɵlistener("ngModelChange",function(e){return t.searchText=e}),u.ɵɵpipe(15,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(16,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(17,"\n "),u.ɵɵelementStart(18,"button",4),u.ɵɵlistener("click",function(){return t.add()}),u.ɵɵtext(19,"\n "),u.ɵɵelement(20,"i",5),u.ɵɵtext(21),u.ɵɵpipe(22,"i18n"),u.ɵɵelementEnd(),u.ɵɵtext(23,"\n "),u.ɵɵelementEnd(),u.ɵɵtext(24,"\n"),u.ɵɵelementEnd(),u.ɵɵtext(25,"\n"),u.ɵɵtemplate(26,O,9,6,"ng-container",6),u.ɵɵtext(27,"\n"),u.ɵɵtemplate(28,D,6,2,"ng-container",6),u.ɵɵpipe(29,"search"),u.ɵɵtext(30,"\n"),u.ɵɵtemplate(31,V,0,0,"ng-template",null,7,u.ɵɵtemplateRefExtractor),u.ɵɵtext(33,"\n"),u.ɵɵtemplate(34,j,0,0,"ng-template",null,8,u.ɵɵtemplateRefExtractor),u.ɵɵtext(36,"\n")),2&e&&(u.ɵɵadvance(3),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(4,7,"collections")),u.ɵɵadvance(8),u.ɵɵtextInterpolate(u.ɵɵpipeBind1(12,9,"search")),u.ɵɵadvance(3),u.ɵɵpropertyInterpolate("placeholder",u.ɵɵpipeBind1(15,11,"search")),u.ɵɵproperty("ngModel",t.searchText),u.ɵɵadvance(7),u.ɵɵtextInterpolate1("\n ",u.ɵɵpipeBind1(22,13,"newCollection"),"\n "),u.ɵɵadvance(5),u.ɵɵproperty("ngIf",t.loading),u.ɵɵadvance(2),u.ɵɵproperty("ngIf",!t.loading&&(t.isPaging()?t.pagedCollections:u.ɵɵpipeBind4(29,15,t.collections,t.searchText,"name","id"))))},directives:[S.DefaultValueAccessor,S.NgControlStatus,S.NgModel,w.NgIf,C.InfiniteScrollDirective,w.NgForOf,I.StopClickDirective,E.A11yTitleDirective],pipes:[P.I18nPipe,k.SearchPipe],encapsulation:2}),e}();t.CollectionsComponent=R},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&r.groups.forEach(function(e){var t=s.groups.filter(function(t){return!t.accessAll&&t.id===e.id});null!=t&&t.length>0&&(t[0].checked=!0,t[0].readOnly=e.readOnly,t[0].hidePasswords=e.hidePasswords)}),[3,9];case 8:return i.sent(),[3,9];case 9:return[3,11];case 10:this.title=this.i18nService.t("addCollection"),i.label=11;case 11:return this.groups.forEach(function(e){e.accessAll&&(e.checked=!0)}),this.loading=!1,[2]}})})},e.prototype.check=function(e,t){e.accessAll||(e.checked=null==t?!e.checked:t,e.checked||(e.readOnly=!1,e.hidePasswords=!1))},e.prototype.selectAll=function(e){var t=this;this.groups.forEach(function(n){return t.check(n,e)})},e.prototype.submit=function(){return r(this,void 0,void 0,function(){var e,t;return i(this,function(n){switch(n.label){case 0:if(null==this.orgKey)throw new Error("No encryption key for this organization.");return e=new s.CollectionRequest,t=e,[4,this.cryptoService.encrypt(this.name,this.orgKey)];case 1:t.name=n.sent().encryptedString,e.externalId=this.externalId,e.groups=this.groups.filter(function(e){return e.checked&&!e.accessAll}).map(function(e){return new l.SelectionReadOnlyRequest(e.id,!!e.readOnly,!!e.hidePasswords)}),n.label=2;case 2:return n.trys.push([2,4,,5]),this.editMode?this.formPromise=this.apiService.putCollection(this.organizationId,this.collectionId,e):this.formPromise=this.apiService.postCollection(this.organizationId,e),[4,this.formPromise];case 3:return n.sent(),this.analytics.eventTrack.next({action:this.editMode?"Edited Collection":"Created Collection"}),this.toasterService.popAsync("success",null,this.i18nService.t(this.editMode?"editedCollectionId":"createdCollectionId",this.name)),this.onSavedCollection.emit(),[3,5];case 4:return n.sent(),[3,5];case 5:return[2]}})})},e.prototype.delete=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.editMode?[4,this.platformUtilsService.showDialog(this.i18nService.t("deleteCollectionConfirmation"),this.name,this.i18nService.t("yes"),this.i18nService.t("no"),"warning")]:[2];case 1:if(!e.sent())return[2,!1];e.label=2;case 2:return e.trys.push([2,4,,5]),this.deletePromise=this.apiService.deleteCollection(this.organizationId,this.collectionId),[4,this.deletePromise];case 3:return e.sent(),this.analytics.eventTrack.next({action:"Deleted Collection"}),this.toasterService.popAsync("success",null,this.i18nService.t("deletedCollectionId",this.name)),this.onDeletedCollection.emit(),[3,5];case 4:return e.sent(),[3,5];case 5:return[2]}})})},e.ɵfac=function(t){return new(t||e)(p.ɵɵdirectiveInject(u.ApiService),p.ɵɵdirectiveInject(d.I18nService),p.ɵɵdirectiveInject(m.Angulartics2),p.ɵɵdirectiveInject(h.ToasterService),p.ɵɵdirectiveInject(f.PlatformUtilsService),p.ɵɵdirectiveInject(v.CryptoService),p.ɵɵdirectiveInject(y.UserService))},e.ɵcmp=p.ɵɵdefineComponent({type:e,selectors:[["app-collection-add-edit"]],inputs:{collectionId:"collectionId",organizationId:"organizationId"},outputs:{onSavedCollection:"onSavedCollection",onDeletedCollection:"onDeletedCollection"},decls:49,vars:18,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","collectionAddEditTitle",1,"modal","fade"],["role","document",1,"modal-dialog"],["ngNativeValidate","",1,"modal-content",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-header"],["id","collectionAddEditTitle",1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],["class","modal-body",4,"ngIf"],[1,"modal-footer"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],[1,"ml-auto"],["type","button","class","btn btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click",4,"ngIf"],[1,"modal-body"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[1,"form-group"],["for","name"],["id","name","type","text","name","Name","required","","appAutofocus","",1,"form-control",3,"ngModel","ngModelChange"],["for","externalId"],["id","externalId","type","text","name","ExternalId",1,"form-control",3,"ngModel","ngModelChange"],[1,"form-text","text-muted"],[4,"ngIf"],[1,"mt-4","d-flex","mb-0"],["class","ml-auto",4,"ngIf"],["class","table table-hover table-list mb-0",4,"ngIf"],["type","button",1,"btn","btn-link","btn-sm","py-0",3,"click"],[1,"table","table-hover","table-list","mb-0"],["width","100",1,"text-center"],[4,"ngFor","ngForOf"],[1,"table-list-checkbox",3,"click"],["type","checkbox","appStopProp","",3,"ngModel","name","disabled","ngModelChange"],[3,"click"],[1,"text-center"],["type","checkbox",3,"ngModel","name","disabled","ngModelChange"],["aria-hidden","true",1,"fa","fa-th","text-muted","fa-fw",3,"title"],["type","button",1,"btn","btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click"],["deleteBtn",""],["aria-hidden","true",1,"fa","fa-trash-o","fa-lg","fa-fw",3,"hidden"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","fa-lg","fa-fw",3,"hidden","title"]],template:function(e,t){if(1&e&&(p.ɵɵelementStart(0,"div",0),p.ɵɵtext(1,"\n "),p.ɵɵelementStart(2,"div",1),p.ɵɵtext(3,"\n "),p.ɵɵelementStart(4,"form",2,3),p.ɵɵlistener("ngSubmit",function(){return t.submit()}),p.ɵɵtext(6,"\n "),p.ɵɵelementStart(7,"div",4),p.ɵɵtext(8,"\n "),p.ɵɵelementStart(9,"h2",5),p.ɵɵtext(10),p.ɵɵelementEnd(),p.ɵɵtext(11,"\n "),p.ɵɵelementStart(12,"button",6),p.ɵɵpipe(13,"i18n"),p.ɵɵtext(14,"\n "),p.ɵɵelementStart(15,"span",7),p.ɵɵtext(16,"×"),p.ɵɵelementEnd(),p.ɵɵtext(17,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(18,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(19,"\n "),p.ɵɵtemplate(20,E,9,6,"div",8),p.ɵɵtext(21,"\n "),p.ɵɵtemplate(22,M,26,12,"div",8),p.ɵɵtext(23,"\n "),p.ɵɵelementStart(24,"div",9),p.ɵɵtext(25,"\n "),p.ɵɵelementStart(26,"button",10),p.ɵɵtext(27,"\n "),p.ɵɵelement(28,"i",11),p.ɵɵpipe(29,"i18n"),p.ɵɵtext(30,"\n "),p.ɵɵelementStart(31,"span"),p.ɵɵtext(32),p.ɵɵpipe(33,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(34,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(35,"\n "),p.ɵɵelementStart(36,"button",12),p.ɵɵtext(37),p.ɵɵpipe(38,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(39,"\n "),p.ɵɵelementStart(40,"div",13),p.ɵɵtext(41,"\n "),p.ɵɵtemplate(42,B,9,10,"button",14),p.ɵɵtext(43,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(44,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(45,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(46,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(47,"\n"),p.ɵɵelementEnd(),p.ɵɵtext(48,"\n")),2&e){var n=p.ɵɵreference(5);p.ɵɵadvance(4),p.ɵɵproperty("appApiAction",t.formPromise),p.ɵɵadvance(6),p.ɵɵtextInterpolate(t.title),p.ɵɵadvance(2),p.ɵɵpropertyInterpolate("appA11yTitle",p.ɵɵpipeBind1(13,10,"close")),p.ɵɵadvance(8),p.ɵɵproperty("ngIf",t.loading),p.ɵɵadvance(2),p.ɵɵproperty("ngIf",!t.loading),p.ɵɵadvance(4),p.ɵɵproperty("disabled",n.loading),p.ɵɵadvance(2),p.ɵɵpropertyInterpolate("title",p.ɵɵpipeBind1(29,12,"loading")),p.ɵɵadvance(4),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(33,14,"save")),p.ɵɵadvance(5),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(38,16,"cancel")),p.ɵɵadvance(5),p.ɵɵproperty("ngIf",t.editMode)}},directives:[g.NgControlStatusGroup,g.NgForm,x.ApiActionDirective,b.A11yTitleDirective,S.NgIf,g.DefaultValueAccessor,g.RequiredValidator,w.AutofocusDirective,g.NgControlStatus,g.NgModel,S.NgForOf,g.CheckboxControlValueAccessor,C.StopPropDirective],pipes:[I.I18nPipe],encapsulation:2}),e}();t.CollectionAddEditComponent=D},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e){this.groups=[],null!=e&&(this.name=e.name?e.name.encryptedString:null,this.externalId=e.externalId)}}();t.CollectionRequest=r},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0?this.events=this.events.concat(a):this.events=a,this.loading=!1,this.morePromise=null,this.refreshPromise=null,[2]}})})},e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(o.ApiService),a.ɵɵdirectiveInject(s.ActivatedRoute),a.ɵɵdirectiveInject(l.EventService),a.ɵɵdirectiveInject(c.I18nService),a.ɵɵdirectiveInject(p.ToasterService),a.ɵɵdirectiveInject(u.UserService),a.ɵɵdirectiveInject(s.Router))},e.ɵcmp=a.ɵɵdefineComponent({type:e,selectors:[["app-org-events"]],decls:41,vars:27,consts:[[1,"page-header","d-flex"],[1,"ml-auto","d-flex"],[1,"form-inline"],["for","start",1,"sr-only"],["type","datetime-local","id","start","placeholder","YYYY-MM-DDTHH:MM",1,"form-control","form-control-sm",3,"placeholder","ngModel","ngModelChange"],[1,"mx-2"],["for","end",1,"sr-only"],["type","datetime-local","id","end","placeholder","YYYY-MM-DDTHH:MM",1,"form-control","form-control-sm",3,"placeholder","ngModel","ngModelChange"],["type","button",1,"btn","btn-sm","btn-outline-primary","ml-3",3,"appApiAction","disabled","click"],["refreshBtn",""],["aria-hidden","true",1,"fa","fa-refresh","fa-fw",3,"ngClass"],[4,"ngIf"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],["class","table table-hover",4,"ngIf"],["type","button","class","btn btn-block btn-link btn-submit",3,"appApiAction","disabled","click",4,"ngIf"],[1,"table","table-hover"],["width","210",1,"border-top-0"],["width","40",1,"border-top-0"],["width","150",1,"border-top-0"],[1,"border-top-0"],[4,"ngFor","ngForOf"],["aria-hidden","true",3,"title"],[3,"title"],[3,"innerHTML"],["type","button",1,"btn","btn-block","btn-link","btn-submit",3,"appApiAction","disabled","click"],["moreBtn",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"]],template:function(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",0),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"h1"),a.ɵɵtext(3),a.ɵɵpipe(4,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(5,"\n "),a.ɵɵelementStart(6,"div",1),a.ɵɵtext(7,"\n "),a.ɵɵelementStart(8,"div",2),a.ɵɵtext(9,"\n "),a.ɵɵelementStart(10,"label",3),a.ɵɵtext(11),a.ɵɵpipe(12,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(13,"\n "),a.ɵɵelementStart(14,"input",4),a.ɵɵlistener("ngModelChange",function(e){return t.start=e}),a.ɵɵpipe(15,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(16,"\n "),a.ɵɵelementStart(17,"span",5),a.ɵɵtext(18,"-"),a.ɵɵelementEnd(),a.ɵɵtext(19,"\n "),a.ɵɵelementStart(20,"label",6),a.ɵɵtext(21),a.ɵɵpipe(22,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(23,"\n "),a.ɵɵelementStart(24,"input",7),a.ɵɵlistener("ngModelChange",function(e){return t.end=e}),a.ɵɵpipe(25,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(26,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(27,"\n "),a.ɵɵelementStart(28,"button",8,9),a.ɵɵlistener("click",function(){return t.loadEvents(!0)}),a.ɵɵtext(30,"\n "),a.ɵɵelement(31,"i",10),a.ɵɵtext(32),a.ɵɵpipe(33,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(34,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(35,"\n"),a.ɵɵelementEnd(),a.ɵɵtext(36,"\n"),a.ɵɵtemplate(37,v,9,6,"ng-container",11),a.ɵɵtext(38,"\n"),a.ɵɵtemplate(39,S,8,3,"ng-container",11),a.ɵɵtext(40,"\n")),2&e){var n=a.ɵɵreference(29);a.ɵɵadvance(3),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(4,13,"eventLogs")),a.ɵɵadvance(8),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(12,15,"startDate")),a.ɵɵadvance(3),a.ɵɵpropertyInterpolate("placeholder",a.ɵɵpipeBind1(15,17,"startDate")),a.ɵɵproperty("ngModel",t.start),a.ɵɵadvance(7),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(22,19,"endDate")),a.ɵɵadvance(3),a.ɵɵpropertyInterpolate("placeholder",a.ɵɵpipeBind1(25,21,"endDate")),a.ɵɵproperty("ngModel",t.end),a.ɵɵadvance(4),a.ɵɵproperty("appApiAction",t.refreshPromise)("disabled",t.loaded&&n.loading),a.ɵɵadvance(3),a.ɵɵproperty("ngClass",a.ɵɵpureFunction1(25,w,t.loaded&&n.loading)),a.ɵɵadvance(1),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(33,23,"refresh"),"\n "),a.ɵɵadvance(5),a.ɵɵproperty("ngIf",!t.loaded),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",t.loaded)}},directives:[d.DefaultValueAccessor,d.NgControlStatus,d.NgModel,m.ApiActionDirective,h.NgClass,h.NgIf,h.NgForOf],pipes:[f.I18nPipe,h.DatePipe],encapsulation:2}),e}();t.EventsComponent=C},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0?e.data:[]).sort(o.Utils.getSortFunction(this.i18nService,"name")),this.groups=t,this.resetPaging(),this.loading=!1,[2]}})})},e.prototype.loadMore=function(){if(this.groups&&!(this.groups.length<=this.pageSize)){var e=this.pagedGroups.length,t=this.pageSize;0===e&&this.pagedGroupsCount>this.pageSize&&(t=this.pagedGroupsCount),this.groups.length>e&&(this.pagedGroups=this.pagedGroups.concat(this.groups.slice(e,e+t))),this.pagedGroupsCount=this.pagedGroups.length,this.didScroll=this.pagedGroups.length>this.pageSize}},e.prototype.edit=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(s.ModalComponent);this.modal=this.addEditModalRef.createComponent(n).instance;var r=this.modal.show(c.GroupAddEditComponent,this.addEditModalRef);r.organizationId=this.organizationId,r.groupId=null!=e?e.id:null,r.onSavedGroup.subscribe(function(){t.modal.close(),t.load()}),r.onDeletedGroup.subscribe(function(){t.modal.close(),t.removeGroup(e)}),this.modal.onClosed.subscribe(function(){t.modal=null})},e.prototype.add=function(){this.edit(null)},e.prototype.delete=function(e){return r(this,void 0,void 0,function(){return i(this,function(t){switch(t.label){case 0:return[4,this.platformUtilsService.showDialog(this.i18nService.t("deleteGroupConfirmation"),e.name,this.i18nService.t("yes"),this.i18nService.t("no"),"warning")];case 1:if(!t.sent())return[2,!1];t.label=2;case 2:return t.trys.push([2,4,,5]),[4,this.apiService.deleteGroup(this.organizationId,e.id)];case 3:return t.sent(),this.analytics.eventTrack.next({action:"Deleted Group"}),this.toasterService.popAsync("success",null,this.i18nService.t("deletedGroupId",e.name)),this.removeGroup(e),[3,5];case 4:return t.sent(),[3,5];case 5:return[2]}})})},e.prototype.users=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(s.ModalComponent);this.modal=this.usersModalRef.createComponent(n).instance;var r=this.modal.show(l.EntityUsersComponent,this.usersModalRef);r.organizationId=this.organizationId,r.entity="group",r.entityId=e.id,r.entityName=e.name,r.onEditedUsers.subscribe(function(){t.modal.close()}),this.modal.onClosed.subscribe(function(){t.modal=null})},e.prototype.resetPaging=function(){return r(this,void 0,void 0,function(){return i(this,function(e){return this.pagedGroups=[],this.loadMore(),[2]})})},e.prototype.isSearching=function(){return this.searchService.isSearchable(this.searchText)},e.prototype.isPaging=function(){var e=this.isSearching();return e&&this.didScroll&&this.resetPaging(),!e&&this.groups&&this.groups.length>this.pageSize},e.prototype.removeGroup=function(e){var t=this.groups.indexOf(e);t>-1&&(this.groups.splice(t,1),this.resetPaging())},e.ɵfac=function(t){return new(t||e)(p.ɵɵdirectiveInject(u.ApiService),p.ɵɵdirectiveInject(d.ActivatedRoute),p.ɵɵdirectiveInject(m.I18nService),p.ɵɵdirectiveInject(p.ComponentFactoryResolver),p.ɵɵdirectiveInject(h.Angulartics2),p.ɵɵdirectiveInject(f.ToasterService),p.ɵɵdirectiveInject(v.PlatformUtilsService),p.ɵɵdirectiveInject(y.UserService),p.ɵɵdirectiveInject(d.Router),p.ɵɵdirectiveInject(g.SearchService))},e.ɵcmp=p.ɵɵdefineComponent({type:e,selectors:[["app-org-groups"]],viewQuery:function(e,t){var n;(1&e&&(p.ɵɵstaticViewQuery(P,!0,a.ViewContainerRef),p.ɵɵstaticViewQuery(k,!0,a.ViewContainerRef)),2&e)&&(p.ɵɵqueryRefresh(n=p.ɵɵloadQuery())&&(t.addEditModalRef=n.first),p.ɵɵqueryRefresh(n=p.ɵɵloadQuery())&&(t.usersModalRef=n.first))},decls:37,vars:20,consts:[[1,"page-header","d-flex"],[1,"ml-auto","d-flex"],["for","search",1,"sr-only"],["type","search","id","search",1,"form-control","form-control-sm",3,"placeholder","ngModel","ngModelChange"],["type","button",1,"btn","btn-sm","btn-outline-primary","ml-3",3,"click"],["aria-hidden","true",1,"fa","fa-plus","fa-fw"],[4,"ngIf"],["addEdit",""],["usersTemplate",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],["class","table table-hover table-list","infiniteScroll","",3,"infiniteScrollDistance","infiniteScrollDisabled","scrolled",4,"ngIf"],["infiniteScroll","",1,"table","table-hover","table-list",3,"infiniteScrollDistance","infiniteScrollDisabled","scrolled"],[4,"ngFor","ngForOf"],["href","#","appStopClick","",3,"click"],[1,"table-list-options"],["appListDropdown","",1,"dropdown"],["type","button","data-toggle","dropdown","aria-haspopup","true","aria-expanded","false",1,"btn","btn-outline-secondary","dropdown-toggle",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-cog","fa-lg"],[1,"dropdown-menu","dropdown-menu-right"],["href","#","appStopClick","",1,"dropdown-item",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-users"],["href","#","appStopClick","",1,"dropdown-item","text-danger",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-trash-o"]],template:function(e,t){1&e&&(p.ɵɵelementStart(0,"div",0),p.ɵɵtext(1,"\n "),p.ɵɵelementStart(2,"h1"),p.ɵɵtext(3),p.ɵɵpipe(4,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(5,"\n "),p.ɵɵelementStart(6,"div",1),p.ɵɵtext(7,"\n "),p.ɵɵelementStart(8,"div"),p.ɵɵtext(9,"\n "),p.ɵɵelementStart(10,"label",2),p.ɵɵtext(11),p.ɵɵpipe(12,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(13,"\n "),p.ɵɵelementStart(14,"input",3),p.ɵɵlistener("ngModelChange",function(e){return t.searchText=e}),p.ɵɵpipe(15,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(16,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(17,"\n "),p.ɵɵelementStart(18,"button",4),p.ɵɵlistener("click",function(){return t.add()}),p.ɵɵtext(19,"\n "),p.ɵɵelement(20,"i",5),p.ɵɵtext(21),p.ɵɵpipe(22,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(23,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(24,"\n"),p.ɵɵelementEnd(),p.ɵɵtext(25,"\n"),p.ɵɵtemplate(26,_,9,6,"ng-container",6),p.ɵɵtext(27,"\n"),p.ɵɵtemplate(28,M,6,2,"ng-container",6),p.ɵɵpipe(29,"search"),p.ɵɵtext(30,"\n"),p.ɵɵtemplate(31,B,0,0,"ng-template",null,7,p.ɵɵtemplateRefExtractor),p.ɵɵtext(33,"\n"),p.ɵɵtemplate(34,D,0,0,"ng-template",null,8,p.ɵɵtemplateRefExtractor),p.ɵɵtext(36,"\n")),2&e&&(p.ɵɵadvance(3),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(4,7,"groups")),p.ɵɵadvance(8),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(12,9,"search")),p.ɵɵadvance(3),p.ɵɵpropertyInterpolate("placeholder",p.ɵɵpipeBind1(15,11,"search")),p.ɵɵproperty("ngModel",t.searchText),p.ɵɵadvance(7),p.ɵɵtextInterpolate1("\n ",p.ɵɵpipeBind1(22,13,"newGroup"),"\n "),p.ɵɵadvance(5),p.ɵɵproperty("ngIf",t.loading),p.ɵɵadvance(2),p.ɵɵproperty("ngIf",!t.loading&&(t.isPaging()?t.pagedGroups:p.ɵɵpipeBind4(29,15,t.groups,t.searchText,"name","id"))))},directives:[x.DefaultValueAccessor,x.NgControlStatus,x.NgModel,b.NgIf,S.InfiniteScrollDirective,b.NgForOf,w.StopClickDirective,C.A11yTitleDirective],pipes:[I.I18nPipe,E.SearchPipe],encapsulation:2}),e}();t.GroupsComponent=V},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&(n[0].checked=!0,n[0].readOnly=e.readOnly,n[0].hidePasswords=e.hidePasswords)}),[3,5];case 4:return n.sent(),[3,5];case 5:return[3,7];case 6:this.title=this.i18nService.t("addGroup"),n.label=7;case 7:return this.loading=!1,[2]}})})},e.prototype.loadCollections=function(){return r(this,void 0,void 0,function(){var e,t,n;return i(this,function(r){switch(r.label){case 0:return[4,this.apiService.getCollections(this.organizationId)];case 1:return e=r.sent(),t=e.data.map(function(e){return new s.Collection(new o.CollectionData(e))}),n=this,[4,this.collectionService.decryptMany(t)];case 2:return n.collections=r.sent(),[2]}})})},e.prototype.check=function(e,t){e.checked=null==t?!e.checked:t,e.checked||(e.readOnly=!1)},e.prototype.selectAll=function(e){var t=this;this.collections.forEach(function(n){return t.check(n,e)})},e.prototype.submit=function(){return r(this,void 0,void 0,function(){var e;return i(this,function(t){switch(t.label){case 0:(e=new l.GroupRequest).name=this.name,e.externalId=this.externalId,e.accessAll="all"===this.access,e.accessAll||(e.collections=this.collections.filter(function(e){return e.checked}).map(function(e){return new c.SelectionReadOnlyRequest(e.id,!!e.readOnly,!!e.hidePasswords)})),t.label=1;case 1:return t.trys.push([1,3,,4]),this.editMode?this.formPromise=this.apiService.putGroup(this.organizationId,this.groupId,e):this.formPromise=this.apiService.postGroup(this.organizationId,e),[4,this.formPromise];case 2:return t.sent(),this.analytics.eventTrack.next({action:this.editMode?"Edited Group":"Created Group"}),this.toasterService.popAsync("success",null,this.i18nService.t(this.editMode?"editedGroupId":"createdGroupId",this.name)),this.onSavedGroup.emit(),[3,4];case 3:return t.sent(),[3,4];case 4:return[2]}})})},e.prototype.delete=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.editMode?[4,this.platformUtilsService.showDialog(this.i18nService.t("deleteGroupConfirmation"),this.name,this.i18nService.t("yes"),this.i18nService.t("no"),"warning")]:[2];case 1:if(!e.sent())return[2,!1];e.label=2;case 2:return e.trys.push([2,4,,5]),this.deletePromise=this.apiService.deleteGroup(this.organizationId,this.groupId),[4,this.deletePromise];case 3:return e.sent(),this.analytics.eventTrack.next({action:"Deleted Group"}),this.toasterService.popAsync("success",null,this.i18nService.t("deletedGroupId",this.name)),this.onDeletedGroup.emit(),[3,5];case 4:return e.sent(),[3,5];case 5:return[2]}})})},e.ɵfac=function(t){return new(t||e)(p.ɵɵdirectiveInject(u.ApiService),p.ɵɵdirectiveInject(d.I18nService),p.ɵɵdirectiveInject(m.Angulartics2),p.ɵɵdirectiveInject(h.ToasterService),p.ɵɵdirectiveInject(f.CollectionService),p.ɵɵdirectiveInject(v.PlatformUtilsService))},e.ɵcmp=p.ɵɵdefineComponent({type:e,selectors:[["app-group-add-edit"]],inputs:{groupId:"groupId",organizationId:"organizationId"},outputs:{onSavedGroup:"onSavedGroup",onDeletedGroup:"onDeletedGroup"},decls:49,vars:18,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","groupAddEditTitle",1,"modal","fade"],["role","document",1,"modal-dialog","modal-lg"],["ngNativeValidate","",1,"modal-content",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-header"],["id","groupAddEditTitle",1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],["class","modal-body",4,"ngIf"],[1,"modal-footer"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],[1,"ml-auto"],["type","button","class","btn btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click",4,"ngIf"],[1,"modal-body"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[1,"form-group"],["for","name"],["id","name","type","text","name","Name","required","",1,"form-control",3,"ngModel","ngModelChange"],["for","externalId"],["id","externalId","type","text","name","ExternalId",1,"form-control",3,"ngModel","ngModelChange"],[1,"form-text","text-muted"],[1,"mt-4","d-flex"],[1,"mb-2"],["target","_blank","rel","noopener","href","https://bitwarden.com/help/article/user-types-access-control/#access-control",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-question-circle-o"],["class","ml-auto",4,"ngIf"],[1,"form-group",3,"ngClass"],[1,"form-check"],["type","radio","name","access","id","accessAll","value","all",1,"form-check-input",3,"ngModel","ngModelChange"],["for","accessAll",1,"form-check-label"],["type","radio","name","access","id","accessSelected","value","selected",1,"form-check-input",3,"ngModel","ngModelChange"],["for","accessSelected",1,"form-check-label"],[4,"ngIf"],["type","button",1,"btn","btn-link","btn-sm","py-0",3,"click"],["class","table table-hover table-list mb-0",4,"ngIf"],[1,"table","table-hover","table-list","mb-0"],["width","100",1,"text-center"],[4,"ngFor","ngForOf"],[1,"table-list-checkbox",3,"click"],["type","checkbox","appStopProp","",3,"ngModel","name","ngModelChange"],[3,"click"],[1,"text-center"],["type","checkbox",3,"ngModel","name","disabled","ngModelChange"],["type","button",1,"btn","btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click"],["deleteBtn",""],["aria-hidden","true",1,"fa","fa-trash-o","fa-lg","fa-fw",3,"hidden"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","fa-lg","fa-fw",3,"hidden","title"]],template:function(e,t){if(1&e&&(p.ɵɵelementStart(0,"div",0),p.ɵɵtext(1,"\n "),p.ɵɵelementStart(2,"div",1),p.ɵɵtext(3,"\n "),p.ɵɵelementStart(4,"form",2,3),p.ɵɵlistener("ngSubmit",function(){return t.submit()}),p.ɵɵtext(6,"\n "),p.ɵɵelementStart(7,"div",4),p.ɵɵtext(8,"\n "),p.ɵɵelementStart(9,"h2",5),p.ɵɵtext(10),p.ɵɵelementEnd(),p.ɵɵtext(11,"\n "),p.ɵɵelementStart(12,"button",6),p.ɵɵpipe(13,"i18n"),p.ɵɵtext(14,"\n "),p.ɵɵelementStart(15,"span",7),p.ɵɵtext(16,"×"),p.ɵɵelementEnd(),p.ɵɵtext(17,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(18,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(19,"\n "),p.ɵɵtemplate(20,C,9,6,"div",8),p.ɵɵtext(21,"\n "),p.ɵɵtemplate(22,O,62,30,"div",8),p.ɵɵtext(23,"\n "),p.ɵɵelementStart(24,"div",9),p.ɵɵtext(25,"\n "),p.ɵɵelementStart(26,"button",10),p.ɵɵtext(27,"\n "),p.ɵɵelement(28,"i",11),p.ɵɵpipe(29,"i18n"),p.ɵɵtext(30,"\n "),p.ɵɵelementStart(31,"span"),p.ɵɵtext(32),p.ɵɵpipe(33,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(34,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(35,"\n "),p.ɵɵelementStart(36,"button",12),p.ɵɵtext(37),p.ɵɵpipe(38,"i18n"),p.ɵɵelementEnd(),p.ɵɵtext(39,"\n "),p.ɵɵelementStart(40,"div",13),p.ɵɵtext(41,"\n "),p.ɵɵtemplate(42,T,9,10,"button",14),p.ɵɵtext(43,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(44,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(45,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(46,"\n "),p.ɵɵelementEnd(),p.ɵɵtext(47,"\n"),p.ɵɵelementEnd(),p.ɵɵtext(48,"\n")),2&e){var n=p.ɵɵreference(5);p.ɵɵadvance(4),p.ɵɵproperty("appApiAction",t.formPromise),p.ɵɵadvance(6),p.ɵɵtextInterpolate(t.title),p.ɵɵadvance(2),p.ɵɵpropertyInterpolate("appA11yTitle",p.ɵɵpipeBind1(13,10,"close")),p.ɵɵadvance(8),p.ɵɵproperty("ngIf",t.loading),p.ɵɵadvance(2),p.ɵɵproperty("ngIf",!t.loading),p.ɵɵadvance(4),p.ɵɵproperty("disabled",n.loading),p.ɵɵadvance(2),p.ɵɵpropertyInterpolate("title",p.ɵɵpipeBind1(29,12,"loading")),p.ɵɵadvance(4),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(33,14,"save")),p.ɵɵadvance(5),p.ɵɵtextInterpolate(p.ɵɵpipeBind1(38,16,"cancel")),p.ɵɵadvance(5),p.ɵɵproperty("ngIf",t.editMode)}},directives:[y.NgControlStatusGroup,y.NgForm,g.ApiActionDirective,x.A11yTitleDirective,b.NgIf,y.DefaultValueAccessor,y.RequiredValidator,y.NgControlStatus,y.NgModel,b.NgClass,y.RadioControlValueAccessor,b.NgForOf,y.CheckboxControlValueAccessor,S.StopPropDirective],pipes:[w.I18nPipe],encapsulation:2}),e}();t.GroupAddEditComponent=M},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&t[0].status===l.OrganizationUserStatusType.Confirmed&&this.events(t[0]),null!=n&&n.unsubscribe(),[2]})})}),[2]}})})}),[2]})})},e.prototype.load=function(){return r(this,void 0,void 0,function(){var e,t=this;return i(this,function(n){switch(n.label){case 0:return[4,this.apiService.getOrganizationUsers(this.organizationId)];case 1:return e=n.sent(),this.statusMap.clear(),this.allUsers=null!=e.data&&e.data.length>0?e.data:[],this.allUsers.sort(p.Utils.getSortFunction(this.i18nService,"email")),this.allUsers.forEach(function(e){t.statusMap.has(e.status)?t.statusMap.get(e.status).push(e):t.statusMap.set(e.status,[e])}),this.filter(this.status),this.loading=!1,[2]}})})},e.prototype.filter=function(e){this.status=e,null!=this.status?this.users=this.statusMap.get(this.status):this.users=this.allUsers,this.resetPaging()},e.prototype.loadMore=function(){if(this.users&&!(this.users.length<=this.pageSize)){var e=this.pagedUsers.length,t=this.pageSize;0===e&&this.pagedUsersCount>this.pageSize&&(t=this.pagedUsersCount),this.users.length>e&&(this.pagedUsers=this.pagedUsers.concat(this.users.slice(e,e+t))),this.pagedUsersCount=this.pagedUsers.length,this.didScroll=this.pagedUsers.length>this.pageSize}},Object.defineProperty(e.prototype,"allCount",{get:function(){return null!=this.allUsers?this.allUsers.length:0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"invitedCount",{get:function(){return this.statusMap.has(l.OrganizationUserStatusType.Invited)?this.statusMap.get(l.OrganizationUserStatusType.Invited).length:0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"acceptedCount",{get:function(){return this.statusMap.has(l.OrganizationUserStatusType.Accepted)?this.statusMap.get(l.OrganizationUserStatusType.Accepted).length:0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"confirmedCount",{get:function(){return this.statusMap.has(l.OrganizationUserStatusType.Confirmed)?this.statusMap.get(l.OrganizationUserStatusType.Confirmed).length:0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"showConfirmUsers",{get:function(){return null!=this.allUsers&&null!=this.statusMap&&this.allUsers.length>1&&this.confirmedCount>0&&this.confirmedCount<3&&this.acceptedCount>0},enumerable:!0,configurable:!0}),e.prototype.edit=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(u.ModalComponent);this.modal=this.addEditModalRef.createComponent(n).instance;var r=this.modal.show(m.UserAddEditComponent,this.addEditModalRef);r.name=null!=e?e.name||e.email:null,r.organizationId=this.organizationId,r.organizationUserId=null!=e?e.id:null,r.onSavedUser.subscribe(function(){t.modal.close(),t.load()}),r.onDeletedUser.subscribe(function(){t.modal.close(),t.removeUser(e)}),this.modal.onClosed.subscribe(function(){t.modal=null})},e.prototype.invite=function(){this.edit(null)},e.prototype.groups=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(u.ModalComponent);this.modal=this.groupsModalRef.createComponent(n).instance;var r=this.modal.show(f.UserGroupsComponent,this.groupsModalRef);r.name=null!=e?e.name||e.email:null,r.organizationId=this.organizationId,r.organizationUserId=null!=e?e.id:null,r.onSavedUser.subscribe(function(){t.modal.close()}),this.modal.onClosed.subscribe(function(){t.modal=null})},e.prototype.remove=function(e){return r(this,void 0,void 0,function(){return i(this,function(t){switch(t.label){case 0:return[4,this.platformUtilsService.showDialog(this.i18nService.t("removeUserConfirmation"),e.name||e.email,this.i18nService.t("yes"),this.i18nService.t("no"),"warning")];case 1:if(!t.sent())return[2,!1];t.label=2;case 2:return t.trys.push([2,4,,5]),[4,this.apiService.deleteOrganizationUser(this.organizationId,e.id)];case 3:return t.sent(),this.analytics.eventTrack.next({action:"Deleted User"}),this.toasterService.popAsync("success",null,this.i18nService.t("removedUserId",e.name||e.email)),this.removeUser(e),[3,5];case 4:return t.sent(),[3,5];case 5:return[2]}})})},e.prototype.reinvite=function(e){return r(this,void 0,void 0,function(){return i(this,function(t){switch(t.label){case 0:return null!=this.actionPromise?[2]:(this.actionPromise=this.apiService.postOrganizationUserReinvite(this.organizationId,e.id),[4,this.actionPromise]);case 1:return t.sent(),this.analytics.eventTrack.next({action:"Reinvited User"}),this.toasterService.popAsync("success",null,this.i18nService.t("hasBeenReinvited",e.name||e.email)),this.actionPromise=null,[2]}})})},e.prototype.confirm=function(e){return r(this,void 0,void 0,function(){function t(t){e.status=l.OrganizationUserStatusType.Confirmed;var n=t.statusMap.get(l.OrganizationUserStatusType.Accepted).indexOf(e);n>-1&&(t.statusMap.get(l.OrganizationUserStatusType.Accepted).splice(n,1),t.statusMap.get(l.OrganizationUserStatusType.Confirmed).push(e))}var n,r,a,s=this;return i(this,function(i){switch(i.label){case 0:return null!=this.actionPromise?[2]:[4,this.storageService.get(o.ConstantsService.autoConfirmFingerprints)];case 1:return null!=(n=i.sent())&&n?(this.actionPromise=this.doConfirmation(e),[4,this.actionPromise]):(null!=this.modal&&this.modal.close(),r=this.componentFactoryResolver.resolveComponentFactory(u.ModalComponent),this.modal=this.confirmModalRef.createComponent(r).instance,(a=this.modal.show(h.UserConfirmComponent,this.confirmModalRef)).name=null!=e?e.name||e.email:null,a.organizationId=this.organizationId,a.organizationUserId=null!=e?e.id:null,a.userId=null!=e?e.userId:null,a.onConfirmedUser.subscribe(function(){s.modal.close(),t(s)}),this.modal.onClosed.subscribe(function(){s.modal=null}),[2]);case 2:return i.sent(),t(this),this.analytics.eventTrack.next({action:"Confirmed User"}),this.toasterService.popAsync("success",null,this.i18nService.t("hasBeenConfirmed",e.name||e.email)),this.actionPromise=null,[2]}})})},e.prototype.events=function(e){return r(this,void 0,void 0,function(){var t,n,r=this;return i(this,function(i){return null!=this.modal&&this.modal.close(),t=this.componentFactoryResolver.resolveComponentFactory(u.ModalComponent),this.modal=this.eventsModalRef.createComponent(t).instance,(n=this.modal.show(d.EntityEventsComponent,this.eventsModalRef)).name=e.name||e.email,n.organizationId=this.organizationId,n.entityId=e.id,n.showUser=!1,n.entity="user",this.modal.onClosed.subscribe(function(){r.modal=null}),[2]})})},e.prototype.resetPaging=function(){return r(this,void 0,void 0,function(){return i(this,function(e){return this.pagedUsers=[],this.loadMore(),[2]})})},e.prototype.isSearching=function(){return this.searchService.isSearchable(this.searchText)},e.prototype.isPaging=function(){var e=this.isSearching();return e&&this.didScroll&&this.resetPaging(),!e&&this.users&&this.users.length>this.pageSize},e.prototype.doConfirmation=function(e){return r(this,void 0,void 0,function(){var t,n,r,a,o,l,c,u;return i(this,function(i){switch(i.label){case 0:return[4,this.cryptoService.getOrgKey(this.organizationId)];case 1:return t=i.sent(),[4,this.apiService.getUserPublicKey(e.userId)];case 2:n=i.sent(),r=p.Utils.fromB64ToArray(n.publicKey),i.label=3;case 3:return i.trys.push([3,5,,6]),o=(a=console).log,l="User's fingerprint: ",[4,this.cryptoService.getFingerprint(e.userId,r.buffer)];case 4:return o.apply(a,[l+i.sent().join("-")]),[3,6];case 5:return i.sent(),[3,6];case 6:return[4,this.cryptoService.rsaEncrypt(t.key,r.buffer)];case 7:return c=i.sent(),(u=new s.OrganizationUserConfirmRequest).key=c.encryptedString,[4,this.apiService.postOrganizationUserConfirm(this.organizationId,e.id,u)];case 8:return i.sent(),[2]}})})},e.prototype.removeUser=function(e){var t=this.users.indexOf(e);t>-1&&(this.users.splice(t,1),this.resetPaging()),this.statusMap.has(l.OrganizationUserStatusType.Accepted)&&(t=this.statusMap.get(l.OrganizationUserStatusType.Accepted).indexOf(e))>-1&&this.statusMap.get(l.OrganizationUserStatusType.Accepted).splice(t,1),this.statusMap.has(l.OrganizationUserStatusType.Invited)&&(t=this.statusMap.get(l.OrganizationUserStatusType.Invited).indexOf(e))>-1&&this.statusMap.get(l.OrganizationUserStatusType.Invited).splice(t,1),this.statusMap.has(l.OrganizationUserStatusType.Confirmed)&&(t=this.statusMap.get(l.OrganizationUserStatusType.Confirmed).indexOf(e))>-1&&this.statusMap.get(l.OrganizationUserStatusType.Confirmed).splice(t,1)},e.ɵfac=function(t){return new(t||e)(v.ɵɵdirectiveInject(y.ApiService),v.ɵɵdirectiveInject(g.ActivatedRoute),v.ɵɵdirectiveInject(x.I18nService),v.ɵɵdirectiveInject(v.ComponentFactoryResolver),v.ɵɵdirectiveInject(b.PlatformUtilsService),v.ɵɵdirectiveInject(S.Angulartics2),v.ɵɵdirectiveInject(w.ToasterService),v.ɵɵdirectiveInject(C.CryptoService),v.ɵɵdirectiveInject(I.UserService),v.ɵɵdirectiveInject(g.Router),v.ɵɵdirectiveInject(E.StorageService),v.ɵɵdirectiveInject(P.SearchService))},e.ɵcmp=v.ɵɵdefineComponent({type:e,selectors:[["app-org-people"]],viewQuery:function(e,t){var n;(1&e&&(v.ɵɵstaticViewQuery(j,!0,a.ViewContainerRef),v.ɵɵstaticViewQuery(R,!0,a.ViewContainerRef),v.ɵɵstaticViewQuery(F,!0,a.ViewContainerRef),v.ɵɵstaticViewQuery(U,!0,a.ViewContainerRef)),2&e)&&(v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.addEditModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.groupsModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.eventsModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.confirmModalRef=n.first))},decls:64,vars:45,consts:[[1,"page-header","d-flex"],[1,"ml-auto","d-flex"],["role","group",1,"btn-group","btn-group-sm"],["type","button",1,"btn","btn-outline-secondary",3,"ngClass","click"],["class","badge badge-pill badge-info",4,"ngIf"],["class","badge badge-pill badge-warning",4,"ngIf"],[1,"ml-3"],["for","search",1,"sr-only"],["type","search","id","search",1,"form-control","form-control-sm",3,"placeholder","ngModel","ngModelChange"],["type","button",1,"btn","btn-sm","btn-outline-primary","ml-3",3,"click"],["aria-hidden","true",1,"fa","fa-plus","fa-fw"],[4,"ngIf"],["addEdit",""],["groupsTemplate",""],["eventsTemplate",""],["confirmTemplate",""],[1,"badge","badge-pill","badge-info"],[1,"badge","badge-pill","badge-warning"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],["type","info","icon","fa-check-circle",3,"title",4,"ngIf"],["infiniteScroll","",1,"table","table-hover","table-list",3,"infiniteScrollDistance","infiniteScrollDisabled","scrolled"],[4,"ngFor","ngForOf"],["type","info","icon","fa-check-circle",3,"title"],["width","30"],["size","25",3,"data","email","circle","fontSize"],["href","#","appStopClick","",3,"click"],["class","badge badge-secondary",4,"ngIf"],["class","badge badge-warning",4,"ngIf"],["class","text-muted d-block",4,"ngIf"],[1,"table-list-options"],["appListDropdown","",1,"dropdown"],["type","button","data-toggle","dropdown","aria-haspopup","true","aria-expanded","false",1,"btn","btn-outline-secondary","dropdown-toggle",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-cog","fa-lg"],[1,"dropdown-menu","dropdown-menu-right"],["class","dropdown-item","href","#","appStopClick","",3,"click",4,"ngIf"],["class","dropdown-item text-success","href","#","appStopClick","",3,"click",4,"ngIf"],["href","#","appStopClick","",1,"dropdown-item","text-danger",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-remove"],[1,"badge","badge-secondary"],[1,"badge","badge-warning"],[1,"text-muted","d-block"],["aria-hidden","true",1,"fa","fa-lock",3,"title"],["href","#","appStopClick","",1,"dropdown-item",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-envelope-o"],["href","#","appStopClick","",1,"dropdown-item","text-success",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-check"],["aria-hidden","true",1,"fa","fa-fw","fa-sitemap"],["aria-hidden","true",1,"fa","fa-fw","fa-file-text-o"]],template:function(e,t){1&e&&(v.ɵɵelementStart(0,"div",0),v.ɵɵtext(1,"\n "),v.ɵɵelementStart(2,"h1"),v.ɵɵtext(3),v.ɵɵpipe(4,"i18n"),v.ɵɵelementEnd(),v.ɵɵtext(5,"\n "),v.ɵɵelementStart(6,"div",1),v.ɵɵtext(7,"\n "),v.ɵɵelementStart(8,"div",2),v.ɵɵtext(9,"\n "),v.ɵɵelementStart(10,"button",3),v.ɵɵlistener("click",function(){return t.filter(null)}),v.ɵɵtext(11),v.ɵɵpipe(12,"i18n"),v.ɵɵtemplate(13,N,2,1,"span",4),v.ɵɵtext(14,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(15,"\n "),v.ɵɵelementStart(16,"button",3),v.ɵɵlistener("click",function(){return t.filter(t.organizationUserStatusType.Invited)}),v.ɵɵtext(17),v.ɵɵpipe(18,"i18n"),v.ɵɵtemplate(19,z,2,1,"span",4),v.ɵɵtext(20,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(21,"\n "),v.ɵɵelementStart(22,"button",3),v.ɵɵlistener("click",function(){return t.filter(t.organizationUserStatusType.Accepted)}),v.ɵɵtext(23),v.ɵɵpipe(24,"i18n"),v.ɵɵtemplate(25,L,2,1,"span",5),v.ɵɵtext(26,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(27,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(28,"\n "),v.ɵɵelementStart(29,"div",6),v.ɵɵtext(30,"\n "),v.ɵɵelementStart(31,"label",7),v.ɵɵtext(32),v.ɵɵpipe(33,"i18n"),v.ɵɵelementEnd(),v.ɵɵtext(34,"\n "),v.ɵɵelementStart(35,"input",8),v.ɵɵlistener("ngModelChange",function(e){return t.searchText=e}),v.ɵɵpipe(36,"i18n"),v.ɵɵelementEnd(),v.ɵɵtext(37,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(38,"\n "),v.ɵɵelementStart(39,"button",9),v.ɵɵlistener("click",function(){return t.invite()}),v.ɵɵtext(40,"\n "),v.ɵɵelement(41,"i",10),v.ɵɵtext(42),v.ɵɵpipe(43,"i18n"),v.ɵɵelementEnd(),v.ɵɵtext(44,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(45,"\n"),v.ɵɵelementEnd(),v.ɵɵtext(46,"\n"),v.ɵɵtemplate(47,G,9,6,"ng-container",11),v.ɵɵtext(48,"\n"),v.ɵɵtemplate(49,se,6,2,"ng-container",11),v.ɵɵpipe(50,"search"),v.ɵɵtext(51,"\n"),v.ɵɵtemplate(52,le,0,0,"ng-template",null,12,v.ɵɵtemplateRefExtractor),v.ɵɵtext(54,"\n"),v.ɵɵtemplate(55,ce,0,0,"ng-template",null,13,v.ɵɵtemplateRefExtractor),v.ɵɵtext(57,"\n"),v.ɵɵtemplate(58,pe,0,0,"ng-template",null,14,v.ɵɵtemplateRefExtractor),v.ɵɵtext(60,"\n"),v.ɵɵtemplate(61,ue,0,0,"ng-template",null,15,v.ɵɵtemplateRefExtractor),v.ɵɵtext(63,"\n")),2&e&&(v.ɵɵadvance(3),v.ɵɵtextInterpolate(v.ɵɵpipeBind1(4,16,"people")),v.ɵɵadvance(7),v.ɵɵproperty("ngClass",v.ɵɵpureFunction1(36,de,null==t.status)),v.ɵɵadvance(1),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(12,18,"all"),"\n "),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",t.allCount),v.ɵɵadvance(3),v.ɵɵproperty("ngClass",v.ɵɵpureFunction1(38,de,t.status==t.organizationUserStatusType.Invited)),v.ɵɵadvance(1),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(18,20,"invited"),"\n "),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",t.invitedCount),v.ɵɵadvance(3),v.ɵɵproperty("ngClass",v.ɵɵpureFunction1(40,de,t.status==t.organizationUserStatusType.Accepted)),v.ɵɵadvance(1),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(24,22,"accepted"),"\n "),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",t.acceptedCount),v.ɵɵadvance(7),v.ɵɵtextInterpolate(v.ɵɵpipeBind1(33,24,"search")),v.ɵɵadvance(3),v.ɵɵpropertyInterpolate("placeholder",v.ɵɵpipeBind1(36,26,"search")),v.ɵɵproperty("ngModel",t.searchText),v.ɵɵadvance(7),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(43,28,"inviteUser"),"\n "),v.ɵɵadvance(5),v.ɵɵproperty("ngIf",t.loading),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",!t.loading&&(t.isPaging()?t.pagedUsers:v.ɵɵpipeBindV(50,30,v.ɵɵpureFunction2(42,me,t.users,t.searchText)))))},directives:[k.NgClass,k.NgIf,_.DefaultValueAccessor,_.NgControlStatus,_.NgModel,A.InfiniteScrollDirective,k.NgForOf,O.CalloutComponent,T.AvatarComponent,M.StopClickDirective,B.A11yTitleDirective],pipes:[D.I18nPipe,V.SearchPipe],encapsulation:2}),e}();t.PeopleComponent=he},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.OrganizationUserConfirmRequest=r},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&(n[0].checked=!0,n[0].readOnly=e.readOnly,n[0].hidePasswords=e.hidePasswords)}),[3,5];case 4:return n.sent(),[3,5];case 5:return[3,7];case 6:this.title=this.i18nService.t("inviteUser"),n.label=7;case 7:return this.loading=!1,[2]}})})},e.prototype.loadCollections=function(){return r(this,void 0,void 0,function(){var e,t,n;return i(this,function(r){switch(r.label){case 0:return[4,this.apiService.getCollections(this.organizationId)];case 1:return e=r.sent(),t=e.data.map(function(e){return new s.Collection(new o.CollectionData(e))}),n=this,[4,this.collectionService.decryptMany(t)];case 2:return n.collections=r.sent(),[2]}})})},e.prototype.check=function(e,t){e.checked=null==t?!e.checked:t,e.checked||(e.readOnly=!1)},e.prototype.selectAll=function(e){var t=this;this.collections.forEach(function(n){return t.check(n,e)})},e.prototype.setRequestPermissions=function(e,t){return e.accessBusinessPortal=!t&&this.permissions.accessBusinessPortal,e.accessEventLogs=this.permissions.accessEventLogs=!t&&this.permissions.accessEventLogs,e.accessImportExport=!t&&this.permissions.accessImportExport,e.accessReports=!t&&this.permissions.accessReports,e.manageAllCollections=!t&&this.permissions.manageAllCollections,e.manageAssignedCollections=!t&&this.permissions.manageAssignedCollections,e.manageGroups=!t&&this.permissions.manageGroups,e.manageSso=!t&&this.permissions.manageSso,e.managePolicies=!t&&this.permissions.managePolicies,e.manageUsers=!t&&this.permissions.manageUsers,e},e.prototype.submit=function(){var e,t;return r(this,void 0,void 0,function(){var n,r;return i(this,function(i){switch(i.label){case 0:n=null,"all"!==this.access&&(n=this.collections.filter(function(e){return e.checked}).map(function(e){return new p.SelectionReadOnlyRequest(e.id,!!e.readOnly,!!e.hidePasswords)})),i.label=1;case 1:return i.trys.push([1,3,,4]),this.editMode?((r=new c.OrganizationUserUpdateRequest).accessAll="all"===this.access,r.type=this.type,r.collections=n,r.permissions=this.setRequestPermissions(null!==(e=r.permissions)&&void 0!==e?e:new d.PermissionsApi,r.type!==u.OrganizationUserType.Custom),this.formPromise=this.apiService.putOrganizationUser(this.organizationId,this.organizationUserId,r)):((r=new l.OrganizationUserInviteRequest).emails=this.emails.trim().split(/\s*,\s*/),r.accessAll="all"===this.access,r.type=this.type,r.permissions=this.setRequestPermissions(null!==(t=r.permissions)&&void 0!==t?t:new d.PermissionsApi,r.type!==u.OrganizationUserType.Custom),r.collections=n,this.formPromise=this.apiService.postOrganizationUserInvite(this.organizationId,r)),[4,this.formPromise];case 2:return i.sent(),this.analytics.eventTrack.next({action:this.editMode?"Edited User":"Invited User"}),this.toasterService.popAsync("success",null,this.i18nService.t(this.editMode?"editedUserId":"invitedUsers",this.name)),this.onSavedUser.emit(),[3,4];case 3:return i.sent(),[3,4];case 4:return[2]}})})},e.prototype.delete=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.editMode?[4,this.platformUtilsService.showDialog(this.i18nService.t("removeUserConfirmation"),this.name,this.i18nService.t("yes"),this.i18nService.t("no"),"warning")]:[2];case 1:if(!e.sent())return[2,!1];e.label=2;case 2:return e.trys.push([2,4,,5]),this.deletePromise=this.apiService.deleteOrganizationUser(this.organizationId,this.organizationUserId),[4,this.deletePromise];case 3:return e.sent(),this.analytics.eventTrack.next({action:"Deleted User"}),this.toasterService.popAsync("success",null,this.i18nService.t("removedUserId",this.name)),this.onDeletedUser.emit(),[3,5];case 4:return e.sent(),[3,5];case 5:return[2]}})})},e.ɵfac=function(t){return new(t||e)(m.ɵɵdirectiveInject(h.ApiService),m.ɵɵdirectiveInject(f.I18nService),m.ɵɵdirectiveInject(v.Angulartics2),m.ɵɵdirectiveInject(y.ToasterService),m.ɵɵdirectiveInject(g.CollectionService),m.ɵɵdirectiveInject(x.PlatformUtilsService))},e.ɵcmp=m.ɵɵdefineComponent({type:e,selectors:[["app-user-add-edit"]],inputs:{name:"name",organizationUserId:"organizationUserId",organizationId:"organizationId"},outputs:{onSavedUser:"onSavedUser",onDeletedUser:"onDeletedUser"},decls:51,vars:19,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","userAddEditTitle",1,"modal","fade"],["role","document",1,"modal-dialog","modal-lg"],["ngNativeValidate","",1,"modal-content",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-header"],["id","userAddEditTitle",1,"modal-title"],["class","text-muted",4,"ngIf"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],["class","modal-body",4,"ngIf"],[1,"modal-footer"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],[1,"ml-auto"],["type","button","class","btn btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click",4,"ngIf"],[1,"text-muted"],[1,"modal-body"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[4,"ngIf"],["target","_blank","rel","noopener","href","https://bitwarden.com/help/article/user-types-access-control/#user-types",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-question-circle-o"],[1,"form-check","mt-2","form-check-block"],["type","radio","name","userType","id","userTypeUser",1,"form-check-input",3,"value","ngModel","ngModelChange"],["for","userTypeUser",1,"form-check-label"],["type","radio","name","userType","id","userTypeManager",1,"form-check-input",3,"value","ngModel","ngModelChange"],["for","userTypeManager",1,"form-check-label"],["type","radio","name","userType","id","userTypeAdmin",1,"form-check-input",3,"value","ngModel","ngModelChange"],["for","userTypeAdmin",1,"form-check-label"],["type","radio","name","userType","id","userTypeOwner",1,"form-check-input",3,"value","ngModel","ngModelChange"],["for","userTypeOwner",1,"form-check-label"],["type","radio","name","userType","id","userTypeCustom",1,"form-check-input",3,"value","ngModel","ngModelChange"],["for","userTypeCustom",1,"form-check-label"],[1,"mt-4","d-flex"],[1,"mb-3"],["target","_blank","rel","noopener","href","https://bitwarden.com/help/article/user-types-access-control/#access-control",3,"appA11yTitle"],["class","ml-auto",4,"ngIf"],[1,"form-group",3,"ngClass"],[1,"form-check"],["type","radio","name","access","id","accessAll","value","all",1,"form-check-input",3,"ngModel","ngModelChange"],["for","accessAll",1,"form-check-label"],["type","radio","name","access","id","accessSelected","value","selected",1,"form-check-input",3,"ngModel","ngModelChange"],["for","accessSelected",1,"form-check-label"],[1,"form-group","mb-4"],["for","emails"],["id","emails","type","text","name","Emails","required","","appAutoFocus","",1,"form-control",3,"ngModel","ngModelChange"],[1,"row"],[1,"col-6"],[1,"font-weight-bold","mb-0"],[1,"my-0","mr-2"],[1,"form-group","mb-0"],[1,"form-check","mt-1","form-check-block"],["type","checkbox","name","manageAssignedCollections","id","manageAssignedCollections",1,"form-check-input",3,"ngModel","ngModelChange"],["for","manageAssignedCollections",1,"form-check-label","font-weight-normal"],["type","checkbox","name","accessBusinessPortal","id","accessBusinessPortal",1,"form-check-input",3,"ngModel","ngModelChange"],["for","accessBusinessPortal",1,"form-check-label","font-weight-normal"],["type","checkbox","name","accessEventLogs","id","accessEventLogs",1,"form-check-input",3,"ngModel","ngModelChange"],["for","accessEventLogs",1,"form-check-label","font-weight-normal"],["type","checkbox","name","accessImportExport","id","accessImportExport",1,"form-check-input",3,"ngModel","ngModelChange"],["for","accessImportExport",1,"form-check-label","font-weight-normal"],["type","checkbox","name","accessReports","id","accessReports",1,"form-check-input",3,"ngModel","ngModelChange"],["for","accessReports",1,"form-check-label","font-weight-normal"],["type","checkbox","name","manageAllCollections","id","manageAllCollections",1,"form-check-input",3,"ngModel","ngModelChange"],["for","manageAllCollections",1,"form-check-label","font-weight-normal"],["type","checkbox","name","manageGroups","id","manageGroups",1,"form-check-input",3,"ngModel","ngModelChange"],["for","manageGroups",1,"form-check-label","font-weight-normal"],["type","checkbox","name","manageSso","id","managePolicies",1,"form-check-input",3,"ngModel","ngModelChange"],["for","manageSso",1,"form-check-label","font-weight-normal"],["type","checkbox","name","managePolicies","id","managePolicies",1,"form-check-input",3,"ngModel","ngModelChange"],["for","managePolicies",1,"form-check-label","font-weight-normal"],["type","checkbox","name","manageUsers","id","manageUsers",1,"form-check-input",3,"ngModel","ngModelChange"],["for","manageUsers",1,"form-check-label","font-weight-normal"],["type","button",1,"btn","btn-link","btn-sm","py-0",3,"click"],["class","table table-hover table-list mb-0",4,"ngIf"],[1,"table","table-hover","table-list","mb-0"],["width","100",1,"text-center"],[4,"ngFor","ngForOf"],[1,"table-list-checkbox",3,"click"],["type","checkbox","appStopProp","",3,"ngModel","name","ngModelChange"],[3,"click"],[1,"text-center"],["type","checkbox",3,"ngModel","name","disabled","ngModelChange"],["type","button",1,"btn","btn-outline-danger",3,"appA11yTitle","disabled","appApiAction","click"],["deleteBtn",""],["aria-hidden","true",1,"fa","fa-trash-o","fa-lg","fa-fw",3,"hidden"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","fa-lg","fa-fw",3,"hidden","title"]],template:function(e,t){if(1&e&&(m.ɵɵelementStart(0,"div",0),m.ɵɵtext(1,"\n "),m.ɵɵelementStart(2,"div",1),m.ɵɵtext(3,"\n "),m.ɵɵelementStart(4,"form",2,3),m.ɵɵlistener("ngSubmit",function(){return t.submit()}),m.ɵɵtext(6,"\n "),m.ɵɵelementStart(7,"div",4),m.ɵɵtext(8,"\n "),m.ɵɵelementStart(9,"h2",5),m.ɵɵtext(10),m.ɵɵtemplate(11,P,2,1,"small",6),m.ɵɵtext(12,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(13,"\n "),m.ɵɵelementStart(14,"button",7),m.ɵɵpipe(15,"i18n"),m.ɵɵtext(16,"\n "),m.ɵɵelementStart(17,"span",8),m.ɵɵtext(18,"×"),m.ɵɵelementEnd(),m.ɵɵtext(19,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(20,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(21,"\n "),m.ɵɵtemplate(22,k,9,6,"div",9),m.ɵɵtext(23,"\n "),m.ɵɵtemplate(24,j,119,67,"div",9),m.ɵɵtext(25,"\n "),m.ɵɵelementStart(26,"div",10),m.ɵɵtext(27,"\n "),m.ɵɵelementStart(28,"button",11),m.ɵɵtext(29,"\n "),m.ɵɵelement(30,"i",12),m.ɵɵpipe(31,"i18n"),m.ɵɵtext(32,"\n "),m.ɵɵelementStart(33,"span"),m.ɵɵtext(34),m.ɵɵpipe(35,"i18n"),m.ɵɵelementEnd(),m.ɵɵtext(36,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(37,"\n "),m.ɵɵelementStart(38,"button",13),m.ɵɵtext(39),m.ɵɵpipe(40,"i18n"),m.ɵɵelementEnd(),m.ɵɵtext(41,"\n "),m.ɵɵelementStart(42,"div",14),m.ɵɵtext(43,"\n "),m.ɵɵtemplate(44,R,9,10,"button",15),m.ɵɵtext(45,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(46,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(47,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(48,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(49,"\n"),m.ɵɵelementEnd(),m.ɵɵtext(50,"\n")),2&e){var n=m.ɵɵreference(5);m.ɵɵadvance(4),m.ɵɵproperty("appApiAction",t.formPromise),m.ɵɵadvance(6),m.ɵɵtextInterpolate1("\n ",t.title,"\n "),m.ɵɵadvance(1),m.ɵɵproperty("ngIf",t.name),m.ɵɵadvance(3),m.ɵɵpropertyInterpolate("appA11yTitle",m.ɵɵpipeBind1(15,11,"close")),m.ɵɵadvance(8),m.ɵɵproperty("ngIf",t.loading),m.ɵɵadvance(2),m.ɵɵproperty("ngIf",!t.loading),m.ɵɵadvance(4),m.ɵɵproperty("disabled",n.loading),m.ɵɵadvance(2),m.ɵɵpropertyInterpolate("title",m.ɵɵpipeBind1(31,13,"loading")),m.ɵɵadvance(4),m.ɵɵtextInterpolate(m.ɵɵpipeBind1(35,15,"save")),m.ɵɵadvance(5),m.ɵɵtextInterpolate(m.ɵɵpipeBind1(40,17,"cancel")),m.ɵɵadvance(5),m.ɵɵproperty("ngIf",t.editMode)}},directives:[b.NgControlStatusGroup,b.NgForm,S.ApiActionDirective,w.NgIf,C.A11yTitleDirective,b.RadioControlValueAccessor,b.DefaultValueAccessor,b.NgControlStatus,b.NgModel,w.NgClass,b.RequiredValidator,b.CheckboxControlValueAccessor,w.NgForOf,I.StopPropDirective],pipes:[E.I18nPipe],encapsulation:2}),e}();t.UserAddEditComponent=F},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&(t[0].checked=!0)}),[3,5];case 4:return i.sent(),[3,5];case 5:return this.loading=!1,[2]}})})},e.prototype.check=function(e,t){e.checked=null==t?!e.checked:t,e.checked||(e.readOnly=!1)},e.prototype.selectAll=function(e){var t=this;this.groups.forEach(function(n){return t.check(n,e)})},e.prototype.submit=function(){return r(this,void 0,void 0,function(){var e;return i(this,function(t){switch(t.label){case 0:(e=new o.OrganizationUserUpdateGroupsRequest).groupIds=this.groups.filter(function(e){return e.checked}).map(function(e){return e.id}),t.label=1;case 1:return t.trys.push([1,3,,4]),this.formPromise=this.apiService.putOrganizationUserGroups(this.organizationId,this.organizationUserId,e),[4,this.formPromise];case 2:return t.sent(),this.analytics.eventTrack.next({action:"Edited User Groups"}),this.toasterService.popAsync("success",null,this.i18nService.t("editedGroupsForUser",this.name)),this.onSavedUser.emit(),[3,4];case 3:return t.sent(),[3,4];case 4:return[2]}})})},e.ɵfac=function(t){return new(t||e)(l.ɵɵdirectiveInject(c.ApiService),l.ɵɵdirectiveInject(p.I18nService),l.ɵɵdirectiveInject(u.Angulartics2),l.ɵɵdirectiveInject(d.ToasterService))},e.ɵcmp=l.ɵɵdefineComponent({type:e,selectors:[["app-user-groups"]],inputs:{name:"name",organizationUserId:"organizationUserId",organizationId:"organizationId"},outputs:{onSavedUser:"onSavedUser"},decls:47,vars:20,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","groupAccessTitle",1,"modal","fade"],["role","document",1,"modal-dialog"],[1,"modal-content",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-header"],["id","groupAccessTitle",1,"modal-title"],["class","text-muted",4,"ngIf"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],["class","modal-body",4,"ngIf"],[1,"modal-footer"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],[1,"text-muted"],[1,"modal-body"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[4,"ngIf"],["class","table table-hover table-list mb-0",4,"ngIf"],[1,"table","table-hover","table-list","mb-0"],[4,"ngFor","ngForOf"],[1,"table-list-checkbox",3,"click"],["type","checkbox","appStopProp","",3,"ngModel","name","ngModelChange"],[3,"click"]],template:function(e,t){if(1&e&&(l.ɵɵelementStart(0,"div",0),l.ɵɵtext(1,"\n "),l.ɵɵelementStart(2,"div",1),l.ɵɵtext(3,"\n "),l.ɵɵelementStart(4,"form",2,3),l.ɵɵlistener("ngSubmit",function(){return t.submit()}),l.ɵɵtext(6,"\n "),l.ɵɵelementStart(7,"div",4),l.ɵɵtext(8,"\n "),l.ɵɵelementStart(9,"h2",5),l.ɵɵtext(10),l.ɵɵpipe(11,"i18n"),l.ɵɵtemplate(12,x,2,1,"small",6),l.ɵɵtext(13,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(14,"\n "),l.ɵɵelementStart(15,"button",7),l.ɵɵpipe(16,"i18n"),l.ɵɵtext(17,"\n "),l.ɵɵelementStart(18,"span",8),l.ɵɵtext(19,"×"),l.ɵɵelementEnd(),l.ɵɵtext(20,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(21,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(22,"\n "),l.ɵɵtemplate(23,b,9,6,"div",9),l.ɵɵtext(24,"\n "),l.ɵɵtemplate(25,I,10,5,"div",9),l.ɵɵtext(26,"\n "),l.ɵɵelementStart(27,"div",10),l.ɵɵtext(28,"\n "),l.ɵɵelementStart(29,"button",11),l.ɵɵtext(30,"\n "),l.ɵɵelement(31,"i",12),l.ɵɵpipe(32,"i18n"),l.ɵɵtext(33,"\n "),l.ɵɵelementStart(34,"span"),l.ɵɵtext(35),l.ɵɵpipe(36,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(37,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(38,"\n "),l.ɵɵelementStart(39,"button",13),l.ɵɵtext(40),l.ɵɵpipe(41,"i18n"),l.ɵɵelementEnd(),l.ɵɵtext(42,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(43,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(44,"\n "),l.ɵɵelementEnd(),l.ɵɵtext(45,"\n"),l.ɵɵelementEnd(),l.ɵɵtext(46,"\n")),2&e){var n=l.ɵɵreference(5);l.ɵɵadvance(4),l.ɵɵproperty("appApiAction",t.formPromise),l.ɵɵadvance(6),l.ɵɵtextInterpolate1("\n ",l.ɵɵpipeBind1(11,10,"groupAccess"),"\n "),l.ɵɵadvance(2),l.ɵɵproperty("ngIf",t.name),l.ɵɵadvance(3),l.ɵɵpropertyInterpolate("appA11yTitle",l.ɵɵpipeBind1(16,12,"close")),l.ɵɵadvance(8),l.ɵɵproperty("ngIf",t.loading),l.ɵɵadvance(2),l.ɵɵproperty("ngIf",!t.loading),l.ɵɵadvance(4),l.ɵɵproperty("disabled",n.loading),l.ɵɵadvance(2),l.ɵɵpropertyInterpolate("title",l.ɵɵpipeBind1(32,14,"loading")),l.ɵɵadvance(4),l.ɵɵtextInterpolate(l.ɵɵpipeBind1(36,16,"save")),l.ɵɵadvance(5),l.ɵɵtextInterpolate(l.ɵɵpipeBind1(41,18,"cancel"))}},directives:[m.ɵangular_packages_forms_forms_y,m.NgControlStatusGroup,m.NgForm,h.ApiActionDirective,f.NgIf,v.A11yTitleDirective,f.NgForOf,m.CheckboxControlValueAccessor,y.StopPropDirective,m.NgControlStatus,m.NgModel],pipes:[g.I18nPipe],encapsulation:2}),e}();t.UserGroupsComponent=E},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0?e.data:[],this.orgPolicies.forEach(function(e){t.policiesEnabledMap.set(e.type,e.enabled)}),this.policies.forEach(function(e){e.enabled=t.policiesEnabledMap.has(e.type)&&t.policiesEnabledMap.get(e.type)}),this.loading=!1,[2]}})})},e.prototype.edit=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(s.ModalComponent);this.modal=this.editModalRef.createComponent(n).instance;var r=this.modal.show(l.PolicyEditComponent,this.editModalRef);r.name=e.name,r.description=e.description,r.type=e.type,r.organizationId=this.organizationId,r.policiesEnabledMap=this.policiesEnabledMap,r.onSavedPolicy.subscribe(function(){t.modal.close(),t.load()}),this.modal.onClosed.subscribe(function(){t.modal=null})},e.prototype.goToEnterprisePortal=function(){return r(this,void 0,void 0,function(){var e,t;return i(this,function(n){switch(n.label){case 0:if(null!=this.enterpriseTokenPromise)return[2];n.label=1;case 1:return n.trys.push([1,5,,6]),this.enterpriseTokenPromise=this.apiService.getEnterprisePortalSignInToken(),[4,this.enterpriseTokenPromise];case 2:return null==(e=n.sent())?[3,4]:[4,this.userService.getUserId()];case 3:t=n.sent(),this.platformUtilsService.launchUri(this.enterpriseUrl+"/login?userId="+t+"&token="+window.encodeURIComponent(e)+"&organizationId="+this.organizationId),n.label=4;case 4:return[3,6];case 5:return n.sent(),[3,6];case 6:return this.enterpriseTokenPromise=null,[2]}})})},e.ɵfac=function(t){return new(t||e)(c.ɵɵdirectiveInject(p.ApiService),c.ɵɵdirectiveInject(u.ActivatedRoute),c.ɵɵdirectiveInject(d.I18nService),c.ɵɵdirectiveInject(c.ComponentFactoryResolver),c.ɵɵdirectiveInject(m.PlatformUtilsService),c.ɵɵdirectiveInject(h.UserService),c.ɵɵdirectiveInject(u.Router),c.ɵɵdirectiveInject(f.EnvironmentService))},e.ɵcmp=c.ɵɵdefineComponent({type:e,selectors:[["app-org-policies"]],viewQuery:function(e,t){var n;(1&e&&c.ɵɵstaticViewQuery(b,!0,a.ViewContainerRef),2&e)&&(c.ɵɵqueryRefresh(n=c.ɵɵloadQuery())&&(t.editModalRef=n.first))},decls:16,vars:6,consts:[[3,"type",4,"ngIf"],[1,"page-header","d-flex"],[4,"ngIf"],["class","table table-hover table-list",4,"ngIf"],["editTemplate",""],[3,"type"],["type","button",1,"btn","btn-outline-secondary",3,"click"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],[1,"table","table-hover","table-list"],[4,"ngFor","ngForOf"],["href","#","appStopClick","",3,"click"],["class","badge badge-success",4,"ngIf"],[1,"text-muted","d-block"],[1,"badge","badge-success"]],template:function(e,t){1&e&&(c.ɵɵtemplate(0,S,10,7,"app-callout",0),c.ɵɵtext(1,"\n"),c.ɵɵelementStart(2,"div",1),c.ɵɵtext(3,"\n "),c.ɵɵelementStart(4,"h1"),c.ɵɵtext(5),c.ɵɵpipe(6,"i18n"),c.ɵɵelementEnd(),c.ɵɵtext(7,"\n"),c.ɵɵelementEnd(),c.ɵɵtext(8,"\n"),c.ɵɵtemplate(9,w,9,6,"ng-container",2),c.ɵɵtext(10,"\n"),c.ɵɵtemplate(11,P,7,1,"table",3),c.ɵɵtext(12,"\n"),c.ɵɵtemplate(13,k,0,0,"ng-template",null,4,c.ɵɵtemplateRefExtractor),c.ɵɵtext(15,"\n")),2&e&&(c.ɵɵproperty("ngIf",t.userCanAccessBusinessPortal),c.ɵɵadvance(5),c.ɵɵtextInterpolate(c.ɵɵpipeBind1(6,4,"policies")),c.ɵɵadvance(4),c.ɵɵproperty("ngIf",t.loading),c.ɵɵadvance(2),c.ɵɵproperty("ngIf",!t.loading))},directives:[v.NgIf,y.CalloutComponent,v.NgForOf,g.StopClickDirective],pipes:[x.I18nPipe],encapsulation:2}),e}();t.PoliciesComponent=_},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(6);t.ApiService=r.ApiService;var i=n(850);t.AppIdService=i.AppIdService;var a=n(88);t.AuditService=a.AuditService;var o=n(59);t.AuthService=o.AuthService;var s=n(20);t.CipherService=s.CipherService;var l=n(41);t.CollectionService=l.CollectionService;var c=n(19);t.CryptoService=c.CryptoService;var p=n(65);t.EnvironmentService=p.EnvironmentService;var u=n(49);t.FolderService=u.FolderService;var d=n(3);t.I18nService=d.I18nService;var m=n(851);t.LogService=m.LogService;var h=n(15);t.MessagingService=h.MessagingService;var f=n(36);t.PasswordGenerationService=f.PasswordGenerationService;var v=n(5);t.PlatformUtilsService=v.PlatformUtilsService;var y=n(81);t.SearchService=y.SearchService;var g=n(278);t.SettingsService=g.SettingsService;var x=n(42);t.StorageService=x.StorageService;var b=n(39);t.StateService=b.StateService;var S=n(62);t.SyncService=S.SyncService;var w=n(101);t.TokenService=w.TokenService;var C=n(115);t.TotpService=C.TotpService;var I=n(7);t.UserService=I.UserService;var E=n(112);t.VaultTimeoutService=E.VaultTimeoutService},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]1?"×"+n.quantity:""," @ ",o.ɵɵpipeBind2(4,5,n.amount,"$"),"\n "),o.ɵɵadvance(4),o.ɵɵtextInterpolate2("\n ",o.ɵɵpipeBind2(8,8,n.quantity*n.amount,"$")," /",o.ɵɵpipeBind1(9,11,n.interval),"\n ")}}function V(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",20),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"strong",21),o.ɵɵtext(3),o.ɵɵpipe(4,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(5,"\n "),o.ɵɵelementStart(6,"table",22),o.ɵɵtext(7,"\n "),o.ɵɵelementStart(8,"tbody"),o.ɵɵtext(9,"\n "),o.ɵɵtemplate(10,D,11,13,"tr",23),o.ɵɵtext(11,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(12,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(13,"\n "),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext(3);o.ɵɵadvance(3),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(4,2,"details")),o.ɵɵadvance(7),o.ɵɵproperty("ngForOf",n.subscription.items)}}function j(e,t){if(1&e&&(o.ɵɵelementStart(0,"div",14),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"div",15),o.ɵɵtext(3,"\n "),o.ɵɵelementStart(4,"dl"),o.ɵɵtext(5,"\n "),o.ɵɵelementStart(6,"dt"),o.ɵɵtext(7),o.ɵɵpipe(8,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(9,"\n "),o.ɵɵelementStart(10,"dd"),o.ɵɵtext(11),o.ɵɵelementEnd(),o.ɵɵtext(12,"\n "),o.ɵɵtemplate(13,B,23,15,"ng-container",1),o.ɵɵtext(14,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(15,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(16,"\n "),o.ɵɵtemplate(17,V,14,4,"div",16),o.ɵɵtext(18,"\n "),o.ɵɵelementEnd()),2&e){var n=o.ɵɵnextContext(2);o.ɵɵadvance(7),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(8,4,"billingPlan")),o.ɵɵadvance(4),o.ɵɵtextInterpolate(n.sub.plan.name),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.subscription),o.ɵɵadvance(4),o.ɵɵproperty("ngIf",n.subscription)}}function R(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",27),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"div",28),o.ɵɵtext(3,"\n "),o.ɵɵelementStart(4,"button",29),o.ɵɵlistener("click",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(3).closeUpdateLicense(!1)}),o.ɵɵpipe(5,"i18n"),o.ɵɵelementStart(6,"span",30),o.ɵɵtext(7,"×"),o.ɵɵelementEnd(),o.ɵɵelementEnd(),o.ɵɵtext(8,"\n "),o.ɵɵelementStart(9,"h3",31),o.ɵɵtext(10),o.ɵɵpipe(11,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(12,"\n "),o.ɵɵelementStart(13,"app-update-license",32),o.ɵɵlistener("onUpdated",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(3).closeUpdateLicense(!0)})("onCanceled",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(3).closeUpdateLicense(!1)}),o.ɵɵelementEnd(),o.ɵɵtext(14,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(15,"\n "),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext(3);o.ɵɵadvance(4),o.ɵɵpropertyInterpolate("appA11yTitle",o.ɵɵpipeBind1(5,3,"cancel")),o.ɵɵadvance(6),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(11,5,"updateLicense")),o.ɵɵadvance(3),o.ɵɵproperty("organizationId",r.organizationId)}}function F(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementContainerStart(0),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"div"),o.ɵɵtext(3,"\n "),o.ɵɵelementStart(4,"button",24),o.ɵɵlistener("click",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(2).updateLicense()}),o.ɵɵtext(5),o.ɵɵpipe(6,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(7,"\n "),o.ɵɵelementStart(8,"a",25),o.ɵɵtext(9),o.ɵɵpipe(10,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(11,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(12,"\n "),o.ɵɵtemplate(13,R,16,7,"div",26),o.ɵɵtext(14,"\n "),o.ɵɵelementContainerEnd()}if(2&e){var r=o.ɵɵnextContext(2);o.ɵɵadvance(5),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(6,3,"updateLicense"),"\n "),o.ɵɵadvance(4),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(10,5,"manageSubscription"),"\n "),o.ɵɵadvance(4),o.ɵɵproperty("ngIf",r.showUpdateLicense)}}function U(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"button",24),o.ɵɵlistener("click",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(3).changePlan()}),o.ɵɵtext(1),o.ɵɵpipe(2,"i18n"),o.ɵɵelementEnd()}2&e&&(o.ɵɵadvance(1),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(2,1,"changeBillingPlan"),"\n "))}function N(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"button",42),o.ɵɵlistener("click",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(3).downloadLicense()}),o.ɵɵtext(1),o.ɵɵpipe(2,"i18n"),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext(3);o.ɵɵproperty("disabled",r.showDownloadLicense),o.ɵɵadvance(1),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(2,2,"downloadLicense"),"\n ")}}function z(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"button",43,44),o.ɵɵlistener("click",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(3).cancel()}),o.ɵɵtext(2,"\n "),o.ɵɵelement(3,"i",10),o.ɵɵpipe(4,"i18n"),o.ɵɵtext(5,"\n "),o.ɵɵelementStart(6,"span"),o.ɵɵtext(7),o.ɵɵpipe(8,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(9,"\n "),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵreference(1),i=o.ɵɵnextContext(3);o.ɵɵproperty("appApiAction",i.cancelPromise)("disabled",r.loading),o.ɵɵadvance(3),o.ɵɵpropertyInterpolate("title",o.ɵɵpipeBind1(4,4,"loading")),o.ɵɵadvance(4),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(8,6,"cancelSubscription"))}}function L(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"app-change-plan",45),o.ɵɵlistener("onChanged",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(3).closeChangePlan(!0)})("onCanceled",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(3).closeChangePlan(!1)}),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext(3);o.ɵɵproperty("organizationId",r.organizationId)}}function G(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",46),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"app-download-license",47),o.ɵɵlistener("onDownloaded",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(3).closeDownloadLicense()})("onCanceled",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(3).closeDownloadLicense()}),o.ɵɵelementEnd(),o.ɵɵtext(3,"\n "),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext(3);o.ɵɵadvance(2),o.ɵɵproperty("organizationId",r.organizationId)}}function K(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",33),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"button",24),o.ɵɵlistener("click",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(4).adjustSeats(!0)}),o.ɵɵtext(3),o.ɵɵpipe(4,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(5,"\n "),o.ɵɵelementStart(6,"button",50),o.ɵɵlistener("click",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(4).adjustSeats(!1)}),o.ɵɵtext(7),o.ɵɵpipe(8,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(9,"\n "),o.ɵɵelementEnd()}2&e&&(o.ɵɵadvance(3),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(4,2,"addSeats"),"\n "),o.ɵɵadvance(4),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(8,4,"removeSeats"),"\n "))}function q(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"app-adjust-seats",51),o.ɵɵlistener("onAdjusted",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(4).closeSeats(!0)})("onCanceled",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(4).closeSeats(!1)}),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext(4);o.ɵɵproperty("seatPrice",r.seatPrice)("add",r.adjustSeatsAdd)("organizationId",r.organizationId)("interval",r.billingInterval)}}function W(e,t){if(1&e&&(o.ɵɵelementContainerStart(0),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"div",46),o.ɵɵtext(3,"\n "),o.ɵɵtemplate(4,K,10,6,"div",48),o.ɵɵtext(5,"\n "),o.ɵɵtemplate(6,q,1,4,"app-adjust-seats",49),o.ɵɵtext(7,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(8,"\n "),o.ɵɵelementContainerEnd()),2&e){var n=o.ɵɵnextContext(3);o.ɵɵadvance(4),o.ɵɵproperty("ngIf",!n.showAdjustSeats),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.showAdjustSeats)}}function H(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"div",33),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"button",24),o.ɵɵlistener("click",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(4).adjustStorage(!0)}),o.ɵɵtext(3),o.ɵɵpipe(4,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(5,"\n "),o.ɵɵelementStart(6,"button",50),o.ɵɵlistener("click",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(4).adjustStorage(!1)}),o.ɵɵtext(7),o.ɵɵpipe(8,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(9,"\n "),o.ɵɵelementEnd()}2&e&&(o.ɵɵadvance(3),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(4,2,"addStorage"),"\n "),o.ɵɵadvance(4),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(8,4,"removeStorage"),"\n "))}function $(e,t){if(1&e){var n=o.ɵɵgetCurrentView();o.ɵɵelementStart(0,"app-adjust-storage",53),o.ɵɵlistener("onAdjusted",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(4).closeStorage(!0)})("onCanceled",function(){return o.ɵɵrestoreView(n),o.ɵɵnextContext(4).closeStorage(!1)}),o.ɵɵelementEnd()}if(2&e){var r=o.ɵɵnextContext(4);o.ɵɵproperty("storageGbPrice",r.storageGbPrice)("add",r.adjustStorageAdd)("organizationId",r.organizationId)("interval",r.billingInterval)}}function Y(e,t){if(1&e&&(o.ɵɵelementContainerStart(0),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"div",46),o.ɵɵtext(3,"\n "),o.ɵɵtemplate(4,H,10,6,"div",48),o.ɵɵtext(5,"\n "),o.ɵɵtemplate(6,$,1,4,"app-adjust-storage",52),o.ɵɵtext(7,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(8,"\n "),o.ɵɵelementContainerEnd()),2&e){var n=o.ɵɵnextContext(3);o.ɵɵadvance(4),o.ɵɵproperty("ngIf",!n.showAdjustStorage),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.showAdjustStorage)}}var Q=function(e){return{width:e}};function J(e,t){if(1&e&&(o.ɵɵelementContainerStart(0),o.ɵɵtext(1,"\n "),o.ɵɵelementStart(2,"div",33),o.ɵɵtext(3,"\n "),o.ɵɵtemplate(4,U,3,3,"button",34),o.ɵɵtext(5,"\n "),o.ɵɵtemplate(6,N,3,4,"button",35),o.ɵɵtext(7,"\n "),o.ɵɵtemplate(8,z,10,8,"button",36),o.ɵɵtext(9,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(10,"\n "),o.ɵɵtemplate(11,L,1,1,"app-change-plan",37),o.ɵɵtext(12,"\n "),o.ɵɵtemplate(13,G,4,1,"div",38),o.ɵɵtext(14,"\n "),o.ɵɵelementStart(15,"h2",39),o.ɵɵtext(16),o.ɵɵpipe(17,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(18,"\n "),o.ɵɵelementStart(19,"p"),o.ɵɵtext(20),o.ɵɵpipe(21,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(22,"\n "),o.ɵɵtemplate(23,W,9,2,"ng-container",1),o.ɵɵtext(24,"\n "),o.ɵɵelementStart(25,"h2",39),o.ɵɵtext(26),o.ɵɵpipe(27,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(28,"\n "),o.ɵɵelementStart(29,"p"),o.ɵɵtext(30),o.ɵɵpipe(31,"i18n"),o.ɵɵelementEnd(),o.ɵɵtext(32,"\n "),o.ɵɵelementStart(33,"div",40),o.ɵɵtext(34,"\n "),o.ɵɵelementStart(35,"div",41),o.ɵɵtext(36),o.ɵɵpipe(37,"percent"),o.ɵɵelementEnd(),o.ɵɵtext(38,"\n "),o.ɵɵelementEnd(),o.ɵɵtext(39,"\n "),o.ɵɵtemplate(40,Y,9,2,"ng-container",1),o.ɵɵtext(41,"\n "),o.ɵɵelementContainerEnd()),2&e){var n=o.ɵɵnextContext(2);o.ɵɵadvance(4),o.ɵɵproperty("ngIf",!n.showChangePlan),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.canDownloadLicense),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.subscription&&!n.subscription.cancelled&&!n.subscriptionMarkedForCancel),o.ɵɵadvance(3),o.ɵɵproperty("ngIf",n.showChangePlan),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.showDownloadLicense),o.ɵɵadvance(3),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(17,14,"userSeats")),o.ɵɵadvance(4),o.ɵɵtextInterpolate(o.ɵɵpipeBind2(21,16,"subscriptionUserSeats",n.sub.seats)),o.ɵɵadvance(3),o.ɵɵproperty("ngIf",n.subscription&&n.canAdjustSeats&&!n.subscription.cancelled&&!n.subscriptionMarkedForCancel),o.ɵɵadvance(3),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(27,19,"storage")),o.ɵɵadvance(4),o.ɵɵtextInterpolate(o.ɵɵpipeBind3(31,21,"subscriptionStorage",n.sub.maxStorageGb||0,n.sub.storageName||"0 MB")),o.ɵɵadvance(5),o.ɵɵproperty("ngStyle",o.ɵɵpureFunction1(27,Q,n.storageProgressWidth+"%")),o.ɵɵattribute("aria-valuenow",n.storagePercentage),o.ɵɵadvance(1),o.ɵɵtextInterpolate1("\n ",o.ɵɵpipeBind1(37,25,n.storagePercentage/100),""),o.ɵɵadvance(4),o.ɵɵproperty("ngIf",n.subscription&&!n.subscription.cancelled&&!n.subscriptionMarkedForCancel)}}function X(e,t){if(1&e&&(o.ɵɵelementContainerStart(0),o.ɵɵtext(1,"\n "),o.ɵɵtemplate(2,P,4,6,"app-callout",5),o.ɵɵtext(3,"\n "),o.ɵɵtemplate(4,k,18,14,"app-callout",5),o.ɵɵtext(5,"\n "),o.ɵɵtemplate(6,T,17,9,"dl",1),o.ɵɵtext(7,"\n "),o.ɵɵtemplate(8,j,19,6,"div",6),o.ɵɵtext(9,"\n "),o.ɵɵtemplate(10,F,15,7,"ng-container",1),o.ɵɵtext(11,"\n "),o.ɵɵtemplate(12,J,42,29,"ng-container",1),o.ɵɵtext(13,"\n"),o.ɵɵelementContainerEnd()),2&e){var n=o.ɵɵnextContext();o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.subscription&&n.subscription.cancelled),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.subscriptionMarkedForCancel),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.selfHosted),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",!n.selfHosted),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",n.selfHosted),o.ɵɵadvance(2),o.ɵɵproperty("ngIf",!n.selfHosted)}}var Z=function(){function e(e,t,n,r,i,a,o){this.apiService=e,this.platformUtilsService=t,this.i18nService=n,this.analytics=r,this.toasterService=i,this.messagingService=a,this.route=o,this.loading=!1,this.firstLoaded=!1,this.adjustSeatsAdd=!0,this.showAdjustSeats=!1,this.adjustStorageAdd=!0,this.showAdjustStorage=!1,this.showUpdateLicense=!1,this.showDownloadLicense=!1,this.showChangePlan=!1,this.selfHosted=!1,this.selfHosted=t.isSelfHost()}return e.prototype.ngOnInit=function(){return r(this,void 0,void 0,function(){var e=this;return i(this,function(t){return this.route.parent.parent.params.subscribe(function(t){return r(e,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.organizationId=t.organizationId,[4,this.load()];case 1:return e.sent(),this.firstLoaded=!0,[2]}})})}),[2]})})},e.prototype.load=function(){return r(this,void 0,void 0,function(){var e;return i(this,function(t){switch(t.label){case 0:return this.loading?[2]:(this.loading=!0,e=this,[4,this.apiService.getOrganizationSubscription(this.organizationId)]);case 1:return e.sub=t.sent(),this.loading=!1,[2]}})})},e.prototype.reinstate=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.loading?[2]:[4,this.platformUtilsService.showDialog(this.i18nService.t("reinstateConfirmation"),this.i18nService.t("reinstateSubscription"),this.i18nService.t("yes"),this.i18nService.t("cancel"))];case 1:if(!e.sent())return[2];e.label=2;case 2:return e.trys.push([2,4,,5]),this.reinstatePromise=this.apiService.postOrganizationReinstate(this.organizationId),[4,this.reinstatePromise];case 3:return e.sent(),this.analytics.eventTrack.next({action:"Reinstated Plan"}),this.toasterService.popAsync("success",null,this.i18nService.t("reinstated")),this.load(),[3,5];case 4:return e.sent(),[3,5];case 5:return[2]}})})},e.prototype.cancel=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.loading?[2]:[4,this.platformUtilsService.showDialog(this.i18nService.t("cancelConfirmation"),this.i18nService.t("cancelSubscription"),this.i18nService.t("yes"),this.i18nService.t("no"),"warning")];case 1:if(!e.sent())return[2];e.label=2;case 2:return e.trys.push([2,4,,5]),this.cancelPromise=this.apiService.postOrganizationCancel(this.organizationId),[4,this.cancelPromise];case 3:return e.sent(),this.analytics.eventTrack.next({action:"Canceled Plan"}),this.toasterService.popAsync("success",null,this.i18nService.t("canceledSubscription")),this.load(),[3,5];case 4:return e.sent(),[3,5];case 5:return[2]}})})},e.prototype.changePlan=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return null==this.subscription&&this.sub.planType===a.PlanType.Free?(this.showChangePlan=!this.showChangePlan,[2]):[4,this.platformUtilsService.showDialog(this.i18nService.t("changeBillingPlanDesc"),this.i18nService.t("changeBillingPlan"),this.i18nService.t("contactSupport"),this.i18nService.t("close"))];case 1:return e.sent()&&this.platformUtilsService.launchUri("https://bitwarden.com/contact"),[2]}})})},e.prototype.closeChangePlan=function(e){this.showChangePlan=!1},e.prototype.downloadLicense=function(){this.showDownloadLicense=!this.showDownloadLicense},e.prototype.closeDownloadLicense=function(){this.showDownloadLicense=!1},e.prototype.updateLicense=function(){this.loading||(this.showUpdateLicense=!0)},e.prototype.closeUpdateLicense=function(e){this.showUpdateLicense=!1,e&&(this.load(),this.messagingService.send("updatedOrgLicense"))},e.prototype.adjustSeats=function(e){this.adjustSeatsAdd=e,this.showAdjustSeats=!0},e.prototype.closeSeats=function(e){this.showAdjustSeats=!1,e&&this.load()},e.prototype.adjustStorage=function(e){this.adjustStorageAdd=e,this.showAdjustStorage=!0},e.prototype.closeStorage=function(e){this.showAdjustStorage=!1,e&&this.load()},Object.defineProperty(e.prototype,"isExpired",{get:function(){return null!=this.sub&&null!=this.sub.expiration&&new Date(this.sub.expiration)0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]

'+this.i18nService.t("twoFactorRecoveryYourCode")+":

"+this.code+'

'+new Date+"

"),e.onafterprint=function(){return e.close()},e.print()},e.prototype.formatString=function(e){return null==e?null:e.replace(/(.{4})/g,"$1 ").trim().toUpperCase()},e.prototype.processResponse=function(e){this.code=this.formatString(e.code)},e.ɵfac=function(t){return new(t||e)(i.ɵɵdirectiveInject(a.I18nService))},e.ɵcmp=i.ɵɵdefineComponent({type:e,selectors:[["app-two-factor-recovery"]],decls:31,vars:11,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","2faRecoveryTitle",1,"modal","fade"],["role","document",1,"modal-dialog"],[1,"modal-content"],[1,"modal-header"],["id","2faRecoveryTitle",1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],[3,"organizationId","type","onAuthed",4,"ngIf"],[4,"ngIf"],[3,"organizationId","type","onAuthed"],[1,"modal-body","text-center"],[1,"modal-footer"],["type","button","class","btn btn-primary",3,"click",4,"ngIf"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],[1,"text-lg"],["type","button",1,"btn","btn-primary",3,"click"]],template:function(e,t){1&e&&(i.ɵɵelementStart(0,"div",0),i.ɵɵtext(1,"\n "),i.ɵɵelementStart(2,"div",1),i.ɵɵtext(3,"\n "),i.ɵɵelementStart(4,"div",2),i.ɵɵtext(5,"\n "),i.ɵɵelementStart(6,"div",3),i.ɵɵtext(7,"\n "),i.ɵɵelementStart(8,"h2",4),i.ɵɵtext(9),i.ɵɵpipe(10,"i18n"),i.ɵɵelementStart(11,"small"),i.ɵɵtext(12),i.ɵɵpipe(13,"i18n"),i.ɵɵelementEnd(),i.ɵɵtext(14,"\n "),i.ɵɵelementEnd(),i.ɵɵtext(15,"\n "),i.ɵɵelementStart(16,"button",5),i.ɵɵpipe(17,"i18n"),i.ɵɵtext(18,"\n "),i.ɵɵelementStart(19,"span",6),i.ɵɵtext(20,"×"),i.ɵɵelementEnd(),i.ɵɵtext(21,"\n "),i.ɵɵelementEnd(),i.ɵɵtext(22,"\n "),i.ɵɵelementEnd(),i.ɵɵtext(23,"\n "),i.ɵɵtemplate(24,p,2,2,"app-two-factor-verify",7),i.ɵɵtext(25,"\n "),i.ɵɵtemplate(26,h,18,6,"ng-container",8),i.ɵɵtext(27,"\n "),i.ɵɵelementEnd(),i.ɵɵtext(28,"\n "),i.ɵɵelementEnd(),i.ɵɵtext(29,"\n"),i.ɵɵelementEnd(),i.ɵɵtext(30,"\n")),2&e&&(i.ɵɵadvance(9),i.ɵɵtextInterpolate1("\n ",i.ɵɵpipeBind1(10,5,"twoStepLogin"),"\n "),i.ɵɵadvance(3),i.ɵɵtextInterpolate(i.ɵɵpipeBind1(13,7,"recoveryCodeTitle")),i.ɵɵadvance(4),i.ɵɵpropertyInterpolate("appA11yTitle",i.ɵɵpipeBind1(17,9,"close")),i.ɵɵadvance(8),i.ɵɵproperty("ngIf",!t.authed),i.ɵɵadvance(2),i.ɵɵproperty("ngIf",t.authed))},directives:[o.A11yTitleDirective,s.NgIf,l.TwoFactorVerifyComponent],pipes:[c.I18nPipe],encapsulation:2}),e}();t.TwoFactorRecoveryComponent=f},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]1&&n.configured)}}function j(e,t){1&e&&(d.ɵɵelementContainerStart(0),d.ɵɵtext(1,"\n "),d.ɵɵelement(2,"i",41),d.ɵɵtext(3,"\n "),d.ɵɵelementContainerEnd())}function R(e,t){1&e&&(d.ɵɵelementContainerStart(0),d.ɵɵtext(1,"\n "),d.ɵɵelement(2,"i",41),d.ɵɵtext(3),d.ɵɵpipe(4,"i18n"),d.ɵɵelementContainerEnd()),2&e&&(d.ɵɵadvance(3),d.ɵɵtextInterpolate1("\n ",d.ɵɵpipeBind1(4,1,"twoFactorU2fWaiting"),"...\n "))}function F(e,t){1&e&&(d.ɵɵelementContainerStart(0),d.ɵɵtext(1,"\n "),d.ɵɵelement(2,"i",42),d.ɵɵtext(3),d.ɵɵpipe(4,"i18n"),d.ɵɵelementContainerEnd()),2&e&&(d.ɵɵadvance(3),d.ɵɵtextInterpolate1("\n ",d.ɵɵpipeBind1(4,1,"twoFactorU2fClickSave"),"\n "))}function U(e,t){1&e&&(d.ɵɵelementContainerStart(0),d.ɵɵtext(1,"\n "),d.ɵɵelement(2,"i",43),d.ɵɵtext(3),d.ɵɵpipe(4,"i18n"),d.ɵɵelementContainerEnd()),2&e&&(d.ɵɵadvance(3),d.ɵɵtextInterpolate1("\n ",d.ɵɵpipeBind1(4,1,"twoFactorU2fProblemReadingTryAgain"),"\n "))}function N(e,t){if(1&e&&(d.ɵɵelementContainerStart(0),d.ɵɵtext(1,"\n "),d.ɵɵtemplate(2,R,5,3,"ng-container",25),d.ɵɵtext(3,"\n "),d.ɵɵtemplate(4,F,5,3,"ng-container",25),d.ɵɵtext(5,"\n "),d.ɵɵtemplate(6,U,5,3,"ng-container",25),d.ɵɵtext(7,"\n "),d.ɵɵelementContainerEnd()),2&e){var n=d.ɵɵnextContext(2);d.ɵɵadvance(2),d.ɵɵproperty("ngIf",n.u2fListening),d.ɵɵadvance(2),d.ɵɵproperty("ngIf",n.u2fResponse),d.ɵɵadvance(2),d.ɵɵproperty("ngIf",n.u2fError)}}function z(e,t){1&e&&(d.ɵɵelement(0,"i",44),d.ɵɵpipe(1,"i18n")),2&e&&d.ɵɵpropertyInterpolate("title",d.ɵɵpipeBind1(1,1,"loading"))}function L(e,t){1&e&&(d.ɵɵelementStart(0,"span"),d.ɵɵtext(1),d.ɵɵpipe(2,"i18n"),d.ɵɵelementEnd()),2&e&&(d.ɵɵadvance(1),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(2,1,"save")))}function G(e,t){if(1&e){var n=d.ɵɵgetCurrentView();d.ɵɵelementStart(0,"button",45,46),d.ɵɵlistener("click",function(){return d.ɵɵrestoreView(n),d.ɵɵnextContext(2).disable()}),d.ɵɵtext(2,"\n "),d.ɵɵelement(3,"i",44),d.ɵɵpipe(4,"i18n"),d.ɵɵtext(5,"\n "),d.ɵɵelementStart(6,"span"),d.ɵɵtext(7),d.ɵɵpipe(8,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(9,"\n "),d.ɵɵelementEnd()}if(2&e){var r=d.ɵɵreference(1),i=d.ɵɵnextContext(2);d.ɵɵproperty("appApiAction",i.disablePromise)("disabled",r.loading),d.ɵɵadvance(3),d.ɵɵpropertyInterpolate("title",d.ɵɵpipeBind1(4,4,"loading")),d.ɵɵadvance(4),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(8,6,"disableAllKeys"))}}function K(e,t){if(1&e){var n=d.ɵɵgetCurrentView();d.ɵɵelementStart(0,"form",10,11),d.ɵɵlistener("ngSubmit",function(){return d.ɵɵrestoreView(n),d.ɵɵnextContext().submit()}),d.ɵɵtext(2,"\n "),d.ɵɵelementStart(3,"div",12),d.ɵɵtext(4,"\n "),d.ɵɵtemplate(5,k,4,6,"app-callout",13),d.ɵɵtext(6,"\n "),d.ɵɵelementStart(7,"app-callout",14),d.ɵɵtext(8,"\n "),d.ɵɵelementStart(9,"p"),d.ɵɵtext(10),d.ɵɵpipe(11,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(12,"\n "),d.ɵɵelementStart(13,"ul",15),d.ɵɵtext(14,"\n "),d.ɵɵelementStart(15,"li"),d.ɵɵtext(16),d.ɵɵpipe(17,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(18,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(19,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(20,"\n "),d.ɵɵelement(21,"img",16),d.ɵɵtext(22,"\n "),d.ɵɵelementStart(23,"ul",17),d.ɵɵtext(24,"\n "),d.ɵɵtemplate(25,V,13,5,"li",18),d.ɵɵtext(26,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(27,"\n "),d.ɵɵelement(28,"hr"),d.ɵɵtext(29,"\n "),d.ɵɵelementStart(30,"p"),d.ɵɵtext(31),d.ɵɵpipe(32,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(33,"\n "),d.ɵɵelementStart(34,"ol"),d.ɵɵtext(35,"\n "),d.ɵɵelementStart(36,"li"),d.ɵɵtext(37),d.ɵɵpipe(38,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(39,"\n "),d.ɵɵelementStart(40,"li"),d.ɵɵtext(41),d.ɵɵpipe(42,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(43,"\n "),d.ɵɵelementStart(44,"li"),d.ɵɵtext(45),d.ɵɵpipe(46,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(47,"\n "),d.ɵɵelementStart(48,"li"),d.ɵɵtext(49),d.ɵɵpipe(50,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(51,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(52,"\n "),d.ɵɵelementStart(53,"div",19),d.ɵɵtext(54,"\n "),d.ɵɵelementStart(55,"div",20),d.ɵɵtext(56,"\n "),d.ɵɵelementStart(57,"label",21),d.ɵɵtext(58),d.ɵɵpipe(59,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(60,"\n "),d.ɵɵelementStart(61,"input",22),d.ɵɵlistener("ngModelChange",function(e){return d.ɵɵrestoreView(n),d.ɵɵnextContext().name=e}),d.ɵɵelementEnd(),d.ɵɵtext(62,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(63,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(64,"\n "),d.ɵɵelementStart(65,"button",23,24),d.ɵɵlistener("click",function(){return d.ɵɵrestoreView(n),d.ɵɵnextContext().readKey()}),d.ɵɵtext(67),d.ɵɵpipe(68,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(69,"\n "),d.ɵɵtemplate(70,j,4,0,"ng-container",25),d.ɵɵtext(71,"\n "),d.ɵɵtemplate(72,N,8,3,"ng-container",25),d.ɵɵtext(73,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(74,"\n "),d.ɵɵelementStart(75,"div",26),d.ɵɵtext(76,"\n "),d.ɵɵelementStart(77,"button",27),d.ɵɵtext(78,"\n "),d.ɵɵtemplate(79,z,2,3,"i",28),d.ɵɵtext(80,"\n "),d.ɵɵtemplate(81,L,3,3,"span",25),d.ɵɵtext(82,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(83,"\n "),d.ɵɵtemplate(84,G,10,8,"button",29),d.ɵɵtext(85,"\n "),d.ɵɵelementStart(86,"button",30),d.ɵɵtext(87),d.ɵɵpipe(88,"i18n"),d.ɵɵelementEnd(),d.ɵɵtext(89,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(90,"\n "),d.ɵɵelementEnd()}if(2&e){var r=d.ɵɵreference(1),i=d.ɵɵreference(66),a=d.ɵɵnextContext();d.ɵɵproperty("appApiAction",a.formPromise),d.ɵɵadvance(5),d.ɵɵproperty("ngIf",a.enabled),d.ɵɵadvance(5),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(11,23,"twoFactorU2fWarning")),d.ɵɵadvance(6),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(17,25,"twoFactorU2fSupportWeb")),d.ɵɵadvance(9),d.ɵɵproperty("ngForOf",a.keys),d.ɵɵadvance(6),d.ɵɵtextInterpolate1("",d.ɵɵpipeBind1(32,27,"twoFactorU2fAdd"),":"),d.ɵɵadvance(6),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(38,29,"twoFactorU2fGiveName")),d.ɵɵadvance(4),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(42,31,"twoFactorU2fPlugInReadKey")),d.ɵɵadvance(4),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(46,33,"twoFactorU2fTouchButton")),d.ɵɵadvance(4),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(50,35,"twoFactorU2fSaveForm")),d.ɵɵadvance(9),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(59,37,"name")),d.ɵɵadvance(3),d.ɵɵproperty("ngModel",a.name)("disabled",!a.keyIdAvailable),d.ɵɵadvance(4),d.ɵɵproperty("disabled",i.loading||a.u2fListening||!a.keyIdAvailable)("appApiAction",a.challengePromise),d.ɵɵadvance(2),d.ɵɵtextInterpolate1("\n ",d.ɵɵpipeBind1(68,39,"readKey"),"\n "),d.ɵɵadvance(3),d.ɵɵproperty("ngIf",i.loading),d.ɵɵadvance(2),d.ɵɵproperty("ngIf",!i.loading),d.ɵɵadvance(5),d.ɵɵproperty("disabled",r.loading||!a.u2fResponse),d.ɵɵadvance(2),d.ɵɵproperty("ngIf",r.loading),d.ɵɵadvance(2),d.ɵɵproperty("ngIf",!r.loading),d.ɵɵadvance(3),d.ɵɵproperty("ngIf",a.enabled),d.ɵɵadvance(3),d.ɵɵtextInterpolate(d.ɵɵpipeBind1(88,41,"close"))}}var q=function(e){function t(t,n,r,i,a,o){var l=e.call(this,t,n,r,i,a)||this;return l.ngZone=o,l.type=s.TwoFactorProviderType.U2f,l.keyIdAvailable=null,l.keysConfiguredCount=0,l.u2fScript=window.document.createElement("script"),l.u2fScript.src="scripts/u2f.js",l.u2fScript.async=!0,l}return i(t,e),t.prototype.ngOnInit=function(){window.document.body.appendChild(this.u2fScript)},t.prototype.ngOnDestroy=function(){window.document.body.removeChild(this.u2fScript)},t.prototype.auth=function(t){e.prototype.auth.call(this,t),this.processResponse(t.response)},t.prototype.submit=function(){var t=this;if(null==this.u2fResponse||null==this.keyIdAvailable)return Promise.reject();var n=new p.UpdateTwoFactorU2fRequest;return n.masterPasswordHash=this.masterPasswordHash,n.deviceResponse=this.u2fResponse,n.id=this.keyIdAvailable,n.name=this.name,e.prototype.enable.call(this,function(){return a(t,void 0,void 0,function(){var e;return o(this,function(t){switch(t.label){case 0:return this.formPromise=this.apiService.putTwoFactorU2f(n),[4,this.formPromise];case 1:return e=t.sent(),[4,this.processResponse(e)];case 2:return t.sent(),[2]}})})})},t.prototype.disable=function(){return e.prototype.disable.call(this,this.formPromise)},t.prototype.remove=function(e){return a(this,void 0,void 0,function(){var t,n,r;return o(this,function(i){switch(i.label){case 0:return this.keysConfiguredCount<=1||null!=e.removePromise?[2]:(t=null!=e.name?e.name:this.i18nService.t("u2fkeyX",e.id),[4,this.platformUtilsService.showDialog(this.i18nService.t("removeU2fConfirmation"),t,this.i18nService.t("yes"),this.i18nService.t("no"),"warning")]);case 1:if(!i.sent())return[2];(n=new c.UpdateTwoFactorU2fDeleteRequest).id=e.id,n.masterPasswordHash=this.masterPasswordHash,i.label=2;case 2:return i.trys.push([2,5,,6]),e.removePromise=this.apiService.deleteTwoFactorU2f(n),[4,e.removePromise];case 3:return r=i.sent(),e.removePromise=null,[4,this.processResponse(r)];case 4:return i.sent(),[3,6];case 5:return i.sent(),[3,6];case 6:return[2]}})})},t.prototype.readKey=function(){return a(this,void 0,void 0,function(){var e,t;return o(this,function(n){switch(n.label){case 0:if(null==this.keyIdAvailable)return[2];(e=new l.PasswordVerificationRequest).masterPasswordHash=this.masterPasswordHash,n.label=1;case 1:return n.trys.push([1,3,,4]),this.challengePromise=this.apiService.getTwoFactorU2fChallenge(e),[4,this.challengePromise];case 2:return t=n.sent(),this.readDevice(t),[3,4];case 3:return n.sent(),[3,4];case 4:return[2]}})})},t.prototype.readDevice=function(e){var t=this;console.log("listening for key..."),this.resetU2f(!0),window.u2f.register(e.appId,[{version:e.version,challenge:e.challenge}],[],function(e){t.ngZone.run(function(){if(t.u2fListening=!1,e.errorCode)return t.u2fError=!0,void console.log("error: "+e.errorCode);t.u2fResponse=JSON.stringify(e)})},15)},t.prototype.resetU2f=function(e){void 0===e&&(e=!1),this.u2fResponse=null,this.u2fError=!1,this.u2fListening=e},t.prototype.processResponse=function(e){this.resetU2f(),this.keys=[],this.keyIdAvailable=null,this.name=null,this.keysConfiguredCount=0;for(var t=function(t){if(null!=e.keys){var r=e.keys.filter(function(e){return e.id===t});if(r.length>0)return n.keysConfiguredCount++,n.keys.push({id:t,name:r[0].name,configured:!0,compromised:r[0].compromised,removePromise:null}),"continue"}n.keys.push({id:t,name:null,configured:!1,compromised:!1,removePromise:null}),null==n.keyIdAvailable&&(n.keyIdAvailable=t)},n=this,r=1;r<=5;r++)t(r);this.enabled=e.enabled},t.ɵfac=function(e){return new(e||t)(d.ɵɵdirectiveInject(m.ApiService),d.ɵɵdirectiveInject(h.I18nService),d.ɵɵdirectiveInject(f.Angulartics2),d.ɵɵdirectiveInject(v.ToasterService),d.ɵɵdirectiveInject(y.PlatformUtilsService),d.ɵɵdirectiveInject(d.NgZone))},t.ɵcmp=d.ɵɵdefineComponent({type:t,selectors:[["app-two-factor-u2f"]],features:[d.ɵɵInheritDefinitionFeature],decls:30,vars:8,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","2faU2fTitle",1,"modal","fade"],["role","document",1,"modal-dialog","modal-lg"],[1,"modal-content"],[1,"modal-header"],["id","2faU2fTitle",1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],[3,"organizationId","type","onAuthed",4,"ngIf"],["ngNativeValidate","",3,"appApiAction","ngSubmit",4,"ngIf"],[3,"organizationId","type","onAuthed"],["ngNativeValidate","",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-body"],["type","success","icon","fa-check-circle",3,"title",4,"ngIf"],["type","warning"],[1,"mb-0"],["src","images/4.png","alt","",1,"float-right","ml-5"],[1,"fa-ul"],[3,"appApiAction",4,"ngFor","ngForOf"],[1,"row"],[1,"form-group","col-6"],["for","name"],["id","name","type","text","name","Name",1,"form-control",3,"ngModel","disabled","ngModelChange"],["type","button",1,"btn","btn-outline-secondary","mr-2",3,"disabled","appApiAction","click"],["readKeyBtn",""],[4,"ngIf"],[1,"modal-footer"],["type","submit",1,"btn","btn-primary",3,"disabled"],["class","fa fa-spinner fa-spin","aria-hidden","true",3,"title",4,"ngIf"],["type","button","class","btn btn-outline-secondary btn-submit",3,"appApiAction","disabled","click",4,"ngIf"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],["type","success","icon","fa-check-circle",3,"title"],[3,"appApiAction"],["removeKeyBtn",""],[1,"fa-li","fa","fa-key"],["aria-hidden","true",1,"fa","fa-fw","fa-exclamation-triangle","text-warning",3,"title"],[1,"sr-only"],["aria-hidden","true",1,"fa","fa-fw","fa-check","text-success",3,"title"],["class","fa fa-spin fa-spinner text-muted fa-fw","aria-hidden","true",3,"title",4,"ngIf"],["href","#","appStopClick","",3,"click"],["aria-hidden","true",1,"fa","fa-spin","fa-spinner","text-muted","fa-fw",3,"title"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted"],["aria-hidden","true",1,"fa","fa-check-circle","text-success"],["aria-hidden","true",1,"fa","fa-warning","text-danger"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["type","button",1,"btn","btn-outline-secondary","btn-submit",3,"appApiAction","disabled","click"],["disableBtn",""]],template:function(e,t){1&e&&(d.ɵɵelementStart(0,"div",0),d.ɵɵtext(1,"\n "),d.ɵɵelementStart(2,"div",1),d.ɵɵtext(3,"\n "),d.ɵɵelementStart(4,"div",2),d.ɵɵtext(5,"\n "),d.ɵɵelementStart(6,"div",3),d.ɵɵtext(7,"\n "),d.ɵɵelementStart(8,"h2",4),d.ɵɵtext(9),d.ɵɵpipe(10,"i18n"),d.ɵɵelementStart(11,"small"),d.ɵɵtext(12,"FIDO U2F"),d.ɵɵelementEnd(),d.ɵɵtext(13,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(14,"\n "),d.ɵɵelementStart(15,"button",5),d.ɵɵpipe(16,"i18n"),d.ɵɵtext(17,"\n "),d.ɵɵelementStart(18,"span",6),d.ɵɵtext(19,"×"),d.ɵɵelementEnd(),d.ɵɵtext(20,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(21,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(22,"\n "),d.ɵɵtemplate(23,P,2,2,"app-two-factor-verify",7),d.ɵɵtext(24,"\n "),d.ɵɵtemplate(25,K,91,43,"form",8),d.ɵɵtext(26,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(27,"\n "),d.ɵɵelementEnd(),d.ɵɵtext(28,"\n"),d.ɵɵelementEnd(),d.ɵɵtext(29,"\n")),2&e&&(d.ɵɵadvance(9),d.ɵɵtextInterpolate1("\n ",d.ɵɵpipeBind1(10,4,"twoStepLogin"),"\n "),d.ɵɵadvance(6),d.ɵɵpropertyInterpolate("appA11yTitle",d.ɵɵpipeBind1(16,6,"close")),d.ɵɵadvance(8),d.ɵɵproperty("ngIf",!t.authed),d.ɵɵadvance(2),d.ɵɵproperty("ngIf",t.authed))},directives:[g.A11yTitleDirective,x.NgIf,b.TwoFactorVerifyComponent,S.NgControlStatusGroup,S.NgForm,w.ApiActionDirective,C.CalloutComponent,x.NgForOf,S.DefaultValueAccessor,S.NgControlStatus,S.NgModel,I.StopClickDirective],pipes:[E.I18nPipe],encapsulation:2}),t}(u.TwoFactorBaseComponent);t.TwoFactorU2fComponent=q},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0?this.keys[0].key:null,n.key2=null!=this.keys&&this.keys.length>1?this.keys[1].key:null,n.key3=null!=this.keys&&this.keys.length>2?this.keys[2].key:null,n.key4=null!=this.keys&&this.keys.length>3?this.keys[3].key:null,n.key5=null!=this.keys&&this.keys.length>4?this.keys[4].key:null,n.nfc=this.nfc,e.prototype.enable.call(this,function(){return a(t,void 0,void 0,function(){var e;return o(this,function(t){switch(t.label){case 0:return this.formPromise=this.apiService.putTwoFactorYubiKey(n),[4,this.formPromise];case 1:return e=t.sent(),[4,this.processResponse(e)];case 2:return t.sent(),this.toasterService.popAsync("success",null,this.i18nService.t("yubikeysUpdated")),[2]}})})})},t.prototype.disable=function(){return e.prototype.disable.call(this,this.disablePromise)},t.prototype.remove=function(e){e.existingKey=null,e.key=null},t.prototype.processResponse=function(e){this.enabled=e.enabled,this.keys=[{key:e.key1,existingKey:this.padRight(e.key1)},{key:e.key2,existingKey:this.padRight(e.key2)},{key:e.key3,existingKey:this.padRight(e.key3)},{key:e.key4,existingKey:this.padRight(e.key4)},{key:e.key5,existingKey:this.padRight(e.key5)}],this.nfc=e.nfc||!e.enabled},t.prototype.padRight=function(e,t,n){if(void 0===t&&(t="•"),void 0===n&&(n=44),null==e||null==t||e.length>=n)return e;for(var r=(n-e.length)/t.length,i=0;i0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&this.viewEvents(n[0]),null!=a&&a.unsubscribe(),[2]}})})}),null!=t&&t.unsubscribe(),[2]}})})})},e.prototype.ngOnDestroy=function(){this.broadcasterService.unsubscribe("OrgVaultComponent")},e.prototype.clearGroupingFilters=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.ciphersComponent.showAddNew=!0,this.ciphersComponent.deleted=!1,this.groupingsComponent.searchPlaceholder=this.i18nService.t("searchVault"),[4,this.ciphersComponent.applyFilter()];case 1:return e.sent(),this.clearFilters(),this.go(),[2]}})})},e.prototype.filterCipherType=function(e,t){return void 0===t&&(t=!1),r(this,void 0,void 0,function(){var n;return i(this,function(r){switch(r.label){case 0:return this.ciphersComponent.showAddNew=!0,this.ciphersComponent.deleted=!1,this.groupingsComponent.searchPlaceholder=this.i18nService.t("searchType"),n=function(t){return t.type===e},t?[4,this.ciphersComponent.reload(n)]:[3,2];case 1:return r.sent(),[3,4];case 2:return[4,this.ciphersComponent.applyFilter(n)];case 3:r.sent(),r.label=4;case 4:return this.clearFilters(),this.type=e,this.go(),[2]}})})},e.prototype.filterCollection=function(e,t){return void 0===t&&(t=!1),r(this,void 0,void 0,function(){var n;return i(this,function(r){switch(r.label){case 0:return this.ciphersComponent.showAddNew=!0,this.ciphersComponent.deleted=!1,this.groupingsComponent.searchPlaceholder=this.i18nService.t("searchCollection"),n=function(t){return"unassigned"===e?null==t.collectionIds||0===t.collectionIds.length:null!=t.collectionIds&&t.collectionIds.indexOf(e)>-1},t?[4,this.ciphersComponent.reload(n)]:[3,2];case 1:return r.sent(),[3,4];case 2:return[4,this.ciphersComponent.applyFilter(n)];case 3:r.sent(),r.label=4;case 4:return this.clearFilters(),this.collectionId=e,this.go(),[2]}})})},e.prototype.filterDeleted=function(e){return void 0===e&&(e=!1),r(this,void 0,void 0,function(){return i(this,function(t){switch(t.label){case 0:return this.ciphersComponent.showAddNew=!1,this.ciphersComponent.deleted=!0,this.groupingsComponent.searchPlaceholder=this.i18nService.t("searchTrash"),e?[4,this.ciphersComponent.reload(null,!0)]:[3,2];case 1:return t.sent(),[3,4];case 2:return[4,this.ciphersComponent.applyFilter(null)];case 3:t.sent(),t.label=4;case 4:return this.clearFilters(),this.deleted=!0,this.go(),[2]}})})},e.prototype.filterSearchText=function(e){this.ciphersComponent.searchText=e,this.ciphersComponent.search(200)},e.prototype.editCipherAttachments=function(e){var t=this;if(null!=this.organization.maxStorageGb&&0!==this.organization.maxStorageGb){null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(o.ModalComponent);this.modal=this.attachmentsModalRef.createComponent(n).instance;var a=this.modal.show(c.AttachmentsComponent,this.attachmentsModalRef);a.organization=this.organization,a.cipherId=e.id;var s=!1;a.onUploadedAttachment.subscribe(function(){return s=!0}),a.onDeletedAttachment.subscribe(function(){return s=!0}),this.modal.onClosed.subscribe(function(){return r(t,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.modal=null,s?[4,this.ciphersComponent.refresh()]:[3,2];case 1:e.sent(),e.label=2;case 2:return s=!1,[2]}})})})}else this.messagingService.send("upgradeOrganization",{organizationId:e.organizationId})},e.prototype.editCipherCollections=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(o.ModalComponent);this.modal=this.collectionsModalRef.createComponent(n).instance;var a=this.modal.show(u.CollectionsComponent,this.collectionsModalRef);this.organization.canManageAllCollections&&(a.collectionIds=e.collectionIds,a.collections=this.groupingsComponent.collections.filter(function(e){return!e.readOnly})),a.organization=this.organization,a.cipherId=e.id,a.onSavedCollections.subscribe(function(){return r(t,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}})})}),this.modal.onClosed.subscribe(function(){return r(t,void 0,void 0,function(){return i(this,function(e){return this.modal=null,[2]})})})},e.prototype.addCipher=function(){var e=this.editCipher(null);e.organizationId=this.organization.id,e.type=this.type,this.organization.canManageAllCollections&&(e.collections=this.groupingsComponent.collections.filter(function(e){return!e.readOnly})),null!=this.collectionId&&(e.collectionIds=[this.collectionId])},e.prototype.editCipher=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(o.ModalComponent);this.modal=this.cipherAddEditModalRef.createComponent(n).instance;var a=this.modal.show(l.AddEditComponent,this.cipherAddEditModalRef);return a.organization=this.organization,a.cipherId=null==e?null:e.id,a.onSavedCipher.subscribe(function(e){return r(t,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}})})}),a.onDeletedCipher.subscribe(function(e){return r(t,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}})})}),a.onRestoredCipher.subscribe(function(e){return r(t,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}})})}),this.modal.onClosed.subscribe(function(){t.modal=null}),a},e.prototype.cloneCipher=function(e){var t=this.editCipher(e);t.cloneMode=!0,t.organizationId=this.organization.id,this.organization.canManageAllCollections&&(t.collections=this.groupingsComponent.collections.filter(function(e){return!e.readOnly})),t.collectionIds=e.collectionIds},e.prototype.viewEvents=function(e){return r(this,void 0,void 0,function(){var t,n,r=this;return i(this,function(i){return null!=this.modal&&this.modal.close(),t=this.componentFactoryResolver.resolveComponentFactory(o.ModalComponent),this.modal=this.eventsModalRef.createComponent(t).instance,(n=this.modal.show(s.EntityEventsComponent,this.eventsModalRef)).name=e.name,n.organizationId=this.organization.id,n.entityId=e.id,n.showUser=!0,n.entity="cipher",this.modal.onClosed.subscribe(function(){r.modal=null}),[2]})})},e.prototype.clearFilters=function(){this.collectionId=null,this.type=null,this.deleted=!1},e.prototype.go=function(e){void 0===e&&(e=null),null==e&&(e={type:this.type,collectionId:this.collectionId,deleted:!!this.deleted||null}),this.router.navigate([],{relativeTo:this.route,queryParams:e,replaceUrl:!0})},e.ɵfac=function(t){return new(t||e)(m.ɵɵdirectiveInject(h.ActivatedRoute),m.ɵɵdirectiveInject(f.UserService),m.ɵɵdirectiveInject(h.Router),m.ɵɵdirectiveInject(m.ChangeDetectorRef),m.ɵɵdirectiveInject(v.SyncService),m.ɵɵdirectiveInject(y.I18nService),m.ɵɵdirectiveInject(m.ComponentFactoryResolver),m.ɵɵdirectiveInject(g.MessagingService),m.ɵɵdirectiveInject(x.BroadcasterService),m.ɵɵdirectiveInject(m.NgZone))},e.ɵcmp=m.ɵɵdefineComponent({type:e,selectors:[["app-org-vault"]],viewQuery:function(e,t){var n;(1&e&&(m.ɵɵstaticViewQuery(d.GroupingsComponent,!0),m.ɵɵstaticViewQuery(p.CiphersComponent,!0),m.ɵɵstaticViewQuery(P,!0,a.ViewContainerRef),m.ɵɵstaticViewQuery(k,!0,a.ViewContainerRef),m.ɵɵstaticViewQuery(_,!0,a.ViewContainerRef),m.ɵɵstaticViewQuery(A,!0,a.ViewContainerRef)),2&e)&&(m.ɵɵqueryRefresh(n=m.ɵɵloadQuery())&&(t.groupingsComponent=n.first),m.ɵɵqueryRefresh(n=m.ɵɵloadQuery())&&(t.ciphersComponent=n.first),m.ɵɵqueryRefresh(n=m.ɵɵloadQuery())&&(t.attachmentsModalRef=n.first),m.ɵɵqueryRefresh(n=m.ɵɵloadQuery())&&(t.cipherAddEditModalRef=n.first),m.ɵɵqueryRefresh(n=m.ɵɵloadQuery())&&(t.collectionsModalRef=n.first),m.ɵɵqueryRefresh(n=m.ɵɵloadQuery())&&(t.eventsModalRef=n.first))},decls:51,vars:13,consts:[[1,"container","page-content"],[1,"row"],[1,"col-3"],[3,"showFolders","showFavorites","showTrash","onAllClicked","onCipherTypeClicked","onCollectionClicked","onSearchTextChanged","onTrashClicked"],[1,"col-9"],[1,"page-header","d-flex"],[3,"appApiAction"],["actionSpinner",""],[4,"ngIf"],[1,"ml-auto","d-flex"],[3,"ciphersComponent","modal","deleted","organization"],["type","button","class","btn btn-outline-primary btn-sm ml-auto",3,"click",4,"ngIf"],[3,"onCipherClicked","onAttachmentsClicked","onAddCipher","onCollectionsClicked","onEventsClicked","onCloneClicked"],["attachments",""],["cipherAddEdit",""],["collections",""],["eventsTemplate",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],["type","button",1,"btn","btn-outline-primary","btn-sm","ml-auto",3,"click"],["aria-hidden","true",1,"fa","fa-plus","fa-fw"]],template:function(e,t){if(1&e&&(m.ɵɵelementStart(0,"div",0),m.ɵɵtext(1,"\n "),m.ɵɵelementStart(2,"div",1),m.ɵɵtext(3,"\n "),m.ɵɵelementStart(4,"div",2),m.ɵɵtext(5,"\n "),m.ɵɵelementStart(6,"app-org-vault-groupings",3),m.ɵɵlistener("onAllClicked",function(){return t.clearGroupingFilters()})("onCipherTypeClicked",function(e){return t.filterCipherType(e)})("onCollectionClicked",function(e){return t.filterCollection(e.id)})("onSearchTextChanged",function(e){return t.filterSearchText(e)})("onTrashClicked",function(){return t.filterDeleted()}),m.ɵɵtext(7,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(8,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(9,"\n "),m.ɵɵelementStart(10,"div",4),m.ɵɵtext(11,"\n "),m.ɵɵelementStart(12,"div",5),m.ɵɵtext(13,"\n "),m.ɵɵelementStart(14,"h1"),m.ɵɵtext(15),m.ɵɵpipe(16,"i18n"),m.ɵɵelementStart(17,"small",6,7),m.ɵɵtext(19,"\n "),m.ɵɵtemplate(20,O,9,6,"ng-container",8),m.ɵɵtext(21,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(22,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(23,"\n "),m.ɵɵelementStart(24,"div",9),m.ɵɵtext(25,"\n "),m.ɵɵelementStart(26,"app-vault-bulk-actions",10),m.ɵɵtext(27,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(28,"\n "),m.ɵɵtemplate(29,T,5,3,"button",11),m.ɵɵtext(30,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(31,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(32,"\n "),m.ɵɵelementStart(33,"app-org-vault-ciphers",12),m.ɵɵlistener("onCipherClicked",function(e){return t.editCipher(e)})("onAttachmentsClicked",function(e){return t.editCipherAttachments(e)})("onAddCipher",function(){return t.addCipher()})("onCollectionsClicked",function(e){return t.editCipherCollections(e)})("onEventsClicked",function(e){return t.viewEvents(e)})("onCloneClicked",function(e){return t.cloneCipher(e)}),m.ɵɵtext(34,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(35,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(36,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(37,"\n"),m.ɵɵelementEnd(),m.ɵɵtext(38,"\n"),m.ɵɵtemplate(39,M,0,0,"ng-template",null,13,m.ɵɵtemplateRefExtractor),m.ɵɵtext(41,"\n"),m.ɵɵtemplate(42,B,0,0,"ng-template",null,14,m.ɵɵtemplateRefExtractor),m.ɵɵtext(44,"\n"),m.ɵɵtemplate(45,D,0,0,"ng-template",null,15,m.ɵɵtemplateRefExtractor),m.ɵɵtext(47,"\n"),m.ɵɵtemplate(48,V,0,0,"ng-template",null,16,m.ɵɵtemplateRefExtractor),m.ɵɵtext(50,"\n")),2&e){var n=m.ɵɵreference(18);m.ɵɵadvance(6),m.ɵɵproperty("showFolders",!1)("showFavorites",!1)("showTrash",!0),m.ɵɵadvance(9),m.ɵɵtextInterpolate1("\n ",m.ɵɵpipeBind1(16,11,"vault"),"\n "),m.ɵɵadvance(2),m.ɵɵproperty("appApiAction",t.ciphersComponent.actionPromise),m.ɵɵadvance(3),m.ɵɵproperty("ngIf",n.loading),m.ɵɵadvance(6),m.ɵɵproperty("ciphersComponent",t.ciphersComponent)("modal",t.modal)("deleted",t.deleted)("organization",t.organization),m.ɵɵadvance(3),m.ɵɵproperty("ngIf",!t.deleted)}},directives:[b.GroupingsComponent,S.ApiActionDirective,w.NgIf,C.BulkActionsComponent,I.CiphersComponent],pipes:[E.I18nPipe],encapsulation:2}),e}();t.VaultComponent=j},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]104857600)return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("maxFileSize")),[2];i.label=1;case 1:return i.trys.push([1,4,,5]),this.formPromise=this.saveCipherAttachment(t[0]),n=this,[4,this.formPromise];case 2:return n.cipherDomain=i.sent(),r=this,[4,this.cipherDomain.decrypt()];case 3:return r.cipher=i.sent(),this.platformUtilsService.eventTrack("Added Attachment"),this.platformUtilsService.showToast("success",null,this.i18nService.t("attachmentSaved")),this.onUploadedAttachment.emit(),[3,5];case 4:return i.sent(),[3,5];case 5:return e.type="",e.type="file",e.value="",[2]}})})},e.prototype.delete=function(e){return r(this,void 0,void 0,function(){var t;return i(this,function(n){switch(n.label){case 0:return null!=this.deletePromises[e.id]?[2]:[4,this.platformUtilsService.showDialog(this.i18nService.t("deleteAttachmentConfirmation"),this.i18nService.t("deleteAttachment"),this.i18nService.t("yes"),this.i18nService.t("no"),"warning")];case 1:if(!n.sent())return[2];n.label=2;case 2:return n.trys.push([2,4,,5]),this.deletePromises[e.id]=this.deleteCipherAttachment(e.id),[4,this.deletePromises[e.id]];case 3:return n.sent(),this.platformUtilsService.eventTrack("Deleted Attachment"),this.platformUtilsService.showToast("success",null,this.i18nService.t("deletedAttachment")),(t=this.cipher.attachments.indexOf(e))>-1&&this.cipher.attachments.splice(t,1),[3,5];case 4:return n.sent(),[3,5];case 5:return this.deletePromises[e.id]=null,this.onDeletedAttachment.emit(),[2]}})})},e.prototype.download=function(e){return r(this,void 0,void 0,function(){var t,n,r,a,o,s;return i(this,function(i){switch(i.label){case 0:return(t=e).downloading?[2]:this.canAccessAttachments?(t.downloading=!0,[4,fetch(new Request(e.url,{cache:"no-store"}))]):(this.platformUtilsService.showToast("error",this.i18nService.t("premiumRequired"),this.i18nService.t("premiumRequiredDesc")),[2]);case 1:if(200!==(n=i.sent()).status)return this.platformUtilsService.showToast("error",null,this.i18nService.t("errorOccurred")),t.downloading=!1,[2];i.label=2;case 2:return i.trys.push([2,8,,9]),[4,n.arrayBuffer()];case 3:return r=i.sent(),null==e.key?[3,4]:(o=e.key,[3,6]);case 4:return[4,this.cryptoService.getOrgKey(this.cipher.organizationId)];case 5:o=i.sent(),i.label=6;case 6:return a=o,[4,this.cryptoService.decryptFromBytes(r,a)];case 7:return s=i.sent(),this.platformUtilsService.saveFile(this.win,s,null,e.fileName),[3,9];case 8:return i.sent(),this.platformUtilsService.showToast("error",null,this.i18nService.t("errorOccurred")),[3,9];case 9:return t.downloading=!1,[2]}})})},e.prototype.init=function(){return r(this,void 0,void 0,function(){var e,t,n,r;return i(this,function(i){switch(i.label){case 0:return e=this,[4,this.loadCipher()];case 1:return e.cipherDomain=i.sent(),t=this,[4,this.cipherDomain.decrypt()];case 2:return t.cipher=i.sent(),n=this,[4,this.cryptoService.hasEncKey()];case 3:return n.hasUpdatedKey=i.sent(),[4,this.userService.canAccessPremium()];case 4:return r=i.sent(),this.canAccessAttachments=r||null!=this.cipher.organizationId,this.canAccessAttachments?[3,6]:[4,this.platformUtilsService.showDialog(this.i18nService.t("premiumRequiredDesc"),this.i18nService.t("premiumRequired"),this.i18nService.t("learnMore"),this.i18nService.t("cancel"))];case 5:return i.sent()&&this.platformUtilsService.launchUri("https://vault.bitwarden.com/#/?premium=purchase"),[3,8];case 6:return this.hasUpdatedKey?[3,8]:[4,this.platformUtilsService.showDialog(this.i18nService.t("updateKey"),this.i18nService.t("featureUnavailable"),this.i18nService.t("learnMore"),this.i18nService.t("cancel"),"warning")];case 7:i.sent()&&this.platformUtilsService.launchUri("https://help.bitwarden.com/article/update-encryption-key/"),i.label=8;case 8:return[2]}})})},e.prototype.reuploadCipherAttachment=function(e,t){return r(this,void 0,void 0,function(){var n,a=this;return i(this,function(o){switch(o.label){case 0:if(n=e,null!=e.key||n.downloading||null!=this.reuploadPromises[e.id])return[2];o.label=1;case 1:return o.trys.push([1,3,,4]),this.reuploadPromises[e.id]=Promise.resolve().then(function(){return r(a,void 0,void 0,function(){var r,a,o,s,l,c,p,u,d;return i(this,function(i){switch(i.label){case 0:return n.downloading=!0,[4,fetch(new Request(e.url,{cache:"no-store"}))];case 1:if(200!==(r=i.sent()).status)return this.platformUtilsService.showToast("error",null,this.i18nService.t("errorOccurred")),n.downloading=!1,[2];i.label=2;case 2:return i.trys.push([2,11,,12]),[4,r.arrayBuffer()];case 3:return a=i.sent(),null==e.key?[3,4]:(s=e.key,[3,6]);case 4:return[4,this.cryptoService.getOrgKey(this.cipher.organizationId)];case 5:s=i.sent(),i.label=6;case 6:return o=s,[4,this.cryptoService.decryptFromBytes(a,o)];case 7:return l=i.sent(),c=this,[4,this.cipherService.saveAttachmentRawWithServer(this.cipherDomain,e.fileName,l,t)];case 8:return c.cipherDomain=i.sent(),p=this,[4,this.cipherDomain.decrypt()];case 9:return p.cipher=i.sent(),this.deletePromises[e.id]=this.deleteCipherAttachment(e.id),[4,this.deletePromises[e.id]];case 10:return i.sent(),(u=this.cipher.attachments.filter(function(t){return t.id===e.id})).length>0&&(d=this.cipher.attachments.indexOf(u[0]))>-1&&this.cipher.attachments.splice(d,1),this.platformUtilsService.eventTrack("Reuploaded Attachment"),this.platformUtilsService.showToast("success",null,this.i18nService.t("attachmentSaved")),this.onReuploadedAttachment.emit(),[3,12];case 11:return i.sent(),this.platformUtilsService.showToast("error",null,this.i18nService.t("errorOccurred")),[3,12];case 12:return n.downloading=!1,[2]}})})}),[4,this.reuploadPromises[e.id]];case 2:return o.sent(),[3,4];case 3:return o.sent(),[3,4];case 4:return[2]}})})},e.prototype.loadCipher=function(){return this.cipherService.get(this.cipherId)},e.prototype.saveCipherAttachment=function(e){return this.cipherService.saveAttachmentWithServer(this.cipherDomain,e)},e.prototype.deleteCipherAttachment=function(e){return this.cipherService.deleteAttachmentWithServer(this.cipher.id,e)},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(s.CipherService),o.ɵɵdirectiveInject(l.I18nService),o.ɵɵdirectiveInject(c.CryptoService),o.ɵɵdirectiveInject(p.UserService),o.ɵɵdirectiveInject(u.PlatformUtilsService),o.ɵɵdirectiveInject(Window))},e.ɵdir=o.ɵɵdefineDirective({type:e,inputs:{cipherId:"cipherId"},outputs:{onUploadedAttachment:"onUploadedAttachment",onDeletedAttachment:"onDeletedAttachment",onReuploadedAttachment:"onReuploadedAttachment"}}),e}();t.AttachmentsComponent=d},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&(this.organizationId=this.organizations[0].id),this.filterCollections(),[2]}})})},e.prototype.ngOnDestroy=function(){this.selectAll(!1)},e.prototype.filterCollections=function(){var e=this;this.selectAll(!1),null==this.organizationId||0===this.writeableCollections.length?this.collections=[]:this.collections=this.writeableCollections.filter(function(t){return t.organizationId===e.organizationId})},e.prototype.submit=function(){return r(this,void 0,void 0,function(){var e;return i(this,function(t){switch(t.label){case 0:e=this.collections.filter(function(e){return e.checked}).map(function(e){return e.id}),t.label=1;case 1:return t.trys.push([1,3,,4]),this.formPromise=this.cipherService.shareManyWithServer(this.shareableCiphers,this.organizationId,e),[4,this.formPromise];case 2:return t.sent(),this.onShared.emit(),this.analytics.eventTrack.next({action:"Bulk Shared Items"}),this.toasterService.popAsync("success",null,this.i18nService.t("sharedItems")),[3,4];case 3:return t.sent(),[3,4];case 4:return[2]}})})},e.prototype.check=function(e,t){e.checked=null==t?!e.checked:t},e.prototype.selectAll=function(e){var t=this;(e?this.collections:this.writeableCollections).forEach(function(n){return t.check(n,e)})},Object.defineProperty(e.prototype,"canSave",{get:function(){if(null!=this.shareableCiphers&&this.shareableCiphers.length>0&&null!=this.collections)for(var e=0;e0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=this.maxAccessCount},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"expired",{get:function(){return null!=this.expirationDate&&this.expirationDate<=new Date},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pendingDelete",{get:function(){return this.deletionDate<=new Date},enumerable:!0,configurable:!0}),e}();t.SendView=o},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0),f.ɵɵadvance(2),f.ɵɵproperty("ngIf",(null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.minLength)>0),f.ɵɵadvance(2),f.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireUpper),f.ɵɵadvance(2),f.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireLower),f.ɵɵadvance(2),f.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireNumbers),f.ɵɵadvance(2),f.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireSpecial)}}var L=function(e){function t(t,n,r,i,a,o,s,l,c,p,u){var d=e.call(this,t,n,r,i,a,o,s)||this;return d.folderService=l,d.cipherService=c,d.syncService=p,d.apiService=u,d.rotateEncKey=!1,d}return i(t,e),t.prototype.rotateEncKeyClicked=function(){return a(this,void 0,void 0,function(){var e,t,n;return o(this,function(r){switch(r.label){case 0:return this.rotateEncKey?[4,this.cipherService.getAllDecrypted()]:[3,5];case 1:if(e=r.sent(),t=!1,null!=e)for(n=0;n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0),o.ɵɵadvance(2),o.ɵɵproperty("disabled",n.loading),o.ɵɵadvance(2),o.ɵɵpropertyInterpolate("title",o.ɵɵpipeBind1(43,27,"loading")),o.ɵɵadvance(4),o.ɵɵtextInterpolate(o.ɵɵpipeBind1(47,29,"save"))}},directives:[u.NgControlStatusGroup,u.NgForm,d.ApiActionDirective,m.NgIf,m.NgForOf,u.DefaultValueAccessor,u.RequiredValidator,u.NgControlStatus,u.NgModel,h.A11yTitleDirective,m.NgClass,f.StopClickDirective],pipes:[v.I18nPipe],encapsulation:2}),e}();t.DomainRulesComponent=P},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]1?"×"+n.quantity:""," @ ",a.ɵɵpipeBind2(4,5,n.amount,"$"),"\n "),a.ɵɵadvance(4),a.ɵɵtextInterpolate2("\n ",a.ɵɵpipeBind2(8,8,n.quantity*n.amount,"$")," /",a.ɵɵpipeBind1(9,11,n.interval),"\n ")}}function A(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",16),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"strong",17),a.ɵɵtext(3),a.ɵɵpipe(4,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(5,"\n "),a.ɵɵelementStart(6,"table",18),a.ɵɵtext(7,"\n "),a.ɵɵelementStart(8,"tbody"),a.ɵɵtext(9,"\n "),a.ɵɵtemplate(10,_,11,13,"tr",19),a.ɵɵtext(11,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(12,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(13,"\n "),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext(3);a.ɵɵadvance(3),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(4,2,"details")),a.ɵɵadvance(7),a.ɵɵproperty("ngForOf",n.subscription.items)}}function O(e,t){if(1&e&&(a.ɵɵelementStart(0,"div",10),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"div",11),a.ɵɵtext(3,"\n "),a.ɵɵelementStart(4,"dl"),a.ɵɵtext(5,"\n "),a.ɵɵelementStart(6,"dt"),a.ɵɵtext(7),a.ɵɵpipe(8,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(9,"\n "),a.ɵɵelementStart(10,"dd"),a.ɵɵtext(11,"\n "),a.ɵɵelementStart(12,"span",12),a.ɵɵtext(13),a.ɵɵelementEnd(),a.ɵɵtext(14,"\n "),a.ɵɵtemplate(15,k,3,3,"span",13),a.ɵɵtext(16,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(17,"\n "),a.ɵɵelementStart(18,"dt"),a.ɵɵtext(19),a.ɵɵpipe(20,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(21,"\n "),a.ɵɵelementStart(22,"dd"),a.ɵɵtext(23),a.ɵɵpipe(24,"date"),a.ɵɵpipe(25,"currency"),a.ɵɵelementEnd(),a.ɵɵtext(26,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(27,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(28,"\n "),a.ɵɵtemplate(29,A,14,4,"div",14),a.ɵɵtext(30,"\n "),a.ɵɵelementEnd()),2&e){var n=a.ɵɵnextContext(2);a.ɵɵadvance(7),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(8,6,"status")),a.ɵɵadvance(6),a.ɵɵtextInterpolate(n.subscription&&n.subscription.status||"-"),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",n.subscriptionMarkedForCancel),a.ɵɵadvance(4),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(20,8,"nextCharge")),a.ɵɵadvance(4),a.ɵɵtextInterpolate1("",n.nextInvoice?a.ɵɵpipeBind2(24,10,n.nextInvoice.date,"mediumDate")+", "+a.ɵɵpipeBind2(25,13,n.nextInvoice.amount,"$"):"-","\n "),a.ɵɵadvance(6),a.ɵɵproperty("ngIf",n.subscription)}}function T(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",23),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"div",24),a.ɵɵtext(3,"\n "),a.ɵɵelementStart(4,"button",25),a.ɵɵlistener("click",function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(3).closeUpdateLicense(!1)}),a.ɵɵpipe(5,"i18n"),a.ɵɵelementStart(6,"span",26),a.ɵɵtext(7,"×"),a.ɵɵelementEnd(),a.ɵɵelementEnd(),a.ɵɵtext(8,"\n "),a.ɵɵelementStart(9,"h3",27),a.ɵɵtext(10),a.ɵɵpipe(11,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(12,"\n "),a.ɵɵelementStart(13,"app-update-license",28),a.ɵɵlistener("onUpdated",function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(3).closeUpdateLicense(!0)})("onCanceled",function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(3).closeUpdateLicense(!1)}),a.ɵɵtext(14,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(15,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(16,"\n "),a.ɵɵelementEnd()}2&e&&(a.ɵɵadvance(4),a.ɵɵpropertyInterpolate("appA11yTitle",a.ɵɵpipeBind1(5,2,"cancel")),a.ɵɵadvance(6),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(11,4,"updateLicense")))}function M(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementContainerStart(0),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"div"),a.ɵɵtext(3,"\n "),a.ɵɵelementStart(4,"button",20),a.ɵɵlistener("click",function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(2).updateLicense()}),a.ɵɵtext(5),a.ɵɵpipe(6,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(7,"\n "),a.ɵɵelementStart(8,"a",21),a.ɵɵtext(9),a.ɵɵpipe(10,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(11,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(12,"\n "),a.ɵɵtemplate(13,T,17,6,"div",22),a.ɵɵtext(14,"\n "),a.ɵɵelementContainerEnd()}if(2&e){var r=a.ɵɵnextContext(2);a.ɵɵadvance(5),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(6,3,"updateLicense"),"\n "),a.ɵɵadvance(4),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(10,5,"manageSubscription"),"\n "),a.ɵɵadvance(4),a.ɵɵproperty("ngIf",r.showUpdateLicense)}}function B(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"button",20),a.ɵɵlistener("click",function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(3).downloadLicense()}),a.ɵɵtext(1),a.ɵɵpipe(2,"i18n"),a.ɵɵelementEnd()}2&e&&(a.ɵɵadvance(1),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(2,1,"downloadLicense"),"\n "))}function D(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"button",35,36),a.ɵɵlistener("click",function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(3).cancel()}),a.ɵɵtext(2,"\n "),a.ɵɵelement(3,"i",9),a.ɵɵpipe(4,"i18n"),a.ɵɵtext(5,"\n "),a.ɵɵelementStart(6,"span"),a.ɵɵtext(7),a.ɵɵpipe(8,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(9,"\n "),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵreference(1),i=a.ɵɵnextContext(3);a.ɵɵproperty("appApiAction",i.cancelPromise)("disabled",r.loading),a.ɵɵadvance(3),a.ɵɵpropertyInterpolate("title",a.ɵɵpipeBind1(4,4,"loading")),a.ɵɵadvance(4),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(8,6,"cancelSubscription"))}}function V(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"div",29),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"button",20),a.ɵɵlistener("click",function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(4).adjustStorage(!0)}),a.ɵɵtext(3),a.ɵɵpipe(4,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(5,"\n "),a.ɵɵelementStart(6,"button",40),a.ɵɵlistener("click",function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(4).adjustStorage(!1)}),a.ɵɵtext(7),a.ɵɵpipe(8,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(9,"\n "),a.ɵɵelementEnd()}2&e&&(a.ɵɵadvance(3),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(4,2,"addStorage"),"\n "),a.ɵɵadvance(4),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(8,4,"removeStorage"),"\n "))}function j(e,t){if(1&e){var n=a.ɵɵgetCurrentView();a.ɵɵelementStart(0,"app-adjust-storage",41),a.ɵɵlistener("onAdjusted",function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(4).closeStorage(!0)})("onCanceled",function(){return a.ɵɵrestoreView(n),a.ɵɵnextContext(4).closeStorage(!1)}),a.ɵɵelementEnd()}if(2&e){var r=a.ɵɵnextContext(4);a.ɵɵproperty("storageGbPrice",4)("add",r.adjustStorageAdd)}}function R(e,t){if(1&e&&(a.ɵɵelementContainerStart(0),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"div",37),a.ɵɵtext(3,"\n "),a.ɵɵtemplate(4,V,10,6,"div",38),a.ɵɵtext(5,"\n "),a.ɵɵtemplate(6,j,1,2,"app-adjust-storage",39),a.ɵɵtext(7,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(8,"\n "),a.ɵɵelementContainerEnd()),2&e){var n=a.ɵɵnextContext(3);a.ɵɵadvance(4),a.ɵɵproperty("ngIf",!n.showAdjustStorage),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",n.showAdjustStorage)}}var F=function(e){return{width:e}};function U(e,t){if(1&e&&(a.ɵɵelementContainerStart(0),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"div",29),a.ɵɵtext(3,"\n "),a.ɵɵtemplate(4,B,3,3,"button",30),a.ɵɵtext(5,"\n "),a.ɵɵtemplate(6,D,10,8,"button",31),a.ɵɵtext(7,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(8,"\n "),a.ɵɵelementStart(9,"h2",32),a.ɵɵtext(10),a.ɵɵpipe(11,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(12,"\n "),a.ɵɵelementStart(13,"p"),a.ɵɵtext(14),a.ɵɵpipe(15,"i18n"),a.ɵɵelementEnd(),a.ɵɵtext(16,"\n "),a.ɵɵelementStart(17,"div",33),a.ɵɵtext(18,"\n "),a.ɵɵelementStart(19,"div",34),a.ɵɵtext(20),a.ɵɵpipe(21,"percent"),a.ɵɵelementEnd(),a.ɵɵtext(22,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(23,"\n "),a.ɵɵtemplate(24,R,9,2,"ng-container",1),a.ɵɵtext(25,"\n "),a.ɵɵelementContainerEnd()),2&e){var n=a.ɵɵnextContext(2);a.ɵɵadvance(4),a.ɵɵproperty("ngIf",!n.subscription||!n.subscription.cancelled),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",n.subscription&&!n.subscription.cancelled&&!n.subscriptionMarkedForCancel),a.ɵɵadvance(4),a.ɵɵtextInterpolate(a.ɵɵpipeBind1(11,8,"storage")),a.ɵɵadvance(4),a.ɵɵtextInterpolate(a.ɵɵpipeBind3(15,10,"subscriptionStorage",n.sub.maxStorageGb||0,n.sub.storageName||"0 MB")),a.ɵɵadvance(5),a.ɵɵproperty("ngStyle",a.ɵɵpureFunction1(16,F,n.storageProgressWidth+"%")),a.ɵɵattribute("aria-valuenow",n.storagePercentage),a.ɵɵadvance(1),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(21,14,n.storagePercentage/100),""),a.ɵɵadvance(4),a.ɵɵproperty("ngIf",n.subscription&&!n.subscription.cancelled&&!n.subscriptionMarkedForCancel)}}function N(e,t){if(1&e&&(a.ɵɵelementContainerStart(0),a.ɵɵtext(1,"\n "),a.ɵɵtemplate(2,w,4,6,"app-callout",4),a.ɵɵtext(3,"\n "),a.ɵɵtemplate(4,C,18,14,"app-callout",4),a.ɵɵtext(5,"\n "),a.ɵɵtemplate(6,P,10,5,"dl",1),a.ɵɵtext(7,"\n "),a.ɵɵtemplate(8,O,31,16,"div",5),a.ɵɵtext(9,"\n "),a.ɵɵtemplate(10,M,15,7,"ng-container",1),a.ɵɵtext(11,"\n "),a.ɵɵtemplate(12,U,26,18,"ng-container",1),a.ɵɵtext(13,"\n"),a.ɵɵelementContainerEnd()),2&e){var n=a.ɵɵnextContext();a.ɵɵadvance(2),a.ɵɵproperty("ngIf",n.subscription&&n.subscription.cancelled),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",n.subscriptionMarkedForCancel),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",n.selfHosted),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",!n.selfHosted),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",n.selfHosted),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",!n.selfHosted)}}var z=function(){function e(e,t,n,r,i,a,o){this.tokenService=e,this.apiService=t,this.platformUtilsService=n,this.i18nService=r,this.analytics=i,this.toasterService=a,this.router=o,this.loading=!1,this.firstLoaded=!1,this.adjustStorageAdd=!0,this.showAdjustStorage=!1,this.showUpdateLicense=!1,this.selfHosted=!1,this.selfHosted=n.isSelfHost()}return e.prototype.ngOnInit=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return[4,this.load()];case 1:return e.sent(),this.firstLoaded=!0,[2]}})})},e.prototype.load=function(){return r(this,void 0,void 0,function(){var e;return i(this,function(t){switch(t.label){case 0:return this.loading?[2]:this.tokenService.getPremium()?(this.loading=!0,e=this,[4,this.apiService.getUserSubscription()]):[3,2];case 1:return e.sub=t.sent(),[3,3];case 2:return this.router.navigate(["/settings/premium"]),[2];case 3:return this.loading=!1,[2]}})})},e.prototype.reinstate=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.loading?[2]:this.usingInAppPurchase?(this.platformUtilsService.showDialog(this.i18nService.t("manageSubscriptionFromStore"),this.i18nService.t("cancelSubscription"),null,null,"warning"),[2]):[4,this.platformUtilsService.showDialog(this.i18nService.t("reinstateConfirmation"),this.i18nService.t("reinstateSubscription"),this.i18nService.t("yes"),this.i18nService.t("cancel"))];case 1:if(!e.sent())return[2];e.label=2;case 2:return e.trys.push([2,4,,5]),this.reinstatePromise=this.apiService.postReinstatePremium(),[4,this.reinstatePromise];case 3:return e.sent(),this.analytics.eventTrack.next({action:"Reinstated Premium"}),this.toasterService.popAsync("success",null,this.i18nService.t("reinstated")),this.load(),[3,5];case 4:return e.sent(),[3,5];case 5:return[2]}})})},e.prototype.cancel=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.loading?[2]:this.usingInAppPurchase?(this.platformUtilsService.showDialog(this.i18nService.t("manageSubscriptionFromStore"),this.i18nService.t("cancelSubscription"),null,null,"warning"),[2]):[4,this.platformUtilsService.showDialog(this.i18nService.t("cancelConfirmation"),this.i18nService.t("cancelSubscription"),this.i18nService.t("yes"),this.i18nService.t("no"),"warning")];case 1:if(!e.sent())return[2];e.label=2;case 2:return e.trys.push([2,4,,5]),this.cancelPromise=this.apiService.postCancelPremium(),[4,this.cancelPromise];case 3:return e.sent(),this.analytics.eventTrack.next({action:"Canceled Premium"}),this.toasterService.popAsync("success",null,this.i18nService.t("canceledSubscription")),this.load(),[3,5];case 4:return e.sent(),[3,5];case 5:return[2]}})})},e.prototype.downloadLicense=function(){if(!this.loading){var e=JSON.stringify(this.sub.license,null,2);this.platformUtilsService.saveFile(window,e,null,"bitwarden_premium_license.json")}},e.prototype.updateLicense=function(){this.loading||(this.showUpdateLicense=!0)},e.prototype.closeUpdateLicense=function(e){this.showUpdateLicense=!1,e&&this.load()},e.prototype.adjustStorage=function(e){this.usingInAppPurchase?this.platformUtilsService.showDialog(this.i18nService.t("cannotPerformInAppPurchase"),this.i18nService.t(e?"addStorage":"removeStorage"),null,null,"warning"):(this.adjustStorageAdd=e,this.showAdjustStorage=!0)},e.prototype.closeStorage=function(e){this.showAdjustStorage=!1,e&&this.load()},Object.defineProperty(e.prototype,"subscriptionMarkedForCancel",{get:function(){return null!=this.subscription&&!this.subscription.cancelled&&this.subscription.cancelAtEndDate},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"subscription",{get:function(){return null!=this.sub?this.sub.subscription:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"nextInvoice",{get:function(){return null!=this.sub?this.sub.upcomingInvoice:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"storagePercentage",{get:function(){return null!=this.sub&&this.sub.maxStorageGb?+(this.sub.storageGb/this.sub.maxStorageGb*100).toFixed(2):0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"storageProgressWidth",{get:function(){return this.storagePercentage<5?5:0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"usingInAppPurchase",{get:function(){return null!=this.sub&&this.sub.usingInAppPurchase},enumerable:!0,configurable:!0}),e.ɵfac=function(t){return new(t||e)(a.ɵɵdirectiveInject(o.TokenService),a.ɵɵdirectiveInject(s.ApiService),a.ɵɵdirectiveInject(l.PlatformUtilsService),a.ɵɵdirectiveInject(c.I18nService),a.ɵɵdirectiveInject(p.Angulartics2),a.ɵɵdirectiveInject(u.ToasterService),a.ɵɵdirectiveInject(d.Router))},e.ɵcmp=a.ɵɵdefineComponent({type:e,selectors:[["app-user-subscription"]],decls:13,vars:6,consts:[[1,"page-header"],[4,"ngIf"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],["type","warning",3,"title",4,"ngIf"],["class","row",4,"ngIf"],["type","warning",3,"title"],["type","button",1,"btn","btn-outline-secondary","btn-submit",3,"appApiAction","disabled","click"],["reinstateBtn",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],[1,"row"],[1,"col-4"],[1,"text-capitalize"],["class","badge badge-warning",4,"ngIf"],["class","col-8",4,"ngIf"],[1,"badge","badge-warning"],[1,"col-8"],[1,"d-block","mb-1"],[1,"table"],[4,"ngFor","ngForOf"],["type","button",1,"btn","btn-outline-secondary",3,"click"],["href","https://vault.bitwarden.com/#/settings/subscription","target","_blank","rel","noopener",1,"btn","btn-outline-secondary"],["class","card mt-3",4,"ngIf"],[1,"card","mt-3"],[1,"card-body"],["type","button",1,"close",3,"appA11yTitle","click"],["aria-hidden","true"],[1,"card-body-header"],[3,"onUpdated","onCanceled"],[1,"d-flex"],["type","button","class","btn btn-outline-secondary",3,"click",4,"ngIf"],["type","button","class","btn btn-outline-danger btn-submit ml-auto",3,"appApiAction","disabled","click",4,"ngIf"],[1,"spaced-header"],[1,"progress"],["role","progressbar","aria-valuemin","0","aria-valuemax","100",1,"progress-bar","bg-success",3,"ngStyle"],["type","button",1,"btn","btn-outline-danger","btn-submit","ml-auto",3,"appApiAction","disabled","click"],["cancelBtn",""],[1,"mt-3"],["class","d-flex",4,"ngIf"],[3,"storageGbPrice","add","onAdjusted","onCanceled",4,"ngIf"],["type","button",1,"ml-1","btn","btn-outline-secondary",3,"click"],[3,"storageGbPrice","add","onAdjusted","onCanceled"]],template:function(e,t){1&e&&(a.ɵɵelementStart(0,"div",0),a.ɵɵtext(1,"\n "),a.ɵɵelementStart(2,"h1"),a.ɵɵtext(3),a.ɵɵpipe(4,"i18n"),a.ɵɵtemplate(5,b,9,6,"small",1),a.ɵɵtext(6,"\n "),a.ɵɵelementEnd(),a.ɵɵtext(7,"\n"),a.ɵɵelementEnd(),a.ɵɵtext(8,"\n"),a.ɵɵtemplate(9,S,9,6,"ng-container",1),a.ɵɵtext(10,"\n"),a.ɵɵtemplate(11,N,14,6,"ng-container",1),a.ɵɵtext(12,"\n")),2&e&&(a.ɵɵadvance(3),a.ɵɵtextInterpolate1("\n ",a.ɵɵpipeBind1(4,4,"premiumMembership"),"\n "),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",t.firstLoaded&&t.loading),a.ɵɵadvance(4),a.ɵɵproperty("ngIf",!t.firstLoaded&&t.loading),a.ɵɵadvance(2),a.ɵɵproperty("ngIf",t.sub))},directives:[m.NgIf,h.CalloutComponent,f.ApiActionDirective,m.NgForOf,v.A11yTitleDirective,y.UpdateLicenseComponent,m.NgStyle,g.AdjustStorageComponent],pipes:[x.I18nPipe,m.DatePipe,m.CurrencyPipe,m.PercentPipe],encapsulation:2}),e}();t.UserSubscriptionComponent=z},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]-1})];case 1:return t.sent(),this.clearFilters(),this.collectionId=e,this.go(),[2]}})})},e.prototype.filterSearchText=function(e){this.ciphersComponent.searchText=e,this.ciphersComponent.search(200)},e.prototype.editCipherAttachments=function(e){return r(this,void 0,void 0,function(){var t,n,a,s,l,c=this;return i(this,function(u){switch(u.label){case 0:return[4,this.userService.canAccessPremium()];case 1:return t=u.sent(),null!=e.organizationId||t?[3,2]:(this.messagingService.send("premiumRequired"),[2]);case 2:return null==e.organizationId?[3,4]:[4,this.userService.getOrganization(e.organizationId)];case 3:if(null!=(n=u.sent())&&(null==n.maxStorageGb||0===n.maxStorageGb))return this.messagingService.send("upgradeOrganization",{organizationId:e.organizationId}),[2];u.label=4;case 4:return null!=this.modal&&this.modal.close(),a=this.componentFactoryResolver.resolveComponentFactory(o.ModalComponent),this.modal=this.attachmentsModalRef.createComponent(a).instance,(s=this.modal.show(p.AttachmentsComponent,this.attachmentsModalRef)).cipherId=e.id,l=!1,s.onUploadedAttachment.subscribe(function(){return l=!0}),s.onDeletedAttachment.subscribe(function(){return l=!0}),s.onReuploadedAttachment.subscribe(function(){return l=!0}),this.modal.onClosed.subscribe(function(){return r(c,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.modal=null,l?[4,this.ciphersComponent.refresh()]:[3,2];case 1:e.sent(),e.label=2;case 2:return l=!1,[2]}})})}),[2]}})})},e.prototype.shareCipher=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(o.ModalComponent);this.modal=this.shareModalRef.createComponent(n).instance;var a=this.modal.show(f.ShareComponent,this.shareModalRef);a.cipherId=e.id,a.onSharedCipher.subscribe(function(){return r(t,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}})})}),this.modal.onClosed.subscribe(function(){return r(t,void 0,void 0,function(){return i(this,function(e){return this.modal=null,[2]})})})},e.prototype.editCipherCollections=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(o.ModalComponent);this.modal=this.collectionsModalRef.createComponent(n).instance;var a=this.modal.show(d.CollectionsComponent,this.collectionsModalRef);a.cipherId=e.id,a.onSavedCollections.subscribe(function(){return r(t,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}})})}),this.modal.onClosed.subscribe(function(){return r(t,void 0,void 0,function(){return i(this,function(e){return this.modal=null,[2]})})})},e.prototype.addFolder=function(){return r(this,void 0,void 0,function(){var e,t,n=this;return i(this,function(a){return null!=this.modal&&this.modal.close(),e=this.componentFactoryResolver.resolveComponentFactory(o.ModalComponent),this.modal=this.folderAddEditModalRef.createComponent(e).instance,(t=this.modal.show(m.FolderAddEditComponent,this.folderAddEditModalRef)).folderId=null,t.onSavedFolder.subscribe(function(){return r(n,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.modal.close(),[4,this.groupingsComponent.loadFolders()];case 1:return e.sent(),[2]}})})}),this.modal.onClosed.subscribe(function(){n.modal=null}),[2]})})},e.prototype.editFolder=function(e){return r(this,void 0,void 0,function(){var t,n,a=this;return i(this,function(s){return null!=this.modal&&this.modal.close(),t=this.componentFactoryResolver.resolveComponentFactory(o.ModalComponent),this.modal=this.folderAddEditModalRef.createComponent(t).instance,(n=this.modal.show(m.FolderAddEditComponent,this.folderAddEditModalRef)).folderId=e,n.onSavedFolder.subscribe(function(){return r(a,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.modal.close(),[4,this.groupingsComponent.loadFolders()];case 1:return e.sent(),[2]}})})}),n.onDeletedFolder.subscribe(function(){return r(a,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.modal.close(),[4,this.groupingsComponent.loadFolders()];case 1:return e.sent(),[4,this.filterFolder("none")];case 2:return e.sent(),this.groupingsComponent.selectedFolderId=null,[2]}})})}),this.modal.onClosed.subscribe(function(){a.modal=null}),[2]})})},e.prototype.addCipher=function(){var e=this,t=this.editCipher(null);if(t.type=this.type,t.folderId="none"===this.folderId?null:this.folderId,null!=this.collectionId){var n=this.groupingsComponent.collections.filter(function(t){return t.id===e.collectionId});n.length>0&&(t.organizationId=n[0].organizationId,t.collectionIds=[this.collectionId])}},e.prototype.editCipher=function(e){var t=this;null!=this.modal&&this.modal.close();var n=this.componentFactoryResolver.resolveComponentFactory(o.ModalComponent);this.modal=this.cipherAddEditModalRef.createComponent(n).instance;var a=this.modal.show(c.AddEditComponent,this.cipherAddEditModalRef);return a.cipherId=null==e?null:e.id,a.onSavedCipher.subscribe(function(e){return r(t,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}})})}),a.onDeletedCipher.subscribe(function(e){return r(t,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}})})}),a.onRestoredCipher.subscribe(function(e){return r(t,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.modal.close(),[4,this.ciphersComponent.refresh()];case 1:return e.sent(),[2]}})})}),this.modal.onClosed.subscribe(function(){t.modal=null}),a},e.prototype.cloneCipher=function(e){this.editCipher(e).cloneMode=!0},e.prototype.updateKey=function(){var e=this;null!=this.modal&&this.modal.close();var t=this.componentFactoryResolver.resolveComponentFactory(o.ModalComponent);this.modal=this.updateKeyModalRef.createComponent(t).instance,this.modal.show(l.UpdateKeyComponent,this.updateKeyModalRef),this.modal.onClosed.subscribe(function(){e.modal=null})},e.prototype.clearFilters=function(){this.folderId=null,this.collectionId=null,this.favorites=!1,this.type=null,this.deleted=!1},e.prototype.go=function(e){void 0===e&&(e=null),null==e&&(e={favorites:!!this.favorites||null,type:this.type,folderId:this.folderId,collectionId:this.collectionId,deleted:!!this.deleted||null}),this.router.navigate([],{relativeTo:this.route,queryParams:e,replaceUrl:!0})},e.ɵfac=function(t){return new(t||e)(v.ɵɵdirectiveInject(y.SyncService),v.ɵɵdirectiveInject(g.ActivatedRoute),v.ɵɵdirectiveInject(g.Router),v.ɵɵdirectiveInject(v.ChangeDetectorRef),v.ɵɵdirectiveInject(x.I18nService),v.ɵɵdirectiveInject(v.ComponentFactoryResolver),v.ɵɵdirectiveInject(b.TokenService),v.ɵɵdirectiveInject(S.CryptoService),v.ɵɵdirectiveInject(w.MessagingService),v.ɵɵdirectiveInject(C.UserService),v.ɵɵdirectiveInject(I.PlatformUtilsService),v.ɵɵdirectiveInject(E.BroadcasterService),v.ɵɵdirectiveInject(v.NgZone))},e.ɵcmp=v.ɵɵdefineComponent({type:e,selectors:[["app-vault"]],viewQuery:function(e,t){var n;(1&e&&(v.ɵɵstaticViewQuery(h.GroupingsComponent,!0),v.ɵɵstaticViewQuery(u.CiphersComponent,!0),v.ɵɵstaticViewQuery(s.OrganizationsComponent,!0),v.ɵɵstaticViewQuery(j,!0,a.ViewContainerRef),v.ɵɵstaticViewQuery(R,!0,a.ViewContainerRef),v.ɵɵstaticViewQuery(F,!0,a.ViewContainerRef),v.ɵɵstaticViewQuery(U,!0,a.ViewContainerRef),v.ɵɵstaticViewQuery(N,!0,a.ViewContainerRef),v.ɵɵstaticViewQuery(z,!0,a.ViewContainerRef)),2&e)&&(v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.groupingsComponent=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.ciphersComponent=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.organizationsComponent=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.attachmentsModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.folderAddEditModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.cipherAddEditModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.shareModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.collectionsModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.updateKeyModalRef=n.first))},decls:88,vars:20,consts:[[1,"container","page-content"],[1,"row"],[1,"col-3"],[3,"onAllClicked","onFavoritesClicked","onCipherTypeClicked","onFolderClicked","onAddFolder","onEditFolder","onCollectionClicked","onSearchTextChanged","onTrashClicked"],[1,"col-6"],[1,"page-header","d-flex"],[3,"appApiAction"],["actionSpinner",""],[4,"ngIf"],[1,"ml-auto","d-flex"],[3,"ciphersComponent","modal","deleted"],["type","button","class","btn btn-outline-primary btn-sm",3,"click",4,"ngIf"],[3,"onCipherClicked","onAttachmentsClicked","onAddCipher","onShareClicked","onCollectionsClicked","onCloneClicked"],["class","card border-warning mb-4",4,"ngIf"],["class","d-block mb-4",4,"ngIf"],[1,"d-block","mb-4"],["class","card border-success mb-4",4,"ngIf"],[1,"card"],[1,"card-header","d-flex"],["href","https://help.bitwarden.com/article/what-is-an-organization/","target","_blank","rel","noopener",1,"ml-auto",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-question-circle-o"],[1,"card-body"],[3,"vault"],["attachments",""],["folderAddEdit",""],["cipherAddEdit",""],["share",""],["collections",""],["updateKeyTemplate",""],["aria-hidden","true",1,"fa","fa-spinner","fa-spin","text-muted",3,"title"],[1,"sr-only"],["type","button",1,"btn","btn-outline-primary","btn-sm",3,"click"],["aria-hidden","true",1,"fa","fa-plus","fa-fw"],[1,"card","border-warning","mb-4"],[1,"card-header","bg-warning","text-white"],["aria-hidden","true",1,"fa","fa-warning","fa-fw"],["type","button",1,"btn","btn-block","btn-outline-secondary",3,"click"],["target","_blank","href","https://browser-update.org/update-browser.html","rel","noopener",1,"btn","btn-block","btn-outline-secondary"],[1,"card","border-success","mb-4"],[1,"card-header","bg-success","text-white"],["aria-hidden","true",1,"fa","fa-star","fa-fw"],["routerLink","/settings/premium",1,"btn","btn-block","btn-outline-secondary"]],template:function(e,t){if(1&e&&(v.ɵɵelementStart(0,"div",0),v.ɵɵtext(1,"\n "),v.ɵɵelementStart(2,"div",1),v.ɵɵtext(3,"\n "),v.ɵɵelementStart(4,"div",2),v.ɵɵtext(5,"\n "),v.ɵɵelementStart(6,"app-vault-groupings",3),v.ɵɵlistener("onAllClicked",function(){return t.clearGroupingFilters()})("onFavoritesClicked",function(){return t.filterFavorites()})("onCipherTypeClicked",function(e){return t.filterCipherType(e)})("onFolderClicked",function(e){return t.filterFolder(e.id)})("onAddFolder",function(){return t.addFolder()})("onEditFolder",function(e){return t.editFolder(e.id)})("onCollectionClicked",function(e){return t.filterCollection(e.id)})("onSearchTextChanged",function(e){return t.filterSearchText(e)})("onTrashClicked",function(){return t.filterDeleted()}),v.ɵɵtext(7,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(8,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(9,"\n "),v.ɵɵelementStart(10,"div",4),v.ɵɵtext(11,"\n "),v.ɵɵelementStart(12,"div",5),v.ɵɵtext(13,"\n "),v.ɵɵelementStart(14,"h1"),v.ɵɵtext(15),v.ɵɵpipe(16,"i18n"),v.ɵɵelementStart(17,"small",6,7),v.ɵɵtext(19,"\n "),v.ɵɵtemplate(20,L,9,6,"ng-container",8),v.ɵɵtext(21,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(22,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(23,"\n "),v.ɵɵelementStart(24,"div",9),v.ɵɵtext(25,"\n "),v.ɵɵelementStart(26,"app-vault-bulk-actions",10),v.ɵɵtext(27,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(28,"\n "),v.ɵɵtemplate(29,G,5,3,"button",11),v.ɵɵtext(30,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(31,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(32,"\n "),v.ɵɵelementStart(33,"app-vault-ciphers",12),v.ɵɵlistener("onCipherClicked",function(e){return t.editCipher(e)})("onAttachmentsClicked",function(e){return t.editCipherAttachments(e)})("onAddCipher",function(){return t.addCipher()})("onShareClicked",function(e){return t.shareCipher(e)})("onCollectionsClicked",function(e){return t.editCipherCollections(e)})("onCloneClicked",function(e){return t.cloneCipher(e)}),v.ɵɵtext(34,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(35,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(36,"\n "),v.ɵɵelementStart(37,"div",2),v.ɵɵtext(38,"\n "),v.ɵɵtemplate(39,K,19,9,"div",13),v.ɵɵtext(40,"\n "),v.ɵɵtemplate(41,q,1,0,"app-verify-email",14),v.ɵɵtext(42,"\n "),v.ɵɵelement(43,"app-send-info",15),v.ɵɵtext(44,"\n "),v.ɵɵtemplate(45,W,19,9,"div",13),v.ɵɵtext(46,"\n "),v.ɵɵtemplate(47,H,19,9,"div",16),v.ɵɵtext(48,"\n "),v.ɵɵelementStart(49,"div",17),v.ɵɵtext(50,"\n "),v.ɵɵelementStart(51,"div",18),v.ɵɵtext(52),v.ɵɵpipe(53,"i18n"),v.ɵɵelementStart(54,"a",19),v.ɵɵpipe(55,"i18n"),v.ɵɵtext(56,"\n "),v.ɵɵelement(57,"i",20),v.ɵɵtext(58,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(59,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(60,"\n "),v.ɵɵelementStart(61,"div",21),v.ɵɵtext(62,"\n "),v.ɵɵelement(63,"app-organizations",22),v.ɵɵtext(64,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(65,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(66,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(67,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(68,"\n"),v.ɵɵelementEnd(),v.ɵɵtext(69,"\n"),v.ɵɵtemplate(70,$,0,0,"ng-template",null,23,v.ɵɵtemplateRefExtractor),v.ɵɵtext(72,"\n"),v.ɵɵtemplate(73,Y,0,0,"ng-template",null,24,v.ɵɵtemplateRefExtractor),v.ɵɵtext(75,"\n"),v.ɵɵtemplate(76,Q,0,0,"ng-template",null,25,v.ɵɵtemplateRefExtractor),v.ɵɵtext(78,"\n"),v.ɵɵtemplate(79,J,0,0,"ng-template",null,26,v.ɵɵtemplateRefExtractor),v.ɵɵtext(81,"\n"),v.ɵɵtemplate(82,X,0,0,"ng-template",null,27,v.ɵɵtemplateRefExtractor),v.ɵɵtext(84,"\n"),v.ɵɵtemplate(85,Z,0,0,"ng-template",null,28,v.ɵɵtemplateRefExtractor),v.ɵɵtext(87,"\n")),2&e){var n=v.ɵɵreference(18);v.ɵɵadvance(15),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(16,14,"myVault"),"\n "),v.ɵɵadvance(2),v.ɵɵproperty("appApiAction",t.ciphersComponent.actionPromise),v.ɵɵadvance(3),v.ɵɵproperty("ngIf",n.loading),v.ɵɵadvance(6),v.ɵɵproperty("ciphersComponent",t.ciphersComponent)("modal",t.modal)("deleted",t.deleted),v.ɵɵadvance(3),v.ɵɵproperty("ngIf",!t.deleted),v.ɵɵadvance(10),v.ɵɵproperty("ngIf",t.showUpdateKey),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",t.showVerifyEmail),v.ɵɵadvance(4),v.ɵɵproperty("ngIf",t.showBrowserOutdated),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",t.showPremiumCallout),v.ɵɵadvance(5),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(53,16,"organizations"),"\n "),v.ɵɵadvance(2),v.ɵɵpropertyInterpolate("appA11yTitle",v.ɵɵpipeBind1(55,18,"learnMore")),v.ɵɵadvance(9),v.ɵɵproperty("vault",!0)}},directives:[P.GroupingsComponent,k.ApiActionDirective,_.NgIf,A.BulkActionsComponent,O.CiphersComponent,T.SendInfoComponent,M.A11yTitleDirective,B.OrganizationsComponent,D.VerifyEmailComponent,g.RouterLinkWithHref],pipes:[V.I18nPipe],encapsulation:2}),e}();t.VaultComponent=ee},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]-1&&this.trustedContacts.splice(t,1)},e.prototype.removeGrantor=function(e){var t=this.grantedContacts.indexOf(e);t>-1&&this.grantedContacts.splice(t,1)},e.prototype.doConfirmation=function(e){return r(this,void 0,void 0,function(){var t,n,r,a,o,s,p,u;return i(this,function(i){switch(i.label){case 0:return[4,this.cryptoService.getEncKey()];case 1:return t=i.sent(),[4,this.apiService.getUserPublicKey(e.granteeId)];case 2:n=i.sent(),r=l.Utils.fromB64ToArray(n.publicKey),i.label=3;case 3:return i.trys.push([3,5,,6]),o=(a=console).log,s="User's fingerprint: ",[4,this.cryptoService.getFingerprint(e.granteeId,r.buffer)];case 4:return o.apply(a,[s+i.sent().join("-")]),[3,6];case 5:return i.sent(),[3,6];case 6:return[4,this.cryptoService.rsaEncrypt(t.key,r.buffer)];case 7:return p=i.sent(),(u=new c.EmergencyAccessConfirmRequest).key=p.encryptedString,[4,this.apiService.postEmergencyAccessConfirm(e.id,u)];case 8:return i.sent(),[2]}})})},e.ɵfac=function(t){return new(t||e)(v.ɵɵdirectiveInject(y.ApiService),v.ɵɵdirectiveInject(g.I18nService),v.ɵɵdirectiveInject(v.ComponentFactoryResolver),v.ɵɵdirectiveInject(x.PlatformUtilsService),v.ɵɵdirectiveInject(b.ToasterService),v.ɵɵdirectiveInject(S.CryptoService),v.ɵɵdirectiveInject(w.StorageService),v.ɵɵdirectiveInject(C.UserService),v.ɵɵdirectiveInject(I.MessagingService))},e.ɵcmp=v.ɵɵdefineComponent({type:e,selectors:[["emergency-access"]],viewQuery:function(e,t){var n;(1&e&&(v.ɵɵstaticViewQuery(T,!0,a.ViewContainerRef),v.ɵɵstaticViewQuery(M,!0,a.ViewContainerRef),v.ɵɵstaticViewQuery(B,!0,a.ViewContainerRef)),2&e)&&(v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.addEditModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.takeoverModalRef=n.first),v.ɵɵqueryRefresh(n=v.ɵɵloadQuery())&&(t.confirmModalRef=n.first))},decls:59,vars:25,consts:[[1,"page-header"],["href","https://bitwarden.com/help/article/emergency-access/","target","_blank","rel","noopener"],[4,"ngIf"],[1,"page-header","d-flex"],["href","#","appStopClick","","class","badge badge-primary",3,"click",4,"ngIf"],[1,"ml-auto","d-flex"],["type","button",1,"btn","btn-sm","btn-outline-primary","ml-3",3,"disabled","click"],["aria-hidden","true",1,"fa","fa-plus","fa-fw"],["class","table table-hover table-list mb-0",4,"ngIf"],[1,"page-header","spaced-header"],["addEdit",""],["takeoverTemplate",""],["confirmTemplate",""],["href","#","appStopClick","",1,"badge","badge-primary",3,"click"],[1,"table","table-hover","table-list","mb-0"],[4,"ngFor","ngForOf"],["width","30"],["size","25",3,"data","email","circle","fontSize"],["href","#","appStopClick","",3,"click"],["class","badge badge-secondary",4,"ngIf"],["class","badge badge-warning",4,"ngIf"],["class","badge badge-success",4,"ngIf"],["class","badge badge-primary",4,"ngIf"],["class","text-muted d-block",4,"ngIf"],[1,"table-list-options"],["appListDropdown","",1,"dropdown"],["type","button","data-toggle","dropdown","aria-haspopup","true","aria-expanded","false",1,"btn","btn-outline-secondary","dropdown-toggle",3,"appA11yTitle"],["aria-hidden","true",1,"fa","fa-cog","fa-lg"],[1,"dropdown-menu","dropdown-menu-right"],["class","dropdown-item","href","#","appStopClick","",3,"click",4,"ngIf"],["class","dropdown-item text-success","href","#","appStopClick","",3,"click",4,"ngIf"],["class","dropdown-item text-warning","href","#","appStopClick","",3,"click",4,"ngIf"],["href","#","appStopClick","",1,"dropdown-item","text-danger",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-remove"],[1,"badge","badge-secondary"],[1,"badge","badge-warning"],[1,"badge","badge-success"],[1,"badge","badge-primary"],[1,"text-muted","d-block"],["href","#","appStopClick","",1,"dropdown-item",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-envelope-o"],["href","#","appStopClick","",1,"dropdown-item","text-success",3,"click"],["aria-hidden","true",1,"fa","fa-fw","fa-check"],["href","#","appStopClick","",1,"dropdown-item","text-warning",3,"click"],["class","dropdown-item",3,"routerLink",4,"ngIf"],["aria-hidden","true",1,"fa","fa-fw","fa-key"],[1,"dropdown-item",3,"routerLink"],["aria-hidden","true",1,"fa","fa-fw","fa-eye"]],template:function(e,t){1&e&&(v.ɵɵelementStart(0,"div",0),v.ɵɵtext(1,"\n "),v.ɵɵelementStart(2,"h1"),v.ɵɵtext(3),v.ɵɵpipe(4,"i18n"),v.ɵɵelementEnd(),v.ɵɵtext(5,"\n"),v.ɵɵelementEnd(),v.ɵɵtext(6,"\n"),v.ɵɵelementStart(7,"p"),v.ɵɵtext(8),v.ɵɵpipe(9,"i18n"),v.ɵɵelementStart(10,"a",1),v.ɵɵtext(11),v.ɵɵpipe(12,"i18n"),v.ɵɵelementEnd(),v.ɵɵtext(13,"\n"),v.ɵɵelementEnd(),v.ɵɵtext(14,"\n\n"),v.ɵɵtemplate(15,D,7,6,"p",2),v.ɵɵtext(16,"\n\n"),v.ɵɵelementStart(17,"div",3),v.ɵɵtext(18,"\n "),v.ɵɵelementStart(19,"h2"),v.ɵɵtext(20),v.ɵɵpipe(21,"i18n"),v.ɵɵtemplate(22,V,3,3,"a",4),v.ɵɵtext(23,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(24,"\n "),v.ɵɵelementStart(25,"div",5),v.ɵɵtext(26,"\n "),v.ɵɵelementStart(27,"button",6),v.ɵɵlistener("click",function(){return t.invite()}),v.ɵɵtext(28,"\n "),v.ɵɵelement(29,"i",7),v.ɵɵtext(30),v.ɵɵpipe(31,"i18n"),v.ɵɵelementEnd(),v.ɵɵtext(32,"\n "),v.ɵɵelementEnd(),v.ɵɵtext(33,"\n"),v.ɵɵelementEnd(),v.ɵɵtext(34,"\n\n"),v.ɵɵtemplate(35,$,7,1,"table",8),v.ɵɵtext(36,"\n\n"),v.ɵɵtemplate(37,Y,3,3,"p",2),v.ɵɵtext(38,"\n\n"),v.ɵɵelementStart(39,"div",9),v.ɵɵtext(40,"\n "),v.ɵɵelementStart(41,"h2"),v.ɵɵtext(42),v.ɵɵpipe(43,"i18n"),v.ɵɵelementEnd(),v.ɵɵtext(44,"\n"),v.ɵɵelementEnd(),v.ɵɵtext(45,"\n\n"),v.ɵɵtemplate(46,se,7,1,"table",8),v.ɵɵtext(47,"\n\n"),v.ɵɵtemplate(48,le,3,3,"p",2),v.ɵɵtext(49,"\n\n"),v.ɵɵtemplate(50,ce,0,0,"ng-template",null,10,v.ɵɵtemplateRefExtractor),v.ɵɵtext(52,"\n"),v.ɵɵtemplate(53,pe,0,0,"ng-template",null,11,v.ɵɵtemplateRefExtractor),v.ɵɵtext(55,"\n"),v.ɵɵtemplate(56,ue,0,0,"ng-template",null,12,v.ɵɵtemplateRefExtractor),v.ɵɵtext(58,"\n")),2&e&&(v.ɵɵadvance(3),v.ɵɵtextInterpolate(v.ɵɵpipeBind1(4,13,"emergencyAccess")),v.ɵɵadvance(5),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(9,15,"emergencyAccessDesc"),"\n "),v.ɵɵadvance(3),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(12,17,"learnMore"),".\n "),v.ɵɵadvance(4),v.ɵɵproperty("ngIf",t.isOrganizationOwner),v.ɵɵadvance(5),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(21,19,"trustedEmergencyContacts"),"\n "),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",!t.canAccessPremium),v.ɵɵadvance(5),v.ɵɵproperty("disabled",!t.canAccessPremium),v.ɵɵadvance(3),v.ɵɵtextInterpolate1("\n ",v.ɵɵpipeBind1(31,21,"addEmergencyContact"),"\n "),v.ɵɵadvance(5),v.ɵɵproperty("ngIf",t.trustedContacts&&t.trustedContacts.length),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",!t.trustedContacts||!t.trustedContacts.length),v.ɵɵadvance(5),v.ɵɵtextInterpolate(v.ɵɵpipeBind1(43,23,"designatedEmergencyContacts")),v.ɵɵadvance(4),v.ɵɵproperty("ngIf",t.grantedContacts&&t.grantedContacts.length),v.ɵɵadvance(2),v.ɵɵproperty("ngIf",!t.grantedContacts||!t.grantedContacts.length))},directives:[E.NgIf,P.StopClickDirective,E.NgForOf,k.AvatarComponent,_.A11yTitleDirective,A.RouterLinkWithHref],pipes:[O.I18nPipe],encapsulation:2}),e}();t.EmergencyAccessComponent=de},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.View=0]="View",e[e.Takeover=1]="Takeover"}(t.EmergencyAccessType||(t.EmergencyAccessType={}))},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(24),o=n(510),s=function(e){function t(t){var n=e.call(this,t)||this;return n.id=n.getResponseProperty("Id"),n.granteeId=n.getResponseProperty("GranteeId"),n.name=n.getResponseProperty("Name"),n.email=n.getResponseProperty("Email"),n.type=n.getResponseProperty("Type"),n.status=n.getResponseProperty("Status"),n.waitTimeDays=n.getResponseProperty("WaitTimeDays"),n.creationDate=n.getResponseProperty("CreationDate"),n}return i(t,e),t}(a.BaseResponse);t.EmergencyAccessGranteeDetailsResponse=s;var l=function(e){function t(t){var n=e.call(this,t)||this;return n.id=n.getResponseProperty("Id"),n.grantorId=n.getResponseProperty("GrantorId"),n.name=n.getResponseProperty("Name"),n.email=n.getResponseProperty("Email"),n.type=n.getResponseProperty("Type"),n.status=n.getResponseProperty("Status"),n.waitTimeDays=n.getResponseProperty("WaitTimeDays"),n.creationDate=n.getResponseProperty("CreationDate"),n}return i(t,e),t}(a.BaseResponse);t.EmergencyAccessGrantorDetailsResponse=l;var c=function(e){function t(t){var n=e.call(this,t)||this;return n.keyEncrypted=n.getResponseProperty("KeyEncrypted"),n.kdf=n.getResponseProperty("Kdf"),n.kdfIterations=n.getResponseProperty("KdfIterations"),n}return i(t,e),t}(a.BaseResponse);t.EmergencyAccessTakeoverResponse=c;var p=function(e){function t(t){var n=e.call(this,t)||this;n.ciphers=[],n.keyEncrypted=n.getResponseProperty("KeyEncrypted");var r=n.getResponseProperty("Ciphers");return null!=r&&(n.ciphers=r.map(function(e){return new o.CipherResponse(e)})),n}return i(t,e),t}(a.BaseResponse);t.EmergencyAccessViewResponse=p},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0),m.ɵɵadvance(2),m.ɵɵproperty("ngIf",(null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.minLength)>0),m.ɵɵadvance(2),m.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireUpper),m.ɵɵadvance(2),m.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireLower),m.ɵɵadvance(2),m.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireNumbers),m.ɵɵadvance(2),m.ɵɵproperty("ngIf",null==n.enforcedPolicyOptions?null:n.enforcedPolicyOptions.requireSpecial)}}var U=function(e){function t(t,n,r,i,a,o,l,c,p){var u=e.call(this,t,n,r,i,a,o,l)||this;return u.apiService=c,u.toasterService=p,u.onDone=new s.EventEmitter,u}return i(t,e),t.prototype.ngOnInit=function(){return a(this,void 0,void 0,function(){var e,t,n;return o(this,function(r){switch(r.label){case 0:return[4,this.apiService.getEmergencyGrantorPolicies(this.emergencyAccessId)];case 1:return null!=(e=r.sent()).data&&e.data.length>0?(t=e.data.map(function(e){return new p.Policy(new c.PolicyData(e))}),n=this,[4,this.policyService.getMasterPasswordPolicyOptions(t)]):[3,3];case 2:n.enforcedPolicyOptions=r.sent(),r.label=3;case 3:return[2]}})})},t.prototype.submit=function(){return a(this,void 0,void 0,function(){var e,t,n,r,i,a,s;return o(this,function(o){switch(o.label){case 0:return[4,this.strongPassword()];case 1:return o.sent()?[4,this.apiService.postEmergencyAccessTakeover(this.emergencyAccessId)]:[2];case 2:return e=o.sent(),[4,this.cryptoService.rsaDecrypt(e.keyEncrypted)];case 3:return t=o.sent(),null==(n=new u.SymmetricCryptoKey(t))?(this.toasterService.popAsync("error",this.i18nService.t("errorOccurred"),this.i18nService.t("unexpectedError")),[2]):[4,this.cryptoService.makeKey(this.masterPassword,this.email,e.kdf,e.kdfIterations)];case 4:return r=o.sent(),[4,this.cryptoService.hashPassword(this.masterPassword,r)];case 5:return i=o.sent(),[4,this.cryptoService.remakeEncKey(r,n)];case 6:a=o.sent(),(s=new d.EmergencyAccessPasswordRequest).newMasterPasswordHash=i,s.key=a[1].encryptedString,this.apiService.postEmergencyAccessPassword(this.emergencyAccessId,s);try{this.onDone.emit()}catch(l){}return[2]}})})},t.ɵfac=function(e){return new(e||t)(m.ɵɵdirectiveInject(h.I18nService),m.ɵɵdirectiveInject(f.CryptoService),m.ɵɵdirectiveInject(v.MessagingService),m.ɵɵdirectiveInject(y.UserService),m.ɵɵdirectiveInject(g.PasswordGenerationService),m.ɵɵdirectiveInject(x.PlatformUtilsService),m.ɵɵdirectiveInject(b.PolicyService),m.ɵɵdirectiveInject(S.ApiService),m.ɵɵdirectiveInject(w.ToasterService))},t.ɵcmp=m.ɵɵdefineComponent({type:t,selectors:[["emergency-access-takeover"]],inputs:{emergencyAccessId:"emergencyAccessId",name:"name",email:"email",kdf:"kdf",kdfIterations:"kdfIterations"},outputs:{onDone:"onDone"},features:[m.ɵɵInheritDefinitionFeature],decls:81,vars:32,consts:[["tabindex","-1","role","dialog","aria-modal","true","aria-labelledby","userAddEditTitle",1,"modal","fade"],["role","document",1,"modal-dialog","modal-lg"],["ngNativeValidate","",1,"modal-content",3,"appApiAction","ngSubmit"],["form",""],[1,"modal-header"],["id","userAddEditTitle",1,"modal-title"],["class","text-muted",4,"ngIf"],["type","button","data-dismiss","modal",1,"close",3,"appA11yTitle"],["aria-hidden","true"],[1,"modal-body"],["type","warning"],["type","info",4,"ngIf"],[1,"row"],[1,"col-6"],[1,"form-group"],["for","masterPassword"],["id","masterPassword","type","password","name","NewMasterPasswordHash","required","","appInputVerbatim","","autocomplete","new-password",1,"form-control","mb-1",3,"ngModel","ngModelChange","input"],[3,"score","showText"],["for","masterPasswordRetype"],["id","masterPasswordRetype","type","password","name","MasterPasswordRetype","required","","appInputVerbatim","","autocomplete","new-password",1,"form-control",3,"ngModel","ngModelChange"],[1,"modal-footer"],["type","submit",1,"btn","btn-primary","btn-submit",3,"disabled"],["aria-hidden","true",1,"fa","fa-spinner","fa-spin",3,"title"],["type","button","data-dismiss","modal",1,"btn","btn-outline-secondary"],[1,"text-muted"],["type","info"],[1,"mb-0"],[4,"ngIf"]],template:function(e,t){if(1&e&&(m.ɵɵelementStart(0,"div",0),m.ɵɵtext(1,"\n "),m.ɵɵelementStart(2,"div",1),m.ɵɵtext(3,"\n "),m.ɵɵelementStart(4,"form",2,3),m.ɵɵlistener("ngSubmit",function(){return t.submit()}),m.ɵɵtext(6,"\n "),m.ɵɵelementStart(7,"div",4),m.ɵɵtext(8,"\n "),m.ɵɵelementStart(9,"h2",5),m.ɵɵtext(10),m.ɵɵpipe(11,"i18n"),m.ɵɵtemplate(12,T,2,1,"small",6),m.ɵɵtext(13,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(14,"\n "),m.ɵɵelementStart(15,"button",7),m.ɵɵpipe(16,"i18n"),m.ɵɵtext(17,"\n "),m.ɵɵelementStart(18,"span",8),m.ɵɵtext(19,"×"),m.ɵɵelementEnd(),m.ɵɵtext(20,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(21,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(22,"\n "),m.ɵɵelementStart(23,"div",9),m.ɵɵtext(24,"\n "),m.ɵɵelementStart(25,"app-callout",10),m.ɵɵtext(26),m.ɵɵpipe(27,"i18n"),m.ɵɵelementEnd(),m.ɵɵtext(28,"\n "),m.ɵɵtemplate(29,F,18,9,"app-callout",11),m.ɵɵtext(30,"\n "),m.ɵɵelementStart(31,"div",12),m.ɵɵtext(32,"\n "),m.ɵɵelementStart(33,"div",13),m.ɵɵtext(34,"\n "),m.ɵɵelementStart(35,"div",14),m.ɵɵtext(36,"\n "),m.ɵɵelementStart(37,"label",15),m.ɵɵtext(38),m.ɵɵpipe(39,"i18n"),m.ɵɵelementEnd(),m.ɵɵtext(40,"\n "),m.ɵɵelementStart(41,"input",16),m.ɵɵlistener("ngModelChange",function(e){return t.masterPassword=e})("input",function(){return t.updatePasswordStrength()}),m.ɵɵelementEnd(),m.ɵɵtext(42,"\n "),m.ɵɵelement(43,"app-password-strength",17),m.ɵɵtext(44,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(45,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(46,"\n "),m.ɵɵelementStart(47,"div",13),m.ɵɵtext(48,"\n "),m.ɵɵelementStart(49,"div",14),m.ɵɵtext(50,"\n "),m.ɵɵelementStart(51,"label",18),m.ɵɵtext(52),m.ɵɵpipe(53,"i18n"),m.ɵɵelementEnd(),m.ɵɵtext(54,"\n "),m.ɵɵelementStart(55,"input",19),m.ɵɵlistener("ngModelChange",function(e){return t.masterPasswordRetype=e}),m.ɵɵelementEnd(),m.ɵɵtext(56,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(57,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(58,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(59,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(60,"\n "),m.ɵɵelementStart(61,"div",20),m.ɵɵtext(62,"\n "),m.ɵɵelementStart(63,"button",21),m.ɵɵtext(64,"\n "),m.ɵɵelement(65,"i",22),m.ɵɵpipe(66,"i18n"),m.ɵɵtext(67,"\n "),m.ɵɵelementStart(68,"span"),m.ɵɵtext(69),m.ɵɵpipe(70,"i18n"),m.ɵɵelementEnd(),m.ɵɵtext(71,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(72,"\n "),m.ɵɵelementStart(73,"button",23),m.ɵɵtext(74),m.ɵɵpipe(75,"i18n"),m.ɵɵelementEnd(),m.ɵɵtext(76,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(77,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(78,"\n "),m.ɵɵelementEnd(),m.ɵɵtext(79,"\n"),m.ɵɵelementEnd(),m.ɵɵtext(80,"\n")),2&e){var n=m.ɵɵreference(5);m.ɵɵadvance(4),m.ɵɵproperty("appApiAction",t.formPromise),m.ɵɵadvance(6),m.ɵɵtextInterpolate1("\n ",m.ɵɵpipeBind1(11,16,"takeover"),"\n "),m.ɵɵadvance(2),m.ɵɵproperty("ngIf",t.name),m.ɵɵadvance(3),m.ɵɵpropertyInterpolate("appA11yTitle",m.ɵɵpipeBind1(16,18,"close")),m.ɵɵadvance(11),m.ɵɵtextInterpolate(m.ɵɵpipeBind1(27,20,"loggedOutWarning")),m.ɵɵadvance(3),m.ɵɵproperty("ngIf",t.enforcedPolicyOptions),m.ɵɵadvance(9),m.ɵɵtextInterpolate(m.ɵɵpipeBind1(39,22,"newMasterPass")),m.ɵɵadvance(3),m.ɵɵproperty("ngModel",t.masterPassword),m.ɵɵadvance(2),m.ɵɵproperty("score",t.masterPasswordScore)("showText",!0),m.ɵɵadvance(9),m.ɵɵtextInterpolate(m.ɵɵpipeBind1(53,24,"confirmNewMasterPass")),m.ɵɵadvance(3),m.ɵɵproperty("ngModel",t.masterPasswordRetype),m.ɵɵadvance(8),m.ɵɵproperty("disabled",n.loading),m.ɵɵadvance(2),m.ɵɵpropertyInterpolate("title",m.ɵɵpipeBind1(66,26,"loading")),m.ɵɵadvance(4),m.ɵɵtextInterpolate(m.ɵɵpipeBind1(70,28,"save")),m.ɵɵadvance(5),m.ɵɵtextInterpolate(m.ɵɵpipeBind1(75,30,"cancel"))}},directives:[C.NgControlStatusGroup,C.NgForm,I.ApiActionDirective,E.NgIf,P.A11yTitleDirective,k.CalloutComponent,C.DefaultValueAccessor,C.RequiredValidator,_.InputVerbatimDirective,C.NgControlStatus,C.NgModel,A.PasswordStrengthComponent],pipes:[O.I18nPipe],encapsulation:2}),t}(l.ChangePasswordComponent);t.EmergencyAccessTakeoverComponent=U},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]-1?"&":"?",e+="end="+n),null!=r&&(e+=e.indexOf("?")>-1?"&":"?",e+="continuationToken="+r),e},e.prototype.isJsonResponse=function(e){var t=e.headers.get("content-type");return null!=t&&t.indexOf("application/json")>-1},e.prototype.isTextResponse=function(e){var t=e.headers.get("content-type");return null!=t&&t.indexOf("text")>-1},e}();t.ApiService=q},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(24),o=n(295),s=function(e){function t(t){var n=e.call(this,t)||this;return n.id=n.getResponseProperty("Id"),n.organizationId=n.getResponseProperty("OrganizationId"),n.name=n.getResponseProperty("Name"),n.externalId=n.getResponseProperty("ExternalId"),n}return i(t,e),t}(a.BaseResponse);t.CollectionResponse=s;var l=function(e){function t(t){var n=e.call(this,t)||this;return n.readOnly=n.getResponseProperty("ReadOnly")||!1,n}return i(t,e),t}(s);t.CollectionDetailsResponse=l;var c=function(e){function t(t){var n=e.call(this,t)||this;n.groups=[];var r=n.getResponseProperty("Groups");return null!=r&&(n.groups=r.map(function(e){return new o.SelectionReadOnlyResponse(e)})),n}return i(t,e),t}(s);t.CollectionGroupDetailsResponse=c},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(24),o=n(903),s=function(e){function t(t){var n=e.call(this,t)||this;n.globalEquivalentDomains=[],n.equivalentDomains=n.getResponseProperty("EquivalentDomains");var r=n.getResponseProperty("GlobalEquivalentDomains");return n.globalEquivalentDomains=null!=r?r.map(function(e){return new o.GlobalDomainResponse(e)}):[],n}return i(t,e),t}(a.BaseResponse);t.DomainsResponse=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(t){var n=e.call(this,t)||this;return n.id=n.getResponseProperty("Id"),n.name=n.getResponseProperty("Name"),n.revisionDate=n.getResponseProperty("RevisionDate"),n}return i(t,e),t}(n(24).BaseResponse);t.FolderResponse=a},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(24),o=n(675),s=function(e){function t(t){var n=e.call(this,t)||this;n.id=n.getResponseProperty("Id"),n.identifier=n.getResponseProperty("Identifier"),n.name=n.getResponseProperty("Name"),n.businessName=n.getResponseProperty("BusinessName"),n.businessAddress1=n.getResponseProperty("BusinessAddress1"),n.businessAddress2=n.getResponseProperty("BusinessAddress2"),n.businessAddress3=n.getResponseProperty("BusinessAddress3"),n.businessCountry=n.getResponseProperty("BusinessCountry"),n.businessTaxNumber=n.getResponseProperty("BusinessTaxNumber"),n.billingEmail=n.getResponseProperty("BillingEmail");var r=n.getResponseProperty("Plan");return n.plan=null==r?null:new o.PlanResponse(r),n.planType=n.getResponseProperty("PlanType"),n.seats=n.getResponseProperty("Seats"),n.maxCollections=n.getResponseProperty("MaxCollections"),n.maxStorageGb=n.getResponseProperty("MaxStorageGb"),n.useGroups=n.getResponseProperty("UseGroups"),n.useDirectory=n.getResponseProperty("UseDirectory"),n.useEvents=n.getResponseProperty("UseEvents"),n.useTotp=n.getResponseProperty("UseTotp"),n.use2fa=n.getResponseProperty("Use2fa"),n.useApi=n.getResponseProperty("UseApi"),n}return i(t,e),t}(a.BaseResponse);t.OrganizationResponse=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(t){var n=e.call(this,t)||this;return n.type=n.getResponseProperty("Type"),n.product=n.getResponseProperty("Product"),n.name=n.getResponseProperty("Name"),n.isAnnual=n.getResponseProperty("IsAnnual"),n.nameLocalizationKey=n.getResponseProperty("NameLocalizationKey"),n.descriptionLocalizationKey=n.getResponseProperty("DescriptionLocalizationKey"),n.canBeUsedByBusiness=n.getResponseProperty("CanBeUsedByBusiness"),n.baseSeats=n.getResponseProperty("BaseSeats"),n.baseStorageGb=n.getResponseProperty("BaseStorageGb"),n.maxCollections=n.getResponseProperty("MaxCollections"),n.maxUsers=n.getResponseProperty("MaxUsers"),n.hasAdditionalSeatsOption=n.getResponseProperty("HasAdditionalSeatsOption"),n.maxAdditionalSeats=n.getResponseProperty("MaxAdditionalSeats"),n.hasAdditionalStorageOption=n.getResponseProperty("HasAdditionalStorageOption"),n.maxAdditionalStorage=n.getResponseProperty("MaxAdditionalStorage"),n.hasPremiumAccessOption=n.getResponseProperty("HasPremiumAccessOption"),n.trialPeriodDays=n.getResponseProperty("TrialPeriodDays"),n.hasSelfHost=n.getResponseProperty("HasSelfHost"),n.hasPolicies=n.getResponseProperty("HasPolicies"),n.hasGroups=n.getResponseProperty("HasGroups"),n.hasDirectory=n.getResponseProperty("HasDirectory"),n.hasEvents=n.getResponseProperty("HasEvents"),n.hasTotp=n.getResponseProperty("HasTotp"),n.has2fa=n.getResponseProperty("Has2fa"),n.hasApi=n.getResponseProperty("HasApi"),n.hasSso=n.getResponseProperty("HasSso"),n.usersGetPremium=n.getResponseProperty("UsersGetPremium"),n.upgradeSortOrder=n.getResponseProperty("UpgradeSortOrder"),n.displaySortOrder=n.getResponseProperty("SortOrder"),n.legacyYear=n.getResponseProperty("LegacyYear"),n.disabled=n.getResponseProperty("Disabled"),n.stripePlanId=n.getResponseProperty("StripePlanId"),n.stripeSeatPlanId=n.getResponseProperty("StripeSeatPlanId"),n.stripeStoragePlanId=n.getResponseProperty("StripeStoragePlanId"),n.stripePremiumAccessPlanId=n.getResponseProperty("StripePremiumAccessPlanId"),n.basePrice=n.getResponseProperty("BasePrice"),n.seatPrice=n.getResponseProperty("SeatPrice"),n.additionalStoragePricePerGb=n.getResponseProperty("AdditionalStoragePricePerGb"),n.premiumAccessOptionPrice=n.getResponseProperty("PremiumAccessOptionPrice"),n}return i(t,e),t}(n(24).BaseResponse);t.PlanResponse=a},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(24),o=function(e){function t(t){var n=e.call(this,t)||this;n.storageName=n.getResponseProperty("StorageName"),n.storageGb=n.getResponseProperty("StorageGb"),n.maxStorageGb=n.getResponseProperty("MaxStorageGb"),n.license=n.getResponseProperty("License"),n.expiration=n.getResponseProperty("Expiration"),n.usingInAppPurchase=n.getResponseProperty("UsingInAppPurchase");var r=n.getResponseProperty("Subscription"),i=n.getResponseProperty("UpcomingInvoice");return n.subscription=null==r?null:new s(r),n.upcomingInvoice=null==i?null:new c(i),n}return i(t,e),t}(a.BaseResponse);t.SubscriptionResponse=o;var s=function(e){function t(t){var n=e.call(this,t)||this;n.items=[],n.trialEndDate=n.getResponseProperty("TrialStartDate"),n.trialEndDate=n.getResponseProperty("TrialEndDate"),n.periodStartDate=n.getResponseProperty("PeriodStartDate"),n.periodEndDate=n.getResponseProperty("PeriodEndDate"),n.cancelledDate=n.getResponseProperty("CancelledDate"),n.cancelAtEndDate=n.getResponseProperty("CancelAtEndDate"),n.status=n.getResponseProperty("Status"),n.cancelled=n.getResponseProperty("Cancelled");var r=n.getResponseProperty("Items");return null!=r&&(n.items=r.map(function(e){return new l(e)})),n}return i(t,e),t}(a.BaseResponse);t.BillingSubscriptionResponse=s;var l=function(e){function t(t){var n=e.call(this,t)||this;return n.name=n.getResponseProperty("Name"),n.amount=n.getResponseProperty("Amount"),n.quantity=n.getResponseProperty("Quantity"),n.interval=n.getResponseProperty("Interval"),n}return i(t,e),t}(a.BaseResponse);t.BillingSubscriptionItemResponse=l;var c=function(e){function t(t){var n=e.call(this,t)||this;return n.date=n.getResponseProperty("Date"),n.amount=n.getResponseProperty("Amount"),n}return i(t,e),t}(a.BaseResponse);t.BillingSubscriptionUpcomingInvoiceResponse=c},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(t){var n=e.call(this,t)||this;return n.id=n.getResponseProperty("Id"),n.organizationId=n.getResponseProperty("OrganizationId"),n.type=n.getResponseProperty("Type"),n.data=n.getResponseProperty("Data"),n.enabled=n.getResponseProperty("Enabled"),n}return i(t,e),t}(n(24).BaseResponse);t.PolicyResponse=a},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(24),o=n(512),s=n(513),l=function(e){function t(t){var n=e.call(this,t)||this;n.id=n.getResponseProperty("Id"),n.accessId=n.getResponseProperty("AccessId"),n.type=n.getResponseProperty("Type"),n.name=n.getResponseProperty("Name"),n.notes=n.getResponseProperty("Notes"),n.key=n.getResponseProperty("Key"),n.maxAccessCount=n.getResponseProperty("MaxAccessCount"),n.accessCount=n.getResponseProperty("AccessCount"),n.revisionDate=n.getResponseProperty("RevisionDate"),n.expirationDate=n.getResponseProperty("ExpirationDate"),n.deletionDate=n.getResponseProperty("DeletionDate"),n.password=n.getResponseProperty("Password"),n.disable=n.getResponseProperty("Disabled")||!1;var r=n.getResponseProperty("Text");null!=r&&(n.text=new s.SendTextApi(r));var i=n.getResponseProperty("File");return null!=i&&(n.file=new o.SendFileApi(i)),n}return i(t,e),t}(a.BaseResponse);t.SendResponse=l},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&Object.defineProperty(t,n,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&Object.defineProperty(t,n,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]5&&(e.passwordHistory=e.passwordHistory.slice(0,5)),o.label=5;case 5:return(p=new m.Cipher).id=e.id,p.folderId=e.folderId,p.favorite=e.favorite,p.organizationId=e.organizationId,p.type=e.type,p.collectionIds=e.collectionIds,p.revisionDate=e.revisionDate,null!=t||null==p.organizationId?[3,7]:[4,this.cryptoService.getOrgKey(p.organizationId)];case 6:if(null==(t=o.sent()))throw new Error("Cannot encrypt cipher for organization. No key.");o.label=7;case 7:return[4,Promise.all([this.encryptObjProperty(e,p,{name:null,notes:null},t),this.encryptCipherData(p,e,t),this.encryptFields(e.fields,t).then(function(e){p.fields=e}),this.encryptPasswordHistories(e.passwordHistory,t).then(function(e){p.passwordHistory=e}),this.encryptAttachments(e.attachments,t).then(function(e){p.attachments=e})])];case 8:return o.sent(),[2,p]}})})},t.prototype.encryptAttachments=function(e,t){return a(this,void 0,void 0,function(){var n,r,i=this;return o(this,function(s){switch(s.label){case 0:return null==e||0===e.length?[2,null]:(n=[],r=[],e.forEach(function(e){return a(i,void 0,void 0,function(){var i,s,l=this;return o(this,function(c){return(i=new u.Attachment).id=e.id,i.size=e.size,i.sizeName=e.sizeName,i.url=e.url,s=this.encryptObjProperty(e,i,{fileName:null},t).then(function(){return a(l,void 0,void 0,function(){var n;return o(this,function(a){switch(a.label){case 0:return null==e.key?[3,2]:(n=i,[4,this.cryptoService.encrypt(e.key.key,t)]);case 1:n.key=a.sent(),a.label=2;case 2:return r.push(i),[2]}})})}),n.push(s),[2]})})}),[4,Promise.all(n)]);case 1:return s.sent(),[2,r]}})})},t.prototype.encryptFields=function(e,t){return a(this,void 0,void 0,function(){var n,r;return o(this,function(i){switch(i.label){case 0:return e&&e.length?(n=this,r=[],[4,e.reduce(function(e,i){return e.then(function(){return n.encryptField(i,t)}).then(function(e){r.push(e)})},Promise.resolve())]):[2,null];case 1:return i.sent(),[2,r]}})})},t.prototype.encryptField=function(e,t){return a(this,void 0,void 0,function(){var n;return o(this,function(r){switch(r.label){case 0:return(n=new h.Field).type=e.type,e.type===l.FieldType.Boolean&&"true"!==e.value&&(e.value="false"),[4,this.encryptObjProperty(e,n,{name:null,value:null},t)];case 1:return r.sent(),[2,n]}})})},t.prototype.encryptPasswordHistories=function(e,t){return a(this,void 0,void 0,function(){var n,r;return o(this,function(i){switch(i.label){case 0:return e&&e.length?(n=this,r=[],[4,e.reduce(function(e,i){return e.then(function(){return n.encryptPasswordHistory(i,t)}).then(function(e){r.push(e)})},Promise.resolve())]):[2,null];case 1:return i.sent(),[2,r]}})})},t.prototype.encryptPasswordHistory=function(e,t){return a(this,void 0,void 0,function(){var n;return o(this,function(r){switch(r.label){case 0:return(n=new g.Password).lastUsedDate=e.lastUsedDate,[4,this.encryptObjProperty(e,n,{password:null},t)];case 1:return r.sent(),[2,n]}})})},t.prototype.get=function(e){return a(this,void 0,void 0,function(){var t,n,r;return o(this,function(i){switch(i.label){case 0:return[4,this.userService.getUserId()];case 1:return t=i.sent(),[4,this.storageService.get(D)];case 2:return n=i.sent(),[4,this.storageService.get(B+t)];case 3:return null!=(r=i.sent())&&r.hasOwnProperty(e)?[2,new m.Cipher(r[e],!1,n?n[e]:null)]:[2,null]}})})},t.prototype.getAll=function(){return a(this,void 0,void 0,function(){var e,t,n,r,i;return o(this,function(a){switch(a.label){case 0:return[4,this.userService.getUserId()];case 1:return e=a.sent(),[4,this.storageService.get(D)];case 2:return t=a.sent(),[4,this.storageService.get(B+e)];case 3:for(i in n=a.sent(),r=[],n)n.hasOwnProperty(i)&&r.push(new m.Cipher(n[i],!1,t?t[i]:null));return[2,r]}})})},t.prototype.getAllDecrypted=function(){return a(this,void 0,void 0,function(){var e,t;return o(this,function(n){switch(n.label){case 0:return null!=this.decryptedCipherCache?[2,this.decryptedCipherCache]:(e=[],[4,this.cryptoService.hasKey()]);case 1:if(!n.sent())throw new Error("No key.");return t=[],[4,this.getAll()];case 2:return n.sent().forEach(function(n){t.push(n.decrypt().then(function(t){return e.push(t)}))}),[4,Promise.all(t)];case 3:return n.sent(),e.sort(this.getLocaleSortingFunction()),this.decryptedCipherCache=e,[2,this.decryptedCipherCache]}})})},t.prototype.getAllDecryptedForGrouping=function(e,t){return void 0===t&&(t=!0),a(this,void 0,void 0,function(){return o(this,function(n){switch(n.label){case 0:return[4,this.getAllDecrypted()];case 1:return[2,n.sent().filter(function(n){return!n.isDeleted&&(!(!t||n.folderId!==e)||!t&&null!=n.collectionIds&&n.collectionIds.indexOf(e)>-1)})]}})})},t.prototype.getAllDecryptedForUrl=function(e,t,n){return void 0===n&&(n=null),a(this,void 0,void 0,function(){var r,i,a,l,p;return o(this,function(o){switch(o.label){case 0:return null==e&&null==t?[2,Promise.resolve([])]:(r=M.Utils.getDomain(e),i=null==r?Promise.resolve([]):this.settingsService.getEquivalentDomains().then(function(e){var t=[];return e.forEach(function(e){e.length&&e.indexOf(r)>=0&&(t=t.concat(e))}),t.length||t.push(r),t}),[4,Promise.all([i,this.getAllDecrypted()])]);case 1:return a=o.sent(),l=a[0],p=a[1],null!=n?[3,3]:[4,this.storageService.get(O.ConstantsService.defaultUriMatch)];case 2:null==(n=o.sent())&&(n=c.UriMatchType.Domain),o.label=3;case 3:return[2,p.filter(function(i){if(null!=i.deletedDate)return!1;if(null!=t&&t.indexOf(i.type)>-1)return!0;if(null!=e&&i.type===s.CipherType.Login&&null!=i.login.uris)for(var a=0;a-1){if(!j.has(p.domain))return!0;var u=M.Utils.getHost(e);if(!j.get(p.domain).has(u))return!0}break;case c.UriMatchType.Host:var d=M.Utils.getHost(e);if(null!=d&&d===M.Utils.getHost(p.uri))return!0;break;case c.UriMatchType.Exact:if(e===p.uri)return!0;break;case c.UriMatchType.StartsWith:if(e.startsWith(p.uri))return!0;break;case c.UriMatchType.RegularExpression:try{if(new RegExp(p.uri,"i").test(e))return!0}catch(o){}break;case c.UriMatchType.Never:}}return!1})]}})})},t.prototype.getAllFromApiForOrganization=function(e){return a(this,void 0,void 0,function(){var t,n,r;return o(this,function(i){switch(i.label){case 0:return[4,this.apiService.getCiphersOrganization(e)];case 1:return null!=(t=i.sent())&&null!=t.data&&t.data.length?(n=[],r=[],t.data.forEach(function(e){var t=new p.CipherData(e),i=new m.Cipher(t);r.push(i.decrypt().then(function(e){return n.push(e)}))}),[4,Promise.all(r)]):[3,3];case 2:return i.sent(),n.sort(this.getLocaleSortingFunction()),[2,n];case 3:return[2,[]]}})})},t.prototype.getLastUsedForUrl=function(e){return a(this,void 0,void 0,function(){return o(this,function(t){return[2,this.getCipherForUrl(e,!0,!1)]})})},t.prototype.getLastLaunchedForUrl=function(e){return a(this,void 0,void 0,function(){return o(this,function(t){return[2,this.getCipherForUrl(e,!1,!0)]})})},t.prototype.getNextCipherForUrl=function(e){return a(this,void 0,void 0,function(){return o(this,function(t){return[2,this.getCipherForUrl(e,!1,!1)]})})},t.prototype.updateLastUsedIndexForUrl=function(e){this.sortedCiphersCache.updateLastUsedIndex(e)},t.prototype.updateLastUsedDate=function(e){return a(this,void 0,void 0,function(){var t,n,r;return o(this,function(i){switch(i.label){case 0:return[4,this.storageService.get(D)];case 1:return(t=i.sent())||(t={}),t[e]?t[e].lastUsedDate=(new Date).getTime():t[e]={lastUsedDate:(new Date).getTime()},[4,this.storageService.save(D,t)];case 2:if(i.sent(),null==this.decryptedCipherCache)return[2];for(n=0;nr?-1:null!=r&&null==n?1:0},t.prototype.sortCiphersByLastUsedThenName=function(e,t){var n=this.sortCiphersByLastUsed(e,t);return 0!==n?n:this.getLocaleSortingFunction()(e,t)},t.prototype.getLocaleSortingFunction=function(){var e=this;return function(t,n){var r=t.name,i=n.name;if(null==r&&null!=i)return-1;if(null!=r&&null==i)return 1;if(null==r&&null==i)return 0;var a=e.i18nService.collator?e.i18nService.collator.compare(r,i):r.localeCompare(i);return 0!==a||t.type!==s.CipherType.Login||n.type!==s.CipherType.Login?a:(null!=t.login.username&&(r+=t.login.username),null!=n.login.username&&(i+=n.login.username),e.i18nService.collator?e.i18nService.collator.compare(r,i):r.localeCompare(i))}},t.prototype.softDelete=function(e){return a(this,void 0,void 0,function(){var t,n,r;return o(this,function(i){switch(i.label){case 0:return[4,this.userService.getUserId()];case 1:return t=i.sent(),[4,this.storageService.get(B+t)];case 2:return null==(n=i.sent())?[2]:(r=function(e){null!=n[e]&&(n[e].deletedDate=(new Date).toISOString())},"string"==typeof e?r(e):e.forEach(r),[4,this.storageService.save(B+t,n)]);case 3:return i.sent(),this.decryptedCipherCache=null,[2]}})})},t.prototype.softDeleteWithServer=function(e){return a(this,void 0,void 0,function(){return o(this,function(t){switch(t.label){case 0:return[4,this.apiService.putDeleteCipher(e)];case 1:return t.sent(),[4,this.softDelete(e)];case 2:return t.sent(),[2]}})})},t.prototype.softDeleteManyWithServer=function(e){return a(this,void 0,void 0,function(){return o(this,function(t){switch(t.label){case 0:return[4,this.apiService.putDeleteManyCiphers(new b.CipherBulkDeleteRequest(e))];case 1:return t.sent(),[4,this.softDelete(e)];case 2:return t.sent(),[2]}})})},t.prototype.restore=function(e){return a(this,void 0,void 0,function(){var t,n,r;return o(this,function(i){switch(i.label){case 0:return[4,this.userService.getUserId()];case 1:return t=i.sent(),[4,this.storageService.get(B+t)];case 2:return null==(n=i.sent())?[2]:(r=function(e){null!=n[e.id]&&(n[e.id].deletedDate=null,n[e.id].revisionDate=e.revisionDate)},"Array"===e.constructor.name?e.forEach(r):r(e),[4,this.storageService.save(B+t,n)]);case 3:return i.sent(),this.decryptedCipherCache=null,[2]}})})},t.prototype.restoreWithServer=function(e){return a(this,void 0,void 0,function(){var t;return o(this,function(n){switch(n.label){case 0:return[4,this.apiService.putRestoreCipher(e)];case 1:return t=n.sent(),[4,this.restore({id:e,revisionDate:t.revisionDate})];case 2:return n.sent(),[2]}})})},t.prototype.restoreManyWithServer=function(e){return a(this,void 0,void 0,function(){var t,n,r,i,a;return o(this,function(o){switch(o.label){case 0:return[4,this.apiService.putRestoreManyCiphers(new w.CipherBulkRestoreRequest(e))];case 1:for(t=o.sent(),n=[],r=0,i=t.data;r0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&Object.defineProperty(t,n,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0?[2,this.orgKeys]:[4,this.storageService.get(g)];case 1:if(null==(e=o.sent()))return[2,null];for(i in t=new Map,n=!1,r=[],e)r.push(i);a=0,o.label=2;case 2:return a53)throw new Error("We cannot generate numbers larger than 53 bits.");return a=Math.ceil(i/8),s=Math.pow(2,i)-1,c=Uint8Array.bind,[4,this.cryptoFunctionService.randomBytes(a)];case 1:for(l=new(c.apply(Uint8Array,[void 0,o.sent()])),p=8*(a-1),u=0;u=r?[2,this.randomNumber(e,t)]:[2,e+n]}})})},e.prototype.aesEncrypt=function(e,t){return a(this,void 0,void 0,function(){var n,r,i,a,s,l;return o(this,function(o){switch(o.label){case 0:return n=new u.EncryptedObject,r=n,[4,this.getKeyForEncryption(t)];case 1:return r.key=o.sent(),i=n,[4,this.cryptoFunctionService.randomBytes(16)];case 2:return i.iv=o.sent(),a=n,[4,this.cryptoFunctionService.aesEncrypt(e,n.iv,n.key.encKey)];case 3:return a.data=o.sent(),null==n.key.macKey?[3,5]:((s=new Uint8Array(n.iv.byteLength+n.data.byteLength)).set(new Uint8Array(n.iv),0),s.set(new Uint8Array(n.data),n.iv.byteLength),l=n,[4,this.cryptoFunctionService.hmac(s.buffer,n.key.macKey,"sha256")]);case 4:l.mac=o.sent(),o.label=5;case 5:return[2,n]}})})},e.prototype.aesDecryptToUtf8=function(e,t,n,r,i){return a(this,void 0,void 0,function(){var a,s,l,c;return o(this,function(o){switch(o.label){case 0:return[4,this.getKeyForEncryption(i)];case 1:return a=o.sent(),null!=(s=this.resolveLegacyKey(e,a)).macKey&&null==r?(this.logService.error("mac required."),[2,null]):s.encType!==e?(this.logService.error("encType unavailable."),[2,null]):null==(l=this.cryptoFunctionService.aesDecryptFastParameters(t,n,r,s)).macKey||null==l.mac?[3,4]:[4,this.cryptoFunctionService.hmacFast(l.macData,l.macKey,"sha256")];case 2:return c=o.sent(),[4,this.cryptoFunctionService.compareFast(l.mac,c)];case 3:if(!o.sent())return this.logService.error("mac failed."),[2,null];o.label=4;case 4:return[2,this.cryptoFunctionService.aesDecryptFast(l)]}})})},e.prototype.aesDecryptToBytes=function(e,t,n,r,i){return a(this,void 0,void 0,function(){var a,s,l,c;return o(this,function(o){switch(o.label){case 0:return[4,this.getKeyForEncryption(i)];case 1:return a=o.sent(),null!=(s=this.resolveLegacyKey(e,a)).macKey&&null==r?[2,null]:s.encType!==e?[2,null]:null==s.macKey||null==r?[3,4]:((l=new Uint8Array(n.byteLength+t.byteLength)).set(new Uint8Array(n),0),l.set(new Uint8Array(t),n.byteLength),[4,this.cryptoFunctionService.hmac(l.buffer,s.macKey,"sha256")]);case 2:return null===(c=o.sent())?[2,null]:[4,this.cryptoFunctionService.compare(r,c)];case 3:if(!o.sent())return this.logService.error("mac failed."),[2,null];o.label=4;case 4:return[4,this.cryptoFunctionService.aesDecrypt(t,n,s.encKey)];case 5:return[2,o.sent()]}})})},e.prototype.getKeyForEncryption=function(e){return a(this,void 0,void 0,function(){var t;return o(this,function(n){switch(n.label){case 0:return null!=e?[2,e]:[4,this.getEncKey()];case 1:return null!=(t=n.sent())?[2,t]:[4,this.getKey()];case 2:return[2,n.sent()]}})})},e.prototype.resolveLegacyKey=function(e,t){return e===l.EncryptionType.AesCbc128_HmacSha256_B64&&t.encType===l.EncryptionType.AesCbc256_B64?(null==this.legacyEtmKey&&(this.legacyEtmKey=new d.SymmetricCryptoKey(t.key,l.EncryptionType.AesCbc128_HmacSha256_B64)),this.legacyEtmKey):t},e.prototype.stretchKey=function(e){return a(this,void 0,void 0,function(){var t,n,r;return o(this,function(i){switch(i.label){case 0:return t=new Uint8Array(64),[4,this.cryptoFunctionService.hkdfExpand(e.key,"enc",32,"sha256")];case 1:return n=i.sent(),[4,this.cryptoFunctionService.hkdfExpand(e.key,"mac",32,"sha256")];case 2:return r=i.sent(),t.set(new Uint8Array(n)),t.set(new Uint8Array(r),32),[2,new d.SymmetricCryptoKey(t.buffer)]}})})},e.prototype.hashPhrase=function(e,t){return void 0===t&&(t=64),a(this,void 0,void 0,function(){var n,r,i,a,l,c,p;return o(this,function(o){if(n=Math.log(v.EEFLongWordList.length)/Math.log(2),r=Math.ceil(t/n),i=Array.from(new Uint8Array(e)),a=4*i.length,r*n>a)throw new Error("Output entropy of hash function is too small");for(l=[],c=s.fromArray(i,256);r--;)p=c.mod(v.EEFLongWordList.length),c=c.divide(v.EEFLongWordList.length),l.push(v.EEFLongWordList[p]);return[2,l]})})},e.prototype.buildEncKey=function(e,t){return a(this,void 0,void 0,function(){var n,r;return o(this,function(i){switch(i.label){case 0:return n=null,32!==e.key.byteLength?[3,3]:[4,this.stretchKey(e)];case 1:return r=i.sent(),[4,this.encrypt(t,r)];case 2:return n=i.sent(),[3,6];case 3:return 64!==e.key.byteLength?[3,5]:[4,this.encrypt(t,e)];case 4:return n=i.sent(),[3,6];case 5:throw new Error("Invalid key size.");case 6:return[2,[new d.SymmetricCryptoKey(t),n]]}})})},r([h.sequentialize(function(){return"getEncKey"}),i("design:type",Function),i("design:paramtypes",[d.SymmetricCryptoKey]),i("design:returntype",Promise)],e.prototype,"getEncKey",null),r([h.sequentialize(function(){return"getOrgKeys"}),i("design:type",Function),i("design:paramtypes",[]),i("design:returntype",Promise)],e.prototype,"getOrgKeys",null),e}();t.CryptoService=w},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EEFLongWordList=["abacus","abdomen","abdominal","abide","abiding","ability","ablaze","able","abnormal","abrasion","abrasive","abreast","abridge","abroad","abruptly","absence","absentee","absently","absinthe","absolute","absolve","abstain","abstract","absurd","accent","acclaim","acclimate","accompany","account","accuracy","accurate","accustom","acetone","achiness","aching","acid","acorn","acquaint","acquire","acre","acrobat","acronym","acting","action","activate","activator","active","activism","activist","activity","actress","acts","acutely","acuteness","aeration","aerobics","aerosol","aerospace","afar","affair","affected","affecting","affection","affidavit","affiliate","affirm","affix","afflicted","affluent","afford","affront","aflame","afloat","aflutter","afoot","afraid","afterglow","afterlife","aftermath","aftermost","afternoon","aged","ageless","agency","agenda","agent","aggregate","aghast","agile","agility","aging","agnostic","agonize","agonizing","agony","agreeable","agreeably","agreed","agreeing","agreement","aground","ahead","ahoy","aide","aids","aim","ajar","alabaster","alarm","albatross","album","alfalfa","algebra","algorithm","alias","alibi","alienable","alienate","aliens","alike","alive","alkaline","alkalize","almanac","almighty","almost","aloe","aloft","aloha","alone","alongside","aloof","alphabet","alright","although","altitude","alto","aluminum","alumni","always","amaretto","amaze","amazingly","amber","ambiance","ambiguity","ambiguous","ambition","ambitious","ambulance","ambush","amendable","amendment","amends","amenity","amiable","amicably","amid","amigo","amino","amiss","ammonia","ammonium","amnesty","amniotic","among","amount","amperage","ample","amplifier","amplify","amply","amuck","amulet","amusable","amused","amusement","amuser","amusing","anaconda","anaerobic","anagram","anatomist","anatomy","anchor","anchovy","ancient","android","anemia","anemic","aneurism","anew","angelfish","angelic","anger","angled","angler","angles","angling","angrily","angriness","anguished","angular","animal","animate","animating","animation","animator","anime","animosity","ankle","annex","annotate","announcer","annoying","annually","annuity","anointer","another","answering","antacid","antarctic","anteater","antelope","antennae","anthem","anthill","anthology","antibody","antics","antidote","antihero","antiquely","antiques","antiquity","antirust","antitoxic","antitrust","antiviral","antivirus","antler","antonym","antsy","anvil","anybody","anyhow","anymore","anyone","anyplace","anything","anytime","anyway","anywhere","aorta","apache","apostle","appealing","appear","appease","appeasing","appendage","appendix","appetite","appetizer","applaud","applause","apple","appliance","applicant","applied","apply","appointee","appraisal","appraiser","apprehend","approach","approval","approve","apricot","april","apron","aptitude","aptly","aqua","aqueduct","arbitrary","arbitrate","ardently","area","arena","arguable","arguably","argue","arise","armadillo","armband","armchair","armed","armful","armhole","arming","armless","armoire","armored","armory","armrest","army","aroma","arose","around","arousal","arrange","array","arrest","arrival","arrive","arrogance","arrogant","arson","art","ascend","ascension","ascent","ascertain","ashamed","ashen","ashes","ashy","aside","askew","asleep","asparagus","aspect","aspirate","aspire","aspirin","astonish","astound","astride","astrology","astronaut","astronomy","astute","atlantic","atlas","atom","atonable","atop","atrium","atrocious","atrophy","attach","attain","attempt","attendant","attendee","attention","attentive","attest","attic","attire","attitude","attractor","attribute","atypical","auction","audacious","audacity","audible","audibly","audience","audio","audition","augmented","august","authentic","author","autism","autistic","autograph","automaker","automated","automatic","autopilot","available","avalanche","avatar","avenge","avenging","avenue","average","aversion","avert","aviation","aviator","avid","avoid","await","awaken","award","aware","awhile","awkward","awning","awoke","awry","axis","babble","babbling","babied","baboon","backache","backboard","backboned","backdrop","backed","backer","backfield","backfire","backhand","backing","backlands","backlash","backless","backlight","backlit","backlog","backpack","backpedal","backrest","backroom","backshift","backside","backslid","backspace","backspin","backstab","backstage","backtalk","backtrack","backup","backward","backwash","backwater","backyard","bacon","bacteria","bacterium","badass","badge","badland","badly","badness","baffle","baffling","bagel","bagful","baggage","bagged","baggie","bagginess","bagging","baggy","bagpipe","baguette","baked","bakery","bakeshop","baking","balance","balancing","balcony","balmy","balsamic","bamboo","banana","banish","banister","banjo","bankable","bankbook","banked","banker","banking","banknote","bankroll","banner","bannister","banshee","banter","barbecue","barbed","barbell","barber","barcode","barge","bargraph","barista","baritone","barley","barmaid","barman","barn","barometer","barrack","barracuda","barrel","barrette","barricade","barrier","barstool","bartender","barterer","bash","basically","basics","basil","basin","basis","basket","batboy","batch","bath","baton","bats","battalion","battered","battering","battery","batting","battle","bauble","bazooka","blabber","bladder","blade","blah","blame","blaming","blanching","blandness","blank","blaspheme","blasphemy","blast","blatancy","blatantly","blazer","blazing","bleach","bleak","bleep","blemish","blend","bless","blighted","blimp","bling","blinked","blinker","blinking","blinks","blip","blissful","blitz","blizzard","bloated","bloating","blob","blog","bloomers","blooming","blooper","blot","blouse","blubber","bluff","bluish","blunderer","blunt","blurb","blurred","blurry","blurt","blush","blustery","boaster","boastful","boasting","boat","bobbed","bobbing","bobble","bobcat","bobsled","bobtail","bodacious","body","bogged","boggle","bogus","boil","bok","bolster","bolt","bonanza","bonded","bonding","bondless","boned","bonehead","boneless","bonelike","boney","bonfire","bonnet","bonsai","bonus","bony","boogeyman","boogieman","book","boondocks","booted","booth","bootie","booting","bootlace","bootleg","boots","boozy","borax","boring","borough","borrower","borrowing","boss","botanical","botanist","botany","botch","both","bottle","bottling","bottom","bounce","bouncing","bouncy","bounding","boundless","bountiful","bovine","boxcar","boxer","boxing","boxlike","boxy","breach","breath","breeches","breeching","breeder","breeding","breeze","breezy","brethren","brewery","brewing","briar","bribe","brick","bride","bridged","brigade","bright","brilliant","brim","bring","brink","brisket","briskly","briskness","bristle","brittle","broadband","broadcast","broaden","broadly","broadness","broadside","broadways","broiler","broiling","broken","broker","bronchial","bronco","bronze","bronzing","brook","broom","brought","browbeat","brownnose","browse","browsing","bruising","brunch","brunette","brunt","brush","brussels","brute","brutishly","bubble","bubbling","bubbly","buccaneer","bucked","bucket","buckle","buckshot","buckskin","bucktooth","buckwheat","buddhism","buddhist","budding","buddy","budget","buffalo","buffed","buffer","buffing","buffoon","buggy","bulb","bulge","bulginess","bulgur","bulk","bulldog","bulldozer","bullfight","bullfrog","bullhorn","bullion","bullish","bullpen","bullring","bullseye","bullwhip","bully","bunch","bundle","bungee","bunion","bunkbed","bunkhouse","bunkmate","bunny","bunt","busboy","bush","busily","busload","bust","busybody","buzz","cabana","cabbage","cabbie","cabdriver","cable","caboose","cache","cackle","cacti","cactus","caddie","caddy","cadet","cadillac","cadmium","cage","cahoots","cake","calamari","calamity","calcium","calculate","calculus","caliber","calibrate","calm","caloric","calorie","calzone","camcorder","cameo","camera","camisole","camper","campfire","camping","campsite","campus","canal","canary","cancel","candied","candle","candy","cane","canine","canister","cannabis","canned","canning","cannon","cannot","canola","canon","canopener","canopy","canteen","canyon","capable","capably","capacity","cape","capillary","capital","capitol","capped","capricorn","capsize","capsule","caption","captivate","captive","captivity","capture","caramel","carat","caravan","carbon","cardboard","carded","cardiac","cardigan","cardinal","cardstock","carefully","caregiver","careless","caress","caretaker","cargo","caring","carless","carload","carmaker","carnage","carnation","carnival","carnivore","carol","carpenter","carpentry","carpool","carport","carried","carrot","carrousel","carry","cartel","cartload","carton","cartoon","cartridge","cartwheel","carve","carving","carwash","cascade","case","cash","casing","casino","casket","cassette","casually","casualty","catacomb","catalog","catalyst","catalyze","catapult","cataract","catatonic","catcall","catchable","catcher","catching","catchy","caterer","catering","catfight","catfish","cathedral","cathouse","catlike","catnap","catnip","catsup","cattail","cattishly","cattle","catty","catwalk","caucasian","caucus","causal","causation","cause","causing","cauterize","caution","cautious","cavalier","cavalry","caviar","cavity","cedar","celery","celestial","celibacy","celibate","celtic","cement","census","ceramics","ceremony","certainly","certainty","certified","certify","cesarean","cesspool","chafe","chaffing","chain","chair","chalice","challenge","chamber","chamomile","champion","chance","change","channel","chant","chaos","chaperone","chaplain","chapped","chaps","chapter","character","charbroil","charcoal","charger","charging","chariot","charity","charm","charred","charter","charting","chase","chasing","chaste","chastise","chastity","chatroom","chatter","chatting","chatty","cheating","cheddar","cheek","cheer","cheese","cheesy","chef","chemicals","chemist","chemo","cherisher","cherub","chess","chest","chevron","chevy","chewable","chewer","chewing","chewy","chief","chihuahua","childcare","childhood","childish","childless","childlike","chili","chill","chimp","chip","chirping","chirpy","chitchat","chivalry","chive","chloride","chlorine","choice","chokehold","choking","chomp","chooser","choosing","choosy","chop","chosen","chowder","chowtime","chrome","chubby","chuck","chug","chummy","chump","chunk","churn","chute","cider","cilantro","cinch","cinema","cinnamon","circle","circling","circular","circulate","circus","citable","citadel","citation","citizen","citric","citrus","city","civic","civil","clad","claim","clambake","clammy","clamor","clamp","clamshell","clang","clanking","clapped","clapper","clapping","clarify","clarinet","clarity","clash","clasp","class","clatter","clause","clavicle","claw","clay","clean","clear","cleat","cleaver","cleft","clench","clergyman","clerical","clerk","clever","clicker","client","climate","climatic","cling","clinic","clinking","clip","clique","cloak","clobber","clock","clone","cloning","closable","closure","clothes","clothing","cloud","clover","clubbed","clubbing","clubhouse","clump","clumsily","clumsy","clunky","clustered","clutch","clutter","coach","coagulant","coastal","coaster","coasting","coastland","coastline","coat","coauthor","cobalt","cobbler","cobweb","cocoa","coconut","cod","coeditor","coerce","coexist","coffee","cofounder","cognition","cognitive","cogwheel","coherence","coherent","cohesive","coil","coke","cola","cold","coleslaw","coliseum","collage","collapse","collar","collected","collector","collide","collie","collision","colonial","colonist","colonize","colony","colossal","colt","coma","come","comfort","comfy","comic","coming","comma","commence","commend","comment","commerce","commode","commodity","commodore","common","commotion","commute","commuting","compacted","compacter","compactly","compactor","companion","company","compare","compel","compile","comply","component","composed","composer","composite","compost","composure","compound","compress","comprised","computer","computing","comrade","concave","conceal","conceded","concept","concerned","concert","conch","concierge","concise","conclude","concrete","concur","condense","condiment","condition","condone","conducive","conductor","conduit","cone","confess","confetti","confidant","confident","confider","confiding","configure","confined","confining","confirm","conflict","conform","confound","confront","confused","confusing","confusion","congenial","congested","congrats","congress","conical","conjoined","conjure","conjuror","connected","connector","consensus","consent","console","consoling","consonant","constable","constant","constrain","constrict","construct","consult","consumer","consuming","contact","container","contempt","contend","contented","contently","contents","contest","context","contort","contour","contrite","control","contusion","convene","convent","copartner","cope","copied","copier","copilot","coping","copious","copper","copy","coral","cork","cornball","cornbread","corncob","cornea","corned","corner","cornfield","cornflake","cornhusk","cornmeal","cornstalk","corny","coronary","coroner","corporal","corporate","corral","correct","corridor","corrode","corroding","corrosive","corsage","corset","cortex","cosigner","cosmetics","cosmic","cosmos","cosponsor","cost","cottage","cotton","couch","cough","could","countable","countdown","counting","countless","country","county","courier","covenant","cover","coveted","coveting","coyness","cozily","coziness","cozy","crabbing","crabgrass","crablike","crabmeat","cradle","cradling","crafter","craftily","craftsman","craftwork","crafty","cramp","cranberry","crane","cranial","cranium","crank","crate","crave","craving","crawfish","crawlers","crawling","crayfish","crayon","crazed","crazily","craziness","crazy","creamed","creamer","creamlike","crease","creasing","creatable","create","creation","creative","creature","credible","credibly","credit","creed","creme","creole","crepe","crept","crescent","crested","cresting","crestless","crevice","crewless","crewman","crewmate","crib","cricket","cried","crier","crimp","crimson","cringe","cringing","crinkle","crinkly","crisped","crisping","crisply","crispness","crispy","criteria","critter","croak","crock","crook","croon","crop","cross","crouch","crouton","crowbar","crowd","crown","crucial","crudely","crudeness","cruelly","cruelness","cruelty","crumb","crummiest","crummy","crumpet","crumpled","cruncher","crunching","crunchy","crusader","crushable","crushed","crusher","crushing","crust","crux","crying","cryptic","crystal","cubbyhole","cube","cubical","cubicle","cucumber","cuddle","cuddly","cufflink","culinary","culminate","culpable","culprit","cultivate","cultural","culture","cupbearer","cupcake","cupid","cupped","cupping","curable","curator","curdle","cure","curfew","curing","curled","curler","curliness","curling","curly","curry","curse","cursive","cursor","curtain","curtly","curtsy","curvature","curve","curvy","cushy","cusp","cussed","custard","custodian","custody","customary","customer","customize","customs","cut","cycle","cyclic","cycling","cyclist","cylinder","cymbal","cytoplasm","cytoplast","dab","dad","daffodil","dagger","daily","daintily","dainty","dairy","daisy","dallying","dance","dancing","dandelion","dander","dandruff","dandy","danger","dangle","dangling","daredevil","dares","daringly","darkened","darkening","darkish","darkness","darkroom","darling","darn","dart","darwinism","dash","dastardly","data","datebook","dating","daughter","daunting","dawdler","dawn","daybed","daybreak","daycare","daydream","daylight","daylong","dayroom","daytime","dazzler","dazzling","deacon","deafening","deafness","dealer","dealing","dealmaker","dealt","dean","debatable","debate","debating","debit","debrief","debtless","debtor","debug","debunk","decade","decaf","decal","decathlon","decay","deceased","deceit","deceiver","deceiving","december","decency","decent","deception","deceptive","decibel","decidable","decimal","decimeter","decipher","deck","declared","decline","decode","decompose","decorated","decorator","decoy","decrease","decree","dedicate","dedicator","deduce","deduct","deed","deem","deepen","deeply","deepness","deface","defacing","defame","default","defeat","defection","defective","defendant","defender","defense","defensive","deferral","deferred","defiance","defiant","defile","defiling","define","definite","deflate","deflation","deflator","deflected","deflector","defog","deforest","defraud","defrost","deftly","defuse","defy","degraded","degrading","degrease","degree","dehydrate","deity","dejected","delay","delegate","delegator","delete","deletion","delicacy","delicate","delicious","delighted","delirious","delirium","deliverer","delivery","delouse","delta","deluge","delusion","deluxe","demanding","demeaning","demeanor","demise","democracy","democrat","demote","demotion","demystify","denatured","deniable","denial","denim","denote","dense","density","dental","dentist","denture","deny","deodorant","deodorize","departed","departure","depict","deplete","depletion","deplored","deploy","deport","depose","depraved","depravity","deprecate","depress","deprive","depth","deputize","deputy","derail","deranged","derby","derived","desecrate","deserve","deserving","designate","designed","designer","designing","deskbound","desktop","deskwork","desolate","despair","despise","despite","destiny","destitute","destruct","detached","detail","detection","detective","detector","detention","detergent","detest","detonate","detonator","detoxify","detract","deuce","devalue","deviancy","deviant","deviate","deviation","deviator","device","devious","devotedly","devotee","devotion","devourer","devouring","devoutly","dexterity","dexterous","diabetes","diabetic","diabolic","diagnoses","diagnosis","diagram","dial","diameter","diaper","diaphragm","diary","dice","dicing","dictate","dictation","dictator","difficult","diffused","diffuser","diffusion","diffusive","dig","dilation","diligence","diligent","dill","dilute","dime","diminish","dimly","dimmed","dimmer","dimness","dimple","diner","dingbat","dinghy","dinginess","dingo","dingy","dining","dinner","diocese","dioxide","diploma","dipped","dipper","dipping","directed","direction","directive","directly","directory","direness","dirtiness","disabled","disagree","disallow","disarm","disarray","disaster","disband","disbelief","disburse","discard","discern","discharge","disclose","discolor","discount","discourse","discover","discuss","disdain","disengage","disfigure","disgrace","dish","disinfect","disjoin","disk","dislike","disliking","dislocate","dislodge","disloyal","dismantle","dismay","dismiss","dismount","disobey","disorder","disown","disparate","disparity","dispatch","dispense","dispersal","dispersed","disperser","displace","display","displease","disposal","dispose","disprove","dispute","disregard","disrupt","dissuade","distance","distant","distaste","distill","distinct","distort","distract","distress","district","distrust","ditch","ditto","ditzy","dividable","divided","dividend","dividers","dividing","divinely","diving","divinity","divisible","divisibly","division","divisive","divorcee","dizziness","dizzy","doable","docile","dock","doctrine","document","dodge","dodgy","doily","doing","dole","dollar","dollhouse","dollop","dolly","dolphin","domain","domelike","domestic","dominion","dominoes","donated","donation","donator","donor","donut","doodle","doorbell","doorframe","doorknob","doorman","doormat","doornail","doorpost","doorstep","doorstop","doorway","doozy","dork","dormitory","dorsal","dosage","dose","dotted","doubling","douche","dove","down","dowry","doze","drab","dragging","dragonfly","dragonish","dragster","drainable","drainage","drained","drainer","drainpipe","dramatic","dramatize","drank","drapery","drastic","draw","dreaded","dreadful","dreadlock","dreamboat","dreamily","dreamland","dreamless","dreamlike","dreamt","dreamy","drearily","dreary","drench","dress","drew","dribble","dried","drier","drift","driller","drilling","drinkable","drinking","dripping","drippy","drivable","driven","driver","driveway","driving","drizzle","drizzly","drone","drool","droop","drop-down","dropbox","dropkick","droplet","dropout","dropper","drove","drown","drowsily","drudge","drum","dry","dubbed","dubiously","duchess","duckbill","ducking","duckling","ducktail","ducky","duct","dude","duffel","dugout","duh","duke","duller","dullness","duly","dumping","dumpling","dumpster","duo","dupe","duplex","duplicate","duplicity","durable","durably","duration","duress","during","dusk","dust","dutiful","duty","duvet","dwarf","dweeb","dwelled","dweller","dwelling","dwindle","dwindling","dynamic","dynamite","dynasty","dyslexia","dyslexic","each","eagle","earache","eardrum","earflap","earful","earlobe","early","earmark","earmuff","earphone","earpiece","earplugs","earring","earshot","earthen","earthlike","earthling","earthly","earthworm","earthy","earwig","easeful","easel","easiest","easily","easiness","easing","eastbound","eastcoast","easter","eastward","eatable","eaten","eatery","eating","eats","ebay","ebony","ebook","ecard","eccentric","echo","eclair","eclipse","ecologist","ecology","economic","economist","economy","ecosphere","ecosystem","edge","edginess","edging","edgy","edition","editor","educated","education","educator","eel","effective","effects","efficient","effort","eggbeater","egging","eggnog","eggplant","eggshell","egomaniac","egotism","egotistic","either","eject","elaborate","elastic","elated","elbow","eldercare","elderly","eldest","electable","election","elective","elephant","elevate","elevating","elevation","elevator","eleven","elf","eligible","eligibly","eliminate","elite","elitism","elixir","elk","ellipse","elliptic","elm","elongated","elope","eloquence","eloquent","elsewhere","elude","elusive","elves","email","embargo","embark","embassy","embattled","embellish","ember","embezzle","emblaze","emblem","embody","embolism","emboss","embroider","emcee","emerald","emergency","emission","emit","emote","emoticon","emotion","empathic","empathy","emperor","emphases","emphasis","emphasize","emphatic","empirical","employed","employee","employer","emporium","empower","emptier","emptiness","empty","emu","enable","enactment","enamel","enchanted","enchilada","encircle","enclose","enclosure","encode","encore","encounter","encourage","encroach","encrust","encrypt","endanger","endeared","endearing","ended","ending","endless","endnote","endocrine","endorphin","endorse","endowment","endpoint","endurable","endurance","enduring","energetic","energize","energy","enforced","enforcer","engaged","engaging","engine","engorge","engraved","engraver","engraving","engross","engulf","enhance","enigmatic","enjoyable","enjoyably","enjoyer","enjoying","enjoyment","enlarged","enlarging","enlighten","enlisted","enquirer","enrage","enrich","enroll","enslave","ensnare","ensure","entail","entangled","entering","entertain","enticing","entire","entitle","entity","entomb","entourage","entrap","entree","entrench","entrust","entryway","entwine","enunciate","envelope","enviable","enviably","envious","envision","envoy","envy","enzyme","epic","epidemic","epidermal","epidermis","epidural","epilepsy","epileptic","epilogue","epiphany","episode","equal","equate","equation","equator","equinox","equipment","equity","equivocal","eradicate","erasable","erased","eraser","erasure","ergonomic","errand","errant","erratic","error","erupt","escalate","escalator","escapable","escapade","escapist","escargot","eskimo","esophagus","espionage","espresso","esquire","essay","essence","essential","establish","estate","esteemed","estimate","estimator","estranged","estrogen","etching","eternal","eternity","ethanol","ether","ethically","ethics","euphemism","evacuate","evacuee","evade","evaluate","evaluator","evaporate","evasion","evasive","even","everglade","evergreen","everybody","everyday","everyone","evict","evidence","evident","evil","evoke","evolution","evolve","exact","exalted","example","excavate","excavator","exceeding","exception","excess","exchange","excitable","exciting","exclaim","exclude","excluding","exclusion","exclusive","excretion","excretory","excursion","excusable","excusably","excuse","exemplary","exemplify","exemption","exerciser","exert","exes","exfoliate","exhale","exhaust","exhume","exile","existing","exit","exodus","exonerate","exorcism","exorcist","expand","expanse","expansion","expansive","expectant","expedited","expediter","expel","expend","expenses","expensive","expert","expire","expiring","explain","expletive","explicit","explode","exploit","explore","exploring","exponent","exporter","exposable","expose","exposure","express","expulsion","exquisite","extended","extending","extent","extenuate","exterior","external","extinct","extortion","extradite","extras","extrovert","extrude","extruding","exuberant","fable","fabric","fabulous","facebook","facecloth","facedown","faceless","facelift","faceplate","faceted","facial","facility","facing","facsimile","faction","factoid","factor","factsheet","factual","faculty","fade","fading","failing","falcon","fall","false","falsify","fame","familiar","family","famine","famished","fanatic","fancied","fanciness","fancy","fanfare","fang","fanning","fantasize","fantastic","fantasy","fascism","fastball","faster","fasting","fastness","faucet","favorable","favorably","favored","favoring","favorite","fax","feast","federal","fedora","feeble","feed","feel","feisty","feline","felt-tip","feminine","feminism","feminist","feminize","femur","fence","fencing","fender","ferment","fernlike","ferocious","ferocity","ferret","ferris","ferry","fervor","fester","festival","festive","festivity","fetal","fetch","fever","fiber","fiction","fiddle","fiddling","fidelity","fidgeting","fidgety","fifteen","fifth","fiftieth","fifty","figment","figure","figurine","filing","filled","filler","filling","film","filter","filth","filtrate","finale","finalist","finalize","finally","finance","financial","finch","fineness","finer","finicky","finished","finisher","finishing","finite","finless","finlike","fiscally","fit","five","flaccid","flagman","flagpole","flagship","flagstick","flagstone","flail","flakily","flaky","flame","flammable","flanked","flanking","flannels","flap","flaring","flashback","flashbulb","flashcard","flashily","flashing","flashy","flask","flatbed","flatfoot","flatly","flatness","flatten","flattered","flatterer","flattery","flattop","flatware","flatworm","flavored","flavorful","flavoring","flaxseed","fled","fleshed","fleshy","flick","flier","flight","flinch","fling","flint","flip","flirt","float","flock","flogging","flop","floral","florist","floss","flounder","flyable","flyaway","flyer","flying","flyover","flypaper","foam","foe","fog","foil","folic","folk","follicle","follow","fondling","fondly","fondness","fondue","font","food","fool","footage","football","footbath","footboard","footer","footgear","foothill","foothold","footing","footless","footman","footnote","footpad","footpath","footprint","footrest","footsie","footsore","footwear","footwork","fossil","foster","founder","founding","fountain","fox","foyer","fraction","fracture","fragile","fragility","fragment","fragrance","fragrant","frail","frame","framing","frantic","fraternal","frayed","fraying","frays","freckled","freckles","freebase","freebee","freebie","freedom","freefall","freehand","freeing","freeload","freely","freemason","freeness","freestyle","freeware","freeway","freewill","freezable","freezing","freight","french","frenzied","frenzy","frequency","frequent","fresh","fretful","fretted","friction","friday","fridge","fried","friend","frighten","frightful","frigidity","frigidly","frill","fringe","frisbee","frisk","fritter","frivolous","frolic","from","front","frostbite","frosted","frostily","frosting","frostlike","frosty","froth","frown","frozen","fructose","frugality","frugally","fruit","frustrate","frying","gab","gaffe","gag","gainfully","gaining","gains","gala","gallantly","galleria","gallery","galley","gallon","gallows","gallstone","galore","galvanize","gambling","game","gaming","gamma","gander","gangly","gangrene","gangway","gap","garage","garbage","garden","gargle","garland","garlic","garment","garnet","garnish","garter","gas","gatherer","gathering","gating","gauging","gauntlet","gauze","gave","gawk","gazing","gear","gecko","geek","geiger","gem","gender","generic","generous","genetics","genre","gentile","gentleman","gently","gents","geography","geologic","geologist","geology","geometric","geometry","geranium","gerbil","geriatric","germicide","germinate","germless","germproof","gestate","gestation","gesture","getaway","getting","getup","giant","gibberish","giblet","giddily","giddiness","giddy","gift","gigabyte","gigahertz","gigantic","giggle","giggling","giggly","gigolo","gilled","gills","gimmick","girdle","giveaway","given","giver","giving","gizmo","gizzard","glacial","glacier","glade","gladiator","gladly","glamorous","glamour","glance","glancing","glandular","glare","glaring","glass","glaucoma","glazing","gleaming","gleeful","glider","gliding","glimmer","glimpse","glisten","glitch","glitter","glitzy","gloater","gloating","gloomily","gloomy","glorified","glorifier","glorify","glorious","glory","gloss","glove","glowing","glowworm","glucose","glue","gluten","glutinous","glutton","gnarly","gnat","goal","goatskin","goes","goggles","going","goldfish","goldmine","goldsmith","golf","goliath","gonad","gondola","gone","gong","good","gooey","goofball","goofiness","goofy","google","goon","gopher","gore","gorged","gorgeous","gory","gosling","gossip","gothic","gotten","gout","gown","grab","graceful","graceless","gracious","gradation","graded","grader","gradient","grading","gradually","graduate","graffiti","grafted","grafting","grain","granddad","grandkid","grandly","grandma","grandpa","grandson","granite","granny","granola","grant","granular","grape","graph","grapple","grappling","grasp","grass","gratified","gratify","grating","gratitude","gratuity","gravel","graveness","graves","graveyard","gravitate","gravity","gravy","gray","grazing","greasily","greedily","greedless","greedy","green","greeter","greeting","grew","greyhound","grid","grief","grievance","grieving","grievous","grill","grimace","grimacing","grime","griminess","grimy","grinch","grinning","grip","gristle","grit","groggily","groggy","groin","groom","groove","grooving","groovy","grope","ground","grouped","grout","grove","grower","growing","growl","grub","grudge","grudging","grueling","gruffly","grumble","grumbling","grumbly","grumpily","grunge","grunt","guacamole","guidable","guidance","guide","guiding","guileless","guise","gulf","gullible","gully","gulp","gumball","gumdrop","gumminess","gumming","gummy","gurgle","gurgling","guru","gush","gusto","gusty","gutless","guts","gutter","guy","guzzler","gyration","habitable","habitant","habitat","habitual","hacked","hacker","hacking","hacksaw","had","haggler","haiku","half","halogen","halt","halved","halves","hamburger","hamlet","hammock","hamper","hamster","hamstring","handbag","handball","handbook","handbrake","handcart","handclap","handclasp","handcraft","handcuff","handed","handful","handgrip","handgun","handheld","handiness","handiwork","handlebar","handled","handler","handling","handmade","handoff","handpick","handprint","handrail","handsaw","handset","handsfree","handshake","handstand","handwash","handwork","handwoven","handwrite","handyman","hangnail","hangout","hangover","hangup","hankering","hankie","hanky","haphazard","happening","happier","happiest","happily","happiness","happy","harbor","hardcopy","hardcore","hardcover","harddisk","hardened","hardener","hardening","hardhat","hardhead","hardiness","hardly","hardness","hardship","hardware","hardwired","hardwood","hardy","harmful","harmless","harmonica","harmonics","harmonize","harmony","harness","harpist","harsh","harvest","hash","hassle","haste","hastily","hastiness","hasty","hatbox","hatchback","hatchery","hatchet","hatching","hatchling","hate","hatless","hatred","haunt","haven","hazard","hazelnut","hazily","haziness","hazing","hazy","headache","headband","headboard","headcount","headdress","headed","header","headfirst","headgear","heading","headlamp","headless","headlock","headphone","headpiece","headrest","headroom","headscarf","headset","headsman","headstand","headstone","headway","headwear","heap","heat","heave","heavily","heaviness","heaving","hedge","hedging","heftiness","hefty","helium","helmet","helper","helpful","helping","helpless","helpline","hemlock","hemstitch","hence","henchman","henna","herald","herbal","herbicide","herbs","heritage","hermit","heroics","heroism","herring","herself","hertz","hesitancy","hesitant","hesitate","hexagon","hexagram","hubcap","huddle","huddling","huff","hug","hula","hulk","hull","human","humble","humbling","humbly","humid","humiliate","humility","humming","hummus","humongous","humorist","humorless","humorous","humpback","humped","humvee","hunchback","hundredth","hunger","hungrily","hungry","hunk","hunter","hunting","huntress","huntsman","hurdle","hurled","hurler","hurling","hurray","hurricane","hurried","hurry","hurt","husband","hush","husked","huskiness","hut","hybrid","hydrant","hydrated","hydration","hydrogen","hydroxide","hyperlink","hypertext","hyphen","hypnoses","hypnosis","hypnotic","hypnotism","hypnotist","hypnotize","hypocrisy","hypocrite","ibuprofen","ice","iciness","icing","icky","icon","icy","idealism","idealist","idealize","ideally","idealness","identical","identify","identity","ideology","idiocy","idiom","idly","igloo","ignition","ignore","iguana","illicitly","illusion","illusive","image","imaginary","imagines","imaging","imbecile","imitate","imitation","immature","immerse","immersion","imminent","immobile","immodest","immorally","immortal","immovable","immovably","immunity","immunize","impaired","impale","impart","impatient","impeach","impeding","impending","imperfect","imperial","impish","implant","implement","implicate","implicit","implode","implosion","implosive","imply","impolite","important","importer","impose","imposing","impotence","impotency","impotent","impound","imprecise","imprint","imprison","impromptu","improper","improve","improving","improvise","imprudent","impulse","impulsive","impure","impurity","iodine","iodize","ion","ipad","iphone","ipod","irate","irk","iron","irregular","irrigate","irritable","irritably","irritant","irritate","islamic","islamist","isolated","isolating","isolation","isotope","issue","issuing","italicize","italics","item","itinerary","itunes","ivory","ivy","jab","jackal","jacket","jackknife","jackpot","jailbird","jailbreak","jailer","jailhouse","jalapeno","jam","janitor","january","jargon","jarring","jasmine","jaundice","jaunt","java","jawed","jawless","jawline","jaws","jaybird","jaywalker","jazz","jeep","jeeringly","jellied","jelly","jersey","jester","jet","jiffy","jigsaw","jimmy","jingle","jingling","jinx","jitters","jittery","job","jockey","jockstrap","jogger","jogging","john","joining","jokester","jokingly","jolliness","jolly","jolt","jot","jovial","joyfully","joylessly","joyous","joyride","joystick","jubilance","jubilant","judge","judgingly","judicial","judiciary","judo","juggle","juggling","jugular","juice","juiciness","juicy","jujitsu","jukebox","july","jumble","jumbo","jump","junction","juncture","june","junior","juniper","junkie","junkman","junkyard","jurist","juror","jury","justice","justifier","justify","justly","justness","juvenile","kabob","kangaroo","karaoke","karate","karma","kebab","keenly","keenness","keep","keg","kelp","kennel","kept","kerchief","kerosene","kettle","kick","kiln","kilobyte","kilogram","kilometer","kilowatt","kilt","kimono","kindle","kindling","kindly","kindness","kindred","kinetic","kinfolk","king","kinship","kinsman","kinswoman","kissable","kisser","kissing","kitchen","kite","kitten","kitty","kiwi","kleenex","knapsack","knee","knelt","knickers","knoll","koala","kooky","kosher","krypton","kudos","kung","labored","laborer","laboring","laborious","labrador","ladder","ladies","ladle","ladybug","ladylike","lagged","lagging","lagoon","lair","lake","lance","landed","landfall","landfill","landing","landlady","landless","landline","landlord","landmark","landmass","landmine","landowner","landscape","landside","landslide","language","lankiness","lanky","lantern","lapdog","lapel","lapped","lapping","laptop","lard","large","lark","lash","lasso","last","latch","late","lather","latitude","latrine","latter","latticed","launch","launder","laundry","laurel","lavender","lavish","laxative","lazily","laziness","lazy","lecturer","left","legacy","legal","legend","legged","leggings","legible","legibly","legislate","lego","legroom","legume","legwarmer","legwork","lemon","lend","length","lens","lent","leotard","lesser","letdown","lethargic","lethargy","letter","lettuce","level","leverage","levers","levitate","levitator","liability","liable","liberty","librarian","library","licking","licorice","lid","life","lifter","lifting","liftoff","ligament","likely","likeness","likewise","liking","lilac","lilly","lily","limb","limeade","limelight","limes","limit","limping","limpness","line","lingo","linguini","linguist","lining","linked","linoleum","linseed","lint","lion","lip","liquefy","liqueur","liquid","lisp","list","litigate","litigator","litmus","litter","little","livable","lived","lively","liver","livestock","lividly","living","lizard","lubricant","lubricate","lucid","luckily","luckiness","luckless","lucrative","ludicrous","lugged","lukewarm","lullaby","lumber","luminance","luminous","lumpiness","lumping","lumpish","lunacy","lunar","lunchbox","luncheon","lunchroom","lunchtime","lung","lurch","lure","luridness","lurk","lushly","lushness","luster","lustfully","lustily","lustiness","lustrous","lusty","luxurious","luxury","lying","lyrically","lyricism","lyricist","lyrics","macarena","macaroni","macaw","mace","machine","machinist","magazine","magenta","maggot","magical","magician","magma","magnesium","magnetic","magnetism","magnetize","magnifier","magnify","magnitude","magnolia","mahogany","maimed","majestic","majesty","majorette","majority","makeover","maker","makeshift","making","malformed","malt","mama","mammal","mammary","mammogram","manager","managing","manatee","mandarin","mandate","mandatory","mandolin","manger","mangle","mango","mangy","manhandle","manhole","manhood","manhunt","manicotti","manicure","manifesto","manila","mankind","manlike","manliness","manly","manmade","manned","mannish","manor","manpower","mantis","mantra","manual","many","map","marathon","marauding","marbled","marbles","marbling","march","mardi","margarine","margarita","margin","marigold","marina","marine","marital","maritime","marlin","marmalade","maroon","married","marrow","marry","marshland","marshy","marsupial","marvelous","marxism","mascot","masculine","mashed","mashing","massager","masses","massive","mastiff","matador","matchbook","matchbox","matcher","matching","matchless","material","maternal","maternity","math","mating","matriarch","matrimony","matrix","matron","matted","matter","maturely","maturing","maturity","mauve","maverick","maximize","maximum","maybe","mayday","mayflower","moaner","moaning","mobile","mobility","mobilize","mobster","mocha","mocker","mockup","modified","modify","modular","modulator","module","moisten","moistness","moisture","molar","molasses","mold","molecular","molecule","molehill","mollusk","mom","monastery","monday","monetary","monetize","moneybags","moneyless","moneywise","mongoose","mongrel","monitor","monkhood","monogamy","monogram","monologue","monopoly","monorail","monotone","monotype","monoxide","monsieur","monsoon","monstrous","monthly","monument","moocher","moodiness","moody","mooing","moonbeam","mooned","moonlight","moonlike","moonlit","moonrise","moonscape","moonshine","moonstone","moonwalk","mop","morale","morality","morally","morbidity","morbidly","morphine","morphing","morse","mortality","mortally","mortician","mortified","mortify","mortuary","mosaic","mossy","most","mothball","mothproof","motion","motivate","motivator","motive","motocross","motor","motto","mountable","mountain","mounted","mounting","mourner","mournful","mouse","mousiness","moustache","mousy","mouth","movable","move","movie","moving","mower","mowing","much","muck","mud","mug","mulberry","mulch","mule","mulled","mullets","multiple","multiply","multitask","multitude","mumble","mumbling","mumbo","mummified","mummify","mummy","mumps","munchkin","mundane","municipal","muppet","mural","murkiness","murky","murmuring","muscular","museum","mushily","mushiness","mushroom","mushy","music","musket","muskiness","musky","mustang","mustard","muster","mustiness","musty","mutable","mutate","mutation","mute","mutilated","mutilator","mutiny","mutt","mutual","muzzle","myself","myspace","mystified","mystify","myth","nacho","nag","nail","name","naming","nanny","nanometer","nape","napkin","napped","napping","nappy","narrow","nastily","nastiness","national","native","nativity","natural","nature","naturist","nautical","navigate","navigator","navy","nearby","nearest","nearly","nearness","neatly","neatness","nebula","nebulizer","nectar","negate","negation","negative","neglector","negligee","negligent","negotiate","nemeses","nemesis","neon","nephew","nerd","nervous","nervy","nest","net","neurology","neuron","neurosis","neurotic","neuter","neutron","never","next","nibble","nickname","nicotine","niece","nifty","nimble","nimbly","nineteen","ninetieth","ninja","nintendo","ninth","nuclear","nuclei","nucleus","nugget","nullify","number","numbing","numbly","numbness","numeral","numerate","numerator","numeric","numerous","nuptials","nursery","nursing","nurture","nutcase","nutlike","nutmeg","nutrient","nutshell","nuttiness","nutty","nuzzle","nylon","oaf","oak","oasis","oat","obedience","obedient","obituary","object","obligate","obliged","oblivion","oblivious","oblong","obnoxious","oboe","obscure","obscurity","observant","observer","observing","obsessed","obsession","obsessive","obsolete","obstacle","obstinate","obstruct","obtain","obtrusive","obtuse","obvious","occultist","occupancy","occupant","occupier","occupy","ocean","ocelot","octagon","octane","october","octopus","ogle","oil","oink","ointment","okay","old","olive","olympics","omega","omen","ominous","omission","omit","omnivore","onboard","oncoming","ongoing","onion","online","onlooker","only","onscreen","onset","onshore","onslaught","onstage","onto","onward","onyx","oops","ooze","oozy","opacity","opal","open","operable","operate","operating","operation","operative","operator","opium","opossum","opponent","oppose","opposing","opposite","oppressed","oppressor","opt","opulently","osmosis","other","otter","ouch","ought","ounce","outage","outback","outbid","outboard","outbound","outbreak","outburst","outcast","outclass","outcome","outdated","outdoors","outer","outfield","outfit","outflank","outgoing","outgrow","outhouse","outing","outlast","outlet","outline","outlook","outlying","outmatch","outmost","outnumber","outplayed","outpost","outpour","output","outrage","outrank","outreach","outright","outscore","outsell","outshine","outshoot","outsider","outskirts","outsmart","outsource","outspoken","outtakes","outthink","outward","outweigh","outwit","oval","ovary","oven","overact","overall","overarch","overbid","overbill","overbite","overblown","overboard","overbook","overbuilt","overcast","overcoat","overcome","overcook","overcrowd","overdraft","overdrawn","overdress","overdrive","overdue","overeager","overeater","overexert","overfed","overfeed","overfill","overflow","overfull","overgrown","overhand","overhang","overhaul","overhead","overhear","overheat","overhung","overjoyed","overkill","overlabor","overlaid","overlap","overlay","overload","overlook","overlord","overlying","overnight","overpass","overpay","overplant","overplay","overpower","overprice","overrate","overreach","overreact","override","overripe","overrule","overrun","overshoot","overshot","oversight","oversized","oversleep","oversold","overspend","overstate","overstay","overstep","overstock","overstuff","oversweet","overtake","overthrow","overtime","overtly","overtone","overture","overturn","overuse","overvalue","overview","overwrite","owl","oxford","oxidant","oxidation","oxidize","oxidizing","oxygen","oxymoron","oyster","ozone","paced","pacemaker","pacific","pacifier","pacifism","pacifist","pacify","padded","padding","paddle","paddling","padlock","pagan","pager","paging","pajamas","palace","palatable","palm","palpable","palpitate","paltry","pampered","pamperer","pampers","pamphlet","panama","pancake","pancreas","panda","pandemic","pang","panhandle","panic","panning","panorama","panoramic","panther","pantomime","pantry","pants","pantyhose","paparazzi","papaya","paper","paprika","papyrus","parabola","parachute","parade","paradox","paragraph","parakeet","paralegal","paralyses","paralysis","paralyze","paramedic","parameter","paramount","parasail","parasite","parasitic","parcel","parched","parchment","pardon","parish","parka","parking","parkway","parlor","parmesan","parole","parrot","parsley","parsnip","partake","parted","parting","partition","partly","partner","partridge","party","passable","passably","passage","passcode","passenger","passerby","passing","passion","passive","passivism","passover","passport","password","pasta","pasted","pastel","pastime","pastor","pastrami","pasture","pasty","patchwork","patchy","paternal","paternity","path","patience","patient","patio","patriarch","patriot","patrol","patronage","patronize","pauper","pavement","paver","pavestone","pavilion","paving","pawing","payable","payback","paycheck","payday","payee","payer","paying","payment","payphone","payroll","pebble","pebbly","pecan","pectin","peculiar","peddling","pediatric","pedicure","pedigree","pedometer","pegboard","pelican","pellet","pelt","pelvis","penalize","penalty","pencil","pendant","pending","penholder","penknife","pennant","penniless","penny","penpal","pension","pentagon","pentagram","pep","perceive","percent","perch","percolate","perennial","perfected","perfectly","perfume","periscope","perish","perjurer","perjury","perkiness","perky","perm","peroxide","perpetual","perplexed","persecute","persevere","persuaded","persuader","pesky","peso","pessimism","pessimist","pester","pesticide","petal","petite","petition","petri","petroleum","petted","petticoat","pettiness","petty","petunia","phantom","phobia","phoenix","phonebook","phoney","phonics","phoniness","phony","phosphate","photo","phrase","phrasing","placard","placate","placidly","plank","planner","plant","plasma","plaster","plastic","plated","platform","plating","platinum","platonic","platter","platypus","plausible","plausibly","playable","playback","player","playful","playgroup","playhouse","playing","playlist","playmaker","playmate","playoff","playpen","playroom","playset","plaything","playtime","plaza","pleading","pleat","pledge","plentiful","plenty","plethora","plexiglas","pliable","plod","plop","plot","plow","ploy","pluck","plug","plunder","plunging","plural","plus","plutonium","plywood","poach","pod","poem","poet","pogo","pointed","pointer","pointing","pointless","pointy","poise","poison","poker","poking","polar","police","policy","polio","polish","politely","polka","polo","polyester","polygon","polygraph","polymer","poncho","pond","pony","popcorn","pope","poplar","popper","poppy","popsicle","populace","popular","populate","porcupine","pork","porous","porridge","portable","portal","portfolio","porthole","portion","portly","portside","poser","posh","posing","possible","possibly","possum","postage","postal","postbox","postcard","posted","poster","posting","postnasal","posture","postwar","pouch","pounce","pouncing","pound","pouring","pout","powdered","powdering","powdery","power","powwow","pox","praising","prance","prancing","pranker","prankish","prankster","prayer","praying","preacher","preaching","preachy","preamble","precinct","precise","precision","precook","precut","predator","predefine","predict","preface","prefix","preflight","preformed","pregame","pregnancy","pregnant","preheated","prelaunch","prelaw","prelude","premiere","premises","premium","prenatal","preoccupy","preorder","prepaid","prepay","preplan","preppy","preschool","prescribe","preseason","preset","preshow","president","presoak","press","presume","presuming","preteen","pretended","pretender","pretense","pretext","pretty","pretzel","prevail","prevalent","prevent","preview","previous","prewar","prewashed","prideful","pried","primal","primarily","primary","primate","primer","primp","princess","print","prior","prism","prison","prissy","pristine","privacy","private","privatize","prize","proactive","probable","probably","probation","probe","probing","probiotic","problem","procedure","process","proclaim","procreate","procurer","prodigal","prodigy","produce","product","profane","profanity","professed","professor","profile","profound","profusely","progeny","prognosis","program","progress","projector","prologue","prolonged","promenade","prominent","promoter","promotion","prompter","promptly","prone","prong","pronounce","pronto","proofing","proofread","proofs","propeller","properly","property","proponent","proposal","propose","props","prorate","protector","protegee","proton","prototype","protozoan","protract","protrude","proud","provable","proved","proven","provided","provider","providing","province","proving","provoke","provoking","provolone","prowess","prowler","prowling","proximity","proxy","prozac","prude","prudishly","prune","pruning","pry","psychic","public","publisher","pucker","pueblo","pug","pull","pulmonary","pulp","pulsate","pulse","pulverize","puma","pumice","pummel","punch","punctual","punctuate","punctured","pungent","punisher","punk","pupil","puppet","puppy","purchase","pureblood","purebred","purely","pureness","purgatory","purge","purging","purifier","purify","purist","puritan","purity","purple","purplish","purposely","purr","purse","pursuable","pursuant","pursuit","purveyor","pushcart","pushchair","pusher","pushiness","pushing","pushover","pushpin","pushup","pushy","putdown","putt","puzzle","puzzling","pyramid","pyromania","python","quack","quadrant","quail","quaintly","quake","quaking","qualified","qualifier","qualify","quality","qualm","quantum","quarrel","quarry","quartered","quarterly","quarters","quartet","quench","query","quicken","quickly","quickness","quicksand","quickstep","quiet","quill","quilt","quintet","quintuple","quirk","quit","quiver","quizzical","quotable","quotation","quote","rabid","race","racing","racism","rack","racoon","radar","radial","radiance","radiantly","radiated","radiation","radiator","radio","radish","raffle","raft","rage","ragged","raging","ragweed","raider","railcar","railing","railroad","railway","raisin","rake","raking","rally","ramble","rambling","ramp","ramrod","ranch","rancidity","random","ranged","ranger","ranging","ranked","ranking","ransack","ranting","rants","rare","rarity","rascal","rash","rasping","ravage","raven","ravine","raving","ravioli","ravishing","reabsorb","reach","reacquire","reaction","reactive","reactor","reaffirm","ream","reanalyze","reappear","reapply","reappoint","reapprove","rearrange","rearview","reason","reassign","reassure","reattach","reawake","rebalance","rebate","rebel","rebirth","reboot","reborn","rebound","rebuff","rebuild","rebuilt","reburial","rebuttal","recall","recant","recapture","recast","recede","recent","recess","recharger","recipient","recital","recite","reckless","reclaim","recliner","reclining","recluse","reclusive","recognize","recoil","recollect","recolor","reconcile","reconfirm","reconvene","recopy","record","recount","recoup","recovery","recreate","rectal","rectangle","rectified","rectify","recycled","recycler","recycling","reemerge","reenact","reenter","reentry","reexamine","referable","referee","reference","refill","refinance","refined","refinery","refining","refinish","reflected","reflector","reflex","reflux","refocus","refold","reforest","reformat","reformed","reformer","reformist","refract","refrain","refreeze","refresh","refried","refueling","refund","refurbish","refurnish","refusal","refuse","refusing","refutable","refute","regain","regalia","regally","reggae","regime","region","register","registrar","registry","regress","regretful","regroup","regular","regulate","regulator","rehab","reheat","rehire","rehydrate","reimburse","reissue","reiterate","rejoice","rejoicing","rejoin","rekindle","relapse","relapsing","relatable","related","relation","relative","relax","relay","relearn","release","relenting","reliable","reliably","reliance","reliant","relic","relieve","relieving","relight","relish","relive","reload","relocate","relock","reluctant","rely","remake","remark","remarry","rematch","remedial","remedy","remember","reminder","remindful","remission","remix","remnant","remodeler","remold","remorse","remote","removable","removal","removed","remover","removing","rename","renderer","rendering","rendition","renegade","renewable","renewably","renewal","renewed","renounce","renovate","renovator","rentable","rental","rented","renter","reoccupy","reoccur","reopen","reorder","repackage","repacking","repaint","repair","repave","repaying","repayment","repeal","repeated","repeater","repent","rephrase","replace","replay","replica","reply","reporter","repose","repossess","repost","repressed","reprimand","reprint","reprise","reproach","reprocess","reproduce","reprogram","reps","reptile","reptilian","repugnant","repulsion","repulsive","repurpose","reputable","reputably","request","require","requisite","reroute","rerun","resale","resample","rescuer","reseal","research","reselect","reseller","resemble","resend","resent","reset","reshape","reshoot","reshuffle","residence","residency","resident","residual","residue","resigned","resilient","resistant","resisting","resize","resolute","resolved","resonant","resonate","resort","resource","respect","resubmit","result","resume","resupply","resurface","resurrect","retail","retainer","retaining","retake","retaliate","retention","rethink","retinal","retired","retiree","retiring","retold","retool","retorted","retouch","retrace","retract","retrain","retread","retreat","retrial","retrieval","retriever","retry","return","retying","retype","reunion","reunite","reusable","reuse","reveal","reveler","revenge","revenue","reverb","revered","reverence","reverend","reversal","reverse","reversing","reversion","revert","revisable","revise","revision","revisit","revivable","revival","reviver","reviving","revocable","revoke","revolt","revolver","revolving","reward","rewash","rewind","rewire","reword","rework","rewrap","rewrite","rhyme","ribbon","ribcage","rice","riches","richly","richness","rickety","ricotta","riddance","ridden","ride","riding","rifling","rift","rigging","rigid","rigor","rimless","rimmed","rind","rink","rinse","rinsing","riot","ripcord","ripeness","ripening","ripping","ripple","rippling","riptide","rise","rising","risk","risotto","ritalin","ritzy","rival","riverbank","riverbed","riverboat","riverside","riveter","riveting","roamer","roaming","roast","robbing","robe","robin","robotics","robust","rockband","rocker","rocket","rockfish","rockiness","rocking","rocklike","rockslide","rockstar","rocky","rogue","roman","romp","rope","roping","roster","rosy","rotten","rotting","rotunda","roulette","rounding","roundish","roundness","roundup","roundworm","routine","routing","rover","roving","royal","rubbed","rubber","rubbing","rubble","rubdown","ruby","ruckus","rudder","rug","ruined","rule","rumble","rumbling","rummage","rumor","runaround","rundown","runner","running","runny","runt","runway","rupture","rural","ruse","rush","rust","rut","sabbath","sabotage","sacrament","sacred","sacrifice","sadden","saddlebag","saddled","saddling","sadly","sadness","safari","safeguard","safehouse","safely","safeness","saffron","saga","sage","sagging","saggy","said","saint","sake","salad","salami","salaried","salary","saline","salon","saloon","salsa","salt","salutary","salute","salvage","salvaging","salvation","same","sample","sampling","sanction","sanctity","sanctuary","sandal","sandbag","sandbank","sandbar","sandblast","sandbox","sanded","sandfish","sanding","sandlot","sandpaper","sandpit","sandstone","sandstorm","sandworm","sandy","sanitary","sanitizer","sank","santa","sapling","sappiness","sappy","sarcasm","sarcastic","sardine","sash","sasquatch","sassy","satchel","satiable","satin","satirical","satisfied","satisfy","saturate","saturday","sauciness","saucy","sauna","savage","savanna","saved","savings","savior","savor","saxophone","say","scabbed","scabby","scalded","scalding","scale","scaling","scallion","scallop","scalping","scam","scandal","scanner","scanning","scant","scapegoat","scarce","scarcity","scarecrow","scared","scarf","scarily","scariness","scarring","scary","scavenger","scenic","schedule","schematic","scheme","scheming","schilling","schnapps","scholar","science","scientist","scion","scoff","scolding","scone","scoop","scooter","scope","scorch","scorebook","scorecard","scored","scoreless","scorer","scoring","scorn","scorpion","scotch","scoundrel","scoured","scouring","scouting","scouts","scowling","scrabble","scraggly","scrambled","scrambler","scrap","scratch","scrawny","screen","scribble","scribe","scribing","scrimmage","script","scroll","scrooge","scrounger","scrubbed","scrubber","scruffy","scrunch","scrutiny","scuba","scuff","sculptor","sculpture","scurvy","scuttle","secluded","secluding","seclusion","second","secrecy","secret","sectional","sector","secular","securely","security","sedan","sedate","sedation","sedative","sediment","seduce","seducing","segment","seismic","seizing","seldom","selected","selection","selective","selector","self","seltzer","semantic","semester","semicolon","semifinal","seminar","semisoft","semisweet","senate","senator","send","senior","senorita","sensation","sensitive","sensitize","sensually","sensuous","sepia","september","septic","septum","sequel","sequence","sequester","series","sermon","serotonin","serpent","serrated","serve","service","serving","sesame","sessions","setback","setting","settle","settling","setup","sevenfold","seventeen","seventh","seventy","severity","shabby","shack","shaded","shadily","shadiness","shading","shadow","shady","shaft","shakable","shakily","shakiness","shaking","shaky","shale","shallot","shallow","shame","shampoo","shamrock","shank","shanty","shape","shaping","share","sharpener","sharper","sharpie","sharply","sharpness","shawl","sheath","shed","sheep","sheet","shelf","shell","shelter","shelve","shelving","sherry","shield","shifter","shifting","shiftless","shifty","shimmer","shimmy","shindig","shine","shingle","shininess","shining","shiny","ship","shirt","shivering","shock","shone","shoplift","shopper","shopping","shoptalk","shore","shortage","shortcake","shortcut","shorten","shorter","shorthand","shortlist","shortly","shortness","shorts","shortwave","shorty","shout","shove","showbiz","showcase","showdown","shower","showgirl","showing","showman","shown","showoff","showpiece","showplace","showroom","showy","shrank","shrapnel","shredder","shredding","shrewdly","shriek","shrill","shrimp","shrine","shrink","shrivel","shrouded","shrubbery","shrubs","shrug","shrunk","shucking","shudder","shuffle","shuffling","shun","shush","shut","shy","siamese","siberian","sibling","siding","sierra","siesta","sift","sighing","silenced","silencer","silent","silica","silicon","silk","silliness","silly","silo","silt","silver","similarly","simile","simmering","simple","simplify","simply","sincere","sincerity","singer","singing","single","singular","sinister","sinless","sinner","sinuous","sip","siren","sister","sitcom","sitter","sitting","situated","situation","sixfold","sixteen","sixth","sixties","sixtieth","sixtyfold","sizable","sizably","size","sizing","sizzle","sizzling","skater","skating","skedaddle","skeletal","skeleton","skeptic","sketch","skewed","skewer","skid","skied","skier","skies","skiing","skilled","skillet","skillful","skimmed","skimmer","skimming","skimpily","skincare","skinhead","skinless","skinning","skinny","skintight","skipper","skipping","skirmish","skirt","skittle","skydiver","skylight","skyline","skype","skyrocket","skyward","slab","slacked","slacker","slacking","slackness","slacks","slain","slam","slander","slang","slapping","slapstick","slashed","slashing","slate","slather","slaw","sled","sleek","sleep","sleet","sleeve","slept","sliceable","sliced","slicer","slicing","slick","slider","slideshow","sliding","slighted","slighting","slightly","slimness","slimy","slinging","slingshot","slinky","slip","slit","sliver","slobbery","slogan","sloped","sloping","sloppily","sloppy","slot","slouching","slouchy","sludge","slug","slum","slurp","slush","sly","small","smartly","smartness","smasher","smashing","smashup","smell","smelting","smile","smilingly","smirk","smite","smith","smitten","smock","smog","smoked","smokeless","smokiness","smoking","smoky","smolder","smooth","smother","smudge","smudgy","smuggler","smuggling","smugly","smugness","snack","snagged","snaking","snap","snare","snarl","snazzy","sneak","sneer","sneeze","sneezing","snide","sniff","snippet","snipping","snitch","snooper","snooze","snore","snoring","snorkel","snort","snout","snowbird","snowboard","snowbound","snowcap","snowdrift","snowdrop","snowfall","snowfield","snowflake","snowiness","snowless","snowman","snowplow","snowshoe","snowstorm","snowsuit","snowy","snub","snuff","snuggle","snugly","snugness","speak","spearfish","spearhead","spearman","spearmint","species","specimen","specked","speckled","specks","spectacle","spectator","spectrum","speculate","speech","speed","spellbind","speller","spelling","spendable","spender","spending","spent","spew","sphere","spherical","sphinx","spider","spied","spiffy","spill","spilt","spinach","spinal","spindle","spinner","spinning","spinout","spinster","spiny","spiral","spirited","spiritism","spirits","spiritual","splashed","splashing","splashy","splatter","spleen","splendid","splendor","splice","splicing","splinter","splotchy","splurge","spoilage","spoiled","spoiler","spoiling","spoils","spoken","spokesman","sponge","spongy","sponsor","spoof","spookily","spooky","spool","spoon","spore","sporting","sports","sporty","spotless","spotlight","spotted","spotter","spotting","spotty","spousal","spouse","spout","sprain","sprang","sprawl","spray","spree","sprig","spring","sprinkled","sprinkler","sprint","sprite","sprout","spruce","sprung","spry","spud","spur","sputter","spyglass","squabble","squad","squall","squander","squash","squatted","squatter","squatting","squeak","squealer","squealing","squeamish","squeegee","squeeze","squeezing","squid","squiggle","squiggly","squint","squire","squirt","squishier","squishy","stability","stabilize","stable","stack","stadium","staff","stage","staging","stagnant","stagnate","stainable","stained","staining","stainless","stalemate","staleness","stalling","stallion","stamina","stammer","stamp","stand","stank","staple","stapling","starboard","starch","stardom","stardust","starfish","stargazer","staring","stark","starless","starlet","starlight","starlit","starring","starry","starship","starter","starting","startle","startling","startup","starved","starving","stash","state","static","statistic","statue","stature","status","statute","statutory","staunch","stays","steadfast","steadier","steadily","steadying","steam","steed","steep","steerable","steering","steersman","stegosaur","stellar","stem","stench","stencil","step","stereo","sterile","sterility","sterilize","sterling","sternness","sternum","stew","stick","stiffen","stiffly","stiffness","stifle","stifling","stillness","stilt","stimulant","stimulate","stimuli","stimulus","stinger","stingily","stinging","stingray","stingy","stinking","stinky","stipend","stipulate","stir","stitch","stock","stoic","stoke","stole","stomp","stonewall","stoneware","stonework","stoning","stony","stood","stooge","stool","stoop","stoplight","stoppable","stoppage","stopped","stopper","stopping","stopwatch","storable","storage","storeroom","storewide","storm","stout","stove","stowaway","stowing","straddle","straggler","strained","strainer","straining","strangely","stranger","strangle","strategic","strategy","stratus","straw","stray","streak","stream","street","strength","strenuous","strep","stress","stretch","strewn","stricken","strict","stride","strife","strike","striking","strive","striving","strobe","strode","stroller","strongbox","strongly","strongman","struck","structure","strudel","struggle","strum","strung","strut","stubbed","stubble","stubbly","stubborn","stucco","stuck","student","studied","studio","study","stuffed","stuffing","stuffy","stumble","stumbling","stump","stung","stunned","stunner","stunning","stunt","stupor","sturdily","sturdy","styling","stylishly","stylist","stylized","stylus","suave","subarctic","subatomic","subdivide","subdued","subduing","subfloor","subgroup","subheader","subject","sublease","sublet","sublevel","sublime","submarine","submerge","submersed","submitter","subpanel","subpar","subplot","subprime","subscribe","subscript","subsector","subside","subsiding","subsidize","subsidy","subsoil","subsonic","substance","subsystem","subtext","subtitle","subtly","subtotal","subtract","subtype","suburb","subway","subwoofer","subzero","succulent","such","suction","sudden","sudoku","suds","sufferer","suffering","suffice","suffix","suffocate","suffrage","sugar","suggest","suing","suitable","suitably","suitcase","suitor","sulfate","sulfide","sulfite","sulfur","sulk","sullen","sulphate","sulphuric","sultry","superbowl","superglue","superhero","superior","superjet","superman","supermom","supernova","supervise","supper","supplier","supply","support","supremacy","supreme","surcharge","surely","sureness","surface","surfacing","surfboard","surfer","surgery","surgical","surging","surname","surpass","surplus","surprise","surreal","surrender","surrogate","surround","survey","survival","survive","surviving","survivor","sushi","suspect","suspend","suspense","sustained","sustainer","swab","swaddling","swagger","swampland","swan","swapping","swarm","sway","swear","sweat","sweep","swell","swept","swerve","swifter","swiftly","swiftness","swimmable","swimmer","swimming","swimsuit","swimwear","swinger","swinging","swipe","swirl","switch","swivel","swizzle","swooned","swoop","swoosh","swore","sworn","swung","sycamore","sympathy","symphonic","symphony","symptom","synapse","syndrome","synergy","synopses","synopsis","synthesis","synthetic","syrup","system","t-shirt","tabasco","tabby","tableful","tables","tablet","tableware","tabloid","tackiness","tacking","tackle","tackling","tacky","taco","tactful","tactical","tactics","tactile","tactless","tadpole","taekwondo","tag","tainted","take","taking","talcum","talisman","tall","talon","tamale","tameness","tamer","tamper","tank","tanned","tannery","tanning","tantrum","tapeless","tapered","tapering","tapestry","tapioca","tapping","taps","tarantula","target","tarmac","tarnish","tarot","tartar","tartly","tartness","task","tassel","taste","tastiness","tasting","tasty","tattered","tattle","tattling","tattoo","taunt","tavern","thank","that","thaw","theater","theatrics","thee","theft","theme","theology","theorize","thermal","thermos","thesaurus","these","thesis","thespian","thicken","thicket","thickness","thieving","thievish","thigh","thimble","thing","think","thinly","thinner","thinness","thinning","thirstily","thirsting","thirsty","thirteen","thirty","thong","thorn","those","thousand","thrash","thread","threaten","threefold","thrift","thrill","thrive","thriving","throat","throbbing","throng","throttle","throwaway","throwback","thrower","throwing","thud","thumb","thumping","thursday","thus","thwarting","thyself","tiara","tibia","tidal","tidbit","tidiness","tidings","tidy","tiger","tighten","tightly","tightness","tightrope","tightwad","tigress","tile","tiling","till","tilt","timid","timing","timothy","tinderbox","tinfoil","tingle","tingling","tingly","tinker","tinkling","tinsel","tinsmith","tint","tinwork","tiny","tipoff","tipped","tipper","tipping","tiptoeing","tiptop","tiring","tissue","trace","tracing","track","traction","tractor","trade","trading","tradition","traffic","tragedy","trailing","trailside","train","traitor","trance","tranquil","transfer","transform","translate","transpire","transport","transpose","trapdoor","trapeze","trapezoid","trapped","trapper","trapping","traps","trash","travel","traverse","travesty","tray","treachery","treading","treadmill","treason","treat","treble","tree","trekker","tremble","trembling","tremor","trench","trend","trespass","triage","trial","triangle","tribesman","tribunal","tribune","tributary","tribute","triceps","trickery","trickily","tricking","trickle","trickster","tricky","tricolor","tricycle","trident","tried","trifle","trifocals","trillion","trilogy","trimester","trimmer","trimming","trimness","trinity","trio","tripod","tripping","triumph","trivial","trodden","trolling","trombone","trophy","tropical","tropics","trouble","troubling","trough","trousers","trout","trowel","truce","truck","truffle","trump","trunks","trustable","trustee","trustful","trusting","trustless","truth","try","tubby","tubeless","tubular","tucking","tuesday","tug","tuition","tulip","tumble","tumbling","tummy","turban","turbine","turbofan","turbojet","turbulent","turf","turkey","turmoil","turret","turtle","tusk","tutor","tutu","tux","tweak","tweed","tweet","tweezers","twelve","twentieth","twenty","twerp","twice","twiddle","twiddling","twig","twilight","twine","twins","twirl","twistable","twisted","twister","twisting","twisty","twitch","twitter","tycoon","tying","tyke","udder","ultimate","ultimatum","ultra","umbilical","umbrella","umpire","unabashed","unable","unadorned","unadvised","unafraid","unaired","unaligned","unaltered","unarmored","unashamed","unaudited","unawake","unaware","unbaked","unbalance","unbeaten","unbend","unbent","unbiased","unbitten","unblended","unblessed","unblock","unbolted","unbounded","unboxed","unbraided","unbridle","unbroken","unbuckled","unbundle","unburned","unbutton","uncanny","uncapped","uncaring","uncertain","unchain","unchanged","uncharted","uncheck","uncivil","unclad","unclaimed","unclamped","unclasp","uncle","unclip","uncloak","unclog","unclothed","uncoated","uncoiled","uncolored","uncombed","uncommon","uncooked","uncork","uncorrupt","uncounted","uncouple","uncouth","uncover","uncross","uncrown","uncrushed","uncured","uncurious","uncurled","uncut","undamaged","undated","undaunted","undead","undecided","undefined","underage","underarm","undercoat","undercook","undercut","underdog","underdone","underfed","underfeed","underfoot","undergo","undergrad","underhand","underline","underling","undermine","undermost","underpaid","underpass","underpay","underrate","undertake","undertone","undertook","undertow","underuse","underwear","underwent","underwire","undesired","undiluted","undivided","undocked","undoing","undone","undrafted","undress","undrilled","undusted","undying","unearned","unearth","unease","uneasily","uneasy","uneatable","uneaten","unedited","unelected","unending","unengaged","unenvied","unequal","unethical","uneven","unexpired","unexposed","unfailing","unfair","unfasten","unfazed","unfeeling","unfiled","unfilled","unfitted","unfitting","unfixable","unfixed","unflawed","unfocused","unfold","unfounded","unframed","unfreeze","unfrosted","unfrozen","unfunded","unglazed","ungloved","unglue","ungodly","ungraded","ungreased","unguarded","unguided","unhappily","unhappy","unharmed","unhealthy","unheard","unhearing","unheated","unhelpful","unhidden","unhinge","unhitched","unholy","unhook","unicorn","unicycle","unified","unifier","uniformed","uniformly","unify","unimpeded","uninjured","uninstall","uninsured","uninvited","union","uniquely","unisexual","unison","unissued","unit","universal","universe","unjustly","unkempt","unkind","unknotted","unknowing","unknown","unlaced","unlatch","unlawful","unleaded","unlearned","unleash","unless","unleveled","unlighted","unlikable","unlimited","unlined","unlinked","unlisted","unlit","unlivable","unloaded","unloader","unlocked","unlocking","unlovable","unloved","unlovely","unloving","unluckily","unlucky","unmade","unmanaged","unmanned","unmapped","unmarked","unmasked","unmasking","unmatched","unmindful","unmixable","unmixed","unmolded","unmoral","unmovable","unmoved","unmoving","unnamable","unnamed","unnatural","unneeded","unnerve","unnerving","unnoticed","unopened","unopposed","unpack","unpadded","unpaid","unpainted","unpaired","unpaved","unpeeled","unpicked","unpiloted","unpinned","unplanned","unplanted","unpleased","unpledged","unplowed","unplug","unpopular","unproven","unquote","unranked","unrated","unraveled","unreached","unread","unreal","unreeling","unrefined","unrelated","unrented","unrest","unretired","unrevised","unrigged","unripe","unrivaled","unroasted","unrobed","unroll","unruffled","unruly","unrushed","unsaddle","unsafe","unsaid","unsalted","unsaved","unsavory","unscathed","unscented","unscrew","unsealed","unseated","unsecured","unseeing","unseemly","unseen","unselect","unselfish","unsent","unsettled","unshackle","unshaken","unshaved","unshaven","unsheathe","unshipped","unsightly","unsigned","unskilled","unsliced","unsmooth","unsnap","unsocial","unsoiled","unsold","unsolved","unsorted","unspoiled","unspoken","unstable","unstaffed","unstamped","unsteady","unsterile","unstirred","unstitch","unstopped","unstuck","unstuffed","unstylish","unsubtle","unsubtly","unsuited","unsure","unsworn","untagged","untainted","untaken","untamed","untangled","untapped","untaxed","unthawed","unthread","untidy","untie","until","untimed","untimely","untitled","untoasted","untold","untouched","untracked","untrained","untreated","untried","untrimmed","untrue","untruth","unturned","untwist","untying","unusable","unused","unusual","unvalued","unvaried","unvarying","unveiled","unveiling","unvented","unviable","unvisited","unvocal","unwanted","unwarlike","unwary","unwashed","unwatched","unweave","unwed","unwelcome","unwell","unwieldy","unwilling","unwind","unwired","unwitting","unwomanly","unworldly","unworn","unworried","unworthy","unwound","unwoven","unwrapped","unwritten","unzip","upbeat","upchuck","upcoming","upcountry","update","upfront","upgrade","upheaval","upheld","uphill","uphold","uplifted","uplifting","upload","upon","upper","upright","uprising","upriver","uproar","uproot","upscale","upside","upstage","upstairs","upstart","upstate","upstream","upstroke","upswing","uptake","uptight","uptown","upturned","upward","upwind","uranium","urban","urchin","urethane","urgency","urgent","urging","urologist","urology","usable","usage","useable","used","uselessly","user","usher","usual","utensil","utility","utilize","utmost","utopia","utter","vacancy","vacant","vacate","vacation","vagabond","vagrancy","vagrantly","vaguely","vagueness","valiant","valid","valium","valley","valuables","value","vanilla","vanish","vanity","vanquish","vantage","vaporizer","variable","variably","varied","variety","various","varmint","varnish","varsity","varying","vascular","vaseline","vastly","vastness","veal","vegan","veggie","vehicular","velcro","velocity","velvet","vendetta","vending","vendor","veneering","vengeful","venomous","ventricle","venture","venue","venus","verbalize","verbally","verbose","verdict","verify","verse","version","versus","vertebrae","vertical","vertigo","very","vessel","vest","veteran","veto","vexingly","viability","viable","vibes","vice","vicinity","victory","video","viewable","viewer","viewing","viewless","viewpoint","vigorous","village","villain","vindicate","vineyard","vintage","violate","violation","violator","violet","violin","viper","viral","virtual","virtuous","virus","visa","viscosity","viscous","viselike","visible","visibly","vision","visiting","visitor","visor","vista","vitality","vitalize","vitally","vitamins","vivacious","vividly","vividness","vixen","vocalist","vocalize","vocally","vocation","voice","voicing","void","volatile","volley","voltage","volumes","voter","voting","voucher","vowed","vowel","voyage","wackiness","wad","wafer","waffle","waged","wager","wages","waggle","wagon","wake","waking","walk","walmart","walnut","walrus","waltz","wand","wannabe","wanted","wanting","wasabi","washable","washbasin","washboard","washbowl","washcloth","washday","washed","washer","washhouse","washing","washout","washroom","washstand","washtub","wasp","wasting","watch","water","waviness","waving","wavy","whacking","whacky","wham","wharf","wheat","whenever","whiff","whimsical","whinny","whiny","whisking","whoever","whole","whomever","whoopee","whooping","whoops","why","wick","widely","widen","widget","widow","width","wieldable","wielder","wife","wifi","wikipedia","wildcard","wildcat","wilder","wildfire","wildfowl","wildland","wildlife","wildly","wildness","willed","willfully","willing","willow","willpower","wilt","wimp","wince","wincing","wind","wing","winking","winner","winnings","winter","wipe","wired","wireless","wiring","wiry","wisdom","wise","wish","wisplike","wispy","wistful","wizard","wobble","wobbling","wobbly","wok","wolf","wolverine","womanhood","womankind","womanless","womanlike","womanly","womb","woof","wooing","wool","woozy","word","work","worried","worrier","worrisome","worry","worsening","worshiper","worst","wound","woven","wow","wrangle","wrath","wreath","wreckage","wrecker","wrecking","wrench","wriggle","wriggly","wrinkle","wrinkly","wrist","writing","written","wrongdoer","wronged","wrongful","wrongly","wrongness","wrought","xbox","xerox","yahoo","yam","yanking","yapping","yard","yarn","yeah","yearbook","yearling","yearly","yearning","yeast","yelling","yelp","yen","yesterday","yiddish","yield","yin","yippee","yo-yo","yodel","yoga","yogurt","yonder","yoyo","yummy","zap","zealous","zebra","zen","zeppelin","zero","zestfully","zesty","zigzagged","zipfile","zipping","zippy","zips","zit","zodiac","zombie","zone","zoning","zookeeper","zoologist","zoology","zoom"]},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&this.cipherService.upsert(a)}return[2]}})})},e.prototype.deleteWithServer=function(e){return r(this,void 0,void 0,function(){return i(this,function(t){switch(t.label){case 0:return[4,this.apiService.deleteFolder(e)];case 1:return t.sent(),[4,this.delete(e)];case 2:return t.sent(),[2]}})})},e}();t.FolderService=m},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0)for(d=0;d0)for(d=0;d0)for(d=0;d0)for(d=0;d1)&&(t.wordSeparator=" "),null==t.capitalize&&(t.capitalize=!1),null==t.includeNumber&&(t.includeNumber=!1),n=c.EEFLongWordList.length-1,r=new Array(t.numWords),a=0,i.label=1;case 1:return ae.length&&(e.minSpecial=e.length-e.minNumber),e.numWordsn.minLength&&(n.minLength=e.data.minLength),e.data.useUpper&&(n.useUppercase=!0),e.data.useLower&&(n.useLowercase=!0),e.data.useNumbers&&(n.useNumbers=!0),null!=e.data.minNumbers&&e.data.minNumbers>n.numberCount&&(n.numberCount=e.data.minNumbers),e.data.useSpecial&&(n.useSpecial=!0),null!=e.data.minSpecial&&e.data.minSpecial>n.specialCount&&(n.specialCount=e.data.minSpecial),null!=e.data.minNumberWords&&e.data.minNumberWords>n.minNumberWords&&(n.minNumberWords=e.data.minNumberWords),e.data.capitalize&&(n.capitalize=!0),e.data.includeNumber&&(n.includeNumber=!0))}),[2,n])}})})},e.prototype.saveOptions=function(e){return r(this,void 0,void 0,function(){return i(this,function(t){switch(t.label){case 0:return[4,this.storageService.save(d,e)];case 1:return t.sent(),this.optionsCache=e,[2]}})})},e.prototype.getHistory=function(){return r(this,void 0,void 0,function(){var e,t;return i(this,function(n){switch(n.label){case 0:return[4,this.cryptoService.hasKey()];case 1:return n.sent()?this.history?[3,4]:[4,this.storageService.get(m)]:[2,new Array];case 2:return e=n.sent(),t=this,[4,this.decryptHistory(e)];case 3:t.history=n.sent(),n.label=4;case 4:return[2,this.history||new Array]}})})},e.prototype.addHistory=function(e){return r(this,void 0,void 0,function(){var t,n;return i(this,function(r){switch(r.label){case 0:return[4,this.cryptoService.hasKey()];case 1:return r.sent()?[4,this.getHistory()]:[2];case 2:return t=r.sent(),this.matchesPrevious(e,t)?[2]:(t.unshift(new s.GeneratedPasswordHistory(e,Date.now())),t.length>100&&t.pop(),[4,this.encryptHistory(t)]);case 3:return n=r.sent(),[4,this.storageService.save(m,n)];case 4:return[2,r.sent()]}})})},e.prototype.clear=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.history=[],[4,this.storageService.remove(m)];case 1:return[2,e.sent()]}})})},e.prototype.passwordStrength=function(e,t){if(void 0===t&&(t=null),null==e||0===e.length)return null;var n=["bitwarden","bit","warden"];null!=t&&t.length>0&&(n=n.concat(t));var r=Array.from(new Set(n));return a(e,r)},e.prototype.normalizeOptions=function(e,t){e.minLowercase=0,e.minUppercase=0,!e.length||e.length<5?e.length=5:e.length>128&&(e.length=128),e.lengthe.length?e.minNumber=e.length:e.minNumber>9&&(e.minNumber=9):e.minNumber=0,e.minNumbere.length?e.minSpecial=e.length:e.minSpecial>9&&(e.minSpecial=9):e.minSpecial=0,e.minSpeciale.length&&(e.minSpecial=e.length-e.minNumber),null==e.numWords||e.length<3?e.numWords=3:e.numWords>20&&(e.numWords=20),e.numWords1&&(e.wordSeparator=e.wordSeparator[0]),this.sanitizePasswordLength(e,!1)},e.prototype.capitalize=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},e.prototype.appendRandomNumberToRandomWord=function(e){return r(this,void 0,void 0,function(){var t,n;return i(this,function(r){switch(r.label){case 0:return null==e||e.length<=0?[2]:[4,this.cryptoService.randomNumber(0,e.length-1)];case 1:return t=r.sent(),[4,this.cryptoService.randomNumber(0,9)];case 2:return n=r.sent(),e[t]=e[t]+n,[2]}})})},e.prototype.encryptHistory=function(e){return r(this,void 0,void 0,function(){var t,n=this;return i(this,function(a){switch(a.label){case 0:return null==e||0===e.length?[2,Promise.resolve([])]:(t=e.map(function(e){return r(n,void 0,void 0,function(){var t;return i(this,function(n){switch(n.label){case 0:return[4,this.cryptoService.encrypt(e.password)];case 1:return t=n.sent(),[2,new s.GeneratedPasswordHistory(t.encryptedString,e.date)]}})})}),[4,Promise.all(t)]);case 1:return[2,a.sent()]}})})},e.prototype.decryptHistory=function(e){return r(this,void 0,void 0,function(){var t,n=this;return i(this,function(a){switch(a.label){case 0:return null==e||0===e.length?[2,Promise.resolve([])]:(t=e.map(function(e){return r(n,void 0,void 0,function(){var t;return i(this,function(n){switch(n.label){case 0:return[4,this.cryptoService.decryptToUtf8(new o.CipherString(e.password))];case 1:return t=n.sent(),[2,new s.GeneratedPasswordHistory(t,e.date)]}})})}),[4,Promise.all(t)]);case 1:return[2,a.sent()]}})})},e.prototype.matchesPrevious=function(e,t){return null!=t&&0!==t.length&&t[t.length-1].password===e},e.prototype.shuffleArray=function(e){return r(this,void 0,void 0,function(){var t,n,r;return i(this,function(i){switch(i.label){case 0:t=e.length-1,i.label=1;case 1:return t>0?[4,this.cryptoService.randomNumber(0,t)]:[3,4];case 2:n=i.sent(),r=[e[n],e[t]],e[t]=r[0],e[n]=r[1],i.label=3;case 3:return t--,[3,1];case 4:return[2]}})})},e.prototype.sanitizePasswordLength=function(e,t){var n=0,r=0,i=e.minNumber,a=e.minSpecial;e.uppercase&&e.minUppercase<=0?n=1:e.uppercase||(n=0),e.lowercase&&e.minLowercase<=0?r=1:e.lowercase||(r=0),e.number&&e.minNumber<=0?i=1:e.number||(i=0),e.special&&e.minSpecial<=0?a=1:e.special||(a=0),(!e.length||e.length<1)&&(e.length=10);var o=n+r+i+a;e.length0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=e.revisionDate&&(n=!1),o=!1,n&&(t?(n=null!=r,o=!0):null==e.collectionIds||null==e.organizationId?n=null==r:(n=!1,o=!0)),!n&&o&&null!=e.organizationId&&null!=e.collectionIds&&e.collectionIds.length>0?[4,this.collectionService.getAll()]:[3,5];case 4:if(null!=(s=i.sent()))for(l=0;l-1){n=!0;break}i.label=5;case 5:return n?[4,this.apiService.getCipher(e.id)]:[3,9];case 6:return null==(c=i.sent())?[3,9]:[4,this.userService.getUserId()];case 7:return p=i.sent(),[4,this.cipherService.upsert(new a.CipherData(c,p))];case 8:return i.sent(),this.messagingService.send("syncedUpsertedCipher",{cipherId:e.id}),[2,this.syncCompleted(!0)];case 9:return[3,13];case 10:return null!=(u=i.sent())&&404===u.statusCode&&t?[4,this.cipherService.delete(e.id)]:[3,12];case 11:return i.sent(),this.messagingService.send("syncedDeletedCipher",{cipherId:e.id}),[2,this.syncCompleted(!0)];case 12:return[3,13];case 13:return[2,this.syncCompleted(!1)]}})})},e.prototype.syncDeleteCipher=function(e){return r(this,void 0,void 0,function(){return i(this,function(t){switch(t.label){case 0:return this.syncStarted(),[4,this.userService.isAuthenticated()];case 1:return t.sent()?[4,this.cipherService.delete(e.id)]:[3,3];case 2:return t.sent(),this.messagingService.send("syncedDeletedCipher",{cipherId:e.id}),[2,this.syncCompleted(!0)];case 3:return[2,this.syncCompleted(!1)]}})})},e.prototype.syncUpsertSend=function(e,t){return r(this,void 0,void 0,function(){var n,r,a;return i(this,function(i){switch(i.label){case 0:return this.syncStarted(),[4,this.userService.isAuthenticated()];case 1:if(!i.sent())return[3,9];i.label=2;case 2:return i.trys.push([2,8,,9]),[4,this.sendService.get(e.id)];case 3:return n=i.sent(),!t&&null==n||t&&null!=n&&n.revisionDate0&&e.push(t.domains)}),[2,this.settingsService.setEquivalentDomains(e)]})})},e.prototype.syncPolicies=function(e){return r(this,void 0,void 0,function(){var t;return i(this,function(n){switch(n.label){case 0:return t={},null!=e&&e.forEach(function(e){t[e.id]=new c.PolicyData(e)}),[4,this.policyService.replace(t)];case 1:return[2,n.sent()]}})})},e}();t.SyncService=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(162),i=n(942),a=n(943),o=function(){return function(e,t){if(null!=e)switch(this.id=e.id,this.accessId=e.accessId,this.userId=t,this.type=e.type,this.name=e.name,this.notes=e.notes,this.key=e.key,this.maxAccessCount=e.maxAccessCount,this.accessCount=e.accessCount,this.revisionDate=e.revisionDate,this.expirationDate=e.expirationDate,this.deletionDate=e.deletionDate,this.password=e.password,this.disabled=e.disable,this.type){case r.SendType.Text:this.text=new a.SendTextData(e.text);break;case r.SendType.File:this.file=new i.SendFileData(e.file)}}}();t.SendData=o},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]10?r=10:u>0&&(r=u)}catch(I){}if(p.has("period")&&null!=p.get("period"))try{(d=parseInt(p.get("period").trim(),null))>0&&(t=d)}catch(E){}p.has("secret")&&null!=p.get("secret")&&(a=p.get("secret")),p.has("algorithm")&&null!=p.get("algorithm")&&("sha1"!==(m=p.get("algorithm").toLowerCase())&&"sha256"!==m&&"sha512"!==m||(n=m))}else c&&(a=e.substr("steam://".length),r=5);return h=Math.round((new Date).getTime()/1e3),f=this.leftPad(this.decToHex(Math.floor(h/t)),16,"0"),v=o.Utils.fromHexToArray(f),(y=this.b32ToBytes(a)).length&&v.length?[4,this.sign(y,v,n)]:[2,null];case 1:if(0===(g=i.sent()).length)return[2,null];if(x=15&g[g.length-1],b=(127&g[x])<<24|(255&g[x+1])<<16|(255&g[x+2])<<8|255&g[x+3],S="",c)for(w=2147483647&b,C=0;C=e.length&&(e=Array(t+1-e.length).join(n)+e),e},e.prototype.decToHex=function(e){return(e<15.5?"0":"")+Math.round(e).toString(16)},e.prototype.b32ToHex=function(e){e=e.toUpperCase();for(var t="",n=0;n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=n?[4,this.storageService.get(a.ConstantsService.vaultTimeoutActionKey)]:[3,12]);case 7:return"logOut"!==r.sent()?[3,9]:[4,this.logOut()];case 8:return r.sent(),[3,11];case 9:return[4,this.lock(!0)];case 10:r.sent(),r.label=11;case 11:r.label=12;case 12:return[2]}})})},e.prototype.lock=function(e){return void 0===e&&(e=!1),r(this,void 0,void 0,function(){return i(this,function(t){switch(t.label){case 0:return[4,this.userService.isAuthenticated()];case 1:return t.sent()?(this.biometricLocked=!0,e?[4,this.isBiometricLockSet()]:[3,5]):[2];case 2:return t.sent()&&this.platformUtilsService.supportsSecureStorage()?(this.messagingService.send("locked"),null==this.lockedCallback?[3,4]:[4,this.lockedCallback()]):[3,5];case 3:t.sent(),t.label=4;case 4:return[2];case 5:return[4,Promise.all([this.cryptoService.clearKey(),this.cryptoService.clearOrgKeys(!0),this.cryptoService.clearKeyPair(!0),this.cryptoService.clearEncKey(!0)])];case 6:return t.sent(),this.folderService.clearCache(),this.cipherService.clearCache(),this.collectionService.clearCache(),this.searchService.clearIndex(),this.messagingService.send("locked"),null==this.lockedCallback?[3,8]:[4,this.lockedCallback()];case 7:t.sent(),t.label=8;case 8:return[2]}})})},e.prototype.logOut=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return null==this.loggedOutCallback?[3,2]:[4,this.loggedOutCallback()];case 1:e.sent(),e.label=2;case 2:return[2]}})})},e.prototype.setVaultTimeoutOptions=function(e,t){return r(this,void 0,void 0,function(){return i(this,function(n){switch(n.label){case 0:return[4,this.storageService.save(a.ConstantsService.vaultTimeoutKey,e)];case 1:return n.sent(),[4,this.storageService.save(a.ConstantsService.vaultTimeoutActionKey,t)];case 2:return n.sent(),[4,this.cryptoService.toggleKey()];case 3:return n.sent(),[4,this.tokenService.toggleTokens()];case 4:return n.sent(),[2]}})})},e.prototype.isPinLockSet=function(){return r(this,void 0,void 0,function(){var e,t;return i(this,function(n){switch(n.label){case 0:return[4,this.storageService.get(a.ConstantsService.protectedPin)];case 1:return e=n.sent(),[4,this.storageService.get(a.ConstantsService.pinProtectedKey)];case 2:return t=n.sent(),[2,[null!=e,null!=t]]}})})},e.prototype.isBiometricLockSet=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return[4,this.storageService.get(a.ConstantsService.biometricUnlockKey)];case 1:return[2,e.sent()]}})})},e.prototype.clear=function(){return this.pinProtectedKey=null,this.storageService.remove(a.ConstantsService.protectedPin)},e}();t.VaultTimeoutService=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(948),i=n(949),a=function(){function e(e,t){void 0===t&&(t=null),this.isDev=e,this.filter=t,this.timersMap=new Map}return e.prototype.debug=function(e){this.isDev&&this.write(r.LogLevelType.Debug,e)},e.prototype.info=function(e){this.write(r.LogLevelType.Info,e)},e.prototype.warning=function(e){this.write(r.LogLevelType.Warning,e)},e.prototype.error=function(e){this.write(r.LogLevelType.Error,e)},e.prototype.write=function(e,t){if(null==this.filter||!this.filter(e))switch(e){case r.LogLevelType.Debug:case r.LogLevelType.Info:console.log(t);break;case r.LogLevelType.Warning:console.warn(t);break;case r.LogLevelType.Error:console.error(t)}},e.prototype.time=function(e){void 0===e&&(e="default"),this.timersMap.has(e)||this.timersMap.set(e,i())},e.prototype.timeEnd=function(e){void 0===e&&(e="default");var t=i(this.timersMap.get(e));return this.timersMap.delete(e),this.write(r.LogLevelType.Info,e+": "+(1e3*t[0]+t[1]/1e7)+"ms"),t},e}();t.ConsoleLogService=a},,,,,,,,function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.build=function(t){this.id=t.id,e.prototype.build.call(this,t),this.collectionIds=t.collectionIds},t}(n(965).Cipher);t.CipherWithIds=a},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.build=function(t){this.id=t.id,e.prototype.build.call(this,t)},t}(n(972).Collection);t.CollectionWithId=a},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.build=function(t){this.id=t.id,e.prototype.build.call(this,t)},t}(n(973).Folder);t.FolderWithId=a},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(28),o=n(27),s=n(40),l=n(128),c=n(1008);t.IgnoredProperties=["ainfo","autosubmit","notesplain","ps","scope","tags","title","uuid","notes"];var p=function(e){function n(){var t=null!==e&&e.apply(this,arguments)||this;return t.loginPropertyParsers=[t.setLoginUsername,t.setLoginPassword,t.setLoginUris],t.creditCardPropertyParsers=[t.setCreditCardNumber,t.setCreditCardVerification,t.setCreditCardCardholderName,t.setCreditCardExpiry],t.identityPropertyParsers=[t.setIdentityFirstName,t.setIdentityInitial,t.setIdentityLastName,t.setIdentityUserName,t.setIdentityEmail,t.setIdentityPhone,t.setIdentityCompany],t}return i(n,e),n.prototype.parse=function(e){var t=this,n=new a.ImportResult,r=this.parseCsv(e,!0,{quoteChar:'"',escapeChar:"\\"});return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){if(!t.isNullOrWhitespace(t.getProp(e,"title"))){var r=t.initLoginCipher();r.name=t.getValueOrDefault(t.getProp(e,"title"),"--"),t.setNotes(e,r),t.setCipherType(e,r);var i=null;for(var a in e)if(e.hasOwnProperty(a)&&!t.isNullOrWhitespace(e[a])){var o=new c.CipherImportContext(e,a,r);r.type===s.CipherType.Login&&t.setKnownLoginValue(o)||r.type===s.CipherType.Card&&t.setKnownCreditCardValue(o)||r.type===s.CipherType.Identity&&t.setKnownIdentityValue(o)||(i=t.setUnknownValue(o,i))}r.type===s.CipherType.Login&&!t.isNullOrWhitespace(i)&&t.isNullOrWhitespace(r.login.username)&&-1===i.indexOf("://")&&(r.login.username=i),t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)}}),n.success=!0,Promise.resolve(n))},n.prototype.getProp=function(e,t){return Object.entries(e).reduce(function(e,t){return e[t[0].toLowerCase()]=t[1],e},{})[t.toLowerCase()]},n.prototype.getPropByRegexp=function(e,t){var n=Object.keys(e).reduce(function(e,n){return n.match(t)&&e.push(n),e},[]);return 0===n.length?null:e[n[0]]},n.prototype.getPropIncluding=function(e,t){var n=Object.keys(e).reduce(function(e,n){return n.toLowerCase().includes(t.toLowerCase())&&e.push(n),e},[]);return 0===n.length?null:e[n[0]]},n.prototype.setNotes=function(e,t){t.notes=this.getValueOrDefault(this.getProp(e,"notesPlain"),"")+"\n"+this.getValueOrDefault(this.getProp(e,"notes"),"")+"\n",t.notes.trim()},n.prototype.setKnownLoginValue=function(e){var t=this;return this.loginPropertyParsers.reduce(function(n,r){return n||(n=r.bind(t)(e)),n},!1)},n.prototype.setKnownCreditCardValue=function(e){var t=this;return this.creditCardPropertyParsers.reduce(function(n,r){return n||(n=r.bind(t)(e)),n},!1)},n.prototype.setKnownIdentityValue=function(e){var t=this;return this.identityPropertyParsers.reduce(function(n,r){return n||(n=r.bind(t)(e)),n},!1)},n.prototype.setUnknownValue=function(e,n){if(-1===t.IgnoredProperties.indexOf(e.lowerProperty)&&!e.lowerProperty.startsWith("section:")&&!e.lowerProperty.startsWith("section ")){if(null==n&&"email"===e.lowerProperty)return e.importRecord[e.property];if("created date"===e.lowerProperty||"modified date"===e.lowerProperty){var r=new Date(1e3*parseInt(e.importRecord[e.property],10)).toUTCString();return this.processKvp(e.cipher,"1Password "+e.property,r),null}e.lowerProperty.includes("password")||e.lowerProperty.includes("key")||e.lowerProperty.includes("secret")?this.processKvp(e.cipher,e.property,e.importRecord[e.property],l.FieldType.Hidden):this.processKvp(e.cipher,e.property,e.importRecord[e.property])}return null},n.prototype.setIdentityFirstName=function(e){return!(!this.isNullOrWhitespace(e.cipher.identity.firstName)||!e.lowerProperty.includes("first name"))&&(e.cipher.identity.firstName=e.importRecord[e.property],!0)},n.prototype.setIdentityInitial=function(e){return!(!this.isNullOrWhitespace(e.cipher.identity.middleName)||!e.lowerProperty.includes("initial"))&&(e.cipher.identity.middleName=e.importRecord[e.property],!0)},n.prototype.setIdentityLastName=function(e){return!(!this.isNullOrWhitespace(e.cipher.identity.lastName)||!e.lowerProperty.includes("last name"))&&(e.cipher.identity.lastName=e.importRecord[e.property],!0)},n.prototype.setIdentityUserName=function(e){return!(!this.isNullOrWhitespace(e.cipher.identity.username)||!e.lowerProperty.includes("username"))&&(e.cipher.identity.username=e.importRecord[e.property],!0)},n.prototype.setIdentityCompany=function(e){return!(!this.isNullOrWhitespace(e.cipher.identity.company)||!e.lowerProperty.includes("company"))&&(e.cipher.identity.company=e.importRecord[e.property],!0)},n.prototype.setIdentityPhone=function(e){return!(!this.isNullOrWhitespace(e.cipher.identity.phone)||!e.lowerProperty.includes("default phone"))&&(e.cipher.identity.phone=e.importRecord[e.property],!0)},n.prototype.setIdentityEmail=function(e){return!(!this.isNullOrWhitespace(e.cipher.identity.email)||!e.lowerProperty.includes("email"))&&(e.cipher.identity.email=e.importRecord[e.property],!0)},n.prototype.setCreditCardNumber=function(e){return!(!this.isNullOrWhitespace(e.cipher.card.number)||!e.lowerProperty.includes("number"))&&(e.cipher.card.number=e.importRecord[e.property],e.cipher.card.brand=this.getCardBrand(e.cipher.card.number),!0)},n.prototype.setCreditCardVerification=function(e){return!(!this.isNullOrWhitespace(e.cipher.card.code)||!e.lowerProperty.includes("verification number"))&&(e.cipher.card.code=e.importRecord[e.property],!0)},n.prototype.setCreditCardCardholderName=function(e){return!(!this.isNullOrWhitespace(e.cipher.card.cardholderName)||!e.lowerProperty.includes("cardholder name"))&&(e.cipher.card.cardholderName=e.importRecord[e.property],!0)},n.prototype.setCreditCardExpiry=function(e){return!(!this.isNullOrWhitespace(e.cipher.card.expiration)||!e.lowerProperty.includes("expiry date")||7!==e.importRecord[e.property].length)&&(e.cipher.card.expMonth=e.importRecord[e.property].substr(0,2),"0"===e.cipher.card.expMonth[0]&&(e.cipher.card.expMonth=e.cipher.card.expMonth.substr(1,1)),e.cipher.card.expYear=e.importRecord[e.property].substr(3,4),!0)},n.prototype.setLoginPassword=function(e){return!(!this.isNullOrWhitespace(e.cipher.login.password)||"password"!==e.lowerProperty)&&(e.cipher.login.password=e.importRecord[e.property],!0)},n.prototype.setLoginUsername=function(e){return!(!this.isNullOrWhitespace(e.cipher.login.username)||"username"!==e.lowerProperty)&&(e.cipher.login.username=e.importRecord[e.property],!0)},n.prototype.setLoginUris=function(e){if((null==e.cipher.login.uris||0===e.cipher.login.uris.length)&&"urls"===e.lowerProperty){var t=e.importRecord[e.property].split(this.newLineRegex);return e.cipher.login.uris=this.makeUriArray(t),!0}return"url"===e.lowerProperty&&(null==e.cipher.login.uris&&(e.cipher.login.uris=[]),e.cipher.login.uris.concat(this.makeUriArray(e.importRecord[e.property])),!0)},n}(o.BaseImporter);t.OnePasswordCsvImporter=p},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(593);t.AttachmentView=r.AttachmentView;var i=n(89);t.CardView=i.CardView;var a=n(144);t.CipherView=a.CipherView;var o=n(211);t.FieldView=o.FieldView;var s=n(145);t.IdentityView=s.IdentityView;var l=n(257);t.LoginUriView=l.LoginUriView;var c=n(161);t.LoginView=c.LoginView;var p=n(94);t.SecureNoteView=p.SecureNoteView;var u=n(1009);t.View=u.View},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.SyncCipherUpdate=0]="SyncCipherUpdate",e[e.SyncCipherCreate=1]="SyncCipherCreate",e[e.SyncLoginDelete=2]="SyncLoginDelete",e[e.SyncFolderDelete=3]="SyncFolderDelete",e[e.SyncCiphers=4]="SyncCiphers",e[e.SyncVault=5]="SyncVault",e[e.SyncOrgKeys=6]="SyncOrgKeys",e[e.SyncFolderCreate=7]="SyncFolderCreate",e[e.SyncFolderUpdate=8]="SyncFolderUpdate",e[e.SyncCipherDelete=9]="SyncCipherDelete",e[e.SyncSettings=10]="SyncSettings",e[e.LogOut=11]="LogOut",e[e.SyncSendCreate=12]="SyncSendCreate",e[e.SyncSendUpdate=13]="SyncSendUpdate",e[e.SyncSendDelete=14]="SyncSendDelete"}(t.NotificationType||(t.NotificationType={}))},,,,,function(e,t){},,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0);n(745),n(271),n(526),n(746);var i=n(747),a=n(73);r.enableProdMode(),a.platformBrowser().bootstrapModule(i.AppModule,{preserveWhitespaces:!0})},,function(e,t,n){},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(748);var r=n(9),i=n(12),a=n(214),o=n(813),s=n(265),l=(n(0),n(14)),c=n(73),p=n(895),u=n(896),d=n(1057),m=n(85),h=n(140),f=n(249),v=n(457),y=n(536),g=n(456),x=n(537),b=n(540),S=n(541),w=n(542),C=n(543),I=n(544),E=n(545),P=n(546),k=n(547),_=n(548),A=n(549),O=n(550),T=n(553),M=n(552),B=n(556),D=n(557),V=n(559),j=n(558),R=n(466),F=n(465),U=n(561),N=n(563),z=n(562),L=n(564),G=n(565),K=n(570),q=n(572),W=n(567),H=n(568),$=n(569),Y=n(573),Q=n(582),J=n(580),X=n(576),Z=n(581),ee=n(577),te=n(579),ne=n(583),re=n(584),ie=n(590),ae=n(591),oe=n(603),se=n(604),le=n(605),ce=n(606),pe=n(607),ue=n(608),de=n(480),me=n(610),he=n(497),fe=n(612),ve=n(499),ye=n(609),ge=n(619),xe=n(621),be=n(620),Se=n(623),we=n(471),Ce=n(472),Ie=n(475),Ee=n(468),Pe=n(627),ke=n(635),_e=n(629),Ae=n(636),Oe=n(624),Te=n(625),Me=n(637),Be=n(667),De=n(662),Ve=n(668),je=n(669),Re=n(658),Fe=n(664),Ue=n(663),Ne=n(639),ze=n(638),Le=n(280),Ge=n(294),Ke=n(118),qe=n(640),We=n(626),He=n(469),$e=n(641),Ye=n(143),Qe=n(585),Je=n(476),Xe=n(586),Ze=n(587),et=n(477),tt=n(588),nt=n(191),rt=n(589),it=n(648),at=n(473),ot=n(470),st=n(642),lt=n(652),ct=n(643),pt=n(478),ut=n(479),dt=n(490),mt=n(492),ht=n(645),ft=n(644),vt=n(493),yt=n(646),gt=n(494),xt=n(495),bt=n(258),St=n(496),wt=n(500),Ct=n(614),It=n(616),Et=n(617),Pt=n(618),kt=n(260),_t=n(498),At=n(649),Ot=n(290),Tt=n(651),Mt=n(650),Bt=n(647),Dt=n(26),Vt=n(104),jt=n(18),Rt=n(17),Ft=n(66),Ut=n(1058),Nt=n(1059),zt=n(602),Lt=n(46),Gt=n(506),Kt=n(37),qt=n(57),Wt=n(289),Ht=n(507),$t=n(10),Yt=n(1060),Qt=n(251),Jt=n(4),Xt=n(1061),Zt=n(1062),en=n(1063),tn=n(1064),nn=n(1065),rn=n(1066),an=n(1067),on=n(1068),sn=n(1069),ln=n(1070),cn=n(1071),pn=n(1072),un=n(1073),dn=n(1074),mn=n(1075),hn=n(1076),fn=n(1077),vn=n(1078),yn=n(1079),gn=n(1080),xn=n(1081),bn=n(1082),Sn=n(1083),wn=n(1084),Cn=n(1085),In=n(1086),En=n(0),Pn=n(12),kn=n(9);Jt.registerLocaleData(Xt.default,"ca"),Jt.registerLocaleData(Zt.default,"cs"),Jt.registerLocaleData(en.default,"da"),Jt.registerLocaleData(tn.default,"de"),Jt.registerLocaleData(nn.default,"el"),Jt.registerLocaleData(rn.default,"en-GB"),Jt.registerLocaleData(an.default,"es"),Jt.registerLocaleData(on.default,"et"),Jt.registerLocaleData(sn.default,"fr"),Jt.registerLocaleData(ln.default,"he"),Jt.registerLocaleData(cn.default,"it"),Jt.registerLocaleData(pn.default,"ja"),Jt.registerLocaleData(un.default,"ko"),Jt.registerLocaleData(dn.default,"lv"),Jt.registerLocaleData(mn.default,"ml"),Jt.registerLocaleData(hn.default,"nb"),Jt.registerLocaleData(fn.default,"nl"),Jt.registerLocaleData(vn.default,"pl"),Jt.registerLocaleData(yn.default,"pt-BR"),Jt.registerLocaleData(gn.default,"pt-PT"),Jt.registerLocaleData(xn.default,"ru"),Jt.registerLocaleData(bn.default,"sk"),Jt.registerLocaleData(Sn.default,"sv"),Jt.registerLocaleData(wn.default,"uk"),Jt.registerLocaleData(Cn.default,"zh-CN"),Jt.registerLocaleData(In.default,"zh-TW");var _n=function(){function e(){}return e.ɵmod=En.ɵɵdefineNgModule({type:e,bootstrap:[d.AppComponent]}),e.ɵinj=En.ɵɵdefineInjector({factory:function(t){return new(t||e)},providers:[Jt.DatePipe],imports:[[c.BrowserModule,p.BrowserAnimationsModule,l.FormsModule,o.AppRoutingModule,u.ServicesModule,i.Angulartics2Module.forRoot({pageTracking:{clearQueryParams:!0}}),r.ToasterModule.forRoot(),a.InfiniteScrollModule,s.DragDropModule]]}),e}();t.AppModule=_n,("undefined"==typeof ngJitMode||ngJitMode)&&En.ɵɵsetNgModuleScope(_n,{declarations:[jt.A11yTitleDirective,S.AcceptEmergencyComponent,ge.AccessComponent,w.AcceptOrganizationComponent,Se.AccountComponent,A.SetPasswordComponent,we.AddCreditComponent,bt.AddEditComponent,Ce.AdjustPaymentComponent,Q.AdjustSeatsComponent,Ie.AdjustStorageComponent,Rt.ApiActionDirective,Ee.ApiKeyComponent,d.AppComponent,St.AttachmentsComponent,Ft.AutofocusDirective,h.AvatarComponent,Ut.BlurClickDirective,Nt.BoxRowDirective,ct.BreachReportComponent,wt.BulkActionsComponent,Ct.BulkDeleteComponent,It.BulkMoveComponent,Et.BulkRestoreComponent,Pt.BulkShareComponent,Dt.CalloutComponent,Pe.ChangeEmailComponent,ke.ChangeKdfComponent,_e.ChangePasswordComponent,J.ChangePlanComponent,kt.CiphersComponent,_t.CollectionsComponent,Ht.ColorPasswordPipe,Ae.CreateOrganizationComponent,Oe.DeauthorizeSessionsComponent,Te.DeleteAccountComponent,X.DeleteOrganizationComponent,Me.DomainRulesComponent,Z.DownloadLicenseComponent,Be.EmergencyAccessAddEditComponent,De.EmergencyAccessAttachmentsComponent,Fe.EmergencyAccessComponent,Ve.EmergencyAccessConfirmComponent,je.EmergencyAccessTakeoverComponent,Re.EmergencyAccessViewComponent,Ue.EmergencyAddEditComponent,pt.ExportComponent,ut.ExposedPasswordsReportComponent,zt.FallbackSrcDirective,At.FolderAddEditComponent,v.FooterComponent,y.FrontendLayoutComponent,Ot.GroupingsComponent,C.HintComponent,$t.I18nPipe,Vt.IconComponent,dt.ImportComponent,mt.InactiveTwoFactorReportComponent,Lt.InputVerbatimDirective,Ne.LinkSsoComponent,I.LockComponent,E.LoginComponent,m.ModalComponent,g.NavbarComponent,ze.OptionsComponent,Y.AccountComponent,de.AddEditComponent,ee.OrganizationBillingComponent,Le.OrganizationPlansComponent,te.OrganizationSubscriptionComponent,me.AttachmentsComponent,he.CiphersComponent,V.CollectionAddEditComponent,fe.CollectionsComponent,R.EntityEventsComponent,F.EntityUsersComponent,U.EventsComponent,ie.ExportComponent,ae.ExposedPasswordsReportComponent,oe.ImportComponent,se.InactiveTwoFactorReportComponent,N.GroupAddEditComponent,ve.GroupingsComponent,z.GroupsComponent,j.CollectionsComponent,L.ManageComponent,G.PeopleComponent,q.PolicyEditComponent,K.PoliciesComponent,le.ReusedPasswordsReportComponent,ne.SettingsComponent,ce.ToolsComponent,re.TwoFactorSetupComponent,W.UserAddEditComponent,H.UserConfirmComponent,$.UserGroupsComponent,Ge.OrganizationsComponent,x.OrganizationLayoutComponent,pe.UnsecuredWebsitesReportComponent,ye.VaultComponent,ue.WeakPasswordsReportComponent,ft.PasswordGeneratorComponent,ht.PasswordGeneratorHistoryComponent,f.PasswordStrengthComponent,Ke.PaymentComponent,qe.PremiumComponent,We.ProfileComponent,He.PurgeVaultComponent,P.RecoverDeleteComponent,k.RecoverTwoFactorComponent,_.RegisterComponent,vt.ReusedPasswordsReportComponent,Yt.SearchCiphersPipe,Qt.SearchPipe,Gt.SelectCopyDirective,xe.AddEditComponent,be.SendComponent,Tt.SendInfoComponent,$e.SettingsComponent,Mt.ShareComponent,O.SsoComponent,Kt.StopClickDirective,qt.StopPropDirective,Ye.TaxInfoComponent,yt.ToolsComponent,Wt.TrueFalseValueDirective,Qe.TwoFactorAuthenticatorComponent,M.TwoFactorComponent,Je.TwoFactorDuoComponent,Xe.TwoFactorEmailComponent,T.TwoFactorOptionsComponent,Ze.TwoFactorRecoveryComponent,et.TwoFactorSetupComponent,tt.TwoFactorU2fComponent,nt.TwoFactorVerifyComponent,rt.TwoFactorYubiKeyComponent,gt.UnsecuredWebsitesReportComponent,it.UpdateKeyComponent,at.UpdateLicenseComponent,ot.UserBillingComponent,b.UserLayoutComponent,st.UserSubscriptionComponent,Bt.VaultComponent,lt.VerifyEmailComponent,B.VerifyEmailTokenComponent,D.VerifyRecoverDeleteComponent,xt.WeakPasswordsReportComponent],imports:[c.BrowserModule,p.BrowserAnimationsModule,l.FormsModule,o.AppRoutingModule,u.ServicesModule,Pn.Angulartics2Module,kn.ToasterModule,a.InfiniteScrollModule,s.DragDropModule]})},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(8),i=n(536),a=n(537),o=n(540),s=n(541),l=n(542),c=n(543),p=n(544),u=n(545),d=n(546),m=n(547),h=n(548),f=n(549),v=n(550),y=n(552),g=n(556),x=n(557),b=n(558),S=n(561),w=n(562),C=n(564),I=n(565),E=n(570),P=n(573),k=n(577),_=n(579),A=n(583),O=n(584),T=n(590),M=n(591),B=n(603),D=n(604),V=n(605),j=n(606),R=n(607),F=n(608),U=n(609),N=n(619),z=n(620),L=n(623),G=n(636),K=n(637),q=n(638),W=n(294),H=n(640),$=n(641),Y=n(477),Q=n(470),J=n(642),X=n(643),Z=n(478),ee=n(479),te=n(490),ne=n(492),re=n(644),ie=n(493),ae=n(646),oe=n(494),se=n(495),le=n(647),ce=n(653),pe=n(654),ue=n(656),de=n(657),me=n(655),he=n(658),fe=n(664),ve=n(0),ye=n(8),ge=[{path:"",component:i.FrontendLayoutComponent,children:[{path:"",pathMatch:"full",component:u.LoginComponent,canActivate:[ue.UnauthGuardService]},{path:"2fa",component:y.TwoFactorComponent,canActivate:[ue.UnauthGuardService]},{path:"register",component:h.RegisterComponent,canActivate:[ue.UnauthGuardService],data:{titleId:"createAccount"}},{path:"sso",component:v.SsoComponent,canActivate:[ue.UnauthGuardService],data:{titleId:"enterpriseSingleSignOn"}},{path:"set-password",component:f.SetPasswordComponent,data:{titleId:"setMasterPassword"}},{path:"hint",component:c.HintComponent,canActivate:[ue.UnauthGuardService],data:{titleId:"passwordHint"}},{path:"lock",component:p.LockComponent},{path:"verify-email",component:g.VerifyEmailTokenComponent},{path:"accept-organization",component:l.AcceptOrganizationComponent,data:{titleId:"joinOrganization"}},{path:"accept-emergency",component:s.AcceptEmergencyComponent,data:{titleId:"acceptEmergency"}},{path:"recover",pathMatch:"full",redirectTo:"recover-2fa"},{path:"recover-2fa",component:m.RecoverTwoFactorComponent,canActivate:[ue.UnauthGuardService],data:{titleId:"recoverAccountTwoStep"}},{path:"recover-delete",component:d.RecoverDeleteComponent,canActivate:[ue.UnauthGuardService],data:{titleId:"deleteAccount"}},{path:"verify-recover-delete",component:x.VerifyRecoverDeleteComponent,canActivate:[ue.UnauthGuardService],data:{titleId:"deleteAccount"}},{path:"send/:sendId/:key",component:N.AccessComponent,data:{title:"Bitwarden Send"}}]},{path:"",component:o.UserLayoutComponent,canActivate:[de.AuthGuardService],children:[{path:"vault",component:le.VaultComponent,data:{titleId:"myVault"}},{path:"sends",component:z.SendComponent,data:{title:"Send"}},{path:"settings",component:$.SettingsComponent,children:[{path:"",pathMatch:"full",redirectTo:"account"},{path:"account",component:L.AccountComponent,data:{titleId:"myAccount"}},{path:"options",component:q.OptionsComponent,data:{titleId:"options"}},{path:"domain-rules",component:K.DomainRulesComponent,data:{titleId:"domainRules"}},{path:"two-factor",component:Y.TwoFactorSetupComponent,data:{titleId:"twoStepLogin"}},{path:"premium",component:H.PremiumComponent,data:{titleId:"goPremium"}},{path:"billing",component:Q.UserBillingComponent,data:{titleId:"billing"}},{path:"subscription",component:J.UserSubscriptionComponent,data:{titleId:"premiumMembership"}},{path:"organizations",component:W.OrganizationsComponent,data:{titleId:"organizations"}},{path:"create-organization",component:G.CreateOrganizationComponent,data:{titleId:"newOrganization"}},{path:"emergency-access",children:[{path:"",component:fe.EmergencyAccessComponent,data:{titleId:"emergencyAccess"}},{path:":id",component:he.EmergencyAccessViewComponent,data:{titleId:"emergencyAccess"}}]}]},{path:"tools",component:ae.ToolsComponent,canActivate:[de.AuthGuardService],children:[{path:"",pathMatch:"full",redirectTo:"generator"},{path:"import",component:te.ImportComponent,data:{titleId:"importData"}},{path:"export",component:Z.ExportComponent,data:{titleId:"exportVault"}},{path:"generator",component:re.PasswordGeneratorComponent,data:{titleId:"passwordGenerator"}},{path:"breach-report",component:X.BreachReportComponent,data:{titleId:"dataBreachReport"}},{path:"reused-passwords-report",component:ie.ReusedPasswordsReportComponent,data:{titleId:"reusedPasswordsReport"}},{path:"unsecured-websites-report",component:oe.UnsecuredWebsitesReportComponent,data:{titleId:"unsecuredWebsitesReport"}},{path:"weak-passwords-report",component:se.WeakPasswordsReportComponent,data:{titleId:"weakPasswordsReport"}},{path:"exposed-passwords-report",component:ee.ExposedPasswordsReportComponent,data:{titleId:"exposedPasswordsReport"}},{path:"inactive-two-factor-report",component:ne.InactiveTwoFactorReportComponent,data:{titleId:"inactive2faReport"}}]}]},{path:"organizations/:organizationId",component:a.OrganizationLayoutComponent,canActivate:[de.AuthGuardService,ce.OrganizationGuardService],children:[{path:"",pathMatch:"full",redirectTo:"vault"},{path:"vault",component:U.VaultComponent,data:{titleId:"vault"}},{path:"tools",component:j.ToolsComponent,canActivate:[pe.OrganizationTypeGuardService],data:{permissions:[me.Permissions.AccessImportExport,me.Permissions.AccessReports]},children:[{path:"",pathMatch:"full",redirectTo:"import"},{path:"import",component:B.ImportComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"importData",permissions:[me.Permissions.AccessImportExport]}},{path:"export",component:T.ExportComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"exportVault",permissions:[me.Permissions.AccessImportExport]}},{path:"exposed-passwords-report",component:M.ExposedPasswordsReportComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"exposedPasswordsReport",permissions:[me.Permissions.AccessReports]}},{path:"inactive-two-factor-report",component:D.InactiveTwoFactorReportComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"inactive2faReport",permissions:[me.Permissions.AccessReports]}},{path:"reused-passwords-report",component:V.ReusedPasswordsReportComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"reusedPasswordsReport",permissions:[me.Permissions.AccessReports]}},{path:"unsecured-websites-report",component:R.UnsecuredWebsitesReportComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"unsecuredWebsitesReport",permissions:[me.Permissions.AccessReports]}},{path:"weak-passwords-report",component:F.WeakPasswordsReportComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"weakPasswordsReport",permissions:[me.Permissions.AccessReports]}}]},{path:"manage",component:C.ManageComponent,canActivate:[pe.OrganizationTypeGuardService],data:{permissions:[me.Permissions.ManageAssignedCollections,me.Permissions.ManageAllCollections,me.Permissions.AccessEventLogs,me.Permissions.ManageGroups,me.Permissions.ManageUsers,me.Permissions.ManagePolicies]},children:[{path:"",pathMatch:"full",redirectTo:"people"},{path:"collections",component:b.CollectionsComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"collections",permissions:[me.Permissions.ManageAssignedCollections,me.Permissions.ManageAllCollections]}},{path:"events",component:S.EventsComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"eventLogs",permissions:[me.Permissions.AccessEventLogs]}},{path:"groups",component:w.GroupsComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"groups",permissions:[me.Permissions.ManageGroups]}},{path:"people",component:I.PeopleComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"people",permissions:[me.Permissions.ManageUsers]}},{path:"policies",component:E.PoliciesComponent,canActivate:[pe.OrganizationTypeGuardService],data:{titleId:"policies",permissions:[me.Permissions.ManagePolicies]}}]},{path:"settings",component:A.SettingsComponent,canActivate:[pe.OrganizationTypeGuardService],data:{permissions:[me.Permissions.ManageOrganization]},children:[{path:"",pathMatch:"full",redirectTo:"account"},{path:"account",component:P.AccountComponent,data:{titleId:"myOrganization"}},{path:"two-factor",component:O.TwoFactorSetupComponent,data:{titleId:"twoStepLogin"}},{path:"billing",component:k.OrganizationBillingComponent,data:{titleId:"billing"}},{path:"subscription",component:_.OrganizationSubscriptionComponent,data:{titleId:"subscription"}}]}]},{path:"**",redirectTo:""}],xe=function(){function e(){}return e.ɵmod=ve.ɵɵdefineNgModule({type:e}),e.ɵinj=ve.ɵɵdefineInjector({factory:function(t){return new(t||e)},imports:[[r.RouterModule.forRoot(ge,{useHash:!0,paramsInheritanceStrategy:"always"})],r.RouterModule]}),e}();t.AppRoutingModule=xe,("undefined"==typeof ngJitMode||ngJitMode)&&ve.ɵɵsetNgModuleScope(xe,{imports:[ye.RouterModule],exports:[r.RouterModule]})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){this.subscribers=new Map}return e.prototype.send=function(e,t){null==t?this.subscribers.forEach(function(t){t(e)}):this.subscribers.has(t)&&this.subscribers.get(t)(e)},e.prototype.subscribe=function(e,t){this.subscribers.set(e,t)},e.prototype.unsubscribe=function(e){this.subscribers.has(e)&&this.subscribers.delete(e)},e}();t.BroadcasterService=r},,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getDomain=function(e){return null}},,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.EmergencyAccessAcceptRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.OrganizationUserAcceptRequest=r},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=5)return this.messagingService.send("logout"),[2];this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("invalidPin"))}return[3,33];case 16:return[4,this.cryptoService.makeKey(this.masterPassword,this.email,e,t)];case 17:return r=i.sent(),[4,this.cryptoService.hashPassword(this.masterPassword,r)];case 18:return l=i.sent(),c=!1,null==l?[3,25]:[4,this.cryptoService.getKeyHash()];case 19:return null==(p=i.sent())?[3,20]:(c=p===l,[3,25]);case 20:(u=new s.PasswordVerificationRequest).masterPasswordHash=l,i.label=21;case 21:return i.trys.push([21,24,,25]),this.formPromise=this.apiService.postAccountVerifyPassword(u),[4,this.formPromise];case 22:return i.sent(),c=!0,[4,this.cryptoService.setKeyHash(l)];case 23:return i.sent(),[3,25];case 24:return i.sent(),[3,25];case 25:return c?this.pinSet[0]?[4,this.storageService.get(a.ConstantsService.protectedPin)]:[3,31]:[3,32];case 26:return d=i.sent(),[4,this.cryptoService.getEncKey(r)];case 27:return m=i.sent(),[4,this.cryptoService.decryptToUtf8(new o.CipherString(d),m)];case 28:return h=i.sent(),[4,this.cryptoService.makePinKey(h,this.email,e,t)];case 29:return f=i.sent(),v=this.vaultTimeoutService,[4,this.cryptoService.encrypt(r.key,f)];case 30:v.pinProtectedKey=i.sent(),i.label=31;case 31:return this.setKeyAndContinue(r),[3,33];case 32:this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("invalidMasterPassword")),i.label=33;case 33:return[2]}})})},e.prototype.logOut=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return[4,this.platformUtilsService.showDialog(this.i18nService.t("logOutConfirmation"),this.i18nService.t("logOut"),this.i18nService.t("logOut"),this.i18nService.t("cancel"))];case 1:return e.sent()&&this.messagingService.send("logout"),[2]}})})},e.prototype.unlockBiometric=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.biometricLock?[4,this.platformUtilsService.authenticateBiometric()]:[2];case 1:return e.sent()?[4,this.doContinue()]:[3,3];case 2:e.sent(),e.label=3;case 3:return[2]}})})},e.prototype.togglePassword=function(){this.platformUtilsService.eventTrack("Toggled Master Password on Unlock"),this.showPassword=!this.showPassword,document.getElementById(this.pinLock?"pin":"masterPassword").focus()},e.prototype.setKeyAndContinue=function(e){return r(this,void 0,void 0,function(){return i(this,function(t){switch(t.label){case 0:return[4,this.cryptoService.setKey(e)];case 1:return t.sent(),this.doContinue(),[2]}})})},e.prototype.doContinue=function(){return r(this,void 0,void 0,function(){var e;return i(this,function(t){switch(t.label){case 0:return this.vaultTimeoutService.biometricLocked=!1,[4,this.storageService.get(a.ConstantsService.disableFaviconKey)];case 1:return e=t.sent(),[4,this.stateService.save(a.ConstantsService.disableFaviconKey,!!e)];case 2:return t.sent(),this.messagingService.send("unlocked"),null!=this.onSuccessfulSubmit?this.onSuccessfulSubmit():null!=this.router&&this.router.navigate([this.successRoute]),[2]}})})},e.ɵfac=function(t){return new(t||e)(c.ɵɵdirectiveInject(p.Router),c.ɵɵdirectiveInject(u.I18nService),c.ɵɵdirectiveInject(d.PlatformUtilsService),c.ɵɵdirectiveInject(m.MessagingService),c.ɵɵdirectiveInject(h.UserService),c.ɵɵdirectiveInject(f.CryptoService),c.ɵɵdirectiveInject(v.StorageService),c.ɵɵdirectiveInject(y.VaultTimeoutService),c.ɵɵdirectiveInject(g.EnvironmentService),c.ɵɵdirectiveInject(x.StateService),c.ɵɵdirectiveInject(b.ApiService))},e.ɵdir=c.ɵɵdefineDirective({type:e}),e}();t.LockComponent=S},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]-1&&(e=e.concat(this.email.substr(0,t).trim().toLowerCase().split(/[^A-Za-z0-9]/))),null!=this.name&&""!==this.name&&(e=e.concat(this.name.trim().toLowerCase().split(" "))),e},e}();t.RegisterComponent=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e,t,n,r,i,a,o,s){this.name=t,this.email=e,this.masterPasswordHash=n,this.masterPasswordHint=r||null,this.key=i,this.kdf=a,this.kdfIterations=o,this.referenceData=s}}();t.RegisterRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.ReferenceEventRequest=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&this.u2f.init({appId:t[0].appId,challenge:t[0].challenge,keys:t.map(function(e){return{version:e.version,keyHandle:e.keyHandle}})}),[3,7]):[3,7];case 2:return setTimeout(function(){c.init({iframe:void 0,host:e.Host,sig_request:e.Signature,submit_callback:function(e){return r(n,void 0,void 0,function(){var t;return i(this,function(n){switch(n.label){case 0:return null==(t=e.querySelector('input[name="sig_response"]'))?[3,2]:(this.token=t.value,[4,this.submit()]);case 1:n.sent(),n.label=2;case 2:return[2]}})})}})},0),[3,7];case 3:return this.twoFactorEmail=e.Email,this.authService.twoFactorProvidersData.size>1?[4,this.sendEmail(!1)]:[3,5];case 4:o.sent(),o.label=5;case 5:case 6:return[3,7];case 7:return[2]}})})},e.prototype.submit=function(){return r(this,void 0,void 0,function(){var e,t;return i(this,function(n){switch(n.label){case 0:if(null==this.token||""===this.token)return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("verificationCodeRequired")),[2];if(this.selectedProviderType===a.TwoFactorProviderType.U2f){if(null==this.u2f)return[2];this.u2f.stop()}else this.selectedProviderType!==a.TwoFactorProviderType.Email&&this.selectedProviderType!==a.TwoFactorProviderType.Authenticator||(this.token=this.token.replace(" ","").trim());n.label=1;case 1:return n.trys.push([1,5,,6]),this.formPromise=this.authService.logInTwoFactor(this.selectedProviderType,this.token,this.remember),[4,this.formPromise];case 2:return e=n.sent(),[4,this.storageService.get(l.ConstantsService.disableFaviconKey)];case 3:return t=n.sent(),[4,this.stateService.save(l.ConstantsService.disableFaviconKey,!!t)];case 4:return n.sent(),null!=this.onSuccessfulLogin&&this.onSuccessfulLogin(),this.platformUtilsService.eventTrack("Logged In From Two-step"),e.resetMasterPassword&&(this.successRoute="set-password"),null!=this.onSuccessfulLoginNavigate?this.onSuccessfulLoginNavigate():this.router.navigate([this.successRoute],{queryParams:{identifier:this.identifier}}),[3,6];case 5:return n.sent(),this.selectedProviderType===a.TwoFactorProviderType.U2f&&null!=this.u2f&&this.u2f.start(),[3,6];case 6:return[2]}})})},e.prototype.sendEmail=function(e){return r(this,void 0,void 0,function(){var t;return i(this,function(n){switch(n.label){case 0:if(this.selectedProviderType!==a.TwoFactorProviderType.Email)return[2];if(null!=this.emailPromise)return[2];n.label=1;case 1:return n.trys.push([1,3,,4]),t=new o.TwoFactorEmailRequest(this.authService.email,this.authService.masterPasswordHash),this.emailPromise=this.apiService.postTwoFactorEmail(t),[4,this.emailPromise];case 2:return n.sent(),e&&this.platformUtilsService.showToast("success",null,this.i18nService.t("verificationCodeEmailSent",this.twoFactorEmail)),[3,4];case 3:return n.sent(),[3,4];case 4:return this.emailPromise=null,[2]}})})},e.prototype.cleanupU2f=function(){null!=this.u2f&&(this.u2f.stop(),this.u2f.cleanup())},Object.defineProperty(e.prototype,"authing",{get:function(){return this.authService.authingWithPassword()||this.authService.authingWithSso()||this.authService.authingWithApiKey()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"needsLock",{get:function(){return this.authService.authingWithSso()||this.authService.authingWithApiKey()},enumerable:!0,configurable:!0}),e.ɵfac=function(t){return new(t||e)(u.ɵɵdirectiveInject(d.AuthService),u.ɵɵdirectiveInject(m.Router),u.ɵɵdirectiveInject(h.I18nService),u.ɵɵdirectiveInject(f.ApiService),u.ɵɵdirectiveInject(v.PlatformUtilsService),u.ɵɵdirectiveInject(Window),u.ɵɵdirectiveInject(y.EnvironmentService),u.ɵɵdirectiveInject(g.StateService),u.ɵɵdirectiveInject(x.StorageService),u.ɵɵdirectiveInject(m.ActivatedRoute))},e.ɵdir=u.ɵɵdefineDirective({type:e}),e}();t.TwoFactorComponent=b},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e,t){this.type=t.getDevice(),this.name=t.getDeviceString(),this.identifier=e,this.pushToken=null}}();t.DeviceRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e){this.email=e}}();t.PreloginRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t,n,r,i,a,o){null!=e&&e.length>1?(this.email=e[0],this.masterPasswordHash=e[1]):null!=t&&t.length>2?(this.code=t[0],this.codeVerifier=t[1],this.redirectUri=t[2]):null!=n&&n.length>1&&(this.clientId=n[0],this.clientSecret=n[1]),this.token=i,this.provider=r,this.remember=a,this.device=null!=o?o:null}return e.prototype.toIdentityToken=function(e){var t={scope:"api offline_access",client_id:e};if(null!=this.clientSecret)t.scope="api",t.grant_type="client_credentials",t.client_secret=this.clientSecret;else if(null!=this.masterPasswordHash&&null!=this.email)t.grant_type="password",t.username=this.email,t.password=this.masterPasswordHash;else{if(null==this.code||null==this.codeVerifier||null==this.redirectUri)throw new Error("must provide credentials or codes");t.grant_type="authorization_code",t.code=this.code,t.code_verifier=this.codeVerifier,t.redirect_uri=this.redirectUri}return this.device&&(t.deviceType=this.device.type,t.deviceIdentifier=this.device.identifier,t.deviceName=this.device.name),this.token&&null!=this.provider&&(t.twoFactorToken=this.token,t.twoFactorProvider=this.provider,t.twoFactorRemember=this.remember?"1":"0"),t},e}();t.TokenRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t,n,r,i){this.win=e,this.webVaultUrl=t,this.successCallback=n,this.errorCallback=r,this.infoCallback=i,this.iframe=null,this.parseFunction=this.parseMessage.bind(this),this.connectorLink=e.document.createElement("a"),this.webVaultUrl=null!=t&&""!==t?t:"https://vault.bitwarden.com"}return e.prototype.init=function(e){this.connectorLink.href=this.webVaultUrl+"/u2f-connector.html?data="+this.base64Encode(JSON.stringify(e))+"&parent="+encodeURIComponent(this.win.document.location.href)+"&v=1",this.iframe=this.win.document.getElementById("u2f_iframe"),this.iframe.src=this.connectorLink.href,this.win.addEventListener("message",this.parseFunction,!1)},e.prototype.stop=function(){this.sendMessage("stop")},e.prototype.start=function(){this.sendMessage("start")},e.prototype.sendMessage=function(e){this.iframe&&this.iframe.src&&this.iframe.contentWindow&&this.iframe.contentWindow.postMessage(e,this.iframe.src)},e.prototype.base64Encode=function(e){return btoa(encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,function(e,t){return String.fromCharCode("0x"+t)}))},e.prototype.cleanup=function(){this.win.removeEventListener("message",this.parseFunction,!1)},e.prototype.parseMessage=function(e){if(this.validMessage(e)){var t=e.data.split("|");"success"===t[0]&&this.successCallback?this.successCallback(t[1]):"error"===t[0]&&this.errorCallback?this.errorCallback(t[1]):"info"===t[0]&&this.infoCallback&&this.infoCallback(t[1])}},e.prototype.validMessage=function(e){return null!=e.origin&&""!==e.origin&&e.origin===this.connectorLink.origin&&null!=e.data&&"string"==typeof e.data&&(0===e.data.indexOf("success|")||0===e.data.indexOf("error|")||0===e.data.indexOf("info|"))},e}();t.U2f=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e,t){this.userId=e,this.token=t}}();t.VerifyEmailRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e,t){this.userId=e,this.token=t}}();t.VerifyDeleteRecoverRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){this.collections=[]}}();t.GroupRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){this.emails=[],this.collections=[]}}();t.OrganizationUserInviteRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){this.collections=[]}}();t.OrganizationUserUpdateRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){this.groupIds=[]}}();t.OrganizationUserUpdateGroupsRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.AppIdService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.LogService=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.PolicyRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.OrganizationUpdateRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Charge=0]="Charge",e[e.Credit=1]="Credit",e[e.PromotionalCredit=2]="PromotionalCredit",e[e.ReferralCredit=3]="ReferralCredit",e[e.Refund=4]="Refund"}(t.TransactionType||(t.TransactionType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.VerifyBankRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.BitPayInvoiceRequest=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(574).OrganizationTaxInfoUpdateRequest);t.PaymentRequest=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.OrganizationCreateRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.OrganizationUpgradeRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.SeatRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.StorageRequest=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(80).PasswordVerificationRequest);t.UpdateTwoFactorDuoRequest=a},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(80).PasswordVerificationRequest);t.TwoFactorProviderRequest=a},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(80).PasswordVerificationRequest);t.UpdateTwoFactorAuthenticatorRequest=a},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(80).PasswordVerificationRequest);t.UpdateTwoFactorEmailRequest=a},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(80).PasswordVerificationRequest);t.UpdateTwoFactorU2fDeleteRequest=a},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(80).PasswordVerificationRequest);t.UpdateTwoFactorU2fRequest=a},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(80).PasswordVerificationRequest);t.UpdateTwoFactorYubioOtpRequest=a},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]"+this.i18nService.t("encExportKeyWarningDesc")+"

"+this.i18nService.t("encExportAccountWarningDesc"),this.i18nService.t("confirmVaultExport"),this.i18nService.t("exportVault"),this.i18nService.t("cancel"),"warning",!0)]:[3,2];case 1:return[2,e.sent()];case 2:return[4,this.platformUtilsService.showDialog(this.i18nService.t("exportWarningDesc"),this.i18nService.t("confirmVaultExport"),this.i18nService.t("exportVault"),this.i18nService.t("cancel"),"warning")];case 3:return[2,e.sent()]}})})},e.prototype.togglePassword=function(){this.platformUtilsService.eventTrack("Toggled Master Password on Export"),this.showPassword=!this.showPassword,document.getElementById("masterPassword").focus()},e.prototype.saved=function(){this.onSaved.emit()},e.prototype.getExportData=function(){return this.exportService.getExport(this.format)},e.prototype.getFileName=function(e){var t=this.format;return"encrypted_json"===this.format&&(e=null==e?"encrypted":"encrypted_"+e,t="json"),this.exportService.getFileName(e,t)},e.prototype.collectEvent=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return[4,this.eventService.collect(o.EventType.User_ClientExportedVault)];case 1:return e.sent(),[2]}})})},e.prototype.downloadFile=function(e){var t=this.getFileName();this.platformUtilsService.saveFile(this.win,e,{type:"text/plain"},t)},e.ɵfac=function(t){return new(t||e)(s.ɵɵdirectiveInject(l.CryptoService),s.ɵɵdirectiveInject(c.I18nService),s.ɵɵdirectiveInject(p.PlatformUtilsService),s.ɵɵdirectiveInject(u.ExportService),s.ɵɵdirectiveInject(d.EventService),s.ɵɵdirectiveInject(Window))},e.ɵdir=s.ɵɵdefineDirective({type:e,outputs:{onSaved:"onSaved"}}),e}();t.ExportComponent=m},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.AttachmentRequest=r},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&this.collections.length>0&&this.collections.forEach(function(e){a.collectionIds.indexOf(e.id)>-1&&(e.checked=!0)}),i.label=8;case 8:return r=this,[4,this.folderService.getAllDecrypted()];case 9:return r.folders=i.sent(),this.editMode&&this.previousCipherId!==this.cipherId&&this.eventService.collect(l.EventType.Cipher_ClientViewed,this.cipherId),this.previousCipherId=this.cipherId,[2]}})})},e.prototype.submit=function(){return r(this,void 0,void 0,function(){var e;return i(this,function(t){switch(t.label){case 0:return this.cipher.isDeleted?[2,this.restore()]:null==this.cipher.name||""===this.cipher.name?(this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("nameRequired")),[2,!1]):this.editMode&&!this.cloneMode||this.allowPersonal||null!=this.cipher.organizationId?(this.editMode&&!this.cloneMode||this.cipher.type!==s.CipherType.Login||null==this.cipher.login.uris||1!==this.cipher.login.uris.length||null!=this.cipher.login.uris[0].uri&&""!==this.cipher.login.uris[0].uri||(this.cipher.login.uris=null),this.editMode&&!this.cloneMode||null==this.cipher.organizationId||(this.cipher.collectionIds=null==this.collections?[]:this.collections.filter(function(e){return e.checked}).map(function(e){return e.id})),this.cloneMode&&(this.cipher.id=null),[4,this.encryptCipher()]):(this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("personalOwnershipSubmitError")),[2,!1]);case 1:e=t.sent(),t.label=2;case 2:return t.trys.push([2,4,,5]),this.formPromise=this.saveCipher(e),[4,this.formPromise];case 3:return t.sent(),this.cipher.id=e.id,this.platformUtilsService.eventTrack(this.editMode&&!this.cloneMode?"Edited Cipher":"Added Cipher"),this.platformUtilsService.showToast("success",null,this.i18nService.t(this.editMode&&!this.cloneMode?"editedItem":"addedItem")),this.onSavedCipher.emit(this.cipher),this.messagingService.send(this.editMode&&!this.cloneMode?"editedCipher":"addedCipher"),[2,!0];case 4:return t.sent(),[3,5];case 5:return[2,!1]}})})},e.prototype.addUri=function(){this.cipher.type===s.CipherType.Login&&(null==this.cipher.login.uris&&(this.cipher.login.uris=[]),this.cipher.login.uris.push(new g.LoginUriView))},e.prototype.removeUri=function(e){if(this.cipher.type===s.CipherType.Login&&null!=this.cipher.login.uris){var t=this.cipher.login.uris.indexOf(e);t>-1&&this.cipher.login.uris.splice(t,1)}},e.prototype.addField=function(){null==this.cipher.fields&&(this.cipher.fields=[]);var e=new v.FieldView;e.type=this.addFieldType,e.newField=!0,this.cipher.fields.push(e)},e.prototype.removeField=function(e){var t=this.cipher.fields.indexOf(e);t>-1&&this.cipher.fields.splice(t,1)},e.prototype.trackByFunction=function(e,t){return e},e.prototype.cancel=function(){this.onCancelled.emit(this.cipher)},e.prototype.attachments=function(){this.onEditAttachments.emit(this.cipher)},e.prototype.share=function(){this.onShareCipher.emit(this.cipher)},e.prototype.editCollections=function(){this.onEditCollections.emit(this.cipher)},e.prototype.delete=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return[4,this.platformUtilsService.showDialog(this.i18nService.t(this.cipher.isDeleted?"permanentlyDeleteItemConfirmation":"deleteItemConfirmation"),this.i18nService.t("deleteItem"),this.i18nService.t("yes"),this.i18nService.t("no"),"warning")];case 1:if(!e.sent())return[2,!1];e.label=2;case 2:return e.trys.push([2,4,,5]),this.deletePromise=this.deleteCipher(),[4,this.deletePromise];case 3:return e.sent(),this.platformUtilsService.eventTrack((this.cipher.isDeleted?"Permanently ":"")+"Deleted Cipher"),this.platformUtilsService.showToast("success",null,this.i18nService.t(this.cipher.isDeleted?"permanentlyDeletedItem":"deletedItem")),this.onDeletedCipher.emit(this.cipher),this.messagingService.send(this.cipher.isDeleted?"permanentlyDeletedCipher":"deletedCipher"),[3,5];case 4:return e.sent(),[3,5];case 5:return[2,!0]}})})},e.prototype.restore=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return this.cipher.isDeleted?[4,this.platformUtilsService.showDialog(this.i18nService.t("restoreItemConfirmation"),this.i18nService.t("restoreItem"),this.i18nService.t("yes"),this.i18nService.t("no"),"warning")]:[2,!1];case 1:if(!e.sent())return[2,!1];e.label=2;case 2:return e.trys.push([2,4,,5]),this.restorePromise=this.restoreCipher(),[4,this.restorePromise];case 3:return e.sent(),this.platformUtilsService.eventTrack("Restored Cipher"),this.platformUtilsService.showToast("success",null,this.i18nService.t("restoredItem")),this.onRestoredCipher.emit(this.cipher),this.messagingService.send("restoredCipher"),[3,5];case 4:return e.sent(),[3,5];case 5:return[2,!0]}})})},e.prototype.generatePassword=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return null!=this.cipher.login&&null!=this.cipher.login.password&&this.cipher.login.password.length?[4,this.platformUtilsService.showDialog(this.i18nService.t("overwritePasswordConfirmation"),this.i18nService.t("overwritePassword"),this.i18nService.t("yes"),this.i18nService.t("no"))]:[3,2];case 1:if(!e.sent())return[2,!1];e.label=2;case 2:return this.onGeneratePassword.emit(),[2,!0]}})})},e.prototype.togglePassword=function(){this.platformUtilsService.eventTrack("Toggled Password on Edit"),this.showPassword=!this.showPassword,document.getElementById("loginPassword").focus(),this.editMode&&this.showPassword&&this.eventService.collect(l.EventType.Cipher_ClientToggledPasswordVisible,this.cipherId)},e.prototype.toggleCardCode=function(){this.platformUtilsService.eventTrack("Toggled CardCode on Edit"),this.showCardCode=!this.showCardCode,document.getElementById("cardCode").focus(),this.editMode&&this.showCardCode&&this.eventService.collect(l.EventType.Cipher_ClientToggledCardCodeVisible,this.cipherId)},e.prototype.toggleFieldValue=function(e){var t=e;t.showValue=!t.showValue,this.editMode&&t.showValue&&this.eventService.collect(l.EventType.Cipher_ClientToggledHiddenFieldVisible,this.cipherId)},e.prototype.toggleUriOptions=function(e){var t=e;t.showOptions=(null!=t.showOptions||null==e.match)&&!t.showOptions},e.prototype.loginUriMatchChanged=function(e){var t=e;t.showOptions=null==t.showOptions||t.showOptions},e.prototype.drop=function(e){a.moveItemInArray(this.cipher.fields,e.previousIndex,e.currentIndex)},e.prototype.organizationChanged=function(){return r(this,void 0,void 0,function(){var e,t=this;return i(this,function(n){switch(n.label){case 0:return null!=this.writeableCollections&&this.writeableCollections.forEach(function(e){return e.checked=!1}),null==this.cipher.organizationId?[3,2]:(this.collections=this.writeableCollections.filter(function(e){return e.organizationId===t.cipher.organizationId}),[4,this.userService.getOrganization(this.cipher.organizationId)]);case 1:return null!=(e=n.sent())&&(this.cipher.organizationUseTotp=e.useTotp),[3,3];case 2:this.collections=[],n.label=3;case 3:return[2]}})})},e.prototype.checkPassword=function(){return r(this,void 0,void 0,function(){var e;return i(this,function(t){switch(t.label){case 0:return null!=this.checkPasswordPromise?[2]:null==this.cipher.login||null==this.cipher.login.password||""===this.cipher.login.password?[2]:(this.platformUtilsService.eventTrack("Check Password"),this.checkPasswordPromise=this.auditService.passwordLeaked(this.cipher.login.password),[4,this.checkPasswordPromise]);case 1:return e=t.sent(),this.checkPasswordPromise=null,e>0?this.platformUtilsService.showToast("warning",null,this.i18nService.t("passwordExposed",e.toString())):this.platformUtilsService.showToast("success",null,this.i18nService.t("passwordSafe")),[2]}})})},e.prototype.loadCollections=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return[4,this.collectionService.getAllDecrypted()];case 1:return[2,e.sent().filter(function(e){return!e.readOnly})]}})})},e.prototype.loadCipher=function(){return this.cipherService.get(this.cipherId)},e.prototype.encryptCipher=function(){return this.cipherService.encrypt(this.cipher)},e.prototype.saveCipher=function(e){return this.cipherService.saveWithServer(e)},e.prototype.deleteCipher=function(){return this.cipher.isDeleted?this.cipherService.deleteWithServer(this.cipher.id):this.cipherService.softDeleteWithServer(this.cipher.id)},e.prototype.restoreCipher=function(){return this.cipherService.restoreWithServer(this.cipher.id)},e.ɵfac=function(t){return new(t||e)(w.ɵɵdirectiveInject(C.CipherService),w.ɵɵdirectiveInject(I.FolderService),w.ɵɵdirectiveInject(E.I18nService),w.ɵɵdirectiveInject(P.PlatformUtilsService),w.ɵɵdirectiveInject(k.AuditService),w.ɵɵdirectiveInject(_.StateService),w.ɵɵdirectiveInject(A.UserService),w.ɵɵdirectiveInject(O.CollectionService),w.ɵɵdirectiveInject(T.MessagingService),w.ɵɵdirectiveInject(M.EventService),w.ɵɵdirectiveInject(B.PolicyService))},e.ɵdir=w.ɵɵdefineDirective({type:e,inputs:{cloneMode:"cloneMode",folderId:"folderId",cipherId:"cipherId",type:"type",collectionIds:"collectionIds",organizationId:"organizationId"},outputs:{onSavedCipher:"onSavedCipher",onDeletedCipher:"onDeletedCipher",onRestoredCipher:"onRestoredCipher",onCancelled:"onCancelled",onEditAttachments:"onEditAttachments",onShareCipher:"onShareCipher",onEditCollections:"onEditCollections",onGeneratePassword:"onGeneratePassword"}}),e}();t.AddEditComponent=D},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]this.pageSize&&(t=this.pagedCiphersCount),this.ciphers.length>e&&(this.pagedCiphers=this.pagedCiphers.concat(this.ciphers.slice(e,e+t))),this.pagedCiphersCount=this.pagedCiphers.length,this.didScroll=this.pagedCiphers.length>this.pageSize}},e.prototype.reload=function(e,t){return void 0===e&&(e=null),void 0===t&&(t=!1),r(this,void 0,void 0,function(){return i(this,function(n){switch(n.label){case 0:return this.loaded=!1,this.ciphers=[],[4,this.load(e,t)];case 1:return n.sent(),[2]}})})},e.prototype.refresh=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return e.trys.push([0,,2,3]),this.refreshing=!0,[4,this.reload(this.filter,this.deleted)];case 1:return e.sent(),[3,3];case 2:return this.refreshing=!1,[7];case 3:return[2]}})})},e.prototype.applyFilter=function(e){return void 0===e&&(e=null),r(this,void 0,void 0,function(){return i(this,function(t){switch(t.label){case 0:return this.filter=e,[4,this.search(null)];case 1:return t.sent(),[2]}})})},e.prototype.search=function(e){return void 0===e&&(e=null),r(this,void 0,void 0,function(){var t,n,a=this;return i(this,function(o){switch(o.label){case 0:return this.searchPending=!1,null!=this.searchTimeout&&clearTimeout(this.searchTimeout),t=function(e){return e.isDeleted===a.deleted},null!=e?[3,3]:(n=this,[4,this.searchService.searchCiphers(this.searchText,[this.filter,t],null)]);case 1:return n.ciphers=o.sent(),[4,this.resetPaging()];case 2:return o.sent(),[2];case 3:return this.searchPending=!0,this.searchTimeout=setTimeout(function(){return r(a,void 0,void 0,function(){var e;return i(this,function(n){switch(n.label){case 0:return e=this,[4,this.searchService.searchCiphers(this.searchText,[this.filter,t],null)];case 1:return e.ciphers=n.sent(),[4,this.resetPaging()];case 2:return n.sent(),this.searchPending=!1,[2]}})})},e),[2]}})})},e.prototype.selectCipher=function(e){this.onCipherClicked.emit(e)},e.prototype.rightClickCipher=function(e){this.onCipherRightClicked.emit(e)},e.prototype.addCipher=function(){this.onAddCipher.emit()},e.prototype.addCipherOptions=function(){this.onAddCipherOptions.emit()},e.prototype.isSearching=function(){return!this.searchPending&&this.searchService.isSearchable(this.searchText)},e.prototype.isPaging=function(){var e=this.isSearching();return e&&this.didScroll&&this.resetPaging(),!e&&this.ciphers.length>this.pageSize},e.prototype.resetPaging=function(){return r(this,void 0,void 0,function(){return i(this,function(e){return this.pagedCiphers=[],this.loadMore(),[2]})})},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(s.SearchService))},e.ɵdir=o.ɵɵdefineDirective({type:e,inputs:{activeCipherId:"activeCipherId"},outputs:{onCipherClicked:"onCipherClicked",onCipherRightClicked:"onCipherRightClicked",onAddCipher:"onAddCipher",onAddCipherOptions:"onAddCipherOptions"}}),e}();t.CiphersComponent=l},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]-1}),[2]}})})},e.prototype.submit=function(){return r(this,void 0,void 0,function(){var e;return i(this,function(t){switch(t.label){case 0:if(e=this.collections.filter(function(e){return!!e.checked}).map(function(e){return e.id}),!this.allowSelectNone&&0===e.length)return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("selectOneCollection")),[2];this.cipherDomain.collectionIds=e,t.label=1;case 1:return t.trys.push([1,3,,4]),this.formPromise=this.saveCollections(),[4,this.formPromise];case 2:return t.sent(),this.onSavedCollections.emit(),this.platformUtilsService.eventTrack("Edited Cipher Collections"),this.platformUtilsService.showToast("success",null,this.i18nService.t("editedItem")),[3,4];case 3:return t.sent(),[3,4];case 4:return[2]}})})},e.prototype.loadCipher=function(){return this.cipherService.get(this.cipherId)},e.prototype.loadCipherCollections=function(){return this.cipherDomain.collectionIds},e.prototype.loadCollections=function(){return r(this,void 0,void 0,function(){var e=this;return i(this,function(t){switch(t.label){case 0:return[4,this.collectionService.getAllDecrypted()];case 1:return[2,t.sent().filter(function(t){return!t.readOnly&&t.organizationId===e.cipher.organizationId})]}})})},e.prototype.saveCollections=function(){return this.cipherService.saveCollectionsWithServer(this.cipherDomain)},e.ɵfac=function(t){return new(t||e)(o.ɵɵdirectiveInject(s.CollectionService),o.ɵɵdirectiveInject(l.PlatformUtilsService),o.ɵɵdirectiveInject(c.I18nService),o.ɵɵdirectiveInject(p.CipherService))},e.ɵdir=o.ɵɵdefineDirective({type:e,inputs:{cipherId:"cipherId",allowSelectNone:"allowSelectNone"},outputs:{onSavedCollections:"onSavedCollections"}}),e}();t.CollectionsComponent=u},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0?null:this.formatDateFallbacks(this.expirationDateFallback)+"T"+this.expirationTimeFallback},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"deletionDateTimeFallback",{get:function(){return this.nullOrWhiteSpaceCount([this.deletionDateFallback,this.deletionTimeFallback])>0?null:this.formatDateFallbacks(this.deletionDateFallback)+"T"+this.deletionTimeFallback},enumerable:!0,configurable:!0}),e.prototype.load=function(){return r(this,void 0,void 0,function(){var e,t,n,r,a,s,h;return i(this,function(i){switch(i.label){case 0:return[4,this.policyService.getAll(c.PolicyType.DisableSend)];case 1:return e=i.sent(),[4,this.userService.getAllOrganizations()];case 2:return t=i.sent(),this.disableSend=t.some(function(t){return t.enabled&&t.status===l.OrganizationUserStatusType.Confirmed&&t.usePolicies&&!t.canManagePolicies&&e.some(function(e){return e.organizationId===t.id&&e.enabled})}),n=this,[4,this.userService.canAccessPremium()];case 3:return n.canAccessPremium=i.sent(),this.canAccessPremium||(this.type=p.SendType.Text),null!=this.send?[3,7]:this.editMode?[4,this.loadSend()]:[3,6];case 4:return r=i.sent(),a=this,[4,r.decrypt()];case 5:return a.send=i.sent(),[3,7];case 6:this.send=new m.SendView,this.send.type=null==this.type?p.SendType.File:this.type,this.send.file=new u.SendFileView,this.send.text=new d.SendTextView,this.send.deletionDate=new Date,this.send.deletionDate.setDate(this.send.deletionDate.getDate()+7),i.label=7;case 7:return this.hasPassword=null!=this.send.password&&""!==this.send.password.trim(),this.isDateTimeLocalSupported?(this.deletionDate=this.dateToString(this.send.deletionDate),this.expirationDate=this.dateToString(this.send.expirationDate)):(void 0!==(s=this.dateToSplitString(this.send.deletionDate))&&s.length>0&&(this.deletionDateFallback=s[0],this.deletionTimeFallback=s[1],this.isSafari&&(this.safariDeletionTime=this.deletionTimeFallback)),void 0!==(h=this.dateToSplitString(this.send.expirationDate))&&h.length>0&&(this.expirationDateFallback=h[0],this.expirationTimeFallback=h[1],this.isSafari&&(this.safariExpirationTime=this.expirationTimeFallback))),this.isSafari&&(this.safariDeletionTimeOptions=this.safariTimeOptions(o.DeletionDate),this.safariExpirationTimeOptions=this.safariTimeOptions(o.ExpriationDate)),[2]}})})},e.prototype.submit=function(){var e,t;return r(this,void 0,void 0,function(){var n,r,a,o,s,l;return i(this,function(i){switch(i.label){case 0:if(!this.isDateTimeLocalSupported){if(this.isSafari&&(this.expirationTimeFallback=null!==(e=this.safariExpirationTime)&&void 0!==e?e:this.expirationTimeFallback,this.deletionTimeFallback=null!==(t=this.safariDeletionTime)&&void 0!==t?t:this.deletionTimeFallback),this.deletionDate=this.deletionDateTimeFallback,null!=this.expirationDateTimeFallback&&isNaN(Date.parse(this.expirationDateTimeFallback)))return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("expirationDateIsInvalid")),[2];if(isNaN(Date.parse(this.deletionDateTimeFallback)))return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("deletionDateIsInvalid")),[2];if(1===this.nullOrWhiteSpaceCount([this.expirationDateFallback,this.expirationTimeFallback]))return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("expirationDateAndTimeRequired")),[2];(this.editMode||0===this.expirationDateSelect)&&(this.expirationDate=this.expirationDateTimeFallback)}if(this.disableSend)return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("sendDisabledWarning")),[2,!1];if(null==this.send.name||""===this.send.name)return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("nameRequired")),[2,!1];if(n=null,this.send.type===p.SendType.File&&!this.editMode){if(r=document.getElementById("file"),null==(a=r.files)||0===a.length)return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("selectFile")),[2];if((n=a[0]).size>104857600)return this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("maxFileSize")),[2]}return this.editMode||(o=new Date,this.deletionDateSelect>0&&((s=new Date).setHours(o.getHours()+this.deletionDateSelect),this.deletionDate=this.dateToString(s)),null!=this.expirationDateSelect&&this.expirationDateSelect>0&&((s=new Date).setHours(o.getHours()+this.expirationDateSelect),this.expirationDate=this.dateToString(s))),null!=this.password&&""===this.password.trim()&&(this.password=null),[4,this.encryptSend(n)];case 1:l=i.sent(),i.label=2;case 2:return i.trys.push([2,4,,5]),this.formPromise=this.sendService.saveWithServer(l),[4,this.formPromise];case 3:return i.sent(),null==this.send.id&&(this.send.id=l[0].id),null==this.send.accessId&&(this.send.accessId=l[0].accessId),this.platformUtilsService.showToast("success",null,this.i18nService.t(this.editMode?"editedSend":"createdSend")),this.onSavedSend.emit(this.send),this.copyLink&&this.copyLinkToClipboard(this.link),[2,!0];case 4:return i.sent(),[3,5];case 5:return[2,!1]}})})},e.prototype.clearExpiration=function(){this.expirationDate=null,this.expirationDateFallback=null,this.expirationTimeFallback=null,this.safariExpirationTime=null},e.prototype.copyLinkToClipboard=function(e){null!=e&&this.platformUtilsService.copyToClipboard(e)},e.prototype.delete=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return null!=this.deletePromise?[2,!1]:[4,this.platformUtilsService.showDialog(this.i18nService.t("deleteSendConfirmation"),this.i18nService.t("deleteSend"),this.i18nService.t("yes"),this.i18nService.t("no"),"warning")];case 1:if(!e.sent())return[2,!1];e.label=2;case 2:return e.trys.push([2,5,,6]),this.deletePromise=this.sendService.deleteWithServer(this.send.id),[4,this.deletePromise];case 3:return e.sent(),this.platformUtilsService.showToast("success",null,this.i18nService.t("deletedSend")),[4,this.load()];case 4:return e.sent(),this.onDeletedSend.emit(this.send),[2,!0];case 5:return e.sent(),[3,6];case 6:return[2,!1]}})})},e.prototype.typeChanged=function(){this.canAccessPremium||this.send.type!==p.SendType.File||this.premiumRequiredAlertShown||(this.premiumRequiredAlertShown=!0,this.messagingService.send("premiumRequired"))},e.prototype.toggleOptions=function(){this.showOptions=!this.showOptions},e.prototype.expirationDateFallbackChanged=function(){var e,t;this.isSafari?this.safariExpirationTime=null!==(e=this.safariExpirationTime)&&void 0!==e?e:"00:00":this.expirationTimeFallback=null!==(t=this.expirationTimeFallback)&&void 0!==t?t:this.datePipe.transform(new Date,"HH:mm")},e.prototype.loadSend=function(){return r(this,void 0,void 0,function(){return i(this,function(e){return[2,this.sendService.get(this.sendId)]})})},e.prototype.encryptSend=function(e){return r(this,void 0,void 0,function(){var t;return i(this,function(n){switch(n.label){case 0:return[4,this.sendService.encrypt(this.send,e,this.password,null)];case 1:t=n.sent();try{t[0].deletionDate=null==this.deletionDate?null:new Date(this.deletionDate)}catch(r){t[0].deletionDate=null}try{t[0].expirationDate=null==this.expirationDate?null:new Date(this.expirationDate)}catch(i){t[0].expirationDate=null}return[2,t]}})})},e.prototype.dateToString=function(e){return null==e?null:this.datePipe.transform(e,"yyyy-MM-ddTHH:mm")},e.prototype.formatDateFallbacks=function(e){try{return this.isSafari||(e+=" 00:00"),this.datePipe.transform(new Date(e),"yyyy-MM-dd")}catch(t){this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("dateParsingError"))}},e.prototype.dateToSplitString=function(e){if(null!=e)return[this.isSafari?this.datePipe.transform(e,"MM/dd/yyyy"):this.datePipe.transform(e,"yyyy-MM-dd"),this.datePipe.transform(e,"HH:mm")]},e.prototype.togglePasswordVisible=function(){this.showPassword=!this.showPassword,document.getElementById("password").focus()},e.prototype.nullOrWhiteSpaceCount=function(e){return e.filter(function(e){return null==e||""===e.trim()}).length},e.prototype.safariTimeOptions=function(e){for(var t=[],n=[],r=[],i=[],s=1;s<=12;s++)for(var l=0;l<60;l+=15){var c=s.toString(),p=l.toString();if(s<10&&(c="0"+c),l<10&&(p="0"+p),12===s){var u={standard:c+":"+p+" AM",military:"00:"+p};n.push(u);var d={standard:c+":"+p+" PM",military:c+":"+p};t.push(d)}else{var m={standard:c+":"+p+" AM",military:c+":"+p};r.push(m);var h={standard:c+":"+p+" PM",military:s+12+":"+p};i.push(h)}}var f=a(n,r,t,i);if(e===o.ExpriationDate&&null!=this.expirationDateTimeFallback&&this.editMode){var v={standard:this.datePipe.transform(this.expirationDateTimeFallback,"hh:mm a"),military:this.datePipe.transform(this.expirationDateTimeFallback,"HH:mm")};return a([v,{standard:null,military:null}],f)}if(e===o.DeletionDate&&null!=this.deletionDateTimeFallback&&this.editMode){v={standard:this.datePipe.transform(this.deletionDateTimeFallback,"hh:mm a"),military:this.datePipe.transform(this.deletionDateTimeFallback,"HH:mm")};return a([v],f)}return a([{standard:null,military:null}],f)},e.ɵfac=function(t){return new(t||e)(h.ɵɵdirectiveInject(f.I18nService),h.ɵɵdirectiveInject(v.PlatformUtilsService),h.ɵɵdirectiveInject(y.EnvironmentService),h.ɵɵdirectiveInject(g.DatePipe),h.ɵɵdirectiveInject(x.SendService),h.ɵɵdirectiveInject(b.UserService),h.ɵɵdirectiveInject(S.MessagingService),h.ɵɵdirectiveInject(w.PolicyService))},e.ɵdir=h.ɵɵdefineDirective({type:e,inputs:{sendId:"sendId",type:"type"},outputs:{onSavedSend:"onSavedSend",onDeletedSend:"onDeletedSend",onCancelled:"onCancelled"}}),e}();t.AddEditComponent=C},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e,t){this.culture="en-US",this.name=e,this.masterPasswordHint=t||null}}();t.UpdateProfileRequest=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(628).EmailTokenRequest);t.EmailRequest=a},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n(633).PasswordRequest);t.KdfRequest=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.UpdateDomainsRequest=r},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&(this.organizationId=this.organizations[0].id),this.filterCollections(),[2]}})})},e.prototype.filterCollections=function(){var e=this;this.writeableCollections.forEach(function(e){return e.checked=!1}),null==this.organizationId||0===this.writeableCollections.length?this.collections=[]:this.collections=this.writeableCollections.filter(function(t){return t.organizationId===e.organizationId})},e.prototype.submit=function(){return r(this,void 0,void 0,function(){var e,t,n=this;return i(this,function(a){switch(a.label){case 0:return 0===(e=this.collections.filter(function(e){return!!e.checked}).map(function(e){return e.id})).length?(this.platformUtilsService.showToast("error",this.i18nService.t("errorOccurred"),this.i18nService.t("selectOneCollection")),[2]):[4,this.cipherService.get(this.cipherId)];case 1:return[4,a.sent().decrypt()];case 2:t=a.sent(),a.label=3;case 3:return a.trys.push([3,5,,6]),this.formPromise=this.cipherService.shareWithServer(t,this.organizationId,e).then(function(){return r(n,void 0,void 0,function(){return i(this,function(e){return this.onSharedCipher.emit(),this.platformUtilsService.eventTrack("Shared Cipher"),this.platformUtilsService.showToast("success",null,this.i18nService.t("sharedItem")),[2]})})}),[4,this.formPromise];case 4:return a.sent(),[2,!0];case 5:return a.sent(),[3,6];case 6:return[2,!1]}})})},Object.defineProperty(e.prototype,"canSave",{get:function(){if(null!=this.collections)for(var e=0;e0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=e?c[e-1]():0===c.length&&(s.delete(l),0===s.size&&o.delete(n))};a.apply(n,r).then(function(e){return u(),e}).catch(function(e){throw u(),e}).then(t,i)};c.push(p),c.length<=e&&p()})}}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e,t){this.ids=null==e?[]:e,this.folderId=t}}();t.CipherBulkMoveRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e){this.ids=null==e?[]:e}}();t.CipherBulkRestoreRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(504),i=function(){return function(e,t){var n=this;null!=e&&(this.ciphers=[],e.forEach(function(e){n.ciphers.push(new r.CipherWithIdRequest(e))})),this.collectionIds=t}}();t.CipherBulkShareRequest=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(212),i=function(){return function(e){this.cipher=new r.CipherRequest(e),this.collectionIds=e.collectionIds}}();t.CipherShareRequest=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.comparator=e,this.sortedCiphersByUrl=new Map,this.timeouts=new Map}return e.prototype.isCached=function(e){return this.sortedCiphersByUrl.has(e)},e.prototype.addCiphers=function(e,t){t.sort(this.comparator),this.sortedCiphersByUrl.set(e,new i(t)),this.resetTimer(e)},e.prototype.getLastUsed=function(e){return this.resetTimer(e),this.isCached(e)?this.sortedCiphersByUrl.get(e).getLastUsed():null},e.prototype.getLastLaunched=function(e){return this.isCached(e)?this.sortedCiphersByUrl.get(e).getLastLaunched():null},e.prototype.getNext=function(e){return this.resetTimer(e),this.isCached(e)?this.sortedCiphersByUrl.get(e).getNext():null},e.prototype.updateLastUsedIndex=function(e){this.isCached(e)&&this.sortedCiphersByUrl.get(e).updateLastUsedIndex()},e.prototype.clear=function(){this.sortedCiphersByUrl.clear(),this.timeouts.clear()},e.prototype.resetTimer=function(e){var t=this;clearTimeout(this.timeouts.get(e)),this.timeouts.set(e,setTimeout(function(){t.sortedCiphersByUrl.delete(e),t.timeouts.delete(e)},3e3))},e}();t.SortedCiphersCache=r;var i=function(){function e(e){this.ciphers=e,this.lastUsedIndex=-1}return e.prototype.getLastUsed=function(){return this.lastUsedIndex=Math.max(this.lastUsedIndex,0),this.ciphers[this.lastUsedIndex]},e.prototype.getLastLaunched=function(){return this.ciphers.filter(function(e){var t;return null===(t=e.localData)||void 0===t?void 0:t.lastLaunched}).sort(function(e,t){return t.localData.lastLaunched.valueOf()-e.localData.lastLaunched.valueOf()})[0]},e.prototype.getNextIndex=function(){return(this.lastUsedIndex+1)%this.ciphers.length},e.prototype.getNext=function(){return this.ciphers[this.getNextIndex()]},e.prototype.updateLastUsedIndex=function(){this.lastUsedIndex=this.getNextIndex()},e}()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e,t,n){this.children=[],this.parent=n,this.node=e,this.node.name=t}}();t.TreeNode=r},,,,,,,function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.defaultType="",t.minLength=0,t.useUppercase=!1,t.useLowercase=!1,t.useNumbers=!1,t.numberCount=0,t.useSpecial=!1,t.specialCount=0,t.minNumberWords=0,t.capitalize=!1,t.includeNumber=!1,t}return i(t,e),t.prototype.inEffect=function(){return""!==this.defaultType||this.minLength>0||this.numberCount>0||this.specialCount>0||this.useUppercase||this.useLowercase||this.useNumbers||this.useSpecial||this.minNumberWords>0||this.capitalize||this.includeNumber},t}(n(82).default);t.PasswordGeneratorPolicyOptions=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e){this.id=e.id,this.name=e.name,this.status=e.status,this.type=e.type,this.enabled=e.enabled,this.usePolicies=e.usePolicies,this.useGroups=e.useGroups,this.useDirectory=e.useDirectory,this.useEvents=e.useEvents,this.useTotp=e.useTotp,this.use2fa=e.use2fa,this.useApi=e.useApi,this.useBusinessPortal=e.useBusinessPortal,this.useSso=e.useSso,this.selfHost=e.selfHost,this.usersGetPremium=e.usersGetPremium,this.seats=e.seats,this.maxCollections=e.maxCollections,this.maxStorageGb=e.maxStorageGb,this.ssoBound=e.ssoBound,this.identifier=e.identifier,this.permissions=e.permissions}}();t.OrganizationData=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e){null!=e&&(this.id=e.id,this.fileName=e.fileName,this.key=e.key,this.size=e.size,this.sizeName=e.sizeName)}}();t.SendFileData=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e){null!=e&&(this.text=e.text,this.hidden=e.hidden)}}();t.SendTextData=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=0?this.browserCache=o.DeviceType.OperaBrowser:-1!==navigator.userAgent.indexOf(" Edg/")?this.browserCache=o.DeviceType.EdgeBrowser:-1!==navigator.userAgent.indexOf(" Vivaldi/")?this.browserCache=o.DeviceType.VivaldiBrowser:-1!==navigator.userAgent.indexOf(" Safari/")&&-1===navigator.userAgent.indexOf("Chrome")?this.browserCache=o.DeviceType.SafariBrowser:window.chrome&&-1!==navigator.userAgent.indexOf(" Chrome/")?this.browserCache=o.DeviceType.ChromeBrowser:-1!==navigator.userAgent.indexOf(" Trident/")?this.browserCache=o.DeviceType.IEBrowser:this.browserCache=o.DeviceType.UnknownBrowser,this.browserCache)},e.prototype.getDeviceString=function(){return o.DeviceType[this.getDevice()].toLowerCase().replace("browser","")},e.prototype.isFirefox=function(){return this.getDevice()===o.DeviceType.FirefoxBrowser},e.prototype.isChrome=function(){return this.getDevice()===o.DeviceType.ChromeBrowser},e.prototype.isEdge=function(){return this.getDevice()===o.DeviceType.EdgeBrowser},e.prototype.isOpera=function(){return this.getDevice()===o.DeviceType.OperaBrowser},e.prototype.isVivaldi=function(){return this.getDevice()===o.DeviceType.VivaldiBrowser},e.prototype.isSafari=function(){return this.getDevice()===o.DeviceType.SafariBrowser},e.prototype.isIE=function(){return this.getDevice()===o.DeviceType.IEBrowser},e.prototype.isMacAppStore=function(){return!1},e.prototype.analyticsId=function(){return"UA-81915606-3"},e.prototype.isViewOpen=function(){return Promise.resolve(!1)},e.prototype.lockTimeout=function(){return null},e.prototype.launchUri=function(e,t){var n=document.createElement("a");n.href=e,null!=t&&t.sameWindow||(n.target="_blank",n.rel="noreferrer noopener"),n.classList.add("d-none"),document.body.appendChild(n),n.click(),document.body.removeChild(n)},e.prototype.saveFile=function(e,t,n,r){var i=null,a=null,o=r.toLowerCase(),s=!0;if(o.endsWith(".pdf")?(a="application/pdf",s=!1):o.endsWith(".xlsx")?a="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":o.endsWith(".docx")?a="application/vnd.openxmlformats-officedocument.wordprocessingml.document":o.endsWith(".pptx")?a="application/vnd.openxmlformats-officedocument.presentationml.presentation":o.endsWith(".csv")?a="text/csv":o.endsWith(".png")?a="image/png":o.endsWith(".jpg")||o.endsWith(".jpeg")?a="image/jpeg":o.endsWith(".gif")&&(a="image/gif"),null!=a&&null==(n=n||{}).type&&(n.type=a),i=null==n||this.isIE()?new Blob([t]):new Blob([t],n),navigator.msSaveOrOpenBlob)navigator.msSaveBlob(i,r);else{var l=e.document.createElement("a");s?l.download=r:l.target="_blank",l.href=URL.createObjectURL(i),l.style.position="fixed",e.document.body.appendChild(l),l.click(),e.document.body.removeChild(l)}},e.prototype.getApplicationVersion=function(){return"2.19.0"},e.prototype.supportsU2f=function(e){return null!=e&&null!=e.u2f||(this.isChrome()||(this.isEdge()||this.isOpera()||this.isVivaldi())&&!s.Utils.isMobileBrowser)},e.prototype.supportsDuo=function(){return!0},e.prototype.showToast=function(e,t,n,r){this.messagingService.send("showToast",{text:n,title:t,type:e,options:r})},e.prototype.showDialog=function(e,t,n,o,s,l){return void 0===l&&(l=!1),r(this,void 0,void 0,function(){var r,c;return i(this,function(i){switch(i.label){case 0:if(r=null,null!=s)switch(s){case"success":r="fa-check text-success";break;case"warning":r="fa-warning text-warning";break;case"error":r="fa-bolt text-danger";break;case"info":r="fa-info-circle text-info"}return c=null!=r?'':void 0,[4,a.default.fire({heightAuto:!1,buttonsStyling:!1,icon:s,iconHtml:c,text:l?null:e,html:l?e:null,title:t,showCancelButton:null!=o,cancelButtonText:o,showConfirmButton:!0,confirmButtonText:null==n?this.i18nService.t("ok"):n})];case 1:return[2,i.sent().value]}})})},e.prototype.eventTrack=function(e,t,n){this.messagingService.send("analyticsEventTrack",{action:e,label:t,options:n})},e.prototype.isDev=function(){return!1},e.prototype.isSelfHost=function(){return"true"===(!1).toString()},e.prototype.copyToClipboard=function(e,t){var n=window,r=window.document;if(t&&(t.window||t.win)?r=(n=t.window||t.win).document:t&&t.doc&&(r=t.doc),n.clipboardData&&n.clipboardData.setData)n.clipboardData.setData("Text",e);else if(r.queryCommandSupported&&r.queryCommandSupported("copy")){var i=r.createElement("textarea");i.textContent=e,i.style.position="fixed";var a=r.body;r.body.classList.contains("modal-open")&&(a=r.body.querySelector(".modal")),a.appendChild(i),i.select();try{r.execCommand("copy")}catch(o){console.warn("Copy to clipboard failed.",o)}finally{a.removeChild(i)}}},e.prototype.readFromClipboard=function(e){throw new Error("Cannot read from clipboard on web.")},e.prototype.supportsBiometric=function(){return Promise.resolve(!1)},e.prototype.authenticateBiometric=function(){return Promise.resolve(!1)},e.prototype.supportsSecureStorage=function(){return!1},e.prototype.getDefaultSystemTheme=function(){return null},e.prototype.onDefaultSystemThemeChange=function(){},e}();t.WebPlatformUtilsService=l},function(e,t,n){"use strict";var r,i=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},a=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]-1&&(e=e.substring(0,t)),0!==e.indexOf("!/")&&0!==e.indexOf("#/")||(e=e.substring(1));var n=e.split("/"),r=[];return n.forEach(function(e){e.match(/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i)?r.push("__guid__"):r.push(e)}),encodeURIComponent(r.join("/"))},e}();t.Analytics=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Debug=0]="Debug",e[e.Info=1]="Info",e[e.Warning=2]="Warning",e[e.Error=3]="Error"}(t.LogLevelType||(t.LogLevelType={}))},,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&e.data.forEach(function(e){var r=new l.Collection(new p.CollectionData(e));t.push(r.decrypt().then(function(e){n.push(e)}))}),Promise.all(t)})),m.push(this.apiService.getCiphersOrganization(e).then(function(e){var t=[];return null!=e&&null!=e.data&&e.data.length>0&&e.data.filter(function(e){return null===e.deletedDate}).forEach(function(e){var n=new s.Cipher(new c.CipherData(e));t.push(n.decrypt().then(function(e){r.push(e)}))}),Promise.all(t)})),[4,Promise.all(m)];case 1:return i.sent(),"csv"===t?(h=new Map,n.forEach(function(e){h.set(e.id,e)}),f=[],r.forEach(function(e){if(e.type===o.CipherType.Login||e.type===o.CipherType.SecureNote){var t={collections:[]};null!=e.collectionIds&&(t.collections=e.collectionIds.filter(function(e){return h.has(e)}).map(function(e){return h.get(e).name})),y.buildCommonCipher(t,e),f.push(t)}}),[2,a.unparse(f)]):(v={encrypted:!1,collections:[],items:[]},n.forEach(function(e){var t=new d.CollectionWithId;t.build(e),v.collections.push(t)}),r.forEach(function(e){var t=new u.CipherWithIds;t.build(e),v.items.push(t)}),[2,JSON.stringify(v,null," ")])}})})},e.prototype.getOrganizationEncryptedExport=function(e){return r(this,void 0,void 0,function(){var t,n,r,a;return i(this,function(i){switch(i.label){case 0:return t=[],n=[],(r=[]).push(this.apiService.getCollections(e).then(function(e){return null!=e&&null!=e.data&&e.data.length>0&&e.data.forEach(function(e){var n=new l.Collection(new p.CollectionData(e));t.push(n)}),Promise.all([])})),r.push(this.apiService.getCiphersOrganization(e).then(function(e){return null!=e&&null!=e.data&&e.data.length>0&&e.data.filter(function(e){return null===e.deletedDate}).forEach(function(e){var t=new s.Cipher(new c.CipherData(e));n.push(t)}),Promise.all([])})),[4,Promise.all(r)];case 1:return i.sent(),a={encrypted:!0,collections:[],items:[]},t.forEach(function(e){var t=new d.CollectionWithId;t.build(e),a.collections.push(t)}),n.forEach(function(e){var t=new u.CipherWithIds;t.build(e),a.items.push(t)}),[2,JSON.stringify(a,null," ")]}})})},e.prototype.padNumber=function(e,t,n){void 0===n&&(n="0");var r=e.toString();return r.length>=t?r:new Array(t-r.length+1).join(n)+r},e.prototype.buildCommonCipher=function(e,t){switch(e.type=null,e.name=t.name,e.notes=t.notes,e.fields=null,e.login_uri=null,e.login_username=null,e.login_password=null,e.login_totp=null,t.fields&&t.fields.forEach(function(t){e.fields?e.fields+="\n":e.fields="",e.fields+=(t.name||"")+": "+t.value}),t.type){case o.CipherType.Login:e.type="login",e.login_username=t.login.username,e.login_password=t.login.password,e.login_totp=t.login.totp,t.login.uris&&(e.login_uri=[],t.login.uris.forEach(function(t){e.login_uri.push(t.uri)}));break;case o.CipherType.SecureNote:e.type="note";break;default:return}return e},e}();t.ExportService=h},,function(e,t){},,function(e,t){},,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(40),i=n(144),a=n(193),o=n(103),s=n(966),l=n(967),c=n(968),p=n(969),u=n(971),d=function(){function e(){}return e.template=function(){var t=new e;return t.organizationId=null,t.folderId=null,t.type=r.CipherType.Login,t.name="Item name",t.notes="Some notes about this item.",t.favorite=!1,t.fields=[],t.login=null,t.secureNote=null,t.card=null,t.identity=null,t},e.toView=function(e,t){switch(void 0===t&&(t=new i.CipherView),t.type=e.type,t.folderId=e.folderId,null==t.organizationId&&(t.organizationId=e.organizationId),t.name=e.name,t.notes=e.notes,t.favorite=e.favorite,null!=e.fields&&(t.fields=e.fields.map(function(e){return l.Field.toView(e)})),e.type){case r.CipherType.Login:t.login=p.Login.toView(e.login);break;case r.CipherType.SecureNote:t.secureNote=u.SecureNote.toView(e.secureNote);break;case r.CipherType.Card:t.card=s.Card.toView(e.card);break;case r.CipherType.Identity:t.identity=c.Identity.toView(e.identity)}return t},e.toDomain=function(e,t){switch(void 0===t&&(t=new a.Cipher),t.type=e.type,t.folderId=e.folderId,null==t.organizationId&&(t.organizationId=e.organizationId),t.name=null!=e.name?new o.CipherString(e.name):null,t.notes=null!=e.notes?new o.CipherString(e.notes):null,t.favorite=e.favorite,null!=e.fields&&(t.fields=e.fields.map(function(e){return l.Field.toDomain(e)})),e.type){case r.CipherType.Login:t.login=p.Login.toDomain(e.login);break;case r.CipherType.SecureNote:t.secureNote=u.SecureNote.toDomain(e.secureNote);break;case r.CipherType.Card:t.card=s.Card.toDomain(e.card);break;case r.CipherType.Identity:t.identity=c.Identity.toDomain(e.identity)}return t},e.prototype.build=function(e){var t,n;switch(this.organizationId=e.organizationId,this.folderId=e.folderId,this.type=e.type,e instanceof i.CipherView?(this.name=e.name,this.notes=e.notes):(this.name=null===(t=e.name)||void 0===t?void 0:t.encryptedString,this.notes=null===(n=e.notes)||void 0===n?void 0:n.encryptedString),this.favorite=e.favorite,null!=e.fields&&(i.CipherView,this.fields=e.fields.map(function(e){return new l.Field(e)})),e.type){case r.CipherType.Login:this.login=new p.Login(e.login);break;case r.CipherType.SecureNote:this.secureNote=new u.SecureNote(e.secureNote);break;case r.CipherType.Card:this.card=new s.Card(e.card);break;case r.CipherType.Identity:this.identity=new c.Identity(e.identity)}},e}();t.Cipher=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(89),i=n(282),a=n(103),o=function(){function e(e){var t,n,i,a,o,s;null!=e&&(e instanceof r.CardView?(this.cardholderName=e.cardholderName,this.brand=e.brand,this.number=e.number,this.expMonth=e.expMonth,this.expYear=e.expYear,this.code=e.code):(this.cardholderName=null===(t=e.cardholderName)||void 0===t?void 0:t.encryptedString,this.brand=null===(n=e.brand)||void 0===n?void 0:n.encryptedString,this.number=null===(i=e.number)||void 0===i?void 0:i.encryptedString,this.expMonth=null===(a=e.expMonth)||void 0===a?void 0:a.encryptedString,this.expYear=null===(o=e.expYear)||void 0===o?void 0:o.encryptedString,this.code=null===(s=e.code)||void 0===s?void 0:s.encryptedString))}return e.template=function(){var t=new e;return t.cardholderName="John Doe",t.brand="visa",t.number="4242424242424242",t.expMonth="04",t.expYear="2023",t.code="123",t},e.toView=function(e,t){return void 0===t&&(t=new r.CardView),t.cardholderName=e.cardholderName,t.brand=e.brand,t.number=e.number,t.expMonth=e.expMonth,t.expYear=e.expYear,t.code=e.code,t},e.toDomain=function(e,t){return void 0===t&&(t=new i.Card),t.cardholderName=null!=e.cardholderName?new a.CipherString(e.cardholderName):null,t.brand=null!=e.brand?new a.CipherString(e.brand):null,t.number=null!=e.number?new a.CipherString(e.number):null,t.expMonth=null!=e.expMonth?new a.CipherString(e.expMonth):null,t.expYear=null!=e.expYear?new a.CipherString(e.expYear):null,t.code=null!=e.code?new a.CipherString(e.code):null,t},e}();t.Card=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(128),i=n(211),a=n(103),o=n(283),s=function(){function e(e){var t,n;null!=e&&(e instanceof i.FieldView?(this.name=e.name,this.value=e.value):(this.name=null===(t=e.name)||void 0===t?void 0:t.encryptedString,this.value=null===(n=e.value)||void 0===n?void 0:n.encryptedString),this.type=e.type)}return e.template=function(){var t=new e;return t.name="Field name",t.value="Some value",t.type=r.FieldType.Text,t},e.toView=function(e,t){return void 0===t&&(t=new i.FieldView),t.type=e.type,t.value=e.value,t.name=e.name,t},e.toDomain=function(e,t){return void 0===t&&(t=new o.Field),t.type=e.type,t.value=null!=e.value?new a.CipherString(e.value):null,t.name=null!=e.name?new a.CipherString(e.name):null,t},e}();t.Field=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(145),i=n(103),a=n(284),o=function(){function e(e){var t,n,i,a,o,s,l,c,p,u,d,m,h,f,v,y,g,x;null!=e&&(e instanceof r.IdentityView?(this.title=e.title,this.firstName=e.firstName,this.middleName=e.middleName,this.lastName=e.lastName,this.address1=e.address1,this.address2=e.address2,this.address3=e.address3,this.city=e.city,this.state=e.state,this.postalCode=e.postalCode,this.country=e.country,this.company=e.company,this.email=e.email,this.phone=e.phone,this.ssn=e.ssn,this.username=e.username,this.passportNumber=e.passportNumber,this.licenseNumber=e.licenseNumber):(this.title=null===(t=e.title)||void 0===t?void 0:t.encryptedString,this.firstName=null===(n=e.firstName)||void 0===n?void 0:n.encryptedString,this.middleName=null===(i=e.middleName)||void 0===i?void 0:i.encryptedString,this.lastName=null===(a=e.lastName)||void 0===a?void 0:a.encryptedString,this.address1=null===(o=e.address1)||void 0===o?void 0:o.encryptedString,this.address2=null===(s=e.address2)||void 0===s?void 0:s.encryptedString,this.address3=null===(l=e.address3)||void 0===l?void 0:l.encryptedString,this.city=null===(c=e.city)||void 0===c?void 0:c.encryptedString,this.state=null===(p=e.state)||void 0===p?void 0:p.encryptedString,this.postalCode=null===(u=e.postalCode)||void 0===u?void 0:u.encryptedString,this.country=null===(d=e.country)||void 0===d?void 0:d.encryptedString,this.company=null===(m=e.company)||void 0===m?void 0:m.encryptedString,this.email=null===(h=e.email)||void 0===h?void 0:h.encryptedString,this.phone=null===(f=e.phone)||void 0===f?void 0:f.encryptedString,this.ssn=null===(v=e.ssn)||void 0===v?void 0:v.encryptedString,this.username=null===(y=e.username)||void 0===y?void 0:y.encryptedString,this.passportNumber=null===(g=e.passportNumber)||void 0===g?void 0:g.encryptedString,this.licenseNumber=null===(x=e.licenseNumber)||void 0===x?void 0:x.encryptedString))}return e.template=function(){var t=new e;return t.title="Mr",t.firstName="John",t.middleName="William",t.lastName="Doe",t.address1="123 Any St",t.address2="Apt #123",t.address3=null,t.city="New York",t.state="NY",t.postalCode="10001",t.country="US",t.company="Acme Inc.",t.email="john@company.com",t.phone="5555551234",t.ssn="000-123-4567",t.username="jdoe",t.passportNumber="US-123456789",t.licenseNumber="D123-12-123-12333",t},e.toView=function(e,t){return void 0===t&&(t=new r.IdentityView),t.title=e.title,t.firstName=e.firstName,t.middleName=e.middleName,t.lastName=e.lastName,t.address1=e.address1,t.address2=e.address2,t.address3=e.address3,t.city=e.city,t.state=e.state,t.postalCode=e.postalCode,t.country=e.country,t.company=e.company,t.email=e.email,t.phone=e.phone,t.ssn=e.ssn,t.username=e.username,t.passportNumber=e.passportNumber,t.licenseNumber=e.licenseNumber,t},e.toDomain=function(e,t){return void 0===t&&(t=new a.Identity),t.title=null!=e.title?new i.CipherString(e.title):null,t.firstName=null!=e.firstName?new i.CipherString(e.firstName):null,t.middleName=null!=e.middleName?new i.CipherString(e.middleName):null,t.lastName=null!=e.lastName?new i.CipherString(e.lastName):null,t.address1=null!=e.address1?new i.CipherString(e.address1):null,t.address2=null!=e.address2?new i.CipherString(e.address2):null,t.address3=null!=e.address3?new i.CipherString(e.address3):null,t.city=null!=e.city?new i.CipherString(e.city):null,t.state=null!=e.state?new i.CipherString(e.state):null,t.postalCode=null!=e.postalCode?new i.CipherString(e.postalCode):null,t.country=null!=e.country?new i.CipherString(e.country):null,t.company=null!=e.company?new i.CipherString(e.company):null,t.email=null!=e.email?new i.CipherString(e.email):null,t.phone=null!=e.phone?new i.CipherString(e.phone):null,t.ssn=null!=e.ssn?new i.CipherString(e.ssn):null,t.username=null!=e.username?new i.CipherString(e.username):null,t.passportNumber=null!=e.passportNumber?new i.CipherString(e.passportNumber):null,t.licenseNumber=null!=e.licenseNumber?new i.CipherString(e.licenseNumber):null,t},e}();t.Identity=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(970),i=n(161),a=n(103),o=n(285),s=function(){function e(e){var t,n,a;null!=e&&(null!=e.uris&&(i.LoginView,this.uris=e.uris.map(function(e){return new r.LoginUri(e)})),e instanceof i.LoginView?(this.username=e.username,this.password=e.password,this.totp=e.totp):(this.username=null===(t=e.username)||void 0===t?void 0:t.encryptedString,this.password=null===(n=e.password)||void 0===n?void 0:n.encryptedString,this.totp=null===(a=e.totp)||void 0===a?void 0:a.encryptedString))}return e.template=function(){var t=new e;return t.uris=[],t.username="jdoe",t.password="myp@ssword123",t.totp="JBSWY3DPEHPK3PXP",t},e.toView=function(e,t){return void 0===t&&(t=new i.LoginView),null!=e.uris&&(t.uris=e.uris.map(function(e){return r.LoginUri.toView(e)})),t.username=e.username,t.password=e.password,t.totp=e.totp,t},e.toDomain=function(e,t){return void 0===t&&(t=new o.Login),null!=e.uris&&(t.uris=e.uris.map(function(e){return r.LoginUri.toDomain(e)})),t.username=null!=e.username?new a.CipherString(e.username):null,t.password=null!=e.password?new a.CipherString(e.password):null,t.totp=null!=e.totp?new a.CipherString(e.totp):null,t},e}();t.Login=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(257),i=n(103),a=n(286),o=function(){function e(e){var t;this.match=null,null!=e&&(e instanceof r.LoginUriView?this.uri=e.uri:this.uri=null===(t=e.uri)||void 0===t?void 0:t.encryptedString,this.match=e.match)}return e.template=function(){var t=new e;return t.uri="https://google.com",t.match=null,t},e.toView=function(e,t){return void 0===t&&(t=new r.LoginUriView),t.uri=e.uri,t.match=e.match,t},e.toDomain=function(e,t){return void 0===t&&(t=new a.LoginUri),t.uri=null!=e.uri?new i.CipherString(e.uri):null,t.match=e.match,t},e}();t.LoginUri=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(113),i=n(94),a=n(288),o=function(){function e(e){null!=e&&(this.type=e.type)}return e.template=function(){var t=new e;return t.type=r.SecureNoteType.Generic,t},e.toView=function(e,t){return void 0===t&&(t=new i.SecureNoteView),t.type=e.type,t},e.toDomain=function(e,t){return void 0===t&&(t=new a.SecureNote),t.type=e.type,t},e}();t.SecureNote=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(158),i=n(103),a=n(141),o=function(){function e(){}return e.template=function(){var t=new e;return t.organizationId="00000000-0000-0000-0000-000000000000",t.name="Collection name",t.externalId=null,t},e.toView=function(e,t){return void 0===t&&(t=new r.CollectionView),t.name=e.name,t.externalId=e.externalId,null==t.organizationId&&(t.organizationId=e.organizationId),t},e.toDomain=function(e,t){return void 0===t&&(t=new a.Collection),t.name=null!=e.name?new i.CipherString(e.name):null,t.externalId=e.externalId,null==t.organizationId&&(t.organizationId=e.organizationId),t},e.prototype.build=function(e){var t;this.organizationId=e.organizationId,e instanceof r.CollectionView?this.name=e.name:this.name=null===(t=e.name)||void 0===t?void 0:t.encryptedString,this.externalId=e.externalId},e}();t.Collection=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(129),i=n(103),a=n(509),o=function(){function e(){}return e.template=function(){var t=new e;return t.name="Folder name",t},e.toView=function(e,t){return void 0===t&&(t=new r.FolderView),t.name=e.name,t},e.toDomain=function(e,t){return void 0===t&&(t=new a.Folder),t.name=null!=e.name?new i.CipherString(e.name):null,t},e.prototype.build=function(e){var t;e instanceof r.FolderView?this.name=e.name:this.name=null===(t=e.name)||void 0===t?void 0:t.encryptedString},e}();t.Folder=o},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&(a=Math.floor(r.ciphers.length/2),o=r.ciphers.length-1,this.badData(r.ciphers[0])&&this.badData(r.ciphers[a])&&this.badData(r.ciphers[o])))return[2,new Error(this.i18nService.t("importFormatError"))];i.label=2;case 2:return i.trys.push([2,4,,5]),[4,this.postImport(r,n)];case 3:return i.sent(),[3,5];case 4:return s=i.sent(),l=new m.ErrorResponse(s,400),[2,this.handleServerError(l,r)];case 5:return[2,null];case 6:return[2,new Error(this.i18nService.t("importFormatError"))]}})})},e.prototype.getImporter=function(e,t){void 0===t&&(t=null);var n=this.getImporterInstance(e);return null==n?null:(n.organizationId=t,n)},e.prototype.getImporterInstance=function(e){if(null==e||""===e)return null;switch(e){case"bitwardencsv":return new g.BitwardenCsvImporter;case"bitwardenjson":return new x.BitwardenJsonImporter;case"lastpasscsv":case"passboltcsv":return new R.LastPassCsvImporter;case"keepassxcsv":return new V.KeePassXCsvImporter;case"aviracsv":return new y.AviraCsvImporter;case"blurcsv":return new S.BlurCsvImporter;case"safeincloudxml":return new ne.SafeInCloudXmlImporter;case"padlockcsv":return new q.PadlockCsvImporter;case"keepass2xml":return new D.KeePass2XmlImporter;case"chromecsv":case"operacsv":case"vivaldicsv":return new C.ChromeCsvImporter;case"firefoxcsv":return new O.FirefoxCsvImporter;case"upmcsv":return new le.UpmCsvImporter;case"saferpasscsv":return new re.SaferPassCsvImporter;case"meldiumcsv":return new U.MeldiumCsvImporter;case"1password1pif":return new L.OnePassword1PifImporter;case"1passwordwincsv":return new K.OnePasswordWinCsvImporter;case"1passwordmaccsv":return new G.OnePasswordMacCsvImporter;case"keepercsv":return new j.KeeperCsvImporter;case"passworddragonxml":return new J.PasswordDragonXmlImporter;case"enpasscsv":return new _.EnpassCsvImporter;case"enpassjson":return new A.EnpassJsonImporter;case"pwsafexml":return new X.PasswordSafeXmlImporter;case"dashlanejson":return new P.DashlaneJsonImporter;case"msecurecsv":return new N.MSecureCsvImporter;case"stickypasswordxml":return new oe.StickyPasswordXmlImporter;case"truekeycsv":return new se.TrueKeyCsvImporter;case"clipperzhtml":return new I.ClipperzHtmlImporter;case"roboformcsv":return new te.RoboFormCsvImporter;case"ascendocsv":return new h.AscendoCsvImporter;case"passwordbossjson":return new Q.PasswordBossJsonImporter;case"zohovaultcsv":return new pe.ZohoVaultCsvImporter;case"splashidcsv":return new ae.SplashIdCsvImporter;case"passkeepcsv":return new W.PassKeepCsvImporter;case"gnomejson":return new M.GnomeJsonImporter;case"passwordagentcsv":return new Y.PasswordAgentCsvImporter;case"passpackcsv":return new $.PasspackCsvImporter;case"passmanjson":return new H.PassmanJsonImporter;case"avastcsv":return new f.AvastCsvImporter;case"avastjson":return new v.AvastJsonImporter;case"fsecurefsk":return new T.FSecureFskImporter;case"kasperskytxt":return new B.KasperskyTxtImporter;case"remembearcsv":return new ee.RememBearCsvImporter;case"passwordwallettxt":return new Z.PasswordWalletTxtImporter;case"mykicsv":return new z.MykiCsvImporter;case"securesafecsv":return new ie.SecureSafeCsvImporter;case"logmeoncecsv":return new F.LogMeOnceCsvImporter;case"blackberrycsv":return new b.BlackBerryCsvImporter;case"buttercupcsv":return new w.ButtercupCsvImporter;case"codebookcsv":return new E.CodebookCsvImporter;case"encryptrcsv":return new k.EncryptrCsvImporter;case"yoticsv":return new ce.YotiCsvImporter;default:return null}},e.prototype.postImport=function(e,t){return void 0===t&&(t=null),r(this,void 0,void 0,function(){var n,r,a,o,m;return i(this,function(i){switch(i.label){case 0:if(null!=t)return[3,10];n=new p.ImportCiphersRequest,o=0,i.label=1;case 1:return o0&&(n+="\n\n"),"Folder"!==o&&"Collection"!==o&&(n+="["+(c+1)+"] "),n+="["+o+'] "'+i.name+'": '+l}),new Error(n)},e}();t.ImportService=ue},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){this.ciphers=[],this.folders=[],this.folderRelationships=[]}}();t.ImportCiphersRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){this.ciphers=[],this.collections=[],this.collectionRelationships=[]}}();t.ImportOrganizationCiphersRequest=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e,t){this.key=e,this.value=t}}();t.KvpRequest=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!1);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){if(!(e.length<2)){var r=t.initLoginCipher();if(r.notes=t.getValueOrDefault(e[e.length-1]),r.name=t.getValueOrDefault(e[0],"--"),e.length>2&&e.length%2==0)for(var i=0;i-1?r.login.password=t.getValueOrDefault(a):null==r.login.username&&t.usernameFieldNames.indexOf(s)>-1?r.login.username=t.getValueOrDefault(a):(null==r.login.uris||0===r.login.uris.length)&&t.uriFieldNames.indexOf(s)>-1?r.login.uris=t.makeUriArray(a):t.processKvp(r,o,a)}}t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)}}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.AscendoCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.name),r.login.uris=t.makeUriArray(e.web),r.login.password=t.getValueOrDefault(e.password),r.login.username=t.getValueOrDefault(e.login),t.cleanupCipher(r),n.ciphers.push(r)}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.AvastCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=n(40),l=n(113),c=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=JSON.parse(e);return null==r?(n.success=!1,Promise.resolve(n)):(null!=r.logins&&r.logins.forEach(function(e){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.custName),r.notes=t.getValueOrDefault(e.note),r.login.uris=t.makeUriArray(e.url),r.login.password=t.getValueOrDefault(e.pwd),r.login.username=t.getValueOrDefault(e.loginName),t.cleanupCipher(r),n.ciphers.push(r)}),null!=r.notes&&r.notes.forEach(function(e){var r=t.initLoginCipher();r.type=s.CipherType.SecureNote,r.secureNote.type=l.SecureNoteType.Generic,r.name=t.getValueOrDefault(e.label),r.notes=t.getValueOrDefault(e.text),t.cleanupCipher(r),n.ciphers.push(r)}),null!=r.cards&&r.cards.forEach(function(e){var r=t.initLoginCipher();r.type=s.CipherType.Card,r.name=t.getValueOrDefault(e.custName),r.notes=t.getValueOrDefault(e.note),r.card.cardholderName=t.getValueOrDefault(e.holderName),r.card.number=t.getValueOrDefault(e.cardNumber),r.card.code=t.getValueOrDefault(e.cvv),r.card.brand=t.getCardBrand(r.card.number),null!=e.expirationDate&&(null!=e.expirationDate.month&&(r.card.expMonth=e.expirationDate.month+""),null!=e.expirationDate.year&&(r.card.expYear=e.expirationDate.year+"")),t.cleanupCipher(r),n.ciphers.push(r)}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.AvastJsonImporter=c},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.name,t.getValueOrDefault(t.nameFromUrl(e.website),"--")),r.login.uris=t.makeUriArray(e.website),r.login.password=t.getValueOrDefault(e.password),t.isNullOrWhitespace(e.username)&&!t.isNullOrWhitespace(e.secondary_username)?r.login.username=e.secondary_username:(r.login.username=t.getValueOrDefault(e.username),r.notes=t.getValueOrDefault(e.secondary_username)),t.cleanupCipher(r),n.ciphers.push(r)}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.AviraCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=n(144),l=n(158),c=n(211),p=n(161),u=n(94),d=n(40),m=n(128),h=n(113),f=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){t.organization&&!t.isNullOrWhitespace(e.collections)?e.collections.split(",").forEach(function(e){for(var t=!0,r=n.collections.length,i=0;io+2&&(f.value=i[a].substr(o+2)),r.fields.push(f)}}switch(null!=e.type?e.type.toLowerCase():null){case"note":r.type=d.CipherType.SecureNote,r.secureNote=new u.SecureNoteView,r.secureNote.type=h.SecureNoteType.Generic;break;default:r.type=d.CipherType.Login,r.login=new p.LoginView,r.login.totp=t.getValueOrDefault(e.login_totp||e.totp),r.login.username=t.getValueOrDefault(e.login_username||e.username),r.login.password=t.getValueOrDefault(e.login_password||e.password);var v=t.parseSingleRowCsv(e.login_uri||e.uri);r.login.uris=t.makeUriArray(v)}n.ciphers.push(r)}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.BitwardenCsvImporter=f},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},o=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]5&&(f.passwordHistory=f.passwordHistory.slice(0,5)),!this.organization&&null!=h.folderId&&e.has(h.folderId)?this.result.folderRelationships.push([this.result.ciphers.length,e.get(h.folderId)]):this.organization&&null!=h.collectionIds&&h.collectionIds.forEach(function(t){e.has(t)&&y.result.collectionRelationships.push([y.result.ciphers.length,e.get(t)])}),[4,f.decrypt()]):[3,13];case 11:v=o.sent(),this.cleanupCipher(v),this.result.ciphers.push(v),o.label=12;case 12:return d++,[3,10];case 13:return[2]}})})},t.prototype.parseDecrypted=function(){var e=this,t=new Map;this.organization&&null!=this.results.collections?this.results.collections.forEach(function(n){var r=p.CollectionWithId.toView(n);null!=r&&(r.id=null,r.organizationId=null,t.set(n.id,e.result.collections.length),e.result.collections.push(r))}):this.organization||null==this.results.folders||this.results.folders.forEach(function(n){var r=u.FolderWithId.toView(n);null!=r&&(r.id=null,t.set(n.id,e.result.folders.length),e.result.folders.push(r))}),this.results.items.forEach(function(n){var r=c.CipherWithIds.toView(n);r.id=null,r.folderId=null,r.organizationId=null,r.collectionIds=null,null!=r.passwordHistory&&r.passwordHistory.length>5&&(r.passwordHistory=r.passwordHistory.slice(0,5)),!e.organization&&null!=n.folderId&&t.has(n.folderId)?e.result.folderRelationships.push([e.result.ciphers.length,t.get(n.folderId)]):e.organization&&null!=n.collectionIds&&n.collectionIds.forEach(function(n){t.has(n)&&e.result.collectionRelationships.push([e.result.ciphers.length,t.get(n)])}),e.cleanupCipher(r),e.result.ciphers.push(r)})},t}(s.BaseImporter);t.BitwardenJsonImporter=d},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){if("list"!==e.grouping){var r=t.initLoginCipher();r.favorite="1"===e.fav,r.name=t.getValueOrDefault(e.name),r.notes=t.getValueOrDefault(e.extra),"note"!==e.grouping&&(r.login.uris=t.makeUriArray(e.url),r.login.password=t.getValueOrDefault(e.password),r.login.username=t.getValueOrDefault(e.username)),t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)}}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.BlackBerryCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){"null"===e.label&&(e.label=null);var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.label,t.getValueOrDefault(t.nameFromUrl(e.domain),"--")),r.login.uris=t.makeUriArray(e.domain),r.login.password=t.getValueOrDefault(e.password),t.isNullOrWhitespace(e.email)&&!t.isNullOrWhitespace(e.username)?r.login.username=e.username:(r.login.username=t.getValueOrDefault(e.email),r.notes=t.getValueOrDefault(e.username)),t.cleanupCipher(r),n.ciphers.push(r)}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.BlurCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=["!group_id","!group_name","title","username","password","URL","id"],l=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){t.processFolder(n,t.getValueOrDefault(e["!group_name"]));var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.title,"--"),r.login.username=t.getValueOrDefault(e.username),r.login.password=t.getValueOrDefault(e.password),r.login.uris=t.makeUriArray(e.URL);var i=!1;for(var a in e)e.hasOwnProperty(a)&&(i||-1!==s.indexOf(a)||(i=!0),i&&t.processKvp(r,a,e[a]));t.cleanupCipher(r),n.ciphers.push(r)}),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.ButtercupCsvImporter=l},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.name,"--"),r.login.username=t.getValueOrDefault(e.username),r.login.password=t.getValueOrDefault(e.password),r.login.uris=t.makeUriArray(e.url),t.cleanupCipher(r),n.ciphers.push(r)}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.ChromeCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseXml(e);if(null==r)return n.success=!1,Promise.resolve(n);var i=r.querySelector("textarea");return null==i||this.isNullOrWhitespace(i.textContent)?(n.errorMessage="Missing textarea.",n.success=!1,Promise.resolve(n)):(JSON.parse(i.textContent).forEach(function(e){var r=t.initLoginCipher();if(t.isNullOrWhitespace(e.label)||(r.name=e.label.split(" ")[0]),null==e.data||t.isNullOrWhitespace(e.data.notes)||(r.notes=e.data.notes.split("\\n").join("\n")),null!=e.currentVersion&&null!=e.currentVersion.fields)for(var i in e.currentVersion.fields)if(e.currentVersion.fields.hasOwnProperty(i)){var a=e.currentVersion.fields[i];switch(null!=a.actionType?a.actionType.toLowerCase():null){case"password":r.login.password=t.getValueOrDefault(a.value);break;case"email":case"username":case"user":case"name":r.login.username=t.getValueOrDefault(a.value);break;case"url":r.login.uris=t.makeUriArray(a.value);break;default:var o=null!=a.label?a.label.toLowerCase():null;null==r.login.password&&t.passwordFieldNames.indexOf(o)>-1?r.login.password=t.getValueOrDefault(a.value):null==r.login.username&&t.usernameFieldNames.indexOf(o)>-1?r.login.username=t.getValueOrDefault(a.value):(null==r.login.uris||0===r.login.uris.length)&&t.uriFieldNames.indexOf(o)>-1?r.login.uris=t.makeUriArray(a.value):t.processKvp(r,a.label,a.value)}}t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.ClipperzHtmlImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){t.processFolder(n,t.getValueOrDefault(e.Category));var r=t.initLoginCipher();r.favorite="True"===t.getValueOrDefault(e.Favorite),r.name=t.getValueOrDefault(e.Entry,"--"),r.notes=t.getValueOrDefault(e.Note),r.login.username=t.getValueOrDefault(e.Username,e.Email),r.login.password=t.getValueOrDefault(e.Password),r.login.totp=t.getValueOrDefault(e.TOTP),r.login.uris=t.makeUriArray(e.Website),t.isNullOrWhitespace(e.Username)||t.processKvp(r,"Email",e.Email),t.processKvp(r,"Phone",e.Phone),t.processKvp(r,"PIN",e.PIN),t.processKvp(r,"Account",e.Account),t.processKvp(r,"Date",e.Date),t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)}),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.CodebookCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=n(89),l=n(144),c=n(145),p=n(94),u=n(40),d=n(113),m=new Set(["ADDRESS","AUTHENTIFIANT","BANKSTATEMENT","IDCARD","IDENTITY","PAYMENTMEANS_CREDITCARD","PAYMENTMEAN_PAYPAL","EMAIL"]),h=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){this.result=new o.ImportResult;var t=JSON.parse(e);if(null==t||0===t.length)return this.result.success=!1,Promise.resolve(this.result);for(var n in null!=t.ADDRESS&&this.processAddress(t.ADDRESS),null!=t.AUTHENTIFIANT&&this.processAuth(t.AUTHENTIFIANT),null!=t.BANKSTATEMENT&&this.processNote(t.BANKSTATEMENT,"BankAccountName"),null!=t.IDCARD&&this.processNote(t.IDCARD,"Fullname"),null!=t.PAYMENTMEANS_CREDITCARD&&this.processCard(t.PAYMENTMEANS_CREDITCARD),null!=t.IDENTITY&&this.processIdentity(t.IDENTITY),t)t.hasOwnProperty(n)&&!m.has(n)&&this.processNote(t[n],null,"Generic Note");return this.result.success=!0,Promise.resolve(this.result)},t.prototype.processAuth=function(e){var t=this;e.forEach(function(e){var n=t.initLoginCipher();n.name=t.getValueOrDefault(e.title),n.login.username=t.getValueOrDefault(e.login,t.getValueOrDefault(e.secondaryLogin)),t.isNullOrWhitespace(n.login.username)?n.login.username=t.getValueOrDefault(e.email):t.isNullOrWhitespace(e.email)||(n.notes="Email: "+e.email+"\n"),n.login.password=t.getValueOrDefault(e.password),n.login.uris=t.makeUriArray(e.domain),n.notes+=t.getValueOrDefault(e.note,""),t.convertToNoteIfNeeded(n),t.cleanupCipher(n),t.result.ciphers.push(n)})},t.prototype.processIdentity=function(e){var t=this;e.forEach(function(e){var n=new l.CipherView;n.identity=new c.IdentityView,n.type=u.CipherType.Identity,n.name=t.getValueOrDefault(e.fullName,"");var r=n.name.split(" ");r.length>0&&(n.identity.firstName=t.getValueOrDefault(r[0])),2===r.length?n.identity.lastName=t.getValueOrDefault(r[1]):3===r.length&&(n.identity.middleName=t.getValueOrDefault(r[1]),n.identity.lastName=t.getValueOrDefault(r[2])),n.identity.username=t.getValueOrDefault(e.pseudo),t.cleanupCipher(n),t.result.ciphers.push(n)})},t.prototype.processAddress=function(e){var t=this;e.forEach(function(e){var n=new l.CipherView;n.identity=new c.IdentityView,n.type=u.CipherType.Identity,n.name=t.getValueOrDefault(e.addressName),n.identity.address1=t.getValueOrDefault(e.addressFull),n.identity.city=t.getValueOrDefault(e.city),n.identity.state=t.getValueOrDefault(e.state),n.identity.postalCode=t.getValueOrDefault(e.zipcode),n.identity.country=t.getValueOrDefault(e.country),null!=n.identity.country&&(n.identity.country=n.identity.country.toUpperCase()),t.cleanupCipher(n),t.result.ciphers.push(n)})},t.prototype.processCard=function(e){var t=this;e.forEach(function(e){var n=new l.CipherView;n.card=new s.CardView,n.type=u.CipherType.Card,n.name=t.getValueOrDefault(e.bank),n.card.number=t.getValueOrDefault(e.cardNumber),n.card.brand=t.getCardBrand(n.card.number),n.card.cardholderName=t.getValueOrDefault(e.owner),t.isNullOrWhitespace(n.card.brand)||(t.isNullOrWhitespace(n.name)?n.name=n.card.brand:n.name+=" - "+n.card.brand),t.cleanupCipher(n),t.result.ciphers.push(n)})},t.prototype.processNote=function(e,t,n){var r=this;void 0===n&&(n=null),e.forEach(function(e){var i=new l.CipherView;for(var a in i.secureNote=new p.SecureNoteView,i.type=u.CipherType.SecureNote,i.secureNote.type=d.SecureNoteType.Generic,i.name=null!=n?n:r.getValueOrDefault(e[t]),e)e.hasOwnProperty(a)&&a!==t&&r.processKvp(i,a,e[a].toString());r.cleanupCipher(i),r.result.ciphers.push(i)})},t}(a.BaseImporter);t.DashlaneJsonImporter=h},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=n(89),l=n(40),c=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.Label,"--"),r.notes=t.getValueOrDefault(e.Notes);var i=t.getValueOrDefault(e.Text);t.isNullOrWhitespace(i)||(t.isNullOrWhitespace(r.notes)?r.notes=i:r.notes+="\n\n"+i);var a=e["Entry Type"];if("Password"===a)r.login.username=t.getValueOrDefault(e.Username),r.login.password=t.getValueOrDefault(e.Password),r.login.uris=t.makeUriArray(e["Site URL"]);else if("Credit Card"===a){r.type=l.CipherType.Card,r.card=new s.CardView,r.card.cardholderName=t.getValueOrDefault(e["Name on card"]),r.card.number=t.getValueOrDefault(e["Card Number"]),r.card.brand=t.getCardBrand(r.card.number),r.card.code=t.getValueOrDefault(e.CVV);var o=t.getValueOrDefault(e.Expiry);if(!t.isNullOrWhitespace(o)){var c=o.split("/");c.length>1&&(r.card.expMonth=parseInt(c[0],null).toString(),r.card.expYear=(2e3+parseInt(c[1],null)).toString())}}t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.EncryptrCsvImporter=c},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=n(40),l=n(113),c=n(89),p=n(94),u=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!1);if(null==r)return n.success=!1,Promise.resolve(n);var i=!0;return r.forEach(function(e){if(e.length<2||i&&("Title"===e[0]||"title"===e[0]))i=!1;else{var r=t.initLoginCipher();if(r.notes=t.getValueOrDefault(e[e.length-1]),r.name=t.getValueOrDefault(e[0],"--"),2!==e.length&&(t.containsField(e,"username")||t.containsField(e,"password")||t.containsField(e,"email")||t.containsField(e,"url"))||(r.type=s.CipherType.SecureNote,r.secureNote=new p.SecureNoteView,r.secureNote.type=l.SecureNoteType.Generic),t.containsField(e,"cardholder")&&t.containsField(e,"number")&&t.containsField(e,"expiry date")&&(r.type=s.CipherType.Card,r.card=new c.CardView),e.length>2&&e.length%2==0)for(var a=0;a0},t}(a.BaseImporter);t.EnpassCsvImporter=u},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=n(89),l=n(129),c=n(40),p=n(128),u=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=JSON.parse(e);if(null==r||null==r.items||0===r.items.length)return n.success=!1,Promise.resolve(n);var i=new Map,a=new Map,s=this.buildFolderTree(r.folders);return this.flattenFolderTree(null,s,i),i.forEach(function(e,t){a.set(t,n.folders.length);var r=new l.FolderView;r.name=e,n.folders.push(r)}),r.items.forEach(function(e){null!=e.folders&&e.folders.length>0&&a.has(e.folders[0])&&n.folderRelationships.push([n.ciphers.length,a.get(e.folders[0])]);var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.title),r.favorite=e.favorite>0,null!=e.template_type&&null!=e.fields&&e.fields.length>0&&(0===e.template_type.indexOf("login.")||0===e.template_type.indexOf("password.")?t.processLogin(r,e.fields):0===e.template_type.indexOf("creditcard.")?t.processCard(r,e.fields):e.template_type.indexOf("identity.")<0&&e.fields.some(function(e){return"password"===e.type&&!t.isNullOrWhitespace(e.value)})?t.processLogin(r,e.fields):t.processNote(r,e.fields)),r.notes+="\n"+t.getValueOrDefault(e.note,""),t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)}),n.success=!0,Promise.resolve(n)},t.prototype.processLogin=function(e,t){var n=this,r=[];t.forEach(function(t){n.isNullOrWhitespace(t.value)||"section"===t.type||("username"!==t.type&&"email"!==t.type||!n.isNullOrWhitespace(e.login.username)?"password"===t.type&&n.isNullOrWhitespace(e.login.password)?e.login.password=t.value:"totp"===t.type&&n.isNullOrWhitespace(e.login.totp)?e.login.totp=t.value:"url"===t.type?r.push(t.value):n.processKvp(e,t.label,t.value,1===t.sensitive?p.FieldType.Hidden:p.FieldType.Text):e.login.username=t.value)}),e.login.uris=this.makeUriArray(r)},t.prototype.processCard=function(e,t){var n=this;e.card=new s.CardView,e.type=c.CipherType.Card,t.forEach(function(t){n.isNullOrWhitespace(t.value)||"section"===t.type||"ccType"===t.type||("ccName"===t.type&&n.isNullOrWhitespace(e.card.cardholderName)?e.card.cardholderName=t.value:"ccNumber"===t.type&&n.isNullOrWhitespace(e.card.number)?(e.card.number=t.value,e.card.brand=n.getCardBrand(e.card.number)):"ccCvc"===t.type&&n.isNullOrWhitespace(e.card.code)?e.card.code=t.value:"ccExpiry"===t.type&&n.isNullOrWhitespace(e.card.expYear)&&n.setCardExpiration(e,t.value)||n.processKvp(e,t.label,t.value,1===t.sensitive?p.FieldType.Hidden:p.FieldType.Text))})},t.prototype.processNote=function(e,t){var n=this;t.forEach(function(t){n.isNullOrWhitespace(t.value)||"section"===t.type||n.processKvp(e,t.label,t.value,1===t.sensitive?p.FieldType.Hidden:p.FieldType.Text)})},t.prototype.buildFolderTree=function(e){if(null==e)return[];var t=[],n=new Map([]);return e.forEach(function(e){n.set(e.uuid,e),e.children=[]}),e.forEach(function(e){null!=e.parent_uuid&&""!==e.parent_uuid&&n.has(e.parent_uuid)?n.get(e.parent_uuid).children.push(e):t.push(e)}),t},t.prototype.flattenFolderTree=function(e,t,n){var r=this;null!=t&&t.forEach(function(t){if(null!=t.title&&""!==t.title.trim()){var i=t.title.trim();null!=e&&""!==e.trim()&&(i=e+"/"+i),n.set(t.uuid,i),null!=t.children&&0!==t.children.length&&r.flattenFolderTree(i,t.children,n)}})},t}(a.BaseImporter);t.EnpassJsonImporter=u},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){var r=t.initLoginCipher(),i=t.getValueOrDefault(e.url,t.getValueOrDefault(e.hostname));r.name=t.getValueOrDefault(t.nameFromUrl(i),"--"),r.login.username=t.getValueOrDefault(e.username),r.login.password=t.getValueOrDefault(e.password),r.login.uris=t.makeUriArray(i),t.cleanupCipher(r),n.ciphers.push(r)}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.FirefoxCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=n(89),l=n(40),c=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=new o.ImportResult,n=JSON.parse(e);if(null==n||null==n.data)return t.success=!1,Promise.resolve(t);for(var r in n.data)if(n.data.hasOwnProperty(r)){var i=n.data[r],a=this.initLoginCipher();if(a.name=this.getValueOrDefault(i.service),a.notes=this.getValueOrDefault(i.notes),"website"===i.style)a.login.username=this.getValueOrDefault(i.username),a.login.password=this.getValueOrDefault(i.password),a.login.uris=this.makeUriArray(i.url);else{if("creditcard"!==i.style)continue;a.type=l.CipherType.Card,a.card=new s.CardView,a.card.cardholderName=this.getValueOrDefault(i.username),a.card.number=this.getValueOrDefault(i.creditNumber),a.card.brand=this.getCardBrand(a.card.number),a.card.code=this.getValueOrDefault(i.creditCvv),this.isNullOrWhitespace(i.creditExpiry)||this.setCardExpiration(a,i.creditExpiry)||this.processKvp(a,"Expiration",i.creditExpiry),this.isNullOrWhitespace(i.password)||this.processKvp(a,"PIN",i.password)}this.convertToNoteIfNeeded(a),this.cleanupCipher(a),t.ciphers.push(a)}return t.success=!0,Promise.resolve(t)},t}(a.BaseImporter);t.FSecureFskImporter=c},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=JSON.parse(e);if(null==r||0===Object.keys(r).length)return n.success=!1,Promise.resolve(n);var i=function(e){if(!r.hasOwnProperty(e)||a.isNullOrWhitespace(e)||0===r[e].length)return"continue";r[e].forEach(function(r){if(!t.isNullOrWhitespace(r.display_name)&&0===r.display_name.indexOf("http")){t.processFolder(n,e);var i=t.initLoginCipher();if(i.name=r.display_name.replace("http://","").replace("https://",""),i.name.length>30&&(i.name=i.name.substring(0,30)),i.login.password=t.getValueOrDefault(r.secret),i.login.uris=t.makeUriArray(r.display_name),null!=r.attributes)for(var a in i.login.username=null!=r.attributes?t.getValueOrDefault(r.attributes.username_value):null,r.attributes)r.attributes.hasOwnProperty(a)&&"username_value"!==a&&"xdg:schema"!==a&&t.processKvp(i,a,r.attributes[a]);t.convertToNoteIfNeeded(i),t.cleanupCipher(i),n.ciphers.push(i)}})},a=this;for(var s in r)i(s);return this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n)},t}(a.BaseImporter);t.GnomeJsonImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t,n,r,i,a=this,s=new o.ImportResult,l=this.splitNewLine(e).join("\n");-1!==l.indexOf("Notes\n\n")&&((i=l.split("Notes\n\n")).length>1&&(l=i[0],t=i[1]));-1!==l.indexOf("Applications\n\n")&&((i=l.split("Applications\n\n")).length>1&&(l=i[0],n=i[1]));0===l.indexOf("Websites\n\n")&&((i=l.split("Websites\n\n")).length>1&&(l=i[0],r=i[1]));var c=this.parseDataCategory(t),p=this.parseDataCategory(n),u=this.parseDataCategory(r);return c.forEach(function(e){var t=a.initLoginCipher();t.name=a.getValueOrDefault(e.get("Name")),t.notes=a.getValueOrDefault(e.get("Text")),a.cleanupCipher(t),s.ciphers.push(t)}),u.concat(p).forEach(function(e){var t=a.initLoginCipher(),n=e.has("Website name")?"Website name":"Application";t.name=a.getValueOrDefault(e.get(n),""),a.isNullOrWhitespace(e.get("Login name"))||(a.isNullOrWhitespace(t.name)||(t.name+=": "),t.name+=e.get("Login name")),t.notes=a.getValueOrDefault(e.get("Comment")),e.has("Website URL")&&(t.login.uris=a.makeUriArray(e.get("Website URL"))),t.login.username=a.getValueOrDefault(e.get("Login")),t.login.password=a.getValueOrDefault(e.get("Password")),a.cleanupCipher(t),s.ciphers.push(t)}),s.success=!0,Promise.resolve(s)},t.prototype.parseDataCategory=function(e){if(this.isNullOrWhitespace(e)||-1===e.indexOf("\n---\n"))return[];var t=[];return e.split("\n---\n").forEach(function(e){if(-1!==e.indexOf("\n")){var n,r,i=new Map;e.split("\n").forEach(function(e){if(null==n){var t,a,o=e.indexOf(":");-1!==o&&(t=e.substring(0,o),e.length>o+1&&(a=e.substring(o+2)),null!=t&&i.set(t,a),"Comment"!==t&&"Text"!==t||(n=a,r=t))}else n+="\n"+e}),null!=n&&null!=r&&i.set(r,n),0!==i.size&&t.push(i)}}),t},t}(a.BaseImporter);t.KasperskyTxtImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(128),s=n(28),l=n(129),c=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.result=new s.ImportResult,t}return i(t,e),t.prototype.parse=function(e){var t=this.parseXml(e);if(null==t)return this.result.success=!1,Promise.resolve(this.result);var n=t.querySelector("KeePassFile > Root > Group");return null==n?(this.result.errorMessage="Missing `KeePassFile > Root > Group` node.",this.result.success=!1,Promise.resolve(this.result)):(this.traverse(n,!0,""),this.organization&&this.moveFoldersToCollections(this.result),this.result.success=!0,Promise.resolve(this.result))},t.prototype.traverse=function(e,t,n){var r=this,i=this.result.folders.length,a=n;if(!t){""!==a&&(a+="/");var s=this.querySelectorDirectChild(e,"Name");a+=null==s?"-":s.textContent;var c=new l.FolderView;c.name=a,this.result.folders.push(c)}this.querySelectorAllDirectChild(e,"Entry").forEach(function(e){var n=r.result.ciphers.length,a=r.initLoginCipher();r.querySelectorAllDirectChild(e,"String").forEach(function(e){var t=r.querySelectorDirectChild(e,"Value"),n=null!=t?t.textContent:null;if(!r.isNullOrWhitespace(n)){var i=r.querySelectorDirectChild(e,"Key"),s=null!=i?i.textContent:null;if("URL"===s)a.login.uris=r.makeUriArray(n);else if("UserName"===s)a.login.username=n;else if("Password"===s)a.login.password=n;else if("otp"===s)a.login.totp=n.replace("key=","");else if("Title"===s)a.name=n;else if("Notes"===s)a.notes+=n+"\n";else{var l=o.FieldType.Text,c=t.attributes;c.length>0&&null!=c.ProtectInMemory&&"True"===c.ProtectInMemory.value&&(l=o.FieldType.Hidden),r.processKvp(a,s,n,l)}}}),r.cleanupCipher(a),r.result.ciphers.push(a),t||r.result.folderRelationships.push([n,i])}),this.querySelectorAllDirectChild(e,"Group").forEach(function(e){r.traverse(e,!1,a)})},t}(a.BaseImporter);t.KeePass2XmlImporter=c},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){if(!t.isNullOrWhitespace(e.Title)){e.Group=!t.isNullOrWhitespace(e.Group)&&e.Group.startsWith("Root/")?e.Group.replace("Root/",""):e.Group;var r=t.isNullOrWhitespace(e.Group)?null:e.Group;t.processFolder(n,r);var i=t.initLoginCipher();i.notes=t.getValueOrDefault(e.Notes),i.name=t.getValueOrDefault(e.Title,"--"),i.login.username=t.getValueOrDefault(e.Username),i.login.password=t.getValueOrDefault(e.Password),i.login.uris=t.makeUriArray(e.URL),t.cleanupCipher(i),n.ciphers.push(i)}}),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.KeePassXCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!1);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){if(!(e.length<6)){t.processFolder(n,e[0]);var r=t.initLoginCipher();if(r.notes=t.getValueOrDefault(e[5])+"\n",r.name=t.getValueOrDefault(e[1],"--"),r.login.username=t.getValueOrDefault(e[2]),r.login.password=t.getValueOrDefault(e[3]),r.login.uris=t.makeUriArray(e[4]),e.length>7)for(var i=7;i-1){var n=e.ccexp.split("-");n.length>1&&(t.expYear=n[0],t.expMonth=n[1],2===t.expMonth.length&&"0"===t.expMonth[0]&&(t.expMonth=t.expMonth[1]))}return t},t.prototype.parseIdentity=function(e){var t=new p.IdentityView;return t.title=this.getValueOrDefault(e.title),t.firstName=this.getValueOrDefault(e.firstname),t.middleName=this.getValueOrDefault(e.middlename),t.lastName=this.getValueOrDefault(e.lastname),t.username=this.getValueOrDefault(e.username),t.company=this.getValueOrDefault(e.company),t.ssn=this.getValueOrDefault(e.ssn),t.address1=this.getValueOrDefault(e.address1),t.address2=this.getValueOrDefault(e.address2),t.address3=this.getValueOrDefault(e.address3),t.city=this.getValueOrDefault(e.city),t.state=this.getValueOrDefault(e.state),t.postalCode=this.getValueOrDefault(e.zip),t.country=this.getValueOrDefault(e.country),t.email=this.getValueOrDefault(e.email),t.phone=this.getValueOrDefault(e.phone),this.isNullOrWhitespace(t.title)||(t.title=t.title.charAt(0).toUpperCase()+t.title.slice(1)),t},t.prototype.parseSecureNote=function(e,t){var n=this.splitNewLine(e.extra),r=!1;if(n.length){var i=n[0].split(":");if(i.length>1&&"NoteType"===i[0]&&("Credit Card"===i[1]||"Address"===i[1])){if("Credit Card"===i[1]){var a=this.parseSecureNoteMapping(t,n,{Number:"number","Name on Card":"cardholderName","Security Code":"code","Expiration Date":"expMonth"});if(this.isNullOrWhitespace(a.expMonth)||","===a.expMonth)a.expMonth=void 0;else{var o=a.expMonth.split(","),s=o[0],l=o[1];if(this.isNullOrWhitespace(s))a.expMonth=void 0;else{var c=new Date(Date.parse(s.trim()+" 1, 2012")).getMonth()+1;isNaN(c)?a.expMonth=void 0:a.expMonth=c.toString()}this.isNullOrWhitespace(l)||(a.expYear=l)}t.type=m.CipherType.Card,t.card=a}else if("Address"===i[1]){a=this.parseSecureNoteMapping(t,n,{Title:"title","First Name":"firstName","Last Name":"lastName","Middle Name":"middleName",Company:"company","Address 1":"address1","Address 2":"address2","Address 3":"address3","City / Town":"city",State:"state","Zip / Postal Code":"postalCode",Country:"country","Email Address":"email",Username:"username"});t.type=m.CipherType.Identity,t.identity=a}r=!0}}r||(t.secureNote=new d.SecureNoteView,t.secureNote.type=h.SecureNoteType.Generic,t.notes=this.getValueOrDefault(e.extra))},t.prototype.parseSecureNoteMapping=function(e,t,n){var r=this,i={},a=!1;return t.forEach(function(t){var o=null,s=null;if(!a){if(r.isNullOrWhitespace(t))return;var l=t.indexOf(":");if(-1===l?o=t:(o=t.substring(0,l),t.length>l&&(s=t.substring(l+1))),r.isNullOrWhitespace(o)||r.isNullOrWhitespace(s)||"NoteType"===o)return}a?e.notes+="\n"+t:"Notes"===o?(r.isNullOrWhitespace(e.notes)?e.notes=s:e.notes+="\n"+s,a=!0):n.hasOwnProperty(o)?i[n[o]]=s:r.processKvp(e,o,s)}),i},t}(a.BaseImporter);t.LastPassCsvImporter=f},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!1);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){if(!(e.length<4)){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e[0],"--"),r.login.username=t.getValueOrDefault(e[2]),r.login.password=t.getValueOrDefault(e[3]),r.login.uris=t.makeUriArray(e[1]),t.cleanupCipher(r),n.ciphers.push(r)}}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.LogMeOnceCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.DisplayName,"--"),r.notes=t.getValueOrDefault(e.Notes),r.login.username=t.getValueOrDefault(e.UserName),r.login.password=t.getValueOrDefault(e.Password),r.login.uris=t.makeUriArray(e.Url),t.cleanupCipher(r),n.ciphers.push(r)}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.MeldiumCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=n(40),l=n(113),c=n(94),p=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!1);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){if(!(e.length<3)){var r="Unassigned"!==t.getValueOrDefault(e[0],"Unassigned")?e[0]:null;t.processFolder(n,r);var i=t.initLoginCipher();if(i.name=t.getValueOrDefault(e[2],"--"),"Web Logins"===e[1]||"Login"===e[1])i.login.uris=t.makeUriArray(e[4]),i.login.username=t.getValueOrDefault(e[5]),i.login.password=t.getValueOrDefault(e[6]),i.notes=t.isNullOrWhitespace(e[3])?null:e[3].split("\\n").join("\n");else if(e.length>3){i.type=s.CipherType.SecureNote,i.secureNote=new c.SecureNoteView,i.secureNote.type=l.SecureNoteType.Generic;for(var a=3;a0&&(t.login.uris=this.makeUriArray(r))}null!=e.secureContents.fields&&this.parseFields(e.secureContents.fields,t,"designation","value","name"),null!=e.secureContents.sections&&e.secureContents.sections.forEach(function(e){null!=e.fields&&n.parseFields(e.fields,t,"n","v","t")})}},t.prototype.parsePasswordHistory=function(e,t){var n=this,r=e.length>5?5:e.length;t.passwordHistory=e.filter(function(e){return!n.isNullOrWhitespace(e.value)&&null!=e.time}).sort(function(e,t){return t.time-e.time}).slice(0,r).map(function(e){var t=new c.PasswordHistoryView;return t.password=e.value,t.lastUsedDate=new Date((""+e.time).length>=13?e.time:1e3*e.time),t})},t.prototype.parseFields=function(e,t,n,r,i){var a=this;e.forEach(function(e){if(null!=e[r]&&""!==e[r].toString().trim()){var o=e[r].toString(),s=null!=e[n]?e[n].toString():null;if(t.type===u.CipherType.Login){if(a.isNullOrWhitespace(t.login.username)&&"username"===s)return void(t.login.username=o);if(a.isNullOrWhitespace(t.login.password)&&"password"===s)return void(t.login.password=o);if(a.isNullOrWhitespace(t.login.totp)&&null!=s&&s.startsWith("TOTP_"))return void(t.login.totp=o)}else if(t.type===u.CipherType.Card){if(a.isNullOrWhitespace(t.card.number)&&"ccnum"===s)return t.card.number=o,void(t.card.brand=a.getCardBrand(o));if(a.isNullOrWhitespace(t.card.code)&&"cvv"===s)return void(t.card.code=o);if(a.isNullOrWhitespace(t.card.cardholderName)&&"cardholder"===s)return void(t.card.cardholderName=o);if(a.isNullOrWhitespace(t.card.expiration)&&"expiry"===s&&6===o.length)return t.card.expMonth=o.substr(4,2),"0"===t.card.expMonth[0]&&(t.card.expMonth=t.card.expMonth.substr(1,1)),void(t.card.expYear=o.substr(0,4));if("type"===s)return}else if(t.type===u.CipherType.Identity){var l=t.identity;if(a.isNullOrWhitespace(l.firstName)&&"firstname"===s)return void(l.firstName=o);if(a.isNullOrWhitespace(l.lastName)&&"lastname"===s)return void(l.lastName=o);if(a.isNullOrWhitespace(l.middleName)&&"initial"===s)return void(l.middleName=o);if(a.isNullOrWhitespace(l.phone)&&"defphone"===s)return void(l.phone=o);if(a.isNullOrWhitespace(l.company)&&"company"===s)return void(l.company=o);if(a.isNullOrWhitespace(l.email)&&"email"===s)return void(l.email=o);if(a.isNullOrWhitespace(l.username)&&"username"===s)return void(l.username=o);if("address"===s){var c=e[r],p=c.street,m=c.city,h=c.country,f=c.zip;return l.address1=a.getValueOrDefault(p),l.city=a.getValueOrDefault(m),a.isNullOrWhitespace(h)||(l.country=h.toUpperCase()),void(l.postalCode=a.getValueOrDefault(f))}}var v=a.isNullOrWhitespace(e[i])?"no_name":e[i];if("password"!==v||null==t.passwordHistory||!t.passwordHistory.some(function(e){return e.password===o})){var y="concealed"===e.k?d.FieldType.Hidden:d.FieldType.Text;a.processKvp(t,v,o,y)}}})},t}(a.BaseImporter);t.OnePassword1PifImporter=h},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(712),o=n(40),s=n(713),l=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.setCipherType=function(e,t){switch(this.getValueOrDefault(this.getProp(e,"type"),"Login")){case"Credit Card":t.type=o.CipherType.Card,t.card=new s.CardView,a.IgnoredProperties.push("type");break;case"Identity":t.type=o.CipherType.Identity,t.identity=new s.IdentityView,a.IgnoredProperties.push("type");break;case"Login":case"Secure Note":a.IgnoredProperties.push("type")}},t}(a.OnePasswordCsvImporter);t.OnePasswordMacCsvImporter=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e,t,n){this.importRecord=e,this.property=t,this.cipher=n,this.lowerProperty=t.toLowerCase()}}();t.CipherImportContext=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(){}}();t.View=r},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(712),o=n(40),s=n(713),l=function(e){function t(){var t=e.call(this)||this;return t.identityPropertyParsers.push(t.setIdentityAddress),t}return i(t,e),t.prototype.setCipherType=function(e,t){t.type=o.CipherType.Login,t.login=new s.LoginView,this.isNullOrWhitespace(this.getPropByRegexp(e,/\d+: number/i))||this.isNullOrWhitespace(this.getPropByRegexp(e,/\d+: expiry date/i))||(t.type=o.CipherType.Card,t.card=new s.CardView),this.isNullOrWhitespace(this.getPropByRegexp(e,/name \d+: first name/i))&&this.isNullOrWhitespace(this.getPropByRegexp(e,/name \d+: initial/i))&&this.isNullOrWhitespace(this.getPropByRegexp(e,/name \d+: last name/i))&&this.isNullOrWhitespace(this.getPropByRegexp(e,/internet \d+: email/i))||(t.type=o.CipherType.Identity,t.identity=new s.IdentityView)},t.prototype.setIdentityAddress=function(e){return!!e.lowerProperty.match(/address \d+: address/i)&&(this.processKvp(e.cipher,"address",e.importRecord[e.property]),!0)},t.prototype.setCreditCardExpiry=function(e){if(this.isNullOrWhitespace(e.cipher.card.expiration)&&e.lowerProperty.includes("expiry date")){var t=e.importRecord[e.property].split("/");return e.cipher.card.expMonth=t[0],"0"===e.cipher.card.expMonth[0]&&2===e.cipher.card.expMonth.length&&(e.cipher.card.expMonth=e.cipher.card.expMonth.substr(1,1)),e.cipher.card.expYear=t[2].length>4?t[2].substr(0,4):t[2],!0}return!1},t}(a.OnePasswordCsvImporter);t.OnePasswordWinCsvImporter=l},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=n(158),l=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!1);if(null==r)return n.success=!1,Promise.resolve(n);var i=null;return r.forEach(function(e){if(null!=i){if(!(e.length<2||e.length!==i.length)){if(!t.isNullOrWhitespace(e[1]))if(t.organization){(r=e[1].split(",")).forEach(function(e){e=e.trim();for(var t=!0,r=n.collections.length,i=0;i0?r[0].trim():null;t.processFolder(n,a)}var o=t.initLoginCipher();o.name=t.getValueOrDefault(e[0],"--");for(var l=2;l-1?o.login.username=e[l]:t.passwordFieldNames.indexOf(c)>-1?o.login.password=e[l]:t.uriFieldNames.indexOf(c)>-1?o.login.uris=t.makeUriArray(e[l]):t.processKvp(o,i[l],e[l]))}t.cleanupCipher(o),n.ciphers.push(o)}}else i=e.map(function(e){return e})}),n.success=!0,Promise.resolve(n)},t}(a.BaseImporter);t.PadlockCsvImporter=l},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){t.processFolder(n,t.getValue("category",e));var r=t.initLoginCipher();r.notes=t.getValue("description",e),r.name=t.getValueOrDefault(t.getValue("title",e),"--"),r.login.username=t.getValue("username",e),r.login.password=t.getValue("password",e),r.login.uris=t.makeUriArray(t.getValue("site",e)),t.processKvp(r,"Password 2",t.getValue("password2",e)),t.cleanupCipher(r),n.ciphers.push(r)}),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n))},t.prototype.getValue=function(e,t){return this.getValueOrDefault(t[e],this.getValueOrDefault(t[" "+e]))},t}(a.BaseImporter);t.PassKeepCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=JSON.parse(e);return null==r||0===r.length?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){if(null!=e.tags&&e.tags.length>0){var r=e.tags[0].text;t.processFolder(n,r)}var i=t.initLoginCipher();i.name=e.label,i.login.username=t.getValueOrDefault(e.username),t.isNullOrWhitespace(i.login.username)?i.login.username=t.getValueOrDefault(e.email):t.isNullOrWhitespace(e.email)||(i.notes="Email: "+e.email+"\n"),i.login.password=t.getValueOrDefault(e.password),i.login.uris=t.makeUriArray(e.url),i.notes+=t.getValueOrDefault(e.description,""),null!=e.otp&&(i.login.totp=t.getValueOrDefault(e.otp.secret)),null!=e.custom_fields&&e.custom_fields.forEach(function(e){switch(e.field_type){case"text":case"password":t.processKvp(i,e.label,e.value)}}),t.convertToNoteIfNeeded(i),t.cleanupCipher(i),n.ciphers.push(i)}),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.PassmanJsonImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=n(158),l=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){var r=t.isNullOrWhitespace(e.Tags)?null:JSON.parse(e.Tags),i=null!=r&&null!=r.tags&&r.tags.length>0?r.tags.map(function(e){try{var n=JSON.parse(e);return t.getValueOrDefault(n.tag)}catch(r){}return null}).filter(function(e){return!t.isNullOrWhitespace(e)}):null;t.organization&&null!=i&&i.length>0?i.forEach(function(e){for(var t=!0,r=n.collections.length,i=0;i0&&t.processFolder(n,i[0]);var a=t.initLoginCipher();a.notes=t.getValueOrDefault(e.Notes,""),a.notes+="\n\n"+t.getValueOrDefault(e["Shared Notes"],"")+"\n",a.name=t.getValueOrDefault(e["Entry Name"],"--"),a.login.username=t.getValueOrDefault(e["User ID"]),a.login.password=t.getValueOrDefault(e.Password),a.login.uris=t.makeUriArray(e.URL),null!=e.__parsed_extra&&e.__parsed_extra.length>0&&e.__parsed_extra.forEach(function(e){t.isNullOrWhitespace(e)||(a.notes+="\n"+e)});var o=t.isNullOrWhitespace(e["Extra Fields"])?null:JSON.parse(e["Extra Fields"]),l=null!=o&&null!=o.extraFields&&o.extraFields.length>0?o.extraFields.map(function(e){try{return JSON.parse(e)}catch(t){}return null}):null;null!=l&&l.forEach(function(e){null!=e&&t.processKvp(a,e.name,e.data)}),t.cleanupCipher(a),n.ciphers.push(a)}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.PasspackCsvImporter=l},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!1);if(null==r)return n.success=!1,Promise.resolve(n);var i=!0;return r.forEach(function(e){if(!(5!==e.length&&e.length<9)){var r=10===e.length&&"0"===e[0],a=t.initLoginCipher();if(a.name=t.getValueOrDefault(e[r?1:0],"--"),a.login.username=t.getValueOrDefault(e[r?2:1]),a.login.password=t.getValueOrDefault(e[r?3:2]),5===e.length)i=!1,a.notes=t.getValueOrDefault(e[4]),a.login.uris=t.makeUriArray(e[3]);else{var o=t.getValueOrDefault(e[r?9:8],"(None)"),s="(None)"!==o?o.split("\\").join("/"):null;null!=s&&(s=o.split(" > ").join("/"),s=o.split(">").join("/")),t.processFolder(n,s),a.notes=t.getValueOrDefault(e[r?5:3]),a.login.uris=t.makeUriArray(e[4])}t.convertToNoteIfNeeded(a),t.cleanupCipher(a),n.ciphers.push(a)}}),i&&this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n)},t}(a.BaseImporter);t.PasswordAgentCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=n(89),l=n(129),c=n(40),p=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=JSON.parse(e);if(null==r||null==r.items)return n.success=!1,Promise.resolve(n);var i=new Map;r.folders.forEach(function(e){i.set(e.id,e.name)});var a=new Map;return i.forEach(function(e,t){a.set(t,n.folders.length);var r=new l.FolderView;r.name=e,n.folders.push(r)}),r.items.forEach(function(e){var r=t.initLoginCipher();if(r.name=t.getValueOrDefault(e.name,"--"),r.login.uris=t.makeUriArray(e.login_url),null!=e.folder&&a.has(e.folder)&&n.folderRelationships.push([n.ciphers.length,a.get(e.folder)]),null!=e.identifiers){for(var i in t.isNullOrWhitespace(e.identifiers.notes)||(r.notes=e.identifiers.notes.split("\\r\\n").join("\n").split("\\n").join("\n")),"CreditCard"===e.type&&(r.card=new s.CardView,r.type=c.CipherType.Card),e.identifiers)if(e.identifiers.hasOwnProperty(i)){var o=e.identifiers[i],l=null!=o?o.toString():null;if(!t.isNullOrWhitespace(l)&&"notes"!==i&&"ignoreItemInSecurityScore"!==i)if("custom_fields"!==i){if(r.type===c.CipherType.Card){if("cardNumber"===i){r.card.number=l,r.card.brand=t.getCardBrand(l);continue}if("nameOnCard"===i){r.card.cardholderName=l;continue}if("security_code"===i){r.card.code=l;continue}if("expires"===i){try{var p=new Date(l);r.card.expYear=p.getFullYear().toString(),r.card.expMonth=(p.getMonth()+1).toString()}catch(u){}continue}if("cardType"===i)continue}else{if(("username"===i||"email"===i)&&t.isNullOrWhitespace(r.login.username)){r.login.username=l;continue}if("password"===i){r.login.password=l;continue}if("totp"===i){r.login.totp=l;continue}if((null==r.login.uris||0===r.login.uris.length)&&t.uriFieldNames.indexOf(i)>-1){r.login.uris=t.makeUriArray(l);continue}}t.processKvp(r,i,l)}else o.forEach(function(e){t.processKvp(r,e.name,e.value)})}t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)}}),n.success=!0,Promise.resolve(n)},t}(a.BaseImporter);t.PasswordBossJsonImporter=p},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseXml(e);if(null==r)return n.success=!1,Promise.resolve(n);var i=r.querySelectorAll("PasswordManager > record");return Array.from(i).forEach(function(e){var r=t.querySelectorDirectChild(e,"Category"),i=null==r||t.isNullOrWhitespace(r.textContent)||"Unfiled"===r.textContent?null:r.textContent;t.processFolder(n,i);var a=t.querySelectorDirectChild(e,"Account-Name"),o=t.querySelectorDirectChild(e,"User-Id"),s=t.querySelectorDirectChild(e,"Password"),l=t.querySelectorDirectChild(e,"URL"),c=t.querySelectorDirectChild(e,"Notes"),p=t.initLoginCipher();p.name=null!=a?t.getValueOrDefault(a.textContent,"--"):"--",p.notes=null!=c?t.getValueOrDefault(c.textContent):"",p.login.username=null!=o?t.getValueOrDefault(o.textContent):null,p.login.password=null!=s?t.getValueOrDefault(s.textContent):null,p.login.uris=null!=l?t.makeUriArray(l.textContent):null;for(var u=[],d=1;d<=10;d++)u.push("Attribute-"+d);t.querySelectorAllDirectChild(e,u.join(",")).forEach(function(e){t.isNullOrWhitespace(e.textContent)||"null"===e.textContent||t.processKvp(p,e.tagName,e.textContent)}),t.cleanupCipher(p),n.ciphers.push(p)}),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n)},t}(a.BaseImporter);t.PasswordDragonXmlImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseXml(e);if(null==r)return n.success=!1,Promise.resolve(n);var i=r.querySelector("passwordsafe");if(null==i)return n.errorMessage="Missing `passwordsafe` node.",n.success=!1,Promise.resolve(n);var a=i.getAttribute("delimiter"),s=r.querySelectorAll("passwordsafe > entry");return Array.from(s).forEach(function(e){var r=t.querySelectorDirectChild(e,"group"),i=null==r||t.isNullOrWhitespace(r.textContent)?null:r.textContent.split(".").join("/");t.processFolder(n,i);var o=t.querySelectorDirectChild(e,"title"),s=t.querySelectorDirectChild(e,"username"),l=t.querySelectorDirectChild(e,"email"),c=t.querySelectorDirectChild(e,"password"),p=t.querySelectorDirectChild(e,"url"),u=t.querySelectorDirectChild(e,"notes"),d=t.initLoginCipher();d.name=null!=o?t.getValueOrDefault(o.textContent,"--"):"--",d.notes=null!=u?t.getValueOrDefault(u.textContent,"").split(a).join("\n"):null,d.login.username=null!=s?t.getValueOrDefault(s.textContent):null,d.login.password=null!=c?t.getValueOrDefault(c.textContent):null,d.login.uris=null!=p?t.makeUriArray(p.textContent):null,t.isNullOrWhitespace(d.login.username)&&null!=l?d.login.username=t.getValueOrDefault(l.textContent):null==l||t.isNullOrWhitespace(l.textContent)||(d.notes=t.isNullOrWhitespace(d.notes)?"Email: "+l.textContent:d.notes+"\nEmail: "+l.textContent),t.cleanupCipher(d),n.ciphers.push(d)}),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n)},t}(a.BaseImporter);t.PasswordSafeXmlImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!1);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){if(!(e.length<1)){e.length>5&&t.processFolder(n,e[5]);var r=t.initLoginCipher();r.name=t.getValueOrDefault(e[0],"--"),e.length>4&&(r.notes=t.getValueOrDefault(e[4],"").split("¬").join("\n")),e.length>2&&(r.login.username=t.getValueOrDefault(e[2])),e.length>3&&(r.login.password=t.getValueOrDefault(e[3])),e.length>1&&(r.login.uris=t.makeUriArray(e[1])),t.cleanupCipher(r),n.ciphers.push(r)}}),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.PasswordWalletTxtImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(40),s=n(28),l=n(89),c=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new s.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){if("true"!==e.trash){var r=t.initLoginCipher();if(r.name=t.getValueOrDefault(e.name),r.notes=t.getValueOrDefault(e.notes),"LoginItem"===e.type)r.login.uris=t.makeUriArray(e.website),r.login.password=t.getValueOrDefault(e.password),r.login.username=t.getValueOrDefault(e.username);else if("CreditCardItem"===e.type){r.type=o.CipherType.Card,r.card=new l.CardView,r.card.cardholderName=t.getValueOrDefault(e.cardholder),r.card.number=t.getValueOrDefault(e.number),r.card.brand=t.getCardBrand(r.card.number),r.card.code=t.getValueOrDefault(e.verification);try{var i=t.getValueOrDefault(e.expiryMonth);if(null!=i){var a=parseInt(i,null);null!=a&&a>=1&&a<=12&&(r.card.expMonth=a.toString())}}catch(d){}try{var s=t.getValueOrDefault(e.expiryYear);if(null!=s){var c=parseInt(s,null);null!=c&&(r.card.expYear=c.toString())}}catch(m){}var p=t.getValueOrDefault(e.pin);null!=p&&t.processKvp(r,"PIN",p);var u=t.getValueOrDefault(e.zipCode);null!=u&&t.processKvp(r,"Zip Code",u)}t.cleanupCipher(r),n.ciphers.push(r)}}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.RememBearCsvImporter=c},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);if(null==r)return n.success=!1,Promise.resolve(n);var i=1;return r.forEach(function(e){var a=!t.isNullOrWhitespace(e.Folder)&&e.Folder.startsWith("/")?e.Folder.replace("/",""):e.Folder,o=t.isNullOrWhitespace(a)?null:a;t.processFolder(n,o);var s=t.initLoginCipher();if(s.notes=t.getValueOrDefault(e.Note),s.name=t.getValueOrDefault(e.Name,"--"),s.login.username=t.getValueOrDefault(e.Login),s.login.password=t.getValueOrDefault(e.Pwd),s.login.uris=t.makeUriArray(e.Url),!t.isNullOrWhitespace(e.Rf_fields)){var l=[e.Rf_fields];null!=e.__parsed_extra&&e.__parsed_extra.length>0&&(l=l.concat(e.__parsed_extra)),l.forEach(function(e){var n=e.split(":");if(!(n.length<3)){var r="-no-name-"===n[0]?null:n[0],i=4===n.length&&"rck"===n[2]?n[1]:n[2];t.processKvp(s,r,i)}})}t.convertToNoteIfNeeded(s),t.cleanupCipher(s),i===r.length&&"--"===s.name&&t.isNullOrWhitespace(s.login.password)||(n.ciphers.push(s),i++)}),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n)},t}(a.BaseImporter);t.RoboFormCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=n(129),l=n(94),c=n(40),p=n(113),u=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseXml(e);if(null==r)return n.success=!1,Promise.resolve(n);if(null==r.querySelector("database"))return n.errorMessage="Missing `database` node.",n.success=!1,Promise.resolve(n);var i=new Map;return Array.from(r.querySelectorAll("database > label")).forEach(function(e){var r=e.getAttribute("name"),a=e.getAttribute("id");if(!t.isNullOrWhitespace(r)&&!t.isNullOrWhitespace(a)){i.set(a,n.folders.length);var o=new s.FolderView;o.name=r,n.folders.push(o)}}),Array.from(r.querySelectorAll("database > card")).forEach(function(e){if("true"!==e.getAttribute("template")){var r=t.querySelectorDirectChild(e,"label_id");if(null!=r){var a=r.textContent;!t.isNullOrWhitespace(a)&&i.has(a)&&n.folderRelationships.push([n.ciphers.length,i.get(a)])}var o=t.initLoginCipher();o.name=t.getValueOrDefault(e.getAttribute("title"),"--"),"note"===e.getAttribute("type")?(o.type=c.CipherType.SecureNote,o.secureNote=new l.SecureNoteView,o.secureNote.type=p.SecureNoteType.Generic):Array.from(t.querySelectorAllDirectChild(e,"field")).forEach(function(e){var n=e.textContent;if(!t.isNullOrWhitespace(n)){var r=e.getAttribute("name"),i=t.getValueOrDefault(e.getAttribute("type"),"").toLowerCase();"login"===i?o.login.username=n:"password"===i?o.login.password=n:"one_time_password"===i?o.login.totp=n:"notes"===i?o.notes+=n+"\n":"weblogin"===i||"website"===i?o.login.uris=t.makeUriArray(n):t.processKvp(o,r,n)}}),Array.from(t.querySelectorAllDirectChild(e,"notes")).forEach(function(e){o.notes+=e.textContent+"\n"}),t.cleanupCipher(o),n.ciphers.push(o)}}),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n)},t}(a.BaseImporter);t.SafeInCloudXmlImporter=u},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){var r=t.initLoginCipher();r.name=t.getValueOrDefault(t.nameFromUrl(e.url),"--"),r.notes=t.getValueOrDefault(e.notes),r.login.username=t.getValueOrDefault(e.username),r.login.password=t.getValueOrDefault(e.password),r.login.uris=t.makeUriArray(e.url),t.cleanupCipher(r),n.ciphers.push(r)}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.SaferPassCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.Title),r.notes=t.getValueOrDefault(e.Comment),r.login.uris=t.makeUriArray(e.Url),r.login.password=t.getValueOrDefault(e.Password),r.login.username=t.getValueOrDefault(e.Username),t.cleanupCipher(r),n.ciphers.push(r)}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.SecureSafeCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!1);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){if(!(e.length<3)){t.processFolder(n,t.getValueOrDefault(e[e.length-1]));var r=t.initLoginCipher();r.notes=t.getValueOrDefault(e[e.length-2],""),r.name=t.getValueOrDefault(e[1],"--"),"Web Logins"===e[0]||"Servers"===e[0]||"Email Accounts"===e[0]?(r.login.username=t.getValueOrDefault(e[2]),r.login.password=t.getValueOrDefault(e[3]),r.login.uris=t.makeUriArray(e[4]),t.parseFieldsToNotes(r,5,e)):t.parseFieldsToNotes(r,2,e),t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)}}),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n))},t.prototype.parseFieldsToNotes=function(e,t,n){for(var r=t;r Database > Logins > Login");return Array.from(i).forEach(function(e){var i=e.getAttribute("ID");if(!t.isNullOrWhitespace(i)){var a=e.getAttribute("Name"),o=e.getAttribute("Password"),s=null,l=null,c=null,p=null,u=null,d=r.querySelector('root > Database > Accounts > Account > LoginLinks > Login[SourceLoginID="'+i+'"]');if(null!=d){var m=d.parentElement.parentElement;null!=m&&(s=m.getAttribute("Name"),l=m.getAttribute("Link"),p=m.getAttribute("ParentID"),c=m.getAttribute("Comments"),t.isNullOrWhitespace(c)||(c=c.split("/n").join("\n")))}t.isNullOrWhitespace(p)||(u=t.buildGroupText(r,p,""),t.processFolder(n,u));var h=t.initLoginCipher();h.name=t.getValueOrDefault(s,"--"),h.notes=t.getValueOrDefault(c),h.login.username=t.getValueOrDefault(a),h.login.password=t.getValueOrDefault(o),h.login.uris=t.makeUriArray(l),t.cleanupCipher(h),n.ciphers.push(h)}}),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n)},t.prototype.buildGroupText=function(e,t,n){var r=e.querySelector('root > Database > Groups > Group[ID="'+t+'"]');return null==r?n:(this.isNullOrWhitespace(n)||(n="/"+n),n=r.getAttribute("Name")+n,this.buildGroupText(e,r.getAttribute("ParentID"),n))},t}(a.BaseImporter);t.StickyPasswordXmlImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=n(89),l=n(94),c=n(40),p=n(113),u=["kind","autologin","favorite","hexcolor","protectedwithpassword","subdomainonly","type","tk_export_version","note","title","document_content"],d=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){var r=t.initLoginCipher();if(r.favorite="true"===t.getValueOrDefault(e.favorite,"").toLowerCase(),r.name=t.getValueOrDefault(e.name,"--"),r.notes=t.getValueOrDefault(e.memo,""),r.login.username=t.getValueOrDefault(e.login),r.login.password=t.getValueOrDefault(e.password),r.login.uris=t.makeUriArray(e.url),"login"!==e.kind&&(r.name=t.getValueOrDefault(e.title,"--"),r.notes=t.getValueOrDefault(e.note,"")),"cc"===e.kind){if(r.type=c.CipherType.Card,r.card=new s.CardView,r.card.cardholderName=t.getValueOrDefault(e.cardholder),r.card.number=t.getValueOrDefault(e.number),r.card.brand=t.getCardBrand(r.card.number),!t.isNullOrWhitespace(e.expiryDate))try{var i=new Date(e.expiryDate);r.card.expYear=i.getFullYear().toString(),r.card.expMonth=(i.getMonth()+1).toString()}catch(o){}}else if("login"!==e.kind)for(var a in r.type=c.CipherType.SecureNote,r.secureNote=new l.SecureNoteView,r.secureNote.type=p.SecureNoteType.Generic,t.isNullOrWhitespace(r.notes)||(r.notes=t.getValueOrDefault(e.document_content,"")),e)e.hasOwnProperty(a)&&u.indexOf(a.toLowerCase())<0&&!t.isNullOrWhitespace(e[a])&&t.processKvp(r,a,e[a]);t.cleanupCipher(r),n.ciphers.push(r)}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.TrueKeyCsvImporter=d},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!1);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){if(5===e.length){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e[0],"--"),r.notes=t.getValueOrDefault(e[4]),r.login.username=t.getValueOrDefault(e[1]),r.login.password=t.getValueOrDefault(e[2]),r.login.uris=t.makeUriArray(e[3]),t.cleanupCipher(r),n.ciphers.push(r)}}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.UpmCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){var r=t.initLoginCipher();r.name=t.getValueOrDefault(e.Name,"--"),r.login.username=t.getValueOrDefault(e["User name"]),r.login.password=t.getValueOrDefault(e.Password),r.login.uris=t.makeUriArray(e.URL),t.cleanupCipher(r),n.ciphers.push(r)}),n.success=!0,Promise.resolve(n))},t}(a.BaseImporter);t.YotiCsvImporter=s},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=n(27),o=n(28),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.parse=function(e){var t=this,n=new o.ImportResult,r=this.parseCsv(e,!0);return null==r?(n.success=!1,Promise.resolve(n)):(r.forEach(function(e){if(!t.isNullOrWhitespace(e["Password Name"])||!t.isNullOrWhitespace(e["Secret Name"])){t.processFolder(n,t.getValueOrDefault(e.ChamberName));var r=t.initLoginCipher();r.favorite="1"===t.getValueOrDefault(e.Favorite,"0"),r.notes=t.getValueOrDefault(e.Notes),r.name=t.getValueOrDefault(e["Password Name"],t.getValueOrDefault(e["Secret Name"],"--")),r.login.uris=t.makeUriArray(t.getValueOrDefault(e["Password URL"],t.getValueOrDefault(e["Secret URL"]))),t.parseData(r,e.SecretData),t.parseData(r,e.CustomData),t.convertToNoteIfNeeded(r),t.cleanupCipher(r),n.ciphers.push(r)}}),this.organization&&this.moveFoldersToCollections(n),n.success=!0,Promise.resolve(n))},t.prototype.parseData=function(e,t){var n=this;this.isNullOrWhitespace(t)||this.splitNewLine(t).forEach(function(t){var r=t.indexOf(":");if(!(r<0)){var i=t.substring(0,r),a=t.length>r?t.substring(r+1):null;if(!n.isNullOrWhitespace(i)&&!n.isNullOrWhitespace(a)&&"SecretType"!==i){var o=i.toLowerCase();null==e.login.username&&n.usernameFieldNames.indexOf(o)>-1?e.login.username=a:null==e.login.password&&n.passwordFieldNames.indexOf(o)>-1?e.login.password=a:n.processKvp(e,i,a)}}})},t}(a.BaseImporter);t.ZohoVaultCsvImporter=s},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]t.minComplexity&&(t.minComplexity=e.data.minComplexity),null!=e.data.minLength&&e.data.minLength>t.minLength&&(t.minLength=e.data.minLength),e.data.requireUpper&&(t.requireUpper=!0),e.data.requireLower&&(t.requireLower=!0),e.data.requireNumbers&&(t.requireNumbers=!0),e.data.requireSpecial&&(t.requireSpecial=!0))}),[2,t])}})})},e.prototype.evaluateMasterPassword=function(e,t,n){return null==n||!(n.minComplexity>0&&n.minComplexity>e)&&(!(n.minLength>0&&n.minLength>t.length)&&((!n.requireUpper||t.toLocaleLowerCase()!==t)&&((!n.requireLower||t.toLocaleUpperCase()!==t)&&(!(n.requireNumbers&&!/[0-9]/.test(t))&&!(n.requireSpecial&&!/[!@#$%\^&*]/g.test(t))))))},e}();t.PolicyService=c},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.minComplexity=0,t.minLength=0,t.requireUpper=!1,t.requireLower=!1,t.requireNumbers=!1,t.requireSpecial=!1,t}return i(t,e),t}(n(82).default);t.MasterPasswordPolicyOptions=a},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]"))},e.prototype.indexCiphers=function(){return r(this,void 0,void 0,function(){var e,t=this;return i(this,function(n){switch(n.label){case 0:return this.indexing?[2]:(this.logService.time("search indexing"),this.indexing=!0,this.index=null,(e=new a.Builder).ref("id"),e.field("shortid",{boost:100,extractor:function(e){return e.id.substr(0,8)}}),e.field("name",{boost:10}),e.field("subtitle",{boost:5,extractor:function(e){return null!=e.subTitle&&e.type===o.CipherType.Card?e.subTitle.replace(/\*/g,""):e.subTitle}}),e.field("notes"),e.field("login.username",{extractor:function(e){return e.type===o.CipherType.Login&&null!=e.login?e.login.username:null}}),e.field("login.uris",{boost:2,extractor:function(e){return t.uriExtractor(e)}}),e.field("fields",{extractor:function(e){return t.fieldExtractor(e,!1)}}),e.field("fields_joined",{extractor:function(e){return t.fieldExtractor(e,!0)}}),e.field("attachments",{extractor:function(e){return t.attachmentExtractor(e,!1)}}),e.field("attachments_joined",{extractor:function(e){return t.attachmentExtractor(e,!0)}}),e.field("organizationid",{extractor:function(e){return e.organizationId}}),[4,this.cipherService.getAllDecrypted()]);case 1:return n.sent().forEach(function(t){return e.add(t)}),this.index=e.build(),this.indexing=!1,this.logService.timeEnd("search indexing"),[2]}})})},e.prototype.searchCiphers=function(e,t,n){return void 0===t&&(t=null),void 0===n&&(n=null),r(this,void 0,void 0,function(){var r,o,s,l,c;return i(this,function(i){switch(i.label){case 0:return r=[],null!=e&&(e=e.trim().toLowerCase()),""===e&&(e=null),null!=n?[3,2]:[4,this.cipherService.getAllDecrypted()];case 1:n=i.sent(),i.label=2;case 2:return null!=t&&Array.isArray(t)&&t.length>0?n=n.filter(function(e){return t.every(function(t){return null==t||t(e)})}):null!=t&&(n=n.filter(t)),this.isSearchable(e)?this.indexing?[4,new Promise(function(e){return setTimeout(e,250)})]:[3,5]:[2,n];case 3:return i.sent(),this.indexing?[4,new Promise(function(e){return setTimeout(e,500)})]:[3,5];case 4:i.sent(),i.label=5;case 5:if(null==(o=this.getIndexForSearch()))return[2,this.searchCiphersBasic(n,e)];if(s=new Map,n.forEach(function(e){return s.set(e.id,e)}),l=null,null!=e&&e.length>1&&0===e.indexOf(">"))try{l=o.search(e.substr(1).trim())}catch(p){}else c=a.Query.wildcard.LEADING|a.Query.wildcard.TRAILING,l=o.query(function(t){a.tokenizer(e).forEach(function(e){var n=e.toString();t.term(n,{fields:["name"],wildcard:c}),t.term(n,{fields:["subtitle"],wildcard:c}),t.term(n,{fields:["login.uris"],wildcard:c}),t.term(n,{})})});return null!=l&&l.forEach(function(e){s.has(e.ref)&&r.push(s.get(e.ref))}),[2,r]}})})},e.prototype.searchCiphersBasic=function(e,t,n){return void 0===n&&(n=!1),t=t.trim().toLowerCase(),e.filter(function(e){return n===e.isDeleted&&(null!=e.name&&e.name.toLowerCase().indexOf(t)>-1||(!!(t.length>=8&&e.id.startsWith(t))||(null!=e.subTitle&&e.subTitle.toLowerCase().indexOf(t)>-1||!!(e.login&&null!=e.login.uri&&e.login.uri.toLowerCase().indexOf(t)>-1))))})},e.prototype.searchSends=function(e,t){return t=t.trim().toLocaleLowerCase(),e.filter(function(e){var n,r,i;return null!=e.name&&e.name.toLowerCase().indexOf(t)>-1||(!!(t.length>=8&&(e.id.startsWith(t)||e.accessId.toLocaleLowerCase().startsWith(t)||null!=(null===(n=e.file)||void 0===n?void 0:n.id)&&e.file.id.startsWith(t)))||(null!=e.notes&&e.notes.toLowerCase().indexOf(t)>-1||(null!=(null===(r=e.text)||void 0===r?void 0:r.text)&&e.text.text.toLowerCase().indexOf(t)>-1||(null!=(null===(i=e.file)||void 0===i?void 0:i.fileName)&&e.file.fileName.toLowerCase().indexOf(t)>-1||void 0))))})},e.prototype.getIndexForSearch=function(){return this.index},e.prototype.fieldExtractor=function(e,t){if(!e.hasFields)return null;var n=[];return e.fields.forEach(function(e){null!=e.name&&n.push(e.name),e.type===s.FieldType.Text&&null!=e.value&&n.push(e.value)}),0===(n=n.filter(function(e){return""!==e.trim()})).length?null:t?n.join(" "):n},e.prototype.attachmentExtractor=function(e,t){if(!e.hasAttachments)return null;var n=[];return e.attachments.forEach(function(e){null!=e&&null!=e.fileName&&(t&&e.fileName.indexOf(".")>-1?n.push(e.fileName.substr(0,e.fileName.lastIndexOf("."))):n.push(e.fileName))}),0===(n=n.filter(function(e){return""!==e.trim()})).length?null:t?n.join(" "):n},e.prototype.uriExtractor=function(e){if(e.type!==o.CipherType.Login||null==e.login||!e.login.hasUris)return null;var t=[];return e.login.uris.forEach(function(e){if(null!=e.uri&&""!==e.uri)if(null==e.hostname){var n=e.uri;if(e.match!==l.UriMatchType.RegularExpression){var r=n.indexOf("://");r>-1&&(n=n.substr(r+3));var i=n.search(/\?|&|#/);i>-1&&(n=n.substring(0,i))}t.push(n)}else t.push(e.hostname)}),t.length>0?t:null},e}();t.SearchService=c},,function(e,t,n){"use strict";(function(e){var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}l((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]-1||n.indexOf(" Version/9.")>-1)}return e.prototype.pbkdf2=function(e,t,n,s){return r(this,void 0,void 0,function(){var r,l,c,p,u,d,m,h,f;return i(this,function(i){switch(i.label){case 0:return this.isIE||this.isOldSafari?(r="sha256"===n?32:64,l=this.toByteString(e),c=this.toByteString(t),p=a.pbkdf2(l,c,s,r,n),[2,o.Utils.fromByteStringToArray(p).buffer]):(u="sha256"===n?256:512,d=this.toBuf(e),m=this.toBuf(t),h={name:"PBKDF2",salt:m,iterations:s,hash:{name:this.toWebCryptoAlgorithm(n)}},[4,this.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveBits"])]);case 1:return f=i.sent(),[4,this.subtle.deriveBits(h,f,u)];case 2:return[2,i.sent()]}})})},e.prototype.hkdf=function(e,t,n,a,o){return r(this,void 0,void 0,function(){var r,s,l,c;return i(this,function(i){switch(i.label){case 0:return r=this.toBuf(t),s=this.toBuf(n),l={name:"HKDF",salt:r,info:s,hash:{name:this.toWebCryptoAlgorithm(o)}},[4,this.subtle.importKey("raw",e,{name:"HKDF"},!1,["deriveBits"])];case 1:return c=i.sent(),[4,this.subtle.deriveBits(l,c,8*a)];case 2:return[2,i.sent()]}})})},e.prototype.hkdfExpand=function(e,t,n,a){return r(this,void 0,void 0,function(){var r,o,s,l,c,p,u,d,m,h;return i(this,function(i){switch(i.label){case 0:if(n>255*(r="sha256"===a?32:64))throw new Error("outputByteSize is too large.");if(new Uint8Array(e).length=n)return[3,4];i.label=3;case 3:return d++,[3,1];case 4:return[2,u.slice(0,n).buffer]}})})},e.prototype.hash=function(e,t){return r(this,void 0,void 0,function(){var n,r,s;return i(this,function(i){switch(i.label){case 0:return this.isIE&&"sha1"===t||"md5"===t?(n="md5"===t?a.md.md5.create():a.md.sha1.create(),r=this.toByteString(e),n.update(r,"raw"),[2,o.Utils.fromByteStringToArray(n.digest().data).buffer]):(s=this.toBuf(e),[4,this.subtle.digest({name:this.toWebCryptoAlgorithm(t)},s)]);case 1:return[2,i.sent()]}})})},e.prototype.hmac=function(e,t,n){return r(this,void 0,void 0,function(){var r,s,l,c,p;return i(this,function(i){switch(i.label){case 0:return this.isIE&&"sha512"===n?(r=a.hmac.create(),s=this.toByteString(t),l=this.toByteString(e),r.start(n,s),r.update(l,"raw"),[2,o.Utils.fromByteStringToArray(r.digest().data).buffer]):(c={name:"HMAC",hash:{name:this.toWebCryptoAlgorithm(n)}},[4,this.subtle.importKey("raw",t,c,!1,["sign"])]);case 1:return p=i.sent(),[4,this.subtle.sign(c,p,e)];case 2:return[2,i.sent()]}})})},e.prototype.compare=function(e,t){return r(this,void 0,void 0,function(){var n,r,a,o,s,l,c,p;return i(this,function(i){switch(i.label){case 0:return[4,this.randomBytes(32)];case 1:return n=i.sent(),r={name:"HMAC",hash:{name:"SHA-256"}},[4,this.subtle.importKey("raw",n,r,!1,["sign"])];case 2:return a=i.sent(),[4,this.subtle.sign(r,a,e)];case 3:return o=i.sent(),[4,this.subtle.sign(r,a,t)];case 4:if(s=i.sent(),o.byteLength!==s.byteLength)return[2,!1];for(l=new Uint8Array(o),c=new Uint8Array(s),p=0;p0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]"}),n.body=r,n.bodyOutputType=s.BodyOutputType.TrustedHtml}null!=e.options&&(!0===e.options.trustedHtml&&(n.bodyOutputType=s.BodyOutputType.TrustedHtml),null!=e.options.timeout&&e.options.timeout>0&&(n.timeout=e.options.timeout)),this.toasterService.popAsync(n)},e.prototype.idleStateChanged=function(){this.isIdle?this.notificationsService.disconnectFromInactivity():this.notificationsService.reconnectFromActivity()},e.prototype.setFullWidth=function(){return r(this,void 0,void 0,function(){return i(this,function(e){switch(e.label){case 0:return[4,this.storageService.get("enableFullWidth")];case 1:return e.sent()?document.body.classList.add("full-width"):document.body.classList.remove("full-width"),[2]}})})},e.ɵfac=function(t){return new(t||e)(u.ɵɵdirectiveInject(d.Angulartics2GoogleAnalytics),u.ɵɵdirectiveInject(m.BroadcasterService),u.ɵɵdirectiveInject(h.UserService),u.ɵɵdirectiveInject(f.TokenService),u.ɵɵdirectiveInject(v.FolderService),u.ɵɵdirectiveInject(y.SettingsService),u.ɵɵdirectiveInject(g.SyncService),u.ɵɵdirectiveInject(x.PasswordGenerationService),u.ɵɵdirectiveInject(b.CipherService),u.ɵɵdirectiveInject(S.AuthService),u.ɵɵdirectiveInject(w.Router),u.ɵɵdirectiveInject(C.Angulartics2),u.ɵɵdirectiveInject(I.ToasterService),u.ɵɵdirectiveInject(E.I18nService),u.ɵɵdirectiveInject(P.PlatformUtilsService),u.ɵɵdirectiveInject(u.NgZone),u.ɵɵdirectiveInject(k.VaultTimeoutService),u.ɵɵdirectiveInject(_.StorageService),u.ɵɵdirectiveInject(A.CryptoService),u.ɵɵdirectiveInject(O.CollectionService),u.ɵɵdirectiveInject(T.DomSanitizer),u.ɵɵdirectiveInject(M.SearchService),u.ɵɵdirectiveInject(B.NotificationsService),u.ɵɵdirectiveInject(D.RouterService),u.ɵɵdirectiveInject(V.StateService),u.ɵɵdirectiveInject(j.EventService),u.ɵɵdirectiveInject(R.PolicyService))},e.ɵcmp=u.ɵɵdefineComponent({type:e,selectors:[["app-root"]],decls:4,vars:1,consts:[["aria-live","polite",3,"toasterconfig"]],template:function(e,t){1&e&&(u.ɵɵelement(0,"toaster-container",0),u.ɵɵtext(1,"\n"),u.ɵɵelement(2,"router-outlet"),u.ɵɵtext(3,"\n")),2&e&&u.ɵɵproperty("toasterconfig",t.toasterConfig)},directives:[I.ToasterContainerComponent,w.RouterOutlet],encapsulation:2}),e}();t.AppComponent=F},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(0),i=function(){function e(e){this.el=e}return e.prototype.onClick=function(){this.el.nativeElement.blur()},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(r.ElementRef))},e.ɵdir=r.ɵɵdefineDirective({type:e,selectors:[["","appBlurClick",""]],hostBindings:function(e,t){1&e&&r.ɵɵlistener("click",function(){return t.onClick()})}}),e}();t.BlurClickDirective=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(0),i=function(){function e(e){this.elRef=e,this.el=null,this.el=e.nativeElement}return e.prototype.ngOnInit=function(){var e=this;this.formEls=Array.from(this.el.querySelectorAll('input:not([type="hidden"]), select, textarea')),this.formEls.forEach(function(t){t.addEventListener("focus",function(t){e.el.classList.add("active")},!1),t.addEventListener("blur",function(t){e.el.classList.remove("active")},!1)})},e.prototype.onClick=function(e){var t=e.target;if((t===this.el||t.classList.contains("progress")||t.classList.contains("progress-bar"))&&this.formEls.length>0){var n=this.formEls[0];if("input"===n.tagName.toLowerCase()){var r=n;if(null!=r.type&&"checkbox"===r.type.toLowerCase())return void r.click()}n.focus()}},e.ɵfac=function(t){return new(t||e)(r.ɵɵdirectiveInject(r.ElementRef))},e.ɵdir=r.ɵɵdefineDirective({type:e,selectors:[["","appBoxRow",""]],hostBindings:function(e,t){1&e&&r.ɵɵlistener("click",function(e){return t.onClick(e)})}}),e}();t.BoxRowDirective=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(0);var r=n(0),i=function(){function e(){}return e.prototype.transform=function(e,t,n){return void 0===n&&(n=!1),null==e||0===e.length?[]:null==t||t.length<2?e.filter(function(e){return n!==e.isDeleted}):(t=t.trim().toLowerCase(),e.filter(function(e){return n===e.isDeleted&&(null!=e.name&&e.name.toLowerCase().indexOf(t)>-1||(!!(t.length>=8&&e.id.startsWith(t))||(null!=e.subTitle&&e.subTitle.toLowerCase().indexOf(t)>-1||!!(e.login&&null!=e.login.uri&&e.login.uri.toLowerCase().indexOf(t)>-1))))}))},e.ɵfac=function(t){return new(t||e)},e.ɵpipe=r.ɵɵdefinePipe({name:"searchCiphers",type:e,pure:!0}),e}();t.SearchCiphersPipe=i}]); -//# sourceMappingURL=main.d8139e017ad9a069b29d.js.map \ No newline at end of file diff --git a/app/main.d8139e017ad9a069b29d.js.map b/app/main.d8139e017ad9a069b29d.js.map deleted file mode 100644 index 2adcc2b6..00000000 --- a/app/main.d8139e017ad9a069b29d.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./jslib/src/abstractions/i18n.service.ts","webpack:///./jslib/src/abstractions/platformUtils.service.ts","webpack:///./jslib/src/abstractions/api.service.ts","webpack:///./jslib/src/abstractions/user.service.ts","webpack:///./jslib/src/angular/pipes/i18n.pipe.ts","webpack:///./jslib/src/abstractions/messaging.service.ts","webpack:///./jslib/src/angular/directives/api-action.directive.ts","webpack:///./jslib/src/angular/directives/a11y-title.directive.ts","webpack:///./jslib/src/abstractions/crypto.service.ts","webpack:///./jslib/src/abstractions/cipher.service.ts","webpack:///./jslib/src/models/response/baseResponse.ts","webpack:///./jslib/src/angular/components/callout.component.ts","webpack:///./jslib/src/angular/components/callout.component.html","webpack:///./jslib/src/importers/baseImporter.ts","webpack:///./jslib/src/models/domain/importResult.ts","webpack:///./jslib/src/misc/utils.ts","webpack:///./jslib/src/abstractions/passwordGeneration.service.ts","webpack:///./jslib/src/angular/directives/stop-click.directive.ts","webpack:///./jslib/src/abstractions/state.service.ts","webpack:///./jslib/src/enums/cipherType.ts","webpack:///./jslib/src/abstractions/collection.service.ts","webpack:///./jslib/src/abstractions/storage.service.ts","webpack:///./jslib/src/abstractions/policy.service.ts","webpack:///./jslib/src/angular/directives/input-verbatim.directive.ts","webpack:///./jslib/src/abstractions/folder.service.ts","webpack:///./jslib/src/angular/directives/stop-prop.directive.ts","webpack:///./jslib/src/abstractions/auth.service.ts","webpack:///./jslib/src/abstractions/sync.service.ts","webpack:///./jslib/src/abstractions/environment.service.ts","webpack:///./jslib/src/angular/directives/autofocus.directive.ts","webpack:///./jslib/src/services/constants.service.ts","webpack:///./jslib/src/abstractions/event.service.ts","webpack:///./jslib/src/models/request/passwordVerificationRequest.ts","webpack:///./jslib/src/abstractions/search.service.ts","webpack:///./jslib/src/models/domain/domainBase.ts","webpack:///./src/app/modal.component.ts","webpack:///./jslib/src/abstractions/audit.service.ts","webpack:///./jslib/src/models/view/cardView.ts","webpack:///./jslib/src/models/view/secureNoteView.ts","webpack:///./jslib/src/abstractions/token.service.ts","webpack:///./jslib/src/abstractions/cryptoFunction.service.ts","webpack:///./jslib/src/models/domain/cipherString.ts","webpack:///./jslib/src/angular/components/icon.component.ts","webpack:///./jslib/src/angular/components/icon.component.html","webpack:///./jslib/src/angular/services/broadcaster.service.ts","webpack:///./jslib/src/abstractions/vaultTimeout.service.ts","webpack:///./jslib/src/enums/secureNoteType.ts","webpack:///./jslib/src/enums/twoFactorProviderType.ts","webpack:///./jslib/src/abstractions/totp.service.ts","webpack:///./src/app/settings/payment.component.ts","webpack:///./src/app/settings/payment.component.html","webpack:///./jslib/src/enums/fieldType.ts","webpack:///./jslib/src/models/view/folderView.ts","webpack:///./src/app/components/avatar.component.ts","webpack:///./jslib/src/models/domain/collection.ts","webpack:///./jslib/src/enums/policyType.ts","webpack:///./src/app/settings/tax-info.component.ts","webpack:///./src/app/settings/tax-info.component.html","webpack:///./jslib/src/models/view/cipherView.ts","webpack:///./jslib/src/models/view/identityView.ts","webpack:///./jslib/src/models/data/collectionData.ts","webpack:///./jslib/src/models/view/collectionView.ts","webpack:///./jslib/src/enums/organizationUserStatusType.ts","webpack:///./jslib/src/models/data/cipherData.ts","webpack:///./jslib/src/models/view/loginView.ts","webpack:///./jslib/src/enums/sendType.ts","webpack:///./src/app/settings/two-factor-verify.component.ts","webpack:///./src/app/settings/two-factor-verify.component.html","webpack:///./jslib/src/abstractions/export.service.ts","webpack:///./jslib/src/models/domain/cipher.ts","webpack:///./jslib/src/abstractions/send.service.ts","webpack:///./jslib/src/models/view/fieldView.ts","webpack:///./jslib/src/models/request/cipherRequest.ts","webpack:///./src/app/services/router.service.ts","webpack:///./jslib/src/enums/kdfType.ts","webpack:///./src/app/components/password-strength.component.ts","webpack:///./src/app/components/password-strength.component.html","webpack:///./jslib/src/enums/organizationUserType.ts","webpack:///./jslib/src/angular/pipes/search.pipe.ts","webpack:///./src/app/services/event.service.ts","webpack:///./jslib/src/enums/eventType.ts","webpack:///./jslib/src/enums/paymentMethodType.ts","webpack:///./src/app/settings/two-factor-base.component.ts","webpack:///./src/app/tools/cipher-report.component.ts","webpack:///./jslib/src/models/view/loginUriView.ts","webpack:///./src/app/vault/add-edit.component.ts","webpack:///./src/app/vault/add-edit.component.html","webpack:///./jslib/src/abstractions/import.service.ts","webpack:///./src/app/vault/ciphers.component.ts","webpack:///./src/app/vault/ciphers.component.html","webpack:///./jslib/src/services/auth.service.ts","webpack:///./jslib/src/models/request/selectionReadOnlyRequest.ts","webpack:///./jslib/src/enums/deviceType.ts","webpack:///./jslib/src/abstractions/settings.service.ts","webpack:///./jslib/src/enums/planType.ts","webpack:///./src/app/settings/organization-plans.component.ts","webpack:///./src/app/settings/organization-plans.component.html","webpack:///./jslib/src/models/domain/symmetricCryptoKey.ts","webpack:///./jslib/src/models/domain/card.ts","webpack:///./jslib/src/models/domain/field.ts","webpack:///./jslib/src/models/domain/identity.ts","webpack:///./jslib/src/models/domain/login.ts","webpack:///./jslib/src/models/domain/loginUri.ts","webpack:///./jslib/src/enums/uriMatchType.ts","webpack:///./jslib/src/models/domain/secureNote.ts","webpack:///./jslib/src/angular/directives/true-false-value.directive.ts","webpack:///./src/app/vault/groupings.component.ts","webpack:///./src/app/vault/groupings.component.html","webpack:///./jslib/src/models/domain/organization.ts","webpack:///./jslib/src/models/view/sendFileView.ts","webpack:///./jslib/src/models/view/sendTextView.ts","webpack:///./src/app/settings/organizations.component.ts","webpack:///./src/app/settings/organizations.component.html","webpack:///./jslib/src/models/response/selectionReadOnlyResponse.ts","webpack:///./src/app/layouts/navbar.component.ts","webpack:///./src/app/layouts/navbar.component.html","webpack:///./src/app/layouts/footer.component.ts","webpack:///./src/app/layouts/footer.component.html","webpack:///./jslib/src/angular/services/validation.service.ts","webpack:///./jslib/src/enums/encryptionType.ts","webpack:///./jslib/src/models/request/keysRequest.ts","webpack:///./jslib/src/models/domain/policy.ts","webpack:///./jslib/src/models/data/policyData.ts","webpack:///./jslib/src/angular/components/change-password.component.ts","webpack:///./src/app/organizations/manage/entity-users.component.ts","webpack:///./src/app/organizations/manage/entity-users.component.html","webpack:///./src/app/organizations/manage/entity-events.component.ts","webpack:///./src/app/organizations/manage/entity-events.component.html","webpack:///./jslib/src/models/api/permissionsApi.ts","webpack:///./src/app/settings/api-key.component.ts","webpack:///./src/app/settings/api-key.component.html","webpack:///./src/app/settings/purge-vault.component.ts","webpack:///./src/app/settings/purge-vault.component.html","webpack:///./src/app/settings/user-billing.component.ts","webpack:///./src/app/settings/user-billing.component.html","webpack:///./src/app/settings/add-credit.component.ts","webpack:///./src/app/settings/add-credit.component.html","webpack:///./src/app/settings/adjust-payment.component.ts","webpack:///./src/app/settings/adjust-payment.component.html","webpack:///./src/app/settings/update-license.component.ts","webpack:///./src/app/settings/update-license.component.html","webpack:///./jslib/src/enums/productType.ts","webpack:///./src/app/settings/adjust-storage.component.ts","webpack:///./src/app/settings/adjust-storage.component.html","webpack:///./src/app/settings/two-factor-duo.component.ts","webpack:///./src/app/settings/two-factor-duo.component.html","webpack:///./src/app/settings/two-factor-setup.component.ts","webpack:///./src/app/settings/two-factor-setup.component.html","webpack:///./src/app/tools/export.component.ts","webpack:///./src/app/tools/export.component.html","webpack:///./src/app/tools/exposed-passwords-report.component.ts","webpack:///./src/app/tools/exposed-passwords-report.component.html","webpack:///./src/app/organizations/vault/add-edit.component.ts","webpack:///./jslib/src/models/data/attachmentData.ts","webpack:///./jslib/src/models/data/cardData.ts","webpack:///./jslib/src/models/data/fieldData.ts","webpack:///./jslib/src/models/data/identityData.ts","webpack:///./jslib/src/models/data/loginData.ts","webpack:///./jslib/src/models/data/loginUriData.ts","webpack:///./jslib/src/models/data/secureNoteData.ts","webpack:///./jslib/src/models/domain/attachment.ts","webpack:///./jslib/src/models/view/passwordHistoryView.ts","webpack:///./src/app/tools/import.component.ts","webpack:///./src/app/tools/import.component.html","webpack:///./src/app/tools/inactive-two-factor-report.component.ts","webpack:///./src/app/tools/inactive-two-factor-report.component.html","webpack:///./src/app/tools/reused-passwords-report.component.ts","webpack:///./src/app/tools/reused-passwords-report.component.html","webpack:///./src/app/tools/unsecured-websites-report.component.ts","webpack:///./src/app/tools/unsecured-websites-report.component.html","webpack:///./src/app/tools/weak-passwords-report.component.ts","webpack:///./src/app/tools/weak-passwords-report.component.html","webpack:///./src/app/vault/attachments.component.ts","webpack:///./src/app/vault/attachments.component.html","webpack:///./src/app/organizations/vault/ciphers.component.ts","webpack:///./src/app/vault/collections.component.ts","webpack:///./src/app/vault/collections.component.html","webpack:///./src/app/organizations/vault/groupings.component.ts","webpack:///./src/app/vault/bulk-actions.component.ts","webpack:///./src/app/vault/bulk-actions.component.html","webpack:///./jslib/src/models/domain/sendFile.ts","webpack:///./jslib/src/models/domain/sendText.ts","webpack:///./jslib/src/models/response/errorResponse.ts","webpack:///./jslib/src/models/request/cipherWithIdRequest.ts","webpack:///./jslib/src/models/request/folderRequest.ts","webpack:///./jslib/src/angular/directives/select-copy.directive.ts","webpack:///./jslib/src/angular/pipes/color-password.pipe.ts","webpack:///./jslib/src/models/data/folderData.ts","webpack:///./jslib/src/models/domain/folder.ts","webpack:///./jslib/src/models/response/cipherResponse.ts","webpack:///./jslib/src/models/response/profileResponse.ts","webpack:///./jslib/src/models/api/sendFileApi.ts","webpack:///./jslib/src/models/api/sendTextApi.ts","webpack:///./jslib/src/abstractions/notifications.service.ts","webpack:///./$_lazy_route_resource lazy namespace object","webpack:///./src/app/layouts/frontend-layout.component.ts","webpack:///./src/app/layouts/frontend-layout.component.html","webpack:///./src/app/layouts/organization-layout.component.ts","webpack:///./src/app/layouts/organization-layout.component.html","webpack:///./src/app/layouts/user-layout.component.ts","webpack:///./src/app/layouts/user-layout.component.html","webpack:///./src/app/accounts/accept-emergency.component.ts","webpack:///./src/app/accounts/accept-emergency.component.html","webpack:///./src/app/accounts/accept-organization.component.ts","webpack:///./src/app/accounts/accept-organization.component.html","webpack:///./src/app/accounts/hint.component.ts","webpack:///./src/app/accounts/hint.component.html","webpack:///./src/app/accounts/lock.component.ts","webpack:///./src/app/accounts/lock.component.html","webpack:///./src/app/accounts/login.component.ts","webpack:///./src/app/accounts/login.component.html","webpack:///./src/app/accounts/recover-delete.component.ts","webpack:///./src/app/accounts/recover-delete.component.html","webpack:///./src/app/accounts/recover-two-factor.component.ts","webpack:///./src/app/accounts/recover-two-factor.component.html","webpack:///./src/app/accounts/register.component.ts","webpack:///./src/app/accounts/register.component.html","webpack:///./src/app/accounts/set-password.component.ts","webpack:///./src/app/accounts/set-password.component.html","webpack:///./src/app/accounts/sso.component.ts","webpack:///./src/app/accounts/sso.component.html","webpack:///./jslib/src/angular/components/sso.component.ts","webpack:///./src/app/accounts/two-factor.component.ts","webpack:///./src/app/accounts/two-factor.component.html","webpack:///./src/app/accounts/two-factor-options.component.ts","webpack:///./src/app/accounts/two-factor-options.component.html","webpack:///./jslib/src/models/request/twoFactorEmailRequest.ts","webpack:///./jslib/src/models/domain/authResult.ts","webpack:///./src/app/accounts/verify-email-token.component.ts","webpack:///./src/app/accounts/verify-email-token.component.html","webpack:///./src/app/accounts/verify-recover-delete.component.ts","webpack:///./src/app/accounts/verify-recover-delete.component.html","webpack:///./src/app/organizations/manage/collections.component.ts","webpack:///./src/app/organizations/manage/collections.component.html","webpack:///./src/app/organizations/manage/collection-add-edit.component.ts","webpack:///./src/app/organizations/manage/collection-add-edit.component.html","webpack:///./jslib/src/models/request/collectionRequest.ts","webpack:///./src/app/organizations/manage/events.component.ts","webpack:///./src/app/organizations/manage/events.component.html","webpack:///./src/app/organizations/manage/groups.component.ts","webpack:///./src/app/organizations/manage/groups.component.html","webpack:///./src/app/organizations/manage/group-add-edit.component.ts","webpack:///./src/app/organizations/manage/group-add-edit.component.html","webpack:///./src/app/organizations/manage/manage.component.ts","webpack:///./src/app/organizations/manage/manage.component.html","webpack:///./src/app/organizations/manage/people.component.ts","webpack:///./src/app/organizations/manage/people.component.html","webpack:///./jslib/src/models/request/organizationUserConfirmRequest.ts","webpack:///./src/app/organizations/manage/user-add-edit.component.ts","webpack:///./src/app/organizations/manage/user-add-edit.component.html","webpack:///./src/app/organizations/manage/user-confirm.component.ts","webpack:///./src/app/organizations/manage/user-confirm.component.html","webpack:///./src/app/organizations/manage/user-groups.component.ts","webpack:///./src/app/organizations/manage/user-groups.component.html","webpack:///./src/app/organizations/manage/policies.component.ts","webpack:///./src/app/organizations/manage/policies.component.html","webpack:///./jslib/src/abstractions/index.ts","webpack:///./src/app/organizations/manage/policy-edit.component.ts","webpack:///./src/app/organizations/manage/policy-edit.component.html","webpack:///./src/app/organizations/settings/account.component.ts","webpack:///./src/app/organizations/settings/account.component.html","webpack:///./jslib/src/models/request/organizationTaxInfoUpdateRequest.ts","webpack:///./jslib/src/models/request/taxInfoUpdateRequest.ts","webpack:///./src/app/organizations/settings/delete-organization.component.ts","webpack:///./src/app/organizations/settings/delete-organization.component.html","webpack:///./src/app/organizations/settings/organization-billing.component.ts","webpack:///./src/services/webConstants.ts","webpack:///./src/app/organizations/settings/organization-subscription.component.ts","webpack:///./src/app/organizations/settings/organization-subscription.component.html","webpack:///./src/app/organizations/settings/change-plan.component.ts","webpack:///./src/app/organizations/settings/change-plan.component.html","webpack:///./src/app/organizations/settings/download-license.component.ts","webpack:///./src/app/organizations/settings/download-license.component.html","webpack:///./src/app/organizations/settings/adjust-seats.component.ts","webpack:///./src/app/organizations/settings/adjust-seats.component.html","webpack:///./src/app/organizations/settings/settings.component.ts","webpack:///./src/app/organizations/settings/settings.component.html","webpack:///./src/app/organizations/settings/two-factor-setup.component.ts","webpack:///./src/app/settings/two-factor-authenticator.component.ts","webpack:///./src/app/settings/two-factor-authenticator.component.html","webpack:///./src/app/settings/two-factor-email.component.ts","webpack:///./src/app/settings/two-factor-email.component.html","webpack:///./src/app/settings/two-factor-recovery.component.ts","webpack:///./src/app/settings/two-factor-recovery.component.html","webpack:///./src/app/settings/two-factor-u2f.component.ts","webpack:///./src/app/settings/two-factor-u2f.component.html","webpack:///./src/app/settings/two-factor-yubikey.component.ts","webpack:///./src/app/settings/two-factor-yubikey.component.html","webpack:///./src/app/organizations/tools/export.component.ts","webpack:///./src/app/organizations/tools/exposed-passwords-report.component.ts","webpack:///./jslib/src/models/data/passwordHistoryData.ts","webpack:///./jslib/src/models/view/attachmentView.ts","webpack:///./jslib/src/models/domain/password.ts","webpack:///./jslib/src/models/request/cipherCreateRequest.ts","webpack:///./jslib/src/models/api/cardApi.ts","webpack:///./jslib/src/models/api/fieldApi.ts","webpack:///./jslib/src/models/api/identityApi.ts","webpack:///./jslib/src/models/api/loginApi.ts","webpack:///./jslib/src/models/api/loginUriApi.ts","webpack:///./jslib/src/models/api/secureNoteApi.ts","webpack:///./jslib/src/angular/directives/fallback-src.directive.ts","webpack:///./src/app/organizations/tools/import.component.ts","webpack:///./src/app/organizations/tools/inactive-two-factor-report.component.ts","webpack:///./src/app/organizations/tools/reused-passwords-report.component.ts","webpack:///./src/app/organizations/tools/tools.component.ts","webpack:///./src/app/organizations/tools/tools.component.html","webpack:///./src/app/organizations/tools/unsecured-websites-report.component.ts","webpack:///./src/app/organizations/tools/weak-passwords-report.component.ts","webpack:///./src/app/organizations/vault/vault.component.ts","webpack:///./src/app/organizations/vault/vault.component.html","webpack:///./src/app/organizations/vault/attachments.component.ts","webpack:///./jslib/src/angular/components/attachments.component.ts","webpack:///./src/app/organizations/vault/collections.component.ts","webpack:///./jslib/src/models/request/cipherCollectionsRequest.ts","webpack:///./src/app/vault/bulk-delete.component.ts","webpack:///./src/app/vault/bulk-delete.component.html","webpack:///./jslib/src/models/request/cipherBulkDeleteRequest.ts","webpack:///./src/app/vault/bulk-move.component.ts","webpack:///./src/app/vault/bulk-move.component.html","webpack:///./src/app/vault/bulk-restore.component.ts","webpack:///./src/app/vault/bulk-restore.component.html","webpack:///./src/app/vault/bulk-share.component.ts","webpack:///./src/app/vault/bulk-share.component.html","webpack:///./src/app/send/access.component.ts","webpack:///./src/app/send/access.component.html","webpack:///./src/app/send/send.component.ts","webpack:///./src/app/send/send.component.html","webpack:///./src/app/send/add-edit.component.ts","webpack:///./src/app/send/add-edit.component.html","webpack:///./jslib/src/models/view/sendView.ts","webpack:///./src/app/settings/account.component.ts","webpack:///./src/app/settings/account.component.html","webpack:///./src/app/settings/deauthorize-sessions.component.ts","webpack:///./src/app/settings/deauthorize-sessions.component.html","webpack:///./src/app/settings/delete-account.component.ts","webpack:///./src/app/settings/delete-account.component.html","webpack:///./src/app/settings/profile.component.ts","webpack:///./src/app/settings/profile.component.html","webpack:///./src/app/settings/change-email.component.ts","webpack:///./src/app/settings/change-email.component.html","webpack:///./jslib/src/models/request/emailTokenRequest.ts","webpack:///./src/app/settings/change-password.component.ts","webpack:///./src/app/settings/change-password.component.html","webpack:///./jslib/src/enums/emergencyAccessStatusType.ts","webpack:///./jslib/src/models/request/emergencyAccessUpdateRequest.ts","webpack:///./jslib/src/models/request/folderWithIdRequest.ts","webpack:///./jslib/src/models/request/passwordRequest.ts","webpack:///./jslib/src/models/request/updateKeyRequest.ts","webpack:///./src/app/settings/change-kdf.component.ts","webpack:///./src/app/settings/change-kdf.component.html","webpack:///./src/app/settings/create-organization.component.ts","webpack:///./src/app/settings/create-organization.component.html","webpack:///./src/app/settings/domain-rules.component.ts","webpack:///./src/app/settings/domain-rules.component.html","webpack:///./src/app/settings/options.component.ts","webpack:///./src/app/settings/options.component.html","webpack:///./src/app/settings/link-sso.component.ts","webpack:///./src/app/settings/link-sso.component.html","webpack:///./src/app/settings/premium.component.ts","webpack:///./src/app/settings/premium.component.html","webpack:///./src/app/settings/settings.component.ts","webpack:///./src/app/settings/settings.component.html","webpack:///./src/app/settings/user-subscription.component.ts","webpack:///./src/app/settings/user-subscription.component.html","webpack:///./src/app/tools/breach-report.component.ts","webpack:///./src/app/tools/breach-report.component.html","webpack:///./src/app/tools/password-generator.component.ts","webpack:///./src/app/tools/password-generator.component.html","webpack:///./src/app/tools/password-generator-history.component.ts","webpack:///./src/app/tools/password-generator-history.component.html","webpack:///./src/app/tools/tools.component.ts","webpack:///./src/app/tools/tools.component.html","webpack:///./src/app/vault/vault.component.ts","webpack:///./src/app/vault/vault.component.html","webpack:///./src/app/settings/update-key.component.ts","webpack:///./src/app/settings/update-key.component.html","webpack:///./src/app/vault/folder-add-edit.component.ts","webpack:///./src/app/vault/folder-add-edit.component.html","webpack:///./src/app/vault/share.component.ts","webpack:///./src/app/vault/share.component.html","webpack:///./src/app/vault/send-info.component.ts","webpack:///./src/app/vault/send-info.component.html","webpack:///./src/app/settings/verify-email.component.ts","webpack:///./src/app/settings/verify-email.component.html","webpack:///./src/app/services/organization-guard.service.ts","webpack:///./src/app/services/organization-type-guard.service.ts","webpack:///./jslib/src/enums/permissions.ts","webpack:///./src/app/services/unauth-guard.service.ts","webpack:///./jslib/src/angular/services/auth-guard.service.ts","webpack:///./src/app/settings/emergency-access-view.component.ts","webpack:///./src/app/settings/emergency-access-view.component.html","webpack:///./jslib/src/models/domain/encryptedObject.ts","webpack:///./jslib/src/models/domain/environmentUrls.ts","webpack:///./jslib/src/models/domain/generatedPasswordHistory.ts","webpack:///./src/app/settings/emergency-access-attachments.component.ts","webpack:///./src/app/settings/emergency-add-edit.component.ts","webpack:///./src/app/settings/emergency-access.component.ts","webpack:///./src/app/settings/emergency-access.component.html","webpack:///./jslib/src/enums/emergencyAccessType.ts","webpack:///./jslib/src/models/response/emergencyAccessResponse.ts","webpack:///./src/app/settings/emergency-access-add-edit.component.ts","webpack:///./src/app/settings/emergency-access-add-edit.component.html","webpack:///./src/app/settings/emergency-access-confirm.component.ts","webpack:///./src/app/settings/emergency-access-confirm.component.html","webpack:///./src/app/settings/emergency-access-takeover.component.ts","webpack:///./src/app/settings/emergency-access-takeover.component.html","webpack:///./jslib/src/services/api.service.ts","webpack:///./jslib/src/models/response/collectionResponse.ts","webpack:///./jslib/src/models/response/domainsResponse.ts","webpack:///./jslib/src/models/response/folderResponse.ts","webpack:///./jslib/src/models/response/organizationResponse.ts","webpack:///./jslib/src/models/response/planResponse.ts","webpack:///./jslib/src/models/response/subscriptionResponse.ts","webpack:///./jslib/src/models/response/policyResponse.ts","webpack:///./jslib/src/models/response/sendResponse.ts","webpack:///./jslib/src/services/appId.service.ts","webpack:///./jslib/src/services/audit.service.ts","webpack:///./jslib/src/services/cipher.service.ts","webpack:///./jslib/src/misc/sequentialize.ts","webpack:///./jslib/src/services/collection.service.ts","webpack:///./jslib/src/misc/serviceUtils.ts","webpack:///./jslib/src/services/container.service.ts","webpack:///./jslib/src/services/crypto.service.ts","webpack:///./jslib/src/misc/wordlist.ts","webpack:///./jslib/src/services/environment.service.ts","webpack:///./jslib/src/services/folder.service.ts","webpack:///./jslib/src/services/i18n.service.ts","webpack:///./jslib/src/services/passwordGeneration.service.ts","webpack:///./jslib/src/services/settings.service.ts","webpack:///./jslib/src/services/state.service.ts","webpack:///./jslib/src/services/sync.service.ts","webpack:///./jslib/src/models/data/sendData.ts","webpack:///./jslib/src/services/token.service.ts","webpack:///./jslib/src/services/totp.service.ts","webpack:///./jslib/src/services/user.service.ts","webpack:///./jslib/src/services/vaultTimeout.service.ts","webpack:///./jslib/src/services/consoleLog.service.ts","webpack:///./jslib/src/models/export/cipherWithIds.ts","webpack:///./jslib/src/models/export/collectionWithId.ts","webpack:///./jslib/src/models/export/folderWithId.ts","webpack:///./jslib/src/importers/onepasswordImporters/onepasswordCsvImporter.ts","webpack:///./jslib/src/models/view/index.ts","webpack:///./jslib/src/enums/notificationType.ts","webpack:///./src/app/main.ts","webpack:///./src/app/app.module.ts","webpack:///./src/app/app-routing.module.ts","webpack:///./jslib/src/services/broadcaster.service.ts","webpack:///./jslib/src/misc/tldjs.noop.ts","webpack:///./jslib/src/models/request/emergencyAccessAcceptRequest.ts","webpack:///./jslib/src/models/request/organizationUserAcceptRequest.ts","webpack:///./jslib/src/angular/components/hint.component.ts","webpack:///./jslib/src/models/request/passwordHintRequest.ts","webpack:///./jslib/src/angular/components/lock.component.ts","webpack:///./jslib/src/angular/components/login.component.ts","webpack:///./jslib/src/models/request/deleteRecoverRequest.ts","webpack:///./jslib/src/models/request/twoFactorRecoveryRequest.ts","webpack:///./jslib/src/angular/components/register.component.ts","webpack:///./jslib/src/models/request/registerRequest.ts","webpack:///./jslib/src/models/request/referenceEventRequest.ts","webpack:///./jslib/src/angular/components/set-password.component.ts","webpack:///./jslib/src/models/request/setPasswordRequest.ts","webpack:///./jslib/src/angular/components/two-factor-options.component.ts","webpack:///./jslib/src/angular/components/modal.component.ts","webpack:///./jslib/src/angular/components/two-factor.component.ts","webpack:///./jslib/src/models/request/deviceRequest.ts","webpack:///./jslib/src/models/request/preloginRequest.ts","webpack:///./jslib/src/models/request/tokenRequest.ts","webpack:///./jslib/src/misc/u2f.ts","webpack:///./jslib/src/models/request/verifyEmailRequest.ts","webpack:///./jslib/src/models/request/verifyDeleteRecoverRequest.ts","webpack:///./jslib/src/models/request/groupRequest.ts","webpack:///./jslib/src/models/request/organizationUserInviteRequest.ts","webpack:///./jslib/src/models/request/organizationUserUpdateRequest.ts","webpack:///./jslib/src/models/request/organizationUserUpdateGroupsRequest.ts","webpack:///./jslib/src/abstractions/appId.service.ts","webpack:///./jslib/src/abstractions/log.service.ts","webpack:///./jslib/src/models/request/policyRequest.ts","webpack:///./jslib/src/models/request/organizationUpdateRequest.ts","webpack:///./jslib/src/enums/transactionType.ts","webpack:///./jslib/src/models/request/verifyBankRequest.ts","webpack:///./jslib/src/models/request/bitPayInvoiceRequest.ts","webpack:///./jslib/src/models/request/paymentRequest.ts","webpack:///./jslib/src/models/request/organizationCreateRequest.ts","webpack:///./jslib/src/models/request/organizationUpgradeRequest.ts","webpack:///./jslib/src/models/request/seatRequest.ts","webpack:///./jslib/src/models/request/storageRequest.ts","webpack:///./jslib/src/models/request/updateTwoFactorDuoRequest.ts","webpack:///./jslib/src/models/request/twoFactorProviderRequest.ts","webpack:///./jslib/src/models/request/updateTwoFactorAuthenticatorRequest.ts","webpack:///./jslib/src/models/request/updateTwoFactorEmailRequest.ts","webpack:///./jslib/src/models/request/updateTwoFactorU2fDeleteRequest.ts","webpack:///./jslib/src/models/request/updateTwoFactorU2fRequest.ts","webpack:///./jslib/src/models/request/updateTwoFactorYubioOtpRequest.ts","webpack:///./jslib/src/angular/components/export.component.ts","webpack:///./jslib/src/models/request/attachmentRequest.ts","webpack:///./jslib/src/angular/components/add-edit.component.ts","webpack:///./jslib/src/angular/components/ciphers.component.ts","webpack:///./jslib/src/angular/components/collections.component.ts","webpack:///./jslib/src/angular/components/groupings.component.ts","webpack:///./jslib/src/models/domain/sendAccess.ts","webpack:///./jslib/src/models/view/sendAccessView.ts","webpack:///./jslib/src/models/request/sendAccessRequest.ts","webpack:///./jslib/src/angular/components/send/send.component.ts","webpack:///./jslib/src/angular/components/send/add-edit.component.ts","webpack:///./jslib/src/models/request/updateProfileRequest.ts","webpack:///./jslib/src/models/request/emailRequest.ts","webpack:///./jslib/src/models/request/kdfRequest.ts","webpack:///./jslib/src/models/request/updateDomainsRequest.ts","webpack:///./jslib/src/angular/components/password-generator.component.ts","webpack:///./jslib/src/angular/components/password-generator-history.component.ts","webpack:///./jslib/src/angular/components/folder-add-edit.component.ts","webpack:///./jslib/src/angular/components/share.component.ts","webpack:///./jslib/src/models/data/index.ts","webpack:///./jslib/src/models/domain/index.ts","webpack:///./jslib/src/models/request/emergencyAccessConfirmRequest.ts","webpack:///./jslib/src/models/response/attachmentResponse.ts","webpack:///./jslib/src/models/response/passwordHistoryResponse.ts","webpack:///./jslib/src/models/request/emergencyAccessInviteRequest.ts","webpack:///./jslib/src/models/request/emergencyAccessPasswordRequest.ts","webpack:///./src/app/services/services.module.ts","webpack:///./src/services/broadcasterMessaging.service.ts","webpack:///./src/services/htmlStorage.service.ts","webpack:///./jslib/src/services/index.ts","webpack:///./jslib/src/models/response/apiKeyResponse.ts","webpack:///./jslib/src/models/response/billingResponse.ts","webpack:///./jslib/src/models/response/breachAccountResponse.ts","webpack:///./jslib/src/models/response/globalDomainResponse.ts","webpack:///./jslib/src/models/response/eventResponse.ts","webpack:///./jslib/src/models/response/groupResponse.ts","webpack:///./jslib/src/models/response/identityTokenResponse.ts","webpack:///./jslib/src/models/response/identityTwoFactorResponse.ts","webpack:///./jslib/src/models/response/listResponse.ts","webpack:///./jslib/src/models/response/organizationSubscriptionResponse.ts","webpack:///./jslib/src/models/response/organizationUserResponse.ts","webpack:///./jslib/src/models/response/paymentResponse.ts","webpack:///./jslib/src/models/response/profileOrganizationResponse.ts","webpack:///./jslib/src/models/response/preloginResponse.ts","webpack:///./jslib/src/models/response/sendAccessResponse.ts","webpack:///./jslib/src/models/response/sendFileDownloadDataResponse.ts","webpack:///./jslib/src/models/response/syncResponse.ts","webpack:///./jslib/src/models/response/taxInfoResponse.ts","webpack:///./jslib/src/models/response/taxRateResponse.ts","webpack:///./jslib/src/models/response/twoFactorAuthenticatorResponse.ts","webpack:///./jslib/src/models/response/twoFactorDuoResponse.ts","webpack:///./jslib/src/models/response/twoFactorEmailResponse.ts","webpack:///./jslib/src/models/response/twoFactorProviderResponse.ts","webpack:///./jslib/src/models/response/twoFactorRescoverResponse.ts","webpack:///./jslib/src/models/response/twoFactorU2fResponse.ts","webpack:///./jslib/src/models/response/twoFactorYubiKeyResponse.ts","webpack:///./jslib/src/models/response/userKeyResponse.ts","webpack:///./jslib/src/misc/throttle.ts","webpack:///./jslib/src/models/request/cipherBulkMoveRequest.ts","webpack:///./jslib/src/models/request/cipherBulkRestoreRequest.ts","webpack:///./jslib/src/models/request/cipherBulkShareRequest.ts","webpack:///./jslib/src/models/request/cipherShareRequest.ts","webpack:///./jslib/src/models/domain/sortedCiphersCache.ts","webpack:///./jslib/src/models/domain/treeNode.ts","webpack:///./jslib/src/models/domain/passwordGeneratorPolicyOptions.ts","webpack:///./jslib/src/models/data/organizationData.ts","webpack:///./jslib/src/models/data/sendFileData.ts","webpack:///./jslib/src/models/data/sendTextData.ts","webpack:///./src/services/i18n.service.ts","webpack:///./src/services/memoryStorage.service.ts","webpack:///./src/services/webPlatformUtils.service.ts","webpack:///./jslib/src/misc/analytics.ts","webpack:///./jslib/src/enums/logLevelType.ts","webpack:///./jslib/src/services/event.service.ts","webpack:///./jslib/src/models/data/eventData.ts","webpack:///./jslib/src/models/request/eventRequest.ts","webpack:///./jslib/src/services/export.service.ts","webpack:///./jslib/src/models/export/cipher.ts","webpack:///./jslib/src/models/export/card.ts","webpack:///./jslib/src/models/export/field.ts","webpack:///./jslib/src/models/export/identity.ts","webpack:///./jslib/src/models/export/login.ts","webpack:///./jslib/src/models/export/loginUri.ts","webpack:///./jslib/src/models/export/secureNote.ts","webpack:///./jslib/src/models/export/collection.ts","webpack:///./jslib/src/models/export/folder.ts","webpack:///./jslib/src/services/import.service.ts","webpack:///./jslib/src/models/request/importCiphersRequest.ts","webpack:///./jslib/src/models/request/importOrganizationCiphersRequest.ts","webpack:///./jslib/src/models/request/kvpRequest.ts","webpack:///./jslib/src/importers/ascendoCsvImporter.ts","webpack:///./jslib/src/importers/avastCsvImporter.ts","webpack:///./jslib/src/importers/avastJsonImporter.ts","webpack:///./jslib/src/importers/aviraCsvImporter.ts","webpack:///./jslib/src/importers/bitwardenCsvImporter.ts","webpack:///./jslib/src/importers/bitwardenJsonImporter.ts","webpack:///./jslib/src/importers/blackBerryCsvImporter.ts","webpack:///./jslib/src/importers/blurCsvImporter.ts","webpack:///./jslib/src/importers/buttercupCsvImporter.ts","webpack:///./jslib/src/importers/chromeCsvImporter.ts","webpack:///./jslib/src/importers/clipperzHtmlImporter.ts","webpack:///./jslib/src/importers/codebookCsvImporter.ts","webpack:///./jslib/src/importers/dashlaneJsonImporter.ts","webpack:///./jslib/src/importers/encryptrCsvImporter.ts","webpack:///./jslib/src/importers/enpassCsvImporter.ts","webpack:///./jslib/src/importers/enpassJsonImporter.ts","webpack:///./jslib/src/importers/firefoxCsvImporter.ts","webpack:///./jslib/src/importers/fsecureFskImporter.ts","webpack:///./jslib/src/importers/gnomeJsonImporter.ts","webpack:///./jslib/src/importers/kasperskyTxtImporter.ts","webpack:///./jslib/src/importers/keepass2XmlImporter.ts","webpack:///./jslib/src/importers/keepassxCsvImporter.ts","webpack:///./jslib/src/importers/keeperCsvImporter.ts","webpack:///./jslib/src/importers/lastpassCsvImporter.ts","webpack:///./jslib/src/importers/logMeOnceCsvImporter.ts","webpack:///./jslib/src/importers/meldiumCsvImporter.ts","webpack:///./jslib/src/importers/msecureCsvImporter.ts","webpack:///./jslib/src/importers/mykiCsvImporter.ts","webpack:///./jslib/src/importers/onepasswordImporters/onepassword1PifImporter.ts","webpack:///./jslib/src/importers/onepasswordImporters/onepasswordMacCsvImporter.ts","webpack:///./jslib/src/importers/onepasswordImporters/cipherImportContext.ts","webpack:///./jslib/src/models/view/view.ts","webpack:///./jslib/src/importers/onepasswordImporters/onepasswordWinCsvImporter.ts","webpack:///./jslib/src/importers/padlockCsvImporter.ts","webpack:///./jslib/src/importers/passkeepCsvImporter.ts","webpack:///./jslib/src/importers/passmanJsonImporter.ts","webpack:///./jslib/src/importers/passpackCsvImporter.ts","webpack:///./jslib/src/importers/passwordAgentCsvImporter.ts","webpack:///./jslib/src/importers/passwordBossJsonImporter.ts","webpack:///./jslib/src/importers/passwordDragonXmlImporter.ts","webpack:///./jslib/src/importers/passwordSafeXmlImporter.ts","webpack:///./jslib/src/importers/passwordWalletTxtImporter.ts","webpack:///./jslib/src/importers/rememBearCsvImporter.ts","webpack:///./jslib/src/importers/roboformCsvImporter.ts","webpack:///./jslib/src/importers/safeInCloudXmlImporter.ts","webpack:///./jslib/src/importers/saferpassCsvImport.ts","webpack:///./jslib/src/importers/secureSafeCsvImporter.ts","webpack:///./jslib/src/importers/splashIdCsvImporter.ts","webpack:///./jslib/src/importers/stickyPasswordXmlImporter.ts","webpack:///./jslib/src/importers/truekeyCsvImporter.ts","webpack:///./jslib/src/importers/upmCsvImporter.ts","webpack:///./jslib/src/importers/yotiCsvImporter.ts","webpack:///./jslib/src/importers/zohoVaultCsvImporter.ts","webpack:///./jslib/src/services/notifications.service.ts","webpack:///./jslib/src/models/response/notificationResponse.ts","webpack:///./jslib/src/services/policy.service.ts","webpack:///./jslib/src/models/domain/masterPasswordPolicyOptions.ts","webpack:///./jslib/src/services/search.service.ts","webpack:///./jslib/src/services/send.service.ts","webpack:///./jslib/src/models/request/sendRequest.ts","webpack:///./jslib/src/models/domain/send.ts","webpack:///./jslib/src/services/webCryptoFunction.service.ts","webpack:///./jslib/src/models/domain/decryptParameters.ts","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.component.html","webpack:///./jslib/src/angular/directives/blur-click.directive.ts","webpack:///./jslib/src/angular/directives/box-row.directive.ts","webpack:///./jslib/src/angular/pipes/search-ciphers.pipe.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","0","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","I18nService","PlatformUtilsService","ApiService","UserService","I18nPipe","i18nService","this","transform","id","p1","p2","p3","i0","ɵɵdirectiveInject","i1","pure","MessagingService","ApiActionDirective","el","validationService","ngOnChanges","changes","_this","appApiAction","then","nativeElement","loading","response","e","showError","ElementRef","ValidationService","selectors","inputs","features","ɵɵNgOnChangesFeature","A11yTitleDirective","renderer","title","ngOnInit","hasAttribute","setAttribute","Renderer2","appA11yTitle","CryptoService","CipherService","BaseResponse","getResponseProperty","propertyName","exactName","Error","undefined","otherCasePropertyName","charAt","toUpperCase","toLowerCase","ɵɵelement","ɵɵclassMapInterpolate1","ctx_r1","icon","ɵɵelementStart","ɵɵtext","ɵɵtemplate","CalloutComponent_h3_2_i_2_Template","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ctx_r0","ɵɵtextInterpolate1","CalloutComponent","type","calloutStyle","clickable","ngContentSelectors","_c1","decls","vars","consts","template","rf","ctx","CalloutComponent_h3_2_Template","ɵɵprojection","ɵɵpureFunction1","_c0","papa","cipherView_1","collectionView_1","loginUriView_1","utils_1","fieldView_1","folderView_1","loginView_1","secureNoteView_1","cipherType_1","fieldType_1","secureNoteType_1","consoleLog_service_1","BaseImporter","organizationId","logService","ConsoleLogService","newLineRegex","passwordFieldNames","usernameFieldNames","notesFieldNames","uriFieldNames","parseCsvOptions","encoding","skipEmptyLines","parseXml","doc","DOMParser","parseFromString","querySelector","parseCsv","header","options","parseOptions","assign","splitNewLine","join","trim","parse","errors","forEach","row","warning","message","parseSingleRowCsv","rowData","isNullOrWhitespace","parsedRow","makeUriArray","uri","loginUri","LoginUriView","fixUri","match","returnArr_1","u","indexOf","substring","nameFromUrl","url","hostname","Utils","getHostname","startsWith","replace","str","getValueOrDefault","defaultValue","split","getCardBrand","cardNum","re","RegExp","test","setCardExpiration","cipher","expiration","parts","month","year","substr","card","expMonth","expYear","moveFoldersToCollections","folderRelationships","collectionRelationships","collections","folders","map","f","collection","CollectionView","querySelectorDirectChild","parentEl","query","els","querySelectorAllDirectChild","Array","from","querySelectorAll","filter","parentNode","initLoginCipher","CipherView","favorite","notes","fields","login","LoginView","CipherType","Login","cleanupCipher","processKvp","FieldType","Text","search","field","FieldView","processFolder","folderName","folderIndex","hasFolder","addFolder","FolderView","ciphers","convertToNoteIfNeeded","username","password","uris","SecureNote","secureNote","SecureNoteView","SecureNoteType","Generic","ImportResult","success","tldjs","nodeURL","init","inited","isNode","process","release","isBrowser","isNativeScript","isMobileBrowser","isMobile","isAppleMobileBrowser","isAppleMobile","global","fromB64ToArray","Uint8Array","Buffer","binaryString","atob","bytes","charCodeAt","fromUrlB64ToArray","fromUrlB64ToB64","fromHexToArray","parseInt","fromUtf8ToArray","strUtf8","unescape","encodeURIComponent","arr","fromByteStringToArray","fromBufferToB64","buffer","toString","binary","byteLength","String","fromCharCode","btoa","fromBufferToUrlB64","fromB64toUrlB64","b64Str","fromBufferToUtf8","encodedString","decodeURIComponent","escape","fromBufferToByteString","fromBufferToHex","x","urlB64Str","output","fromUrlB64ToUtf8","fromB64ToUtf8","newGuid","Math","random","isGuid","uriString","getUrl","_a","getHost","host","getDomain","httpUrl","tldEndingRegex","getUrlObject","validIpAddress","urlDomain","domain","getQueryParams","Map","pair","set","getSortFunction","prop","a","b","collator","compare","localeCompare","nameOf","target","source","ipString","win","mobile","navigator","userAgent","vendor","opera","URL","hasProtocol","anchor","document","createElement","href","PasswordGenerationService","StopClickDirective","onClick","$event","preventDefault","hostBindings","StateService","CollectionService","StorageService","PolicyService","InputVerbatimDirective","condition","disableComplete","appInputVerbatim","FolderService","StopPropDirective","stopPropagation","AuthService","SyncService","EnvironmentService","AutofocusDirective","autofocus","focus","appAutofocus","ConstantsService","environmentUrlsKey","disableGaKey","disableAddLoginNotificationKey","disableContextMenuItemKey","disableFaviconKey","disableBadgeCounterKey","disableAutoTotpCopyKey","enableAutoFillOnPageLoadKey","vaultTimeoutKey","vaultTimeoutActionKey","lastActiveKey","neverDomainsKey","installedVersionKey","localeKey","themeKey","collapsedGroupingsKey","autoConfirmFingerprints","dontShowCardsCurrentTab","dontShowIdentitiesCurrentTab","defaultUriMatch","pinProtectedKey","protectedPin","clearClipboardKey","eventCollectionKey","ssoCodeVerifierKey","ssoStateKey","biometricUnlockKey","biometricText","biometricAwaitingAcceptance","biometricFingerprintValidated","disableChangedPasswordNotificationKey","EventService","PasswordVerificationRequest","SearchService","cipherString_1","Domain","buildDomainModel","dataObj","alreadyEncrypted","notEncList","objProp","CipherString","buildDataModel","notCipherStringList","encryptedString","decryptObj","viewModel","orgId","promises","self","theProp","Promise","resolve","mapProp","decrypt","val","all","sent","jq","modal_component_1","ModalComponent","_super","componentFactoryResolver","messagingService","__extends","ngOnDestroy","show","parentContainer","fade","setComponentParameters","factory","resolveComponentFactory","componentRef","container","createComponent","instance","modals","modal","on","onShow","emit","send","onShown","find","onClose","onClosed","clear","close","ComponentFactoryResolver","ɵɵInheritDefinitionFeature","ModalComponent_ng_template_0_Template","ɵɵtemplateRefExtractor","AuditService","CardView","cardholderName","code","_brand","_number","_subTitle","repeat","brand","number","count","exp","formatYear","TokenService","CryptoFunctionService","encryptionType_1","encryptedStringOrType","iv","mac","encType","encryptionType","headerPieces","encPieces","EncryptionType","AesCbc128_HmacSha256_B64","AesCbc256_B64","AesCbc256_HmacSha256_B64","Rsa2048_OaepSha256_B64","Rsa2048_OaepSha1_B64","decryptedValue","containerService","bitwardenContainerService","cryptoService","getCryptoService","getOrgKey","_b","decryptToUtf8","constants_service_1","ɵɵpropertyInterpolate","fallbackImage","image","ɵɵsanitizeUrl","IconMap","fa-globe","fa-sticky-note-o","fa-id-card-o","fa-credit-card","fa-android","fa-apple","IconComponent","environmentService","stateService","iconsUrl","baseUrl","imageEnabled","load","setLoginIcon","Card","Identity","hostnameUri","isWebsite","i2","IconComponent_img_2_Template","IconComponent_i_4_Template","broadcaster_service_1","BroadcasterService","ɵfac","VaultTimeoutService","TwoFactorProviderType","TotpService","paymentMethodType_1","webConstants_1","ɵɵlistener","ɵɵrestoreView","_r9","ɵɵnextContext","method","changeMethod","ctx_r5","paymentMethodType","BankAccount","ɵɵpipeBind1","_r12","ctx_r6","PayPal","_r15","ctx_r7","Credit","_r18","PaymentComponent_div_0_div_13_Template","PaymentComponent_div_0_div_15_Template","PaymentComponent_div_0_div_17_Template","hideBank","hidePaypal","hideCredit","ɵɵelementContainerStart","ɵɵelementContainerEnd","ɵɵtextInterpolate","_r21","bank","routing_number","account_number","account_holder_name","account_holder_type","ɵɵtextInterpolate2","ctx_r2","StripeElementStyle","base","color","fontFamily","fontSize","fontSmoothing","invalid","StripeElementClasses","empty","PaymentComponent","platformUtilsService","apiService","showMethods","showOptions","PaymentMethodType","currency","country","btInstance","stripe","stripeElements","stripeCardNumberElement","stripeCardExpiryElement","stripeCardCvcElement","stripeScript","src","async","onload","Stripe","isDev","WebConstants","stripeTestKey","stripeLiveKey","elements","setStripeElement","btScript","head","appendChild","removeChild","setTimeout","body","btStylesheet","braintree","dropin","authorization","btSandboxKey","btProductionKey","paymentOptionPriority","paypal","flow","buttonStyle","label","size","shape","createErr","console","error","createPaymentToken","reject","requestPaymentMethod","payload","nonce","catch","err","postSetupPayment","clientSecret","handleCardSetup","setupIntent","status","payment_method","createToken","token","handleStripeCardPayment","successCallback","__awaiter","paymentIntent","style","classes","placeholder","mount","PaymentComponent_div_0_Template","PaymentComponent_ng_container_2_Template","PaymentComponent_ng_container_4_Template","PaymentComponent_ng_container_6_Template","PaymentComponent_ng_container_8_Template","revisionDate","AvatarComponent","sanitizer","cryptoFunctionService","charCount","textColor","fontWeight","dynamic","circle","generate","email","hash","hashBytes","chars","upperData","getFirstLetters","charObj","getCharText","stringToColor","svg","getSvg","html","outerHTML","svgHtml","text","svgTag","backgroundColor","width","height","character","textTag","textContent","DomSanitizer","i3","Collection","obj","externalId","readOnly","hidePasswords","default","PolicyType","core_1","organizationTaxInfoUpdateRequest_1","taxInfoUpdateRequest_1","_r4","taxInfo","includeTaxId","_r6","taxId","_r8","line1","line2","city","state","TaxInfoComponent","route","onCountryChanged","EventEmitter","postalCode","pristine","parent","params","subscribe","getOrganizationTaxInfo","getTaxInfo","getTaxRates","taxRates","localTaxRate","rate","getTaxInfoRequest","request","OrganizationTaxInfoUpdateRequest","TaxInfoUpdateRequest","submitTaxInfo","hasChanged","putOrganizationTaxInfo","putTaxInfo","changeCountry","ActivatedRoute","outputs","TaxInfoComponent_div_779_Template","TaxInfoComponent_div_782_Template","TaxInfoComponent_div_784_Template","cardView_1","identityView_1","folderId","organizationUseTotp","edit","viewPassword","identity","IdentityView","attachments","passwordHistory","collectionIds","deletedDate","localData","subTitle","hasAttachments","passwordRevisionDate","middleName","address1","address2","address3","company","phone","ssn","passportNumber","licenseNumber","_firstName","_lastName","firstName","lastName","name_1","address","addressPart2","CollectionData","collection_1","OrganizationUserStatusType","attachmentData_1","cardData_1","fieldData_1","identityData_1","loginData_1","passwordHistoryData_1","secureNoteData_1","CipherData","userId","LoginData","SecureNoteData","CardData","IdentityData","FieldData","AttachmentData","ph","PasswordHistoryData","totp","hasUris","some","canLaunch","launchUri","SendType","twoFactorProviderType_1","passwordVerificationRequest_1","TwoFactorVerifyComponent","toasterService","onAuthed","submit","masterPassword","popAsync","hashPassword","masterPasswordHash","_d","formPromise","getTwoFactorRecover","Duo","OrganizationDuo","getTwoFactorOrganizationDuo","getTwoFactorDuo","Email","getTwoFactorEmail","U2f","getTwoFactorU2f","Authenticator","getTwoFactorAuthenticator","Yubikey","getTwoFactorYubiKey","ToasterService","i4","_r0","ExportService","cipherData_1","attachment_1","card_1","domainBase_1","field_1","identity_1","login_1","password_1","secureNote_1","Cipher","Date","Attachment","Field","Password","encKey","model","_f","_c","_e","attachments_1","reduce","promise","attachment","decAttachment","fields_1","decField","passwordHistory_1","decPh","toCipherData","toISOString","toLoginData","toSecureNoteData","toCardData","toIdentityData","toFieldData","toAttachmentData","toPasswordHistoryData","SendService","newField","showValue","cardApi_1","fieldApi_1","identityApi_1","loginApi_1","loginUriApi_1","secureNoteApi_1","attachmentRequest_1","CipherRequest","lastKnownRevisionDate","LoginApi","LoginUriApi","SecureNoteApi","CardApi","IdentityApi","FieldApi","lastUsedDate","attachments2","fileName","attachmentRequest","AttachmentRequest","router_1","RouterService","router","activatedRoute","titleService","previousUrl","currentUrl","events","event","NavigationEnd","titleId","rawTitle","child","firstChild","snapshot","newTitle","setTitle","getPreviousUrl","setPreviousUrl","ɵɵinject","Router","Title","KdfType","PasswordStrengthComponent","showText","scoreWidth","score","PasswordStrengthComponent_ng_container_4_Template","ɵɵattribute","OrganizationUserType","SearchPipe","items","searchText","prop1","prop2","prop3","deviceType_1","eventType_1","getDefaultDateFilters","end","getFullYear","getMonth","getDate","setDate","start","toDateTimeLocalString","formatDateFilters","filterStart","filterEnd","isNaN","getTime","getEventInfo","ev","EventOptions","appInfo","getAppInfo","deviceType","getEventMessage","appIcon","appName","msg","EventType","User_LoggedIn","User_ChangedPassword","User_Updated2fa","User_Disabled2fa","User_Recovered2fa","User_FailedLogIn","User_FailedLogIn2fa","User_ClientExportedVault","Cipher_Created","formatCipherId","Cipher_Updated","Cipher_Deleted","Cipher_SoftDeleted","Cipher_Restored","Cipher_AttachmentCreated","Cipher_AttachmentDeleted","Cipher_Shared","Cipher_ClientViewed","Cipher_ClientToggledPasswordVisible","Cipher_ClientToggledHiddenFieldVisible","Cipher_ClientToggledCardCodeVisible","Cipher_ClientCopiedHiddenField","Cipher_ClientCopiedPassword","Cipher_ClientCopiedCardCode","Cipher_ClientAutofilled","Cipher_UpdatedCollections","Collection_Created","formatCollectionId","Collection_Updated","Collection_Deleted","Group_Created","formatGroupId","Group_Updated","Group_Deleted","OrganizationUser_Invited","formatOrgUserId","OrganizationUser_Confirmed","OrganizationUser_Updated","OrganizationUser_Removed","OrganizationUser_UpdatedGroups","OrganizationUser_UnlinkedSso","Organization_Updated","Organization_PurgedVault","Policy_Updated","formatPolicyId","DeviceType","Android","iOS","UWP","ChromeExtension","FirefoxExtension","OperaExtension","EdgeExtension","VivaldiExtension","SafariExtension","WindowsDesktop","MacOsDesktop","LinuxDesktop","ChromeBrowser","FirefoxBrowser","OperaBrowser","SafariBrowser","VivaldiBrowser","EdgeBrowser","IEBrowser","UnknownBrowser","shortId","getShortId","cipherId","cipherInfo","makeAnchor","groupId","collectionId","organizationUserId","policyId","innerHTML","date","pad","getHours","getMinutes","num","norm","floor","abs","EventInfo","twoFactorProviderRequest_1","TwoFactorBaseComponent","analytics","onUpdated","twoFactorProviderType","enabled","authed","auth","authResponse","enable","enableFunction","eventTrack","next","action","disable","showDialog","TwoFactorProviderRequest","putTwoFactorOrganizationDisable","putTwoFactorDisable","Angulartics2","i5","add_edit_component_1","add_edit_component_2","CipherReportComponent","userService","requiresPaid","hasLoaded","setCiphers","selectCipher","childComponent","cipherAddEditModalRef","organization","AddEditComponent","onSavedCipher","onDeletedCipher","onRestoredCipher","checkAccess","useTotp","canAccessPremium","accessPremium","viewQuery","ViewContainerRef","uriMatchType_1","CanLaunchWhitelist","_uri","_domain","_hostname","_host","_canLaunch","UriMatchType","RegularExpression","o_r17","_r19","AddEditComponent_div_20_div_4_option_10_Template","isDeleted","typeOptions","f_r21","_r23","AddEditComponent_div_20_div_17_option_8_Template","viewOnly","_r31","ctx_r30","copy","_r35","generatePassword","AddEditComponent_div_20_ng_container_21_div_26_a_2_Template","_r37","checkPassword","ctx_r25","checkPasswordPromise","_r33","_r41","premiumRequired","_r43","upgradeOrganization","AddEditComponent_div_20_ng_container_21_div_64_a_5_Template","AddEditComponent_div_20_ng_container_21_div_64_a_7_Template","ctx_r26","ɵɵnamespaceSVG","ɵɵnamespaceHTML","_r45","ctx_r44","totpCode","ctx_r27","totpSec","totpDash","totpCodeFormatted","o_r51","_r54","u_r47","$implicit","removeUri","_r56","launch","loginUriMatchChanged","AddEditComponent_div_20_ng_container_21_ng_container_70_div_2_option_49_Template","AddEditComponent_div_20_ng_container_21_ng_container_70_div_2_button_52_Template","ɵɵpropertyInterpolate1","i_r48","ɵɵpipeBind2","ctx_r46","uriMatchOptions","AddEditComponent_div_20_ng_container_21_ng_container_70_div_2_Template","ctx_r28","trackByFunction","_r62","addUri","_r64","AddEditComponent_div_20_ng_container_21_div_14_Template","AddEditComponent_div_20_ng_container_21_div_26_Template","togglePassword","ctx_r67","AddEditComponent_div_20_ng_container_21_div_64_Template","AddEditComponent_div_20_ng_container_21_div_66_Template","AddEditComponent_div_20_ng_container_21_ng_container_70_Template","AddEditComponent_div_20_ng_container_21_a_72_Template","showPassword","ɵɵpureFunction2","_c2","totpLow","o_r71","o_r72","_r74","AddEditComponent_div_20_ng_container_24_option_21_Template","ctx_r77","AddEditComponent_div_20_ng_container_24_option_57_Template","toggleCardCode","ctx_r82","ctx_r8","cardBrandOptions","cardExpMonthOptions","showCardCode","o_r84","_r86","AddEditComponent_div_20_ng_container_27_option_12_Template","ctx_r9","identityTitleOptions","_r114","f_r105","i_r106","ctx_r107","_r120","toggleFieldValue","ctx_r123","fieldType","Hidden","ctx_r108","_r128","ctx_r109","_r132","removeField","_r134","AddEditComponent_div_20_div_42_div_2_div_28_Template","AddEditComponent_div_20_div_42_div_2_div_30_Template","AddEditComponent_div_20_div_42_div_2_input_34_Template","AddEditComponent_div_20_div_42_div_2_button_37_Template","AddEditComponent_div_20_div_42_div_2_button_39_Template","ctx_r104","Boolean","_r136","drop","AddEditComponent_div_20_div_42_div_2_Template","ctx_r10","_r138","addField","o_r140","_r142","addFieldType","AddEditComponent_div_20_div_46_option_10_Template","ctx_r12","addFieldTypeOptions","o_r144","_r146","organizationChanged","AddEditComponent_div_20_ng_container_48_option_16_Template","ctx_r13","ownershipOptions","_r154","checked","i_r152","c_r151","ctx_r150","AddEditComponent_div_20_ng_container_50_ng_container_8_div_2_Template","ctx_r149","AddEditComponent_div_20_ng_container_50_div_6_Template","AddEditComponent_div_20_ng_container_50_ng_container_8_Template","ctx_r14","ctx_r155","passwordRevisionDisplayDate","_r159","viewHistory","ctx_r156","ph_r161","AddEditComponent_div_20_ng_container_52_div_16_div_2_Template","ctx_r157","AddEditComponent_div_20_ng_container_52_div_12_Template","AddEditComponent_div_20_ng_container_52_div_14_Template","AddEditComponent_div_20_ng_container_52_div_16_Template","ctx_r15","showRevisionDate","hasPasswordHistory","viewingPasswordHistory","AddEditComponent_div_20_app_callout_2_Template","AddEditComponent_div_20_div_4_Template","_r163","AddEditComponent_div_20_div_17_Template","AddEditComponent_div_20_ng_container_21_Template","AddEditComponent_div_20_ng_container_24_Template","AddEditComponent_div_20_ng_container_27_Template","AddEditComponent_div_20_div_42_Template","AddEditComponent_div_20_a_44_Template","AddEditComponent_div_20_div_46_Template","AddEditComponent_div_20_ng_container_48_Template","AddEditComponent_div_20_ng_container_50_Template","AddEditComponent_div_20_ng_container_52_Template","allowOwnershipAssignment","allowPersonal","editMode","cipherType","hasFields","cloneMode","_r168","toggleFavorite","ctx_r165","_c3","_r171","delete","ctx_r166","_r169","deletePromise","AddEditComponent_div_30_button_2_Template","AddEditComponent_div_30_button_4_Template","ctx_r3","cipherService","folderService","auditService","collectionService","totpService","passwordGenerationService","eventService","policyService","cleanUp","totpUpdateCode","interval_1","getTimeInterval","totpTick","totpInterval","setInterval","typeI18nKey","aType","copyToClipboard","showToast","collect","confirmed","getOptions","clearInterval","getCode","half","intervalSeconds","epoch","round","mod","i6","i7","i8","i9","i10","i11","i12","i13","AddEditComponent_div_20_Template","AddEditComponent_button_24_Template","AddEditComponent_div_30_Template","ImportService","ciphers_component_1","CiphersComponent_ng_container_0_table_2_tr_4_ng_container_20_ng_container_9_Template","showFixOldAttachments","c_r5","_r24","_r27","_r30","CiphersComponent_ng_container_0_table_2_tr_4_ng_container_40_a_8_Template","CiphersComponent_ng_container_0_table_2_tr_4_ng_container_40_a_10_Template","CiphersComponent_ng_container_0_table_2_tr_4_ng_container_40_a_12_Template","displayTotpCopyButton","_r34","clone","share","_r40","_r46","restore","_r48","checkCipher","CiphersComponent_ng_container_0_table_2_tr_4_ng_container_18_Template","CiphersComponent_ng_container_0_table_2_tr_4_ng_container_20_Template","CiphersComponent_ng_container_0_table_2_tr_4_ng_container_40_Template","CiphersComponent_ng_container_0_table_2_tr_4_a_48_Template","CiphersComponent_ng_container_0_table_2_tr_4_a_50_Template","CiphersComponent_ng_container_0_table_2_tr_4_a_52_Template","CiphersComponent_ng_container_0_table_2_tr_4_a_54_Template","CiphersComponent_ng_container_0_table_2_tr_4_a_56_Template","ctx_r4","accessEvents","loadMore","CiphersComponent_ng_container_0_table_2_tr_4_Template","isPaging","filteredCiphers_r1","addCipher","CiphersComponent_ng_container_0_div_4_ng_container_4_button_6_Template","ctx_r59","showAddNew","CiphersComponent_ng_container_0_div_4_ng_container_2_Template","CiphersComponent_ng_container_0_div_4_ng_container_4_Template","loaded","CiphersComponent_ng_container_0_table_2_Template","CiphersComponent_ng_container_0_div_4_Template","CiphersComponent","searchService","onAttachmentsClicked","onShareClicked","onCollectionsClicked","onCloneClicked","userHasPremiumAccess","pageSize","selectAll","actionPromise","permanent","deleteCipher","refresh","restoreWithServer","select","selectCount","getSelected","getSelectedIds","hasTotp","deleteWithServer","softDeleteWithServer","hasOldAttachments","CiphersComponent_ng_container_0_Template","pagedCiphers","authResult_1","deviceRequest_1","keysRequest_1","preloginRequest_1","tokenRequest_1","TwoFactorProviders","description","priority","sort","premium","tokenService","appIdService","vaultTimeoutService","setCryptoKeys","selectedTwoFactorProviderType","logIn","makePreloginKey","hashedPassword","logInHelper","logInSso","codeVerifier","redirectUrl","logInApiKey","clientId","logInTwoFactor","twoFactorProvider","twoFactorToken","remember","ssoRedirectUrl","logInComplete","logInSsoComplete","logInApiKeyComplete","logOut","callback","getSupportedTwoFactorProviders","providers","twoFactorProvidersData","has","supportsDuo","supportsU2f","getDefaultTwoFactorProvider","u2fSupported","providerType","providerPriority","provider","kdf","kdfIterations","postPrelogin","PreloginRequest","preloginResponse","e_1","statusCode","makeKey","authingWithApiKey","authingWithSso","authingWithPassword","getTwoFactorToken","storedTwoFactorToken","getAppId","appId","deviceRequest","DeviceRequest","emailPassword","codeCodeVerifier","clientIdClientSecret","TokenRequest","Remember","postIdentityToken","clearState","AuthResult","twoFactor","accessToken","twoFactorResponse","twoFactorProviders2","twoFactorProviders","tokenResponse","resetMasterPassword","setTwoFactorToken","setTokens","refreshToken","setInformation","getUserId","getEmail","setKey","setKeyHash","setEncKey","privateKey","makeKeyPair","keyPair","postAccountKeys","KeysRequest","e_2","setEncPrivateKey","biometricLocked","SelectionReadOnlyRequest","SettingsService","PlanType","payment_component_1","tax_info_component_1","organizationUserStatusType_1","organizationUserType_1","planType_1","policyType_1","productType_1","organizationCreateRequest_1","organizationUpgradeRequest_1","_r5","_r3","_r14","billingEmail","_r17","businessName","selectableProduct_r18","trialPeriodDays","OrganizationPlansComponent_form_4_div_24_ng_container_11_small_6_Template","OrganizationPlansComponent_form_4_div_24_ng_container_11_small_8_Template","OrganizationPlansComponent_form_4_div_24_ng_container_11_small_10_Template","OrganizationPlansComponent_form_4_div_24_ng_container_11_small_12_Template","hasSelfHost","hasSso","hasPolicies","maxUsers","maxCollections","maxAdditionalSeats","baseStorageGb","OrganizationPlansComponent_form_4_div_24_ng_template_13_small_1_Template","OrganizationPlansComponent_form_4_div_24_ng_template_13_small_3_Template","OrganizationPlansComponent_form_4_div_24_ng_template_13_small_5_Template","OrganizationPlansComponent_form_4_div_24_ng_template_13_small_7_Template","OrganizationPlansComponent_form_4_div_24_ng_template_13_small_9_Template","OrganizationPlansComponent_form_4_div_24_ng_template_13_small_11_Template","OrganizationPlansComponent_form_4_div_24_ng_template_13_small_13_Template","OrganizationPlansComponent_form_4_div_24_ng_template_13_small_15_Template","OrganizationPlansComponent_form_4_div_24_ng_template_13_small_17_Template","OrganizationPlansComponent_form_4_div_24_ng_template_13_small_19_Template","OrganizationPlansComponent_form_4_div_24_ng_template_13_small_21_Template","OrganizationPlansComponent_form_4_div_24_ng_template_13_small_23_Template","OrganizationPlansComponent_form_4_div_24_ng_template_13_small_25_Template","OrganizationPlansComponent_form_4_div_24_ng_template_13_small_27_Template","product","ctx_r21","productTypes","Free","hasGroups","hasApi","hasDirectory","usersGetPremium","ɵɵtextInterpolate3","seatPrice","OrganizationPlansComponent_form_4_div_24_span_16_ng_container_2_ng_container_5_Template","basePrice","baseSeats","hasAdditionalSeatsOption","OrganizationPlansComponent_form_4_div_24_span_16_ng_container_2_Template","_r59","changedProduct","OrganizationPlansComponent_form_4_div_24_ng_container_11_Template","OrganizationPlansComponent_form_4_div_24_ng_template_13_Template","OrganizationPlansComponent_form_4_div_24_span_16_Template","OrganizationPlansComponent_form_4_div_24_span_18_Template","OrganizationPlansComponent_form_4_div_24_span_20_Template","nameLocalizationKey","descriptionLocalizationKey","Enterprise","_r20","_r69","additionalSeats","ctx_r61","_r71","ctx_r62","ɵɵpipeBind3","selectedPlan","seatPriceMonthly","_r73","premiumAccessAddon","ctx_r63","ɵɵtextInterpolate5","selectablePlan_r74","OrganizationPlansComponent_form_4_div_26_div_38_ng_container_6_small_5_span_2_Template","OrganizationPlansComponent_form_4_div_26_div_38_ng_container_6_small_5_span_4_Template","ctx_r78","seatTotal","ɵɵtextInterpolate6","ctx_r79","additionalStorage","additionalStoragePricePerGb","additionalStorageTotal","premiumAccessOptionCost","OrganizationPlansComponent_form_4_div_26_div_38_ng_container_6_small_3_Template","OrganizationPlansComponent_form_4_div_26_div_38_ng_container_6_small_5_Template","OrganizationPlansComponent_form_4_div_26_div_38_ng_container_6_small_7_Template","OrganizationPlansComponent_form_4_div_26_div_38_ng_container_6_small_9_Template","hasAdditionalStorageOption","hasPremiumAccessOption","ctx_r75","OrganizationPlansComponent_form_4_div_26_div_38_ng_container_8_small_5_span_2_Template","OrganizationPlansComponent_form_4_div_26_div_38_ng_container_8_small_5_span_4_Template","ctx_r89","ctx_r90","OrganizationPlansComponent_form_4_div_26_div_38_ng_container_8_small_3_Template","OrganizationPlansComponent_form_4_div_26_div_38_ng_container_8_small_5_Template","OrganizationPlansComponent_form_4_div_26_div_38_ng_container_8_small_7_Template","OrganizationPlansComponent_form_4_div_26_div_38_ng_container_8_small_9_Template","ctx_r76","_r100","plan","OrganizationPlansComponent_form_4_div_26_div_38_ng_container_6_Template","OrganizationPlansComponent_form_4_div_26_div_38_ng_container_8_Template","ctx_r64","isAnnual","selectedPlanInterval","OrganizationPlansComponent_form_4_div_26_ng_container_2_Template","OrganizationPlansComponent_form_4_div_26_div_8_Template","_r102","OrganizationPlansComponent_form_4_div_26_div_31_Template","OrganizationPlansComponent_form_4_div_26_div_38_Template","OrganizationPlansComponent_form_4_div_26_app_payment_46_Template","changedCountry","OrganizationPlansComponent_form_4_div_26_ng_container_80_Template","OrganizationPlansComponent_form_4_div_26_small_82_Template","ɵɵpipeBind4","additionalStoragePriceMonthly","selectablePlans","createOrganization","subtotal","taxCharges","total","_r105","cancel","_r107","OrganizationPlansComponent_form_4_div_7_Template","ownedBusiness","changedOwnedBusiness","OrganizationPlansComponent_form_4_div_18_Template","OrganizationPlansComponent_form_4_div_24_Template","OrganizationPlansComponent_form_4_div_26_Template","OrganizationPlansComponent_form_4_div_28_Template","OrganizationPlansComponent_form_4_button_42_Template","selectableProducts","singleOrgPolicyBlock","showCancel","OrganizationPlansComponent","syncService","showFree","ProductType","onSuccess","onCanceled","selfHosted","isSelfHost","getPlans","plans","Teams","validPlans","Custom","canBeUsedByBusiness","legacyYear","disabled","subTotal","premiumAccessOptionPrice","taxComponent","taxRate","TeamsAnnually","paymentComponent","getAll","SingleOrg","policies","getAllOrganizations","orgs","orgsWithSingleOrgPolicy_1","org","Owner","Admin","Invited","includes","files","fileEl","getElementById","doSubmit","tokenResult","makeShareKey","shareKey","encrypt","collectionCt","fd","FormData","append","postOrganizationLicense","OrganizationCreateRequest","collectionName","planType","paymentToken","additionalStorageGb","billingAddressPostalCode","billingAddressCountry","taxIdNumber","billingAddressLine1","billingAddressLine2","billingAddressCity","billingAddressState","postOrganization","OrganizationUpgradeRequest","postOrganizationUpgrade","paymentIntentClientSecret","refreshIdentityToken","fullSync","navigate","OrganizationPlansComponent_ng_container_0_Template","OrganizationPlansComponent_ng_container_2_Template","OrganizationPlansComponent_form_4_Template","SymmetricCryptoKey","macKey","keyB64","encKeyB64","macKeyB64","loginUri_1","LoginUri","view","toLoginUriData","loginUriData_1","LoginUriData","forms_1","TrueFalseValueDirective","elementRef","trueValue","falseValue","propagateChange","_","onHostChange","writeValue","setProperty","registerOnChange","fn","registerOnTouched","setDisabledState","isDisabled","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","multi","groupings_component_1","selectFavorites","selectedFavorites","_r7","selectTrash","selectedTrash","_r22","f_r15","collapse","node","ctx_r16","isCollapsed","_r26","editFolder","GroupingsComponent_ng_container_78_ng_container_2_ng_template_14_li_1_ul_14_ng_container_2_Template","_r10","children","GroupingsComponent_ng_container_78_ng_container_2_ng_template_14_li_1_i_4_Template","selectFolder","GroupingsComponent_ng_container_78_ng_container_2_ng_template_14_li_1_i_8_Template","GroupingsComponent_ng_container_78_ng_container_2_ng_template_14_li_1_a_11_Template","GroupingsComponent_ng_container_78_ng_container_2_ng_template_14_li_1_ul_14_Template","selectedFolder","selectedFolderId","GroupingsComponent_ng_container_78_ng_container_2_ng_template_14_li_1_Template","folders_r13","_r32","GroupingsComponent_ng_container_78_ng_container_2_ng_template_14_Template","GroupingsComponent_ng_container_78_ng_container_2_ng_container_17_Template","nestedFolders","_r44","c_r38","ctx_r39","GroupingsComponent_ng_container_78_ng_container_4_ng_template_8_li_1_ul_9_ng_container_2_Template","GroupingsComponent_ng_container_78_ng_container_4_ng_template_8_li_1_i_2_Template","_r49","selectCollection","GroupingsComponent_ng_container_78_ng_container_4_ng_template_8_li_1_i_6_Template","GroupingsComponent_ng_container_78_ng_container_4_ng_template_8_li_1_ul_9_Template","ctx_r37","selectedCollectionId","GroupingsComponent_ng_container_78_ng_container_4_ng_template_8_li_1_Template","collections_r36","GroupingsComponent_ng_container_78_ng_container_4_ng_template_8_Template","GroupingsComponent_ng_container_78_ng_container_4_ng_container_11_Template","nestedCollections","GroupingsComponent_ng_container_78_ng_container_2_Template","GroupingsComponent_ng_container_78_ng_container_4_Template","showFolders","showCollections","GroupingsComponent","storageService","onSearchTextChanged","searchPlaceholder","searchTextChanged","GroupingsComponent_li_28_Template","GroupingsComponent_li_30_Template","selectType","GroupingsComponent_p_76_Template","GroupingsComponent_ng_container_78_Template","selectedAll","showFavorites","showTrash","selectedType","Organization","usePolicies","useGroups","useDirectory","useEvents","use2fa","useApi","useBusinessPortal","useSso","selfHost","seats","maxStorageGb","ssoBound","identifier","permissions","Confirmed","Manager","isAdmin","accessBusinessPortal","accessEventLogs","accessImportExport","accessReports","manageAllCollections","isManager","manageAssignedCollections","manageGroups","manageSso","managePolicies","manageUsers","SendFileView","sizeName","SendTextView","hidden","OrganizationsComponent_ng_container_0_ng_container_4_ul_2_li_2_ng_container_6_Template","o_r7","OrganizationsComponent_ng_container_0_ng_container_4_ul_2_li_2_Template","organizations","OrganizationsComponent_ng_container_0_ng_container_4_ul_2_Template","OrganizationsComponent_ng_container_0_ng_container_4_p_4_Template","OrganizationsComponent_ng_container_0_p_2_Template","OrganizationsComponent_ng_container_0_ng_container_4_Template","_r25","unlinkSso","OrganizationsComponent_ng_container_2_ng_container_19_table_4_tr_4_ng_container_27_a_2_Template","OrganizationsComponent_ng_container_2_ng_container_19_table_4_tr_4_ng_container_27_ng_template_4_Template","OrganizationsComponent_ng_container_2_ng_container_19_table_4_tr_4_ng_container_12_Template","OrganizationsComponent_ng_container_2_ng_container_19_table_4_tr_4_ng_container_27_Template","_r29","leave","OrganizationsComponent_ng_container_2_ng_container_19_table_4_tr_4_Template","OrganizationsComponent_ng_container_2_ng_container_19_ng_container_2_Template","OrganizationsComponent_ng_container_2_ng_container_19_table_4_Template","OrganizationsComponent_ng_container_2_ng_container_10_Template","OrganizationsComponent_ng_container_2_a_14_Template","OrganizationsComponent_ng_container_2_ng_container_17_Template","OrganizationsComponent_ng_container_2_ng_container_19_Template","OrganizationsComponent","vault","deleteSsoUser","postLeaveOrganization","OrganizationsComponent_ng_container_0_Template","OrganizationsComponent_ng_container_2_Template","SelectionReadOnlyResponse","NavbarComponent","getName","lock","NavbarComponent_div_55_Template","FooterComponent","version","getApplicationVersion","defaultErrorMessage","validationErrors","concat","getAllMessages","timeout","publicKey","encryptedPrivateKey","Policy","PolicyData","ChangePasswordComponent","getMasterPasswordPolicyOptions","enforcedPolicyOptions","getPasswordScoreAlertDisplay","minComplexity","strongPassword","setupSubmitActions","getKdf","getKdfIterations","getEncKey","makeEncKey","remakeEncKey","performSubmitActions","masterPasswordRetype","strengthResult","passwordStrength","getPasswordStrengthUserInput","evaluateMasterPassword","updatePasswordStrength","masterPasswordStrengthTimeout","clearTimeout","masterPasswordScore","userInput","atPosition","selectionReadOnlyRequest_1","selectedCount","u_r11","EntityUsersComponent_div_26_ng_container_30_tr_32_td_21_ng_container_2_Template","accessAll","_r28","check","selectedChanged","EntityUsersComponent_div_26_ng_container_30_tr_32_span_14_Template","EntityUsersComponent_div_26_ng_container_30_tr_32_span_16_Template","EntityUsersComponent_div_26_ng_container_30_tr_32_small_18_Template","EntityUsersComponent_div_26_ng_container_30_tr_32_td_21_Template","EntityUsersComponent_div_26_ng_container_30_tr_32_span_25_Template","EntityUsersComponent_div_26_ng_container_30_tr_32_span_27_Template","EntityUsersComponent_div_26_ng_container_30_tr_32_span_29_Template","EntityUsersComponent_div_26_ng_container_30_tr_32_span_31_Template","EntityUsersComponent_div_26_ng_container_30_tr_32_span_33_Template","EntityUsersComponent_div_26_ng_container_30_tr_32_td_36_Template","EntityUsersComponent_div_26_ng_container_30_tr_32_td_38_Template","entity","organizationUserStatusType","Accepted","organizationUserType","User","EntityUsersComponent_div_26_ng_container_30_th_18_Template","EntityUsersComponent_div_26_ng_container_30_th_24_Template","EntityUsersComponent_div_26_ng_container_30_th_26_Template","EntityUsersComponent_div_26_ng_container_30_tr_32_Template","searchedUsers_r3","filterSelected","EntityUsersComponent_div_26_span_23_Template","EntityUsersComponent_div_26_ng_container_28_Template","EntityUsersComponent_div_26_ng_container_30_Template","showSelected","EntityUsersComponent","onEditedUsers","allUsers","loadUsers","getOrganizationUsers","users","getGroupUsers","entityId","user","getCollectionUsers","selections","putGroupUsers","putCollectionUsers","entityName","EntityUsersComponent_div_24_Template","EntityUsersComponent_div_26_Template","ɵɵpipeBindV","e_r9","userEmail","userName","EntityEventsComponent_div_24_table_36_tr_27_td_14_Template","ɵɵpropertyInterpolate2","ip","showUser","ɵɵsanitizeHtml","EntityEventsComponent_div_24_table_36_th_17_Template","EntityEventsComponent_div_24_table_36_tr_27_Template","loadEvents","morePromise","_r16","EntityEventsComponent_div_24_div_34_Template","EntityEventsComponent_div_24_table_36_Template","EntityEventsComponent_div_24_button_38_Template","refreshPromise","continuationToken","EntityEventsComponent","orgUsersUserIdMap","orgUsersIdMap","defaultDates","clearExisting","dates","getEventsOrganizationUser","getEventsCipher","actingUserId","eventInfo","ipAddress","EntityEventsComponent_small_11_Template","EntityEventsComponent_div_22_Template","EntityEventsComponent_div_24_Template","PermissionsApi","manageCiphers","apiKeyWarning","scope","grantType","isRotation","ApiKeyComponent","postKey","apiKey","keyType","ApiKeyComponent_ng_container_27_Template","ApiKeyComponent_app_callout_29_Template","ApiKeyComponent_app_callout_31_Template","ApiKeyComponent_button_36_Template","apiKeyTitle","apiKeyDescription","PurgeVaultComponent","postPurgeCiphers","transactionType_1","verifyBankRequest_1","addCredit","closeAddCredit","verifyBank","verifyAmount1","verifyAmount2","ctx_r20","verifyBankPromise","UserBillingComponent_ng_container_11_ng_container_25_app_callout_2_Template","UserBillingComponent_ng_container_11_ng_container_25_span_8_Template","paymentSource","needsVerification","ɵɵpureFunction6","Check","AppleInApp","GoogleInApp","paymentSourceInApp","changePayment","closePayment","UserBillingComponent_ng_container_11_table_37_tr_4_span_25_Template","UserBillingComponent_ng_container_11_table_37_tr_4_span_27_Template","i_r33","pdfUrl","amount","paid","UserBillingComponent_ng_container_11_table_37_tr_4_Template","invoices","ɵɵpureFunction4","t_r37","ctx_r40","WireTransfer","BitPay","UserBillingComponent_ng_container_11_table_45_tr_4_span_8_Template","UserBillingComponent_ng_container_11_table_45_tr_4_span_10_Template","UserBillingComponent_ng_container_11_table_45_tr_4_i_15_Template","createdDate","ctx_r36","transactionType","Charge","Refund","details","refunded","UserBillingComponent_ng_container_11_table_45_tr_4_Template","transactions","UserBillingComponent_ng_container_11_button_15_Template","UserBillingComponent_ng_container_11_app_add_credit_17_Template","UserBillingComponent_ng_container_11_p_23_Template","UserBillingComponent_ng_container_11_ng_container_25_Template","UserBillingComponent_ng_container_11_button_27_Template","UserBillingComponent_ng_container_11_app_adjust_payment_29_Template","UserBillingComponent_ng_container_11_p_35_Template","UserBillingComponent_ng_container_11_table_37_Template","UserBillingComponent_ng_container_11_p_43_Template","UserBillingComponent_ng_container_11_table_45_Template","isCreditBalance","creditOrBalance","showAddCredit","showAdjustPayment","UserBillingComponent","firstLoaded","TransactionType","getOrganizationBilling","billing","getUserBilling","VerifyBankRequest","amount1","amount2","postOrganizationVerifyBank","balance","UserBillingComponent_button_6_Template","UserBillingComponent_ng_container_9_Template","UserBillingComponent_ng_container_11_Template","bitPayInvoiceRequest_1","AddCreditComponent","onAdded","ppButtonFormAction","buttonActionProduction","ppButtonBusinessId","businessIdProduction","ppLoading","buttonActionSandbox","businessIdSandbox","creditAmount","ppButtonCustomField","getOrganization","subject","returnUrl","location","ppButtonFormRef","req","BitPayInvoiceRequest","credit","creditAmountNumber","postBitPayInvoice","bitPayUrl","formatAmount","floatAmount","parseFloat","toFixed","AddCreditComponent_div_14_Template","paymentRequest_1","AdjustPaymentComponent","onAdjusted","request_1","PaymentRequest","taxInfoComponent","postAccountPayment","postOrganizationPayment","currentType","UpdateLicenseComponent","updatePromise","postAccountLicense","postOrganizationLicenseUpdate","storageRequest_1","ɵɵtextInterpolate4","storageAdjustment","storageGbPrice","adjustedStorageTotal","interval","AdjustStorageComponent","add","StorageRequest","storageGbAdjustment","paymentFailed_1","postAccountStorage","postOrganizationStorage","relativeTo","AdjustStorageComponent_div_26_Template","updateTwoFactorDuoRequest_1","two_factor_base_component_1","ikey","skey","TwoFactorDuoComponent_form_25_ng_container_5_Template","TwoFactorDuoComponent_form_25_ng_container_7_Template","TwoFactorDuoComponent_form_25_span_17_Template","TwoFactorDuoComponent_form_25_span_19_Template","TwoFactorDuoComponent","processResponse","UpdateTwoFactorDuoRequest","integrationKey","secretKey","putTwoFactorOrganizationDuo","putTwoFactorDuo","TwoFactorDuoComponent_app_two_factor_verify_23_Template","TwoFactorDuoComponent_form_25_Template","auth_service_1","two_factor_authenticator_component_1","two_factor_duo_component_1","two_factor_email_component_1","two_factor_recovery_component_1","two_factor_u2f_component_1","two_factor_yubikey_component_1","recoveryCode","TwoFactorSetupComponent_li_23_ng_container_11_Template","TwoFactorSetupComponent_li_23_a_13_Template","p_r20","manage","TwoFactorSetupComponent","showPolicyWarning","filterProvider","getTwoFactorProviders","evaluatePolicies","openModal","authenticatorModalRef","TwoFactorAuthenticatorComponent","updateStatus","yubikeyModalRef","TwoFactorYubiKeyComponent","duoModalRef","emailModalRef","TwoFactorEmailComponent","u2fModalRef","TwoFactorU2fComponent","recoveryModalRef","TwoFactorRecoveryComponent","ref","TwoFactorAuthentication","TwoFactorSetupComponent_p_7_Template","TwoFactorSetupComponent_p_9_Template","TwoFactorSetupComponent_app_callout_11_Template","TwoFactorSetupComponent_small_16_Template","TwoFactorSetupComponent_app_callout_19_Template","TwoFactorSetupComponent_li_23_Template","TwoFactorSetupComponent_ng_template_26_Template","TwoFactorSetupComponent_ng_template_29_Template","TwoFactorSetupComponent_ng_template_32_Template","TwoFactorSetupComponent_ng_template_35_Template","TwoFactorSetupComponent_ng_template_38_Template","TwoFactorSetupComponent_ng_template_41_Template","_c6","export_component_1","ExportComponent","exportService","saved","format","cipher_report_component_1","c_r6","ExposedPasswordsReportComponent_div_21_ng_container_4_tr_12_ng_container_9_Template","ExposedPasswordsReportComponent_div_21_ng_container_4_tr_12_ng_template_11_Template","ExposedPasswordsReportComponent_div_21_ng_container_4_tr_12_ng_container_14_Template","ExposedPasswordsReportComponent_div_21_ng_container_4_tr_12_ng_container_16_Template","canManageCipher","exposedPasswordMap","ExposedPasswordsReportComponent_div_21_ng_container_4_tr_12_Template","ExposedPasswordsReportComponent_div_21_app_callout_2_Template","ExposedPasswordsReportComponent_div_21_ng_container_4_Template","ExposedPasswordsReportComponent","getAllCiphers","allCiphers","exposedPasswordCiphers","passwordLeaked","exposedCount","getAllDecrypted","ExposedPasswordsReportComponent_div_21_Template","ExposedPasswordsReportComponent_ng_template_23_Template","cipher_1","cipherCreateRequest_1","cipherRequest_1","originalCipher","canManageAllCollections","loadCollections","loadCipher","getCipherAdmin","encryptCipher","saveCipher","putCipherAdmin","CipherCreateRequest","postCipherAdmin","deleteCipherAdmin","putDeleteCipherAdmin","i14","attachmentView_1","symmetricCryptoKey_1","AttachmentView","orgKey","decryptToBytes","decValue","PasswordHistoryView","sweetalert2_js_1","o_r4","o_r6","ImportComponent_ng_container_24_option_4_Template","importOptions","ImportComponent_app_callout_30_ng_container_26_span_2_Template","ctx_r19","ImportComponent_app_callout_30_ng_container_2_Template","ImportComponent_app_callout_30_ng_container_4_Template","ImportComponent_app_callout_30_ng_container_6_Template","ImportComponent_app_callout_30_ng_container_8_Template","ImportComponent_app_callout_30_ng_container_10_Template","ImportComponent_app_callout_30_ng_container_12_Template","ImportComponent_app_callout_30_ng_container_14_Template","ImportComponent_app_callout_30_ng_container_16_Template","ImportComponent_app_callout_30_ng_container_18_Template","ImportComponent_app_callout_30_ng_container_20_Template","ImportComponent_app_callout_30_ng_container_22_Template","ImportComponent_app_callout_30_ng_container_24_Template","ImportComponent_app_callout_30_ng_container_26_Template","ImportComponent_app_callout_30_ng_container_28_Template","ImportComponent_app_callout_30_ng_container_30_Template","ImportComponent_app_callout_30_ng_container_32_Template","ImportComponent_app_callout_30_ng_container_34_Template","ImportComponent_app_callout_30_ng_container_36_Template","ImportComponent_app_callout_30_ng_container_38_Template","ImportComponent_app_callout_30_ng_container_40_Template","ImportComponent_app_callout_30_ng_container_42_Template","ImportComponent_app_callout_30_ng_container_44_Template","ImportComponent_app_callout_30_ng_container_46_Template","ImportComponent_app_callout_30_ng_container_48_Template","ImportComponent_app_callout_30_ng_container_50_Template","ImportComponent_app_callout_30_ng_container_52_Template","ImportComponent_app_callout_30_ng_container_54_Template","ImportComponent_app_callout_30_ng_container_56_Template","ImportComponent_app_callout_30_ng_container_58_Template","ImportComponent_app_callout_30_ng_container_60_Template","ImportComponent_app_callout_30_ng_container_62_Template","ImportComponent_app_callout_30_ng_container_64_Template","ImportComponent_app_callout_30_ng_container_66_Template","ImportComponent_app_callout_30_ng_container_68_Template","ImportComponent_app_callout_30_ng_container_70_Template","ImportComponent_app_callout_30_ng_container_72_Template","ImportComponent_app_callout_30_ng_container_74_Template","ImportComponent_app_callout_30_ng_container_76_Template","ImportComponent_app_callout_30_ng_container_78_Template","ImportComponent_app_callout_30_ng_container_80_Template","ImportComponent_app_callout_30_ng_container_82_Template","ImportComponent_app_callout_30_ng_container_84_Template","ImportComponent_app_callout_30_ng_container_86_Template","ImportComponent_app_callout_30_ng_container_88_Template","ImportComponent_app_callout_30_ng_container_90_Template","ImportComponent_app_callout_30_ng_container_92_Template","ImportComponent_app_callout_30_ng_container_94_Template","ImportComponent_app_callout_30_ng_container_96_Template","ImportComponent_app_callout_30_ng_container_98_Template","getFormatInstructionTitle","ImportComponent","importService","successNavigate","setImportOptions","importer","getImporter","fileContents","getFileContents","content","import","properties","results","featuredImportOptions","__spreadArrays","regularImportOptions","fire","heightAuto","buttonsStyling","iconHtml","input","inputValue","inputAttributes","readonly","showConfirmButton","confirmButtonText","onOpen","popupEl","scrollTo","file","reader","FileReader","readAsText","evt","pre","onerror","ImportComponent_option_22_Template","ImportComponent_ng_container_24_Template","ImportComponent_app_callout_30_Template","ctx_r11","cipherDocs","c_r8","InactiveTwoFactorReportComponent_div_15_ng_container_4_tr_12_ng_container_13_Template","InactiveTwoFactorReportComponent_div_15_ng_container_4_tr_12_ng_container_15_Template","InactiveTwoFactorReportComponent_div_15_ng_container_4_tr_12_a_25_Template","InactiveTwoFactorReportComponent_div_15_ng_container_4_tr_12_Template","InactiveTwoFactorReportComponent_div_15_app_callout_2_Template","InactiveTwoFactorReportComponent_div_15_ng_container_4_Template","InactiveTwoFactorReportComponent","services","load2fa","inactive2faCiphers_1","docs_1","fetch","Request","json","categoryName","responseJson","serviceName","category","service","InactiveTwoFactorReportComponent_small_5_Template","InactiveTwoFactorReportComponent_div_13_Template","InactiveTwoFactorReportComponent_div_15_Template","InactiveTwoFactorReportComponent_ng_template_17_Template","ReusedPasswordsReportComponent_div_15_ng_container_4_tr_12_ng_container_9_Template","ReusedPasswordsReportComponent_div_15_ng_container_4_tr_12_ng_template_11_Template","ReusedPasswordsReportComponent_div_15_ng_container_4_tr_12_ng_container_14_Template","ReusedPasswordsReportComponent_div_15_ng_container_4_tr_12_ng_container_16_Template","passwordUseMap","ReusedPasswordsReportComponent_div_15_ng_container_4_tr_12_Template","ReusedPasswordsReportComponent_div_15_app_callout_2_Template","ReusedPasswordsReportComponent_div_15_ng_container_4_Template","ReusedPasswordsReportComponent","ciphersWithPasswords","reusedPasswordCiphers","ReusedPasswordsReportComponent_small_5_Template","ReusedPasswordsReportComponent_div_13_Template","ReusedPasswordsReportComponent_div_15_Template","ReusedPasswordsReportComponent_ng_template_17_Template","UnsecuredWebsitesReportComponent_div_15_ng_container_4_tr_12_ng_container_13_Template","UnsecuredWebsitesReportComponent_div_15_ng_container_4_tr_12_ng_container_15_Template","UnsecuredWebsitesReportComponent_div_15_ng_container_4_tr_12_Template","UnsecuredWebsitesReportComponent_div_15_app_callout_2_Template","UnsecuredWebsitesReportComponent_div_15_ng_container_4_Template","UnsecuredWebsitesReportComponent","unsecuredCiphers","UnsecuredWebsitesReportComponent_small_5_Template","UnsecuredWebsitesReportComponent_div_13_Template","UnsecuredWebsitesReportComponent_div_15_Template","UnsecuredWebsitesReportComponent_ng_template_17_Template","WeakPasswordsReportComponent_div_15_ng_container_4_tr_12_ng_container_9_Template","WeakPasswordsReportComponent_div_15_ng_container_4_tr_12_ng_template_11_Template","WeakPasswordsReportComponent_div_15_ng_container_4_tr_12_ng_container_14_Template","WeakPasswordsReportComponent_div_15_ng_container_4_tr_12_ng_container_16_Template","passwordStrengthMap","WeakPasswordsReportComponent_div_15_ng_container_4_tr_12_Template","WeakPasswordsReportComponent_div_15_app_callout_2_Template","WeakPasswordsReportComponent_div_15_ng_container_4_Template","WeakPasswordsReportComponent","passwordStrengthCache","weakPasswordCiphers","hasUsername","cacheKey","scoreKey","WeakPasswordsReportComponent_small_5_Template","WeakPasswordsReportComponent_div_13_Template","WeakPasswordsReportComponent_div_15_Template","WeakPasswordsReportComponent_ng_template_17_Template","attachments_component_1","a_r6","reupload","reuploadPromises","_r11","deletePromises","AttachmentsComponent_table_25_tr_4_i_4_Template","AttachmentsComponent_table_25_tr_4_i_6_Template","download","AttachmentsComponent_table_25_tr_4_div_16_Template","AttachmentsComponent_table_25_tr_4_td_23_Template","downloading","AttachmentsComponent_table_25_tr_4_Template","AttachmentsComponent","reuploadCipherAttachment","AttachmentsComponent_small_12_Template","AttachmentsComponent_table_25_Template","AttachmentsComponent_div_27_Template","AttachmentsComponent_button_32_Template","onEventsClicked","deleted","getAllFromApiForOrganization","applyFilter","searchPending","filteredCiphers","searchCiphersBasic","resetPaging","collections_component_1","c_r9","i_r10","CollectionsComponent_table_40_tr_4_Template","CollectionsComponent","CollectionsComponent_small_12_Template","CollectionsComponent_div_35_Template","CollectionsComponent_div_38_Template","CollectionsComponent_table_40_Template","collectionData_1","getCollections","collectionDomains","decryptMany","unassignedCollection","getAllNested","grouping","bulk_delete_component_1","bulk_move_component_1","bulk_restore_component_1","bulk_share_component_1","bulkMove","bulkShare","bulkRestore","BulkActionsComponent","bulkDelete","selectedIds","ciphersComponent","bulkDeleteModalRef","BulkDeleteComponent","cipherIds","onDeleted","bulkRestoreModalRef","BulkRestoreComponent","onRestored","selectedCiphers","bulkShareModalRef","BulkShareComponent","onShared","bulkMoveModalRef","BulkMoveComponent","onMoved","BulkActionsComponent_button_10_Template","BulkActionsComponent_button_12_Template","BulkActionsComponent_button_14_Template","BulkActionsComponent_ng_template_38_Template","BulkActionsComponent_ng_template_41_Template","BulkActionsComponent_ng_template_44_Template","BulkActionsComponent_ng_template_47_Template","sendFileView_1","SendFile","sendTextView_1","SendText","ErrorResponse","identityResponse","errorModel","responseErrorModel","getSingleMessage","messages","this_1","item","prefix","lastSep","lastIndexOf","CipherWithIdRequest","FolderRequest","folder","SelectCopyDirective","onCopy","copyText","selection","getSelection","rangeCount","getRangeAt","stringEndPos","newLinePos","ColorPasswordPipe","colorizedPassword","isSpecial","FolderData","Folder","attachmentResponse_1","baseResponse_1","passwordHistoryResponse_1","CipherResponse","AttachmentResponse","h","PasswordHistoryResponse","profileOrganizationResponse_1","ProfileResponse","emailVerified","masterPasswordHint","culture","twoFactorEnabled","securityStamp","ProfileOrganizationResponse","SendFileApi","SendTextApi","NotificationsService","webpackEmptyAsyncContext","keys","FrontendLayoutComponent","classList","remove","manageRoute","toolsRoute","OrganizationLayoutComponent_div_2_ul_23_li_11_Template","OrganizationLayoutComponent_div_2_ul_23_li_13_Template","OrganizationLayoutComponent_div_2_ul_23_li_15_Template","showManageTab","showToolsTab","isOwner","goToBusinessPortal","businessTokenPromise","OrganizationLayoutComponent_div_2_div_20_Template","OrganizationLayoutComponent_div_2_ul_23_Template","OrganizationLayoutComponent_div_2_button_28_Template","showMenuBar","showBusinessPortalButton","OrganizationLayoutComponent","broadcasterService","ngZone","businessUrl","enterpriseUrl","run","command","unsubscribe","getEnterprisePortalSignInToken","canManageUsers","canManageAssignedCollections","canManageGroups","canManagePolicies","canAccessEventLogs","canAccessImportExport","canAccessReports","canAccessBusinessPortal","NgZone","OrganizationLayoutComponent_div_2_Template","UserLayoutComponent","emergencyAccessAcceptRequest_1","AcceptEmergencyComponent","fired","queryParams","qParams","errorMessage","isAuthenticated","EmergencyAccessAcceptRequest","postEmergencyAccessAccept","toast","save","AcceptEmergencyComponent_div_0_Template","AcceptEmergencyComponent_div_2_Template","organizationUserAcceptRequest_1","orgName","AcceptOrganizationComponent","OrganizationUserAcceptRequest","postOrganizationUserAccept","organizationName","AcceptOrganizationComponent_div_0_Template","AcceptOrganizationComponent_div_2_Template","hint_component_1","HintComponent","lock_component_1","LockComponent","routerService","hasKey","onSuccessfulSubmit","successRoute","webVaultHostname","login_component_1","LoginComponent","authService","onSuccessfulLoginNavigate","goAfterLogIn","queryParamsSub","orgInvite","emergencyInvite","loginRedirect","rememberEmail","deleteRecoverRequest_1","RecoverDeleteComponent","DeleteRecoverRequest","postAccountRecoverDelete","twoFactorRecoveryRequest_1","RecoverTwoFactorComponent","TwoFactorRecoveryRequest","postTwoFactorRecover","register_component_1","policy_1","policyData_1","referenceEventRequest_1","RegisterComponent_div_9_div_4_Template","RegisterComponent_div_9_div_6_Template","RegisterComponent_div_9_div_8_Template","layout","minLength","RegisterComponent_app_callout_53_li_5_Template","RegisterComponent_app_callout_53_li_7_Template","RegisterComponent_app_callout_53_li_9_Template","RegisterComponent_app_callout_53_li_11_Template","RegisterComponent_app_callout_53_li_13_Template","RegisterComponent_app_callout_53_li_15_Template","requireUpper","requireLower","requireNumbers","requireSpecial","acceptPolicies","RegisterComponent","showCreateOrgMessage","referenceData","ReferenceEventRequest","reference","cookie","pop","invite","getPoliciesByToken","policiesData","RegisterComponent_header_2_Template","RegisterComponent_div_9_Template","RegisterComponent_p_17_Template","RegisterComponent_app_callout_23_Template","RegisterComponent_app_callout_53_Template","confirmMasterPassword","hint","RegisterComponent_div_117_Template","showTerms","_r1","set_password_component_1","SetPasswordComponent_div_15_app_callout_8_li_5_Template","SetPasswordComponent_div_15_app_callout_8_li_7_Template","SetPasswordComponent_div_15_app_callout_8_li_9_Template","SetPasswordComponent_div_15_app_callout_8_li_11_Template","SetPasswordComponent_div_15_app_callout_8_li_13_Template","SetPasswordComponent_div_15_app_callout_8_li_15_Template","SetPasswordComponent_div_15_app_callout_8_Template","SetPasswordComponent","SetPasswordComponent_div_13_Template","SetPasswordComponent_div_15_Template","syncLoading","sso_component_1","SsoComponent","redirectUri","origin","storedIdentifier","SsoComponent_div_11_Template","SsoComponent_div_13_Template","initiateSsoFormPromise","loggingIn","twoFactorRoute","changePasswordRoute","checkState","getOrgIdentiferFromState","codeChallenge","returnUri","includeUserIdentifier","preValidate","buildAuthorizeUrl","authorizeUrl","sameWindow","preValidateSso","passwordOptions","uppercase","lowercase","numbers","special","codeVerifierHash","identityBaseUrl","getSsoUserIdentifier","userIdentifier","orgIdFromState","onSuccessfulLoginTwoFactorNavigate","sso","onSuccessfulLoginChangePasswordNavigate","disableFavicon","onSuccessfulLogin","stateSplit","checkStateSplit","two_factor_options_component_1","two_factor_component_1","twoFactorEmail","sendEmail","emailPromise","TwoFactorComponent_ng_container_14_small_14_a_2_Template","selectedProviderType","TwoFactorComponent_ng_container_14_p_2_Template","TwoFactorComponent_ng_container_14_p_4_Template","TwoFactorComponent_ng_container_14_small_14_Template","TwoFactorComponent_ng_container_18_p_2_Template","TwoFactorComponent_ng_container_18_ng_container_4_Template","u2fReady","TwoFactorComponent","anotherMethod","twoFactorOptionsModal","TwoFactorOptionsComponent","onProviderSelected","onRecoverSelected","TwoFactorComponent_ng_container_14_Template","TwoFactorComponent_ng_container_16_Template","TwoFactorComponent_ng_container_18_Template","TwoFactorComponent_ng_container_20_Template","TwoFactorComponent_i_22_Template","TwoFactorComponent_div_24_Template","TwoFactorComponent_ng_container_26_Template","TwoFactorComponent_button_32_Template","TwoFactorComponent_ng_template_51_Template","p_r1","choose","TwoFactorOptionsComponent_a_22_Template","recover","TwoFactorEmailRequest","verifyEmailRequest_1","VerifyEmailTokenComponent","postAccountVerifyEmailToken","VerifyEmailRequest","verifyDeleteRecoverRequest_1","VerifyRecoverDeleteComponent","VerifyDeleteRecoverRequest","postAccountRecoverDeleteToken","collection_add_edit_component_1","entity_users_component_1","c_r10","CollectionsComponent_ng_container_28_table_4_tr_4_Template","searchedCollections_r6","CollectionsComponent_ng_container_28_p_2_Template","CollectionsComponent_ng_container_28_table_4_Template","didScroll","pagedCollectionsCount","getUserCollections","pagedLength","pagedCollections","pagedSize","addEditModalRef","CollectionAddEditComponent","onSavedCollection","onDeletedCollection","removeCollection","deleteCollection","usersModalRef","isSearching","isSearchable","searching","index","CollectionsComponent_ng_container_26_Template","CollectionsComponent_ng_container_28_Template","CollectionsComponent_ng_template_31_Template","CollectionsComponent_ng_template_34_Template","collectionRequest_1","g_r12","CollectionAddEditComponent_div_22_ng_container_24_table_10_tr_25_ng_container_9_Template","i_r13","CollectionAddEditComponent_div_22_ng_container_24_table_10_tr_25_Template","groups","CollectionAddEditComponent_div_22_ng_container_24_div_5_Template","CollectionAddEditComponent_div_22_ng_container_24_div_8_Template","CollectionAddEditComponent_div_22_ng_container_24_table_10_Template","CollectionAddEditComponent_div_22_ng_container_24_Template","accessGroups","getGroups","groupsResponse","getCollectionDetails","group","g","CollectionRequest","putCollection","postCollection","CollectionAddEditComponent_div_20_Template","CollectionAddEditComponent_div_22_Template","CollectionAddEditComponent_button_42_Template","e_r7","EventsComponent_ng_container_39_table_4_tr_29_Template","EventsComponent_ng_container_39_p_2_Template","EventsComponent_ng_container_39_table_4_Template","EventsComponent_ng_container_39_button_6_Template","EventsComponent","getEventsOrganization","EventsComponent_ng_container_37_Template","EventsComponent_ng_container_39_Template","group_add_edit_component_1","g_r10","GroupsComponent_ng_container_28_table_4_tr_4_Template","searchedGroups_r6","GroupsComponent_ng_container_28_p_2_Template","GroupsComponent_ng_container_28_table_4_Template","GroupsComponent","pagedGroupsCount","pagedGroups","GroupAddEditComponent","onSavedGroup","onDeletedGroup","removeGroup","deleteGroup","GroupsComponent_ng_container_26_Template","GroupsComponent_ng_container_28_Template","GroupsComponent_ng_template_31_Template","GroupsComponent_ng_template_34_Template","groupRequest_1","c_r12","GroupAddEditComponent_div_22_ng_container_60_table_4_tr_25_Template","GroupAddEditComponent_div_22_ng_container_60_div_2_Template","GroupAddEditComponent_div_22_ng_container_60_table_4_Template","GroupAddEditComponent_div_22_div_36_Template","access","GroupAddEditComponent_div_22_ng_container_60_Template","getGroupDetails","GroupRequest","putGroup","postGroup","GroupAddEditComponent_div_20_Template","GroupAddEditComponent_div_22_Template","GroupAddEditComponent_button_42_Template","ManageComponent_div_6_a_8_Template","ManageComponent_div_6_a_10_Template","ManageComponent_div_6_a_12_Template","ManageComponent_div_6_a_14_Template","ManageComponent_div_6_a_16_Template","accessPolicies","ManageComponent","ManageComponent_div_6_Template","organizationUserConfirmRequest_1","entity_events_component_1","user_add_edit_component_1","user_confirm_component_1","user_groups_component_1","allCount","invitedCount","acceptedCount","u_r18","reinvite","_r38","confirm","PeopleComponent_ng_container_49_ng_container_4_tr_8_span_12_Template","PeopleComponent_ng_container_49_ng_container_4_tr_8_span_14_Template","PeopleComponent_ng_container_49_ng_container_4_tr_8_small_16_Template","PeopleComponent_ng_container_49_ng_container_4_tr_8_ng_container_21_Template","PeopleComponent_ng_container_49_ng_container_4_tr_8_span_26_Template","PeopleComponent_ng_container_49_ng_container_4_tr_8_span_28_Template","PeopleComponent_ng_container_49_ng_container_4_tr_8_span_30_Template","PeopleComponent_ng_container_49_ng_container_4_tr_8_span_32_Template","PeopleComponent_ng_container_49_ng_container_4_tr_8_span_34_Template","PeopleComponent_ng_container_49_ng_container_4_tr_8_a_49_Template","PeopleComponent_ng_container_49_ng_container_4_tr_8_a_51_Template","PeopleComponent_ng_container_49_ng_container_4_tr_8_a_53_Template","PeopleComponent_ng_container_49_ng_container_4_tr_8_a_55_Template","ctx_r17","PeopleComponent_ng_container_49_ng_container_4_app_callout_2_Template","PeopleComponent_ng_container_49_ng_container_4_tr_8_Template","showConfirmUsers","searchedUsers_r13","PeopleComponent_ng_container_49_p_2_Template","PeopleComponent_ng_container_49_ng_container_4_Template","PeopleComponent","statusMap","pagedUsersCount","viewEvents","pagedUsers","confirmedCount","UserAddEditComponent","onSavedUser","onDeletedUser","removeUser","groupsModalRef","UserGroupsComponent","deleteOrganizationUser","postOrganizationUserReinvite","updateUser","mapIndex","autoConfirm","doConfirmation","confirmModalRef","UserConfirmComponent","onConfirmedUser","eventsModalRef","getUserPublicKey","publicKeyResponse","log","getFingerprint","rsaEncrypt","OrganizationUserConfirmRequest","postOrganizationUserConfirm","PeopleComponent_span_13_Template","PeopleComponent_span_19_Template","PeopleComponent_span_25_Template","PeopleComponent_ng_container_47_Template","PeopleComponent_ng_container_49_Template","PeopleComponent_ng_template_52_Template","PeopleComponent_ng_template_55_Template","PeopleComponent_ng_template_58_Template","PeopleComponent_ng_template_61_Template","_c4","_c5","organizationUserInviteRequest_1","organizationUserUpdateRequest_1","permissionsApi_1","emails","c_r28","i_r29","UserAddEditComponent_div_24_ng_container_117_table_4_tr_25_Template","UserAddEditComponent_div_24_ng_container_117_div_2_Template","UserAddEditComponent_div_24_ng_container_117_table_4_Template","UserAddEditComponent_div_24_ng_container_2_Template","UserAddEditComponent_div_24_ng_container_79_Template","UserAddEditComponent_div_24_div_93_Template","UserAddEditComponent_div_24_ng_container_117_Template","customUserTypeSelected","showCustom","getOrganizationUser","setRequestPermissions","clearPermissions","OrganizationUserUpdateRequest","putOrganizationUser","OrganizationUserInviteRequest","postOrganizationUserInvite","UserAddEditComponent_small_11_Template","UserAddEditComponent_div_22_Template","UserAddEditComponent_div_24_Template","UserAddEditComponent_button_44_Template","dontAskAgain","fingerprint","UserConfirmComponent_small_12_Template","organizationUserUpdateGroupsRequest_1","g_r7","i_r8","UserGroupsComponent_div_25_table_8_tr_4_Template","UserGroupsComponent_div_25_div_6_Template","UserGroupsComponent_div_25_table_8_Template","getOrganizationUserGroups","userGroups","ug","OrganizationUserUpdateGroupsRequest","groupIds","putOrganizationUserGroups","UserGroupsComponent_small_12_Template","UserGroupsComponent_div_23_Template","UserGroupsComponent_div_25_Template","policy_edit_component_1","goToEnterprisePortal","_r13","p_r8","PoliciesComponent_table_11_tr_4_td_2_span_5_Template","PoliciesComponent_table_11_tr_4_td_2_Template","display","PoliciesComponent_table_11_tr_4_Template","PoliciesComponent","userCanAccessBusinessPortal","policiesEnabledMap","MasterPassword","PasswordGenerator","RequireSso","PersonalOwnership","DisableSend","policyIdFromEvents","_i","orgPolicies","orgPolicy","getPolicies","op","editModalRef","PolicyEditComponent","onSavedPolicy","enterpriseTokenPromise","PoliciesComponent_app_callout_0_Template","PoliciesComponent_ng_container_9_Template","PoliciesComponent_table_11_Template","PoliciesComponent_ng_template_13_Template","api_service_1","appId_service_1","AppIdService","audit_service_1","cipher_service_1","collection_service_1","crypto_service_1","environment_service_1","folder_service_1","i18n_service_1","log_service_1","LogService","messaging_service_1","passwordGeneration_service_1","platformUtils_service_1","search_service_1","settings_service_1","storage_service_1","state_service_1","sync_service_1","token_service_1","totp_service_1","user_service_1","vaultTimeout_service_1","policyRequest_1","o_r11","masterPassMinComplexity","PolicyEditComponent_div_23_ng_container_26_option_12_Template","masterPassMinLength","masterPassRequireUpper","masterPassRequireLower","masterPassRequireNumbers","masterPassRequireSpecial","passwordScores","o_r20","passGenDefaultType","PolicyEditComponent_div_23_ng_container_28_option_12_Template","passGenMinLength","passGenMinNumbers","passGenMinSpecial","passGenUseUpper","passGenUseLower","passGenUseNumbers","passGenUseSpecial","passGenMinNumberWords","passGenCapitalize","passGenIncludeNumber","defaultTypes","PolicyEditComponent_div_23_app_callout_5_Template","PolicyEditComponent_div_23_app_callout_7_Template","PolicyEditComponent_div_23_ng_container_9_Template","PolicyEditComponent_div_23_app_callout_11_Template","PolicyEditComponent_div_23_app_callout_13_Template","PolicyEditComponent_div_23_ng_container_26_Template","PolicyEditComponent_div_23_ng_container_28_Template","policyType","checkboxDesc","getPolicy","policy","defaultType","useUpper","useLower","useNumbers","useSpecial","minNumbers","minSpecial","minNumberWords","capitalize","includeNumber","PolicyRequest","putPolicy","PolicyEditComponent_div_21_Template","PolicyEditComponent_div_23_Template","organizationUpdateRequest_1","api_key_component_1","purge_vault_component_1","delete_organization_component_1","viewApiKey","rotateApiKey","taxFormPromise","AccountComponent","canUseApi","OrganizationUpdateRequest","putOrganization","deleteOrganization","deleteModalRef","DeleteOrganizationComponent","purgeVault","purgeModalRef","apiKeyModalRef","postOrganizationApiKey","rotateApiKeyModalRef","postOrganizationRotateApiKey","AccountComponent_div_7_Template","AccountComponent_form_9_Template","AccountComponent_ng_container_11_Template","AccountComponent_div_24_Template","AccountComponent_form_26_Template","AccountComponent_ng_template_53_Template","AccountComponent_ng_template_56_Template","AccountComponent_ng_template_59_Template","AccountComponent_ng_template_62_Template","user_billing_component_1","OrganizationBillingComponent_ng_container_11_ng_container_25_app_callout_2_Template","OrganizationBillingComponent_ng_container_11_ng_container_25_span_8_Template","OrganizationBillingComponent_ng_container_11_table_37_tr_4_span_25_Template","OrganizationBillingComponent_ng_container_11_table_37_tr_4_span_27_Template","OrganizationBillingComponent_ng_container_11_table_37_tr_4_Template","OrganizationBillingComponent_ng_container_11_table_45_tr_4_span_8_Template","OrganizationBillingComponent_ng_container_11_table_45_tr_4_span_10_Template","OrganizationBillingComponent_ng_container_11_table_45_tr_4_i_15_Template","OrganizationBillingComponent_ng_container_11_table_45_tr_4_Template","OrganizationBillingComponent_ng_container_11_button_15_Template","OrganizationBillingComponent_ng_container_11_app_add_credit_17_Template","OrganizationBillingComponent_ng_container_11_p_23_Template","OrganizationBillingComponent_ng_container_11_ng_container_25_Template","OrganizationBillingComponent_ng_container_11_button_27_Template","OrganizationBillingComponent_ng_container_11_app_adjust_payment_29_Template","OrganizationBillingComponent_ng_container_11_p_35_Template","OrganizationBillingComponent_ng_container_11_table_37_Template","OrganizationBillingComponent_ng_container_11_p_43_Template","OrganizationBillingComponent_ng_container_11_table_45_Template","OrganizationBillingComponent","OrganizationBillingComponent_button_6_Template","OrganizationBillingComponent_ng_container_9_Template","OrganizationBillingComponent_ng_container_11_Template","reinstate","reinstatePromise","OrganizationSubscriptionComponent_ng_container_11_dl_6_dd_13_span_3_Template","sub","isExpired","OrganizationSubscriptionComponent_ng_container_11_dl_6_dd_13_Template","OrganizationSubscriptionComponent_ng_container_11_dl_6_dd_15_Template","OrganizationSubscriptionComponent_ng_container_11_div_8_ng_container_13_span_11_Template","subscription","subscriptionMarkedForCancel","nextInvoice","i_r19","quantity","OrganizationSubscriptionComponent_ng_container_11_div_8_div_17_tr_10_Template","OrganizationSubscriptionComponent_ng_container_11_div_8_ng_container_13_Template","OrganizationSubscriptionComponent_ng_container_11_div_8_div_17_Template","closeUpdateLicense","updateLicense","OrganizationSubscriptionComponent_ng_container_11_ng_container_10_div_13_Template","showUpdateLicense","changePlan","downloadLicense","showDownloadLicense","ctx_r29","cancelPromise","_r42","closeChangePlan","closeDownloadLicense","ctx_r31","_r50","adjustSeats","_r53","closeSeats","ctx_r48","adjustSeatsAdd","billingInterval","OrganizationSubscriptionComponent_ng_container_11_ng_container_12_ng_container_23_div_4_Template","OrganizationSubscriptionComponent_ng_container_11_ng_container_12_ng_container_23_app_adjust_seats_6_Template","ctx_r32","showAdjustSeats","_r58","adjustStorage","_r61","closeStorage","ctx_r56","adjustStorageAdd","OrganizationSubscriptionComponent_ng_container_11_ng_container_12_ng_container_40_div_4_Template","OrganizationSubscriptionComponent_ng_container_11_ng_container_12_ng_container_40_app_adjust_storage_6_Template","ctx_r33","showAdjustStorage","OrganizationSubscriptionComponent_ng_container_11_ng_container_12_button_4_Template","OrganizationSubscriptionComponent_ng_container_11_ng_container_12_button_6_Template","OrganizationSubscriptionComponent_ng_container_11_ng_container_12_button_8_Template","OrganizationSubscriptionComponent_ng_container_11_ng_container_12_app_change_plan_11_Template","OrganizationSubscriptionComponent_ng_container_11_ng_container_12_div_13_Template","OrganizationSubscriptionComponent_ng_container_11_ng_container_12_ng_container_23_Template","OrganizationSubscriptionComponent_ng_container_11_ng_container_12_ng_container_40_Template","showChangePlan","canDownloadLicense","cancelled","canAdjustSeats","storageName","storageProgressWidth","storagePercentage","OrganizationSubscriptionComponent_ng_container_11_app_callout_2_Template","OrganizationSubscriptionComponent_ng_container_11_app_callout_4_Template","OrganizationSubscriptionComponent_ng_container_11_dl_6_Template","OrganizationSubscriptionComponent_ng_container_11_div_8_Template","OrganizationSubscriptionComponent_ng_container_11_ng_container_10_Template","OrganizationSubscriptionComponent_ng_container_11_ng_container_12_Template","OrganizationSubscriptionComponent","getOrganizationSubscription","postOrganizationReinstate","postOrganizationCancel","changed","updated","cancelAtEndDate","upcomingInvoice","storageGb","OrganizationSubscriptionComponent_small_5_Template","OrganizationSubscriptionComponent_ng_container_9_Template","OrganizationSubscriptionComponent_ng_container_11_Template","ChangePlanComponent","onChanged","defaultUpgradePlan","FamiliesAnnually","defaultUpgradeProduct","Families","DownloadLicenseComponent","onDownloaded","installationId","getOrganizationLicense","license","licenseString","JSON","stringify","saveFile","seatRequest_1","seatAdjustment","adjustedSeatTotal","AdjustSeatsComponent","SeatRequest","postOrganizationSeat","AdjustSeatsComponent_div_26_Template","SettingsComponent","access2fa","SettingsComponent_a_22_Template","SettingsComponent_a_24_Template","two_factor_setup_component_1","duoComp","getTwoFactorOrganizationProviders","updateTwoFactorAuthenticatorRequest_1","TwoFactorAuthenticatorComponent_form_26_ng_container_5_Template","TwoFactorAuthenticatorComponent_form_26_ng_container_7_Template","TwoFactorAuthenticatorComponent_form_26_p_43_Template","TwoFactorAuthenticatorComponent_form_26_hr_45_Template","TwoFactorAuthenticatorComponent_form_26_ng_container_57_Template","TwoFactorAuthenticatorComponent_form_26_span_67_Template","TwoFactorAuthenticatorComponent_form_26_span_69_Template","qrScript","UpdateTwoFactorAuthenticatorRequest","putTwoFactorAuthenticator","QRious","element","TwoFactorAuthenticatorComponent_app_two_factor_verify_24_Template","TwoFactorAuthenticatorComponent_form_26_Template","twoFactorEmailRequest_1","updateTwoFactorEmailRequest_1","sentEmail","TwoFactorEmailComponent_form_26_ng_container_7_span_33_Template","TwoFactorEmailComponent_form_26_ng_container_5_Template","TwoFactorEmailComponent_form_26_ng_container_7_Template","TwoFactorEmailComponent_form_26_span_17_Template","TwoFactorEmailComponent_form_26_span_19_Template","postTwoFactorEmailSetup","UpdateTwoFactorEmailRequest","putTwoFactorEmail","TwoFactorEmailComponent_app_two_factor_verify_24_Template","TwoFactorEmailComponent_form_26_Template","print","TwoFactorRecoveryComponent_ng_container_26_ng_container_4_Template","TwoFactorRecoveryComponent_ng_container_26_ng_container_6_Template","TwoFactorRecoveryComponent_ng_container_26_button_11_Template","w","open","write","onafterprint","formatString","TwoFactorRecoveryComponent_app_two_factor_verify_24_Template","TwoFactorRecoveryComponent_ng_container_26_Template","updateTwoFactorU2fDeleteRequest_1","updateTwoFactorU2fRequest_1","i_r14","k_r13","TwoFactorU2fComponent_form_25_li_25_ng_container_9_ng_container_2_Template","TwoFactorU2fComponent_form_25_li_25_ng_container_9_ng_container_4_Template","compromised","TwoFactorU2fComponent_form_25_li_25_ng_container_11_i_2_Template","TwoFactorU2fComponent_form_25_li_25_strong_5_Template","TwoFactorU2fComponent_form_25_li_25_strong_7_Template","TwoFactorU2fComponent_form_25_li_25_ng_container_9_Template","TwoFactorU2fComponent_form_25_li_25_ng_container_11_Template","removePromise","configured","keysConfiguredCount","TwoFactorU2fComponent_form_25_ng_container_72_ng_container_2_Template","TwoFactorU2fComponent_form_25_ng_container_72_ng_container_4_Template","TwoFactorU2fComponent_form_25_ng_container_72_ng_container_6_Template","u2fListening","u2fResponse","u2fError","disablePromise","_r36","TwoFactorU2fComponent_form_25_app_callout_5_Template","TwoFactorU2fComponent_form_25_li_25_Template","readKey","TwoFactorU2fComponent_form_25_ng_container_70_Template","TwoFactorU2fComponent_form_25_ng_container_72_Template","TwoFactorU2fComponent_form_25_i_79_Template","TwoFactorU2fComponent_form_25_span_81_Template","TwoFactorU2fComponent_form_25_button_84_Template","keyIdAvailable","challengePromise","u2fScript","UpdateTwoFactorU2fRequest","deviceResponse","putTwoFactorU2f","UpdateTwoFactorU2fDeleteRequest","deleteTwoFactorU2f","getTwoFactorU2fChallenge","challenge","readDevice","u2fChallenge","resetU2f","u2f","register","errorCode","listening","k","TwoFactorU2fComponent_app_two_factor_verify_23_Template","TwoFactorU2fComponent_form_25_Template","updateTwoFactorYubioOtpRequest_1","i_r9","k_r8","existingKey","TwoFactorYubiKeyComponent_form_25_div_54_input_6_Template","TwoFactorYubiKeyComponent_form_25_div_54_div_8_Template","TwoFactorYubiKeyComponent_form_25_app_callout_5_Template","TwoFactorYubiKeyComponent_form_25_div_54_Template","nfc","TwoFactorYubiKeyComponent_form_25_button_87_Template","UpdateTwoFactorYubioOtpRequest","key1","key2","key3","key4","key5","putTwoFactorYubiKey","padRight","max","TwoFactorYubiKeyComponent_app_two_factor_verify_23_Template","TwoFactorYubiKeyComponent_form_25_Template","getExportData","getOrganizationExport","getFileName","collectEvent","exposed_passwords_report_component_1","manageableCiphers","passwordHistoryView_1","FallbackSrcDirective","onError","appFallbackSrc","import_component_1","inactive_two_factor_report_component_1","reused_passwords_report_component_1","ToolsComponent_ng_container_4_div_8_a_7_Template","ToolsComponent_ng_container_4_div_6_Template","ToolsComponent_ng_container_4_div_8_Template","ToolsComponent","ToolsComponent_ng_container_2_Template","ToolsComponent_ng_container_4_Template","unsecured_websites_report_component_1","weak_passwords_report_component_1","VaultComponent","changeDetectorRef","groupingsComponent","successfully","detectChanges","reload","filterDeleted","filterCipherType","filterCollection","clearGroupingFilters","clearFilters","go","filterSearchText","editCipherAttachments","attachmentsModalRef","madeAttachmentChanges","onUploadedAttachment","onDeletedAttachment","editCipherCollections","collectionsModalRef","onSavedCollections","component","editCipher","cloneCipher","replaceUrl","ChangeDetectorRef","VaultComponent_ng_container_20_Template","VaultComponent_button_29_Template","VaultComponent_ng_template_39_Template","VaultComponent_ng_template_42_Template","VaultComponent_ng_template_45_Template","VaultComponent_ng_template_48_Template","saveCipherAttachment","saveAttachmentWithServer","cipherDomain","deleteCipherAttachment","attachmentId","deleteCipherAttachmentAdmin","onReuploadedAttachment","hasUpdatedKey","canAccessAttachments","cache","arrayBuffer","buf","decryptFromBytes","decBuf","hasEncKey","admin","saveAttachmentRawWithServer","foundAttachment","a2","deleteAttachmentWithServer","Window","cipherCollectionsRequest_1","allowSelectNone","loadCipherCollections","saveCollections","CipherCollectionsRequest","putCipherCollectionsAdmin","cipherBulkDeleteRequest_1","deleteCiphers","deleteCiphersAdmin","deleteManyWithServer","softDeleteManyWithServer","deleteRequest","CipherBulkDeleteRequest","deleteManyCiphersAdmin","putDeleteManyCiphersAdmin","ids","f_r2","moveManyWithServer","BulkMoveComponent_option_35_Template","restoreManyWithServer","o_r5","i_r11","BulkShareComponent_table_54_tr_4_Template","nonShareableCount","shareableCiphers","writeableCollections","allCollections","filterCollections","checkedCollectionIds","shareManyWithServer","BulkShareComponent_option_39_Template","BulkShareComponent_div_49_Template","BulkShareComponent_div_52_Template","BulkShareComponent_table_54_Template","canSave","sendAccess_1","sendType_1","sendAccessRequest_1","errorResponse_1","creatorIdentifier","toggleText","AccessComponent_div_25_ng_container_9_app_callout_2_Template","sendText","AccessComponent_div_25_ng_container_9_button_9_Template","AccessComponent_div_25_ng_container_12_button_5_Template","AccessComponent_div_25_ng_container_12_button_7_Template","expirationDate","AccessComponent_div_25_ng_container_9_Template","AccessComponent_div_25_ng_container_12_Template","AccessComponent_div_25_p_14_Template","sendType","File","AccessComponent","passwordRequired","unavailable","maskedText","sendId","decKey","getSendFileDownloadData","accessRequest","downloadData","keyArray","SendAccessRequest","pbkdf2","passwordHash","sendResponse","postSendAccess","sendAccess","SendAccess","makeSendKey","AccessComponent_div_11_Template","AccessComponent_div_17_Template","AccessComponent_div_19_Template","AccessComponent_div_21_Template","AccessComponent_div_23_Template","AccessComponent_div_25_Template","send_component_1","s_r8","removePassword","SendComponent_table_84_tr_4_i_6_Template","SendComponent_table_84_tr_4_i_8_Template","editSend","SendComponent_table_84_tr_4_ng_container_17_Template","SendComponent_table_84_tr_4_ng_container_19_Template","SendComponent_table_84_tr_4_ng_container_21_Template","SendComponent_table_84_tr_4_ng_container_23_Template","SendComponent_table_84_tr_4_ng_container_25_Template","SendComponent_table_84_tr_4_a_52_Template","maxAccessCountReached","expired","pendingDelete","deletionDate","disableSend","SendComponent_table_84_tr_4_Template","filteredSends","addSend","SendComponent_div_86_ng_container_2_Template","SendComponent_div_86_ng_container_4_Template","SendComponent","sendService","sendAddEditModalRef","onSavedSend","onDeletedSend","SendComponent_div_2_Template","SendComponent_ng_container_69_Template","SendComponent_table_84_Template","SendComponent_div_86_Template","SendComponent_ng_template_91_Template","o_r23","typeChanged","ctx_r22","AddEditComponent_div_20_div_20_div_8_Template","AddEditComponent_div_20_ng_container_26_div_4_Template","AddEditComponent_div_20_ng_container_26_div_6_Template","link","ctx_r34","o_r41","military","standard","safariDeletionTime","AddEditComponent_div_20_ng_template_68_div_3_select_4_option_2_Template","ctx_r38","safariDeletionTimeOptions","deletionTimeFallback","_r47","deletionDateFallback","AddEditComponent_div_20_ng_template_68_div_3_select_4_Template","AddEditComponent_div_20_ng_template_68_div_3_input_6_Template","ctx_r35","isSafari","AddEditComponent_div_20_ng_template_68_ng_container_1_Template","AddEditComponent_div_20_ng_template_68_div_3_Template","isDateTimeLocalSupported","o_r50","AddEditComponent_div_20_div_71_ng_container_7_ng_container_2_Template","deletionDateSelect","AddEditComponent_div_20_div_71_option_4_Template","AddEditComponent_div_20_div_71_ng_container_7_Template","deletionDateOptions","AddEditComponent_div_20_div_73_ng_container_2_Template","clearExpiration","_r60","ctx_r57","o_r64","_r66","safariExpirationTime","AddEditComponent_div_20_ng_template_91_div_3_select_4_option_2_Template","safariExpirationTimeOptions","_r68","expirationTimeFallback","_r70","expirationDateFallback","expirationDateFallbackChanged","AddEditComponent_div_20_ng_template_91_div_3_select_4_Template","AddEditComponent_div_20_ng_template_91_div_3_input_6_Template","ctx_r58","AddEditComponent_div_20_ng_template_91_ng_container_1_Template","AddEditComponent_div_20_ng_template_91_div_3_Template","o_r74","AddEditComponent_div_20_div_94_ng_container_7_ng_container_2_Template","_r77","expirationDateSelect","AddEditComponent_div_20_div_94_option_4_Template","AddEditComponent_div_20_div_94_ng_container_7_Template","expirationDateOptions","AddEditComponent_div_20_div_96_ng_container_2_Template","_r80","accessCount","_r82","AddEditComponent_div_20_div_20_Template","AddEditComponent_div_20_ng_container_23_Template","AddEditComponent_div_20_ng_container_26_Template","AddEditComponent_div_20_div_32_Template","copyLink","toggleOptions","AddEditComponent_div_20_ng_template_68_Template","AddEditComponent_div_20_div_71_Template","AddEditComponent_div_20_div_73_Template","AddEditComponent_div_20_a_88_Template","AddEditComponent_div_20_ng_template_91_Template","AddEditComponent_div_20_div_94_Template","AddEditComponent_div_20_div_96_Template","maxAccessCount","AddEditComponent_div_20_div_119_Template","AddEditComponent_div_20_label_126_Template","AddEditComponent_div_20_label_128_Template","togglePasswordVisible","hasPassword","_r93","_r91","AddEditComponent_div_32_button_2_Template","datePipe","copyLinkToClipboard","DatePipe","AddEditComponent_button_26_Template","AddEditComponent_div_32_Template","SendView","accessId","deauthorize_sessions_component_1","delete_account_component_1","deauthorizeSessions","deauthModalRef","DeauthorizeSessionsComponent","deleteAccount","DeleteAccountComponent","viewUserApiKey","viewUserApiKeyModalRef","postUserApiKey","rotateUserApiKey","rotateUserApiKeyModalRef","postUserRotateApiKey","AccountComponent_ng_template_84_Template","AccountComponent_ng_template_87_Template","AccountComponent_ng_template_90_Template","AccountComponent_ng_template_93_Template","AccountComponent_ng_template_96_Template","postSecurityStamp","updateProfileRequest_1","profile","ProfileComponent_form_2_p_44_Template","_r2","ProfileComponent","getProfile","UpdateProfileRequest","putProfile","ProfileComponent_div_0_Template","ProfileComponent_form_2_Template","emailRequest_1","emailTokenRequest_1","newEmail","reset","ChangeEmailComponent","tokenSent","EmailTokenRequest","postEmailToken","EmailRequest","newKey","newMasterPasswordHash","newEncKey","postEmail","ChangeEmailComponent_ng_container_27_Template","ChangeEmailComponent_span_34_Template","ChangeEmailComponent_span_36_Template","ChangeEmailComponent_button_39_Template","change_password_component_1","emergencyAccessStatusType_1","cipherWithIdRequest_1","emergencyAccessUpdateRequest_1","folderWithIdRequest_1","passwordRequest_1","updateKeyRequest_1","ChangePasswordComponent_app_callout_4_li_5_Template","ChangePasswordComponent_app_callout_4_li_7_Template","ChangePasswordComponent_app_callout_4_li_9_Template","ChangePasswordComponent_app_callout_4_li_11_Template","ChangePasswordComponent_app_callout_4_li_13_Template","ChangePasswordComponent_app_callout_4_li_15_Template","rotateEncKey","rotateEncKeyClicked","currentMasterPassword","PasswordRequest","postPassword","updateKey","getPrivateKey","encPrivateKey","UpdateKeyRequest","FolderWithIdRequest","postAccountKey","updateEmergencyAccesses","getEmergencyAccessTrusted","emergencyAccess","allowedStatuses","EmergencyAccessStatusType","RecoveryInitiated","RecoveryApproved","filteredAccesses","filteredAccesses_1","granteeId","encryptedKey","updateRequest","EmergencyAccessUpdateRequest","waitTimeDays","keyEncrypted","putEmergencyAccess","ChangePasswordComponent_app_callout_4_Template","kdfRequest_1","kdfType_1","o_r2","ChangeKdfComponent","PBKDF2_SHA256","kdfOptions","KdfRequest","postAccountKdf","ChangeKdfComponent_option_40_Template","organization_plans_component_1","CreateOrganizationComponent","orgPlansComponent","EnterpriseAnnually","updateDomainsRequest_1","i_r7","custom","DomainRulesComponent_ng_container_20_div_2_Template","indexTrackBy","d_r14","toggleExcluded","DomainRulesComponent_table_38_tr_4_a_17_Template","DomainRulesComponent_table_38_tr_4_a_19_Template","customize","excluded","domains","DomainRulesComponent_table_38_tr_4_Template","DomainRulesComponent","getSettingsDomains","equivalentDomains","globalEquivalentDomains","globalDomain","UpdateDomainsRequest","excludedGlobalEquivalentDomains","d2","putSettingsDomains","DomainRulesComponent_p_18_Template","DomainRulesComponent_ng_container_20_Template","DomainRulesComponent_p_36_Template","DomainRulesComponent_table_38_Template","o_r3","OptionsComponent","vaultTimeout","vaultTimeoutAction","vaultTimeouts","localeOptions","supportedTranslationLocales","locale","localeNames","_h","disableIcons","enableGravatars","enableFullWidth","_g","startingLocale","setVaultTimeoutOptions","vaultTimeoutActionChanged","newValue","OptionsComponent_option_25_Template","OptionsComponent_option_89_Template","LinkSsoComponent","ngAfterContentInit","premiumPrice","PremiumComponent","getPremium","getEmailVerified","finalizePremium","postPremium","paymentResponse","PremiumComponent_app_callout_7_Template","PremiumComponent_a_65_Template","PremiumComponent_ng_container_68_Template","PremiumComponent_form_70_Template","SettingsComponent_a_26_Template","SettingsComponent_a_28_Template","SettingsComponent_a_30_Template","UserSubscriptionComponent_ng_container_11_dl_6_dd_6_Template","UserSubscriptionComponent_ng_container_11_dl_6_dd_8_Template","i_r17","UserSubscriptionComponent_ng_container_11_div_8_div_29_tr_10_Template","UserSubscriptionComponent_ng_container_11_div_8_span_15_Template","UserSubscriptionComponent_ng_container_11_div_8_div_29_Template","UserSubscriptionComponent_ng_container_11_ng_container_10_div_13_Template","_r39","UserSubscriptionComponent_ng_container_11_ng_container_12_ng_container_24_div_4_Template","UserSubscriptionComponent_ng_container_11_ng_container_12_ng_container_24_app_adjust_storage_6_Template","UserSubscriptionComponent_ng_container_11_ng_container_12_button_4_Template","UserSubscriptionComponent_ng_container_11_ng_container_12_button_6_Template","UserSubscriptionComponent_ng_container_11_ng_container_12_ng_container_24_Template","UserSubscriptionComponent_ng_container_11_app_callout_2_Template","UserSubscriptionComponent_ng_container_11_app_callout_4_Template","UserSubscriptionComponent_ng_container_11_dl_6_Template","UserSubscriptionComponent_ng_container_11_div_8_Template","UserSubscriptionComponent_ng_container_11_ng_container_10_Template","UserSubscriptionComponent_ng_container_11_ng_container_12_Template","UserSubscriptionComponent","getUserSubscription","usingInAppPurchase","postReinstatePremium","postCancelPremium","UserSubscriptionComponent_small_5_Template","UserSubscriptionComponent_ng_container_9_Template","UserSubscriptionComponent_ng_container_11_Template","checkedUsername","breachedAccounts","d_r10","BreachReportComponent_div_41_ng_container_4_ul_6_li_2_li_22_Template","a_r8","logoPath","dataClasses","pwnCount","breachDate","addedDate","BreachReportComponent_div_41_ng_container_4_ul_6_li_2_Template","BreachReportComponent_div_41_ng_container_4_app_callout_2_Template","BreachReportComponent_div_41_ng_container_4_app_callout_4_Template","BreachReportComponent_div_41_ng_container_4_ul_6_Template","BreachReportComponent_div_41_p_2_Template","BreachReportComponent_div_41_ng_container_4_Template","BreachReportComponent","BreachReportComponent_div_41_Template","password_generator_component_1","password_generator_history_component_1","numWords","saveOptions","wordSeparator","lengthChanged","minNumber","minNumberChanged","minSpecialChanged","avoidAmbiguous","useUppercase","useLowercase","PasswordGeneratorComponent","history","historyModalRef","PasswordGeneratorHistoryComponent","PasswordGeneratorComponent_app_callout_7_Template","PasswordGeneratorComponent_ng_container_39_Template","PasswordGeneratorComponent_ng_container_41_Template","regenerate","PasswordGeneratorComponent_ng_template_66_Template","inEffect","h_r3","PasswordGeneratorHistoryComponent_ul_20_li_2_Template","PasswordGeneratorHistoryComponent_ul_20_Template","PasswordGeneratorHistoryComponent_div_22_Template","ToolsComponent_a_35_Template","ToolsComponent_span_66_Template","organizations_component_1","update_key_component_1","folder_add_edit_component_1","share_component_1","favorites","showVerifyEmail","showBrowserOutdated","showUpdateKey","showPremiumCallout","organizationsComponent","filterFavorites","filterFolder","shareCipher","shareModalRef","ShareComponent","onSharedCipher","folderAddEditModalRef","FolderAddEditComponent","onSavedFolder","loadFolders","onDeletedFolder","updateKeyModalRef","UpdateKeyComponent","VaultComponent_div_39_Template","VaultComponent_app_verify_email_41_Template","VaultComponent_div_45_Template","VaultComponent_div_47_Template","VaultComponent_ng_template_70_Template","VaultComponent_ng_template_73_Template","VaultComponent_ng_template_76_Template","VaultComponent_ng_template_79_Template","VaultComponent_ng_template_82_Template","VaultComponent_ng_template_85_Template","makeRequest","getKey","FolderAddEditComponent_button_47_Template","o_r10","c_r15","i_r16","ShareComponent_div_25_table_29_tr_4_Template","ShareComponent_div_25_option_14_Template","ShareComponent_div_25_div_24_Template","ShareComponent_div_25_div_27_Template","ShareComponent_div_25_table_29_Template","ShareComponent_small_12_Template","ShareComponent_div_23_Template","ShareComponent_div_25_Template","ShareComponent_button_29_Template","ShareComponent_a_31_Template","SendInfoComponent","VerifyEmailComponent","postAccountVerifyEmail","OrganizationGuardService","canActivate","permissions_1","OrganizationTypeGuardService","Permissions","AccessBusinessPortal","AccessEventLogs","AccessImportExport","AccessReports","ManageAllCollections","ManageAssignedCollections","ManageGroups","ManageOrganization","ManagePolicies","ManageUsers","UnauthGuardService","isLocked","AuthGuardService","routerState","promptBiometric","data_1","domain_1","emergency_access_attachments_component_1","emergency_add_edit_component_1","viewAttachments","EmergencyAccessViewComponent_ng_container_9_tr_6_ng_container_13_Template","EmergencyAccessViewComponent_ng_container_9_tr_6_ng_container_15_Template","EmergencyAccessViewComponent_ng_container_9_tr_6_div_25_Template","EmergencyAccessViewComponent_ng_container_9_tr_6_Template","EmergencyAccessViewComponent","EmergencyAddEditComponent","postEmergencyAccessView","EmergencyAccessAttachmentsComponent","decCiphers","rsaDecrypt","oldKeyBuffer","oldEncKey","cipherResponse","cipherData","getLocaleSortingFunction","EmergencyAccessViewComponent_ng_container_9_Template","EmergencyAccessViewComponent_ng_template_12_Template","EmergencyAccessViewComponent_ng_template_15_Template","EncryptedObject","EnvironmentUrls","GeneratedPasswordHistory","EmergencyAccessAttachmentsComponent_table_25_tr_4_i_4_Template","EmergencyAccessAttachmentsComponent_table_25_tr_4_i_6_Template","EmergencyAccessAttachmentsComponent_table_25_tr_4_div_16_Template","EmergencyAccessAttachmentsComponent_table_25_tr_4_td_23_Template","EmergencyAccessAttachmentsComponent_table_25_tr_4_Template","EmergencyAccessAttachmentsComponent_small_12_Template","EmergencyAccessAttachmentsComponent_table_25_Template","EmergencyAccessAttachmentsComponent_div_27_Template","EmergencyAccessAttachmentsComponent_button_32_Template","EmergencyAddEditComponent_div_20_div_4_option_10_Template","EmergencyAddEditComponent_div_20_div_17_option_8_Template","EmergencyAddEditComponent_div_20_ng_container_21_div_26_a_2_Template","EmergencyAddEditComponent_div_20_ng_container_21_div_64_a_5_Template","EmergencyAddEditComponent_div_20_ng_container_21_div_64_a_7_Template","EmergencyAddEditComponent_div_20_ng_container_21_ng_container_70_div_2_option_49_Template","EmergencyAddEditComponent_div_20_ng_container_21_ng_container_70_div_2_button_52_Template","EmergencyAddEditComponent_div_20_ng_container_21_ng_container_70_div_2_Template","EmergencyAddEditComponent_div_20_ng_container_21_div_14_Template","EmergencyAddEditComponent_div_20_ng_container_21_div_26_Template","EmergencyAddEditComponent_div_20_ng_container_21_div_64_Template","EmergencyAddEditComponent_div_20_ng_container_21_div_66_Template","EmergencyAddEditComponent_div_20_ng_container_21_ng_container_70_Template","EmergencyAddEditComponent_div_20_ng_container_21_a_72_Template","EmergencyAddEditComponent_div_20_ng_container_24_option_21_Template","EmergencyAddEditComponent_div_20_ng_container_24_option_57_Template","EmergencyAddEditComponent_div_20_ng_container_27_option_12_Template","EmergencyAddEditComponent_div_20_div_42_div_2_div_28_Template","EmergencyAddEditComponent_div_20_div_42_div_2_div_30_Template","EmergencyAddEditComponent_div_20_div_42_div_2_input_34_Template","EmergencyAddEditComponent_div_20_div_42_div_2_button_37_Template","EmergencyAddEditComponent_div_20_div_42_div_2_button_39_Template","EmergencyAddEditComponent_div_20_div_42_div_2_Template","EmergencyAddEditComponent_div_20_div_46_option_10_Template","EmergencyAddEditComponent_div_20_ng_container_48_option_16_Template","EmergencyAddEditComponent_div_20_ng_container_50_ng_container_8_div_2_Template","EmergencyAddEditComponent_div_20_ng_container_50_div_6_Template","EmergencyAddEditComponent_div_20_ng_container_50_ng_container_8_Template","EmergencyAddEditComponent_div_20_ng_container_52_div_16_div_2_Template","EmergencyAddEditComponent_div_20_ng_container_52_div_12_Template","EmergencyAddEditComponent_div_20_ng_container_52_div_14_Template","EmergencyAddEditComponent_div_20_ng_container_52_div_16_Template","EmergencyAddEditComponent_div_20_app_callout_2_Template","EmergencyAddEditComponent_div_20_div_4_Template","EmergencyAddEditComponent_div_20_div_17_Template","EmergencyAddEditComponent_div_20_ng_container_21_Template","EmergencyAddEditComponent_div_20_ng_container_24_Template","EmergencyAddEditComponent_div_20_ng_container_27_Template","EmergencyAddEditComponent_div_20_div_42_Template","EmergencyAddEditComponent_div_20_a_44_Template","EmergencyAddEditComponent_div_20_div_46_Template","EmergencyAddEditComponent_div_20_ng_container_48_Template","EmergencyAddEditComponent_div_20_ng_container_50_Template","EmergencyAddEditComponent_div_20_ng_container_52_Template","EmergencyAddEditComponent_div_30_button_2_Template","EmergencyAddEditComponent_div_30_button_4_Template","EmergencyAddEditComponent_div_20_Template","EmergencyAddEditComponent_button_24_Template","EmergencyAddEditComponent_div_30_Template","emergencyAccessType_1","emergencyAccessConfirmRequest_1","emergencyAccessResponse_1","emergency_access_add_edit_component_1","emergency_access_confirm_component_1","emergency_access_takeover_component_1","approve","EmergencyAccessComponent_table_35_tr_4_span_12_Template","EmergencyAccessComponent_table_35_tr_4_span_14_Template","EmergencyAccessComponent_table_35_tr_4_span_16_Template","EmergencyAccessComponent_table_35_tr_4_span_18_Template","EmergencyAccessComponent_table_35_tr_4_span_20_Template","EmergencyAccessComponent_table_35_tr_4_span_22_Template","EmergencyAccessComponent_table_35_tr_4_small_24_Template","EmergencyAccessComponent_table_35_tr_4_a_39_Template","EmergencyAccessComponent_table_35_tr_4_a_41_Template","EmergencyAccessComponent_table_35_tr_4_a_43_Template","EmergencyAccessComponent_table_35_tr_4_a_45_Template","emergencyAccessStatusType","emergencyAccessType","View","Takeover","EmergencyAccessComponent_table_35_tr_4_Template","trustedContacts","c_r45","requestAccess","_r63","takeover","EmergencyAccessComponent_table_46_tr_4_span_12_Template","EmergencyAccessComponent_table_46_tr_4_span_14_Template","EmergencyAccessComponent_table_46_tr_4_span_16_Template","EmergencyAccessComponent_table_46_tr_4_span_18_Template","EmergencyAccessComponent_table_46_tr_4_span_20_Template","EmergencyAccessComponent_table_46_tr_4_span_22_Template","EmergencyAccessComponent_table_46_tr_4_small_24_Template","EmergencyAccessComponent_table_46_tr_4_a_39_Template","EmergencyAccessComponent_table_46_tr_4_a_41_Template","EmergencyAccessComponent_table_46_tr_4_a_43_Template","EmergencyAccessComponent_table_46_tr_4_Template","grantedContacts","EmergencyAccessComponent","EmergencyAccessType","isOrganizationOwner","getEmergencyAccessGranted","EmergencyAccessAddEditComponent","emergencyAccessId","onSaved","contact","postEmergencyAccessReinvite","childComponent_1","EmergencyAccessConfirmComponent","onConfirmed","deleteEmergencyAccess","EmergencyAccessGranteeDetailsResponse","removeGrantee","removeGrantor","postEmergencyAccessInitiate","postEmergencyAccessApprove","postEmergencyAccessReject","EmergencyAccessTakeoverComponent","takeoverModalRef","onDone","EmergencyAccessConfirmRequest","postEmergencyAccessConfirm","EmergencyAccessComponent_p_15_Template","EmergencyAccessComponent_a_22_Template","EmergencyAccessComponent_table_35_Template","EmergencyAccessComponent_p_37_Template","EmergencyAccessComponent_table_46_Template","EmergencyAccessComponent_p_48_Template","EmergencyAccessComponent_ng_template_50_Template","EmergencyAccessComponent_ng_template_53_Template","EmergencyAccessComponent_ng_template_56_Template","cipherResponse_1","creationDate","EmergencyAccessGrantorDetailsResponse","grantorId","EmergencyAccessTakeoverResponse","EmergencyAccessViewResponse","emergencyAccessInviteRequest_1","o_r13","EmergencyAccessAddEditComponent_div_26_ng_container_2_Template","waitTime","EmergencyAccessAddEditComponent_div_26_option_48_Template","waitTimes","getEmergencyAccess","EmergencyAccessInviteRequest","postEmergencyAccessInvite","EmergencyAccessAddEditComponent_span_11_Template","EmergencyAccessAddEditComponent_small_13_Template","EmergencyAccessAddEditComponent_div_24_Template","EmergencyAccessAddEditComponent_div_26_Template","EmergencyAccessAddEditComponent_i_33_Template","EmergencyAccessAddEditComponent_span_35_Template","EmergencyAccessAddEditComponent_button_44_Template","EmergencyAccessConfirmComponent_small_12_Template","emergencyAccessPasswordRequest_1","EmergencyAccessTakeoverComponent_app_callout_29_li_5_Template","EmergencyAccessTakeoverComponent_app_callout_29_li_7_Template","EmergencyAccessTakeoverComponent_app_callout_29_li_9_Template","EmergencyAccessTakeoverComponent_app_callout_29_li_11_Template","EmergencyAccessTakeoverComponent_app_callout_29_li_13_Template","EmergencyAccessTakeoverComponent_app_callout_29_li_15_Template","getEmergencyGrantorPolicies","policyResponse","postEmergencyAccessTakeover","takeoverResponse","EmergencyAccessPasswordRequest","postEmergencyAccessPassword","EmergencyAccessTakeoverComponent_small_12_Template","EmergencyAccessTakeoverComponent_app_callout_29_Template","apiKeyResponse_1","billingResponse_1","breachAccountResponse_1","collectionResponse_1","domainsResponse_1","eventResponse_1","folderResponse_1","groupResponse_1","identityTokenResponse_1","identityTwoFactorResponse_1","listResponse_1","organizationResponse_1","organizationSubscriptionResponse_1","organizationUserResponse_1","paymentResponse_1","planResponse_1","policyResponse_1","preloginResponse_1","profileResponse_1","selectionReadOnlyResponse_1","sendAccessResponse_1","sendFileDownloadDataResponse_1","sendResponse_1","subscriptionResponse_1","syncResponse_1","taxInfoResponse_1","taxRateResponse_1","twoFactorAuthenticatorResponse_1","twoFactorDuoResponse_1","twoFactorEmailResponse_1","twoFactorProviderResponse_1","twoFactorRescoverResponse_1","twoFactorU2fResponse_1","twoFactorYubiKeyResponse_1","userKeyResponse_1","logoutCallback","customUserAgent","urlsSet","isWebClient","isDesktopClient","usingBaseUrl","device","getDevice","setUrls","urls","apiBaseUrl","eventsBaseUrl","api","headers","Headers","Content-Type","Accept","Device-Type","qsStringify","toIdentityToken","identityClientId","credentials","getCredentials","isJsonResponse","IdentityTokenResponse","TwoFactorProviders2","clearTwoFactorToken","IdentityTwoFactorResponse","doRefreshToken","BillingResponse","SubscriptionResponse","TaxInfoResponse","PreloginResponse","setPassword","getAccountRevisionDate","postPasswordHint","postRegister","PaymentResponse","postIapCheck","postAccountVerifyPassword","ApiKeyResponse","getFolder","FolderResponse","postFolder","putFolder","deleteFolder","getSend","SendResponse","apiUrl","SendAccessResponse","SendFileDownloadDataResponse","getSends","ListResponse","postSend","postSendFile","putSend","putSendRemovePassword","deleteSend","getCipher","getCiphersOrganization","postCipher","postCipherCreate","putCipher","deleteManyCiphers","putMoveCiphers","putShareCipher","putShareCiphers","putCipherCollections","path","postImportCiphers","postImportOrganizationCiphers","putDeleteCipher","putDeleteManyCiphers","putRestoreCipher","putRestoreCipherAdmin","putRestoreManyCiphers","postCipherAttachment","postCipherAttachmentAdmin","postShareCipherAttachment","CollectionGroupDetailsResponse","CollectionResponse","dr","deleteCollectionUser","GroupDetailsResponse","GroupResponse","deleteGroupUser","PolicyResponse","OrganizationUserDetailsResponse","OrganizationUserUserDetailsResponse","PlanResponse","postImportDirectory","TaxRateResponse","DomainsResponse","getSync","SyncResponse","TwoFactorProviderResponse","TwoFactorAuthenticatorResponse","TwoFactorEmailResponse","TwoFactorDuoResponse","TwoFactorYubiKeyResponse","TwoFactorU2fResponse","ChallengeResponse","TwoFactorRecoverResponse","postTwoFactorEmail","OrganizationResponse","OrganizationSubscriptionResponse","getEvents","addEventParameters","EventResponse","postEventsCollect","getActiveBearerToken","authHeader","Authorization","UserKeyResponse","getHibpBreach","BreachAccountResponse","getToken","tokenNeedsRefresh","nativeFetch","handleError","hasResponse","requestInit","tokenError","isTextResponse","Message","getRefreshToken","decodedToken","decodeToken","grant_type","client_id","refresh_token","typeHeader","CollectionDetailsResponse","globalDomainResponse_1","GlobalDomainResponse","businessAddress1","businessAddress2","businessAddress3","businessCountry","businessTaxNumber","maxAdditionalStorage","hasEvents","has2fa","upgradeSortOrder","displaySortOrder","stripePlanId","stripeSeatPlanId","stripeStoragePlanId","stripePremiumAccessPlanId","BillingSubscriptionResponse","BillingSubscriptionUpcomingInvoiceResponse","trialEndDate","periodStartDate","periodEndDate","cancelledDate","BillingSubscriptionItemResponse","sendFileApi_1","sendTextApi_1","makeAndGetAppId","getAnonymousAppId","existingId","guid","throttle_1","hashStart","hashEnding","leakedHashes","v","__decorate","throttle","cipherBulkMoveRequest_1","cipherBulkRestoreRequest_1","cipherBulkShareRequest_1","cipherShareRequest_1","sortedCiphersCache_1","sequentialize_1","Keys","DomainMatchBlacklist","Set","settingsService","sortedCiphersCache","SortedCiphersCache","sortCiphersByLastUsed","_decryptedCipherCache","clearIndex","indexCiphers","clearCache","decryptedCipherCache","existingCipher","existingHiddenFields","hiddenFields_1","ef","matchedField","encryptObjProperty","encryptCipherData","encryptFields","encryptPasswordHistories","encryptAttachments","attachmentsModel","encAttachments","fieldsModel","encFields","encryptField","encField","fieldModel","phModels","encPhs","encryptPasswordHistory","encPh","phModel","getAllDecryptedForGrouping","groupingId","getAllDecryptedForUrl","includeOtherTypes","defaultMatch","eqDomainsPromise","getEquivalentDomains","eqDomains","matches","eqDomain","matchingDomains","domainUrlHost","Host","urlHost","Exact","StartsWith","Never","decCiphers_1","promises_1","getLastUsedForUrl","getCipherForUrl","getLastLaunchedForUrl","getNextCipherForUrl","updateLastUsedIndexForUrl","updateLastUsedIndex","updateLastUsedDate","ciphersLocalData","cached","updateLastLaunchedDate","lastLaunched","saveNeverDomain","saveWithServer","upsert","shareWithServer","attachmentPromises","shareAttachmentWithServer","encCipher","CipherShareRequest","encCiphers","ciphers_1","CipherBulkShareRequest","unencryptedFile","readAsArrayBuffer","cData","filename","encFileName","dataEncKey","encryptToBytes","encData","blob","Blob","filepath","contentType","saveCollectionsWithServer","CipherBulkMoveRequest","deleteAttachment","e_3","aLastUsed","bLastUsed","bothNotNull","sortCiphersByLastUsedThenName","aName","bName","softDelete","setDeletedDate","clearDeletedDate","constructor","CipherBulkRestoreRequest","restores","attachmentView","attachmentResponse","e_4","theObj","modelProp","lastUsed","isCached","addCiphers","getLastLaunched","getLastUsed","getNext","sequentialize","propertyKey","descriptor","originalMethod","caches","args","arguments","getCache","argsCacheKey","onFinally","serviceUtils_1","decryptedCollectionCache","decCollections","nodes","collectionCopy","ServiceUtils","nestedTraverse","getNested","getTreeNodeObject","treeNode_1","nodeTree","partIndex","delimiter","partName","TreeNode","newPartName","ContainerService","attachToWindow","attachToGlobal","bigInt","encryptedObject_1","wordlist_1","secureStorageService","platformUtilService","option","biometric","supportsSecureStorage","keyHash","setOrgKeys","orgKeys","getKeyHash","encKeyCipher","decEncKey","stretchKey","getPublicKey","rsaExtractPublicKey","keyFingerprint","hkdfExpand","userFingerprint","hashPhrase","getOrgKeys","encOrgKeys","clearKey","legacyEtmKey","clearKeyHash","clearEncKey","memoryOnly","clearKeyPair","clearOrgKeys","clearPinProtectedKey","clearKeys","toggleKey","salt","makeKeyFromPin","pin","protectedKeyCs","makePinKey","pinKey","randomBytes","rsaGenerateKeyPair","publicB64","privateEnc","keyMaterial","hkdf","sendKey","getKeyForEncryption","theKey","buildEncKey","plainValue","plainBuf","aesEncrypt","encObj","encValue","macLen","encBytes","Rsa2048_OaepSha256_HmacSha256_B64","Rsa2048_OaepSha1_HmacSha256_B64","alg","cipherString","aesDecryptToBytes","decipher","aesDecryptToUtf8","encBuf","ctBytes","ivBytes","macBytes","randomNumber","min","rval","range","bitsNeeded","ceil","log2","bytesNeeded","mask","pow","byteArray","macData","hmac","keyForEnc","resolveLegacyKey","fastParams","aesDecryptFastParameters","hmacFast","computedMac","compareFast","aesDecryptFast","aesDecrypt","minimumEntropy","entropyPerWord","EEFLongWordList","hashArr","entropyAvailable","phrase","hashNumber","fromArray","remainder","divide","encKeyEnc","environmentUrls_1","notificationsService","getWebVaultUrl","webVaultUrl","setUrlsFromStorage","urlsObj","icons","notifications","webVault","enterprise","envUrls","identityUrl","notificationsUrl","eventsUrl","formatUrl","folderData_1","folder_1","folderRequest_1","decryptedFolderCache","decFolders","noneFolder","folderCopy","cId","updates","systemLanguage","localesDirectory","getLocalesJson","defaultMessages","localeMessages","translationLocale","Intl","Collator","numeric","sensitivity","loadMessages","translate","messagesObj","formattedLocale","locales","placeholders","placeProp","replaceToken","replaceContent","zxcvbn","generatedPasswordHistory_1","passwordGeneratorPolicyOptions_1","DefaultOptions","ambiguous","minUppercase","minLowercase","generatePassphrase","sanitizePasswordLength","positions","shuffleArray","allCharSet","lowercaseCharSet","uppercaseCharSet","numberCharSet","specialCharSet","positionChars","randomCharIndex","listLength","wordList","wordIndex","appendRandomNumberToRandomWord","optionsCache","enforcePasswordGeneratorPoliciesOnOptions","enforcedOptions","getPasswordGeneratorPolicyOptions","numberCount","specialCount","PasswordGeneratorPolicyOptions","currentPolicy","getHistory","encrypted","decryptHistory","addHistory","currentHistory","matchesPrevious","unshift","now","encryptHistory","newHistory","userInputs","globalUserInputs","finalUserInputs","normalizeOptions","decrypted","array","forGeneration","minUppercaseCalc","minLowercaseCalc","minNumberCalc","minSpecialCalc","settingsCache","getSettingsKey","setEquivalentDomains","setSettingsKey","getSettings","settings","purge","organizationData_1","sendData_1","syncInProgress","getLastSync","lastSync","setLastSync","toJSON","forceSync","allowThrowOnError","syncStarted","syncCompleted","needsSync","needsSyncing","syncProfile","syncFolders","syncCollections","syncCiphers","syncSends","sends","syncSettings","syncPolicies","syncUpsertFolder","notification","isEdit","localFolder","remoteFolder","syncDeleteFolder","syncUpsertCipher","shouldUpdate","localCipher","checkCollections","remoteCipher","syncDeleteCipher","syncUpsertSend","localSend","remoteSend","SendData","syncDeleteSend","getSecurityStamp","stamp","setSecurityStamp","OrganizationData","replaceOrganizations","sendFileData_1","sendTextData_1","SendTextData","SendFileData","setToken","setRefreshToken","skipTokenStorage","toggleTokens","clearToken","decoded","getTokenExpirationDate","setUTCSeconds","tokenSecondsRemaining","offsetSeconds","msRemaining","valueOf","minutes","email_verified","getIssuer","iss","B32Chars","SteamChars","period","digits","keyB32","isOtpAuth","isSteamAuth","digitParams","periodParam","algParam","timeHex","leftPad","decToHex","timeBytes","keyBytes","b32ToBytes","sign","offset","otp","fullCode","trunc","isAutoCopyEnabled","b32ToHex","cleanedInput","bits","hex","byteIndex","chunk","signature","organization_1","clearOrganizations","lockedCallback","loggedOutCallback","checkOnInterval","startCheck","checkVaultTimeout","isBiometricLockSet","isViewOpen","lockTimeout","lastActive","vaultTimeoutSeconds","allowSoftLock","isPinLockSet","logLevelType_1","hrtime","timersMap","debug","LogLevelType","Debug","info","Info","Warning","level","warn","time","timeEnd","elapsed","CipherWithIds","build","CollectionWithId","FolderWithId","importResult_1","baseImporter_1","cipherImportContext_1","IgnoredProperties","OnePasswordCsvImporter","loginPropertyParsers","setLoginUsername","setLoginPassword","setLoginUris","creditCardPropertyParsers","setCreditCardNumber","setCreditCardVerification","setCreditCardCardholderName","setCreditCardExpiry","identityPropertyParsers","setIdentityFirstName","setIdentityInitial","setIdentityLastName","setIdentityUserName","setIdentityEmail","setIdentityPhone","setIdentityCompany","quoteChar","escapeChar","getProp","setNotes","setCipherType","altUsername","context","CipherImportContext","setKnownLoginValue","setKnownCreditCardValue","setKnownIdentityValue","setUnknownValue","entries","agg","entry","getPropByRegexp","regexp","matchingKeys","getPropIncluding","includesMap","importRecord","func","lowerProperty","readableDate","toUTCString","view_1","NotificationType","enableProdMode","__NgCli_bootstrap_2","platformBrowser","bootstrapModule","__NgCli_bootstrap_1","AppModule","preserveWhitespaces","angular2_toaster_1","angulartics2_1","ngx_infinite_scroll_1","app_routing_module_1","drag_drop_1","platform_browser_1","animations_1","services_module_1","app_component_1","avatar_component_1","password_strength_component_1","footer_component_1","frontend_layout_component_1","navbar_component_1","organization_layout_component_1","user_layout_component_1","accept_emergency_component_1","accept_organization_component_1","recover_delete_component_1","recover_two_factor_component_1","verify_email_token_component_1","verify_recover_delete_component_1","events_component_1","groups_component_1","manage_component_1","people_component_1","policies_component_1","account_component_1","adjust_seats_component_1","change_plan_component_1","download_license_component_1","organization_billing_component_1","organization_subscription_component_1","settings_component_1","tools_component_1","collections_component_2","vault_component_1","access_component_1","account_component_2","add_credit_component_1","adjust_payment_component_1","adjust_storage_component_1","change_email_component_1","change_kdf_component_1","create_organization_component_1","domain_rules_component_1","emergency_access_view_component_1","emergency_access_component_1","link_sso_component_1","options_component_1","premium_component_1","profile_component_1","settings_component_2","two_factor_setup_component_2","two_factor_verify_component_1","update_license_component_1","user_subscription_component_1","verify_email_component_1","breach_report_component_1","export_component_2","exposed_passwords_report_component_2","import_component_2","inactive_two_factor_report_component_2","reused_passwords_report_component_2","tools_component_2","unsecured_websites_report_component_2","weak_passwords_report_component_2","add_edit_component_3","attachments_component_2","bulk_actions_component_1","ciphers_component_2","collections_component_3","groupings_component_2","send_info_component_1","vault_component_2","callout_component_1","icon_component_1","a11y_title_directive_1","api_action_directive_1","autofocus_directive_1","blur_click_directive_1","box_row_directive_1","fallback_src_directive_1","input_verbatim_directive_1","select_copy_directive_1","stop_click_directive_1","stop_prop_directive_1","true_false_value_directive_1","color_password_pipe_1","i18n_pipe_1","search_ciphers_pipe_1","search_pipe_1","common_1","ca_1","cs_1","da_1","de_1","el_1","en_GB_1","es_1","et_1","fr_1","he_1","it_1","ja_1","ko_1","lv_1","ml_1","nb_1","nl_1","pl_1","pt_1","pt_PT_1","ru_1","sk_1","sv_1","uk_1","zh_Hans_1","zh_Hant_1","registerLocaleData","bootstrap","AppComponent","imports","BrowserModule","BrowserAnimationsModule","FormsModule","AppRoutingModule","ServicesModule","Angulartics2Module","forRoot","pageTracking","clearQueryParams","ToasterModule","InfiniteScrollModule","DragDropModule","declarations","BlurClickDirective","BoxRowDirective","SearchCiphersPipe","organization_guard_service_1","organization_type_guard_service_1","unauth_guard_service_1","auth_guard_service_1","routes","pathMatch","redirectTo","RouterModule","useHash","paramsInheritanceStrategy","subscribers","messageCallback","passwordHintRequest_1","PasswordHintRequest","pinLock","invalidPinAttempts","pinSet","supportsBiometric","biometricLock","vaultUrl","failed","decPin","setKeyAndContinue","passwordValid","storedKeyHash","unlockBiometric","authenticateBiometric","doContinue","launchSsoBrowser","ssoRedirectUri","ssoCodeVerifier","webUrl","registerRequest_1","useLowerKdf","isIE","RegisterRequest","confirmField","setPasswordRequest_1","SetPasswordRequest","orgIdentifier","onSuccessfulChangePassword","backdrop","className","addEventListener","modals_1","DuoWebSDK","u2f_1","initU2f","loginRoute","authing","needsLock","customWebVaultUrl","cleanupU2f","providerData","Challenge","challenges","Challenges","keyHandle","iframe","sig_request","Signature","submit_callback","sig","stop","doToast","cleanup","getDeviceString","pushToken","codes","client_secret","code_verifier","redirect_uri","deviceIdentifier","deviceName","twoFactorRemember","errorCallback","infoCallback","parseFunction","parseMessage","connectorLink","base64Encode","sendMessage","contentWindow","postMessage","removeEventListener","validMessage","warningDialog","downloadFile","encryptedFormat","getExport","extension","csv","onCancelled","onEditAttachments","onShareCipher","onEditCollections","onGeneratePassword","currentDate","myEmail","policies_1","addEditCipherInfo","previousCipherId","editCollections","restorePromise","restoreCipher","toggleUriOptions","moveItemInArray","previousIndex","currentIndex","activeCipherId","onCipherClicked","onCipherRightClicked","onAddCipher","onAddCipherOptions","searchTimeout","pagedCiphersCount","refreshing","deletedFilter","searchCiphers","rightClickCipher","addCipherOptions","selectedCollectionIds","onAllClicked","onFavoritesClicked","onTrashClicked","onCipherTypeClicked","onFolderClicked","onAddFolder","onEditFolder","onCollectionClicked","setLoaded","collapsedGroupings","clearSelections","idPrefix","sendAccessView_1","sendFile_1","sendText_1","SendAccessView","hasSearched","onSuccessfulLoad","applyTextSearch","removePasswordWithServer","onSuccessfulRemovePassword","onSuccessfulDelete","sendLinkBaseUrl","urlB64Key","searchSends","DateField","sendView_1","premiumRequiredAlertShown","isFirefox","nullOrWhiteSpaceCount","formatDateFallbacks","loadSend","dateToString","deletionDateParts","dateToSplitString","expirationDateParts","safariTimeOptions","DeletionDate","ExpriationDate","deletionDateTimeFallback","expirationDateTimeFallback","setHours","encryptSend","encSend","sendData","dateString","strarray","noon","midnight","ams","pms","hour","midnightOption","noonOption","amOption","pmOption","validTimes","previousValue","showSelect","onSelected","optionsResponse","sliderChanged","sliderInput","copyOptions","cipherView","broadcasterMessaging_service_1","htmlStorage_service_1","memoryStorage_service_1","webPlatformUtils_service_1","event_service_1","router_service_1","validation_service_1","analytics_1","container_service_1","event_service_2","export_service_1","import_service_1","notifications_service_1","policy_service_1","send_service_1","webCryptoFunction_service_1","api_service_2","audit_service_2","auth_service_2","cipher_service_2","collection_service_2","crypto_service_2","cryptoFunction_service_1","environment_service_2","event_service_3","export_service_2","folder_service_2","i18n_service_2","import_service_2","notifications_service_2","passwordGeneration_service_2","policy_service_2","search_service_2","send_service_2","settings_service_2","state_service_2","sync_service_2","token_service_2","totp_service_2","user_service_2","vaultTimeout_service_2","language","BroadcasterMessagingService","WebPlatformUtilsService","HtmlStorageService","MemoryStorageService","WebCryptoFunctionService","consoleLogService","__generator","eventLoggingService","Analytics","initFactory","htmlEl","documentElement","theme","useValue","APP_INITIALIZER","useFactory","deps","LOCALE_ID","subscriber","arg","services_1","localStorageKeys","localStorageStartsWithKeys","memoryStorageStartsWithKeys","memoryStorage","isLocalStorage","localStorage","getItem","isMemoryStorage","sessionStorage","setItem","removeItem","swKey","BillingSourceResponse","BillingTransactionResponse","BillingInvoiceResponse","cardBrand","partiallyRefunded","refundedAmount","isActive","isVerified","modifiedDate","access_token","expiresIn","expires_in","tokenType","token_type","OrganizationUserResponse","userProfile","taxIdType","KeyResponse","limit","throttleKey","allThrottles","throttles","getThrottles","argsThrottleKey","queue","exec","comparator","sortedCiphersByUrl","timeouts","Ciphers","resetTimer","lastUsedIndex","y","getNextIndex","filePath","store","browserCache","chrome","isChrome","isEdge","isOpera","isVivaldi","isMacAppStore","analyticsId","rel","click","blobData","blobOptions","fileNameLower","doDownload","endsWith","msSaveOrOpenBlob","msSaveBlob","createObjectURL","position","confirmText","cancelText","bodyIsHtml","iconClasses","iconHtmlStr","showCancelButton","cancelButtonText","clipboardData","setData","queryCommandSupported","textarea","copyEl","contains","execCommand","readFromClipboard","getDefaultSystemTheme","onDefaultSystemThemeChange","GaObj","AnalyticsIds","gaFilter","dependencyResolver","gaTrackingId","defaultDisabled","appVersion","GoogleAnalyticsObject","param1","param2","ga","gaAnonAppId","gaTrackPageView","hitType","page","gaTrackEvent","XMLHttpRequest","eventCategory","eventAction","eventLabel","eventValue","cleanPagePath","pagePath","paramIndex","pathParts","newPathParts","eventData_1","eventRequest_1","uploadEvents","eventType","uploadImmediately","orgIds","eventCollection","EventData","EventRequest","clearEvents","cipherWithIds_1","collectionWithId_1","folderWithId_1","getEncryptedExport","getDecryptedExport","getOrganizationEncryptedExport","getOrganizationDecryptedExport","padNumber","getSeconds","foldersMap_1","exportCiphers_1","buildCommonCipher","unparse","jsonDoc_1","jsonDoc","collectionPromises","decCol","cipherPromises","decCipher","collectionsMap_1","exportCiphers_2","jsonDoc_2","padCharacter","numString","login_uri","login_username","login_password","login_totp","toView","toDomain","_j","_k","_l","_m","_o","_p","_q","_r","_s","_t","importCiphersRequest_1","importOrganizationCiphersRequest_1","kvpRequest_1","ascendoCsvImporter_1","avastCsvImporter_1","avastJsonImporter_1","aviraCsvImporter_1","bitwardenCsvImporter_1","bitwardenJsonImporter_1","blackBerryCsvImporter_1","blurCsvImporter_1","buttercupCsvImporter_1","chromeCsvImporter_1","clipperzHtmlImporter_1","codebookCsvImporter_1","dashlaneJsonImporter_1","encryptrCsvImporter_1","enpassCsvImporter_1","enpassJsonImporter_1","firefoxCsvImporter_1","fsecureFskImporter_1","gnomeJsonImporter_1","kasperskyTxtImporter_1","keepass2XmlImporter_1","keepassxCsvImporter_1","keeperCsvImporter_1","lastpassCsvImporter_1","logMeOnceCsvImporter_1","meldiumCsvImporter_1","msecureCsvImporter_1","mykiCsvImporter_1","onepassword1PifImporter_1","onepasswordMacCsvImporter_1","onepasswordWinCsvImporter_1","padlockCsvImporter_1","passkeepCsvImporter_1","passmanJsonImporter_1","passpackCsvImporter_1","passwordAgentCsvImporter_1","passwordBossJsonImporter_1","passwordDragonXmlImporter_1","passwordSafeXmlImporter_1","passwordWalletTxtImporter_1","rememBearCsvImporter_1","roboformCsvImporter_1","safeInCloudXmlImporter_1","saferpassCsvImport_1","secureSafeCsvImporter_1","splashIdCsvImporter_1","stickyPasswordXmlImporter_1","truekeyCsvImporter_1","upmCsvImporter_1","yotiCsvImporter_1","zohoVaultCsvImporter_1","getImportOptions","importResult","halfway","last","badData","postImport","errorResponse","error_1","handleServerError","getImporterInstance","BitwardenCsvImporter","BitwardenJsonImporter","LastPassCsvImporter","KeePassXCsvImporter","AviraCsvImporter","BlurCsvImporter","SafeInCloudXmlImporter","PadlockCsvImporter","KeePass2XmlImporter","ChromeCsvImporter","FirefoxCsvImporter","UpmCsvImporter","SaferPassCsvImporter","MeldiumCsvImporter","OnePassword1PifImporter","OnePasswordWinCsvImporter","OnePasswordMacCsvImporter","KeeperCsvImporter","PasswordDragonXmlImporter","EnpassCsvImporter","EnpassJsonImporter","PasswordSafeXmlImporter","DashlaneJsonImporter","MSecureCsvImporter","StickyPasswordXmlImporter","TrueKeyCsvImporter","ClipperzHtmlImporter","RoboFormCsvImporter","AscendoCsvImporter","PasswordBossJsonImporter","ZohoVaultCsvImporter","SplashIdCsvImporter","PassKeepCsvImporter","GnomeJsonImporter","PasswordAgentCsvImporter","PasspackCsvImporter","PassmanJsonImporter","AvastCsvImporter","AvastJsonImporter","FSecureFskImporter","KasperskyTxtImporter","RememBearCsvImporter","PasswordWalletTxtImporter","MykiCsvImporter","SecureSafeCsvImporter","LogMeOnceCsvImporter","BlackBerryCsvImporter","ButtercupCsvImporter","CodebookCsvImporter","EncryptrCsvImporter","YotiCsvImporter","ImportCiphersRequest","KvpRequest","request_2","ImportOrganizationCiphersRequest","itemType","Number","fieldLower","web","logins","custName","note","pwd","loginName","cards","holderName","cardNumber","cvv","website","secondary_username","col","addCollection","collectionIndex","delimPosition","parseEncrypted","parseDecrypted","groupingsMap","fav","extra","OfficialProps","processingCustomFields","currentVersion","actionType","labelLower","Category","Favorite","Entry","Note","Username","TOTP","Website","Phone","PIN","Account","HandledResults","ADDRESS","processAddress","AUTHENTIFIANT","processAuth","BANKSTATEMENT","processNote","IDCARD","PAYMENTMEANS_CREDITCARD","processCard","IDENTITY","processIdentity","credential","secondaryLogin","fullName","nameParts","pseudo","addressName","addressFull","zipcode","owner","nameProperty","Label","Notes","CVV","expiry","Expiry","expParts","firstRow","containsField","fieldValue","fieldName","fieldNameLower","foldersMap","foldersIndexMap","folderTree","buildFolderTree","flattenFolderTree","template_type","processLogin","sensitive","uuid","parent_uuid","titlePrefix","tree","creditNumber","creditCvv","creditExpiry","keyRing","display_name","secret","attributes","attr","username_value","notesData","applicationsData","websitesData","workingData","parseDataCategory","applications","websites","nameKey","itemComment","itemCommentKey","colonIndex","rootGroup","traverse","isRootNode","groupPrefixName","groupName","nameEl","cipherIndex","entryString","valueEl","keyEl","attrs","ProtectInMemory","Group","buildBaseCipher","parseSecureNote","parseCard","parseIdentity","ccnum","cardCipher","profilename","firstname","lastname","ccname","cccsc","ccexp","ccexpParts","middlename","zip","extraParts","processedNote","typeParts","mappedData","parseSecureNoteMapping","Name on Card","Security Code","Expiration Date","monthString","First Name","Last Name","Middle Name","Company","Address 1","Address 2","Address 3","City / Town","State","Zip / Postal Code","Country","Email Address","processingNotes","extraPart","DisplayName","UserName","Url","nickname","additionalInfo","twoFactAuthToken","cardName","exp_month","exp_year","firstAddressLine","secondAddressLine","zipCode","line","trashed","processStandardItem","processWinOpVaultItem","overview","URLs","urls_1","parsePasswordHistory","notesPlain","parseFields","sections","section","openContents","faveIndex","typeName","secureContents","urls_2","maxSize","designationKey","valueKey","fieldDesignation","street","onepasswordCsvImporter_1","setIdentityAddress","expSplit","tags","tag","getValue","custom_fields","customField","field_type","tagsJson","Tags","tagJson","__parsed_extra","fieldsJson","extraFields","fieldJson","newVersion","altFormat","login_url","identifiers","valObj","expDate","cf","records","record","categoryText","accountName","tagName","passwordSafe","notesDelimiter","getAttribute","groupText","trash","cardholder","verification","expiryMonth","expMonthNumber","expiryYear","expYearNumber","Name","Pwd","Rf_fields","labelEl","cardEl","labelIdEl","labelId","fieldEl","notesEl","Comment","parseFieldsToNotes","startIndex","loginNodes","loginNode","accountId","usernameText","passwordText","titleText","linkText","notesText","accountLogin","account","parentElement","buildGroupText","PropertiesToIgnore","memo","kind","expiryDate","document_content","ChamberName","parseData","SecretData","CustomData","signalR","signalRMsgPack","notificationType_1","notificationResponse_1","connected","inactive","reconnectTimer","signalrConnection","off","HubConnectionBuilder","withUrl","accessTokenFactory","skipNegotiation","transport","HttpTransportType","WebSockets","withHubProtocol","MessagePackHubProtocol","processNotification","NotificationResponse","onclose","reconnect","isAuthedAndUnlocked","updateConnection","sync","reconnectFromActivity","disconnectFromInactivity","contextId","payloadUserId","UserId","myUserId","SyncCipherCreate","SyncCipherUpdate","SyncCipherDelete","SyncLoginDelete","SyncFolderCreate","SyncFolderUpdate","SyncFolderDelete","SyncVault","SyncCiphers","SyncSettings","SyncOrgKeys","LogOut","SyncSendCreate","SyncSendUpdate","SyncSendDelete","SyncCipherNotification","SyncFolderNotification","UserNotification","SyncSendNotification","masterPasswordPolicyOptions_1","policyCache","MasterPasswordPolicyOptions","newPassword","toLocaleLowerCase","toLocaleUpperCase","lunr","indexing","builder","Builder","boost","extractor","uriExtractor","fieldExtractor","attachmentExtractor","isArray","every","getIndexForSearch","ciphersMap","searchResults","soWild_1","Query","wildcard","LEADING","TRAILING","q","tokenizer","term","joined","protocolIndex","queryIndex","sendRequest_1","send_1","decryptedSendCache","fileData","Send","cryptoKey","ArrayBuffer","encryptFileData","parseFile","decSends","SendRequest","name_2","encFileData","fileLength","forge","decryptParameters_1","crypto","subtle","ua","isOldSafari","algorithm","iterations","forgeLen","passwordBytes","toByteString","saltBytes","derivedKeyBytes","wcLen","passwordBuf","toBuf","saltBuf","pbkdf2Params","toWebCryptoAlgorithm","importKey","impKey","deriveBits","ikm","outputByteSize","infoBuf","hkdfParams","prk","hashLen","infoArr","runningOkmLength","previousT","okm","md","md5","sha1","valueBytes","update","digest","valueBuf","signingAlgorithm","mac1","mac2","arr1","arr2","getBytes","rand","Uint32Array","util","createBuffer","putInt32","DecryptParameters","meta","encKeyByteString","macKeyByteString","decode64","parameters","dataBuffer","createDecipher","finish","rsaParams","impPrivateKey","exportKey","jwkPrivateKey","jwkPublicKeyParams","kty","ext","impPublicKey","modulusLength","publicExponent","generateKey","getRandomValues","encodeUtf8","angulartics2GoogleAnalytics","toasterConfig","ToasterConfig","showCloseButton","mouseoverTimerStop","animation","lastActivity","idleTimer","isIdle","runOutsideAngular","onmousemove","recordActivity","onmousedown","ontouchstart","onclick","onscroll","onkeypress","setFullWidth","idleStateChanged","message_1","sanitize","SecurityContext","HTML","bodyOutputType","BodyOutputType","TrustedHtml","trustedHtml","Angulartics2GoogleAnalytics","i15","i16","i17","i18","i19","i20","i21","i22","i23","i24","i25","i26","blur","elRef","formEls","formEl","inputEl"],"mappings":"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QAGGr3I,EAAA9F,UAAAq6I,YAAd,SAA0B73I,EAAyBmzB,0GAE3C6nH,EAA0B,KACH,KAAvBh7I,EAAIA,IAAI2Q,WAAR,MACe,GAAM3P,KAAK20I,WAAW31I,WACzB,OADN4hH,EAASzvG,EAAAuH,OACH,GAAM1Y,KAAKilD,QAAQ9yB,EAAQyuF,kBAAvCo5B,EAAY7oI,EAAAuH,2BACkB,KAAvB1Z,EAAIA,IAAI2Q,WAAR,MACK,GAAM3P,KAAKilD,QAAQ9yB,EAAQnzB,kBAAvCg7I,EAAY7oI,EAAAuH,oBAEZ,MAAM,IAAI9V,MAAM,4BAEpB,SAAO,CAAC,IAAIqlE,EAAAphB,mBAAmB10B,GAAS6nH,UAjmB5C1P,EAAA,CADCO,EAAAmH,cAAc,WAAM,qEACA/pE,EAAAphB,mFA4ErByjF,EAAA,CADCO,EAAAmH,cAAc,WAAM,wIAwhBzB1vI,EA1rBA,GAAa3E,EAAA2E,+FC7BA3E,EAAA67I,gBAAkB,CAC3B,SACA,UACA,YACA,QACA,UACA,UACA,SACA,OACA,WACA,WACA,WACA,UACA,UACA,SACA,WACA,UACA,WACA,WACA,WACA,WACA,UACA,UACA,WACA,SACA,SACA,UACA,YACA,YACA,UACA,WACA,WACA,WACA,UACA,WACA,SACA,OACA,QACA,WACA,UACA,OACA,UACA,UACA,SACA,SACA,WACA,YACA,SACA,WACA,WACA,WACA,UACA,OACA,UACA,YACA,WACA,WACA,UACA,YACA,OACA,SACA,WACA,YACA,YACA,YACA,YACA,SACA,QACA,YACA,WACA,SACA,UACA,SACA,SACA,WACA,QACA,SACA,YACA,YACA,YACA,YACA,YACA,OACA,UACA,SACA,SACA,QACA,YACA,SACA,QACA,UACA,QACA,WACA,UACA,YACA,QACA,YACA,YACA,SACA,WACA,YACA,UACA,QACA,OACA,OACA,OACA,MACA,OACA,YACA,QACA,YACA,QACA,UACA,UACA,YACA,QACA,QACA,YACA,WACA,SACA,QACA,QACA,WACA,WACA,UACA,WACA,SACA,OACA,QACA,QACA,QACA,YACA,QACA,WACA,UACA,WACA,WACA,OACA,WACA,SACA,SACA,WACA,QACA,YACA,QACA,WACA,YACA,YACA,WACA,YACA,YACA,SACA,YACA,YACA,SACA,UACA,UACA,WACA,OACA,QACA,QACA,QACA,UACA,WACA,UACA,WACA,QACA,SACA,WACA,QACA,YACA,UACA,QACA,QACA,SACA,WACA,SACA,YACA,SACA,UACA,WACA,YACA,UACA,YACA,UACA,SACA,UACA,UACA,UACA,SACA,SACA,WACA,OACA,YACA,UACA,QACA,SACA,SACA,SACA,UACA,UACA,YACA,YACA,UACA,SACA,UACA,YACA,YACA,WACA,QACA,YACA,QACA,QACA,WACA,YACA,WACA,WACA,UACA,WACA,UACA,YACA,UACA,YACA,WACA,WACA,WACA,SACA,UACA,YACA,WACA,SACA,WACA,WACA,YACA,WACA,YACA,WACA,YACA,YACA,YACA,YACA,SACA,UACA,QACA,QACA,UACA,SACA,UACA,SACA,WACA,WACA,UACA,SACA,WACA,QACA,SACA,UACA,YACA,SACA,UACA,YACA,YACA,WACA,WACA,YACA,UACA,WACA,QACA,YACA,YACA,UACA,QACA,YACA,YACA,YACA,YACA,WACA,WACA,UACA,UACA,QACA,QACA,WACA,QACA,OACA,WACA,YACA,YACA,WACA,OACA,QACA,WACA,WACA,QACA,QACA,YACA,UACA,WACA,QACA,SACA,UACA,SACA,UACA,UACA,UACA,SACA,UACA,OACA,QACA,QACA,SACA,UACA,UACA,QACA,SACA,UACA,SACA,YACA,WACA,QACA,MACA,SACA,YACA,SACA,YACA,UACA,QACA,QACA,OACA,QACA,QACA,SACA,YACA,SACA,WACA,SACA,UACA,WACA,UACA,UACA,YACA,YACA,YACA,SACA,WACA,QACA,OACA,WACA,OACA,SACA,YACA,UACA,SACA,SACA,UACA,YACA,WACA,YACA,YACA,SACA,QACA,SACA,WACA,YACA,YACA,WACA,UACA,YACA,WACA,UACA,UACA,WACA,QACA,WACA,YACA,SACA,YACA,SACA,SACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,SACA,SACA,WACA,SACA,UACA,WACA,QACA,WACA,UACA,OACA,QACA,QACA,SACA,QACA,QACA,SACA,UACA,SACA,QACA,OACA,OACA,SACA,WACA,SACA,SACA,WACA,YACA,YACA,WACA,SACA,SACA,YACA,WACA,WACA,UACA,YACA,WACA,WACA,YACA,UACA,UACA,WACA,YACA,WACA,WACA,YACA,WACA,WACA,YACA,WACA,WACA,YACA,WACA,YACA,SACA,WACA,WACA,YACA,WACA,QACA,WACA,YACA,SACA,QACA,UACA,QACA,UACA,SACA,WACA,QACA,SACA,UACA,SACA,SACA,YACA,UACA,QACA,UACA,WACA,QACA,SACA,WACA,SACA,UACA,YACA,UACA,QACA,WACA,SACA,SACA,SACA,WACA,QACA,WACA,WACA,SACA,SACA,UACA,WACA,WACA,SACA,YACA,UACA,SACA,WACA,SACA,UACA,SACA,UACA,QACA,WACA,UACA,WACA,SACA,UACA,SACA,OACA,YACA,UACA,YACA,SACA,WACA,YACA,UACA,WACA,YACA,WACA,OACA,YACA,SACA,QACA,QACA,QACA,SACA,SACA,QACA,OACA,QACA,OACA,YACA,WACA,YACA,UACA,UACA,SACA,SACA,UACA,UACA,UACA,QACA,OACA,QACA,UACA,YACA,YACA,QACA,YACA,YACA,QACA,WACA,YACA,SACA,UACA,SACA,QACA,QACA,UACA,QACA,QACA,WACA,QACA,QACA,UACA,UACA,WACA,SACA,OACA,WACA,QACA,WACA,UACA,WACA,OACA,OACA,WACA,WACA,UACA,OACA,SACA,UACA,QACA,SACA,YACA,QACA,QACA,UACA,SACA,QACA,QACA,WACA,UACA,WACA,WACA,OACA,SACA,UACA,SACA,SACA,UACA,UACA,YACA,OACA,SACA,SACA,QACA,OACA,MACA,UACA,OACA,UACA,SACA,UACA,WACA,QACA,WACA,WACA,WACA,QACA,UACA,SACA,SACA,QACA,OACA,YACA,YACA,OACA,YACA,SACA,QACA,SACA,UACA,WACA,UACA,QACA,QACA,QACA,SACA,UACA,WACA,YACA,OACA,YACA,WACA,SACA,QACA,OACA,SACA,WACA,SACA,SACA,WACA,SACA,WACA,YACA,YACA,SACA,SACA,QACA,SACA,UACA,OACA,SACA,SACA,WACA,YACA,UACA,WACA,SACA,SACA,WACA,UACA,UACA,QACA,QACA,QACA,QACA,UACA,UACA,SACA,YACA,OACA,QACA,QACA,UACA,UACA,YACA,UACA,UACA,YACA,YACA,UACA,UACA,YACA,YACA,YACA,UACA,WACA,SACA,SACA,YACA,SACA,SACA,WACA,QACA,QACA,UACA,WACA,YACA,SACA,WACA,WACA,SACA,WACA,QACA,QACA,WACA,QACA,YACA,SACA,WACA,SACA,YACA,SACA,SACA,SACA,WACA,WACA,YACA,YACA,WACA,WACA,UACA,QACA,SACA,UACA,SACA,SACA,UACA,UACA,QACA,OACA,QACA,YACA,SACA,OACA,UACA,YACA,YACA,WACA,WACA,UACA,UACA,UACA,WACA,WACA,WACA,QACA,QACA,SACA,SACA,SACA,UACA,YACA,WACA,QACA,OACA,SACA,OACA,SACA,UACA,OACA,WACA,OACA,SACA,UACA,SACA,YACA,QACA,UACA,QACA,SACA,QACA,SACA,SACA,QACA,QACA,WACA,UACA,OACA,UACA,OACA,WACA,WACA,UACA,YACA,WACA,UACA,YACA,OACA,UACA,UACA,UACA,YACA,QACA,SACA,WACA,SACA,WACA,UACA,WACA,SACA,QACA,SACA,SACA,UACA,SACA,QACA,OACA,SACA,WACA,WACA,SACA,UACA,SACA,SACA,SACA,QACA,YACA,SACA,UACA,SACA,UACA,UACA,WACA,OACA,YACA,UACA,UACA,SACA,YACA,UACA,UACA,UACA,YACA,UACA,YACA,UACA,UACA,QACA,UACA,SACA,YACA,SACA,UACA,WACA,WACA,YACA,YACA,YACA,WACA,SACA,YACA,QACA,SACA,UACA,UACA,WACA,UACA,YACA,WACA,YACA,QACA,YACA,YACA,UACA,UACA,UACA,SACA,YACA,QACA,SACA,WACA,SACA,UACA,YACA,YACA,QACA,UACA,UACA,UACA,OACA,OACA,SACA,SACA,SACA,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,YACA,UACA,YACA,UACA,WACA,SACA,UACA,WACA,WACA,UACA,YACA,WACA,UACA,SACA,SACA,SACA,UACA,YACA,SACA,QACA,UACA,YACA,SACA,SACA,YACA,QACA,UACA,YACA,UACA,WACA,WACA,UACA,SACA,SACA,QACA,SACA,YACA,WACA,WACA,SACA,SACA,SACA,WACA,WACA,YACA,YACA,YACA,UACA,WACA,WACA,QACA,WACA,QACA,QACA,UACA,YACA,UACA,YACA,WACA,SACA,SACA,UACA,QACA,QACA,YACA,WACA,UACA,QACA,UACA,YACA,YACA,WACA,UACA,WACA,UACA,UACA,QACA,UACA,UACA,WACA,QACA,UACA,SACA,WACA,WACA,WACA,UACA,WACA,SACA,WACA,UACA,QACA,QACA,SACA,SACA,OACA,YACA,UACA,QACA,YACA,SACA,QACA,QACA,UACA,QACA,WACA,SACA,UACA,QACA,QACA,YACA,YACA,YACA,WACA,YACA,YACA,QACA,QACA,QACA,OACA,WACA,SACA,WACA,WACA,QACA,WACA,WACA,SACA,YACA,UACA,QACA,UACA,WACA,SACA,OACA,SACA,UACA,WACA,SACA,SACA,QACA,OACA,SACA,QACA,QACA,QACA,QACA,QACA,WACA,QACA,SACA,WACA,SACA,WACA,WACA,YACA,SACA,UACA,UACA,WACA,UACA,SACA,SACA,OACA,QACA,QACA,OACA,QACA,WACA,SACA,SACA,QACA,YACA,QACA,WACA,UACA,UACA,WACA,UACA,WACA,UACA,QACA,QACA,QACA,UACA,SACA,WACA,OACA,OACA,QACA,QACA,QACA,UACA,QACA,SACA,YACA,WACA,QACA,SACA,UACA,SACA,UACA,WACA,QACA,SACA,WACA,OACA,SACA,QACA,UACA,QACA,QACA,UACA,WACA,UACA,UACA,WACA,QACA,SACA,UACA,WACA,YACA,QACA,WACA,SACA,SACA,YACA,SACA,UACA,QACA,YACA,UACA,UACA,WACA,YACA,YACA,OACA,WACA,SACA,UACA,SACA,QACA,UACA,MACA,WACA,SACA,UACA,SACA,YACA,YACA,YACA,WACA,YACA,WACA,WACA,OACA,OACA,OACA,OACA,WACA,WACA,UACA,WACA,SACA,YACA,YACA,UACA,SACA,YACA,WACA,WACA,WACA,SACA,WACA,OACA,OACA,OACA,UACA,QACA,QACA,SACA,QACA,WACA,UACA,UACA,WACA,UACA,YACA,YACA,SACA,YACA,UACA,YACA,YACA,YACA,YACA,YACA,YACA,UACA,UACA,SACA,UACA,SACA,YACA,WACA,WACA,YACA,UACA,YACA,WACA,WACA,YACA,WACA,YACA,UACA,UACA,UACA,WACA,UACA,YACA,UACA,QACA,YACA,UACA,WACA,WACA,SACA,WACA,YACA,YACA,UACA,YACA,YACA,UACA,OACA,UACA,WACA,YACA,YACA,WACA,YACA,YACA,WACA,YACA,UACA,WACA,UACA,WACA,WACA,WACA,YACA,YACA,YACA,YACA,WACA,WACA,UACA,YACA,UACA,WACA,YACA,YACA,YACA,UACA,UACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,UACA,WACA,YACA,UACA,YACA,WACA,UACA,YACA,YACA,WACA,UACA,UACA,UACA,UACA,WACA,UACA,YACA,UACA,UACA,YACA,OACA,SACA,SACA,UACA,SACA,UACA,SACA,OACA,QACA,OACA,WACA,YACA,UACA,SACA,SACA,SACA,YACA,YACA,WACA,WACA,YACA,QACA,WACA,UACA,WACA,YACA,SACA,UACA,WACA,UACA,YACA,YACA,UACA,SACA,SACA,WACA,YACA,SACA,SACA,YACA,OACA,UACA,SACA,QACA,QACA,QACA,YACA,YACA,WACA,YACA,UACA,SACA,UACA,WACA,QACA,UACA,WACA,UACA,SACA,WACA,OACA,WACA,YACA,WACA,WACA,SACA,WACA,UACA,WACA,YACA,YACA,SACA,QACA,YACA,QACA,UACA,UACA,QACA,QACA,QACA,UACA,WACA,WACA,WACA,WACA,SACA,SACA,UACA,YACA,QACA,UACA,UACA,YACA,SACA,WACA,YACA,SACA,WACA,WACA,WACA,WACA,WACA,SACA,QACA,QACA,SACA,QACA,QACA,WACA,UACA,WACA,YACA,UACA,WACA,UACA,WACA,OACA,UACA,QACA,QACA,QACA,UACA,SACA,WACA,UACA,UACA,UACA,WACA,UACA,YACA,SACA,WACA,UACA,QACA,QACA,QACA,QACA,OACA,QACA,SACA,UACA,UACA,QACA,QACA,UACA,UACA,YACA,UACA,YACA,UACA,QACA,YACA,SACA,UACA,WACA,WACA,YACA,UACA,WACA,YACA,UACA,UACA,WACA,QACA,OACA,SACA,UACA,UACA,YACA,OACA,UACA,UACA,WACA,SACA,SACA,WACA,WACA,YACA,WACA,UACA,YACA,WACA,UACA,YACA,UACA,QACA,SACA,UACA,UACA,UACA,SACA,OACA,SACA,SACA,SACA,SACA,YACA,UACA,QACA,QACA,QACA,UACA,SACA,UACA,SACA,SACA,YACA,QACA,QACA,QACA,OACA,SACA,UACA,YACA,UACA,YACA,WACA,YACA,UACA,MACA,QACA,SACA,UACA,UACA,WACA,SACA,YACA,YACA,MACA,MACA,WACA,SACA,QACA,WACA,SACA,QACA,QACA,WACA,QACA,UACA,YACA,SACA,WACA,QACA,SACA,SACA,WACA,YACA,QACA,WACA,WACA,YACA,UACA,WACA,WACA,UACA,OACA,OACA,YACA,OACA,YACA,OACA,WACA,SACA,WACA,WACA,UACA,OACA,SACA,WACA,UACA,WACA,WACA,UACA,UACA,UACA,UACA,WACA,SACA,YACA,WACA,SACA,UACA,YACA,QACA,OACA,YACA,SACA,WACA,QACA,UACA,WACA,SACA,QACA,SACA,SACA,QACA,QACA,YACA,QACA,WACA,SACA,WACA,YACA,WACA,UACA,SACA,YACA,YACA,UACA,YACA,UACA,YACA,WACA,OACA,WACA,UACA,SACA,YACA,YACA,YACA,QACA,WACA,SACA,WACA,YACA,SACA,SACA,OACA,OACA,SACA,SACA,WACA,SACA,WACA,SACA,UACA,SACA,YACA,YACA,YACA,WACA,UACA,YACA,WACA,WACA,WACA,UACA,SACA,WACA,SACA,WACA,UACA,YACA,WACA,YACA,YACA,QACA,WACA,UACA,UACA,SACA,SACA,OACA,WACA,YACA,WACA,SACA,YACA,QACA,WACA,QACA,WACA,YACA,SACA,WACA,WACA,WACA,YACA,YACA,YACA,WACA,YACA,WACA,UACA,QACA,SACA,WACA,SACA,YACA,YACA,WACA,SACA,YACA,WACA,SACA,WACA,YACA,YACA,WACA,SACA,QACA,SACA,QACA,UACA,SACA,UACA,UACA,OACA,YACA,YACA,WACA,YACA,SACA,UACA,YACA,WACA,SACA,SACA,SACA,WACA,YACA,YACA,UACA,UACA,QACA,WACA,SACA,SACA,WACA,QACA,UACA,YACA,UACA,YACA,YACA,WACA,WACA,YACA,YACA,UACA,WACA,WACA,UACA,UACA,UACA,UACA,YACA,WACA,WACA,SACA,YACA,YACA,WACA,YACA,YACA,SACA,WACA,YACA,WACA,UACA,QACA,UACA,WACA,UACA,UACA,YACA,WACA,SACA,UACA,YACA,UACA,WACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,WACA,YACA,YACA,UACA,OACA,WACA,SACA,YACA,QACA,OACA,SACA,UACA,YACA,WACA,YACA,WACA,WACA,YACA,YACA,MACA,WACA,YACA,WACA,OACA,SACA,OACA,WACA,QACA,SACA,SACA,UACA,SACA,QACA,UACA,SACA,YACA,QACA,QACA,SACA,SACA,UACA,UACA,UACA,SACA,SACA,UACA,WACA,YACA,YACA,WACA,YACA,WACA,YACA,WACA,WACA,WACA,SACA,WACA,WACA,UACA,YACA,WACA,UACA,UACA,YACA,WACA,WACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,WACA,OACA,YACA,UACA,OACA,UACA,YACA,YACA,WACA,WACA,YACA,SACA,UACA,WACA,UACA,WACA,SACA,YACA,YACA,WACA,WACA,YACA,YACA,YACA,WACA,UACA,YACA,WACA,UACA,WACA,UACA,YACA,UACA,WACA,WACA,UACA,WACA,UACA,WACA,UACA,WACA,WACA,WACA,WACA,QACA,QACA,QACA,YACA,UACA,WACA,WACA,WACA,WACA,SACA,WACA,YACA,YACA,WACA,WACA,WACA,YACA,QACA,SACA,SACA,OACA,WACA,WACA,QACA,QACA,QACA,QACA,OACA,SACA,YACA,SACA,QACA,UACA,SACA,WACA,WACA,WACA,WACA,UACA,WACA,UACA,QACA,QACA,SACA,WACA,YACA,WACA,UACA,UACA,WACA,WACA,WACA,WACA,UACA,QACA,OACA,YACA,SACA,SACA,OACA,SACA,WACA,SACA,OACA,OACA,QACA,OACA,OACA,WACA,YACA,YACA,WACA,YACA,WACA,UACA,UACA,YACA,WACA,YACA,QACA,UACA,UACA,OACA,UACA,WACA,YACA,YACA,WACA,YACA,YACA,YACA,SACA,SACA,WACA,SACA,SACA,QACA,OACA,UACA,QACA,QACA,QACA,UACA,WACA,YACA,WACA,WACA,SACA,WACA,SACA,SACA,WACA,UACA,UACA,UACA,QACA,QACA,QACA,YACA,UACA,WACA,UACA,UACA,UACA,QACA,QACA,WACA,SACA,OACA,MACA,SACA,YACA,UACA,WACA,UACA,WACA,WACA,QACA,OACA,OACA,SACA,SACA,MACA,OACA,SACA,WACA,OACA,UACA,WACA,WACA,MACA,OACA,SACA,YACA,YACA,UACA,UACA,WACA,SACA,SACA,OACA,OACA,UACA,OACA,QACA,QACA,QACA,UACA,UACA,WACA,UACA,YACA,UACA,WACA,UACA,WACA,WACA,OACA,QACA,UACA,UACA,UACA,SACA,UACA,QACA,UACA,UACA,WACA,WACA,WACA,UACA,UACA,UACA,YACA,YACA,UACA,YACA,SACA,SACA,UACA,QACA,UACA,SACA,WACA,SACA,YACA,YACA,SACA,WACA,UACA,QACA,SACA,SACA,OACA,OACA,QACA,QACA,QACA,YACA,OACA,SACA,UACA,YACA,UACA,WACA,YACA,UACA,YACA,YACA,OACA,WACA,SACA,OACA,UACA,SACA,WACA,YACA,WACA,MACA,YACA,UACA,YACA,SACA,YACA,SACA,SACA,WACA,WACA,YACA,UACA,YACA,SACA,QACA,YACA,UACA,SACA,QACA,YACA,UACA,SACA,YACA,WACA,WACA,WACA,UACA,YACA,YACA,WACA,SACA,MACA,WACA,WACA,YACA,QACA,UACA,SACA,MACA,UACA,WACA,MACA,YACA,QACA,YACA,WACA,YACA,QACA,UACA,QACA,QACA,UACA,SACA,UACA,YACA,YACA,QACA,WACA,UACA,SACA,SACA,WACA,SACA,YACA,QACA,UACA,YACA,WACA,OACA,QACA,WACA,UACA,WACA,UACA,UACA,WACA,WACA,YACA,WACA,YACA,WACA,WACA,WACA,WACA,UACA,UACA,YACA,QACA,MACA,SACA,YACA,SACA,YACA,YACA,WACA,UACA,YACA,SACA,SACA,YACA,YACA,WACA,UACA,UACA,WACA,WACA,YACA,QACA,SACA,UACA,UACA,YACA,YACA,UACA,YACA,WACA,YACA,YACA,WACA,YACA,WACA,SACA,WACA,WACA,UACA,WACA,SACA,UACA,WACA,WACA,YACA,UACA,SACA,UACA,YACA,YACA,YACA,UACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,SACA,SACA,SACA,UACA,UACA,SACA,SACA,YACA,WACA,YACA,WACA,SACA,UACA,SACA,SACA,YACA,SACA,SACA,WACA,UACA,WACA,UACA,YACA,WACA,WACA,WACA,UACA,WACA,QACA,OACA,SACA,OACA,WACA,YACA,YACA,WACA,WACA,YACA,WACA,WACA,UACA,QACA,SACA,WACA,UACA,UACA,YACA,SACA,YACA,YACA,WACA,SACA,SACA,UACA,YACA,SACA,SACA,UACA,QACA,QACA,WACA,YACA,YACA,WACA,WACA,WACA,SACA,YACA,YACA,WACA,UACA,QACA,UACA,YACA,YACA,SACA,WACA,WACA,YACA,YACA,WACA,UACA,UACA,WACA,UACA,QACA,YACA,SACA,YACA,WACA,UACA,QACA,WACA,YACA,YACA,UACA,UACA,OACA,YACA,YACA,YACA,WACA,WACA,QACA,WACA,UACA,OACA,QACA,YACA,SACA,QACA,UACA,UACA,WACA,YACA,YACA,YACA,SACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,SACA,YACA,YACA,YACA,YACA,QACA,OACA,YACA,SACA,UACA,SACA,QACA,WACA,OACA,SACA,YACA,WACA,WACA,SACA,UACA,YACA,YACA,YACA,YACA,YACA,QACA,SACA,WACA,YACA,SACA,SACA,WACA,UACA,YACA,WACA,UACA,UACA,UACA,YACA,WACA,WACA,YACA,SACA,WACA,UACA,YACA,YACA,WACA,YACA,SACA,YACA,WACA,WACA,UACA,YACA,YACA,SACA,YACA,UACA,YACA,YACA,QACA,SACA,WACA,WACA,YACA,WACA,WACA,WACA,YACA,UACA,SACA,WACA,SACA,YACA,UACA,UACA,SACA,YACA,UACA,UACA,OACA,SACA,UACA,SACA,OACA,QACA,UACA,OACA,WACA,SACA,SACA,WACA,UACA,UACA,YACA,QACA,UACA,OACA,UACA,YACA,YACA,UACA,UACA,WACA,SACA,UACA,WACA,SACA,YACA,YACA,UACA,WACA,WACA,MACA,QACA,UACA,SACA,SACA,OACA,OACA,SACA,SACA,WACA,WACA,WACA,WACA,WACA,QACA,QACA,UACA,SACA,UACA,WACA,YACA,WACA,SACA,SACA,QACA,SACA,SACA,WACA,UACA,YACA,QACA,QACA,QACA,QACA,UACA,SACA,WACA,WACA,YACA,UACA,UACA,QACA,WACA,QACA,UACA,SACA,WACA,SACA,SACA,SACA,UACA,OACA,SACA,QACA,WACA,SACA,WACA,WACA,UACA,UACA,YACA,QACA,WACA,QACA,UACA,WACA,WACA,YACA,SACA,UACA,UACA,WACA,MACA,OACA,UACA,UACA,WACA,WACA,YACA,YACA,QACA,UACA,QACA,QACA,YACA,UACA,WACA,WACA,OACA,UACA,YACA,YACA,YACA,WACA,WACA,SACA,QACA,UACA,WACA,SACA,WACA,UACA,YACA,YACA,WACA,UACA,WACA,WACA,WACA,YACA,YACA,WACA,OACA,UACA,SACA,QACA,QACA,SACA,SACA,QACA,QACA,OACA,QACA,QACA,QACA,WACA,OACA,SACA,UACA,QACA,WACA,UACA,UACA,QACA,SACA,UACA,WACA,OACA,MACA,MACA,OACA,QACA,OACA,WACA,SACA,WACA,SACA,WACA,SACA,OACA,OACA,OACA,UACA,WACA,WACA,YACA,SACA,WACA,WACA,WACA,UACA,WACA,UACA,WACA,UACA,WACA,YACA,WACA,UACA,WACA,WACA,WACA,SACA,SACA,UACA,WACA,WACA,MACA,QACA,WACA,WACA,UACA,YACA,WACA,YACA,WACA,QACA,QACA,UACA,UACA,YACA,SACA,UACA,QACA,WACA,WACA,WACA,UACA,UACA,UACA,WACA,WACA,UACA,WACA,SACA,YACA,WACA,YACA,WACA,UACA,WACA,YACA,WACA,UACA,SACA,WACA,SACA,YACA,WACA,QACA,UACA,UACA,WACA,SACA,SACA,QACA,SACA,WACA,YACA,YACA,WACA,QACA,SACA,UACA,QACA,UACA,YACA,SACA,OACA,QACA,YACA,UACA,WACA,WACA,YACA,SACA,QACA,QACA,SACA,WACA,YACA,WACA,QACA,YACA,SACA,MACA,QACA,MACA,YACA,UACA,QACA,OACA,YACA,WACA,UACA,SACA,SACA,UACA,YACA,SACA,YACA,WACA,OACA,SACA,QACA,SACA,SACA,WACA,UACA,MACA,SACA,UACA,SACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,MACA,WACA,YACA,SACA,UACA,WACA,QACA,OACA,OACA,SACA,OACA,QACA,OACA,SACA,MACA,SACA,UACA,WACA,WACA,QACA,UACA,YACA,SACA,QACA,YACA,WACA,YACA,UACA,YACA,WACA,WACA,SACA,YACA,YACA,YACA,WACA,YACA,UACA,YACA,UACA,UACA,UACA,QACA,QACA,YACA,SACA,UACA,YACA,QACA,OACA,WACA,YACA,WACA,SACA,WACA,SACA,SACA,SACA,QACA,UACA,SACA,WACA,QACA,QACA,SACA,QACA,UACA,UACA,UACA,QACA,YACA,SACA,YACA,UACA,SACA,WACA,YACA,QACA,UACA,QACA,WACA,UACA,WACA,UACA,SACA,UACA,UACA,UACA,UACA,SACA,UACA,SACA,UACA,WACA,WACA,SACA,YACA,YACA,UACA,WACA,QACA,QACA,QACA,UACA,WACA,UACA,OACA,SACA,YACA,UACA,SACA,OACA,OACA,WACA,OACA,UACA,QACA,WACA,WACA,YACA,OACA,UACA,QACA,UACA,OACA,OACA,OACA,QACA,WACA,YACA,QACA,SACA,OACA,SACA,OACA,SACA,WACA,OACA,UACA,SACA,SACA,SACA,OACA,OACA,OACA,WACA,YACA,WACA,YACA,SACA,SACA,WACA,UACA,YACA,WACA,WACA,UACA,WACA,QACA,WACA,WACA,UACA,UACA,UACA,WACA,UACA,SACA,UACA,QACA,WACA,QACA,QACA,UACA,YACA,QACA,QACA,YACA,UACA,UACA,YACA,WACA,SACA,YACA,SACA,YACA,YACA,UACA,QACA,OACA,UACA,WACA,WACA,YACA,SACA,QACA,UACA,WACA,OACA,YACA,OACA,QACA,YACA,WACA,WACA,QACA,UACA,YACA,QACA,YACA,QACA,SACA,WACA,OACA,UACA,OACA,WACA,SACA,QACA,QACA,SACA,WACA,SACA,QACA,SACA,UACA,QACA,QACA,SACA,UACA,QACA,OACA,SACA,WACA,WACA,UACA,UACA,YACA,UACA,WACA,SACA,QACA,YACA,WACA,WACA,QACA,UACA,YACA,QACA,OACA,WACA,QACA,OACA,UACA,UACA,YACA,UACA,QACA,SACA,WACA,OACA,OACA,QACA,QACA,UACA,OACA,SACA,MACA,UACA,WACA,YACA,WACA,UACA,WACA,SACA,SACA,UACA,UACA,MACA,UACA,QACA,OACA,UACA,OACA,SACA,SACA,YACA,SACA,UACA,SACA,UACA,YACA,UACA,WACA,WACA,YACA,WACA,WACA,YACA,YACA,WACA,SACA,UACA,WACA,UACA,WACA,YACA,YACA,YACA,UACA,UACA,WACA,WACA,UACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,YACA,WACA,WACA,YACA,YACA,WACA,WACA,UACA,WACA,SACA,YACA,SACA,QACA,YACA,YACA,UACA,WACA,UACA,YACA,QACA,SACA,WACA,WACA,YACA,WACA,WACA,WACA,YACA,UACA,WACA,YACA,SACA,WACA,WACA,WACA,YACA,WACA,QACA,UACA,WACA,YACA,YACA,YACA,UACA,UACA,UACA,QACA,UACA,OACA,SACA,QACA,UACA,YACA,QACA,SACA,YACA,WACA,UACA,WACA,YACA,OACA,UACA,SACA,QACA,QACA,SACA,WACA,SACA,WACA,SACA,OACA,WACA,WACA,YACA,YACA,YACA,SACA,SACA,YACA,WACA,UACA,WACA,WACA,WACA,YACA,YACA,WACA,WACA,YACA,UACA,WACA,YACA,YACA,UACA,WACA,OACA,OACA,QACA,UACA,YACA,UACA,QACA,UACA,YACA,QACA,SACA,SACA,SACA,UACA,UACA,WACA,WACA,UACA,YACA,QACA,WACA,QACA,SACA,SACA,YACA,QACA,WACA,SACA,UACA,UACA,UACA,UACA,QACA,YACA,WACA,WACA,UACA,WACA,SACA,SACA,WACA,OACA,MACA,OACA,OACA,OACA,QACA,SACA,WACA,SACA,QACA,YACA,WACA,UACA,SACA,YACA,WACA,YACA,WACA,WACA,SACA,SACA,YACA,YACA,SACA,WACA,SACA,OACA,SACA,UACA,WACA,WACA,SACA,SACA,SACA,UACA,SACA,YACA,UACA,QACA,OACA,UACA,OACA,SACA,YACA,MACA,SACA,UACA,WACA,YACA,WACA,YACA,YACA,YACA,SACA,WACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,MACA,UACA,QACA,OACA,OACA,MACA,WACA,WACA,WACA,UACA,YACA,YACA,WACA,WACA,WACA,SACA,QACA,OACA,QACA,WACA,SACA,SACA,YACA,WACA,WACA,QACA,YACA,WACA,UACA,WACA,UACA,YACA,WACA,UACA,YACA,WACA,WACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,WACA,SACA,SACA,YACA,UACA,WACA,YACA,YACA,WACA,SACA,UACA,YACA,YACA,WACA,UACA,YACA,YACA,QACA,WACA,YACA,WACA,SACA,WACA,YACA,YACA,WACA,UACA,YACA,UACA,WACA,YACA,WACA,UACA,YACA,YACA,YACA,UACA,YACA,SACA,WACA,SACA,SACA,MACA,OACA,SACA,OACA,QACA,MACA,OACA,YACA,WACA,YACA,YACA,WACA,WACA,UACA,WACA,WACA,YACA,YACA,UACA,QACA,UACA,YACA,UACA,OACA,YACA,SACA,QACA,MACA,MACA,SACA,SACA,YACA,UACA,WACA,YACA,SACA,YACA,WACA,MACA,UACA,UACA,SACA,UACA,UACA,WACA,QACA,OACA,QACA,UACA,UACA,OACA,UACA,YACA,OACA,OACA,YACA,UACA,QACA,SACA,SACA,MACA,QACA,SACA,QACA,SACA,WACA,OACA,UACA,UACA,MACA,SACA,YACA,SACA,UACA,OACA,UACA,WACA,WACA,YACA,QACA,OACA,MACA,SACA,WACA,YACA,SACA,UACA,WACA,YACA,WACA,QACA,YACA,WACA,YACA,OACA,SACA,WACA,UACA,QACA,YACA,QACA,UACA,UACA,OACA,SACA,QACA,OACA,WACA,WACA,OACA,SACA,UACA,SACA,UACA,WACA,SACA,QACA,OACA,UACA,YACA,UACA,SACA,WACA,WACA,QACA,WACA,UACA,SACA,QACA,QACA,SACA,WACA,OACA,MACA,OACA,SACA,OACA,WACA,WACA,SACA,OACA,OACA,WACA,WACA,YACA,WACA,OACA,SACA,SACA,WACA,SACA,WACA,UACA,UACA,UACA,OACA,UACA,UACA,YACA,WACA,SACA,UACA,UACA,OACA,SACA,QACA,OACA,UACA,WACA,OACA,QACA,WACA,QACA,QACA,QACA,SACA,UACA,QACA,OACA,UACA,UACA,WACA,YACA,WACA,SACA,SACA,QACA,UACA,WACA,SACA,UACA,SACA,OACA,OACA,QACA,SACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,YACA,YACA,WACA,YACA,WACA,YACA,QACA,UACA,SACA,QACA,SACA,UACA,SACA,OACA,QACA,OACA,OACA,QACA,OACA,QACA,OACA,SACA,WACA,UACA,SACA,WACA,SACA,UACA,UACA,SACA,WACA,SACA,WACA,SACA,WACA,OACA,WACA,OACA,SACA,QACA,SACA,SACA,WACA,UACA,UACA,YACA,OACA,UACA,SACA,YACA,UACA,QACA,OACA,SACA,OACA,OACA,UACA,SACA,UACA,YACA,WACA,SACA,UACA,QACA,WACA,SACA,WACA,YACA,YACA,SACA,UACA,YACA,UACA,UACA,WACA,MACA,OACA,SACA,UACA,UACA,WACA,SACA,WACA,WACA,SACA,QACA,QACA,OACA,OACA,UACA,YACA,QACA,QACA,UACA,WACA,OACA,QACA,WACA,WACA,SACA,SACA,WACA,UACA,OACA,OACA,MACA,UACA,UACA,SACA,OACA,OACA,WACA,YACA,SACA,SACA,SACA,UACA,QACA,SACA,QACA,YACA,UACA,SACA,SACA,YACA,YACA,QACA,UACA,YACA,WACA,YACA,YACA,SACA,WACA,UACA,SACA,YACA,WACA,YACA,UACA,UACA,SACA,QACA,WACA,WACA,YACA,YACA,OACA,QACA,OACA,YACA,OACA,SACA,WACA,SACA,YACA,UACA,YACA,WACA,QACA,YACA,SACA,QACA,YACA,WACA,WACA,SACA,WACA,WACA,QACA,OACA,UACA,YACA,WACA,UACA,SACA,UACA,WACA,QACA,YACA,WACA,YACA,YACA,YACA,UACA,YACA,WACA,WACA,SACA,WACA,UACA,YACA,WACA,WACA,QACA,YACA,SACA,YACA,OACA,OACA,SACA,UACA,YACA,UACA,WACA,UACA,WACA,UACA,YACA,WACA,SACA,SACA,QACA,QACA,YACA,UACA,UACA,UACA,YACA,WACA,YACA,SACA,UACA,UACA,YACA,QACA,UACA,SACA,UACA,QACA,WACA,SACA,SACA,SACA,OACA,MACA,WACA,YACA,UACA,UACA,WACA,QACA,QACA,YACA,YACA,SACA,WACA,SACA,SACA,UACA,WACA,SACA,YACA,SACA,UACA,SACA,QACA,YACA,SACA,YACA,YACA,UACA,SACA,YACA,SACA,UACA,WACA,SACA,UACA,UACA,UACA,YACA,WACA,UACA,WACA,YACA,WACA,WACA,YACA,OACA,SACA,YACA,YACA,SACA,SACA,SACA,SACA,WACA,WACA,WACA,QACA,WACA,WACA,UACA,QACA,SACA,YACA,SACA,UACA,SACA,WACA,WACA,UACA,QACA,SACA,SACA,WACA,SACA,UACA,YACA,SACA,UACA,YACA,WACA,QACA,WACA,OACA,YACA,WACA,WACA,UACA,MACA,YACA,SACA,WACA,WACA,YACA,YACA,YACA,WACA,UACA,UACA,WACA,WACA,WACA,YACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,YACA,UACA,WACA,UACA,YACA,QACA,SACA,WACA,SACA,YACA,WACA,UACA,WACA,YACA,YACA,YACA,WACA,MACA,SACA,WACA,UACA,YACA,WACA,WACA,WACA,QACA,YACA,WACA,YACA,YACA,UACA,WACA,SACA,QACA,OACA,WACA,YACA,SACA,WACA,YACA,SACA,YACA,QACA,QACA,YACA,WACA,UACA,WACA,UACA,WACA,QACA,YACA,YACA,QACA,QACA,UACA,OACA,QACA,SACA,QACA,SACA,OACA,OACA,MACA,MACA,WACA,QACA,OACA,SACA,UACA,WACA,WACA,YACA,YACA,SACA,WACA,QACA,YACA,UACA,QACA,QACA,WACA,UACA,YACA,SACA,QACA,YACA,QACA,YACA,WACA,SACA,UACA,YACA,WACA,QACA,QACA,SACA,YACA,QACA,UACA,UACA,SACA,YACA,QACA,UACA,SACA,WACA,OACA,YACA,YACA,SACA,OACA,SACA,SACA,SACA,UACA,YACA,UACA,OACA,QACA,MACA,OACA,OACA,SACA,QACA,YACA,OACA,SACA,SACA,UACA,QACA,SACA,UACA,YACA,WACA,SACA,WACA,UACA,SACA,WACA,WACA,WACA,YACA,OACA,SACA,UACA,SACA,WACA,SACA,WACA,SACA,YACA,SACA,SACA,WACA,WACA,YACA,WACA,YACA,YACA,UACA,UACA,OACA,SACA,OACA,UACA,QACA,OACA,MACA,YACA,SACA,WACA,WACA,SACA,UACA,QACA,OACA,SACA,WACA,WACA,QACA,QACA,SACA,SACA,WACA,YACA,QACA,WACA,QACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,WACA,UACA,WACA,YACA,UACA,WACA,WACA,UACA,UACA,UACA,UACA,UACA,SACA,WACA,WACA,YACA,QACA,SACA,QACA,MACA,MACA,QACA,MACA,YACA,WACA,WACA,SACA,WACA,UACA,WACA,YACA,SACA,YACA,OACA,UACA,YACA,YACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,YACA,WACA,SACA,YACA,SACA,UACA,YACA,YACA,WACA,WACA,SACA,QACA,SACA,UACA,SACA,UACA,UACA,OACA,MACA,OACA,WACA,OACA,MACA,QACA,WACA,QACA,OACA,UACA,WACA,OACA,WACA,UACA,WACA,UACA,QACA,SACA,WACA,OACA,WACA,QACA,UACA,YACA,UACA,OACA,SACA,OACA,OACA,OACA,OACA,UACA,OACA,OACA,WACA,UACA,YACA,YACA,YACA,WACA,QACA,UACA,WACA,SACA,WACA,WACA,YACA,YACA,MACA,YACA,UACA,QACA,QACA,OACA,QACA,QACA,SACA,UACA,SACA,WACA,WACA,WACA,WACA,UACA,WACA,UACA,WACA,WACA,QACA,WACA,SACA,WACA,WACA,UACA,WACA,SACA,UACA,SACA,UACA,UACA,WACA,WACA,UACA,YACA,YACA,UACA,UACA,SACA,UACA,UACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,UACA,WACA,SACA,OACA,QACA,OACA,UACA,UACA,WACA,UACA,WACA,WACA,YACA,YACA,WACA,YACA,WACA,WACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,UACA,YACA,YACA,YACA,UACA,WACA,WACA,WACA,WACA,YACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,YACA,WACA,YACA,WACA,UACA,UACA,WACA,WACA,WACA,YACA,YACA,WACA,UACA,YACA,WACA,YACA,YACA,WACA,YACA,YACA,WACA,WACA,WACA,UACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,WACA,WACA,YACA,YACA,YACA,WACA,YACA,WACA,UACA,WACA,WACA,WACA,UACA,YACA,WACA,YACA,MACA,SACA,UACA,YACA,UACA,YACA,SACA,WACA,SACA,QACA,QACA,YACA,UACA,WACA,WACA,WACA,SACA,SACA,UACA,SACA,WACA,UACA,QACA,QACA,SACA,UACA,SACA,YACA,OACA,WACA,YACA,SACA,WACA,WACA,UACA,WACA,SACA,UACA,WACA,QACA,WACA,OACA,YACA,QACA,UACA,WACA,YACA,UACA,YACA,SACA,QACA,YACA,YACA,SACA,QACA,UACA,UACA,WACA,YACA,SACA,UACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,WACA,YACA,SACA,UACA,YACA,SACA,SACA,QACA,UACA,UACA,SACA,WACA,SACA,SACA,UACA,UACA,UACA,SACA,UACA,YACA,SACA,UACA,YACA,QACA,WACA,WACA,UACA,WACA,YACA,WACA,UACA,UACA,UACA,YACA,WACA,WACA,WACA,QACA,SACA,SACA,UACA,SACA,WACA,UACA,QACA,YACA,SACA,WACA,YACA,OACA,WACA,UACA,QACA,YACA,UACA,SACA,YACA,YACA,SACA,WACA,QACA,YACA,WACA,SACA,SACA,UACA,UACA,WACA,SACA,QACA,QACA,SACA,UACA,WACA,UACA,SACA,SACA,QACA,SACA,WACA,WACA,YACA,WACA,WACA,YACA,WACA,UACA,SACA,OACA,SACA,WACA,UACA,SACA,UACA,UACA,YACA,WACA,UACA,YACA,QACA,SACA,UACA,WACA,YACA,MACA,WACA,UACA,QACA,YACA,YACA,YACA,YACA,UACA,YACA,SACA,WACA,UACA,YACA,QACA,OACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,QACA,OACA,YACA,YACA,SACA,YACA,QACA,SACA,WACA,QACA,YACA,SACA,YACA,YACA,QACA,UACA,UACA,SACA,UACA,YACA,SACA,UACA,YACA,QACA,YACA,QACA,SACA,WACA,UACA,UACA,WACA,QACA,UACA,QACA,SACA,UACA,UACA,SACA,WACA,UACA,WACA,WACA,UACA,WACA,YACA,YACA,WACA,WACA,SACA,UACA,YACA,YACA,UACA,WACA,YACA,WACA,UACA,UACA,WACA,UACA,YACA,WACA,QACA,WACA,QACA,SACA,YACA,SACA,WACA,YACA,UACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,UACA,WACA,SACA,OACA,YACA,UACA,QACA,MACA,OACA,OACA,OACA,UACA,UACA,WACA,YACA,SACA,QACA,SACA,QACA,SACA,QACA,SACA,SACA,QACA,SACA,WACA,QACA,OACA,YACA,UACA,YACA,UACA,SACA,OACA,OACA,UACA,OACA,SACA,SACA,QACA,WACA,WACA,UACA,WACA,YACA,OACA,SACA,WACA,WACA,SACA,YACA,WACA,UACA,SACA,WACA,QACA,OACA,SACA,WACA,WACA,SACA,UACA,SACA,UACA,WACA,SACA,SACA,UACA,YACA,UACA,UACA,QACA,SACA,WACA,QACA,UACA,OACA,WACA,YACA,UACA,QACA,SACA,MACA,WACA,SACA,WACA,UACA,WACA,YACA,SACA,UACA,WACA,YACA,UACA,WACA,WACA,UACA,YACA,UACA,SACA,WACA,YACA,UACA,UACA,SACA,YACA,YACA,UACA,YACA,WACA,YACA,YACA,SACA,UACA,WACA,WACA,UACA,WACA,YACA,WACA,UACA,SACA,UACA,SACA,YACA,YACA,YACA,SACA,UACA,YACA,UACA,QACA,UACA,YACA,UACA,YACA,YACA,WACA,UACA,SACA,UACA,UACA,YACA,UACA,UACA,WACA,SACA,YACA,WACA,QACA,SACA,YACA,UACA,UACA,SACA,QACA,WACA,QACA,QACA,QACA,SACA,SACA,WACA,UACA,UACA,YACA,QACA,YACA,WACA,WACA,YACA,QACA,UACA,YACA,UACA,YACA,UACA,WACA,YACA,WACA,WACA,UACA,UACA,UACA,UACA,YACA,YACA,YACA,UACA,WACA,YACA,UACA,YACA,UACA,WACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,WACA,WACA,QACA,QACA,YACA,SACA,WACA,YACA,SACA,YACA,WACA,WACA,YACA,WACA,UACA,QACA,UACA,YACA,WACA,SACA,YACA,YACA,WACA,WACA,QACA,WACA,SACA,SACA,WACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,UACA,UACA,WACA,YACA,QACA,SACA,QACA,YACA,QACA,UACA,MACA,UACA,SACA,YACA,SACA,SACA,MACA,OACA,YACA,OACA,UACA,QACA,YACA,OACA,SACA,SACA,QACA,WACA,YACA,YACA,UACA,WACA,OACA,QACA,SACA,QACA,WACA,YACA,WACA,SACA,WACA,YACA,QACA,UACA,WACA,SACA,SACA,UACA,SACA,SACA,WACA,YACA,OACA,QACA,YACA,WACA,UACA,WACA,WACA,YACA,SACA,YACA,UACA,WACA,UACA,SACA,QACA,UACA,OACA,SACA,WACA,UACA,YACA,SACA,QACA,WACA,QACA,WACA,QACA,UACA,YACA,YACA,UACA,UACA,QACA,UACA,UACA,SACA,YACA,YACA,WACA,UACA,SACA,QACA,UACA,UACA,YACA,YACA,YACA,QACA,QACA,QACA,UACA,YACA,QACA,OACA,SACA,YACA,WACA,YACA,QACA,QACA,OACA,SACA,SACA,OACA,SACA,QACA,SACA,WACA,YACA,WACA,YACA,WACA,QACA,SACA,SACA,OACA,OACA,SACA,SACA,UACA,SACA,UACA,UACA,WACA,UACA,SACA,OACA,SACA,QACA,SACA,WACA,OACA,SACA,QACA,YACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,UACA,QACA,OACA,SACA,SACA,OACA,UACA,SACA,QACA,SACA,SACA,UACA,YACA,WACA,QACA,YACA,WACA,WACA,UACA,WACA,OACA,YACA,WACA,UACA,YACA,YACA,YACA,WACA,SACA,WACA,WACA,WACA,UACA,YACA,SACA,QACA,UACA,SACA,SACA,UACA,SACA,UACA,UACA,WACA,WACA,SACA,SACA,YACA,SACA,SACA,SACA,SACA,YACA,YACA,UACA,SACA,WACA,UACA,WACA,YACA,UACA,YACA,YACA,SACA,YACA,UACA,YACA,YACA,YACA,SACA,SACA,UACA,SACA,WACA,WACA,SACA,YACA,YACA,UACA,WACA,WACA,YACA,WACA,UACA,UACA,UACA,YACA,YACA,UACA,YACA,SACA,YACA,UACA,WACA,WACA,WACA,YACA,YACA,SACA,SACA,UACA,SACA,WACA,WACA,WACA,WACA,YACA,UACA,UACA,WACA,UACA,UACA,YACA,SACA,YACA,YACA,UACA,SACA,WACA,YACA,SACA,SACA,UACA,UACA,SACA,SACA,SACA,WACA,YACA,WACA,UACA,YACA,UACA,UACA,WACA,YACA,QACA,SACA,SACA,YACA,YACA,UACA,YACA,UACA,YACA,SACA,WACA,UACA,YACA,YACA,UACA,WACA,WACA,QACA,QACA,UACA,UACA,YACA,WACA,WACA,WACA,UACA,QACA,UACA,YACA,UACA,SACA,SACA,SACA,WACA,SACA,YACA,OACA,SACA,SACA,UACA,UACA,WACA,SACA,WACA,WACA,YACA,YACA,QACA,UACA,YACA,SACA,UACA,SACA,YACA,UACA,UACA,UACA,WACA,SACA,WACA,YACA,YACA,WACA,YACA,YACA,UACA,UACA,WACA,WACA,YACA,WACA,SACA,SACA,SACA,WACA,UACA,SACA,UACA,YACA,YACA,UACA,SACA,SACA,WACA,YACA,SACA,WACA,WACA,SACA,WACA,UACA,SACA,UACA,QACA,WACA,SACA,YACA,SACA,YACA,YACA,UACA,UACA,WACA,YACA,YACA,YACA,OACA,UACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,UACA,UACA,YACA,UACA,QACA,SACA,WACA,UACA,SACA,WACA,WACA,WACA,WACA,SACA,SACA,QACA,UACA,UACA,YACA,YACA,YACA,WACA,WACA,UACA,WACA,YACA,YACA,YACA,SACA,WACA,WACA,WACA,WACA,SACA,WACA,UACA,WACA,SACA,SACA,WACA,YACA,YACA,SACA,WACA,YACA,SACA,YACA,YACA,UACA,UACA,UACA,UACA,WACA,SACA,SACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YACA,YACA,QACA,SACA,UACA,SACA,UACA,UACA,WACA,QACA,SACA,UACA,UACA,UACA,SACA,UACA,YACA,WACA,WACA,UACA,YACA,YACA,SACA,YACA,SACA,WACA,UACA,YACA,UACA,UACA,WACA,YACA,SACA,SACA,WACA,YACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UACA,QACA,SACA,UACA,OACA,SACA,SACA,WACA,UACA,UACA,WACA,SACA,OACA,SACA,UACA,OACA,UACA,QACA,QACA,UACA,SACA,OACA,OACA,QACA,UACA,OACA,UACA,WACA,WACA,UACA,SACA,WACA,UACA,OACA,SACA,OACA,UACA,UACA,QACA,QACA,YACA,WACA,YACA,YACA,UACA,WACA,SACA,UACA,QACA,UACA,OACA,QACA,WACA,SACA,WACA,SACA,SACA,WACA,YACA,UACA,WACA,YACA,WACA,QACA,QACA,QACA,OACA,OACA,SACA,SACA,OACA,SACA,UACA,UACA,WACA,WACA,WACA,YACA,UACA,YACA,UACA,UACA,QACA,SACA,QACA,SACA,SACA,UACA,SACA,UACA,OACA,SACA,SACA,MACA,SACA,OACA,SACA,WACA,UACA,QACA,YACA,UACA,SACA,UACA,QACA,OACA,SACA,UACA,QACA,OACA,OACA,OACA,MACA,UACA,WACA,YACA,SACA,YACA,SACA,YACA,UACA,WACA,QACA,UACA,SACA,YACA,YACA,SACA,WACA,UACA,OACA,OACA,UACA,QACA,OACA,QACA,OACA,QACA,SACA,WACA,SACA,SACA,QACA,SACA,QACA,OACA,WACA,SACA,UACA,YACA,YACA,OACA,SACA,WACA,WACA,WACA,YACA,SACA,UACA,WACA,UACA,YACA,UACA,SACA,WACA,UACA,UACA,YACA,UACA,YACA,YACA,WACA,QACA,WACA,YACA,OACA,QACA,UACA,YACA,QACA,UACA,YACA,UACA,OACA,YACA,QACA,UACA,WACA,QACA,YACA,YACA,UACA,WACA,WACA,YACA,QACA,QACA,SACA,UACA,QACA,UACA,SACA,QACA,YACA,MACA,UACA,SACA,UACA,WACA,QACA,UACA,WACA,UACA,WACA,OACA,UACA,UACA,WACA,QACA,YACA,SACA,WACA,YACA,SACA,QACA,UACA,YACA,WACA,QACA,YACA,SACA,WACA,YACA,SACA,WACA,YACA,WACA,UACA,UACA,YACA,QACA,QACA,WACA,QACA,QACA,UACA,QACA,SACA,YACA,YACA,SACA,YACA,SACA,UACA,QACA,WACA,SACA,YACA,UACA,WACA,WACA,SACA,WACA,WACA,WACA,YACA,YACA,QACA,UACA,UACA,SACA,WACA,SACA,WACA,YACA,SACA,SACA,UACA,YACA,WACA,WACA,UACA,UACA,WACA,QACA,QACA,WACA,YACA,SACA,UACA,WACA,YACA,YACA,SACA,UACA,SACA,YACA,SACA,UACA,WACA,WACA,QACA,SACA,WACA,WACA,WACA,SACA,WACA,UACA,UACA,UACA,SACA,WACA,YACA,YACA,WACA,OACA,UACA,WACA,WACA,YACA,YACA,UACA,WACA,YACA,SACA,UACA,OACA,SACA,WACA,YACA,YACA,YACA,YACA,WACA,QACA,YACA,SACA,SACA,SACA,WACA,YACA,SACA,SACA,YACA,UACA,WACA,QACA,UACA,UACA,SACA,WACA,UACA,UACA,SACA,WACA,QACA,YACA,YACA,UACA,UACA,WACA,SACA,QACA,SACA,UACA,YACA,UACA,SACA,QACA,QACA,WACA,UACA,YACA,UACA,QACA,QACA,UACA,UACA,QACA,UACA,WACA,QACA,SACA,QACA,UACA,QACA,YACA,UACA,UACA,UACA,YACA,QACA,SACA,OACA,QACA,QACA,QACA,QACA,UACA,SACA,WACA,SACA,SACA,UACA,WACA,YACA,SACA,UACA,SACA,UACA,QACA,UACA,YACA,UACA,QACA,OACA,QACA,YACA,QACA,QACA,WACA,UACA,WACA,WACA,QACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,UACA,YACA,SACA,YACA,SACA,QACA,QACA,UACA,WACA,WACA,SACA,WACA,UACA,UACA,QACA,UACA,YACA,YACA,WACA,QACA,SACA,WACA,WACA,YACA,WACA,SACA,SACA,SACA,SACA,SACA,UACA,WACA,YACA,SACA,QACA,SACA,WACA,UACA,UACA,YACA,OACA,QACA,OACA,MACA,UACA,WACA,UACA,SACA,SACA,SACA,OACA,UACA,WACA,WACA,SACA,SACA,UACA,OACA,YACA,QACA,OACA,OACA,SACA,YACA,SACA,YACA,SACA,WACA,SACA,UACA,YACA,SACA,UACA,SACA,WACA,WACA,UACA,SACA,UACA,MACA,QACA,SACA,SACA,SACA,UACA,WACA,YACA,UACA,UACA,QACA,UACA,WACA,YACA,UACA,UACA,OACA,SACA,SACA,WACA,SACA,UACA,YACA,WACA,WACA,UACA,SACA,SACA,SACA,OACA,QACA,QACA,QACA,SACA,UACA,UACA,WACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,SACA,YACA,UACA,WACA,WACA,QACA,UACA,WACA,WACA,UACA,QACA,YACA,UACA,OACA,UACA,UACA,WACA,YACA,SACA,QACA,OACA,UACA,QACA,WACA,YACA,UACA,WACA,QACA,UACA,OACA,OACA,QACA,QACA,QACA,SACA,QACA,YACA,SACA,SACA,UACA,QACA,SACA,YACA,UACA,WACA,YACA,WACA,WACA,QACA,WACA,YACA,SACA,OACA,OACA,SACA,WACA,SACA,SACA,UACA,WACA,SACA,OACA,YACA,UACA,SACA,OACA,OACA,QACA,QACA,MACA,QACA,UACA,YACA,UACA,WACA,UACA,QACA,WACA,QACA,YACA,QACA,QACA,QACA,UACA,QACA,OACA,SACA,YACA,YACA,UACA,QACA,UACA,SACA,UACA,SACA,SACA,WACA,YACA,SACA,WACA,QACA,UACA,UACA,OACA,QACA,QACA,SACA,QACA,QACA,SACA,WACA,QACA,QACA,UACA,WACA,SACA,UACA,SACA,QACA,UACA,UACA,QACA,QACA,WACA,YACA,YACA,UACA,YACA,WACA,WACA,YACA,YACA,YACA,WACA,UACA,WACA,WACA,YACA,WACA,QACA,OACA,QACA,UACA,SACA,WACA,QACA,YACA,YACA,WACA,YACA,UACA,WACA,UACA,WACA,SACA,YACA,YACA,WACA,YACA,SACA,QACA,YACA,UACA,WACA,YACA,UACA,WACA,QACA,OACA,SACA,YACA,SACA,SACA,QACA,SACA,QACA,QACA,UACA,SACA,UACA,UACA,WACA,UACA,WACA,QACA,SACA,WACA,YACA,UACA,YACA,WACA,YACA,UACA,WACA,SACA,WACA,WACA,SACA,WACA,WACA,WACA,UACA,WACA,UACA,UACA,WACA,SACA,SACA,YACA,SACA,SACA,UACA,QACA,WACA,SACA,QACA,QACA,QACA,WACA,SACA,SACA,WACA,YACA,UACA,UACA,WACA,SACA,UACA,SACA,QACA,SACA,SACA,SACA,QACA,QACA,QACA,SACA,YACA,YACA,SACA,SACA,SACA,SACA,SACA,OACA,OACA,OACA,UACA,WACA,WACA,QACA,SACA,WACA,SACA,WACA,WACA,YACA,SACA,WACA,YACA,YACA,WACA,UACA,YACA,QACA,WACA,WACA,SACA,SACA,SACA,YACA,UACA,YACA,YACA,SACA,QACA,UACA,QACA,QACA,UACA,WACA,WACA,YACA,UACA,WACA,YACA,YACA,YACA,WACA,WACA,UACA,UACA,QACA,QACA,QACA,SACA,WACA,YACA,SACA,UACA,WACA,WACA,YACA,UACA,QACA,WACA,UACA,YACA,UACA,WACA,SACA,WACA,UACA,WACA,UACA,YACA,UACA,UACA,WACA,QACA,QACA,SACA,YACA,SACA,UACA,SACA,UACA,YACA,UACA,QACA,YACA,WACA,WACA,YACA,QACA,QACA,QACA,YACA,WACA,YACA,YACA,UACA,OACA,SACA,UACA,OACA,SACA,UACA,YACA,YACA,WACA,YACA,UACA,OACA,QACA,UACA,UACA,YACA,SACA,WACA,YACA,QACA,YACA,YACA,UACA,WACA,UACA,WACA,WACA,WACA,SACA,WACA,SACA,UACA,YACA,OACA,SACA,QACA,QACA,QACA,QACA,QACA,YACA,YACA,YACA,UACA,QACA,QACA,SACA,QACA,QACA,YACA,YACA,WACA,UACA,UACA,WACA,YACA,WACA,UACA,YACA,YACA,QACA,QACA,QACA,WACA,UACA,WACA,YACA,WACA,WACA,YACA,YACA,WACA,WACA,YACA,WACA,UACA,QACA,QACA,SACA,SACA,SACA,WACA,YACA,QACA,SACA,UACA,SACA,WACA,SACA,SACA,SACA,SACA,WACA,SACA,WACA,SACA,SACA,WACA,YACA,WACA,YACA,SACA,YACA,UACA,WACA,QACA,SACA,QACA,UACA,UACA,UACA,WACA,SACA,QACA,UACA,UACA,SACA,QACA,UACA,WACA,SACA,UACA,YACA,QACA,QACA,UACA,UACA,WACA,QACA,SACA,WACA,SACA,UACA,YACA,UACA,WACA,SACA,QACA,YACA,YACA,YACA,UACA,WACA,WACA,WACA,YACA,UACA,WACA,SACA,WACA,UACA,YACA,WACA,YACA,YACA,WACA,SACA,UACA,WACA,YACA,YACA,YACA,UACA,YACA,YACA,UACA,UACA,WACA,YACA,YACA,UACA,WACA,SACA,WACA,WACA,UACA,SACA,SACA,YACA,UACA,YACA,OACA,UACA,SACA,SACA,OACA,WACA,YACA,UACA,SACA,YACA,WACA,QACA,UACA,QACA,WACA,WACA,WACA,SACA,UACA,UACA,UACA,SACA,OACA,SACA,WACA,YACA,SACA,YACA,YACA,YACA,WACA,WACA,WACA,WACA,YACA,YACA,SACA,WACA,SACA,UACA,YACA,UACA,YACA,SACA,WACA,UACA,YACA,YACA,SACA,UACA,WACA,UACA,UACA,UACA,UACA,WACA,UACA,YACA,YACA,WACA,SACA,WACA,UACA,YACA,WACA,QACA,UACA,UACA,WACA,YACA,YACA,OACA,YACA,UACA,YACA,OACA,WACA,QACA,OACA,QACA,QACA,QACA,QACA,QACA,SACA,UACA,UACA,YACA,YACA,UACA,WACA,WACA,WACA,UACA,WACA,QACA,QACA,SACA,SACA,UACA,UACA,QACA,SACA,QACA,QACA,QACA,WACA,WACA,YACA,WACA,UACA,UACA,WACA,UACA,WACA,WACA,YACA,YACA,QACA,SACA,UACA,UACA,QACA,WACA,SACA,SACA,YACA,UACA,YACA,UACA,SACA,WACA,QACA,OACA,UACA,WACA,UACA,UACA,WACA,UACA,YACA,MACA,UACA,OACA,SACA,SACA,WACA,OACA,QACA,SACA,WACA,QACA,SACA,OACA,SACA,UACA,UACA,UACA,WACA,UACA,WACA,WACA,UACA,UACA,OACA,YACA,SACA,SACA,UACA,QACA,SACA,SACA,WACA,OACA,SACA,QACA,YACA,UACA,QACA,WACA,SACA,WACA,SACA,QACA,SACA,QACA,OACA,OACA,UACA,YACA,OACA,QACA,QACA,WACA,WACA,UACA,UACA,YACA,QACA,SACA,WACA,UACA,UACA,YACA,WACA,WACA,QACA,UACA,QACA,QACA,SACA,UACA,WACA,WACA,YACA,YACA,UACA,WACA,SACA,QACA,QACA,QACA,WACA,SACA,SACA,WACA,YACA,SACA,SACA,SACA,WACA,SACA,YACA,SACA,WACA,YACA,YACA,UACA,WACA,OACA,QACA,WACA,WACA,OACA,YACA,UACA,QACA,QACA,QACA,SACA,WACA,UACA,OACA,QACA,UACA,UACA,YACA,YACA,WACA,UACA,OACA,SACA,OACA,OACA,QACA,SACA,UACA,YACA,UACA,SACA,WACA,SACA,SACA,WACA,SACA,WACA,OACA,UACA,OACA,SACA,SACA,SACA,UACA,YACA,SACA,SACA,SACA,QACA,UACA,QACA,WACA,UACA,QACA,UACA,YACA,UACA,UACA,WACA,YACA,QACA,UACA,SACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,WACA,UACA,YACA,UACA,UACA,WACA,QACA,QACA,SACA,WACA,WACA,OACA,YACA,WACA,YACA,UACA,QACA,SACA,OACA,UACA,UACA,YACA,SACA,SACA,QACA,WACA,SACA,QACA,WACA,YACA,WACA,UACA,YACA,UACA,UACA,WACA,WACA,WACA,UACA,YACA,SACA,WACA,WACA,UACA,QACA,SACA,YACA,WACA,UACA,YACA,UACA,WACA,WACA,UACA,OACA,SACA,WACA,UACA,UACA,UACA,WACA,WACA,SACA,WACA,UACA,UACA,YACA,SACA,WACA,QACA,SACA,QACA,QACA,UACA,QACA,SACA,YACA,UACA,WACA,WACA,YACA,QACA,MACA,QACA,WACA,UACA,UACA,UACA,MACA,UACA,QACA,SACA,WACA,QACA,SACA,UACA,WACA,WACA,YACA,OACA,SACA,UACA,SACA,SACA,OACA,QACA,OACA,MACA,QACA,QACA,QACA,WACA,SACA,YACA,SACA,QACA,QACA,UACA,YACA,OACA,WACA,QACA,QACA,QACA,YACA,UACA,UACA,WACA,SACA,SACA,UACA,SACA,QACA,OACA,QACA,WACA,YACA,QACA,YACA,WACA,SACA,YACA,SACA,YACA,YACA,WACA,UACA,YACA,YACA,YACA,YACA,YACA,UACA,UACA,UACA,YACA,WACA,SACA,SACA,WACA,WACA,YACA,YACA,UACA,WACA,YACA,UACA,YACA,WACA,WACA,YACA,WACA,WACA,WACA,UACA,WACA,WACA,YACA,UACA,YACA,YACA,UACA,UACA,SACA,YACA,YACA,UACA,QACA,SACA,UACA,SACA,YACA,WACA,WACA,YACA,WACA,WACA,WACA,SACA,YACA,YACA,WACA,UACA,UACA,UACA,UACA,YACA,UACA,YACA,WACA,QACA,YACA,UACA,YACA,SACA,YACA,YACA,WACA,WACA,YACA,YACA,WACA,WACA,YACA,WACA,YACA,YACA,UACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,YACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,UACA,SACA,YACA,UACA,YACA,WACA,UACA,WACA,UACA,SACA,WACA,SACA,YACA,UACA,WACA,YACA,WACA,YACA,WACA,UACA,YACA,SACA,YACA,YACA,YACA,SACA,WACA,UACA,YACA,UACA,WACA,WACA,YACA,YACA,UACA,WACA,YACA,SACA,YACA,WACA,WACA,YACA,WACA,WACA,WACA,WACA,SACA,UACA,WACA,YACA,YACA,WACA,YACA,UACA,WACA,YACA,UACA,YACA,WACA,YACA,WACA,UACA,YACA,SACA,SACA,UACA,WACA,UACA,UACA,YACA,YACA,QACA,YACA,YACA,YACA,YACA,YACA,QACA,WACA,YACA,SACA,WACA,OACA,YACA,WACA,WACA,UACA,SACA,YACA,YACA,UACA,UACA,UACA,WACA,WACA,YACA,UACA,SACA,YACA,YACA,YACA,YACA,UACA,WACA,WACA,QACA,YACA,WACA,WACA,WACA,YACA,YACA,UACA,WACA,WACA,YACA,UACA,SACA,YACA,WACA,WACA,WACA,WACA,YACA,YACA,YACA,YACA,UACA,WACA,UACA,YACA,UACA,WACA,YACA,UACA,YACA,WACA,UACA,YACA,YACA,WACA,YACA,SACA,WACA,SACA,YACA,WACA,UACA,WACA,WACA,YACA,WACA,YACA,YACA,YACA,YACA,WACA,SACA,YACA,WACA,UACA,WACA,UACA,YACA,YACA,SACA,SACA,YACA,YACA,YACA,WACA,SACA,YACA,YACA,WACA,SACA,YACA,YACA,UACA,SACA,YACA,SACA,WACA,WACA,SACA,SACA,WACA,UACA,WACA,YACA,YACA,UACA,WACA,WACA,YACA,WACA,WACA,SACA,WACA,YACA,SACA,YACA,YACA,WACA,WACA,WACA,YACA,YACA,YACA,WACA,YACA,WACA,WACA,SACA,WACA,WACA,SACA,WACA,WACA,YACA,WACA,WACA,YACA,YACA,WACA,YACA,YACA,WACA,YACA,UACA,YACA,YACA,WACA,WACA,WACA,SACA,UACA,WACA,YACA,UACA,UACA,YACA,WACA,UACA,WACA,WACA,SACA,QACA,QACA,UACA,WACA,WACA,YACA,SACA,YACA,YACA,YACA,YACA,UACA,YACA,SACA,UACA,WACA,UACA,UACA,WACA,SACA,UACA,WACA,WACA,YACA,WACA,YACA,WACA,WACA,YACA,UACA,WACA,YACA,SACA,WACA,YACA,UACA,QACA,YACA,SACA,WACA,YACA,SACA,UACA,YACA,YACA,YACA,SACA,YACA,WACA,UACA,UACA,YACA,YACA,QACA,SACA,UACA,WACA,YACA,SACA,UACA,UACA,WACA,SACA,SACA,SACA,WACA,YACA,SACA,OACA,QACA,UACA,WACA,UACA,SACA,SACA,UACA,SACA,UACA,WACA,UACA,UACA,WACA,WACA,UACA,SACA,UACA,SACA,WACA,SACA,SACA,UACA,QACA,SACA,WACA,UACA,SACA,SACA,YACA,UACA,SACA,QACA,UACA,OACA,YACA,OACA,QACA,QACA,UACA,UACA,UACA,SACA,SACA,QACA,UACA,SACA,SACA,WACA,WACA,WACA,YACA,UACA,YACA,UACA,QACA,SACA,SACA,YACA,QACA,UACA,SACA,SACA,WACA,UACA,YACA,WACA,WACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,WACA,SACA,WACA,OACA,QACA,SACA,YACA,SACA,WACA,SACA,WACA,UACA,SACA,YACA,WACA,WACA,YACA,UACA,QACA,QACA,YACA,WACA,UACA,UACA,SACA,QACA,UACA,SACA,YACA,WACA,UACA,OACA,SACA,OACA,UACA,OACA,WACA,YACA,SACA,QACA,OACA,WACA,UACA,QACA,WACA,SACA,UACA,WACA,YACA,WACA,UACA,UACA,YACA,WACA,UACA,UACA,YACA,WACA,SACA,SACA,QACA,QACA,UACA,WACA,QACA,OACA,YACA,UACA,WACA,UACA,UACA,SACA,WACA,UACA,QACA,QACA,WACA,WACA,UACA,WACA,YACA,UACA,YACA,QACA,WACA,WACA,UACA,WACA,QACA,UACA,OACA,WACA,SACA,UACA,UACA,QACA,SACA,UACA,QACA,QACA,SACA,YACA,MACA,QACA,SACA,QACA,QACA,QACA,SACA,QACA,OACA,SACA,OACA,UACA,SACA,SACA,QACA,OACA,UACA,SACA,UACA,SACA,WACA,YACA,YACA,WACA,YACA,UACA,SACA,SACA,YACA,UACA,UACA,WACA,YACA,UACA,OACA,UACA,QACA,QACA,WACA,SACA,OACA,WACA,SACA,OACA,QACA,QACA,WACA,QACA,YACA,SACA,QACA,WACA,UACA,QACA,WACA,UACA,WACA,SACA,MACA,OACA,SACA,QACA,SACA,QACA,QACA,YACA,UACA,OACA,OACA,YACA,WACA,UACA,SACA,WACA,WACA,WACA,WACA,SACA,WACA,SACA,YACA,UACA,SACA,YACA,OACA,OACA,QACA,UACA,OACA,OACA,UACA,SACA,WACA,SACA,OACA,QACA,WACA,SACA,OACA,SACA,OACA,OACA,WACA,QACA,UACA,SACA,SACA,WACA,SACA,MACA,OACA,YACA,YACA,YACA,YACA,YACA,UACA,OACA,OACA,SACA,OACA,QACA,OACA,OACA,UACA,UACA,YACA,QACA,YACA,YACA,QACA,QACA,QACA,MACA,UACA,QACA,SACA,WACA,UACA,WACA,SACA,UACA,UACA,UACA,UACA,QACA,UACA,UACA,YACA,UACA,WACA,UACA,YACA,UACA,OACA,QACA,QACA,MACA,UACA,UACA,OACA,OACA,OACA,WACA,WACA,SACA,WACA,QACA,UACA,OACA,MACA,YACA,UACA,QACA,MACA,SACA,QACA,QACA,OACA,SACA,SACA,OACA,QACA,MACA,UACA,QACA,MACA,WACA,OACA,YACA,QACA,YACA,UACA,UACA,QACA,OACA,MACA,SACA,SACA,OACA,SACA,YACA,YACA,UACA,k9CCjmPJ,IAAAS,EAAA18I,EAAA,KAEA2f,EAAA3f,EAAA,IAOAoX,EAAA,WAUI,SAAAA,EAAoBuN,EAAgC6pC,EACxCmuF,GADQl6I,KAAAkiB,aAAgCliB,KAAA+rD,iBACxC/rD,KAAAk6I,uBAoGhB,OAlGIvlI,EAAAnY,UAAA29I,eAAA,WACI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","file":"app/main.d8139e017ad9a069b29d.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([744,2]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export abstract class I18nService {\n locale: string;\n supportedTranslationLocales: string[];\n translationLocale: string;\n collator: Intl.Collator;\n localeNames: Map;\n t: (id: string, p1?: string, p2?: string, p3?: string) => string;\n translate: (id: string, p1?: string, p2?: string, p3?: string) => string;\n}\n","import { DeviceType } from '../enums/deviceType';\n\nexport abstract class PlatformUtilsService {\n identityClientId: string;\n getDevice: () => DeviceType;\n getDeviceString: () => string;\n isFirefox: () => boolean;\n isChrome: () => boolean;\n isEdge: () => boolean;\n isOpera: () => boolean;\n isVivaldi: () => boolean;\n isSafari: () => boolean;\n isIE: () => boolean;\n isMacAppStore: () => boolean;\n analyticsId: () => string;\n isViewOpen: () => Promise;\n /**\n * @deprecated This only ever returns null. Pull from your platform's storage using ConstantsService.vaultTimeoutKey\n */\n lockTimeout: () => number;\n launchUri: (uri: string, options?: any) => void;\n saveFile: (win: Window, blobData: any, blobOptions: any, fileName: string) => void;\n getApplicationVersion: () => string;\n supportsU2f: (win: Window) => boolean;\n supportsDuo: () => boolean;\n showToast: (type: 'error' | 'success' | 'warning' | 'info', title: string, text: string | string[],\n options?: any) => void;\n showDialog: (body: string, title?: string, confirmText?: string, cancelText?: string,\n type?: string, bodyIsHtml?: boolean) => Promise;\n eventTrack: (action: string, label?: string, options?: any) => void;\n isDev: () => boolean;\n isSelfHost: () => boolean;\n copyToClipboard: (text: string, options?: any) => void;\n readFromClipboard: (options?: any) => Promise;\n supportsBiometric: () => Promise;\n authenticateBiometric: () => Promise;\n getDefaultSystemTheme: () => 'light' | 'dark';\n onDefaultSystemThemeChange: (callback: ((theme: 'light' | 'dark') => unknown)) => unknown;\n supportsSecureStorage: () => boolean;\n}\n","import { PolicyType } from '../enums/policyType';\n\nimport { EnvironmentUrls } from '../models/domain/environmentUrls';\n\nimport { BitPayInvoiceRequest } from '../models/request/bitPayInvoiceRequest';\nimport { CipherBulkDeleteRequest } from '../models/request/cipherBulkDeleteRequest';\nimport { CipherBulkMoveRequest } from '../models/request/cipherBulkMoveRequest';\nimport { CipherBulkRestoreRequest } from '../models/request/cipherBulkRestoreRequest';\nimport { CipherBulkShareRequest } from '../models/request/cipherBulkShareRequest';\nimport { CipherCollectionsRequest } from '../models/request/cipherCollectionsRequest';\nimport { CipherCreateRequest } from '../models/request/cipherCreateRequest';\nimport { CipherRequest } from '../models/request/cipherRequest';\nimport { CipherShareRequest } from '../models/request/cipherShareRequest';\nimport { CollectionRequest } from '../models/request/collectionRequest';\nimport { DeleteRecoverRequest } from '../models/request/deleteRecoverRequest';\nimport { EmailRequest } from '../models/request/emailRequest';\nimport { EmailTokenRequest } from '../models/request/emailTokenRequest';\nimport { EmergencyAccessAcceptRequest } from '../models/request/emergencyAccessAcceptRequest';\nimport { EmergencyAccessConfirmRequest } from '../models/request/emergencyAccessConfirmRequest';\nimport { EmergencyAccessInviteRequest } from '../models/request/emergencyAccessInviteRequest';\nimport { EmergencyAccessPasswordRequest } from '../models/request/emergencyAccessPasswordRequest';\nimport { EmergencyAccessUpdateRequest } from '../models/request/emergencyAccessUpdateRequest';\nimport { EventRequest } from '../models/request/eventRequest';\nimport { FolderRequest } from '../models/request/folderRequest';\nimport { GroupRequest } from '../models/request/groupRequest';\nimport { IapCheckRequest } from '../models/request/iapCheckRequest';\nimport { ImportCiphersRequest } from '../models/request/importCiphersRequest';\nimport { ImportDirectoryRequest } from '../models/request/importDirectoryRequest';\nimport { ImportOrganizationCiphersRequest } from '../models/request/importOrganizationCiphersRequest';\nimport { KdfRequest } from '../models/request/kdfRequest';\nimport { KeysRequest } from '../models/request/keysRequest';\nimport { OrganizationCreateRequest } from '../models/request/organizationCreateRequest';\nimport { OrganizationTaxInfoUpdateRequest } from '../models/request/organizationTaxInfoUpdateRequest';\nimport { OrganizationUpdateRequest } from '../models/request/organizationUpdateRequest';\nimport { OrganizationUpgradeRequest } from '../models/request/organizationUpgradeRequest';\nimport { OrganizationUserAcceptRequest } from '../models/request/organizationUserAcceptRequest';\nimport { OrganizationUserConfirmRequest } from '../models/request/organizationUserConfirmRequest';\nimport { OrganizationUserInviteRequest } from '../models/request/organizationUserInviteRequest';\nimport { OrganizationUserUpdateGroupsRequest } from '../models/request/organizationUserUpdateGroupsRequest';\nimport { OrganizationUserUpdateRequest } from '../models/request/organizationUserUpdateRequest';\nimport { PasswordHintRequest } from '../models/request/passwordHintRequest';\nimport { PasswordRequest } from '../models/request/passwordRequest';\nimport { PasswordVerificationRequest } from '../models/request/passwordVerificationRequest';\nimport { PaymentRequest } from '../models/request/paymentRequest';\nimport { PolicyRequest } from '../models/request/policyRequest';\nimport { PreloginRequest } from '../models/request/preloginRequest';\nimport { RegisterRequest } from '../models/request/registerRequest';\nimport { SeatRequest } from '../models/request/seatRequest';\nimport { SelectionReadOnlyRequest } from '../models/request/selectionReadOnlyRequest';\nimport { SendAccessRequest } from '../models/request/sendAccessRequest';\nimport { SendRequest } from '../models/request/sendRequest';\nimport { SetPasswordRequest } from '../models/request/setPasswordRequest';\nimport { StorageRequest } from '../models/request/storageRequest';\nimport { TaxInfoUpdateRequest } from '../models/request/taxInfoUpdateRequest';\nimport { TokenRequest } from '../models/request/tokenRequest';\nimport { TwoFactorEmailRequest } from '../models/request/twoFactorEmailRequest';\nimport { TwoFactorProviderRequest } from '../models/request/twoFactorProviderRequest';\nimport { TwoFactorRecoveryRequest } from '../models/request/twoFactorRecoveryRequest';\nimport { UpdateDomainsRequest } from '../models/request/updateDomainsRequest';\nimport { UpdateKeyRequest } from '../models/request/updateKeyRequest';\nimport { UpdateProfileRequest } from '../models/request/updateProfileRequest';\nimport { UpdateTwoFactorAuthenticatorRequest } from '../models/request/updateTwoFactorAuthenticatorRequest';\nimport { UpdateTwoFactorDuoRequest } from '../models/request/updateTwoFactorDuoRequest';\nimport { UpdateTwoFactorEmailRequest } from '../models/request/updateTwoFactorEmailRequest';\nimport { UpdateTwoFactorU2fDeleteRequest } from '../models/request/updateTwoFactorU2fDeleteRequest';\nimport { UpdateTwoFactorU2fRequest } from '../models/request/updateTwoFactorU2fRequest';\nimport { UpdateTwoFactorYubioOtpRequest } from '../models/request/updateTwoFactorYubioOtpRequest';\nimport { VerifyBankRequest } from '../models/request/verifyBankRequest';\nimport { VerifyDeleteRecoverRequest } from '../models/request/verifyDeleteRecoverRequest';\nimport { VerifyEmailRequest } from '../models/request/verifyEmailRequest';\n\nimport { ApiKeyResponse } from '../models/response/apiKeyResponse';\nimport { BillingResponse } from '../models/response/billingResponse';\nimport { BreachAccountResponse } from '../models/response/breachAccountResponse';\nimport { CipherResponse } from '../models/response/cipherResponse';\nimport {\n CollectionGroupDetailsResponse,\n CollectionResponse,\n} from '../models/response/collectionResponse';\nimport { DomainsResponse } from '../models/response/domainsResponse';\nimport {\n EmergencyAccessGranteeDetailsResponse,\n EmergencyAccessGrantorDetailsResponse,\n EmergencyAccessTakeoverResponse,\n EmergencyAccessViewResponse\n} from '../models/response/emergencyAccessResponse';\nimport { EventResponse } from '../models/response/eventResponse';\nimport { FolderResponse } from '../models/response/folderResponse';\nimport {\n GroupDetailsResponse,\n GroupResponse,\n} from '../models/response/groupResponse';\nimport { IdentityTokenResponse } from '../models/response/identityTokenResponse';\nimport { IdentityTwoFactorResponse } from '../models/response/identityTwoFactorResponse';\nimport { ListResponse } from '../models/response/listResponse';\nimport { OrganizationResponse } from '../models/response/organizationResponse';\nimport { OrganizationSubscriptionResponse } from '../models/response/organizationSubscriptionResponse';\nimport {\n OrganizationUserDetailsResponse,\n OrganizationUserUserDetailsResponse,\n} from '../models/response/organizationUserResponse';\nimport { PaymentResponse } from '../models/response/paymentResponse';\nimport { PlanResponse } from '../models/response/planResponse';\nimport { PolicyResponse } from '../models/response/policyResponse';\nimport { PreloginResponse } from '../models/response/preloginResponse';\nimport { ProfileResponse } from '../models/response/profileResponse';\nimport { SelectionReadOnlyResponse } from '../models/response/selectionReadOnlyResponse';\nimport { SendAccessResponse } from '../models/response/sendAccessResponse';\nimport { SendFileDownloadDataResponse } from '../models/response/sendFileDownloadDataResponse';\nimport { SendResponse } from '../models/response/sendResponse';\nimport { SubscriptionResponse } from '../models/response/subscriptionResponse';\nimport { SyncResponse } from '../models/response/syncResponse';\nimport { TaxInfoResponse } from '../models/response/taxInfoResponse';\nimport { TaxRateResponse } from '../models/response/taxRateResponse';\nimport { TwoFactorAuthenticatorResponse } from '../models/response/twoFactorAuthenticatorResponse';\nimport { TwoFactorDuoResponse } from '../models/response/twoFactorDuoResponse';\nimport { TwoFactorEmailResponse } from '../models/response/twoFactorEmailResponse';\nimport { TwoFactorProviderResponse } from '../models/response/twoFactorProviderResponse';\nimport { TwoFactorRecoverResponse } from '../models/response/twoFactorRescoverResponse';\nimport {\n ChallengeResponse,\n TwoFactorU2fResponse,\n} from '../models/response/twoFactorU2fResponse';\nimport { TwoFactorYubiKeyResponse } from '../models/response/twoFactorYubiKeyResponse';\nimport { UserKeyResponse } from '../models/response/userKeyResponse';\n\nimport { SendAccessView } from '../models/view/sendAccessView';\n\nexport abstract class ApiService {\n urlsSet: boolean;\n apiBaseUrl: string;\n identityBaseUrl: string;\n eventsBaseUrl: string;\n\n setUrls: (urls: EnvironmentUrls) => void;\n postIdentityToken: (request: TokenRequest) => Promise;\n refreshIdentityToken: () => Promise;\n\n getProfile: () => Promise;\n getUserBilling: () => Promise;\n getUserSubscription: () => Promise;\n getTaxInfo: () => Promise;\n putProfile: (request: UpdateProfileRequest) => Promise;\n putTaxInfo: (request: TaxInfoUpdateRequest) => Promise;\n postPrelogin: (request: PreloginRequest) => Promise;\n postEmailToken: (request: EmailTokenRequest) => Promise;\n postEmail: (request: EmailRequest) => Promise;\n postPassword: (request: PasswordRequest) => Promise;\n setPassword: (request: SetPasswordRequest) => Promise;\n postSecurityStamp: (request: PasswordVerificationRequest) => Promise;\n deleteAccount: (request: PasswordVerificationRequest) => Promise;\n getAccountRevisionDate: () => Promise;\n postPasswordHint: (request: PasswordHintRequest) => Promise;\n postRegister: (request: RegisterRequest) => Promise;\n postPremium: (data: FormData) => Promise;\n postIapCheck: (request: IapCheckRequest) => Promise;\n postReinstatePremium: () => Promise;\n postCancelPremium: () => Promise;\n postAccountStorage: (request: StorageRequest) => Promise;\n postAccountPayment: (request: PaymentRequest) => Promise;\n postAccountLicense: (data: FormData) => Promise;\n postAccountKey: (request: UpdateKeyRequest) => Promise;\n postAccountKeys: (request: KeysRequest) => Promise;\n postAccountVerifyEmail: () => Promise;\n postAccountVerifyEmailToken: (request: VerifyEmailRequest) => Promise;\n postAccountVerifyPassword: (request: PasswordVerificationRequest) => Promise;\n postAccountRecoverDelete: (request: DeleteRecoverRequest) => Promise;\n postAccountRecoverDeleteToken: (request: VerifyDeleteRecoverRequest) => Promise;\n postAccountKdf: (request: KdfRequest) => Promise;\n getEnterprisePortalSignInToken: () => Promise;\n postUserApiKey: (id: string, request: PasswordVerificationRequest) => Promise;\n postUserRotateApiKey: (id: string, request: PasswordVerificationRequest) => Promise;\n\n getFolder: (id: string) => Promise;\n postFolder: (request: FolderRequest) => Promise;\n putFolder: (id: string, request: FolderRequest) => Promise;\n deleteFolder: (id: string) => Promise;\n\n getSend: (id: string) => Promise;\n postSendAccess: (id: string, request: SendAccessRequest, apiUrl?: string) => Promise;\n getSends: () => Promise>;\n postSend: (request: SendRequest) => Promise;\n postSendFile: (data: FormData) => Promise;\n putSend: (id: string, request: SendRequest) => Promise;\n putSendRemovePassword: (id: string) => Promise;\n deleteSend: (id: string) => Promise;\n getSendFileDownloadData: (send: SendAccessView, request: SendAccessRequest) => Promise;\n\n getCipher: (id: string) => Promise;\n getCipherAdmin: (id: string) => Promise;\n getCiphersOrganization: (organizationId: string) => Promise>;\n postCipher: (request: CipherRequest) => Promise;\n postCipherCreate: (request: CipherCreateRequest) => Promise;\n postCipherAdmin: (request: CipherCreateRequest) => Promise;\n putCipher: (id: string, request: CipherRequest) => Promise;\n putCipherAdmin: (id: string, request: CipherRequest) => Promise;\n deleteCipher: (id: string) => Promise;\n deleteCipherAdmin: (id: string) => Promise;\n deleteManyCiphers: (request: CipherBulkDeleteRequest) => Promise;\n deleteManyCiphersAdmin: (request: CipherBulkDeleteRequest) => Promise;\n putMoveCiphers: (request: CipherBulkMoveRequest) => Promise;\n putShareCipher: (id: string, request: CipherShareRequest) => Promise;\n putShareCiphers: (request: CipherBulkShareRequest) => Promise;\n putCipherCollections: (id: string, request: CipherCollectionsRequest) => Promise;\n putCipherCollectionsAdmin: (id: string, request: CipherCollectionsRequest) => Promise;\n postPurgeCiphers: (request: PasswordVerificationRequest, organizationId?: string) => Promise;\n postImportCiphers: (request: ImportCiphersRequest) => Promise;\n postImportOrganizationCiphers: (organizationId: string, request: ImportOrganizationCiphersRequest) => Promise;\n putDeleteCipher: (id: string) => Promise;\n putDeleteCipherAdmin: (id: string) => Promise;\n putDeleteManyCiphers: (request: CipherBulkDeleteRequest) => Promise;\n putDeleteManyCiphersAdmin: (request: CipherBulkDeleteRequest) => Promise;\n putRestoreCipher: (id: string) => Promise;\n putRestoreCipherAdmin: (id: string) => Promise;\n putRestoreManyCiphers: (request: CipherBulkRestoreRequest) => Promise>;\n\n postCipherAttachment: (id: string, data: FormData) => Promise;\n postCipherAttachmentAdmin: (id: string, data: FormData) => Promise;\n deleteCipherAttachment: (id: string, attachmentId: string) => Promise;\n deleteCipherAttachmentAdmin: (id: string, attachmentId: string) => Promise;\n postShareCipherAttachment: (id: string, attachmentId: string, data: FormData,\n organizationId: string) => Promise;\n\n getCollectionDetails: (organizationId: string, id: string) => Promise;\n getUserCollections: () => Promise>;\n getCollections: (organizationId: string) => Promise>;\n getCollectionUsers: (organizationId: string, id: string) => Promise;\n postCollection: (organizationId: string, request: CollectionRequest) => Promise;\n putCollectionUsers: (organizationId: string, id: string, request: SelectionReadOnlyRequest[]) => Promise;\n putCollection: (organizationId: string, id: string, request: CollectionRequest) => Promise;\n deleteCollection: (organizationId: string, id: string) => Promise;\n deleteCollectionUser: (organizationId: string, id: string, organizationUserId: string) => Promise;\n\n getGroupDetails: (organizationId: string, id: string) => Promise;\n getGroups: (organizationId: string) => Promise>;\n getGroupUsers: (organizationId: string, id: string) => Promise;\n postGroup: (organizationId: string, request: GroupRequest) => Promise;\n putGroup: (organizationId: string, id: string, request: GroupRequest) => Promise;\n putGroupUsers: (organizationId: string, id: string, request: string[]) => Promise;\n deleteGroup: (organizationId: string, id: string) => Promise;\n deleteGroupUser: (organizationId: string, id: string, organizationUserId: string) => Promise;\n\n getPolicy: (organizationId: string, type: PolicyType) => Promise;\n getPolicies: (organizationId: string) => Promise>;\n getPoliciesByToken: (organizationId: string, token: string, email: string, organizationUserId: string) =>\n Promise>;\n putPolicy: (organizationId: string, type: PolicyType, request: PolicyRequest) => Promise;\n\n getOrganizationUser: (organizationId: string, id: string) => Promise;\n getOrganizationUserGroups: (organizationId: string, id: string) => Promise;\n getOrganizationUsers: (organizationId: string) => Promise>;\n postOrganizationUserInvite: (organizationId: string, request: OrganizationUserInviteRequest) => Promise;\n postOrganizationUserReinvite: (organizationId: string, id: string) => Promise;\n postOrganizationUserAccept: (organizationId: string, id: string,\n request: OrganizationUserAcceptRequest) => Promise;\n postOrganizationUserConfirm: (organizationId: string, id: string,\n request: OrganizationUserConfirmRequest) => Promise;\n putOrganizationUser: (organizationId: string, id: string, request: OrganizationUserUpdateRequest) => Promise;\n putOrganizationUserGroups: (organizationId: string, id: string,\n request: OrganizationUserUpdateGroupsRequest) => Promise;\n deleteOrganizationUser: (organizationId: string, id: string) => Promise;\n\n getSync: () => Promise;\n postImportDirectory: (organizationId: string, request: ImportDirectoryRequest) => Promise;\n\n getSettingsDomains: () => Promise;\n putSettingsDomains: (request: UpdateDomainsRequest) => Promise;\n\n getTwoFactorProviders: () => Promise>;\n getTwoFactorOrganizationProviders: (organizationId: string) => Promise>;\n getTwoFactorAuthenticator: (request: PasswordVerificationRequest) => Promise;\n getTwoFactorEmail: (request: PasswordVerificationRequest) => Promise;\n getTwoFactorDuo: (request: PasswordVerificationRequest) => Promise;\n getTwoFactorOrganizationDuo: (organizationId: string,\n request: PasswordVerificationRequest) => Promise;\n getTwoFactorYubiKey: (request: PasswordVerificationRequest) => Promise;\n getTwoFactorU2f: (request: PasswordVerificationRequest) => Promise;\n getTwoFactorU2fChallenge: (request: PasswordVerificationRequest) => Promise;\n getTwoFactorRecover: (request: PasswordVerificationRequest) => Promise;\n putTwoFactorAuthenticator: (\n request: UpdateTwoFactorAuthenticatorRequest) => Promise;\n putTwoFactorEmail: (request: UpdateTwoFactorEmailRequest) => Promise;\n putTwoFactorDuo: (request: UpdateTwoFactorDuoRequest) => Promise;\n putTwoFactorOrganizationDuo: (organizationId: string,\n request: UpdateTwoFactorDuoRequest) => Promise;\n putTwoFactorYubiKey: (request: UpdateTwoFactorYubioOtpRequest) => Promise;\n putTwoFactorU2f: (request: UpdateTwoFactorU2fRequest) => Promise;\n deleteTwoFactorU2f: (request: UpdateTwoFactorU2fDeleteRequest) => Promise;\n putTwoFactorDisable: (request: TwoFactorProviderRequest) => Promise;\n putTwoFactorOrganizationDisable: (organizationId: string,\n request: TwoFactorProviderRequest) => Promise;\n postTwoFactorRecover: (request: TwoFactorRecoveryRequest) => Promise;\n postTwoFactorEmailSetup: (request: TwoFactorEmailRequest) => Promise;\n postTwoFactorEmail: (request: TwoFactorEmailRequest) => Promise;\n\n getEmergencyAccessTrusted: () => Promise>;\n getEmergencyAccessGranted: () => Promise>;\n getEmergencyAccess: (id: string) => Promise;\n getEmergencyGrantorPolicies: (id: string) => Promise>;\n putEmergencyAccess: (id: string, request: EmergencyAccessUpdateRequest) => Promise;\n deleteEmergencyAccess: (id: string) => Promise;\n postEmergencyAccessInvite: (request: EmergencyAccessInviteRequest) => Promise;\n postEmergencyAccessReinvite: (id: string) => Promise;\n postEmergencyAccessAccept: (id: string, request: EmergencyAccessAcceptRequest) => Promise;\n postEmergencyAccessConfirm: (id: string, request: EmergencyAccessConfirmRequest) => Promise;\n postEmergencyAccessInitiate: (id: string) => Promise;\n postEmergencyAccessApprove: (id: string) => Promise;\n postEmergencyAccessReject: (id: string) => Promise;\n postEmergencyAccessTakeover: (id: string) => Promise;\n postEmergencyAccessPassword: (id: string, request: EmergencyAccessPasswordRequest) => Promise;\n postEmergencyAccessView: (id: string) => Promise;\n\n getOrganization: (id: string) => Promise;\n getOrganizationBilling: (id: string) => Promise;\n getOrganizationSubscription: (id: string) => Promise;\n getOrganizationLicense: (id: string, installationId: string) => Promise;\n getOrganizationTaxInfo: (id: string) => Promise;\n postOrganization: (request: OrganizationCreateRequest) => Promise;\n putOrganization: (id: string, request: OrganizationUpdateRequest) => Promise;\n putOrganizationTaxInfo: (id: string, request: OrganizationTaxInfoUpdateRequest) => Promise;\n postLeaveOrganization: (id: string) => Promise;\n postOrganizationLicense: (data: FormData) => Promise;\n postOrganizationLicenseUpdate: (id: string, data: FormData) => Promise;\n postOrganizationApiKey: (id: string, request: PasswordVerificationRequest) => Promise;\n postOrganizationRotateApiKey: (id: string, request: PasswordVerificationRequest) => Promise;\n postOrganizationUpgrade: (id: string, request: OrganizationUpgradeRequest) => Promise;\n postOrganizationSeat: (id: string, request: SeatRequest) => Promise;\n postOrganizationStorage: (id: string, request: StorageRequest) => Promise;\n postOrganizationPayment: (id: string, request: PaymentRequest) => Promise;\n postOrganizationVerifyBank: (id: string, request: VerifyBankRequest) => Promise;\n postOrganizationCancel: (id: string) => Promise;\n postOrganizationReinstate: (id: string) => Promise;\n deleteOrganization: (id: string, request: PasswordVerificationRequest) => Promise;\n getPlans: () => Promise>;\n getTaxRates: () => Promise>;\n\n getEvents: (start: string, end: string, token: string) => Promise>;\n getEventsCipher: (id: string, start: string, end: string, token: string) => Promise>;\n getEventsOrganization: (id: string, start: string, end: string,\n token: string) => Promise>;\n getEventsOrganizationUser: (organizationId: string, id: string,\n start: string, end: string, token: string) => Promise>;\n postEventsCollect: (request: EventRequest[]) => Promise;\n\n deleteSsoUser: (organizationId: string) => Promise;\n getSsoUserIdentifier: () => Promise;\n\n getUserPublicKey: (id: string) => Promise;\n\n getHibpBreach: (username: string) => Promise;\n\n postBitPayInvoice: (request: BitPayInvoiceRequest) => Promise;\n postSetupPayment: () => Promise;\n\n getActiveBearerToken: () => Promise;\n fetch: (request: Request) => Promise;\n nativeFetch: (request: Request) => Promise;\n\n preValidateSso: (identifier: string) => Promise;\n}\n","import { OrganizationData } from '../models/data/organizationData';\nimport { Organization } from '../models/domain/organization';\n\nimport { KdfType } from '../enums/kdfType';\n\nexport abstract class UserService {\n setInformation: (userId: string, email: string, kdf: KdfType, kdfIterations: number) => Promise;\n setSecurityStamp: (stamp: string) => Promise;\n getUserId: () => Promise;\n getEmail: () => Promise;\n getSecurityStamp: () => Promise;\n getKdf: () => Promise;\n getKdfIterations: () => Promise;\n clear: () => Promise;\n isAuthenticated: () => Promise;\n canAccessPremium: () => Promise;\n getOrganization: (id: string) => Promise;\n getAllOrganizations: () => Promise;\n replaceOrganizations: (organizations: { [id: string]: OrganizationData; }) => Promise;\n clearOrganizations: (userId: string) => Promise;\n}\n","import {\n Pipe,\n PipeTransform,\n} from '@angular/core';\n\nimport { I18nService } from '../../abstractions/i18n.service';\n\n@Pipe({\n name: 'i18n',\n})\nexport class I18nPipe implements PipeTransform {\n constructor(private i18nService: I18nService) { }\n\n transform(id: string, p1?: string, p2?: string, p3?: string): string {\n return this.i18nService.t(id, p1, p2, p3);\n }\n}\n","export abstract class MessagingService {\n send: (subscriber: string, arg?: any) => void;\n}\n","import {\n Directive,\n ElementRef,\n Input,\n OnChanges,\n} from '@angular/core';\n\nimport { ValidationService } from '../services/validation.service';\n\n@Directive({\n selector: '[appApiAction]',\n})\nexport class ApiActionDirective implements OnChanges {\n @Input() appApiAction: Promise;\n\n constructor(private el: ElementRef, private validationService: ValidationService) { }\n\n ngOnChanges(changes: any) {\n if (this.appApiAction == null || this.appApiAction.then == null) {\n return;\n }\n\n this.el.nativeElement.loading = true;\n\n this.appApiAction.then((response: any) => {\n this.el.nativeElement.loading = false;\n }, (e: any) => {\n this.el.nativeElement.loading = false;\n this.validationService.showError(e);\n });\n }\n}\n","import {\n Directive,\n ElementRef,\n Input,\n Renderer2,\n} from '@angular/core';\n\n@Directive({\n selector: '[appA11yTitle]',\n})\nexport class A11yTitleDirective {\n @Input() set appA11yTitle(title: string) {\n this.title = title;\n }\n\n private title: string;\n\n constructor(private el: ElementRef, private renderer: Renderer2) { }\n\n ngOnInit() {\n if (!this.el.nativeElement.hasAttribute('title')) {\n this.renderer.setAttribute(this.el.nativeElement, 'title', this.title);\n }\n if (!this.el.nativeElement.hasAttribute('aria-label')) {\n this.renderer.setAttribute(this.el.nativeElement, 'aria-label', this.title);\n }\n }\n}\n","import { CipherString } from '../models/domain/cipherString';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nimport { ProfileOrganizationResponse } from '../models/response/profileOrganizationResponse';\n\nimport { KdfType } from '../enums/kdfType';\n\nexport abstract class CryptoService {\n setKey: (key: SymmetricCryptoKey) => Promise;\n setKeyHash: (keyHash: string) => Promise<{}>;\n setEncKey: (encKey: string) => Promise<{}>;\n setEncPrivateKey: (encPrivateKey: string) => Promise<{}>;\n setOrgKeys: (orgs: ProfileOrganizationResponse[]) => Promise<{}>;\n getKey: () => Promise;\n getKeyHash: () => Promise;\n getEncKey: (key?: SymmetricCryptoKey) => Promise;\n getPublicKey: () => Promise;\n getPrivateKey: () => Promise;\n getFingerprint: (userId: string, publicKey?: ArrayBuffer) => Promise;\n getOrgKeys: () => Promise>;\n getOrgKey: (orgId: string) => Promise;\n hasKey: () => Promise;\n hasEncKey: () => Promise;\n clearKey: () => Promise;\n clearKeyHash: () => Promise;\n clearEncKey: (memoryOnly?: boolean) => Promise;\n clearKeyPair: (memoryOnly?: boolean) => Promise;\n clearOrgKeys: (memoryOnly?: boolean) => Promise;\n clearPinProtectedKey: () => Promise;\n clearKeys: () => Promise;\n toggleKey: () => Promise;\n makeKey: (password: string, salt: string, kdf: KdfType, kdfIterations: number) => Promise;\n makeKeyFromPin: (pin: string, salt: string, kdf: KdfType, kdfIterations: number,\n protectedKeyCs?: CipherString) => Promise;\n makeShareKey: () => Promise<[CipherString, SymmetricCryptoKey]>;\n makeKeyPair: (key?: SymmetricCryptoKey) => Promise<[string, CipherString]>;\n makePinKey: (pin: string, salt: string, kdf: KdfType, kdfIterations: number) => Promise;\n makeSendKey: (keyMaterial: ArrayBuffer) => Promise;\n hashPassword: (password: string, key: SymmetricCryptoKey) => Promise;\n makeEncKey: (key: SymmetricCryptoKey) => Promise<[SymmetricCryptoKey, CipherString]>;\n remakeEncKey: (key: SymmetricCryptoKey, encKey?: SymmetricCryptoKey) => Promise<[SymmetricCryptoKey, CipherString]>;\n encrypt: (plainValue: string | ArrayBuffer, key?: SymmetricCryptoKey) => Promise;\n encryptToBytes: (plainValue: ArrayBuffer, key?: SymmetricCryptoKey) => Promise;\n rsaEncrypt: (data: ArrayBuffer, publicKey?: ArrayBuffer) => Promise;\n rsaDecrypt: (encValue: string) => Promise;\n decryptToBytes: (cipherString: CipherString, key?: SymmetricCryptoKey) => Promise;\n decryptToUtf8: (cipherString: CipherString, key?: SymmetricCryptoKey) => Promise;\n decryptFromBytes: (encBuf: ArrayBuffer, key: SymmetricCryptoKey) => Promise;\n randomNumber: (min: number, max: number) => Promise;\n}\n","import { CipherType } from '../enums/cipherType';\nimport { UriMatchType } from '../enums/uriMatchType';\n\nimport { CipherData } from '../models/data/cipherData';\n\nimport { Cipher } from '../models/domain/cipher';\nimport { Field } from '../models/domain/field';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nimport { CipherView } from '../models/view/cipherView';\nimport { FieldView } from '../models/view/fieldView';\n\nexport abstract class CipherService {\n decryptedCipherCache: CipherView[];\n\n clearCache: () => void;\n encrypt: (model: CipherView, key?: SymmetricCryptoKey, originalCipher?: Cipher) => Promise;\n encryptFields: (fieldsModel: FieldView[], key: SymmetricCryptoKey) => Promise;\n encryptField: (fieldModel: FieldView, key: SymmetricCryptoKey) => Promise;\n get: (id: string) => Promise;\n getAll: () => Promise;\n getAllDecrypted: () => Promise;\n getAllDecryptedForGrouping: (groupingId: string, folder?: boolean) => Promise;\n getAllDecryptedForUrl: (url: string, includeOtherTypes?: CipherType[],\n defaultMatch?: UriMatchType) => Promise;\n getAllFromApiForOrganization: (organizationId: string) => Promise;\n getLastUsedForUrl: (url: string) => Promise;\n getLastLaunchedForUrl: (url: string) => Promise;\n getNextCipherForUrl: (url: string) => Promise;\n updateLastUsedIndexForUrl: (url: string) => void;\n updateLastUsedDate: (id: string) => Promise;\n updateLastLaunchedDate: (id: string) => Promise;\n saveNeverDomain: (domain: string) => Promise;\n saveWithServer: (cipher: Cipher) => Promise;\n shareWithServer: (cipher: CipherView, organizationId: string, collectionIds: string[]) => Promise;\n shareManyWithServer: (ciphers: CipherView[], organizationId: string, collectionIds: string[]) => Promise;\n saveAttachmentWithServer: (cipher: Cipher, unencryptedFile: any, admin?: boolean) => Promise;\n saveAttachmentRawWithServer: (cipher: Cipher, filename: string, data: ArrayBuffer,\n admin?: boolean) => Promise;\n saveCollectionsWithServer: (cipher: Cipher) => Promise;\n upsert: (cipher: CipherData | CipherData[]) => Promise;\n replace: (ciphers: { [id: string]: CipherData; }) => Promise;\n clear: (userId: string) => Promise;\n moveManyWithServer: (ids: string[], folderId: string) => Promise;\n delete: (id: string | string[]) => Promise;\n deleteWithServer: (id: string) => Promise;\n deleteManyWithServer: (ids: string[]) => Promise;\n deleteAttachment: (id: string, attachmentId: string) => Promise;\n deleteAttachmentWithServer: (id: string, attachmentId: string) => Promise;\n sortCiphersByLastUsed: (a: any, b: any) => number;\n sortCiphersByLastUsedThenName: (a: any, b: any) => number;\n getLocaleSortingFunction: () => (a: CipherView, b: CipherView) => number;\n softDelete: (id: string | string[]) => Promise;\n softDeleteWithServer: (id: string) => Promise;\n softDeleteManyWithServer: (ids: string[]) => Promise;\n restore: (cipher: { id: string, revisionDate: string; } | { id: string, revisionDate: string; }[]) => Promise;\n restoreWithServer: (id: string) => Promise;\n restoreManyWithServer: (ids: string[]) => Promise;\n}\n","export abstract class BaseResponse {\n private response: any;\n\n constructor(response: any) {\n this.response = response;\n }\n\n protected getResponseProperty(propertyName: string, response: any = null, exactName = false): any {\n if (propertyName == null || propertyName === '') {\n throw new Error('propertyName must not be null/empty.');\n }\n if (response == null && this.response != null) {\n response = this.response;\n }\n if (response == null) {\n return null;\n }\n if (!exactName && response[propertyName] === undefined) {\n let otherCasePropertyName: string = null;\n if (propertyName.charAt(0) === propertyName.charAt(0).toUpperCase()) {\n otherCasePropertyName = propertyName.charAt(0).toLowerCase();\n } else {\n otherCasePropertyName = propertyName.charAt(0).toUpperCase();\n }\n if (propertyName.length > 1) {\n otherCasePropertyName += propertyName.slice(1);\n }\n\n propertyName = otherCasePropertyName;\n if (response[propertyName] === undefined) {\n propertyName = propertyName.toLowerCase();\n }\n if (response[propertyName] === undefined) {\n propertyName = propertyName.toUpperCase();\n }\n }\n return response[propertyName];\n }\n}\n","import {\n Component,\n Input,\n OnInit,\n} from '@angular/core';\n\nimport { I18nService } from '../../abstractions/i18n.service';\n\n@Component({\n selector: 'app-callout',\n templateUrl: 'callout.component.html',\n})\nexport class CalloutComponent implements OnInit {\n @Input() type = 'info';\n @Input() icon: string;\n @Input() title: string;\n @Input() clickable: boolean;\n\n calloutStyle: string;\n\n constructor(private i18nService: I18nService) { }\n\n ngOnInit() {\n this.calloutStyle = this.type;\n\n if (this.type === 'warning' || this.type === 'danger') {\n if (this.type === 'danger') {\n this.calloutStyle = 'danger';\n }\n if (this.title === undefined) {\n this.title = this.i18nService.t('warning');\n }\n if (this.icon === undefined) {\n this.icon = 'fa-warning';\n }\n } else if (this.type === 'error') {\n this.calloutStyle = 'danger';\n if (this.title === undefined) {\n this.title = this.i18nService.t('error');\n }\n if (this.icon === undefined) {\n this.icon = 'fa-bolt';\n }\n } else if (this.type === 'tip') {\n this.calloutStyle = 'success';\n if (this.title === undefined) {\n this.title = this.i18nService.t('tip');\n }\n if (this.icon === undefined) {\n this.icon = 'fa-lightbulb-o';\n }\n }\n }\n}\n","

\n

\n \n {{title}}\n

\n \n
\n","import * as papa from 'papaparse';\n\nimport { LogService } from '../abstractions/log.service';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CipherView } from '../models/view/cipherView';\nimport { CollectionView } from '../models/view/collectionView';\nimport { LoginUriView } from '../models/view/loginUriView';\n\nimport { Utils } from '../misc/utils';\n\nimport { FieldView } from '../models/view/fieldView';\nimport { FolderView } from '../models/view/folderView';\nimport { LoginView } from '../models/view/loginView';\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nimport { CipherType } from '../enums/cipherType';\nimport { FieldType } from '../enums/fieldType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nimport { ConsoleLogService } from '../services/consoleLog.service';\n\nexport abstract class BaseImporter {\n organizationId: string = null;\n\n protected logService: LogService = new ConsoleLogService(false);\n\n protected newLineRegex = /(?:\\r\\n|\\r|\\n)/;\n\n protected passwordFieldNames = [\n 'password', 'pass word', 'passphrase', 'pass phrase',\n 'pass', 'code', 'code word', 'codeword',\n 'secret', 'secret word', 'personpwd',\n 'key', 'keyword', 'key word', 'keyphrase', 'key phrase',\n 'form_pw', 'wppassword', 'pin', 'pwd', 'pw', 'pword', 'passwd',\n 'p', 'serial', 'serial#', 'license key', 'reg #',\n\n // Non-English names\n 'passwort',\n ];\n\n protected usernameFieldNames = [\n 'user', 'name', 'user name', 'username', 'login name',\n 'email', 'e-mail', 'id', 'userid', 'user id',\n 'login', 'form_loginname', 'wpname', 'mail',\n 'loginid', 'login id', 'log', 'personlogin',\n 'first name', 'last name', 'card#', 'account #',\n 'member', 'member #',\n\n // Non-English names\n 'nom', 'benutzername',\n ];\n\n protected notesFieldNames = [\n 'note', 'notes', 'comment', 'comments', 'memo',\n 'description', 'free form', 'freeform',\n 'free text', 'freetext', 'free',\n\n // Non-English names\n 'kommentar',\n ];\n\n protected uriFieldNames: string[] = [\n 'url', 'hyper link', 'hyperlink', 'link',\n 'host', 'hostname', 'host name', 'server', 'address',\n 'hyper ref', 'href', 'web', 'website', 'web site', 'site',\n 'web-site', 'uri',\n\n // Non-English names\n 'ort', 'adresse',\n ];\n\n protected parseCsvOptions = {\n encoding: 'UTF-8',\n skipEmptyLines: false,\n };\n\n protected get organization() {\n return this.organizationId != null;\n }\n\n protected parseXml(data: string): Document {\n const parser = new DOMParser();\n const doc = parser.parseFromString(data, 'application/xml');\n return doc != null && doc.querySelector('parsererror') == null ? doc : null;\n }\n\n protected parseCsv(data: string, header: boolean, options: any = {}): any[] {\n const parseOptions = Object.assign({ header: header }, this.parseCsvOptions, options);\n data = this.splitNewLine(data).join('\\n').trim();\n const result = papa.parse(data, parseOptions);\n if (result.errors != null && result.errors.length > 0) {\n result.errors.forEach(e => {\n if (e.row != null) {\n // tslint:disable-next-line\n this.logService.warning('Error parsing row ' + e.row + ': ' + e.message);\n }\n });\n }\n return result.data && result.data.length > 0 ? result.data : null;\n }\n\n protected parseSingleRowCsv(rowData: string) {\n if (this.isNullOrWhitespace(rowData)) {\n return null;\n }\n const parsedRow = this.parseCsv(rowData, false);\n if (parsedRow != null && parsedRow.length > 0 && parsedRow[0].length > 0) {\n return parsedRow[0];\n }\n return null;\n }\n\n protected makeUriArray(uri: string | string[]): LoginUriView[] {\n if (uri == null) {\n return null;\n }\n\n if (typeof uri === 'string') {\n const loginUri = new LoginUriView();\n loginUri.uri = this.fixUri(uri);\n if (this.isNullOrWhitespace(loginUri.uri)) {\n return null;\n }\n loginUri.match = null;\n return [loginUri];\n }\n\n if (uri.length > 0) {\n const returnArr: LoginUriView[] = [];\n uri.forEach(u => {\n const loginUri = new LoginUriView();\n loginUri.uri = this.fixUri(u);\n if (this.isNullOrWhitespace(loginUri.uri)) {\n return;\n }\n loginUri.match = null;\n returnArr.push(loginUri);\n });\n return returnArr.length === 0 ? null : returnArr;\n }\n\n return null;\n }\n\n protected fixUri(uri: string) {\n if (uri == null) {\n return null;\n }\n uri = uri.trim();\n if (uri.indexOf('://') === -1 && uri.indexOf('.') >= 0) {\n uri = 'http://' + uri;\n }\n if (uri.length > 1000) {\n return uri.substring(0, 1000);\n }\n return uri;\n }\n\n protected nameFromUrl(url: string) {\n const hostname = Utils.getHostname(url);\n if (this.isNullOrWhitespace(hostname)) {\n return null;\n }\n return hostname.startsWith('www.') ? hostname.replace('www.', '') : hostname;\n }\n\n protected isNullOrWhitespace(str: string): boolean {\n return Utils.isNullOrWhitespace(str);\n }\n\n protected getValueOrDefault(str: string, defaultValue: string = null): string {\n if (this.isNullOrWhitespace(str)) {\n return defaultValue;\n }\n return str;\n }\n\n protected splitNewLine(str: string): string[] {\n return str.split(this.newLineRegex);\n }\n\n // ref https://stackoverflow.com/a/5911300\n protected getCardBrand(cardNum: string) {\n if (this.isNullOrWhitespace(cardNum)) {\n return null;\n }\n\n // Visa\n let re = new RegExp('^4');\n if (cardNum.match(re) != null) {\n return 'Visa';\n }\n\n // Mastercard\n // Updated for Mastercard 2017 BINs expansion\n if (/^(5[1-5][0-9]{14}|2(22[1-9][0-9]{12}|2[3-9][0-9]{13}|[3-6][0-9]{14}|7[0-1][0-9]{13}|720[0-9]{12}))$/\n .test(cardNum)) {\n return 'Mastercard';\n }\n\n // AMEX\n re = new RegExp('^3[47]');\n if (cardNum.match(re) != null) {\n return 'Amex';\n }\n\n // Discover\n re = new RegExp('^(6011|622(12[6-9]|1[3-9][0-9]|[2-8][0-9]{2}|9[0-1][0-9]|92[0-5]|64[4-9])|65)');\n if (cardNum.match(re) != null) {\n return 'Discover';\n }\n\n // Diners\n re = new RegExp('^36');\n if (cardNum.match(re) != null) {\n return 'Diners Club';\n }\n\n // Diners - Carte Blanche\n re = new RegExp('^30[0-5]');\n if (cardNum.match(re) != null) {\n return 'Diners Club';\n }\n\n // JCB\n re = new RegExp('^35(2[89]|[3-8][0-9])');\n if (cardNum.match(re) != null) {\n return 'JCB';\n }\n\n // Visa Electron\n re = new RegExp('^(4026|417500|4508|4844|491(3|7))');\n if (cardNum.match(re) != null) {\n return 'Visa';\n }\n\n return null;\n }\n\n protected setCardExpiration(cipher: CipherView, expiration: string): boolean {\n if (!this.isNullOrWhitespace(expiration)) {\n const parts = expiration.split('/');\n if (parts.length === 2) {\n let month: string = null;\n let year: string = null;\n if (parts[0].length === 1 || parts[0].length === 2) {\n month = parts[0];\n if (month.length === 2 && month[0] === '0') {\n month = month.substr(1, 1);\n }\n }\n if (parts[1].length === 2 || parts[1].length === 4) {\n year = month.length === 2 ? '20' + parts[1] : parts[1];\n }\n if (month != null && year != null) {\n cipher.card.expMonth = month;\n cipher.card.expYear = year;\n return true;\n }\n }\n }\n return false;\n }\n\n protected moveFoldersToCollections(result: ImportResult) {\n result.folderRelationships.forEach(r => result.collectionRelationships.push(r));\n result.collections = result.folders.map(f => {\n const collection = new CollectionView();\n collection.name = f.name;\n return collection;\n });\n result.folderRelationships = [];\n result.folders = [];\n }\n\n protected querySelectorDirectChild(parentEl: Element, query: string) {\n const els = this.querySelectorAllDirectChild(parentEl, query);\n return els.length === 0 ? null : els[0];\n }\n\n protected querySelectorAllDirectChild(parentEl: Element, query: string) {\n return Array.from(parentEl.querySelectorAll(query)).filter(el => el.parentNode === parentEl);\n }\n\n protected initLoginCipher() {\n const cipher = new CipherView();\n cipher.favorite = false;\n cipher.notes = '';\n cipher.fields = [];\n cipher.login = new LoginView();\n cipher.type = CipherType.Login;\n return cipher;\n }\n\n protected cleanupCipher(cipher: CipherView) {\n if (cipher == null) {\n return;\n }\n if (cipher.type !== CipherType.Login) {\n cipher.login = null;\n }\n if (this.isNullOrWhitespace(cipher.name)) {\n cipher.name = '--';\n }\n if (this.isNullOrWhitespace(cipher.notes)) {\n cipher.notes = null;\n } else {\n cipher.notes = cipher.notes.trim();\n }\n if (cipher.fields != null && cipher.fields.length === 0) {\n cipher.fields = null;\n }\n }\n\n protected processKvp(cipher: CipherView, key: string, value: string, type: FieldType = FieldType.Text) {\n if (this.isNullOrWhitespace(value)) {\n return;\n }\n if (this.isNullOrWhitespace(key)) {\n key = '';\n }\n if (value.length > 200 || value.trim().search(this.newLineRegex) > -1) {\n if (cipher.notes == null) {\n cipher.notes = '';\n }\n cipher.notes += (key + ': ' + this.splitNewLine(value).join('\\n') + '\\n');\n } else {\n if (cipher.fields == null) {\n cipher.fields = [];\n }\n const field = new FieldView();\n field.type = type;\n field.name = key;\n field.value = value;\n cipher.fields.push(field);\n }\n }\n\n protected processFolder(result: ImportResult, folderName: string) {\n let folderIndex = result.folders.length;\n const hasFolder = !this.isNullOrWhitespace(folderName);\n let addFolder = hasFolder;\n\n if (hasFolder) {\n for (let i = 0; i < result.folders.length; i++) {\n if (result.folders[i].name === folderName) {\n addFolder = false;\n folderIndex = i;\n break;\n }\n }\n }\n\n if (addFolder) {\n const f = new FolderView();\n f.name = folderName;\n result.folders.push(f);\n }\n if (hasFolder) {\n result.folderRelationships.push([result.ciphers.length, folderIndex]);\n }\n }\n\n protected convertToNoteIfNeeded(cipher: CipherView) {\n if (cipher.type === CipherType.Login && this.isNullOrWhitespace(cipher.login.username) &&\n this.isNullOrWhitespace(cipher.login.password) &&\n (cipher.login.uris == null || cipher.login.uris.length === 0)) {\n cipher.type = CipherType.SecureNote;\n cipher.secureNote = new SecureNoteView();\n cipher.secureNote.type = SecureNoteType.Generic;\n }\n }\n}\n","import { CipherView } from '../view/cipherView';\nimport { CollectionView } from '../view/collectionView';\nimport { FolderView } from '../view/folderView';\n\nexport class ImportResult {\n success = false;\n errorMessage: string;\n ciphers: CipherView[] = [];\n folders: FolderView[] = [];\n folderRelationships: [number, number][] = [];\n collections: CollectionView[] = [];\n collectionRelationships: [number, number][] = [];\n}\n","import * as tldjs from 'tldjs';\n\nimport { I18nService } from '../abstractions/i18n.service';\n\n// tslint:disable-next-line\nconst nodeURL = typeof window === 'undefined' ? require('url') : null;\n\nexport class Utils {\n static inited = false;\n static isNativeScript = false;\n static isNode = false;\n static isBrowser = true;\n static isMobileBrowser = false;\n static isAppleMobileBrowser = false;\n static global: any = null;\n static tldEndingRegex = /.*\\.(com|net|org|edu|uk|gov|ca|de|jp|fr|au|ru|ch|io|es|us|co|xyz|info|ly|mil)$/;\n\n static init() {\n if (Utils.inited) {\n return;\n }\n\n Utils.inited = true;\n Utils.isNode = typeof process !== 'undefined' && (process as any).release != null &&\n (process as any).release.name === 'node';\n Utils.isBrowser = typeof window !== 'undefined';\n Utils.isNativeScript = !Utils.isNode && !Utils.isBrowser;\n Utils.isMobileBrowser = Utils.isBrowser && this.isMobile(window);\n Utils.isAppleMobileBrowser = Utils.isBrowser && this.isAppleMobile(window);\n Utils.global = Utils.isNativeScript ? global : (Utils.isNode && !Utils.isBrowser ? global : window);\n }\n\n static fromB64ToArray(str: string): Uint8Array {\n if (Utils.isNode || Utils.isNativeScript) {\n return new Uint8Array(Buffer.from(str, 'base64'));\n } else {\n const binaryString = window.atob(str);\n const bytes = new Uint8Array(binaryString.length);\n for (let i = 0; i < binaryString.length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes;\n }\n }\n\n static fromUrlB64ToArray(str: string): Uint8Array {\n return Utils.fromB64ToArray(Utils.fromUrlB64ToB64(str));\n }\n\n static fromHexToArray(str: string): Uint8Array {\n if (Utils.isNode || Utils.isNativeScript) {\n return new Uint8Array(Buffer.from(str, 'hex'));\n } else {\n const bytes = new Uint8Array(str.length / 2);\n for (let i = 0; i < str.length; i += 2) {\n bytes[i / 2] = parseInt(str.substr(i, 2), 16);\n }\n return bytes;\n }\n }\n\n static fromUtf8ToArray(str: string): Uint8Array {\n if (Utils.isNode || Utils.isNativeScript) {\n return new Uint8Array(Buffer.from(str, 'utf8'));\n } else {\n const strUtf8 = unescape(encodeURIComponent(str));\n const arr = new Uint8Array(strUtf8.length);\n for (let i = 0; i < strUtf8.length; i++) {\n arr[i] = strUtf8.charCodeAt(i);\n }\n return arr;\n }\n }\n\n static fromByteStringToArray(str: string): Uint8Array {\n const arr = new Uint8Array(str.length);\n for (let i = 0; i < str.length; i++) {\n arr[i] = str.charCodeAt(i);\n }\n return arr;\n }\n\n static fromBufferToB64(buffer: ArrayBuffer): string {\n if (Utils.isNode || Utils.isNativeScript) {\n return Buffer.from(buffer).toString('base64');\n } else {\n let binary = '';\n const bytes = new Uint8Array(buffer);\n for (let i = 0; i < bytes.byteLength; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return window.btoa(binary);\n }\n }\n\n static fromBufferToUrlB64(buffer: ArrayBuffer): string {\n return Utils.fromB64toUrlB64(Utils.fromBufferToB64(buffer));\n }\n\n static fromB64toUrlB64(b64Str: string) {\n return b64Str.replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/=/g, '');\n }\n\n static fromBufferToUtf8(buffer: ArrayBuffer): string {\n if (Utils.isNode || Utils.isNativeScript) {\n return Buffer.from(buffer).toString('utf8');\n } else {\n const bytes = new Uint8Array(buffer);\n const encodedString = String.fromCharCode.apply(null, bytes);\n return decodeURIComponent(escape(encodedString));\n }\n }\n\n static fromBufferToByteString(buffer: ArrayBuffer): string {\n return String.fromCharCode.apply(null, new Uint8Array(buffer));\n }\n\n // ref: https://stackoverflow.com/a/40031979/1090359\n static fromBufferToHex(buffer: ArrayBuffer): string {\n if (Utils.isNode || Utils.isNativeScript) {\n return Buffer.from(buffer).toString('hex');\n } else {\n const bytes = new Uint8Array(buffer);\n return Array.prototype.map.call(bytes, (x: number) => ('00' + x.toString(16)).slice(-2)).join('');\n }\n }\n\n static fromUrlB64ToB64(urlB64Str: string): string {\n let output = urlB64Str.replace(/-/g, '+').replace(/_/g, '/');\n switch (output.length % 4) {\n case 0:\n break;\n case 2:\n output += '==';\n break;\n case 3:\n output += '=';\n break;\n default:\n throw new Error('Illegal base64url string!');\n }\n\n return output;\n }\n\n static fromUrlB64ToUtf8(urlB64Str: string): string {\n return Utils.fromB64ToUtf8(Utils.fromUrlB64ToB64(urlB64Str));\n }\n\n static fromB64ToUtf8(b64Str: string): string {\n if (Utils.isNode || Utils.isNativeScript) {\n return Buffer.from(b64Str, 'base64').toString('utf8');\n } else {\n return decodeURIComponent(escape(window.atob(b64Str)));\n }\n }\n\n // ref: http://stackoverflow.com/a/2117523/1090359\n static newGuid(): string {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\n // tslint:disable-next-line\n const r = Math.random() * 16 | 0;\n // tslint:disable-next-line\n const v = c === 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n }\n\n static isGuid(id: string) {\n return RegExp(/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/, 'i').test(id);\n }\n\n static getHostname(uriString: string): string {\n const url = Utils.getUrl(uriString);\n try {\n return url != null && url.hostname !== '' ? url.hostname : null;\n } catch {\n return null;\n }\n }\n\n static getHost(uriString: string): string {\n const url = Utils.getUrl(uriString);\n try {\n return url != null && url.host !== '' ? url.host : null;\n } catch {\n return null;\n }\n }\n\n static getDomain(uriString: string): string {\n if (uriString == null) {\n return null;\n }\n\n uriString = uriString.trim();\n if (uriString === '') {\n return null;\n }\n\n if (uriString.startsWith('data:')) {\n return null;\n }\n\n let httpUrl = uriString.startsWith('http://') || uriString.startsWith('https://');\n if (!httpUrl && uriString.indexOf('://') < 0 && Utils.tldEndingRegex.test(uriString)) {\n uriString = 'http://' + uriString;\n httpUrl = true;\n }\n\n if (httpUrl) {\n try {\n const url = Utils.getUrlObject(uriString);\n if (url.hostname === 'localhost' || Utils.validIpAddress(url.hostname)) {\n return url.hostname;\n }\n\n const urlDomain = tldjs != null && tldjs.getDomain != null ? tldjs.getDomain(url.hostname) : null;\n return urlDomain != null ? urlDomain : url.hostname;\n } catch (e) { }\n }\n\n try {\n const domain = tldjs != null && tldjs.getDomain != null ? tldjs.getDomain(uriString) : null;\n\n if (domain != null) {\n return domain;\n }\n } catch {\n return null;\n }\n\n return null;\n }\n\n static getQueryParams(uriString: string): Map {\n const url = Utils.getUrl(uriString);\n if (url == null || url.search == null || url.search === '') {\n return null;\n }\n const map = new Map();\n const pairs = (url.search[0] === '?' ? url.search.substr(1) : url.search).split('&');\n pairs.forEach(pair => {\n const parts = pair.split('=');\n if (parts.length < 1) {\n return;\n }\n map.set(decodeURIComponent(parts[0]).toLowerCase(), parts[1] == null ? '' : decodeURIComponent(parts[1]));\n });\n return map;\n }\n\n static getSortFunction(i18nService: I18nService, prop: string) {\n return (a: any, b: any) => {\n if (a[prop] == null && b[prop] != null) {\n return -1;\n }\n if (a[prop] != null && b[prop] == null) {\n return 1;\n }\n if (a[prop] == null && b[prop] == null) {\n return 0;\n }\n\n return i18nService.collator ? i18nService.collator.compare(a[prop], b[prop]) :\n a[prop].localeCompare(b[prop]);\n };\n }\n\n static isNullOrWhitespace(str: string): boolean {\n return str == null || typeof str !== 'string' || str.trim() === '';\n }\n\n static nameOf(name: string & keyof T) {\n return name;\n }\n\n static assign(target: T, source: Partial): T {\n return Object.assign(target, source);\n }\n\n private static validIpAddress(ipString: string): boolean {\n // tslint:disable-next-line\n const ipRegex = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;\n return ipRegex.test(ipString);\n }\n\n private static isMobile(win: Window) {\n let mobile = false;\n (a => {\n // tslint:disable-next-line\n if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.substr(0, 4))) {\n mobile = true;\n }\n })(win.navigator.userAgent || win.navigator.vendor || (win as any).opera);\n return mobile || win.navigator.userAgent.match(/iPad/i) != null;\n }\n\n private static isAppleMobile(win: Window) {\n return win.navigator.userAgent.match(/iPhone/i) != null || win.navigator.userAgent.match(/iPad/i) != null;\n }\n\n private static getUrl(uriString: string): URL {\n if (uriString == null) {\n return null;\n }\n\n uriString = uriString.trim();\n if (uriString === '') {\n return null;\n }\n\n let url = Utils.getUrlObject(uriString);\n if (url == null) {\n const hasHttpProtocol = uriString.indexOf('http://') === 0 || uriString.indexOf('https://') === 0;\n if (!hasHttpProtocol && uriString.indexOf('.') > -1) {\n url = Utils.getUrlObject('http://' + uriString);\n }\n }\n return url;\n }\n\n private static getUrlObject(uriString: string): URL {\n try {\n if (nodeURL != null) {\n return nodeURL.URL ? new nodeURL.URL(uriString) : nodeURL.parse(uriString);\n } else if (typeof URL === 'function') {\n return new URL(uriString);\n } else if (window != null) {\n const hasProtocol = uriString.indexOf('://') > -1;\n if (!hasProtocol && uriString.indexOf('.') > -1) {\n uriString = 'http://' + uriString;\n } else if (!hasProtocol) {\n return null;\n }\n const anchor = window.document.createElement('a');\n anchor.href = uriString;\n return anchor as any;\n }\n } catch (e) { }\n\n return null;\n }\n}\n\nUtils.init();\n","import { GeneratedPasswordHistory } from '../models/domain/generatedPasswordHistory';\nimport { PasswordGeneratorPolicyOptions } from '../models/domain/passwordGeneratorPolicyOptions';\n\nexport abstract class PasswordGenerationService {\n generatePassword: (options: any) => Promise;\n generatePassphrase: (options: any) => Promise;\n getOptions: () => Promise<[any, PasswordGeneratorPolicyOptions]>;\n enforcePasswordGeneratorPoliciesOnOptions: (options: any) => Promise<[any, PasswordGeneratorPolicyOptions]>;\n getPasswordGeneratorPolicyOptions: () => Promise;\n saveOptions: (options: any) => Promise;\n getHistory: () => Promise;\n addHistory: (password: string) => Promise;\n clear: () => Promise;\n passwordStrength: (password: string, userInputs?: string[]) => zxcvbn.ZXCVBNResult;\n normalizeOptions: (options: any, enforcedPolicyOptions: PasswordGeneratorPolicyOptions) => void;\n}\n","import {\n Directive,\n HostListener,\n} from '@angular/core';\n\n@Directive({\n selector: '[appStopClick]',\n})\nexport class StopClickDirective {\n @HostListener('click', ['$event']) onClick($event: MouseEvent) {\n $event.preventDefault();\n }\n}\n","export abstract class StateService {\n get: (key: string) => Promise;\n save: (key: string, obj: any) => Promise;\n remove: (key: string) => Promise;\n purge: () => Promise;\n}\n","export enum CipherType {\n Login = 1,\n SecureNote = 2,\n Card = 3,\n Identity = 4,\n}\n","import { CollectionData } from '../models/data/collectionData';\n\nimport { Collection } from '../models/domain/collection';\nimport { TreeNode } from '../models/domain/treeNode';\n\nimport { CollectionView } from '../models/view/collectionView';\n\nexport abstract class CollectionService {\n decryptedCollectionCache: CollectionView[];\n\n clearCache: () => void;\n encrypt: (model: CollectionView) => Promise;\n decryptMany: (collections: Collection[]) => Promise;\n get: (id: string) => Promise;\n getAll: () => Promise;\n getAllDecrypted: () => Promise;\n getAllNested: (collections?: CollectionView[]) => Promise[]>;\n getNested: (id: string) => Promise>;\n upsert: (collection: CollectionData | CollectionData[]) => Promise;\n replace: (collections: { [id: string]: CollectionData; }) => Promise;\n clear: (userId: string) => Promise;\n delete: (id: string | string[]) => Promise;\n}\n","export abstract class StorageService {\n get: (key: string) => Promise;\n save: (key: string, obj: any) => Promise;\n remove: (key: string) => Promise;\n}\n","import { PolicyData } from '../models/data/policyData';\n\nimport { MasterPasswordPolicyOptions } from '../models/domain/masterPasswordPolicyOptions';\nimport { Policy } from '../models/domain/policy';\n\nimport { PolicyType } from '../enums/policyType';\n\nexport abstract class PolicyService {\n policyCache: Policy[];\n\n clearCache: () => void;\n getAll: (type?: PolicyType) => Promise;\n replace: (policies: { [id: string]: PolicyData; }) => Promise;\n clear: (userId: string) => Promise;\n getMasterPasswordPolicyOptions: (policies?: Policy[]) => Promise;\n evaluateMasterPassword: (passwordStrength: number, newPassword: string,\n enforcedPolicyOptions?: MasterPasswordPolicyOptions) => boolean;\n}\n","import {\n Directive,\n ElementRef,\n Input,\n Renderer2,\n} from '@angular/core';\n\n@Directive({\n selector: '[appInputVerbatim]',\n})\nexport class InputVerbatimDirective {\n @Input() set appInputVerbatim(condition: boolean | string) {\n this.disableComplete = condition === '' || condition === true;\n }\n\n private disableComplete: boolean;\n\n constructor(private el: ElementRef, private renderer: Renderer2) { }\n\n ngOnInit() {\n if (this.disableComplete && !this.el.nativeElement.hasAttribute('autocomplete')) {\n this.renderer.setAttribute(this.el.nativeElement, 'autocomplete', 'off');\n }\n if (!this.el.nativeElement.hasAttribute('autocapitalize')) {\n this.renderer.setAttribute(this.el.nativeElement, 'autocapitalize', 'none');\n }\n if (!this.el.nativeElement.hasAttribute('autocorrect')) {\n this.renderer.setAttribute(this.el.nativeElement, 'autocorrect', 'none');\n }\n if (!this.el.nativeElement.hasAttribute('spellcheck')) {\n this.renderer.setAttribute(this.el.nativeElement, 'spellcheck', 'false');\n }\n if (!this.el.nativeElement.hasAttribute('inputmode')) {\n this.renderer.setAttribute(this.el.nativeElement, 'inputmode', 'verbatim');\n }\n }\n}\n","import { FolderData } from '../models/data/folderData';\n\nimport { Folder } from '../models/domain/folder';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\nimport { TreeNode } from '../models/domain/treeNode';\n\nimport { FolderView } from '../models/view/folderView';\n\nexport abstract class FolderService {\n decryptedFolderCache: FolderView[];\n\n clearCache: () => void;\n encrypt: (model: FolderView, key?: SymmetricCryptoKey) => Promise;\n get: (id: string) => Promise;\n getAll: () => Promise;\n getAllDecrypted: () => Promise;\n getAllNested: () => Promise[]>;\n getNested: (id: string) => Promise>;\n saveWithServer: (folder: Folder) => Promise;\n upsert: (folder: FolderData | FolderData[]) => Promise;\n replace: (folders: { [id: string]: FolderData; }) => Promise;\n clear: (userId: string) => Promise;\n delete: (id: string | string[]) => Promise;\n deleteWithServer: (id: string) => Promise;\n}\n","import {\n Directive,\n HostListener,\n} from '@angular/core';\n\n@Directive({\n selector: '[appStopProp]',\n})\nexport class StopPropDirective {\n @HostListener('click', ['$event']) onClick($event: MouseEvent) {\n $event.stopPropagation();\n }\n}\n","import { TwoFactorProviderType } from '../enums/twoFactorProviderType';\n\nimport { AuthResult } from '../models/domain/authResult';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nexport abstract class AuthService {\n email: string;\n masterPasswordHash: string;\n code: string;\n codeVerifier: string;\n ssoRedirectUrl: string;\n clientId: string;\n clientSecret: string;\n twoFactorProvidersData: Map;\n selectedTwoFactorProviderType: TwoFactorProviderType;\n\n logIn: (email: string, masterPassword: string) => Promise;\n logInSso: (code: string, codeVerifier: string, redirectUrl: string) => Promise;\n logInApiKey: (clientId: string, clientSecret: string) => Promise;\n logInTwoFactor: (twoFactorProvider: TwoFactorProviderType, twoFactorToken: string,\n remember?: boolean) => Promise;\n logInComplete: (email: string, masterPassword: string, twoFactorProvider: TwoFactorProviderType,\n twoFactorToken: string, remember?: boolean) => Promise;\n logInSsoComplete: (code: string, codeVerifier: string, redirectUrl: string,\n twoFactorProvider: TwoFactorProviderType, twoFactorToken: string, remember?: boolean) => Promise;\n logInApiKeyComplete: (clientId: string, clientSecret: string, twoFactorProvider: TwoFactorProviderType,\n twoFactorToken: string, remember?: boolean) => Promise;\n logOut: (callback: Function) => void;\n getSupportedTwoFactorProviders: (win: Window) => any[];\n getDefaultTwoFactorProvider: (u2fSupported: boolean) => TwoFactorProviderType;\n makePreloginKey: (masterPassword: string, email: string) => Promise;\n authingWithApiKey: () => boolean;\n authingWithSso: () => boolean;\n authingWithPassword: () => boolean;\n}\n","import {\n SyncCipherNotification,\n SyncFolderNotification,\n SyncSendNotification,\n} from '../models/response/notificationResponse';\n\nexport abstract class SyncService {\n syncInProgress: boolean;\n\n getLastSync: () => Promise;\n setLastSync: (date: Date) => Promise;\n fullSync: (forceSync: boolean, allowThrowOnError?: boolean) => Promise;\n syncUpsertFolder: (notification: SyncFolderNotification, isEdit: boolean) => Promise;\n syncDeleteFolder: (notification: SyncFolderNotification) => Promise;\n syncUpsertCipher: (notification: SyncCipherNotification, isEdit: boolean) => Promise;\n syncDeleteCipher: (notification: SyncFolderNotification) => Promise;\n syncUpsertSend: (notification: SyncSendNotification, isEdit: boolean) => Promise;\n syncDeleteSend: (notification: SyncSendNotification) => Promise;\n}\n","export abstract class EnvironmentService {\n baseUrl: string;\n webVaultUrl: string;\n apiUrl: string;\n identityUrl: string;\n iconsUrl: string;\n notificationsUrl: string;\n eventsUrl: string;\n enterpriseUrl: string;\n\n getWebVaultUrl: () => string;\n setUrlsFromStorage: () => Promise;\n setUrls: (urls: any) => Promise;\n}\n","import {\n Directive,\n ElementRef,\n Input,\n} from '@angular/core';\n\nimport { Utils } from '../../misc/utils';\n\n@Directive({\n selector: '[appAutofocus]',\n})\nexport class AutofocusDirective {\n @Input() set appAutofocus(condition: boolean | string) {\n this.autofocus = condition === '' || condition === true;\n }\n\n private autofocus: boolean;\n\n constructor(private el: ElementRef) { }\n\n ngOnInit() {\n if (!Utils.isMobileBrowser && this.autofocus) {\n this.el.nativeElement.focus();\n }\n }\n}\n","export class ConstantsService {\n static readonly environmentUrlsKey: string = 'environmentUrls';\n static readonly disableGaKey: string = 'disableGa';\n static readonly disableAddLoginNotificationKey: string = 'disableAddLoginNotification';\n static readonly disableChangedPasswordNotificationKey: string = 'disableChangedPasswordNotification';\n static readonly disableContextMenuItemKey: string = 'disableContextMenuItem';\n static readonly disableFaviconKey: string = 'disableFavicon';\n static readonly disableBadgeCounterKey: string = 'disableBadgeCounter';\n static readonly disableAutoTotpCopyKey: string = 'disableAutoTotpCopy';\n static readonly enableAutoFillOnPageLoadKey: string = 'enableAutoFillOnPageLoad';\n static readonly vaultTimeoutKey: string = 'lockOption';\n static readonly vaultTimeoutActionKey: string = 'vaultTimeoutAction';\n static readonly lastActiveKey: string = 'lastActive';\n static readonly neverDomainsKey: string = 'neverDomains';\n static readonly installedVersionKey: string = 'installedVersion';\n static readonly localeKey: string = 'locale';\n static readonly themeKey: string = 'theme';\n static readonly collapsedGroupingsKey: string = 'collapsedGroupings';\n static readonly autoConfirmFingerprints: string = 'autoConfirmFingerprints';\n static readonly dontShowCardsCurrentTab: string = 'dontShowCardsCurrentTab';\n static readonly dontShowIdentitiesCurrentTab: string = 'dontShowIdentitiesCurrentTab';\n static readonly defaultUriMatch: string = 'defaultUriMatch';\n static readonly pinProtectedKey: string = 'pinProtectedKey';\n static readonly protectedPin: string = 'protectedPin';\n static readonly clearClipboardKey: string = 'clearClipboardKey';\n static readonly eventCollectionKey: string = 'eventCollection';\n static readonly ssoCodeVerifierKey: string = 'ssoCodeVerifier';\n static readonly ssoStateKey: string = 'ssoState';\n static readonly biometricUnlockKey: string = 'biometric';\n static readonly biometricText: string = 'biometricText';\n static readonly biometricAwaitingAcceptance: string = 'biometricAwaitingAcceptance';\n static readonly biometricFingerprintValidated: string = 'biometricFingerprintValidated';\n\n readonly environmentUrlsKey: string = ConstantsService.environmentUrlsKey;\n readonly disableGaKey: string = ConstantsService.disableGaKey;\n readonly disableAddLoginNotificationKey: string = ConstantsService.disableAddLoginNotificationKey;\n readonly disableContextMenuItemKey: string = ConstantsService.disableContextMenuItemKey;\n readonly disableFaviconKey: string = ConstantsService.disableFaviconKey;\n readonly disableBadgeCounterKey: string = ConstantsService.disableBadgeCounterKey;\n readonly disableAutoTotpCopyKey: string = ConstantsService.disableAutoTotpCopyKey;\n readonly enableAutoFillOnPageLoadKey: string = ConstantsService.enableAutoFillOnPageLoadKey;\n readonly vaultTimeoutKey: string = ConstantsService.vaultTimeoutKey;\n readonly vaultTimeoutActionKey: string = ConstantsService.vaultTimeoutActionKey;\n readonly lastActiveKey: string = ConstantsService.lastActiveKey;\n readonly neverDomainsKey: string = ConstantsService.neverDomainsKey;\n readonly installedVersionKey: string = ConstantsService.installedVersionKey;\n readonly localeKey: string = ConstantsService.localeKey;\n readonly themeKey: string = ConstantsService.themeKey;\n readonly collapsedGroupingsKey: string = ConstantsService.collapsedGroupingsKey;\n readonly autoConfirmFingerprints: string = ConstantsService.autoConfirmFingerprints;\n readonly dontShowCardsCurrentTab: string = ConstantsService.dontShowCardsCurrentTab;\n readonly dontShowIdentitiesCurrentTab: string = ConstantsService.dontShowIdentitiesCurrentTab;\n readonly defaultUriMatch: string = ConstantsService.defaultUriMatch;\n readonly pinProtectedKey: string = ConstantsService.pinProtectedKey;\n readonly protectedPin: string = ConstantsService.protectedPin;\n readonly clearClipboardKey: string = ConstantsService.clearClipboardKey;\n readonly eventCollectionKey: string = ConstantsService.eventCollectionKey;\n readonly ssoCodeVerifierKey: string = ConstantsService.ssoCodeVerifierKey;\n readonly ssoStateKey: string = ConstantsService.ssoStateKey;\n readonly biometricUnlockKey: string = ConstantsService.biometricUnlockKey;\n readonly biometricText: string = ConstantsService.biometricText;\n readonly biometricAwaitingAcceptance: string = ConstantsService.biometricAwaitingAcceptance;\n readonly biometricFingerprintValidated: string = ConstantsService.biometricFingerprintValidated;\n}\n","import { EventType } from '../enums/eventType';\n\nexport abstract class EventService {\n collect: (eventType: EventType, cipherId?: string, uploadImmediately?: boolean) => Promise;\n uploadEvents: () => Promise;\n clearEvents: () => Promise;\n}\n","export class PasswordVerificationRequest {\n masterPasswordHash: string;\n}\n","import { CipherView } from '../models/view/cipherView';\nimport { SendView } from '../models/view/sendView';\n\nexport abstract class SearchService {\n clearIndex: () => void;\n isSearchable: (query: string) => boolean;\n indexCiphers: () => Promise;\n searchCiphers: (query: string,\n filter?: ((cipher: CipherView) => boolean) | (((cipher: CipherView) => boolean)[]),\n ciphers?: CipherView[]) => Promise;\n searchCiphersBasic: (ciphers: CipherView[], query: string, deleted?: boolean) => CipherView[];\n searchSends: (sends: SendView[], query: string) => SendView[];\n}\n","import { CipherString } from './cipherString';\n\nimport { View } from '../view/view';\n\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport default class Domain {\n protected buildDomainModel(domain: D, dataObj: any, map: any,\n alreadyEncrypted: boolean, notEncList: any[] = []) {\n for (const prop in map) {\n if (!map.hasOwnProperty(prop)) {\n continue;\n }\n\n const objProp = dataObj[(map[prop] || prop)];\n if (alreadyEncrypted === true || notEncList.indexOf(prop) > -1) {\n (domain as any)[prop] = objProp ? objProp : null;\n } else {\n (domain as any)[prop] = objProp ? new CipherString(objProp) : null;\n }\n }\n }\n protected buildDataModel(domain: D, dataObj: any, map: any, notCipherStringList: any[] = []) {\n for (const prop in map) {\n if (!map.hasOwnProperty(prop)) {\n continue;\n }\n\n const objProp = (domain as any)[(map[prop] || prop)];\n if (notCipherStringList.indexOf(prop) > -1) {\n (dataObj as any)[prop] = objProp != null ? objProp : null;\n } else {\n (dataObj as any)[prop] = objProp != null ? (objProp as CipherString).encryptedString : null;\n }\n }\n }\n\n protected async decryptObj(viewModel: T, map: any, orgId: string,\n key: SymmetricCryptoKey = null): Promise {\n const promises = [];\n const self: any = this;\n\n for (const prop in map) {\n if (!map.hasOwnProperty(prop)) {\n continue;\n }\n\n // tslint:disable-next-line\n (function (theProp) {\n const p = Promise.resolve().then(() => {\n const mapProp = map[theProp] || theProp;\n if (self[mapProp]) {\n return self[mapProp].decrypt(orgId, key);\n }\n return null;\n }).then((val: any) => {\n (viewModel as any)[theProp] = val;\n });\n promises.push(p);\n })(prop);\n }\n\n await Promise.all(promises);\n return viewModel;\n }\n}\n","import * as jq from 'jquery';\n\nimport {\n Component,\n ComponentFactoryResolver,\n Type,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { ModalComponent as BaseModalComponent } from 'jslib/angular/components/modal.component';\nimport { Utils } from 'jslib/misc/utils';\n\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\n\n@Component({\n selector: 'app-modal',\n template: ``,\n})\nexport class ModalComponent extends BaseModalComponent {\n el: any = null;\n\n constructor(componentFactoryResolver: ComponentFactoryResolver, messagingService: MessagingService) {\n super(componentFactoryResolver, messagingService);\n }\n\n ngOnDestroy() { /* Nothing */ }\n\n show(type: Type, parentContainer: ViewContainerRef, fade: boolean = true,\n setComponentParameters: (component: T) => void = null): T {\n this.parentContainer = parentContainer;\n this.fade = fade;\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(type);\n const componentRef = this.container.createComponent(factory);\n if (setComponentParameters != null) {\n setComponentParameters(componentRef.instance);\n }\n\n const modals = Array.from(document.querySelectorAll('.modal'));\n if (modals.length > 0) {\n this.el = jq(modals[0]);\n this.el.modal('show');\n\n this.el.on('show.bs.modal', () => {\n this.onShow.emit();\n this.messagingService.send('modalShow');\n });\n this.el.on('shown.bs.modal', () => {\n this.onShown.emit();\n this.messagingService.send('modalShown');\n if (!Utils.isMobileBrowser) {\n this.el.find('*[appAutoFocus]').focus();\n }\n });\n this.el.on('hide.bs.modal', () => {\n this.onClose.emit();\n this.messagingService.send('modalClose');\n });\n this.el.on('hidden.bs.modal', () => {\n this.onClosed.emit();\n this.messagingService.send('modalClosed');\n if (this.parentContainer != null) {\n this.parentContainer.clear();\n }\n });\n }\n\n return componentRef.instance;\n }\n\n close() {\n if (this.el != null) {\n this.el.modal('hide');\n }\n }\n}\n","import { BreachAccountResponse } from '../models/response/breachAccountResponse';\n\nexport abstract class AuditService {\n passwordLeaked: (password: string) => Promise;\n breachedAccounts: (username: string) => Promise;\n}\n","import { View } from './view';\n\nimport { Card } from '../domain/card';\n\nexport class CardView implements View {\n cardholderName: string = null;\n expMonth: string = null;\n expYear: string = null;\n code: string = null;\n\n // tslint:disable\n private _brand: string = null;\n private _number: string = null;\n private _subTitle: string = null;\n // tslint:enable\n\n constructor(c?: Card) {\n // ctor\n }\n\n get maskedCode(): string {\n return this.code != null ? '•'.repeat(this.code.length) : null;\n }\n\n get brand(): string {\n return this._brand;\n }\n set brand(value: string) {\n this._brand = value;\n this._subTitle = null;\n }\n\n get number(): string {\n return this._number;\n }\n set number(value: string) {\n this._number = value;\n this._subTitle = null;\n }\n\n get subTitle(): string {\n if (this._subTitle == null) {\n this._subTitle = this.brand;\n if (this.number != null && this.number.length >= 4) {\n if (this._subTitle != null && this._subTitle !== '') {\n this._subTitle += ', ';\n } else {\n this._subTitle = '';\n }\n\n // Show last 5 on amex, last 4 for all others\n const count = this.number.length >= 5 && this.number.match(new RegExp('^3[47]')) != null ? 5 : 4;\n this._subTitle += ('*' + this.number.substr(this.number.length - count));\n }\n }\n return this._subTitle;\n }\n\n get expiration(): string {\n if (!this.expMonth && !this.expYear) {\n return null;\n }\n\n let exp = this.expMonth != null ? ('0' + this.expMonth).slice(-2) : '__';\n exp += (' / ' + (this.expYear != null ? this.formatYear(this.expYear) : '____'));\n return exp;\n }\n\n private formatYear(year: string): string {\n return year.length === 2 ? '20' + year : year;\n }\n}\n","import { SecureNoteType } from '../../enums/secureNoteType';\n\nimport { View } from './view';\n\nimport { SecureNote } from '../domain/secureNote';\n\nexport class SecureNoteView implements View {\n type: SecureNoteType = null;\n\n constructor(n?: SecureNote) {\n if (!n) {\n return;\n }\n\n this.type = n.type;\n }\n\n get subTitle(): string {\n return null;\n }\n}\n","export abstract class TokenService {\n token: string;\n decodedToken: any;\n refreshToken: string;\n setTokens: (accessToken: string, refreshToken: string) => Promise;\n setToken: (token: string) => Promise;\n getToken: () => Promise;\n setRefreshToken: (refreshToken: string) => Promise;\n getRefreshToken: () => Promise;\n toggleTokens: () => Promise;\n setTwoFactorToken: (token: string, email: string) => Promise;\n getTwoFactorToken: (email: string) => Promise;\n clearTwoFactorToken: (email: string) => Promise;\n clearToken: () => Promise;\n decodeToken: () => any;\n getTokenExpirationDate: () => Date;\n tokenSecondsRemaining: (offsetSeconds?: number) => number;\n tokenNeedsRefresh: (minutes?: number) => boolean;\n getUserId: () => string;\n getEmail: () => string;\n getEmailVerified: () => boolean;\n getName: () => string;\n getPremium: () => boolean;\n getIssuer: () => string;\n}\n","import { DecryptParameters } from '../models/domain/decryptParameters';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nexport abstract class CryptoFunctionService {\n pbkdf2: (password: string | ArrayBuffer, salt: string | ArrayBuffer, algorithm: 'sha256' | 'sha512',\n iterations: number) => Promise;\n hkdf: (ikm: ArrayBuffer, salt: string | ArrayBuffer, info: string | ArrayBuffer,\n outputByteSize: number, algorithm: 'sha256' | 'sha512') => Promise;\n hkdfExpand: (prk: ArrayBuffer, info: string | ArrayBuffer, outputByteSize: number,\n algorithm: 'sha256' | 'sha512') => Promise;\n hash: (value: string | ArrayBuffer, algorithm: 'sha1' | 'sha256' | 'sha512' | 'md5') => Promise;\n hmac: (value: ArrayBuffer, key: ArrayBuffer, algorithm: 'sha1' | 'sha256' | 'sha512') => Promise;\n compare: (a: ArrayBuffer, b: ArrayBuffer) => Promise;\n hmacFast: (value: ArrayBuffer | string, key: ArrayBuffer | string, algorithm: 'sha1' | 'sha256' | 'sha512') =>\n Promise;\n compareFast: (a: ArrayBuffer | string, b: ArrayBuffer | string) => Promise;\n aesEncrypt: (data: ArrayBuffer, iv: ArrayBuffer, key: ArrayBuffer) => Promise;\n aesDecryptFastParameters: (data: string, iv: string, mac: string, key: SymmetricCryptoKey) =>\n DecryptParameters;\n aesDecryptFast: (parameters: DecryptParameters) => Promise;\n aesDecrypt: (data: ArrayBuffer, iv: ArrayBuffer, key: ArrayBuffer) => Promise;\n rsaEncrypt: (data: ArrayBuffer, publicKey: ArrayBuffer, algorithm: 'sha1' | 'sha256') => Promise;\n rsaDecrypt: (data: ArrayBuffer, privateKey: ArrayBuffer, algorithm: 'sha1' | 'sha256') => Promise;\n rsaExtractPublicKey: (privateKey: ArrayBuffer) => Promise;\n rsaGenerateKeyPair: (length: 1024 | 2048 | 4096) => Promise<[ArrayBuffer, ArrayBuffer]>;\n randomBytes: (length: number) => Promise;\n}\n","import { EncryptionType } from '../../enums/encryptionType';\n\nimport { CryptoService } from '../../abstractions/crypto.service';\n\nimport { Utils } from '../../misc/utils';\n\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class CipherString {\n encryptedString?: string;\n encryptionType?: EncryptionType;\n decryptedValue?: string;\n data?: string;\n iv?: string;\n mac?: string;\n\n constructor(encryptedStringOrType: string | EncryptionType, data?: string, iv?: string, mac?: string) {\n if (data != null) {\n // data and header\n const encType = encryptedStringOrType as EncryptionType;\n\n if (iv != null) {\n this.encryptedString = encType + '.' + iv + '|' + data;\n } else {\n this.encryptedString = encType + '.' + data;\n }\n\n // mac\n if (mac != null) {\n this.encryptedString += ('|' + mac);\n }\n\n this.encryptionType = encType;\n this.data = data;\n this.iv = iv;\n this.mac = mac;\n\n return;\n }\n\n this.encryptedString = encryptedStringOrType as string;\n if (!this.encryptedString) {\n return;\n }\n\n const headerPieces = this.encryptedString.split('.');\n let encPieces: string[] = null;\n\n if (headerPieces.length === 2) {\n try {\n this.encryptionType = parseInt(headerPieces[0], null);\n encPieces = headerPieces[1].split('|');\n } catch (e) {\n return;\n }\n } else {\n encPieces = this.encryptedString.split('|');\n this.encryptionType = encPieces.length === 3 ? EncryptionType.AesCbc128_HmacSha256_B64 :\n EncryptionType.AesCbc256_B64;\n }\n\n switch (this.encryptionType) {\n case EncryptionType.AesCbc128_HmacSha256_B64:\n case EncryptionType.AesCbc256_HmacSha256_B64:\n if (encPieces.length !== 3) {\n return;\n }\n\n this.iv = encPieces[0];\n this.data = encPieces[1];\n this.mac = encPieces[2];\n break;\n case EncryptionType.AesCbc256_B64:\n if (encPieces.length !== 2) {\n return;\n }\n\n this.iv = encPieces[0];\n this.data = encPieces[1];\n break;\n case EncryptionType.Rsa2048_OaepSha256_B64:\n case EncryptionType.Rsa2048_OaepSha1_B64:\n if (encPieces.length !== 1) {\n return;\n }\n\n this.data = encPieces[0];\n break;\n default:\n return;\n }\n }\n\n async decrypt(orgId: string, key: SymmetricCryptoKey = null): Promise {\n if (this.decryptedValue != null) {\n return this.decryptedValue;\n }\n\n let cryptoService: CryptoService;\n const containerService = (Utils.global as any).bitwardenContainerService;\n if (containerService) {\n cryptoService = containerService.getCryptoService();\n } else {\n throw new Error('global bitwardenContainerService not initialized.');\n }\n\n try {\n if (key == null) {\n key = await cryptoService.getOrgKey(orgId);\n }\n this.decryptedValue = await cryptoService.decryptToUtf8(this, key);\n } catch (e) {\n this.decryptedValue = '[error: cannot decrypt]';\n }\n return this.decryptedValue;\n }\n}\n","import {\n Component,\n Input,\n OnChanges,\n} from '@angular/core';\n\nimport { CipherType } from '../../enums/cipherType';\n\nimport { CipherView } from '../../models/view/cipherView';\n\nimport { EnvironmentService } from '../../abstractions/environment.service';\nimport { StateService } from '../../abstractions/state.service';\n\nimport { ConstantsService } from '../../services/constants.service';\n\nimport { Utils } from '../../misc/utils';\n\nconst IconMap: any = {\n 'fa-globe': String.fromCharCode(0xf0ac),\n 'fa-sticky-note-o': String.fromCharCode(0xf24a),\n 'fa-id-card-o': String.fromCharCode(0xf2c3),\n 'fa-credit-card': String.fromCharCode(0xf09d),\n 'fa-android': String.fromCharCode(0xf17b),\n 'fa-apple': String.fromCharCode(0xf179),\n};\n\n@Component({\n selector: 'app-vault-icon',\n templateUrl: 'icon.component.html',\n})\nexport class IconComponent implements OnChanges {\n @Input() cipher: CipherView;\n icon: string;\n image: string;\n fallbackImage: string;\n imageEnabled: boolean;\n\n private iconsUrl: string;\n\n constructor(environmentService: EnvironmentService, protected stateService: StateService) {\n this.iconsUrl = environmentService.iconsUrl;\n if (!this.iconsUrl) {\n if (environmentService.baseUrl) {\n this.iconsUrl = environmentService.baseUrl + '/icons';\n } else {\n this.iconsUrl = 'https://icons.bitwarden.net';\n }\n }\n }\n\n async ngOnChanges() {\n this.imageEnabled = !(await this.stateService.get(ConstantsService.disableFaviconKey));\n this.load();\n }\n\n get iconCode(): string {\n return IconMap[this.icon];\n }\n\n protected load() {\n switch (this.cipher.type) {\n case CipherType.Login:\n this.icon = 'fa-globe';\n this.setLoginIcon();\n break;\n case CipherType.SecureNote:\n this.icon = 'fa-sticky-note-o';\n break;\n case CipherType.Card:\n this.icon = 'fa-credit-card';\n break;\n case CipherType.Identity:\n this.icon = 'fa-id-card-o';\n break;\n default:\n break;\n }\n }\n\n private setLoginIcon() {\n if (this.cipher.login.uri) {\n let hostnameUri = this.cipher.login.uri;\n let isWebsite = false;\n\n if (hostnameUri.indexOf('androidapp://') === 0) {\n this.icon = 'fa-android';\n this.image = null;\n } else if (hostnameUri.indexOf('iosapp://') === 0) {\n this.icon = 'fa-apple';\n this.image = null;\n } else if (this.imageEnabled && hostnameUri.indexOf('://') === -1 && hostnameUri.indexOf('.') > -1) {\n hostnameUri = 'http://' + hostnameUri;\n isWebsite = true;\n } else if (this.imageEnabled) {\n isWebsite = hostnameUri.indexOf('http') === 0 && hostnameUri.indexOf('.') > -1;\n }\n\n if (this.imageEnabled && isWebsite) {\n try {\n this.image = this.iconsUrl + '/' + Utils.getHostname(hostnameUri) + '/icon.png';\n this.fallbackImage = 'images/fa-globe.png';\n } catch (e) { }\n }\n } else {\n this.image = null;\n }\n }\n}\n","
\n \"\"\n \n
\n","import { Injectable } from '@angular/core';\n\nimport { BroadcasterService as BaseBroadcasterService } from '../../services/broadcaster.service';\n\n@Injectable()\nexport class BroadcasterService extends BaseBroadcasterService {\n}\n","import { CipherString } from '../models/domain/cipherString';\n\nexport abstract class VaultTimeoutService {\n biometricLocked: boolean;\n pinProtectedKey: CipherString;\n isLocked: () => Promise;\n checkVaultTimeout: () => Promise;\n lock: (allowSoftLock?: boolean) => Promise;\n logOut: () => Promise;\n setVaultTimeoutOptions: (vaultTimeout: number, vaultTimeoutAction: string) => Promise;\n isPinLockSet: () => Promise<[boolean, boolean]>;\n isBiometricLockSet: () => Promise;\n clear: () => Promise;\n}\n","export enum SecureNoteType {\n Generic = 0,\n}\n","export enum TwoFactorProviderType {\n Authenticator = 0,\n Email = 1,\n Duo = 2,\n Yubikey = 3,\n U2f = 4,\n Remember = 5,\n OrganizationDuo = 6,\n}\n","export abstract class TotpService {\n getCode: (key: string) => Promise;\n getTimeInterval: (key: string) => number;\n isAutoCopyEnabled: () => Promise;\n}\n","import {\n Component,\n Input,\n OnInit,\n} from '@angular/core';\n\nimport { PaymentMethodType } from 'jslib/enums/paymentMethodType';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { WebConstants } from '../../services/webConstants';\n\nconst StripeElementStyle = {\n base: {\n color: '#333333',\n fontFamily: '\"Open Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif, ' +\n '\"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"',\n fontSize: '14px',\n fontSmoothing: 'antialiased',\n },\n invalid: {\n color: '#333333',\n },\n};\n\nconst StripeElementClasses = {\n focus: 'is-focused',\n empty: 'is-empty',\n invalid: 'is-invalid',\n};\n\n@Component({\n selector: 'app-payment',\n templateUrl: 'payment.component.html',\n})\nexport class PaymentComponent implements OnInit {\n @Input() showMethods = true;\n @Input() showOptions = true;\n @Input() method = PaymentMethodType.Card;\n @Input() hideBank = false;\n @Input() hidePaypal = false;\n @Input() hideCredit = false;\n\n bank: any = {\n routing_number: null,\n account_number: null,\n account_holder_name: null,\n account_holder_type: '',\n currency: 'USD',\n country: 'US',\n };\n\n paymentMethodType = PaymentMethodType;\n\n private btScript: HTMLScriptElement;\n private btInstance: any = null;\n private stripeScript: HTMLScriptElement;\n private stripe: any = null;\n private stripeElements: any = null;\n private stripeCardNumberElement: any = null;\n private stripeCardExpiryElement: any = null;\n private stripeCardCvcElement: any = null;\n\n constructor(private platformUtilsService: PlatformUtilsService, private apiService: ApiService) {\n this.stripeScript = window.document.createElement('script');\n this.stripeScript.src = 'https://js.stripe.com/v3/';\n this.stripeScript.async = true;\n this.stripeScript.onload = () => {\n this.stripe = (window as any).Stripe(this.platformUtilsService.isDev() ?\n WebConstants.stripeTestKey : WebConstants.stripeLiveKey);\n this.stripeElements = this.stripe.elements();\n this.setStripeElement();\n };\n this.btScript = window.document.createElement('script');\n this.btScript.src = 'scripts/dropin.js';\n this.btScript.async = true;\n }\n\n ngOnInit() {\n if (!this.showOptions) {\n this.hidePaypal = this.method !== PaymentMethodType.PayPal;\n this.hideBank = this.method !== PaymentMethodType.BankAccount;\n this.hideCredit = this.method !== PaymentMethodType.Credit;\n }\n window.document.head.appendChild(this.stripeScript);\n if (!this.hidePaypal) {\n window.document.head.appendChild(this.btScript);\n }\n }\n\n ngOnDestroy() {\n window.document.head.removeChild(this.stripeScript);\n window.setTimeout(() => {\n Array.from(window.document.querySelectorAll('iframe')).forEach(el => {\n if (el.src != null && el.src.indexOf('stripe') > -1) {\n try {\n window.document.body.removeChild(el);\n } catch { }\n }\n });\n }, 500);\n if (!this.hidePaypal) {\n window.document.head.removeChild(this.btScript);\n window.setTimeout(() => {\n Array.from(window.document.head.querySelectorAll('script')).forEach(el => {\n if (el.src != null && el.src.indexOf('paypal') > -1) {\n try {\n window.document.head.removeChild(el);\n } catch { }\n }\n });\n const btStylesheet = window.document.head.querySelector('#braintree-dropin-stylesheet');\n if (btStylesheet != null) {\n try {\n window.document.head.removeChild(btStylesheet);\n } catch { }\n }\n }, 500);\n }\n }\n\n changeMethod() {\n this.btInstance = null;\n\n if (this.method === PaymentMethodType.PayPal) {\n window.setTimeout(() => {\n (window as any).braintree.dropin.create({\n authorization: this.platformUtilsService.isDev() ?\n WebConstants.btSandboxKey : WebConstants.btProductionKey,\n container: '#bt-dropin-container',\n paymentOptionPriority: ['paypal'],\n paypal: {\n flow: 'vault',\n buttonStyle: {\n label: 'pay',\n size: 'medium',\n shape: 'pill',\n color: 'blue',\n },\n },\n }, (createErr: any, instance: any) => {\n if (createErr != null) {\n // tslint:disable-next-line\n console.error(createErr);\n return;\n }\n this.btInstance = instance;\n });\n }, 250);\n } else {\n this.setStripeElement();\n }\n }\n\n createPaymentToken(): Promise<[string, PaymentMethodType]> {\n return new Promise((resolve, reject) => {\n if (this.method === PaymentMethodType.Credit) {\n resolve([null, this.method]);\n } else if (this.method === PaymentMethodType.PayPal) {\n this.btInstance.requestPaymentMethod().then((payload: any) => {\n resolve([payload.nonce, this.method]);\n }).catch((err: any) => {\n reject(err.message);\n });\n } else if (this.method === PaymentMethodType.Card || this.method === PaymentMethodType.BankAccount) {\n if (this.method === PaymentMethodType.Card) {\n this.apiService.postSetupPayment().then(clientSecret =>\n this.stripe.handleCardSetup(clientSecret, this.stripeCardNumberElement))\n .then((result: any) => {\n if (result.error) {\n reject(result.error.message);\n } else if (result.setupIntent && result.setupIntent.status === 'succeeded') {\n resolve([result.setupIntent.payment_method, this.method]);\n } else {\n reject();\n }\n });\n } else {\n this.stripe.createToken('bank_account', this.bank).then((result: any) => {\n if (result.error) {\n reject(result.error.message);\n } else if (result.token && result.token.id != null) {\n resolve([result.token.id, this.method]);\n } else {\n reject();\n }\n });\n }\n }\n });\n }\n\n handleStripeCardPayment(clientSecret: string, successCallback: () => Promise): Promise {\n return new Promise((resolve, reject) => {\n if (this.showMethods && this.stripeCardNumberElement == null) {\n reject();\n return;\n }\n const handleCardPayment = () => this.showMethods ?\n this.stripe.handleCardSetup(clientSecret, this.stripeCardNumberElement) :\n this.stripe.handleCardSetup(clientSecret);\n return handleCardPayment().then(async (result: any) => {\n if (result.error) {\n reject(result.error.message);\n } else if (result.paymentIntent && result.paymentIntent.status === 'succeeded') {\n if (successCallback != null) {\n await successCallback();\n }\n resolve();\n } else {\n reject();\n }\n });\n });\n }\n\n private setStripeElement() {\n window.setTimeout(() => {\n if (this.showMethods && this.method === PaymentMethodType.Card) {\n if (this.stripeCardNumberElement == null) {\n this.stripeCardNumberElement = this.stripeElements.create('cardNumber', {\n style: StripeElementStyle,\n classes: StripeElementClasses,\n placeholder: '',\n });\n }\n if (this.stripeCardExpiryElement == null) {\n this.stripeCardExpiryElement = this.stripeElements.create('cardExpiry', {\n style: StripeElementStyle,\n classes: StripeElementClasses,\n });\n }\n if (this.stripeCardCvcElement == null) {\n this.stripeCardCvcElement = this.stripeElements.create('cardCvc', {\n style: StripeElementStyle,\n classes: StripeElementClasses,\n placeholder: '',\n });\n }\n this.stripeCardNumberElement.mount('#stripe-card-number-element');\n this.stripeCardExpiryElement.mount('#stripe-card-expiry-element');\n this.stripeCardCvcElement.mount('#stripe-card-cvc-element');\n }\n }, 50);\n }\n}\n","
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n\n
\n
\n \n
\n
\n
\n \"Visa,\n
\n
\n \n
\n
\n
\n
\n \n \n \n \n
\n
\n
\n
\n
\n\n \n {{'verifyBankAccountInitialDesc' | i18n}} {{'verifyBankAccountFailureWarning' | i18n}}\n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n\n
\n
\n {{'paypalClickSubmit' | i18n}}\n
\n
\n\n \n {{'makeSureEnoughCredit' | i18n}}\n \n\n","export enum FieldType {\n Text = 0,\n Hidden = 1,\n Boolean = 2,\n}\n","import { View } from './view';\n\nimport { Folder } from '../domain/folder';\nimport { ITreeNodeObject } from '../domain/treeNode';\n\nexport class FolderView implements View, ITreeNodeObject {\n id: string = null;\n name: string = null;\n revisionDate: Date = null;\n\n constructor(f?: Folder) {\n if (!f) {\n return;\n }\n\n this.id = f.id;\n this.revisionDate = f.revisionDate;\n }\n}\n","import {\n Component,\n Input,\n OnChanges,\n OnInit,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport { CryptoFunctionService } from 'jslib/abstractions/cryptoFunction.service';\nimport { StateService } from 'jslib/abstractions/state.service';\n\nimport { Utils } from 'jslib/misc/utils';\n\n@Component({\n selector: 'app-avatar',\n template: '',\n})\nexport class AvatarComponent implements OnChanges, OnInit {\n @Input() data: string;\n @Input() email: string;\n @Input() size = 45;\n @Input() charCount = 2;\n @Input() textColor = '#ffffff';\n @Input() fontSize = 20;\n @Input() fontWeight = 300;\n @Input() dynamic = false;\n @Input() circle = false;\n\n src: string;\n\n constructor(public sanitizer: DomSanitizer, private cryptoFunctionService: CryptoFunctionService,\n private stateService: StateService) { }\n\n ngOnInit() {\n if (!this.dynamic) {\n this.generate();\n }\n }\n\n ngOnChanges() {\n if (this.dynamic) {\n this.generate();\n }\n }\n\n private async generate() {\n const enableGravatars = await this.stateService.get('enableGravatars');\n if (enableGravatars && this.email != null) {\n const hashBytes = await this.cryptoFunctionService.hash(this.email.toLowerCase().trim(), 'md5');\n const hash = Utils.fromBufferToHex(hashBytes).toLowerCase();\n this.src = 'https://www.gravatar.com/avatar/' + hash + '?s=' + this.size + '&r=pg&d=retro';\n } else {\n let chars: string = null;\n const upperData = this.data.toUpperCase();\n\n if (this.charCount > 1) {\n chars = this.getFirstLetters(upperData, this.charCount);\n }\n if (chars == null) {\n chars = upperData.substr(0, this.charCount);\n }\n\n const charObj = this.getCharText(chars);\n const color = this.stringToColor(upperData);\n const svg = this.getSvg(this.size, color);\n svg.appendChild(charObj);\n const html = window.document.createElement('div').appendChild(svg).outerHTML;\n const svgHtml = window.btoa(unescape(encodeURIComponent(html)));\n this.src = 'data:image/svg+xml;base64,' + svgHtml;\n }\n }\n\n private stringToColor(str: string): string {\n let hash = 0;\n for (let i = 0; i < str.length; i++) {\n // tslint:disable-next-line\n hash = str.charCodeAt(i) + ((hash << 5) - hash);\n }\n let color = '#';\n for (let i = 0; i < 3; i++) {\n // tslint:disable-next-line\n const value = (hash >> (i * 8)) & 0xFF;\n color += ('00' + value.toString(16)).substr(-2);\n }\n return color;\n }\n\n private getFirstLetters(data: string, count: number): string {\n const parts = data.split(' ');\n if (parts.length > 1) {\n let text = '';\n for (let i = 0; i < count; i++) {\n text += parts[i].substr(0, 1);\n }\n return text;\n }\n return null;\n }\n\n private getSvg(size: number, color: string): HTMLElement {\n const svgTag = window.document.createElement('svg');\n svgTag.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n svgTag.setAttribute('pointer-events', 'none');\n svgTag.setAttribute('width', size.toString());\n svgTag.setAttribute('height', size.toString());\n svgTag.style.backgroundColor = color;\n svgTag.style.width = size + 'px';\n svgTag.style.height = size + 'px';\n return svgTag;\n }\n\n private getCharText(character: string): HTMLElement {\n const textTag = window.document.createElement('text');\n textTag.setAttribute('text-anchor', 'middle');\n textTag.setAttribute('y', '50%');\n textTag.setAttribute('x', '50%');\n textTag.setAttribute('dy', '0.35em');\n textTag.setAttribute('pointer-events', 'auto');\n textTag.setAttribute('fill', this.textColor);\n textTag.setAttribute('font-family', '\"Open Sans\",\"Helvetica Neue\",Helvetica,Arial,' +\n 'sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\"');\n textTag.textContent = character;\n textTag.style.fontWeight = this.fontWeight.toString();\n textTag.style.fontSize = this.fontSize + 'px';\n return textTag;\n }\n}\n","import { CollectionData } from '../data/collectionData';\n\nimport { CollectionView } from '../view/collectionView';\n\nimport { CipherString } from './cipherString';\nimport Domain from './domainBase';\n\nexport class Collection extends Domain {\n id: string;\n organizationId: string;\n name: CipherString;\n externalId: string;\n readOnly: boolean;\n hidePasswords: boolean;\n\n constructor(obj?: CollectionData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.buildDomainModel(this, obj, {\n id: null,\n organizationId: null,\n name: null,\n externalId: null,\n readOnly: null,\n hidePasswords: null,\n }, alreadyEncrypted, ['id', 'organizationId', 'externalId', 'readOnly', 'hidePasswords']);\n }\n\n decrypt(): Promise {\n return this.decryptObj(new CollectionView(this), {\n name: null,\n }, this.organizationId);\n }\n}\n","export enum PolicyType {\n TwoFactorAuthentication = 0, // Requires users to have 2fa enabled\n MasterPassword = 1, // Sets minimum requirements for master password complexity\n PasswordGenerator = 2, // Sets minimum requirements/default type for generated passwords/passphrases\n SingleOrg = 3, // Allows users to only be apart of one organization\n RequireSso = 4, // Requires users to authenticate with SSO\n PersonalOwnership = 5, // Disables personal vault ownership for adding/cloning items\n DisableSend = 6, // Disables the ability to create and edit Bitwarden Sends\n}\n","import {\n Component,\n EventEmitter,\n Output,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { OrganizationTaxInfoUpdateRequest } from 'jslib/models/request/organizationTaxInfoUpdateRequest';\nimport { TaxInfoUpdateRequest } from 'jslib/models/request/taxInfoUpdateRequest';\nimport { TaxRateResponse } from 'jslib/models/response/taxRateResponse';\n\n@Component({\n selector: 'app-tax-info',\n templateUrl: 'tax-info.component.html',\n})\nexport class TaxInfoComponent {\n @Output() onCountryChanged = new EventEmitter();\n\n loading: boolean = true;\n organizationId: string;\n taxInfo: any = {\n taxId: null,\n line1: null,\n line2: null,\n city: null,\n state: null,\n postalCode: null,\n country: 'US',\n includeTaxId: false,\n };\n\n taxRates: TaxRateResponse[];\n\n private pristine: any = {\n taxId: null,\n line1: null,\n line2: null,\n city: null,\n state: null,\n postalCode: null,\n country: 'US',\n includeTaxId: false,\n };\n\n constructor(private apiService: ApiService, private route: ActivatedRoute) { }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n if (this.organizationId) {\n try {\n const taxInfo = await this.apiService.getOrganizationTaxInfo(this.organizationId);\n if (taxInfo) {\n this.taxInfo.taxId = taxInfo.taxId;\n this.taxInfo.state = taxInfo.state;\n this.taxInfo.line1 = taxInfo.line1;\n this.taxInfo.line2 = taxInfo.line2;\n this.taxInfo.city = taxInfo.city;\n this.taxInfo.state = taxInfo.state;\n this.taxInfo.postalCode = taxInfo.postalCode;\n this.taxInfo.country = taxInfo.country || 'US';\n this.taxInfo.includeTaxId = this.taxInfo.country !== 'US' && (\n !!taxInfo.taxId\n || !!taxInfo.line1\n || !!taxInfo.line2\n || !!taxInfo.city\n || !!taxInfo.state);\n }\n } catch { }\n } else {\n const taxInfo = await this.apiService.getTaxInfo();\n if (taxInfo) {\n this.taxInfo.postalCode = taxInfo.postalCode;\n this.taxInfo.country = taxInfo.country || 'US';\n }\n }\n this.pristine = Object.assign({}, this.taxInfo);\n // If not the default (US) then trigger onCountryChanged\n if (this.taxInfo.country !== 'US') {\n this.onCountryChanged.emit();\n }\n });\n\n const taxRates = await this.apiService.getTaxRates();\n this.taxRates = taxRates.data;\n this.loading = false;\n }\n\n get taxRate() {\n if (this.taxRates != null) {\n const localTaxRate = this.taxRates.find(x =>\n x.country === this.taxInfo.country &&\n x.postalCode === this.taxInfo.postalCode\n );\n return localTaxRate?.rate ?? null;\n }\n }\n\n getTaxInfoRequest(): TaxInfoUpdateRequest {\n if (this.organizationId) {\n const request = new OrganizationTaxInfoUpdateRequest();\n request.taxId = this.taxInfo.taxId;\n request.state = this.taxInfo.state;\n request.line1 = this.taxInfo.line1;\n request.line2 = this.taxInfo.line2;\n request.city = this.taxInfo.city;\n request.state = this.taxInfo.state;\n request.postalCode = this.taxInfo.postalCode;\n request.country = this.taxInfo.country;\n return request;\n } else {\n const request = new TaxInfoUpdateRequest();\n request.postalCode = this.taxInfo.postalCode;\n request.country = this.taxInfo.country;\n return request;\n }\n }\n\n submitTaxInfo(): Promise {\n if (!this.hasChanged()) {\n return new Promise(resolve => { resolve(); });\n }\n const request = this.getTaxInfoRequest();\n return this.organizationId ? this.apiService.putOrganizationTaxInfo(this.organizationId,\n request as OrganizationTaxInfoUpdateRequest) : this.apiService.putTaxInfo(request);\n }\n\n changeCountry() {\n if (this.taxInfo.country === 'US') {\n this.taxInfo.includeTaxId = false;\n this.taxInfo.taxId = null;\n this.taxInfo.line1 = null;\n this.taxInfo.line2 = null;\n this.taxInfo.city = null;\n this.taxInfo.state = null;\n }\n this.onCountryChanged.emit();\n }\n\n private hasChanged(): boolean {\n for (const key in this.taxInfo) {\n if (this.pristine.hasOwnProperty(key) && this.pristine[key] !== this.taxInfo[key]) {\n return true;\n }\n }\n return false;\n }\n}\n","
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n","import { CipherType } from '../../enums/cipherType';\n\nimport { Cipher } from '../domain/cipher';\n\nimport { AttachmentView } from './attachmentView';\nimport { CardView } from './cardView';\nimport { FieldView } from './fieldView';\nimport { IdentityView } from './identityView';\nimport { LoginView } from './loginView';\nimport { PasswordHistoryView } from './passwordHistoryView';\nimport { SecureNoteView } from './secureNoteView';\nimport { View } from './view';\n\nexport class CipherView implements View {\n id: string = null;\n organizationId: string = null;\n folderId: string = null;\n name: string = null;\n notes: string = null;\n type: CipherType = null;\n favorite = false;\n organizationUseTotp = false;\n edit = false;\n viewPassword = true;\n localData: any;\n login = new LoginView();\n identity = new IdentityView();\n card = new CardView();\n secureNote = new SecureNoteView();\n attachments: AttachmentView[] = null;\n fields: FieldView[] = null;\n passwordHistory: PasswordHistoryView[] = null;\n collectionIds: string[] = null;\n revisionDate: Date = null;\n deletedDate: Date = null;\n\n constructor(c?: Cipher) {\n if (!c) {\n return;\n }\n\n this.id = c.id;\n this.organizationId = c.organizationId;\n this.folderId = c.folderId;\n this.favorite = c.favorite;\n this.organizationUseTotp = c.organizationUseTotp;\n this.edit = c.edit;\n this.viewPassword = c.viewPassword;\n this.type = c.type;\n this.localData = c.localData;\n this.collectionIds = c.collectionIds;\n this.revisionDate = c.revisionDate;\n this.deletedDate = c.deletedDate;\n }\n\n get subTitle(): string {\n switch (this.type) {\n case CipherType.Login:\n return this.login.subTitle;\n case CipherType.SecureNote:\n return this.secureNote.subTitle;\n case CipherType.Card:\n return this.card.subTitle;\n case CipherType.Identity:\n return this.identity.subTitle;\n default:\n break;\n }\n\n return null;\n }\n\n get hasPasswordHistory(): boolean {\n return this.passwordHistory && this.passwordHistory.length > 0;\n }\n\n get hasAttachments(): boolean {\n return this.attachments && this.attachments.length > 0;\n }\n\n get hasOldAttachments(): boolean {\n if (this.hasAttachments) {\n for (let i = 0; i < this.attachments.length; i++) {\n if (this.attachments[i].key == null) {\n return true;\n }\n }\n }\n return false;\n }\n\n get hasFields(): boolean {\n return this.fields && this.fields.length > 0;\n }\n\n get passwordRevisionDisplayDate(): Date {\n if (this.type !== CipherType.Login || this.login == null) {\n return null;\n } else if (this.login.password == null || this.login.password === '') {\n return null;\n }\n return this.login.passwordRevisionDate;\n }\n\n get isDeleted(): boolean {\n return this.deletedDate != null;\n }\n}\n","import { View } from './view';\n\nimport { Identity } from '../domain/identity';\n\nimport { Utils } from '../../misc/utils';\n\nexport class IdentityView implements View {\n title: string = null;\n middleName: string = null;\n address1: string = null;\n address2: string = null;\n address3: string = null;\n city: string = null;\n state: string = null;\n postalCode: string = null;\n country: string = null;\n company: string = null;\n email: string = null;\n phone: string = null;\n ssn: string = null;\n username: string = null;\n passportNumber: string = null;\n licenseNumber: string = null;\n\n // tslint:disable\n private _firstName: string = null;\n private _lastName: string = null;\n private _subTitle: string = null;\n // tslint:enable\n\n constructor(i?: Identity) {\n // ctor\n }\n\n get firstName(): string {\n return this._firstName;\n }\n set firstName(value: string) {\n this._firstName = value;\n this._subTitle = null;\n }\n\n get lastName(): string {\n return this._lastName;\n }\n set lastName(value: string) {\n this._lastName = value;\n this._subTitle = null;\n }\n\n get subTitle(): string {\n if (this._subTitle == null && (this.firstName != null || this.lastName != null)) {\n this._subTitle = '';\n if (this.firstName != null) {\n this._subTitle = this.firstName;\n }\n if (this.lastName != null) {\n if (this._subTitle !== '') {\n this._subTitle += ' ';\n }\n this._subTitle += this.lastName;\n }\n }\n\n return this._subTitle;\n }\n\n get fullName(): string {\n if (this.title != null || this.firstName != null || this.middleName != null || this.lastName != null) {\n let name = '';\n if (this.title != null) {\n name += (this.title + ' ');\n }\n if (this.firstName != null) {\n name += (this.firstName + ' ');\n }\n if (this.middleName != null) {\n name += (this.middleName + ' ');\n }\n if (this.lastName != null) {\n name += this.lastName;\n }\n return name.trim();\n }\n\n return null;\n }\n\n get fullAddress(): string {\n let address = this.address1;\n if (!Utils.isNullOrWhitespace(this.address2)) {\n if (!Utils.isNullOrWhitespace(address)) {\n address += ', ';\n }\n address += this.address2;\n }\n if (!Utils.isNullOrWhitespace(this.address3)) {\n if (!Utils.isNullOrWhitespace(address)) {\n address += ', ';\n }\n address += this.address3;\n }\n return address;\n }\n\n get fullAddressPart2(): string {\n if (this.city == null && this.state == null && this.postalCode == null) {\n return null;\n }\n const city = this.city || '-';\n const state = this.state;\n const postalCode = this.postalCode || '-';\n let addressPart2 = city;\n if (!Utils.isNullOrWhitespace(state)) {\n addressPart2 += ', ' + state;\n }\n addressPart2 += ', ' + postalCode;\n return addressPart2;\n }\n}\n","import { CollectionDetailsResponse } from '../response/collectionResponse';\n\nexport class CollectionData {\n id: string;\n organizationId: string;\n name: string;\n externalId: string;\n readOnly: boolean;\n\n constructor(response: CollectionDetailsResponse) {\n this.id = response.id;\n this.organizationId = response.organizationId;\n this.name = response.name;\n this.externalId = response.externalId;\n this.readOnly = response.readOnly;\n }\n}\n","import { View } from './view';\n\nimport { Collection } from '../domain/collection';\nimport { ITreeNodeObject } from '../domain/treeNode';\n\nimport { CollectionGroupDetailsResponse } from '../response/collectionResponse';\n\nexport class CollectionView implements View, ITreeNodeObject {\n id: string = null;\n organizationId: string = null;\n name: string = null;\n externalId: string = null;\n readOnly: boolean = null;\n hidePasswords: boolean = null;\n\n constructor(c?: Collection | CollectionGroupDetailsResponse) {\n if (!c) {\n return;\n }\n\n this.id = c.id;\n this.organizationId = c.organizationId;\n this.externalId = c.externalId;\n if (c instanceof Collection) {\n this.readOnly = c.readOnly;\n this.hidePasswords = c.hidePasswords;\n }\n }\n}\n","export enum OrganizationUserStatusType {\n Invited = 0,\n Accepted = 1,\n Confirmed = 2,\n}\n","import { CipherType } from '../../enums/cipherType';\n\nimport { AttachmentData } from './attachmentData';\nimport { CardData } from './cardData';\nimport { FieldData } from './fieldData';\nimport { IdentityData } from './identityData';\nimport { LoginData } from './loginData';\nimport { PasswordHistoryData } from './passwordHistoryData';\nimport { SecureNoteData } from './secureNoteData';\n\nimport { CipherResponse } from '../response/cipherResponse';\n\nexport class CipherData {\n id: string;\n organizationId: string;\n folderId: string;\n userId: string;\n edit: boolean;\n viewPassword: boolean;\n organizationUseTotp: boolean;\n favorite: boolean;\n revisionDate: string;\n type: CipherType;\n sizeName: string;\n name: string;\n notes: string;\n login?: LoginData;\n secureNote?: SecureNoteData;\n card?: CardData;\n identity?: IdentityData;\n fields?: FieldData[];\n attachments?: AttachmentData[];\n passwordHistory?: PasswordHistoryData[];\n collectionIds?: string[];\n deletedDate: string;\n\n constructor(response?: CipherResponse, userId?: string, collectionIds?: string[]) {\n if (response == null) {\n return;\n }\n\n this.id = response.id;\n this.organizationId = response.organizationId;\n this.folderId = response.folderId;\n this.userId = userId;\n this.edit = response.edit;\n this.viewPassword = response.viewPassword;\n this.organizationUseTotp = response.organizationUseTotp;\n this.favorite = response.favorite;\n this.revisionDate = response.revisionDate;\n this.type = response.type;\n this.name = response.name;\n this.notes = response.notes;\n this.collectionIds = collectionIds != null ? collectionIds : response.collectionIds;\n this.deletedDate = response.deletedDate;\n\n switch (this.type) {\n case CipherType.Login:\n this.login = new LoginData(response.login);\n break;\n case CipherType.SecureNote:\n this.secureNote = new SecureNoteData(response.secureNote);\n break;\n case CipherType.Card:\n this.card = new CardData(response.card);\n break;\n case CipherType.Identity:\n this.identity = new IdentityData(response.identity);\n break;\n default:\n break;\n }\n\n if (response.fields != null) {\n this.fields = response.fields.map(f => new FieldData(f));\n }\n if (response.attachments != null) {\n this.attachments = response.attachments.map(a => new AttachmentData(a));\n }\n if (response.passwordHistory != null) {\n this.passwordHistory = response.passwordHistory.map(ph => new PasswordHistoryData(ph));\n }\n }\n}\n","import { LoginUriView } from './loginUriView';\nimport { View } from './view';\n\nimport { Utils } from '../../misc/utils';\nimport { Login } from '../domain/login';\n\nexport class LoginView implements View {\n username: string = null;\n password: string = null;\n passwordRevisionDate?: Date = null;\n totp: string = null;\n uris: LoginUriView[] = null;\n\n constructor(l?: Login) {\n if (!l) {\n return;\n }\n\n this.passwordRevisionDate = l.passwordRevisionDate;\n }\n\n get uri(): string {\n return this.hasUris ? this.uris[0].uri : null;\n }\n\n get maskedPassword(): string {\n return this.password != null ? '••••••••' : null;\n }\n\n get subTitle(): string {\n return this.username;\n }\n\n get canLaunch(): boolean {\n return this.hasUris && this.uris.some(u => u.canLaunch);\n }\n\n get hasTotp(): boolean {\n return !Utils.isNullOrWhitespace(this.totp);\n }\n\n get launchUri(): string {\n if (this.hasUris) {\n const uri = this.uris.find(u => u.canLaunch);\n if (uri != null) {\n return uri.launchUri;\n }\n }\n return null;\n }\n\n get hasUris(): boolean {\n return this.uris != null && this.uris.length > 0;\n }\n}\n","export enum SendType {\n Text = 0,\n File = 1,\n}\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { PasswordVerificationRequest } from 'jslib/models/request/passwordVerificationRequest';\n\n@Component({\n selector: 'app-two-factor-verify',\n templateUrl: 'two-factor-verify.component.html',\n})\nexport class TwoFactorVerifyComponent {\n @Input() type: TwoFactorProviderType;\n @Input() organizationId: string;\n @Output() onAuthed = new EventEmitter();\n\n masterPassword: string;\n formPromise: Promise;\n\n private masterPasswordHash: string;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService, private cryptoService: CryptoService) { }\n\n async submit() {\n if (this.masterPassword == null || this.masterPassword === '') {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n const request = new PasswordVerificationRequest();\n request.masterPasswordHash = this.masterPasswordHash =\n await this.cryptoService.hashPassword(this.masterPassword, null);\n\n try {\n switch (this.type) {\n case -1:\n this.formPromise = this.apiService.getTwoFactorRecover(request);\n break;\n case TwoFactorProviderType.Duo:\n case TwoFactorProviderType.OrganizationDuo:\n if (this.organizationId != null) {\n this.formPromise = this.apiService.getTwoFactorOrganizationDuo(this.organizationId, request);\n } else {\n this.formPromise = this.apiService.getTwoFactorDuo(request);\n }\n break;\n case TwoFactorProviderType.Email:\n this.formPromise = this.apiService.getTwoFactorEmail(request);\n break;\n case TwoFactorProviderType.U2f:\n this.formPromise = this.apiService.getTwoFactorU2f(request);\n break;\n case TwoFactorProviderType.Authenticator:\n this.formPromise = this.apiService.getTwoFactorAuthenticator(request);\n break;\n case TwoFactorProviderType.Yubikey:\n this.formPromise = this.apiService.getTwoFactorYubiKey(request);\n break;\n }\n\n const response = await this.formPromise;\n this.onAuthed.emit({\n response: response,\n masterPasswordHash: this.masterPasswordHash,\n });\n } catch { }\n }\n}\n","
\n
\n

{{'twoStepLoginAuthDesc' | i18n}}

\n \n \n
\n
\n \n \n
\n
\n","export abstract class ExportService {\n getExport: (format?: 'csv' | 'json' | 'encrypted_json') => Promise;\n getOrganizationExport: (organizationId: string, format?: 'csv' | 'json' | 'encrypted_json') => Promise;\n getFileName: (prefix?: string, extension?: string) => string;\n}\n","import { CipherType } from '../../enums/cipherType';\n\nimport { CipherData } from '../data/cipherData';\n\nimport { CipherView } from '../view/cipherView';\n\nimport { Attachment } from './attachment';\nimport { Card } from './card';\nimport { CipherString } from './cipherString';\nimport Domain from './domainBase';\nimport { Field } from './field';\nimport { Identity } from './identity';\nimport { Login } from './login';\nimport { Password } from './password';\nimport { SecureNote } from './secureNote';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class Cipher extends Domain {\n id: string;\n organizationId: string;\n folderId: string;\n name: CipherString;\n notes: CipherString;\n type: CipherType;\n favorite: boolean;\n organizationUseTotp: boolean;\n edit: boolean;\n viewPassword: boolean;\n revisionDate: Date;\n localData: any;\n login: Login;\n identity: Identity;\n card: Card;\n secureNote: SecureNote;\n attachments: Attachment[];\n fields: Field[];\n passwordHistory: Password[];\n collectionIds: string[];\n deletedDate: Date;\n\n constructor(obj?: CipherData, alreadyEncrypted: boolean = false, localData: any = null) {\n super();\n if (obj == null) {\n return;\n }\n\n this.buildDomainModel(this, obj, {\n id: null,\n userId: null,\n organizationId: null,\n folderId: null,\n name: null,\n notes: null,\n }, alreadyEncrypted, ['id', 'userId', 'organizationId', 'folderId']);\n\n this.type = obj.type;\n this.favorite = obj.favorite;\n this.organizationUseTotp = obj.organizationUseTotp;\n this.edit = obj.edit;\n if (obj.viewPassword != null) {\n this.viewPassword = obj.viewPassword;\n } else {\n this.viewPassword = true; // Default for already synced Ciphers without viewPassword\n }\n this.revisionDate = obj.revisionDate != null ? new Date(obj.revisionDate) : null;\n this.collectionIds = obj.collectionIds;\n this.localData = localData;\n this.deletedDate = obj.deletedDate != null ? new Date(obj.deletedDate) : null;\n\n switch (this.type) {\n case CipherType.Login:\n this.login = new Login(obj.login, alreadyEncrypted);\n break;\n case CipherType.SecureNote:\n this.secureNote = new SecureNote(obj.secureNote, alreadyEncrypted);\n break;\n case CipherType.Card:\n this.card = new Card(obj.card, alreadyEncrypted);\n break;\n case CipherType.Identity:\n this.identity = new Identity(obj.identity, alreadyEncrypted);\n break;\n default:\n break;\n }\n\n if (obj.attachments != null) {\n this.attachments = obj.attachments.map(a => new Attachment(a, alreadyEncrypted));\n } else {\n this.attachments = null;\n }\n\n if (obj.fields != null) {\n this.fields = obj.fields.map(f => new Field(f, alreadyEncrypted));\n } else {\n this.fields = null;\n }\n\n if (obj.passwordHistory != null) {\n this.passwordHistory = obj.passwordHistory.map(ph => new Password(ph, alreadyEncrypted));\n } else {\n this.passwordHistory = null;\n }\n }\n\n async decrypt(encKey?: SymmetricCryptoKey): Promise {\n const model = new CipherView(this);\n\n await this.decryptObj(model, {\n name: null,\n notes: null,\n }, this.organizationId, encKey);\n\n switch (this.type) {\n case CipherType.Login:\n model.login = await this.login.decrypt(this.organizationId, encKey);\n break;\n case CipherType.SecureNote:\n model.secureNote = await this.secureNote.decrypt(this.organizationId, encKey);\n break;\n case CipherType.Card:\n model.card = await this.card.decrypt(this.organizationId, encKey);\n break;\n case CipherType.Identity:\n model.identity = await this.identity.decrypt(this.organizationId, encKey);\n break;\n default:\n break;\n }\n\n const orgId = this.organizationId;\n\n if (this.attachments != null && this.attachments.length > 0) {\n const attachments: any[] = [];\n await this.attachments.reduce((promise, attachment) => {\n return promise.then(() => {\n return attachment.decrypt(orgId, encKey);\n }).then(decAttachment => {\n attachments.push(decAttachment);\n });\n }, Promise.resolve());\n model.attachments = attachments;\n }\n\n if (this.fields != null && this.fields.length > 0) {\n const fields: any[] = [];\n await this.fields.reduce((promise, field) => {\n return promise.then(() => {\n return field.decrypt(orgId, encKey);\n }).then(decField => {\n fields.push(decField);\n });\n }, Promise.resolve());\n model.fields = fields;\n }\n\n if (this.passwordHistory != null && this.passwordHistory.length > 0) {\n const passwordHistory: any[] = [];\n await this.passwordHistory.reduce((promise, ph) => {\n return promise.then(() => {\n return ph.decrypt(orgId, encKey);\n }).then(decPh => {\n passwordHistory.push(decPh);\n });\n }, Promise.resolve());\n model.passwordHistory = passwordHistory;\n }\n\n return model;\n }\n\n toCipherData(userId: string): CipherData {\n const c = new CipherData();\n c.id = this.id;\n c.organizationId = this.organizationId;\n c.folderId = this.folderId;\n c.userId = this.organizationId != null ? userId : null;\n c.edit = this.edit;\n c.viewPassword = this.viewPassword;\n c.organizationUseTotp = this.organizationUseTotp;\n c.favorite = this.favorite;\n c.revisionDate = this.revisionDate != null ? this.revisionDate.toISOString() : null;\n c.type = this.type;\n c.collectionIds = this.collectionIds;\n c.deletedDate = this.deletedDate != null ? this.deletedDate.toISOString() : null;\n\n this.buildDataModel(this, c, {\n name: null,\n notes: null,\n });\n\n switch (c.type) {\n case CipherType.Login:\n c.login = this.login.toLoginData();\n break;\n case CipherType.SecureNote:\n c.secureNote = this.secureNote.toSecureNoteData();\n break;\n case CipherType.Card:\n c.card = this.card.toCardData();\n break;\n case CipherType.Identity:\n c.identity = this.identity.toIdentityData();\n break;\n default:\n break;\n }\n\n if (this.fields != null) {\n c.fields = this.fields.map(f => f.toFieldData());\n }\n if (this.attachments != null) {\n c.attachments = this.attachments.map(a => a.toAttachmentData());\n }\n if (this.passwordHistory != null) {\n c.passwordHistory = this.passwordHistory.map(ph => ph.toPasswordHistoryData());\n }\n return c;\n }\n}\n","import { SendData } from '../models/data/sendData';\n\nimport { Send } from '../models/domain/send';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nimport { SendView } from '../models/view/sendView';\n\nexport abstract class SendService {\n decryptedSendCache: SendView[];\n\n clearCache: () => void;\n encrypt: (model: SendView, file: File | ArrayBuffer, password: string, key?: SymmetricCryptoKey) => Promise<[Send, ArrayBuffer]>;\n get: (id: string) => Promise;\n getAll: () => Promise;\n getAllDecrypted: () => Promise;\n saveWithServer: (sendData: [Send, ArrayBuffer]) => Promise;\n upsert: (send: SendData | SendData[]) => Promise;\n replace: (sends: { [id: string]: SendData; }) => Promise;\n clear: (userId: string) => Promise;\n delete: (id: string | string[]) => Promise;\n deleteWithServer: (id: string) => Promise;\n removePasswordWithServer: (id: string) => Promise;\n}\n","import { FieldType } from '../../enums/fieldType';\n\nimport { View } from './view';\n\nimport { Field } from '../domain/field';\n\nexport class FieldView implements View {\n name: string = null;\n value: string = null;\n type: FieldType = null;\n newField: boolean = false; // Marks if the field is new and hasn't been saved\n showValue: boolean = false;\n\n constructor(f?: Field) {\n if (!f) {\n return;\n }\n\n this.type = f.type;\n }\n\n get maskedValue(): string {\n return this.value != null ? '••••••••' : null;\n }\n}\n","import { CipherType } from '../../enums/cipherType';\n\nimport { Cipher } from '../domain/cipher';\n\nimport { CardApi } from '../api/cardApi';\nimport { FieldApi } from '../api/fieldApi';\nimport { IdentityApi } from '../api/identityApi';\nimport { LoginApi } from '../api/loginApi';\nimport { LoginUriApi } from '../api/loginUriApi';\nimport { SecureNoteApi } from '../api/secureNoteApi';\n\nimport { AttachmentRequest } from './attachmentRequest';\nimport { PasswordHistoryRequest } from './passwordHistoryRequest';\n\nexport class CipherRequest {\n type: CipherType;\n folderId: string;\n organizationId: string;\n name: string;\n notes: string;\n favorite: boolean;\n login: LoginApi;\n secureNote: SecureNoteApi;\n card: CardApi;\n identity: IdentityApi;\n fields: FieldApi[];\n passwordHistory: PasswordHistoryRequest[];\n // Deprecated, remove at some point and rename attachments2 to attachments\n attachments: { [id: string]: string; };\n attachments2: { [id: string]: AttachmentRequest; };\n lastKnownRevisionDate: Date;\n\n constructor(cipher: Cipher) {\n this.type = cipher.type;\n this.folderId = cipher.folderId;\n this.organizationId = cipher.organizationId;\n this.name = cipher.name ? cipher.name.encryptedString : null;\n this.notes = cipher.notes ? cipher.notes.encryptedString : null;\n this.favorite = cipher.favorite;\n this.lastKnownRevisionDate = cipher.revisionDate;\n\n switch (this.type) {\n case CipherType.Login:\n this.login = new LoginApi();\n this.login.uris = null;\n this.login.username = cipher.login.username ? cipher.login.username.encryptedString : null;\n this.login.password = cipher.login.password ? cipher.login.password.encryptedString : null;\n this.login.passwordRevisionDate = cipher.login.passwordRevisionDate != null ?\n cipher.login.passwordRevisionDate.toISOString() : null;\n this.login.totp = cipher.login.totp ? cipher.login.totp.encryptedString : null;\n\n if (cipher.login.uris != null) {\n this.login.uris = cipher.login.uris.map(u => {\n const uri = new LoginUriApi();\n uri.uri = u.uri != null ? u.uri.encryptedString : null;\n uri.match = u.match != null ? u.match : null;\n return uri;\n });\n }\n break;\n case CipherType.SecureNote:\n this.secureNote = new SecureNoteApi();\n this.secureNote.type = cipher.secureNote.type;\n break;\n case CipherType.Card:\n this.card = new CardApi();\n this.card.cardholderName = cipher.card.cardholderName != null ?\n cipher.card.cardholderName.encryptedString : null;\n this.card.brand = cipher.card.brand != null ? cipher.card.brand.encryptedString : null;\n this.card.number = cipher.card.number != null ? cipher.card.number.encryptedString : null;\n this.card.expMonth = cipher.card.expMonth != null ? cipher.card.expMonth.encryptedString : null;\n this.card.expYear = cipher.card.expYear != null ? cipher.card.expYear.encryptedString : null;\n this.card.code = cipher.card.code != null ? cipher.card.code.encryptedString : null;\n break;\n case CipherType.Identity:\n this.identity = new IdentityApi();\n this.identity.title = cipher.identity.title != null ? cipher.identity.title.encryptedString : null;\n this.identity.firstName = cipher.identity.firstName != null ?\n cipher.identity.firstName.encryptedString : null;\n this.identity.middleName = cipher.identity.middleName != null ?\n cipher.identity.middleName.encryptedString : null;\n this.identity.lastName = cipher.identity.lastName != null ?\n cipher.identity.lastName.encryptedString : null;\n this.identity.address1 = cipher.identity.address1 != null ?\n cipher.identity.address1.encryptedString : null;\n this.identity.address2 = cipher.identity.address2 != null ?\n cipher.identity.address2.encryptedString : null;\n this.identity.address3 = cipher.identity.address3 != null ?\n cipher.identity.address3.encryptedString : null;\n this.identity.city = cipher.identity.city != null ? cipher.identity.city.encryptedString : null;\n this.identity.state = cipher.identity.state != null ? cipher.identity.state.encryptedString : null;\n this.identity.postalCode = cipher.identity.postalCode != null ?\n cipher.identity.postalCode.encryptedString : null;\n this.identity.country = cipher.identity.country != null ?\n cipher.identity.country.encryptedString : null;\n this.identity.company = cipher.identity.company != null ?\n cipher.identity.company.encryptedString : null;\n this.identity.email = cipher.identity.email != null ? cipher.identity.email.encryptedString : null;\n this.identity.phone = cipher.identity.phone != null ? cipher.identity.phone.encryptedString : null;\n this.identity.ssn = cipher.identity.ssn != null ? cipher.identity.ssn.encryptedString : null;\n this.identity.username = cipher.identity.username != null ?\n cipher.identity.username.encryptedString : null;\n this.identity.passportNumber = cipher.identity.passportNumber != null ?\n cipher.identity.passportNumber.encryptedString : null;\n this.identity.licenseNumber = cipher.identity.licenseNumber != null ?\n cipher.identity.licenseNumber.encryptedString : null;\n break;\n default:\n break;\n }\n\n if (cipher.fields != null) {\n this.fields = cipher.fields.map(f => {\n const field = new FieldApi();\n field.type = f.type;\n field.name = f.name ? f.name.encryptedString : null;\n field.value = f.value ? f.value.encryptedString : null;\n return field;\n });\n }\n\n if (cipher.passwordHistory != null) {\n this.passwordHistory = [];\n cipher.passwordHistory.forEach(ph => {\n this.passwordHistory.push({\n lastUsedDate: ph.lastUsedDate,\n password: ph.password ? ph.password.encryptedString : null,\n });\n });\n }\n\n if (cipher.attachments != null) {\n this.attachments = {};\n this.attachments2 = {};\n cipher.attachments.forEach(attachment => {\n const fileName = attachment.fileName ? attachment.fileName.encryptedString : null;\n this.attachments[attachment.id] = fileName;\n const attachmentRequest = new AttachmentRequest();\n attachmentRequest.fileName = fileName;\n if (attachment.key != null) {\n attachmentRequest.key = attachment.key.encryptedString;\n }\n this.attachments2[attachment.id] = attachmentRequest;\n });\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport {\n ActivatedRoute,\n NavigationEnd,\n Router,\n} from '@angular/router';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\n@Injectable()\nexport class RouterService {\n private previousUrl: string = undefined;\n private currentUrl: string = undefined;\n\n constructor(private router: Router, private activatedRoute: ActivatedRoute,\n private titleService: Title, i18nService: I18nService) {\n this.currentUrl = this.router.url;\n router.events.subscribe(event => {\n if (event instanceof NavigationEnd) {\n this.previousUrl = this.currentUrl;\n this.currentUrl = event.url;\n\n let title = i18nService.t('pageTitle', 'Bitwarden');\n let titleId: string = null;\n let rawTitle: string = null;\n let child = this.activatedRoute.firstChild;\n while (child != null) {\n if (child.firstChild != null) {\n child = child.firstChild;\n } else if (child.snapshot.data != null && child.snapshot.data.title != null) {\n rawTitle = child.snapshot.data.title;\n break;\n } else if (child.snapshot.data != null && child.snapshot.data.titleId != null) {\n titleId = child.snapshot.data.titleId;\n break;\n } else {\n titleId = null;\n rawTitle = null;\n break;\n }\n }\n\n if (titleId != null || rawTitle != null) {\n const newTitle = rawTitle != null ? rawTitle : i18nService.t(titleId);\n if (newTitle != null && newTitle !== '') {\n title = (newTitle + ' | ' + title);\n }\n }\n this.titleService.setTitle(title);\n }\n });\n }\n\n getPreviousUrl() {\n return this.previousUrl;\n }\n\n setPreviousUrl(url: string) {\n this.previousUrl = url;\n }\n}\n","export enum KdfType {\n PBKDF2_SHA256 = 0,\n}\n","import {\n Component,\n Input,\n OnChanges,\n} from '@angular/core';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\n@Component({\n selector: 'app-password-strength',\n templateUrl: 'password-strength.component.html',\n})\nexport class PasswordStrengthComponent implements OnChanges {\n @Input() score?: number;\n @Input() showText = false;\n\n scoreWidth = 0;\n color = 'bg-danger';\n text: string;\n\n constructor(private i18nService: I18nService) { }\n\n ngOnChanges(): void {\n this.scoreWidth = this.score == null ? 0 : (this.score + 1) * 20;\n switch (this.score) {\n case 4:\n this.color = 'bg-success';\n this.text = this.i18nService.t('strong');\n break;\n case 3:\n this.color = 'bg-primary';\n this.text = this.i18nService.t('good');\n break;\n case 2:\n this.color = 'bg-warning';\n this.text = this.i18nService.t('weak');\n break;\n default:\n this.color = 'bg-danger';\n this.text = this.score != null ? this.i18nService.t('weak') : null;\n break;\n }\n }\n}\n","
\n
\n \n {{text}}\n \n
\n
\n","export enum OrganizationUserType {\n Owner = 0,\n Admin = 1,\n User = 2,\n Manager = 3,\n Custom = 4,\n}\n","import {\n Pipe,\n PipeTransform,\n} from '@angular/core';\n\n@Pipe({\n name: 'search',\n})\nexport class SearchPipe implements PipeTransform {\n transform(items: any[], searchText: string, prop1?: string, prop2?: string, prop3?: string): any[] {\n if (items == null || items.length === 0) {\n return [];\n }\n\n if (searchText == null || searchText.length < 2) {\n return items;\n }\n\n searchText = searchText.trim().toLowerCase();\n return items.filter(i => {\n if (prop1 != null && i[prop1] != null && i[prop1].toString().toLowerCase().indexOf(searchText) > -1) {\n return true;\n }\n if (prop2 != null && i[prop2] != null && i[prop2].toString().toLowerCase().indexOf(searchText) > -1) {\n return true;\n }\n if (prop3 != null && i[prop3] != null && i[prop3].toString().toLowerCase().indexOf(searchText) > -1) {\n return true;\n }\n return false;\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { DeviceType } from 'jslib/enums/deviceType';\nimport { EventType } from 'jslib/enums/eventType';\n\nimport { EventResponse } from 'jslib/models/response/eventResponse';\n\n@Injectable()\nexport class EventService {\n constructor(private i18nService: I18nService) { }\n\n getDefaultDateFilters() {\n const d = new Date();\n const end = new Date(d.getFullYear(), d.getMonth(), d.getDate(), 23, 59);\n d.setDate(d.getDate() - 30);\n const start = new Date(d.getFullYear(), d.getMonth(), d.getDate(), 0, 0);\n return [this.toDateTimeLocalString(start), this.toDateTimeLocalString(end)];\n }\n\n formatDateFilters(filterStart: string, filterEnd: string) {\n const start: Date = new Date(filterStart);\n const end: Date = new Date(filterEnd + ':59.999');\n if (isNaN(start.getTime()) || isNaN(end.getTime()) || end < start) {\n throw new Error('Invalid date range.');\n }\n return [start.toISOString(), end.toISOString()];\n }\n\n getEventInfo(ev: EventResponse, options = new EventOptions()): EventInfo {\n const appInfo = this.getAppInfo(ev.deviceType);\n return {\n message: this.getEventMessage(ev, options),\n appIcon: appInfo[0],\n appName: appInfo[1],\n };\n }\n\n private getEventMessage(ev: EventResponse, options: EventOptions) {\n let msg = '';\n switch (ev.type) {\n // User\n case EventType.User_LoggedIn:\n msg = this.i18nService.t('loggedIn');\n break;\n case EventType.User_ChangedPassword:\n msg = this.i18nService.t('changedPassword');\n break;\n case EventType.User_Updated2fa:\n msg = this.i18nService.t('enabledUpdated2fa');\n break;\n case EventType.User_Disabled2fa:\n msg = this.i18nService.t('disabled2fa');\n break;\n case EventType.User_Recovered2fa:\n msg = this.i18nService.t('recovered2fa');\n break;\n case EventType.User_FailedLogIn:\n msg = this.i18nService.t('failedLogin');\n break;\n case EventType.User_FailedLogIn2fa:\n msg = this.i18nService.t('failedLogin2fa');\n break;\n case EventType.User_ClientExportedVault:\n msg = this.i18nService.t('exportedVault');\n break;\n // Cipher\n case EventType.Cipher_Created:\n msg = this.i18nService.t('createdItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_Updated:\n msg = this.i18nService.t('editedItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_Deleted:\n msg = this.i18nService.t('permanentlyDeletedItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_SoftDeleted:\n msg = this.i18nService.t('deletedItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_Restored:\n msg = this.i18nService.t('restoredItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_AttachmentCreated:\n msg = this.i18nService.t('createdAttachmentForItem', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_AttachmentDeleted:\n msg = this.i18nService.t('deletedAttachmentForItem', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_Shared:\n msg = this.i18nService.t('sharedItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_ClientViewed:\n msg = this.i18nService.t('viewedItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_ClientToggledPasswordVisible:\n msg = this.i18nService.t('viewedPasswordItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_ClientToggledHiddenFieldVisible:\n msg = this.i18nService.t('viewedHiddenFieldItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_ClientToggledCardCodeVisible:\n msg = this.i18nService.t('viewedSecurityCodeItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_ClientCopiedHiddenField:\n msg = this.i18nService.t('copiedHiddenFieldItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_ClientCopiedPassword:\n msg = this.i18nService.t('copiedPasswordItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_ClientCopiedCardCode:\n msg = this.i18nService.t('copiedSecurityCodeItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_ClientAutofilled:\n msg = this.i18nService.t('autofilledItemId', this.formatCipherId(ev, options));\n break;\n case EventType.Cipher_UpdatedCollections:\n msg = this.i18nService.t('editedCollectionsForItem', this.formatCipherId(ev, options));\n break;\n // Collection\n case EventType.Collection_Created:\n msg = this.i18nService.t('createdCollectionId', this.formatCollectionId(ev));\n break;\n case EventType.Collection_Updated:\n msg = this.i18nService.t('editedCollectionId', this.formatCollectionId(ev));\n break;\n case EventType.Collection_Deleted:\n msg = this.i18nService.t('deletedCollectionId', this.formatCollectionId(ev));\n break;\n // Group\n case EventType.Group_Created:\n msg = this.i18nService.t('createdGroupId', this.formatGroupId(ev));\n break;\n case EventType.Group_Updated:\n msg = this.i18nService.t('editedGroupId', this.formatGroupId(ev));\n break;\n case EventType.Group_Deleted:\n msg = this.i18nService.t('deletedGroupId', this.formatGroupId(ev));\n break;\n // Org user\n case EventType.OrganizationUser_Invited:\n msg = this.i18nService.t('invitedUserId', this.formatOrgUserId(ev));\n break;\n case EventType.OrganizationUser_Confirmed:\n msg = this.i18nService.t('confirmedUserId', this.formatOrgUserId(ev));\n break;\n case EventType.OrganizationUser_Updated:\n msg = this.i18nService.t('editedUserId', this.formatOrgUserId(ev));\n break;\n case EventType.OrganizationUser_Removed:\n msg = this.i18nService.t('removedUserId', this.formatOrgUserId(ev));\n break;\n case EventType.OrganizationUser_UpdatedGroups:\n msg = this.i18nService.t('editedGroupsForUser', this.formatOrgUserId(ev));\n break;\n case EventType.OrganizationUser_UnlinkedSso:\n msg = this.i18nService.t('unlinkedSsoUser', this.formatOrgUserId(ev));\n // Org\n case EventType.Organization_Updated:\n msg = this.i18nService.t('editedOrgSettings');\n break;\n case EventType.Organization_PurgedVault:\n msg = this.i18nService.t('purgedOrganizationVault');\n break;\n /*\n case EventType.Organization_ClientExportedVault:\n msg = this.i18nService.t('exportedOrganizationVault');\n break;\n */\n // Policies\n case EventType.Policy_Updated:\n msg = this.i18nService.t('modifiedPolicy', this.formatPolicyId(ev));\n break;\n\n default:\n break;\n }\n return msg === '' ? null : msg;\n }\n\n private getAppInfo(deviceType: DeviceType): [string, string] {\n switch (deviceType) {\n case DeviceType.Android:\n return ['fa-android', this.i18nService.t('mobile') + ' - Android'];\n case DeviceType.iOS:\n return ['fa-apple', this.i18nService.t('mobile') + ' - iOS'];\n case DeviceType.UWP:\n return ['fa-windows', this.i18nService.t('mobile') + ' - Windows'];\n case DeviceType.ChromeExtension:\n return ['fa-chrome', this.i18nService.t('extension') + ' - Chrome'];\n case DeviceType.FirefoxExtension:\n return ['fa-firefox', this.i18nService.t('extension') + ' - Firefox'];\n case DeviceType.OperaExtension:\n return ['fa-opera', this.i18nService.t('extension') + ' - Opera'];\n case DeviceType.EdgeExtension:\n return ['fa-edge', this.i18nService.t('extension') + ' - Edge'];\n case DeviceType.VivaldiExtension:\n return ['fa-puzzle-piece', this.i18nService.t('extension') + ' - Vivaldi'];\n case DeviceType.SafariExtension:\n return ['fa-safari', this.i18nService.t('extension') + ' - Safari'];\n case DeviceType.WindowsDesktop:\n return ['fa-windows', this.i18nService.t('desktop') + ' - Windows'];\n case DeviceType.MacOsDesktop:\n return ['fa-apple', this.i18nService.t('desktop') + ' - macOS'];\n case DeviceType.LinuxDesktop:\n return ['fa-linux', this.i18nService.t('desktop') + ' - Linux'];\n case DeviceType.ChromeBrowser:\n return ['fa-globe', this.i18nService.t('webVault') + ' - Chrome'];\n case DeviceType.FirefoxBrowser:\n return ['fa-globe', this.i18nService.t('webVault') + ' - Firefox'];\n case DeviceType.OperaBrowser:\n return ['fa-globe', this.i18nService.t('webVault') + ' - Opera'];\n case DeviceType.SafariBrowser:\n return ['fa-globe', this.i18nService.t('webVault') + ' - Safari'];\n case DeviceType.VivaldiBrowser:\n return ['fa-globe', this.i18nService.t('webVault') + ' - Vivaldi'];\n case DeviceType.EdgeBrowser:\n return ['fa-globe', this.i18nService.t('webVault') + ' - Edge'];\n case DeviceType.IEBrowser:\n return ['fa-globe', this.i18nService.t('webVault') + ' - IE'];\n case DeviceType.UnknownBrowser:\n return ['fa-globe', this.i18nService.t('webVault') + ' - ' + this.i18nService.t('unknown')];\n default:\n return ['fa-globe', this.i18nService.t('unknown')];\n }\n }\n\n private formatCipherId(ev: EventResponse, options: EventOptions) {\n const shortId = this.getShortId(ev.cipherId);\n if (ev.organizationId == null || !options.cipherInfo) {\n return '' + shortId + '';\n }\n const a = this.makeAnchor(shortId);\n a.setAttribute('href', '#/organizations/' + ev.organizationId + '/vault?search=' + shortId +\n '&viewEvents=' + ev.cipherId);\n return a.outerHTML;\n }\n\n private formatGroupId(ev: EventResponse) {\n const shortId = this.getShortId(ev.groupId);\n const a = this.makeAnchor(shortId);\n a.setAttribute('href', '#/organizations/' + ev.organizationId + '/manage/groups?search=' + shortId);\n return a.outerHTML;\n }\n\n private formatCollectionId(ev: EventResponse) {\n const shortId = this.getShortId(ev.collectionId);\n const a = this.makeAnchor(shortId);\n a.setAttribute('href', '#/organizations/' + ev.organizationId + '/manage/collections?search=' + shortId);\n return a.outerHTML;\n }\n\n private formatOrgUserId(ev: EventResponse) {\n const shortId = this.getShortId(ev.organizationUserId);\n const a = this.makeAnchor(shortId);\n a.setAttribute('href', '#/organizations/' + ev.organizationId + '/manage/people?search=' + shortId +\n '&viewEvents=' + ev.organizationUserId);\n return a.outerHTML;\n }\n\n private formatPolicyId(ev: EventResponse) {\n const shortId = this.getShortId(ev.policyId);\n const a = this.makeAnchor(shortId);\n a.setAttribute('href', '#/organizations/' + ev.organizationId + '/manage/policies?policyId=' + ev.policyId);\n return a.outerHTML;\n }\n\n private makeAnchor(shortId: string) {\n const a = document.createElement('a');\n a.title = this.i18nService.t('view');\n a.innerHTML = '' + shortId + '';\n return a;\n }\n\n private getShortId(id: string) {\n return id.substring(0, 8);\n }\n\n private toDateTimeLocalString(date: Date) {\n return date.getFullYear() +\n '-' + this.pad(date.getMonth() + 1) +\n '-' + this.pad(date.getDate()) +\n 'T' + this.pad(date.getHours()) +\n ':' + this.pad(date.getMinutes());\n }\n\n private pad(num: number) {\n const norm = Math.floor(Math.abs(num));\n return (norm < 10 ? '0' : '') + norm;\n }\n}\n\nexport class EventInfo {\n message: string;\n appIcon: string;\n appName: string;\n}\n\nexport class EventOptions {\n cipherInfo = true;\n}\n","export enum EventType {\n User_LoggedIn = 1000,\n User_ChangedPassword = 1001,\n User_Updated2fa = 1002,\n User_Disabled2fa = 1003,\n User_Recovered2fa = 1004,\n User_FailedLogIn = 1005,\n User_FailedLogIn2fa = 1006,\n User_ClientExportedVault = 1007,\n\n Cipher_Created = 1100,\n Cipher_Updated = 1101,\n Cipher_Deleted = 1102,\n Cipher_AttachmentCreated = 1103,\n Cipher_AttachmentDeleted = 1104,\n Cipher_Shared = 1105,\n Cipher_UpdatedCollections = 1106,\n Cipher_ClientViewed = 1107,\n Cipher_ClientToggledPasswordVisible = 1108,\n Cipher_ClientToggledHiddenFieldVisible = 1109,\n Cipher_ClientToggledCardCodeVisible = 1110,\n Cipher_ClientCopiedPassword = 1111,\n Cipher_ClientCopiedHiddenField = 1112,\n Cipher_ClientCopiedCardCode = 1113,\n Cipher_ClientAutofilled = 1114,\n Cipher_SoftDeleted = 1115,\n Cipher_Restored = 1116,\n\n Collection_Created = 1300,\n Collection_Updated = 1301,\n Collection_Deleted = 1302,\n\n Group_Created = 1400,\n Group_Updated = 1401,\n Group_Deleted = 1402,\n\n OrganizationUser_Invited = 1500,\n OrganizationUser_Confirmed = 1501,\n OrganizationUser_Updated = 1502,\n OrganizationUser_Removed = 1503,\n OrganizationUser_UpdatedGroups = 1504,\n OrganizationUser_UnlinkedSso = 1505,\n\n Organization_Updated = 1600,\n Organization_PurgedVault = 1601,\n // Organization_ClientExportedVault = 1602,\n\n Policy_Updated = 1700,\n}\n","export enum PaymentMethodType {\n Card = 0,\n BankAccount = 1,\n PayPal = 2,\n BitPay = 3,\n Credit = 4,\n WireTransfer = 5,\n AppleInApp = 6,\n GoogleInApp = 7,\n Check = 8,\n}\n","import {\n Directive,\n EventEmitter,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\nimport { TwoFactorProviderRequest } from 'jslib/models/request/twoFactorProviderRequest';\n\n@Directive()\nexport abstract class TwoFactorBaseComponent {\n @Output() onUpdated = new EventEmitter();\n\n type: TwoFactorProviderType;\n organizationId: string;\n twoFactorProviderType = TwoFactorProviderType;\n enabled = false;\n authed = false;\n\n protected masterPasswordHash: string;\n\n constructor(protected apiService: ApiService, protected i18nService: I18nService,\n protected analytics: Angulartics2, protected toasterService: ToasterService,\n protected platformUtilsService: PlatformUtilsService) { }\n\n protected auth(authResponse: any) {\n this.masterPasswordHash = authResponse.masterPasswordHash;\n this.authed = true;\n }\n\n protected async enable(enableFunction: () => Promise) {\n try {\n await enableFunction();\n this.analytics.eventTrack.next({\n action: 'Enabled Two-step ' + TwoFactorProviderType[this.type].toString(),\n });\n this.onUpdated.emit(true);\n } catch { }\n }\n\n protected async disable(promise: Promise) {\n const confirmed = await this.platformUtilsService.showDialog(this.i18nService.t('twoStepDisableDesc'),\n this.i18nService.t('disable'), this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return;\n }\n\n try {\n const request = new TwoFactorProviderRequest();\n request.masterPasswordHash = this.masterPasswordHash;\n request.type = this.type;\n if (this.organizationId != null) {\n promise = this.apiService.putTwoFactorOrganizationDisable(this.organizationId, request);\n } else {\n promise = this.apiService.putTwoFactorDisable(request);\n }\n await promise;\n this.enabled = false;\n this.analytics.eventTrack.next({\n action: 'Disabled Two-step ' + TwoFactorProviderType[this.type].toString(),\n });\n this.toasterService.popAsync('success', null, this.i18nService.t('twoStepDisabled'));\n this.onUpdated.emit(false);\n } catch { }\n }\n}\n","import {\n ComponentFactoryResolver,\n Directive,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { Organization } from 'jslib/models/domain/organization';\n\nimport { ModalComponent } from '../modal.component';\nimport { AddEditComponent as OrgAddEditComponent } from '../organizations/vault/add-edit.component';\nimport { AddEditComponent } from '../vault/add-edit.component';\n\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\n@Directive()\nexport class CipherReportComponent {\n @ViewChild('cipherAddEdit', { read: ViewContainerRef, static: true }) cipherAddEditModalRef: ViewContainerRef;\n\n loading = false;\n hasLoaded = false;\n ciphers: CipherView[] = [];\n organization: Organization;\n\n private modal: ModalComponent = null;\n\n constructor(private componentFactoryResolver: ComponentFactoryResolver, protected userService: UserService,\n protected messagingService: MessagingService, public requiresPaid: boolean) { }\n\n async load() {\n this.loading = true;\n await this.setCiphers();\n this.loading = false;\n this.hasLoaded = true;\n }\n\n selectCipher(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.cipherAddEditModalRef.createComponent(factory).instance;\n let childComponent: OrgAddEditComponent | AddEditComponent;\n if (this.organization != null) {\n childComponent = this.modal.show(OrgAddEditComponent, this.cipherAddEditModalRef);\n (childComponent as OrgAddEditComponent).organization = this.organization;\n } else {\n childComponent = this.modal.show(AddEditComponent, this.cipherAddEditModalRef);\n }\n\n childComponent.cipherId = cipher == null ? null : cipher.id;\n if (this.organization != null) {\n childComponent.organizationId = this.organization.id;\n }\n childComponent.onSavedCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.load();\n });\n childComponent.onDeletedCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.load();\n });\n childComponent.onRestoredCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.load();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n\n return childComponent;\n }\n\n protected async checkAccess(): Promise {\n if (this.organization != null) {\n // TODO: Maybe we want to just make sure they are not on a free plan? Just compare useTotp for now\n // since all paid plans include useTotp\n if (this.requiresPaid && !this.organization.useTotp) {\n this.messagingService.send('upgradeOrganization', { organizationId: this.organization.id });\n return false;\n }\n } else {\n const accessPremium = await this.userService.canAccessPremium();\n if (this.requiresPaid && !accessPremium) {\n this.messagingService.send('premiumRequired');\n this.loading = false;\n return false;\n }\n }\n return true;\n }\n\n protected async setCiphers() {\n this.ciphers = [];\n }\n}\n","import { UriMatchType } from '../../enums/uriMatchType';\n\nimport { View } from './view';\n\nimport { LoginUri } from '../domain/loginUri';\n\nimport { Utils } from '../../misc/utils';\n\nconst CanLaunchWhitelist = [\n 'https://',\n 'http://',\n 'ssh://',\n 'ftp://',\n 'sftp://',\n 'irc://',\n 'vnc://',\n // https://docs.microsoft.com/en-us/windows-server/remote/remote-desktop-services/clients/remote-desktop-uri\n 'rdp://', // Legacy RDP URI scheme\n 'ms-rd:', // Preferred RDP URI scheme\n 'chrome://',\n 'iosapp://',\n 'androidapp://',\n];\n\nexport class LoginUriView implements View {\n match: UriMatchType = null;\n\n // tslint:disable\n private _uri: string = null;\n private _domain: string = null;\n private _hostname: string = null;\n private _host: string = null;\n private _canLaunch: boolean = null;\n // tslint:enable\n\n constructor(u?: LoginUri) {\n if (!u) {\n return;\n }\n\n this.match = u.match;\n }\n\n get uri(): string {\n return this._uri;\n }\n set uri(value: string) {\n this._uri = value;\n this._domain = null;\n this._canLaunch = null;\n }\n\n get domain(): string {\n if (this._domain == null && this.uri != null) {\n this._domain = Utils.getDomain(this.uri);\n if (this._domain === '') {\n this._domain = null;\n }\n }\n\n return this._domain;\n }\n\n get hostname(): string {\n if (this.match === UriMatchType.RegularExpression) {\n return null;\n }\n if (this._hostname == null && this.uri != null) {\n this._hostname = Utils.getHostname(this.uri);\n if (this._hostname === '') {\n this._hostname = null;\n }\n }\n\n return this._hostname;\n }\n\n get host(): string {\n if (this.match === UriMatchType.RegularExpression) {\n return null;\n }\n if (this._host == null && this.uri != null) {\n this._host = Utils.getHost(this.uri);\n if (this._host === '') {\n this._host = null;\n }\n }\n\n return this._host;\n }\n\n get hostnameOrUri(): string {\n return this.hostname != null ? this.hostname : this.uri;\n }\n\n get hostOrUri(): string {\n return this.host != null ? this.host : this.uri;\n }\n\n get isWebsite(): boolean {\n return this.uri != null && (this.uri.indexOf('http://') === 0 || this.uri.indexOf('https://') === 0 ||\n (this.uri.indexOf('://') < 0 && Utils.tldEndingRegex.test(this.uri)));\n }\n\n get canLaunch(): boolean {\n if (this._canLaunch != null) {\n return this._canLaunch;\n }\n if (this.uri != null && this.match !== UriMatchType.RegularExpression) {\n const uri = this.launchUri;\n for (let i = 0; i < CanLaunchWhitelist.length; i++) {\n if (uri.indexOf(CanLaunchWhitelist[i]) === 0) {\n this._canLaunch = true;\n return this._canLaunch;\n }\n }\n }\n this._canLaunch = false;\n return this._canLaunch;\n }\n\n get launchUri(): string {\n return this.uri.indexOf('://') < 0 && Utils.tldEndingRegex.test(this.uri) ? ('http://' + this.uri) : this.uri;\n }\n}\n","import { Component } from '@angular/core';\n\nimport { CipherType } from 'jslib/enums/cipherType';\nimport { EventType } from 'jslib/enums/eventType';\n\nimport { AuditService } from 'jslib/abstractions/audit.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { EventService } from 'jslib/abstractions/event.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { TotpService } from 'jslib/abstractions/totp.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { AddEditComponent as BaseAddEditComponent } from 'jslib/angular/components/add-edit.component';\nimport { LoginUriView } from 'jslib/models/view/loginUriView';\n\n@Component({\n selector: 'app-vault-add-edit',\n templateUrl: 'add-edit.component.html',\n})\nexport class AddEditComponent extends BaseAddEditComponent {\n canAccessPremium: boolean;\n totpCode: string;\n totpCodeFormatted: string;\n totpDash: number;\n totpSec: number;\n totpLow: boolean;\n showRevisionDate = false;\n hasPasswordHistory = false;\n viewingPasswordHistory = false;\n viewOnly = false;\n\n protected totpInterval: number;\n\n constructor(cipherService: CipherService, folderService: FolderService,\n i18nService: I18nService, platformUtilsService: PlatformUtilsService,\n auditService: AuditService, stateService: StateService,\n userService: UserService, collectionService: CollectionService,\n protected totpService: TotpService, protected passwordGenerationService: PasswordGenerationService,\n protected messagingService: MessagingService, eventService: EventService,\n protected policyService: PolicyService) {\n super(cipherService, folderService, i18nService, platformUtilsService, auditService, stateService,\n userService, collectionService, messagingService, eventService, policyService);\n }\n\n async ngOnInit() {\n await super.ngOnInit();\n await this.load();\n this.showRevisionDate = this.cipher.passwordRevisionDisplayDate != null;\n this.hasPasswordHistory = this.cipher.hasPasswordHistory;\n this.cleanUp();\n\n this.canAccessPremium = await this.userService.canAccessPremium();\n if (this.cipher.type === CipherType.Login && this.cipher.login.totp &&\n (this.cipher.organizationUseTotp || this.canAccessPremium)) {\n await this.totpUpdateCode();\n const interval = this.totpService.getTimeInterval(this.cipher.login.totp);\n await this.totpTick(interval);\n\n this.totpInterval = window.setInterval(async () => {\n await this.totpTick(interval);\n }, 1000);\n }\n }\n\n toggleFavorite() {\n this.cipher.favorite = !this.cipher.favorite;\n }\n\n launch(uri: LoginUriView) {\n if (!uri.canLaunch) {\n return;\n }\n\n this.platformUtilsService.eventTrack('Launched Login URI');\n this.platformUtilsService.launchUri(uri.launchUri);\n }\n\n copy(value: string, typeI18nKey: string, aType: string) {\n if (value == null) {\n return;\n }\n\n this.platformUtilsService.eventTrack('Copied ' + aType);\n this.platformUtilsService.copyToClipboard(value, { window: window });\n this.platformUtilsService.showToast('info', null,\n this.i18nService.t('valueCopied', this.i18nService.t(typeI18nKey)));\n\n if (this.editMode) {\n if (typeI18nKey === 'password') {\n this.eventService.collect(EventType.Cipher_ClientToggledHiddenFieldVisible, this.cipherId);\n } else if (typeI18nKey === 'securityCode') {\n this.eventService.collect(EventType.Cipher_ClientCopiedCardCode, this.cipherId);\n } else if (aType === 'H_Field') {\n this.eventService.collect(EventType.Cipher_ClientCopiedHiddenField, this.cipherId);\n }\n }\n }\n\n async generatePassword(): Promise {\n const confirmed = await super.generatePassword();\n if (confirmed) {\n const options = (await this.passwordGenerationService.getOptions())[0];\n this.cipher.login.password = await this.passwordGenerationService.generatePassword(options);\n }\n return confirmed;\n }\n\n premiumRequired() {\n if (!this.canAccessPremium) {\n this.messagingService.send('premiumRequired');\n return;\n }\n }\n\n upgradeOrganization() {\n this.messagingService.send('upgradeOrganization', { organizationId: this.cipher.organizationId });\n }\n\n viewHistory() {\n this.viewingPasswordHistory = !this.viewingPasswordHistory;\n }\n\n protected cleanUp() {\n if (this.totpInterval) {\n window.clearInterval(this.totpInterval);\n }\n }\n\n protected async totpUpdateCode() {\n if (this.cipher == null || this.cipher.type !== CipherType.Login || this.cipher.login.totp == null) {\n if (this.totpInterval) {\n window.clearInterval(this.totpInterval);\n }\n return;\n }\n\n this.totpCode = await this.totpService.getCode(this.cipher.login.totp);\n if (this.totpCode != null) {\n if (this.totpCode.length > 4) {\n const half = Math.floor(this.totpCode.length / 2);\n this.totpCodeFormatted = this.totpCode.substring(0, half) + ' ' + this.totpCode.substring(half);\n } else {\n this.totpCodeFormatted = this.totpCode;\n }\n } else {\n this.totpCodeFormatted = null;\n if (this.totpInterval) {\n window.clearInterval(this.totpInterval);\n }\n }\n }\n\n protected allowOwnershipAssignment() {\n return (!this.editMode || this.cloneMode) && this.ownershipOptions != null\n && (this.ownershipOptions.length > 1 || !this.allowPersonal);\n }\n\n private async totpTick(intervalSeconds: number) {\n const epoch = Math.round(new Date().getTime() / 1000.0);\n const mod = epoch % intervalSeconds;\n\n this.totpSec = intervalSeconds - mod;\n this.totpDash = +(Math.round((((78.6 / intervalSeconds) * mod) + 'e+2') as any) + 'e-2');\n this.totpLow = this.totpSec <= 7;\n if (mod === 0) {\n await this.totpUpdateCode();\n }\n }\n}\n","
\n
\n
\n
\n

{{title}}

\n \n
\n
\n \n {{'personalOwnershipPolicyInEffect' | i18n}}\n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n
\n \n
\n \n
\n
\n
\n
\n
\n \n \n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n \n
\n \n {{totpSec}}\n \n \n \n \n \n \n \n {{totpCodeFormatted}}\n \n
\n
\n
\n \n
\n
\n \n
\n \n
\n \n \n
\n
\n
\n
\n
\n \n \n \n \n
\n
\n \n \n
\n
\n
\n
\n \n {{'newUri' | i18n}}\n \n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n
\n \n
\n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n
\n \n
\n \n \n
\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n

{{'customFields' | i18n}}

\n
\n
\n
\n
\n \n \n \n \n
\n \n
\n
\n \n
\n
\n \n
\n \n
\n
\n
\n \n
\n \n \n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n \n {{'newCustomField' | i18n}}\n \n
\n
\n \n \n
\n
\n \n

{{'ownership' | i18n}}

\n
\n
\n \n \n
\n
\n
\n \n

{{'collections' | i18n}}

\n
\n {{'noCollectionsInList' | i18n}}\n
\n \n
\n \n \n
\n
\n
\n \n
\n
\n {{'dateUpdated' | i18n}}:\n {{cipher.revisionDate | date:'medium'}}\n
\n
\n {{'datePasswordUpdated' | i18n}}:\n {{cipher.passwordRevisionDisplayDate | date:'medium'}}\n
\n
\n {{'passwordHistory' | i18n}}:\n \n {{cipher.passwordHistory.length}}\n \n
\n
\n
\n {{ph.lastUsedDate | date:'short'}} -\n {{ph.password}}\n
\n
\n
\n
\n
\n
\n \n \n
\n \n \n
\n
\n
\n
\n
\n","import { Importer } from '../importers/importer';\n\nexport interface ImportOption {\n id: string;\n name: string;\n}\nexport abstract class ImportService {\n featuredImportOptions: ImportOption[];\n regularImportOptions: ImportOption[];\n getImportOptions: () => ImportOption[];\n import: (importer: Importer, fileContents: string, organizationId?: string) => Promise;\n getImporter: (format: string, organizationId: string) => Importer;\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { EventService } from 'jslib/abstractions/event.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SearchService } from 'jslib/abstractions/search.service';\nimport { TotpService } from 'jslib/abstractions/totp.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CiphersComponent as BaseCiphersComponent } from 'jslib/angular/components/ciphers.component';\n\nimport { CipherType } from 'jslib/enums/cipherType';\nimport { EventType } from 'jslib/enums/eventType';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nconst MaxCheckedCount = 500;\n\n@Component({\n selector: 'app-vault-ciphers',\n templateUrl: 'ciphers.component.html',\n})\nexport class CiphersComponent extends BaseCiphersComponent implements OnDestroy {\n @Input() showAddNew = true;\n @Output() onAttachmentsClicked = new EventEmitter();\n @Output() onShareClicked = new EventEmitter();\n @Output() onCollectionsClicked = new EventEmitter();\n @Output() onCloneClicked = new EventEmitter();\n\n cipherType = CipherType;\n actionPromise: Promise;\n userHasPremiumAccess = false;\n\n constructor(searchService: SearchService, protected analytics: Angulartics2,\n protected toasterService: ToasterService, protected i18nService: I18nService,\n protected platformUtilsService: PlatformUtilsService, protected cipherService: CipherService,\n protected eventService: EventService, protected totpService: TotpService, protected userService: UserService) {\n super(searchService);\n this.pageSize = 200;\n }\n\n async ngOnInit() {\n this.userHasPremiumAccess = await this.userService.canAccessPremium();\n }\n\n ngOnDestroy() {\n this.selectAll(false);\n }\n\n launch(uri: string) {\n this.platformUtilsService.eventTrack('Launched Login URI');\n this.platformUtilsService.launchUri(uri);\n }\n\n attachments(c: CipherView) {\n this.onAttachmentsClicked.emit(c);\n }\n\n share(c: CipherView) {\n this.onShareClicked.emit(c);\n }\n\n collections(c: CipherView) {\n this.onCollectionsClicked.emit(c);\n }\n\n clone(c: CipherView) {\n this.onCloneClicked.emit(c);\n }\n\n async delete(c: CipherView): Promise {\n if (this.actionPromise != null) {\n return;\n }\n const permanent = c.isDeleted;\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t(permanent ? 'permanentlyDeleteItemConfirmation' : 'deleteItemConfirmation'),\n this.i18nService.t(permanent ? 'permanentlyDeleteItem' : 'deleteItem'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.actionPromise = this.deleteCipher(c.id, permanent);\n await this.actionPromise;\n this.analytics.eventTrack.next({ action: 'Deleted Cipher' });\n this.toasterService.popAsync('success', null, this.i18nService.t(permanent ? 'permanentlyDeletedItem'\n : 'deletedItem'));\n this.refresh();\n } catch { }\n this.actionPromise = null;\n }\n\n async restore(c: CipherView): Promise {\n if (this.actionPromise != null || !c.isDeleted) {\n return;\n }\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('restoreItemConfirmation'),\n this.i18nService.t('restoreItem'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.actionPromise = this.cipherService.restoreWithServer(c.id);\n await this.actionPromise;\n this.analytics.eventTrack.next({ action: 'Restored Cipher' });\n this.toasterService.popAsync('success', null, this.i18nService.t('restoredItem'));\n this.refresh();\n } catch { }\n this.actionPromise = null;\n }\n\n async copy(cipher: CipherView, value: string, typeI18nKey: string, aType: string) {\n if (value == null || aType === 'TOTP' && !this.displayTotpCopyButton(cipher)) {\n return;\n } else if (value === cipher.login.totp) {\n value = await this.totpService.getCode(value);\n }\n\n this.analytics.eventTrack.next({ action: 'Copied ' + aType.toLowerCase() + ' from listing.' });\n this.platformUtilsService.copyToClipboard(value, { window: window });\n this.toasterService.popAsync('info', null,\n this.i18nService.t('valueCopied', this.i18nService.t(typeI18nKey)));\n\n if (typeI18nKey === 'password' || typeI18nKey === 'verificationCodeTotp') {\n this.eventService.collect(EventType.Cipher_ClientToggledHiddenFieldVisible, cipher.id);\n } else if (typeI18nKey === 'securityCode') {\n this.eventService.collect(EventType.Cipher_ClientCopiedCardCode, cipher.id);\n }\n }\n\n selectAll(select: boolean) {\n if (select) {\n this.selectAll(false);\n }\n const selectCount = select && this.ciphers.length > MaxCheckedCount\n ? MaxCheckedCount\n : this.ciphers.length;\n for (let i = 0; i < selectCount; i++) {\n this.checkCipher(this.ciphers[i], select);\n }\n }\n\n checkCipher(c: CipherView, select?: boolean) {\n (c as any).checked = select == null ? !(c as any).checked : select;\n }\n\n getSelected(): CipherView[] {\n if (this.ciphers == null) {\n return [];\n }\n return this.ciphers.filter(c => !!(c as any).checked);\n }\n\n getSelectedIds(): string[] {\n return this.getSelected().map(c => c.id);\n }\n\n displayTotpCopyButton(cipher: CipherView) {\n return (cipher?.login?.hasTotp ?? false) &&\n (cipher.organizationUseTotp || this.userHasPremiumAccess);\n }\n\n protected deleteCipher(id: string, permanent: boolean) {\n return permanent ? this.cipherService.deleteWithServer(id) : this.cipherService.softDeleteWithServer(id);\n }\n\n protected showFixOldAttachments(c: CipherView) {\n return c.hasOldAttachments && c.organizationId == null;\n }\n}\n","\n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n {{c.name}}\n \n \n {{'shared' | i18n}}\n \n \n \n {{'attachments' | i18n}}\n \n \n {{'attachmentsNeedFix' | i18n}}\n \n \n
\n {{c.subTitle}}\n
\n \n
\n
\n \n \n {{'loading' | i18n}}\n \n \n

{{'noItemsInList' | i18n}}

\n \n
\n
\n
\n","import { KdfType } from '../enums/kdfType';\nimport { TwoFactorProviderType } from '../enums/twoFactorProviderType';\n\nimport { AuthResult } from '../models/domain/authResult';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nimport { DeviceRequest } from '../models/request/deviceRequest';\nimport { KeysRequest } from '../models/request/keysRequest';\nimport { PreloginRequest } from '../models/request/preloginRequest';\nimport { TokenRequest } from '../models/request/tokenRequest';\n\nimport { IdentityTokenResponse } from '../models/response/identityTokenResponse';\nimport { IdentityTwoFactorResponse } from '../models/response/identityTwoFactorResponse';\n\nimport { ApiService } from '../abstractions/api.service';\nimport { AppIdService } from '../abstractions/appId.service';\nimport { AuthService as AuthServiceAbstraction } from '../abstractions/auth.service';\nimport { CryptoService } from '../abstractions/crypto.service';\nimport { I18nService } from '../abstractions/i18n.service';\nimport { LogService } from '../abstractions/log.service';\nimport { MessagingService } from '../abstractions/messaging.service';\nimport { PlatformUtilsService } from '../abstractions/platformUtils.service';\nimport { TokenService } from '../abstractions/token.service';\nimport { UserService } from '../abstractions/user.service';\nimport { VaultTimeoutService } from '../abstractions/vaultTimeout.service';\n\nexport const TwoFactorProviders = {\n [TwoFactorProviderType.Authenticator]: {\n type: TwoFactorProviderType.Authenticator,\n name: null as string,\n description: null as string,\n priority: 1,\n sort: 1,\n premium: false,\n },\n [TwoFactorProviderType.Yubikey]: {\n type: TwoFactorProviderType.Yubikey,\n name: null as string,\n description: null as string,\n priority: 3,\n sort: 2,\n premium: true,\n },\n [TwoFactorProviderType.Duo]: {\n type: TwoFactorProviderType.Duo,\n name: 'Duo',\n description: null as string,\n priority: 2,\n sort: 3,\n premium: true,\n },\n [TwoFactorProviderType.OrganizationDuo]: {\n type: TwoFactorProviderType.OrganizationDuo,\n name: 'Duo (Organization)',\n description: null as string,\n priority: 10,\n sort: 4,\n premium: false,\n },\n [TwoFactorProviderType.U2f]: {\n type: TwoFactorProviderType.U2f,\n name: null as string,\n description: null as string,\n priority: 4,\n sort: 5,\n premium: true,\n },\n [TwoFactorProviderType.Email]: {\n type: TwoFactorProviderType.Email,\n name: null as string,\n description: null as string,\n priority: 0,\n sort: 6,\n premium: false,\n },\n};\n\nexport class AuthService implements AuthServiceAbstraction {\n email: string;\n masterPasswordHash: string;\n code: string;\n codeVerifier: string;\n ssoRedirectUrl: string;\n clientId: string;\n clientSecret: string;\n twoFactorProvidersData: Map;\n selectedTwoFactorProviderType: TwoFactorProviderType = null;\n\n private key: SymmetricCryptoKey;\n\n constructor(private cryptoService: CryptoService, private apiService: ApiService,\n private userService: UserService, private tokenService: TokenService,\n private appIdService: AppIdService, private i18nService: I18nService,\n private platformUtilsService: PlatformUtilsService, private messagingService: MessagingService,\n private vaultTimeoutService: VaultTimeoutService, private logService: LogService,\n private setCryptoKeys = true) {\n }\n\n init() {\n TwoFactorProviders[TwoFactorProviderType.Email].name = this.i18nService.t('emailTitle');\n TwoFactorProviders[TwoFactorProviderType.Email].description = this.i18nService.t('emailDesc');\n\n TwoFactorProviders[TwoFactorProviderType.Authenticator].name = this.i18nService.t('authenticatorAppTitle');\n TwoFactorProviders[TwoFactorProviderType.Authenticator].description =\n this.i18nService.t('authenticatorAppDesc');\n\n TwoFactorProviders[TwoFactorProviderType.Duo].description = this.i18nService.t('duoDesc');\n\n TwoFactorProviders[TwoFactorProviderType.OrganizationDuo].name =\n 'Duo (' + this.i18nService.t('organization') + ')';\n TwoFactorProviders[TwoFactorProviderType.OrganizationDuo].description =\n this.i18nService.t('duoOrganizationDesc');\n\n TwoFactorProviders[TwoFactorProviderType.U2f].name = this.i18nService.t('u2fTitle');\n TwoFactorProviders[TwoFactorProviderType.U2f].description = this.i18nService.t('u2fDesc');\n\n TwoFactorProviders[TwoFactorProviderType.Yubikey].name = this.i18nService.t('yubiKeyTitle');\n TwoFactorProviders[TwoFactorProviderType.Yubikey].description = this.i18nService.t('yubiKeyDesc');\n }\n\n async logIn(email: string, masterPassword: string): Promise {\n this.selectedTwoFactorProviderType = null;\n const key = await this.makePreloginKey(masterPassword, email);\n const hashedPassword = await this.cryptoService.hashPassword(masterPassword, key);\n return await this.logInHelper(email, hashedPassword, null, null, null, null, null,\n key, null, null, null);\n }\n\n async logInSso(code: string, codeVerifier: string, redirectUrl: string): Promise {\n this.selectedTwoFactorProviderType = null;\n return await this.logInHelper(null, null, code, codeVerifier, redirectUrl, null, null,\n null, null, null, null);\n }\n\n async logInApiKey(clientId: string, clientSecret: string): Promise {\n this.selectedTwoFactorProviderType = null;\n return await this.logInHelper(null, null, null, null, null, clientId, clientSecret,\n null, null, null, null);\n }\n\n async logInTwoFactor(twoFactorProvider: TwoFactorProviderType, twoFactorToken: string,\n remember?: boolean): Promise {\n return await this.logInHelper(this.email, this.masterPasswordHash, this.code, this.codeVerifier,\n this.ssoRedirectUrl, this.clientId, this.clientSecret, this.key, twoFactorProvider,\n twoFactorToken, remember);\n }\n\n async logInComplete(email: string, masterPassword: string, twoFactorProvider: TwoFactorProviderType,\n twoFactorToken: string, remember?: boolean): Promise {\n this.selectedTwoFactorProviderType = null;\n const key = await this.makePreloginKey(masterPassword, email);\n const hashedPassword = await this.cryptoService.hashPassword(masterPassword, key);\n return await this.logInHelper(email, hashedPassword, null, null, null, null, null, key,\n twoFactorProvider, twoFactorToken, remember);\n }\n\n async logInSsoComplete(code: string, codeVerifier: string, redirectUrl: string,\n twoFactorProvider: TwoFactorProviderType, twoFactorToken: string, remember?: boolean): Promise {\n this.selectedTwoFactorProviderType = null;\n return await this.logInHelper(null, null, code, codeVerifier, redirectUrl, null,\n null, null, twoFactorProvider, twoFactorToken, remember);\n }\n\n async logInApiKeyComplete(clientId: string, clientSecret: string, twoFactorProvider: TwoFactorProviderType,\n twoFactorToken: string, remember?: boolean): Promise {\n this.selectedTwoFactorProviderType = null;\n return await this.logInHelper(null, null, null, null, null, clientId, clientSecret, null,\n twoFactorProvider, twoFactorToken, remember);\n }\n\n logOut(callback: Function) {\n callback();\n this.messagingService.send('loggedOut');\n }\n\n getSupportedTwoFactorProviders(win: Window): any[] {\n const providers: any[] = [];\n if (this.twoFactorProvidersData == null) {\n return providers;\n }\n\n if (this.twoFactorProvidersData.has(TwoFactorProviderType.OrganizationDuo) &&\n this.platformUtilsService.supportsDuo()) {\n providers.push(TwoFactorProviders[TwoFactorProviderType.OrganizationDuo]);\n }\n\n if (this.twoFactorProvidersData.has(TwoFactorProviderType.Authenticator)) {\n providers.push(TwoFactorProviders[TwoFactorProviderType.Authenticator]);\n }\n\n if (this.twoFactorProvidersData.has(TwoFactorProviderType.Yubikey)) {\n providers.push(TwoFactorProviders[TwoFactorProviderType.Yubikey]);\n }\n\n if (this.twoFactorProvidersData.has(TwoFactorProviderType.Duo) && this.platformUtilsService.supportsDuo()) {\n providers.push(TwoFactorProviders[TwoFactorProviderType.Duo]);\n }\n\n if (this.twoFactorProvidersData.has(TwoFactorProviderType.U2f) && this.platformUtilsService.supportsU2f(win)) {\n providers.push(TwoFactorProviders[TwoFactorProviderType.U2f]);\n }\n\n if (this.twoFactorProvidersData.has(TwoFactorProviderType.Email)) {\n providers.push(TwoFactorProviders[TwoFactorProviderType.Email]);\n }\n\n return providers;\n }\n\n getDefaultTwoFactorProvider(u2fSupported: boolean): TwoFactorProviderType {\n if (this.twoFactorProvidersData == null) {\n return null;\n }\n\n if (this.selectedTwoFactorProviderType != null &&\n this.twoFactorProvidersData.has(this.selectedTwoFactorProviderType)) {\n return this.selectedTwoFactorProviderType;\n }\n\n let providerType: TwoFactorProviderType = null;\n let providerPriority = -1;\n this.twoFactorProvidersData.forEach((value, type) => {\n const provider = (TwoFactorProviders as any)[type];\n if (provider != null && provider.priority > providerPriority) {\n if (type === TwoFactorProviderType.U2f && !u2fSupported) {\n return;\n }\n\n providerType = type;\n providerPriority = provider.priority;\n }\n });\n\n return providerType;\n }\n\n async makePreloginKey(masterPassword: string, email: string): Promise {\n email = email.trim().toLowerCase();\n let kdf: KdfType = null;\n let kdfIterations: number = null;\n try {\n const preloginResponse = await this.apiService.postPrelogin(new PreloginRequest(email));\n if (preloginResponse != null) {\n kdf = preloginResponse.kdf;\n kdfIterations = preloginResponse.kdfIterations;\n }\n } catch (e) {\n if (e == null || e.statusCode !== 404) {\n throw e;\n }\n }\n return this.cryptoService.makeKey(masterPassword, email, kdf, kdfIterations);\n }\n\n authingWithApiKey(): boolean {\n return this.clientId != null && this.clientSecret != null;\n }\n\n authingWithSso(): boolean {\n return this.code != null && this.codeVerifier != null && this.ssoRedirectUrl != null;\n }\n\n authingWithPassword(): boolean {\n return this.email != null && this.masterPasswordHash != null;\n }\n\n private async logInHelper(email: string, hashedPassword: string, code: string, codeVerifier: string,\n redirectUrl: string, clientId: string, clientSecret: string, key: SymmetricCryptoKey,\n twoFactorProvider?: TwoFactorProviderType, twoFactorToken?: string, remember?: boolean): Promise {\n const storedTwoFactorToken = await this.tokenService.getTwoFactorToken(email);\n const appId = await this.appIdService.getAppId();\n const deviceRequest = new DeviceRequest(appId, this.platformUtilsService);\n\n let emailPassword: string[] = [];\n let codeCodeVerifier: string[] = [];\n let clientIdClientSecret: string[] = [];\n\n if (email != null && hashedPassword != null) {\n emailPassword = [email, hashedPassword];\n } else {\n emailPassword = null;\n }\n if (code != null && codeVerifier != null && redirectUrl != null) {\n codeCodeVerifier = [code, codeVerifier, redirectUrl];\n } else {\n codeCodeVerifier = null;\n }\n if (clientId != null && clientSecret != null) {\n clientIdClientSecret = [clientId, clientSecret];\n } else {\n clientIdClientSecret = null;\n }\n\n let request: TokenRequest;\n if (twoFactorToken != null && twoFactorProvider != null) {\n request = new TokenRequest(emailPassword, codeCodeVerifier, clientIdClientSecret, twoFactorProvider,\n twoFactorToken, remember, deviceRequest);\n } else if (storedTwoFactorToken != null) {\n request = new TokenRequest(emailPassword, codeCodeVerifier, clientIdClientSecret, TwoFactorProviderType.Remember,\n storedTwoFactorToken, false, deviceRequest);\n } else {\n request = new TokenRequest(emailPassword, codeCodeVerifier, clientIdClientSecret, null,\n null, false, deviceRequest);\n }\n\n const response = await this.apiService.postIdentityToken(request);\n\n this.clearState();\n const result = new AuthResult();\n result.twoFactor = !(response as any).accessToken;\n\n if (result.twoFactor) {\n // two factor required\n const twoFactorResponse = response as IdentityTwoFactorResponse;\n this.email = email;\n this.masterPasswordHash = hashedPassword;\n this.code = code;\n this.codeVerifier = codeVerifier;\n this.ssoRedirectUrl = redirectUrl;\n this.clientId = clientId;\n this.clientSecret = clientSecret;\n this.key = this.setCryptoKeys ? key : null;\n this.twoFactorProvidersData = twoFactorResponse.twoFactorProviders2;\n result.twoFactorProviders = twoFactorResponse.twoFactorProviders2;\n return result;\n }\n\n const tokenResponse = response as IdentityTokenResponse;\n result.resetMasterPassword = tokenResponse.resetMasterPassword;\n if (tokenResponse.twoFactorToken != null) {\n await this.tokenService.setTwoFactorToken(tokenResponse.twoFactorToken, email);\n }\n\n await this.tokenService.setTokens(tokenResponse.accessToken, tokenResponse.refreshToken);\n await this.userService.setInformation(this.tokenService.getUserId(), this.tokenService.getEmail(),\n tokenResponse.kdf, tokenResponse.kdfIterations);\n if (this.setCryptoKeys) {\n if (key != null) {\n await this.cryptoService.setKey(key);\n }\n if (hashedPassword != null) {\n await this.cryptoService.setKeyHash(hashedPassword);\n }\n\n // Skip this step during SSO new user flow. No key is returned from server.\n if (code == null || tokenResponse.key != null) {\n await this.cryptoService.setEncKey(tokenResponse.key);\n\n // User doesn't have a key pair yet (old account), let's generate one for them\n if (tokenResponse.privateKey == null) {\n try {\n const keyPair = await this.cryptoService.makeKeyPair();\n await this.apiService.postAccountKeys(new KeysRequest(keyPair[0], keyPair[1].encryptedString));\n tokenResponse.privateKey = keyPair[1].encryptedString;\n } catch (e) {\n // tslint:disable-next-line\n this.logService.error(e);\n }\n }\n\n await this.cryptoService.setEncPrivateKey(tokenResponse.privateKey);\n }\n }\n\n if (this.vaultTimeoutService != null) {\n this.vaultTimeoutService.biometricLocked = false;\n }\n this.messagingService.send('loggedIn');\n return result;\n }\n\n private clearState(): void {\n this.key = null;\n this.email = null;\n this.masterPasswordHash = null;\n this.code = null;\n this.codeVerifier = null;\n this.ssoRedirectUrl = null;\n this.clientId = null;\n this.clientSecret = null;\n this.twoFactorProvidersData = null;\n this.selectedTwoFactorProviderType = null;\n }\n}\n","export class SelectionReadOnlyRequest {\n id: string;\n readOnly: boolean;\n hidePasswords: boolean;\n\n constructor(id: string, readOnly: boolean, hidePasswords: boolean) {\n this.id = id;\n this.readOnly = readOnly;\n this.hidePasswords = hidePasswords;\n }\n}\n","export enum DeviceType {\n Android = 0,\n iOS = 1,\n ChromeExtension = 2,\n FirefoxExtension = 3,\n OperaExtension = 4,\n EdgeExtension = 5,\n WindowsDesktop = 6,\n MacOsDesktop = 7,\n LinuxDesktop = 8,\n ChromeBrowser = 9,\n FirefoxBrowser = 10,\n OperaBrowser = 11,\n EdgeBrowser = 12,\n IEBrowser = 13,\n UnknownBrowser = 14,\n AndroidAmazon = 15,\n UWP = 16,\n SafariBrowser = 17,\n VivaldiBrowser = 18,\n VivaldiExtension = 19,\n SafariExtension = 20,\n}\n","export abstract class SettingsService {\n clearCache: () => void;\n getEquivalentDomains: () => Promise;\n setEquivalentDomains: (equivalentDomains: string[][]) => Promise;\n clear: (userId: string) => Promise;\n}\n","export enum PlanType {\n Free = 0,\n FamiliesAnnually2019 = 1,\n TeamsMonthly2019 = 2,\n TeamsAnnually2019 = 3,\n EnterpriseMonthly2019 = 4,\n EnterpriseAnnually2019 = 5,\n Custom = 6,\n FamiliesAnnually = 7,\n TeamsMonthly = 8,\n TeamsAnnually = 9,\n EnterpriseMonthly = 10,\n EnterpriseAnnually = 11,\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { PaymentMethodType } from 'jslib/enums/paymentMethodType';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { PaymentComponent } from './payment.component';\nimport { TaxInfoComponent } from './tax-info.component';\n\nimport { OrganizationUserStatusType } from 'jslib/enums/organizationUserStatusType';\nimport { OrganizationUserType } from 'jslib/enums/organizationUserType';\nimport { PlanType } from 'jslib/enums/planType';\nimport { PolicyType } from 'jslib/enums/policyType';\nimport { ProductType } from 'jslib/enums/productType';\n\nimport { OrganizationCreateRequest } from 'jslib/models/request/organizationCreateRequest';\nimport { OrganizationUpgradeRequest } from 'jslib/models/request/organizationUpgradeRequest';\nimport { PlanResponse } from 'jslib/models/response/planResponse';\n\n@Component({\n selector: 'app-organization-plans',\n templateUrl: 'organization-plans.component.html',\n})\nexport class OrganizationPlansComponent implements OnInit {\n @ViewChild(PaymentComponent) paymentComponent: PaymentComponent;\n @ViewChild(TaxInfoComponent) taxComponent: TaxInfoComponent;\n\n @Input() organizationId: string;\n @Input() showFree = true;\n @Input() showCancel = false;\n @Input() product: ProductType = ProductType.Free;\n @Input() plan: PlanType = PlanType.Free;\n @Output() onSuccess = new EventEmitter();\n @Output() onCanceled = new EventEmitter();\n\n loading: boolean = true;\n selfHosted: boolean = false;\n ownedBusiness: boolean = false;\n premiumAccessAddon: boolean = false;\n additionalStorage: number = 0;\n additionalSeats: number = 0;\n name: string;\n billingEmail: string;\n businessName: string;\n productTypes = ProductType;\n formPromise: Promise;\n singleOrgPolicyBlock: boolean = false;\n\n plans: PlanResponse[];\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n platformUtilsService: PlatformUtilsService, private cryptoService: CryptoService,\n private router: Router, private syncService: SyncService,\n private policyService: PolicyService, private userService: UserService) {\n this.selfHosted = platformUtilsService.isSelfHost();\n }\n\n async ngOnInit() {\n if (!this.selfHosted) {\n const plans = await this.apiService.getPlans();\n this.plans = plans.data;\n if (this.product === ProductType.Enterprise || this.product === ProductType.Teams) {\n this.ownedBusiness = true;\n }\n }\n this.loading = false;\n }\n\n get createOrganization() {\n return this.organizationId == null;\n }\n\n get selectedPlan() {\n return this.plans.find(plan => plan.type === this.plan);\n }\n\n get selectedPlanInterval() {\n return this.selectedPlan.isAnnual\n ? 'year'\n : 'month';\n }\n\n get selectableProducts() {\n let validPlans = this.plans.filter(plan => plan.type !== PlanType.Custom);\n\n if (this.ownedBusiness) {\n validPlans = validPlans.filter(plan => plan.canBeUsedByBusiness);\n }\n\n if (!this.showFree) {\n validPlans = validPlans.filter(plan => plan.product !== ProductType.Free);\n }\n\n validPlans = validPlans\n .filter(plan => !plan.legacyYear\n && !plan.disabled\n && (plan.isAnnual || plan.product === this.productTypes.Free));\n\n return validPlans;\n }\n\n get selectablePlans() {\n return this.plans.filter(plan => !plan.legacyYear && !plan.disabled && plan.product === this.product);\n }\n\n additionalStoragePriceMonthly(selectedPlan: PlanResponse) {\n if (!selectedPlan.isAnnual) {\n return selectedPlan.additionalStoragePricePerGb;\n }\n return selectedPlan.additionalStoragePricePerGb / 12;\n }\n\n seatPriceMonthly(selectedPlan: PlanResponse) {\n if (!selectedPlan.isAnnual) {\n return selectedPlan.seatPrice;\n }\n return selectedPlan.seatPrice / 12;\n }\n\n additionalStorageTotal(plan: PlanResponse): number {\n if (!plan.hasAdditionalStorageOption) {\n return 0;\n }\n\n return plan.additionalStoragePricePerGb * Math.abs(this.additionalStorage || 0);\n }\n\n seatTotal(plan: PlanResponse): number {\n if (!plan.hasAdditionalSeatsOption) {\n return 0;\n }\n\n return plan.seatPrice * Math.abs(this.additionalSeats || 0);\n }\n\n get subtotal() {\n let subTotal = this.selectedPlan.basePrice;\n if (this.selectedPlan.hasAdditionalSeatsOption && this.additionalSeats) {\n subTotal += this.seatTotal(this.selectedPlan);\n }\n if (this.selectedPlan.hasAdditionalStorageOption && this.additionalStorage) {\n subTotal += this.additionalStorageTotal(this.selectedPlan);\n }\n if (this.selectedPlan.hasPremiumAccessOption && this.premiumAccessAddon) {\n subTotal += this.selectedPlan.premiumAccessOptionPrice;\n }\n return subTotal;\n }\n\n get taxCharges() {\n return this.taxComponent != null && this.taxComponent.taxRate != null ?\n (this.taxComponent.taxRate / 100) * this.subtotal :\n 0;\n }\n\n get total() {\n return (this.subtotal + this.taxCharges) || 0;\n }\n\n changedProduct() {\n this.plan = this.selectablePlans[0].type;\n if (!this.selectedPlan.hasPremiumAccessOption) {\n this.premiumAccessAddon = false;\n }\n if (!this.selectedPlan.hasAdditionalStorageOption) {\n this.additionalStorage = 0;\n }\n if (!this.selectedPlan.hasAdditionalSeatsOption) {\n this.additionalSeats = 0;\n } else if (!this.additionalSeats && !this.selectedPlan.baseSeats &&\n this.selectedPlan.hasAdditionalSeatsOption) {\n this.additionalSeats = 1;\n }\n }\n\n changedOwnedBusiness() {\n if (!this.ownedBusiness || this.selectedPlan.canBeUsedByBusiness) {\n return;\n }\n this.product = ProductType.Teams;\n this.plan = PlanType.TeamsAnnually;\n }\n\n changedCountry() {\n this.paymentComponent.hideBank = this.taxComponent.taxInfo.country !== 'US';\n // Bank Account payments are only available for US customers\n if (this.paymentComponent.hideBank &&\n this.paymentComponent.method === PaymentMethodType.BankAccount) {\n this.paymentComponent.method = PaymentMethodType.Card;\n this.paymentComponent.changeMethod();\n }\n }\n\n cancel() {\n this.onCanceled.emit();\n }\n\n async submit() {\n if (this.singleOrgPolicyBlock) {\n return;\n } else {\n const policies = await this.policyService.getAll(PolicyType.SingleOrg);\n const orgs = await this.userService.getAllOrganizations();\n\n const orgsWithSingleOrgPolicy = policies\n .filter(p => p.enabled && p.type === PolicyType.SingleOrg)\n .map(p => p.organizationId);\n\n this.singleOrgPolicyBlock = orgs.some(org =>\n org.type !== OrganizationUserType.Owner &&\n org.type !== OrganizationUserType.Admin &&\n org.status !== OrganizationUserStatusType.Invited &&\n orgsWithSingleOrgPolicy.includes(org.id));\n\n if (this.singleOrgPolicyBlock) {\n return;\n }\n }\n\n let files: FileList = null;\n if (this.createOrganization && this.selfHosted) {\n const fileEl = document.getElementById('file') as HTMLInputElement;\n files = fileEl.files;\n if (files == null || files.length === 0) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectFile'));\n return;\n }\n }\n\n try {\n const doSubmit = async () => {\n let orgId: string = null;\n if (this.createOrganization) {\n let tokenResult: [string, PaymentMethodType] = null;\n if (!this.selfHosted && this.plan !== PlanType.Free) {\n tokenResult = await this.paymentComponent.createPaymentToken();\n }\n const shareKey = await this.cryptoService.makeShareKey();\n const key = shareKey[0].encryptedString;\n const collection = await this.cryptoService.encrypt(\n this.i18nService.t('defaultCollection'), shareKey[1]);\n const collectionCt = collection.encryptedString;\n\n if (this.selfHosted) {\n const fd = new FormData();\n fd.append('license', files[0]);\n fd.append('key', key);\n fd.append('collectionName', collectionCt);\n const response = await this.apiService.postOrganizationLicense(fd);\n orgId = response.id;\n } else {\n const request = new OrganizationCreateRequest();\n request.key = key;\n request.collectionName = collectionCt;\n request.name = this.name;\n request.billingEmail = this.billingEmail;\n\n if (this.selectedPlan.type === PlanType.Free) {\n request.planType = PlanType.Free;\n } else {\n request.paymentToken = tokenResult[0];\n request.paymentMethodType = tokenResult[1];\n request.businessName = this.ownedBusiness ? this.businessName : null;\n request.additionalSeats = this.additionalSeats;\n request.additionalStorageGb = this.additionalStorage;\n request.premiumAccessAddon = this.selectedPlan.hasPremiumAccessOption &&\n this.premiumAccessAddon;\n request.planType = this.selectedPlan.type;\n request.billingAddressPostalCode = this.taxComponent.taxInfo.postalCode;\n request.billingAddressCountry = this.taxComponent.taxInfo.country;\n if (this.taxComponent.taxInfo.includeTaxId) {\n request.taxIdNumber = this.taxComponent.taxInfo.taxId;\n request.billingAddressLine1 = this.taxComponent.taxInfo.line1;\n request.billingAddressLine2 = this.taxComponent.taxInfo.line2;\n request.billingAddressCity = this.taxComponent.taxInfo.city;\n request.billingAddressState = this.taxComponent.taxInfo.state;\n }\n }\n const response = await this.apiService.postOrganization(request);\n orgId = response.id;\n }\n } else {\n const request = new OrganizationUpgradeRequest();\n request.businessName = this.ownedBusiness ? this.businessName : null;\n request.additionalSeats = this.additionalSeats;\n request.additionalStorageGb = this.additionalStorage;\n request.premiumAccessAddon = this.selectedPlan.hasPremiumAccessOption &&\n this.premiumAccessAddon;\n request.planType = this.selectedPlan.type;\n request.billingAddressCountry = this.taxComponent.taxInfo.country;\n request.billingAddressPostalCode = this.taxComponent.taxInfo.postalCode;\n\n const result = await this.apiService.postOrganizationUpgrade(this.organizationId, request);\n if (!result.success && result.paymentIntentClientSecret != null) {\n await this.paymentComponent.handleStripeCardPayment(result.paymentIntentClientSecret, null);\n }\n orgId = this.organizationId;\n }\n\n if (orgId != null) {\n await this.apiService.refreshIdentityToken();\n await this.syncService.fullSync(true);\n if (this.createOrganization) {\n this.analytics.eventTrack.next({ action: 'Created Organization' });\n this.toasterService.popAsync('success',\n this.i18nService.t('organizationCreated'), this.i18nService.t('organizationReadyToGo'));\n } else {\n this.analytics.eventTrack.next({ action: 'Upgraded Organization' });\n this.toasterService.popAsync('success', null, this.i18nService.t('organizationUpgraded'));\n }\n this.router.navigate(['/organizations/' + orgId]);\n }\n };\n\n this.formPromise = doSubmit();\n await this.formPromise;\n this.onSuccess.emit();\n } catch { }\n }\n\n}\n","\n \n {{'loading' | i18n}}\n\n\n

{{'uploadLicenseFileOrg' | i18n}}

\n
\n
\n \n \n {{'licenseFileDesc' | i18n : 'bitwarden_organization_license.json'}}\n
\n \n
\n
\n
\n

{{'generalInformation' | i18n}}

\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n

{{'chooseYourPlan' | i18n}}

\n
\n \n \n
\n
\n \n

{{'users' | i18n}}

\n
\n
\n \n \n {{'userSeatsHowManyDesc' | i18n}}\n
\n
\n
\n

{{'addons' | i18n}}

\n
\n
\n \n \n {{'userSeatsAdditionalDesc' | i18n : selectedPlan.baseSeats : (seatPriceMonthly(selectedPlan) | currency:'$')}}\n
\n
\n
\n
\n \n \n {{'additionalStorageIntervalDesc' | i18n : '1 GB' : (additionalStoragePriceMonthly(selectedPlan) | currency:'$') : ('month' | i18n)}}\n
\n
\n
\n
\n
\n \n \n
\n {{'premiumAccessDesc' | i18n : (3.33 | currency:'$') : ('month' | i18n)}}\n
\n
\n

{{'summary' | i18n}}

\n
\n \n \n
\n
\n

{{ (createOrganization ? 'paymentInformation' : 'billingInformation') | i18n}}

\n \n \n
\n
\n {{ 'planPrice' | i18n }}: {{ subtotal | currency: 'USD $' }}\n
\n \n {{ 'estimatedTax' | i18n }}: {{ taxCharges | currency: 'USD $' }}\n \n
\n
\n

{{'total' | i18n}}:\n {{total | currency:'USD $'}}/{{selectedPlanInterval | i18n}}

\n
\n {{'paymentChargedWithTrial' | i18n : (selectedPlanInterval | i18n) }}\n \n \n \n \n {{'paymentCharged' | i18n : (selectedPlanInterval | i18n) }}\n
\n
\n {{'singleOrgBlockCreateMessage' | i18n}}\n
\n
\n \n \n
\n
\n","import { EncryptionType } from '../../enums/encryptionType';\n\nimport { Utils } from '../../misc/utils';\n\nexport class SymmetricCryptoKey {\n key: ArrayBuffer;\n encKey?: ArrayBuffer;\n macKey?: ArrayBuffer;\n encType: EncryptionType;\n\n keyB64: string;\n encKeyB64: string;\n macKeyB64: string;\n\n meta: any;\n\n constructor(key: ArrayBuffer, encType?: EncryptionType) {\n if (key == null) {\n throw new Error('Must provide key');\n }\n\n if (encType == null) {\n if (key.byteLength === 32) {\n encType = EncryptionType.AesCbc256_B64;\n } else if (key.byteLength === 64) {\n encType = EncryptionType.AesCbc256_HmacSha256_B64;\n } else {\n throw new Error('Unable to determine encType.');\n }\n }\n\n this.key = key;\n this.encType = encType;\n\n if (encType === EncryptionType.AesCbc256_B64 && key.byteLength === 32) {\n this.encKey = key;\n this.macKey = null;\n } else if (encType === EncryptionType.AesCbc128_HmacSha256_B64 && key.byteLength === 32) {\n this.encKey = key.slice(0, 16);\n this.macKey = key.slice(16, 32);\n } else if (encType === EncryptionType.AesCbc256_HmacSha256_B64 && key.byteLength === 64) {\n this.encKey = key.slice(0, 32);\n this.macKey = key.slice(32, 64);\n } else {\n throw new Error('Unsupported encType/key length.');\n }\n\n if (this.key != null) {\n this.keyB64 = Utils.fromBufferToB64(this.key);\n }\n if (this.encKey != null) {\n this.encKeyB64 = Utils.fromBufferToB64(this.encKey);\n }\n if (this.macKey != null) {\n this.macKeyB64 = Utils.fromBufferToB64(this.macKey);\n }\n }\n}\n","import { CardData } from '../data/cardData';\n\nimport { CipherString } from './cipherString';\nimport Domain from './domainBase';\n\nimport { CardView } from '../view/cardView';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class Card extends Domain {\n cardholderName: CipherString;\n brand: CipherString;\n number: CipherString;\n expMonth: CipherString;\n expYear: CipherString;\n code: CipherString;\n\n constructor(obj?: CardData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.buildDomainModel(this, obj, {\n cardholderName: null,\n brand: null,\n number: null,\n expMonth: null,\n expYear: null,\n code: null,\n }, alreadyEncrypted, []);\n }\n\n decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise {\n return this.decryptObj(new CardView(this), {\n cardholderName: null,\n brand: null,\n number: null,\n expMonth: null,\n expYear: null,\n code: null,\n }, orgId, encKey);\n }\n\n toCardData(): CardData {\n const c = new CardData();\n this.buildDataModel(this, c, {\n cardholderName: null,\n brand: null,\n number: null,\n expMonth: null,\n expYear: null,\n code: null,\n });\n return c;\n }\n}\n","import { FieldType } from '../../enums/fieldType';\n\nimport { FieldData } from '../data/fieldData';\n\nimport { CipherString } from './cipherString';\nimport Domain from './domainBase';\n\nimport { FieldView } from '../view/fieldView';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class Field extends Domain {\n name: CipherString;\n value: CipherString;\n type: FieldType;\n\n constructor(obj?: FieldData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.type = obj.type;\n this.buildDomainModel(this, obj, {\n name: null,\n value: null,\n }, alreadyEncrypted, []);\n }\n\n decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise {\n return this.decryptObj(new FieldView(this), {\n name: null,\n value: null,\n }, orgId, encKey);\n }\n\n toFieldData(): FieldData {\n const f = new FieldData();\n this.buildDataModel(this, f, {\n name: null,\n value: null,\n type: null,\n }, ['type']);\n return f;\n }\n}\n","import { IdentityData } from '../data/identityData';\n\nimport { CipherString } from './cipherString';\nimport Domain from './domainBase';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nimport { IdentityView } from '../view/identityView';\n\nexport class Identity extends Domain {\n title: CipherString;\n firstName: CipherString;\n middleName: CipherString;\n lastName: CipherString;\n address1: CipherString;\n address2: CipherString;\n address3: CipherString;\n city: CipherString;\n state: CipherString;\n postalCode: CipherString;\n country: CipherString;\n company: CipherString;\n email: CipherString;\n phone: CipherString;\n ssn: CipherString;\n username: CipherString;\n passportNumber: CipherString;\n licenseNumber: CipherString;\n\n constructor(obj?: IdentityData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.buildDomainModel(this, obj, {\n title: null,\n firstName: null,\n middleName: null,\n lastName: null,\n address1: null,\n address2: null,\n address3: null,\n city: null,\n state: null,\n postalCode: null,\n country: null,\n company: null,\n email: null,\n phone: null,\n ssn: null,\n username: null,\n passportNumber: null,\n licenseNumber: null,\n }, alreadyEncrypted, []);\n }\n\n decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise {\n return this.decryptObj(new IdentityView(this), {\n title: null,\n firstName: null,\n middleName: null,\n lastName: null,\n address1: null,\n address2: null,\n address3: null,\n city: null,\n state: null,\n postalCode: null,\n country: null,\n company: null,\n email: null,\n phone: null,\n ssn: null,\n username: null,\n passportNumber: null,\n licenseNumber: null,\n }, orgId, encKey);\n }\n\n toIdentityData(): IdentityData {\n const i = new IdentityData();\n this.buildDataModel(this, i, {\n title: null,\n firstName: null,\n middleName: null,\n lastName: null,\n address1: null,\n address2: null,\n address3: null,\n city: null,\n state: null,\n postalCode: null,\n country: null,\n company: null,\n email: null,\n phone: null,\n ssn: null,\n username: null,\n passportNumber: null,\n licenseNumber: null,\n });\n return i;\n }\n}\n","import { LoginUri } from './loginUri';\n\nimport { LoginData } from '../data/loginData';\n\nimport { LoginView } from '../view/loginView';\n\nimport { CipherString } from './cipherString';\nimport Domain from './domainBase';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class Login extends Domain {\n uris: LoginUri[];\n username: CipherString;\n password: CipherString;\n passwordRevisionDate?: Date;\n totp: CipherString;\n\n constructor(obj?: LoginData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.passwordRevisionDate = obj.passwordRevisionDate != null ? new Date(obj.passwordRevisionDate) : null;\n this.buildDomainModel(this, obj, {\n username: null,\n password: null,\n totp: null,\n }, alreadyEncrypted, []);\n\n if (obj.uris) {\n this.uris = [];\n obj.uris.forEach(u => {\n this.uris.push(new LoginUri(u, alreadyEncrypted));\n });\n }\n }\n\n async decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise {\n const view = await this.decryptObj(new LoginView(this), {\n username: null,\n password: null,\n totp: null,\n }, orgId, encKey);\n\n if (this.uris != null) {\n view.uris = [];\n for (let i = 0; i < this.uris.length; i++) {\n const uri = await this.uris[i].decrypt(orgId, encKey);\n view.uris.push(uri);\n }\n }\n\n return view;\n }\n\n toLoginData(): LoginData {\n const l = new LoginData();\n l.passwordRevisionDate = this.passwordRevisionDate != null ? this.passwordRevisionDate.toISOString() : null;\n this.buildDataModel(this, l, {\n username: null,\n password: null,\n totp: null,\n });\n\n if (this.uris != null && this.uris.length > 0) {\n l.uris = [];\n this.uris.forEach(u => {\n l.uris.push(u.toLoginUriData());\n });\n }\n\n return l;\n }\n}\n","import { UriMatchType } from '../../enums/uriMatchType';\n\nimport { LoginUriData } from '../data/loginUriData';\n\nimport { LoginUriView } from '../view/loginUriView';\n\nimport { CipherString } from './cipherString';\nimport Domain from './domainBase';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class LoginUri extends Domain {\n uri: CipherString;\n match: UriMatchType;\n\n constructor(obj?: LoginUriData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.match = obj.match;\n this.buildDomainModel(this, obj, {\n uri: null,\n }, alreadyEncrypted, []);\n }\n\n decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise {\n return this.decryptObj(new LoginUriView(this), {\n uri: null,\n }, orgId, encKey);\n }\n\n toLoginUriData(): LoginUriData {\n const u = new LoginUriData();\n this.buildDataModel(this, u, {\n uri: null,\n }, ['match']);\n return u;\n }\n}\n","export enum UriMatchType {\n Domain = 0,\n Host = 1,\n StartsWith = 2,\n Exact = 3,\n RegularExpression = 4,\n Never = 5,\n}\n","import { SecureNoteType } from '../../enums/secureNoteType';\n\nimport { SecureNoteData } from '../data/secureNoteData';\n\nimport Domain from './domainBase';\n\nimport { SecureNoteView } from '../view/secureNoteView';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class SecureNote extends Domain {\n type: SecureNoteType;\n\n constructor(obj?: SecureNoteData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.type = obj.type;\n }\n\n decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise {\n return Promise.resolve(new SecureNoteView(this));\n }\n\n toSecureNoteData(): SecureNoteData {\n const n = new SecureNoteData();\n n.type = this.type;\n return n;\n }\n}\n","import {\n Directive,\n ElementRef,\n forwardRef,\n HostListener,\n Input,\n Renderer2,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NgControl,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\n\n// ref: https://juristr.com/blog/2018/02/ng-true-value-directive/\n@Directive({\n selector: 'input[type=checkbox][appTrueFalseValue]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TrueFalseValueDirective),\n multi: true,\n },\n ],\n})\nexport class TrueFalseValueDirective implements ControlValueAccessor {\n @Input() trueValue = true;\n @Input() falseValue = false;\n\n constructor(private elementRef: ElementRef, private renderer: Renderer2) { }\n\n @HostListener('change', ['$event'])\n onHostChange(ev: any) {\n this.propagateChange(ev.target.checked ? this.trueValue : this.falseValue);\n }\n\n writeValue(obj: any): void {\n if (obj === this.trueValue) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'checked', true);\n } else {\n this.renderer.setProperty(this.elementRef.nativeElement, 'checked', false);\n }\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n registerOnTouched(fn: any): void { /* nothing */ }\n\n setDisabledState?(isDisabled: boolean): void { /* nothing */ }\n\n private propagateChange = (_: any) => { /* nothing */ };\n}\n","import {\n Component,\n EventEmitter,\n Output,\n} from '@angular/core';\n\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { GroupingsComponent as BaseGroupingsComponent } from 'jslib/angular/components/groupings.component';\n\n@Component({\n selector: 'app-vault-groupings',\n templateUrl: 'groupings.component.html',\n})\nexport class GroupingsComponent extends BaseGroupingsComponent {\n @Output() onSearchTextChanged = new EventEmitter();\n\n searchText: string = '';\n searchPlaceholder: string = null;\n\n constructor(collectionService: CollectionService, folderService: FolderService,\n storageService: StorageService, userService: UserService) {\n super(collectionService, folderService, storageService, userService);\n }\n\n searchTextChanged() {\n this.onSearchTextChanged.emit(this.searchText);\n }\n}\n","
\n
\n {{'filters' | i18n}}\n \n \n \n
\n
\n \n \n

{{'types' | i18n}}

\n \n

\n \n {{'loading' | i18n}}\n

\n \n \n

\n {{'folders' | i18n}}\n \n \n \n

\n \n
\n \n

{{'collections' | i18n}}

\n \n
\n
\n
\n
\n","import { OrganizationData } from '../data/organizationData';\n\nimport { OrganizationUserStatusType } from '../../enums/organizationUserStatusType';\nimport { OrganizationUserType } from '../../enums/organizationUserType';\nimport { PermissionsApi } from '../api/permissionsApi';\n\n\nexport class Organization {\n id: string;\n name: string;\n status: OrganizationUserStatusType;\n type: OrganizationUserType;\n enabled: boolean;\n usePolicies: boolean;\n useGroups: boolean;\n useDirectory: boolean;\n useEvents: boolean;\n useTotp: boolean;\n use2fa: boolean;\n useApi: boolean;\n useBusinessPortal: boolean;\n useSso: boolean;\n selfHost: boolean;\n usersGetPremium: boolean;\n seats: number;\n maxCollections: number;\n maxStorageGb?: number;\n ssoBound: boolean;\n identifier: string;\n permissions: PermissionsApi;\n\n constructor(obj?: OrganizationData) {\n if (obj == null) {\n return;\n }\n\n this.id = obj.id;\n this.name = obj.name;\n this.status = obj.status;\n this.type = obj.type;\n this.enabled = obj.enabled;\n this.usePolicies = obj.usePolicies;\n this.useGroups = obj.useGroups;\n this.useDirectory = obj.useDirectory;\n this.useEvents = obj.useEvents;\n this.useTotp = obj.useTotp;\n this.use2fa = obj.use2fa;\n this.useApi = obj.useApi;\n this.useBusinessPortal = obj.useBusinessPortal;\n this.useSso = obj.useSso;\n this.selfHost = obj.selfHost;\n this.usersGetPremium = obj.usersGetPremium;\n this.seats = obj.seats;\n this.maxCollections = obj.maxCollections;\n this.maxStorageGb = obj.maxStorageGb;\n this.ssoBound = obj.ssoBound;\n this.identifier = obj.identifier;\n this.permissions = obj.permissions;\n }\n\n get canAccess() {\n if (this.type === OrganizationUserType.Owner) {\n return true;\n }\n return this.enabled && this.status === OrganizationUserStatusType.Confirmed;\n }\n\n get isManager() {\n return this.type === OrganizationUserType.Manager || this.type === OrganizationUserType.Owner ||\n this.type === OrganizationUserType.Admin;\n }\n\n get isAdmin() {\n return this.type === OrganizationUserType.Owner || this.type === OrganizationUserType.Admin;\n }\n\n get isOwner() {\n return this.type === OrganizationUserType.Owner;\n }\n\n get canAccessBusinessPortal() {\n return this.isAdmin || this.permissions.accessBusinessPortal;\n }\n\n get canAccessEventLogs() {\n return this.isAdmin || this.permissions.accessEventLogs;\n }\n\n get canAccessImportExport() {\n return this.isAdmin || this.permissions.accessImportExport;\n }\n\n get canAccessReports() {\n return this.isAdmin || this.permissions.accessReports;\n }\n\n get canManageAllCollections() {\n return this.isAdmin || this.permissions.manageAllCollections;\n }\n\n get canManageAssignedCollections() {\n return this.isManager || this.permissions.manageAssignedCollections;\n }\n\n get canManageGroups() {\n return this.isAdmin || this.permissions.manageGroups;\n }\n\n get canManageSso() {\n return this.isAdmin || this.permissions.manageSso;\n }\n\n get canManagePolicies() {\n return this.isAdmin || this.permissions.managePolicies;\n }\n\n get canManageUsers() {\n return this.isAdmin || this.permissions.manageUsers;\n }\n}\n","import { View } from './view';\n\nimport { SendFile } from '../domain/sendFile';\n\nexport class SendFileView implements View {\n id: string = null;\n size: string = null;\n sizeName: string = null;\n fileName: string = null;\n\n constructor(f?: SendFile) {\n if (!f) {\n return;\n }\n\n this.id = f.id;\n this.size = f.size;\n this.sizeName = f.sizeName;\n }\n\n get fileSize(): number {\n try {\n if (this.size != null) {\n return parseInt(this.size, null);\n }\n } catch { }\n return 0;\n }\n}\n","import { View } from './view';\n\nimport { SendText } from '../domain/sendText';\n\nexport class SendTextView implements View {\n text: string = null;\n hidden: boolean;\n\n constructor(t?: SendText) {\n if (!t) {\n return;\n }\n\n this.hidden = t.hidden;\n }\n\n get maskedText(): string {\n return this.text != null ? '••••••••' : null;\n }\n}\n","import {\n Component,\n Input,\n OnInit,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { Organization } from 'jslib/models/domain/organization';\n\nimport { Utils } from 'jslib/misc/utils';\n\n@Component({\n selector: 'app-organizations',\n templateUrl: 'organizations.component.html',\n})\nexport class OrganizationsComponent implements OnInit {\n @Input() vault = false;\n\n organizations: Organization[];\n loaded: boolean = false;\n actionPromise: Promise;\n\n constructor(private userService: UserService, private platformUtilsService: PlatformUtilsService,\n private i18nService: I18nService, private apiService: ApiService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private syncService: SyncService) { }\n\n async ngOnInit() {\n if (!this.vault) {\n await this.syncService.fullSync(true);\n await this.load();\n }\n }\n\n async load() {\n const orgs = await this.userService.getAllOrganizations();\n orgs.sort(Utils.getSortFunction(this.i18nService, 'name'));\n this.organizations = orgs;\n this.loaded = true;\n }\n\n async unlinkSso(org: Organization) {\n const confirmed = await this.platformUtilsService.showDialog(\n 'Are you sure you want to unlink SSO for this organization?', org.name,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.actionPromise = this.apiService.deleteSsoUser(org.id).then(() => {\n return this.syncService.fullSync(true);\n });\n await this.actionPromise;\n this.analytics.eventTrack.next({ action: 'Unlinked SSO' });\n this.toasterService.popAsync('success', null, 'Unlinked SSO');\n await this.load();\n } catch { }\n }\n\n async leave(org: Organization) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('leaveOrganizationConfirmation'), org.name,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.actionPromise = this.apiService.postLeaveOrganization(org.id).then(() => {\n return this.syncService.fullSync(true);\n });\n await this.actionPromise;\n this.analytics.eventTrack.next({ action: 'Left Organization' });\n this.toasterService.popAsync('success', null, this.i18nService.t('leftOrganization'));\n await this.load();\n } catch { }\n }\n}\n","\n

\n \n {{'loading' | i18n}}\n

\n \n \n

{{'noOrganizationsList' | i18n}}

\n
\n \n \n {{'newOrganization' | i18n}}\n \n
\n\n
\n

\n {{'organizations' | i18n}}\n \n \n \n {{'loading' | i18n}}\n \n \n

\n \n \n {{'newOrganization' | i18n}}\n \n
\n \n \n {{'loading' | i18n}}\n \n \n \n

{{'noOrganizationsList' | i18n}}

\n \n \n {{'newOrganization' | i18n}}\n \n
\n \n \n \n \n \n \n \n \n
\n \n \n {{o.name}}\n \n \n {{'organizationIsDisabled' | i18n}}\n \n \n
\n \n \n
\n
\n
\n
\n","import { BaseResponse } from './baseResponse';\n\nexport class SelectionReadOnlyResponse extends BaseResponse {\n id: string;\n readOnly: boolean;\n hidePasswords: boolean;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.readOnly = this.getResponseProperty('ReadOnly');\n this.hidePasswords = this.getResponseProperty('HidePasswords');\n }\n}\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { TokenService } from 'jslib/abstractions/token.service';\n\n@Component({\n selector: 'app-navbar',\n templateUrl: 'navbar.component.html',\n})\nexport class NavbarComponent implements OnInit {\n selfHosted = false;\n name: string;\n email: string;\n\n constructor(private messagingService: MessagingService, private platformUtilsService: PlatformUtilsService,\n private tokenService: TokenService) {\n this.selfHosted = this.platformUtilsService.isSelfHost();\n }\n\n async ngOnInit() {\n this.name = await this.tokenService.getName();\n this.email = await this.tokenService.getEmail();\n if (this.name == null || this.name.trim() === '') {\n this.name = this.email;\n }\n }\n\n lock() {\n this.messagingService.send('lockVault');\n }\n\n logOut() {\n this.messagingService.send('logout');\n }\n}\n","\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\n@Component({\n selector: 'app-footer',\n templateUrl: 'footer.component.html',\n})\nexport class FooterComponent implements OnInit {\n version: string;\n year: string = '2015';\n\n constructor(private platformUtilsService: PlatformUtilsService) { }\n\n ngOnInit() {\n this.year = new Date().getFullYear().toString();\n this.version = this.platformUtilsService.getApplicationVersion();\n }\n}\n","
\n
\n
\n © {{year}}, Bitwarden Inc.\n
\n
\n
\n {{'versionNumber' | i18n : version}}\n
\n
\n
\n","import { Injectable } from '@angular/core';\n\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\nimport { ErrorResponse } from '../../models/response/errorResponse';\n\n@Injectable()\nexport class ValidationService {\n constructor(private i18nService: I18nService, private platformUtilsService: PlatformUtilsService) { }\n\n showError(data: any): string[] {\n const defaultErrorMessage = this.i18nService.t('unexpectedError');\n let errors: string[] = [];\n\n if (data != null && typeof data === 'string') {\n errors.push(data);\n } else if (data == null || typeof data !== 'object') {\n errors.push(defaultErrorMessage);\n } else if (data.validationErrors != null) {\n errors = errors.concat((data as ErrorResponse).getAllMessages());\n } else {\n errors.push(data.message ? data.message : defaultErrorMessage);\n }\n\n if (errors.length === 1) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'), errors[0]);\n } else if (errors.length > 1) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'), errors, {\n timeout: 5000 * errors.length,\n });\n }\n\n return errors;\n }\n}\n","export enum EncryptionType {\n AesCbc256_B64 = 0,\n AesCbc128_HmacSha256_B64 = 1,\n AesCbc256_HmacSha256_B64 = 2,\n Rsa2048_OaepSha256_B64 = 3,\n Rsa2048_OaepSha1_B64 = 4,\n Rsa2048_OaepSha256_HmacSha256_B64 = 5,\n Rsa2048_OaepSha1_HmacSha256_B64 = 6,\n}\n","export class KeysRequest {\n publicKey: string;\n encryptedPrivateKey: string;\n\n constructor(publicKey: string, encryptedPrivateKey: string) {\n this.publicKey = publicKey;\n this.encryptedPrivateKey = encryptedPrivateKey;\n }\n}\n","import { PolicyData } from '../data/policyData';\n\nimport Domain from './domainBase';\n\nimport { PolicyType } from '../../enums/policyType';\n\nexport class Policy extends Domain {\n id: string;\n organizationId: string;\n type: PolicyType;\n data: any;\n enabled: boolean;\n\n constructor(obj?: PolicyData) {\n super();\n if (obj == null) {\n return;\n }\n\n this.id = obj.id;\n this.organizationId = obj.organizationId;\n this.type = obj.type;\n this.data = obj.data;\n this.enabled = obj.enabled;\n }\n}\n","import { PolicyResponse } from '../response/policyResponse';\n\nimport { PolicyType } from '../../enums/policyType';\n\nexport class PolicyData {\n id: string;\n organizationId: string;\n type: PolicyType;\n data: any;\n enabled: boolean;\n\n constructor(response: PolicyResponse) {\n this.id = response.id;\n this.organizationId = response.organizationId;\n this.type = response.type;\n this.data = response.data;\n this.enabled = response.enabled;\n }\n}\n","import { OnInit } from '@angular/core';\n\nimport { CryptoService } from '../../abstractions/crypto.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { MessagingService } from '../../abstractions/messaging.service';\nimport { PasswordGenerationService } from '../../abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { PolicyService } from '../../abstractions/policy.service';\nimport { UserService } from '../../abstractions/user.service';\n\nimport { CipherString } from '../../models/domain/cipherString';\nimport { MasterPasswordPolicyOptions } from '../../models/domain/masterPasswordPolicyOptions';\nimport { SymmetricCryptoKey } from '../../models/domain/symmetricCryptoKey';\n\nimport { KdfType } from '../../enums/kdfType';\n\nexport class ChangePasswordComponent implements OnInit {\n masterPassword: string;\n masterPasswordRetype: string;\n formPromise: Promise;\n masterPasswordScore: number;\n enforcedPolicyOptions: MasterPasswordPolicyOptions;\n\n protected email: string;\n protected kdf: KdfType;\n protected kdfIterations: number;\n\n private masterPasswordStrengthTimeout: any;\n\n constructor(protected i18nService: I18nService, protected cryptoService: CryptoService,\n protected messagingService: MessagingService, protected userService: UserService,\n protected passwordGenerationService: PasswordGenerationService,\n protected platformUtilsService: PlatformUtilsService, protected policyService: PolicyService) { }\n\n async ngOnInit() {\n this.email = await this.userService.getEmail();\n this.enforcedPolicyOptions = await this.policyService.getMasterPasswordPolicyOptions();\n }\n\n getPasswordScoreAlertDisplay() {\n if (this.enforcedPolicyOptions == null) {\n return '';\n }\n\n let str: string;\n switch (this.enforcedPolicyOptions.minComplexity) {\n case 4:\n str = this.i18nService.t('strong');\n break;\n case 3:\n str = this.i18nService.t('good');\n break;\n default:\n str = this.i18nService.t('weak');\n break;\n }\n return str + ' (' + this.enforcedPolicyOptions.minComplexity + ')';\n }\n\n async submit() {\n if (!await this.strongPassword()) {\n return;\n }\n\n if (!await this.setupSubmitActions()) {\n return;\n }\n\n const email = await this.userService.getEmail();\n if (this.kdf == null) {\n this.kdf = await this.userService.getKdf();\n }\n if (this.kdfIterations == null) {\n this.kdfIterations = await this.userService.getKdfIterations();\n }\n const key = await this.cryptoService.makeKey(this.masterPassword, email.trim().toLowerCase(),\n this.kdf, this.kdfIterations);\n const masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, key);\n\n let encKey: [SymmetricCryptoKey, CipherString] = null;\n const existingEncKey = await this.cryptoService.getEncKey();\n if (existingEncKey == null) {\n encKey = await this.cryptoService.makeEncKey(key);\n } else {\n encKey = await this.cryptoService.remakeEncKey(key);\n }\n\n await this.performSubmitActions(masterPasswordHash, key, encKey);\n }\n\n async setupSubmitActions(): Promise {\n // Override in sub-class\n // Can be used for additional validation and/or other processes the should occur before changing passwords\n return true;\n }\n\n async performSubmitActions(masterPasswordHash: string, key: SymmetricCryptoKey,\n encKey: [SymmetricCryptoKey, CipherString]) {\n // Override in sub-class\n }\n\n async strongPassword(): Promise {\n if (this.masterPassword == null || this.masterPassword === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return false;\n }\n if (this.masterPassword.length < 8) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassLength'));\n return false;\n }\n if (this.masterPassword !== this.masterPasswordRetype) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassDoesntMatch'));\n return false;\n }\n\n const strengthResult = this.passwordGenerationService.passwordStrength(this.masterPassword,\n this.getPasswordStrengthUserInput());\n\n if (this.enforcedPolicyOptions != null &&\n !this.policyService.evaluateMasterPassword(\n strengthResult.score,\n this.masterPassword,\n this.enforcedPolicyOptions)) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPasswordPolicyRequirementsNotMet'));\n return false;\n }\n\n if (strengthResult != null && strengthResult.score < 3) {\n const result = await this.platformUtilsService.showDialog(this.i18nService.t('weakMasterPasswordDesc'),\n this.i18nService.t('weakMasterPassword'), this.i18nService.t('yes'), this.i18nService.t('no'),\n 'warning');\n if (!result) {\n return false;\n }\n }\n\n return true;\n }\n\n updatePasswordStrength() {\n if (this.masterPasswordStrengthTimeout != null) {\n clearTimeout(this.masterPasswordStrengthTimeout);\n }\n this.masterPasswordStrengthTimeout = setTimeout(() => {\n const strengthResult = this.passwordGenerationService.passwordStrength(this.masterPassword,\n this.getPasswordStrengthUserInput());\n this.masterPasswordScore = strengthResult == null ? null : strengthResult.score;\n }, 300);\n }\n\n async logOut() {\n const confirmed = await this.platformUtilsService.showDialog(this.i18nService.t('logOutConfirmation'),\n this.i18nService.t('logOut'), this.i18nService.t('logOut'), this.i18nService.t('cancel'));\n if (confirmed) {\n this.messagingService.send('logout');\n }\n }\n\n private getPasswordStrengthUserInput() {\n let userInput: string[] = [];\n const atPosition = this.email.indexOf('@');\n if (atPosition > -1) {\n userInput = userInput.concat(this.email.substr(0, atPosition).trim().toLowerCase().split(/[^A-Za-z0-9]/));\n }\n return userInput;\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { OrganizationUserStatusType } from 'jslib/enums/organizationUserStatusType';\nimport { OrganizationUserType } from 'jslib/enums/organizationUserType';\nimport { SelectionReadOnlyRequest } from 'jslib/models/request/selectionReadOnlyRequest';\nimport { OrganizationUserUserDetailsResponse } from 'jslib/models/response/organizationUserResponse';\n\nimport { Utils } from 'jslib/misc/utils';\n\n@Component({\n selector: 'app-entity-users',\n templateUrl: 'entity-users.component.html',\n})\nexport class EntityUsersComponent implements OnInit {\n @Input() entity: 'group' | 'collection';\n @Input() entityId: string;\n @Input() entityName: string;\n @Input() organizationId: string;\n @Output() onEditedUsers = new EventEmitter();\n\n organizationUserType = OrganizationUserType;\n organizationUserStatusType = OrganizationUserStatusType;\n\n showSelected = false;\n loading = true;\n formPromise: Promise;\n selectedCount = 0;\n searchText: string;\n\n private allUsers: OrganizationUserUserDetailsResponse[] = [];\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService) { }\n\n async ngOnInit() {\n await this.loadUsers();\n this.loading = false;\n }\n\n get users() {\n if (this.showSelected) {\n return this.allUsers.filter(u => (u as any).checked);\n } else {\n return this.allUsers;\n }\n }\n\n async loadUsers() {\n const users = await this.apiService.getOrganizationUsers(this.organizationId);\n this.allUsers = users.data.map(r => r).sort(Utils.getSortFunction(this.i18nService, 'email'));\n if (this.entity === 'group') {\n const response = await this.apiService.getGroupUsers(this.organizationId, this.entityId);\n if (response != null && users.data.length > 0) {\n response.forEach(s => {\n const user = users.data.filter(u => u.id === s);\n if (user != null && user.length > 0) {\n (user[0] as any).checked = true;\n }\n });\n }\n } else if (this.entity === 'collection') {\n const response = await this.apiService.getCollectionUsers(this.organizationId, this.entityId);\n if (response != null && users.data.length > 0) {\n response.forEach(s => {\n const user = users.data.filter(u => !u.accessAll && u.id === s.id);\n if (user != null && user.length > 0) {\n (user[0] as any).checked = true;\n (user[0] as any).readOnly = s.readOnly;\n (user[0] as any).hidePasswords = s.hidePasswords;\n }\n });\n }\n }\n\n this.allUsers.forEach(u => {\n if (this.entity === 'collection' && u.accessAll) {\n (u as any).checked = true;\n }\n if ((u as any).checked) {\n this.selectedCount++;\n }\n });\n }\n\n check(u: OrganizationUserUserDetailsResponse) {\n if (this.entity === 'collection' && u.accessAll) {\n return;\n }\n (u as any).checked = !(u as any).checked;\n this.selectedChanged(u);\n }\n\n selectedChanged(u: OrganizationUserUserDetailsResponse) {\n if ((u as any).checked) {\n this.selectedCount++;\n } else {\n if (this.entity === 'collection') {\n (u as any).readOnly = false;\n (u as any).hidePasswords = false;\n }\n this.selectedCount--;\n }\n }\n\n filterSelected(showSelected: boolean) {\n this.showSelected = showSelected;\n }\n\n async submit() {\n try {\n if (this.entity === 'group') {\n const selections = this.users.filter(u => (u as any).checked).map(u => u.id);\n this.formPromise = this.apiService.putGroupUsers(this.organizationId, this.entityId, selections);\n } else {\n const selections = this.users.filter(u => (u as any).checked && !u.accessAll)\n .map(u => new SelectionReadOnlyRequest(u.id, !!(u as any).readOnly, !!(u as any).hidePasswords));\n this.formPromise = this.apiService.putCollectionUsers(this.organizationId, this.entityId, selections);\n }\n await this.formPromise;\n this.analytics.eventTrack.next({\n action: this.entity === 'group' ? 'Edited Group Users' : 'Edited Collection Users',\n });\n this.toasterService.popAsync('success', null, this.i18nService.t('updatedUsers'));\n this.onEditedUsers.emit();\n } catch { }\n }\n}\n","
\n
\n
\n
\n

\n {{'userAccess' | i18n}}\n {{entityName}}\n

\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n
\n {{'noUsersInList' | i18n}}\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
  {{'name' | i18n}} {{'userType' | i18n}}{{'hidePasswords' |\n i18n}}{{'readOnly' |\n i18n}}
\n \n \n \n \n {{u.email}}\n {{'invited'\n | i18n}}\n {{'accepted'\n | i18n}}\n {{u.name}}\n \n \n \n {{'userAccessAllItems' | i18n}}\n \n \n {{'owner' | i18n}}\n {{'admin' | i18n}}\n {{'manager' | i18n}}\n {{'user' | i18n}}\n {{'custom' | i18n}}\n \n \n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n Input,\n OnInit,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { EventService } from '../../services/event.service';\n\nimport { EventResponse } from 'jslib/models/response/eventResponse';\nimport { ListResponse } from 'jslib/models/response/listResponse';\n\n@Component({\n selector: 'app-entity-events',\n templateUrl: 'entity-events.component.html',\n})\nexport class EntityEventsComponent implements OnInit {\n @Input() name: string;\n @Input() entity: 'user' | 'cipher';\n @Input() entityId: string;\n @Input() organizationId: string;\n @Input() showUser = false;\n\n loading = true;\n loaded = false;\n events: any[];\n start: string;\n end: string;\n continuationToken: string;\n refreshPromise: Promise;\n morePromise: Promise;\n\n private orgUsersUserIdMap = new Map();\n private orgUsersIdMap = new Map();\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private eventService: EventService, private toasterService: ToasterService) { }\n\n async ngOnInit() {\n const defaultDates = this.eventService.getDefaultDateFilters();\n this.start = defaultDates[0];\n this.end = defaultDates[1];\n await this.load();\n }\n\n async load() {\n if (this.showUser) {\n const response = await this.apiService.getOrganizationUsers(this.organizationId);\n response.data.forEach(u => {\n const name = u.name == null || u.name.trim() === '' ? u.email : u.name;\n this.orgUsersIdMap.set(u.id, { name: name, email: u.email });\n this.orgUsersUserIdMap.set(u.userId, { name: name, email: u.email });\n });\n }\n await this.loadEvents(true);\n this.loaded = true;\n }\n\n async loadEvents(clearExisting: boolean) {\n if (this.refreshPromise != null || this.morePromise != null) {\n return;\n }\n\n let dates: string[] = null;\n try {\n dates = this.eventService.formatDateFilters(this.start, this.end);\n } catch (e) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidDateRange'));\n return;\n }\n\n this.loading = true;\n let response: ListResponse;\n try {\n let promise: Promise;\n if (this.entity === 'user') {\n promise = this.apiService.getEventsOrganizationUser(this.organizationId, this.entityId,\n dates[0], dates[1], clearExisting ? null : this.continuationToken);\n } else {\n promise = this.apiService.getEventsCipher(this.entityId,\n dates[0], dates[1], clearExisting ? null : this.continuationToken);\n }\n if (clearExisting) {\n this.refreshPromise = promise;\n } else {\n this.morePromise = promise;\n }\n response = await promise;\n } catch { }\n\n this.continuationToken = response.continuationToken;\n const events = response.data.map(r => {\n const userId = r.actingUserId == null ? r.userId : r.actingUserId;\n const eventInfo = this.eventService.getEventInfo(r);\n const user = this.showUser && userId != null && this.orgUsersUserIdMap.has(userId) ?\n this.orgUsersUserIdMap.get(userId) : null;\n return {\n message: eventInfo.message,\n appIcon: eventInfo.appIcon,\n appName: eventInfo.appName,\n userId: userId,\n userName: user != null ? user.name : this.showUser ? this.i18nService.t('unknown') : null,\n userEmail: user != null ? user.email : this.showUser ? '' : null,\n date: r.date,\n ip: r.ipAddress,\n type: r.type,\n };\n });\n\n if (!clearExisting && this.events != null && this.events.length > 0) {\n this.events = this.events.concat(events);\n } else {\n this.events = events;\n }\n\n this.loading = false;\n this.morePromise = null;\n this.refreshPromise = null;\n }\n}\n","
\n
\n
\n
\n

\n {{'eventLogs' | i18n}}\n {{name}}\n

\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n
\n
\n \n \n -\n \n \n
\n \n
\n
\n
\n {{'noEventsInList' | i18n}}\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
{{'timestamp' | i18n}}\n {{'device' | i18n}}\n {{'user' | i18n}}{{'event' | i18n}}
{{e.date | date:'medium'}}\n \n {{e.appName}}, {{e.ip}}\n \n {{e.userName}}\n
\n \n
\n
\n \n
\n
\n
\n
\n","import { BaseResponse } from '../response/baseResponse';\n\nexport class PermissionsApi extends BaseResponse {\n accessBusinessPortal: boolean;\n accessEventLogs: boolean;\n accessImportExport: boolean;\n accessReports: boolean;\n manageAllCollections: boolean;\n manageAssignedCollections: boolean;\n manageCiphers: boolean;\n manageGroups: boolean;\n manageSso: boolean;\n managePolicies: boolean;\n manageUsers: boolean;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return this;\n }\n this.accessBusinessPortal = this.getResponseProperty('AccessBusinessPortal');\n this.accessEventLogs = this.getResponseProperty('AccessEventLogs');\n this.accessImportExport = this.getResponseProperty('AccessImportExport');\n this.accessReports = this.getResponseProperty('AccessReports');\n this.manageAllCollections = this.getResponseProperty('ManageAllCollections');\n this.manageAssignedCollections = this.getResponseProperty('ManageAssignedCollections');\n this.manageCiphers = this.getResponseProperty('ManageCiphers');\n this.manageGroups = this.getResponseProperty('ManageGroups');\n this.manageSso = this.getResponseProperty('ManageSso');\n this.managePolicies = this.getResponseProperty('ManagePolicies');\n this.manageUsers = this.getResponseProperty('ManageUsers');\n }\n}\n","import { Component } from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { PasswordVerificationRequest } from 'jslib/models/request/passwordVerificationRequest';\n\nimport { ApiKeyResponse } from 'jslib/models/response/apiKeyResponse';\n\n@Component({\n selector: 'app-api-key',\n templateUrl: 'api-key.component.html',\n})\nexport class ApiKeyComponent {\n keyType: string;\n isRotation: boolean;\n postKey: (entityId: string, request: PasswordVerificationRequest) => Promise;\n entityId: string;\n scope: string;\n grantType: string;\n apiKeyTitle: string;\n apiKeyWarning: string;\n apiKeyDescription: string;\n\n masterPassword: string;\n formPromise: Promise;\n clientId: string;\n clientSecret: string;\n\n constructor(private i18nService: I18nService, private analytics: Angulartics2,\n private toasterService: ToasterService, private cryptoService: CryptoService) { }\n\n async submit() {\n if (this.masterPassword == null || this.masterPassword === '') {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n const request = new PasswordVerificationRequest();\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n try {\n this.formPromise = this.postKey(this.entityId, request);\n const response = await this.formPromise;\n this.clientSecret = response.apiKey;\n this.clientId = `${this.keyType}.${this.entityId}`;\n this.analytics.eventTrack.next({ action: `Viewed ${this.keyType} API Key` });\n } catch { }\n }\n}\n","
\n
\n
\n
\n

{{apiKeyTitle | i18n}}

\n \n
\n
\n

{{apiKeyDescription | i18n}}

\n \n \n \n \n {{apiKeyWarning | i18n}}\n \n

\n client_id:
\n {{clientId}}\n

\n

\n client_secret:
\n {{clientSecret}}\n

\n

\n scope:
\n {{scope}}\n

\n

\n grant_type:
\n {{grantType}}\n

\n
\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n Input,\n} from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { PasswordVerificationRequest } from 'jslib/models/request/passwordVerificationRequest';\n\n@Component({\n selector: 'app-purge-vault',\n templateUrl: 'purge-vault.component.html',\n})\nexport class PurgeVaultComponent {\n @Input() organizationId?: string = null;\n\n masterPassword: string;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private cryptoService: CryptoService, private router: Router) { }\n\n async submit() {\n if (this.masterPassword == null || this.masterPassword === '') {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n const request = new PasswordVerificationRequest();\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n try {\n this.formPromise = this.apiService.postPurgeCiphers(request, this.organizationId);\n await this.formPromise;\n this.analytics.eventTrack.next({\n action: this.organizationId != null ? 'Purged Organization Vault' : 'Purged Vault',\n });\n this.toasterService.popAsync('success', null, this.i18nService.t('vaultPurged'));\n if (this.organizationId != null) {\n this.router.navigate(['organizations', this.organizationId, 'vault']);\n } else {\n this.router.navigate(['vault']);\n }\n } catch { }\n }\n}\n","
\n
\n
\n
\n

{{'purgeVault' | i18n}}

\n \n
\n
\n

{{(organizationId ? 'purgeOrgVaultDesc' : 'purgeVaultDesc') | i18n}}

\n {{'purgeVaultWarning' | i18n}}\n \n \n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { BillingResponse } from 'jslib/models/response/billingResponse';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { PaymentMethodType } from 'jslib/enums/paymentMethodType';\nimport { TransactionType } from 'jslib/enums/transactionType';\nimport { VerifyBankRequest } from 'jslib/models/request/verifyBankRequest';\n\n@Component({\n selector: 'app-user-billing',\n templateUrl: 'user-billing.component.html',\n})\nexport class UserBillingComponent implements OnInit {\n loading = false;\n firstLoaded = false;\n showAdjustPayment = false;\n showAddCredit = false;\n billing: BillingResponse;\n paymentMethodType = PaymentMethodType;\n transactionType = TransactionType;\n organizationId: string;\n verifyAmount1: number;\n verifyAmount2: number;\n\n verifyBankPromise: Promise;\n\n constructor(protected apiService: ApiService, protected i18nService: I18nService,\n protected analytics: Angulartics2, protected toasterService: ToasterService,\n protected platformUtilsService: PlatformUtilsService) { }\n\n async ngOnInit() {\n await this.load();\n this.firstLoaded = true;\n }\n\n async load() {\n if (this.loading) {\n return;\n }\n this.loading = true;\n if (this.organizationId != null) {\n this.billing = await this.apiService.getOrganizationBilling(this.organizationId);\n } else {\n this.billing = await this.apiService.getUserBilling();\n }\n this.loading = false;\n }\n\n async verifyBank() {\n if (this.loading) {\n return;\n }\n\n try {\n const request = new VerifyBankRequest();\n request.amount1 = this.verifyAmount1;\n request.amount2 = this.verifyAmount2;\n this.verifyBankPromise = this.apiService.postOrganizationVerifyBank(this.organizationId, request);\n await this.verifyBankPromise;\n this.analytics.eventTrack.next({ action: 'Verified Bank Account' });\n this.toasterService.popAsync('success', null, this.i18nService.t('verifiedBankAccount'));\n this.load();\n } catch { }\n }\n\n addCredit() {\n if (this.paymentSourceInApp) {\n this.platformUtilsService.showDialog(this.i18nService.t('cannotPerformInAppPurchase'),\n this.i18nService.t('addCredit'), null, null, 'warning');\n return;\n }\n this.showAddCredit = true;\n }\n\n closeAddCredit(load: boolean) {\n this.showAddCredit = false;\n if (load) {\n this.load();\n }\n }\n\n changePayment() {\n if (this.paymentSourceInApp) {\n this.platformUtilsService.showDialog(this.i18nService.t('cannotPerformInAppPurchase'),\n this.i18nService.t('changePaymentMethod'), null, null, 'warning');\n return;\n }\n this.showAdjustPayment = true;\n }\n\n closePayment(load: boolean) {\n this.showAdjustPayment = false;\n if (load) {\n this.load();\n }\n }\n\n get isCreditBalance() {\n return this.billing == null || this.billing.balance <= 0;\n }\n\n get creditOrBalance() {\n return Math.abs(this.billing != null ? this.billing.balance : 0);\n }\n\n get paymentSource() {\n return this.billing != null ? this.billing.paymentSource : null;\n }\n\n get paymentSourceInApp() {\n return this.paymentSource != null &&\n (this.paymentSource.type === PaymentMethodType.AppleInApp ||\n this.paymentSource.type === PaymentMethodType.GoogleInApp);\n }\n\n get invoices() {\n return this.billing != null ? this.billing.invoices : null;\n }\n\n get transactions() {\n return this.billing != null ? this.billing.transactions : null;\n }\n}\n","
\n

\n {{'billing' | i18n}}\n

\n \n
\n\n \n {{'loading' | i18n}}\n\n\n

{{(isCreditBalance ? 'accountCredit' : 'accountBalance') | i18n}}

\n

{{creditOrBalance | currency:'$'}}

\n

{{'creditAppliedDesc' | i18n}}

\n \n \n \n

{{'paymentMethod' | i18n}}

\n

{{'noPaymentMethod' | i18n}}

\n \n \n

{{'verifyBankAccountDesc' | i18n}} {{'verifyBankAccountFailureWarning' | i18n}}

\n
\n \n
\n
\n
$0.
\n
\n \n
\n \n
\n
\n
$0.
\n
\n \n
\n \n
\n
\n

\n \n {{'inAppPurchase' | i18n}}\n {{paymentSource.description}}\n

\n
\n \n \n \n

{{'invoices' | i18n}}

\n

{{'noInvoices' | i18n}}

\n \n \n \n \n \n \n \n \n \n
{{i.date | date:'mediumDate'}}\n \n \n \n {{'invoiceNumber' | i18n : i.number}}\n {{i.amount | currency:'$'}}\n \n \n {{'paid' | i18n}}\n \n \n \n {{'unpaid' | i18n}}\n \n
\n

{{'transactions' | i18n}}

\n

{{'noTransactions' | i18n}}

\n \n \n \n \n \n \n \n \n \n
{{t.createdDate | date:'mediumDate'}}\n \n {{'chargeNoun' | i18n}}\n \n {{'refundNoun' | i18n}}\n \n \n {{t.details}}\n \n {{t.amount | currency:'$'}}
\n * {{'chargesStatement' | i18n : 'BITWARDEN'}}\n
\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { PaymentMethodType } from 'jslib/enums/paymentMethodType';\n\nimport { BitPayInvoiceRequest } from 'jslib/models/request/bitPayInvoiceRequest';\n\nimport { WebConstants } from '../../services/webConstants';\n\n@Component({\n selector: 'app-add-credit',\n templateUrl: 'add-credit.component.html',\n})\nexport class AddCreditComponent implements OnInit {\n @Input() creditAmount: string;\n @Input() showOptions = true;\n @Input() method = PaymentMethodType.PayPal;\n @Input() organizationId: string;\n @Output() onAdded = new EventEmitter();\n @Output() onCanceled = new EventEmitter();\n\n @ViewChild('ppButtonForm', { read: ElementRef, static: true }) ppButtonFormRef: ElementRef;\n\n paymentMethodType = PaymentMethodType;\n ppButtonFormAction = WebConstants.paypal.buttonActionProduction;\n ppButtonBusinessId = WebConstants.paypal.businessIdProduction;\n ppButtonCustomField: string;\n ppLoading = false;\n subject: string;\n returnUrl: string;\n formPromise: Promise;\n\n private userId: string;\n private name: string;\n private email: string;\n\n constructor(private userService: UserService, private apiService: ApiService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private platformUtilsService: PlatformUtilsService) {\n if (platformUtilsService.isDev()) {\n this.ppButtonFormAction = WebConstants.paypal.buttonActionSandbox;\n this.ppButtonBusinessId = WebConstants.paypal.businessIdSandbox;\n }\n }\n\n async ngOnInit() {\n if (this.organizationId != null) {\n if (this.creditAmount == null) {\n this.creditAmount = '20.00';\n }\n this.ppButtonCustomField = 'organization_id:' + this.organizationId;\n const org = await this.userService.getOrganization(this.organizationId);\n if (org != null) {\n this.subject = org.name;\n this.name = org.name;\n }\n } else {\n if (this.creditAmount == null) {\n this.creditAmount = '10.00';\n }\n this.userId = await this.userService.getUserId();\n this.subject = await this.userService.getEmail();\n this.email = this.subject;\n this.ppButtonCustomField = 'user_id:' + this.userId;\n }\n this.ppButtonCustomField += ',account_credit:1';\n this.returnUrl = window.location.href;\n }\n\n async submit() {\n if (this.creditAmount == null || this.creditAmount === '') {\n return;\n }\n\n if (this.method === PaymentMethodType.PayPal) {\n this.ppButtonFormRef.nativeElement.submit();\n this.ppLoading = true;\n return;\n }\n if (this.method === PaymentMethodType.BitPay) {\n try {\n const req = new BitPayInvoiceRequest();\n req.email = this.email;\n req.name = this.name;\n req.credit = true;\n req.amount = this.creditAmountNumber;\n req.organizationId = this.organizationId;\n req.userId = this.userId;\n req.returnUrl = this.returnUrl;\n this.formPromise = this.apiService.postBitPayInvoice(req);\n const bitPayUrl: string = await this.formPromise;\n this.platformUtilsService.launchUri(bitPayUrl);\n } catch { }\n return;\n }\n try {\n this.analytics.eventTrack.next({\n action: 'Added Credit',\n });\n this.onAdded.emit();\n } catch { }\n }\n\n cancel() {\n this.onCanceled.emit();\n }\n\n formatAmount() {\n try {\n if (this.creditAmount != null && this.creditAmount !== '') {\n const floatAmount = Math.abs(parseFloat(this.creditAmount));\n if (floatAmount > 0) {\n this.creditAmount = parseFloat((Math.round(floatAmount * 100) / 100).toString())\n .toFixed(2).toString();\n return;\n }\n }\n } catch { }\n this.creditAmount = '';\n }\n\n get creditAmountNumber(): number {\n if (this.creditAmount != null && this.creditAmount !== '') {\n try {\n return parseFloat(this.creditAmount);\n } catch { }\n }\n return null;\n }\n}\n","
\n
\n \n

{{'addCredit' | i18n}}

\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n
\n \n
\n
$USD
\n \n
\n
\n
\n {{'creditDelayed' | i18n}}\n
\n \n \n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { PaymentRequest } from 'jslib/models/request/paymentRequest';\n\nimport { PaymentMethodType } from 'jslib/enums/paymentMethodType';\n\nimport { PaymentComponent } from './payment.component';\nimport { TaxInfoComponent } from './tax-info.component';\n\n@Component({\n selector: 'app-adjust-payment',\n templateUrl: 'adjust-payment.component.html',\n})\nexport class AdjustPaymentComponent {\n @ViewChild(PaymentComponent, { static: true }) paymentComponent: PaymentComponent;\n @ViewChild(TaxInfoComponent, { static: true }) taxInfoComponent: TaxInfoComponent;\n\n @Input() currentType?: PaymentMethodType;\n @Input() organizationId: string;\n @Output() onAdjusted = new EventEmitter();\n @Output() onCanceled = new EventEmitter();\n\n paymentMethodType = PaymentMethodType;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService) { }\n\n async submit() {\n try {\n const request = new PaymentRequest();\n this.formPromise = this.paymentComponent.createPaymentToken().then(result => {\n request.paymentToken = result[0];\n request.paymentMethodType = result[1];\n request.postalCode = this.taxInfoComponent.taxInfo.postalCode;\n request.country = this.taxInfoComponent.taxInfo.country;\n if (this.organizationId == null) {\n return this.apiService.postAccountPayment(request);\n } else {\n request.taxId = this.taxInfoComponent.taxInfo.taxId;\n request.state = this.taxInfoComponent.taxInfo.state;\n request.line1 = this.taxInfoComponent.taxInfo.line1;\n request.line2 = this.taxInfoComponent.taxInfo.line2;\n request.city = this.taxInfoComponent.taxInfo.city;\n request.state = this.taxInfoComponent.taxInfo.state;\n return this.apiService.postOrganizationPayment(this.organizationId, request);\n }\n });\n await this.formPromise;\n this.analytics.eventTrack.next({\n action: this.currentType == null ? 'Added Payment Method' : 'Changed Payment Method',\n });\n this.toasterService.popAsync('success', null, this.i18nService.t('updatedPaymentMethod'));\n this.onAdjusted.emit();\n } catch { }\n }\n\n cancel() {\n this.onCanceled.emit();\n }\n\n changeCountry() {\n if (this.taxInfoComponent.taxInfo.country === 'US') {\n this.paymentComponent.hideBank = !this.organizationId;\n } else {\n this.paymentComponent.hideBank = true;\n if (this.paymentComponent.method === PaymentMethodType.BankAccount) {\n this.paymentComponent.method = PaymentMethodType.Card;\n this.paymentComponent.changeMethod();\n }\n }\n }\n}\n","
\n
\n \n

{{(currentType != null ? 'changePaymentMethod' : 'addPaymentMethod') | i18n}}

\n \n \n \n \n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\n@Component({\n selector: 'app-update-license',\n templateUrl: 'update-license.component.html',\n})\nexport class UpdateLicenseComponent {\n @Input() organizationId: string;\n @Output() onUpdated = new EventEmitter();\n @Output() onCanceled = new EventEmitter();\n\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService) { }\n\n async submit() {\n const fileEl = document.getElementById('file') as HTMLInputElement;\n const files = fileEl.files;\n if (files == null || files.length === 0) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectFile'));\n return;\n }\n\n try {\n const fd = new FormData();\n fd.append('license', files[0]);\n\n let updatePromise: Promise = null;\n if (this.organizationId == null) {\n updatePromise = this.apiService.postAccountLicense(fd);\n } else {\n updatePromise = this.apiService.postOrganizationLicenseUpdate(this.organizationId, fd);\n }\n\n this.formPromise = updatePromise.then(() => {\n return this.apiService.refreshIdentityToken();\n });\n\n await this.formPromise;\n this.analytics.eventTrack.next({ action: 'Updated License' });\n this.toasterService.popAsync('success', null, this.i18nService.t('updatedLicense'));\n this.onUpdated.emit();\n } catch { }\n }\n\n cancel() {\n this.onCanceled.emit();\n }\n}\n","
\n
\n \n \n {{'licenseFileDesc' | i18n : (!organizationId ? 'bitwarden_premium_license.json' : 'bitwarden_organization_license.json')}}\n
\n \n \n
\n","export enum ProductType {\n Free = 0,\n Families = 1,\n Teams = 2,\n Enterprise = 3,\n}\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\n\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { StorageRequest } from 'jslib/models/request/storageRequest';\n\nimport { PaymentResponse } from 'jslib/models/response/paymentResponse';\n\nimport { PaymentComponent } from './payment.component';\n\n@Component({\n selector: 'app-adjust-storage',\n templateUrl: 'adjust-storage.component.html',\n})\nexport class AdjustStorageComponent {\n @Input() storageGbPrice = 0;\n @Input() add = true;\n @Input() organizationId: string;\n @Input() interval = 'year';\n @Output() onAdjusted = new EventEmitter();\n @Output() onCanceled = new EventEmitter();\n\n @ViewChild(PaymentComponent, { static: true }) paymentComponent: PaymentComponent;\n\n storageAdjustment = 0;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private router: Router, private activatedRoute: ActivatedRoute) { }\n\n async submit() {\n try {\n const request = new StorageRequest();\n request.storageGbAdjustment = this.storageAdjustment;\n if (!this.add) {\n request.storageGbAdjustment *= -1;\n }\n\n let paymentFailed = false;\n const action = async () => {\n let response: Promise;\n if (this.organizationId == null) {\n response = this.formPromise = this.apiService.postAccountStorage(request);\n } else {\n response = this.formPromise = this.apiService.postOrganizationStorage(this.organizationId, request);\n }\n const result = await response;\n if (result != null && result.paymentIntentClientSecret != null) {\n try {\n await this.paymentComponent.handleStripeCardPayment(result.paymentIntentClientSecret, null);\n } catch {\n paymentFailed = true;\n }\n }\n };\n this.formPromise = action();\n await this.formPromise;\n this.analytics.eventTrack.next({ action: this.add ? 'Added Storage' : 'Removed Storage' });\n this.onAdjusted.emit(this.storageAdjustment);\n if (paymentFailed) {\n this.toasterService.popAsync({\n body: this.i18nService.t('couldNotChargeCardPayInvoice'),\n type: 'warning',\n timeout: 10000,\n });\n this.router.navigate(['../billing'], { relativeTo: this.activatedRoute });\n } else {\n this.toasterService.popAsync('success', null,\n this.i18nService.t('adjustedStorage', request.storageGbAdjustment.toString()));\n }\n } catch { }\n }\n\n cancel() {\n this.onCanceled.emit();\n }\n\n get adjustedStorageTotal(): number {\n return this.storageGbPrice * this.storageAdjustment;\n }\n}\n","
\n
\n \n

{{(add ? 'addStorage' : 'removeStorage') | i18n}}

\n
\n
\n \n \n
\n
\n
\n {{'total' | i18n}}: {{storageAdjustment || 0}} GB × {{storageGbPrice | currency:'$'}}\n = {{adjustedStorageTotal\n | currency:'$'}} /{{interval | i18n}}\n
\n \n \n \n {{(add ? 'storageAddNote' : 'storageRemoveNote') | i18n}}\n \n
\n
\n\n","import { Component } from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\nimport { UpdateTwoFactorDuoRequest } from 'jslib/models/request/updateTwoFactorDuoRequest';\nimport { TwoFactorDuoResponse } from 'jslib/models/response/twoFactorDuoResponse';\n\nimport { TwoFactorBaseComponent } from './two-factor-base.component';\n\n@Component({\n selector: 'app-two-factor-duo',\n templateUrl: 'two-factor-duo.component.html',\n})\nexport class TwoFactorDuoComponent extends TwoFactorBaseComponent {\n type = TwoFactorProviderType.Duo;\n ikey: string;\n skey: string;\n host: string;\n formPromise: Promise;\n\n constructor(apiService: ApiService, i18nService: I18nService,\n analytics: Angulartics2, toasterService: ToasterService,\n platformUtilsService: PlatformUtilsService) {\n super(apiService, i18nService, analytics, toasterService, platformUtilsService);\n }\n\n auth(authResponse: any) {\n super.auth(authResponse);\n this.processResponse(authResponse.response);\n }\n\n submit() {\n if (this.enabled) {\n return super.disable(this.formPromise);\n } else {\n return this.enable();\n }\n }\n\n protected enable() {\n const request = new UpdateTwoFactorDuoRequest();\n request.masterPasswordHash = this.masterPasswordHash;\n request.integrationKey = this.ikey;\n request.secretKey = this.skey;\n request.host = this.host;\n\n return super.enable(async () => {\n if (this.organizationId != null) {\n this.formPromise = this.apiService.putTwoFactorOrganizationDuo(this.organizationId, request);\n } else {\n this.formPromise = this.apiService.putTwoFactorDuo(request);\n }\n const response = await this.formPromise;\n await this.processResponse(response);\n });\n }\n\n private processResponse(response: TwoFactorDuoResponse) {\n this.ikey = response.integrationKey;\n this.skey = response.secretKey;\n this.host = response.host;\n this.enabled = response.enabled;\n }\n}\n","
\n
\n
\n
\n

\n {{'twoStepLogin' | i18n}}\n Duo\n

\n \n
\n \n \n
\n
\n \n \n {{'twoStepLoginProviderEnabled' | i18n}}\n \n \"\"\n {{'twoFactorDuoIntegrationKey' | i18n}}: {{ikey}}\n
\n {{'twoFactorDuoSecretKey' | i18n}}: {{skey}}\n
\n {{'twoFactorDuoApiHostname' | i18n}}: {{host}}\n
\n \n \"\"\n

{{'twoFactorDuoDesc' | i18n}}

\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n Type,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { TwoFactorProviders } from 'jslib/services/auth.service';\n\nimport { PolicyType } from 'jslib/enums/policyType';\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\n\nimport { ModalComponent } from '../modal.component';\n\nimport { TwoFactorAuthenticatorComponent } from './two-factor-authenticator.component';\nimport { TwoFactorDuoComponent } from './two-factor-duo.component';\nimport { TwoFactorEmailComponent } from './two-factor-email.component';\nimport { TwoFactorRecoveryComponent } from './two-factor-recovery.component';\nimport { TwoFactorU2fComponent } from './two-factor-u2f.component';\nimport { TwoFactorYubiKeyComponent } from './two-factor-yubikey.component';\n\n@Component({\n selector: 'app-two-factor-setup',\n templateUrl: 'two-factor-setup.component.html',\n})\nexport class TwoFactorSetupComponent implements OnInit {\n @ViewChild('recoveryTemplate', { read: ViewContainerRef, static: true }) recoveryModalRef: ViewContainerRef;\n @ViewChild('authenticatorTemplate', { read: ViewContainerRef, static: true }) authenticatorModalRef: ViewContainerRef;\n @ViewChild('yubikeyTemplate', { read: ViewContainerRef, static: true }) yubikeyModalRef: ViewContainerRef;\n @ViewChild('u2fTemplate', { read: ViewContainerRef, static: true }) u2fModalRef: ViewContainerRef;\n @ViewChild('duoTemplate', { read: ViewContainerRef, static: true }) duoModalRef: ViewContainerRef;\n @ViewChild('emailTemplate', { read: ViewContainerRef, static: true }) emailModalRef: ViewContainerRef;\n\n organizationId: string;\n providers: any[] = [];\n canAccessPremium: boolean;\n showPolicyWarning = false;\n loading = true;\n\n private modal: ModalComponent = null;\n\n constructor(protected apiService: ApiService, protected userService: UserService,\n protected componentFactoryResolver: ComponentFactoryResolver, protected messagingService: MessagingService,\n protected policyService: PolicyService) { }\n\n async ngOnInit() {\n this.canAccessPremium = await this.userService.canAccessPremium();\n\n for (const key in TwoFactorProviders) {\n if (!TwoFactorProviders.hasOwnProperty(key)) {\n continue;\n }\n\n const p = (TwoFactorProviders as any)[key];\n if (this.filterProvider(p.type)) {\n continue;\n }\n\n this.providers.push({\n type: p.type,\n name: p.name,\n description: p.description,\n enabled: false,\n premium: p.premium,\n sort: p.sort,\n });\n }\n\n this.providers.sort((a: any, b: any) => a.sort - b.sort);\n await this.load();\n }\n\n async load() {\n this.loading = true;\n const providerList = await this.getTwoFactorProviders();\n providerList.data.forEach(p => {\n this.providers.forEach(p2 => {\n if (p.type === p2.type) {\n p2.enabled = p.enabled;\n }\n });\n });\n this.evaluatePolicies();\n this.loading = false;\n }\n\n manage(type: TwoFactorProviderType) {\n switch (type) {\n case TwoFactorProviderType.Authenticator:\n const authComp = this.openModal(this.authenticatorModalRef, TwoFactorAuthenticatorComponent);\n authComp.onUpdated.subscribe((enabled: boolean) => {\n this.updateStatus(enabled, TwoFactorProviderType.Authenticator);\n });\n break;\n case TwoFactorProviderType.Yubikey:\n const yubiComp = this.openModal(this.yubikeyModalRef, TwoFactorYubiKeyComponent);\n yubiComp.onUpdated.subscribe((enabled: boolean) => {\n this.updateStatus(enabled, TwoFactorProviderType.Yubikey);\n });\n break;\n case TwoFactorProviderType.Duo:\n const duoComp = this.openModal(this.duoModalRef, TwoFactorDuoComponent);\n duoComp.onUpdated.subscribe((enabled: boolean) => {\n this.updateStatus(enabled, TwoFactorProviderType.Duo);\n });\n break;\n case TwoFactorProviderType.Email:\n const emailComp = this.openModal(this.emailModalRef, TwoFactorEmailComponent);\n emailComp.onUpdated.subscribe((enabled: boolean) => {\n this.updateStatus(enabled, TwoFactorProviderType.Email);\n });\n break;\n case TwoFactorProviderType.U2f:\n const u2fComp = this.openModal(this.u2fModalRef, TwoFactorU2fComponent);\n u2fComp.onUpdated.subscribe((enabled: boolean) => {\n this.updateStatus(enabled, TwoFactorProviderType.U2f);\n });\n break;\n default:\n break;\n }\n }\n\n recoveryCode() {\n this.openModal(this.recoveryModalRef, TwoFactorRecoveryComponent);\n }\n\n async premiumRequired() {\n if (!this.canAccessPremium) {\n this.messagingService.send('premiumRequired');\n return;\n }\n }\n\n protected getTwoFactorProviders() {\n return this.apiService.getTwoFactorProviders();\n }\n\n protected filterProvider(type: TwoFactorProviderType) {\n return type === TwoFactorProviderType.OrganizationDuo;\n }\n\n protected openModal(ref: ViewContainerRef, type: Type): T {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = ref.createComponent(factory).instance;\n const childComponent = this.modal.show(type, ref);\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n return childComponent;\n }\n\n protected updateStatus(enabled: boolean, type: TwoFactorProviderType) {\n if (!enabled && this.modal != null) {\n this.modal.close();\n }\n this.providers.forEach(p => {\n if (p.type === type) {\n p.enabled = enabled;\n }\n });\n this.evaluatePolicies();\n }\n\n private async evaluatePolicies() {\n if (this.organizationId == null && this.providers.filter(p => p.enabled).length === 1) {\n const policies = await this.policyService.getAll(PolicyType.TwoFactorAuthentication);\n this.showPolicyWarning = policies != null && policies.some(p => p.enabled);\n } else {\n this.showPolicyWarning = false;\n }\n }\n}\n","
\n

{{'twoStepLogin' | i18n}}

\n
\n

{{'twoStepLoginDesc' | i18n}}

\n

{{'twoStepLoginOrganizationDesc' | i18n}}

\n\n

{{'twoStepLoginRecoveryWarning' | i18n}}

\n \n
\n

\n {{'providers' | i18n}}\n \n \n {{'loading' | i18n}}\n \n

\n\n {{'twoStepLoginPolicyUserWarning' | i18n}}\n\n
    \n
  • \n
    \n \"\"\n
    \n
    \n

    \n {{p.name}}\n \n \n {{'enabled' | i18n}}\n \n \n {{'premium' | i18n}}\n \n

    \n {{p.description}}\n
    \n
    \n \n
    \n
  • \n
\n\n\n\n\n\n\n\n","import { Component } from '@angular/core';\n\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { EventService } from 'jslib/abstractions/event.service';\nimport { ExportService } from 'jslib/abstractions/export.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { ExportComponent as BaseExportComponent } from 'jslib/angular/components/export.component';\n\n@Component({\n selector: 'app-export',\n templateUrl: 'export.component.html',\n})\nexport class ExportComponent extends BaseExportComponent {\n organizationId: string;\n\n constructor(cryptoService: CryptoService, i18nService: I18nService,\n platformUtilsService: PlatformUtilsService, exportService: ExportService,\n eventService: EventService) {\n super(cryptoService, i18nService, platformUtilsService, exportService, eventService, window);\n }\n\n protected saved() {\n super.saved();\n this.masterPassword = null;\n this.platformUtilsService.showToast('success', null, this.i18nService.t('exportSuccess'));\n }\n}\n","
\n
\n

{{'exportVault' | i18n}}

\n
\n

{{'exportMasterPassword' | i18n}}

\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n
\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n} from '@angular/core';\n\nimport { AuditService } from 'jslib/abstractions/audit.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { CipherType } from 'jslib/enums/cipherType';\n\nimport { CipherReportComponent } from './cipher-report.component';\n\n@Component({\n selector: 'app-exposed-passwords-report',\n templateUrl: 'exposed-passwords-report.component.html',\n})\nexport class ExposedPasswordsReportComponent extends CipherReportComponent implements OnInit {\n exposedPasswordMap = new Map();\n\n constructor(protected cipherService: CipherService, protected auditService: AuditService,\n componentFactoryResolver: ComponentFactoryResolver, messagingService: MessagingService,\n userService: UserService) {\n super(componentFactoryResolver, userService, messagingService, true);\n }\n\n ngOnInit() {\n this.checkAccess();\n }\n\n async load() {\n if (await this.checkAccess()) {\n super.load();\n }\n }\n\n async setCiphers() {\n const allCiphers = await this.getAllCiphers();\n const exposedPasswordCiphers: CipherView[] = [];\n const promises: Promise[] = [];\n allCiphers.forEach(c => {\n if (c.type !== CipherType.Login || c.login.password == null || c.login.password === '' || c.isDeleted) {\n return;\n }\n const promise = this.auditService.passwordLeaked(c.login.password).then(exposedCount => {\n if (exposedCount > 0) {\n exposedPasswordCiphers.push(c);\n this.exposedPasswordMap.set(c.id, exposedCount);\n }\n });\n promises.push(promise);\n });\n await Promise.all(promises);\n this.ciphers = exposedPasswordCiphers;\n }\n\n protected getAllCiphers(): Promise {\n return this.cipherService.getAllDecrypted();\n }\n\n protected canManageCipher(c: CipherView): boolean {\n // this will only ever be false from the org view;\n return true;\n }\n}\n","
\n

{{'exposedPasswordsReport' | i18n}}

\n
\n

{{'exposedPasswordsReportDesc' | i18n}}

\n\n
\n \n {{'noExposedPasswords' | i18n}}\n \n \n \n {{'exposedPasswordsFoundDesc' | i18n : (ciphers.length | number)}}\n \n \n \n \n \n \n \n \n \n
\n \n \n \n {{c.name}}\n \n \n {{c.name}}\n \n \n \n {{'shared' | i18n}}\n \n \n \n {{'attachments' | i18n}}\n \n
\n {{c.subTitle}}\n
\n \n {{'exposedXTimes' | i18n : (exposedPasswordMap.get(c.id) | number)}}\n \n
\n
\n
\n\n","import { Component } from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { AuditService } from 'jslib/abstractions/audit.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { EventService } from 'jslib/abstractions/event.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { TotpService } from 'jslib/abstractions/totp.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CipherData } from 'jslib/models/data/cipherData';\nimport { Cipher } from 'jslib/models/domain/cipher';\nimport { Organization } from 'jslib/models/domain/organization';\nimport { CipherCreateRequest } from 'jslib/models/request/cipherCreateRequest';\nimport { CipherRequest } from 'jslib/models/request/cipherRequest';\n\nimport { AddEditComponent as BaseAddEditComponent } from '../../vault/add-edit.component';\n\n@Component({\n selector: 'app-org-vault-add-edit',\n templateUrl: '../../vault/add-edit.component.html',\n})\nexport class AddEditComponent extends BaseAddEditComponent {\n organization: Organization;\n originalCipher: Cipher = null;\n\n constructor(cipherService: CipherService, folderService: FolderService,\n i18nService: I18nService, platformUtilsService: PlatformUtilsService,\n auditService: AuditService, stateService: StateService,\n userService: UserService, collectionService: CollectionService,\n totpService: TotpService, passwordGenerationService: PasswordGenerationService,\n private apiService: ApiService, messagingService: MessagingService,\n eventService: EventService, policyService: PolicyService) {\n super(cipherService, folderService, i18nService, platformUtilsService, auditService, stateService,\n userService, collectionService, totpService, passwordGenerationService, messagingService,\n eventService, policyService);\n }\n\n protected allowOwnershipAssignment() {\n if (this.ownershipOptions != null && (this.ownershipOptions.length > 1 || !this.allowPersonal)) {\n if (this.organization != null) {\n return this.cloneMode && this.organization.canManageAllCollections;\n } else {\n return !this.editMode || this.cloneMode;\n }\n }\n return false;\n }\n\n protected loadCollections() {\n if (!this.organization.canManageAllCollections) {\n return super.loadCollections();\n }\n return Promise.resolve(this.collections);\n }\n\n protected async loadCipher() {\n if (!this.organization.canManageAllCollections) {\n return await super.loadCipher();\n }\n const response = await this.apiService.getCipherAdmin(this.cipherId);\n const data = new CipherData(response);\n this.originalCipher = new Cipher(data);\n return new Cipher(data);\n }\n\n protected encryptCipher() {\n if (!this.organization.canManageAllCollections) {\n return super.encryptCipher();\n }\n return this.cipherService.encrypt(this.cipher, null, this.originalCipher);\n }\n\n protected async saveCipher(cipher: Cipher) {\n if (!this.organization.canManageAllCollections || cipher.organizationId == null) {\n return super.saveCipher(cipher);\n }\n if (this.editMode && !this.cloneMode) {\n const request = new CipherRequest(cipher);\n return this.apiService.putCipherAdmin(this.cipherId, request);\n } else {\n const request = new CipherCreateRequest(cipher);\n return this.apiService.postCipherAdmin(request);\n }\n }\n\n protected async deleteCipher() {\n if (!this.organization.canManageAllCollections) {\n return super.deleteCipher();\n }\n return this.cipher.isDeleted ? this.apiService.deleteCipherAdmin(this.cipherId)\n : this.apiService.putDeleteCipherAdmin(this.cipherId);\n }\n}\n","import { AttachmentResponse } from '../response/attachmentResponse';\n\nexport class AttachmentData {\n id: string;\n url: string;\n fileName: string;\n key: string;\n size: string;\n sizeName: string;\n\n constructor(response?: AttachmentResponse) {\n if (response == null) {\n return;\n }\n this.id = response.id;\n this.url = response.url;\n this.fileName = response.fileName;\n this.key = response.key;\n this.size = response.size;\n this.sizeName = response.sizeName;\n }\n}\n","import { CardApi } from '../api/cardApi';\n\nexport class CardData {\n cardholderName: string;\n brand: string;\n number: string;\n expMonth: string;\n expYear: string;\n code: string;\n\n constructor(data?: CardApi) {\n if (data == null) {\n return;\n }\n\n this.cardholderName = data.cardholderName;\n this.brand = data.brand;\n this.number = data.number;\n this.expMonth = data.expMonth;\n this.expYear = data.expYear;\n this.code = data.code;\n }\n}\n","import { FieldType } from '../../enums/fieldType';\n\nimport { FieldApi } from '../api/fieldApi';\n\nexport class FieldData {\n type: FieldType;\n name: string;\n value: string;\n\n constructor(response?: FieldApi) {\n if (response == null) {\n return;\n }\n this.type = response.type;\n this.name = response.name;\n this.value = response.value;\n }\n}\n","import { IdentityApi } from '../api/identityApi';\n\nexport class IdentityData {\n title: string;\n firstName: string;\n middleName: string;\n lastName: string;\n address1: string;\n address2: string;\n address3: string;\n city: string;\n state: string;\n postalCode: string;\n country: string;\n company: string;\n email: string;\n phone: string;\n ssn: string;\n username: string;\n passportNumber: string;\n licenseNumber: string;\n\n constructor(data?: IdentityApi) {\n if (data == null) {\n return;\n }\n\n this.title = data.title;\n this.firstName = data.firstName;\n this.middleName = data.middleName;\n this.lastName = data.lastName;\n this.address1 = data.address1;\n this.address2 = data.address2;\n this.address3 = data.address3;\n this.city = data.city;\n this.state = data.state;\n this.postalCode = data.postalCode;\n this.country = data.country;\n this.company = data.company;\n this.email = data.email;\n this.phone = data.phone;\n this.ssn = data.ssn;\n this.username = data.username;\n this.passportNumber = data.passportNumber;\n this.licenseNumber = data.licenseNumber;\n }\n}\n","import { LoginApi } from '../api/loginApi';\n\nimport { LoginUriData } from './loginUriData';\n\nexport class LoginData {\n uris: LoginUriData[];\n username: string;\n password: string;\n passwordRevisionDate: string;\n totp: string;\n\n constructor(data?: LoginApi) {\n if (data == null) {\n return;\n }\n\n this.username = data.username;\n this.password = data.password;\n this.passwordRevisionDate = data.passwordRevisionDate;\n this.totp = data.totp;\n\n if (data.uris) {\n this.uris = data.uris.map(u => new LoginUriData(u));\n }\n }\n}\n","import { UriMatchType } from '../../enums/uriMatchType';\n\nimport { LoginUriApi } from '../api/loginUriApi';\n\nexport class LoginUriData {\n uri: string;\n match: UriMatchType = null;\n\n constructor(data?: LoginUriApi) {\n if (data == null) {\n return;\n }\n this.uri = data.uri;\n this.match = data.match;\n }\n}\n","import { SecureNoteType } from '../../enums/secureNoteType';\n\nimport { SecureNoteApi } from '../api/secureNoteApi';\n\nexport class SecureNoteData {\n type: SecureNoteType;\n\n constructor(data?: SecureNoteApi) {\n if (data == null) {\n return;\n }\n\n this.type = data.type;\n }\n}\n","import { AttachmentData } from '../data/attachmentData';\n\nimport { AttachmentView } from '../view/attachmentView';\n\nimport { CipherString } from './cipherString';\nimport Domain from './domainBase';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nimport { CryptoService } from '../../abstractions/crypto.service';\n\nimport { Utils } from '../../misc/utils';\n\nexport class Attachment extends Domain {\n id: string;\n url: string;\n size: string;\n sizeName: string;\n key: CipherString;\n fileName: CipherString;\n\n constructor(obj?: AttachmentData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.size = obj.size;\n this.buildDomainModel(this, obj, {\n id: null,\n url: null,\n sizeName: null,\n fileName: null,\n key: null,\n }, alreadyEncrypted, ['id', 'url', 'sizeName']);\n }\n\n async decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise {\n const view = await this.decryptObj(new AttachmentView(this), {\n fileName: null,\n }, orgId, encKey);\n\n if (this.key != null) {\n let cryptoService: CryptoService;\n const containerService = (Utils.global as any).bitwardenContainerService;\n if (containerService) {\n cryptoService = containerService.getCryptoService();\n } else {\n throw new Error('global bitwardenContainerService not initialized.');\n }\n\n try {\n const orgKey = await cryptoService.getOrgKey(orgId);\n const decValue = await cryptoService.decryptToBytes(this.key, orgKey ?? encKey);\n view.key = new SymmetricCryptoKey(decValue);\n } catch (e) {\n // TODO: error?\n }\n }\n\n return view;\n }\n\n toAttachmentData(): AttachmentData {\n const a = new AttachmentData();\n a.size = this.size;\n this.buildDataModel(this, a, {\n id: null,\n url: null,\n sizeName: null,\n fileName: null,\n key: null,\n }, ['id', 'url', 'sizeName']);\n return a;\n }\n}\n","import { View } from './view';\n\nimport { Password } from '../domain/password';\n\nexport class PasswordHistoryView implements View {\n password: string = null;\n lastUsedDate: Date = null;\n\n constructor(ph?: Password) {\n if (!ph) {\n return;\n }\n\n this.lastUsedDate = ph.lastUsedDate;\n }\n}\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { ImportOption, ImportService } from 'jslib/abstractions/import.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport Swal, { SweetAlertIcon } from 'sweetalert2/dist/sweetalert2.js';\n\n@Component({\n selector: 'app-import',\n templateUrl: 'import.component.html',\n})\nexport class ImportComponent implements OnInit {\n featuredImportOptions: ImportOption[];\n importOptions: ImportOption[];\n format: string = null;\n fileContents: string;\n formPromise: Promise;\n loading: boolean = false;\n\n protected organizationId: string = null;\n protected successNavigate: any[] = ['vault'];\n\n constructor(protected i18nService: I18nService, protected analytics: Angulartics2,\n protected toasterService: ToasterService, protected importService: ImportService,\n protected router: Router, protected platformUtilsService: PlatformUtilsService) { }\n\n ngOnInit() {\n this.setImportOptions();\n this.importOptions.sort((a, b) => {\n if (a.name == null && b.name != null) {\n return -1;\n }\n if (a.name != null && b.name == null) {\n return 1;\n }\n if (a.name == null && b.name == null) {\n return 0;\n }\n\n return this.i18nService.collator ? this.i18nService.collator.compare(a.name, b.name) :\n a.name.localeCompare(b.name);\n });\n }\n\n async submit() {\n this.loading = true;\n\n const importer = this.importService.getImporter(this.format, this.organizationId);\n if (importer === null) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectFormat'));\n this.loading = false;\n return;\n }\n\n const fileEl = document.getElementById('file') as HTMLInputElement;\n const files = fileEl.files;\n if ((files == null || files.length === 0) && (this.fileContents == null || this.fileContents === '')) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectFile'));\n this.loading = false;\n return;\n }\n\n let fileContents = this.fileContents;\n if (files != null && files.length > 0) {\n try {\n const content = await this.getFileContents(files[0]);\n if (content != null) {\n fileContents = content;\n }\n } catch { }\n }\n\n if (fileContents == null || fileContents === '') {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectFile'));\n this.loading = false;\n return;\n }\n\n try {\n this.formPromise = this.importService.import(importer, fileContents, this.organizationId);\n const error = await this.formPromise;\n if (error != null) {\n this.error(error);\n this.loading = false;\n return;\n }\n this.analytics.eventTrack.next({\n action: 'Imported Data',\n properties: { label: this.format },\n });\n this.toasterService.popAsync('success', null, this.i18nService.t('importSuccess'));\n this.router.navigate(this.successNavigate);\n } catch { }\n\n this.loading = false;\n }\n\n getFormatInstructionTitle() {\n if (this.format == null) {\n return null;\n }\n\n const results = this.featuredImportOptions.concat(this.importOptions).filter(o => o.id === this.format);\n if (results.length > 0) {\n return this.i18nService.t('instructionsFor', results[0].name);\n }\n return null;\n }\n\n protected setImportOptions() {\n this.featuredImportOptions = [{\n id: null,\n name: '-- ' + this.i18nService.t('select') + ' --',\n }, ...this.importService.featuredImportOptions];\n this.importOptions = this.importService.regularImportOptions;\n }\n\n private async error(error: Error) {\n this.analytics.eventTrack.next({\n action: 'Import Data Failed',\n properties: { label: this.format },\n });\n\n await Swal.fire({\n heightAuto: false,\n buttonsStyling: false,\n icon: 'error' as SweetAlertIcon,\n iconHtml: ``,\n input: 'textarea',\n inputValue: error.message,\n inputAttributes: {\n 'readonly': 'true',\n },\n title: this.i18nService.t('importError'),\n text: this.i18nService.t('importErrorDesc'),\n showConfirmButton: true,\n confirmButtonText: this.i18nService.t('ok'),\n onOpen: popupEl => {\n popupEl.querySelector('.swal2-textarea').scrollTo(0, 0);\n },\n });\n }\n\n private getFileContents(file: File): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsText(file, 'utf-8');\n reader.onload = evt => {\n if (this.format === 'lastpasscsv' && file.type === 'text/html') {\n const parser = new DOMParser();\n const doc = parser.parseFromString((evt.target as any).result, 'text/html');\n const pre = doc.querySelector('pre');\n if (pre != null) {\n resolve(pre.textContent);\n return;\n }\n reject();\n return;\n }\n\n resolve((evt.target as any).result);\n };\n reader.onerror = () => {\n reject();\n };\n });\n }\n}\n","
\n

{{'importData' | i18n}}

\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n See detailed instructions on our help site at\n \n https://help.bitwarden.com/article/export-your-data/\n \n \n See detailed instructions on our help site at\n \n https://help.bitwarden.com/article/import-from-lastpass/\n \n \n Using the KeePassX desktop application, navigate to \"Database\" → \"Export to CSV file\" and save the CSV\n file.\n \n \n In the Avira web vault, go to \"Settings\" → \"My Data\" → \"Export data\" and save the CSV file.\n \n \n In the Blur web vault, click your username at the top and go to \"Settings\" → \"Export Data\", then click\n \"Export CSV\"\n for your \"Accounts\".\n \n \n Using the SaveInCloud desktop application, navigate to \"File\" → \"Export\" → \"As XML\" and save the\n XML file.\n \n \n Using the Padlock desktop application, click the hamburger icon in the top left corner and navigate to\n \"Settings\" →\n \"Export\" button and save the file \"As CSV\".\n \n \n Using the KeePass 2 desktop application, navigate to \"File\" → \"Export\" and select the \"KeePass XML\n (2.x)\" option.\n \n \n Using the Universal Password Manager desktop application, navigate to \"Database\" → \"Export\" and save\n the CSV file.\n \n \n Using the SaferPass browser extension, click the hamburger icon in the top left corner and navigate to\n \"Settings\". Click the \"Export accounts\" button to save the CSV file.\n \n \n Using the Meldium web vault, navigate to \"Settings\". Locate the \"Export data\" function and click \"Show me my\n data\" to save the CSV file.\n \n \n Log into the Keeper web vault (keepersecurity.com/vault). Navigate to \"Backup\" (top right) and find the\n \"Export to .csv File\" option. Click \"Export Now\" to save the CSV file.\n \n \n \n The process is exactly the same as importing from Google Chrome.\n \n See detailed instructions on our help site at\n \n https://help.bitwarden.com/article/import-from-chrome/\n \n \n See detailed instructions on our help site at\n \n https://bitwarden.com/help/article/import-from-firefox/.\n \n \n See detailed instructions on our help site at\n \n https://help.bitwarden.com/article/import-from-1password/.\n \n \n Using the Password Dragon desktop application, navigate to \"File\" → \"Export\" → \"To XML\". In the\n dialog that pops up select \"All Rows\" and check all fields. Click the \"Export\" button and save the XML file.\n \n \n Using the Enpass desktop application, navigate to \"File\" → \"Export\" → \"As CSV\". Select \"OK\" to the\n warning alert and save the CSV file. Note that the importer only supports files exported while Enpass is set\n to the English language, so adjust your settings accordingly.\n \n \n Using the Enpass 6 desktop application, click the menu button and navigate to \"File\" → \"Export\".\n Select the \".json\" file format option and save the JSON file.\n \n \n Using the Password Safe desktop application, navigate to \"File\" → \"Export To\" → \"XML format...\"\n and save the XML file.\n \n \n Using the Dashlane desktop application, navigate to \"File\" → \"Export\" → \"Unsecured archive\n (readable) in JSON format\" and save the JSON file.\n \n \n Using the mSecure desktop application, navigate to \"File\" → \"Export\" → \"CSV File...\" and save the\n CSV file.\n \n \n Using the Sticky Password desktop application, navigate to \"Menu\" (top right) → \"Export\" → \"Export\n all\". Select the unencrypted format XML option and save the XML file.\n \n \n Using the True Key desktop application, click the gear icon (top right) and then navigate to \"App Settings\".\n Click the \"Export\" button, enter your password and save the CSV file.\n \n \n Log into the Clipperz web application (clipperz.is/app). Click the hamburger menu icon in the top right to\n expand the navigation bar. Navigate to \"Data\" → \"Export\". Click the \"download HTML+JSON\" button to save\n the HTML file.\n \n \n Using the RoboForm Editor desktop application, navigate to \"RoboForm\" (top left) → \"Options\" →\n \"Account & Data\" and click the \"Export\" button. Select all of your data, change the \"Format\" to \"CSV\n file\" and then click the \"Export\" button to save the CSV file. Note: RoboForm only allows you to export\n Logins. Other items will not be exported.\n \n \n Log into the Passbolt web vault and navigate to the \"Passwords\" listing. Select all of the passwords you\n would like to export and click the \"Export\" button at the top of the listing. Choose the \"csv (lastpass)\"\n export format and click the \"Export\" button.\n \n \n Using the Ascendo DataVault desktop application, navigate to \"Tools\" → \"Export\". In the dialog that\n pops up, select the \"All Items (DVX, CSV)\" option. Click the \"Ok\" button to save the CSV file.\n \n \n Using the Password Boss desktop application, navigate to \"File\" → \"Export data\" → \"Password Boss\n JSON - not encrypted\" and save the JSON file.\n \n \n Log into the Zoho web vault (vault.zoho.com). Navigate to \"Tools\" → \"Export Secrets\". Select \"All\n Secrets\" and click the \"Zoho Vault Format CSV\" button. Highlight and copy the data from the textarea. Open a\n text editor like Notepad and paste the data. Save the data from the text editor as\n zoho_export.csv.\n \n \n Using the SplashID Safe desktop application, click on the SplashID blue lock logo in the top right corner.\n Navigate to \"Export\" → \"Export as CSV\" and save the CSV file.\n \n \n Using the PassKeep mobile app, navigate to \"Backup/Restore\". Locate the \"CSV Backup/Restore\" section and\n click \"Backup to CSV\" to save the CSV file.\n \n \n Make sure you have python-keyring and python-gnomekeyring installed. Save the\n GNOME Keyring Import/Export python\n script to your desktop as pw_helper.py. Open terminal and run\n chmod +rx Desktop/pw_helper.py and then\n python Desktop/pw_helper.py export Desktop/my_passwords.json. Then upload the resulting\n my_passwords.json file here to Bitwarden.\n \n \n Using the Password Agent desktop application navigate to \"File\" → \"Export\", select the \"Fields to\n export\" button and check all of the fields, change the \"Output format\" to \"CSV\", and then click the \"Start\"\n button to save the CSV file.\n \n \n Log into the Passpack website vault and navigate to \"Settings\" → \"Export\", then click the \"Download\"\n button to save the CSV file.\n \n \n Open your Passman vault and click on \"Settings\" in the bottom left corner. In the \"Settings\" window switch\n to the \"Export credentials\" tab and choose \"JSON\" as the export type. Enter your vault's passphrase and\n click the \"Export\" button to save the JSON file.\n \n \n Open the Avast Passwords desktop application and navigate to \"Settings\" → \"Import/export data\". Select\n the \"Export\" button for the \"Export to CSV file\" option to save the CSV file.\n \n \n Open the Avast Passwords desktop application and navigate to \"Settings\" → \"Import/export data\". Select\n the \"Export\" button for the \"Export to JSON file\" option to save the JSON file.\n \n \n Open the F-Secure KEY desktop application and navigate to \"Settings\" → \"Export Passwords\". Select the\n \"Export\" button, enter your master password, and save the FSK file.\n \n \n Open the Kaspersky Password Manager desktop application and navigate to \"Settings\" → \"Import/Export\".\n Locate the \"Export to text file\" section and select the \"Export\" button to save the TXT file.\n \n \n Open the RememBear desktop application and navigate to \"Settings\" → \"Account\" → \"Export\".\n Enter your master password and select the \"Export Anyway\" button to save the CSV file.\n \n \n Open the PasswordWallet desktop application and navigate to \"File\" → \"Export\" →\n \"Visible entries to text file\". Enter your password and select the \"Ok\" button to save the TXT file.\n \n \n Open the Myki desktop browser extension and navigate to \"Advanced\" → \"Export Accounts\" and then scan\n the QR code with your mobile device. Various CSV files will then be saved to your computer's\n downloads folder.\n \n \n Export your SecureSafe password safe to a CSV file with a comma delimiter.\n \n \n Open the LogMeOnce browser extension, then navigate to \"Open Menu\" → \"Export To\" and\n select \"CSV File\" to save the CSV file.\n \n \n Open the BlackBerry Password Keeper application, then navigate to \"Settings\" → \"Import/Export\".\n Select \"Export Passwords\" and follow the instructions on screen to save the unencrypted CSV file.\n \n \n Open the Buttercup desktop application and unlock your vault. Right click on your vault's icon and\n select \"Export\" to save the CSV file.\n \n \n Open the Codebook desktop application and log in. Navigate to \"File\" → \"Export all\", then click\n \"Yes\" on the dialog and save the CSV file.\n \n \n Open the newest version of the Encryptr desktop application and allow all of your data to sync.\n Once syncing of your data is complete, the download icon in the top right corner will turn pink. Click\n the download icon and save the CSV file.\n \n \n From the Yoti browser extension, click on \"Settings\", then \"Export Saved Logins\" and save the CSV file.\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n \n
\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n} from '@angular/core';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { CipherType } from 'jslib/enums/cipherType';\n\nimport { Utils } from 'jslib/misc/utils';\n\nimport { CipherReportComponent } from './cipher-report.component';\n\n@Component({\n selector: 'app-inactive-two-factor-report',\n templateUrl: 'inactive-two-factor-report.component.html',\n})\nexport class InactiveTwoFactorReportComponent extends CipherReportComponent implements OnInit {\n services = new Map();\n cipherDocs = new Map();\n\n constructor(protected cipherService: CipherService, componentFactoryResolver: ComponentFactoryResolver,\n messagingService: MessagingService, userService: UserService) {\n super(componentFactoryResolver, userService, messagingService, true);\n }\n\n async ngOnInit() {\n if (await this.checkAccess()) {\n await super.load();\n }\n }\n\n async setCiphers() {\n try {\n await this.load2fa();\n } catch { }\n if (this.services.size > 0) {\n const allCiphers = await this.getAllCiphers();\n const inactive2faCiphers: CipherView[] = [];\n const promises: Promise[] = [];\n const docs = new Map();\n allCiphers.forEach(c => {\n if (c.type !== CipherType.Login || (c.login.totp != null && c.login.totp !== '') || !c.login.hasUris ||\n c.isDeleted) {\n return;\n }\n for (let i = 0; i < c.login.uris.length; i++) {\n const u = c.login.uris[i];\n if (u.uri != null && u.uri !== '') {\n const hostname = Utils.getHostname(u.uri);\n if (hostname != null && this.services.has(hostname)) {\n if (this.services.get(hostname) != null) {\n docs.set(c.id, this.services.get(hostname));\n }\n inactive2faCiphers.push(c);\n break;\n }\n }\n }\n });\n await Promise.all(promises);\n this.ciphers = inactive2faCiphers;\n this.cipherDocs = docs;\n }\n }\n\n protected getAllCiphers(): Promise {\n return this.cipherService.getAllDecrypted();\n }\n\n private async load2fa() {\n if (this.services.size > 0) {\n return;\n }\n const response = await fetch(new Request('https://2fa.directory/api/v2/totp.json'));\n if (response.status !== 200) {\n throw new Error();\n }\n const responseJson = await response.json();\n for (const categoryName in responseJson) {\n if (responseJson.hasOwnProperty(categoryName)) {\n const category = responseJson[categoryName];\n for (const serviceName in category) {\n if (category.hasOwnProperty(serviceName)) {\n const service = category[serviceName];\n if (service.url != null) {\n const hostname = Utils.getHostname(service.url);\n if (hostname != null) {\n this.services.set(hostname, service.doc);\n }\n }\n }\n }\n }\n }\n }\n}\n","
\n

\n {{'inactive2faReport' | i18n}}\n \n \n {{'loading' | i18n}}\n \n

\n
\n

{{'inactive2faReportDesc' | i18n}}

\n
\n \n {{'loading' | i18n}}\n
\n
\n \n {{'noInactive2fa' | i18n}}\n \n \n \n {{'inactive2faFoundDesc' | i18n : (ciphers.length | number)}}\n \n \n \n \n \n \n \n \n \n
\n \n \n {{c.name}}\n \n \n {{'shared' | i18n}}\n \n \n \n {{'attachments' | i18n}}\n \n
\n {{c.subTitle}}\n
\n \n {{'instructions' | i18n}}\n
\n
\n
\n\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n} from '@angular/core';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { CipherType } from 'jslib/enums/cipherType';\n\nimport { CipherReportComponent } from './cipher-report.component';\n\n@Component({\n selector: 'app-reused-passwords-report',\n templateUrl: 'reused-passwords-report.component.html',\n})\nexport class ReusedPasswordsReportComponent extends CipherReportComponent implements OnInit {\n passwordUseMap: Map;\n\n constructor(protected cipherService: CipherService, componentFactoryResolver: ComponentFactoryResolver,\n messagingService: MessagingService, userService: UserService) {\n super(componentFactoryResolver, userService, messagingService, true);\n }\n\n async ngOnInit() {\n if (await this.checkAccess()) {\n await super.load();\n }\n }\n\n async setCiphers() {\n const allCiphers = await this.getAllCiphers();\n const ciphersWithPasswords: CipherView[] = [];\n this.passwordUseMap = new Map();\n allCiphers.forEach(c => {\n if (c.type !== CipherType.Login || c.login.password == null || c.login.password === '' || c.isDeleted) {\n return;\n }\n ciphersWithPasswords.push(c);\n if (this.passwordUseMap.has(c.login.password)) {\n this.passwordUseMap.set(c.login.password, this.passwordUseMap.get(c.login.password) + 1);\n } else {\n this.passwordUseMap.set(c.login.password, 1);\n }\n });\n const reusedPasswordCiphers = ciphersWithPasswords.filter(c =>\n this.passwordUseMap.has(c.login.password) && this.passwordUseMap.get(c.login.password) > 1);\n this.ciphers = reusedPasswordCiphers;\n }\n\n protected getAllCiphers(): Promise {\n return this.cipherService.getAllDecrypted();\n }\n\n protected canManageCipher(c: CipherView): boolean {\n // this will only ever be false from an organization view\n return true;\n }\n}\n","
\n

\n {{'reusedPasswordsReport' | i18n}}\n \n \n {{'loading' | i18n}}\n \n

\n
\n

{{'reusedPasswordsReportDesc' | i18n}}

\n
\n \n {{'loading' | i18n}}\n
\n
\n \n {{'noReusedPasswords' | i18n}}\n \n \n \n {{'reusedPasswordsFoundDesc' | i18n : (ciphers.length | number)}}\n \n \n \n \n \n \n \n \n \n
\n \n \n \n {{c.name}}\n \n \n {{c.name}}\n \n \n \n {{'shared' | i18n}}\n \n \n \n {{'attachments' | i18n}}\n \n
\n {{c.subTitle}}\n
\n \n {{'reusedXTimes' | i18n : passwordUseMap.get(c.login.password)}}\n \n
\n
\n
\n\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n} from '@angular/core';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CipherType } from 'jslib/enums/cipherType';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { CipherReportComponent } from './cipher-report.component';\n\n@Component({\n selector: 'app-unsecured-websites-report',\n templateUrl: 'unsecured-websites-report.component.html',\n})\nexport class UnsecuredWebsitesReportComponent extends CipherReportComponent implements OnInit {\n constructor(protected cipherService: CipherService, componentFactoryResolver: ComponentFactoryResolver,\n messagingService: MessagingService, userService: UserService) {\n super(componentFactoryResolver, userService, messagingService, true);\n }\n\n async ngOnInit() {\n if (await this.checkAccess()) {\n await super.load();\n }\n }\n\n async setCiphers() {\n const allCiphers = await this.getAllCiphers();\n const unsecuredCiphers = allCiphers.filter(c => {\n if (c.type !== CipherType.Login || !c.login.hasUris || c.isDeleted) {\n return false;\n }\n return c.login.uris.some(u => u.uri != null && u.uri.indexOf('http://') === 0);\n });\n this.ciphers = unsecuredCiphers;\n }\n\n protected getAllCiphers(): Promise {\n return this.cipherService.getAllDecrypted();\n }\n}\n","
\n

\n {{'unsecuredWebsitesReport' | i18n}}\n \n \n {{'loading' | i18n}}\n \n

\n
\n

{{'unsecuredWebsitesReportDesc' | i18n}}

\n
\n \n {{'loading' | i18n}}\n
\n
\n \n {{'noUnsecuredWebsites' | i18n}}\n \n \n \n {{'unsecuredWebsitesFoundDesc' | i18n : (ciphers.length | number)}}\n \n \n \n \n \n \n \n \n
\n \n \n {{c.name}}\n \n \n {{'shared' | i18n}}\n \n \n \n {{'attachments' | i18n}}\n \n
\n {{c.subTitle}}\n
\n
\n
\n\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n} from '@angular/core';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { CipherType } from 'jslib/enums/cipherType';\n\nimport { CipherReportComponent } from './cipher-report.component';\n\n@Component({\n selector: 'app-weak-passwords-report',\n templateUrl: 'weak-passwords-report.component.html',\n})\nexport class WeakPasswordsReportComponent extends CipherReportComponent implements OnInit {\n passwordStrengthMap = new Map();\n\n private passwordStrengthCache = new Map();\n\n constructor(protected cipherService: CipherService, protected passwordGenerationService: PasswordGenerationService,\n componentFactoryResolver: ComponentFactoryResolver, messagingService: MessagingService,\n userService: UserService) {\n super(componentFactoryResolver, userService, messagingService, true);\n }\n\n async ngOnInit() {\n if (await this.checkAccess()) {\n await super.load();\n }\n }\n\n async setCiphers() {\n const allCiphers = await this.getAllCiphers();\n const weakPasswordCiphers: CipherView[] = [];\n allCiphers.forEach(c => {\n if (c.type !== CipherType.Login || c.login.password == null || c.login.password === '' || c.isDeleted) {\n return;\n }\n const hasUsername = c.login.username != null && c.login.username.trim() !== '';\n const cacheKey = c.login.password + '_____' + (hasUsername ? c.login.username : '');\n if (!this.passwordStrengthCache.has(cacheKey)) {\n let userInput: string[] = [];\n if (hasUsername) {\n const atPosition = c.login.username.indexOf('@');\n if (atPosition > -1) {\n userInput = userInput.concat(\n c.login.username.substr(0, atPosition).trim().toLowerCase().split(/[^A-Za-z0-9]/))\n .filter(i => i.length >= 3);\n } else {\n userInput = c.login.username.trim().toLowerCase().split(/[^A-Za-z0-9]/)\n .filter(i => i.length >= 3);\n }\n }\n const result = this.passwordGenerationService.passwordStrength(c.login.password,\n userInput.length > 0 ? userInput : null);\n this.passwordStrengthCache.set(cacheKey, result.score);\n }\n const score = this.passwordStrengthCache.get(cacheKey);\n if (score != null && score <= 2) {\n this.passwordStrengthMap.set(c.id, this.scoreKey(score));\n weakPasswordCiphers.push(c);\n }\n });\n this.ciphers = weakPasswordCiphers;\n }\n\n protected getAllCiphers(): Promise {\n return this.cipherService.getAllDecrypted();\n }\n\n protected canManageCipher(c: CipherView): boolean {\n // this will only ever be false from the org view;\n return true;\n }\n\n private scoreKey(score: number): [string, string] {\n switch (score) {\n case 4:\n return ['strong', 'success'];\n case 3:\n return ['good', 'primary'];\n case 2:\n return ['weak', 'warning'];\n default:\n return ['veryWeak', 'danger'];\n }\n }\n}\n","
\n

\n {{'weakPasswordsReport' | i18n}}\n \n \n {{'loading' | i18n}}\n \n

\n
\n

{{'weakPasswordsReportDesc' | i18n}}

\n
\n \n {{'loading' | i18n}}\n
\n
\n \n {{'noWeakPasswords' | i18n}}\n \n \n \n {{'weakPasswordsFoundDesc' | i18n : (ciphers.length | number)}}\n \n \n \n \n \n \n \n \n \n
\n \n \n \n {{c.name}}\n \n \n {{c.name}}\n \n \n \n {{'shared' | i18n}}\n \n \n \n {{'attachments' | i18n}}\n \n
\n {{c.subTitle}}\n
\n \n {{passwordStrengthMap.get(c.id)[0] | i18n}}\n \n
\n
\n
\n\n","import { Component } from '@angular/core';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { AttachmentView } from 'jslib/models/view/attachmentView';\n\nimport { AttachmentsComponent as BaseAttachmentsComponent } from 'jslib/angular/components/attachments.component';\n\n@Component({\n selector: 'app-vault-attachments',\n templateUrl: 'attachments.component.html',\n})\nexport class AttachmentsComponent extends BaseAttachmentsComponent {\n viewOnly = false;\n\n constructor(cipherService: CipherService, i18nService: I18nService,\n cryptoService: CryptoService, userService: UserService,\n platformUtilsService: PlatformUtilsService) {\n super(cipherService, i18nService, cryptoService, userService, platformUtilsService, window);\n }\n\n protected async reupload(attachment: AttachmentView) {\n if (this.showFixOldAttachments(attachment)) {\n await this.reuploadCipherAttachment(attachment, false);\n }\n }\n\n protected showFixOldAttachments(attachment: AttachmentView) {\n return attachment.key == null && this.cipher.organizationId == null;\n }\n}\n","
\n
\n
\n
\n

\n {{'attachments' | i18n}}\n {{cipher.name}}\n

\n \n
\n
\n \n \n \n \n \n \n \n \n
\n \n \n \n
\n {{a.fileName}}\n
\n \n \n {{'attachmentFixDesc' | i18n}}\n \n
\n
\n {{a.sizeName}}\n
\n \n
\n
\n

{{'newAttachment' | i18n}}

\n \n \n {{'maxFileSize' | i18n}}\n
\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n EventEmitter,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { EventService } from 'jslib/abstractions/event.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SearchService } from 'jslib/abstractions/search.service';\nimport { TotpService } from 'jslib/abstractions/totp.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { Organization } from 'jslib/models/domain/organization';\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { CiphersComponent as BaseCiphersComponent } from '../../vault/ciphers.component';\n\n@Component({\n selector: 'app-org-vault-ciphers',\n templateUrl: '../../vault/ciphers.component.html',\n})\nexport class CiphersComponent extends BaseCiphersComponent {\n @Output() onEventsClicked = new EventEmitter();\n\n organization: Organization;\n accessEvents = false;\n\n protected allCiphers: CipherView[] = [];\n\n constructor(searchService: SearchService, analytics: Angulartics2,\n toasterService: ToasterService, i18nService: I18nService,\n platformUtilsService: PlatformUtilsService, cipherService: CipherService,\n private apiService: ApiService, eventService: EventService, totpService: TotpService, userService: UserService) {\n super(searchService, analytics, toasterService, i18nService, platformUtilsService,\n cipherService, eventService, totpService, userService);\n }\n\n async load(filter: (cipher: CipherView) => boolean = null) {\n if (!this.organization.canManageAllCollections) {\n await super.load(filter, this.deleted);\n return;\n }\n this.accessEvents = this.organization.useEvents;\n this.allCiphers = await this.cipherService.getAllFromApiForOrganization(this.organization.id);\n this.applyFilter(filter);\n this.loaded = true;\n }\n\n async applyFilter(filter: (cipher: CipherView) => boolean = null) {\n if (this.organization.canManageAllCollections) {\n await super.applyFilter(filter);\n } else {\n const f = (c: CipherView) => c.organizationId === this.organization.id && (filter == null || filter(c));\n await super.applyFilter(f);\n }\n }\n\n async search(timeout: number = null) {\n if (!this.organization.canManageAllCollections) {\n return super.search(timeout);\n }\n this.searchPending = false;\n let filteredCiphers = this.allCiphers;\n\n if (this.searchText == null || this.searchText.trim().length < 2) {\n this.ciphers = filteredCiphers.filter(c => {\n if (c.isDeleted !== this.deleted) {\n return false;\n }\n return this.filter == null || this.filter(c);\n });\n } else {\n if (this.filter != null) {\n filteredCiphers = filteredCiphers.filter(this.filter);\n }\n this.ciphers = this.searchService.searchCiphersBasic(filteredCiphers, this.searchText, this.deleted);\n }\n await this.resetPaging();\n }\n\n events(c: CipherView) {\n this.onEventsClicked.emit(c);\n }\n\n protected deleteCipher(id: string) {\n if (!this.organization.canManageAllCollections) {\n return super.deleteCipher(id, this.deleted);\n }\n return this.deleted ? this.apiService.deleteCipherAdmin(id) : this.apiService.putDeleteCipherAdmin(id);\n }\n\n protected showFixOldAttachments(c: CipherView) {\n return this.organization.canManageAllCollections && c.hasOldAttachments;\n }\n}\n","import {\n Component,\n OnDestroy,\n} from '@angular/core';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { CollectionView } from 'jslib/models/view/collectionView';\n\nimport { CollectionsComponent as BaseCollectionsComponent } from 'jslib/angular/components/collections.component';\n\n@Component({\n selector: 'app-vault-collections',\n templateUrl: 'collections.component.html',\n})\nexport class CollectionsComponent extends BaseCollectionsComponent implements OnDestroy {\n constructor(collectionService: CollectionService, platformUtilsService: PlatformUtilsService,\n i18nService: I18nService, cipherService: CipherService) {\n super(collectionService, platformUtilsService, i18nService, cipherService);\n }\n\n ngOnDestroy() {\n this.selectAll(false);\n }\n\n check(c: CollectionView, select?: boolean) {\n (c as any).checked = select == null ? !(c as any).checked : select;\n }\n\n selectAll(select: boolean) {\n this.collections.forEach(c => this.check(c, select));\n }\n}\n","
\n
\n
\n
\n

\n {{'collections' | i18n}}\n {{cipher.name}}\n

\n \n
\n
\n

{{'collectionsDesc' | i18n}}

\n
\n

{{'collections' | i18n}}

\n
\n \n \n
\n
\n
\n {{'noCollectionsInList' | i18n}}\n
\n \n \n \n \n \n \n \n
\n \n \n {{c.name}}\n
\n
\n
\n \n \n
\n
\n
\n
\n","import { Component } from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CollectionData } from 'jslib/models/data/collectionData';\nimport { Collection } from 'jslib/models/domain/collection';\nimport { Organization } from 'jslib/models/domain/organization';\nimport { CollectionDetailsResponse } from 'jslib/models/response/collectionResponse';\nimport { CollectionView } from 'jslib/models/view/collectionView';\n\nimport { GroupingsComponent as BaseGroupingsComponent } from '../../vault/groupings.component';\n\n@Component({\n selector: 'app-org-vault-groupings',\n templateUrl: '../../vault/groupings.component.html',\n})\nexport class GroupingsComponent extends BaseGroupingsComponent {\n organization: Organization;\n\n constructor(collectionService: CollectionService, folderService: FolderService,\n storageService: StorageService, userService: UserService,\n private apiService: ApiService, private i18nService: I18nService) {\n super(collectionService, folderService, storageService, userService);\n }\n\n async loadCollections() {\n if (!this.organization.canManageAllCollections) {\n await super.loadCollections(this.organization.id);\n return;\n }\n\n const collections = await this.apiService.getCollections(this.organization.id);\n if (collections != null && collections.data != null && collections.data.length) {\n const collectionDomains = collections.data.map(r =>\n new Collection(new CollectionData(r as CollectionDetailsResponse)));\n this.collections = await this.collectionService.decryptMany(collectionDomains);\n } else {\n this.collections = [];\n }\n\n const unassignedCollection = new CollectionView();\n unassignedCollection.name = this.i18nService.t('unassigned');\n unassignedCollection.id = 'unassigned';\n unassignedCollection.organizationId = this.organization.id;\n unassignedCollection.readOnly = true;\n this.collections.push(unassignedCollection);\n this.nestedCollections = await this.collectionService.getAllNested(this.collections);\n }\n\n collapse(grouping: CollectionView) {\n super.collapse(grouping, 'org_');\n }\n\n isCollapsed(grouping: CollectionView) {\n return super.isCollapsed(grouping, 'org_');\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n Input,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { ToasterService } from 'angular2-toaster';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { Organization } from 'jslib/models/domain/organization';\n\nimport { ModalComponent } from '../modal.component';\n\nimport { BulkDeleteComponent } from './bulk-delete.component';\nimport { BulkMoveComponent } from './bulk-move.component';\nimport { BulkRestoreComponent } from './bulk-restore.component';\nimport { BulkShareComponent } from './bulk-share.component';\nimport { CiphersComponent } from './ciphers.component';\n\n@Component({\n selector: 'app-vault-bulk-actions',\n templateUrl: 'bulk-actions.component.html',\n})\nexport class BulkActionsComponent {\n @Input() ciphersComponent: CiphersComponent;\n @Input() modal: ModalComponent;\n @Input() deleted: boolean;\n @Input() organization: Organization;\n\n @ViewChild('bulkDeleteTemplate', { read: ViewContainerRef, static: true }) bulkDeleteModalRef: ViewContainerRef;\n @ViewChild('bulkRestoreTemplate', { read: ViewContainerRef, static: true }) bulkRestoreModalRef: ViewContainerRef;\n @ViewChild('bulkMoveTemplate', { read: ViewContainerRef, static: true }) bulkMoveModalRef: ViewContainerRef;\n @ViewChild('bulkShareTemplate', { read: ViewContainerRef, static: true }) bulkShareModalRef: ViewContainerRef;\n\n constructor(private toasterService: ToasterService,\n private i18nService: I18nService,\n private componentFactoryResolver: ComponentFactoryResolver) { }\n\n bulkDelete() {\n const selectedIds = this.ciphersComponent.getSelectedIds();\n if (selectedIds.length === 0) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('nothingSelected'));\n return;\n }\n\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.bulkDeleteModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(BulkDeleteComponent, this.bulkDeleteModalRef);\n\n childComponent.permanent = this.deleted;\n childComponent.cipherIds = selectedIds;\n childComponent.organization = this.organization;\n childComponent.onDeleted.subscribe(async () => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n bulkRestore() {\n const selectedIds = this.ciphersComponent.getSelectedIds();\n if (selectedIds.length === 0) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('nothingSelected'));\n return;\n }\n\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.bulkRestoreModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(BulkRestoreComponent, this.bulkRestoreModalRef);\n\n childComponent.cipherIds = selectedIds;\n childComponent.onRestored.subscribe(async () => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n bulkShare() {\n const selectedCiphers = this.ciphersComponent.getSelected();\n if (selectedCiphers.length === 0) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('nothingSelected'));\n return;\n }\n\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.bulkShareModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(BulkShareComponent, this.bulkShareModalRef);\n\n childComponent.ciphers = selectedCiphers;\n childComponent.onShared.subscribe(async () => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n bulkMove() {\n const selectedIds = this.ciphersComponent.getSelectedIds();\n if (selectedIds.length === 0) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('nothingSelected'));\n return;\n }\n\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.bulkMoveModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(BulkMoveComponent, this.bulkMoveModalRef);\n\n childComponent.cipherIds = selectedIds;\n childComponent.onMoved.subscribe(async () => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n selectAll(select: boolean) {\n this.ciphersComponent.selectAll(select);\n }\n}\n","
\n \n
\n \n \n \n \n
\n \n \n
\n
\n\n\n\n\n\n","import { CipherString } from './cipherString';\nimport Domain from './domainBase';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nimport { SendFileData } from '../data/sendFileData';\n\nimport { SendFileView } from '../view/sendFileView';\n\nexport class SendFile extends Domain {\n id: string;\n size: string;\n sizeName: string;\n fileName: CipherString;\n\n constructor(obj?: SendFileData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.size = obj.size;\n this.buildDomainModel(this, obj, {\n id: null,\n sizeName: null,\n fileName: null,\n }, alreadyEncrypted, ['id', 'sizeName']);\n }\n\n async decrypt(key: SymmetricCryptoKey): Promise {\n const view = await this.decryptObj(new SendFileView(this), {\n fileName: null,\n }, null, key);\n return view;\n }\n}\n","import { CipherString } from './cipherString';\nimport Domain from './domainBase';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nimport { SendTextData } from '../data/sendTextData';\n\nimport { SendTextView } from '../view/sendTextView';\n\nexport class SendText extends Domain {\n text: CipherString;\n hidden: boolean;\n\n constructor(obj?: SendTextData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.hidden = obj.hidden;\n this.buildDomainModel(this, obj, {\n text: null,\n }, alreadyEncrypted, []);\n }\n\n decrypt(key: SymmetricCryptoKey): Promise {\n return this.decryptObj(new SendTextView(this), {\n text: null,\n }, null, key);\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class ErrorResponse extends BaseResponse {\n message: string;\n validationErrors: { [key: string]: string[]; };\n statusCode: number;\n\n constructor(response: any, status: number, identityResponse?: boolean) {\n super(response);\n let errorModel = null;\n if (response != null) {\n const responseErrorModel = this.getResponseProperty('ErrorModel');\n if (responseErrorModel && identityResponse) {\n errorModel = responseErrorModel;\n } else {\n errorModel = response;\n }\n }\n\n if (errorModel) {\n this.message = this.getResponseProperty('Message', errorModel);\n this.validationErrors = this.getResponseProperty('ValidationErrors', errorModel);\n } else {\n if (status === 429) {\n this.message = 'Rate limit exceeded. Try again later.';\n }\n }\n this.statusCode = status;\n }\n\n getSingleMessage(): string {\n if (this.validationErrors == null) {\n return this.message;\n }\n for (const key in this.validationErrors) {\n if (!this.validationErrors.hasOwnProperty(key)) {\n continue;\n }\n if (this.validationErrors[key].length) {\n return this.validationErrors[key][0];\n }\n }\n return this.message;\n }\n\n getAllMessages(): string[] {\n const messages: string[] = [];\n if (this.validationErrors == null) {\n return messages;\n }\n for (const key in this.validationErrors) {\n if (!this.validationErrors.hasOwnProperty(key)) {\n continue;\n }\n this.validationErrors[key].forEach((item: string) => {\n let prefix = '';\n if (key.indexOf('[') > -1 && key.indexOf(']') > -1) {\n const lastSep = key.lastIndexOf('.');\n prefix = key.substr(0, lastSep > -1 ? lastSep : key.length) + ': ';\n }\n messages.push(prefix + item);\n });\n }\n return messages;\n }\n}\n","import { CipherRequest } from './cipherRequest';\n\nimport { Cipher } from '../domain/cipher';\n\nexport class CipherWithIdRequest extends CipherRequest {\n id: string;\n\n constructor(cipher: Cipher) {\n super(cipher);\n this.id = cipher.id;\n }\n}\n","import { Folder } from '../domain/folder';\n\nexport class FolderRequest {\n name: string;\n\n constructor(folder: Folder) {\n this.name = folder.name ? folder.name.encryptedString : null;\n }\n}\n","import {\n Directive,\n ElementRef,\n HostListener,\n} from '@angular/core';\n\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\n@Directive({\n selector: '[appSelectCopy]',\n})\nexport class SelectCopyDirective {\n constructor(private el: ElementRef, private platformUtilsService: PlatformUtilsService) { }\n\n @HostListener('copy') onCopy() {\n if (window == null) {\n return;\n }\n let copyText = '';\n const selection = window.getSelection();\n for (let i = 0; i < selection.rangeCount; i++) {\n const range = selection.getRangeAt(i);\n const text = range.toString();\n\n // The selection should only contain one line of text. In some cases however, the\n // selection contains newlines and space characters from the indentation of following\n // sibling nodes. To avoid copying passwords containing trailing newlines and spaces\n // that aren't part of the password, the selection has to be trimmed.\n let stringEndPos = text.length;\n const newLinePos = text.search(/(?:\\r\\n|\\r|\\n)/);\n if (newLinePos > -1) {\n const otherPart = text.substr(newLinePos).trim();\n if (otherPart === '') {\n stringEndPos = newLinePos;\n }\n }\n copyText += text.substring(0, stringEndPos);\n }\n this.platformUtilsService.copyToClipboard(copyText, { window: window });\n }\n}\n","import {\n Pipe,\n PipeTransform,\n} from '@angular/core';\n\n/**\n * A pipe that sanitizes HTML and highlights numbers and special characters (in different colors each).\n */\n@Pipe({ name: 'colorPassword' })\nexport class ColorPasswordPipe implements PipeTransform {\n transform(password: string) {\n let colorizedPassword = '';\n for (let i = 0; i < password.length; i++) {\n let character = password[i];\n let isSpecial = false;\n // Sanitize HTML first.\n switch (character) {\n case '&':\n character = '&';\n isSpecial = true;\n break;\n case '<':\n character = '<';\n isSpecial = true;\n break;\n case '>':\n character = '>';\n isSpecial = true;\n break;\n case ' ':\n character = ' ';\n isSpecial = true;\n break;\n default:\n break;\n }\n let type = 'letter';\n if (isSpecial || character.match(/[^\\w ]/)) {\n type = 'special';\n } else if (character.match(/\\d/)) {\n type = 'number';\n }\n colorizedPassword += '' + character + '';\n }\n return colorizedPassword;\n }\n}\n","import { FolderResponse } from '../response/folderResponse';\n\nexport class FolderData {\n id: string;\n userId: string;\n name: string;\n revisionDate: string;\n\n constructor(response: FolderResponse, userId: string) {\n this.userId = userId;\n this.name = response.name;\n this.id = response.id;\n this.revisionDate = response.revisionDate;\n }\n}\n","import { FolderData } from '../data/folderData';\n\nimport { FolderView } from '../view/folderView';\n\nimport { CipherString } from './cipherString';\nimport Domain from './domainBase';\n\nexport class Folder extends Domain {\n id: string;\n name: CipherString;\n revisionDate: Date;\n\n constructor(obj?: FolderData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.buildDomainModel(this, obj, {\n id: null,\n name: null,\n }, alreadyEncrypted, ['id']);\n\n this.revisionDate = obj.revisionDate != null ? new Date(obj.revisionDate) : null;\n }\n\n decrypt(): Promise {\n return this.decryptObj(new FolderView(this), {\n name: null,\n }, null);\n }\n}\n","import { AttachmentResponse } from './attachmentResponse';\nimport { BaseResponse } from './baseResponse';\nimport { PasswordHistoryResponse } from './passwordHistoryResponse';\n\nimport { CardApi } from '../api/cardApi';\nimport { FieldApi } from '../api/fieldApi';\nimport { IdentityApi } from '../api/identityApi';\nimport { LoginApi } from '../api/loginApi';\nimport { SecureNoteApi } from '../api/secureNoteApi';\n\nexport class CipherResponse extends BaseResponse {\n id: string;\n organizationId: string;\n folderId: string;\n type: number;\n name: string;\n notes: string;\n fields: FieldApi[];\n login: LoginApi;\n card: CardApi;\n identity: IdentityApi;\n secureNote: SecureNoteApi;\n favorite: boolean;\n edit: boolean;\n viewPassword: boolean;\n organizationUseTotp: boolean;\n revisionDate: string;\n attachments: AttachmentResponse[];\n passwordHistory: PasswordHistoryResponse[];\n collectionIds: string[];\n deletedDate: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.organizationId = this.getResponseProperty('OrganizationId');\n this.folderId = this.getResponseProperty('FolderId') || null;\n this.type = this.getResponseProperty('Type');\n this.name = this.getResponseProperty('Name');\n this.notes = this.getResponseProperty('Notes');\n this.favorite = this.getResponseProperty('Favorite') || false;\n this.edit = !!this.getResponseProperty('Edit');\n if (this.getResponseProperty('ViewPassword') == null) {\n this.viewPassword = true;\n } else {\n this.viewPassword = this.getResponseProperty('ViewPassword');\n }\n this.organizationUseTotp = this.getResponseProperty('OrganizationUseTotp');\n this.revisionDate = this.getResponseProperty('RevisionDate');\n this.collectionIds = this.getResponseProperty('CollectionIds');\n this.deletedDate = this.getResponseProperty('DeletedDate');\n\n const login = this.getResponseProperty('Login');\n if (login != null) {\n this.login = new LoginApi(login);\n }\n\n const card = this.getResponseProperty('Card');\n if (card != null) {\n this.card = new CardApi(card);\n }\n\n const identity = this.getResponseProperty('Identity');\n if (identity != null) {\n this.identity = new IdentityApi(identity);\n }\n\n const secureNote = this.getResponseProperty('SecureNote');\n if (secureNote != null) {\n this.secureNote = new SecureNoteApi(secureNote);\n }\n\n const fields = this.getResponseProperty('Fields');\n if (fields != null) {\n this.fields = fields.map((f: any) => new FieldApi(f));\n }\n\n const attachments = this.getResponseProperty('Attachments');\n if (attachments != null) {\n this.attachments = attachments.map((a: any) => new AttachmentResponse(a));\n }\n\n const passwordHistory = this.getResponseProperty('PasswordHistory');\n if (passwordHistory != null) {\n this.passwordHistory = passwordHistory.map((h: any) => new PasswordHistoryResponse(h));\n }\n }\n}\n","import { BaseResponse } from './baseResponse';\nimport { ProfileOrganizationResponse } from './profileOrganizationResponse';\n\nexport class ProfileResponse extends BaseResponse {\n id: string;\n name: string;\n email: string;\n emailVerified: boolean;\n masterPasswordHint: string;\n premium: boolean;\n culture: string;\n twoFactorEnabled: boolean;\n key: string;\n privateKey: string;\n securityStamp: string;\n organizations: ProfileOrganizationResponse[] = [];\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.name = this.getResponseProperty('Name');\n this.email = this.getResponseProperty('Email');\n this.emailVerified = this.getResponseProperty('EmailVerified');\n this.masterPasswordHint = this.getResponseProperty('MasterPasswordHint');\n this.premium = this.getResponseProperty('Premium');\n this.culture = this.getResponseProperty('Culture');\n this.twoFactorEnabled = this.getResponseProperty('TwoFactorEnabled');\n this.key = this.getResponseProperty('Key');\n this.privateKey = this.getResponseProperty('PrivateKey');\n this.securityStamp = this.getResponseProperty('SecurityStamp');\n\n const organizations = this.getResponseProperty('Organizations');\n if (organizations != null) {\n this.organizations = organizations.map((o: any) => new ProfileOrganizationResponse(o));\n }\n }\n}\n","import { BaseResponse } from '../response/baseResponse';\n\nexport class SendFileApi extends BaseResponse {\n id: string;\n fileName: string;\n key: string;\n size: string;\n sizeName: string;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n this.id = this.getResponseProperty('Id');\n this.fileName = this.getResponseProperty('FileName');\n this.key = this.getResponseProperty('Key');\n this.size = this.getResponseProperty('Size');\n this.sizeName = this.getResponseProperty('SizeName');\n }\n}\n","import { BaseResponse } from '../response/baseResponse';\n\nexport class SendTextApi extends BaseResponse {\n text: string;\n hidden: boolean;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n this.text = this.getResponseProperty('Text');\n this.hidden = this.getResponseProperty('Hidden') || false;\n }\n}\n","import { EnvironmentService } from './environment.service';\n\nexport abstract class NotificationsService {\n init: (environmentService: EnvironmentService) => Promise;\n updateConnection: (sync?: boolean) => Promise;\n reconnectFromActivity: () => Promise;\n disconnectFromInactivity: () => Promise;\n}\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 525;","import {\n Component,\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\n@Component({\n selector: 'app-frontend-layout',\n templateUrl: 'frontend-layout.component.html',\n})\nexport class FrontendLayoutComponent implements OnInit, OnDestroy {\n version: string;\n year: string = '2015';\n\n constructor(private platformUtilsService: PlatformUtilsService) { }\n\n ngOnInit() {\n this.year = new Date().getFullYear().toString();\n this.version = this.platformUtilsService.getApplicationVersion();\n document.body.classList.add('layout_frontend');\n }\n\n ngOnDestroy() {\n document.body.classList.remove('layout_frontend');\n }\n}\n","\n
\n © {{year}}, Bitwarden Inc.\n
{{'versionNumber' | i18n : version}}\n
\n","import {\n Component,\n NgZone,\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport { ActivatedRoute } from '@angular/router';\n\nimport { BroadcasterService } from 'jslib/angular/services/broadcaster.service';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { EnvironmentService } from 'jslib/abstractions/environment.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { Organization } from 'jslib/models/domain/organization';\n\nconst BroadcasterSubscriptionId = 'OrganizationLayoutComponent';\n\n@Component({\n selector: 'app-organization-layout',\n templateUrl: 'organization-layout.component.html',\n})\nexport class OrganizationLayoutComponent implements OnInit, OnDestroy {\n organization: Organization;\n businessTokenPromise: Promise;\n private organizationId: string;\n private businessUrl: string;\n\n constructor(private route: ActivatedRoute, private userService: UserService,\n private broadcasterService: BroadcasterService, private ngZone: NgZone,\n private apiService: ApiService, private platformUtilsService: PlatformUtilsService,\n private environmentService: EnvironmentService) { }\n\n ngOnInit() {\n this.businessUrl = 'https://portal.bitwarden.com';\n if (this.environmentService.enterpriseUrl != null) {\n this.businessUrl = this.environmentService.enterpriseUrl;\n } else if (this.environmentService.baseUrl != null) {\n this.businessUrl = this.environmentService.baseUrl + '/portal';\n }\n\n document.body.classList.remove('layout_frontend');\n this.route.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n await this.load();\n });\n this.broadcasterService.subscribe(BroadcasterSubscriptionId, (message: any) => {\n this.ngZone.run(async () => {\n switch (message.command) {\n case 'updatedOrgLicense':\n await this.load();\n break;\n }\n });\n });\n }\n\n ngOnDestroy() {\n this.broadcasterService.unsubscribe(BroadcasterSubscriptionId);\n }\n\n async load() {\n this.organization = await this.userService.getOrganization(this.organizationId);\n }\n\n async goToBusinessPortal() {\n if (this.businessTokenPromise != null) {\n return;\n }\n try {\n this.businessTokenPromise = this.apiService.getEnterprisePortalSignInToken();\n const token = await this.businessTokenPromise;\n if (token != null) {\n const userId = await this.userService.getUserId();\n this.platformUtilsService.launchUri(this.businessUrl + '/login?userId=' + userId +\n '&token=' + (window as any).encodeURIComponent(token) + '&organizationId=' + this.organization.id);\n }\n } catch { }\n this.businessTokenPromise = null;\n }\n\n get showMenuBar() {\n return this.showManageTab || this.showToolsTab || this.organization.isOwner;\n }\n\n get showManageTab(): boolean {\n return this.organization.canManageUsers ||\n this.organization.canManageAssignedCollections ||\n this.organization.canManageAllCollections ||\n this.organization.canManageGroups ||\n this.organization.canManagePolicies ||\n this.organization.canAccessEventLogs;\n }\n\n get showToolsTab(): boolean {\n return this.organization.canAccessImportExport || this.organization.canAccessReports;\n }\n\n get showBusinessPortalButton(): boolean {\n return this.organization.useBusinessPortal && this.organization.canAccessBusinessPortal;\n }\n\n get toolsRoute(): string {\n return this.organization.canAccessImportExport ?\n 'tools/import' :\n 'tools/exposed-passwords-report';\n }\n\n get manageRoute(): string {\n let route: string;\n switch (true) {\n case this.organization.canManageUsers:\n route = 'manage/people';\n break;\n case this.organization.canManageAssignedCollections || this.organization.canManageAllCollections:\n route = 'manage/collections';\n break;\n case this.organization.canManageGroups:\n route = 'manage/groups';\n break;\n case this.organization.canManagePolicies:\n route = 'manage/policies';\n break;\n case this.organization.canAccessEventLogs:\n route = 'manage/events';\n break;\n }\n return route;\n }\n}\n","\n
\n
\n
\n
\n \n
\n {{organization.name}}\n {{'organization' | i18n}}\n
\n
\n
\n \n {{'organizationIsDisabled' | i18n}}\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n\n\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\n@Component({\n selector: 'app-user-layout',\n templateUrl: 'user-layout.component.html',\n})\nexport class UserLayoutComponent implements OnInit {\n ngOnInit() {\n document.body.classList.remove('layout_frontend');\n }\n}\n","\n\n\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport {\n Toast,\n ToasterService,\n} from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { UserService } from 'jslib/abstractions/user.service';\nimport { EmergencyAccessAcceptRequest } from 'jslib/models/request/emergencyAccessAcceptRequest';\n\n@Component({\n selector: 'app-accept-emergency',\n templateUrl: 'accept-emergency.component.html',\n})\nexport class AcceptEmergencyComponent implements OnInit {\n loading = true;\n authed = false;\n name: string;\n email: string;\n actionPromise: Promise;\n\n constructor(private router: Router, private toasterService: ToasterService,\n private i18nService: I18nService, private route: ActivatedRoute,\n private apiService: ApiService, private userService: UserService,\n private stateService: StateService) { }\n\n ngOnInit() {\n let fired = false;\n this.route.queryParams.subscribe(async qParams => {\n if (fired) {\n return;\n }\n fired = true;\n await this.stateService.remove('emergencyInvitation');\n let error = qParams.id == null || qParams.name == null || qParams.email == null || qParams.token == null;\n let errorMessage: string = null;\n if (!error) {\n this.authed = await this.userService.isAuthenticated();\n if (this.authed) {\n const request = new EmergencyAccessAcceptRequest();\n request.token = qParams.token;\n try {\n this.actionPromise = this.apiService.postEmergencyAccessAccept(qParams.id, request);\n await this.actionPromise;\n const toast: Toast = {\n type: 'success',\n title: this.i18nService.t('inviteAccepted'),\n body: this.i18nService.t('emergencyInviteAcceptedDesc'),\n timeout: 10000,\n };\n this.toasterService.popAsync(toast);\n this.router.navigate(['/vault']);\n } catch (e) {\n error = true;\n errorMessage = e.message;\n }\n } else {\n await this.stateService.save('emergencyInvitation', qParams);\n this.email = qParams.email;\n this.name = qParams.name;\n if (this.name != null) {\n // Fix URL encoding of space issue with Angular\n this.name = this.name.replace(/\\+/g, ' ');\n }\n }\n }\n\n if (error) {\n const toast: Toast = {\n type: 'error',\n title: null,\n body: errorMessage != null ? this.i18nService.t('emergencyInviteAcceptFailedShort', errorMessage) :\n this.i18nService.t('emergencyInviteAcceptFailed'),\n timeout: 10000,\n };\n this.toasterService.popAsync(toast);\n this.router.navigate(['/']);\n }\n\n this.loading = false;\n });\n }\n}\n","
\n
\n \"Bitwarden\"\n

\n \n {{'loading' | i18n}}\n

\n
\n
\n
\n
\n
\n

{{'emergencyAccess' | i18n}}

\n
\n
\n

\n {{name}}\n

\n

{{'acceptEmergencyAccess' | i18n}}

\n
\n \n
\n
\n
\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport {\n Toast,\n ToasterService,\n} from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { OrganizationUserAcceptRequest } from 'jslib/models/request/organizationUserAcceptRequest';\n\n@Component({\n selector: 'app-accept-organization',\n templateUrl: 'accept-organization.component.html',\n})\nexport class AcceptOrganizationComponent implements OnInit {\n loading = true;\n authed = false;\n orgName: string;\n email: string;\n actionPromise: Promise;\n\n constructor(private router: Router, private toasterService: ToasterService,\n private i18nService: I18nService, private route: ActivatedRoute,\n private apiService: ApiService, private userService: UserService,\n private stateService: StateService) { }\n\n ngOnInit() {\n let fired = false;\n this.route.queryParams.subscribe(async qParams => {\n if (fired) {\n return;\n }\n fired = true;\n await this.stateService.remove('orgInvitation');\n let error = qParams.organizationId == null || qParams.organizationUserId == null || qParams.token == null;\n let errorMessage: string = null;\n if (!error) {\n this.authed = await this.userService.isAuthenticated();\n if (this.authed) {\n const request = new OrganizationUserAcceptRequest();\n request.token = qParams.token;\n try {\n this.actionPromise = this.apiService.postOrganizationUserAccept(qParams.organizationId,\n qParams.organizationUserId, request);\n await this.actionPromise;\n const toast: Toast = {\n type: 'success',\n title: this.i18nService.t('inviteAccepted'),\n body: this.i18nService.t('inviteAcceptedDesc'),\n timeout: 10000,\n };\n this.toasterService.popAsync(toast);\n this.router.navigate(['/vault']);\n } catch (e) {\n error = true;\n errorMessage = e.message;\n }\n } else {\n await this.stateService.save('orgInvitation', qParams);\n this.email = qParams.email;\n this.orgName = qParams.organizationName;\n if (this.orgName != null) {\n // Fix URL encoding of space issue with Angular\n this.orgName = this.orgName.replace(/\\+/g, ' ');\n }\n }\n }\n\n if (error) {\n const toast: Toast = {\n type: 'error',\n title: null,\n body: errorMessage != null ? this.i18nService.t('inviteAcceptFailedShort', errorMessage) :\n this.i18nService.t('inviteAcceptFailed'),\n timeout: 10000,\n };\n this.toasterService.popAsync(toast);\n this.router.navigate(['/']);\n }\n\n this.loading = false;\n });\n }\n}\n","
\n
\n \"Bitwarden\"\n

\n \n {{'loading' | i18n}}\n

\n
\n
\n
\n
\n
\n

{{'joinOrganization' | i18n}}

\n
\n
\n

\n {{orgName}}\n {{email}}\n

\n

{{'joinOrganizationDesc' | i18n}}

\n
\n \n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { HintComponent as BaseHintComponent } from 'jslib/angular/components/hint.component';\n\n@Component({\n selector: 'app-hint',\n templateUrl: 'hint.component.html',\n})\nexport class HintComponent extends BaseHintComponent {\n constructor(router: Router, i18nService: I18nService,\n apiService: ApiService, platformUtilsService: PlatformUtilsService) {\n super(router, i18nService, apiService, platformUtilsService);\n }\n}\n","
\n
\n
\n

{{'passwordHint' | i18n}}

\n
\n
\n
\n \n \n {{'enterEmailToGetHint' | i18n}}\n
\n
\n
\n \n \n {{'cancel' | i18n}}\n \n
\n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { EnvironmentService } from 'jslib/abstractions/environment.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\nimport { UserService } from 'jslib/abstractions/user.service';\nimport { VaultTimeoutService } from 'jslib/abstractions/vaultTimeout.service';\n\nimport { RouterService } from '../services/router.service';\n\nimport { LockComponent as BaseLockComponent } from 'jslib/angular/components/lock.component';\n\n@Component({\n selector: 'app-lock',\n templateUrl: 'lock.component.html',\n})\nexport class LockComponent extends BaseLockComponent {\n constructor(router: Router, i18nService: I18nService,\n platformUtilsService: PlatformUtilsService, messagingService: MessagingService,\n userService: UserService, cryptoService: CryptoService,\n storageService: StorageService, vaultTimeoutService: VaultTimeoutService,\n environmentService: EnvironmentService, private routerService: RouterService,\n stateService: StateService, apiService: ApiService) {\n super(router, i18nService, platformUtilsService, messagingService, userService, cryptoService,\n storageService, vaultTimeoutService, environmentService, stateService, apiService);\n }\n\n async ngOnInit() {\n await super.ngOnInit();\n const authed = await this.userService.isAuthenticated();\n if (!authed) {\n this.router.navigate(['/']);\n } else if (await this.cryptoService.hasKey()) {\n this.router.navigate(['vault']);\n }\n\n this.onSuccessfulSubmit = () => {\n const previousUrl = this.routerService.getPreviousUrl();\n if (previousUrl !== '/' && previousUrl.indexOf('lock') === -1) {\n this.successRoute = previousUrl;\n }\n this.router.navigate([this.successRoute]);\n };\n }\n}\n","
\n
\n
\n

\n \n

\n

{{'yourVaultIsLocked' | i18n}}

\n
\n
\n
\n \n
\n \n \n
\n \n {{'loggedInAsEmailOn' | i18n : email : webVaultHostname}}\n \n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { AuthService } from 'jslib/abstractions/auth.service';\nimport { CryptoFunctionService } from 'jslib/abstractions/cryptoFunction.service';\nimport { EnvironmentService } from 'jslib/abstractions/environment.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\n\nimport { LoginComponent as BaseLoginComponent } from 'jslib/angular/components/login.component';\n\n@Component({\n selector: 'app-login',\n templateUrl: 'login.component.html',\n})\nexport class LoginComponent extends BaseLoginComponent {\n constructor(authService: AuthService, router: Router,\n i18nService: I18nService, private route: ActivatedRoute,\n storageService: StorageService, stateService: StateService,\n platformUtilsService: PlatformUtilsService, environmentService: EnvironmentService,\n passwordGenerationService: PasswordGenerationService, cryptoFunctionService: CryptoFunctionService) {\n super(authService, router,\n platformUtilsService, i18nService,\n stateService, environmentService,\n passwordGenerationService, cryptoFunctionService,\n storageService);\n this.onSuccessfulLoginNavigate = this.goAfterLogIn;\n }\n\n async ngOnInit() {\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n if (qParams.email != null && qParams.email.indexOf('@') > -1) {\n this.email = qParams.email;\n }\n if (qParams.premium != null) {\n this.stateService.save('loginRedirect', { route: '/settings/premium' });\n } else if (qParams.org != null) {\n this.stateService.save('loginRedirect',\n { route: '/settings/create-organization', qParams: { plan: qParams.org } });\n }\n await super.ngOnInit();\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n }\n\n async goAfterLogIn() {\n const orgInvite = await this.stateService.get('orgInvitation');\n const emergencyInvite = await this.stateService.get('emergencyInvitation');\n if (orgInvite != null) {\n this.router.navigate(['accept-organization'], { queryParams: orgInvite });\n } else if (emergencyInvite != null) {\n this.router.navigate(['accept-emergency'], { queryParams: emergencyInvite });\n } else {\n const loginRedirect = await this.stateService.get('loginRedirect');\n if (loginRedirect != null) {\n this.router.navigate([loginRedirect.route], { queryParams: loginRedirect.qParams });\n await this.stateService.remove('loginRedirect');\n } else {\n this.router.navigate([this.successRoute]);\n }\n }\n }\n}\n","
\n
\n
\n \n

{{'loginOrCreateNewAccount' | i18n}}

\n
\n
\n
\n \n \n
\n
\n \n
\n \n \n
\n \n {{'getMasterPasswordHint' | i18n}}\n \n
\n
\n \n \n
\n
\n
\n \n \n {{'createAccount' | i18n}}\n \n
\n \n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { DeleteRecoverRequest } from 'jslib/models/request/deleteRecoverRequest';\n\n@Component({\n selector: 'app-recover-delete',\n templateUrl: 'recover-delete.component.html',\n})\nexport class RecoverDeleteComponent {\n email: string;\n formPromise: Promise;\n\n constructor(private router: Router, private apiService: ApiService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private i18nService: I18nService) {\n }\n\n async submit() {\n try {\n const request = new DeleteRecoverRequest();\n request.email = this.email.trim().toLowerCase();\n this.formPromise = this.apiService.postAccountRecoverDelete(request);\n await this.formPromise;\n this.analytics.eventTrack.next({ action: 'Started Delete Recovery' });\n this.toasterService.popAsync('success', null, this.i18nService.t('deleteRecoverEmailSent'));\n this.router.navigate(['/']);\n } catch { }\n }\n}\n","
\n
\n
\n

{{'deleteAccount' | i18n}}

\n
\n
\n

{{'deleteRecoverDesc' | i18n}}

\n
\n \n \n
\n
\n
\n \n \n {{'cancel' | i18n}}\n \n
\n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { AuthService } from 'jslib/abstractions/auth.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { TwoFactorRecoveryRequest } from 'jslib/models/request/twoFactorRecoveryRequest';\n\n@Component({\n selector: 'app-recover-two-factor',\n templateUrl: 'recover-two-factor.component.html',\n})\nexport class RecoverTwoFactorComponent {\n email: string;\n masterPassword: string;\n recoveryCode: string;\n formPromise: Promise;\n\n constructor(private router: Router, private apiService: ApiService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private i18nService: I18nService, private cryptoService: CryptoService,\n private authService: AuthService) { }\n\n async submit() {\n try {\n const request = new TwoFactorRecoveryRequest();\n request.recoveryCode = this.recoveryCode.replace(/\\s/g, '').toLowerCase();\n request.email = this.email.trim().toLowerCase();\n const key = await this.authService.makePreloginKey(this.masterPassword, request.email);\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, key);\n this.formPromise = this.apiService.postTwoFactorRecover(request);\n await this.formPromise;\n this.analytics.eventTrack.next({ action: 'Recovered 2FA' });\n this.toasterService.popAsync('success', null, this.i18nService.t('twoStepRecoverDisabled'));\n this.router.navigate(['/']);\n } catch { }\n }\n}\n","
\n
\n
\n

{{'recoverAccountTwoStep' | i18n}}

\n
\n
\n

{{'recoverAccountTwoStepDesc' | i18n}}\n {{'learnMore' | i18n}}\n

\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n {{'cancel' | i18n}}\n \n
\n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { AuthService } from 'jslib/abstractions/auth.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { StateService } from 'jslib/abstractions/state.service';\n\nimport { RegisterComponent as BaseRegisterComponent } from 'jslib/angular/components/register.component';\n\nimport { MasterPasswordPolicyOptions } from 'jslib/models/domain/masterPasswordPolicyOptions';\nimport { Policy } from 'jslib/models/domain/policy';\n\nimport { PolicyData } from 'jslib/models/data/policyData';\nimport { ReferenceEventRequest } from 'jslib/models/request/referenceEventRequest';\n\n@Component({\n selector: 'app-register',\n templateUrl: 'register.component.html',\n})\nexport class RegisterComponent extends BaseRegisterComponent {\n showCreateOrgMessage = false;\n layout = '';\n enforcedPolicyOptions: MasterPasswordPolicyOptions;\n\n private policies: Policy[];\n\n constructor(authService: AuthService, router: Router,\n i18nService: I18nService, cryptoService: CryptoService,\n apiService: ApiService, private route: ActivatedRoute,\n stateService: StateService, platformUtilsService: PlatformUtilsService,\n passwordGenerationService: PasswordGenerationService, private policyService: PolicyService) {\n super(authService, router, i18nService, cryptoService, apiService, stateService, platformUtilsService,\n passwordGenerationService);\n }\n\n getPasswordScoreAlertDisplay() {\n if (this.enforcedPolicyOptions == null) {\n return '';\n }\n\n let str: string;\n switch (this.enforcedPolicyOptions.minComplexity) {\n case 4:\n str = this.i18nService.t('strong');\n break;\n case 3:\n str = this.i18nService.t('good');\n break;\n default:\n str = this.i18nService.t('weak');\n break;\n }\n return str + ' (' + this.enforcedPolicyOptions.minComplexity + ')';\n }\n\n async ngOnInit() {\n const queryParamsSub = this.route.queryParams.subscribe(qParams => {\n this.referenceData = new ReferenceEventRequest();\n if (qParams.email != null && qParams.email.indexOf('@') > -1) {\n this.email = qParams.email;\n }\n if (qParams.premium != null) {\n this.stateService.save('loginRedirect', { route: '/settings/premium' });\n } else if (qParams.org != null) {\n this.showCreateOrgMessage = true;\n this.referenceData.flow = qParams.org;\n this.stateService.save('loginRedirect',\n { route: '/settings/create-organization', qParams: { plan: qParams.org } });\n }\n if (qParams.layout != null) {\n this.layout = this.referenceData.layout = qParams.layout;\n }\n if (qParams.reference != null) {\n this.referenceData.id = qParams.reference;\n } else {\n this.referenceData.id = ('; ' + document.cookie).split('; reference=').pop().split(';').shift();\n }\n if (this.referenceData.id === '') {\n this.referenceData.id = null;\n }\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n const invite = await this.stateService.get('orgInvitation');\n if (invite != null) {\n try {\n const policies = await this.apiService.getPoliciesByToken(invite.organizationId, invite.token,\n invite.email, invite.organizationUserId);\n if (policies.data != null) {\n const policiesData = policies.data.map(p => new PolicyData(p));\n this.policies = policiesData.map(p => new Policy(p));\n }\n } catch { }\n }\n\n if (this.policies != null) {\n this.enforcedPolicyOptions = await this.policyService.getMasterPasswordPolicyOptions(this.policies);\n }\n }\n\n async submit() {\n if (this.enforcedPolicyOptions != null &&\n !this.policyService.evaluateMasterPassword(this.masterPasswordScore, this.masterPassword,\n this.enforcedPolicyOptions)) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPasswordPolicyRequirementsNotMet'));\n return;\n }\n\n await super.submit();\n }\n}\n","
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

Companies globally trust Bitwarden for password management.

\n

Start your 7-day free trial!

\n

Quickly deploy your organization

\n

Use Bitwarden across all platforms

\n

Collaborate and share securely

\n
\n
\n \n \"Wired\"\n \n
\n
\n \"Bitwarden has become a popular choice among open-source software advocates. After using\n it for a few months, I can see why.\" - February 2020\n
\n
\n
\n
\n

Enterprise 3 layout

\n
\n
\n

Enterprise 4 layout

\n
\n
\n
\n
\n
\n
\n

{{'createAccount' | i18n}}

\n
\n
\n \n {{'createOrganizationCreatePersonalAccount' | i18n}}\n \n
\n \n \n {{'emailAddressDesc' | i18n}}\n
\n
\n \n \n {{'yourNameDesc' | i18n}}\n
\n
\n \n {{'masterPasswordPolicyInEffect' | i18n}}\n
    \n
  • 0\">\n {{'policyInEffectMinComplexity' | i18n : getPasswordScoreAlertDisplay()}}\n
  • \n
  • 0\">\n {{'policyInEffectMinLength' | i18n : enforcedPolicyOptions?.minLength.toString()}}\n
  • \n
  • \n {{'policyInEffectUppercase' | i18n}}
  • \n
  • \n {{'policyInEffectLowercase' | i18n}}
  • \n
  • \n {{'policyInEffectNumbers' | i18n}}
  • \n
  • \n {{'policyInEffectSpecial' | i18n : '!@#$%^&*'}}
  • \n
\n
\n \n
\n
\n \n \n \n
\n
\n \n
\n
\n
\n {{'masterPassDesc' | i18n}}\n
\n
\n \n
\n \n \n
\n
\n
\n \n \n {{'masterPassHintDesc' | i18n}}\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n {{'cancel' | i18n}}\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport {\n SetPasswordComponent as BaseSetPasswordComponent,\n} from 'jslib/angular/components/set-password.component';\n\n@Component({\n selector: 'app-set-password',\n templateUrl: 'set-password.component.html',\n})\nexport class SetPasswordComponent extends BaseSetPasswordComponent {\n constructor(apiService: ApiService, i18nService: I18nService,\n cryptoService: CryptoService, messagingService: MessagingService,\n userService: UserService, passwordGenerationService: PasswordGenerationService,\n platformUtilsService: PlatformUtilsService, policyService: PolicyService, router: Router,\n syncService: SyncService, route: ActivatedRoute) {\n super(i18nService, cryptoService, messagingService, userService, passwordGenerationService,\n platformUtilsService, policyService, router, apiService, syncService, route);\n }\n}\n","
\n
\n
\n

{{'setMasterPassword' | i18n}}

\n
\n
\n \n {{'loading' | i18n}}\n
\n
\n {{'ssoCompleteRegistration' | i18n}}\n
\n \n {{'masterPasswordPolicyInEffect' | i18n}}\n
    \n
  • 0\">\n {{'policyInEffectMinComplexity' | i18n : getPasswordScoreAlertDisplay()}}\n
  • \n
  • 0\">\n {{'policyInEffectMinLength' | i18n : enforcedPolicyOptions?.minLength.toString()}}\n
  • \n
  • \n {{'policyInEffectUppercase' | i18n}}
  • \n
  • \n {{'policyInEffectLowercase' | i18n}}
  • \n
  • \n {{'policyInEffectNumbers' | i18n}}
  • \n
  • \n {{'policyInEffectSpecial' | i18n : '!@#$%^&*'}}
  • \n
\n
\n \n
\n
\n \n \n \n
\n
\n \n
\n
\n
\n {{'masterPassDesc' | i18n}}\n
\n
\n \n
\n \n \n
\n
\n
\n \n \n {{'masterPassHintDesc' | i18n}}\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { AuthService } from 'jslib/abstractions/auth.service';\nimport { CryptoFunctionService } from 'jslib/abstractions/cryptoFunction.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\n\nimport { SsoComponent as BaseSsoComponent } from 'jslib/angular/components/sso.component';\n\nconst IdentifierStorageKey = 'ssoOrgIdentifier';\n\n@Component({\n selector: 'app-sso',\n templateUrl: 'sso.component.html',\n})\nexport class SsoComponent extends BaseSsoComponent {\n constructor(authService: AuthService, router: Router,\n i18nService: I18nService, route: ActivatedRoute,\n storageService: StorageService, stateService: StateService,\n platformUtilsService: PlatformUtilsService, apiService: ApiService,\n cryptoFunctionService: CryptoFunctionService,\n passwordGenerationService: PasswordGenerationService) {\n super(authService, router, i18nService, route, storageService, stateService, platformUtilsService,\n apiService, cryptoFunctionService, passwordGenerationService);\n this.redirectUri = window.location.origin + '/sso-connector.html';\n this.clientId = 'web';\n }\n\n async ngOnInit() {\n super.ngOnInit();\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n if (qParams.identifier != null) {\n this.identifier = qParams.identifier;\n } else {\n const storedIdentifier = await this.storageService.get(IdentifierStorageKey);\n if (storedIdentifier != null) {\n this.identifier = storedIdentifier;\n }\n }\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n }\n\n async submit() {\n await this.storageService.save(IdentifierStorageKey, this.identifier);\n if (this.clientId === 'browser') {\n document.cookie = `ssoHandOffMessage=${this.i18nService.t('ssoHandOff')};SameSite=strict`;\n }\n super.submit();\n }\n}\n","
\n
\n
\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n

{{'ssoLogInWithOrgIdentifier' | i18n}}

\n
\n \n \n
\n
\n
\n \n \n {{'cancel' | i18n}}\n \n
\n
\n
\n
\n
\n
\n","import {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ApiService } from '../../abstractions/api.service';\nimport { AuthService } from '../../abstractions/auth.service';\nimport { CryptoFunctionService } from '../../abstractions/cryptoFunction.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PasswordGenerationService } from '../../abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { StateService } from '../../abstractions/state.service';\nimport { StorageService } from '../../abstractions/storage.service';\n\nimport { ConstantsService } from '../../services/constants.service';\n\nimport { Utils } from '../../misc/utils';\n\nimport { AuthResult } from '../../models/domain/authResult';\n\nexport class SsoComponent {\n identifier: string;\n loggingIn = false;\n\n formPromise: Promise;\n initiateSsoFormPromise: Promise;\n onSuccessfulLogin: () => Promise;\n onSuccessfulLoginNavigate: () => Promise;\n onSuccessfulLoginTwoFactorNavigate: () => Promise;\n onSuccessfulLoginChangePasswordNavigate: () => Promise;\n\n protected twoFactorRoute = '2fa';\n protected successRoute = 'lock';\n protected changePasswordRoute = 'set-password';\n protected clientId: string;\n protected redirectUri: string;\n protected state: string;\n protected codeChallenge: string;\n\n constructor(protected authService: AuthService, protected router: Router,\n protected i18nService: I18nService, protected route: ActivatedRoute,\n protected storageService: StorageService, protected stateService: StateService,\n protected platformUtilsService: PlatformUtilsService, protected apiService: ApiService,\n protected cryptoFunctionService: CryptoFunctionService,\n protected passwordGenerationService: PasswordGenerationService) { }\n\n async ngOnInit() {\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n if (qParams.code != null && qParams.state != null) {\n const codeVerifier = await this.storageService.get(ConstantsService.ssoCodeVerifierKey);\n const state = await this.storageService.get(ConstantsService.ssoStateKey);\n await this.storageService.remove(ConstantsService.ssoCodeVerifierKey);\n await this.storageService.remove(ConstantsService.ssoStateKey);\n if (qParams.code != null && codeVerifier != null && state != null && this.checkState(state, qParams.state)) {\n await this.logIn(qParams.code, codeVerifier, this.getOrgIdentiferFromState(qParams.state));\n }\n } else if (qParams.clientId != null && qParams.redirectUri != null && qParams.state != null &&\n qParams.codeChallenge != null) {\n this.redirectUri = qParams.redirectUri;\n this.state = qParams.state;\n this.codeChallenge = qParams.codeChallenge;\n this.clientId = qParams.clientId;\n }\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n }\n\n async submit(returnUri?: string, includeUserIdentifier?: boolean) {\n this.initiateSsoFormPromise = this.preValidate();\n if (await this.initiateSsoFormPromise) {\n const authorizeUrl = await this.buildAuthorizeUrl(returnUri, includeUserIdentifier);\n this.platformUtilsService.launchUri(authorizeUrl, { sameWindow: true });\n }\n }\n\n async preValidate(): Promise {\n if (this.identifier == null || this.identifier === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('ssoValidationFailed'),\n this.i18nService.t('ssoIdentifierRequired'));\n return false;\n }\n return await this.apiService.preValidateSso(this.identifier);\n }\n\n protected async buildAuthorizeUrl(returnUri?: string, includeUserIdentifier?: boolean): Promise {\n let codeChallenge = this.codeChallenge;\n let state = this.state;\n\n const passwordOptions: any = {\n type: 'password',\n length: 64,\n uppercase: true,\n lowercase: true,\n numbers: true,\n special: false,\n };\n\n if (codeChallenge == null) {\n const codeVerifier = await this.passwordGenerationService.generatePassword(passwordOptions);\n const codeVerifierHash = await this.cryptoFunctionService.hash(codeVerifier, 'sha256');\n codeChallenge = Utils.fromBufferToUrlB64(codeVerifierHash);\n await this.storageService.save(ConstantsService.ssoCodeVerifierKey, codeVerifier);\n }\n\n if (state == null) {\n state = await this.passwordGenerationService.generatePassword(passwordOptions);\n if (returnUri) {\n state += `_returnUri='${returnUri}'`;\n }\n }\n\n // Add Organization Identifier to state\n state += `_identifier=${this.identifier}`;\n\n // Save state (regardless of new or existing)\n await this.storageService.save(ConstantsService.ssoStateKey, state);\n\n let authorizeUrl = this.apiService.identityBaseUrl + '/connect/authorize?' +\n 'client_id=' + this.clientId + '&redirect_uri=' + encodeURIComponent(this.redirectUri) + '&' +\n 'response_type=code&scope=api offline_access&' +\n 'state=' + state + '&code_challenge=' + codeChallenge + '&' +\n 'code_challenge_method=S256&response_mode=query&' +\n 'domain_hint=' + encodeURIComponent(this.identifier);\n\n if (includeUserIdentifier) {\n const userIdentifier = await this.apiService.getSsoUserIdentifier();\n authorizeUrl += `&user_identifier=${encodeURIComponent(userIdentifier)}`;\n }\n\n return authorizeUrl;\n }\n\n private async logIn(code: string, codeVerifier: string, orgIdFromState: string) {\n this.loggingIn = true;\n try {\n this.formPromise = this.authService.logInSso(code, codeVerifier, this.redirectUri);\n const response = await this.formPromise;\n if (response.twoFactor) {\n this.platformUtilsService.eventTrack('SSO Logged In To Two-step');\n if (this.onSuccessfulLoginTwoFactorNavigate != null) {\n this.onSuccessfulLoginTwoFactorNavigate();\n } else {\n this.router.navigate([this.twoFactorRoute], {\n queryParams: {\n identifier: orgIdFromState,\n sso: 'true',\n },\n });\n }\n } else if (response.resetMasterPassword) {\n this.platformUtilsService.eventTrack('SSO - routing to complete registration');\n if (this.onSuccessfulLoginChangePasswordNavigate != null) {\n this.onSuccessfulLoginChangePasswordNavigate();\n } else {\n this.router.navigate([this.changePasswordRoute], {\n queryParams: {\n identifier: orgIdFromState,\n },\n });\n }\n } else {\n const disableFavicon = await this.storageService.get(ConstantsService.disableFaviconKey);\n await this.stateService.save(ConstantsService.disableFaviconKey, !!disableFavicon);\n if (this.onSuccessfulLogin != null) {\n this.onSuccessfulLogin();\n }\n this.platformUtilsService.eventTrack('SSO Logged In');\n if (this.onSuccessfulLoginNavigate != null) {\n this.onSuccessfulLoginNavigate();\n } else {\n this.router.navigate([this.successRoute]);\n }\n }\n } catch { }\n this.loggingIn = false;\n }\n\n private getOrgIdentiferFromState(state: string): string {\n if (state === null || state === undefined) {\n return null;\n }\n\n const stateSplit = state.split('_identifier=');\n return stateSplit.length > 1 ? stateSplit[1] : null;\n }\n\n private checkState(state: string, checkState: string): boolean {\n if (state === null || state === undefined) {\n return false;\n }\n if (checkState === null || checkState === undefined) {\n return false;\n }\n\n const stateSplit = state.split('_identifier=');\n const checkStateSplit = checkState.split('_identifier=');\n return stateSplit[0] === checkStateSplit[0];\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { TwoFactorOptionsComponent } from './two-factor-options.component';\n\nimport { ModalComponent } from '../modal.component';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { AuthService } from 'jslib/abstractions/auth.service';\nimport { EnvironmentService } from 'jslib/abstractions/environment.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\n\nimport { TwoFactorComponent as BaseTwoFactorComponent } from 'jslib/angular/components/two-factor.component';\n\n@Component({\n selector: 'app-two-factor',\n templateUrl: 'two-factor.component.html',\n})\nexport class TwoFactorComponent extends BaseTwoFactorComponent {\n @ViewChild('twoFactorOptions', { read: ViewContainerRef, static: true }) twoFactorOptionsModal: ViewContainerRef;\n\n constructor(authService: AuthService, router: Router,\n i18nService: I18nService, apiService: ApiService,\n platformUtilsService: PlatformUtilsService, stateService: StateService,\n environmentService: EnvironmentService, private componentFactoryResolver: ComponentFactoryResolver,\n storageService: StorageService, route: ActivatedRoute) {\n super(authService, router, i18nService, apiService, platformUtilsService, window, environmentService,\n stateService, storageService, route);\n this.onSuccessfulLoginNavigate = this.goAfterLogIn;\n }\n\n anotherMethod() {\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n const modal = this.twoFactorOptionsModal.createComponent(factory).instance;\n const childComponent = modal.show(TwoFactorOptionsComponent,\n this.twoFactorOptionsModal);\n\n childComponent.onProviderSelected.subscribe(async (provider: TwoFactorProviderType) => {\n modal.close();\n this.selectedProviderType = provider;\n await this.init();\n });\n childComponent.onRecoverSelected.subscribe(() => {\n modal.close();\n });\n }\n\n async goAfterLogIn() {\n const orgInvite = await this.stateService.get('orgInvitation');\n const emergencyInvite = await this.stateService.get('emergencyInvitation');\n if (orgInvite != null) {\n this.router.navigate(['accept-organization'], { queryParams: orgInvite });\n } else if (emergencyInvite != null) {\n this.router.navigate(['accept-emergency'], { queryParams: emergencyInvite });\n } else {\n const loginRedirect = await this.stateService.get('loginRedirect');\n if (loginRedirect != null) {\n this.router.navigate([loginRedirect.route], { queryParams: loginRedirect.qParams });\n await this.stateService.remove('loginRedirect');\n } else {\n this.router.navigate([this.successRoute], {\n queryParams: {\n identifier: this.identifier,\n },\n });\n }\n }\n }\n}\n","
\n
\n
\n

{{title}}

\n
\n
\n \n

\n {{'enterVerificationCodeApp' | i18n}}

\n

\n {{'enterVerificationCodeEmail' | i18n : twoFactorEmail}}\n

\n
\n \n \n \n \n {{'sendVerificationCodeEmailAgain' | i18n}}\n \n \n
\n \n \n

{{'insertYubiKey' | i18n}}

\n \"\"\n
\n \n \n
\n
\n \n

\n \n {{'loading' | i18n}}\n

\n \n

{{'insertU2f' | i18n}}

\n \"\"\n
\n
\n \n
\n \n
\n
\n \n
\n \n \n
\n \n

{{'noTwoStepProviders' | i18n}}

\n

{{'noTwoStepProviders2' | i18n}}

\n
\n
\n
\n \n \n {{'cancel' | i18n}}\n \n
\n \n
\n
\n
\n
\n
\n\n\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { AuthService } from 'jslib/abstractions/auth.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport {\n TwoFactorOptionsComponent as BaseTwoFactorOptionsComponent,\n} from 'jslib/angular/components/two-factor-options.component';\n\n@Component({\n selector: 'app-two-factor-options',\n templateUrl: 'two-factor-options.component.html',\n})\nexport class TwoFactorOptionsComponent extends BaseTwoFactorOptionsComponent {\n constructor(authService: AuthService, router: Router,\n i18nService: I18nService, platformUtilsService: PlatformUtilsService) {\n super(authService, router, i18nService, platformUtilsService, window);\n }\n}\n","
\n
\n
\n
\n

{{'twoStepOptions' | i18n}}

\n \n
\n \n
\n \n
\n
\n
\n
\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class TwoFactorEmailRequest extends PasswordVerificationRequest {\n email: string;\n\n constructor(email: string, masterPasswordHash: string) {\n super();\n this.masterPasswordHash = masterPasswordHash;\n this.email = email;\n }\n}\n","import { TwoFactorProviderType } from '../../enums/twoFactorProviderType';\n\nexport class AuthResult {\n twoFactor: boolean = false;\n resetMasterPassword: boolean = false;\n twoFactorProviders: Map = null;\n}\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { VerifyEmailRequest } from 'jslib/models/request/verifyEmailRequest';\n\n@Component({\n selector: 'app-verify-email-token',\n templateUrl: 'verify-email-token.component.html',\n})\nexport class VerifyEmailTokenComponent implements OnInit {\n constructor(private router: Router, private toasterService: ToasterService,\n private i18nService: I18nService, private route: ActivatedRoute,\n private apiService: ApiService, private userService: UserService) { }\n\n ngOnInit() {\n let fired = false;\n this.route.queryParams.subscribe(async qParams => {\n if (fired) {\n return;\n }\n fired = true;\n if (qParams.userId != null && qParams.token != null) {\n try {\n await this.apiService.postAccountVerifyEmailToken(\n new VerifyEmailRequest(qParams.userId, qParams.token));\n const authed = await this.userService.isAuthenticated();\n if (authed) {\n await this.apiService.refreshIdentityToken();\n }\n this.toasterService.popAsync('success', null, this.i18nService.t('emailVerified'));\n this.router.navigate(['/']);\n return;\n } catch { }\n }\n this.toasterService.popAsync('error', null, this.i18nService.t('emailVerifiedFailed'));\n this.router.navigate(['/']);\n });\n }\n}\n","
\n
\n \"Bitwarden\"\n

\n \n {{'loading' | i18n}}\n

\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { VerifyDeleteRecoverRequest } from 'jslib/models/request/verifyDeleteRecoverRequest';\n\n@Component({\n selector: 'app-verify-recover-delete',\n templateUrl: 'verify-recover-delete.component.html',\n})\nexport class VerifyRecoverDeleteComponent implements OnInit {\n email: string;\n formPromise: Promise;\n\n private userId: string;\n private token: string;\n\n constructor(private router: Router, private apiService: ApiService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private i18nService: I18nService, private route: ActivatedRoute) {\n }\n\n ngOnInit() {\n let fired = false;\n this.route.queryParams.subscribe(async qParams => {\n if (fired) {\n return;\n }\n fired = true;\n if (qParams.userId != null && qParams.token != null && qParams.email != null) {\n this.userId = qParams.userId;\n this.token = qParams.token;\n this.email = qParams.email;\n } else {\n this.router.navigate(['/']);\n }\n });\n }\n\n async submit() {\n try {\n const request = new VerifyDeleteRecoverRequest(this.userId, this.token);\n this.formPromise = this.apiService.postAccountRecoverDeleteToken(request);\n await this.formPromise;\n this.analytics.eventTrack.next({ action: 'Recovered Delete' });\n this.toasterService.popAsync('success', this.i18nService.t('accountDeleted'),\n this.i18nService.t('accountDeletedDesc'));\n this.router.navigate(['/']);\n } catch { }\n }\n}\n","
\n
\n
\n

{{'deleteAccount' | i18n}}

\n
\n
\n {{'deleteAccountWarning' | i18n}}\n

\n {{email}}\n

\n

{{'deleteRecoverConfirmDesc' | i18n}}

\n
\n
\n \n \n {{'cancel' | i18n}}\n \n
\n
\n
\n
\n
\n
\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SearchService } from 'jslib/abstractions/search.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CollectionData } from 'jslib/models/data/collectionData';\nimport { Collection } from 'jslib/models/domain/collection';\nimport {\n CollectionDetailsResponse,\n CollectionResponse,\n} from 'jslib/models/response/collectionResponse';\nimport { ListResponse } from 'jslib/models/response/listResponse';\nimport { CollectionView } from 'jslib/models/view/collectionView';\n\nimport { ModalComponent } from '../../modal.component';\nimport { CollectionAddEditComponent } from './collection-add-edit.component';\nimport { EntityUsersComponent } from './entity-users.component';\n\n@Component({\n selector: 'app-org-manage-collections',\n templateUrl: 'collections.component.html',\n})\nexport class CollectionsComponent implements OnInit {\n @ViewChild('addEdit', { read: ViewContainerRef, static: true }) addEditModalRef: ViewContainerRef;\n @ViewChild('usersTemplate', { read: ViewContainerRef, static: true }) usersModalRef: ViewContainerRef;\n\n loading = true;\n organizationId: string;\n collections: CollectionView[];\n pagedCollections: CollectionView[];\n searchText: string;\n\n protected didScroll = false;\n protected pageSize = 100;\n\n private pagedCollectionsCount = 0;\n private modal: ModalComponent = null;\n\n constructor(private apiService: ApiService, private route: ActivatedRoute,\n private collectionService: CollectionService, private componentFactoryResolver: ComponentFactoryResolver,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private i18nService: I18nService, private platformUtilsService: PlatformUtilsService,\n private userService: UserService, private searchService: SearchService) { }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n await this.load();\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n this.searchText = qParams.search;\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n });\n }\n\n async load() {\n const organization = await this.userService.getOrganization(this.organizationId);\n let response: ListResponse;\n if (organization.canManageAllCollections) {\n response = await this.apiService.getCollections(this.organizationId);\n } else {\n response = await this.apiService.getUserCollections();\n }\n const collections = response.data.filter(c => c.organizationId === this.organizationId).map(r =>\n new Collection(new CollectionData(r as CollectionDetailsResponse)));\n this.collections = await this.collectionService.decryptMany(collections);\n this.resetPaging();\n this.loading = false;\n }\n\n loadMore() {\n if (!this.collections || this.collections.length <= this.pageSize) {\n return;\n }\n const pagedLength = this.pagedCollections.length;\n let pagedSize = this.pageSize;\n if (pagedLength === 0 && this.pagedCollectionsCount > this.pageSize) {\n pagedSize = this.pagedCollectionsCount;\n }\n if (this.collections.length > pagedLength) {\n this.pagedCollections =\n this.pagedCollections.concat(this.collections.slice(pagedLength, pagedLength + pagedSize));\n }\n this.pagedCollectionsCount = this.pagedCollections.length;\n this.didScroll = this.pagedCollections.length > this.pageSize;\n }\n\n edit(collection: CollectionView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.addEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n CollectionAddEditComponent, this.addEditModalRef);\n\n childComponent.organizationId = this.organizationId;\n childComponent.collectionId = collection != null ? collection.id : null;\n childComponent.onSavedCollection.subscribe(() => {\n this.modal.close();\n this.load();\n });\n childComponent.onDeletedCollection.subscribe(() => {\n this.modal.close();\n this.removeCollection(collection);\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n add() {\n this.edit(null);\n }\n\n async delete(collection: CollectionView) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('deleteCollectionConfirmation'), collection.name,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n await this.apiService.deleteCollection(this.organizationId, collection.id);\n this.analytics.eventTrack.next({ action: 'Deleted Collection' });\n this.toasterService.popAsync('success', null, this.i18nService.t('deletedCollectionId', collection.name));\n this.removeCollection(collection);\n } catch { }\n }\n\n users(collection: CollectionView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.usersModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n EntityUsersComponent, this.usersModalRef);\n\n childComponent.organizationId = this.organizationId;\n childComponent.entity = 'collection';\n childComponent.entityId = collection.id;\n childComponent.entityName = collection.name;\n\n childComponent.onEditedUsers.subscribe(() => {\n this.load();\n this.modal.close();\n });\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n async resetPaging() {\n this.pagedCollections = [];\n this.loadMore();\n }\n\n isSearching() {\n return this.searchService.isSearchable(this.searchText);\n }\n\n isPaging() {\n const searching = this.isSearching();\n if (searching && this.didScroll) {\n this.resetPaging();\n }\n return !searching && this.collections && this.collections.length > this.pageSize;\n }\n\n private removeCollection(collection: CollectionView) {\n const index = this.collections.indexOf(collection);\n if (index > -1) {\n this.collections.splice(index, 1);\n this.resetPaging();\n }\n }\n}\n","
\n

{{'collections' | i18n}}

\n
\n
\n \n \n
\n \n
\n
\n\n \n {{'loading' | i18n}}\n\n\n

{{'noCollectionsInList' | i18n}}

\n \n \n \n \n \n \n \n
\n {{c.name}}\n \n \n
\n\n\n\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CipherString } from 'jslib/models/domain/cipherString';\nimport { SymmetricCryptoKey } from 'jslib/models/domain/symmetricCryptoKey';\nimport { CollectionRequest } from 'jslib/models/request/collectionRequest';\nimport { SelectionReadOnlyRequest } from 'jslib/models/request/selectionReadOnlyRequest';\nimport { GroupResponse } from 'jslib/models/response/groupResponse';\n\nimport { Utils } from 'jslib/misc/utils';\n\n@Component({\n selector: 'app-collection-add-edit',\n templateUrl: 'collection-add-edit.component.html',\n})\nexport class CollectionAddEditComponent implements OnInit {\n @Input() collectionId: string;\n @Input() organizationId: string;\n @Output() onSavedCollection = new EventEmitter();\n @Output() onDeletedCollection = new EventEmitter();\n\n loading = true;\n editMode: boolean = false;\n accessGroups: boolean = false;\n title: string;\n name: string;\n externalId: string;\n groups: GroupResponse[] = [];\n formPromise: Promise;\n deletePromise: Promise;\n\n private orgKey: SymmetricCryptoKey;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private platformUtilsService: PlatformUtilsService, private cryptoService: CryptoService,\n private userService: UserService) { }\n\n async ngOnInit() {\n const organization = await this.userService.getOrganization(this.organizationId);\n this.accessGroups = organization.useGroups;\n this.editMode = this.loading = this.collectionId != null;\n if (this.accessGroups) {\n const groupsResponse = await this.apiService.getGroups(this.organizationId);\n this.groups = groupsResponse.data.map(r => r).sort(Utils.getSortFunction(this.i18nService, 'name'));\n }\n this.orgKey = await this.cryptoService.getOrgKey(this.organizationId);\n\n if (this.editMode) {\n this.editMode = true;\n this.title = this.i18nService.t('editCollection');\n try {\n const collection = await this.apiService.getCollectionDetails(this.organizationId, this.collectionId);\n this.name = await this.cryptoService.decryptToUtf8(new CipherString(collection.name), this.orgKey);\n this.externalId = collection.externalId;\n if (collection.groups != null && this.groups.length > 0) {\n collection.groups.forEach(s => {\n const group = this.groups.filter(g => !g.accessAll && g.id === s.id);\n if (group != null && group.length > 0) {\n (group[0] as any).checked = true;\n (group[0] as any).readOnly = s.readOnly;\n (group[0] as any).hidePasswords = s.hidePasswords;\n }\n });\n }\n } catch { }\n } else {\n this.title = this.i18nService.t('addCollection');\n }\n\n this.groups.forEach(g => {\n if (g.accessAll) {\n (g as any).checked = true;\n }\n });\n\n this.loading = false;\n }\n\n check(g: GroupResponse, select?: boolean) {\n if (g.accessAll) {\n return;\n }\n (g as any).checked = select == null ? !(g as any).checked : select;\n if (!(g as any).checked) {\n (g as any).readOnly = false;\n (g as any).hidePasswords = false;\n }\n }\n\n selectAll(select: boolean) {\n this.groups.forEach(g => this.check(g, select));\n }\n\n async submit() {\n if (this.orgKey == null) {\n throw new Error('No encryption key for this organization.');\n }\n\n const request = new CollectionRequest();\n request.name = (await this.cryptoService.encrypt(this.name, this.orgKey)).encryptedString;\n request.externalId = this.externalId;\n request.groups = this.groups.filter(g => (g as any).checked && !g.accessAll)\n .map(g => new SelectionReadOnlyRequest(g.id, !!(g as any).readOnly, !!(g as any).hidePasswords));\n\n try {\n if (this.editMode) {\n this.formPromise = this.apiService.putCollection(this.organizationId, this.collectionId, request);\n } else {\n this.formPromise = this.apiService.postCollection(this.organizationId, request);\n }\n await this.formPromise;\n this.analytics.eventTrack.next({ action: this.editMode ? 'Edited Collection' : 'Created Collection' });\n this.toasterService.popAsync('success', null,\n this.i18nService.t(this.editMode ? 'editedCollectionId' : 'createdCollectionId', this.name));\n this.onSavedCollection.emit();\n } catch { }\n }\n\n async delete() {\n if (!this.editMode) {\n return;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('deleteCollectionConfirmation'), this.name,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.deletePromise = this.apiService.deleteCollection(this.organizationId, this.collectionId);\n await this.deletePromise;\n this.analytics.eventTrack.next({ action: 'Deleted Collection' });\n this.toasterService.popAsync('success', null, this.i18nService.t('deletedCollectionId', this.name));\n this.onDeletedCollection.emit();\n } catch { }\n }\n}\n","
\n
\n
\n
\n

{{title}}

\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n
\n \n \n
\n
\n \n \n {{'externalIdDesc' | i18n}}\n
\n \n

\n {{'groupAccess' | i18n}}\n
\n \n \n
\n

\n
\n {{'noGroupsInList' | i18n}}\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 {{'name' | i18n}}{{'hidePasswords' | i18n}}{{'readOnly' | i18n}}
\n \n \n {{g.name}}\n \n \n {{'groupAccessAllItems' | i18n}}\n \n \n \n \n \n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n","import { Collection } from '../domain/collection';\n\nimport { SelectionReadOnlyRequest } from './selectionReadOnlyRequest';\n\nexport class CollectionRequest {\n name: string;\n externalId: string;\n groups: SelectionReadOnlyRequest[] = [];\n\n constructor(collection?: Collection) {\n if (collection == null) {\n return;\n }\n this.name = collection.name ? collection.name.encryptedString : null;\n this.externalId = collection.externalId;\n }\n}\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { EventService } from '../../services/event.service';\n\nimport { EventResponse } from 'jslib/models/response/eventResponse';\nimport { ListResponse } from 'jslib/models/response/listResponse';\n\n@Component({\n selector: 'app-org-events',\n templateUrl: 'events.component.html',\n})\nexport class EventsComponent implements OnInit {\n loading = true;\n loaded = false;\n organizationId: string;\n events: any[];\n start: string;\n end: string;\n continuationToken: string;\n refreshPromise: Promise;\n morePromise: Promise;\n\n private orgUsersUserIdMap = new Map();\n private orgUsersIdMap = new Map();\n\n constructor(private apiService: ApiService, private route: ActivatedRoute,\n private eventService: EventService, private i18nService: I18nService,\n private toasterService: ToasterService, private userService: UserService,\n private router: Router) { }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n const organization = await this.userService.getOrganization(this.organizationId);\n if (organization == null || !organization.useEvents) {\n this.router.navigate(['/organizations', this.organizationId]);\n return;\n }\n const defaultDates = this.eventService.getDefaultDateFilters();\n this.start = defaultDates[0];\n this.end = defaultDates[1];\n await this.load();\n });\n }\n\n async load() {\n const response = await this.apiService.getOrganizationUsers(this.organizationId);\n response.data.forEach(u => {\n const name = u.name == null || u.name.trim() === '' ? u.email : u.name;\n this.orgUsersIdMap.set(u.id, { name: name, email: u.email });\n this.orgUsersUserIdMap.set(u.userId, { name: name, email: u.email });\n });\n await this.loadEvents(true);\n this.loaded = true;\n }\n\n async loadEvents(clearExisting: boolean) {\n if (this.refreshPromise != null || this.morePromise != null) {\n return;\n }\n\n let dates: string[] = null;\n try {\n dates = this.eventService.formatDateFilters(this.start, this.end);\n } catch (e) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidDateRange'));\n return;\n }\n\n this.loading = true;\n let response: ListResponse;\n try {\n const promise = this.apiService.getEventsOrganization(this.organizationId, dates[0], dates[1],\n clearExisting ? null : this.continuationToken);\n if (clearExisting) {\n this.refreshPromise = promise;\n } else {\n this.morePromise = promise;\n }\n response = await promise;\n } catch { }\n\n this.continuationToken = response.continuationToken;\n const events = response.data.map(r => {\n const userId = r.actingUserId == null ? r.userId : r.actingUserId;\n const eventInfo = this.eventService.getEventInfo(r);\n const user = userId != null && this.orgUsersUserIdMap.has(userId) ?\n this.orgUsersUserIdMap.get(userId) : null;\n return {\n message: eventInfo.message,\n appIcon: eventInfo.appIcon,\n appName: eventInfo.appName,\n userId: userId,\n userName: user != null ? user.name : this.i18nService.t('unknown'),\n userEmail: user != null ? user.email : '',\n date: r.date,\n ip: r.ipAddress,\n type: r.type,\n };\n });\n\n if (!clearExisting && this.events != null && this.events.length > 0) {\n this.events = this.events.concat(events);\n } else {\n this.events = events;\n }\n\n this.loading = false;\n this.morePromise = null;\n this.refreshPromise = null;\n }\n}\n","
\n

{{'eventLogs' | i18n}}

\n
\n
\n \n \n -\n \n \n
\n \n
\n
\n\n \n {{'loading' | i18n}}\n\n\n

{{'noEventsInList' | i18n}}

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
{{'timestamp' | i18n}}\n {{'device' | i18n}}\n {{'user' | i18n}}{{'event' | i18n}}
{{e.date | date:'medium'}}\n \n {{e.appName}}, {{e.ip}}\n \n {{e.userName}}\n
\n \n
\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SearchService } from 'jslib/abstractions/search.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { GroupResponse } from 'jslib/models/response/groupResponse';\n\nimport { Utils } from 'jslib/misc/utils';\n\nimport { ModalComponent } from '../../modal.component';\nimport { EntityUsersComponent } from './entity-users.component';\nimport { GroupAddEditComponent } from './group-add-edit.component';\n\n@Component({\n selector: 'app-org-groups',\n templateUrl: 'groups.component.html',\n})\nexport class GroupsComponent implements OnInit {\n @ViewChild('addEdit', { read: ViewContainerRef, static: true }) addEditModalRef: ViewContainerRef;\n @ViewChild('usersTemplate', { read: ViewContainerRef, static: true }) usersModalRef: ViewContainerRef;\n\n loading = true;\n organizationId: string;\n groups: GroupResponse[];\n pagedGroups: GroupResponse[];\n searchText: string;\n\n protected didScroll = false;\n protected pageSize = 100;\n\n private pagedGroupsCount = 0;\n private modal: ModalComponent = null;\n\n constructor(private apiService: ApiService, private route: ActivatedRoute,\n private i18nService: I18nService, private componentFactoryResolver: ComponentFactoryResolver,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private platformUtilsService: PlatformUtilsService, private userService: UserService,\n private router: Router, private searchService: SearchService) { }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n const organization = await this.userService.getOrganization(this.organizationId);\n if (organization == null || !organization.useGroups) {\n this.router.navigate(['/organizations', this.organizationId]);\n return;\n }\n await this.load();\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n this.searchText = qParams.search;\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n });\n }\n\n async load() {\n const response = await this.apiService.getGroups(this.organizationId);\n const groups = response.data != null && response.data.length > 0 ? response.data : [];\n groups.sort(Utils.getSortFunction(this.i18nService, 'name'));\n this.groups = groups;\n this.resetPaging();\n this.loading = false;\n }\n\n loadMore() {\n if (!this.groups || this.groups.length <= this.pageSize) {\n return;\n }\n const pagedLength = this.pagedGroups.length;\n let pagedSize = this.pageSize;\n if (pagedLength === 0 && this.pagedGroupsCount > this.pageSize) {\n pagedSize = this.pagedGroupsCount;\n }\n if (this.groups.length > pagedLength) {\n this.pagedGroups = this.pagedGroups.concat(this.groups.slice(pagedLength, pagedLength + pagedSize));\n }\n this.pagedGroupsCount = this.pagedGroups.length;\n this.didScroll = this.pagedGroups.length > this.pageSize;\n }\n\n edit(group: GroupResponse) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.addEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n GroupAddEditComponent, this.addEditModalRef);\n\n childComponent.organizationId = this.organizationId;\n childComponent.groupId = group != null ? group.id : null;\n childComponent.onSavedGroup.subscribe(() => {\n this.modal.close();\n this.load();\n });\n childComponent.onDeletedGroup.subscribe(() => {\n this.modal.close();\n this.removeGroup(group);\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n add() {\n this.edit(null);\n }\n\n async delete(group: GroupResponse) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('deleteGroupConfirmation'), group.name,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n await this.apiService.deleteGroup(this.organizationId, group.id);\n this.analytics.eventTrack.next({ action: 'Deleted Group' });\n this.toasterService.popAsync('success', null, this.i18nService.t('deletedGroupId', group.name));\n this.removeGroup(group);\n } catch { }\n }\n\n users(group: GroupResponse) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.usersModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n EntityUsersComponent, this.usersModalRef);\n\n childComponent.organizationId = this.organizationId;\n childComponent.entity = 'group';\n childComponent.entityId = group.id;\n childComponent.entityName = group.name;\n\n childComponent.onEditedUsers.subscribe(() => {\n this.modal.close();\n });\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n async resetPaging() {\n this.pagedGroups = [];\n this.loadMore();\n }\n\n isSearching() {\n return this.searchService.isSearchable(this.searchText);\n }\n\n isPaging() {\n const searching = this.isSearching();\n if (searching && this.didScroll) {\n this.resetPaging();\n }\n return !searching && this.groups && this.groups.length > this.pageSize;\n }\n\n private removeGroup(group: GroupResponse) {\n const index = this.groups.indexOf(group);\n if (index > -1) {\n this.groups.splice(index, 1);\n this.resetPaging();\n }\n }\n}\n","
\n

{{'groups' | i18n}}

\n
\n
\n \n \n
\n \n
\n
\n\n \n {{'loading' | i18n}}\n\n\n

{{'noGroupsInList' | i18n}}

\n \n \n \n \n \n \n \n
\n {{g.name}}\n \n \n
\n
\n\n\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { CollectionData } from 'jslib/models/data/collectionData';\nimport { Collection } from 'jslib/models/domain/collection';\nimport { GroupRequest } from 'jslib/models/request/groupRequest';\nimport { SelectionReadOnlyRequest } from 'jslib/models/request/selectionReadOnlyRequest';\nimport { CollectionDetailsResponse } from 'jslib/models/response/collectionResponse';\nimport { CollectionView } from 'jslib/models/view/collectionView';\n\n@Component({\n selector: 'app-group-add-edit',\n templateUrl: 'group-add-edit.component.html',\n})\nexport class GroupAddEditComponent implements OnInit {\n @Input() groupId: string;\n @Input() organizationId: string;\n @Output() onSavedGroup = new EventEmitter();\n @Output() onDeletedGroup = new EventEmitter();\n\n loading = true;\n editMode: boolean = false;\n title: string;\n name: string;\n externalId: string;\n access: 'all' | 'selected' = 'selected';\n collections: CollectionView[] = [];\n formPromise: Promise;\n deletePromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private collectionService: CollectionService, private platformUtilsService: PlatformUtilsService) { }\n\n async ngOnInit() {\n this.editMode = this.loading = this.groupId != null;\n await this.loadCollections();\n\n if (this.editMode) {\n this.editMode = true;\n this.title = this.i18nService.t('editGroup');\n try {\n const group = await this.apiService.getGroupDetails(this.organizationId, this.groupId);\n this.access = group.accessAll ? 'all' : 'selected';\n this.name = group.name;\n this.externalId = group.externalId;\n if (group.collections != null && this.collections != null) {\n group.collections.forEach(s => {\n const collection = this.collections.filter(c => c.id === s.id);\n if (collection != null && collection.length > 0) {\n (collection[0] as any).checked = true;\n collection[0].readOnly = s.readOnly;\n collection[0].hidePasswords = s.hidePasswords;\n }\n });\n }\n } catch { }\n } else {\n this.title = this.i18nService.t('addGroup');\n }\n\n this.loading = false;\n }\n\n async loadCollections() {\n const response = await this.apiService.getCollections(this.organizationId);\n const collections = response.data.map(r =>\n new Collection(new CollectionData(r as CollectionDetailsResponse)));\n this.collections = await this.collectionService.decryptMany(collections);\n }\n\n check(c: CollectionView, select?: boolean) {\n (c as any).checked = select == null ? !(c as any).checked : select;\n if (!(c as any).checked) {\n c.readOnly = false;\n }\n }\n\n selectAll(select: boolean) {\n this.collections.forEach(c => this.check(c, select));\n }\n\n async submit() {\n const request = new GroupRequest();\n request.name = this.name;\n request.externalId = this.externalId;\n request.accessAll = this.access === 'all';\n if (!request.accessAll) {\n request.collections = this.collections.filter(c => (c as any).checked)\n .map(c => new SelectionReadOnlyRequest(c.id, !!c.readOnly, !!c.hidePasswords));\n }\n\n try {\n if (this.editMode) {\n this.formPromise = this.apiService.putGroup(this.organizationId, this.groupId, request);\n } else {\n this.formPromise = this.apiService.postGroup(this.organizationId, request);\n }\n await this.formPromise;\n this.analytics.eventTrack.next({ action: this.editMode ? 'Edited Group' : 'Created Group' });\n this.toasterService.popAsync('success', null,\n this.i18nService.t(this.editMode ? 'editedGroupId' : 'createdGroupId', this.name));\n this.onSavedGroup.emit();\n } catch { }\n }\n\n async delete() {\n if (!this.editMode) {\n return;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('deleteGroupConfirmation'), this.name,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.deletePromise = this.apiService.deleteGroup(this.organizationId, this.groupId);\n await this.deletePromise;\n this.analytics.eventTrack.next({ action: 'Deleted Group' });\n this.toasterService.popAsync('success', null, this.i18nService.t('deletedGroupId', this.name));\n this.onDeletedGroup.emit();\n } catch { }\n }\n}\n","
\n
\n
\n
\n

{{title}}

\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n
\n \n \n
\n
\n \n \n {{'externalIdDesc' | i18n}}\n
\n

\n
\n {{'accessControl' | i18n}}\n \n \n \n
\n
\n \n \n
\n

\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n
\n {{'noCollectionsInList' | i18n}}\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 {{'name' | i18n}}{{'hidePasswords' | i18n}}{{'readOnly' | i18n}}
\n \n \n {{c.name}}\n \n \n \n \n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { Organization } from 'jslib/models/domain/organization';\n\n@Component({\n selector: 'app-org-manage',\n templateUrl: 'manage.component.html',\n})\nexport class ManageComponent implements OnInit {\n organization: Organization;\n accessPolicies = false;\n accessGroups = false;\n accessEvents = false;\n\n constructor(private route: ActivatedRoute, private userService: UserService) { }\n\n ngOnInit() {\n this.route.parent.params.subscribe(async params => {\n this.organization = await this.userService.getOrganization(params.organizationId);\n this.accessPolicies = this.organization.usePolicies;\n this.accessEvents = this.organization.useEvents;\n this.accessGroups = this.organization.useGroups;\n });\n }\n}\n","\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ConstantsService } from 'jslib/services/constants.service';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SearchService } from 'jslib/abstractions/search.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { OrganizationUserConfirmRequest } from 'jslib/models/request/organizationUserConfirmRequest';\n\nimport { OrganizationUserUserDetailsResponse } from 'jslib/models/response/organizationUserResponse';\n\nimport { OrganizationUserStatusType } from 'jslib/enums/organizationUserStatusType';\nimport { OrganizationUserType } from 'jslib/enums/organizationUserType';\n\nimport { Utils } from 'jslib/misc/utils';\n\nimport { ModalComponent } from '../../modal.component';\nimport { EntityEventsComponent } from './entity-events.component';\nimport { UserAddEditComponent } from './user-add-edit.component';\nimport { UserConfirmComponent } from './user-confirm.component';\nimport { UserGroupsComponent } from './user-groups.component';\n\n@Component({\n selector: 'app-org-people',\n templateUrl: 'people.component.html',\n})\nexport class PeopleComponent implements OnInit {\n @ViewChild('addEdit', { read: ViewContainerRef, static: true }) addEditModalRef: ViewContainerRef;\n @ViewChild('groupsTemplate', { read: ViewContainerRef, static: true }) groupsModalRef: ViewContainerRef;\n @ViewChild('eventsTemplate', { read: ViewContainerRef, static: true }) eventsModalRef: ViewContainerRef;\n @ViewChild('confirmTemplate', { read: ViewContainerRef, static: true }) confirmModalRef: ViewContainerRef;\n\n loading = true;\n organizationId: string;\n users: OrganizationUserUserDetailsResponse[];\n pagedUsers: OrganizationUserUserDetailsResponse[];\n searchText: string;\n status: OrganizationUserStatusType = null;\n statusMap = new Map();\n organizationUserType = OrganizationUserType;\n organizationUserStatusType = OrganizationUserStatusType;\n actionPromise: Promise;\n accessEvents = false;\n accessGroups = false;\n\n protected didScroll = false;\n protected pageSize = 100;\n\n private pagedUsersCount = 0;\n private modal: ModalComponent = null;\n private allUsers: OrganizationUserUserDetailsResponse[];\n\n constructor(private apiService: ApiService, private route: ActivatedRoute,\n private i18nService: I18nService, private componentFactoryResolver: ComponentFactoryResolver,\n private platformUtilsService: PlatformUtilsService, private analytics: Angulartics2,\n private toasterService: ToasterService, private cryptoService: CryptoService,\n private userService: UserService, private router: Router,\n private storageService: StorageService, private searchService: SearchService) { }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n const organization = await this.userService.getOrganization(this.organizationId);\n if (!organization.canManageUsers) {\n this.router.navigate(['../collections'], { relativeTo: this.route });\n return;\n }\n this.accessEvents = organization.useEvents;\n this.accessGroups = organization.useGroups;\n await this.load();\n\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n this.searchText = qParams.search;\n if (qParams.viewEvents != null) {\n const user = this.users.filter(u => u.id === qParams.viewEvents);\n if (user.length > 0 && user[0].status === OrganizationUserStatusType.Confirmed) {\n this.events(user[0]);\n }\n }\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n });\n }\n\n async load() {\n const response = await this.apiService.getOrganizationUsers(this.organizationId);\n this.statusMap.clear();\n this.allUsers = response.data != null && response.data.length > 0 ? response.data : [];\n this.allUsers.sort(Utils.getSortFunction(this.i18nService, 'email'));\n this.allUsers.forEach(u => {\n if (!this.statusMap.has(u.status)) {\n this.statusMap.set(u.status, [u]);\n } else {\n this.statusMap.get(u.status).push(u);\n }\n });\n this.filter(this.status);\n this.loading = false;\n }\n\n filter(status: OrganizationUserStatusType) {\n this.status = status;\n if (this.status != null) {\n this.users = this.statusMap.get(this.status);\n } else {\n this.users = this.allUsers;\n }\n this.resetPaging();\n }\n\n loadMore() {\n if (!this.users || this.users.length <= this.pageSize) {\n return;\n }\n const pagedLength = this.pagedUsers.length;\n let pagedSize = this.pageSize;\n if (pagedLength === 0 && this.pagedUsersCount > this.pageSize) {\n pagedSize = this.pagedUsersCount;\n }\n if (this.users.length > pagedLength) {\n this.pagedUsers = this.pagedUsers.concat(this.users.slice(pagedLength, pagedLength + pagedSize));\n }\n this.pagedUsersCount = this.pagedUsers.length;\n this.didScroll = this.pagedUsers.length > this.pageSize;\n }\n\n get allCount() {\n return this.allUsers != null ? this.allUsers.length : 0;\n }\n\n get invitedCount() {\n return this.statusMap.has(OrganizationUserStatusType.Invited) ?\n this.statusMap.get(OrganizationUserStatusType.Invited).length : 0;\n }\n\n get acceptedCount() {\n return this.statusMap.has(OrganizationUserStatusType.Accepted) ?\n this.statusMap.get(OrganizationUserStatusType.Accepted).length : 0;\n }\n\n get confirmedCount() {\n return this.statusMap.has(OrganizationUserStatusType.Confirmed) ?\n this.statusMap.get(OrganizationUserStatusType.Confirmed).length : 0;\n }\n\n get showConfirmUsers(): boolean {\n return this.allUsers != null && this.statusMap != null && this.allUsers.length > 1 &&\n this.confirmedCount > 0 && this.confirmedCount < 3 && this.acceptedCount > 0;\n }\n\n edit(user: OrganizationUserUserDetailsResponse) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.addEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n UserAddEditComponent, this.addEditModalRef);\n\n childComponent.name = user != null ? user.name || user.email : null;\n childComponent.organizationId = this.organizationId;\n childComponent.organizationUserId = user != null ? user.id : null;\n childComponent.onSavedUser.subscribe(() => {\n this.modal.close();\n this.load();\n });\n childComponent.onDeletedUser.subscribe(() => {\n this.modal.close();\n this.removeUser(user);\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n invite() {\n this.edit(null);\n }\n\n groups(user: OrganizationUserUserDetailsResponse) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.groupsModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n UserGroupsComponent, this.groupsModalRef);\n\n childComponent.name = user != null ? user.name || user.email : null;\n childComponent.organizationId = this.organizationId;\n childComponent.organizationUserId = user != null ? user.id : null;\n childComponent.onSavedUser.subscribe(() => {\n this.modal.close();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n async remove(user: OrganizationUserUserDetailsResponse) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('removeUserConfirmation'), user.name || user.email,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n await this.apiService.deleteOrganizationUser(this.organizationId, user.id);\n this.analytics.eventTrack.next({ action: 'Deleted User' });\n this.toasterService.popAsync('success', null, this.i18nService.t('removedUserId', user.name || user.email));\n this.removeUser(user);\n } catch { }\n }\n\n async reinvite(user: OrganizationUserUserDetailsResponse) {\n if (this.actionPromise != null) {\n return;\n }\n this.actionPromise = this.apiService.postOrganizationUserReinvite(this.organizationId, user.id);\n await this.actionPromise;\n this.analytics.eventTrack.next({ action: 'Reinvited User' });\n this.toasterService.popAsync('success', null, this.i18nService.t('hasBeenReinvited', user.name || user.email));\n this.actionPromise = null;\n }\n\n async confirm(user: OrganizationUserUserDetailsResponse) {\n function updateUser(self: PeopleComponent) {\n user.status = OrganizationUserStatusType.Confirmed;\n const mapIndex = self.statusMap.get(OrganizationUserStatusType.Accepted).indexOf(user);\n if (mapIndex > -1) {\n self.statusMap.get(OrganizationUserStatusType.Accepted).splice(mapIndex, 1);\n self.statusMap.get(OrganizationUserStatusType.Confirmed).push(user);\n }\n }\n\n if (this.actionPromise != null) {\n return;\n }\n\n const autoConfirm = await this.storageService.get(ConstantsService.autoConfirmFingerprints);\n if (autoConfirm == null || !autoConfirm) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.confirmModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n UserConfirmComponent, this.confirmModalRef);\n\n childComponent.name = user != null ? user.name || user.email : null;\n childComponent.organizationId = this.organizationId;\n childComponent.organizationUserId = user != null ? user.id : null;\n childComponent.userId = user != null ? user.userId : null;\n childComponent.onConfirmedUser.subscribe(() => {\n this.modal.close();\n updateUser(this);\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n return;\n }\n\n this.actionPromise = this.doConfirmation(user);\n await this.actionPromise;\n updateUser(this);\n this.analytics.eventTrack.next({ action: 'Confirmed User' });\n this.toasterService.popAsync('success', null, this.i18nService.t('hasBeenConfirmed', user.name || user.email));\n this.actionPromise = null;\n }\n\n async events(user: OrganizationUserUserDetailsResponse) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.eventsModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n EntityEventsComponent, this.eventsModalRef);\n\n childComponent.name = user.name || user.email;\n childComponent.organizationId = this.organizationId;\n childComponent.entityId = user.id;\n childComponent.showUser = false;\n childComponent.entity = 'user';\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n async resetPaging() {\n this.pagedUsers = [];\n this.loadMore();\n }\n\n isSearching() {\n return this.searchService.isSearchable(this.searchText);\n }\n\n isPaging() {\n const searching = this.isSearching();\n if (searching && this.didScroll) {\n this.resetPaging();\n }\n return !searching && this.users && this.users.length > this.pageSize;\n }\n\n private async doConfirmation(user: OrganizationUserUserDetailsResponse) {\n const orgKey = await this.cryptoService.getOrgKey(this.organizationId);\n const publicKeyResponse = await this.apiService.getUserPublicKey(user.userId);\n const publicKey = Utils.fromB64ToArray(publicKeyResponse.publicKey);\n try {\n // tslint:disable-next-line\n console.log('User\\'s fingerprint: ' +\n (await this.cryptoService.getFingerprint(user.userId, publicKey.buffer)).join('-'));\n } catch { }\n const key = await this.cryptoService.rsaEncrypt(orgKey.key, publicKey.buffer);\n const request = new OrganizationUserConfirmRequest();\n request.key = key.encryptedString;\n await this.apiService.postOrganizationUserConfirm(this.organizationId, user.id, request);\n }\n\n private removeUser(user: OrganizationUserUserDetailsResponse) {\n let index = this.users.indexOf(user);\n if (index > -1) {\n this.users.splice(index, 1);\n this.resetPaging();\n }\n if (this.statusMap.has(OrganizationUserStatusType.Accepted)) {\n index = this.statusMap.get(OrganizationUserStatusType.Accepted).indexOf(user);\n if (index > -1) {\n this.statusMap.get(OrganizationUserStatusType.Accepted).splice(index, 1);\n }\n }\n if (this.statusMap.has(OrganizationUserStatusType.Invited)) {\n index = this.statusMap.get(OrganizationUserStatusType.Invited).indexOf(user);\n if (index > -1) {\n this.statusMap.get(OrganizationUserStatusType.Invited).splice(index, 1);\n }\n }\n if (this.statusMap.has(OrganizationUserStatusType.Confirmed)) {\n index = this.statusMap.get(OrganizationUserStatusType.Confirmed).indexOf(user);\n if (index > -1) {\n this.statusMap.get(OrganizationUserStatusType.Confirmed).splice(index, 1);\n }\n }\n }\n}\n","
\n

{{'people' | i18n}}

\n
\n
\n \n \n \n
\n
\n \n \n
\n \n
\n
\n\n \n {{'loading' | i18n}}\n\n\n

{{'noUsersInList' | i18n}}

\n \n \n {{'usersNeedConfirmed' | i18n}}\n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n {{u.email}}\n {{'invited' | i18n}}\n {{'accepted' | i18n}}\n {{u.name}}\n \n \n \n {{'userUsingTwoStep' | i18n}}\n \n \n {{'owner' | i18n}}\n {{'admin' | i18n}}\n {{'manager' | i18n}}\n {{'user' | i18n}}\n {{'custom' | i18n}}\n \n \n
\n
\n\n\n\n\n\n","export class OrganizationUserConfirmRequest {\n key: string;\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { CollectionData } from 'jslib/models/data/collectionData';\nimport { Collection } from 'jslib/models/domain/collection';\nimport { OrganizationUserInviteRequest } from 'jslib/models/request/organizationUserInviteRequest';\nimport { OrganizationUserUpdateRequest } from 'jslib/models/request/organizationUserUpdateRequest';\nimport { SelectionReadOnlyRequest } from 'jslib/models/request/selectionReadOnlyRequest';\nimport { CollectionDetailsResponse } from 'jslib/models/response/collectionResponse';\nimport { CollectionView } from 'jslib/models/view/collectionView';\n\nimport { OrganizationUserType } from 'jslib/enums/organizationUserType';\nimport { PermissionsApi } from 'jslib/models/api/permissionsApi';\n\n@Component({\n selector: 'app-user-add-edit',\n templateUrl: 'user-add-edit.component.html',\n})\nexport class UserAddEditComponent implements OnInit {\n @Input() name: string;\n @Input() organizationUserId: string;\n @Input() organizationId: string;\n @Output() onSavedUser = new EventEmitter();\n @Output() onDeletedUser = new EventEmitter();\n\n loading = true;\n editMode: boolean = false;\n title: string;\n emails: string;\n type: OrganizationUserType = OrganizationUserType.User;\n permissions = new PermissionsApi();\n showCustom = false;\n access: 'all' | 'selected' = 'selected';\n collections: CollectionView[] = [];\n formPromise: Promise;\n deletePromise: Promise;\n organizationUserType = OrganizationUserType;\n\n get customUserTypeSelected(): boolean {\n return this.type === OrganizationUserType.Custom;\n }\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private collectionService: CollectionService, private platformUtilsService: PlatformUtilsService) { }\n\n async ngOnInit() {\n this.editMode = this.loading = this.organizationUserId != null;\n await this.loadCollections();\n\n if (this.editMode) {\n this.editMode = true;\n this.title = this.i18nService.t('editUser');\n try {\n const user = await this.apiService.getOrganizationUser(this.organizationId, this.organizationUserId);\n this.access = user.accessAll ? 'all' : 'selected';\n this.type = user.type;\n if (user.type === OrganizationUserType.Custom) {\n this.permissions = user.permissions;\n }\n if (user.collections != null && this.collections != null) {\n user.collections.forEach(s => {\n const collection = this.collections.filter(c => c.id === s.id);\n if (collection != null && collection.length > 0) {\n (collection[0] as any).checked = true;\n collection[0].readOnly = s.readOnly;\n collection[0].hidePasswords = s.hidePasswords;\n }\n });\n }\n } catch { }\n } else {\n this.title = this.i18nService.t('inviteUser');\n }\n\n this.loading = false;\n }\n\n async loadCollections() {\n const response = await this.apiService.getCollections(this.organizationId);\n const collections = response.data.map(r =>\n new Collection(new CollectionData(r as CollectionDetailsResponse)));\n this.collections = await this.collectionService.decryptMany(collections);\n }\n\n check(c: CollectionView, select?: boolean) {\n (c as any).checked = select == null ? !(c as any).checked : select;\n if (!(c as any).checked) {\n c.readOnly = false;\n }\n }\n\n selectAll(select: boolean) {\n this.collections.forEach(c => this.check(c, select));\n }\n\n setRequestPermissions(p: PermissionsApi, clearPermissions: boolean) {\n p.accessBusinessPortal = clearPermissions ?\n false :\n this.permissions.accessBusinessPortal;\n p.accessEventLogs = this.permissions.accessEventLogs = clearPermissions ?\n false :\n this.permissions.accessEventLogs;\n p.accessImportExport = clearPermissions ?\n false :\n this.permissions.accessImportExport;\n p.accessReports = clearPermissions ?\n false :\n this.permissions.accessReports;\n p.manageAllCollections = clearPermissions ?\n false :\n this.permissions.manageAllCollections;\n p.manageAssignedCollections = clearPermissions ?\n false :\n this.permissions.manageAssignedCollections;\n p.manageGroups = clearPermissions ?\n false :\n this.permissions.manageGroups;\n p.manageSso = clearPermissions ?\n false :\n this.permissions.manageSso;\n p.managePolicies = clearPermissions ?\n false :\n this.permissions.managePolicies;\n p.manageUsers = clearPermissions ?\n false :\n this.permissions.manageUsers;\n return p;\n }\n\n async submit() {\n let collections: SelectionReadOnlyRequest[] = null;\n if (this.access !== 'all') {\n collections = this.collections.filter(c => (c as any).checked)\n .map(c => new SelectionReadOnlyRequest(c.id, !!c.readOnly, !!c.hidePasswords));\n }\n\n try {\n if (this.editMode) {\n const request = new OrganizationUserUpdateRequest();\n request.accessAll = this.access === 'all';\n request.type = this.type;\n request.collections = collections;\n request.permissions = this.setRequestPermissions(request.permissions ?? new PermissionsApi(), request.type !== OrganizationUserType.Custom);\n this.formPromise = this.apiService.putOrganizationUser(this.organizationId, this.organizationUserId,\n request);\n } else {\n const request = new OrganizationUserInviteRequest();\n request.emails = this.emails.trim().split(/\\s*,\\s*/);\n request.accessAll = this.access === 'all';\n request.type = this.type;\n request.permissions = this.setRequestPermissions(request.permissions ?? new PermissionsApi(), request.type !== OrganizationUserType.Custom);\n request.collections = collections;\n this.formPromise = this.apiService.postOrganizationUserInvite(this.organizationId, request);\n }\n await this.formPromise;\n this.analytics.eventTrack.next({ action: this.editMode ? 'Edited User' : 'Invited User' });\n this.toasterService.popAsync('success', null,\n this.i18nService.t(this.editMode ? 'editedUserId' : 'invitedUsers', this.name));\n this.onSavedUser.emit();\n } catch { }\n }\n\n async delete() {\n if (!this.editMode) {\n return;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('removeUserConfirmation'), this.name,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.deletePromise = this.apiService.deleteOrganizationUser(this.organizationId, this.organizationUserId);\n await this.deletePromise;\n this.analytics.eventTrack.next({ action: 'Deleted User' });\n this.toasterService.popAsync('success', null, this.i18nService.t('removedUserId', this.name));\n this.onDeletedUser.emit();\n } catch { }\n }\n\n}\n","
\n
\n
\n
\n

\n {{title}}\n {{name}}\n

\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n \n

{{'inviteUserDesc' | i18n}}

\n
\n \n \n {{'inviteMultipleEmailDesc' | i18n : '20'}}\n
\n
\n

\n {{'userType' | i18n}}\n \n \n \n

\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n \n

\n {{'permissions' | i18n}}\n

\n
\n
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n

\n
\n {{'accessControl' | i18n}}\n \n \n \n
\n
\n \n \n
\n

\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n
\n {{'noCollectionsInList' | i18n}}\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 {{'name' | i18n}}{{'hidePasswords' | i18n}}{{'readOnly' | i18n}}
\n \n \n {{c.name}}\n \n \n \n \n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ConstantsService } from 'jslib/services/constants.service';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\n\nimport { OrganizationUserConfirmRequest } from 'jslib/models/request/organizationUserConfirmRequest';\n\nimport { Utils } from 'jslib/misc/utils';\n\n@Component({\n selector: 'app-user-confirm',\n templateUrl: 'user-confirm.component.html',\n})\nexport class UserConfirmComponent implements OnInit {\n @Input() name: string;\n @Input() userId: string;\n @Input() organizationUserId: string;\n @Input() organizationId: string;\n @Output() onConfirmedUser = new EventEmitter();\n\n dontAskAgain = false;\n loading = true;\n fingerprint: string;\n formPromise: Promise;\n\n private publicKey: Uint8Array = null;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private cryptoService: CryptoService, private storageService: StorageService) { }\n\n async ngOnInit() {\n try {\n const publicKeyResponse = await this.apiService.getUserPublicKey(this.userId);\n if (publicKeyResponse != null) {\n this.publicKey = Utils.fromB64ToArray(publicKeyResponse.publicKey);\n const fingerprint = await this.cryptoService.getFingerprint(this.userId, this.publicKey.buffer);\n if (fingerprint != null) {\n this.fingerprint = fingerprint.join('-');\n }\n }\n } catch { }\n this.loading = false;\n }\n\n async submit() {\n if (this.loading) {\n return;\n }\n\n if (this.dontAskAgain) {\n await this.storageService.save(ConstantsService.autoConfirmFingerprints, true);\n }\n\n try {\n this.formPromise = this.doConfirmation();\n await this.formPromise;\n this.analytics.eventTrack.next({ action: 'Confirmed User' });\n this.toasterService.popAsync('success', null, this.i18nService.t('hasBeenConfirmed', this.name));\n this.onConfirmedUser.emit();\n } catch { }\n }\n\n private async doConfirmation() {\n const orgKey = await this.cryptoService.getOrgKey(this.organizationId);\n const key = await this.cryptoService.rsaEncrypt(orgKey.key, this.publicKey.buffer);\n const request = new OrganizationUserConfirmRequest();\n request.key = key.encryptedString;\n await this.apiService.postOrganizationUserConfirm(this.organizationId, this.organizationUserId, request);\n }\n}\n","
\n
\n
\n
\n

\n {{'confirmUser' | i18n}}\n {{name}}\n

\n \n
\n
\n

\n {{'fingerprintEnsureIntegrityVerify' | i18n}}\n \n {{'learnMore' | i18n}}\n

\n

{{fingerprint}}

\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { OrganizationUserUpdateGroupsRequest } from 'jslib/models/request/organizationUserUpdateGroupsRequest';\nimport { GroupResponse } from 'jslib/models/response/groupResponse';\n\nimport { Utils } from 'jslib/misc/utils';\n\n@Component({\n selector: 'app-user-groups',\n templateUrl: 'user-groups.component.html',\n})\nexport class UserGroupsComponent implements OnInit {\n @Input() name: string;\n @Input() organizationUserId: string;\n @Input() organizationId: string;\n @Output() onSavedUser = new EventEmitter();\n\n loading = true;\n groups: GroupResponse[] = [];\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService) { }\n\n async ngOnInit() {\n const groupsResponse = await this.apiService.getGroups(this.organizationId);\n const groups = groupsResponse.data.map(r => r);\n groups.sort(Utils.getSortFunction(this.i18nService, 'name'));\n this.groups = groups;\n\n try {\n const userGroups = await this.apiService.getOrganizationUserGroups(\n this.organizationId, this.organizationUserId);\n if (userGroups != null && this.groups != null) {\n userGroups.forEach(ug => {\n const group = this.groups.filter(g => g.id === ug);\n if (group != null && group.length > 0) {\n (group[0] as any).checked = true;\n }\n });\n }\n } catch { }\n\n this.loading = false;\n }\n\n check(g: GroupResponse, select?: boolean) {\n (g as any).checked = select == null ? !(g as any).checked : select;\n if (!(g as any).checked) {\n (g as any).readOnly = false;\n }\n }\n\n selectAll(select: boolean) {\n this.groups.forEach(g => this.check(g, select));\n }\n\n async submit() {\n const request = new OrganizationUserUpdateGroupsRequest();\n request.groupIds = this.groups.filter(g => (g as any).checked).map(g => g.id);\n\n try {\n this.formPromise = this.apiService.putOrganizationUserGroups(this.organizationId, this.organizationUserId,\n request);\n await this.formPromise;\n this.analytics.eventTrack.next({ action: 'Edited User Groups' });\n this.toasterService.popAsync('success', null, this.i18nService.t('editedGroupsForUser', this.name));\n this.onSavedUser.emit();\n } catch { }\n }\n}\n","
\n
\n
\n
\n

\n {{'groupAccess' | i18n}}\n {{name}}\n

\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n

{{'groupAccessUserDesc' | i18n}}

\n
\n {{'noGroupsInList' | i18n}}\n
\n \n \n \n \n \n \n \n
\n \n \n {{g.name}}\n
\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { PolicyType } from 'jslib/enums/policyType';\n\nimport { EnvironmentService } from 'jslib/abstractions';\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { PolicyResponse } from 'jslib/models/response/policyResponse';\n\nimport { ModalComponent } from '../../modal.component';\n\nimport { PolicyEditComponent } from './policy-edit.component';\n\n@Component({\n selector: 'app-org-policies',\n templateUrl: 'policies.component.html',\n})\nexport class PoliciesComponent implements OnInit {\n @ViewChild('editTemplate', { read: ViewContainerRef, static: true }) editModalRef: ViewContainerRef;\n\n loading = true;\n organizationId: string;\n policies: any[];\n\n // Remove when removing deprecation warning\n enterpriseTokenPromise: Promise;\n userCanAccessBusinessPortal = false;\n\n private enterpriseUrl: string;\n\n private modal: ModalComponent = null;\n private orgPolicies: PolicyResponse[];\n private policiesEnabledMap: Map = new Map();\n\n constructor(private apiService: ApiService, private route: ActivatedRoute,\n private i18nService: I18nService, private componentFactoryResolver: ComponentFactoryResolver,\n private platformUtilsService: PlatformUtilsService, private userService: UserService,\n private router: Router, private environmentService: EnvironmentService) { }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n const organization = await this.userService.getOrganization(this.organizationId);\n if (organization == null || !organization.usePolicies) {\n this.router.navigate(['/organizations', this.organizationId]);\n return;\n }\n this.userCanAccessBusinessPortal = organization.canAccessBusinessPortal;\n this.policies = [\n {\n name: this.i18nService.t('twoStepLogin'),\n description: this.i18nService.t('twoStepLoginPolicyDesc'),\n type: PolicyType.TwoFactorAuthentication,\n enabled: false,\n display: true,\n },\n {\n name: this.i18nService.t('masterPass'),\n description: this.i18nService.t('masterPassPolicyDesc'),\n type: PolicyType.MasterPassword,\n enabled: false,\n display: true,\n },\n {\n name: this.i18nService.t('passwordGenerator'),\n description: this.i18nService.t('passwordGeneratorPolicyDesc'),\n type: PolicyType.PasswordGenerator,\n enabled: false,\n display: true,\n },\n {\n name: this.i18nService.t('singleOrg'),\n description: this.i18nService.t('singleOrgDesc'),\n type: PolicyType.SingleOrg,\n enabled: false,\n display: true,\n },\n {\n name: this.i18nService.t('requireSso'),\n description: this.i18nService.t('requireSsoPolicyDesc'),\n type: PolicyType.RequireSso,\n enabled: false,\n display: organization.useSso,\n },\n {\n name: this.i18nService.t('personalOwnership'),\n description: this.i18nService.t('personalOwnershipPolicyDesc'),\n type: PolicyType.PersonalOwnership,\n enabled: false,\n display: true,\n },\n {\n name: this.i18nService.t('disableSend'),\n description: this.i18nService.t('disableSendPolicyDesc'),\n type: PolicyType.DisableSend,\n enabled: false,\n display: true,\n },\n ];\n await this.load();\n\n // Handle policies component launch from Event message\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n if (qParams.policyId != null) {\n const policyIdFromEvents: string = qParams.policyId;\n for (const orgPolicy of this.orgPolicies) {\n if (orgPolicy.id === policyIdFromEvents) {\n for (let i = 0; i < this.policies.length; i++) {\n if (this.policies[i].type === orgPolicy.type) {\n this.edit(this.policies[i]);\n break;\n }\n }\n break;\n }\n }\n }\n\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n });\n\n // Remove when removing deprecation warning\n this.enterpriseUrl = 'https://portal.bitwarden.com';\n if (this.environmentService.enterpriseUrl != null) {\n this.enterpriseUrl = this.environmentService.enterpriseUrl;\n } else if (this.environmentService.baseUrl != null) {\n this.enterpriseUrl = this.environmentService.baseUrl + '/portal';\n }\n }\n\n async load() {\n const response = await this.apiService.getPolicies(this.organizationId);\n this.orgPolicies = response.data != null && response.data.length > 0 ? response.data : [];\n this.orgPolicies.forEach(op => {\n this.policiesEnabledMap.set(op.type, op.enabled);\n });\n this.policies.forEach(p => {\n p.enabled = this.policiesEnabledMap.has(p.type) && this.policiesEnabledMap.get(p.type);\n });\n this.loading = false;\n }\n\n edit(p: any) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.editModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n PolicyEditComponent, this.editModalRef);\n\n childComponent.name = p.name;\n childComponent.description = p.description;\n childComponent.type = p.type;\n childComponent.organizationId = this.organizationId;\n childComponent.policiesEnabledMap = this.policiesEnabledMap;\n childComponent.onSavedPolicy.subscribe(() => {\n this.modal.close();\n this.load();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n\n // Remove when removing deprecation warning\n async goToEnterprisePortal() {\n if (this.enterpriseTokenPromise != null) {\n return;\n }\n try {\n this.enterpriseTokenPromise = this.apiService.getEnterprisePortalSignInToken();\n const token = await this.enterpriseTokenPromise;\n if (token != null) {\n const userId = await this.userService.getUserId();\n this.platformUtilsService.launchUri(this.enterpriseUrl + '/login?userId=' + userId +\n '&token=' + (window as any).encodeURIComponent(token) + '&organizationId=' + this.organizationId);\n }\n } catch { }\n this.enterpriseTokenPromise = null;\n }\n}\n","\n

{{'webPoliciesDeprecationWarning' | i18n}}

\n \n
\n
\n

{{'policies' | i18n}}

\n
\n\n \n {{'loading' | i18n}}\n\n\n \n \n \n \n \n
\n {{p.name}}\n {{'enabled' | i18n}}\n {{p.description}}\n
\n\n","// Using index.ts is deprecated, please do not extend\nexport { ApiService } from './api.service';\nexport { AppIdService } from './appId.service';\nexport { AuditService } from './audit.service';\nexport { AuthService } from './auth.service';\nexport { CipherService } from './cipher.service';\nexport { CollectionService } from './collection.service';\nexport { CryptoService } from './crypto.service';\nexport { EnvironmentService } from './environment.service';\nexport { FolderService } from './folder.service';\nexport { I18nService } from './i18n.service';\nexport { LogService } from './log.service';\nexport { MessagingService } from './messaging.service';\nexport { PasswordGenerationService } from './passwordGeneration.service';\nexport { PlatformUtilsService } from './platformUtils.service';\nexport { SearchService } from './search.service';\nexport { SettingsService } from './settings.service';\nexport { StorageService } from './storage.service';\nexport { StateService } from './state.service';\nexport { SyncService } from './sync.service';\nexport { TokenService } from './token.service';\nexport { TotpService } from './totp.service';\nexport { UserService } from './user.service';\nexport { VaultTimeoutService } from './vaultTimeout.service';\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { PolicyType } from 'jslib/enums/policyType';\n\nimport { PolicyRequest } from 'jslib/models/request/policyRequest';\n\nimport { PolicyResponse } from 'jslib/models/response/policyResponse';\n\n@Component({\n selector: 'app-policy-edit',\n templateUrl: 'policy-edit.component.html',\n})\nexport class PolicyEditComponent implements OnInit {\n @Input() name: string;\n @Input() description: string;\n @Input() type: PolicyType;\n @Input() organizationId: string;\n @Input() policiesEnabledMap: Map = new Map();\n @Output() onSavedPolicy = new EventEmitter();\n\n policyType = PolicyType;\n loading = true;\n enabled = false;\n formPromise: Promise;\n passwordScores: any[];\n defaultTypes: any[];\n\n // Master password\n\n masterPassMinComplexity?: number = null;\n masterPassMinLength?: number;\n masterPassRequireUpper?: number;\n masterPassRequireLower?: number;\n masterPassRequireNumbers?: number;\n masterPassRequireSpecial?: number;\n\n // Password generator\n\n passGenDefaultType?: string;\n passGenMinLength?: number;\n passGenUseUpper?: boolean;\n passGenUseLower?: boolean;\n passGenUseNumbers?: boolean;\n passGenUseSpecial?: boolean;\n passGenMinNumbers?: number;\n passGenMinSpecial?: number;\n passGenMinNumberWords?: number;\n passGenCapitalize?: boolean;\n passGenIncludeNumber?: boolean;\n\n private policy: PolicyResponse;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService) {\n this.passwordScores = [\n { name: '-- ' + i18nService.t('select') + ' --', value: null },\n { name: i18nService.t('weak') + ' (0)', value: 0 },\n { name: i18nService.t('weak') + ' (1)', value: 1 },\n { name: i18nService.t('weak') + ' (2)', value: 2 },\n { name: i18nService.t('good') + ' (3)', value: 3 },\n { name: i18nService.t('strong') + ' (4)', value: 4 },\n ];\n this.defaultTypes = [\n { name: i18nService.t('userPreference'), value: null },\n { name: i18nService.t('password'), value: 'password' },\n { name: i18nService.t('passphrase'), value: 'passphrase' },\n ];\n }\n\n async ngOnInit() {\n await this.load();\n this.loading = false;\n }\n\n async load() {\n try {\n this.policy = await this.apiService.getPolicy(this.organizationId, this.type);\n\n if (this.policy != null) {\n this.enabled = this.policy.enabled;\n if (this.policy.data != null) {\n switch (this.type) {\n case PolicyType.PasswordGenerator:\n this.passGenDefaultType = this.policy.data.defaultType;\n this.passGenMinLength = this.policy.data.minLength;\n this.passGenUseUpper = this.policy.data.useUpper;\n this.passGenUseLower = this.policy.data.useLower;\n this.passGenUseNumbers = this.policy.data.useNumbers;\n this.passGenUseSpecial = this.policy.data.useSpecial;\n this.passGenMinNumbers = this.policy.data.minNumbers;\n this.passGenMinSpecial = this.policy.data.minSpecial;\n this.passGenMinNumberWords = this.policy.data.minNumberWords;\n this.passGenCapitalize = this.policy.data.capitalize;\n this.passGenIncludeNumber = this.policy.data.includeNumber;\n break;\n case PolicyType.MasterPassword:\n this.masterPassMinComplexity = this.policy.data.minComplexity;\n this.masterPassMinLength = this.policy.data.minLength;\n this.masterPassRequireUpper = this.policy.data.requireUpper;\n this.masterPassRequireLower = this.policy.data.requireLower;\n this.masterPassRequireNumbers = this.policy.data.requireNumbers;\n this.masterPassRequireSpecial = this.policy.data.requireSpecial;\n break;\n default:\n break;\n }\n }\n }\n } catch (e) {\n if (e.statusCode === 404) {\n this.enabled = false;\n } else {\n throw e;\n }\n }\n }\n\n async submit() {\n if (this.preValidate()) {\n const request = new PolicyRequest();\n request.enabled = this.enabled;\n request.type = this.type;\n request.data = null;\n switch (this.type) {\n case PolicyType.PasswordGenerator:\n request.data = {\n defaultType: this.passGenDefaultType,\n minLength: this.passGenMinLength || null,\n useUpper: this.passGenUseUpper,\n useLower: this.passGenUseLower,\n useNumbers: this.passGenUseNumbers,\n useSpecial: this.passGenUseSpecial,\n minNumbers: this.passGenMinNumbers || null,\n minSpecial: this.passGenMinSpecial || null,\n minNumberWords: this.passGenMinNumberWords || null,\n capitalize: this.passGenCapitalize,\n includeNumber: this.passGenIncludeNumber,\n };\n break;\n case PolicyType.MasterPassword:\n request.data = {\n minComplexity: this.masterPassMinComplexity || null,\n minLength: this.masterPassMinLength || null,\n requireUpper: this.masterPassRequireUpper,\n requireLower: this.masterPassRequireLower,\n requireNumbers: this.masterPassRequireNumbers,\n requireSpecial: this.masterPassRequireSpecial,\n };\n break;\n default:\n break;\n }\n try {\n this.formPromise = this.apiService.putPolicy(this.organizationId, this.type, request);\n await this.formPromise;\n this.analytics.eventTrack.next({ action: 'Edited Policy' });\n this.toasterService.popAsync('success', null, this.i18nService.t('editedPolicyId', this.name));\n this.onSavedPolicy.emit();\n } catch { }\n }\n }\n\n get checkboxDesc(): string {\n return this.type === PolicyType.PersonalOwnership ? this.i18nService.t('personalOwnershipCheckboxDesc') :\n this.i18nService.t('enabled');\n }\n\n private preValidate(): boolean {\n switch (this.type) {\n case PolicyType.RequireSso:\n // Don't need prevalidation checks if submitting to disable\n if (!this.enabled) {\n return true;\n }\n // Have SingleOrg policy enabled?\n if (!(this.policiesEnabledMap.has(PolicyType.SingleOrg)\n && this.policiesEnabledMap.get(PolicyType.SingleOrg))) {\n this.toasterService.popAsync('error', null, this.i18nService.t('requireSsoPolicyReqError'));\n return false;\n }\n return true;\n\n case PolicyType.SingleOrg:\n // Don't need prevalidation checks if submitting to enable\n if (this.enabled) {\n return true;\n }\n // If RequireSso Policy is enabled prevent submittal\n if (this.policiesEnabledMap.has(PolicyType.RequireSso)\n && this.policiesEnabledMap.get(PolicyType.RequireSso)) {\n this.toasterService.popAsync('error', null, this.i18nService.t('disableRequireSsoError'));\n return false;\n }\n return true;\n\n default:\n return true;\n }\n }\n}\n","
\n
\n
\n
\n

{{'editPolicy' | i18n}} - {{name}}

\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n

{{description}}

\n \n {{'twoStepLoginPolicyWarning' | i18n}}\n \n \n {{'singleOrgPolicyWarning' | i18n}}\n \n \n \n {{'requireSsoPolicyReq' | i18n}}\n \n \n {{'requireSsoExemption' | i18n}}\n \n \n \n {{'personalOwnershipExemption' | i18n}}\n \n \n {{'disableSendExemption' | i18n}}\n \n
\n
\n \n \n
\n
\n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n
\n
\n \n \n
\n
\n

{{'password' | i18n}}

\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n

{{'passphrase' | i18n}}

\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n ComponentFactoryResolver,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\n\nimport { OrganizationUpdateRequest } from 'jslib/models/request/organizationUpdateRequest';\nimport { OrganizationResponse } from 'jslib/models/response/organizationResponse';\n\nimport { ModalComponent } from '../../modal.component';\nimport { ApiKeyComponent } from '../../settings/api-key.component';\nimport { PurgeVaultComponent } from '../../settings/purge-vault.component';\nimport { TaxInfoComponent } from '../../settings/tax-info.component';\nimport { DeleteOrganizationComponent } from './delete-organization.component';\n\n@Component({\n selector: 'app-org-account',\n templateUrl: 'account.component.html',\n})\nexport class AccountComponent {\n @ViewChild('deleteOrganizationTemplate', { read: ViewContainerRef, static: true }) deleteModalRef: ViewContainerRef;\n @ViewChild('purgeOrganizationTemplate', { read: ViewContainerRef, static: true }) purgeModalRef: ViewContainerRef;\n @ViewChild('apiKeyTemplate', { read: ViewContainerRef, static: true }) apiKeyModalRef: ViewContainerRef;\n @ViewChild('rotateApiKeyTemplate', { read: ViewContainerRef, static: true }) rotateApiKeyModalRef: ViewContainerRef;\n @ViewChild(TaxInfoComponent) taxInfo: TaxInfoComponent;\n\n selfHosted = false;\n loading = true;\n canUseApi = false;\n org: OrganizationResponse;\n formPromise: Promise;\n taxFormPromise: Promise;\n\n private organizationId: string;\n private modal: ModalComponent = null;\n\n constructor(private componentFactoryResolver: ComponentFactoryResolver,\n private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private route: ActivatedRoute, private syncService: SyncService,\n private platformUtilsService: PlatformUtilsService) { }\n\n async ngOnInit() {\n this.selfHosted = this.platformUtilsService.isSelfHost();\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n try {\n this.org = await this.apiService.getOrganization(this.organizationId);\n this.canUseApi = this.org.useApi;\n } catch { }\n });\n this.loading = false;\n }\n\n async submit() {\n try {\n const request = new OrganizationUpdateRequest();\n request.name = this.org.name;\n request.businessName = this.org.businessName;\n request.billingEmail = this.org.billingEmail;\n request.identifier = this.org.identifier;\n this.formPromise = this.apiService.putOrganization(this.organizationId, request).then(() => {\n return this.syncService.fullSync(true);\n });\n await this.formPromise;\n this.analytics.eventTrack.next({ action: 'Updated Organization Settings' });\n this.toasterService.popAsync('success', null, this.i18nService.t('organizationUpdated'));\n } catch { }\n }\n\n async submitTaxInfo() {\n this.taxFormPromise = this.taxInfo.submitTaxInfo();\n await this.taxFormPromise;\n this.analytics.eventTrack.next({ action: 'Updated Organization Tax Info' });\n this.toasterService.popAsync('success', null, this.i18nService.t('taxInfoUpdated'));\n }\n\n deleteOrganization() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.deleteModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n DeleteOrganizationComponent, this.deleteModalRef);\n childComponent.organizationId = this.organizationId;\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n purgeVault() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.purgeModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(PurgeVaultComponent, this.purgeModalRef);\n childComponent.organizationId = this.organizationId;\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n viewApiKey() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.apiKeyModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(ApiKeyComponent, this.apiKeyModalRef);\n childComponent.keyType = 'organization';\n childComponent.entityId = this.organizationId;\n childComponent.postKey = this.apiService.postOrganizationApiKey.bind(this.apiService);\n childComponent.scope = 'api.organization';\n childComponent.grantType = 'client_credentials';\n childComponent.apiKeyTitle = 'apiKey';\n childComponent.apiKeyWarning = 'apiKeyWarning';\n childComponent.apiKeyDescription = 'apiKeyDesc';\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n rotateApiKey() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.rotateApiKeyModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(ApiKeyComponent, this.rotateApiKeyModalRef);\n childComponent.keyType = 'organization';\n childComponent.isRotation = true;\n childComponent.entityId = this.organizationId;\n childComponent.postKey = this.apiService.postOrganizationRotateApiKey.bind(this.apiService);\n childComponent.scope = 'api.organization';\n childComponent.grantType = 'client_credentials';\n childComponent.apiKeyTitle = 'apiKey';\n childComponent.apiKeyWarning = 'apiKeyWarning';\n childComponent.apiKeyDescription = 'apiKeyRotateDesc';\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n}\n","
\n

{{'myOrganization' | i18n}}

\n
\n
\n \n {{'loading' | i18n}}\n
\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n
\n
\n \n
\n\n
\n

{{'apiKey' | i18n}}

\n
\n

\n {{'apiKeyDesc' | i18n}}\n \n {{'learnMore' | i18n}}\n \n

\n \n \n
\n
\n

{{'taxInformation' | i18n}}

\n
\n

{{'taxInformationDesc' | i18n}}

\n
\n \n {{'loading' | i18n}}\n
\n
\n \n \n
\n
\n

{{'dangerZone' | i18n}}

\n
\n
\n
\n

{{'dangerZoneDesc' | i18n}}

\n \n \n
\n
\n\n\n\n\n","import { TaxInfoUpdateRequest } from './taxInfoUpdateRequest';\n\nexport class OrganizationTaxInfoUpdateRequest extends TaxInfoUpdateRequest {\n taxId: string;\n line1: string;\n line2: string;\n city: string;\n state: string;\n}\n","export class TaxInfoUpdateRequest {\n country: string;\n postalCode: string;\n}\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { PasswordVerificationRequest } from 'jslib/models/request/passwordVerificationRequest';\n\n@Component({\n selector: 'app-delete-organization',\n templateUrl: 'delete-organization.component.html',\n})\nexport class DeleteOrganizationComponent {\n organizationId: string;\n\n masterPassword: string;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private cryptoService: CryptoService, private router: Router) { }\n\n async submit() {\n if (this.masterPassword == null || this.masterPassword === '') {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n const request = new PasswordVerificationRequest();\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n try {\n this.formPromise = this.apiService.deleteOrganization(this.organizationId, request);\n await this.formPromise;\n this.analytics.eventTrack.next({ action: 'Deleted Organization' });\n this.toasterService.popAsync('success', this.i18nService.t('organizationDeleted'),\n this.i18nService.t('organizationDeletedDesc'));\n this.router.navigate(['/']);\n } catch { }\n }\n}\n","
\n
\n
\n
\n

{{'deleteOrganization' | i18n}}

\n \n
\n
\n

{{'deleteOrganizationDesc' | i18n}}

\n {{'deleteOrganizationWarning' | i18n}}\n \n \n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { UserBillingComponent } from '../../settings/user-billing.component';\n\n@Component({\n selector: 'app-org-billing',\n templateUrl: '../../settings/user-billing.component.html',\n})\nexport class OrganizationBillingComponent extends UserBillingComponent implements OnInit {\n constructor(apiService: ApiService, i18nService: I18nService,\n analytics: Angulartics2, toasterService: ToasterService,\n private route: ActivatedRoute, platformUtilsService: PlatformUtilsService) {\n super(apiService, i18nService, analytics, toasterService, platformUtilsService);\n }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n await this.load();\n this.firstLoaded = true;\n });\n }\n}\n","export class WebConstants {\n static readonly stripeTestKey = 'pk_test_KPoCfZXu7mznb9uSCPZ2JpTD';\n static readonly stripeLiveKey = 'pk_live_bpN0P37nMxrMQkcaHXtAybJk';\n static readonly btSandboxKey = 'sandbox_r72q8jq6_9pnxkwm75f87sdc2';\n static readonly btProductionKey = 'production_qfbsv8kc_njj2zjtyngtjmbjd';\n static readonly paypal = {\n businessIdProduction: '4ZDA7DLUUJGMN',\n businessIdSandbox: 'AD3LAUZSNVPJY',\n buttonActionProduction: 'https://www.paypal.com/cgi-bin/webscr',\n buttonActionSandbox: 'https://www.sandbox.paypal.com/cgi-bin/webscr',\n };\n}\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { OrganizationSubscriptionResponse } from 'jslib/models/response/organizationSubscriptionResponse';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { PlanType } from 'jslib/enums/planType';\n\n@Component({\n selector: 'app-org-subscription',\n templateUrl: 'organization-subscription.component.html',\n})\nexport class OrganizationSubscriptionComponent implements OnInit {\n loading = false;\n firstLoaded = false;\n organizationId: string;\n adjustSeatsAdd = true;\n showAdjustSeats = false;\n adjustStorageAdd = true;\n showAdjustStorage = false;\n showUpdateLicense = false;\n showDownloadLicense = false;\n showChangePlan = false;\n sub: OrganizationSubscriptionResponse;\n selfHosted = false;\n\n cancelPromise: Promise;\n reinstatePromise: Promise;\n\n constructor(private apiService: ApiService, private platformUtilsService: PlatformUtilsService,\n private i18nService: I18nService, private analytics: Angulartics2,\n private toasterService: ToasterService, private messagingService: MessagingService,\n private route: ActivatedRoute) {\n this.selfHosted = platformUtilsService.isSelfHost();\n }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n await this.load();\n this.firstLoaded = true;\n });\n }\n\n async load() {\n if (this.loading) {\n return;\n }\n this.loading = true;\n this.sub = await this.apiService.getOrganizationSubscription(this.organizationId);\n this.loading = false;\n }\n\n async reinstate() {\n if (this.loading) {\n return;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(this.i18nService.t('reinstateConfirmation'),\n this.i18nService.t('reinstateSubscription'), this.i18nService.t('yes'), this.i18nService.t('cancel'));\n if (!confirmed) {\n return;\n }\n\n try {\n this.reinstatePromise = this.apiService.postOrganizationReinstate(this.organizationId);\n await this.reinstatePromise;\n this.analytics.eventTrack.next({ action: 'Reinstated Plan' });\n this.toasterService.popAsync('success', null, this.i18nService.t('reinstated'));\n this.load();\n } catch { }\n }\n\n async cancel() {\n if (this.loading) {\n return;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(this.i18nService.t('cancelConfirmation'),\n this.i18nService.t('cancelSubscription'), this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return;\n }\n\n try {\n this.cancelPromise = this.apiService.postOrganizationCancel(this.organizationId);\n await this.cancelPromise;\n this.analytics.eventTrack.next({ action: 'Canceled Plan' });\n this.toasterService.popAsync('success', null, this.i18nService.t('canceledSubscription'));\n this.load();\n } catch { }\n }\n\n async changePlan() {\n if (this.subscription == null && this.sub.planType === PlanType.Free) {\n this.showChangePlan = !this.showChangePlan;\n return;\n }\n const contactSupport = await this.platformUtilsService.showDialog(this.i18nService.t('changeBillingPlanDesc'),\n this.i18nService.t('changeBillingPlan'), this.i18nService.t('contactSupport'), this.i18nService.t('close'));\n if (contactSupport) {\n this.platformUtilsService.launchUri('https://bitwarden.com/contact');\n }\n }\n\n closeChangePlan(changed: boolean) {\n this.showChangePlan = false;\n }\n\n downloadLicense() {\n this.showDownloadLicense = !this.showDownloadLicense;\n }\n\n closeDownloadLicense() {\n this.showDownloadLicense = false;\n }\n\n updateLicense() {\n if (this.loading) {\n return;\n }\n this.showUpdateLicense = true;\n }\n\n closeUpdateLicense(updated: boolean) {\n this.showUpdateLicense = false;\n if (updated) {\n this.load();\n this.messagingService.send('updatedOrgLicense');\n }\n }\n\n adjustSeats(add: boolean) {\n this.adjustSeatsAdd = add;\n this.showAdjustSeats = true;\n }\n\n closeSeats(load: boolean) {\n this.showAdjustSeats = false;\n if (load) {\n this.load();\n }\n }\n\n adjustStorage(add: boolean) {\n this.adjustStorageAdd = add;\n this.showAdjustStorage = true;\n }\n\n closeStorage(load: boolean) {\n this.showAdjustStorage = false;\n if (load) {\n this.load();\n }\n }\n\n get isExpired() {\n return this.sub != null && this.sub.expiration != null &&\n new Date(this.sub.expiration) < new Date();\n }\n\n get subscriptionMarkedForCancel() {\n return this.subscription != null && !this.subscription.cancelled && this.subscription.cancelAtEndDate;\n }\n\n get subscription() {\n return this.sub != null ? this.sub.subscription : null;\n }\n\n get nextInvoice() {\n return this.sub != null ? this.sub.upcomingInvoice : null;\n }\n\n get storagePercentage() {\n return this.sub != null && this.sub.maxStorageGb ?\n +(100 * (this.sub.storageGb / this.sub.maxStorageGb)).toFixed(2) : 0;\n }\n\n get storageProgressWidth() {\n return this.storagePercentage < 5 ? 5 : 0;\n }\n\n get billingInterval() {\n const monthly = !this.sub.plan.isAnnual;\n return monthly ? 'month' : 'year';\n }\n\n get storageGbPrice() {\n return this.sub.plan.additionalStoragePricePerGb;\n }\n\n get seatPrice() {\n return this.sub.plan.seatPrice;\n }\n\n get canAdjustSeats() {\n return this.sub.plan.hasAdditionalSeatsOption;\n }\n\n get canDownloadLicense() {\n return (this.sub.planType !== PlanType.Free && this.subscription == null) ||\n (this.subscription != null && !this.subscription.cancelled);\n }\n}\n","
\n

\n {{'subscription' | i18n}}\n \n \n {{'loading' | i18n}}\n \n

\n
\n\n \n {{'loading' | i18n}}\n\n\n \n {{'subscriptionCanceled' | i18n}}\n \n

{{'subscriptionPendingCanceled' | i18n}}

\n \n
\n
\n
{{'billingPlan' | i18n}}
\n
{{sub.plan.name}}
\n
{{'expiration' | i18n}}
\n
\n {{sub.expiration | date:'mediumDate'}}\n \n \n {{'licenseIsExpired' | i18n}}\n \n
\n
{{'neverExpires' | i18n}}
\n
\n
\n
\n
\n
{{'billingPlan' | i18n}}
\n
{{sub.plan.name}}
\n \n
{{'status' | i18n}}
\n
\n {{subscription.status || '-'}}\n {{'pendingCancellation' | i18n}}\n
\n
{{'nextCharge' | i18n}}
\n
{{nextInvoice ? ((nextInvoice.date | date: 'mediumDate') + ', ' + (nextInvoice.amount | currency:'$'))\n : '-'}}\n
\n
\n
\n
\n
\n {{'details' | i18n}}\n \n \n \n \n \n \n \n
\n {{i.name}} {{i.quantity > 1 ? '×' + i.quantity : ''}} @ {{i.amount | currency:'$'}}\n \n {{(i.quantity * i.amount) | currency:'$'}} /{{i.interval | i18n}}\n
\n
\n
\n \n
\n \n \n {{'manageSubscription' | i18n}}\n \n
\n
\n
\n \n

{{'updateLicense' | i18n}}

\n \n
\n
\n
\n \n
\n \n \n \n
\n \n
\n \n
\n

{{'userSeats' | i18n}}

\n

{{'subscriptionUserSeats' | i18n : sub.seats}}

\n \n
\n
\n \n \n
\n \n
\n
\n

{{'storage' | i18n}}

\n

{{'subscriptionStorage' | i18n : sub.maxStorageGb || 0 : sub.storageName || '0 MB'}}

\n
\n
\n {{(storagePercentage / 100) | percent}}
\n
\n \n
\n
\n \n \n
\n \n
\n
\n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { PlanType } from 'jslib/enums/planType';\nimport { ProductType } from 'jslib/enums/productType';\n\n@Component({\n selector: 'app-change-plan',\n templateUrl: 'change-plan.component.html',\n})\nexport class ChangePlanComponent {\n @Input() organizationId: string;\n @Output() onChanged = new EventEmitter();\n @Output() onCanceled = new EventEmitter();\n\n formPromise: Promise;\n defaultUpgradePlan: PlanType = PlanType.FamiliesAnnually;\n defaultUpgradeProduct: ProductType = ProductType.Families;\n\n constructor(private apiService: ApiService, private platformUtilsService: PlatformUtilsService) { }\n\n async submit() {\n try {\n this.platformUtilsService.eventTrack('Changed Plan');\n this.onChanged.emit();\n } catch { }\n }\n\n cancel() {\n this.onCanceled.emit();\n }\n}\n","
\n
\n \n

{{'changeBillingPlan' | i18n}}

\n

{{'changeBillingPlanUpgrade' | i18n}}

\n \n \n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\n@Component({\n selector: 'app-download-license',\n templateUrl: 'download-license.component.html',\n})\nexport class DownloadLicenseComponent {\n @Input() organizationId: string;\n @Output() onDownloaded = new EventEmitter();\n @Output() onCanceled = new EventEmitter();\n\n installationId: string;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private platformUtilsService: PlatformUtilsService) { }\n\n async submit() {\n if (this.installationId == null || this.installationId === '') {\n return;\n }\n\n try {\n this.formPromise = this.apiService.getOrganizationLicense(this.organizationId, this.installationId);\n const license = await this.formPromise;\n const licenseString = JSON.stringify(license, null, 2);\n this.platformUtilsService.saveFile(window, licenseString, null, 'bitwarden_organization_license.json');\n this.platformUtilsService.eventTrack('Downloaded License');\n this.onDownloaded.emit();\n } catch { }\n }\n\n cancel() {\n this.onCanceled.emit();\n }\n}\n","
\n
\n \n

{{'downloadLicense' | i18n}}

\n
\n
\n
\n \n \n \n \n
\n \n
\n
\n \n \n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\n\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { SeatRequest } from 'jslib/models/request/seatRequest';\n\nimport { PaymentComponent } from '../../settings/payment.component';\n\n@Component({\n selector: 'app-adjust-seats',\n templateUrl: 'adjust-seats.component.html',\n})\nexport class AdjustSeatsComponent {\n @Input() seatPrice = 0;\n @Input() add = true;\n @Input() organizationId: string;\n @Input() interval = 'year';\n @Output() onAdjusted = new EventEmitter();\n @Output() onCanceled = new EventEmitter();\n\n @ViewChild(PaymentComponent, { static: true }) paymentComponent: PaymentComponent;\n\n seatAdjustment = 0;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private router: Router, private activatedRoute: ActivatedRoute) { }\n\n async submit() {\n try {\n const request = new SeatRequest();\n request.seatAdjustment = this.seatAdjustment;\n if (!this.add) {\n request.seatAdjustment *= -1;\n }\n\n let paymentFailed = false;\n const action = async () => {\n const result = await this.apiService.postOrganizationSeat(this.organizationId, request);\n if (result != null && result.paymentIntentClientSecret != null) {\n try {\n await this.paymentComponent.handleStripeCardPayment(result.paymentIntentClientSecret, null);\n } catch {\n paymentFailed = true;\n }\n }\n };\n this.formPromise = action();\n await this.formPromise;\n this.analytics.eventTrack.next({ action: this.add ? 'Added Seats' : 'Removed Seats' });\n this.onAdjusted.emit(this.seatAdjustment);\n if (paymentFailed) {\n this.toasterService.popAsync({\n body: this.i18nService.t('couldNotChargeCardPayInvoice'),\n type: 'warning',\n timeout: 10000,\n });\n this.router.navigate(['../billing'], { relativeTo: this.activatedRoute });\n } else {\n this.toasterService.popAsync('success', null,\n this.i18nService.t('adjustedSeats', request.seatAdjustment.toString()));\n }\n } catch { }\n }\n\n cancel() {\n this.onCanceled.emit();\n }\n\n get adjustedSeatTotal(): number {\n return this.seatAdjustment * this.seatPrice;\n }\n}\n","
\n
\n \n

{{(add ? 'addSeats' : 'removeSeats') | i18n}}

\n
\n
\n \n \n
\n
\n
\n {{'total' | i18n}}: {{seatAdjustment || 0}} × {{seatPrice | currency:'$'}} = {{adjustedSeatTotal\n | currency:'$'}} /{{interval | i18n}}\n
\n \n \n \n {{(add ? 'seatsAddNote' : 'seatsRemoveNote') | i18n}}\n \n
\n
\n\n","import { Component } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\n@Component({\n selector: 'app-org-settings',\n templateUrl: 'settings.component.html',\n})\nexport class SettingsComponent {\n access2fa = false;\n selfHosted: boolean;\n\n constructor(private route: ActivatedRoute, private userService: UserService,\n private platformUtilsService: PlatformUtilsService) { }\n\n ngOnInit() {\n this.route.parent.params.subscribe(async params => {\n this.selfHosted = await this.platformUtilsService.isSelfHost();\n const organization = await this.userService.getOrganization(params.organizationId);\n this.access2fa = organization.use2fa;\n });\n }\n}\n","\n","import {\n Component,\n ComponentFactoryResolver,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\n\nimport { TwoFactorDuoComponent } from '../../settings/two-factor-duo.component';\nimport { TwoFactorSetupComponent as BaseTwoFactorSetupComponent } from '../../settings/two-factor-setup.component';\n\n@Component({\n selector: 'app-two-factor-setup',\n templateUrl: '../../settings/two-factor-setup.component.html',\n})\nexport class TwoFactorSetupComponent extends BaseTwoFactorSetupComponent {\n constructor(apiService: ApiService, userService: UserService,\n componentFactoryResolver: ComponentFactoryResolver, messagingService: MessagingService,\n policyService: PolicyService, private route: ActivatedRoute) {\n super(apiService, userService, componentFactoryResolver, messagingService, policyService);\n }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n await super.ngOnInit();\n });\n }\n\n manage(type: TwoFactorProviderType) {\n switch (type) {\n case TwoFactorProviderType.OrganizationDuo:\n const duoComp = this.openModal(this.duoModalRef, TwoFactorDuoComponent);\n duoComp.type = TwoFactorProviderType.OrganizationDuo;\n duoComp.organizationId = this.organizationId;\n duoComp.onUpdated.subscribe((enabled: boolean) => {\n this.updateStatus(enabled, TwoFactorProviderType.OrganizationDuo);\n });\n break;\n default:\n break;\n }\n }\n\n protected getTwoFactorProviders() {\n return this.apiService.getTwoFactorOrganizationProviders(this.organizationId);\n }\n\n protected filterProvider(type: TwoFactorProviderType) {\n return type !== TwoFactorProviderType.OrganizationDuo;\n }\n}\n","import {\n Component,\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { UpdateTwoFactorAuthenticatorRequest } from 'jslib/models/request/updateTwoFactorAuthenticatorRequest';\nimport { TwoFactorAuthenticatorResponse } from 'jslib/models/response/twoFactorAuthenticatorResponse';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\n\nimport { TwoFactorBaseComponent } from './two-factor-base.component';\n\n@Component({\n selector: 'app-two-factor-authenticator',\n templateUrl: 'two-factor-authenticator.component.html',\n})\nexport class TwoFactorAuthenticatorComponent extends TwoFactorBaseComponent implements OnInit, OnDestroy {\n type = TwoFactorProviderType.Authenticator;\n key: string;\n token: string;\n formPromise: Promise;\n\n private qrScript: HTMLScriptElement;\n\n constructor(apiService: ApiService, i18nService: I18nService,\n analytics: Angulartics2, toasterService: ToasterService,\n private userService: UserService, platformUtilsService: PlatformUtilsService) {\n super(apiService, i18nService, analytics, toasterService, platformUtilsService);\n this.qrScript = window.document.createElement('script');\n this.qrScript.src = 'scripts/qrious.min.js';\n this.qrScript.async = true;\n }\n\n ngOnInit() {\n window.document.body.appendChild(this.qrScript);\n }\n\n ngOnDestroy() {\n window.document.body.removeChild(this.qrScript);\n }\n\n auth(authResponse: any) {\n super.auth(authResponse);\n return this.processResponse(authResponse.response);\n }\n\n submit() {\n if (this.enabled) {\n return super.disable(this.formPromise);\n } else {\n return this.enable();\n }\n }\n\n protected enable() {\n const request = new UpdateTwoFactorAuthenticatorRequest();\n request.masterPasswordHash = this.masterPasswordHash;\n request.token = this.token;\n request.key = this.key;\n\n return super.enable(async () => {\n this.formPromise = this.apiService.putTwoFactorAuthenticator(request);\n const response = await this.formPromise;\n await this.processResponse(response);\n });\n }\n\n private async processResponse(response: TwoFactorAuthenticatorResponse) {\n this.token = null;\n this.enabled = response.enabled;\n this.key = response.key;\n const email = await this.userService.getEmail();\n window.setTimeout(() => {\n const qr = new (window as any).QRious({\n element: document.getElementById('qr'),\n value: 'otpauth://totp/Bitwarden:' + encodeURIComponent(email) +\n '?secret=' + encodeURIComponent(this.key) + '&issuer=Bitwarden',\n size: 160,\n });\n }, 100);\n }\n}\n","
\n
\n
\n
\n

\n {{'twoStepLogin' | i18n}}\n {{'authenticatorAppTitle' | i18n}}\n

\n \n
\n \n \n
\n
\n \n \"\"\n

{{'twoStepAuthenticatorDesc' | i18n}}

\n

\n 1. {{'twoStepAuthenticatorDownloadApp' | i18n}}\n

\n
\n \n \n

{{'twoStepLoginProviderEnabled' | i18n}}

\n {{'twoStepAuthenticatorReaddDesc' | i18n}}\n
\n \"\"\n

{{'twoStepAuthenticatorNeedApp' | i18n}}

\n
\n \n

{{'twoStepAuthenticatorAppsRecommended' | i18n}}

\n

\n 2. {{'twoStepAuthenticatorScanCode' | i18n}}\n

\n
\n

\n
\n {{key}}\n

\n \n \n \n \n
\n
\n \n \n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { TwoFactorEmailRequest } from 'jslib/models/request/twoFactorEmailRequest';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\nimport { UpdateTwoFactorEmailRequest } from 'jslib/models/request/updateTwoFactorEmailRequest';\nimport { TwoFactorEmailResponse } from 'jslib/models/response/twoFactorEmailResponse';\n\nimport { TwoFactorBaseComponent } from './two-factor-base.component';\n\n@Component({\n selector: 'app-two-factor-email',\n templateUrl: 'two-factor-email.component.html',\n})\nexport class TwoFactorEmailComponent extends TwoFactorBaseComponent {\n type = TwoFactorProviderType.Email;\n email: string;\n token: string;\n sentEmail: string;\n formPromise: Promise;\n emailPromise: Promise;\n\n constructor(apiService: ApiService, i18nService: I18nService,\n analytics: Angulartics2, toasterService: ToasterService,\n platformUtilsService: PlatformUtilsService, private userService: UserService) {\n super(apiService, i18nService, analytics, toasterService, platformUtilsService);\n }\n\n auth(authResponse: any) {\n super.auth(authResponse);\n return this.processResponse(authResponse.response);\n }\n\n submit() {\n if (this.enabled) {\n return super.disable(this.formPromise);\n } else {\n return this.enable();\n }\n }\n\n async sendEmail() {\n try {\n const request = new TwoFactorEmailRequest(this.email, this.masterPasswordHash);\n this.emailPromise = this.apiService.postTwoFactorEmailSetup(request);\n await this.emailPromise;\n this.sentEmail = this.email;\n } catch { }\n }\n\n protected enable() {\n const request = new UpdateTwoFactorEmailRequest();\n request.masterPasswordHash = this.masterPasswordHash;\n request.email = this.email;\n request.token = this.token;\n\n return super.enable(async () => {\n this.formPromise = this.apiService.putTwoFactorEmail(request);\n const response = await this.formPromise;\n await this.processResponse(response);\n });\n }\n\n private async processResponse(response: TwoFactorEmailResponse) {\n this.token = null;\n this.email = response.email;\n this.enabled = response.enabled;\n if (!this.enabled && (this.email == null || this.email === '')) {\n this.email = await this.userService.getEmail();\n }\n }\n}\n","
\n
\n
\n
\n

\n {{'twoStepLogin' | i18n}}\n {{'emailTitle' | i18n}}\n

\n \n
\n \n \n
\n
\n \n \n {{'twoStepLoginProviderEnabled' | i18n}}\n \n {{'email' | i18n}}: {{email}}\n \n \n

\n {{'twoFactorEmailDesc' | i18n}}\n \"\"\n

\n
\n \n \n
\n
\n \n \n {{'verificationCodeEmailSent' | i18n : sentEmail}}\n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { TwoFactorRecoverResponse } from 'jslib/models/response/twoFactorRescoverResponse';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\n\n@Component({\n selector: 'app-two-factor-recovery',\n templateUrl: 'two-factor-recovery.component.html',\n})\nexport class TwoFactorRecoveryComponent {\n type = -1;\n code: string;\n authed: boolean;\n twoFactorProviderType = TwoFactorProviderType;\n\n constructor(private i18nService: I18nService) { }\n\n auth(authResponse: any) {\n this.authed = true;\n this.processResponse(authResponse.response);\n }\n\n print() {\n const w = window.open();\n w.document.write('
' +\n '

' + this.i18nService.t('twoFactorRecoveryYourCode') + ':

' +\n '' +\n this.code + '
' +\n '

' + new Date() + '

');\n w.onafterprint = () => w.close();\n w.print();\n }\n\n private formatString(s: string) {\n if (s == null) {\n return null;\n }\n return s.replace(/(.{4})/g, '$1 ').trim().toUpperCase();\n }\n\n private processResponse(response: TwoFactorRecoverResponse) {\n this.code = this.formatString(response.code);\n }\n}\n","
\n
\n
\n
\n

\n {{'twoStepLogin' | i18n}}\n {{'recoveryCodeTitle' | i18n}}\n

\n \n
\n \n \n \n
\n \n

{{'twoFactorRecoveryYourCode' | i18n}}:

\n {{code}}\n
\n \n {{'twoFactorRecoveryNoCode' | i18n}}\n \n
\n
\n \n \n
\n
\n
\n
\n
\n","import {\n Component,\n NgZone,\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\n\nimport { PasswordVerificationRequest } from 'jslib/models/request/passwordVerificationRequest';\nimport { UpdateTwoFactorU2fDeleteRequest } from 'jslib/models/request/updateTwoFactorU2fDeleteRequest';\nimport { UpdateTwoFactorU2fRequest } from 'jslib/models/request/updateTwoFactorU2fRequest';\nimport {\n ChallengeResponse,\n TwoFactorU2fResponse,\n} from 'jslib/models/response/twoFactorU2fResponse';\n\nimport { TwoFactorBaseComponent } from './two-factor-base.component';\n\n@Component({\n selector: 'app-two-factor-u2f',\n templateUrl: 'two-factor-u2f.component.html',\n})\nexport class TwoFactorU2fComponent extends TwoFactorBaseComponent implements OnInit, OnDestroy {\n type = TwoFactorProviderType.U2f;\n name: string;\n keys: any[];\n keyIdAvailable: number = null;\n keysConfiguredCount = 0;\n u2fError: boolean;\n u2fListening: boolean;\n u2fResponse: string;\n challengePromise: Promise;\n formPromise: Promise;\n\n private u2fScript: HTMLScriptElement;\n\n constructor(apiService: ApiService, i18nService: I18nService,\n analytics: Angulartics2, toasterService: ToasterService,\n platformUtilsService: PlatformUtilsService, private ngZone: NgZone) {\n super(apiService, i18nService, analytics, toasterService, platformUtilsService);\n this.u2fScript = window.document.createElement('script');\n this.u2fScript.src = 'scripts/u2f.js';\n this.u2fScript.async = true;\n }\n\n ngOnInit() {\n window.document.body.appendChild(this.u2fScript);\n }\n\n ngOnDestroy() {\n window.document.body.removeChild(this.u2fScript);\n }\n\n auth(authResponse: any) {\n super.auth(authResponse);\n this.processResponse(authResponse.response);\n }\n\n submit() {\n if (this.u2fResponse == null || this.keyIdAvailable == null) {\n // Should never happen.\n return Promise.reject();\n }\n const request = new UpdateTwoFactorU2fRequest();\n request.masterPasswordHash = this.masterPasswordHash;\n request.deviceResponse = this.u2fResponse;\n request.id = this.keyIdAvailable;\n request.name = this.name;\n\n return super.enable(async () => {\n this.formPromise = this.apiService.putTwoFactorU2f(request);\n const response = await this.formPromise;\n await this.processResponse(response);\n });\n }\n\n disable() {\n return super.disable(this.formPromise);\n }\n\n async remove(key: any) {\n if (this.keysConfiguredCount <= 1 || key.removePromise != null) {\n return;\n }\n const name = key.name != null ? key.name : this.i18nService.t('u2fkeyX', key.id);\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('removeU2fConfirmation'), name,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return;\n }\n const request = new UpdateTwoFactorU2fDeleteRequest();\n request.id = key.id;\n request.masterPasswordHash = this.masterPasswordHash;\n try {\n key.removePromise = this.apiService.deleteTwoFactorU2f(request);\n const response = await key.removePromise;\n key.removePromise = null;\n await this.processResponse(response);\n } catch { }\n }\n\n async readKey() {\n if (this.keyIdAvailable == null) {\n return;\n }\n const request = new PasswordVerificationRequest();\n request.masterPasswordHash = this.masterPasswordHash;\n try {\n this.challengePromise = this.apiService.getTwoFactorU2fChallenge(request);\n const challenge = await this.challengePromise;\n this.readDevice(challenge);\n } catch { }\n }\n\n private readDevice(u2fChallenge: ChallengeResponse) {\n // tslint:disable-next-line\n console.log('listening for key...');\n this.resetU2f(true);\n (window as any).u2f.register(u2fChallenge.appId, [{\n version: u2fChallenge.version,\n challenge: u2fChallenge.challenge,\n }], [], (data: any) => {\n this.ngZone.run(() => {\n this.u2fListening = false;\n if (data.errorCode) {\n this.u2fError = true;\n // tslint:disable-next-line\n console.log('error: ' + data.errorCode);\n return;\n }\n this.u2fResponse = JSON.stringify(data);\n });\n }, 15);\n }\n\n private resetU2f(listening = false) {\n this.u2fResponse = null;\n this.u2fError = false;\n this.u2fListening = listening;\n }\n\n private processResponse(response: TwoFactorU2fResponse) {\n this.resetU2f();\n this.keys = [];\n this.keyIdAvailable = null;\n this.name = null;\n this.keysConfiguredCount = 0;\n for (let i = 1; i <= 5; i++) {\n if (response.keys != null) {\n const key = response.keys.filter(k => k.id === i);\n if (key.length > 0) {\n this.keysConfiguredCount++;\n this.keys.push({\n id: i, name: key[0].name,\n configured: true,\n compromised: key[0].compromised,\n removePromise: null,\n });\n continue;\n }\n }\n this.keys.push({ id: i, name: null, configured: false, compromised: false, removePromise: null });\n if (this.keyIdAvailable == null) {\n this.keyIdAvailable = i;\n }\n }\n this.enabled = response.enabled;\n }\n}\n","
\n
\n
\n
\n

\n {{'twoStepLogin' | i18n}}\n FIDO U2F\n

\n \n
\n \n \n
\n
\n \n {{'twoStepLoginProviderEnabled' | i18n}}\n \n \n

{{'twoFactorU2fWarning' | i18n}}

\n
    \n
  • {{'twoFactorU2fSupportWeb' | i18n}}
  • \n
\n
\n \"\"\n
    \n
  • \n \n {{'u2fkeyX' | i18n : i + 1}}\n {{k.name}}\n \n \n \n {{'keyCompromised' | i18n}}\n \n \n \n {{'enabled' | i18n}}\n \n \n 1 && k.configured\">\n \n -\n {{'remove' | i18n}}\n \n
  • \n
\n
\n

{{'twoFactorU2fAdd' | i18n}}:

\n
    \n
  1. {{'twoFactorU2fGiveName' | i18n}}
  2. \n
  3. {{'twoFactorU2fPlugInReadKey' | i18n}}
  4. \n
  5. {{'twoFactorU2fTouchButton' | i18n}}
  6. \n
  7. {{'twoFactorU2fSaveForm' | i18n}}
  8. \n
\n
\n
\n \n \n
\n
\n \n \n \n \n \n \n \n {{'twoFactorU2fWaiting' | i18n}}...\n \n \n \n {{'twoFactorU2fClickSave' | i18n}}\n \n \n \n {{'twoFactorU2fProblemReadingTryAgain' | i18n}}\n \n \n
\n
\n \n \n \n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { UpdateTwoFactorYubioOtpRequest } from 'jslib/models/request/updateTwoFactorYubioOtpRequest';\nimport { TwoFactorYubiKeyResponse } from 'jslib/models/response/twoFactorYubiKeyResponse';\n\nimport { TwoFactorProviderType } from 'jslib/enums/twoFactorProviderType';\n\nimport { TwoFactorBaseComponent } from './two-factor-base.component';\n\n@Component({\n selector: 'app-two-factor-yubikey',\n templateUrl: 'two-factor-yubikey.component.html',\n})\nexport class TwoFactorYubiKeyComponent extends TwoFactorBaseComponent {\n type = TwoFactorProviderType.Yubikey;\n keys: any[];\n nfc = false;\n\n formPromise: Promise;\n disablePromise: Promise;\n\n constructor(apiService: ApiService, i18nService: I18nService,\n analytics: Angulartics2, toasterService: ToasterService,\n platformUtilsService: PlatformUtilsService) {\n super(apiService, i18nService, analytics, toasterService, platformUtilsService);\n }\n\n auth(authResponse: any) {\n super.auth(authResponse);\n this.processResponse(authResponse.response);\n }\n\n submit() {\n const request = new UpdateTwoFactorYubioOtpRequest();\n request.masterPasswordHash = this.masterPasswordHash;\n request.key1 = this.keys != null && this.keys.length > 0 ? this.keys[0].key : null;\n request.key2 = this.keys != null && this.keys.length > 1 ? this.keys[1].key : null;\n request.key3 = this.keys != null && this.keys.length > 2 ? this.keys[2].key : null;\n request.key4 = this.keys != null && this.keys.length > 3 ? this.keys[3].key : null;\n request.key5 = this.keys != null && this.keys.length > 4 ? this.keys[4].key : null;\n request.nfc = this.nfc;\n\n return super.enable(async () => {\n this.formPromise = this.apiService.putTwoFactorYubiKey(request);\n const response = await this.formPromise;\n await this.processResponse(response);\n this.toasterService.popAsync('success', null, this.i18nService.t('yubikeysUpdated'));\n });\n }\n\n disable() {\n return super.disable(this.disablePromise);\n }\n\n remove(key: any) {\n key.existingKey = null;\n key.key = null;\n }\n\n private processResponse(response: TwoFactorYubiKeyResponse) {\n this.enabled = response.enabled;\n this.keys = [\n { key: response.key1, existingKey: this.padRight(response.key1) },\n { key: response.key2, existingKey: this.padRight(response.key2) },\n { key: response.key3, existingKey: this.padRight(response.key3) },\n { key: response.key4, existingKey: this.padRight(response.key4) },\n { key: response.key5, existingKey: this.padRight(response.key5) },\n ];\n this.nfc = response.nfc || !response.enabled;\n }\n\n private padRight(str: string, character = '•', size = 44) {\n if (str == null || character == null || str.length >= size) {\n return str;\n }\n const max = (size - str.length) / character.length;\n for (let i = 0; i < max; i++) {\n str += character;\n }\n return str;\n }\n}\n","
\n
\n
\n
\n

\n {{'twoStepLogin' | i18n}}\n YubiKey\n

\n \n
\n \n \n
\n
\n \n {{'twoStepLoginProviderEnabled' | i18n}}\n \n \n

{{'twoFactorYubikeyWarning' | i18n}}

\n
    \n
  • {{'twoFactorYubikeySupportUsb' | i18n}}
  • \n
  • {{'twoFactorYubikeySupportMobile' | i18n}}
  • \n
\n
\n \"\"\n

{{'twoFactorYubikeyAdd' | i18n}}:

\n
    \n
  1. {{'twoFactorYubikeyPlugIn' | i18n}}
  2. \n
  3. {{'twoFactorYubikeySelectKey' | i18n}}
  4. \n
  5. {{'twoFactorYubikeyTouchButton' | i18n}}
  6. \n
  7. {{'twoFactorYubikeySaveForm' | i18n}}
  8. \n
\n
\n
\n
\n \n \n
\n {{k.existingKey}}\n \n
\n
\n
\n {{'nfcSupport' | i18n}}\n
\n \n \n
\n {{'twoFactorYubikeySupportsNfcDesc' | i18n}}\n
\n
\n \n \n \n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { EventService } from 'jslib/abstractions/event.service';\nimport { ExportService } from 'jslib/abstractions/export.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { ExportComponent as BaseExportComponent } from '../../tools/export.component';\n\nimport { EventType } from 'jslib/enums/eventType';\n\n@Component({\n selector: 'app-org-export',\n templateUrl: '../../tools/export.component.html',\n})\nexport class ExportComponent extends BaseExportComponent {\n constructor(cryptoService: CryptoService, i18nService: I18nService,\n platformUtilsService: PlatformUtilsService, exportService: ExportService,\n eventService: EventService, private route: ActivatedRoute) {\n super(cryptoService, i18nService, platformUtilsService, exportService, eventService);\n }\n\n ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n });\n }\n\n getExportData() {\n return this.exportService.getOrganizationExport(this.organizationId, this.format);\n }\n\n getFileName() {\n return super.getFileName('org');\n }\n\n async collectEvent(): Promise {\n // TODO\n // await this.eventService.collect(EventType.Organization_ClientExportedVault);\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { AuditService } from 'jslib/abstractions/audit.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport {\n ExposedPasswordsReportComponent as BaseExposedPasswordsReportComponent,\n} from '../../tools/exposed-passwords-report.component';\n\nimport { Cipher } from 'jslib/models/domain/cipher';\nimport { CipherView } from 'jslib/models/view/cipherView';\n\n@Component({\n selector: 'app-exposed-passwords-report',\n templateUrl: '../../tools/exposed-passwords-report.component.html',\n})\nexport class ExposedPasswordsReportComponent extends BaseExposedPasswordsReportComponent {\n manageableCiphers: Cipher[];\n\n constructor(cipherService: CipherService, auditService: AuditService,\n componentFactoryResolver: ComponentFactoryResolver, messagingService: MessagingService,\n userService: UserService, private route: ActivatedRoute) {\n super(cipherService, auditService, componentFactoryResolver, messagingService, userService);\n }\n\n ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organization = await this.userService.getOrganization(params.organizationId);\n this.manageableCiphers = await this.cipherService.getAll();\n super.ngOnInit();\n });\n }\n\n getAllCiphers(): Promise {\n return this.cipherService.getAllFromApiForOrganization(this.organization.id);\n }\n\n canManageCipher(c: CipherView): boolean {\n return this.manageableCiphers.some(x => x.id === c.id);\n }\n}\n","import { PasswordHistoryResponse } from '../response/passwordHistoryResponse';\n\nexport class PasswordHistoryData {\n password: string;\n lastUsedDate: string;\n\n constructor(response?: PasswordHistoryResponse) {\n if (response == null) {\n return;\n }\n\n this.password = response.password;\n this.lastUsedDate = response.lastUsedDate;\n }\n}\n","import { View } from './view';\n\nimport { Attachment } from '../domain/attachment';\nimport { SymmetricCryptoKey } from '../domain/symmetricCryptoKey';\n\nexport class AttachmentView implements View {\n id: string = null;\n url: string = null;\n size: string = null;\n sizeName: string = null;\n fileName: string = null;\n key: SymmetricCryptoKey = null;\n\n constructor(a?: Attachment) {\n if (!a) {\n return;\n }\n\n this.id = a.id;\n this.url = a.url;\n this.size = a.size;\n this.sizeName = a.sizeName;\n }\n\n get fileSize(): number {\n try {\n if (this.size != null) {\n return parseInt(this.size, null);\n }\n } catch { }\n return 0;\n }\n}\n","import { PasswordHistoryData } from '../data/passwordHistoryData';\n\nimport { CipherString } from './cipherString';\nimport Domain from './domainBase';\n\nimport { PasswordHistoryView } from '../view/passwordHistoryView';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class Password extends Domain {\n password: CipherString;\n lastUsedDate: Date;\n\n constructor(obj?: PasswordHistoryData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.buildDomainModel(this, obj, {\n password: null,\n }, alreadyEncrypted);\n this.lastUsedDate = new Date(obj.lastUsedDate);\n }\n\n decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise {\n return this.decryptObj(new PasswordHistoryView(this), {\n password: null,\n }, orgId, encKey);\n }\n\n toPasswordHistoryData(): PasswordHistoryData {\n const ph = new PasswordHistoryData();\n ph.lastUsedDate = this.lastUsedDate.toISOString();\n this.buildDataModel(this, ph, {\n password: null,\n });\n return ph;\n }\n}\n","import { CipherRequest } from './cipherRequest';\n\nimport { Cipher } from '../domain/cipher';\n\nexport class CipherCreateRequest {\n cipher: CipherRequest;\n collectionIds: string[];\n\n constructor(cipher: Cipher) {\n this.cipher = new CipherRequest(cipher);\n this.collectionIds = cipher.collectionIds;\n }\n}\n","import { BaseResponse } from '../response/baseResponse';\n\nexport class CardApi extends BaseResponse {\n cardholderName: string;\n brand: string;\n number: string;\n expMonth: string;\n expYear: string;\n code: string;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n this.cardholderName = this.getResponseProperty('CardholderName');\n this.brand = this.getResponseProperty('Brand');\n this.number = this.getResponseProperty('Number');\n this.expMonth = this.getResponseProperty('ExpMonth');\n this.expYear = this.getResponseProperty('ExpYear');\n this.code = this.getResponseProperty('Code');\n }\n}\n","import { BaseResponse } from '../response/baseResponse';\n\nimport { FieldType } from '../../enums/fieldType';\n\nexport class FieldApi extends BaseResponse {\n name: string;\n value: string;\n type: FieldType;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n this.type = this.getResponseProperty('Type');\n this.name = this.getResponseProperty('Name');\n this.value = this.getResponseProperty('Value');\n }\n}\n","import { BaseResponse } from '../response/baseResponse';\n\nexport class IdentityApi extends BaseResponse {\n title: string;\n firstName: string;\n middleName: string;\n lastName: string;\n address1: string;\n address2: string;\n address3: string;\n city: string;\n state: string;\n postalCode: string;\n country: string;\n company: string;\n email: string;\n phone: string;\n ssn: string;\n username: string;\n passportNumber: string;\n licenseNumber: string;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n this.title = this.getResponseProperty('Title');\n this.firstName = this.getResponseProperty('FirstName');\n this.middleName = this.getResponseProperty('MiddleName');\n this.lastName = this.getResponseProperty('LastName');\n this.address1 = this.getResponseProperty('Address1');\n this.address2 = this.getResponseProperty('Address2');\n this.address3 = this.getResponseProperty('Address3');\n this.city = this.getResponseProperty('City');\n this.state = this.getResponseProperty('State');\n this.postalCode = this.getResponseProperty('PostalCode');\n this.country = this.getResponseProperty('Country');\n this.company = this.getResponseProperty('Company');\n this.email = this.getResponseProperty('Email');\n this.phone = this.getResponseProperty('Phone');\n this.ssn = this.getResponseProperty('SSN');\n this.username = this.getResponseProperty('Username');\n this.passportNumber = this.getResponseProperty('PassportNumber');\n this.licenseNumber = this.getResponseProperty('LicenseNumber');\n }\n}\n","import { BaseResponse } from '../response/baseResponse';\n\nimport { LoginUriApi } from './loginUriApi';\n\nexport class LoginApi extends BaseResponse {\n uris: LoginUriApi[];\n username: string;\n password: string;\n passwordRevisionDate: string;\n totp: string;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n this.username = this.getResponseProperty('Username');\n this.password = this.getResponseProperty('Password');\n this.passwordRevisionDate = this.getResponseProperty('PasswordRevisionDate');\n this.totp = this.getResponseProperty('Totp');\n\n const uris = this.getResponseProperty('Uris');\n if (uris != null) {\n this.uris = uris.map((u: any) => new LoginUriApi(u));\n }\n }\n}\n","import { BaseResponse } from '../response/baseResponse';\n\nimport { UriMatchType } from '../../enums/uriMatchType';\n\nexport class LoginUriApi extends BaseResponse {\n uri: string;\n match: UriMatchType = null;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n this.uri = this.getResponseProperty('Uri');\n const match = this.getResponseProperty('Match');\n this.match = match != null ? match : null;\n }\n}\n","import { BaseResponse } from '../response/baseResponse';\n\nimport { SecureNoteType } from '../../enums/secureNoteType';\n\nexport class SecureNoteApi extends BaseResponse {\n type: SecureNoteType;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n this.type = this.getResponseProperty('Type');\n }\n}\n","import {\n Directive,\n ElementRef,\n HostListener,\n Input,\n} from '@angular/core';\n\n@Directive({\n selector: '[appFallbackSrc]',\n})\nexport class FallbackSrcDirective {\n @Input('appFallbackSrc') appFallbackSrc: string;\n\n constructor(private el: ElementRef) {\n }\n\n @HostListener('error') onError() {\n this.el.nativeElement.src = this.appFallbackSrc;\n }\n}\n","import { Component } from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { ImportService } from 'jslib/abstractions/import.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { ImportComponent as BaseImportComponent } from '../../tools/import.component';\n\n@Component({\n selector: 'app-org-import',\n templateUrl: '../../tools/import.component.html',\n})\nexport class ImportComponent extends BaseImportComponent {\n organizationName: string;\n\n constructor(i18nService: I18nService, analytics: Angulartics2,\n toasterService: ToasterService, importService: ImportService,\n router: Router, private route: ActivatedRoute,\n platformUtilsService: PlatformUtilsService,\n private userService: UserService) {\n super(i18nService, analytics, toasterService, importService, router, platformUtilsService);\n }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organizationId = params.organizationId;\n this.successNavigate = ['organizations', this.organizationId, 'vault'];\n super.ngOnInit();\n });\n const organization = await this.userService.getOrganization(this.organizationId);\n this.organizationName = organization.name;\n }\n\n async submit() {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('importWarning', this.organizationName),\n this.i18nService.t('warning'), this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return;\n }\n super.submit();\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport {\n InactiveTwoFactorReportComponent as BaseInactiveTwoFactorReportComponent,\n} from '../../tools/inactive-two-factor-report.component';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\n@Component({\n selector: 'app-inactive-two-factor-report',\n templateUrl: '../../tools/inactive-two-factor-report.component.html',\n})\nexport class InactiveTwoFactorReportComponent extends BaseInactiveTwoFactorReportComponent {\n constructor(cipherService: CipherService, componentFactoryResolver: ComponentFactoryResolver,\n messagingService: MessagingService, userService: UserService,\n private route: ActivatedRoute) {\n super(cipherService, componentFactoryResolver, messagingService, userService);\n }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organization = await this.userService.getOrganization(params.organizationId);\n await super.ngOnInit();\n });\n }\n\n getAllCiphers(): Promise {\n return this.cipherService.getAllFromApiForOrganization(this.organization.id);\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { Cipher } from 'jslib/models/domain/cipher';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport {\n ReusedPasswordsReportComponent as BaseReusedPasswordsReportComponent,\n} from '../../tools/reused-passwords-report.component';\n\n@Component({\n selector: 'app-reused-passwords-report',\n templateUrl: '../../tools/reused-passwords-report.component.html',\n})\nexport class ReusedPasswordsReportComponent extends BaseReusedPasswordsReportComponent {\n manageableCiphers: Cipher[];\n\n constructor(cipherService: CipherService, componentFactoryResolver: ComponentFactoryResolver,\n messagingService: MessagingService, userService: UserService,\n private route: ActivatedRoute) {\n super(cipherService, componentFactoryResolver, messagingService, userService);\n }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organization = await this.userService.getOrganization(params.organizationId);\n this.manageableCiphers = await this.cipherService.getAll();\n await super.ngOnInit();\n });\n }\n\n getAllCiphers(): Promise {\n return this.cipherService.getAllFromApiForOrganization(this.organization.id);\n }\n\n canManageCipher(c: CipherView): boolean {\n return this.manageableCiphers.some(x => x.id === c.id);\n }\n}\n","import { Component } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { Organization } from 'jslib/models/domain/organization';\n\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\n@Component({\n selector: 'app-org-tools',\n templateUrl: 'tools.component.html',\n})\nexport class ToolsComponent {\n organization: Organization;\n accessReports = false;\n loading = true;\n\n constructor(private route: ActivatedRoute, private userService: UserService,\n private messagingService: MessagingService) { }\n\n ngOnInit() {\n this.route.parent.params.subscribe(async params => {\n this.organization = await this.userService.getOrganization(params.organizationId);\n // TODO: Maybe we want to just make sure they are not on a free plan? Just compare useTotp for now\n // since all paid plans include useTotp\n this.accessReports = this.organization.useTotp;\n this.loading = false;\n });\n }\n\n upgradeOrganization() {\n this.messagingService.send('upgradeOrganization', { organizationId: this.organization.id });\n }\n}\n","\n","import {\n Component,\n ComponentFactoryResolver,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport {\n UnsecuredWebsitesReportComponent as BaseUnsecuredWebsitesReportComponent,\n} from '../../tools/unsecured-websites-report.component';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\n@Component({\n selector: 'app-unsecured-websites-report',\n templateUrl: '../../tools/unsecured-websites-report.component.html',\n})\nexport class UnsecuredWebsitesReportComponent extends BaseUnsecuredWebsitesReportComponent {\n constructor(cipherService: CipherService, componentFactoryResolver: ComponentFactoryResolver,\n messagingService: MessagingService, userService: UserService,\n private route: ActivatedRoute) {\n super(cipherService, componentFactoryResolver, messagingService, userService);\n }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organization = await this.userService.getOrganization(params.organizationId);\n await super.ngOnInit();\n });\n }\n\n getAllCiphers(): Promise {\n return this.cipherService.getAllFromApiForOrganization(this.organization.id);\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { Cipher } from 'jslib/models/domain/cipher';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport {\n WeakPasswordsReportComponent as BaseWeakPasswordsReportComponent,\n} from '../../tools/weak-passwords-report.component';\n\n@Component({\n selector: 'app-weak-passwords-report',\n templateUrl: '../../tools/weak-passwords-report.component.html',\n})\nexport class WeakPasswordsReportComponent extends BaseWeakPasswordsReportComponent {\n manageableCiphers: Cipher[];\n\n constructor(cipherService: CipherService, passwordGenerationService: PasswordGenerationService,\n componentFactoryResolver: ComponentFactoryResolver, messagingService: MessagingService,\n userService: UserService, private route: ActivatedRoute) {\n super(cipherService, passwordGenerationService, componentFactoryResolver, messagingService, userService);\n }\n\n async ngOnInit() {\n this.route.parent.parent.params.subscribe(async params => {\n this.organization = await this.userService.getOrganization(params.organizationId);\n this.manageableCiphers = await this.cipherService.getAll();\n await super.ngOnInit();\n });\n }\n\n getAllCiphers(): Promise {\n return this.cipherService.getAllFromApiForOrganization(this.organization.id);\n }\n\n canManageCipher(c: CipherView): boolean {\n return this.manageableCiphers.some(x => x.id === c.id);\n }\n}\n","import {\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n NgZone,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { BroadcasterService } from 'jslib/angular/services/broadcaster.service';\n\nimport { Organization } from 'jslib/models/domain/organization';\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { CipherType } from 'jslib/enums/cipherType';\n\nimport { ModalComponent } from '../../modal.component';\n\nimport { EntityEventsComponent } from '../manage/entity-events.component';\nimport { AddEditComponent } from './add-edit.component';\nimport { AttachmentsComponent } from './attachments.component';\nimport { CiphersComponent } from './ciphers.component';\nimport { CollectionsComponent } from './collections.component';\nimport { GroupingsComponent } from './groupings.component';\n\nconst BroadcasterSubscriptionId = 'OrgVaultComponent';\n\n@Component({\n selector: 'app-org-vault',\n templateUrl: 'vault.component.html',\n})\nexport class VaultComponent implements OnInit, OnDestroy {\n @ViewChild(GroupingsComponent, { static: true }) groupingsComponent: GroupingsComponent;\n @ViewChild(CiphersComponent, { static: true }) ciphersComponent: CiphersComponent;\n @ViewChild('attachments', { read: ViewContainerRef, static: true }) attachmentsModalRef: ViewContainerRef;\n @ViewChild('cipherAddEdit', { read: ViewContainerRef, static: true }) cipherAddEditModalRef: ViewContainerRef;\n @ViewChild('collections', { read: ViewContainerRef, static: true }) collectionsModalRef: ViewContainerRef;\n @ViewChild('eventsTemplate', { read: ViewContainerRef, static: true }) eventsModalRef: ViewContainerRef;\n\n organization: Organization;\n collectionId: string = null;\n type: CipherType = null;\n deleted: boolean = false;\n\n modal: ModalComponent = null;\n\n constructor(private route: ActivatedRoute, private userService: UserService,\n private router: Router, private changeDetectorRef: ChangeDetectorRef,\n private syncService: SyncService, private i18nService: I18nService,\n private componentFactoryResolver: ComponentFactoryResolver, private messagingService: MessagingService,\n private broadcasterService: BroadcasterService, private ngZone: NgZone) { }\n\n ngOnInit() {\n const queryParams = this.route.parent.params.subscribe(async params => {\n this.organization = await this.userService.getOrganization(params.organizationId);\n this.groupingsComponent.organization = this.organization;\n this.ciphersComponent.organization = this.organization;\n\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n this.ciphersComponent.searchText = this.groupingsComponent.searchText = qParams.search;\n if (!this.organization.canManageAllCollections) {\n await this.syncService.fullSync(false);\n this.broadcasterService.subscribe(BroadcasterSubscriptionId, (message: any) => {\n this.ngZone.run(async () => {\n switch (message.command) {\n case 'syncCompleted':\n if (message.successfully) {\n await Promise.all([\n this.groupingsComponent.load(),\n this.ciphersComponent.refresh(),\n ]);\n this.changeDetectorRef.detectChanges();\n }\n break;\n }\n });\n });\n }\n await this.groupingsComponent.load();\n\n if (qParams == null) {\n this.groupingsComponent.selectedAll = true;\n await this.ciphersComponent.reload();\n } else {\n if (qParams.deleted) {\n this.groupingsComponent.selectedTrash = true;\n await this.filterDeleted(true);\n } else if (qParams.type) {\n const t = parseInt(qParams.type, null);\n this.groupingsComponent.selectedType = t;\n await this.filterCipherType(t, true);\n } else if (qParams.collectionId) {\n this.groupingsComponent.selectedCollectionId = qParams.collectionId;\n await this.filterCollection(qParams.collectionId, true);\n } else {\n this.groupingsComponent.selectedAll = true;\n await this.ciphersComponent.reload();\n }\n }\n\n if (qParams.viewEvents != null) {\n const cipher = this.ciphersComponent.ciphers.filter(c => c.id === qParams.viewEvents);\n if (cipher.length > 0) {\n this.viewEvents(cipher[0]);\n }\n }\n\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n\n if (queryParams != null) {\n queryParams.unsubscribe();\n }\n });\n }\n\n ngOnDestroy() {\n this.broadcasterService.unsubscribe(BroadcasterSubscriptionId);\n }\n\n async clearGroupingFilters() {\n this.ciphersComponent.showAddNew = true;\n this.ciphersComponent.deleted = false;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchVault');\n await this.ciphersComponent.applyFilter();\n this.clearFilters();\n this.go();\n }\n\n async filterCipherType(type: CipherType, load = false) {\n this.ciphersComponent.showAddNew = true;\n this.ciphersComponent.deleted = false;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchType');\n const filter = (c: CipherView) => c.type === type;\n if (load) {\n await this.ciphersComponent.reload(filter);\n } else {\n await this.ciphersComponent.applyFilter(filter);\n }\n this.clearFilters();\n this.type = type;\n this.go();\n }\n\n async filterCollection(collectionId: string, load = false) {\n this.ciphersComponent.showAddNew = true;\n this.ciphersComponent.deleted = false;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchCollection');\n const filter = (c: CipherView) => {\n if (collectionId === 'unassigned') {\n return c.collectionIds == null || c.collectionIds.length === 0;\n } else {\n return c.collectionIds != null && c.collectionIds.indexOf(collectionId) > -1;\n }\n };\n if (load) {\n await this.ciphersComponent.reload(filter);\n } else {\n await this.ciphersComponent.applyFilter(filter);\n }\n this.clearFilters();\n this.collectionId = collectionId;\n this.go();\n }\n\n async filterDeleted(load: boolean = false) {\n this.ciphersComponent.showAddNew = false;\n this.ciphersComponent.deleted = true;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchTrash');\n if (load) {\n await this.ciphersComponent.reload(null, true);\n } else {\n await this.ciphersComponent.applyFilter(null);\n }\n this.clearFilters();\n this.deleted = true;\n this.go();\n }\n\n filterSearchText(searchText: string) {\n this.ciphersComponent.searchText = searchText;\n this.ciphersComponent.search(200);\n }\n\n editCipherAttachments(cipher: CipherView) {\n if (this.organization.maxStorageGb == null || this.organization.maxStorageGb === 0) {\n this.messagingService.send('upgradeOrganization', { organizationId: cipher.organizationId });\n return;\n }\n\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.attachmentsModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(AttachmentsComponent, this.attachmentsModalRef);\n\n childComponent.organization = this.organization;\n childComponent.cipherId = cipher.id;\n let madeAttachmentChanges = false;\n childComponent.onUploadedAttachment.subscribe(() => madeAttachmentChanges = true);\n childComponent.onDeletedAttachment.subscribe(() => madeAttachmentChanges = true);\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n if (madeAttachmentChanges) {\n await this.ciphersComponent.refresh();\n }\n madeAttachmentChanges = false;\n });\n }\n\n editCipherCollections(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.collectionsModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(CollectionsComponent, this.collectionsModalRef);\n\n if (this.organization.canManageAllCollections) {\n childComponent.collectionIds = cipher.collectionIds;\n childComponent.collections = this.groupingsComponent.collections.filter(c => !c.readOnly);\n }\n childComponent.organization = this.organization;\n childComponent.cipherId = cipher.id;\n childComponent.onSavedCollections.subscribe(async () => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n addCipher() {\n const component = this.editCipher(null);\n component.organizationId = this.organization.id;\n component.type = this.type;\n if (this.organization.canManageAllCollections) {\n component.collections = this.groupingsComponent.collections.filter(c => !c.readOnly);\n }\n if (this.collectionId != null) {\n component.collectionIds = [this.collectionId];\n }\n }\n\n editCipher(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.cipherAddEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(AddEditComponent, this.cipherAddEditModalRef);\n\n childComponent.organization = this.organization;\n childComponent.cipherId = cipher == null ? null : cipher.id;\n childComponent.onSavedCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n childComponent.onDeletedCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n childComponent.onRestoredCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n\n return childComponent;\n }\n\n cloneCipher(cipher: CipherView) {\n const component = this.editCipher(cipher);\n component.cloneMode = true;\n component.organizationId = this.organization.id;\n if (this.organization.canManageAllCollections) {\n component.collections = this.groupingsComponent.collections.filter(c => !c.readOnly);\n }\n // Regardless of Admin state, the collection Ids need to passed manually as they are not assigned value\n // in the add-edit componenet\n component.collectionIds = cipher.collectionIds;\n }\n\n async viewEvents(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.eventsModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n EntityEventsComponent, this.eventsModalRef);\n\n childComponent.name = cipher.name;\n childComponent.organizationId = this.organization.id;\n childComponent.entityId = cipher.id;\n childComponent.showUser = true;\n childComponent.entity = 'cipher';\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n private clearFilters() {\n this.collectionId = null;\n this.type = null;\n this.deleted = false;\n }\n\n private go(queryParams: any = null) {\n if (queryParams == null) {\n queryParams = {\n type: this.type,\n collectionId: this.collectionId,\n deleted: this.deleted ? true : null,\n };\n }\n\n this.router.navigate([], {\n relativeTo: this.route,\n queryParams: queryParams,\n replaceUrl: true,\n });\n }\n}\n","
\n
\n
\n \n \n
\n
\n
\n

\n {{'vault' | i18n}}\n \n \n \n {{'loading' | i18n}}\n \n \n

\n
\n \n \n \n
\n
\n \n \n
\n
\n
\n\n\n\n\n","import { Component } from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CipherData } from 'jslib/models/data/cipherData';\nimport { Cipher } from 'jslib/models/domain/cipher';\nimport { Organization } from 'jslib/models/domain/organization';\n\nimport { AttachmentView } from 'jslib/models/view/attachmentView';\n\nimport { AttachmentsComponent as BaseAttachmentsComponent } from '../../vault/attachments.component';\n\n@Component({\n selector: 'app-org-vault-attachments',\n templateUrl: '../../vault/attachments.component.html',\n})\nexport class AttachmentsComponent extends BaseAttachmentsComponent {\n viewOnly = false;\n organization: Organization;\n\n constructor(cipherService: CipherService, i18nService: I18nService,\n cryptoService: CryptoService, userService: UserService,\n platformUtilsService: PlatformUtilsService, private apiService: ApiService) {\n super(cipherService, i18nService, cryptoService, userService, platformUtilsService);\n }\n\n protected async reupload(attachment: AttachmentView) {\n if (this.organization.canManageAllCollections && this.showFixOldAttachments(attachment)) {\n await super.reuploadCipherAttachment(attachment, true);\n }\n }\n\n protected async loadCipher() {\n if (!this.organization.canManageAllCollections) {\n return await super.loadCipher();\n }\n const response = await this.apiService.getCipherAdmin(this.cipherId);\n return new Cipher(new CipherData(response));\n }\n\n protected saveCipherAttachment(file: File) {\n return this.cipherService.saveAttachmentWithServer(this.cipherDomain, file, this.organization.canManageAllCollections);\n }\n\n protected deleteCipherAttachment(attachmentId: string) {\n if (!this.organization.canManageAllCollections) {\n return super.deleteCipherAttachment(attachmentId);\n }\n return this.apiService.deleteCipherAttachmentAdmin(this.cipherId, attachmentId);\n }\n\n protected showFixOldAttachments(attachment: AttachmentView) {\n return attachment.key == null && this.organization.canManageAllCollections;\n }\n}\n","import {\n Directive,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { CipherService } from '../../abstractions/cipher.service';\nimport { CryptoService } from '../../abstractions/crypto.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { UserService } from '../../abstractions/user.service';\n\nimport { Cipher } from '../../models/domain/cipher';\n\nimport { AttachmentView } from '../../models/view/attachmentView';\nimport { CipherView } from '../../models/view/cipherView';\n\n@Directive()\nexport class AttachmentsComponent implements OnInit {\n @Input() cipherId: string;\n @Output() onUploadedAttachment = new EventEmitter();\n @Output() onDeletedAttachment = new EventEmitter();\n @Output() onReuploadedAttachment = new EventEmitter();\n\n cipher: CipherView;\n cipherDomain: Cipher;\n hasUpdatedKey: boolean;\n canAccessAttachments: boolean;\n formPromise: Promise;\n deletePromises: { [id: string]: Promise; } = {};\n reuploadPromises: { [id: string]: Promise; } = {};\n\n constructor(protected cipherService: CipherService, protected i18nService: I18nService,\n protected cryptoService: CryptoService, protected userService: UserService,\n protected platformUtilsService: PlatformUtilsService, protected win: Window) { }\n\n async ngOnInit() {\n await this.init();\n }\n\n async submit() {\n if (!this.hasUpdatedKey) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('updateKey'));\n return;\n }\n\n const fileEl = document.getElementById('file') as HTMLInputElement;\n const files = fileEl.files;\n if (files == null || files.length === 0) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectFile'));\n return;\n }\n\n if (files[0].size > 104857600) { // 100 MB\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('maxFileSize'));\n return;\n }\n\n try {\n this.formPromise = this.saveCipherAttachment(files[0]);\n this.cipherDomain = await this.formPromise;\n this.cipher = await this.cipherDomain.decrypt();\n this.platformUtilsService.eventTrack('Added Attachment');\n this.platformUtilsService.showToast('success', null, this.i18nService.t('attachmentSaved'));\n this.onUploadedAttachment.emit();\n } catch { }\n\n // reset file input\n // ref: https://stackoverflow.com/a/20552042\n fileEl.type = '';\n fileEl.type = 'file';\n fileEl.value = '';\n }\n\n async delete(attachment: AttachmentView) {\n if (this.deletePromises[attachment.id] != null) {\n return;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('deleteAttachmentConfirmation'), this.i18nService.t('deleteAttachment'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return;\n }\n\n try {\n this.deletePromises[attachment.id] = this.deleteCipherAttachment(attachment.id);\n await this.deletePromises[attachment.id];\n this.platformUtilsService.eventTrack('Deleted Attachment');\n this.platformUtilsService.showToast('success', null, this.i18nService.t('deletedAttachment'));\n const i = this.cipher.attachments.indexOf(attachment);\n if (i > -1) {\n this.cipher.attachments.splice(i, 1);\n }\n } catch { }\n\n this.deletePromises[attachment.id] = null;\n this.onDeletedAttachment.emit();\n }\n\n async download(attachment: AttachmentView) {\n const a = (attachment as any);\n if (a.downloading) {\n return;\n }\n\n if (!this.canAccessAttachments) {\n this.platformUtilsService.showToast('error', this.i18nService.t('premiumRequired'),\n this.i18nService.t('premiumRequiredDesc'));\n return;\n }\n\n a.downloading = true;\n const response = await fetch(new Request(attachment.url, { cache: 'no-store' }));\n if (response.status !== 200) {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('errorOccurred'));\n a.downloading = false;\n return;\n }\n\n try {\n const buf = await response.arrayBuffer();\n const key = attachment.key != null ? attachment.key :\n await this.cryptoService.getOrgKey(this.cipher.organizationId);\n const decBuf = await this.cryptoService.decryptFromBytes(buf, key);\n this.platformUtilsService.saveFile(this.win, decBuf, null, attachment.fileName);\n } catch (e) {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('errorOccurred'));\n }\n\n a.downloading = false;\n }\n\n protected async init() {\n this.cipherDomain = await this.loadCipher();\n this.cipher = await this.cipherDomain.decrypt();\n\n this.hasUpdatedKey = await this.cryptoService.hasEncKey();\n const canAccessPremium = await this.userService.canAccessPremium();\n this.canAccessAttachments = canAccessPremium || this.cipher.organizationId != null;\n\n if (!this.canAccessAttachments) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('premiumRequiredDesc'), this.i18nService.t('premiumRequired'),\n this.i18nService.t('learnMore'), this.i18nService.t('cancel'));\n if (confirmed) {\n this.platformUtilsService.launchUri('https://vault.bitwarden.com/#/?premium=purchase');\n }\n } else if (!this.hasUpdatedKey) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('updateKey'), this.i18nService.t('featureUnavailable'),\n this.i18nService.t('learnMore'), this.i18nService.t('cancel'), 'warning');\n if (confirmed) {\n this.platformUtilsService.launchUri('https://help.bitwarden.com/article/update-encryption-key/');\n }\n }\n }\n\n protected async reuploadCipherAttachment(attachment: AttachmentView, admin: boolean) {\n const a = (attachment as any);\n if (attachment.key != null || a.downloading || this.reuploadPromises[attachment.id] != null) {\n return;\n }\n\n try {\n this.reuploadPromises[attachment.id] = Promise.resolve().then(async () => {\n // 1. Download\n a.downloading = true;\n const response = await fetch(new Request(attachment.url, { cache: 'no-store' }));\n if (response.status !== 200) {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('errorOccurred'));\n a.downloading = false;\n return;\n }\n\n try {\n // 2. Resave\n const buf = await response.arrayBuffer();\n const key = attachment.key != null ? attachment.key :\n await this.cryptoService.getOrgKey(this.cipher.organizationId);\n const decBuf = await this.cryptoService.decryptFromBytes(buf, key);\n this.cipherDomain = await this.cipherService.saveAttachmentRawWithServer(\n this.cipherDomain, attachment.fileName, decBuf, admin);\n this.cipher = await this.cipherDomain.decrypt();\n\n // 3. Delete old\n this.deletePromises[attachment.id] = this.deleteCipherAttachment(attachment.id);\n await this.deletePromises[attachment.id];\n const foundAttachment = this.cipher.attachments.filter(a2 => a2.id === attachment.id);\n if (foundAttachment.length > 0) {\n const i = this.cipher.attachments.indexOf(foundAttachment[0]);\n if (i > -1) {\n this.cipher.attachments.splice(i, 1);\n }\n }\n\n this.platformUtilsService.eventTrack('Reuploaded Attachment');\n this.platformUtilsService.showToast('success', null, this.i18nService.t('attachmentSaved'));\n this.onReuploadedAttachment.emit();\n } catch (e) {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('errorOccurred'));\n }\n\n a.downloading = false;\n });\n await this.reuploadPromises[attachment.id];\n } catch { }\n }\n\n protected loadCipher() {\n return this.cipherService.get(this.cipherId);\n }\n\n protected saveCipherAttachment(file: File) {\n return this.cipherService.saveAttachmentWithServer(this.cipherDomain, file);\n }\n\n protected deleteCipherAttachment(attachmentId: string) {\n return this.cipherService.deleteAttachmentWithServer(this.cipher.id, attachmentId);\n }\n}\n","import { Component } from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { CipherData } from 'jslib/models/data/cipherData';\nimport { Cipher } from 'jslib/models/domain/cipher';\nimport { Organization } from 'jslib/models/domain/organization';\nimport { CipherCollectionsRequest } from 'jslib/models/request/cipherCollectionsRequest';\n\nimport { CollectionsComponent as BaseCollectionsComponent } from '../../vault/collections.component';\n\n@Component({\n selector: 'app-org-vault-collections',\n templateUrl: '../../vault/collections.component.html',\n})\nexport class CollectionsComponent extends BaseCollectionsComponent {\n organization: Organization;\n\n constructor(collectionService: CollectionService, platformUtilsService: PlatformUtilsService,\n i18nService: I18nService, cipherService: CipherService,\n private apiService: ApiService) {\n super(collectionService, platformUtilsService, i18nService, cipherService);\n this.allowSelectNone = true;\n }\n\n protected async loadCipher() {\n if (!this.organization.canManageAllCollections) {\n return await super.loadCipher();\n }\n const response = await this.apiService.getCipherAdmin(this.cipherId);\n return new Cipher(new CipherData(response));\n }\n\n protected loadCipherCollections() {\n if (!this.organization.canManageAllCollections) {\n return super.loadCipherCollections();\n }\n return this.collectionIds;\n }\n\n protected loadCollections() {\n if (!this.organization.canManageAllCollections) {\n return super.loadCollections();\n }\n return Promise.resolve(this.collections);\n }\n\n protected saveCollections() {\n if (this.organization.canManageAllCollections) {\n const request = new CipherCollectionsRequest(this.cipherDomain.collectionIds);\n return this.apiService.putCipherCollectionsAdmin(this.cipherId, request);\n } else {\n return super.saveCollections();\n }\n }\n}\n","export class CipherCollectionsRequest {\n collectionIds: string[];\n\n constructor(collectionIds: string[]) {\n this.collectionIds = collectionIds == null ? [] : collectionIds;\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { Organization } from 'jslib/models/domain/organization';\nimport { CipherBulkDeleteRequest } from 'jslib/models/request/cipherBulkDeleteRequest';\n\n@Component({\n selector: 'app-vault-bulk-delete',\n templateUrl: 'bulk-delete.component.html',\n})\nexport class BulkDeleteComponent {\n @Input() cipherIds: string[] = [];\n @Input() permanent: boolean = false;\n @Input() organization: Organization;\n @Output() onDeleted = new EventEmitter();\n\n formPromise: Promise;\n\n constructor(private analytics: Angulartics2, private cipherService: CipherService,\n private toasterService: ToasterService, private i18nService: I18nService,\n private apiService: ApiService) { }\n\n async submit() {\n if (!this.organization || !this.organization.canManageAllCollections) {\n await this.deleteCiphers();\n } else {\n await this.deleteCiphersAdmin();\n }\n\n await this.formPromise;\n\n this.onDeleted.emit();\n this.analytics.eventTrack.next({ action: 'Bulk Deleted Items' });\n this.toasterService.popAsync('success', null, this.i18nService.t(this.permanent ? 'permanentlyDeletedItems'\n : 'deletedItems'));\n }\n\n private async deleteCiphers() {\n if (this.permanent) {\n this.formPromise = await this.cipherService.deleteManyWithServer(this.cipherIds);\n } else {\n this.formPromise = await this.cipherService.softDeleteManyWithServer(this.cipherIds);\n }\n }\n\n private async deleteCiphersAdmin() {\n const deleteRequest = new CipherBulkDeleteRequest(this.cipherIds, this.organization.id);\n if (this.permanent) {\n this.formPromise = await this.apiService.deleteManyCiphersAdmin(deleteRequest);\n } else {\n this.formPromise = await this.apiService.putDeleteManyCiphersAdmin(deleteRequest);\n }\n }\n}\n","
\n
\n
\n
\n

\n {{(permanent ? 'permanentlyDeleteSelected' : 'deleteSelected') | i18n}}\n

\n \n
\n
\n {{(permanent ? 'permanentlyDeleteSelectedItemsDesc' : 'deleteSelectedItemsDesc') | i18n: cipherIds.length}}\n
\n
\n \n \n
\n
\n
\n
\n","export class CipherBulkDeleteRequest {\n ids: string[];\n organizationId: string;\n\n constructor(ids: string[], organizationId?: string) {\n this.ids = ids == null ? [] : ids;\n this.organizationId = organizationId;\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { FolderView } from 'jslib/models/view/folderView';\n\n@Component({\n selector: 'app-vault-bulk-move',\n templateUrl: 'bulk-move.component.html',\n})\nexport class BulkMoveComponent implements OnInit {\n @Input() cipherIds: string[] = [];\n @Output() onMoved = new EventEmitter();\n\n folderId: string = null;\n folders: FolderView[] = [];\n formPromise: Promise;\n\n constructor(private analytics: Angulartics2, private cipherService: CipherService,\n private toasterService: ToasterService, private i18nService: I18nService,\n private folderService: FolderService) { }\n\n async ngOnInit() {\n this.folders = await this.folderService.getAllDecrypted();\n this.folderId = this.folders[0].id;\n }\n\n async submit() {\n this.formPromise = this.cipherService.moveManyWithServer(this.cipherIds, this.folderId);\n await this.formPromise;\n this.onMoved.emit();\n this.analytics.eventTrack.next({ action: 'Bulk Moved Items' });\n this.toasterService.popAsync('success', null, this.i18nService.t('movedItems'));\n }\n}\n","
\n
\n
\n
\n

\n {{'moveSelected' | i18n}}\n

\n \n
\n
\n

{{'moveSelectedItemsDesc' | i18n: cipherIds.length}}

\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\n@Component({\n selector: 'app-vault-bulk-restore',\n templateUrl: 'bulk-restore.component.html',\n})\nexport class BulkRestoreComponent {\n @Input() cipherIds: string[] = [];\n @Output() onRestored = new EventEmitter();\n\n formPromise: Promise;\n\n constructor(private analytics: Angulartics2, private cipherService: CipherService,\n private toasterService: ToasterService, private i18nService: I18nService) { }\n\n async submit() {\n this.formPromise = this.cipherService.restoreManyWithServer(this.cipherIds);\n await this.formPromise;\n this.onRestored.emit();\n this.analytics.eventTrack.next({ action: 'Bulk Restored Items' });\n this.toasterService.popAsync('success', null, this.i18nService.t('restoredItems'));\n }\n}\n","
\n
\n
\n
\n

\n {{'restoreSelected' | i18n}}\n

\n \n
\n
\n {{'restoreSelectedItemsDesc' | i18n: cipherIds.length}}\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CipherView } from 'jslib/models/view';\nimport { CollectionView } from 'jslib/models/view/collectionView';\n\nimport { Organization } from 'jslib/models/domain/organization';\n\n@Component({\n selector: 'app-vault-bulk-share',\n templateUrl: 'bulk-share.component.html',\n})\nexport class BulkShareComponent implements OnInit {\n @Input() ciphers: CipherView[] = [];\n @Input() organizationId: string;\n @Output() onShared = new EventEmitter();\n\n nonShareableCount = 0;\n collections: CollectionView[] = [];\n organizations: Organization[] = [];\n shareableCiphers: CipherView[] = [];\n formPromise: Promise;\n\n private writeableCollections: CollectionView[] = [];\n\n constructor(private analytics: Angulartics2, private cipherService: CipherService,\n private toasterService: ToasterService, private i18nService: I18nService,\n private collectionService: CollectionService, private userService: UserService) { }\n\n async ngOnInit() {\n this.shareableCiphers = this.ciphers.filter(c => !c.hasOldAttachments && c.organizationId == null);\n this.nonShareableCount = this.ciphers.length - this.shareableCiphers.length;\n const allCollections = await this.collectionService.getAllDecrypted();\n this.writeableCollections = allCollections.filter(c => !c.readOnly);\n this.organizations = await this.userService.getAllOrganizations();\n if (this.organizationId == null && this.organizations.length > 0) {\n this.organizationId = this.organizations[0].id;\n }\n this.filterCollections();\n }\n\n ngOnDestroy() {\n this.selectAll(false);\n }\n\n filterCollections() {\n this.selectAll(false);\n if (this.organizationId == null || this.writeableCollections.length === 0) {\n this.collections = [];\n } else {\n this.collections = this.writeableCollections.filter(c => c.organizationId === this.organizationId);\n }\n }\n\n async submit() {\n const checkedCollectionIds = this.collections.filter(c => (c as any).checked).map(c => c.id);\n try {\n this.formPromise = this.cipherService.shareManyWithServer(this.shareableCiphers, this.organizationId,\n checkedCollectionIds);\n await this.formPromise;\n this.onShared.emit();\n this.analytics.eventTrack.next({ action: 'Bulk Shared Items' });\n this.toasterService.popAsync('success', null, this.i18nService.t('sharedItems'));\n } catch { }\n }\n\n check(c: CollectionView, select?: boolean) {\n (c as any).checked = select == null ? !(c as any).checked : select;\n }\n\n selectAll(select: boolean) {\n const collections = select ? this.collections : this.writeableCollections;\n collections.forEach(c => this.check(c, select));\n }\n\n get canSave() {\n if (this.shareableCiphers != null && this.shareableCiphers.length > 0 && this.collections != null) {\n for (let i = 0; i < this.collections.length; i++) {\n if ((this.collections[i] as any).checked) {\n return true;\n }\n }\n }\n return false;\n }\n}\n","
\n
\n
\n
\n

\n {{'shareSelected' | i18n}}\n

\n \n
\n
\n

{{'shareManyDesc' | i18n}}

\n

{{'shareSelectedItemsCountDesc' | i18n: this.ciphers.length : shareableCiphers.length : nonShareableCount}}\n

\n
\n \n \n
\n
\n

{{'collections' | i18n}}

\n
\n \n \n
\n
\n
\n {{'noCollectionsInList' | i18n}}\n
\n \n \n \n \n \n \n \n
\n \n \n {{c.name}}\n
\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { ActivatedRoute } from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { CryptoFunctionService } from 'jslib/abstractions/cryptoFunction.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { Utils } from 'jslib/misc/utils';\n\nimport { SendAccess } from 'jslib/models/domain/sendAccess';\nimport { SymmetricCryptoKey } from 'jslib/models/domain/symmetricCryptoKey';\n\nimport { SendAccessView } from 'jslib/models/view/sendAccessView';\n\nimport { SendType } from 'jslib/enums/sendType';\nimport { SendAccessRequest } from 'jslib/models/request/sendAccessRequest';\nimport { ErrorResponse } from 'jslib/models/response/errorResponse';\n\nimport { SendAccessResponse } from 'jslib/models/response/sendAccessResponse';\n\n@Component({\n selector: 'app-send-access',\n templateUrl: 'access.component.html',\n})\nexport class AccessComponent implements OnInit {\n send: SendAccessView;\n sendType = SendType;\n downloading = false;\n loading = true;\n passwordRequired = false;\n formPromise: Promise;\n password: string;\n showText = false;\n unavailable = false;\n error = false;\n\n private id: string;\n private key: string;\n private decKey: SymmetricCryptoKey;\n private accessRequest: SendAccessRequest;\n\n constructor(private i18nService: I18nService, private cryptoFunctionService: CryptoFunctionService,\n private apiService: ApiService, private platformUtilsService: PlatformUtilsService,\n private route: ActivatedRoute, private cryptoService: CryptoService) {\n }\n\n get sendText() {\n if (this.send == null || this.send.text == null) {\n return null;\n }\n return this.showText ? this.send.text.text : this.send.text.maskedText;\n }\n\n get expirationDate() {\n if (this.send == null || this.send.expirationDate == null) {\n return null;\n }\n return this.send.expirationDate;\n }\n\n get creatorIdentifier() {\n if (this.send == null || this.send.creatorIdentifier == null) {\n return null;\n }\n return this.send.creatorIdentifier;\n }\n\n ngOnInit() {\n this.route.params.subscribe(async params => {\n this.id = params.sendId;\n this.key = params.key;\n if (this.key == null || this.id == null) {\n return;\n }\n await this.load();\n });\n }\n\n async download() {\n if (this.send == null || this.decKey == null) {\n return;\n }\n\n if (this.downloading) {\n return;\n }\n\n\n const downloadData = await this.apiService.getSendFileDownloadData(this.send, this.accessRequest);\n\n if (Utils.isNullOrWhitespace(downloadData.url)) {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('missingSendFile'));\n return;\n }\n\n this.downloading = true;\n const response = await fetch(new Request(downloadData.url, { cache: 'no-store' }));\n if (response.status !== 200) {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('errorOccurred'));\n this.downloading = false;\n return;\n }\n\n try {\n const buf = await response.arrayBuffer();\n const decBuf = await this.cryptoService.decryptFromBytes(buf, this.decKey);\n this.platformUtilsService.saveFile(window, decBuf, null, this.send.file.fileName);\n } catch (e) {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('errorOccurred'));\n }\n\n this.downloading = false;\n }\n\n copyText() {\n this.platformUtilsService.copyToClipboard(this.send.text.text);\n this.platformUtilsService.showToast('success', null,\n this.i18nService.t('valueCopied', this.i18nService.t('sendTypeText')));\n }\n\n toggleText() {\n this.showText = !this.showText;\n }\n\n async load() {\n this.unavailable = false;\n this.error = false;\n const keyArray = Utils.fromUrlB64ToArray(this.key);\n this.accessRequest = new SendAccessRequest();\n if (this.password != null) {\n const passwordHash = await this.cryptoFunctionService.pbkdf2(this.password, keyArray, 'sha256', 100000);\n this.accessRequest.password = Utils.fromBufferToB64(passwordHash);\n }\n try {\n let sendResponse: SendAccessResponse = null;\n if (this.loading) {\n sendResponse = await this.apiService.postSendAccess(this.id, this.accessRequest);\n } else {\n this.formPromise = this.apiService.postSendAccess(this.id, this.accessRequest);\n sendResponse = await this.formPromise;\n }\n this.passwordRequired = false;\n const sendAccess = new SendAccess(sendResponse);\n this.decKey = await this.cryptoService.makeSendKey(keyArray);\n this.send = await sendAccess.decrypt(this.decKey);\n this.showText = this.send.text != null ? !this.send.text.hidden : true;\n } catch (e) {\n if (e instanceof ErrorResponse) {\n if (e.statusCode === 401) {\n this.passwordRequired = true;\n } else if (e.statusCode === 404) {\n this.unavailable = true;\n } else {\n this.error = true;\n }\n }\n }\n this.loading = false;\n }\n}\n","
\n
\n
\n

Bitwarden Send

\n
\n
\n

{{'sendCreatorIdentifier' | i18n: creatorIdentifier }}

\n
\n
\n
\n
\n \n {{'loading' | i18n}}\n
\n
\n

{{'sendProtectedPassword' | i18n}}

\n

{{'sendProtectedPasswordDontKnow' | i18n}}

\n
\n \n \n
\n
\n \n
\n
\n
\n {{'sendAccessUnavailable' | i18n}}\n
\n
\n {{'unexpectedError' | i18n}}\n
\n
\n

{{send.name}}

\n
\n \n \n {{'sendHiddenByDefault' | i18n}}\n
\n \n
\n \n \n
\n \n \n

{{send.file.fileName}}

\n \n \n
\n

Expires:\n {{expirationDate | date: 'medium'}}

\n
\n
\n
\n
\n

{{'sendAccessTaglineProductDesc' | i18n}}
\n {{'sendAccessTaglineLearnMore' | i18n}} Bitwarden Send\n {{'sendAccessTaglineOr' | i18n}} {{'sendAccessTaglineSignUp' | i18n}}\n {{'sendAccessTaglineTryToday' | i18n}}\n

\n
\n
\n
\n","import {\n Component,\n ComponentFactoryResolver,\n NgZone,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { SendView } from 'jslib/models/view/sendView';\n\nimport { SendComponent as BaseSendComponent } from 'jslib/angular/components/send/send.component';\n\nimport { AddEditComponent } from './add-edit.component';\n\nimport { ModalComponent } from '../modal.component';\n\nimport { EnvironmentService } from 'jslib/abstractions/environment.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { SearchService } from 'jslib/abstractions/search.service';\nimport { SendService } from 'jslib/abstractions/send.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { BroadcasterService } from 'jslib/angular/services/broadcaster.service';\n\nconst BroadcasterSubscriptionId = 'SendComponent';\n\n@Component({\n selector: 'app-send',\n templateUrl: 'send.component.html',\n})\nexport class SendComponent extends BaseSendComponent {\n @ViewChild('sendAddEdit', { read: ViewContainerRef, static: true }) sendAddEditModalRef: ViewContainerRef;\n\n modal: ModalComponent = null;\n\n constructor(sendService: SendService, i18nService: I18nService,\n platformUtilsService: PlatformUtilsService, environmentService: EnvironmentService,\n ngZone: NgZone, searchService: SearchService, policyService: PolicyService, userService: UserService,\n private componentFactoryResolver: ComponentFactoryResolver, private broadcasterService: BroadcasterService) {\n super(sendService, i18nService, platformUtilsService, environmentService, ngZone, searchService,\n policyService, userService);\n }\n\n async ngOnInit() {\n await super.ngOnInit();\n await this.load();\n\n // Broadcaster subscription - load if sync completes in the background\n this.broadcasterService.subscribe(BroadcasterSubscriptionId, (message: any) => {\n this.ngZone.run(async () => {\n switch (message.command) {\n case 'syncCompleted':\n if (message.successfully) {\n await this.load();\n }\n break;\n }\n });\n });\n }\n\n ngOnDestroy() {\n this.broadcasterService.unsubscribe(BroadcasterSubscriptionId);\n }\n\n addSend() {\n if (this.disableSend) {\n return;\n }\n\n const component = this.editSend(null);\n component.type = this.type;\n }\n\n editSend(send: SendView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.sendAddEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n AddEditComponent, this.sendAddEditModalRef);\n\n childComponent.sendId = send == null ? null : send.id;\n childComponent.onSavedSend.subscribe(async (s: SendView) => {\n this.modal.close();\n await this.load();\n });\n childComponent.onDeletedSend.subscribe(async (s: SendView) => {\n this.modal.close();\n await this.load();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n\n return childComponent;\n }\n}\n","
\n
\n
\n {{'sendDisabled' | i18n}}\n
\n
\n {{'sendDisabledWarning' | i18n}}\n
\n
\n
\n
\n
\n
\n {{'filters' | i18n}}\n
\n
\n \n \n

{{'types' | i18n}}

\n \n
\n
\n
\n
\n
\n

\n {{'send' | i18n}}\n \n \n \n {{'loading' | i18n}}\n \n \n

\n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n
\n
\n \n \n
\n
\n {{s.name}}\n \n \n {{'disabled' | i18n}}\n \n \n \n {{'password' | i18n}}\n \n \n \n {{'maxAccessCountReached' | i18n}}\n \n \n \n {{'expired' | i18n}}\n \n \n \n {{'pendingDeletion' | i18n}}\n \n
\n {{s.deletionDate | date:'medium'}}\n
\n \n
\n
\n \n \n {{'loading' | i18n}}\n \n \n

{{'noSendsInList' | i18n}}

\n \n
\n
\n
\n
\n
\n\n","import { DatePipe } from '@angular/common';\n\nimport { Component } from '@angular/core';\n\nimport { EnvironmentService } from 'jslib/abstractions/environment.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { SendService } from 'jslib/abstractions/send.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { AddEditComponent as BaseAddEditComponent } from 'jslib/angular/components/send/add-edit.component';\n\n@Component({\n selector: 'app-send-add-edit',\n templateUrl: 'add-edit.component.html',\n})\nexport class AddEditComponent extends BaseAddEditComponent {\n constructor(i18nService: I18nService, platformUtilsService: PlatformUtilsService,\n environmentService: EnvironmentService, datePipe: DatePipe,\n sendService: SendService, userService: UserService,\n messagingService: MessagingService, policyService: PolicyService) {\n super(i18nService, platformUtilsService, environmentService, datePipe, sendService, userService,\n messagingService, policyService);\n }\n\n copyLinkToClipboard(link: string) {\n // Copy function on web depends on the modal being open or not. Since this event occurs during a transition\n // of the modal closing we need to add a small delay to make sure state of the DOM is consistent.\n window.setTimeout(() => super.copyLinkToClipboard(link), 500);\n }\n}\n","
\n
\n
\n
\n

{{title}}

\n \n
\n
\n \n {{'sendDisabledWarning' | i18n}}\n \n
\n
\n \n \n {{'sendNameDesc' | i18n}}\n
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n \n \n
\n \n \n {{'sendTextDesc' | i18n}}\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n {{'file' | i18n}}\n {{send.file.fileName}} ({{send.file.sizeName}})\n
\n
\n \n \n {{'sendFileDesc' | i18n}} {{'maxFileSize' |\n i18n}}\n
\n
\n
\n

{{'share' | i18n}}

\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n

{{'options' | i18n}}

\n \n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n \n \n \n
\n
\n
\n \n \n \n \n \n
\n
\n \n \n
\n
{{'deletionDateDesc' | i18n}}
\n
\n
\n
\n \n \n {{'clear' | i18n}}\n \n
\n \n \n \n \n
\n \n \n \n
\n
\n
\n \n \n \n \n \n
\n
\n \n \n
\n
{{'expirationDateDesc' | i18n}}
\n
\n
\n
\n
\n \n \n
{{'maxAccessCountDesc' | i18n}}
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n \n
\n \n
\n
\n
{{'sendPasswordDesc' | i18n}}
\n
\n
\n
\n \n \n
{{'sendNotesDesc' | i18n}}
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n \n \n
\n \n
\n
\n
\n
\n
\n","import { SendType } from '../../enums/sendType';\nimport { Utils } from '../../misc/utils';\n\nimport { Send } from '../domain/send';\nimport { SymmetricCryptoKey } from '../domain/symmetricCryptoKey';\n\nimport { SendFileView } from './sendFileView';\nimport { SendTextView } from './sendTextView';\nimport { View } from './view';\n\nexport class SendView implements View {\n id: string = null;\n accessId: string = null;\n name: string = null;\n notes: string = null;\n key: ArrayBuffer;\n cryptoKey: SymmetricCryptoKey;\n type: SendType = null;\n text = new SendTextView();\n file = new SendFileView();\n maxAccessCount?: number = null;\n accessCount: number = 0;\n revisionDate: Date = null;\n deletionDate: Date = null;\n expirationDate: Date = null;\n password: string = null;\n disabled: boolean = false;\n\n constructor(s?: Send) {\n if (!s) {\n return;\n }\n\n this.id = s.id;\n this.accessId = s.accessId;\n this.type = s.type;\n this.maxAccessCount = s.maxAccessCount;\n this.accessCount = s.accessCount;\n this.revisionDate = s.revisionDate;\n this.deletionDate = s.deletionDate;\n this.expirationDate = s.expirationDate;\n this.disabled = s.disabled;\n this.password = s.password;\n }\n\n get urlB64Key(): string {\n return Utils.fromBufferToUrlB64(this.key);\n }\n\n get maxAccessCountReached(): boolean {\n if (this.maxAccessCount == null) {\n return false;\n }\n return this.accessCount >= this.maxAccessCount;\n }\n\n get expired(): boolean {\n if (this.expirationDate == null) {\n return false;\n }\n return this.expirationDate <= new Date();\n }\n\n get pendingDelete(): boolean {\n return this.deletionDate <= new Date();\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { ModalComponent } from '../modal.component';\nimport { ApiKeyComponent } from './api-key.component';\nimport { DeauthorizeSessionsComponent } from './deauthorize-sessions.component';\nimport { DeleteAccountComponent } from './delete-account.component';\nimport { PurgeVaultComponent } from './purge-vault.component';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\n@Component({\n selector: 'app-account',\n templateUrl: 'account.component.html',\n})\nexport class AccountComponent {\n @ViewChild('deauthorizeSessionsTemplate', { read: ViewContainerRef, static: true }) deauthModalRef: ViewContainerRef;\n @ViewChild('purgeVaultTemplate', { read: ViewContainerRef, static: true }) purgeModalRef: ViewContainerRef;\n @ViewChild('deleteAccountTemplate', { read: ViewContainerRef, static: true }) deleteModalRef: ViewContainerRef;\n @ViewChild('viewUserApiKeyTemplate', { read: ViewContainerRef, static: true }) viewUserApiKeyModalRef: ViewContainerRef;\n @ViewChild('rotateUserApiKeyTemplate', { read: ViewContainerRef, static: true }) rotateUserApiKeyModalRef: ViewContainerRef;\n\n private modal: ModalComponent = null;\n\n constructor(private componentFactoryResolver: ComponentFactoryResolver, private apiService: ApiService,\n private userService: UserService) { }\n\n deauthorizeSessions() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.deauthModalRef.createComponent(factory).instance;\n this.modal.show(DeauthorizeSessionsComponent, this.deauthModalRef);\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n purgeVault() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.purgeModalRef.createComponent(factory).instance;\n this.modal.show(PurgeVaultComponent, this.purgeModalRef);\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n deleteAccount() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.deleteModalRef.createComponent(factory).instance;\n this.modal.show(DeleteAccountComponent, this.deleteModalRef);\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n async viewUserApiKey() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.viewUserApiKeyModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(ApiKeyComponent, this.viewUserApiKeyModalRef);\n childComponent.keyType = 'user';\n childComponent.entityId = await this.userService.getUserId();\n childComponent.postKey = this.apiService.postUserApiKey.bind(this.apiService);\n childComponent.scope = 'api';\n childComponent.grantType = 'client_credentials';\n childComponent.apiKeyTitle = 'apiKey';\n childComponent.apiKeyWarning = 'userApiKeyWarning';\n childComponent.apiKeyDescription = 'userApiKeyDesc';\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n async rotateUserApiKey() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.rotateUserApiKeyModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(ApiKeyComponent, this.rotateUserApiKeyModalRef);\n childComponent.keyType = 'user';\n childComponent.isRotation = true;\n childComponent.entityId = await this.userService.getUserId();\n childComponent.postKey = this.apiService.postUserRotateApiKey.bind(this.apiService);\n childComponent.scope = 'api';\n childComponent.grantType = 'client_credentials';\n childComponent.apiKeyTitle = 'apiKey';\n childComponent.apiKeyWarning = 'userApiKeyWarning';\n childComponent.apiKeyDescription = 'apiKeyRotateDesc';\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n}\n","
\n

{{'myAccount' | i18n}}

\n
\n\n
\n

{{'changeEmail' | i18n}}

\n
\n\n
\n

{{'changeMasterPassword' | i18n}}

\n
\n\n
\n

{{'encKeySettings' | i18n}}

\n
\n\n
\n

{{'apiKey' | i18n}}

\n
\n

\n {{'userApiKeyDesc' | i18n}}\n

\n\n\n
\n

{{'dangerZone' | i18n}}

\n
\n
\n
\n

{{'dangerZoneDesc' | i18n}}

\n \n \n \n
\n
\n\n\n\n\n\n","import { Component } from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\n\nimport { PasswordVerificationRequest } from 'jslib/models/request/passwordVerificationRequest';\n\n@Component({\n selector: 'app-deauthorize-sessions',\n templateUrl: 'deauthorize-sessions.component.html',\n})\nexport class DeauthorizeSessionsComponent {\n masterPassword: string;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private cryptoService: CryptoService, private messagingService: MessagingService) { }\n\n async submit() {\n if (this.masterPassword == null || this.masterPassword === '') {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n const request = new PasswordVerificationRequest();\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n try {\n this.formPromise = this.apiService.postSecurityStamp(request);\n await this.formPromise;\n this.analytics.eventTrack.next({ action: 'Deauthorized Sessions' });\n this.toasterService.popAsync('success', this.i18nService.t('sessionsDeauthorized'),\n this.i18nService.t('logBackIn'));\n this.messagingService.send('logout');\n } catch { }\n }\n}\n","
\n
\n
\n
\n

{{'deauthorizeSessions' | i18n}}

\n \n
\n
\n

{{'deauthorizeSessionsDesc' | i18n}}

\n {{'deauthorizeSessionsWarning' | i18n}}\n \n \n
\n
\n \n \n
\n
\n
\n
\n","import { Component } from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\n\nimport { PasswordVerificationRequest } from 'jslib/models/request/passwordVerificationRequest';\n\n@Component({\n selector: 'app-delete-account',\n templateUrl: 'delete-account.component.html',\n})\nexport class DeleteAccountComponent {\n masterPassword: string;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private cryptoService: CryptoService, private messagingService: MessagingService) { }\n\n async submit() {\n if (this.masterPassword == null || this.masterPassword === '') {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n const request = new PasswordVerificationRequest();\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n try {\n this.formPromise = this.apiService.deleteAccount(request);\n await this.formPromise;\n this.analytics.eventTrack.next({ action: 'Deleted Account' });\n this.toasterService.popAsync('success', this.i18nService.t('accountDeleted'),\n this.i18nService.t('accountDeletedDesc'));\n this.messagingService.send('logout');\n } catch { }\n }\n}\n","
\n
\n
\n
\n

{{'deleteAccount' | i18n}}

\n \n
\n
\n

{{'deleteAccountDesc' | i18n}}

\n {{'deleteAccountWarning' | i18n}}\n \n \n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { UpdateProfileRequest } from 'jslib/models/request/updateProfileRequest';\n\nimport { ProfileResponse } from 'jslib/models/response/profileResponse';\n\n@Component({\n selector: 'app-profile',\n templateUrl: 'profile.component.html',\n})\nexport class ProfileComponent implements OnInit {\n loading = true;\n profile: ProfileResponse;\n fingerprint: string;\n\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private userService: UserService, private cryptoService: CryptoService) { }\n\n async ngOnInit() {\n this.profile = await this.apiService.getProfile();\n this.loading = false;\n const fingerprint = await this.cryptoService.getFingerprint(await this.userService.getUserId());\n if (fingerprint != null) {\n this.fingerprint = fingerprint.join('-');\n }\n }\n\n async submit() {\n try {\n const request = new UpdateProfileRequest(this.profile.name, this.profile.masterPasswordHint);\n this.formPromise = this.apiService.putProfile(request);\n await this.formPromise;\n this.analytics.eventTrack.next({ action: 'Updated Profile' });\n this.toasterService.popAsync('success', null, this.i18nService.t('accountUpdated'));\n } catch { }\n }\n}\n","
\n \n {{'loading' | i18n}}\n
\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n

\n {{'yourAccountsFingerprint' | i18n}}:\n \n
\n {{fingerprint}}\n

\n
\n
\n \n
\n","import {\n Component,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { EmailRequest } from 'jslib/models/request/emailRequest';\nimport { EmailTokenRequest } from 'jslib/models/request/emailTokenRequest';\n\n@Component({\n selector: 'app-change-email',\n templateUrl: 'change-email.component.html',\n})\nexport class ChangeEmailComponent {\n masterPassword: string;\n newEmail: string;\n token: string;\n tokenSent = false;\n\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private cryptoService: CryptoService, private messagingService: MessagingService,\n private userService: UserService) { }\n\n async submit() {\n const hasEncKey = await this.cryptoService.hasEncKey();\n if (!hasEncKey) {\n this.toasterService.popAsync('error', null, this.i18nService.t('updateKey'));\n return;\n }\n\n this.newEmail = this.newEmail.trim().toLowerCase();\n if (!this.tokenSent) {\n const request = new EmailTokenRequest();\n request.newEmail = this.newEmail;\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n try {\n this.formPromise = this.apiService.postEmailToken(request);\n await this.formPromise;\n this.tokenSent = true;\n } catch { }\n } else {\n const request = new EmailRequest();\n request.token = this.token;\n request.newEmail = this.newEmail;\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n const kdf = await this.userService.getKdf();\n const kdfIterations = await this.userService.getKdfIterations();\n const newKey = await this.cryptoService.makeKey(this.masterPassword, this.newEmail, kdf, kdfIterations);\n request.newMasterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, newKey);\n const newEncKey = await this.cryptoService.remakeEncKey(newKey);\n request.key = newEncKey[1].encryptedString;\n try {\n this.formPromise = this.apiService.postEmail(request);\n await this.formPromise;\n this.reset();\n this.analytics.eventTrack.next({ action: 'Changed Email' });\n this.toasterService.popAsync('success', this.i18nService.t('emailChanged'),\n this.i18nService.t('logBackIn'));\n this.messagingService.send('logout');\n } catch { }\n }\n }\n\n reset() {\n this.token = this.newEmail = this.masterPassword = null;\n this.tokenSent = false;\n }\n}\n","
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n
\n

{{'changeEmailDesc' | i18n : newEmail}}

\n {{'loggedOutWarning' | i18n}}\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class EmailTokenRequest extends PasswordVerificationRequest {\n newEmail: string;\n masterPasswordHash: string;\n}\n","import { Component } from '@angular/core';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport {\n ChangePasswordComponent as BaseChangePasswordComponent,\n} from 'jslib/angular/components/change-password.component';\n\nimport { EmergencyAccessStatusType } from 'jslib/enums/emergencyAccessStatusType';\nimport { Utils } from 'jslib/misc/utils';\n\nimport { CipherString } from 'jslib/models/domain/cipherString';\nimport { SymmetricCryptoKey } from 'jslib/models/domain/symmetricCryptoKey';\n\nimport { CipherWithIdRequest } from 'jslib/models/request/cipherWithIdRequest';\nimport { EmergencyAccessUpdateRequest } from 'jslib/models/request/emergencyAccessUpdateRequest';\nimport { FolderWithIdRequest } from 'jslib/models/request/folderWithIdRequest';\nimport { PasswordRequest } from 'jslib/models/request/passwordRequest';\nimport { UpdateKeyRequest } from 'jslib/models/request/updateKeyRequest';\n\n@Component({\n selector: 'app-change-password',\n templateUrl: 'change-password.component.html',\n})\nexport class ChangePasswordComponent extends BaseChangePasswordComponent {\n rotateEncKey = false;\n currentMasterPassword: string;\n\n constructor(i18nService: I18nService,\n cryptoService: CryptoService, messagingService: MessagingService,\n userService: UserService, passwordGenerationService: PasswordGenerationService,\n platformUtilsService: PlatformUtilsService, policyService: PolicyService,\n private folderService: FolderService, private cipherService: CipherService,\n private syncService: SyncService, private apiService: ApiService ) {\n super(i18nService, cryptoService, messagingService, userService, passwordGenerationService,\n platformUtilsService, policyService);\n }\n\n async rotateEncKeyClicked() {\n if (this.rotateEncKey) {\n const ciphers = await this.cipherService.getAllDecrypted();\n let hasOldAttachments = false;\n if (ciphers != null) {\n for (let i = 0; i < ciphers.length; i++) {\n if (ciphers[i].organizationId == null && ciphers[i].hasOldAttachments) {\n hasOldAttachments = true;\n break;\n }\n }\n }\n\n if (hasOldAttachments) {\n const learnMore = await this.platformUtilsService.showDialog(\n this.i18nService.t('oldAttachmentsNeedFixDesc'), null,\n this.i18nService.t('learnMore'), this.i18nService.t('close'), 'warning');\n if (learnMore) {\n this.platformUtilsService.launchUri(\n 'https://help.bitwarden.com/article/attachments/#fixing-old-attachments');\n }\n this.rotateEncKey = false;\n return;\n }\n\n const result = await this.platformUtilsService.showDialog(\n this.i18nService.t('updateEncryptionKeyWarning') + ' ' +\n this.i18nService.t('updateEncryptionKeyExportWarning') + ' ' +\n this.i18nService.t('rotateEncKeyConfirmation'), this.i18nService.t('rotateEncKeyTitle'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!result) {\n this.rotateEncKey = false;\n }\n }\n }\n\n async submit() {\n const hasEncKey = await this.cryptoService.hasEncKey();\n if (!hasEncKey) {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('updateKey'));\n return;\n }\n\n await super.submit();\n }\n\n async setupSubmitActions() {\n if (this.currentMasterPassword == null || this.currentMasterPassword === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return false;\n }\n\n if (this.rotateEncKey) {\n await this.syncService.fullSync(true);\n }\n\n return super.setupSubmitActions();\n }\n\n async performSubmitActions(newMasterPasswordHash: string, newKey: SymmetricCryptoKey,\n newEncKey: [SymmetricCryptoKey, CipherString]) {\n const request = new PasswordRequest();\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.currentMasterPassword, null);\n request.newMasterPasswordHash = newMasterPasswordHash;\n request.key = newEncKey[1].encryptedString;\n\n try {\n if (this.rotateEncKey) {\n this.formPromise = this.apiService.postPassword(request).then(() => {\n return this.updateKey(newKey, request.newMasterPasswordHash);\n });\n } else {\n this.formPromise = this.apiService.postPassword(request);\n }\n\n await this.formPromise;\n\n this.platformUtilsService.showToast('success', this.i18nService.t('masterPasswordChanged'),\n this.i18nService.t('logBackIn'));\n this.messagingService.send('logout');\n } catch {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('errorOccurred'));\n }\n }\n\n private async updateKey(key: SymmetricCryptoKey, masterPasswordHash: string) {\n const encKey = await this.cryptoService.makeEncKey(key);\n const privateKey = await this.cryptoService.getPrivateKey();\n let encPrivateKey: CipherString = null;\n if (privateKey != null) {\n encPrivateKey = await this.cryptoService.encrypt(privateKey, encKey[0]);\n }\n const request = new UpdateKeyRequest();\n request.privateKey = encPrivateKey != null ? encPrivateKey.encryptedString : null;\n request.key = encKey[1].encryptedString;\n request.masterPasswordHash = masterPasswordHash;\n\n const folders = await this.folderService.getAllDecrypted();\n for (let i = 0; i < folders.length; i++) {\n if (folders[i].id == null) {\n continue;\n }\n const folder = await this.folderService.encrypt(folders[i], encKey[0]);\n request.folders.push(new FolderWithIdRequest(folder));\n }\n\n const ciphers = await this.cipherService.getAllDecrypted();\n for (let i = 0; i < ciphers.length; i++) {\n if (ciphers[i].organizationId != null) {\n continue;\n }\n\n const cipher = await this.cipherService.encrypt(ciphers[i], encKey[0]);\n request.ciphers.push(new CipherWithIdRequest(cipher));\n }\n\n await this.apiService.postAccountKey(request);\n\n await this.updateEmergencyAccesses(encKey[0]);\n }\n\n private async updateEmergencyAccesses(encKey: SymmetricCryptoKey) {\n const emergencyAccess = await this.apiService.getEmergencyAccessTrusted();\n const allowedStatuses = [\n EmergencyAccessStatusType.Confirmed,\n EmergencyAccessStatusType.RecoveryInitiated,\n EmergencyAccessStatusType.RecoveryApproved,\n ];\n\n const filteredAccesses = emergencyAccess.data.filter(d => allowedStatuses.includes(d.status));\n\n for (const details of filteredAccesses) {\n const publicKeyResponse = await this.apiService.getUserPublicKey(details.granteeId);\n const publicKey = Utils.fromB64ToArray(publicKeyResponse.publicKey);\n\n const encryptedKey = await this.cryptoService.rsaEncrypt(encKey.key, publicKey.buffer);\n\n const updateRequest = new EmergencyAccessUpdateRequest();\n updateRequest.type = details.type;\n updateRequest.waitTimeDays = details.waitTimeDays;\n updateRequest.keyEncrypted = encryptedKey.encryptedString;\n\n await this.apiService.putEmergencyAccess(details.id, updateRequest);\n }\n }\n}\n","{{'loggedOutWarning' | i18n}}\n\n {{'masterPasswordPolicyInEffect' | i18n}}\n
    \n
  • 0\">\n {{'policyInEffectMinComplexity' | i18n : getPasswordScoreAlertDisplay()}}\n
  • \n
  • 0\">\n {{'policyInEffectMinLength' | i18n : enforcedPolicyOptions?.minLength.toString()}}\n
  • \n
  • {{'policyInEffectUppercase' | i18n}}
  • \n
  • {{'policyInEffectLowercase' | i18n}}
  • \n
  • {{'policyInEffectNumbers' | i18n}}
  • \n
  • {{'policyInEffectSpecial' | i18n : '!@#$%^&*'}}
  • \n
\n
\n\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n \n \n \n \n
\n
\n \n
\n","export enum EmergencyAccessStatusType {\n Invited = 0,\n Accepted = 1,\n Confirmed = 2,\n RecoveryInitiated = 3,\n RecoveryApproved = 4,\n}\n","import { EmergencyAccessType } from '../../enums/emergencyAccessType';\n\nexport class EmergencyAccessUpdateRequest {\n type: EmergencyAccessType;\n waitTimeDays: number;\n keyEncrypted?: string;\n}\n","import { FolderRequest } from './folderRequest';\n\nimport { Folder } from '../domain/folder';\n\nexport class FolderWithIdRequest extends FolderRequest {\n id: string;\n\n constructor(folder: Folder) {\n super(folder);\n this.id = folder.id;\n }\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class PasswordRequest extends PasswordVerificationRequest {\n newMasterPasswordHash: string;\n key: string;\n}\n","import { CipherWithIdRequest } from './cipherWithIdRequest';\nimport { FolderWithIdRequest } from './folderWithIdRequest';\n\nexport class UpdateKeyRequest {\n ciphers: CipherWithIdRequest[] = [];\n folders: FolderWithIdRequest[] = [];\n masterPasswordHash: string;\n privateKey: string;\n key: string;\n}\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { KdfRequest } from 'jslib/models/request/kdfRequest';\n\nimport { KdfType } from 'jslib/enums/kdfType';\n\n@Component({\n selector: 'app-change-kdf',\n templateUrl: 'change-kdf.component.html',\n})\nexport class ChangeKdfComponent implements OnInit {\n masterPassword: string;\n kdfIterations: number;\n kdf = KdfType.PBKDF2_SHA256;\n kdfOptions: any[] = [];\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private cryptoService: CryptoService, private messagingService: MessagingService,\n private userService: UserService) {\n this.kdfOptions = [\n { name: 'PBKDF2 SHA-256', value: KdfType.PBKDF2_SHA256 },\n ];\n }\n\n async ngOnInit() {\n this.kdf = await this.userService.getKdf();\n this.kdfIterations = await this.userService.getKdfIterations();\n }\n\n async submit() {\n const hasEncKey = await this.cryptoService.hasEncKey();\n if (!hasEncKey) {\n this.toasterService.popAsync('error', null, this.i18nService.t('updateKey'));\n return;\n }\n\n const request = new KdfRequest();\n request.kdf = this.kdf;\n request.kdfIterations = this.kdfIterations;\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n const email = await this.userService.getEmail();\n const newKey = await this.cryptoService.makeKey(this.masterPassword, email, this.kdf, this.kdfIterations);\n request.newMasterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, newKey);\n const newEncKey = await this.cryptoService.remakeEncKey(newKey);\n request.key = newEncKey[1].encryptedString;\n try {\n this.formPromise = this.apiService.postAccountKdf(request);\n await this.formPromise;\n this.analytics.eventTrack.next({ action: 'Changed KDF' });\n this.toasterService.popAsync('success', this.i18nService.t('encKeySettingsChanged'),\n this.i18nService.t('logBackIn'));\n this.messagingService.send('logout');\n } catch { }\n }\n}\n","{{'loggedOutWarning' | i18n}}\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n
\n
\n

{{'kdfIterationsDesc' | i18n : (100000 | number)}}

\n {{'warning' | i18n}}: {{'kdfIterationsWarning' | i18n : (50000 | number)}}\n
\n
\n
\n
\n \n
\n","import {\n Component,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { PlanType } from 'jslib/enums/planType';\nimport { ProductType } from 'jslib/enums/productType';\n\nimport { OrganizationPlansComponent } from './organization-plans.component';\n\n@Component({\n selector: 'app-create-organization',\n templateUrl: 'create-organization.component.html',\n})\nexport class CreateOrganizationComponent implements OnInit {\n @ViewChild(OrganizationPlansComponent, { static: true }) orgPlansComponent: OrganizationPlansComponent;\n\n constructor(private route: ActivatedRoute) { }\n\n ngOnInit() {\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n if (qParams.plan === 'families') {\n this.orgPlansComponent.plan = PlanType.FamiliesAnnually;\n this.orgPlansComponent.product = ProductType.Families;\n } else if (qParams.plan === 'teams') {\n this.orgPlansComponent.plan = PlanType.TeamsAnnually;\n this.orgPlansComponent.product = ProductType.Teams;\n } else if (qParams.plan === 'enterprise') {\n this.orgPlansComponent.plan = PlanType.EnterpriseAnnually;\n this.orgPlansComponent.product = ProductType.Enterprise;\n }\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n }\n}\n","
\n

{{'newOrganization' | i18n}}

\n
\n

{{'newOrganizationDesc' | i18n}}

\n\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { UpdateDomainsRequest } from 'jslib/models/request/updateDomainsRequest';\n\n@Component({\n selector: 'app-domain-rules',\n templateUrl: 'domain-rules.component.html',\n})\nexport class DomainRulesComponent implements OnInit {\n loading = true;\n custom: string[] = [];\n global: any[] = [];\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService) { }\n\n async ngOnInit() {\n const response = await this.apiService.getSettingsDomains();\n this.loading = false;\n if (response.equivalentDomains != null) {\n this.custom = response.equivalentDomains.map(d => d.join(', '));\n }\n if (response.globalEquivalentDomains != null) {\n this.global = response.globalEquivalentDomains.map(d => {\n return {\n domains: d.domains.join(', '),\n excluded: d.excluded,\n key: d.type,\n };\n });\n }\n }\n\n toggleExcluded(globalDomain: any) {\n globalDomain.excluded = !globalDomain.excluded;\n }\n\n customize(globalDomain: any) {\n globalDomain.excluded = true;\n this.custom.push(globalDomain.domains);\n }\n\n remove(index: number) {\n this.custom.splice(index, 1);\n }\n\n add() {\n this.custom.push('');\n }\n\n async submit() {\n const request = new UpdateDomainsRequest();\n request.excludedGlobalEquivalentDomains = this.global.filter(d => d.excluded)\n .map(d => d.key);\n if (request.excludedGlobalEquivalentDomains.length === 0) {\n request.excludedGlobalEquivalentDomains = null;\n }\n request.equivalentDomains = this.custom.filter(d => d != null && d.trim() !== '')\n .map(d => d.split(',').map(d2 => d2.trim()));\n if (request.equivalentDomains.length === 0) {\n request.equivalentDomains = null;\n }\n\n try {\n this.formPromise = this.apiService.putSettingsDomains(request);\n await this.formPromise;\n this.analytics.eventTrack.next({ action: 'Saved Equivalent Domains' });\n this.toasterService.popAsync('success', null, this.i18nService.t('domainsUpdated'));\n } catch { }\n }\n\n indexTrackBy(index: number, obj: any): any {\n return index;\n }\n}\n","
\n

{{'domainRules' | i18n}}

\n
\n

{{'domainRulesDesc' | i18n}}

\n
\n

{{'customEqDomains' | i18n}}

\n

\n \n {{'loading' | i18n}}\n

\n \n
\n
\n \n \n
\n \n
\n \n {{'newCustomDomainDesc' | i18n}}\n
\n \n

{{'globalEqDomains' | i18n}}

\n

\n \n {{'loading' | i18n}}\n

\n 0\">\n \n \n \n \n \n \n
{{d.domains}}\n \n
\n \n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\nimport { VaultTimeoutService } from 'jslib/abstractions/vaultTimeout.service';\n\nimport { ConstantsService } from 'jslib/services/constants.service';\n\nimport { Utils } from 'jslib/misc/utils';\n\n@Component({\n selector: 'app-options',\n templateUrl: 'options.component.html',\n})\nexport class OptionsComponent implements OnInit {\n vaultTimeout: number = null;\n vaultTimeoutAction: string = 'lock';\n disableIcons: boolean;\n enableGravatars: boolean;\n enableFullWidth: boolean;\n locale: string;\n vaultTimeouts: any[];\n localeOptions: any[];\n\n private startingLocale: string;\n\n constructor(private storageService: StorageService, private stateService: StateService,\n private analytics: Angulartics2, private i18nService: I18nService,\n private toasterService: ToasterService, private vaultTimeoutService: VaultTimeoutService,\n private platformUtilsService: PlatformUtilsService, private messagingService: MessagingService) {\n this.vaultTimeouts = [\n { name: i18nService.t('oneMinute'), value: 1 },\n { name: i18nService.t('fiveMinutes'), value: 5 },\n { name: i18nService.t('fifteenMinutes'), value: 15 },\n { name: i18nService.t('thirtyMinutes'), value: 30 },\n { name: i18nService.t('oneHour'), value: 60 },\n { name: i18nService.t('fourHours'), value: 240 },\n { name: i18nService.t('onRefresh'), value: -1 },\n ];\n if (this.platformUtilsService.isDev()) {\n this.vaultTimeouts.push({ name: i18nService.t('never'), value: null });\n }\n\n const localeOptions: any[] = [];\n i18nService.supportedTranslationLocales.forEach(locale => {\n let name = locale;\n if (i18nService.localeNames.has(locale)) {\n name += (' - ' + i18nService.localeNames.get(locale));\n }\n localeOptions.push({ name: name, value: locale });\n });\n localeOptions.sort(Utils.getSortFunction(i18nService, 'name'));\n localeOptions.splice(0, 0, { name: i18nService.t('default'), value: null });\n this.localeOptions = localeOptions;\n }\n\n async ngOnInit() {\n this.vaultTimeout = await this.storageService.get(ConstantsService.vaultTimeoutKey);\n this.vaultTimeoutAction = await this.storageService.get(ConstantsService.vaultTimeoutActionKey);\n this.disableIcons = await this.storageService.get(ConstantsService.disableFaviconKey);\n this.enableGravatars = await this.storageService.get('enableGravatars');\n this.enableFullWidth = await this.storageService.get('enableFullWidth');\n this.locale = this.startingLocale = await this.storageService.get(ConstantsService.localeKey);\n }\n\n async submit() {\n await this.vaultTimeoutService.setVaultTimeoutOptions(this.vaultTimeout != null ? this.vaultTimeout : null,\n this.vaultTimeoutAction);\n await this.storageService.save(ConstantsService.disableFaviconKey, this.disableIcons);\n await this.stateService.save(ConstantsService.disableFaviconKey, this.disableIcons);\n await this.storageService.save('enableGravatars', this.enableGravatars);\n await this.stateService.save('enableGravatars', this.enableGravatars);\n await this.storageService.save('enableFullWidth', this.enableFullWidth);\n this.messagingService.send('setFullWidth');\n await this.storageService.save(ConstantsService.localeKey, this.locale);\n this.analytics.eventTrack.next({ action: 'Saved Options' });\n if (this.locale !== this.startingLocale) {\n window.location.reload();\n } else {\n this.toasterService.popAsync('success', null, this.i18nService.t('optionsUpdated'));\n }\n }\n\n async vaultTimeoutActionChanged(newValue: string) {\n if (newValue === 'logOut') {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('vaultTimeoutLogOutConfirmation'),\n this.i18nService.t('vaultTimeoutLogOutConfirmationTitle'),\n this.i18nService.t('yes'), this.i18nService.t('cancel'), 'warning');\n if (!confirmed) {\n this.vaultTimeoutAction = 'lock';\n return;\n }\n }\n this.vaultTimeoutAction = newValue;\n }\n}\n","
\n

{{'options' | i18n}}

\n
\n

{{'optionsDesc' | i18n}}

\n
\n
\n
\n
\n \n \n {{'vaultTimeoutDesc' | i18n}}\n
\n
\n
\n
\n \n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n \n {{'languageDesc' | i18n}}\n
\n
\n
\n
\n
\n \n \n \n \n \n
\n {{'disableIconsDesc' | i18n}}\n
\n
\n
\n \n \n \n \n \n
\n {{'enableGravatarsDesc' | i18n}}\n
\n\t
\n
\n \n \n
\n {{'enableFullWidthDesc' | i18n}}\n
\n \n
\n","import {\n AfterContentInit,\n Component,\n Input,\n} from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { AuthService } from 'jslib/abstractions/auth.service';\nimport { CryptoFunctionService } from 'jslib/abstractions/cryptoFunction.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\n\nimport { SsoComponent } from 'jslib/angular/components/sso.component';\n\nimport { Organization } from 'jslib/models/domain/organization';\n\n@Component({\n selector: 'app-link-sso',\n templateUrl: 'link-sso.component.html',\n})\nexport class LinkSsoComponent extends SsoComponent implements AfterContentInit {\n @Input() organization: Organization;\n returnUri: string = '/settings/organizations';\n\n constructor(platformUtilsService: PlatformUtilsService, i18nService: I18nService,\n apiService: ApiService, authService: AuthService,\n router: Router, route: ActivatedRoute,\n cryptoFunctionService: CryptoFunctionService, passwordGenerationService: PasswordGenerationService,\n storageService: StorageService, stateService: StateService) {\n super(authService, router,\n i18nService, route,\n storageService, stateService,\n platformUtilsService, apiService,\n cryptoFunctionService, passwordGenerationService);\n\n this.returnUri = '/settings/organizations';\n this.redirectUri = window.location.origin + '/sso-connector.html';\n this.clientId = 'web';\n }\n\n async ngAfterContentInit() {\n this.identifier = this.organization.identifier;\n }\n}\n","\n \n {{'linkSso' | i18n}}\n\n","import {\n Component,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\nimport { TokenService } from 'jslib/abstractions/token.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { PaymentComponent } from './payment.component';\nimport { TaxInfoComponent } from './tax-info.component';\n\n@Component({\n selector: 'app-premium',\n templateUrl: 'premium.component.html',\n})\nexport class PremiumComponent implements OnInit {\n @ViewChild(PaymentComponent) paymentComponent: PaymentComponent;\n @ViewChild(TaxInfoComponent) taxInfoComponent: TaxInfoComponent;\n\n canAccessPremium = false;\n selfHosted = false;\n premiumPrice = 10;\n storageGbPrice = 4;\n additionalStorage = 0;\n\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n platformUtilsService: PlatformUtilsService, private tokenService: TokenService,\n private router: Router, private messagingService: MessagingService,\n private syncService: SyncService, private userService: UserService) {\n this.selfHosted = platformUtilsService.isSelfHost();\n }\n\n async ngOnInit() {\n this.canAccessPremium = await this.userService.canAccessPremium();\n const premium = await this.tokenService.getPremium();\n if (premium) {\n this.router.navigate(['/settings/subscription']);\n return;\n }\n }\n\n async submit() {\n let files: FileList = null;\n if (this.selfHosted) {\n const fileEl = document.getElementById('file') as HTMLInputElement;\n files = fileEl.files;\n if (files == null || files.length === 0) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectFile'));\n return;\n }\n }\n\n try {\n if (this.selfHosted) {\n if (!this.tokenService.getEmailVerified()) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('verifyEmailFirst'));\n return;\n }\n\n const fd = new FormData();\n fd.append('license', files[0]);\n this.formPromise = this.apiService.postAccountLicense(fd).then(() => {\n return this.finalizePremium();\n });\n } else {\n this.formPromise = this.paymentComponent.createPaymentToken().then(result => {\n const fd = new FormData();\n fd.append('paymentMethodType', result[1].toString());\n if (result[0] != null) {\n fd.append('paymentToken', result[0]);\n }\n fd.append('additionalStorageGb', (this.additionalStorage || 0).toString());\n fd.append('country', this.taxInfoComponent.taxInfo.country);\n fd.append('postalCode', this.taxInfoComponent.taxInfo.postalCode);\n return this.apiService.postPremium(fd);\n }).then(paymentResponse => {\n if (!paymentResponse.success && paymentResponse.paymentIntentClientSecret != null) {\n return this.paymentComponent.handleStripeCardPayment(paymentResponse.paymentIntentClientSecret,\n () => this.finalizePremium());\n } else {\n return this.finalizePremium();\n }\n });\n }\n await this.formPromise;\n } catch { }\n }\n\n async finalizePremium() {\n await this.apiService.refreshIdentityToken();\n await this.syncService.fullSync(true);\n this.analytics.eventTrack.next({ action: 'Signed Up Premium' });\n this.toasterService.popAsync('success', null, this.i18nService.t('premiumUpdated'));\n this.messagingService.send('purchasedPremium');\n this.router.navigate(['/settings/subscription']);\n }\n\n get additionalStorageTotal(): number {\n return this.storageGbPrice * Math.abs(this.additionalStorage || 0);\n }\n\n get subtotal(): number {\n return this.premiumPrice + this.additionalStorageTotal;\n }\n\n get taxCharges(): number {\n return this.taxInfoComponent != null && this.taxInfoComponent.taxRate != null ?\n (this.taxInfoComponent.taxRate / 100) * this.subtotal :\n 0;\n }\n\n get total(): number {\n return (this.subtotal + this.taxCharges) || 0;\n }\n}\n","
\n

{{'goPremium' | i18n}}

\n
\n\n {{'alreadyPremiumFromOrg' | i18n}}\n\n\n

{{'premiumUpgradeUnlockFeatures' | i18n}}

\n
    \n
  • \n \n {{'premiumSignUpStorage' | i18n}}\n
  • \n
  • \n \n {{'premiumSignUpTwoStep' | i18n}}\n
  • \n
  • \n \n {{'premiumSignUpEmergency' |i18n}}\n
  • \n
  • \n \n {{'premiumSignUpReports' | i18n}}\n
  • \n
  • \n \n {{'premiumSignUpTotp' | i18n}}\n
  • \n
  • \n \n {{'premiumSignUpSupport' | i18n}}\n
  • \n
  • \n \n {{'premiumSignUpFuture' | i18n}}\n
  • \n
\n

{{'premiumPrice' | i18n : (premiumPrice | currency:'$')}}

\n \n {{'purchasePremium' | i18n}}\n \n
\n\n

{{'uploadLicenseFilePremium' | i18n}}

\n
\n
\n \n \n {{'licenseFileDesc' | i18n : 'bitwarden_premium_license.json'}}\n
\n \n
\n
\n
\n

{{'addons' | i18n}}

\n
\n
\n \n \n {{'additionalStorageIntervalDesc' | i18n : '1 GB' : (storageGbPrice | currency:'$') : ('year' | i18n)}}\n
\n
\n

{{'summary' | i18n}}

\n {{'premiumMembership' | i18n}}: {{premiumPrice | currency:'$'}}\n
{{'additionalStorageGb' | i18n}}: {{additionalStorage || 0}} GB × {{storageGbPrice | currency:'$'}} = {{additionalStorageTotal\n | currency:'$'}}\n
\n

{{'paymentInformation' | i18n}}

\n \n \n
\n
\n {{ 'planPrice' | i18n }}: {{ subtotal | currency: 'USD $' }}\n
\n \n {{ 'estimatedTax' | i18n }}: {{ taxCharges | currency: 'USD $' }}\n \n
\n
\n

{{'total' | i18n}}:\n {{total | currency:'USD $'}}/{{'year' | i18n}}

\n
\n {{'paymentChargedAnnually' | i18n}}\n \n
\n","import {\n Component,\n NgZone,\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { TokenService } from 'jslib/abstractions/token.service';\n\nimport { BroadcasterService } from 'jslib/angular/services/broadcaster.service';\n\nconst BroadcasterSubscriptionId = 'SettingsComponent';\n\n@Component({\n selector: 'app-settings',\n templateUrl: 'settings.component.html',\n})\nexport class SettingsComponent implements OnInit, OnDestroy {\n premium: boolean;\n selfHosted: boolean;\n\n constructor(private tokenService: TokenService, private broadcasterService: BroadcasterService,\n private ngZone: NgZone, private platformUtilsService: PlatformUtilsService) { }\n\n async ngOnInit() {\n this.broadcasterService.subscribe(BroadcasterSubscriptionId, async (message: any) => {\n this.ngZone.run(async () => {\n switch (message.command) {\n case 'purchasedPremium':\n await this.load();\n break;\n default:\n }\n });\n });\n\n this.selfHosted = await this.platformUtilsService.isSelfHost();\n await this.load();\n }\n\n ngOnDestroy() {\n this.broadcasterService.unsubscribe(BroadcasterSubscriptionId);\n }\n\n async load() {\n this.premium = await this.tokenService.getPremium();\n }\n}\n","\n","import {\n Component,\n OnInit,\n} from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { SubscriptionResponse } from 'jslib/models/response/subscriptionResponse';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { TokenService } from 'jslib/abstractions/token.service';\n\n@Component({\n selector: 'app-user-subscription',\n templateUrl: 'user-subscription.component.html',\n})\nexport class UserSubscriptionComponent implements OnInit {\n loading = false;\n firstLoaded = false;\n adjustStorageAdd = true;\n showAdjustStorage = false;\n showUpdateLicense = false;\n sub: SubscriptionResponse;\n selfHosted = false;\n\n cancelPromise: Promise;\n reinstatePromise: Promise;\n\n constructor(private tokenService: TokenService, private apiService: ApiService,\n private platformUtilsService: PlatformUtilsService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private router: Router) {\n this.selfHosted = platformUtilsService.isSelfHost();\n }\n\n async ngOnInit() {\n await this.load();\n this.firstLoaded = true;\n }\n\n async load() {\n if (this.loading) {\n return;\n }\n\n if (this.tokenService.getPremium()) {\n this.loading = true;\n this.sub = await this.apiService.getUserSubscription();\n } else {\n this.router.navigate(['/settings/premium']);\n return;\n }\n\n this.loading = false;\n }\n\n async reinstate() {\n if (this.loading) {\n return;\n }\n\n if (this.usingInAppPurchase) {\n this.platformUtilsService.showDialog(this.i18nService.t('manageSubscriptionFromStore'),\n this.i18nService.t('cancelSubscription'), null, null, 'warning');\n return;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(this.i18nService.t('reinstateConfirmation'),\n this.i18nService.t('reinstateSubscription'), this.i18nService.t('yes'), this.i18nService.t('cancel'));\n if (!confirmed) {\n return;\n }\n\n try {\n this.reinstatePromise = this.apiService.postReinstatePremium();\n await this.reinstatePromise;\n this.analytics.eventTrack.next({ action: 'Reinstated Premium' });\n this.toasterService.popAsync('success', null, this.i18nService.t('reinstated'));\n this.load();\n } catch { }\n }\n\n async cancel() {\n if (this.loading) {\n return;\n }\n\n if (this.usingInAppPurchase) {\n this.platformUtilsService.showDialog(this.i18nService.t('manageSubscriptionFromStore'),\n this.i18nService.t('cancelSubscription'), null, null, 'warning');\n return;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(this.i18nService.t('cancelConfirmation'),\n this.i18nService.t('cancelSubscription'), this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return;\n }\n\n try {\n this.cancelPromise = this.apiService.postCancelPremium();\n await this.cancelPromise;\n this.analytics.eventTrack.next({ action: 'Canceled Premium' });\n this.toasterService.popAsync('success', null, this.i18nService.t('canceledSubscription'));\n this.load();\n } catch { }\n }\n\n downloadLicense() {\n if (this.loading) {\n return;\n }\n\n const licenseString = JSON.stringify(this.sub.license, null, 2);\n this.platformUtilsService.saveFile(window, licenseString, null, 'bitwarden_premium_license.json');\n }\n\n updateLicense() {\n if (this.loading) {\n return;\n }\n this.showUpdateLicense = true;\n }\n\n closeUpdateLicense(load: boolean) {\n this.showUpdateLicense = false;\n if (load) {\n this.load();\n }\n }\n\n adjustStorage(add: boolean) {\n if (this.usingInAppPurchase) {\n this.platformUtilsService.showDialog(this.i18nService.t('cannotPerformInAppPurchase'),\n this.i18nService.t(add ? 'addStorage' : 'removeStorage'), null, null, 'warning');\n return;\n }\n this.adjustStorageAdd = add;\n this.showAdjustStorage = true;\n }\n\n closeStorage(load: boolean) {\n this.showAdjustStorage = false;\n if (load) {\n this.load();\n }\n }\n\n get subscriptionMarkedForCancel() {\n return this.subscription != null && !this.subscription.cancelled && this.subscription.cancelAtEndDate;\n }\n\n get subscription() {\n return this.sub != null ? this.sub.subscription : null;\n }\n\n get nextInvoice() {\n return this.sub != null ? this.sub.upcomingInvoice : null;\n }\n\n get storagePercentage() {\n return this.sub != null && this.sub.maxStorageGb ?\n +(100 * (this.sub.storageGb / this.sub.maxStorageGb)).toFixed(2) : 0;\n }\n\n get storageProgressWidth() {\n return this.storagePercentage < 5 ? 5 : 0;\n }\n\n get usingInAppPurchase() {\n return this.sub != null ? this.sub.usingInAppPurchase : false;\n }\n}\n","
\n

\n {{'premiumMembership' | i18n}}\n \n \n {{'loading' | i18n}}\n \n

\n
\n\n \n {{'loading' | i18n}}\n\n\n \n {{'subscriptionCanceled' | i18n}}\n \n

{{'subscriptionPendingCanceled' | i18n}}

\n \n
\n
\n
{{'expiration' | i18n}}
\n
{{sub.expiration | date:'mediumDate'}}
\n
{{'neverExpires' | i18n}}
\n
\n
\n
\n
\n
{{'status' | i18n}}
\n
\n {{(subscription && subscription.status) || '-'}}\n {{'pendingCancellation' | i18n}}\n
\n
{{'nextCharge' | i18n}}
\n
{{nextInvoice ? ((nextInvoice.date | date: 'mediumDate') + ', ' + (nextInvoice.amount | currency:'$')) :\n '-'}}\n
\n
\n
\n
\n {{'details' | i18n}}\n \n \n \n \n \n \n \n
\n {{i.name}} {{i.quantity > 1 ? '×' + i.quantity : ''}} @ {{i.amount | currency:'$'}}\n \n {{(i.quantity * i.amount) | currency:'$'}} /{{i.interval | i18n}}\n
\n
\n
\n \n
\n \n \n {{'manageSubscription' | i18n}}\n \n
\n
\n
\n \n

{{'updateLicense' | i18n}}

\n \n \n
\n
\n
\n \n
\n \n \n
\n

{{'storage' | i18n}}

\n

{{'subscriptionStorage' | i18n : sub.maxStorageGb || 0 : sub.storageName || '0 MB'}}

\n
\n
\n {{(storagePercentage / 100) | percent}}
\n
\n \n
\n
\n \n \n
\n \n
\n
\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { AuditService } from 'jslib/abstractions/audit.service';\nimport { UserService } from 'jslib/abstractions/user.service';\nimport { BreachAccountResponse } from 'jslib/models/response/breachAccountResponse';\n\n@Component({\n selector: 'app-breach-report',\n templateUrl: 'breach-report.component.html',\n})\nexport class BreachReportComponent implements OnInit {\n error = false;\n username: string;\n checkedUsername: string;\n breachedAccounts: BreachAccountResponse[] = [];\n formPromise: Promise;\n\n constructor(private auditService: AuditService, private userService: UserService) { }\n\n async ngOnInit() {\n this.username = await this.userService.getEmail();\n }\n\n async submit() {\n this.error = false;\n this.username = this.username.toLowerCase();\n try {\n this.formPromise = this.auditService.breachedAccounts(this.username);\n this.breachedAccounts = await this.formPromise;\n } catch {\n this.error = true;\n }\n this.checkedUsername = this.username;\n }\n}\n","
\n

{{'dataBreachReport' | i18n}}

\n
\n

{{'breachDesc' | i18n}}

\n
\n
\n
\n \n \n {{'breachCheckUsernameEmail' | i18n}}\n
\n
\n \n
\n
\n

{{'reportError' | i18n}}...

\n \n \n {{'breachUsernameNotFound' | i18n : checkedUsername}}\n \n \n {{'breachUsernameFound' | i18n : checkedUsername : breachedAccounts.length}}\n \n
    \n
  • \n
    \n
    \n \"\"\n
    \n
    \n

    {{a.title}}

    \n

    \n

    {{'compromisedData' | i18n}}:

    \n
      \n
    • {{d}}
    • \n
    \n
    \n
    \n
    \n
    {{'website' | i18n}}
    \n
    {{a.domain}}
    \n
    {{'affectedUsers' | i18n}}
    \n
    {{a.pwnCount | number}}
    \n
    {{'breachOccurred' | i18n}}
    \n
    {{a.breachDate | date: 'mediumDate'}}
    \n
    {{'breachReported' | i18n}}
    \n
    {{a.addedDate | date: 'mediumDate'}}
    \n
    \n
    \n
    \n
  • \n
\n
\n
\n","import {\n Component,\n ComponentFactoryResolver,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport {\n PasswordGeneratorComponent as BasePasswordGeneratorComponent,\n} from 'jslib/angular/components/password-generator.component';\n\nimport { ModalComponent } from '../modal.component';\nimport { PasswordGeneratorHistoryComponent } from './password-generator-history.component';\n\n@Component({\n selector: 'app-password-generator',\n templateUrl: 'password-generator.component.html',\n})\nexport class PasswordGeneratorComponent extends BasePasswordGeneratorComponent {\n @ViewChild('historyTemplate', { read: ViewContainerRef, static: true }) historyModalRef: ViewContainerRef;\n\n private modal: ModalComponent = null;\n\n constructor(passwordGenerationService: PasswordGenerationService, platformUtilsService: PlatformUtilsService,\n i18nService: I18nService, private componentFactoryResolver: ComponentFactoryResolver) {\n super(passwordGenerationService, platformUtilsService, i18nService, window);\n }\n\n history() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.historyModalRef.createComponent(factory).instance;\n this.modal.show(PasswordGeneratorHistoryComponent, this.historyModalRef);\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n lengthChanged() {\n document.getElementById('length').focus();\n }\n\n minNumberChanged() {\n document.getElementById('min-number').focus();\n }\n\n minSpecialChanged() {\n document.getElementById('min-special').focus();\n }\n}\n","
\n

{{'passwordGenerator' | i18n}}

\n
\n\n {{'passwordGeneratorPolicyInEffect' | i18n}}\n\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n
\n \n \n
\n
\n \n
\n
\n\n","import { Component } from '@angular/core';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport {\n PasswordGeneratorHistoryComponent as BasePasswordGeneratorHistoryComponent,\n} from 'jslib/angular/components/password-generator-history.component';\n\n@Component({\n selector: 'app-password-generator-history',\n templateUrl: 'password-generator-history.component.html',\n})\nexport class PasswordGeneratorHistoryComponent extends BasePasswordGeneratorHistoryComponent {\n constructor(passwordGenerationService: PasswordGenerationService, platformUtilsService: PlatformUtilsService,\n i18nService: I18nService) {\n super(passwordGenerationService, platformUtilsService, i18nService, window);\n }\n}\n","
\n
\n
\n
\n

{{'passwordHistory' | i18n}}

\n \n
\n
    \n
  • \n
    \n
    \n {{h.date | date:'medium'}}\n
    \n
    \n \n
    \n
  • \n
\n
\n {{'noPasswordsInList' | i18n}}\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n","import {\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\n@Component({\n selector: 'app-tools',\n templateUrl: 'tools.component.html',\n})\nexport class ToolsComponent implements OnInit {\n canAccessPremium = false;\n\n constructor(private userService: UserService, private messagingService: MessagingService) { }\n\n async ngOnInit() {\n this.canAccessPremium = await this.userService.canAccessPremium();\n }\n\n premiumRequired() {\n if (!this.canAccessPremium) {\n this.messagingService.send('premiumRequired');\n return;\n }\n }\n}\n","\n","import {\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n NgZone,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { CipherType } from 'jslib/enums/cipherType';\n\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { ModalComponent } from '../modal.component';\n\nimport { OrganizationsComponent } from '../settings/organizations.component';\nimport { UpdateKeyComponent } from '../settings/update-key.component';\nimport { AddEditComponent } from './add-edit.component';\nimport { AttachmentsComponent } from './attachments.component';\nimport { CiphersComponent } from './ciphers.component';\nimport { CollectionsComponent } from './collections.component';\nimport { FolderAddEditComponent } from './folder-add-edit.component';\nimport { GroupingsComponent } from './groupings.component';\nimport { ShareComponent } from './share.component';\n\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\nimport { TokenService } from 'jslib/abstractions/token.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { BroadcasterService } from 'jslib/angular/services/broadcaster.service';\n\nconst BroadcasterSubscriptionId = 'VaultComponent';\n\n@Component({\n selector: 'app-vault',\n templateUrl: 'vault.component.html',\n})\nexport class VaultComponent implements OnInit, OnDestroy {\n @ViewChild(GroupingsComponent, { static: true }) groupingsComponent: GroupingsComponent;\n @ViewChild(CiphersComponent, { static: true }) ciphersComponent: CiphersComponent;\n @ViewChild(OrganizationsComponent, { static: true }) organizationsComponent: OrganizationsComponent;\n @ViewChild('attachments', { read: ViewContainerRef, static: true }) attachmentsModalRef: ViewContainerRef;\n @ViewChild('folderAddEdit', { read: ViewContainerRef, static: true }) folderAddEditModalRef: ViewContainerRef;\n @ViewChild('cipherAddEdit', { read: ViewContainerRef, static: true }) cipherAddEditModalRef: ViewContainerRef;\n @ViewChild('share', { read: ViewContainerRef, static: true }) shareModalRef: ViewContainerRef;\n @ViewChild('collections', { read: ViewContainerRef, static: true }) collectionsModalRef: ViewContainerRef;\n @ViewChild('updateKeyTemplate', { read: ViewContainerRef, static: true }) updateKeyModalRef: ViewContainerRef;\n\n favorites: boolean = false;\n type: CipherType = null;\n folderId: string = null;\n collectionId: string = null;\n showVerifyEmail = false;\n showBrowserOutdated = false;\n showUpdateKey = false;\n showPremiumCallout = false;\n deleted: boolean = false;\n\n modal: ModalComponent = null;\n\n constructor(private syncService: SyncService, private route: ActivatedRoute,\n private router: Router, private changeDetectorRef: ChangeDetectorRef,\n private i18nService: I18nService, private componentFactoryResolver: ComponentFactoryResolver,\n private tokenService: TokenService, private cryptoService: CryptoService,\n private messagingService: MessagingService, private userService: UserService,\n private platformUtilsService: PlatformUtilsService, private broadcasterService: BroadcasterService,\n private ngZone: NgZone) { }\n\n async ngOnInit() {\n this.showVerifyEmail = !(await this.tokenService.getEmailVerified());\n this.showBrowserOutdated = window.navigator.userAgent.indexOf('MSIE') !== -1;\n\n const queryParamsSub = this.route.queryParams.subscribe(async params => {\n await this.syncService.fullSync(false);\n\n this.showUpdateKey = !(await this.cryptoService.hasEncKey());\n const canAccessPremium = await this.userService.canAccessPremium();\n this.showPremiumCallout = !this.showVerifyEmail && !canAccessPremium &&\n !this.platformUtilsService.isSelfHost();\n\n await Promise.all([\n this.groupingsComponent.load(),\n this.organizationsComponent.load(),\n ]);\n\n if (params == null) {\n this.groupingsComponent.selectedAll = true;\n await this.ciphersComponent.reload();\n } else {\n if (params.deleted) {\n this.groupingsComponent.selectedTrash = true;\n await this.filterDeleted();\n } else if (params.favorites) {\n this.groupingsComponent.selectedFavorites = true;\n await this.filterFavorites();\n } else if (params.type) {\n const t = parseInt(params.type, null);\n this.groupingsComponent.selectedType = t;\n await this.filterCipherType(t);\n } else if (params.folderId) {\n this.groupingsComponent.selectedFolder = true;\n this.groupingsComponent.selectedFolderId = params.folderId;\n await this.filterFolder(params.folderId);\n } else if (params.collectionId) {\n this.groupingsComponent.selectedCollectionId = params.collectionId;\n await this.filterCollection(params.collectionId);\n } else {\n this.groupingsComponent.selectedAll = true;\n await this.ciphersComponent.reload();\n }\n }\n\n this.broadcasterService.subscribe(BroadcasterSubscriptionId, (message: any) => {\n this.ngZone.run(async () => {\n switch (message.command) {\n case 'syncCompleted':\n if (message.successfully) {\n await Promise.all([\n this.groupingsComponent.load(),\n this.organizationsComponent.load(),\n this.ciphersComponent.load(this.ciphersComponent.filter),\n ]);\n this.changeDetectorRef.detectChanges();\n }\n break;\n }\n });\n });\n\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n }\n\n ngOnDestroy() {\n this.broadcasterService.unsubscribe(BroadcasterSubscriptionId);\n }\n\n async clearGroupingFilters() {\n this.ciphersComponent.showAddNew = true;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchVault');\n await this.ciphersComponent.reload();\n this.clearFilters();\n this.go();\n }\n\n async filterFavorites() {\n this.ciphersComponent.showAddNew = true;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchFavorites');\n await this.ciphersComponent.reload(c => c.favorite);\n this.clearFilters();\n this.favorites = true;\n this.go();\n }\n\n async filterDeleted() {\n this.ciphersComponent.showAddNew = false;\n this.ciphersComponent.deleted = true;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchTrash');\n await this.ciphersComponent.reload(null, true);\n this.clearFilters();\n this.deleted = true;\n this.go();\n }\n\n async filterCipherType(type: CipherType) {\n this.ciphersComponent.showAddNew = true;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchType');\n await this.ciphersComponent.reload(c => c.type === type);\n this.clearFilters();\n this.type = type;\n this.go();\n }\n\n async filterFolder(folderId: string) {\n this.ciphersComponent.showAddNew = true;\n folderId = folderId === 'none' ? null : folderId;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchFolder');\n await this.ciphersComponent.reload(c => c.folderId === folderId);\n this.clearFilters();\n this.folderId = folderId == null ? 'none' : folderId;\n this.go();\n }\n\n async filterCollection(collectionId: string) {\n this.ciphersComponent.showAddNew = true;\n this.groupingsComponent.searchPlaceholder = this.i18nService.t('searchCollection');\n await this.ciphersComponent.reload(c => c.collectionIds != null &&\n c.collectionIds.indexOf(collectionId) > -1);\n this.clearFilters();\n this.collectionId = collectionId;\n this.go();\n }\n\n filterSearchText(searchText: string) {\n this.ciphersComponent.searchText = searchText;\n this.ciphersComponent.search(200);\n }\n\n async editCipherAttachments(cipher: CipherView) {\n const canAccessPremium = await this.userService.canAccessPremium();\n if (cipher.organizationId == null && !canAccessPremium) {\n this.messagingService.send('premiumRequired');\n return;\n } else if (cipher.organizationId != null) {\n const org = await this.userService.getOrganization(cipher.organizationId);\n if (org != null && (org.maxStorageGb == null || org.maxStorageGb === 0)) {\n this.messagingService.send('upgradeOrganization', { organizationId: cipher.organizationId });\n return;\n }\n }\n\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.attachmentsModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(AttachmentsComponent, this.attachmentsModalRef);\n\n childComponent.cipherId = cipher.id;\n let madeAttachmentChanges = false;\n childComponent.onUploadedAttachment.subscribe(() => madeAttachmentChanges = true);\n childComponent.onDeletedAttachment.subscribe(() => madeAttachmentChanges = true);\n childComponent.onReuploadedAttachment.subscribe(() => madeAttachmentChanges = true);\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n if (madeAttachmentChanges) {\n await this.ciphersComponent.refresh();\n }\n madeAttachmentChanges = false;\n });\n }\n\n shareCipher(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.shareModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(ShareComponent, this.shareModalRef);\n\n childComponent.cipherId = cipher.id;\n childComponent.onSharedCipher.subscribe(async () => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n editCipherCollections(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.collectionsModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(CollectionsComponent, this.collectionsModalRef);\n\n childComponent.cipherId = cipher.id;\n childComponent.onSavedCollections.subscribe(async () => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n async addFolder() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.folderAddEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n FolderAddEditComponent, this.folderAddEditModalRef);\n\n childComponent.folderId = null;\n childComponent.onSavedFolder.subscribe(async () => {\n this.modal.close();\n await this.groupingsComponent.loadFolders();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n async editFolder(folderId: string) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.folderAddEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n FolderAddEditComponent, this.folderAddEditModalRef);\n\n childComponent.folderId = folderId;\n childComponent.onSavedFolder.subscribe(async () => {\n this.modal.close();\n await this.groupingsComponent.loadFolders();\n });\n childComponent.onDeletedFolder.subscribe(async () => {\n this.modal.close();\n await this.groupingsComponent.loadFolders();\n await this.filterFolder('none');\n this.groupingsComponent.selectedFolderId = null;\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n addCipher() {\n const component = this.editCipher(null);\n component.type = this.type;\n component.folderId = this.folderId === 'none' ? null : this.folderId;\n if (this.collectionId != null) {\n const collection = this.groupingsComponent.collections.filter(c => c.id === this.collectionId);\n if (collection.length > 0) {\n component.organizationId = collection[0].organizationId;\n component.collectionIds = [this.collectionId];\n }\n }\n }\n\n editCipher(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.cipherAddEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n AddEditComponent, this.cipherAddEditModalRef);\n\n childComponent.cipherId = cipher == null ? null : cipher.id;\n childComponent.onSavedCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n childComponent.onDeletedCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n childComponent.onRestoredCipher.subscribe(async (c: CipherView) => {\n this.modal.close();\n await this.ciphersComponent.refresh();\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n\n return childComponent;\n }\n\n cloneCipher(cipher: CipherView) {\n const component = this.editCipher(cipher);\n component.cloneMode = true;\n }\n\n updateKey() {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.updateKeyModalRef.createComponent(factory).instance;\n this.modal.show(UpdateKeyComponent, this.updateKeyModalRef);\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n private clearFilters() {\n this.folderId = null;\n this.collectionId = null;\n this.favorites = false;\n this.type = null;\n this.deleted = false;\n }\n\n private go(queryParams: any = null) {\n if (queryParams == null) {\n queryParams = {\n favorites: this.favorites ? true : null,\n type: this.type,\n folderId: this.folderId,\n collectionId: this.collectionId,\n deleted: this.deleted ? true : null,\n };\n }\n\n this.router.navigate([], {\n relativeTo: this.route,\n queryParams: queryParams,\n replaceUrl: true,\n });\n }\n}\n","
\n
\n
\n \n \n
\n
\n
\n

\n {{'myVault' | i18n}}\n \n \n \n {{'loading' | i18n}}\n \n \n

\n
\n \n \n \n
\n
\n \n \n
\n
\n
\n
\n {{'updateKeyTitle' | i18n}}\n
\n
\n

{{'updateEncryptionKeyShortDesc' | i18n}}

\n \n
\n
\n \n \n
\n
\n {{'updateBrowser' | i18n}}\n
\n
\n

{{'updateBrowserDesc' | i18n}}

\n \n {{'updateBrowser' | i18n}}\n \n
\n
\n
\n
\n {{'goPremium' | i18n}}\n
\n
\n

{{'premiumUpgradeUnlockFeatures' | i18n}}

\n \n {{'goPremium' | i18n}}\n \n
\n
\n
\n
\n {{'organizations' | i18n}}\n \n \n \n
\n
\n \n
\n
\n
\n
\n
\n\n\n\n\n\n\n","import { Component } from '@angular/core';\n\nimport {\n Toast,\n ToasterService,\n} from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\n\nimport { CipherString } from 'jslib/models/domain/cipherString';\n\nimport { CipherWithIdRequest } from 'jslib/models/request/cipherWithIdRequest';\nimport { FolderWithIdRequest } from 'jslib/models/request/folderWithIdRequest';\nimport { UpdateKeyRequest } from 'jslib/models/request/updateKeyRequest';\n\n@Component({\n selector: 'app-update-key',\n templateUrl: 'update-key.component.html',\n})\nexport class UpdateKeyComponent {\n masterPassword: string;\n formPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService,\n private cryptoService: CryptoService, private messagingService: MessagingService,\n private syncService: SyncService, private folderService: FolderService,\n private cipherService: CipherService) { }\n\n async submit() {\n const hasEncKey = await this.cryptoService.hasEncKey();\n if (hasEncKey) {\n return;\n }\n\n if (this.masterPassword == null || this.masterPassword === '') {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n try {\n this.formPromise = this.makeRequest().then(request => {\n return this.apiService.postAccountKey(request);\n });\n await this.formPromise;\n this.analytics.eventTrack.next({ action: 'Key Updated' });\n const toast: Toast = {\n type: 'success',\n title: this.i18nService.t('keyUpdated'),\n body: this.i18nService.t('logBackInOthersToo'),\n timeout: 15000,\n };\n this.toasterService.popAsync(toast);\n this.messagingService.send('logout');\n } catch { }\n }\n\n private async makeRequest(): Promise {\n const key = await this.cryptoService.getKey();\n const encKey = await this.cryptoService.makeEncKey(key);\n const privateKey = await this.cryptoService.getPrivateKey();\n let encPrivateKey: CipherString = null;\n if (privateKey != null) {\n encPrivateKey = await this.cryptoService.encrypt(privateKey, encKey[0]);\n }\n const request = new UpdateKeyRequest();\n request.privateKey = encPrivateKey != null ? encPrivateKey.encryptedString : null;\n request.key = encKey[1].encryptedString;\n request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n\n await this.syncService.fullSync(true);\n\n const folders = await this.folderService.getAllDecrypted();\n for (let i = 0; i < folders.length; i++) {\n if (folders[i].id == null) {\n continue;\n }\n const folder = await this.folderService.encrypt(folders[i], encKey[0]);\n request.folders.push(new FolderWithIdRequest(folder));\n }\n\n const ciphers = await this.cipherService.getAllDecrypted();\n for (let i = 0; i < ciphers.length; i++) {\n if (ciphers[i].organizationId != null) {\n continue;\n }\n const cipher = await this.cipherService.encrypt(ciphers[i], encKey[0]);\n request.ciphers.push(new CipherWithIdRequest(cipher));\n }\n\n return request;\n }\n}\n","
\n
\n
\n
\n

{{'updateEncryptionKey' | i18n}}

\n \n
\n
\n

{{'updateEncryptionKeyShortDesc' | i18n}} {{'updateEncryptionKeyDesc' | i18n}}\n {{'learnMore' | i18n}}\n

\n {{'updateEncryptionKeyWarning' | i18n}}\n \n \n
\n
\n \n \n
\n
\n
\n
\n","import { Component } from '@angular/core';\n\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport {\n FolderAddEditComponent as BaseFolderAddEditComponent,\n} from 'jslib/angular/components/folder-add-edit.component';\n\n@Component({\n selector: 'app-folder-add-edit',\n templateUrl: 'folder-add-edit.component.html',\n})\nexport class FolderAddEditComponent extends BaseFolderAddEditComponent {\n constructor(folderService: FolderService, i18nService: I18nService,\n platformUtilsService: PlatformUtilsService) {\n super(folderService, i18nService, platformUtilsService);\n }\n}\n","
\n
\n
\n
\n

{{title}}

\n \n
\n
\n \n \n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n","import {\n Component,\n OnDestroy,\n} from '@angular/core';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { CollectionView } from 'jslib/models/view/collectionView';\n\nimport { ShareComponent as BaseShareComponent } from 'jslib/angular/components/share.component';\n\n@Component({\n selector: 'app-vault-share',\n templateUrl: 'share.component.html',\n})\nexport class ShareComponent extends BaseShareComponent implements OnDestroy {\n constructor(collectionService: CollectionService, platformUtilsService: PlatformUtilsService,\n i18nService: I18nService, userService: UserService,\n cipherService: CipherService) {\n super(collectionService, platformUtilsService, i18nService, userService, cipherService);\n }\n\n ngOnDestroy() {\n this.selectAll(false);\n }\n\n check(c: CollectionView, select?: boolean) {\n (c as any).checked = select == null ? !(c as any).checked : select;\n }\n\n selectAll(select: boolean) {\n const collections = select ? this.collections : this.writeableCollections;\n collections.forEach(c => this.check(c, select));\n }\n}\n","
\n
\n
\n
\n

\n {{'share' | i18n}}\n {{cipher.name}}\n

\n \n
\n
\n {{'noOrganizationsList' | i18n}}\n
\n
\n

{{'shareDesc' | i18n}}

\n
\n \n \n
\n
\n

{{'collections' | i18n}}

\n
\n \n \n
\n
\n
\n {{'noCollectionsInList' | i18n}}\n
\n \n \n \n \n \n \n \n
\n \n \n {{c.name}}\n
\n
\n
\n \n \n {{'newOrganization' | i18n}}\n \n \n
\n
\n
\n
\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-send-info',\n templateUrl: 'send-info.component.html',\n})\nexport class SendInfoComponent { }\n","
\n \n
\n {{'sendVaultCardProductDesc' | i18n}}\n {{'sendVaultCardLearnMore' |\n i18n}},\n {{'sendVaultCardSee' | i18n}}\n {{'sendVaultCardHowItWorks' | i18n}},\n {{'sendVaultCardOr' | i18n}}\n {{'sendVaultCardTryItNow' | i18n}}.\n
\n
\n","import { Component } from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\n@Component({\n selector: 'app-verify-email',\n templateUrl: 'verify-email.component.html',\n})\nexport class VerifyEmailComponent {\n actionPromise: Promise;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private analytics: Angulartics2, private toasterService: ToasterService) { }\n\n async send() {\n if (this.actionPromise != null) {\n return;\n }\n try {\n this.actionPromise = this.apiService.postAccountVerifyEmail();\n await this.actionPromise;\n this.analytics.eventTrack.next({ action: 'Sent Verification Email' });\n this.toasterService.popAsync('success', null, this.i18nService.t('checkInboxForVerification'));\n } catch { }\n this.actionPromise = null;\n }\n}\n","
\n
\n {{'verifyEmail' | i18n}}\n
\n
\n

{{'verifyEmailDesc' | i18n}}

\n \n
\n
\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n Router,\n} from '@angular/router';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\n@Injectable()\nexport class OrganizationGuardService implements CanActivate {\n constructor(private userService: UserService, private router: Router,\n private toasterService: ToasterService, private i18nService: I18nService) { }\n\n async canActivate(route: ActivatedRouteSnapshot) {\n const org = await this.userService.getOrganization(route.params.organizationId);\n if (org == null) {\n this.router.navigate(['/']);\n return false;\n }\n if (!org.isOwner && !org.enabled) {\n this.toasterService.popAsync('error', null, this.i18nService.t('organizationIsDisabled'));\n this.router.navigate(['/']);\n return false;\n }\n\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n Router,\n} from '@angular/router';\n\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { Permissions } from 'jslib/enums/permissions';\n\n@Injectable()\nexport class OrganizationTypeGuardService implements CanActivate {\n constructor(private userService: UserService, private router: Router) { }\n\n async canActivate(route: ActivatedRouteSnapshot) {\n const org = await this.userService.getOrganization(route.params.organizationId);\n const permissions = route.data == null ? null : route.data.permissions as Permissions[];\n\n if (\n (permissions.indexOf(Permissions.AccessBusinessPortal) !== -1 && org.canAccessBusinessPortal) ||\n (permissions.indexOf(Permissions.AccessEventLogs) !== -1 && org.canAccessEventLogs) ||\n (permissions.indexOf(Permissions.AccessImportExport) !== -1 && org.canAccessImportExport) ||\n (permissions.indexOf(Permissions.AccessReports) !== -1 && org.canAccessReports) ||\n (permissions.indexOf(Permissions.ManageAllCollections) !== -1 && org.canManageAllCollections) ||\n (permissions.indexOf(Permissions.ManageAssignedCollections) !== -1 && org.canManageAssignedCollections) ||\n (permissions.indexOf(Permissions.ManageGroups) !== -1 && org.canManageGroups) ||\n (permissions.indexOf(Permissions.ManageOrganization) !== -1 && org.isOwner) ||\n (permissions.indexOf(Permissions.ManagePolicies) !== -1 && org.canManagePolicies) ||\n (permissions.indexOf(Permissions.ManageUsers) !== -1 && org.canManageUsers)\n ) {\n return true;\n }\n\n this.router.navigate(['/organizations', org.id]);\n return false;\n }\n}\n","export enum Permissions {\n AccessBusinessPortal,\n AccessEventLogs,\n AccessImportExport,\n AccessReports,\n ManageAllCollections,\n ManageAssignedCollections,\n ManageGroups,\n ManageOrganization,\n ManagePolicies,\n ManageUsers,\n}\n","import { Injectable } from '@angular/core';\nimport {\n CanActivate,\n Router,\n} from '@angular/router';\n\nimport { UserService } from 'jslib/abstractions/user.service';\nimport { VaultTimeoutService } from 'jslib/abstractions/vaultTimeout.service';\n\n@Injectable()\nexport class UnauthGuardService implements CanActivate {\n constructor(private vaultTimeoutService: VaultTimeoutService, private userService: UserService,\n private router: Router) { }\n\n async canActivate() {\n const isAuthed = await this.userService.isAuthenticated();\n if (isAuthed) {\n const locked = await this.vaultTimeoutService.isLocked();\n if (locked) {\n this.router.navigate(['lock']);\n } else {\n this.router.navigate(['vault']);\n }\n return false;\n }\n\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n Router,\n RouterStateSnapshot,\n} from '@angular/router';\n\nimport { MessagingService } from '../../abstractions/messaging.service';\nimport { UserService } from '../../abstractions/user.service';\nimport { VaultTimeoutService } from '../../abstractions/vaultTimeout.service';\n\n@Injectable()\nexport class AuthGuardService implements CanActivate {\n constructor(private vaultTimeoutService: VaultTimeoutService, private userService: UserService,\n private router: Router, private messagingService: MessagingService) { }\n\n async canActivate(route: ActivatedRouteSnapshot, routerState: RouterStateSnapshot) {\n const isAuthed = await this.userService.isAuthenticated();\n if (!isAuthed) {\n this.messagingService.send('authBlocked');\n return false;\n }\n\n const locked = await this.vaultTimeoutService.isLocked();\n if (locked) {\n if (routerState != null) {\n this.messagingService.send('lockedUrl', { url: routerState.url });\n }\n this.router.navigate(['lock'], { queryParams: { promptBiometric: true }});\n return false;\n }\n\n return true;\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\n\nimport { CipherData } from 'jslib/models/data';\nimport { Cipher, SymmetricCryptoKey } from 'jslib/models/domain';\nimport { EmergencyAccessViewResponse } from 'jslib/models/response/emergencyAccessResponse';\nimport { CipherView } from 'jslib/models/view/cipherView';\n\nimport { ModalComponent } from '../modal.component';\n\nimport { EmergencyAccessAttachmentsComponent } from './emergency-access-attachments.component';\nimport { EmergencyAddEditComponent } from './emergency-add-edit.component';\n\n@Component({\n selector: 'emergency-access-view',\n templateUrl: 'emergency-access-view.component.html',\n})\nexport class EmergencyAccessViewComponent implements OnInit {\n @ViewChild('cipherAddEdit', { read: ViewContainerRef, static: true }) cipherAddEditModalRef: ViewContainerRef;\n @ViewChild('attachments', { read: ViewContainerRef, static: true }) attachmentsModalRef: ViewContainerRef;\n\n id: string;\n ciphers: CipherView[] = [];\n\n private modal: ModalComponent = null;\n\n constructor(private cipherService: CipherService, private cryptoService: CryptoService,\n private componentFactoryResolver: ComponentFactoryResolver, private router: Router,\n private route: ActivatedRoute, private apiService: ApiService) { }\n\n ngOnInit() {\n this.route.params.subscribe(qParams => {\n if (qParams.id == null) {\n return this.router.navigate(['settings/emergency-access']);\n }\n\n this.id = qParams.id;\n\n this.load();\n });\n }\n\n selectCipher(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.cipherAddEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(EmergencyAddEditComponent, this.cipherAddEditModalRef);\n\n childComponent.cipherId = cipher == null ? null : cipher.id;\n childComponent.cipher = cipher;\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n\n return childComponent;\n }\n\n async load() {\n const response = await this.apiService.postEmergencyAccessView(this.id);\n this.ciphers = await this.getAllCiphers(response);\n }\n\n async viewAttachments(cipher: CipherView) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.attachmentsModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(EmergencyAccessAttachmentsComponent, this.attachmentsModalRef);\n\n childComponent.cipher = cipher;\n\n this.modal.onClosed.subscribe(async () => {\n this.modal = null;\n });\n }\n\n protected async getAllCiphers(response: EmergencyAccessViewResponse): Promise {\n const ciphers = response.ciphers;\n\n const decCiphers: CipherView[] = [];\n const oldKeyBuffer = await this.cryptoService.rsaDecrypt(response.keyEncrypted);\n const oldEncKey = new SymmetricCryptoKey(oldKeyBuffer);\n\n const promises: any[] = [];\n ciphers.forEach(cipherResponse => {\n const cipherData = new CipherData(cipherResponse);\n const cipher = new Cipher(cipherData);\n promises.push(cipher.decrypt(oldEncKey).then(c => decCiphers.push(c)));\n });\n\n await Promise.all(promises);\n decCiphers.sort(this.cipherService.getLocaleSortingFunction());\n\n return decCiphers;\n }\n}\n","
\n

{{'vault' | i18n}}

\n
\n
\n \n \n \n \n \n \n \n \n \n
\n \n \n {{c.name}}\n \n \n {{'shared' | i18n}}\n \n \n \n {{'attachments' | i18n}}\n \n
\n {{c.subTitle}}\n
\n \n
\n
\n
\n\n\n","import { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class EncryptedObject {\n iv: ArrayBuffer;\n data: ArrayBuffer;\n mac: ArrayBuffer;\n key: SymmetricCryptoKey;\n}\n","export class EnvironmentUrls {\n base: string;\n api: string;\n identity: string;\n events: string;\n}\n","export class GeneratedPasswordHistory {\n password: string;\n date: number;\n\n constructor(password: string, date: number) {\n this.password = password;\n this.date = date;\n }\n}\n","import { Component } from '@angular/core';\n\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { AttachmentView } from 'jslib/models/view/attachmentView';\n\nimport { AttachmentsComponent as BaseAttachmentsComponent } from 'jslib/angular/components/attachments.component';\n\n@Component({\n selector: 'emergency-access-attachments',\n templateUrl: '../vault/attachments.component.html',\n})\nexport class EmergencyAccessAttachmentsComponent extends BaseAttachmentsComponent {\n viewOnly = true;\n canAccessAttachments = true;\n\n constructor(cipherService: CipherService, i18nService: I18nService,\n cryptoService: CryptoService, userService: UserService,\n platformUtilsService: PlatformUtilsService) {\n super(cipherService, i18nService, cryptoService, userService, platformUtilsService, window);\n }\n\n protected async init() {\n // Do nothing since cipher is already decoded\n }\n\n protected showFixOldAttachments(attachment: AttachmentView) {\n return false;\n }\n}\n","import { Component } from '@angular/core';\n\nimport { AuditService } from 'jslib/abstractions/audit.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { EventService } from 'jslib/abstractions/event.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { TotpService } from 'jslib/abstractions/totp.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { Cipher } from 'jslib/models/domain/cipher';\n\nimport { AddEditComponent as BaseAddEditComponent } from '../vault/add-edit.component';\n\n@Component({\n selector: 'app-org-vault-add-edit',\n templateUrl: '../vault/add-edit.component.html',\n})\nexport class EmergencyAddEditComponent extends BaseAddEditComponent {\n originalCipher: Cipher = null;\n viewOnly = true;\n\n constructor(cipherService: CipherService, folderService: FolderService,\n i18nService: I18nService, platformUtilsService: PlatformUtilsService,\n auditService: AuditService, stateService: StateService,\n userService: UserService, collectionService: CollectionService,\n totpService: TotpService, passwordGenerationService: PasswordGenerationService,\n messagingService: MessagingService, eventService: EventService, policyService: PolicyService) {\n super(cipherService, folderService, i18nService, platformUtilsService, auditService, stateService,\n userService, collectionService, totpService, passwordGenerationService, messagingService,\n eventService, policyService);\n }\n\n async load() {\n this.title = this.i18nService.t('viewItem');\n }\n\n protected async loadCipher() {\n return Promise.resolve(this.originalCipher);\n }\n}\n","import { Component, ComponentFactoryResolver, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\nimport { UserService } from 'jslib/abstractions/user.service';\n\nimport { EmergencyAccessStatusType } from 'jslib/enums/emergencyAccessStatusType';\nimport { EmergencyAccessType } from 'jslib/enums/emergencyAccessType';\nimport { Utils } from 'jslib/misc/utils';\nimport { EmergencyAccessConfirmRequest } from 'jslib/models/request/emergencyAccessConfirmRequest';\nimport { EmergencyAccessGranteeDetailsResponse, EmergencyAccessGrantorDetailsResponse } from 'jslib/models/response/emergencyAccessResponse';\nimport { ConstantsService } from 'jslib/services/constants.service';\n\nimport { ModalComponent } from '../modal.component';\nimport { EmergencyAccessAddEditComponent } from './emergency-access-add-edit.component';\nimport { EmergencyAccessConfirmComponent } from './emergency-access-confirm.component';\nimport { EmergencyAccessTakeoverComponent } from './emergency-access-takeover.component';\n\n@Component({\n selector: 'emergency-access',\n templateUrl: 'emergency-access.component.html',\n})\nexport class EmergencyAccessComponent implements OnInit {\n @ViewChild('addEdit', { read: ViewContainerRef, static: true }) addEditModalRef: ViewContainerRef;\n @ViewChild('takeoverTemplate', { read: ViewContainerRef, static: true}) takeoverModalRef: ViewContainerRef;\n @ViewChild('confirmTemplate', { read: ViewContainerRef, static: true }) confirmModalRef: ViewContainerRef;\n\n canAccessPremium: boolean;\n trustedContacts: EmergencyAccessGranteeDetailsResponse[];\n grantedContacts: EmergencyAccessGrantorDetailsResponse[];\n emergencyAccessType = EmergencyAccessType;\n emergencyAccessStatusType = EmergencyAccessStatusType;\n actionPromise: Promise;\n isOrganizationOwner: boolean;\n\n private modal: ModalComponent = null;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private componentFactoryResolver: ComponentFactoryResolver,\n private platformUtilsService: PlatformUtilsService,\n private toasterService: ToasterService, private cryptoService: CryptoService,\n private storageService: StorageService, private userService: UserService,\n private messagingService: MessagingService) { }\n\n async ngOnInit() {\n this.canAccessPremium = await this.userService.canAccessPremium();\n const orgs = await this.userService.getAllOrganizations();\n this.isOrganizationOwner = orgs.some(o => o.isOwner);\n this.load();\n }\n\n async load() {\n this.trustedContacts = (await this.apiService.getEmergencyAccessTrusted()).data;\n this.grantedContacts = (await this.apiService.getEmergencyAccessGranted()).data;\n }\n\n async premiumRequired() {\n if (!this.canAccessPremium) {\n this.messagingService.send('premiumRequired');\n return;\n }\n }\n\n edit(details: EmergencyAccessGranteeDetailsResponse) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.addEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n EmergencyAccessAddEditComponent, this.addEditModalRef);\n\n childComponent.name = details?.name ?? details?.email;\n childComponent.emergencyAccessId = details?.id;\n childComponent.readOnly = !this.canAccessPremium;\n childComponent.onSaved.subscribe(() => {\n this.modal.close();\n this.load();\n });\n childComponent.onDeleted.subscribe(() => {\n this.modal.close();\n this.remove(details);\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n invite() {\n this.edit(null);\n }\n\n async reinvite(contact: EmergencyAccessGranteeDetailsResponse) {\n if (this.actionPromise != null) {\n return;\n }\n this.actionPromise = this.apiService.postEmergencyAccessReinvite(contact.id);\n await this.actionPromise;\n this.toasterService.popAsync('success', null, this.i18nService.t('hasBeenReinvited', contact.email));\n this.actionPromise = null;\n }\n\n async confirm(contact: EmergencyAccessGranteeDetailsResponse) {\n function updateUser() {\n contact.status = EmergencyAccessStatusType.Confirmed;\n }\n\n if (this.actionPromise != null) {\n return;\n }\n\n const autoConfirm = await this.storageService.get(ConstantsService.autoConfirmFingerprints);\n if (autoConfirm == null || !autoConfirm) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.confirmModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n EmergencyAccessConfirmComponent, this.confirmModalRef);\n\n childComponent.name = contact?.name ?? contact?.email;\n childComponent.emergencyAccessId = contact.id;\n childComponent.userId = contact?.granteeId;\n childComponent.onConfirmed.subscribe(async () => {\n this.modal.close();\n\n childComponent.formPromise = this.doConfirmation(contact);\n await childComponent.formPromise;\n\n updateUser();\n this.toasterService.popAsync('success', null, this.i18nService.t('hasBeenConfirmed', contact.name || contact.email));\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n return;\n }\n\n this.actionPromise = this.doConfirmation(contact);\n await this.actionPromise;\n updateUser();\n\n this.toasterService.popAsync('success', null, this.i18nService.t('hasBeenConfirmed', contact.name || contact.email));\n this.actionPromise = null;\n }\n\n async remove(details: EmergencyAccessGranteeDetailsResponse | EmergencyAccessGrantorDetailsResponse) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('removeUserConfirmation'), details.name || details.email,\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n await this.apiService.deleteEmergencyAccess(details.id);\n this.toasterService.popAsync('success', null, this.i18nService.t('removedUserId', details.name || details.email));\n\n if (details instanceof EmergencyAccessGranteeDetailsResponse) {\n this.removeGrantee(details);\n } else {\n this.removeGrantor(details);\n }\n } catch { }\n }\n\n async requestAccess(details: EmergencyAccessGrantorDetailsResponse) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('requestAccessConfirmation', details.waitTimeDays.toString()),\n details.name || details.email,\n this.i18nService.t('requestAccess'),\n this.i18nService.t('no'),\n 'warning',\n );\n\n if (!confirmed) {\n return false;\n }\n\n await this.apiService.postEmergencyAccessInitiate(details.id);\n\n details.status = EmergencyAccessStatusType.RecoveryInitiated;\n this.toasterService.popAsync('success', null, this.i18nService.t('requestSent', details.name || details.email));\n }\n\n async approve(details: EmergencyAccessGranteeDetailsResponse) {\n const type = this.i18nService.t(details.type === EmergencyAccessType.View ? 'view' : 'takeover');\n\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('approveAccessConfirmation', details.name || details.email, type),\n details.name || details.email,\n this.i18nService.t('approve'),\n this.i18nService.t('no'),\n 'warning',\n );\n\n if (!confirmed) {\n return false;\n }\n\n await this.apiService.postEmergencyAccessApprove(details.id);\n details.status = EmergencyAccessStatusType.RecoveryApproved;\n\n this.toasterService.popAsync('success', null, this.i18nService.t('emergencyApproved', details.name || details.email));\n }\n\n async reject(details: EmergencyAccessGranteeDetailsResponse) {\n await this.apiService.postEmergencyAccessReject(details.id);\n details.status = EmergencyAccessStatusType.Confirmed;\n\n this.toasterService.popAsync('success', null, this.i18nService.t('emergencyRejected', details.name || details.email));\n }\n\n async takeover(details: EmergencyAccessGrantorDetailsResponse) {\n if (this.modal != null) {\n this.modal.close();\n }\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);\n this.modal = this.addEditModalRef.createComponent(factory).instance;\n const childComponent = this.modal.show(\n EmergencyAccessTakeoverComponent, this.takeoverModalRef);\n\n childComponent.name = details != null ? details.name || details.email : null;\n childComponent.email = details.email;\n childComponent.emergencyAccessId = details != null ? details.id : null;\n\n childComponent.onDone.subscribe(() => {\n this.modal.close();\n this.toasterService.popAsync('success', null, this.i18nService.t('passwordResetFor', details.name || details.email));\n });\n\n this.modal.onClosed.subscribe(() => {\n this.modal = null;\n });\n }\n\n private removeGrantee(details: EmergencyAccessGranteeDetailsResponse) {\n const index = this.trustedContacts.indexOf(details);\n if (index > -1) {\n this.trustedContacts.splice(index, 1);\n }\n }\n\n private removeGrantor(details: EmergencyAccessGrantorDetailsResponse) {\n const index = this.grantedContacts.indexOf(details);\n if (index > -1) {\n this.grantedContacts.splice(index, 1);\n }\n }\n\n // Encrypt the master password hash using the grantees public key, and send it to bitwarden for escrow.\n private async doConfirmation(details: EmergencyAccessGranteeDetailsResponse) {\n const encKey = await this.cryptoService.getEncKey();\n const publicKeyResponse = await this.apiService.getUserPublicKey(details.granteeId);\n const publicKey = Utils.fromB64ToArray(publicKeyResponse.publicKey);\n\n try {\n // tslint:disable-next-line\n console.log('User\\'s fingerprint: ' +\n (await this.cryptoService.getFingerprint(details.granteeId, publicKey.buffer)).join('-'));\n } catch { }\n\n const encryptedKey = await this.cryptoService.rsaEncrypt(encKey.key, publicKey.buffer);\n const request = new EmergencyAccessConfirmRequest();\n request.key = encryptedKey.encryptedString;\n await this.apiService.postEmergencyAccessConfirm(details.id, request);\n }\n}\n","
\n

{{'emergencyAccess' | i18n}}

\n
\n

\n {{'emergencyAccessDesc' | i18n}}\n \n {{'learnMore' | i18n}}.\n \n

\n\n

\n {{'warning' | i18n }}: {{'emergencyAccessOwnerWarning' | i18n}}\n

\n\n
\n

\n {{'trustedEmergencyContacts' | i18n}}\n \n {{'premium' | i18n}}\n \n

\n
\n \n
\n
\n\n\n \n \n \n \n \n \n \n
\n \n \n {{c.email}}\n {{'invited' | i18n}}\n {{'accepted' | i18n}}\n {{'emergencyAccessRecoveryInitiated' | i18n}}\n {{'emergencyAccessRecoveryApproved' | i18n}}\n \n {{'view' | i18n}}\n {{'takeover' | i18n}}\n\n {{c.name}}\n \n \n
\n\n

{{'noTrustedContacts' | i18n}}

\n\n
\n

{{'designatedEmergencyContacts' | i18n}}

\n
\n\n\n \n \n \n \n \n \n \n
\n \n \n {{c.email}}\n {{'invited' | i18n}}\n {{'accepted' | i18n}}\n {{'emergencyAccessRecoveryInitiated' | i18n}}\n {{'emergencyAccessRecoveryApproved' | i18n}}\n \n {{'view' | i18n}}\n {{'takeover' | i18n}}\n\n {{c.name}}\n \n \n
\n\n

{{'noGrantedAccess' | i18n}}

\n\n\n\n\n","export enum EmergencyAccessType\n{\n View = 0,\n Takeover = 1,\n}\n","import { EmergencyAccessStatusType } from '../../enums/emergencyAccessStatusType';\nimport { EmergencyAccessType } from '../../enums/emergencyAccessType';\nimport { KdfType } from '../../enums/kdfType';\nimport { BaseResponse } from './baseResponse';\nimport { CipherResponse } from './cipherResponse';\n\nexport class EmergencyAccessGranteeDetailsResponse extends BaseResponse {\n id: string;\n granteeId: string;\n name: string;\n email: string;\n type: EmergencyAccessType;\n status: EmergencyAccessStatusType;\n waitTimeDays: number;\n creationDate: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.granteeId = this.getResponseProperty('GranteeId');\n this.name = this.getResponseProperty('Name');\n this.email = this.getResponseProperty('Email');\n this.type = this.getResponseProperty('Type');\n this.status = this.getResponseProperty('Status');\n this.waitTimeDays = this.getResponseProperty('WaitTimeDays');\n this.creationDate = this.getResponseProperty('CreationDate');\n }\n}\n\nexport class EmergencyAccessGrantorDetailsResponse extends BaseResponse {\n id: string;\n grantorId: string;\n name: string;\n email: string;\n type: EmergencyAccessType;\n status: EmergencyAccessStatusType;\n waitTimeDays: number;\n creationDate: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.grantorId = this.getResponseProperty('GrantorId');\n this.name = this.getResponseProperty('Name');\n this.email = this.getResponseProperty('Email');\n this.type = this.getResponseProperty('Type');\n this.status = this.getResponseProperty('Status');\n this.waitTimeDays = this.getResponseProperty('WaitTimeDays');\n this.creationDate = this.getResponseProperty('CreationDate');\n }\n}\n\nexport class EmergencyAccessTakeoverResponse extends BaseResponse {\n keyEncrypted: string;\n kdf: KdfType;\n kdfIterations: number;\n\n constructor(response: any) {\n super(response);\n\n this.keyEncrypted = this.getResponseProperty('KeyEncrypted');\n this.kdf = this.getResponseProperty('Kdf');\n this.kdfIterations = this.getResponseProperty('KdfIterations');\n }\n}\n\nexport class EmergencyAccessViewResponse extends BaseResponse {\n keyEncrypted: string;\n ciphers: CipherResponse[] = [];\n\n constructor(response: any) {\n super(response);\n\n this.keyEncrypted = this.getResponseProperty('KeyEncrypted');\n\n const ciphers = this.getResponseProperty('Ciphers');\n if (ciphers != null) {\n this.ciphers = ciphers.map((c: any) => new CipherResponse(c));\n }\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\n\nimport { EmergencyAccessType } from 'jslib/enums/emergencyAccessType';\nimport { EmergencyAccessInviteRequest } from 'jslib/models/request/emergencyAccessInviteRequest';\nimport { EmergencyAccessUpdateRequest } from 'jslib/models/request/emergencyAccessUpdateRequest';\n\n@Component({\n selector: 'emergency-access-add-edit',\n templateUrl: 'emergency-access-add-edit.component.html',\n})\nexport class EmergencyAccessAddEditComponent implements OnInit {\n @Input() name: string;\n @Input() emergencyAccessId: string;\n @Output() onSaved = new EventEmitter();\n @Output() onDeleted = new EventEmitter();\n\n loading = true;\n readOnly: boolean = false;\n editMode: boolean = false;\n title: string;\n email: string;\n type: EmergencyAccessType = EmergencyAccessType.View;\n\n formPromise: Promise;\n\n emergencyAccessType = EmergencyAccessType;\n waitTimes: { name: string; value: number; }[];\n waitTime: number;\n\n constructor(private apiService: ApiService, private i18nService: I18nService,\n private toasterService: ToasterService) { }\n\n async ngOnInit() {\n this.editMode = this.loading = this.emergencyAccessId != null;\n\n this.waitTimes = [\n { name: this.i18nService.t('oneDay'), value: 1 },\n { name: this.i18nService.t('days', '2'), value: 2 },\n { name: this.i18nService.t('days', '7'), value: 7 },\n { name: this.i18nService.t('days', '14'), value: 14 },\n { name: this.i18nService.t('days', '30'), value: 30 },\n { name: this.i18nService.t('days', '90'), value: 90 },\n ];\n\n if (this.editMode) {\n this.editMode = true;\n this.title = this.i18nService.t('editEmergencyContact');\n try {\n const emergencyAccess = await this.apiService.getEmergencyAccess(this.emergencyAccessId);\n this.type = emergencyAccess.type;\n this.waitTime = emergencyAccess.waitTimeDays;\n } catch { }\n } else {\n this.title = this.i18nService.t('inviteEmergencyContact');\n this.waitTime = this.waitTimes[2].value;\n }\n\n this.loading = false;\n }\n\n async submit() {\n try {\n if (this.editMode) {\n const request = new EmergencyAccessUpdateRequest();\n request.type = this.type;\n request.waitTimeDays = this.waitTime;\n\n this.formPromise = this.apiService.putEmergencyAccess(this.emergencyAccessId, request);\n } else {\n const request = new EmergencyAccessInviteRequest();\n request.email = this.email.trim();\n request.type = this.type;\n request.waitTimeDays = this.waitTime;\n\n this.formPromise = this.apiService.postEmergencyAccessInvite(request);\n }\n\n await this.formPromise;\n this.toasterService.popAsync('success', null,\n this.i18nService.t(this.editMode ? 'editedUserId' : 'invitedUsers', this.name));\n this.onSaved.emit();\n } catch { }\n }\n\n async delete() {\n this.onDeleted.emit();\n }\n}\n","
\n
\n
\n
\n

\n {{'premium' | i18n}}\n {{title}}\n {{name}}\n

\n \n
\n
\n \n {{'loading' | i18n}}\n
\n
\n \n

{{'inviteEmergencyContactDesc' | i18n}}

\n
\n \n \n
\n
\n

\n {{'userAccess' | i18n}}\n \n \n \n

\n
\n \n \n
\n
\n \n \n
\n
\n \n \n {{'waitTimeDesc' | i18n}}\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ConstantsService } from 'jslib/services/constants.service';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\n\nimport { Utils } from 'jslib/misc/utils';\n\n@Component({\n selector: 'emergency-access-confirm',\n templateUrl: 'emergency-access-confirm.component.html',\n})\nexport class EmergencyAccessConfirmComponent implements OnInit {\n @Input() name: string;\n @Input() userId: string;\n @Input() emergencyAccessId: string;\n @Input() formPromise: Promise;\n @Output() onConfirmed = new EventEmitter();\n\n dontAskAgain = false;\n loading = true;\n fingerprint: string;\n\n constructor(private apiService: ApiService, private cryptoService: CryptoService,\n private storageService: StorageService) { }\n\n async ngOnInit() {\n try {\n const publicKeyResponse = await this.apiService.getUserPublicKey(this.userId);\n if (publicKeyResponse != null) {\n const publicKey = Utils.fromB64ToArray(publicKeyResponse.publicKey);\n const fingerprint = await this.cryptoService.getFingerprint(this.userId, publicKey.buffer);\n if (fingerprint != null) {\n this.fingerprint = fingerprint.join('-');\n }\n }\n } catch { }\n this.loading = false;\n }\n\n async submit() {\n if (this.loading) {\n return;\n }\n\n if (this.dontAskAgain) {\n await this.storageService.save(ConstantsService.autoConfirmFingerprints, true);\n }\n\n try {\n this.onConfirmed.emit();\n } catch { }\n }\n}\n","
\n
\n
\n
\n

\n {{'confirmUser' | i18n}}\n {{name}}\n

\n \n
\n
\n

\n {{'fingerprintEnsureIntegrityVerify' | i18n}}\n \n {{'learnMore' | i18n}}\n

\n

{{fingerprint}}

\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ToasterService } from 'angular2-toaster';\n\nimport { ApiService } from 'jslib/abstractions/api.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { UserService } from 'jslib/abstractions/user.service';\nimport { ChangePasswordComponent } from 'jslib/angular/components/change-password.component';\n\nimport { KdfType } from 'jslib/enums/kdfType';\nimport { PolicyData } from 'jslib/models/data/policyData';\nimport { Policy } from 'jslib/models/domain/policy';\nimport { SymmetricCryptoKey } from 'jslib/models/domain/symmetricCryptoKey';\nimport { EmergencyAccessPasswordRequest } from 'jslib/models/request/emergencyAccessPasswordRequest';\nimport { ListResponse } from 'jslib/models/response';\nimport { EmergencyAccessTakeoverResponse } from 'jslib/models/response/emergencyAccessResponse';\nimport { PolicyResponse } from 'jslib/models/response/policyResponse';\n\n@Component({\n selector: 'emergency-access-takeover',\n templateUrl: 'emergency-access-takeover.component.html',\n})\nexport class EmergencyAccessTakeoverComponent extends ChangePasswordComponent implements OnInit {\n @Output() onDone = new EventEmitter();\n @Input() emergencyAccessId: string;\n @Input() name: string;\n @Input() email: string;\n @Input() kdf: KdfType;\n @Input() kdfIterations: number;\n\n formPromise: Promise;\n\n constructor(i18nService: I18nService, cryptoService: CryptoService,\n messagingService: MessagingService, userService: UserService,\n passwordGenerationService: PasswordGenerationService,\n platformUtilsService: PlatformUtilsService, policyService: PolicyService,\n private apiService: ApiService, private toasterService: ToasterService) {\n super(i18nService, cryptoService, messagingService, userService, passwordGenerationService,\n platformUtilsService, policyService);\n }\n\n async ngOnInit() {\n const response = await this.apiService.getEmergencyGrantorPolicies(this.emergencyAccessId);\n if (response.data != null && response.data.length > 0) {\n const policies = response.data.map((policyResponse: PolicyResponse) => new Policy(new PolicyData(policyResponse)));\n this.enforcedPolicyOptions = await this.policyService.getMasterPasswordPolicyOptions(policies);\n }\n }\n\n async submit() {\n if (!await this.strongPassword()) {\n return;\n }\n\n const takeoverResponse = await this.apiService.postEmergencyAccessTakeover(this.emergencyAccessId);\n\n const oldKeyBuffer = await this.cryptoService.rsaDecrypt(takeoverResponse.keyEncrypted);\n const oldEncKey = new SymmetricCryptoKey(oldKeyBuffer);\n\n if (oldEncKey == null) {\n this.toasterService.popAsync('error', this.i18nService.t('errorOccurred'), this.i18nService.t('unexpectedError'));\n return;\n }\n\n const key = await this.cryptoService.makeKey(this.masterPassword, this.email, takeoverResponse.kdf, takeoverResponse.kdfIterations);\n const masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, key);\n\n const encKey = await this.cryptoService.remakeEncKey(key, oldEncKey);\n\n const request = new EmergencyAccessPasswordRequest();\n request.newMasterPasswordHash = masterPasswordHash;\n request.key = encKey[1].encryptedString;\n\n this.apiService.postEmergencyAccessPassword(this.emergencyAccessId, request);\n\n try {\n this.onDone.emit();\n } catch { }\n }\n}\n","
\n
\n
\n
\n

\n {{'takeover' | i18n}}\n {{name}}\n

\n \n
\n
\n {{'loggedOutWarning' | i18n}}\n \n {{'masterPasswordPolicyInEffect' | i18n}}\n
    \n
  • 0\">\n {{'policyInEffectMinComplexity' | i18n : getPasswordScoreAlertDisplay()}}\n
  • \n
  • 0\">\n {{'policyInEffectMinLength' | i18n : enforcedPolicyOptions?.minLength.toString()}}\n
  • \n
  • \n {{'policyInEffectUppercase' | i18n}}
  • \n
  • \n {{'policyInEffectLowercase' | i18n}}
  • \n
  • \n {{'policyInEffectNumbers' | i18n}}
  • \n
  • \n {{'policyInEffectSpecial' | i18n : '!@#$%^&*'}}
  • \n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n","import { DeviceType } from '../enums/deviceType';\nimport { PolicyType } from '../enums/policyType';\n\nimport { ApiService as ApiServiceAbstraction } from '../abstractions/api.service';\nimport { PlatformUtilsService } from '../abstractions/platformUtils.service';\nimport { TokenService } from '../abstractions/token.service';\n\nimport { EnvironmentUrls } from '../models/domain/environmentUrls';\n\nimport { BitPayInvoiceRequest } from '../models/request/bitPayInvoiceRequest';\nimport { CipherBulkDeleteRequest } from '../models/request/cipherBulkDeleteRequest';\nimport { CipherBulkMoveRequest } from '../models/request/cipherBulkMoveRequest';\nimport { CipherBulkShareRequest } from '../models/request/cipherBulkShareRequest';\nimport { CipherCollectionsRequest } from '../models/request/cipherCollectionsRequest';\nimport { CipherCreateRequest } from '../models/request/cipherCreateRequest';\nimport { CipherRequest } from '../models/request/cipherRequest';\nimport { CipherShareRequest } from '../models/request/cipherShareRequest';\nimport { CollectionRequest } from '../models/request/collectionRequest';\nimport { DeleteRecoverRequest } from '../models/request/deleteRecoverRequest';\nimport { EmailRequest } from '../models/request/emailRequest';\nimport { EmailTokenRequest } from '../models/request/emailTokenRequest';\nimport { EmergencyAccessAcceptRequest } from '../models/request/emergencyAccessAcceptRequest';\nimport { EmergencyAccessConfirmRequest } from '../models/request/emergencyAccessConfirmRequest';\nimport { EmergencyAccessInviteRequest } from '../models/request/emergencyAccessInviteRequest';\nimport { EmergencyAccessPasswordRequest } from '../models/request/emergencyAccessPasswordRequest';\nimport { EmergencyAccessUpdateRequest } from '../models/request/emergencyAccessUpdateRequest';\nimport { EventRequest } from '../models/request/eventRequest';\nimport { FolderRequest } from '../models/request/folderRequest';\nimport { GroupRequest } from '../models/request/groupRequest';\nimport { IapCheckRequest } from '../models/request/iapCheckRequest';\nimport { ImportCiphersRequest } from '../models/request/importCiphersRequest';\nimport { ImportDirectoryRequest } from '../models/request/importDirectoryRequest';\nimport { ImportOrganizationCiphersRequest } from '../models/request/importOrganizationCiphersRequest';\nimport { KdfRequest } from '../models/request/kdfRequest';\nimport { KeysRequest } from '../models/request/keysRequest';\nimport { OrganizationCreateRequest } from '../models/request/organizationCreateRequest';\nimport { OrganizationTaxInfoUpdateRequest } from '../models/request/organizationTaxInfoUpdateRequest';\nimport { OrganizationUpdateRequest } from '../models/request/organizationUpdateRequest';\nimport { OrganizationUpgradeRequest } from '../models/request/organizationUpgradeRequest';\nimport { OrganizationUserAcceptRequest } from '../models/request/organizationUserAcceptRequest';\nimport { OrganizationUserConfirmRequest } from '../models/request/organizationUserConfirmRequest';\nimport { OrganizationUserInviteRequest } from '../models/request/organizationUserInviteRequest';\nimport { OrganizationUserUpdateGroupsRequest } from '../models/request/organizationUserUpdateGroupsRequest';\nimport { OrganizationUserUpdateRequest } from '../models/request/organizationUserUpdateRequest';\nimport { PasswordHintRequest } from '../models/request/passwordHintRequest';\nimport { PasswordRequest } from '../models/request/passwordRequest';\nimport { PasswordVerificationRequest } from '../models/request/passwordVerificationRequest';\nimport { PaymentRequest } from '../models/request/paymentRequest';\nimport { PolicyRequest } from '../models/request/policyRequest';\nimport { PreloginRequest } from '../models/request/preloginRequest';\nimport { RegisterRequest } from '../models/request/registerRequest';\nimport { SeatRequest } from '../models/request/seatRequest';\nimport { SelectionReadOnlyRequest } from '../models/request/selectionReadOnlyRequest';\nimport { SendAccessRequest } from '../models/request/sendAccessRequest';\nimport { SendRequest } from '../models/request/sendRequest';\nimport { SetPasswordRequest } from '../models/request/setPasswordRequest';\nimport { StorageRequest } from '../models/request/storageRequest';\nimport { TaxInfoUpdateRequest } from '../models/request/taxInfoUpdateRequest';\nimport { TokenRequest } from '../models/request/tokenRequest';\nimport { TwoFactorEmailRequest } from '../models/request/twoFactorEmailRequest';\nimport { TwoFactorProviderRequest } from '../models/request/twoFactorProviderRequest';\nimport { TwoFactorRecoveryRequest } from '../models/request/twoFactorRecoveryRequest';\nimport { UpdateDomainsRequest } from '../models/request/updateDomainsRequest';\nimport { UpdateKeyRequest } from '../models/request/updateKeyRequest';\nimport { UpdateProfileRequest } from '../models/request/updateProfileRequest';\nimport { UpdateTwoFactorAuthenticatorRequest } from '../models/request/updateTwoFactorAuthenticatorRequest';\nimport { UpdateTwoFactorDuoRequest } from '../models/request/updateTwoFactorDuoRequest';\nimport { UpdateTwoFactorEmailRequest } from '../models/request/updateTwoFactorEmailRequest';\nimport { UpdateTwoFactorU2fDeleteRequest } from '../models/request/updateTwoFactorU2fDeleteRequest';\nimport { UpdateTwoFactorU2fRequest } from '../models/request/updateTwoFactorU2fRequest';\nimport { UpdateTwoFactorYubioOtpRequest } from '../models/request/updateTwoFactorYubioOtpRequest';\nimport { VerifyBankRequest } from '../models/request/verifyBankRequest';\nimport { VerifyDeleteRecoverRequest } from '../models/request/verifyDeleteRecoverRequest';\nimport { VerifyEmailRequest } from '../models/request/verifyEmailRequest';\n\nimport { Utils } from '../misc/utils';\nimport { ApiKeyResponse } from '../models/response/apiKeyResponse';\nimport { BillingResponse } from '../models/response/billingResponse';\nimport { BreachAccountResponse } from '../models/response/breachAccountResponse';\nimport { CipherResponse } from '../models/response/cipherResponse';\nimport {\n CollectionGroupDetailsResponse,\n CollectionResponse,\n} from '../models/response/collectionResponse';\nimport { DomainsResponse } from '../models/response/domainsResponse';\nimport {\n EmergencyAccessGranteeDetailsResponse,\n EmergencyAccessGrantorDetailsResponse,\n EmergencyAccessTakeoverResponse,\n EmergencyAccessViewResponse\n} from '../models/response/emergencyAccessResponse';\nimport { ErrorResponse } from '../models/response/errorResponse';\nimport { EventResponse } from '../models/response/eventResponse';\nimport { FolderResponse } from '../models/response/folderResponse';\nimport {\n GroupDetailsResponse,\n GroupResponse,\n} from '../models/response/groupResponse';\nimport { IdentityTokenResponse } from '../models/response/identityTokenResponse';\nimport { IdentityTwoFactorResponse } from '../models/response/identityTwoFactorResponse';\nimport { ListResponse } from '../models/response/listResponse';\nimport { OrganizationResponse } from '../models/response/organizationResponse';\nimport { OrganizationSubscriptionResponse } from '../models/response/organizationSubscriptionResponse';\nimport {\n OrganizationUserDetailsResponse,\n OrganizationUserUserDetailsResponse,\n} from '../models/response/organizationUserResponse';\nimport { PaymentResponse } from '../models/response/paymentResponse';\nimport { PlanResponse } from '../models/response/planResponse';\nimport { PolicyResponse } from '../models/response/policyResponse';\nimport { PreloginResponse } from '../models/response/preloginResponse';\nimport { ProfileResponse } from '../models/response/profileResponse';\nimport { SelectionReadOnlyResponse } from '../models/response/selectionReadOnlyResponse';\nimport { SendAccessResponse } from '../models/response/sendAccessResponse';\nimport { SendFileDownloadDataResponse } from '../models/response/sendFileDownloadDataResponse';\nimport { SendResponse } from '../models/response/sendResponse';\nimport { SubscriptionResponse } from '../models/response/subscriptionResponse';\nimport { SyncResponse } from '../models/response/syncResponse';\nimport { TaxInfoResponse } from '../models/response/taxInfoResponse';\nimport { TaxRateResponse } from '../models/response/taxRateResponse';\nimport { TwoFactorAuthenticatorResponse } from '../models/response/twoFactorAuthenticatorResponse';\nimport { TwoFactorDuoResponse } from '../models/response/twoFactorDuoResponse';\nimport { TwoFactorEmailResponse } from '../models/response/twoFactorEmailResponse';\nimport { TwoFactorProviderResponse } from '../models/response/twoFactorProviderResponse';\nimport { TwoFactorRecoverResponse } from '../models/response/twoFactorRescoverResponse';\nimport {\n ChallengeResponse,\n TwoFactorU2fResponse,\n} from '../models/response/twoFactorU2fResponse';\nimport { TwoFactorYubiKeyResponse } from '../models/response/twoFactorYubiKeyResponse';\nimport { UserKeyResponse } from '../models/response/userKeyResponse';\n\nimport { SendAccessView } from '../models/view/sendAccessView';\n\nexport class ApiService implements ApiServiceAbstraction {\n urlsSet: boolean = false;\n apiBaseUrl: string;\n identityBaseUrl: string;\n eventsBaseUrl: string;\n\n private device: DeviceType;\n private deviceType: string;\n private isWebClient = false;\n private isDesktopClient = false;\n private usingBaseUrl = false;\n\n constructor(private tokenService: TokenService, private platformUtilsService: PlatformUtilsService,\n private logoutCallback: (expired: boolean) => Promise, private customUserAgent: string = null) {\n this.device = platformUtilsService.getDevice();\n this.deviceType = this.device.toString();\n this.isWebClient = this.device === DeviceType.IEBrowser || this.device === DeviceType.ChromeBrowser ||\n this.device === DeviceType.EdgeBrowser || this.device === DeviceType.FirefoxBrowser ||\n this.device === DeviceType.OperaBrowser || this.device === DeviceType.SafariBrowser ||\n this.device === DeviceType.UnknownBrowser || this.device === DeviceType.VivaldiBrowser;\n this.isDesktopClient = this.device === DeviceType.WindowsDesktop || this.device === DeviceType.MacOsDesktop ||\n this.device === DeviceType.LinuxDesktop;\n }\n\n setUrls(urls: EnvironmentUrls): void {\n this.urlsSet = true;\n\n if (urls.base != null) {\n this.usingBaseUrl = true;\n this.apiBaseUrl = urls.base + '/api';\n this.identityBaseUrl = urls.base + '/identity';\n this.eventsBaseUrl = urls.base + '/events';\n return;\n }\n\n this.apiBaseUrl = urls.api;\n this.identityBaseUrl = urls.identity;\n this.eventsBaseUrl = urls.events;\n\n // Production\n if (this.apiBaseUrl == null) {\n this.apiBaseUrl = 'https://api.bitwarden.com';\n }\n if (this.identityBaseUrl == null) {\n this.identityBaseUrl = 'https://identity.bitwarden.com';\n }\n if (this.eventsBaseUrl == null) {\n this.eventsBaseUrl = 'https://events.bitwarden.com';\n }\n }\n\n // Auth APIs\n\n async postIdentityToken(request: TokenRequest): Promise {\n const headers = new Headers({\n 'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8',\n 'Accept': 'application/json',\n 'Device-Type': this.deviceType,\n });\n if (this.customUserAgent != null) {\n headers.set('User-Agent', this.customUserAgent);\n }\n const response = await this.fetch(new Request(this.identityBaseUrl + '/connect/token', {\n body: this.qsStringify(request.toIdentityToken(request.clientId ?? this.platformUtilsService.identityClientId)),\n credentials: this.getCredentials(),\n cache: 'no-store',\n headers: headers,\n method: 'POST',\n }));\n\n let responseJson: any = null;\n if (this.isJsonResponse(response)) {\n responseJson = await response.json();\n }\n\n if (responseJson != null) {\n if (response.status === 200) {\n return new IdentityTokenResponse(responseJson);\n } else if (response.status === 400 && responseJson.TwoFactorProviders2 &&\n Object.keys(responseJson.TwoFactorProviders2).length) {\n await this.tokenService.clearTwoFactorToken(request.email);\n return new IdentityTwoFactorResponse(responseJson);\n }\n }\n\n return Promise.reject(new ErrorResponse(responseJson, response.status, true));\n }\n\n async refreshIdentityToken(): Promise {\n try {\n await this.doRefreshToken();\n } catch (e) {\n return Promise.reject(null);\n }\n }\n\n // Account APIs\n\n async getProfile(): Promise {\n const r = await this.send('GET', '/accounts/profile', null, true, true);\n return new ProfileResponse(r);\n }\n\n async getUserBilling(): Promise {\n const r = await this.send('GET', '/accounts/billing', null, true, true);\n return new BillingResponse(r);\n }\n\n async getUserSubscription(): Promise {\n const r = await this.send('GET', '/accounts/subscription', null, true, true);\n return new SubscriptionResponse(r);\n }\n\n async getTaxInfo(): Promise {\n const r = await this.send('GET', '/accounts/tax', null, true, true);\n return new TaxInfoResponse(r);\n }\n\n async putProfile(request: UpdateProfileRequest): Promise {\n const r = await this.send('PUT', '/accounts/profile', request, true, true);\n return new ProfileResponse(r);\n }\n\n putTaxInfo(request: TaxInfoUpdateRequest): Promise {\n return this.send('PUT', '/accounts/tax', request, true, false);\n }\n\n async postPrelogin(request: PreloginRequest): Promise {\n const r = await this.send('POST', '/accounts/prelogin', request, false, true);\n return new PreloginResponse(r);\n }\n\n postEmailToken(request: EmailTokenRequest): Promise {\n return this.send('POST', '/accounts/email-token', request, true, false);\n }\n\n postEmail(request: EmailRequest): Promise {\n return this.send('POST', '/accounts/email', request, true, false);\n }\n\n postPassword(request: PasswordRequest): Promise {\n return this.send('POST', '/accounts/password', request, true, false);\n }\n\n setPassword(request: SetPasswordRequest): Promise {\n return this.send('POST', '/accounts/set-password', request, true, false);\n }\n\n postSecurityStamp(request: PasswordVerificationRequest): Promise {\n return this.send('POST', '/accounts/security-stamp', request, true, false);\n }\n\n deleteAccount(request: PasswordVerificationRequest): Promise {\n return this.send('DELETE', '/accounts', request, true, false);\n }\n\n async getAccountRevisionDate(): Promise {\n const r = await this.send('GET', '/accounts/revision-date', null, true, true);\n return r as number;\n }\n\n postPasswordHint(request: PasswordHintRequest): Promise {\n return this.send('POST', '/accounts/password-hint', request, false, false);\n }\n\n postRegister(request: RegisterRequest): Promise {\n return this.send('POST', '/accounts/register', request, false, false);\n }\n\n async postPremium(data: FormData): Promise {\n const r = await this.send('POST', '/accounts/premium', data, true, true);\n return new PaymentResponse(r);\n }\n\n async postIapCheck(request: IapCheckRequest): Promise {\n return this.send('POST', '/accounts/iap-check', request, true, false);\n }\n\n postReinstatePremium(): Promise {\n return this.send('POST', '/accounts/reinstate-premium', null, true, false);\n }\n\n postCancelPremium(): Promise {\n return this.send('POST', '/accounts/cancel-premium', null, true, false);\n }\n\n async postAccountStorage(request: StorageRequest): Promise {\n const r = await this.send('POST', '/accounts/storage', request, true, true);\n return new PaymentResponse(r);\n }\n\n postAccountPayment(request: PaymentRequest): Promise {\n return this.send('POST', '/accounts/payment', request, true, false);\n }\n\n postAccountLicense(data: FormData): Promise {\n return this.send('POST', '/accounts/license', data, true, false);\n }\n\n postAccountKeys(request: KeysRequest): Promise {\n return this.send('POST', '/accounts/keys', request, true, false);\n }\n\n postAccountKey(request: UpdateKeyRequest): Promise {\n return this.send('POST', '/accounts/key', request, true, false);\n }\n\n postAccountVerifyEmail(): Promise {\n return this.send('POST', '/accounts/verify-email', null, true, false);\n }\n\n postAccountVerifyEmailToken(request: VerifyEmailRequest): Promise {\n return this.send('POST', '/accounts/verify-email-token', request, false, false);\n }\n\n postAccountVerifyPassword(request: PasswordVerificationRequest): Promise {\n return this.send('POST', '/accounts/verify-password', request, true, false);\n }\n\n postAccountRecoverDelete(request: DeleteRecoverRequest): Promise {\n return this.send('POST', '/accounts/delete-recover', request, false, false);\n }\n\n postAccountRecoverDeleteToken(request: VerifyDeleteRecoverRequest): Promise {\n return this.send('POST', '/accounts/delete-recover-token', request, false, false);\n }\n\n postAccountKdf(request: KdfRequest): Promise {\n return this.send('POST', '/accounts/kdf', request, true, false);\n }\n\n async getEnterprisePortalSignInToken(): Promise {\n const r = await this.send('GET', '/accounts/enterprise-portal-signin-token', null, true, true);\n return r as string;\n }\n\n async deleteSsoUser(organizationId: string): Promise {\n return this.send('DELETE', '/accounts/sso/' + organizationId, null, true, false);\n }\n\n async getSsoUserIdentifier(): Promise {\n return this.send('GET', '/accounts/sso/user-identifier', null, true, true);\n }\n\n async postUserApiKey(id: string, request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/accounts/api-key', request, true, true);\n return new ApiKeyResponse(r);\n }\n\n async postUserRotateApiKey(id: string, request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/accounts/rotate-api-key', request, true, true);\n return new ApiKeyResponse(r);\n }\n\n // Folder APIs\n\n async getFolder(id: string): Promise {\n const r = await this.send('GET', '/folders/' + id, null, true, true);\n return new FolderResponse(r);\n }\n\n async postFolder(request: FolderRequest): Promise {\n const r = await this.send('POST', '/folders', request, true, true);\n return new FolderResponse(r);\n }\n\n async putFolder(id: string, request: FolderRequest): Promise {\n const r = await this.send('PUT', '/folders/' + id, request, true, true);\n return new FolderResponse(r);\n }\n\n deleteFolder(id: string): Promise {\n return this.send('DELETE', '/folders/' + id, null, true, false);\n }\n\n // Send APIs\n\n async getSend(id: string): Promise {\n const r = await this.send('GET', '/sends/' + id, null, true, true);\n return new SendResponse(r);\n }\n\n async postSendAccess(id: string, request: SendAccessRequest, apiUrl?: string): Promise {\n const r = await this.send('POST', '/sends/access/' + id, request, false, true, apiUrl);\n return new SendAccessResponse(r);\n }\n\n\n async getSendFileDownloadData(send: SendAccessView, request: SendAccessRequest): Promise {\n const r = await this.send('POST', '/sends/' + send.id + '/access/file/' + send.file.id, request, false, true);\n return new SendFileDownloadDataResponse(r);\n }\n\n async getSends(): Promise> {\n const r = await this.send('GET', '/sends', null, true, true);\n return new ListResponse(r, SendResponse);\n }\n\n async postSend(request: SendRequest): Promise {\n const r = await this.send('POST', '/sends', request, true, true);\n return new SendResponse(r);\n }\n\n async postSendFile(data: FormData): Promise {\n const r = await this.send('POST', '/sends/file', data, true, true);\n return new SendResponse(r);\n }\n\n async putSend(id: string, request: SendRequest): Promise {\n const r = await this.send('PUT', '/sends/' + id, request, true, true);\n return new SendResponse(r);\n }\n\n async putSendRemovePassword(id: string): Promise {\n const r = await this.send('PUT', '/sends/' + id + '/remove-password', null, true, true);\n return new SendResponse(r);\n }\n\n deleteSend(id: string): Promise {\n return this.send('DELETE', '/sends/' + id, null, true, false);\n }\n\n // Cipher APIs\n\n async getCipher(id: string): Promise {\n const r = await this.send('GET', '/ciphers/' + id, null, true, true);\n return new CipherResponse(r);\n }\n\n async getCipherAdmin(id: string): Promise {\n const r = await this.send('GET', '/ciphers/' + id + '/admin', null, true, true);\n return new CipherResponse(r);\n }\n\n async getCiphersOrganization(organizationId: string): Promise> {\n const r = await this.send('GET', '/ciphers/organization-details?organizationId=' + organizationId,\n null, true, true);\n return new ListResponse(r, CipherResponse);\n }\n\n async postCipher(request: CipherRequest): Promise {\n const r = await this.send('POST', '/ciphers', request, true, true);\n return new CipherResponse(r);\n }\n\n async postCipherCreate(request: CipherCreateRequest): Promise {\n const r = await this.send('POST', '/ciphers/create', request, true, true);\n return new CipherResponse(r);\n }\n\n async postCipherAdmin(request: CipherCreateRequest): Promise {\n const r = await this.send('POST', '/ciphers/admin', request, true, true);\n return new CipherResponse(r);\n }\n\n async putCipher(id: string, request: CipherRequest): Promise {\n const r = await this.send('PUT', '/ciphers/' + id, request, true, true);\n return new CipherResponse(r);\n }\n\n async putCipherAdmin(id: string, request: CipherRequest): Promise {\n const r = await this.send('PUT', '/ciphers/' + id + '/admin', request, true, true);\n return new CipherResponse(r);\n }\n\n deleteCipher(id: string): Promise {\n return this.send('DELETE', '/ciphers/' + id, null, true, false);\n }\n\n deleteCipherAdmin(id: string): Promise {\n return this.send('DELETE', '/ciphers/' + id + '/admin', null, true, false);\n }\n\n deleteManyCiphers(request: CipherBulkDeleteRequest): Promise {\n return this.send('DELETE', '/ciphers', request, true, false);\n }\n\n deleteManyCiphersAdmin(request: CipherBulkDeleteRequest): Promise {\n return this.send('DELETE', '/ciphers/admin', request, true, false);\n }\n\n putMoveCiphers(request: CipherBulkMoveRequest): Promise {\n return this.send('PUT', '/ciphers/move', request, true, false);\n }\n\n async putShareCipher(id: string, request: CipherShareRequest): Promise {\n const r = await this.send('PUT', '/ciphers/' + id + '/share', request, true, true);\n return new CipherResponse(r);\n }\n\n putShareCiphers(request: CipherBulkShareRequest): Promise {\n return this.send('PUT', '/ciphers/share', request, true, false);\n }\n\n putCipherCollections(id: string, request: CipherCollectionsRequest): Promise {\n return this.send('PUT', '/ciphers/' + id + '/collections', request, true, false);\n }\n\n putCipherCollectionsAdmin(id: string, request: CipherCollectionsRequest): Promise {\n return this.send('PUT', '/ciphers/' + id + '/collections-admin', request, true, false);\n }\n\n postPurgeCiphers(request: PasswordVerificationRequest, organizationId: string = null): Promise {\n let path = '/ciphers/purge';\n if (organizationId != null) {\n path += '?organizationId=' + organizationId;\n }\n return this.send('POST', path, request, true, false);\n }\n\n postImportCiphers(request: ImportCiphersRequest): Promise {\n return this.send('POST', '/ciphers/import', request, true, false);\n }\n\n postImportOrganizationCiphers(organizationId: string, request: ImportOrganizationCiphersRequest): Promise {\n return this.send('POST', '/ciphers/import-organization?organizationId=' + organizationId, request, true, false);\n }\n\n putDeleteCipher(id: string): Promise {\n return this.send('PUT', '/ciphers/' + id + '/delete', null, true, false);\n }\n\n putDeleteCipherAdmin(id: string): Promise {\n return this.send('PUT', '/ciphers/' + id + '/delete-admin', null, true, false);\n }\n\n putDeleteManyCiphers(request: CipherBulkDeleteRequest): Promise {\n return this.send('PUT', '/ciphers/delete', request, true, false);\n }\n\n putDeleteManyCiphersAdmin(request: CipherBulkDeleteRequest): Promise {\n return this.send('PUT', '/ciphers/delete-admin', request, true, false);\n }\n\n async putRestoreCipher(id: string): Promise {\n const r = await this.send('PUT', '/ciphers/' + id + '/restore', null, true, true);\n return new CipherResponse(r);\n }\n\n async putRestoreCipherAdmin(id: string): Promise {\n const r = await this.send('PUT', '/ciphers/' + id + '/restore-admin', null, true, true);\n return new CipherResponse(r);\n }\n\n async putRestoreManyCiphers(request: CipherBulkDeleteRequest): Promise> {\n const r = await this.send('PUT', '/ciphers/restore', request, true, true);\n return new ListResponse(r, CipherResponse);\n }\n\n // Attachments APIs\n\n async postCipherAttachment(id: string, data: FormData): Promise {\n const r = await this.send('POST', '/ciphers/' + id + '/attachment', data, true, true);\n return new CipherResponse(r);\n }\n\n async postCipherAttachmentAdmin(id: string, data: FormData): Promise {\n const r = await this.send('POST', '/ciphers/' + id + '/attachment-admin', data, true, true);\n return new CipherResponse(r);\n }\n\n deleteCipherAttachment(id: string, attachmentId: string): Promise {\n return this.send('DELETE', '/ciphers/' + id + '/attachment/' + attachmentId, null, true, false);\n }\n\n deleteCipherAttachmentAdmin(id: string, attachmentId: string): Promise {\n return this.send('DELETE', '/ciphers/' + id + '/attachment/' + attachmentId + '/admin', null, true, false);\n }\n\n postShareCipherAttachment(id: string, attachmentId: string, data: FormData,\n organizationId: string): Promise {\n return this.send('POST', '/ciphers/' + id + '/attachment/' +\n attachmentId + '/share?organizationId=' + organizationId, data, true, false);\n }\n\n // Collections APIs\n\n async getCollectionDetails(organizationId: string, id: string): Promise {\n const r = await this.send('GET', '/organizations/' + organizationId + '/collections/' + id + '/details',\n null, true, true);\n return new CollectionGroupDetailsResponse(r);\n }\n\n async getUserCollections(): Promise> {\n const r = await this.send('GET', '/collections', null, true, true);\n return new ListResponse(r, CollectionResponse);\n }\n\n async getCollections(organizationId: string): Promise> {\n const r = await this.send('GET', '/organizations/' + organizationId + '/collections', null, true, true);\n return new ListResponse(r, CollectionResponse);\n }\n\n async getCollectionUsers(organizationId: string, id: string): Promise {\n const r = await this.send('GET', '/organizations/' + organizationId + '/collections/' + id + '/users',\n null, true, true);\n return r.map((dr: any) => new SelectionReadOnlyResponse(dr));\n }\n\n async postCollection(organizationId: string, request: CollectionRequest): Promise {\n const r = await this.send('POST', '/organizations/' + organizationId + '/collections', request, true, true);\n return new CollectionResponse(r);\n }\n\n async putCollection(organizationId: string, id: string, request: CollectionRequest): Promise {\n const r = await this.send('PUT', '/organizations/' + organizationId + '/collections/' + id,\n request, true, true);\n return new CollectionResponse(r);\n }\n\n async putCollectionUsers(organizationId: string, id: string, request: SelectionReadOnlyRequest[]): Promise {\n await this.send('PUT', '/organizations/' + organizationId + '/collections/' + id + '/users',\n request, true, false);\n }\n\n deleteCollection(organizationId: string, id: string): Promise {\n return this.send('DELETE', '/organizations/' + organizationId + '/collections/' + id, null, true, false);\n }\n\n deleteCollectionUser(organizationId: string, id: string, organizationUserId: string): Promise {\n return this.send('DELETE',\n '/organizations/' + organizationId + '/collections/' + id + '/user/' + organizationUserId,\n null, true, false);\n }\n\n // Groups APIs\n\n async getGroupDetails(organizationId: string, id: string): Promise {\n const r = await this.send('GET', '/organizations/' + organizationId + '/groups/' + id + '/details',\n null, true, true);\n return new GroupDetailsResponse(r);\n }\n\n async getGroups(organizationId: string): Promise> {\n const r = await this.send('GET', '/organizations/' + organizationId + '/groups', null, true, true);\n return new ListResponse(r, GroupResponse);\n }\n\n async getGroupUsers(organizationId: string, id: string): Promise {\n const r = await this.send('GET', '/organizations/' + organizationId + '/groups/' + id + '/users',\n null, true, true);\n return r;\n }\n\n async postGroup(organizationId: string, request: GroupRequest): Promise {\n const r = await this.send('POST', '/organizations/' + organizationId + '/groups', request, true, true);\n return new GroupResponse(r);\n }\n\n async putGroup(organizationId: string, id: string, request: GroupRequest): Promise {\n const r = await this.send('PUT', '/organizations/' + organizationId + '/groups/' + id, request, true, true);\n return new GroupResponse(r);\n }\n\n async putGroupUsers(organizationId: string, id: string, request: string[]): Promise {\n await this.send('PUT', '/organizations/' + organizationId + '/groups/' + id + '/users', request, true, false);\n }\n\n deleteGroup(organizationId: string, id: string): Promise {\n return this.send('DELETE', '/organizations/' + organizationId + '/groups/' + id, null, true, false);\n }\n\n deleteGroupUser(organizationId: string, id: string, organizationUserId: string): Promise {\n return this.send('DELETE',\n '/organizations/' + organizationId + '/groups/' + id + '/user/' + organizationUserId, null, true, false);\n }\n\n // Policy APIs\n\n async getPolicy(organizationId: string, type: PolicyType): Promise {\n const r = await this.send('GET', '/organizations/' + organizationId + '/policies/' + type, null, true, true);\n return new PolicyResponse(r);\n }\n\n async getPolicies(organizationId: string): Promise> {\n const r = await this.send('GET', '/organizations/' + organizationId + '/policies', null, true, true);\n return new ListResponse(r, PolicyResponse);\n }\n\n async getPoliciesByToken(organizationId: string, token: string, email: string, organizationUserId: string):\n Promise> {\n const r = await this.send('GET', '/organizations/' + organizationId + '/policies/token?' +\n 'token=' + encodeURIComponent(token) + '&email=' + encodeURIComponent(email) +\n '&organizationUserId=' + organizationUserId, null, false, true);\n return new ListResponse(r, PolicyResponse);\n }\n\n async putPolicy(organizationId: string, type: PolicyType, request: PolicyRequest): Promise {\n const r = await this.send('PUT', '/organizations/' + organizationId + '/policies/' + type, request, true, true);\n return new PolicyResponse(r);\n }\n\n // Organization User APIs\n\n async getOrganizationUser(organizationId: string, id: string): Promise {\n const r = await this.send('GET', '/organizations/' + organizationId + '/users/' + id, null, true, true);\n return new OrganizationUserDetailsResponse(r);\n }\n\n async getOrganizationUserGroups(organizationId: string, id: string): Promise {\n const r = await this.send('GET', '/organizations/' + organizationId + '/users/' + id + '/groups',\n null, true, true);\n return r;\n }\n\n async getOrganizationUsers(organizationId: string): Promise> {\n const r = await this.send('GET', '/organizations/' + organizationId + '/users', null, true, true);\n return new ListResponse(r, OrganizationUserUserDetailsResponse);\n }\n\n postOrganizationUserInvite(organizationId: string, request: OrganizationUserInviteRequest): Promise {\n return this.send('POST', '/organizations/' + organizationId + '/users/invite', request, true, false);\n }\n\n postOrganizationUserReinvite(organizationId: string, id: string): Promise {\n return this.send('POST', '/organizations/' + organizationId + '/users/' + id + '/reinvite', null, true, false);\n }\n\n postOrganizationUserAccept(organizationId: string, id: string,\n request: OrganizationUserAcceptRequest): Promise {\n return this.send('POST', '/organizations/' + organizationId + '/users/' + id + '/accept', request, true, false);\n }\n\n postOrganizationUserConfirm(organizationId: string, id: string,\n request: OrganizationUserConfirmRequest): Promise {\n return this.send('POST', '/organizations/' + organizationId + '/users/' + id + '/confirm',\n request, true, false);\n }\n\n putOrganizationUser(organizationId: string, id: string, request: OrganizationUserUpdateRequest): Promise {\n return this.send('PUT', '/organizations/' + organizationId + '/users/' + id, request, true, false);\n }\n\n putOrganizationUserGroups(organizationId: string, id: string,\n request: OrganizationUserUpdateGroupsRequest): Promise {\n return this.send('PUT', '/organizations/' + organizationId + '/users/' + id + '/groups', request, true, false);\n }\n\n deleteOrganizationUser(organizationId: string, id: string): Promise {\n return this.send('DELETE', '/organizations/' + organizationId + '/users/' + id, null, true, false);\n }\n\n // Plan APIs\n\n async getPlans(): Promise> {\n const r = await this.send('GET', '/plans/', null, true, true);\n return new ListResponse(r, PlanResponse);\n }\n\n async postImportDirectory(organizationId: string, request: ImportDirectoryRequest): Promise {\n return this.send('POST', '/organizations/' + organizationId + '/import', request, true, false);\n }\n\n async getTaxRates(): Promise> {\n const r = await this.send('GET', '/plans/sales-tax-rates/', null, true, true);\n return new ListResponse(r, TaxRateResponse);\n }\n\n // Settings APIs\n\n async getSettingsDomains(): Promise {\n const r = await this.send('GET', '/settings/domains', null, true, true);\n return new DomainsResponse(r);\n }\n\n async putSettingsDomains(request: UpdateDomainsRequest): Promise {\n const r = await this.send('PUT', '/settings/domains', request, true, true);\n return new DomainsResponse(r);\n }\n\n // Sync APIs\n\n async getSync(): Promise {\n const path = this.isDesktopClient || this.isWebClient ? '/sync?excludeDomains=true' : '/sync';\n const r = await this.send('GET', path, null, true, true);\n return new SyncResponse(r);\n }\n\n // Two-factor APIs\n\n async getTwoFactorProviders(): Promise> {\n const r = await this.send('GET', '/two-factor', null, true, true);\n return new ListResponse(r, TwoFactorProviderResponse);\n }\n\n async getTwoFactorOrganizationProviders(organizationId: string): Promise> {\n const r = await this.send('GET', '/organizations/' + organizationId + '/two-factor', null, true, true);\n return new ListResponse(r, TwoFactorProviderResponse);\n }\n\n async getTwoFactorAuthenticator(request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/two-factor/get-authenticator', request, true, true);\n return new TwoFactorAuthenticatorResponse(r);\n }\n\n async getTwoFactorEmail(request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/two-factor/get-email', request, true, true);\n return new TwoFactorEmailResponse(r);\n }\n\n async getTwoFactorDuo(request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/two-factor/get-duo', request, true, true);\n return new TwoFactorDuoResponse(r);\n }\n\n async getTwoFactorOrganizationDuo(organizationId: string,\n request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/organizations/' + organizationId + '/two-factor/get-duo',\n request, true, true);\n return new TwoFactorDuoResponse(r);\n }\n\n async getTwoFactorYubiKey(request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/two-factor/get-yubikey', request, true, true);\n return new TwoFactorYubiKeyResponse(r);\n }\n\n async getTwoFactorU2f(request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/two-factor/get-u2f', request, true, true);\n return new TwoFactorU2fResponse(r);\n }\n\n async getTwoFactorU2fChallenge(request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/two-factor/get-u2f-challenge', request, true, true);\n return new ChallengeResponse(r);\n }\n\n async getTwoFactorRecover(request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/two-factor/get-recover', request, true, true);\n return new TwoFactorRecoverResponse(r);\n }\n\n async putTwoFactorAuthenticator(\n request: UpdateTwoFactorAuthenticatorRequest): Promise {\n const r = await this.send('PUT', '/two-factor/authenticator', request, true, true);\n return new TwoFactorAuthenticatorResponse(r);\n }\n\n async putTwoFactorEmail(request: UpdateTwoFactorEmailRequest): Promise {\n const r = await this.send('PUT', '/two-factor/email', request, true, true);\n return new TwoFactorEmailResponse(r);\n }\n\n async putTwoFactorDuo(request: UpdateTwoFactorDuoRequest): Promise {\n const r = await this.send('PUT', '/two-factor/duo', request, true, true);\n return new TwoFactorDuoResponse(r);\n }\n\n async putTwoFactorOrganizationDuo(organizationId: string,\n request: UpdateTwoFactorDuoRequest): Promise {\n const r = await this.send('PUT', '/organizations/' + organizationId + '/two-factor/duo', request, true, true);\n return new TwoFactorDuoResponse(r);\n }\n\n async putTwoFactorYubiKey(request: UpdateTwoFactorYubioOtpRequest): Promise {\n const r = await this.send('PUT', '/two-factor/yubikey', request, true, true);\n return new TwoFactorYubiKeyResponse(r);\n }\n\n async putTwoFactorU2f(request: UpdateTwoFactorU2fRequest): Promise {\n const r = await this.send('PUT', '/two-factor/u2f', request, true, true);\n return new TwoFactorU2fResponse(r);\n }\n\n async deleteTwoFactorU2f(request: UpdateTwoFactorU2fDeleteRequest): Promise {\n const r = await this.send('DELETE', '/two-factor/u2f', request, true, true);\n return new TwoFactorU2fResponse(r);\n }\n\n async putTwoFactorDisable(request: TwoFactorProviderRequest): Promise {\n const r = await this.send('PUT', '/two-factor/disable', request, true, true);\n return new TwoFactorProviderResponse(r);\n }\n\n async putTwoFactorOrganizationDisable(organizationId: string,\n request: TwoFactorProviderRequest): Promise {\n const r = await this.send('PUT', '/organizations/' + organizationId + '/two-factor/disable',\n request, true, true);\n return new TwoFactorProviderResponse(r);\n }\n\n postTwoFactorRecover(request: TwoFactorRecoveryRequest): Promise {\n return this.send('POST', '/two-factor/recover', request, false, false);\n }\n\n postTwoFactorEmailSetup(request: TwoFactorEmailRequest): Promise {\n return this.send('POST', '/two-factor/send-email', request, true, false);\n }\n\n postTwoFactorEmail(request: TwoFactorEmailRequest): Promise {\n return this.send('POST', '/two-factor/send-email-login', request, false, false);\n }\n\n // Emergency Access APIs\n\n async getEmergencyAccessTrusted(): Promise> {\n const r = await this.send('GET', '/emergency-access/trusted', null, true, true);\n return new ListResponse(r, EmergencyAccessGranteeDetailsResponse);\n }\n\n async getEmergencyAccessGranted(): Promise> {\n const r = await this.send('GET', '/emergency-access/granted', null, true, true);\n return new ListResponse(r, EmergencyAccessGrantorDetailsResponse);\n }\n\n async getEmergencyAccess(id: string): Promise {\n const r = await this.send('GET', '/emergency-access/' + id, null, true, true);\n return new EmergencyAccessGranteeDetailsResponse(r);\n }\n\n async getEmergencyGrantorPolicies(id: string): Promise> {\n const r = await this.send('GET', '/emergency-access/' + id + '/policies', null, true, true);\n return new ListResponse(r, PolicyResponse);\n }\n\n putEmergencyAccess(id: string, request: EmergencyAccessUpdateRequest): Promise {\n return this.send('PUT', '/emergency-access/' + id, request, true, false);\n }\n\n deleteEmergencyAccess(id: string): Promise {\n return this.send('DELETE', '/emergency-access/' + id, null, true, false);\n }\n\n postEmergencyAccessInvite(request: EmergencyAccessInviteRequest): Promise {\n return this.send('POST', '/emergency-access/invite', request, true, false);\n }\n\n postEmergencyAccessReinvite(id: string): Promise {\n return this.send('POST', '/emergency-access/' + id + '/reinvite', null, true, false);\n }\n\n postEmergencyAccessAccept(id: string, request: EmergencyAccessAcceptRequest): Promise {\n return this.send('POST', '/emergency-access/' + id + '/accept', request, true, false);\n }\n\n postEmergencyAccessConfirm(id: string, request: EmergencyAccessConfirmRequest): Promise {\n return this.send('POST', '/emergency-access/' + id + '/confirm', request, true, false);\n }\n\n postEmergencyAccessInitiate(id: string): Promise {\n return this.send('POST', '/emergency-access/' + id + '/initiate', null, true, false);\n }\n\n postEmergencyAccessApprove(id: string): Promise {\n return this.send('POST', '/emergency-access/' + id + '/approve', null, true, false);\n }\n\n postEmergencyAccessReject(id: string): Promise {\n return this.send('POST', '/emergency-access/' + id + '/reject', null, true, false);\n }\n\n async postEmergencyAccessTakeover(id: string): Promise {\n const r = await this.send('POST', '/emergency-access/' + id + '/takeover', null, true, true);\n return new EmergencyAccessTakeoverResponse(r);\n }\n\n async postEmergencyAccessPassword(id: string, request: EmergencyAccessPasswordRequest): Promise {\n const r = await this.send('POST', '/emergency-access/' + id + '/password', request, true, true);\n }\n\n async postEmergencyAccessView(id: string): Promise {\n const r = await this.send('POST', '/emergency-access/' + id + '/view', null, true, true);\n return new EmergencyAccessViewResponse(r);\n }\n\n // Organization APIs\n\n async getOrganization(id: string): Promise {\n const r = await this.send('GET', '/organizations/' + id, null, true, true);\n return new OrganizationResponse(r);\n }\n\n async getOrganizationBilling(id: string): Promise {\n const r = await this.send('GET', '/organizations/' + id + '/billing', null, true, true);\n return new BillingResponse(r);\n }\n\n async getOrganizationSubscription(id: string): Promise {\n const r = await this.send('GET', '/organizations/' + id + '/subscription', null, true, true);\n return new OrganizationSubscriptionResponse(r);\n }\n\n async getOrganizationLicense(id: string, installationId: string): Promise {\n return this.send('GET', '/organizations/' + id + '/license?installationId=' + installationId,\n null, true, true);\n }\n\n async getOrganizationTaxInfo(id: string): Promise {\n const r = await this.send('GET', '/organizations/' + id + '/tax', null, true, true);\n return new TaxInfoResponse(r);\n }\n\n async postOrganization(request: OrganizationCreateRequest): Promise {\n const r = await this.send('POST', '/organizations', request, true, true);\n return new OrganizationResponse(r);\n }\n\n async putOrganization(id: string, request: OrganizationUpdateRequest): Promise {\n const r = await this.send('PUT', '/organizations/' + id, request, true, true);\n return new OrganizationResponse(r);\n }\n\n async putOrganizationTaxInfo(id: string, request: OrganizationTaxInfoUpdateRequest): Promise {\n return this.send('PUT', '/organizations/' + id + '/tax', request, true, false);\n }\n\n postLeaveOrganization(id: string): Promise {\n return this.send('POST', '/organizations/' + id + '/leave', null, true, false);\n }\n\n async postOrganizationLicense(data: FormData): Promise {\n const r = await this.send('POST', '/organizations/license', data, true, true);\n return new OrganizationResponse(r);\n }\n\n async postOrganizationLicenseUpdate(id: string, data: FormData): Promise {\n return this.send('POST', '/organizations/' + id + '/license', data, true, false);\n }\n\n async postOrganizationApiKey(id: string, request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/organizations/' + id + '/api-key', request, true, true);\n return new ApiKeyResponse(r);\n }\n\n async postOrganizationRotateApiKey(id: string, request: PasswordVerificationRequest): Promise {\n const r = await this.send('POST', '/organizations/' + id + '/rotate-api-key', request, true, true);\n return new ApiKeyResponse(r);\n }\n\n async postOrganizationUpgrade(id: string, request: OrganizationUpgradeRequest): Promise {\n const r = await this.send('POST', '/organizations/' + id + '/upgrade', request, true, true);\n return new PaymentResponse(r);\n }\n\n async postOrganizationSeat(id: string, request: SeatRequest): Promise {\n const r = await this.send('POST', '/organizations/' + id + '/seat', request, true, true);\n return new PaymentResponse(r);\n }\n\n async postOrganizationStorage(id: string, request: StorageRequest): Promise {\n const r = await this.send('POST', '/organizations/' + id + '/storage', request, true, true);\n return new PaymentResponse(r);\n }\n\n postOrganizationPayment(id: string, request: PaymentRequest): Promise {\n return this.send('POST', '/organizations/' + id + '/payment', request, true, false);\n }\n\n postOrganizationVerifyBank(id: string, request: VerifyBankRequest): Promise {\n return this.send('POST', '/organizations/' + id + '/verify-bank', request, true, false);\n }\n\n postOrganizationCancel(id: string): Promise {\n return this.send('POST', '/organizations/' + id + '/cancel', null, true, false);\n }\n\n postOrganizationReinstate(id: string): Promise {\n return this.send('POST', '/organizations/' + id + '/reinstate', null, true, false);\n }\n\n deleteOrganization(id: string, request: PasswordVerificationRequest): Promise {\n return this.send('DELETE', '/organizations/' + id, request, true, false);\n }\n\n // Event APIs\n\n async getEvents(start: string, end: string, token: string): Promise> {\n const r = await this.send('GET', this.addEventParameters('/events', start, end, token), null, true, true);\n return new ListResponse(r, EventResponse);\n }\n\n async getEventsCipher(id: string, start: string, end: string,\n token: string): Promise> {\n const r = await this.send('GET', this.addEventParameters('/ciphers/' + id + '/events', start, end, token),\n null, true, true);\n return new ListResponse(r, EventResponse);\n }\n\n async getEventsOrganization(id: string, start: string, end: string,\n token: string): Promise> {\n const r = await this.send('GET', this.addEventParameters('/organizations/' + id + '/events', start, end, token),\n null, true, true);\n return new ListResponse(r, EventResponse);\n }\n\n async getEventsOrganizationUser(organizationId: string, id: string,\n start: string, end: string, token: string): Promise> {\n const r = await this.send('GET',\n this.addEventParameters('/organizations/' + organizationId + '/users/' + id + '/events', start, end, token),\n null, true, true);\n return new ListResponse(r, EventResponse);\n }\n\n async postEventsCollect(request: EventRequest[]): Promise {\n const authHeader = await this.getActiveBearerToken();\n const headers = new Headers({\n 'Device-Type': this.deviceType,\n 'Authorization': 'Bearer ' + authHeader,\n 'Content-Type': 'application/json; charset=utf-8',\n });\n if (this.customUserAgent != null) {\n headers.set('User-Agent', this.customUserAgent);\n }\n const response = await this.fetch(new Request(this.eventsBaseUrl + '/collect', {\n cache: 'no-store',\n credentials: this.getCredentials(),\n method: 'POST',\n body: JSON.stringify(request),\n headers: headers,\n }));\n if (response.status !== 200) {\n return Promise.reject('Event post failed.');\n }\n }\n\n // User APIs\n\n async getUserPublicKey(id: string): Promise {\n const r = await this.send('GET', '/users/' + id + '/public-key', null, true, true);\n return new UserKeyResponse(r);\n }\n\n // HIBP APIs\n\n async getHibpBreach(username: string): Promise {\n const r = await this.send('GET', '/hibp/breach?username=' + username, null, true, true);\n return r.map((a: any) => new BreachAccountResponse(a));\n }\n\n // Misc\n\n async postBitPayInvoice(request: BitPayInvoiceRequest): Promise {\n const r = await this.send('POST', '/bitpay-invoice', request, true, true);\n return r as string;\n }\n\n async postSetupPayment(): Promise {\n const r = await this.send('POST', '/setup-payment', null, true, true);\n return r as string;\n }\n\n // Helpers\n\n async getActiveBearerToken(): Promise {\n let accessToken = await this.tokenService.getToken();\n if (this.tokenService.tokenNeedsRefresh()) {\n const tokenResponse = await this.doRefreshToken();\n accessToken = tokenResponse.accessToken;\n }\n return accessToken;\n }\n\n fetch(request: Request): Promise {\n if (request.method === 'GET') {\n request.headers.set('Cache-Control', 'no-store');\n request.headers.set('Pragma', 'no-cache');\n }\n return this.nativeFetch(request);\n }\n\n nativeFetch(request: Request): Promise {\n return fetch(request);\n }\n\n async preValidateSso(identifier: string): Promise {\n if (identifier == null || identifier === '') {\n throw new Error('Organization Identifier was not provided.');\n }\n const headers = new Headers({\n 'Accept': 'application/json',\n 'Device-Type': this.deviceType,\n });\n if (this.customUserAgent != null) {\n headers.set('User-Agent', this.customUserAgent);\n }\n\n const path = `/account/prevalidate?domainHint=${encodeURIComponent(identifier)}`;\n const response = await this.fetch(new Request(this.identityBaseUrl + path, {\n cache: 'no-store',\n credentials: this.getCredentials(),\n headers: headers,\n method: 'GET',\n }));\n\n if (response.status === 200) {\n return true;\n } else {\n const error = await this.handleError(response, false, true);\n return Promise.reject(error);\n }\n }\n\n private async send(method: 'GET' | 'POST' | 'PUT' | 'DELETE', path: string, body: any,\n authed: boolean, hasResponse: boolean, apiUrl?: string): Promise {\n apiUrl = Utils.isNullOrWhitespace(apiUrl) ? this.apiBaseUrl : apiUrl;\n const headers = new Headers({\n 'Device-Type': this.deviceType,\n });\n if (this.customUserAgent != null) {\n headers.set('User-Agent', this.customUserAgent);\n }\n\n const requestInit: RequestInit = {\n cache: 'no-store',\n credentials: this.getCredentials(),\n method: method,\n };\n\n if (authed) {\n const authHeader = await this.getActiveBearerToken();\n headers.set('Authorization', 'Bearer ' + authHeader);\n }\n if (body != null) {\n if (typeof body === 'string') {\n requestInit.body = body;\n headers.set('Content-Type', 'application/x-www-form-urlencoded; charset=utf-8');\n } else if (typeof body === 'object') {\n if (body instanceof FormData) {\n requestInit.body = body;\n } else {\n headers.set('Content-Type', 'application/json; charset=utf-8');\n requestInit.body = JSON.stringify(body);\n }\n }\n }\n if (hasResponse) {\n headers.set('Accept', 'application/json');\n }\n\n requestInit.headers = headers;\n const response = await this.fetch(new Request(apiUrl + path, requestInit));\n\n if (hasResponse && response.status === 200) {\n const responseJson = await response.json();\n return responseJson;\n } else if (response.status !== 200) {\n const error = await this.handleError(response, false, authed);\n return Promise.reject(error);\n }\n }\n\n private async handleError(response: Response, tokenError: boolean, authed: boolean): Promise {\n if (authed && ((tokenError && response.status === 400) || response.status === 401 || response.status === 403)) {\n await this.logoutCallback(true);\n return null;\n }\n\n let responseJson: any = null;\n if (this.isJsonResponse(response)) {\n responseJson = await response.json();\n } else if (this.isTextResponse(response)) {\n responseJson = {Message: await response.text()};\n }\n\n return new ErrorResponse(responseJson, response.status, tokenError);\n }\n\n private async doRefreshToken(): Promise {\n const refreshToken = await this.tokenService.getRefreshToken();\n if (refreshToken == null || refreshToken === '') {\n throw new Error();\n }\n const headers = new Headers({\n 'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8',\n 'Accept': 'application/json',\n 'Device-Type': this.deviceType,\n });\n if (this.customUserAgent != null) {\n headers.set('User-Agent', this.customUserAgent);\n }\n\n const decodedToken = this.tokenService.decodeToken();\n const response = await this.fetch(new Request(this.identityBaseUrl + '/connect/token', {\n body: this.qsStringify({\n grant_type: 'refresh_token',\n client_id: decodedToken.client_id,\n refresh_token: refreshToken,\n }),\n cache: 'no-store',\n credentials: this.getCredentials(),\n headers: headers,\n method: 'POST',\n }));\n\n if (response.status === 200) {\n const responseJson = await response.json();\n const tokenResponse = new IdentityTokenResponse(responseJson);\n await this.tokenService.setTokens(tokenResponse.accessToken, tokenResponse.refreshToken);\n return tokenResponse;\n } else {\n const error = await this.handleError(response, true, true);\n return Promise.reject(error);\n }\n }\n\n private qsStringify(params: any): string {\n return Object.keys(params).map(key => {\n return encodeURIComponent(key) + '=' + encodeURIComponent(params[key]);\n }).join('&');\n }\n\n private getCredentials(): RequestCredentials {\n if (!this.isWebClient || this.usingBaseUrl) {\n return 'include';\n }\n return undefined;\n }\n\n private addEventParameters(base: string, start: string, end: string, token: string) {\n if (start != null) {\n base += ('?start=' + start);\n }\n if (end != null) {\n base += (base.indexOf('?') > -1 ? '&' : '?');\n base += ('end=' + end);\n }\n if (token != null) {\n base += (base.indexOf('?') > -1 ? '&' : '?');\n base += ('continuationToken=' + token);\n }\n return base;\n }\n\n private isJsonResponse(response: Response): boolean {\n const typeHeader = response.headers.get('content-type');\n return typeHeader != null && typeHeader.indexOf('application/json') > -1;\n }\n\n private isTextResponse(response: Response): boolean {\n const typeHeader = response.headers.get('content-type');\n return typeHeader != null && typeHeader.indexOf('text') > -1;\n }\n}\n","import { BaseResponse } from './baseResponse';\nimport { SelectionReadOnlyResponse } from './selectionReadOnlyResponse';\n\nexport class CollectionResponse extends BaseResponse {\n id: string;\n organizationId: string;\n name: string;\n externalId: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.organizationId = this.getResponseProperty('OrganizationId');\n this.name = this.getResponseProperty('Name');\n this.externalId = this.getResponseProperty('ExternalId');\n }\n}\n\nexport class CollectionDetailsResponse extends CollectionResponse {\n readOnly: boolean;\n\n constructor(response: any) {\n super(response);\n this.readOnly = this.getResponseProperty('ReadOnly') || false;\n }\n}\n\nexport class CollectionGroupDetailsResponse extends CollectionResponse {\n groups: SelectionReadOnlyResponse[] = [];\n\n constructor(response: any) {\n super(response);\n const groups = this.getResponseProperty('Groups');\n if (groups != null) {\n this.groups = groups.map((g: any) => new SelectionReadOnlyResponse(g));\n }\n }\n}\n","import { BaseResponse } from './baseResponse';\nimport { GlobalDomainResponse } from './globalDomainResponse';\n\nexport class DomainsResponse extends BaseResponse {\n equivalentDomains: string[][];\n globalEquivalentDomains: GlobalDomainResponse[] = [];\n\n constructor(response: any) {\n super(response);\n this.equivalentDomains = this.getResponseProperty('EquivalentDomains');\n const globalEquivalentDomains = this.getResponseProperty('GlobalEquivalentDomains');\n if (globalEquivalentDomains != null) {\n this.globalEquivalentDomains = globalEquivalentDomains.map((d: any) => new GlobalDomainResponse(d));\n } else {\n this.globalEquivalentDomains = [];\n }\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class FolderResponse extends BaseResponse {\n id: string;\n name: string;\n revisionDate: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.name = this.getResponseProperty('Name');\n this.revisionDate = this.getResponseProperty('RevisionDate');\n }\n}\n","import { BaseResponse } from './baseResponse';\nimport { PlanResponse } from './planResponse';\n\nimport { PlanType } from '../../enums/planType';\n\nexport class OrganizationResponse extends BaseResponse {\n id: string;\n identifier: string;\n name: string;\n businessName: string;\n businessAddress1: string;\n businessAddress2: string;\n businessAddress3: string;\n businessCountry: string;\n businessTaxNumber: string;\n billingEmail: string;\n plan: PlanResponse;\n planType: PlanType;\n seats: number;\n maxCollections: number;\n maxStorageGb: number;\n useGroups: boolean;\n useDirectory: boolean;\n useEvents: boolean;\n useTotp: boolean;\n use2fa: boolean;\n useApi: boolean;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.identifier = this.getResponseProperty('Identifier');\n this.name = this.getResponseProperty('Name');\n this.businessName = this.getResponseProperty('BusinessName');\n this.businessAddress1 = this.getResponseProperty('BusinessAddress1');\n this.businessAddress2 = this.getResponseProperty('BusinessAddress2');\n this.businessAddress3 = this.getResponseProperty('BusinessAddress3');\n this.businessCountry = this.getResponseProperty('BusinessCountry');\n this.businessTaxNumber = this.getResponseProperty('BusinessTaxNumber');\n this.billingEmail = this.getResponseProperty('BillingEmail');\n const plan = this.getResponseProperty('Plan');\n this.plan = plan == null ? null : new PlanResponse(plan);\n this.planType = this.getResponseProperty('PlanType');\n this.seats = this.getResponseProperty('Seats');\n this.maxCollections = this.getResponseProperty('MaxCollections');\n this.maxStorageGb = this.getResponseProperty('MaxStorageGb');\n this.useGroups = this.getResponseProperty('UseGroups');\n this.useDirectory = this.getResponseProperty('UseDirectory');\n this.useEvents = this.getResponseProperty('UseEvents');\n this.useTotp = this.getResponseProperty('UseTotp');\n this.use2fa = this.getResponseProperty('Use2fa');\n this.useApi = this.getResponseProperty('UseApi');\n }\n}\n","import { PlanType } from '../../enums/planType';\nimport { ProductType } from '../../enums/productType';\n\nimport { BaseResponse } from './baseResponse';\n\nexport class PlanResponse extends BaseResponse {\n type: PlanType;\n product: ProductType;\n name: string;\n isAnnual: boolean;\n nameLocalizationKey: string;\n descriptionLocalizationKey: string;\n canBeUsedByBusiness: boolean;\n baseSeats: number;\n baseStorageGb: number;\n maxCollections: number;\n maxUsers: number;\n\n hasAdditionalSeatsOption: boolean;\n maxAdditionalSeats: number;\n hasAdditionalStorageOption: boolean;\n maxAdditionalStorage: number;\n hasPremiumAccessOption: boolean;\n trialPeriodDays: number;\n\n hasSelfHost: boolean;\n hasPolicies: boolean;\n hasGroups: boolean;\n hasDirectory: boolean;\n hasEvents: boolean;\n hasTotp: boolean;\n has2fa: boolean;\n hasApi: boolean;\n hasSso: boolean;\n usersGetPremium: boolean;\n\n upgradeSortOrder: number;\n displaySortOrder: number;\n legacyYear: number;\n disabled: boolean;\n\n stripePlanId: string;\n stripeSeatPlanId: string;\n stripeStoragePlanId: string;\n stripePremiumAccessPlanId: string;\n basePrice: number;\n seatPrice: number;\n additionalStoragePricePerGb: number;\n premiumAccessOptionPrice: number;\n\n constructor(response: any) {\n super(response);\n this.type = this.getResponseProperty('Type');\n this.product = this.getResponseProperty('Product');\n this.name = this.getResponseProperty('Name');\n this.isAnnual = this.getResponseProperty('IsAnnual');\n this.nameLocalizationKey = this.getResponseProperty('NameLocalizationKey');\n this.descriptionLocalizationKey = this.getResponseProperty('DescriptionLocalizationKey');\n this.canBeUsedByBusiness = this.getResponseProperty('CanBeUsedByBusiness');\n this.baseSeats = this.getResponseProperty('BaseSeats');\n this.baseStorageGb = this.getResponseProperty('BaseStorageGb');\n this.maxCollections = this.getResponseProperty('MaxCollections');\n this.maxUsers = this.getResponseProperty('MaxUsers');\n this.hasAdditionalSeatsOption = this.getResponseProperty('HasAdditionalSeatsOption');\n this.maxAdditionalSeats = this.getResponseProperty('MaxAdditionalSeats');\n this.hasAdditionalStorageOption = this.getResponseProperty('HasAdditionalStorageOption');\n this.maxAdditionalStorage = this.getResponseProperty('MaxAdditionalStorage');\n this.hasPremiumAccessOption = this.getResponseProperty('HasPremiumAccessOption');\n this.trialPeriodDays = this.getResponseProperty('TrialPeriodDays');\n this.hasSelfHost = this.getResponseProperty('HasSelfHost');\n this.hasPolicies = this.getResponseProperty('HasPolicies');\n this.hasGroups = this.getResponseProperty('HasGroups');\n this.hasDirectory = this.getResponseProperty('HasDirectory');\n this.hasEvents = this.getResponseProperty('HasEvents');\n this.hasTotp = this.getResponseProperty('HasTotp');\n this.has2fa = this.getResponseProperty('Has2fa');\n this.hasApi = this.getResponseProperty('HasApi');\n this.hasSso = this.getResponseProperty('HasSso');\n this.usersGetPremium = this.getResponseProperty('UsersGetPremium');\n this.upgradeSortOrder = this.getResponseProperty('UpgradeSortOrder');\n this.displaySortOrder = this.getResponseProperty('SortOrder');\n this.legacyYear = this.getResponseProperty('LegacyYear');\n this.disabled = this.getResponseProperty('Disabled');\n this.stripePlanId = this.getResponseProperty('StripePlanId');\n this.stripeSeatPlanId = this.getResponseProperty('StripeSeatPlanId');\n this.stripeStoragePlanId = this.getResponseProperty('StripeStoragePlanId');\n this.stripePremiumAccessPlanId = this.getResponseProperty('StripePremiumAccessPlanId');\n this.basePrice = this.getResponseProperty('BasePrice');\n this.seatPrice = this.getResponseProperty('SeatPrice');\n this.additionalStoragePricePerGb = this.getResponseProperty('AdditionalStoragePricePerGb');\n this.premiumAccessOptionPrice = this.getResponseProperty('PremiumAccessOptionPrice');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class SubscriptionResponse extends BaseResponse {\n storageName: string;\n storageGb: number;\n maxStorageGb: number;\n subscription: BillingSubscriptionResponse;\n upcomingInvoice: BillingSubscriptionUpcomingInvoiceResponse;\n license: any;\n expiration: string;\n usingInAppPurchase: boolean;\n\n constructor(response: any) {\n super(response);\n this.storageName = this.getResponseProperty('StorageName');\n this.storageGb = this.getResponseProperty('StorageGb');\n this.maxStorageGb = this.getResponseProperty('MaxStorageGb');\n this.license = this.getResponseProperty('License');\n this.expiration = this.getResponseProperty('Expiration');\n this.usingInAppPurchase = this.getResponseProperty('UsingInAppPurchase');\n const subscription = this.getResponseProperty('Subscription');\n const upcomingInvoice = this.getResponseProperty('UpcomingInvoice');\n this.subscription = subscription == null ? null : new BillingSubscriptionResponse(subscription);\n this.upcomingInvoice = upcomingInvoice == null ? null :\n new BillingSubscriptionUpcomingInvoiceResponse(upcomingInvoice);\n }\n}\n\nexport class BillingSubscriptionResponse extends BaseResponse {\n trialStartDate: string;\n trialEndDate: string;\n periodStartDate: string;\n periodEndDate: string;\n cancelledDate: string;\n cancelAtEndDate: boolean;\n status: string;\n cancelled: boolean;\n items: BillingSubscriptionItemResponse[] = [];\n\n constructor(response: any) {\n super(response);\n this.trialEndDate = this.getResponseProperty('TrialStartDate');\n this.trialEndDate = this.getResponseProperty('TrialEndDate');\n this.periodStartDate = this.getResponseProperty('PeriodStartDate');\n this.periodEndDate = this.getResponseProperty('PeriodEndDate');\n this.cancelledDate = this.getResponseProperty('CancelledDate');\n this.cancelAtEndDate = this.getResponseProperty('CancelAtEndDate');\n this.status = this.getResponseProperty('Status');\n this.cancelled = this.getResponseProperty('Cancelled');\n const items = this.getResponseProperty('Items');\n if (items != null) {\n this.items = items.map((i: any) => new BillingSubscriptionItemResponse(i));\n }\n }\n}\n\nexport class BillingSubscriptionItemResponse extends BaseResponse {\n name: string;\n amount: number;\n quantity: number;\n interval: string;\n\n constructor(response: any) {\n super(response);\n this.name = this.getResponseProperty('Name');\n this.amount = this.getResponseProperty('Amount');\n this.quantity = this.getResponseProperty('Quantity');\n this.interval = this.getResponseProperty('Interval');\n }\n}\n\nexport class BillingSubscriptionUpcomingInvoiceResponse extends BaseResponse {\n date: string;\n amount: number;\n\n constructor(response: any) {\n super(response);\n this.date = this.getResponseProperty('Date');\n this.amount = this.getResponseProperty('Amount');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { PolicyType } from '../../enums/policyType';\n\nexport class PolicyResponse extends BaseResponse {\n id: string;\n organizationId: string;\n type: PolicyType;\n data: any;\n enabled: boolean;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.organizationId = this.getResponseProperty('OrganizationId');\n this.type = this.getResponseProperty('Type');\n this.data = this.getResponseProperty('Data');\n this.enabled = this.getResponseProperty('Enabled');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { SendType } from '../../enums/sendType';\n\nimport { SendFileApi } from '../api/sendFileApi';\nimport { SendTextApi } from '../api/sendTextApi';\n\nexport class SendResponse extends BaseResponse {\n id: string;\n accessId: string;\n type: SendType;\n name: string;\n notes: string;\n file: SendFileApi;\n text: SendTextApi;\n key: string;\n maxAccessCount?: number;\n accessCount: number;\n revisionDate: string;\n expirationDate: string;\n deletionDate: string;\n password: string;\n disable: boolean;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.accessId = this.getResponseProperty('AccessId');\n this.type = this.getResponseProperty('Type');\n this.name = this.getResponseProperty('Name');\n this.notes = this.getResponseProperty('Notes');\n this.key = this.getResponseProperty('Key');\n this.maxAccessCount = this.getResponseProperty('MaxAccessCount');\n this.accessCount = this.getResponseProperty('AccessCount');\n this.revisionDate = this.getResponseProperty('RevisionDate');\n this.expirationDate = this.getResponseProperty('ExpirationDate');\n this.deletionDate = this.getResponseProperty('DeletionDate');\n this.password = this.getResponseProperty('Password');\n this.disable = this.getResponseProperty('Disabled') || false;\n\n const text = this.getResponseProperty('Text');\n if (text != null) {\n this.text = new SendTextApi(text);\n }\n\n const file = this.getResponseProperty('File');\n if (file != null) {\n this.file = new SendFileApi(file);\n }\n }\n}\n","import { Utils } from '../misc/utils';\n\nimport { AppIdService as AppIdServiceAbstraction } from '../abstractions/appId.service';\nimport { StorageService } from '../abstractions/storage.service';\n\nexport class AppIdService implements AppIdServiceAbstraction {\n constructor(private storageService: StorageService) {\n }\n\n getAppId(): Promise {\n return this.makeAndGetAppId('appId');\n }\n\n getAnonymousAppId(): Promise {\n return this.makeAndGetAppId('anonymousAppId');\n }\n\n private async makeAndGetAppId(key: string) {\n const existingId = await this.storageService.get(key);\n if (existingId != null) {\n return existingId;\n }\n\n const guid = Utils.newGuid();\n await this.storageService.save(key, guid);\n return guid;\n }\n}\n","import { ApiService } from '../abstractions/api.service';\nimport { AuditService as AuditServiceAbstraction } from '../abstractions/audit.service';\nimport { CryptoFunctionService } from '../abstractions/cryptoFunction.service';\n\nimport { throttle } from '../misc/throttle';\nimport { Utils } from '../misc/utils';\n\nimport { BreachAccountResponse } from '../models/response/breachAccountResponse';\nimport { ErrorResponse } from '../models/response/errorResponse';\n\nconst PwnedPasswordsApi = 'https://api.pwnedpasswords.com/range/';\n\nexport class AuditService implements AuditServiceAbstraction {\n constructor(private cryptoFunctionService: CryptoFunctionService, private apiService: ApiService) { }\n\n @throttle(100, () => 'passwordLeaked')\n async passwordLeaked(password: string): Promise {\n const hashBytes = await this.cryptoFunctionService.hash(password, 'sha1');\n const hash = Utils.fromBufferToHex(hashBytes).toUpperCase();\n const hashStart = hash.substr(0, 5);\n const hashEnding = hash.substr(5);\n\n const response = await this.apiService.nativeFetch(new Request(PwnedPasswordsApi + hashStart));\n const leakedHashes = await response.text();\n const match = leakedHashes.split(/\\r?\\n/).find(v => {\n return v.split(':')[0] === hashEnding;\n });\n\n return match != null ? parseInt(match.split(':')[1], 10) : 0;\n }\n\n async breachedAccounts(username: string): Promise {\n try {\n return await this.apiService.getHibpBreach(username);\n } catch (e) {\n const error = e as ErrorResponse;\n if (error.statusCode === 404) {\n return [];\n }\n throw new Error();\n }\n }\n}\n","import { CipherType } from '../enums/cipherType';\nimport { FieldType } from '../enums/fieldType';\nimport { UriMatchType } from '../enums/uriMatchType';\n\nimport { CipherData } from '../models/data/cipherData';\n\nimport { Attachment } from '../models/domain/attachment';\nimport { Card } from '../models/domain/card';\nimport { Cipher } from '../models/domain/cipher';\nimport { CipherString } from '../models/domain/cipherString';\nimport Domain from '../models/domain/domainBase';\nimport { Field } from '../models/domain/field';\nimport { Identity } from '../models/domain/identity';\nimport { Login } from '../models/domain/login';\nimport { LoginUri } from '../models/domain/loginUri';\nimport { Password } from '../models/domain/password';\nimport { SecureNote } from '../models/domain/secureNote';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nimport { CipherBulkDeleteRequest } from '../models/request/cipherBulkDeleteRequest';\nimport { CipherBulkMoveRequest } from '../models/request/cipherBulkMoveRequest';\nimport { CipherBulkRestoreRequest } from '../models/request/cipherBulkRestoreRequest';\nimport { CipherBulkShareRequest } from '../models/request/cipherBulkShareRequest';\nimport { CipherCollectionsRequest } from '../models/request/cipherCollectionsRequest';\nimport { CipherCreateRequest } from '../models/request/cipherCreateRequest';\nimport { CipherRequest } from '../models/request/cipherRequest';\nimport { CipherShareRequest } from '../models/request/cipherShareRequest';\n\nimport { CipherResponse } from '../models/response/cipherResponse';\nimport { ErrorResponse } from '../models/response/errorResponse';\n\nimport { AttachmentView } from '../models/view/attachmentView';\nimport { CipherView } from '../models/view/cipherView';\nimport { FieldView } from '../models/view/fieldView';\nimport { PasswordHistoryView } from '../models/view/passwordHistoryView';\nimport { View } from '../models/view/view';\n\nimport { SortedCiphersCache } from '../models/domain/sortedCiphersCache';\n\nimport { ApiService } from '../abstractions/api.service';\nimport { CipherService as CipherServiceAbstraction } from '../abstractions/cipher.service';\nimport { CryptoService } from '../abstractions/crypto.service';\nimport { I18nService } from '../abstractions/i18n.service';\nimport { SearchService } from '../abstractions/search.service';\nimport { SettingsService } from '../abstractions/settings.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { UserService } from '../abstractions/user.service';\n\nimport { ConstantsService } from './constants.service';\n\nimport { sequentialize } from '../misc/sequentialize';\nimport { Utils } from '../misc/utils';\n\nconst Keys = {\n ciphersPrefix: 'ciphers_',\n localData: 'sitesLocalData',\n neverDomains: 'neverDomains',\n};\n\nconst DomainMatchBlacklist = new Map>([\n ['google.com', new Set(['script.google.com'])],\n]);\n\nexport class CipherService implements CipherServiceAbstraction {\n // tslint:disable-next-line\n _decryptedCipherCache: CipherView[];\n\n private sortedCiphersCache: SortedCiphersCache = new SortedCiphersCache(this.sortCiphersByLastUsed);\n\n constructor(private cryptoService: CryptoService, private userService: UserService,\n private settingsService: SettingsService, private apiService: ApiService,\n private storageService: StorageService, private i18nService: I18nService,\n private searchService: () => SearchService) {\n }\n\n get decryptedCipherCache() {\n return this._decryptedCipherCache;\n }\n set decryptedCipherCache(value: CipherView[]) {\n this._decryptedCipherCache = value;\n if (this.searchService != null) {\n if (value == null) {\n this.searchService().clearIndex();\n } else {\n this.searchService().indexCiphers();\n }\n }\n }\n\n clearCache(): void {\n this.decryptedCipherCache = null;\n this.sortedCiphersCache.clear();\n }\n\n async encrypt(model: CipherView, key?: SymmetricCryptoKey, originalCipher: Cipher = null): Promise {\n // Adjust password history\n if (model.id != null) {\n if (originalCipher == null) {\n originalCipher = await this.get(model.id);\n }\n if (originalCipher != null) {\n const existingCipher = await originalCipher.decrypt();\n model.passwordHistory = existingCipher.passwordHistory || [];\n if (model.type === CipherType.Login && existingCipher.type === CipherType.Login) {\n if (existingCipher.login.password != null && existingCipher.login.password !== '' &&\n existingCipher.login.password !== model.login.password) {\n const ph = new PasswordHistoryView();\n ph.password = existingCipher.login.password;\n ph.lastUsedDate = model.login.passwordRevisionDate = new Date();\n model.passwordHistory.splice(0, 0, ph);\n } else {\n model.login.passwordRevisionDate = existingCipher.login.passwordRevisionDate;\n }\n }\n if (existingCipher.hasFields) {\n const existingHiddenFields = existingCipher.fields.filter(f => f.type === FieldType.Hidden &&\n f.name != null && f.name !== '' && f.value != null && f.value !== '');\n const hiddenFields = model.fields == null ? [] :\n model.fields.filter(f => f.type === FieldType.Hidden && f.name != null && f.name !== '');\n existingHiddenFields.forEach(ef => {\n const matchedField = hiddenFields.find(f => f.name === ef.name);\n if (matchedField == null || matchedField.value !== ef.value) {\n const ph = new PasswordHistoryView();\n ph.password = ef.name + ': ' + ef.value;\n ph.lastUsedDate = new Date();\n model.passwordHistory.splice(0, 0, ph);\n }\n });\n }\n }\n if (model.passwordHistory != null && model.passwordHistory.length === 0) {\n model.passwordHistory = null;\n } else if (model.passwordHistory != null && model.passwordHistory.length > 5) {\n // only save last 5 history\n model.passwordHistory = model.passwordHistory.slice(0, 5);\n }\n }\n\n const cipher = new Cipher();\n cipher.id = model.id;\n cipher.folderId = model.folderId;\n cipher.favorite = model.favorite;\n cipher.organizationId = model.organizationId;\n cipher.type = model.type;\n cipher.collectionIds = model.collectionIds;\n cipher.revisionDate = model.revisionDate;\n\n if (key == null && cipher.organizationId != null) {\n key = await this.cryptoService.getOrgKey(cipher.organizationId);\n if (key == null) {\n throw new Error('Cannot encrypt cipher for organization. No key.');\n }\n }\n await Promise.all([\n this.encryptObjProperty(model, cipher, {\n name: null,\n notes: null,\n }, key),\n this.encryptCipherData(cipher, model, key),\n this.encryptFields(model.fields, key).then(fields => {\n cipher.fields = fields;\n }),\n this.encryptPasswordHistories(model.passwordHistory, key).then(ph => {\n cipher.passwordHistory = ph;\n }),\n this.encryptAttachments(model.attachments, key).then(attachments => {\n cipher.attachments = attachments;\n }),\n ]);\n\n return cipher;\n }\n\n async encryptAttachments(attachmentsModel: AttachmentView[], key: SymmetricCryptoKey): Promise {\n if (attachmentsModel == null || attachmentsModel.length === 0) {\n return null;\n }\n\n const promises: Promise[] = [];\n const encAttachments: Attachment[] = [];\n attachmentsModel.forEach(async model => {\n const attachment = new Attachment();\n attachment.id = model.id;\n attachment.size = model.size;\n attachment.sizeName = model.sizeName;\n attachment.url = model.url;\n const promise = this.encryptObjProperty(model, attachment, {\n fileName: null,\n }, key).then(async () => {\n if (model.key != null) {\n attachment.key = await this.cryptoService.encrypt(model.key.key, key);\n }\n encAttachments.push(attachment);\n });\n promises.push(promise);\n });\n\n await Promise.all(promises);\n return encAttachments;\n }\n\n async encryptFields(fieldsModel: FieldView[], key: SymmetricCryptoKey): Promise {\n if (!fieldsModel || !fieldsModel.length) {\n return null;\n }\n\n const self = this;\n const encFields: Field[] = [];\n await fieldsModel.reduce((promise, field) => {\n return promise.then(() => {\n return self.encryptField(field, key);\n }).then((encField: Field) => {\n encFields.push(encField);\n });\n }, Promise.resolve());\n\n return encFields;\n }\n\n async encryptField(fieldModel: FieldView, key: SymmetricCryptoKey): Promise {\n const field = new Field();\n field.type = fieldModel.type;\n // normalize boolean type field values\n if (fieldModel.type === FieldType.Boolean && fieldModel.value !== 'true') {\n fieldModel.value = 'false';\n }\n\n await this.encryptObjProperty(fieldModel, field, {\n name: null,\n value: null,\n }, key);\n\n return field;\n }\n\n async encryptPasswordHistories(phModels: PasswordHistoryView[], key: SymmetricCryptoKey): Promise {\n if (!phModels || !phModels.length) {\n return null;\n }\n\n const self = this;\n const encPhs: Password[] = [];\n await phModels.reduce((promise, ph) => {\n return promise.then(() => {\n return self.encryptPasswordHistory(ph, key);\n }).then((encPh: Password) => {\n encPhs.push(encPh);\n });\n }, Promise.resolve());\n\n return encPhs;\n }\n\n async encryptPasswordHistory(phModel: PasswordHistoryView, key: SymmetricCryptoKey): Promise {\n const ph = new Password();\n ph.lastUsedDate = phModel.lastUsedDate;\n\n await this.encryptObjProperty(phModel, ph, {\n password: null,\n }, key);\n\n return ph;\n }\n\n async get(id: string): Promise {\n const userId = await this.userService.getUserId();\n const localData = await this.storageService.get(Keys.localData);\n const ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(\n Keys.ciphersPrefix + userId);\n if (ciphers == null || !ciphers.hasOwnProperty(id)) {\n return null;\n }\n\n return new Cipher(ciphers[id], false, localData ? localData[id] : null);\n }\n\n async getAll(): Promise {\n const userId = await this.userService.getUserId();\n const localData = await this.storageService.get(Keys.localData);\n const ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(\n Keys.ciphersPrefix + userId);\n const response: Cipher[] = [];\n for (const id in ciphers) {\n if (ciphers.hasOwnProperty(id)) {\n response.push(new Cipher(ciphers[id], false, localData ? localData[id] : null));\n }\n }\n return response;\n }\n\n @sequentialize(() => 'getAllDecrypted')\n async getAllDecrypted(): Promise {\n if (this.decryptedCipherCache != null) {\n return this.decryptedCipherCache;\n }\n\n const decCiphers: CipherView[] = [];\n const hasKey = await this.cryptoService.hasKey();\n if (!hasKey) {\n throw new Error('No key.');\n }\n\n const promises: any[] = [];\n const ciphers = await this.getAll();\n ciphers.forEach(cipher => {\n promises.push(cipher.decrypt().then(c => decCiphers.push(c)));\n });\n\n await Promise.all(promises);\n decCiphers.sort(this.getLocaleSortingFunction());\n this.decryptedCipherCache = decCiphers;\n return this.decryptedCipherCache;\n }\n\n async getAllDecryptedForGrouping(groupingId: string, folder: boolean = true): Promise {\n const ciphers = await this.getAllDecrypted();\n\n return ciphers.filter(cipher => {\n if (cipher.isDeleted) {\n return false;\n }\n if (folder && cipher.folderId === groupingId) {\n return true;\n } else if (!folder && cipher.collectionIds != null && cipher.collectionIds.indexOf(groupingId) > -1) {\n return true;\n }\n\n return false;\n });\n }\n\n async getAllDecryptedForUrl(url: string, includeOtherTypes?: CipherType[],\n defaultMatch: UriMatchType = null): Promise {\n if (url == null && includeOtherTypes == null) {\n return Promise.resolve([]);\n }\n\n const domain = Utils.getDomain(url);\n const eqDomainsPromise = domain == null ? Promise.resolve([]) :\n this.settingsService.getEquivalentDomains().then((eqDomains: any[][]) => {\n let matches: any[] = [];\n eqDomains.forEach(eqDomain => {\n if (eqDomain.length && eqDomain.indexOf(domain) >= 0) {\n matches = matches.concat(eqDomain);\n }\n });\n\n if (!matches.length) {\n matches.push(domain);\n }\n\n return matches;\n });\n\n const result = await Promise.all([eqDomainsPromise, this.getAllDecrypted()]);\n const matchingDomains = result[0];\n const ciphers = result[1];\n\n if (defaultMatch == null) {\n defaultMatch = await this.storageService.get(ConstantsService.defaultUriMatch);\n if (defaultMatch == null) {\n defaultMatch = UriMatchType.Domain;\n }\n }\n\n return ciphers.filter(cipher => {\n if (cipher.deletedDate != null) {\n return false;\n }\n if (includeOtherTypes != null && includeOtherTypes.indexOf(cipher.type) > -1) {\n return true;\n }\n\n if (url != null && cipher.type === CipherType.Login && cipher.login.uris != null) {\n for (let i = 0; i < cipher.login.uris.length; i++) {\n const u = cipher.login.uris[i];\n if (u.uri == null) {\n continue;\n }\n\n const match = u.match == null ? defaultMatch : u.match;\n switch (match) {\n case UriMatchType.Domain:\n if (domain != null && u.domain != null && matchingDomains.indexOf(u.domain) > -1) {\n if (DomainMatchBlacklist.has(u.domain)) {\n const domainUrlHost = Utils.getHost(url);\n if (!DomainMatchBlacklist.get(u.domain).has(domainUrlHost)) {\n return true;\n }\n } else {\n return true;\n }\n }\n break;\n case UriMatchType.Host:\n const urlHost = Utils.getHost(url);\n if (urlHost != null && urlHost === Utils.getHost(u.uri)) {\n return true;\n }\n break;\n case UriMatchType.Exact:\n if (url === u.uri) {\n return true;\n }\n break;\n case UriMatchType.StartsWith:\n if (url.startsWith(u.uri)) {\n return true;\n }\n break;\n case UriMatchType.RegularExpression:\n try {\n const regex = new RegExp(u.uri, 'i');\n if (regex.test(url)) {\n return true;\n }\n } catch { }\n break;\n case UriMatchType.Never:\n default:\n break;\n }\n }\n }\n\n return false;\n });\n }\n\n async getAllFromApiForOrganization(organizationId: string): Promise {\n const ciphers = await this.apiService.getCiphersOrganization(organizationId);\n if (ciphers != null && ciphers.data != null && ciphers.data.length) {\n const decCiphers: CipherView[] = [];\n const promises: any[] = [];\n ciphers.data.forEach(r => {\n const data = new CipherData(r);\n const cipher = new Cipher(data);\n promises.push(cipher.decrypt().then(c => decCiphers.push(c)));\n });\n await Promise.all(promises);\n decCiphers.sort(this.getLocaleSortingFunction());\n return decCiphers;\n } else {\n return [];\n }\n }\n\n async getLastUsedForUrl(url: string): Promise {\n return this.getCipherForUrl(url, true, false);\n }\n\n async getLastLaunchedForUrl(url: string): Promise {\n return this.getCipherForUrl(url, false, true);\n }\n\n async getNextCipherForUrl(url: string): Promise {\n return this.getCipherForUrl(url, false, false);\n }\n\n updateLastUsedIndexForUrl(url: string) {\n this.sortedCiphersCache.updateLastUsedIndex(url);\n }\n\n async updateLastUsedDate(id: string): Promise {\n let ciphersLocalData = await this.storageService.get(Keys.localData);\n if (!ciphersLocalData) {\n ciphersLocalData = {};\n }\n\n if (ciphersLocalData[id]) {\n ciphersLocalData[id].lastUsedDate = new Date().getTime();\n } else {\n ciphersLocalData[id] = {\n lastUsedDate: new Date().getTime(),\n };\n }\n\n await this.storageService.save(Keys.localData, ciphersLocalData);\n\n if (this.decryptedCipherCache == null) {\n return;\n }\n\n for (let i = 0; i < this.decryptedCipherCache.length; i++) {\n const cached = this.decryptedCipherCache[i];\n if (cached.id === id) {\n cached.localData = ciphersLocalData[id];\n break;\n }\n }\n }\n\n async updateLastLaunchedDate(id: string): Promise {\n let ciphersLocalData = await this.storageService.get(Keys.localData);\n if (!ciphersLocalData) {\n ciphersLocalData = {};\n }\n\n if (ciphersLocalData[id]) {\n ciphersLocalData[id].lastLaunched = new Date().getTime();\n } else {\n ciphersLocalData[id] = {\n lastUsedDate: new Date().getTime(),\n };\n }\n\n await this.storageService.save(Keys.localData, ciphersLocalData);\n\n if (this.decryptedCipherCache == null) {\n return;\n }\n\n for (let i = 0; i < this.decryptedCipherCache.length; i++) {\n const cached = this.decryptedCipherCache[i];\n if (cached.id === id) {\n cached.localData = ciphersLocalData[id];\n break;\n }\n }\n }\n\n async saveNeverDomain(domain: string): Promise {\n if (domain == null) {\n return;\n }\n\n let domains = await this.storageService.get<{ [id: string]: any; }>(Keys.neverDomains);\n if (!domains) {\n domains = {};\n }\n domains[domain] = null;\n await this.storageService.save(Keys.neverDomains, domains);\n }\n\n async saveWithServer(cipher: Cipher): Promise {\n let response: CipherResponse;\n if (cipher.id == null) {\n if (cipher.collectionIds != null) {\n const request = new CipherCreateRequest(cipher);\n response = await this.apiService.postCipherCreate(request);\n } else {\n const request = new CipherRequest(cipher);\n response = await this.apiService.postCipher(request);\n }\n cipher.id = response.id;\n } else {\n const request = new CipherRequest(cipher);\n response = await this.apiService.putCipher(cipher.id, request);\n }\n\n const userId = await this.userService.getUserId();\n const data = new CipherData(response, userId, cipher.collectionIds);\n await this.upsert(data);\n }\n\n async shareWithServer(cipher: CipherView, organizationId: string, collectionIds: string[]): Promise {\n const attachmentPromises: Promise[] = [];\n if (cipher.attachments != null) {\n cipher.attachments.forEach(attachment => {\n if (attachment.key == null) {\n attachmentPromises.push(this.shareAttachmentWithServer(attachment, cipher.id, organizationId));\n }\n });\n }\n await Promise.all(attachmentPromises);\n\n cipher.organizationId = organizationId;\n cipher.collectionIds = collectionIds;\n const encCipher = await this.encrypt(cipher);\n const request = new CipherShareRequest(encCipher);\n const response = await this.apiService.putShareCipher(cipher.id, request);\n const userId = await this.userService.getUserId();\n const data = new CipherData(response, userId, collectionIds);\n await this.upsert(data);\n }\n\n async shareManyWithServer(ciphers: CipherView[], organizationId: string, collectionIds: string[]): Promise {\n const promises: Promise[] = [];\n const encCiphers: Cipher[] = [];\n for (const cipher of ciphers) {\n cipher.organizationId = organizationId;\n cipher.collectionIds = collectionIds;\n promises.push(this.encrypt(cipher).then(c => {\n encCiphers.push(c);\n }));\n }\n await Promise.all(promises);\n const request = new CipherBulkShareRequest(encCiphers, collectionIds);\n await this.apiService.putShareCiphers(request);\n const userId = await this.userService.getUserId();\n await this.upsert(encCiphers.map(c => c.toCipherData(userId)));\n }\n\n saveAttachmentWithServer(cipher: Cipher, unencryptedFile: any, admin = false): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsArrayBuffer(unencryptedFile);\n reader.onload = async (evt: any) => {\n try {\n const cData = await this.saveAttachmentRawWithServer(cipher,\n unencryptedFile.name, evt.target.result, admin);\n resolve(cData);\n } catch (e) {\n reject(e);\n }\n };\n reader.onerror = evt => {\n reject('Error reading file.');\n };\n });\n }\n\n async saveAttachmentRawWithServer(cipher: Cipher, filename: string,\n data: ArrayBuffer, admin = false): Promise {\n const key = await this.cryptoService.getOrgKey(cipher.organizationId);\n const encFileName = await this.cryptoService.encrypt(filename, key);\n\n const dataEncKey = await this.cryptoService.makeEncKey(key);\n const encData = await this.cryptoService.encryptToBytes(data, dataEncKey[0]);\n\n const fd = new FormData();\n try {\n const blob = new Blob([encData], { type: 'application/octet-stream' });\n fd.append('key', dataEncKey[1].encryptedString);\n fd.append('data', blob, encFileName.encryptedString);\n } catch (e) {\n if (Utils.isNode && !Utils.isBrowser) {\n fd.append('key', dataEncKey[1].encryptedString);\n fd.append('data', Buffer.from(encData) as any, {\n filepath: encFileName.encryptedString,\n contentType: 'application/octet-stream',\n } as any);\n } else {\n throw e;\n }\n }\n\n let response: CipherResponse;\n try {\n if (admin) {\n response = await this.apiService.postCipherAttachmentAdmin(cipher.id, fd);\n } else {\n response = await this.apiService.postCipherAttachment(cipher.id, fd);\n }\n } catch (e) {\n throw new Error((e as ErrorResponse).getSingleMessage());\n }\n\n const userId = await this.userService.getUserId();\n const cData = new CipherData(response, userId, cipher.collectionIds);\n if (!admin) {\n await this.upsert(cData);\n }\n return new Cipher(cData);\n }\n\n async saveCollectionsWithServer(cipher: Cipher): Promise {\n const request = new CipherCollectionsRequest(cipher.collectionIds);\n await this.apiService.putCipherCollections(cipher.id, request);\n const userId = await this.userService.getUserId();\n const data = cipher.toCipherData(userId);\n await this.upsert(data);\n }\n\n async upsert(cipher: CipherData | CipherData[]): Promise {\n const userId = await this.userService.getUserId();\n let ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(\n Keys.ciphersPrefix + userId);\n if (ciphers == null) {\n ciphers = {};\n }\n\n if (cipher instanceof CipherData) {\n const c = cipher as CipherData;\n ciphers[c.id] = c;\n } else {\n (cipher as CipherData[]).forEach(c => {\n ciphers[c.id] = c;\n });\n }\n\n await this.storageService.save(Keys.ciphersPrefix + userId, ciphers);\n this.decryptedCipherCache = null;\n }\n\n async replace(ciphers: { [id: string]: CipherData; }): Promise {\n const userId = await this.userService.getUserId();\n await this.storageService.save(Keys.ciphersPrefix + userId, ciphers);\n this.decryptedCipherCache = null;\n }\n\n async clear(userId: string): Promise {\n await this.storageService.remove(Keys.ciphersPrefix + userId);\n this.clearCache();\n }\n\n async moveManyWithServer(ids: string[], folderId: string): Promise {\n await this.apiService.putMoveCiphers(new CipherBulkMoveRequest(ids, folderId));\n\n const userId = await this.userService.getUserId();\n let ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(\n Keys.ciphersPrefix + userId);\n if (ciphers == null) {\n ciphers = {};\n }\n\n ids.forEach(id => {\n if (ciphers.hasOwnProperty(id)) {\n ciphers[id].folderId = folderId;\n }\n });\n\n await this.storageService.save(Keys.ciphersPrefix + userId, ciphers);\n this.decryptedCipherCache = null;\n }\n\n async delete(id: string | string[]): Promise {\n const userId = await this.userService.getUserId();\n const ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(\n Keys.ciphersPrefix + userId);\n if (ciphers == null) {\n return;\n }\n\n if (typeof id === 'string') {\n if (ciphers[id] == null) {\n return;\n }\n delete ciphers[id];\n } else {\n (id as string[]).forEach(i => {\n delete ciphers[i];\n });\n }\n\n await this.storageService.save(Keys.ciphersPrefix + userId, ciphers);\n this.decryptedCipherCache = null;\n }\n\n async deleteWithServer(id: string): Promise {\n await this.apiService.deleteCipher(id);\n await this.delete(id);\n }\n\n async deleteManyWithServer(ids: string[]): Promise {\n await this.apiService.deleteManyCiphers(new CipherBulkDeleteRequest(ids));\n await this.delete(ids);\n }\n\n async deleteAttachment(id: string, attachmentId: string): Promise {\n const userId = await this.userService.getUserId();\n const ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(\n Keys.ciphersPrefix + userId);\n\n if (ciphers == null || !ciphers.hasOwnProperty(id) || ciphers[id].attachments == null) {\n return;\n }\n\n for (let i = 0; i < ciphers[id].attachments.length; i++) {\n if (ciphers[id].attachments[i].id === attachmentId) {\n ciphers[id].attachments.splice(i, 1);\n }\n }\n\n await this.storageService.save(Keys.ciphersPrefix + userId, ciphers);\n this.decryptedCipherCache = null;\n }\n\n async deleteAttachmentWithServer(id: string, attachmentId: string): Promise {\n try {\n await this.apiService.deleteCipherAttachment(id, attachmentId);\n } catch (e) {\n return Promise.reject((e as ErrorResponse).getSingleMessage());\n }\n await this.deleteAttachment(id, attachmentId);\n }\n\n sortCiphersByLastUsed(a: CipherView, b: CipherView): number {\n const aLastUsed = a.localData && a.localData.lastUsedDate ? a.localData.lastUsedDate as number : null;\n const bLastUsed = b.localData && b.localData.lastUsedDate ? b.localData.lastUsedDate as number : null;\n\n const bothNotNull = aLastUsed != null && bLastUsed != null;\n if (bothNotNull && aLastUsed < bLastUsed) {\n return 1;\n }\n if (aLastUsed != null && bLastUsed == null) {\n return -1;\n }\n\n if (bothNotNull && aLastUsed > bLastUsed) {\n return -1;\n }\n if (bLastUsed != null && aLastUsed == null) {\n return 1;\n }\n\n return 0;\n }\n\n sortCiphersByLastUsedThenName(a: CipherView, b: CipherView): number {\n const result = this.sortCiphersByLastUsed(a, b);\n if (result !== 0) {\n return result;\n }\n\n return this.getLocaleSortingFunction()(a, b);\n }\n\n getLocaleSortingFunction(): (a: CipherView, b: CipherView) => number {\n return (a, b) => {\n let aName = a.name;\n let bName = b.name;\n\n if (aName == null && bName != null) {\n return -1;\n }\n if (aName != null && bName == null) {\n return 1;\n }\n if (aName == null && bName == null) {\n return 0;\n }\n\n const result = this.i18nService.collator ? this.i18nService.collator.compare(aName, bName) :\n aName.localeCompare(bName);\n\n if (result !== 0 || a.type !== CipherType.Login || b.type !== CipherType.Login) {\n return result;\n }\n\n if (a.login.username != null) {\n aName += a.login.username;\n }\n\n if (b.login.username != null) {\n bName += b.login.username;\n }\n\n return this.i18nService.collator ? this.i18nService.collator.compare(aName, bName) :\n aName.localeCompare(bName);\n };\n }\n\n async softDelete(id: string | string[]): Promise {\n const userId = await this.userService.getUserId();\n const ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(\n Keys.ciphersPrefix + userId);\n if (ciphers == null) {\n return;\n }\n\n const setDeletedDate = (cipherId: string) => {\n if (ciphers[cipherId] == null) {\n return;\n }\n ciphers[cipherId].deletedDate = new Date().toISOString();\n };\n\n if (typeof id === 'string') {\n setDeletedDate(id);\n } else {\n (id as string[]).forEach(setDeletedDate);\n }\n\n await this.storageService.save(Keys.ciphersPrefix + userId, ciphers);\n this.decryptedCipherCache = null;\n }\n\n async softDeleteWithServer(id: string): Promise {\n await this.apiService.putDeleteCipher(id);\n await this.softDelete(id);\n }\n\n async softDeleteManyWithServer(ids: string[]): Promise {\n await this.apiService.putDeleteManyCiphers(new CipherBulkDeleteRequest(ids));\n await this.softDelete(ids);\n }\n\n async restore(cipher: { id: string, revisionDate: string; } | { id: string, revisionDate: string; }[]) {\n const userId = await this.userService.getUserId();\n const ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(\n Keys.ciphersPrefix + userId);\n if (ciphers == null) {\n return;\n }\n\n const clearDeletedDate = (c: { id: string, revisionDate: string; }) => {\n if (ciphers[c.id] == null) {\n return;\n }\n ciphers[c.id].deletedDate = null;\n ciphers[c.id].revisionDate = c.revisionDate;\n };\n\n\n if (cipher.constructor.name === 'Array') {\n (cipher as { id: string, revisionDate: string; }[]).forEach(clearDeletedDate);\n } else {\n clearDeletedDate(cipher as { id: string, revisionDate: string; });\n }\n\n await this.storageService.save(Keys.ciphersPrefix + userId, ciphers);\n this.decryptedCipherCache = null;\n }\n\n async restoreWithServer(id: string): Promise {\n const response = await this.apiService.putRestoreCipher(id);\n await this.restore({ id: id, revisionDate: response.revisionDate });\n }\n\n async restoreManyWithServer(ids: string[]): Promise {\n const response = await this.apiService.putRestoreManyCiphers(new CipherBulkRestoreRequest(ids));\n const restores: { id: string, revisionDate: string; }[] = [];\n for (const cipher of response.data) {\n restores.push({ id: cipher.id, revisionDate: cipher.revisionDate });\n }\n await this.restore(restores);\n }\n\n // Helpers\n\n private async shareAttachmentWithServer(attachmentView: AttachmentView, cipherId: string,\n organizationId: string): Promise {\n const attachmentResponse = await this.apiService.nativeFetch(\n new Request(attachmentView.url, { cache: 'no-store' }));\n if (attachmentResponse.status !== 200) {\n throw Error('Failed to download attachment: ' + attachmentResponse.status.toString());\n }\n\n const buf = await attachmentResponse.arrayBuffer();\n const decBuf = await this.cryptoService.decryptFromBytes(buf, null);\n const key = await this.cryptoService.getOrgKey(organizationId);\n const encFileName = await this.cryptoService.encrypt(attachmentView.fileName, key);\n\n const dataEncKey = await this.cryptoService.makeEncKey(key);\n const encData = await this.cryptoService.encryptToBytes(decBuf, dataEncKey[0]);\n\n const fd = new FormData();\n try {\n const blob = new Blob([encData], { type: 'application/octet-stream' });\n fd.append('key', dataEncKey[1].encryptedString);\n fd.append('data', blob, encFileName.encryptedString);\n } catch (e) {\n if (Utils.isNode && !Utils.isBrowser) {\n fd.append('key', dataEncKey[1].encryptedString);\n fd.append('data', Buffer.from(encData) as any, {\n filepath: encFileName.encryptedString,\n contentType: 'application/octet-stream',\n } as any);\n } else {\n throw e;\n }\n }\n\n try {\n await this.apiService.postShareCipherAttachment(cipherId, attachmentView.id, fd, organizationId);\n } catch (e) {\n throw new Error((e as ErrorResponse).getSingleMessage());\n }\n }\n\n private async encryptObjProperty(model: V, obj: D,\n map: any, key: SymmetricCryptoKey): Promise {\n const promises = [];\n const self = this;\n\n for (const prop in map) {\n if (!map.hasOwnProperty(prop)) {\n continue;\n }\n\n // tslint:disable-next-line\n (function (theProp, theObj) {\n const p = Promise.resolve().then(() => {\n const modelProp = (model as any)[(map[theProp] || theProp)];\n if (modelProp && modelProp !== '') {\n return self.cryptoService.encrypt(modelProp, key);\n }\n return null;\n }).then((val: CipherString) => {\n (theObj as any)[theProp] = val;\n });\n promises.push(p);\n })(prop, obj);\n }\n\n await Promise.all(promises);\n }\n\n private async encryptCipherData(cipher: Cipher, model: CipherView, key: SymmetricCryptoKey) {\n switch (cipher.type) {\n case CipherType.Login:\n cipher.login = new Login();\n cipher.login.passwordRevisionDate = model.login.passwordRevisionDate;\n await this.encryptObjProperty(model.login, cipher.login, {\n username: null,\n password: null,\n totp: null,\n }, key);\n\n if (model.login.uris != null) {\n cipher.login.uris = [];\n for (let i = 0; i < model.login.uris.length; i++) {\n const loginUri = new LoginUri();\n loginUri.match = model.login.uris[i].match;\n await this.encryptObjProperty(model.login.uris[i], loginUri, {\n uri: null,\n }, key);\n cipher.login.uris.push(loginUri);\n }\n }\n return;\n case CipherType.SecureNote:\n cipher.secureNote = new SecureNote();\n cipher.secureNote.type = model.secureNote.type;\n return;\n case CipherType.Card:\n cipher.card = new Card();\n await this.encryptObjProperty(model.card, cipher.card, {\n cardholderName: null,\n brand: null,\n number: null,\n expMonth: null,\n expYear: null,\n code: null,\n }, key);\n return;\n case CipherType.Identity:\n cipher.identity = new Identity();\n await this.encryptObjProperty(model.identity, cipher.identity, {\n title: null,\n firstName: null,\n middleName: null,\n lastName: null,\n address1: null,\n address2: null,\n address3: null,\n city: null,\n state: null,\n postalCode: null,\n country: null,\n company: null,\n email: null,\n phone: null,\n ssn: null,\n username: null,\n passportNumber: null,\n licenseNumber: null,\n }, key);\n return;\n default:\n throw new Error('Unknown cipher type.');\n }\n }\n\n private async getCipherForUrl(url: string, lastUsed: boolean, lastLaunched: boolean): Promise {\n if (!this.sortedCiphersCache.isCached(url)) {\n const ciphers = await this.getAllDecryptedForUrl(url);\n if (!ciphers) {\n return null;\n }\n this.sortedCiphersCache.addCiphers(url, ciphers);\n }\n\n if (lastLaunched) {\n return this.sortedCiphersCache.getLastLaunched(url);\n } else if (lastUsed) {\n return this.sortedCiphersCache.getLastUsed(url);\n } else {\n return this.sortedCiphersCache.getNext(url);\n }\n }\n}\n","/**\n * Use as a Decorator on async functions, it will prevent multiple 'active' calls as the same time\n *\n * If a promise was returned from a previous call to this function, that hasn't yet resolved it will\n * be returned, instead of calling the original function again\n *\n * Results are not cached, once the promise has returned, the next call will result in a fresh call\n *\n * Read more at https://github.com/bitwarden/jslib/pull/7\n */\nexport function sequentialize(cacheKey: (args: any[]) => string) {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n const originalMethod: () => Promise = descriptor.value;\n const caches = new Map>>();\n\n const getCache = (obj: any) => {\n let cache = caches.get(obj);\n if (cache != null) {\n return cache;\n }\n cache = new Map>();\n caches.set(obj, cache);\n return cache;\n };\n\n return {\n value: function(...args: any[]) {\n const cache = getCache(this);\n const argsCacheKey = cacheKey(args);\n let response = cache.get(argsCacheKey);\n if (response != null) {\n return response;\n }\n\n const onFinally = () => {\n cache.delete(argsCacheKey);\n if (cache.size === 0) {\n caches.delete(this);\n }\n };\n response = originalMethod.apply(this, args).then((val: any) => {\n onFinally();\n return val;\n }).catch((err: any) => {\n onFinally();\n throw err;\n });\n\n cache.set(argsCacheKey, response);\n return response;\n },\n };\n };\n}\n","import { CollectionData } from '../models/data/collectionData';\n\nimport { Collection } from '../models/domain/collection';\nimport { TreeNode } from '../models/domain/treeNode';\n\nimport { CollectionView } from '../models/view/collectionView';\n\nimport { CollectionService as CollectionServiceAbstraction } from '../abstractions/collection.service';\nimport { CryptoService } from '../abstractions/crypto.service';\nimport { I18nService } from '../abstractions/i18n.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { UserService } from '../abstractions/user.service';\n\nimport { ServiceUtils } from '../misc/serviceUtils';\nimport { Utils } from '../misc/utils';\n\nconst Keys = {\n collectionsPrefix: 'collections_',\n};\nconst NestingDelimiter = '/';\n\nexport class CollectionService implements CollectionServiceAbstraction {\n decryptedCollectionCache: CollectionView[];\n\n constructor(private cryptoService: CryptoService, private userService: UserService,\n private storageService: StorageService, private i18nService: I18nService) {\n }\n\n clearCache(): void {\n this.decryptedCollectionCache = null;\n }\n\n async encrypt(model: CollectionView): Promise {\n if (model.organizationId == null) {\n throw new Error('Collection has no organization id.');\n }\n const key = await this.cryptoService.getOrgKey(model.organizationId);\n if (key == null) {\n throw new Error('No key for this collection\\'s organization.');\n }\n const collection = new Collection();\n collection.id = model.id;\n collection.organizationId = model.organizationId;\n collection.readOnly = model.readOnly;\n collection.name = await this.cryptoService.encrypt(model.name, key);\n return collection;\n }\n\n async decryptMany(collections: Collection[]): Promise {\n if (collections == null) {\n return [];\n }\n const decCollections: CollectionView[] = [];\n const promises: Promise[] = [];\n collections.forEach(collection => {\n promises.push(collection.decrypt().then(c => decCollections.push(c)));\n });\n await Promise.all(promises);\n return decCollections.sort(Utils.getSortFunction(this.i18nService, 'name'));\n }\n\n async get(id: string): Promise {\n const userId = await this.userService.getUserId();\n const collections = await this.storageService.get<{ [id: string]: CollectionData; }>(\n Keys.collectionsPrefix + userId);\n if (collections == null || !collections.hasOwnProperty(id)) {\n return null;\n }\n\n return new Collection(collections[id]);\n }\n\n async getAll(): Promise {\n const userId = await this.userService.getUserId();\n const collections = await this.storageService.get<{ [id: string]: CollectionData; }>(\n Keys.collectionsPrefix + userId);\n const response: Collection[] = [];\n for (const id in collections) {\n if (collections.hasOwnProperty(id)) {\n response.push(new Collection(collections[id]));\n }\n }\n return response;\n }\n\n async getAllDecrypted(): Promise {\n if (this.decryptedCollectionCache != null) {\n return this.decryptedCollectionCache;\n }\n\n const hasKey = await this.cryptoService.hasKey();\n if (!hasKey) {\n throw new Error('No key.');\n }\n\n const collections = await this.getAll();\n this.decryptedCollectionCache = await this.decryptMany(collections);\n return this.decryptedCollectionCache;\n }\n\n async getAllNested(collections: CollectionView[] = null): Promise[]> {\n if (collections == null) {\n collections = await this.getAllDecrypted();\n }\n const nodes: TreeNode[] = [];\n collections.forEach(c => {\n const collectionCopy = new CollectionView();\n collectionCopy.id = c.id;\n collectionCopy.organizationId = c.organizationId;\n const parts = c.name != null ? c.name.replace(/^\\/+|\\/+$/g, '').split(NestingDelimiter) : [];\n ServiceUtils.nestedTraverse(nodes, 0, parts, collectionCopy, null, NestingDelimiter);\n });\n return nodes;\n }\n\n async getNested(id: string): Promise> {\n const collections = await this.getAllNested();\n return ServiceUtils.getTreeNodeObject(collections, id) as TreeNode;\n }\n\n async upsert(collection: CollectionData | CollectionData[]): Promise {\n const userId = await this.userService.getUserId();\n let collections = await this.storageService.get<{ [id: string]: CollectionData; }>(\n Keys.collectionsPrefix + userId);\n if (collections == null) {\n collections = {};\n }\n\n if (collection instanceof CollectionData) {\n const c = collection as CollectionData;\n collections[c.id] = c;\n } else {\n (collection as CollectionData[]).forEach(c => {\n collections[c.id] = c;\n });\n }\n\n await this.storageService.save(Keys.collectionsPrefix + userId, collections);\n this.decryptedCollectionCache = null;\n }\n\n async replace(collections: { [id: string]: CollectionData; }): Promise {\n const userId = await this.userService.getUserId();\n await this.storageService.save(Keys.collectionsPrefix + userId, collections);\n this.decryptedCollectionCache = null;\n }\n\n async clear(userId: string): Promise {\n await this.storageService.remove(Keys.collectionsPrefix + userId);\n this.decryptedCollectionCache = null;\n }\n\n async delete(id: string | string[]): Promise {\n const userId = await this.userService.getUserId();\n const collections = await this.storageService.get<{ [id: string]: CollectionData; }>(\n Keys.collectionsPrefix + userId);\n if (collections == null) {\n return;\n }\n\n if (typeof id === 'string') {\n const i = id as string;\n delete collections[id];\n } else {\n (id as string[]).forEach(i => {\n delete collections[i];\n });\n }\n\n await this.storageService.save(Keys.collectionsPrefix + userId, collections);\n this.decryptedCollectionCache = null;\n }\n}\n","import {\n ITreeNodeObject,\n TreeNode,\n} from '../models/domain/treeNode';\n\nexport class ServiceUtils {\n static nestedTraverse(nodeTree: TreeNode[], partIndex: number, parts: string[],\n obj: ITreeNodeObject, parent: ITreeNodeObject, delimiter: string) {\n if (parts.length <= partIndex) {\n return;\n }\n\n const end = partIndex === parts.length - 1;\n const partName = parts[partIndex];\n\n for (let i = 0; i < nodeTree.length; i++) {\n if (nodeTree[i].node.name !== parts[partIndex]) {\n continue;\n }\n if (end && nodeTree[i].node.id !== obj.id) {\n // Another node with the same name.\n nodeTree.push(new TreeNode(obj, partName, parent));\n return;\n }\n ServiceUtils.nestedTraverse(nodeTree[i].children, partIndex + 1, parts,\n obj, nodeTree[i].node, delimiter);\n return;\n }\n\n if (nodeTree.filter(n => n.node.name === partName).length === 0) {\n if (end) {\n nodeTree.push(new TreeNode(obj, partName, parent));\n return;\n }\n const newPartName = parts[partIndex] + delimiter + parts[partIndex + 1];\n ServiceUtils.nestedTraverse(nodeTree, 0, [newPartName, ...parts.slice(partIndex + 2)],\n obj, parent, delimiter);\n }\n }\n\n static getTreeNodeObject(nodeTree: TreeNode[], id: string): TreeNode {\n for (let i = 0; i < nodeTree.length; i++) {\n if (nodeTree[i].node.id === id) {\n return nodeTree[i];\n } else if (nodeTree[i].children != null) {\n const node = ServiceUtils.getTreeNodeObject(nodeTree[i].children, id);\n if (node !== null) {\n return node;\n }\n }\n }\n return null;\n }\n}\n","import { CryptoService } from '../abstractions/crypto.service';\n\nexport class ContainerService {\n constructor(private cryptoService: CryptoService) {\n }\n\n // deprecated, use attachToGlobal instead\n attachToWindow(win: any) {\n this.attachToGlobal(win);\n }\n\n attachToGlobal(global: any) {\n if (!global.bitwardenContainerService) {\n global.bitwardenContainerService = this;\n }\n }\n\n getCryptoService(): CryptoService {\n return this.cryptoService;\n }\n}\n","import * as bigInt from 'big-integer';\n\nimport { EncryptionType } from '../enums/encryptionType';\nimport { KdfType } from '../enums/kdfType';\n\nimport { CipherString } from '../models/domain/cipherString';\nimport { EncryptedObject } from '../models/domain/encryptedObject';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\nimport { ProfileOrganizationResponse } from '../models/response/profileOrganizationResponse';\n\nimport { CryptoService as CryptoServiceAbstraction } from '../abstractions/crypto.service';\nimport { CryptoFunctionService } from '../abstractions/cryptoFunction.service';\nimport { LogService } from '../abstractions/log.service';\nimport { PlatformUtilsService } from '../abstractions/platformUtils.service';\nimport { StorageService } from '../abstractions/storage.service';\n\nimport { ConstantsService } from './constants.service';\n\nimport { sequentialize } from '../misc/sequentialize';\nimport { Utils } from '../misc/utils';\nimport { EEFLongWordList } from '../misc/wordlist';\n\nconst Keys = {\n key: 'key', // Master Key\n encOrgKeys: 'encOrgKeys',\n encPrivateKey: 'encPrivateKey',\n encKey: 'encKey', // Generated Symmetric Key\n keyHash: 'keyHash',\n};\n\nexport class CryptoService implements CryptoServiceAbstraction {\n private key: SymmetricCryptoKey;\n private encKey: SymmetricCryptoKey;\n private legacyEtmKey: SymmetricCryptoKey;\n private keyHash: string;\n private publicKey: ArrayBuffer;\n private privateKey: ArrayBuffer;\n private orgKeys: Map;\n\n constructor(private storageService: StorageService, private secureStorageService: StorageService,\n private cryptoFunctionService: CryptoFunctionService, private platformUtilService: PlatformUtilsService,\n private logService: LogService) {\n }\n\n async setKey(key: SymmetricCryptoKey): Promise {\n this.key = key;\n\n const option = await this.storageService.get(ConstantsService.vaultTimeoutKey);\n const biometric = await this.storageService.get(ConstantsService.biometricUnlockKey);\n if (option != null && !(biometric && this.platformUtilService.supportsSecureStorage())) {\n // if we have a lock option set, we do not store the key\n return;\n }\n\n return this.secureStorageService.save(Keys.key, key.keyB64);\n }\n\n setKeyHash(keyHash: string): Promise<{}> {\n this.keyHash = keyHash;\n return this.storageService.save(Keys.keyHash, keyHash);\n }\n\n async setEncKey(encKey: string): Promise<{}> {\n if (encKey == null) {\n return;\n }\n\n await this.storageService.save(Keys.encKey, encKey);\n this.encKey = null;\n }\n\n async setEncPrivateKey(encPrivateKey: string): Promise<{}> {\n if (encPrivateKey == null) {\n return;\n }\n\n await this.storageService.save(Keys.encPrivateKey, encPrivateKey);\n this.privateKey = null;\n }\n\n setOrgKeys(orgs: ProfileOrganizationResponse[]): Promise<{}> {\n const orgKeys: any = {};\n orgs.forEach(org => {\n orgKeys[org.id] = org.key;\n });\n\n this.orgKeys = null;\n return this.storageService.save(Keys.encOrgKeys, orgKeys);\n }\n\n async getKey(): Promise {\n if (this.key != null) {\n return this.key;\n }\n\n const key = await this.secureStorageService.get(Keys.key);\n if (key != null) {\n this.key = new SymmetricCryptoKey(Utils.fromB64ToArray(key).buffer);\n }\n\n return key == null ? null : this.key;\n }\n\n async getKeyHash(): Promise {\n if (this.keyHash != null) {\n return this.keyHash;\n }\n\n const keyHash = await this.storageService.get(Keys.keyHash);\n if (keyHash != null) {\n this.keyHash = keyHash;\n }\n\n return keyHash == null ? null : this.keyHash;\n }\n\n @sequentialize(() => 'getEncKey')\n async getEncKey(key: SymmetricCryptoKey = null): Promise {\n if (this.encKey != null) {\n return this.encKey;\n }\n\n const encKey = await this.storageService.get(Keys.encKey);\n if (encKey == null) {\n return null;\n }\n\n if (key == null) {\n key = await this.getKey();\n }\n if (key == null) {\n return null;\n }\n\n let decEncKey: ArrayBuffer;\n const encKeyCipher = new CipherString(encKey);\n if (encKeyCipher.encryptionType === EncryptionType.AesCbc256_B64) {\n decEncKey = await this.decryptToBytes(encKeyCipher, key);\n } else if (encKeyCipher.encryptionType === EncryptionType.AesCbc256_HmacSha256_B64) {\n const newKey = await this.stretchKey(key);\n decEncKey = await this.decryptToBytes(encKeyCipher, newKey);\n } else {\n throw new Error('Unsupported encKey type.');\n }\n\n if (decEncKey == null) {\n return null;\n }\n this.encKey = new SymmetricCryptoKey(decEncKey);\n return this.encKey;\n }\n\n async getPublicKey(): Promise {\n if (this.publicKey != null) {\n return this.publicKey;\n }\n\n const privateKey = await this.getPrivateKey();\n if (privateKey == null) {\n return null;\n }\n\n this.publicKey = await this.cryptoFunctionService.rsaExtractPublicKey(privateKey);\n return this.publicKey;\n }\n\n async getPrivateKey(): Promise {\n if (this.privateKey != null) {\n return this.privateKey;\n }\n\n const encPrivateKey = await this.storageService.get(Keys.encPrivateKey);\n if (encPrivateKey == null) {\n return null;\n }\n\n this.privateKey = await this.decryptToBytes(new CipherString(encPrivateKey), null);\n return this.privateKey;\n }\n\n async getFingerprint(userId: string, publicKey?: ArrayBuffer): Promise {\n if (publicKey == null) {\n publicKey = await this.getPublicKey();\n }\n if (publicKey === null) {\n throw new Error('No public key available.');\n }\n const keyFingerprint = await this.cryptoFunctionService.hash(publicKey, 'sha256');\n const userFingerprint = await this.cryptoFunctionService.hkdfExpand(keyFingerprint, userId, 32, 'sha256');\n return this.hashPhrase(userFingerprint);\n }\n\n @sequentialize(() => 'getOrgKeys')\n async getOrgKeys(): Promise> {\n if (this.orgKeys != null && this.orgKeys.size > 0) {\n return this.orgKeys;\n }\n\n const encOrgKeys = await this.storageService.get(Keys.encOrgKeys);\n if (encOrgKeys == null) {\n return null;\n }\n\n const orgKeys: Map = new Map();\n let setKey = false;\n\n for (const orgId in encOrgKeys) {\n if (!encOrgKeys.hasOwnProperty(orgId)) {\n continue;\n }\n\n const decValue = await this.rsaDecrypt(encOrgKeys[orgId]);\n orgKeys.set(orgId, new SymmetricCryptoKey(decValue));\n setKey = true;\n }\n\n if (setKey) {\n this.orgKeys = orgKeys;\n }\n\n return this.orgKeys;\n }\n\n async getOrgKey(orgId: string): Promise {\n if (orgId == null) {\n return null;\n }\n\n const orgKeys = await this.getOrgKeys();\n if (orgKeys == null || !orgKeys.has(orgId)) {\n return null;\n }\n\n return orgKeys.get(orgId);\n }\n\n async hasKey(): Promise {\n return (await this.getKey()) != null;\n }\n\n async hasEncKey(): Promise {\n const encKey = await this.storageService.get(Keys.encKey);\n return encKey != null;\n }\n\n clearKey(): Promise {\n this.key = this.legacyEtmKey = null;\n return this.secureStorageService.remove(Keys.key);\n }\n\n clearKeyHash(): Promise {\n this.keyHash = null;\n return this.storageService.remove(Keys.keyHash);\n }\n\n clearEncKey(memoryOnly?: boolean): Promise {\n this.encKey = null;\n if (memoryOnly) {\n return Promise.resolve();\n }\n return this.storageService.remove(Keys.encKey);\n }\n\n clearKeyPair(memoryOnly?: boolean): Promise {\n this.privateKey = null;\n this.publicKey = null;\n if (memoryOnly) {\n return Promise.resolve();\n }\n return this.storageService.remove(Keys.encPrivateKey);\n }\n\n clearOrgKeys(memoryOnly?: boolean): Promise {\n this.orgKeys = null;\n if (memoryOnly) {\n return Promise.resolve();\n }\n return this.storageService.remove(Keys.encOrgKeys);\n }\n\n clearPinProtectedKey(): Promise {\n return this.storageService.remove(ConstantsService.pinProtectedKey);\n }\n\n clearKeys(): Promise {\n return Promise.all([\n this.clearKey(),\n this.clearKeyHash(),\n this.clearOrgKeys(),\n this.clearEncKey(),\n this.clearKeyPair(),\n this.clearPinProtectedKey(),\n ]);\n }\n\n async toggleKey(): Promise {\n const key = await this.getKey();\n const option = await this.storageService.get(ConstantsService.vaultTimeoutKey);\n const biometric = await this.storageService.get(ConstantsService.biometricUnlockKey);\n if ((!biometric && this.platformUtilService.supportsSecureStorage()) && (option != null || option === 0)) {\n // if we have a lock option set, clear the key\n await this.clearKey();\n this.key = key;\n return;\n }\n\n await this.setKey(key);\n }\n\n async makeKey(password: string, salt: string, kdf: KdfType, kdfIterations: number):\n Promise {\n let key: ArrayBuffer = null;\n if (kdf == null || kdf === KdfType.PBKDF2_SHA256) {\n if (kdfIterations == null) {\n kdfIterations = 5000;\n } else if (kdfIterations < 5000) {\n throw new Error('PBKDF2 iteration minimum is 5000.');\n }\n key = await this.cryptoFunctionService.pbkdf2(password, salt, 'sha256', kdfIterations);\n } else {\n throw new Error('Unknown Kdf.');\n }\n return new SymmetricCryptoKey(key);\n }\n\n async makeKeyFromPin(pin: string, salt: string, kdf: KdfType, kdfIterations: number,\n protectedKeyCs: CipherString = null):\n Promise {\n if (protectedKeyCs == null) {\n const pinProtectedKey = await this.storageService.get(ConstantsService.pinProtectedKey);\n if (pinProtectedKey == null) {\n throw new Error('No PIN protected key found.');\n }\n protectedKeyCs = new CipherString(pinProtectedKey);\n }\n const pinKey = await this.makePinKey(pin, salt, kdf, kdfIterations);\n const decKey = await this.decryptToBytes(protectedKeyCs, pinKey);\n return new SymmetricCryptoKey(decKey);\n }\n\n async makeShareKey(): Promise<[CipherString, SymmetricCryptoKey]> {\n const shareKey = await this.cryptoFunctionService.randomBytes(64);\n const publicKey = await this.getPublicKey();\n const encShareKey = await this.rsaEncrypt(shareKey, publicKey);\n return [encShareKey, new SymmetricCryptoKey(shareKey)];\n }\n\n async makeKeyPair(key?: SymmetricCryptoKey): Promise<[string, CipherString]> {\n const keyPair = await this.cryptoFunctionService.rsaGenerateKeyPair(2048);\n const publicB64 = Utils.fromBufferToB64(keyPair[0]);\n const privateEnc = await this.encrypt(keyPair[1], key);\n return [publicB64, privateEnc];\n }\n\n async makePinKey(pin: string, salt: string, kdf: KdfType, kdfIterations: number): Promise {\n const pinKey = await this.makeKey(pin, salt, kdf, kdfIterations);\n return await this.stretchKey(pinKey);\n }\n\n async makeSendKey(keyMaterial: ArrayBuffer): Promise {\n const sendKey = await this.cryptoFunctionService.hkdf(keyMaterial, 'bitwarden-send', 'send', 64, 'sha256');\n return new SymmetricCryptoKey(sendKey);\n }\n\n async hashPassword(password: string, key: SymmetricCryptoKey): Promise {\n if (key == null) {\n key = await this.getKey();\n }\n if (password == null || key == null) {\n throw new Error('Invalid parameters.');\n }\n\n const hash = await this.cryptoFunctionService.pbkdf2(key.key, password, 'sha256', 1);\n return Utils.fromBufferToB64(hash);\n }\n\n async makeEncKey(key: SymmetricCryptoKey): Promise<[SymmetricCryptoKey, CipherString]> {\n const theKey = await this.getKeyForEncryption(key);\n const encKey = await this.cryptoFunctionService.randomBytes(64);\n return this.buildEncKey(theKey, encKey);\n }\n\n async remakeEncKey(key: SymmetricCryptoKey, encKey?: SymmetricCryptoKey): Promise<[SymmetricCryptoKey, CipherString]> {\n if (encKey == null) {\n encKey = await this.getEncKey();\n }\n return this.buildEncKey(key, encKey.key);\n }\n\n async encrypt(plainValue: string | ArrayBuffer, key?: SymmetricCryptoKey): Promise {\n if (plainValue == null) {\n return Promise.resolve(null);\n }\n\n let plainBuf: ArrayBuffer;\n if (typeof (plainValue) === 'string') {\n plainBuf = Utils.fromUtf8ToArray(plainValue).buffer;\n } else {\n plainBuf = plainValue;\n }\n\n const encObj = await this.aesEncrypt(plainBuf, key);\n const iv = Utils.fromBufferToB64(encObj.iv);\n const data = Utils.fromBufferToB64(encObj.data);\n const mac = encObj.mac != null ? Utils.fromBufferToB64(encObj.mac) : null;\n return new CipherString(encObj.key.encType, data, iv, mac);\n }\n\n async encryptToBytes(plainValue: ArrayBuffer, key?: SymmetricCryptoKey): Promise {\n const encValue = await this.aesEncrypt(plainValue, key);\n let macLen = 0;\n if (encValue.mac != null) {\n macLen = encValue.mac.byteLength;\n }\n\n const encBytes = new Uint8Array(1 + encValue.iv.byteLength + macLen + encValue.data.byteLength);\n encBytes.set([encValue.key.encType]);\n encBytes.set(new Uint8Array(encValue.iv), 1);\n if (encValue.mac != null) {\n encBytes.set(new Uint8Array(encValue.mac), 1 + encValue.iv.byteLength);\n }\n\n encBytes.set(new Uint8Array(encValue.data), 1 + encValue.iv.byteLength + macLen);\n return encBytes.buffer;\n }\n\n async rsaEncrypt(data: ArrayBuffer, publicKey?: ArrayBuffer): Promise {\n if (publicKey == null) {\n publicKey = await this.getPublicKey();\n }\n if (publicKey == null) {\n throw new Error('Public key unavailable.');\n }\n\n const encBytes = await this.cryptoFunctionService.rsaEncrypt(data, publicKey, 'sha1');\n return new CipherString(EncryptionType.Rsa2048_OaepSha1_B64, Utils.fromBufferToB64(encBytes));\n }\n\n async rsaDecrypt(encValue: string): Promise {\n const headerPieces = encValue.split('.');\n let encType: EncryptionType = null;\n let encPieces: string[];\n\n if (headerPieces.length === 1) {\n encType = EncryptionType.Rsa2048_OaepSha256_B64;\n encPieces = [headerPieces[0]];\n } else if (headerPieces.length === 2) {\n try {\n encType = parseInt(headerPieces[0], null);\n encPieces = headerPieces[1].split('|');\n } catch (e) { }\n }\n\n switch (encType) {\n case EncryptionType.Rsa2048_OaepSha256_B64:\n case EncryptionType.Rsa2048_OaepSha1_B64:\n // HmacSha256 types are deprecated\n case EncryptionType.Rsa2048_OaepSha256_HmacSha256_B64:\n case EncryptionType.Rsa2048_OaepSha1_HmacSha256_B64:\n break;\n default:\n throw new Error('encType unavailable.');\n }\n\n if (encPieces == null || encPieces.length <= 0) {\n throw new Error('encPieces unavailable.');\n }\n\n const data = Utils.fromB64ToArray(encPieces[0]).buffer;\n const privateKey = await this.getPrivateKey();\n if (privateKey == null) {\n throw new Error('No private key.');\n }\n\n let alg: 'sha1' | 'sha256' = 'sha1';\n switch (encType) {\n case EncryptionType.Rsa2048_OaepSha256_B64:\n case EncryptionType.Rsa2048_OaepSha256_HmacSha256_B64:\n alg = 'sha256';\n break;\n case EncryptionType.Rsa2048_OaepSha1_B64:\n case EncryptionType.Rsa2048_OaepSha1_HmacSha256_B64:\n break;\n default:\n throw new Error('encType unavailable.');\n }\n\n return this.cryptoFunctionService.rsaDecrypt(data, privateKey, alg);\n }\n\n async decryptToBytes(cipherString: CipherString, key?: SymmetricCryptoKey): Promise {\n const iv = Utils.fromB64ToArray(cipherString.iv).buffer;\n const data = Utils.fromB64ToArray(cipherString.data).buffer;\n const mac = cipherString.mac ? Utils.fromB64ToArray(cipherString.mac).buffer : null;\n const decipher = await this.aesDecryptToBytes(cipherString.encryptionType, data, iv, mac, key);\n if (decipher == null) {\n return null;\n }\n\n return decipher;\n }\n\n async decryptToUtf8(cipherString: CipherString, key?: SymmetricCryptoKey): Promise {\n return await this.aesDecryptToUtf8(cipherString.encryptionType, cipherString.data,\n cipherString.iv, cipherString.mac, key);\n }\n\n async decryptFromBytes(encBuf: ArrayBuffer, key: SymmetricCryptoKey): Promise {\n if (encBuf == null) {\n throw new Error('no encBuf.');\n }\n\n const encBytes = new Uint8Array(encBuf);\n const encType = encBytes[0];\n let ctBytes: Uint8Array = null;\n let ivBytes: Uint8Array = null;\n let macBytes: Uint8Array = null;\n\n switch (encType) {\n case EncryptionType.AesCbc128_HmacSha256_B64:\n case EncryptionType.AesCbc256_HmacSha256_B64:\n if (encBytes.length <= 49) { // 1 + 16 + 32 + ctLength\n return null;\n }\n\n ivBytes = encBytes.slice(1, 17);\n macBytes = encBytes.slice(17, 49);\n ctBytes = encBytes.slice(49);\n break;\n case EncryptionType.AesCbc256_B64:\n if (encBytes.length <= 17) { // 1 + 16 + ctLength\n return null;\n }\n\n ivBytes = encBytes.slice(1, 17);\n ctBytes = encBytes.slice(17);\n break;\n default:\n return null;\n }\n\n return await this.aesDecryptToBytes(encType, ctBytes.buffer, ivBytes.buffer,\n macBytes != null ? macBytes.buffer : null, key);\n }\n\n // EFForg/OpenWireless\n // ref https://github.com/EFForg/OpenWireless/blob/master/app/js/diceware.js\n async randomNumber(min: number, max: number): Promise {\n let rval = 0;\n const range = max - min + 1;\n const bitsNeeded = Math.ceil(Math.log2(range));\n if (bitsNeeded > 53) {\n throw new Error('We cannot generate numbers larger than 53 bits.');\n }\n\n const bytesNeeded = Math.ceil(bitsNeeded / 8);\n const mask = Math.pow(2, bitsNeeded) - 1;\n // 7776 -> (2^13 = 8192) -1 == 8191 or 0x00001111 11111111\n\n // Fill a byte array with N random numbers\n const byteArray = new Uint8Array(await this.cryptoFunctionService.randomBytes(bytesNeeded));\n\n let p = (bytesNeeded - 1) * 8;\n for (let i = 0; i < bytesNeeded; i++) {\n rval += byteArray[i] * Math.pow(2, p);\n p -= 8;\n }\n\n // Use & to apply the mask and reduce the number of recursive lookups\n // tslint:disable-next-line\n rval = rval & mask;\n\n if (rval >= range) {\n // Integer out of acceptable range\n return this.randomNumber(min, max);\n }\n\n // Return an integer that falls within the range\n return min + rval;\n }\n\n // Helpers\n\n private async aesEncrypt(data: ArrayBuffer, key: SymmetricCryptoKey): Promise {\n const obj = new EncryptedObject();\n obj.key = await this.getKeyForEncryption(key);\n obj.iv = await this.cryptoFunctionService.randomBytes(16);\n obj.data = await this.cryptoFunctionService.aesEncrypt(data, obj.iv, obj.key.encKey);\n\n if (obj.key.macKey != null) {\n const macData = new Uint8Array(obj.iv.byteLength + obj.data.byteLength);\n macData.set(new Uint8Array(obj.iv), 0);\n macData.set(new Uint8Array(obj.data), obj.iv.byteLength);\n obj.mac = await this.cryptoFunctionService.hmac(macData.buffer, obj.key.macKey, 'sha256');\n }\n\n return obj;\n }\n\n private async aesDecryptToUtf8(encType: EncryptionType, data: string, iv: string, mac: string,\n key: SymmetricCryptoKey): Promise {\n const keyForEnc = await this.getKeyForEncryption(key);\n const theKey = this.resolveLegacyKey(encType, keyForEnc);\n\n if (theKey.macKey != null && mac == null) {\n this.logService.error('mac required.');\n return null;\n }\n\n if (theKey.encType !== encType) {\n this.logService.error('encType unavailable.');\n return null;\n }\n\n const fastParams = this.cryptoFunctionService.aesDecryptFastParameters(data, iv, mac, theKey);\n if (fastParams.macKey != null && fastParams.mac != null) {\n const computedMac = await this.cryptoFunctionService.hmacFast(fastParams.macData,\n fastParams.macKey, 'sha256');\n const macsEqual = await this.cryptoFunctionService.compareFast(fastParams.mac, computedMac);\n if (!macsEqual) {\n this.logService.error('mac failed.');\n return null;\n }\n }\n\n return this.cryptoFunctionService.aesDecryptFast(fastParams);\n }\n\n private async aesDecryptToBytes(encType: EncryptionType, data: ArrayBuffer, iv: ArrayBuffer,\n mac: ArrayBuffer, key: SymmetricCryptoKey): Promise {\n const keyForEnc = await this.getKeyForEncryption(key);\n const theKey = this.resolveLegacyKey(encType, keyForEnc);\n\n if (theKey.macKey != null && mac == null) {\n return null;\n }\n\n if (theKey.encType !== encType) {\n return null;\n }\n\n if (theKey.macKey != null && mac != null) {\n const macData = new Uint8Array(iv.byteLength + data.byteLength);\n macData.set(new Uint8Array(iv), 0);\n macData.set(new Uint8Array(data), iv.byteLength);\n const computedMac = await this.cryptoFunctionService.hmac(macData.buffer, theKey.macKey, 'sha256');\n if (computedMac === null) {\n return null;\n }\n\n const macsMatch = await this.cryptoFunctionService.compare(mac, computedMac);\n if (!macsMatch) {\n this.logService.error('mac failed.');\n return null;\n }\n }\n\n return await this.cryptoFunctionService.aesDecrypt(data, iv, theKey.encKey);\n }\n\n private async getKeyForEncryption(key?: SymmetricCryptoKey): Promise {\n if (key != null) {\n return key;\n }\n\n const encKey = await this.getEncKey();\n if (encKey != null) {\n return encKey;\n }\n\n return await this.getKey();\n }\n\n private resolveLegacyKey(encType: EncryptionType, key: SymmetricCryptoKey): SymmetricCryptoKey {\n if (encType === EncryptionType.AesCbc128_HmacSha256_B64 &&\n key.encType === EncryptionType.AesCbc256_B64) {\n // Old encrypt-then-mac scheme, make a new key\n if (this.legacyEtmKey == null) {\n this.legacyEtmKey = new SymmetricCryptoKey(key.key, EncryptionType.AesCbc128_HmacSha256_B64);\n }\n return this.legacyEtmKey;\n }\n\n return key;\n }\n\n private async stretchKey(key: SymmetricCryptoKey): Promise {\n const newKey = new Uint8Array(64);\n const encKey = await this.cryptoFunctionService.hkdfExpand(key.key, 'enc', 32, 'sha256');\n const macKey = await this.cryptoFunctionService.hkdfExpand(key.key, 'mac', 32, 'sha256');\n newKey.set(new Uint8Array(encKey));\n newKey.set(new Uint8Array(macKey), 32);\n return new SymmetricCryptoKey(newKey.buffer);\n }\n\n private async hashPhrase(hash: ArrayBuffer, minimumEntropy: number = 64) {\n const entropyPerWord = Math.log(EEFLongWordList.length) / Math.log(2);\n let numWords = Math.ceil(minimumEntropy / entropyPerWord);\n\n const hashArr = Array.from(new Uint8Array(hash));\n const entropyAvailable = hashArr.length * 4;\n if (numWords * entropyPerWord > entropyAvailable) {\n throw new Error('Output entropy of hash function is too small');\n }\n\n const phrase: string[] = [];\n let hashNumber = bigInt.fromArray(hashArr, 256);\n while (numWords--) {\n const remainder = hashNumber.mod(EEFLongWordList.length);\n hashNumber = hashNumber.divide(EEFLongWordList.length);\n phrase.push(EEFLongWordList[remainder as any]);\n }\n return phrase;\n }\n\n private async buildEncKey(key: SymmetricCryptoKey, encKey: ArrayBuffer)\n : Promise<[SymmetricCryptoKey, CipherString]> {\n let encKeyEnc: CipherString = null;\n if (key.key.byteLength === 32) {\n const newKey = await this.stretchKey(key);\n encKeyEnc = await this.encrypt(encKey, newKey);\n } else if (key.key.byteLength === 64) {\n encKeyEnc = await this.encrypt(encKey, key);\n } else {\n throw new Error('Invalid key size.');\n }\n return [new SymmetricCryptoKey(encKey), encKeyEnc];\n }\n}\n","// EFF's Long Wordlist from https://www.eff.org/dice\nexport const EEFLongWordList = [\n 'abacus',\n 'abdomen',\n 'abdominal',\n 'abide',\n 'abiding',\n 'ability',\n 'ablaze',\n 'able',\n 'abnormal',\n 'abrasion',\n 'abrasive',\n 'abreast',\n 'abridge',\n 'abroad',\n 'abruptly',\n 'absence',\n 'absentee',\n 'absently',\n 'absinthe',\n 'absolute',\n 'absolve',\n 'abstain',\n 'abstract',\n 'absurd',\n 'accent',\n 'acclaim',\n 'acclimate',\n 'accompany',\n 'account',\n 'accuracy',\n 'accurate',\n 'accustom',\n 'acetone',\n 'achiness',\n 'aching',\n 'acid',\n 'acorn',\n 'acquaint',\n 'acquire',\n 'acre',\n 'acrobat',\n 'acronym',\n 'acting',\n 'action',\n 'activate',\n 'activator',\n 'active',\n 'activism',\n 'activist',\n 'activity',\n 'actress',\n 'acts',\n 'acutely',\n 'acuteness',\n 'aeration',\n 'aerobics',\n 'aerosol',\n 'aerospace',\n 'afar',\n 'affair',\n 'affected',\n 'affecting',\n 'affection',\n 'affidavit',\n 'affiliate',\n 'affirm',\n 'affix',\n 'afflicted',\n 'affluent',\n 'afford',\n 'affront',\n 'aflame',\n 'afloat',\n 'aflutter',\n 'afoot',\n 'afraid',\n 'afterglow',\n 'afterlife',\n 'aftermath',\n 'aftermost',\n 'afternoon',\n 'aged',\n 'ageless',\n 'agency',\n 'agenda',\n 'agent',\n 'aggregate',\n 'aghast',\n 'agile',\n 'agility',\n 'aging',\n 'agnostic',\n 'agonize',\n 'agonizing',\n 'agony',\n 'agreeable',\n 'agreeably',\n 'agreed',\n 'agreeing',\n 'agreement',\n 'aground',\n 'ahead',\n 'ahoy',\n 'aide',\n 'aids',\n 'aim',\n 'ajar',\n 'alabaster',\n 'alarm',\n 'albatross',\n 'album',\n 'alfalfa',\n 'algebra',\n 'algorithm',\n 'alias',\n 'alibi',\n 'alienable',\n 'alienate',\n 'aliens',\n 'alike',\n 'alive',\n 'alkaline',\n 'alkalize',\n 'almanac',\n 'almighty',\n 'almost',\n 'aloe',\n 'aloft',\n 'aloha',\n 'alone',\n 'alongside',\n 'aloof',\n 'alphabet',\n 'alright',\n 'although',\n 'altitude',\n 'alto',\n 'aluminum',\n 'alumni',\n 'always',\n 'amaretto',\n 'amaze',\n 'amazingly',\n 'amber',\n 'ambiance',\n 'ambiguity',\n 'ambiguous',\n 'ambition',\n 'ambitious',\n 'ambulance',\n 'ambush',\n 'amendable',\n 'amendment',\n 'amends',\n 'amenity',\n 'amiable',\n 'amicably',\n 'amid',\n 'amigo',\n 'amino',\n 'amiss',\n 'ammonia',\n 'ammonium',\n 'amnesty',\n 'amniotic',\n 'among',\n 'amount',\n 'amperage',\n 'ample',\n 'amplifier',\n 'amplify',\n 'amply',\n 'amuck',\n 'amulet',\n 'amusable',\n 'amused',\n 'amusement',\n 'amuser',\n 'amusing',\n 'anaconda',\n 'anaerobic',\n 'anagram',\n 'anatomist',\n 'anatomy',\n 'anchor',\n 'anchovy',\n 'ancient',\n 'android',\n 'anemia',\n 'anemic',\n 'aneurism',\n 'anew',\n 'angelfish',\n 'angelic',\n 'anger',\n 'angled',\n 'angler',\n 'angles',\n 'angling',\n 'angrily',\n 'angriness',\n 'anguished',\n 'angular',\n 'animal',\n 'animate',\n 'animating',\n 'animation',\n 'animator',\n 'anime',\n 'animosity',\n 'ankle',\n 'annex',\n 'annotate',\n 'announcer',\n 'annoying',\n 'annually',\n 'annuity',\n 'anointer',\n 'another',\n 'answering',\n 'antacid',\n 'antarctic',\n 'anteater',\n 'antelope',\n 'antennae',\n 'anthem',\n 'anthill',\n 'anthology',\n 'antibody',\n 'antics',\n 'antidote',\n 'antihero',\n 'antiquely',\n 'antiques',\n 'antiquity',\n 'antirust',\n 'antitoxic',\n 'antitrust',\n 'antiviral',\n 'antivirus',\n 'antler',\n 'antonym',\n 'antsy',\n 'anvil',\n 'anybody',\n 'anyhow',\n 'anymore',\n 'anyone',\n 'anyplace',\n 'anything',\n 'anytime',\n 'anyway',\n 'anywhere',\n 'aorta',\n 'apache',\n 'apostle',\n 'appealing',\n 'appear',\n 'appease',\n 'appeasing',\n 'appendage',\n 'appendix',\n 'appetite',\n 'appetizer',\n 'applaud',\n 'applause',\n 'apple',\n 'appliance',\n 'applicant',\n 'applied',\n 'apply',\n 'appointee',\n 'appraisal',\n 'appraiser',\n 'apprehend',\n 'approach',\n 'approval',\n 'approve',\n 'apricot',\n 'april',\n 'apron',\n 'aptitude',\n 'aptly',\n 'aqua',\n 'aqueduct',\n 'arbitrary',\n 'arbitrate',\n 'ardently',\n 'area',\n 'arena',\n 'arguable',\n 'arguably',\n 'argue',\n 'arise',\n 'armadillo',\n 'armband',\n 'armchair',\n 'armed',\n 'armful',\n 'armhole',\n 'arming',\n 'armless',\n 'armoire',\n 'armored',\n 'armory',\n 'armrest',\n 'army',\n 'aroma',\n 'arose',\n 'around',\n 'arousal',\n 'arrange',\n 'array',\n 'arrest',\n 'arrival',\n 'arrive',\n 'arrogance',\n 'arrogant',\n 'arson',\n 'art',\n 'ascend',\n 'ascension',\n 'ascent',\n 'ascertain',\n 'ashamed',\n 'ashen',\n 'ashes',\n 'ashy',\n 'aside',\n 'askew',\n 'asleep',\n 'asparagus',\n 'aspect',\n 'aspirate',\n 'aspire',\n 'aspirin',\n 'astonish',\n 'astound',\n 'astride',\n 'astrology',\n 'astronaut',\n 'astronomy',\n 'astute',\n 'atlantic',\n 'atlas',\n 'atom',\n 'atonable',\n 'atop',\n 'atrium',\n 'atrocious',\n 'atrophy',\n 'attach',\n 'attain',\n 'attempt',\n 'attendant',\n 'attendee',\n 'attention',\n 'attentive',\n 'attest',\n 'attic',\n 'attire',\n 'attitude',\n 'attractor',\n 'attribute',\n 'atypical',\n 'auction',\n 'audacious',\n 'audacity',\n 'audible',\n 'audibly',\n 'audience',\n 'audio',\n 'audition',\n 'augmented',\n 'august',\n 'authentic',\n 'author',\n 'autism',\n 'autistic',\n 'autograph',\n 'automaker',\n 'automated',\n 'automatic',\n 'autopilot',\n 'available',\n 'avalanche',\n 'avatar',\n 'avenge',\n 'avenging',\n 'avenue',\n 'average',\n 'aversion',\n 'avert',\n 'aviation',\n 'aviator',\n 'avid',\n 'avoid',\n 'await',\n 'awaken',\n 'award',\n 'aware',\n 'awhile',\n 'awkward',\n 'awning',\n 'awoke',\n 'awry',\n 'axis',\n 'babble',\n 'babbling',\n 'babied',\n 'baboon',\n 'backache',\n 'backboard',\n 'backboned',\n 'backdrop',\n 'backed',\n 'backer',\n 'backfield',\n 'backfire',\n 'backhand',\n 'backing',\n 'backlands',\n 'backlash',\n 'backless',\n 'backlight',\n 'backlit',\n 'backlog',\n 'backpack',\n 'backpedal',\n 'backrest',\n 'backroom',\n 'backshift',\n 'backside',\n 'backslid',\n 'backspace',\n 'backspin',\n 'backstab',\n 'backstage',\n 'backtalk',\n 'backtrack',\n 'backup',\n 'backward',\n 'backwash',\n 'backwater',\n 'backyard',\n 'bacon',\n 'bacteria',\n 'bacterium',\n 'badass',\n 'badge',\n 'badland',\n 'badly',\n 'badness',\n 'baffle',\n 'baffling',\n 'bagel',\n 'bagful',\n 'baggage',\n 'bagged',\n 'baggie',\n 'bagginess',\n 'bagging',\n 'baggy',\n 'bagpipe',\n 'baguette',\n 'baked',\n 'bakery',\n 'bakeshop',\n 'baking',\n 'balance',\n 'balancing',\n 'balcony',\n 'balmy',\n 'balsamic',\n 'bamboo',\n 'banana',\n 'banish',\n 'banister',\n 'banjo',\n 'bankable',\n 'bankbook',\n 'banked',\n 'banker',\n 'banking',\n 'banknote',\n 'bankroll',\n 'banner',\n 'bannister',\n 'banshee',\n 'banter',\n 'barbecue',\n 'barbed',\n 'barbell',\n 'barber',\n 'barcode',\n 'barge',\n 'bargraph',\n 'barista',\n 'baritone',\n 'barley',\n 'barmaid',\n 'barman',\n 'barn',\n 'barometer',\n 'barrack',\n 'barracuda',\n 'barrel',\n 'barrette',\n 'barricade',\n 'barrier',\n 'barstool',\n 'bartender',\n 'barterer',\n 'bash',\n 'basically',\n 'basics',\n 'basil',\n 'basin',\n 'basis',\n 'basket',\n 'batboy',\n 'batch',\n 'bath',\n 'baton',\n 'bats',\n 'battalion',\n 'battered',\n 'battering',\n 'battery',\n 'batting',\n 'battle',\n 'bauble',\n 'bazooka',\n 'blabber',\n 'bladder',\n 'blade',\n 'blah',\n 'blame',\n 'blaming',\n 'blanching',\n 'blandness',\n 'blank',\n 'blaspheme',\n 'blasphemy',\n 'blast',\n 'blatancy',\n 'blatantly',\n 'blazer',\n 'blazing',\n 'bleach',\n 'bleak',\n 'bleep',\n 'blemish',\n 'blend',\n 'bless',\n 'blighted',\n 'blimp',\n 'bling',\n 'blinked',\n 'blinker',\n 'blinking',\n 'blinks',\n 'blip',\n 'blissful',\n 'blitz',\n 'blizzard',\n 'bloated',\n 'bloating',\n 'blob',\n 'blog',\n 'bloomers',\n 'blooming',\n 'blooper',\n 'blot',\n 'blouse',\n 'blubber',\n 'bluff',\n 'bluish',\n 'blunderer',\n 'blunt',\n 'blurb',\n 'blurred',\n 'blurry',\n 'blurt',\n 'blush',\n 'blustery',\n 'boaster',\n 'boastful',\n 'boasting',\n 'boat',\n 'bobbed',\n 'bobbing',\n 'bobble',\n 'bobcat',\n 'bobsled',\n 'bobtail',\n 'bodacious',\n 'body',\n 'bogged',\n 'boggle',\n 'bogus',\n 'boil',\n 'bok',\n 'bolster',\n 'bolt',\n 'bonanza',\n 'bonded',\n 'bonding',\n 'bondless',\n 'boned',\n 'bonehead',\n 'boneless',\n 'bonelike',\n 'boney',\n 'bonfire',\n 'bonnet',\n 'bonsai',\n 'bonus',\n 'bony',\n 'boogeyman',\n 'boogieman',\n 'book',\n 'boondocks',\n 'booted',\n 'booth',\n 'bootie',\n 'booting',\n 'bootlace',\n 'bootleg',\n 'boots',\n 'boozy',\n 'borax',\n 'boring',\n 'borough',\n 'borrower',\n 'borrowing',\n 'boss',\n 'botanical',\n 'botanist',\n 'botany',\n 'botch',\n 'both',\n 'bottle',\n 'bottling',\n 'bottom',\n 'bounce',\n 'bouncing',\n 'bouncy',\n 'bounding',\n 'boundless',\n 'bountiful',\n 'bovine',\n 'boxcar',\n 'boxer',\n 'boxing',\n 'boxlike',\n 'boxy',\n 'breach',\n 'breath',\n 'breeches',\n 'breeching',\n 'breeder',\n 'breeding',\n 'breeze',\n 'breezy',\n 'brethren',\n 'brewery',\n 'brewing',\n 'briar',\n 'bribe',\n 'brick',\n 'bride',\n 'bridged',\n 'brigade',\n 'bright',\n 'brilliant',\n 'brim',\n 'bring',\n 'brink',\n 'brisket',\n 'briskly',\n 'briskness',\n 'bristle',\n 'brittle',\n 'broadband',\n 'broadcast',\n 'broaden',\n 'broadly',\n 'broadness',\n 'broadside',\n 'broadways',\n 'broiler',\n 'broiling',\n 'broken',\n 'broker',\n 'bronchial',\n 'bronco',\n 'bronze',\n 'bronzing',\n 'brook',\n 'broom',\n 'brought',\n 'browbeat',\n 'brownnose',\n 'browse',\n 'browsing',\n 'bruising',\n 'brunch',\n 'brunette',\n 'brunt',\n 'brush',\n 'brussels',\n 'brute',\n 'brutishly',\n 'bubble',\n 'bubbling',\n 'bubbly',\n 'buccaneer',\n 'bucked',\n 'bucket',\n 'buckle',\n 'buckshot',\n 'buckskin',\n 'bucktooth',\n 'buckwheat',\n 'buddhism',\n 'buddhist',\n 'budding',\n 'buddy',\n 'budget',\n 'buffalo',\n 'buffed',\n 'buffer',\n 'buffing',\n 'buffoon',\n 'buggy',\n 'bulb',\n 'bulge',\n 'bulginess',\n 'bulgur',\n 'bulk',\n 'bulldog',\n 'bulldozer',\n 'bullfight',\n 'bullfrog',\n 'bullhorn',\n 'bullion',\n 'bullish',\n 'bullpen',\n 'bullring',\n 'bullseye',\n 'bullwhip',\n 'bully',\n 'bunch',\n 'bundle',\n 'bungee',\n 'bunion',\n 'bunkbed',\n 'bunkhouse',\n 'bunkmate',\n 'bunny',\n 'bunt',\n 'busboy',\n 'bush',\n 'busily',\n 'busload',\n 'bust',\n 'busybody',\n 'buzz',\n 'cabana',\n 'cabbage',\n 'cabbie',\n 'cabdriver',\n 'cable',\n 'caboose',\n 'cache',\n 'cackle',\n 'cacti',\n 'cactus',\n 'caddie',\n 'caddy',\n 'cadet',\n 'cadillac',\n 'cadmium',\n 'cage',\n 'cahoots',\n 'cake',\n 'calamari',\n 'calamity',\n 'calcium',\n 'calculate',\n 'calculus',\n 'caliber',\n 'calibrate',\n 'calm',\n 'caloric',\n 'calorie',\n 'calzone',\n 'camcorder',\n 'cameo',\n 'camera',\n 'camisole',\n 'camper',\n 'campfire',\n 'camping',\n 'campsite',\n 'campus',\n 'canal',\n 'canary',\n 'cancel',\n 'candied',\n 'candle',\n 'candy',\n 'cane',\n 'canine',\n 'canister',\n 'cannabis',\n 'canned',\n 'canning',\n 'cannon',\n 'cannot',\n 'canola',\n 'canon',\n 'canopener',\n 'canopy',\n 'canteen',\n 'canyon',\n 'capable',\n 'capably',\n 'capacity',\n 'cape',\n 'capillary',\n 'capital',\n 'capitol',\n 'capped',\n 'capricorn',\n 'capsize',\n 'capsule',\n 'caption',\n 'captivate',\n 'captive',\n 'captivity',\n 'capture',\n 'caramel',\n 'carat',\n 'caravan',\n 'carbon',\n 'cardboard',\n 'carded',\n 'cardiac',\n 'cardigan',\n 'cardinal',\n 'cardstock',\n 'carefully',\n 'caregiver',\n 'careless',\n 'caress',\n 'caretaker',\n 'cargo',\n 'caring',\n 'carless',\n 'carload',\n 'carmaker',\n 'carnage',\n 'carnation',\n 'carnival',\n 'carnivore',\n 'carol',\n 'carpenter',\n 'carpentry',\n 'carpool',\n 'carport',\n 'carried',\n 'carrot',\n 'carrousel',\n 'carry',\n 'cartel',\n 'cartload',\n 'carton',\n 'cartoon',\n 'cartridge',\n 'cartwheel',\n 'carve',\n 'carving',\n 'carwash',\n 'cascade',\n 'case',\n 'cash',\n 'casing',\n 'casino',\n 'casket',\n 'cassette',\n 'casually',\n 'casualty',\n 'catacomb',\n 'catalog',\n 'catalyst',\n 'catalyze',\n 'catapult',\n 'cataract',\n 'catatonic',\n 'catcall',\n 'catchable',\n 'catcher',\n 'catching',\n 'catchy',\n 'caterer',\n 'catering',\n 'catfight',\n 'catfish',\n 'cathedral',\n 'cathouse',\n 'catlike',\n 'catnap',\n 'catnip',\n 'catsup',\n 'cattail',\n 'cattishly',\n 'cattle',\n 'catty',\n 'catwalk',\n 'caucasian',\n 'caucus',\n 'causal',\n 'causation',\n 'cause',\n 'causing',\n 'cauterize',\n 'caution',\n 'cautious',\n 'cavalier',\n 'cavalry',\n 'caviar',\n 'cavity',\n 'cedar',\n 'celery',\n 'celestial',\n 'celibacy',\n 'celibate',\n 'celtic',\n 'cement',\n 'census',\n 'ceramics',\n 'ceremony',\n 'certainly',\n 'certainty',\n 'certified',\n 'certify',\n 'cesarean',\n 'cesspool',\n 'chafe',\n 'chaffing',\n 'chain',\n 'chair',\n 'chalice',\n 'challenge',\n 'chamber',\n 'chamomile',\n 'champion',\n 'chance',\n 'change',\n 'channel',\n 'chant',\n 'chaos',\n 'chaperone',\n 'chaplain',\n 'chapped',\n 'chaps',\n 'chapter',\n 'character',\n 'charbroil',\n 'charcoal',\n 'charger',\n 'charging',\n 'chariot',\n 'charity',\n 'charm',\n 'charred',\n 'charter',\n 'charting',\n 'chase',\n 'chasing',\n 'chaste',\n 'chastise',\n 'chastity',\n 'chatroom',\n 'chatter',\n 'chatting',\n 'chatty',\n 'cheating',\n 'cheddar',\n 'cheek',\n 'cheer',\n 'cheese',\n 'cheesy',\n 'chef',\n 'chemicals',\n 'chemist',\n 'chemo',\n 'cherisher',\n 'cherub',\n 'chess',\n 'chest',\n 'chevron',\n 'chevy',\n 'chewable',\n 'chewer',\n 'chewing',\n 'chewy',\n 'chief',\n 'chihuahua',\n 'childcare',\n 'childhood',\n 'childish',\n 'childless',\n 'childlike',\n 'chili',\n 'chill',\n 'chimp',\n 'chip',\n 'chirping',\n 'chirpy',\n 'chitchat',\n 'chivalry',\n 'chive',\n 'chloride',\n 'chlorine',\n 'choice',\n 'chokehold',\n 'choking',\n 'chomp',\n 'chooser',\n 'choosing',\n 'choosy',\n 'chop',\n 'chosen',\n 'chowder',\n 'chowtime',\n 'chrome',\n 'chubby',\n 'chuck',\n 'chug',\n 'chummy',\n 'chump',\n 'chunk',\n 'churn',\n 'chute',\n 'cider',\n 'cilantro',\n 'cinch',\n 'cinema',\n 'cinnamon',\n 'circle',\n 'circling',\n 'circular',\n 'circulate',\n 'circus',\n 'citable',\n 'citadel',\n 'citation',\n 'citizen',\n 'citric',\n 'citrus',\n 'city',\n 'civic',\n 'civil',\n 'clad',\n 'claim',\n 'clambake',\n 'clammy',\n 'clamor',\n 'clamp',\n 'clamshell',\n 'clang',\n 'clanking',\n 'clapped',\n 'clapper',\n 'clapping',\n 'clarify',\n 'clarinet',\n 'clarity',\n 'clash',\n 'clasp',\n 'class',\n 'clatter',\n 'clause',\n 'clavicle',\n 'claw',\n 'clay',\n 'clean',\n 'clear',\n 'cleat',\n 'cleaver',\n 'cleft',\n 'clench',\n 'clergyman',\n 'clerical',\n 'clerk',\n 'clever',\n 'clicker',\n 'client',\n 'climate',\n 'climatic',\n 'cling',\n 'clinic',\n 'clinking',\n 'clip',\n 'clique',\n 'cloak',\n 'clobber',\n 'clock',\n 'clone',\n 'cloning',\n 'closable',\n 'closure',\n 'clothes',\n 'clothing',\n 'cloud',\n 'clover',\n 'clubbed',\n 'clubbing',\n 'clubhouse',\n 'clump',\n 'clumsily',\n 'clumsy',\n 'clunky',\n 'clustered',\n 'clutch',\n 'clutter',\n 'coach',\n 'coagulant',\n 'coastal',\n 'coaster',\n 'coasting',\n 'coastland',\n 'coastline',\n 'coat',\n 'coauthor',\n 'cobalt',\n 'cobbler',\n 'cobweb',\n 'cocoa',\n 'coconut',\n 'cod',\n 'coeditor',\n 'coerce',\n 'coexist',\n 'coffee',\n 'cofounder',\n 'cognition',\n 'cognitive',\n 'cogwheel',\n 'coherence',\n 'coherent',\n 'cohesive',\n 'coil',\n 'coke',\n 'cola',\n 'cold',\n 'coleslaw',\n 'coliseum',\n 'collage',\n 'collapse',\n 'collar',\n 'collected',\n 'collector',\n 'collide',\n 'collie',\n 'collision',\n 'colonial',\n 'colonist',\n 'colonize',\n 'colony',\n 'colossal',\n 'colt',\n 'coma',\n 'come',\n 'comfort',\n 'comfy',\n 'comic',\n 'coming',\n 'comma',\n 'commence',\n 'commend',\n 'comment',\n 'commerce',\n 'commode',\n 'commodity',\n 'commodore',\n 'common',\n 'commotion',\n 'commute',\n 'commuting',\n 'compacted',\n 'compacter',\n 'compactly',\n 'compactor',\n 'companion',\n 'company',\n 'compare',\n 'compel',\n 'compile',\n 'comply',\n 'component',\n 'composed',\n 'composer',\n 'composite',\n 'compost',\n 'composure',\n 'compound',\n 'compress',\n 'comprised',\n 'computer',\n 'computing',\n 'comrade',\n 'concave',\n 'conceal',\n 'conceded',\n 'concept',\n 'concerned',\n 'concert',\n 'conch',\n 'concierge',\n 'concise',\n 'conclude',\n 'concrete',\n 'concur',\n 'condense',\n 'condiment',\n 'condition',\n 'condone',\n 'conducive',\n 'conductor',\n 'conduit',\n 'cone',\n 'confess',\n 'confetti',\n 'confidant',\n 'confident',\n 'confider',\n 'confiding',\n 'configure',\n 'confined',\n 'confining',\n 'confirm',\n 'conflict',\n 'conform',\n 'confound',\n 'confront',\n 'confused',\n 'confusing',\n 'confusion',\n 'congenial',\n 'congested',\n 'congrats',\n 'congress',\n 'conical',\n 'conjoined',\n 'conjure',\n 'conjuror',\n 'connected',\n 'connector',\n 'consensus',\n 'consent',\n 'console',\n 'consoling',\n 'consonant',\n 'constable',\n 'constant',\n 'constrain',\n 'constrict',\n 'construct',\n 'consult',\n 'consumer',\n 'consuming',\n 'contact',\n 'container',\n 'contempt',\n 'contend',\n 'contented',\n 'contently',\n 'contents',\n 'contest',\n 'context',\n 'contort',\n 'contour',\n 'contrite',\n 'control',\n 'contusion',\n 'convene',\n 'convent',\n 'copartner',\n 'cope',\n 'copied',\n 'copier',\n 'copilot',\n 'coping',\n 'copious',\n 'copper',\n 'copy',\n 'coral',\n 'cork',\n 'cornball',\n 'cornbread',\n 'corncob',\n 'cornea',\n 'corned',\n 'corner',\n 'cornfield',\n 'cornflake',\n 'cornhusk',\n 'cornmeal',\n 'cornstalk',\n 'corny',\n 'coronary',\n 'coroner',\n 'corporal',\n 'corporate',\n 'corral',\n 'correct',\n 'corridor',\n 'corrode',\n 'corroding',\n 'corrosive',\n 'corsage',\n 'corset',\n 'cortex',\n 'cosigner',\n 'cosmetics',\n 'cosmic',\n 'cosmos',\n 'cosponsor',\n 'cost',\n 'cottage',\n 'cotton',\n 'couch',\n 'cough',\n 'could',\n 'countable',\n 'countdown',\n 'counting',\n 'countless',\n 'country',\n 'county',\n 'courier',\n 'covenant',\n 'cover',\n 'coveted',\n 'coveting',\n 'coyness',\n 'cozily',\n 'coziness',\n 'cozy',\n 'crabbing',\n 'crabgrass',\n 'crablike',\n 'crabmeat',\n 'cradle',\n 'cradling',\n 'crafter',\n 'craftily',\n 'craftsman',\n 'craftwork',\n 'crafty',\n 'cramp',\n 'cranberry',\n 'crane',\n 'cranial',\n 'cranium',\n 'crank',\n 'crate',\n 'crave',\n 'craving',\n 'crawfish',\n 'crawlers',\n 'crawling',\n 'crayfish',\n 'crayon',\n 'crazed',\n 'crazily',\n 'craziness',\n 'crazy',\n 'creamed',\n 'creamer',\n 'creamlike',\n 'crease',\n 'creasing',\n 'creatable',\n 'create',\n 'creation',\n 'creative',\n 'creature',\n 'credible',\n 'credibly',\n 'credit',\n 'creed',\n 'creme',\n 'creole',\n 'crepe',\n 'crept',\n 'crescent',\n 'crested',\n 'cresting',\n 'crestless',\n 'crevice',\n 'crewless',\n 'crewman',\n 'crewmate',\n 'crib',\n 'cricket',\n 'cried',\n 'crier',\n 'crimp',\n 'crimson',\n 'cringe',\n 'cringing',\n 'crinkle',\n 'crinkly',\n 'crisped',\n 'crisping',\n 'crisply',\n 'crispness',\n 'crispy',\n 'criteria',\n 'critter',\n 'croak',\n 'crock',\n 'crook',\n 'croon',\n 'crop',\n 'cross',\n 'crouch',\n 'crouton',\n 'crowbar',\n 'crowd',\n 'crown',\n 'crucial',\n 'crudely',\n 'crudeness',\n 'cruelly',\n 'cruelness',\n 'cruelty',\n 'crumb',\n 'crummiest',\n 'crummy',\n 'crumpet',\n 'crumpled',\n 'cruncher',\n 'crunching',\n 'crunchy',\n 'crusader',\n 'crushable',\n 'crushed',\n 'crusher',\n 'crushing',\n 'crust',\n 'crux',\n 'crying',\n 'cryptic',\n 'crystal',\n 'cubbyhole',\n 'cube',\n 'cubical',\n 'cubicle',\n 'cucumber',\n 'cuddle',\n 'cuddly',\n 'cufflink',\n 'culinary',\n 'culminate',\n 'culpable',\n 'culprit',\n 'cultivate',\n 'cultural',\n 'culture',\n 'cupbearer',\n 'cupcake',\n 'cupid',\n 'cupped',\n 'cupping',\n 'curable',\n 'curator',\n 'curdle',\n 'cure',\n 'curfew',\n 'curing',\n 'curled',\n 'curler',\n 'curliness',\n 'curling',\n 'curly',\n 'curry',\n 'curse',\n 'cursive',\n 'cursor',\n 'curtain',\n 'curtly',\n 'curtsy',\n 'curvature',\n 'curve',\n 'curvy',\n 'cushy',\n 'cusp',\n 'cussed',\n 'custard',\n 'custodian',\n 'custody',\n 'customary',\n 'customer',\n 'customize',\n 'customs',\n 'cut',\n 'cycle',\n 'cyclic',\n 'cycling',\n 'cyclist',\n 'cylinder',\n 'cymbal',\n 'cytoplasm',\n 'cytoplast',\n 'dab',\n 'dad',\n 'daffodil',\n 'dagger',\n 'daily',\n 'daintily',\n 'dainty',\n 'dairy',\n 'daisy',\n 'dallying',\n 'dance',\n 'dancing',\n 'dandelion',\n 'dander',\n 'dandruff',\n 'dandy',\n 'danger',\n 'dangle',\n 'dangling',\n 'daredevil',\n 'dares',\n 'daringly',\n 'darkened',\n 'darkening',\n 'darkish',\n 'darkness',\n 'darkroom',\n 'darling',\n 'darn',\n 'dart',\n 'darwinism',\n 'dash',\n 'dastardly',\n 'data',\n 'datebook',\n 'dating',\n 'daughter',\n 'daunting',\n 'dawdler',\n 'dawn',\n 'daybed',\n 'daybreak',\n 'daycare',\n 'daydream',\n 'daylight',\n 'daylong',\n 'dayroom',\n 'daytime',\n 'dazzler',\n 'dazzling',\n 'deacon',\n 'deafening',\n 'deafness',\n 'dealer',\n 'dealing',\n 'dealmaker',\n 'dealt',\n 'dean',\n 'debatable',\n 'debate',\n 'debating',\n 'debit',\n 'debrief',\n 'debtless',\n 'debtor',\n 'debug',\n 'debunk',\n 'decade',\n 'decaf',\n 'decal',\n 'decathlon',\n 'decay',\n 'deceased',\n 'deceit',\n 'deceiver',\n 'deceiving',\n 'december',\n 'decency',\n 'decent',\n 'deception',\n 'deceptive',\n 'decibel',\n 'decidable',\n 'decimal',\n 'decimeter',\n 'decipher',\n 'deck',\n 'declared',\n 'decline',\n 'decode',\n 'decompose',\n 'decorated',\n 'decorator',\n 'decoy',\n 'decrease',\n 'decree',\n 'dedicate',\n 'dedicator',\n 'deduce',\n 'deduct',\n 'deed',\n 'deem',\n 'deepen',\n 'deeply',\n 'deepness',\n 'deface',\n 'defacing',\n 'defame',\n 'default',\n 'defeat',\n 'defection',\n 'defective',\n 'defendant',\n 'defender',\n 'defense',\n 'defensive',\n 'deferral',\n 'deferred',\n 'defiance',\n 'defiant',\n 'defile',\n 'defiling',\n 'define',\n 'definite',\n 'deflate',\n 'deflation',\n 'deflator',\n 'deflected',\n 'deflector',\n 'defog',\n 'deforest',\n 'defraud',\n 'defrost',\n 'deftly',\n 'defuse',\n 'defy',\n 'degraded',\n 'degrading',\n 'degrease',\n 'degree',\n 'dehydrate',\n 'deity',\n 'dejected',\n 'delay',\n 'delegate',\n 'delegator',\n 'delete',\n 'deletion',\n 'delicacy',\n 'delicate',\n 'delicious',\n 'delighted',\n 'delirious',\n 'delirium',\n 'deliverer',\n 'delivery',\n 'delouse',\n 'delta',\n 'deluge',\n 'delusion',\n 'deluxe',\n 'demanding',\n 'demeaning',\n 'demeanor',\n 'demise',\n 'democracy',\n 'democrat',\n 'demote',\n 'demotion',\n 'demystify',\n 'denatured',\n 'deniable',\n 'denial',\n 'denim',\n 'denote',\n 'dense',\n 'density',\n 'dental',\n 'dentist',\n 'denture',\n 'deny',\n 'deodorant',\n 'deodorize',\n 'departed',\n 'departure',\n 'depict',\n 'deplete',\n 'depletion',\n 'deplored',\n 'deploy',\n 'deport',\n 'depose',\n 'depraved',\n 'depravity',\n 'deprecate',\n 'depress',\n 'deprive',\n 'depth',\n 'deputize',\n 'deputy',\n 'derail',\n 'deranged',\n 'derby',\n 'derived',\n 'desecrate',\n 'deserve',\n 'deserving',\n 'designate',\n 'designed',\n 'designer',\n 'designing',\n 'deskbound',\n 'desktop',\n 'deskwork',\n 'desolate',\n 'despair',\n 'despise',\n 'despite',\n 'destiny',\n 'destitute',\n 'destruct',\n 'detached',\n 'detail',\n 'detection',\n 'detective',\n 'detector',\n 'detention',\n 'detergent',\n 'detest',\n 'detonate',\n 'detonator',\n 'detoxify',\n 'detract',\n 'deuce',\n 'devalue',\n 'deviancy',\n 'deviant',\n 'deviate',\n 'deviation',\n 'deviator',\n 'device',\n 'devious',\n 'devotedly',\n 'devotee',\n 'devotion',\n 'devourer',\n 'devouring',\n 'devoutly',\n 'dexterity',\n 'dexterous',\n 'diabetes',\n 'diabetic',\n 'diabolic',\n 'diagnoses',\n 'diagnosis',\n 'diagram',\n 'dial',\n 'diameter',\n 'diaper',\n 'diaphragm',\n 'diary',\n 'dice',\n 'dicing',\n 'dictate',\n 'dictation',\n 'dictator',\n 'difficult',\n 'diffused',\n 'diffuser',\n 'diffusion',\n 'diffusive',\n 'dig',\n 'dilation',\n 'diligence',\n 'diligent',\n 'dill',\n 'dilute',\n 'dime',\n 'diminish',\n 'dimly',\n 'dimmed',\n 'dimmer',\n 'dimness',\n 'dimple',\n 'diner',\n 'dingbat',\n 'dinghy',\n 'dinginess',\n 'dingo',\n 'dingy',\n 'dining',\n 'dinner',\n 'diocese',\n 'dioxide',\n 'diploma',\n 'dipped',\n 'dipper',\n 'dipping',\n 'directed',\n 'direction',\n 'directive',\n 'directly',\n 'directory',\n 'direness',\n 'dirtiness',\n 'disabled',\n 'disagree',\n 'disallow',\n 'disarm',\n 'disarray',\n 'disaster',\n 'disband',\n 'disbelief',\n 'disburse',\n 'discard',\n 'discern',\n 'discharge',\n 'disclose',\n 'discolor',\n 'discount',\n 'discourse',\n 'discover',\n 'discuss',\n 'disdain',\n 'disengage',\n 'disfigure',\n 'disgrace',\n 'dish',\n 'disinfect',\n 'disjoin',\n 'disk',\n 'dislike',\n 'disliking',\n 'dislocate',\n 'dislodge',\n 'disloyal',\n 'dismantle',\n 'dismay',\n 'dismiss',\n 'dismount',\n 'disobey',\n 'disorder',\n 'disown',\n 'disparate',\n 'disparity',\n 'dispatch',\n 'dispense',\n 'dispersal',\n 'dispersed',\n 'disperser',\n 'displace',\n 'display',\n 'displease',\n 'disposal',\n 'dispose',\n 'disprove',\n 'dispute',\n 'disregard',\n 'disrupt',\n 'dissuade',\n 'distance',\n 'distant',\n 'distaste',\n 'distill',\n 'distinct',\n 'distort',\n 'distract',\n 'distress',\n 'district',\n 'distrust',\n 'ditch',\n 'ditto',\n 'ditzy',\n 'dividable',\n 'divided',\n 'dividend',\n 'dividers',\n 'dividing',\n 'divinely',\n 'diving',\n 'divinity',\n 'divisible',\n 'divisibly',\n 'division',\n 'divisive',\n 'divorcee',\n 'dizziness',\n 'dizzy',\n 'doable',\n 'docile',\n 'dock',\n 'doctrine',\n 'document',\n 'dodge',\n 'dodgy',\n 'doily',\n 'doing',\n 'dole',\n 'dollar',\n 'dollhouse',\n 'dollop',\n 'dolly',\n 'dolphin',\n 'domain',\n 'domelike',\n 'domestic',\n 'dominion',\n 'dominoes',\n 'donated',\n 'donation',\n 'donator',\n 'donor',\n 'donut',\n 'doodle',\n 'doorbell',\n 'doorframe',\n 'doorknob',\n 'doorman',\n 'doormat',\n 'doornail',\n 'doorpost',\n 'doorstep',\n 'doorstop',\n 'doorway',\n 'doozy',\n 'dork',\n 'dormitory',\n 'dorsal',\n 'dosage',\n 'dose',\n 'dotted',\n 'doubling',\n 'douche',\n 'dove',\n 'down',\n 'dowry',\n 'doze',\n 'drab',\n 'dragging',\n 'dragonfly',\n 'dragonish',\n 'dragster',\n 'drainable',\n 'drainage',\n 'drained',\n 'drainer',\n 'drainpipe',\n 'dramatic',\n 'dramatize',\n 'drank',\n 'drapery',\n 'drastic',\n 'draw',\n 'dreaded',\n 'dreadful',\n 'dreadlock',\n 'dreamboat',\n 'dreamily',\n 'dreamland',\n 'dreamless',\n 'dreamlike',\n 'dreamt',\n 'dreamy',\n 'drearily',\n 'dreary',\n 'drench',\n 'dress',\n 'drew',\n 'dribble',\n 'dried',\n 'drier',\n 'drift',\n 'driller',\n 'drilling',\n 'drinkable',\n 'drinking',\n 'dripping',\n 'drippy',\n 'drivable',\n 'driven',\n 'driver',\n 'driveway',\n 'driving',\n 'drizzle',\n 'drizzly',\n 'drone',\n 'drool',\n 'droop',\n 'drop-down',\n 'dropbox',\n 'dropkick',\n 'droplet',\n 'dropout',\n 'dropper',\n 'drove',\n 'drown',\n 'drowsily',\n 'drudge',\n 'drum',\n 'dry',\n 'dubbed',\n 'dubiously',\n 'duchess',\n 'duckbill',\n 'ducking',\n 'duckling',\n 'ducktail',\n 'ducky',\n 'duct',\n 'dude',\n 'duffel',\n 'dugout',\n 'duh',\n 'duke',\n 'duller',\n 'dullness',\n 'duly',\n 'dumping',\n 'dumpling',\n 'dumpster',\n 'duo',\n 'dupe',\n 'duplex',\n 'duplicate',\n 'duplicity',\n 'durable',\n 'durably',\n 'duration',\n 'duress',\n 'during',\n 'dusk',\n 'dust',\n 'dutiful',\n 'duty',\n 'duvet',\n 'dwarf',\n 'dweeb',\n 'dwelled',\n 'dweller',\n 'dwelling',\n 'dwindle',\n 'dwindling',\n 'dynamic',\n 'dynamite',\n 'dynasty',\n 'dyslexia',\n 'dyslexic',\n 'each',\n 'eagle',\n 'earache',\n 'eardrum',\n 'earflap',\n 'earful',\n 'earlobe',\n 'early',\n 'earmark',\n 'earmuff',\n 'earphone',\n 'earpiece',\n 'earplugs',\n 'earring',\n 'earshot',\n 'earthen',\n 'earthlike',\n 'earthling',\n 'earthly',\n 'earthworm',\n 'earthy',\n 'earwig',\n 'easeful',\n 'easel',\n 'easiest',\n 'easily',\n 'easiness',\n 'easing',\n 'eastbound',\n 'eastcoast',\n 'easter',\n 'eastward',\n 'eatable',\n 'eaten',\n 'eatery',\n 'eating',\n 'eats',\n 'ebay',\n 'ebony',\n 'ebook',\n 'ecard',\n 'eccentric',\n 'echo',\n 'eclair',\n 'eclipse',\n 'ecologist',\n 'ecology',\n 'economic',\n 'economist',\n 'economy',\n 'ecosphere',\n 'ecosystem',\n 'edge',\n 'edginess',\n 'edging',\n 'edgy',\n 'edition',\n 'editor',\n 'educated',\n 'education',\n 'educator',\n 'eel',\n 'effective',\n 'effects',\n 'efficient',\n 'effort',\n 'eggbeater',\n 'egging',\n 'eggnog',\n 'eggplant',\n 'eggshell',\n 'egomaniac',\n 'egotism',\n 'egotistic',\n 'either',\n 'eject',\n 'elaborate',\n 'elastic',\n 'elated',\n 'elbow',\n 'eldercare',\n 'elderly',\n 'eldest',\n 'electable',\n 'election',\n 'elective',\n 'elephant',\n 'elevate',\n 'elevating',\n 'elevation',\n 'elevator',\n 'eleven',\n 'elf',\n 'eligible',\n 'eligibly',\n 'eliminate',\n 'elite',\n 'elitism',\n 'elixir',\n 'elk',\n 'ellipse',\n 'elliptic',\n 'elm',\n 'elongated',\n 'elope',\n 'eloquence',\n 'eloquent',\n 'elsewhere',\n 'elude',\n 'elusive',\n 'elves',\n 'email',\n 'embargo',\n 'embark',\n 'embassy',\n 'embattled',\n 'embellish',\n 'ember',\n 'embezzle',\n 'emblaze',\n 'emblem',\n 'embody',\n 'embolism',\n 'emboss',\n 'embroider',\n 'emcee',\n 'emerald',\n 'emergency',\n 'emission',\n 'emit',\n 'emote',\n 'emoticon',\n 'emotion',\n 'empathic',\n 'empathy',\n 'emperor',\n 'emphases',\n 'emphasis',\n 'emphasize',\n 'emphatic',\n 'empirical',\n 'employed',\n 'employee',\n 'employer',\n 'emporium',\n 'empower',\n 'emptier',\n 'emptiness',\n 'empty',\n 'emu',\n 'enable',\n 'enactment',\n 'enamel',\n 'enchanted',\n 'enchilada',\n 'encircle',\n 'enclose',\n 'enclosure',\n 'encode',\n 'encore',\n 'encounter',\n 'encourage',\n 'encroach',\n 'encrust',\n 'encrypt',\n 'endanger',\n 'endeared',\n 'endearing',\n 'ended',\n 'ending',\n 'endless',\n 'endnote',\n 'endocrine',\n 'endorphin',\n 'endorse',\n 'endowment',\n 'endpoint',\n 'endurable',\n 'endurance',\n 'enduring',\n 'energetic',\n 'energize',\n 'energy',\n 'enforced',\n 'enforcer',\n 'engaged',\n 'engaging',\n 'engine',\n 'engorge',\n 'engraved',\n 'engraver',\n 'engraving',\n 'engross',\n 'engulf',\n 'enhance',\n 'enigmatic',\n 'enjoyable',\n 'enjoyably',\n 'enjoyer',\n 'enjoying',\n 'enjoyment',\n 'enlarged',\n 'enlarging',\n 'enlighten',\n 'enlisted',\n 'enquirer',\n 'enrage',\n 'enrich',\n 'enroll',\n 'enslave',\n 'ensnare',\n 'ensure',\n 'entail',\n 'entangled',\n 'entering',\n 'entertain',\n 'enticing',\n 'entire',\n 'entitle',\n 'entity',\n 'entomb',\n 'entourage',\n 'entrap',\n 'entree',\n 'entrench',\n 'entrust',\n 'entryway',\n 'entwine',\n 'enunciate',\n 'envelope',\n 'enviable',\n 'enviably',\n 'envious',\n 'envision',\n 'envoy',\n 'envy',\n 'enzyme',\n 'epic',\n 'epidemic',\n 'epidermal',\n 'epidermis',\n 'epidural',\n 'epilepsy',\n 'epileptic',\n 'epilogue',\n 'epiphany',\n 'episode',\n 'equal',\n 'equate',\n 'equation',\n 'equator',\n 'equinox',\n 'equipment',\n 'equity',\n 'equivocal',\n 'eradicate',\n 'erasable',\n 'erased',\n 'eraser',\n 'erasure',\n 'ergonomic',\n 'errand',\n 'errant',\n 'erratic',\n 'error',\n 'erupt',\n 'escalate',\n 'escalator',\n 'escapable',\n 'escapade',\n 'escapist',\n 'escargot',\n 'eskimo',\n 'esophagus',\n 'espionage',\n 'espresso',\n 'esquire',\n 'essay',\n 'essence',\n 'essential',\n 'establish',\n 'estate',\n 'esteemed',\n 'estimate',\n 'estimator',\n 'estranged',\n 'estrogen',\n 'etching',\n 'eternal',\n 'eternity',\n 'ethanol',\n 'ether',\n 'ethically',\n 'ethics',\n 'euphemism',\n 'evacuate',\n 'evacuee',\n 'evade',\n 'evaluate',\n 'evaluator',\n 'evaporate',\n 'evasion',\n 'evasive',\n 'even',\n 'everglade',\n 'evergreen',\n 'everybody',\n 'everyday',\n 'everyone',\n 'evict',\n 'evidence',\n 'evident',\n 'evil',\n 'evoke',\n 'evolution',\n 'evolve',\n 'exact',\n 'exalted',\n 'example',\n 'excavate',\n 'excavator',\n 'exceeding',\n 'exception',\n 'excess',\n 'exchange',\n 'excitable',\n 'exciting',\n 'exclaim',\n 'exclude',\n 'excluding',\n 'exclusion',\n 'exclusive',\n 'excretion',\n 'excretory',\n 'excursion',\n 'excusable',\n 'excusably',\n 'excuse',\n 'exemplary',\n 'exemplify',\n 'exemption',\n 'exerciser',\n 'exert',\n 'exes',\n 'exfoliate',\n 'exhale',\n 'exhaust',\n 'exhume',\n 'exile',\n 'existing',\n 'exit',\n 'exodus',\n 'exonerate',\n 'exorcism',\n 'exorcist',\n 'expand',\n 'expanse',\n 'expansion',\n 'expansive',\n 'expectant',\n 'expedited',\n 'expediter',\n 'expel',\n 'expend',\n 'expenses',\n 'expensive',\n 'expert',\n 'expire',\n 'expiring',\n 'explain',\n 'expletive',\n 'explicit',\n 'explode',\n 'exploit',\n 'explore',\n 'exploring',\n 'exponent',\n 'exporter',\n 'exposable',\n 'expose',\n 'exposure',\n 'express',\n 'expulsion',\n 'exquisite',\n 'extended',\n 'extending',\n 'extent',\n 'extenuate',\n 'exterior',\n 'external',\n 'extinct',\n 'extortion',\n 'extradite',\n 'extras',\n 'extrovert',\n 'extrude',\n 'extruding',\n 'exuberant',\n 'fable',\n 'fabric',\n 'fabulous',\n 'facebook',\n 'facecloth',\n 'facedown',\n 'faceless',\n 'facelift',\n 'faceplate',\n 'faceted',\n 'facial',\n 'facility',\n 'facing',\n 'facsimile',\n 'faction',\n 'factoid',\n 'factor',\n 'factsheet',\n 'factual',\n 'faculty',\n 'fade',\n 'fading',\n 'failing',\n 'falcon',\n 'fall',\n 'false',\n 'falsify',\n 'fame',\n 'familiar',\n 'family',\n 'famine',\n 'famished',\n 'fanatic',\n 'fancied',\n 'fanciness',\n 'fancy',\n 'fanfare',\n 'fang',\n 'fanning',\n 'fantasize',\n 'fantastic',\n 'fantasy',\n 'fascism',\n 'fastball',\n 'faster',\n 'fasting',\n 'fastness',\n 'faucet',\n 'favorable',\n 'favorably',\n 'favored',\n 'favoring',\n 'favorite',\n 'fax',\n 'feast',\n 'federal',\n 'fedora',\n 'feeble',\n 'feed',\n 'feel',\n 'feisty',\n 'feline',\n 'felt-tip',\n 'feminine',\n 'feminism',\n 'feminist',\n 'feminize',\n 'femur',\n 'fence',\n 'fencing',\n 'fender',\n 'ferment',\n 'fernlike',\n 'ferocious',\n 'ferocity',\n 'ferret',\n 'ferris',\n 'ferry',\n 'fervor',\n 'fester',\n 'festival',\n 'festive',\n 'festivity',\n 'fetal',\n 'fetch',\n 'fever',\n 'fiber',\n 'fiction',\n 'fiddle',\n 'fiddling',\n 'fidelity',\n 'fidgeting',\n 'fidgety',\n 'fifteen',\n 'fifth',\n 'fiftieth',\n 'fifty',\n 'figment',\n 'figure',\n 'figurine',\n 'filing',\n 'filled',\n 'filler',\n 'filling',\n 'film',\n 'filter',\n 'filth',\n 'filtrate',\n 'finale',\n 'finalist',\n 'finalize',\n 'finally',\n 'finance',\n 'financial',\n 'finch',\n 'fineness',\n 'finer',\n 'finicky',\n 'finished',\n 'finisher',\n 'finishing',\n 'finite',\n 'finless',\n 'finlike',\n 'fiscally',\n 'fit',\n 'five',\n 'flaccid',\n 'flagman',\n 'flagpole',\n 'flagship',\n 'flagstick',\n 'flagstone',\n 'flail',\n 'flakily',\n 'flaky',\n 'flame',\n 'flammable',\n 'flanked',\n 'flanking',\n 'flannels',\n 'flap',\n 'flaring',\n 'flashback',\n 'flashbulb',\n 'flashcard',\n 'flashily',\n 'flashing',\n 'flashy',\n 'flask',\n 'flatbed',\n 'flatfoot',\n 'flatly',\n 'flatness',\n 'flatten',\n 'flattered',\n 'flatterer',\n 'flattery',\n 'flattop',\n 'flatware',\n 'flatworm',\n 'flavored',\n 'flavorful',\n 'flavoring',\n 'flaxseed',\n 'fled',\n 'fleshed',\n 'fleshy',\n 'flick',\n 'flier',\n 'flight',\n 'flinch',\n 'fling',\n 'flint',\n 'flip',\n 'flirt',\n 'float',\n 'flock',\n 'flogging',\n 'flop',\n 'floral',\n 'florist',\n 'floss',\n 'flounder',\n 'flyable',\n 'flyaway',\n 'flyer',\n 'flying',\n 'flyover',\n 'flypaper',\n 'foam',\n 'foe',\n 'fog',\n 'foil',\n 'folic',\n 'folk',\n 'follicle',\n 'follow',\n 'fondling',\n 'fondly',\n 'fondness',\n 'fondue',\n 'font',\n 'food',\n 'fool',\n 'footage',\n 'football',\n 'footbath',\n 'footboard',\n 'footer',\n 'footgear',\n 'foothill',\n 'foothold',\n 'footing',\n 'footless',\n 'footman',\n 'footnote',\n 'footpad',\n 'footpath',\n 'footprint',\n 'footrest',\n 'footsie',\n 'footsore',\n 'footwear',\n 'footwork',\n 'fossil',\n 'foster',\n 'founder',\n 'founding',\n 'fountain',\n 'fox',\n 'foyer',\n 'fraction',\n 'fracture',\n 'fragile',\n 'fragility',\n 'fragment',\n 'fragrance',\n 'fragrant',\n 'frail',\n 'frame',\n 'framing',\n 'frantic',\n 'fraternal',\n 'frayed',\n 'fraying',\n 'frays',\n 'freckled',\n 'freckles',\n 'freebase',\n 'freebee',\n 'freebie',\n 'freedom',\n 'freefall',\n 'freehand',\n 'freeing',\n 'freeload',\n 'freely',\n 'freemason',\n 'freeness',\n 'freestyle',\n 'freeware',\n 'freeway',\n 'freewill',\n 'freezable',\n 'freezing',\n 'freight',\n 'french',\n 'frenzied',\n 'frenzy',\n 'frequency',\n 'frequent',\n 'fresh',\n 'fretful',\n 'fretted',\n 'friction',\n 'friday',\n 'fridge',\n 'fried',\n 'friend',\n 'frighten',\n 'frightful',\n 'frigidity',\n 'frigidly',\n 'frill',\n 'fringe',\n 'frisbee',\n 'frisk',\n 'fritter',\n 'frivolous',\n 'frolic',\n 'from',\n 'front',\n 'frostbite',\n 'frosted',\n 'frostily',\n 'frosting',\n 'frostlike',\n 'frosty',\n 'froth',\n 'frown',\n 'frozen',\n 'fructose',\n 'frugality',\n 'frugally',\n 'fruit',\n 'frustrate',\n 'frying',\n 'gab',\n 'gaffe',\n 'gag',\n 'gainfully',\n 'gaining',\n 'gains',\n 'gala',\n 'gallantly',\n 'galleria',\n 'gallery',\n 'galley',\n 'gallon',\n 'gallows',\n 'gallstone',\n 'galore',\n 'galvanize',\n 'gambling',\n 'game',\n 'gaming',\n 'gamma',\n 'gander',\n 'gangly',\n 'gangrene',\n 'gangway',\n 'gap',\n 'garage',\n 'garbage',\n 'garden',\n 'gargle',\n 'garland',\n 'garlic',\n 'garment',\n 'garnet',\n 'garnish',\n 'garter',\n 'gas',\n 'gatherer',\n 'gathering',\n 'gating',\n 'gauging',\n 'gauntlet',\n 'gauze',\n 'gave',\n 'gawk',\n 'gazing',\n 'gear',\n 'gecko',\n 'geek',\n 'geiger',\n 'gem',\n 'gender',\n 'generic',\n 'generous',\n 'genetics',\n 'genre',\n 'gentile',\n 'gentleman',\n 'gently',\n 'gents',\n 'geography',\n 'geologic',\n 'geologist',\n 'geology',\n 'geometric',\n 'geometry',\n 'geranium',\n 'gerbil',\n 'geriatric',\n 'germicide',\n 'germinate',\n 'germless',\n 'germproof',\n 'gestate',\n 'gestation',\n 'gesture',\n 'getaway',\n 'getting',\n 'getup',\n 'giant',\n 'gibberish',\n 'giblet',\n 'giddily',\n 'giddiness',\n 'giddy',\n 'gift',\n 'gigabyte',\n 'gigahertz',\n 'gigantic',\n 'giggle',\n 'giggling',\n 'giggly',\n 'gigolo',\n 'gilled',\n 'gills',\n 'gimmick',\n 'girdle',\n 'giveaway',\n 'given',\n 'giver',\n 'giving',\n 'gizmo',\n 'gizzard',\n 'glacial',\n 'glacier',\n 'glade',\n 'gladiator',\n 'gladly',\n 'glamorous',\n 'glamour',\n 'glance',\n 'glancing',\n 'glandular',\n 'glare',\n 'glaring',\n 'glass',\n 'glaucoma',\n 'glazing',\n 'gleaming',\n 'gleeful',\n 'glider',\n 'gliding',\n 'glimmer',\n 'glimpse',\n 'glisten',\n 'glitch',\n 'glitter',\n 'glitzy',\n 'gloater',\n 'gloating',\n 'gloomily',\n 'gloomy',\n 'glorified',\n 'glorifier',\n 'glorify',\n 'glorious',\n 'glory',\n 'gloss',\n 'glove',\n 'glowing',\n 'glowworm',\n 'glucose',\n 'glue',\n 'gluten',\n 'glutinous',\n 'glutton',\n 'gnarly',\n 'gnat',\n 'goal',\n 'goatskin',\n 'goes',\n 'goggles',\n 'going',\n 'goldfish',\n 'goldmine',\n 'goldsmith',\n 'golf',\n 'goliath',\n 'gonad',\n 'gondola',\n 'gone',\n 'gong',\n 'good',\n 'gooey',\n 'goofball',\n 'goofiness',\n 'goofy',\n 'google',\n 'goon',\n 'gopher',\n 'gore',\n 'gorged',\n 'gorgeous',\n 'gory',\n 'gosling',\n 'gossip',\n 'gothic',\n 'gotten',\n 'gout',\n 'gown',\n 'grab',\n 'graceful',\n 'graceless',\n 'gracious',\n 'gradation',\n 'graded',\n 'grader',\n 'gradient',\n 'grading',\n 'gradually',\n 'graduate',\n 'graffiti',\n 'grafted',\n 'grafting',\n 'grain',\n 'granddad',\n 'grandkid',\n 'grandly',\n 'grandma',\n 'grandpa',\n 'grandson',\n 'granite',\n 'granny',\n 'granola',\n 'grant',\n 'granular',\n 'grape',\n 'graph',\n 'grapple',\n 'grappling',\n 'grasp',\n 'grass',\n 'gratified',\n 'gratify',\n 'grating',\n 'gratitude',\n 'gratuity',\n 'gravel',\n 'graveness',\n 'graves',\n 'graveyard',\n 'gravitate',\n 'gravity',\n 'gravy',\n 'gray',\n 'grazing',\n 'greasily',\n 'greedily',\n 'greedless',\n 'greedy',\n 'green',\n 'greeter',\n 'greeting',\n 'grew',\n 'greyhound',\n 'grid',\n 'grief',\n 'grievance',\n 'grieving',\n 'grievous',\n 'grill',\n 'grimace',\n 'grimacing',\n 'grime',\n 'griminess',\n 'grimy',\n 'grinch',\n 'grinning',\n 'grip',\n 'gristle',\n 'grit',\n 'groggily',\n 'groggy',\n 'groin',\n 'groom',\n 'groove',\n 'grooving',\n 'groovy',\n 'grope',\n 'ground',\n 'grouped',\n 'grout',\n 'grove',\n 'grower',\n 'growing',\n 'growl',\n 'grub',\n 'grudge',\n 'grudging',\n 'grueling',\n 'gruffly',\n 'grumble',\n 'grumbling',\n 'grumbly',\n 'grumpily',\n 'grunge',\n 'grunt',\n 'guacamole',\n 'guidable',\n 'guidance',\n 'guide',\n 'guiding',\n 'guileless',\n 'guise',\n 'gulf',\n 'gullible',\n 'gully',\n 'gulp',\n 'gumball',\n 'gumdrop',\n 'gumminess',\n 'gumming',\n 'gummy',\n 'gurgle',\n 'gurgling',\n 'guru',\n 'gush',\n 'gusto',\n 'gusty',\n 'gutless',\n 'guts',\n 'gutter',\n 'guy',\n 'guzzler',\n 'gyration',\n 'habitable',\n 'habitant',\n 'habitat',\n 'habitual',\n 'hacked',\n 'hacker',\n 'hacking',\n 'hacksaw',\n 'had',\n 'haggler',\n 'haiku',\n 'half',\n 'halogen',\n 'halt',\n 'halved',\n 'halves',\n 'hamburger',\n 'hamlet',\n 'hammock',\n 'hamper',\n 'hamster',\n 'hamstring',\n 'handbag',\n 'handball',\n 'handbook',\n 'handbrake',\n 'handcart',\n 'handclap',\n 'handclasp',\n 'handcraft',\n 'handcuff',\n 'handed',\n 'handful',\n 'handgrip',\n 'handgun',\n 'handheld',\n 'handiness',\n 'handiwork',\n 'handlebar',\n 'handled',\n 'handler',\n 'handling',\n 'handmade',\n 'handoff',\n 'handpick',\n 'handprint',\n 'handrail',\n 'handsaw',\n 'handset',\n 'handsfree',\n 'handshake',\n 'handstand',\n 'handwash',\n 'handwork',\n 'handwoven',\n 'handwrite',\n 'handyman',\n 'hangnail',\n 'hangout',\n 'hangover',\n 'hangup',\n 'hankering',\n 'hankie',\n 'hanky',\n 'haphazard',\n 'happening',\n 'happier',\n 'happiest',\n 'happily',\n 'happiness',\n 'happy',\n 'harbor',\n 'hardcopy',\n 'hardcore',\n 'hardcover',\n 'harddisk',\n 'hardened',\n 'hardener',\n 'hardening',\n 'hardhat',\n 'hardhead',\n 'hardiness',\n 'hardly',\n 'hardness',\n 'hardship',\n 'hardware',\n 'hardwired',\n 'hardwood',\n 'hardy',\n 'harmful',\n 'harmless',\n 'harmonica',\n 'harmonics',\n 'harmonize',\n 'harmony',\n 'harness',\n 'harpist',\n 'harsh',\n 'harvest',\n 'hash',\n 'hassle',\n 'haste',\n 'hastily',\n 'hastiness',\n 'hasty',\n 'hatbox',\n 'hatchback',\n 'hatchery',\n 'hatchet',\n 'hatching',\n 'hatchling',\n 'hate',\n 'hatless',\n 'hatred',\n 'haunt',\n 'haven',\n 'hazard',\n 'hazelnut',\n 'hazily',\n 'haziness',\n 'hazing',\n 'hazy',\n 'headache',\n 'headband',\n 'headboard',\n 'headcount',\n 'headdress',\n 'headed',\n 'header',\n 'headfirst',\n 'headgear',\n 'heading',\n 'headlamp',\n 'headless',\n 'headlock',\n 'headphone',\n 'headpiece',\n 'headrest',\n 'headroom',\n 'headscarf',\n 'headset',\n 'headsman',\n 'headstand',\n 'headstone',\n 'headway',\n 'headwear',\n 'heap',\n 'heat',\n 'heave',\n 'heavily',\n 'heaviness',\n 'heaving',\n 'hedge',\n 'hedging',\n 'heftiness',\n 'hefty',\n 'helium',\n 'helmet',\n 'helper',\n 'helpful',\n 'helping',\n 'helpless',\n 'helpline',\n 'hemlock',\n 'hemstitch',\n 'hence',\n 'henchman',\n 'henna',\n 'herald',\n 'herbal',\n 'herbicide',\n 'herbs',\n 'heritage',\n 'hermit',\n 'heroics',\n 'heroism',\n 'herring',\n 'herself',\n 'hertz',\n 'hesitancy',\n 'hesitant',\n 'hesitate',\n 'hexagon',\n 'hexagram',\n 'hubcap',\n 'huddle',\n 'huddling',\n 'huff',\n 'hug',\n 'hula',\n 'hulk',\n 'hull',\n 'human',\n 'humble',\n 'humbling',\n 'humbly',\n 'humid',\n 'humiliate',\n 'humility',\n 'humming',\n 'hummus',\n 'humongous',\n 'humorist',\n 'humorless',\n 'humorous',\n 'humpback',\n 'humped',\n 'humvee',\n 'hunchback',\n 'hundredth',\n 'hunger',\n 'hungrily',\n 'hungry',\n 'hunk',\n 'hunter',\n 'hunting',\n 'huntress',\n 'huntsman',\n 'hurdle',\n 'hurled',\n 'hurler',\n 'hurling',\n 'hurray',\n 'hurricane',\n 'hurried',\n 'hurry',\n 'hurt',\n 'husband',\n 'hush',\n 'husked',\n 'huskiness',\n 'hut',\n 'hybrid',\n 'hydrant',\n 'hydrated',\n 'hydration',\n 'hydrogen',\n 'hydroxide',\n 'hyperlink',\n 'hypertext',\n 'hyphen',\n 'hypnoses',\n 'hypnosis',\n 'hypnotic',\n 'hypnotism',\n 'hypnotist',\n 'hypnotize',\n 'hypocrisy',\n 'hypocrite',\n 'ibuprofen',\n 'ice',\n 'iciness',\n 'icing',\n 'icky',\n 'icon',\n 'icy',\n 'idealism',\n 'idealist',\n 'idealize',\n 'ideally',\n 'idealness',\n 'identical',\n 'identify',\n 'identity',\n 'ideology',\n 'idiocy',\n 'idiom',\n 'idly',\n 'igloo',\n 'ignition',\n 'ignore',\n 'iguana',\n 'illicitly',\n 'illusion',\n 'illusive',\n 'image',\n 'imaginary',\n 'imagines',\n 'imaging',\n 'imbecile',\n 'imitate',\n 'imitation',\n 'immature',\n 'immerse',\n 'immersion',\n 'imminent',\n 'immobile',\n 'immodest',\n 'immorally',\n 'immortal',\n 'immovable',\n 'immovably',\n 'immunity',\n 'immunize',\n 'impaired',\n 'impale',\n 'impart',\n 'impatient',\n 'impeach',\n 'impeding',\n 'impending',\n 'imperfect',\n 'imperial',\n 'impish',\n 'implant',\n 'implement',\n 'implicate',\n 'implicit',\n 'implode',\n 'implosion',\n 'implosive',\n 'imply',\n 'impolite',\n 'important',\n 'importer',\n 'impose',\n 'imposing',\n 'impotence',\n 'impotency',\n 'impotent',\n 'impound',\n 'imprecise',\n 'imprint',\n 'imprison',\n 'impromptu',\n 'improper',\n 'improve',\n 'improving',\n 'improvise',\n 'imprudent',\n 'impulse',\n 'impulsive',\n 'impure',\n 'impurity',\n 'iodine',\n 'iodize',\n 'ion',\n 'ipad',\n 'iphone',\n 'ipod',\n 'irate',\n 'irk',\n 'iron',\n 'irregular',\n 'irrigate',\n 'irritable',\n 'irritably',\n 'irritant',\n 'irritate',\n 'islamic',\n 'islamist',\n 'isolated',\n 'isolating',\n 'isolation',\n 'isotope',\n 'issue',\n 'issuing',\n 'italicize',\n 'italics',\n 'item',\n 'itinerary',\n 'itunes',\n 'ivory',\n 'ivy',\n 'jab',\n 'jackal',\n 'jacket',\n 'jackknife',\n 'jackpot',\n 'jailbird',\n 'jailbreak',\n 'jailer',\n 'jailhouse',\n 'jalapeno',\n 'jam',\n 'janitor',\n 'january',\n 'jargon',\n 'jarring',\n 'jasmine',\n 'jaundice',\n 'jaunt',\n 'java',\n 'jawed',\n 'jawless',\n 'jawline',\n 'jaws',\n 'jaybird',\n 'jaywalker',\n 'jazz',\n 'jeep',\n 'jeeringly',\n 'jellied',\n 'jelly',\n 'jersey',\n 'jester',\n 'jet',\n 'jiffy',\n 'jigsaw',\n 'jimmy',\n 'jingle',\n 'jingling',\n 'jinx',\n 'jitters',\n 'jittery',\n 'job',\n 'jockey',\n 'jockstrap',\n 'jogger',\n 'jogging',\n 'john',\n 'joining',\n 'jokester',\n 'jokingly',\n 'jolliness',\n 'jolly',\n 'jolt',\n 'jot',\n 'jovial',\n 'joyfully',\n 'joylessly',\n 'joyous',\n 'joyride',\n 'joystick',\n 'jubilance',\n 'jubilant',\n 'judge',\n 'judgingly',\n 'judicial',\n 'judiciary',\n 'judo',\n 'juggle',\n 'juggling',\n 'jugular',\n 'juice',\n 'juiciness',\n 'juicy',\n 'jujitsu',\n 'jukebox',\n 'july',\n 'jumble',\n 'jumbo',\n 'jump',\n 'junction',\n 'juncture',\n 'june',\n 'junior',\n 'juniper',\n 'junkie',\n 'junkman',\n 'junkyard',\n 'jurist',\n 'juror',\n 'jury',\n 'justice',\n 'justifier',\n 'justify',\n 'justly',\n 'justness',\n 'juvenile',\n 'kabob',\n 'kangaroo',\n 'karaoke',\n 'karate',\n 'karma',\n 'kebab',\n 'keenly',\n 'keenness',\n 'keep',\n 'keg',\n 'kelp',\n 'kennel',\n 'kept',\n 'kerchief',\n 'kerosene',\n 'kettle',\n 'kick',\n 'kiln',\n 'kilobyte',\n 'kilogram',\n 'kilometer',\n 'kilowatt',\n 'kilt',\n 'kimono',\n 'kindle',\n 'kindling',\n 'kindly',\n 'kindness',\n 'kindred',\n 'kinetic',\n 'kinfolk',\n 'king',\n 'kinship',\n 'kinsman',\n 'kinswoman',\n 'kissable',\n 'kisser',\n 'kissing',\n 'kitchen',\n 'kite',\n 'kitten',\n 'kitty',\n 'kiwi',\n 'kleenex',\n 'knapsack',\n 'knee',\n 'knelt',\n 'knickers',\n 'knoll',\n 'koala',\n 'kooky',\n 'kosher',\n 'krypton',\n 'kudos',\n 'kung',\n 'labored',\n 'laborer',\n 'laboring',\n 'laborious',\n 'labrador',\n 'ladder',\n 'ladies',\n 'ladle',\n 'ladybug',\n 'ladylike',\n 'lagged',\n 'lagging',\n 'lagoon',\n 'lair',\n 'lake',\n 'lance',\n 'landed',\n 'landfall',\n 'landfill',\n 'landing',\n 'landlady',\n 'landless',\n 'landline',\n 'landlord',\n 'landmark',\n 'landmass',\n 'landmine',\n 'landowner',\n 'landscape',\n 'landside',\n 'landslide',\n 'language',\n 'lankiness',\n 'lanky',\n 'lantern',\n 'lapdog',\n 'lapel',\n 'lapped',\n 'lapping',\n 'laptop',\n 'lard',\n 'large',\n 'lark',\n 'lash',\n 'lasso',\n 'last',\n 'latch',\n 'late',\n 'lather',\n 'latitude',\n 'latrine',\n 'latter',\n 'latticed',\n 'launch',\n 'launder',\n 'laundry',\n 'laurel',\n 'lavender',\n 'lavish',\n 'laxative',\n 'lazily',\n 'laziness',\n 'lazy',\n 'lecturer',\n 'left',\n 'legacy',\n 'legal',\n 'legend',\n 'legged',\n 'leggings',\n 'legible',\n 'legibly',\n 'legislate',\n 'lego',\n 'legroom',\n 'legume',\n 'legwarmer',\n 'legwork',\n 'lemon',\n 'lend',\n 'length',\n 'lens',\n 'lent',\n 'leotard',\n 'lesser',\n 'letdown',\n 'lethargic',\n 'lethargy',\n 'letter',\n 'lettuce',\n 'level',\n 'leverage',\n 'levers',\n 'levitate',\n 'levitator',\n 'liability',\n 'liable',\n 'liberty',\n 'librarian',\n 'library',\n 'licking',\n 'licorice',\n 'lid',\n 'life',\n 'lifter',\n 'lifting',\n 'liftoff',\n 'ligament',\n 'likely',\n 'likeness',\n 'likewise',\n 'liking',\n 'lilac',\n 'lilly',\n 'lily',\n 'limb',\n 'limeade',\n 'limelight',\n 'limes',\n 'limit',\n 'limping',\n 'limpness',\n 'line',\n 'lingo',\n 'linguini',\n 'linguist',\n 'lining',\n 'linked',\n 'linoleum',\n 'linseed',\n 'lint',\n 'lion',\n 'lip',\n 'liquefy',\n 'liqueur',\n 'liquid',\n 'lisp',\n 'list',\n 'litigate',\n 'litigator',\n 'litmus',\n 'litter',\n 'little',\n 'livable',\n 'lived',\n 'lively',\n 'liver',\n 'livestock',\n 'lividly',\n 'living',\n 'lizard',\n 'lubricant',\n 'lubricate',\n 'lucid',\n 'luckily',\n 'luckiness',\n 'luckless',\n 'lucrative',\n 'ludicrous',\n 'lugged',\n 'lukewarm',\n 'lullaby',\n 'lumber',\n 'luminance',\n 'luminous',\n 'lumpiness',\n 'lumping',\n 'lumpish',\n 'lunacy',\n 'lunar',\n 'lunchbox',\n 'luncheon',\n 'lunchroom',\n 'lunchtime',\n 'lung',\n 'lurch',\n 'lure',\n 'luridness',\n 'lurk',\n 'lushly',\n 'lushness',\n 'luster',\n 'lustfully',\n 'lustily',\n 'lustiness',\n 'lustrous',\n 'lusty',\n 'luxurious',\n 'luxury',\n 'lying',\n 'lyrically',\n 'lyricism',\n 'lyricist',\n 'lyrics',\n 'macarena',\n 'macaroni',\n 'macaw',\n 'mace',\n 'machine',\n 'machinist',\n 'magazine',\n 'magenta',\n 'maggot',\n 'magical',\n 'magician',\n 'magma',\n 'magnesium',\n 'magnetic',\n 'magnetism',\n 'magnetize',\n 'magnifier',\n 'magnify',\n 'magnitude',\n 'magnolia',\n 'mahogany',\n 'maimed',\n 'majestic',\n 'majesty',\n 'majorette',\n 'majority',\n 'makeover',\n 'maker',\n 'makeshift',\n 'making',\n 'malformed',\n 'malt',\n 'mama',\n 'mammal',\n 'mammary',\n 'mammogram',\n 'manager',\n 'managing',\n 'manatee',\n 'mandarin',\n 'mandate',\n 'mandatory',\n 'mandolin',\n 'manger',\n 'mangle',\n 'mango',\n 'mangy',\n 'manhandle',\n 'manhole',\n 'manhood',\n 'manhunt',\n 'manicotti',\n 'manicure',\n 'manifesto',\n 'manila',\n 'mankind',\n 'manlike',\n 'manliness',\n 'manly',\n 'manmade',\n 'manned',\n 'mannish',\n 'manor',\n 'manpower',\n 'mantis',\n 'mantra',\n 'manual',\n 'many',\n 'map',\n 'marathon',\n 'marauding',\n 'marbled',\n 'marbles',\n 'marbling',\n 'march',\n 'mardi',\n 'margarine',\n 'margarita',\n 'margin',\n 'marigold',\n 'marina',\n 'marine',\n 'marital',\n 'maritime',\n 'marlin',\n 'marmalade',\n 'maroon',\n 'married',\n 'marrow',\n 'marry',\n 'marshland',\n 'marshy',\n 'marsupial',\n 'marvelous',\n 'marxism',\n 'mascot',\n 'masculine',\n 'mashed',\n 'mashing',\n 'massager',\n 'masses',\n 'massive',\n 'mastiff',\n 'matador',\n 'matchbook',\n 'matchbox',\n 'matcher',\n 'matching',\n 'matchless',\n 'material',\n 'maternal',\n 'maternity',\n 'math',\n 'mating',\n 'matriarch',\n 'matrimony',\n 'matrix',\n 'matron',\n 'matted',\n 'matter',\n 'maturely',\n 'maturing',\n 'maturity',\n 'mauve',\n 'maverick',\n 'maximize',\n 'maximum',\n 'maybe',\n 'mayday',\n 'mayflower',\n 'moaner',\n 'moaning',\n 'mobile',\n 'mobility',\n 'mobilize',\n 'mobster',\n 'mocha',\n 'mocker',\n 'mockup',\n 'modified',\n 'modify',\n 'modular',\n 'modulator',\n 'module',\n 'moisten',\n 'moistness',\n 'moisture',\n 'molar',\n 'molasses',\n 'mold',\n 'molecular',\n 'molecule',\n 'molehill',\n 'mollusk',\n 'mom',\n 'monastery',\n 'monday',\n 'monetary',\n 'monetize',\n 'moneybags',\n 'moneyless',\n 'moneywise',\n 'mongoose',\n 'mongrel',\n 'monitor',\n 'monkhood',\n 'monogamy',\n 'monogram',\n 'monologue',\n 'monopoly',\n 'monorail',\n 'monotone',\n 'monotype',\n 'monoxide',\n 'monsieur',\n 'monsoon',\n 'monstrous',\n 'monthly',\n 'monument',\n 'moocher',\n 'moodiness',\n 'moody',\n 'mooing',\n 'moonbeam',\n 'mooned',\n 'moonlight',\n 'moonlike',\n 'moonlit',\n 'moonrise',\n 'moonscape',\n 'moonshine',\n 'moonstone',\n 'moonwalk',\n 'mop',\n 'morale',\n 'morality',\n 'morally',\n 'morbidity',\n 'morbidly',\n 'morphine',\n 'morphing',\n 'morse',\n 'mortality',\n 'mortally',\n 'mortician',\n 'mortified',\n 'mortify',\n 'mortuary',\n 'mosaic',\n 'mossy',\n 'most',\n 'mothball',\n 'mothproof',\n 'motion',\n 'motivate',\n 'motivator',\n 'motive',\n 'motocross',\n 'motor',\n 'motto',\n 'mountable',\n 'mountain',\n 'mounted',\n 'mounting',\n 'mourner',\n 'mournful',\n 'mouse',\n 'mousiness',\n 'moustache',\n 'mousy',\n 'mouth',\n 'movable',\n 'move',\n 'movie',\n 'moving',\n 'mower',\n 'mowing',\n 'much',\n 'muck',\n 'mud',\n 'mug',\n 'mulberry',\n 'mulch',\n 'mule',\n 'mulled',\n 'mullets',\n 'multiple',\n 'multiply',\n 'multitask',\n 'multitude',\n 'mumble',\n 'mumbling',\n 'mumbo',\n 'mummified',\n 'mummify',\n 'mummy',\n 'mumps',\n 'munchkin',\n 'mundane',\n 'municipal',\n 'muppet',\n 'mural',\n 'murkiness',\n 'murky',\n 'murmuring',\n 'muscular',\n 'museum',\n 'mushily',\n 'mushiness',\n 'mushroom',\n 'mushy',\n 'music',\n 'musket',\n 'muskiness',\n 'musky',\n 'mustang',\n 'mustard',\n 'muster',\n 'mustiness',\n 'musty',\n 'mutable',\n 'mutate',\n 'mutation',\n 'mute',\n 'mutilated',\n 'mutilator',\n 'mutiny',\n 'mutt',\n 'mutual',\n 'muzzle',\n 'myself',\n 'myspace',\n 'mystified',\n 'mystify',\n 'myth',\n 'nacho',\n 'nag',\n 'nail',\n 'name',\n 'naming',\n 'nanny',\n 'nanometer',\n 'nape',\n 'napkin',\n 'napped',\n 'napping',\n 'nappy',\n 'narrow',\n 'nastily',\n 'nastiness',\n 'national',\n 'native',\n 'nativity',\n 'natural',\n 'nature',\n 'naturist',\n 'nautical',\n 'navigate',\n 'navigator',\n 'navy',\n 'nearby',\n 'nearest',\n 'nearly',\n 'nearness',\n 'neatly',\n 'neatness',\n 'nebula',\n 'nebulizer',\n 'nectar',\n 'negate',\n 'negation',\n 'negative',\n 'neglector',\n 'negligee',\n 'negligent',\n 'negotiate',\n 'nemeses',\n 'nemesis',\n 'neon',\n 'nephew',\n 'nerd',\n 'nervous',\n 'nervy',\n 'nest',\n 'net',\n 'neurology',\n 'neuron',\n 'neurosis',\n 'neurotic',\n 'neuter',\n 'neutron',\n 'never',\n 'next',\n 'nibble',\n 'nickname',\n 'nicotine',\n 'niece',\n 'nifty',\n 'nimble',\n 'nimbly',\n 'nineteen',\n 'ninetieth',\n 'ninja',\n 'nintendo',\n 'ninth',\n 'nuclear',\n 'nuclei',\n 'nucleus',\n 'nugget',\n 'nullify',\n 'number',\n 'numbing',\n 'numbly',\n 'numbness',\n 'numeral',\n 'numerate',\n 'numerator',\n 'numeric',\n 'numerous',\n 'nuptials',\n 'nursery',\n 'nursing',\n 'nurture',\n 'nutcase',\n 'nutlike',\n 'nutmeg',\n 'nutrient',\n 'nutshell',\n 'nuttiness',\n 'nutty',\n 'nuzzle',\n 'nylon',\n 'oaf',\n 'oak',\n 'oasis',\n 'oat',\n 'obedience',\n 'obedient',\n 'obituary',\n 'object',\n 'obligate',\n 'obliged',\n 'oblivion',\n 'oblivious',\n 'oblong',\n 'obnoxious',\n 'oboe',\n 'obscure',\n 'obscurity',\n 'observant',\n 'observer',\n 'observing',\n 'obsessed',\n 'obsession',\n 'obsessive',\n 'obsolete',\n 'obstacle',\n 'obstinate',\n 'obstruct',\n 'obtain',\n 'obtrusive',\n 'obtuse',\n 'obvious',\n 'occultist',\n 'occupancy',\n 'occupant',\n 'occupier',\n 'occupy',\n 'ocean',\n 'ocelot',\n 'octagon',\n 'octane',\n 'october',\n 'octopus',\n 'ogle',\n 'oil',\n 'oink',\n 'ointment',\n 'okay',\n 'old',\n 'olive',\n 'olympics',\n 'omega',\n 'omen',\n 'ominous',\n 'omission',\n 'omit',\n 'omnivore',\n 'onboard',\n 'oncoming',\n 'ongoing',\n 'onion',\n 'online',\n 'onlooker',\n 'only',\n 'onscreen',\n 'onset',\n 'onshore',\n 'onslaught',\n 'onstage',\n 'onto',\n 'onward',\n 'onyx',\n 'oops',\n 'ooze',\n 'oozy',\n 'opacity',\n 'opal',\n 'open',\n 'operable',\n 'operate',\n 'operating',\n 'operation',\n 'operative',\n 'operator',\n 'opium',\n 'opossum',\n 'opponent',\n 'oppose',\n 'opposing',\n 'opposite',\n 'oppressed',\n 'oppressor',\n 'opt',\n 'opulently',\n 'osmosis',\n 'other',\n 'otter',\n 'ouch',\n 'ought',\n 'ounce',\n 'outage',\n 'outback',\n 'outbid',\n 'outboard',\n 'outbound',\n 'outbreak',\n 'outburst',\n 'outcast',\n 'outclass',\n 'outcome',\n 'outdated',\n 'outdoors',\n 'outer',\n 'outfield',\n 'outfit',\n 'outflank',\n 'outgoing',\n 'outgrow',\n 'outhouse',\n 'outing',\n 'outlast',\n 'outlet',\n 'outline',\n 'outlook',\n 'outlying',\n 'outmatch',\n 'outmost',\n 'outnumber',\n 'outplayed',\n 'outpost',\n 'outpour',\n 'output',\n 'outrage',\n 'outrank',\n 'outreach',\n 'outright',\n 'outscore',\n 'outsell',\n 'outshine',\n 'outshoot',\n 'outsider',\n 'outskirts',\n 'outsmart',\n 'outsource',\n 'outspoken',\n 'outtakes',\n 'outthink',\n 'outward',\n 'outweigh',\n 'outwit',\n 'oval',\n 'ovary',\n 'oven',\n 'overact',\n 'overall',\n 'overarch',\n 'overbid',\n 'overbill',\n 'overbite',\n 'overblown',\n 'overboard',\n 'overbook',\n 'overbuilt',\n 'overcast',\n 'overcoat',\n 'overcome',\n 'overcook',\n 'overcrowd',\n 'overdraft',\n 'overdrawn',\n 'overdress',\n 'overdrive',\n 'overdue',\n 'overeager',\n 'overeater',\n 'overexert',\n 'overfed',\n 'overfeed',\n 'overfill',\n 'overflow',\n 'overfull',\n 'overgrown',\n 'overhand',\n 'overhang',\n 'overhaul',\n 'overhead',\n 'overhear',\n 'overheat',\n 'overhung',\n 'overjoyed',\n 'overkill',\n 'overlabor',\n 'overlaid',\n 'overlap',\n 'overlay',\n 'overload',\n 'overlook',\n 'overlord',\n 'overlying',\n 'overnight',\n 'overpass',\n 'overpay',\n 'overplant',\n 'overplay',\n 'overpower',\n 'overprice',\n 'overrate',\n 'overreach',\n 'overreact',\n 'override',\n 'overripe',\n 'overrule',\n 'overrun',\n 'overshoot',\n 'overshot',\n 'oversight',\n 'oversized',\n 'oversleep',\n 'oversold',\n 'overspend',\n 'overstate',\n 'overstay',\n 'overstep',\n 'overstock',\n 'overstuff',\n 'oversweet',\n 'overtake',\n 'overthrow',\n 'overtime',\n 'overtly',\n 'overtone',\n 'overture',\n 'overturn',\n 'overuse',\n 'overvalue',\n 'overview',\n 'overwrite',\n 'owl',\n 'oxford',\n 'oxidant',\n 'oxidation',\n 'oxidize',\n 'oxidizing',\n 'oxygen',\n 'oxymoron',\n 'oyster',\n 'ozone',\n 'paced',\n 'pacemaker',\n 'pacific',\n 'pacifier',\n 'pacifism',\n 'pacifist',\n 'pacify',\n 'padded',\n 'padding',\n 'paddle',\n 'paddling',\n 'padlock',\n 'pagan',\n 'pager',\n 'paging',\n 'pajamas',\n 'palace',\n 'palatable',\n 'palm',\n 'palpable',\n 'palpitate',\n 'paltry',\n 'pampered',\n 'pamperer',\n 'pampers',\n 'pamphlet',\n 'panama',\n 'pancake',\n 'pancreas',\n 'panda',\n 'pandemic',\n 'pang',\n 'panhandle',\n 'panic',\n 'panning',\n 'panorama',\n 'panoramic',\n 'panther',\n 'pantomime',\n 'pantry',\n 'pants',\n 'pantyhose',\n 'paparazzi',\n 'papaya',\n 'paper',\n 'paprika',\n 'papyrus',\n 'parabola',\n 'parachute',\n 'parade',\n 'paradox',\n 'paragraph',\n 'parakeet',\n 'paralegal',\n 'paralyses',\n 'paralysis',\n 'paralyze',\n 'paramedic',\n 'parameter',\n 'paramount',\n 'parasail',\n 'parasite',\n 'parasitic',\n 'parcel',\n 'parched',\n 'parchment',\n 'pardon',\n 'parish',\n 'parka',\n 'parking',\n 'parkway',\n 'parlor',\n 'parmesan',\n 'parole',\n 'parrot',\n 'parsley',\n 'parsnip',\n 'partake',\n 'parted',\n 'parting',\n 'partition',\n 'partly',\n 'partner',\n 'partridge',\n 'party',\n 'passable',\n 'passably',\n 'passage',\n 'passcode',\n 'passenger',\n 'passerby',\n 'passing',\n 'passion',\n 'passive',\n 'passivism',\n 'passover',\n 'passport',\n 'password',\n 'pasta',\n 'pasted',\n 'pastel',\n 'pastime',\n 'pastor',\n 'pastrami',\n 'pasture',\n 'pasty',\n 'patchwork',\n 'patchy',\n 'paternal',\n 'paternity',\n 'path',\n 'patience',\n 'patient',\n 'patio',\n 'patriarch',\n 'patriot',\n 'patrol',\n 'patronage',\n 'patronize',\n 'pauper',\n 'pavement',\n 'paver',\n 'pavestone',\n 'pavilion',\n 'paving',\n 'pawing',\n 'payable',\n 'payback',\n 'paycheck',\n 'payday',\n 'payee',\n 'payer',\n 'paying',\n 'payment',\n 'payphone',\n 'payroll',\n 'pebble',\n 'pebbly',\n 'pecan',\n 'pectin',\n 'peculiar',\n 'peddling',\n 'pediatric',\n 'pedicure',\n 'pedigree',\n 'pedometer',\n 'pegboard',\n 'pelican',\n 'pellet',\n 'pelt',\n 'pelvis',\n 'penalize',\n 'penalty',\n 'pencil',\n 'pendant',\n 'pending',\n 'penholder',\n 'penknife',\n 'pennant',\n 'penniless',\n 'penny',\n 'penpal',\n 'pension',\n 'pentagon',\n 'pentagram',\n 'pep',\n 'perceive',\n 'percent',\n 'perch',\n 'percolate',\n 'perennial',\n 'perfected',\n 'perfectly',\n 'perfume',\n 'periscope',\n 'perish',\n 'perjurer',\n 'perjury',\n 'perkiness',\n 'perky',\n 'perm',\n 'peroxide',\n 'perpetual',\n 'perplexed',\n 'persecute',\n 'persevere',\n 'persuaded',\n 'persuader',\n 'pesky',\n 'peso',\n 'pessimism',\n 'pessimist',\n 'pester',\n 'pesticide',\n 'petal',\n 'petite',\n 'petition',\n 'petri',\n 'petroleum',\n 'petted',\n 'petticoat',\n 'pettiness',\n 'petty',\n 'petunia',\n 'phantom',\n 'phobia',\n 'phoenix',\n 'phonebook',\n 'phoney',\n 'phonics',\n 'phoniness',\n 'phony',\n 'phosphate',\n 'photo',\n 'phrase',\n 'phrasing',\n 'placard',\n 'placate',\n 'placidly',\n 'plank',\n 'planner',\n 'plant',\n 'plasma',\n 'plaster',\n 'plastic',\n 'plated',\n 'platform',\n 'plating',\n 'platinum',\n 'platonic',\n 'platter',\n 'platypus',\n 'plausible',\n 'plausibly',\n 'playable',\n 'playback',\n 'player',\n 'playful',\n 'playgroup',\n 'playhouse',\n 'playing',\n 'playlist',\n 'playmaker',\n 'playmate',\n 'playoff',\n 'playpen',\n 'playroom',\n 'playset',\n 'plaything',\n 'playtime',\n 'plaza',\n 'pleading',\n 'pleat',\n 'pledge',\n 'plentiful',\n 'plenty',\n 'plethora',\n 'plexiglas',\n 'pliable',\n 'plod',\n 'plop',\n 'plot',\n 'plow',\n 'ploy',\n 'pluck',\n 'plug',\n 'plunder',\n 'plunging',\n 'plural',\n 'plus',\n 'plutonium',\n 'plywood',\n 'poach',\n 'pod',\n 'poem',\n 'poet',\n 'pogo',\n 'pointed',\n 'pointer',\n 'pointing',\n 'pointless',\n 'pointy',\n 'poise',\n 'poison',\n 'poker',\n 'poking',\n 'polar',\n 'police',\n 'policy',\n 'polio',\n 'polish',\n 'politely',\n 'polka',\n 'polo',\n 'polyester',\n 'polygon',\n 'polygraph',\n 'polymer',\n 'poncho',\n 'pond',\n 'pony',\n 'popcorn',\n 'pope',\n 'poplar',\n 'popper',\n 'poppy',\n 'popsicle',\n 'populace',\n 'popular',\n 'populate',\n 'porcupine',\n 'pork',\n 'porous',\n 'porridge',\n 'portable',\n 'portal',\n 'portfolio',\n 'porthole',\n 'portion',\n 'portly',\n 'portside',\n 'poser',\n 'posh',\n 'posing',\n 'possible',\n 'possibly',\n 'possum',\n 'postage',\n 'postal',\n 'postbox',\n 'postcard',\n 'posted',\n 'poster',\n 'posting',\n 'postnasal',\n 'posture',\n 'postwar',\n 'pouch',\n 'pounce',\n 'pouncing',\n 'pound',\n 'pouring',\n 'pout',\n 'powdered',\n 'powdering',\n 'powdery',\n 'power',\n 'powwow',\n 'pox',\n 'praising',\n 'prance',\n 'prancing',\n 'pranker',\n 'prankish',\n 'prankster',\n 'prayer',\n 'praying',\n 'preacher',\n 'preaching',\n 'preachy',\n 'preamble',\n 'precinct',\n 'precise',\n 'precision',\n 'precook',\n 'precut',\n 'predator',\n 'predefine',\n 'predict',\n 'preface',\n 'prefix',\n 'preflight',\n 'preformed',\n 'pregame',\n 'pregnancy',\n 'pregnant',\n 'preheated',\n 'prelaunch',\n 'prelaw',\n 'prelude',\n 'premiere',\n 'premises',\n 'premium',\n 'prenatal',\n 'preoccupy',\n 'preorder',\n 'prepaid',\n 'prepay',\n 'preplan',\n 'preppy',\n 'preschool',\n 'prescribe',\n 'preseason',\n 'preset',\n 'preshow',\n 'president',\n 'presoak',\n 'press',\n 'presume',\n 'presuming',\n 'preteen',\n 'pretended',\n 'pretender',\n 'pretense',\n 'pretext',\n 'pretty',\n 'pretzel',\n 'prevail',\n 'prevalent',\n 'prevent',\n 'preview',\n 'previous',\n 'prewar',\n 'prewashed',\n 'prideful',\n 'pried',\n 'primal',\n 'primarily',\n 'primary',\n 'primate',\n 'primer',\n 'primp',\n 'princess',\n 'print',\n 'prior',\n 'prism',\n 'prison',\n 'prissy',\n 'pristine',\n 'privacy',\n 'private',\n 'privatize',\n 'prize',\n 'proactive',\n 'probable',\n 'probably',\n 'probation',\n 'probe',\n 'probing',\n 'probiotic',\n 'problem',\n 'procedure',\n 'process',\n 'proclaim',\n 'procreate',\n 'procurer',\n 'prodigal',\n 'prodigy',\n 'produce',\n 'product',\n 'profane',\n 'profanity',\n 'professed',\n 'professor',\n 'profile',\n 'profound',\n 'profusely',\n 'progeny',\n 'prognosis',\n 'program',\n 'progress',\n 'projector',\n 'prologue',\n 'prolonged',\n 'promenade',\n 'prominent',\n 'promoter',\n 'promotion',\n 'prompter',\n 'promptly',\n 'prone',\n 'prong',\n 'pronounce',\n 'pronto',\n 'proofing',\n 'proofread',\n 'proofs',\n 'propeller',\n 'properly',\n 'property',\n 'proponent',\n 'proposal',\n 'propose',\n 'props',\n 'prorate',\n 'protector',\n 'protegee',\n 'proton',\n 'prototype',\n 'protozoan',\n 'protract',\n 'protrude',\n 'proud',\n 'provable',\n 'proved',\n 'proven',\n 'provided',\n 'provider',\n 'providing',\n 'province',\n 'proving',\n 'provoke',\n 'provoking',\n 'provolone',\n 'prowess',\n 'prowler',\n 'prowling',\n 'proximity',\n 'proxy',\n 'prozac',\n 'prude',\n 'prudishly',\n 'prune',\n 'pruning',\n 'pry',\n 'psychic',\n 'public',\n 'publisher',\n 'pucker',\n 'pueblo',\n 'pug',\n 'pull',\n 'pulmonary',\n 'pulp',\n 'pulsate',\n 'pulse',\n 'pulverize',\n 'puma',\n 'pumice',\n 'pummel',\n 'punch',\n 'punctual',\n 'punctuate',\n 'punctured',\n 'pungent',\n 'punisher',\n 'punk',\n 'pupil',\n 'puppet',\n 'puppy',\n 'purchase',\n 'pureblood',\n 'purebred',\n 'purely',\n 'pureness',\n 'purgatory',\n 'purge',\n 'purging',\n 'purifier',\n 'purify',\n 'purist',\n 'puritan',\n 'purity',\n 'purple',\n 'purplish',\n 'purposely',\n 'purr',\n 'purse',\n 'pursuable',\n 'pursuant',\n 'pursuit',\n 'purveyor',\n 'pushcart',\n 'pushchair',\n 'pusher',\n 'pushiness',\n 'pushing',\n 'pushover',\n 'pushpin',\n 'pushup',\n 'pushy',\n 'putdown',\n 'putt',\n 'puzzle',\n 'puzzling',\n 'pyramid',\n 'pyromania',\n 'python',\n 'quack',\n 'quadrant',\n 'quail',\n 'quaintly',\n 'quake',\n 'quaking',\n 'qualified',\n 'qualifier',\n 'qualify',\n 'quality',\n 'qualm',\n 'quantum',\n 'quarrel',\n 'quarry',\n 'quartered',\n 'quarterly',\n 'quarters',\n 'quartet',\n 'quench',\n 'query',\n 'quicken',\n 'quickly',\n 'quickness',\n 'quicksand',\n 'quickstep',\n 'quiet',\n 'quill',\n 'quilt',\n 'quintet',\n 'quintuple',\n 'quirk',\n 'quit',\n 'quiver',\n 'quizzical',\n 'quotable',\n 'quotation',\n 'quote',\n 'rabid',\n 'race',\n 'racing',\n 'racism',\n 'rack',\n 'racoon',\n 'radar',\n 'radial',\n 'radiance',\n 'radiantly',\n 'radiated',\n 'radiation',\n 'radiator',\n 'radio',\n 'radish',\n 'raffle',\n 'raft',\n 'rage',\n 'ragged',\n 'raging',\n 'ragweed',\n 'raider',\n 'railcar',\n 'railing',\n 'railroad',\n 'railway',\n 'raisin',\n 'rake',\n 'raking',\n 'rally',\n 'ramble',\n 'rambling',\n 'ramp',\n 'ramrod',\n 'ranch',\n 'rancidity',\n 'random',\n 'ranged',\n 'ranger',\n 'ranging',\n 'ranked',\n 'ranking',\n 'ransack',\n 'ranting',\n 'rants',\n 'rare',\n 'rarity',\n 'rascal',\n 'rash',\n 'rasping',\n 'ravage',\n 'raven',\n 'ravine',\n 'raving',\n 'ravioli',\n 'ravishing',\n 'reabsorb',\n 'reach',\n 'reacquire',\n 'reaction',\n 'reactive',\n 'reactor',\n 'reaffirm',\n 'ream',\n 'reanalyze',\n 'reappear',\n 'reapply',\n 'reappoint',\n 'reapprove',\n 'rearrange',\n 'rearview',\n 'reason',\n 'reassign',\n 'reassure',\n 'reattach',\n 'reawake',\n 'rebalance',\n 'rebate',\n 'rebel',\n 'rebirth',\n 'reboot',\n 'reborn',\n 'rebound',\n 'rebuff',\n 'rebuild',\n 'rebuilt',\n 'reburial',\n 'rebuttal',\n 'recall',\n 'recant',\n 'recapture',\n 'recast',\n 'recede',\n 'recent',\n 'recess',\n 'recharger',\n 'recipient',\n 'recital',\n 'recite',\n 'reckless',\n 'reclaim',\n 'recliner',\n 'reclining',\n 'recluse',\n 'reclusive',\n 'recognize',\n 'recoil',\n 'recollect',\n 'recolor',\n 'reconcile',\n 'reconfirm',\n 'reconvene',\n 'recopy',\n 'record',\n 'recount',\n 'recoup',\n 'recovery',\n 'recreate',\n 'rectal',\n 'rectangle',\n 'rectified',\n 'rectify',\n 'recycled',\n 'recycler',\n 'recycling',\n 'reemerge',\n 'reenact',\n 'reenter',\n 'reentry',\n 'reexamine',\n 'referable',\n 'referee',\n 'reference',\n 'refill',\n 'refinance',\n 'refined',\n 'refinery',\n 'refining',\n 'refinish',\n 'reflected',\n 'reflector',\n 'reflex',\n 'reflux',\n 'refocus',\n 'refold',\n 'reforest',\n 'reformat',\n 'reformed',\n 'reformer',\n 'reformist',\n 'refract',\n 'refrain',\n 'refreeze',\n 'refresh',\n 'refried',\n 'refueling',\n 'refund',\n 'refurbish',\n 'refurnish',\n 'refusal',\n 'refuse',\n 'refusing',\n 'refutable',\n 'refute',\n 'regain',\n 'regalia',\n 'regally',\n 'reggae',\n 'regime',\n 'region',\n 'register',\n 'registrar',\n 'registry',\n 'regress',\n 'regretful',\n 'regroup',\n 'regular',\n 'regulate',\n 'regulator',\n 'rehab',\n 'reheat',\n 'rehire',\n 'rehydrate',\n 'reimburse',\n 'reissue',\n 'reiterate',\n 'rejoice',\n 'rejoicing',\n 'rejoin',\n 'rekindle',\n 'relapse',\n 'relapsing',\n 'relatable',\n 'related',\n 'relation',\n 'relative',\n 'relax',\n 'relay',\n 'relearn',\n 'release',\n 'relenting',\n 'reliable',\n 'reliably',\n 'reliance',\n 'reliant',\n 'relic',\n 'relieve',\n 'relieving',\n 'relight',\n 'relish',\n 'relive',\n 'reload',\n 'relocate',\n 'relock',\n 'reluctant',\n 'rely',\n 'remake',\n 'remark',\n 'remarry',\n 'rematch',\n 'remedial',\n 'remedy',\n 'remember',\n 'reminder',\n 'remindful',\n 'remission',\n 'remix',\n 'remnant',\n 'remodeler',\n 'remold',\n 'remorse',\n 'remote',\n 'removable',\n 'removal',\n 'removed',\n 'remover',\n 'removing',\n 'rename',\n 'renderer',\n 'rendering',\n 'rendition',\n 'renegade',\n 'renewable',\n 'renewably',\n 'renewal',\n 'renewed',\n 'renounce',\n 'renovate',\n 'renovator',\n 'rentable',\n 'rental',\n 'rented',\n 'renter',\n 'reoccupy',\n 'reoccur',\n 'reopen',\n 'reorder',\n 'repackage',\n 'repacking',\n 'repaint',\n 'repair',\n 'repave',\n 'repaying',\n 'repayment',\n 'repeal',\n 'repeated',\n 'repeater',\n 'repent',\n 'rephrase',\n 'replace',\n 'replay',\n 'replica',\n 'reply',\n 'reporter',\n 'repose',\n 'repossess',\n 'repost',\n 'repressed',\n 'reprimand',\n 'reprint',\n 'reprise',\n 'reproach',\n 'reprocess',\n 'reproduce',\n 'reprogram',\n 'reps',\n 'reptile',\n 'reptilian',\n 'repugnant',\n 'repulsion',\n 'repulsive',\n 'repurpose',\n 'reputable',\n 'reputably',\n 'request',\n 'require',\n 'requisite',\n 'reroute',\n 'rerun',\n 'resale',\n 'resample',\n 'rescuer',\n 'reseal',\n 'research',\n 'reselect',\n 'reseller',\n 'resemble',\n 'resend',\n 'resent',\n 'reset',\n 'reshape',\n 'reshoot',\n 'reshuffle',\n 'residence',\n 'residency',\n 'resident',\n 'residual',\n 'residue',\n 'resigned',\n 'resilient',\n 'resistant',\n 'resisting',\n 'resize',\n 'resolute',\n 'resolved',\n 'resonant',\n 'resonate',\n 'resort',\n 'resource',\n 'respect',\n 'resubmit',\n 'result',\n 'resume',\n 'resupply',\n 'resurface',\n 'resurrect',\n 'retail',\n 'retainer',\n 'retaining',\n 'retake',\n 'retaliate',\n 'retention',\n 'rethink',\n 'retinal',\n 'retired',\n 'retiree',\n 'retiring',\n 'retold',\n 'retool',\n 'retorted',\n 'retouch',\n 'retrace',\n 'retract',\n 'retrain',\n 'retread',\n 'retreat',\n 'retrial',\n 'retrieval',\n 'retriever',\n 'retry',\n 'return',\n 'retying',\n 'retype',\n 'reunion',\n 'reunite',\n 'reusable',\n 'reuse',\n 'reveal',\n 'reveler',\n 'revenge',\n 'revenue',\n 'reverb',\n 'revered',\n 'reverence',\n 'reverend',\n 'reversal',\n 'reverse',\n 'reversing',\n 'reversion',\n 'revert',\n 'revisable',\n 'revise',\n 'revision',\n 'revisit',\n 'revivable',\n 'revival',\n 'reviver',\n 'reviving',\n 'revocable',\n 'revoke',\n 'revolt',\n 'revolver',\n 'revolving',\n 'reward',\n 'rewash',\n 'rewind',\n 'rewire',\n 'reword',\n 'rework',\n 'rewrap',\n 'rewrite',\n 'rhyme',\n 'ribbon',\n 'ribcage',\n 'rice',\n 'riches',\n 'richly',\n 'richness',\n 'rickety',\n 'ricotta',\n 'riddance',\n 'ridden',\n 'ride',\n 'riding',\n 'rifling',\n 'rift',\n 'rigging',\n 'rigid',\n 'rigor',\n 'rimless',\n 'rimmed',\n 'rind',\n 'rink',\n 'rinse',\n 'rinsing',\n 'riot',\n 'ripcord',\n 'ripeness',\n 'ripening',\n 'ripping',\n 'ripple',\n 'rippling',\n 'riptide',\n 'rise',\n 'rising',\n 'risk',\n 'risotto',\n 'ritalin',\n 'ritzy',\n 'rival',\n 'riverbank',\n 'riverbed',\n 'riverboat',\n 'riverside',\n 'riveter',\n 'riveting',\n 'roamer',\n 'roaming',\n 'roast',\n 'robbing',\n 'robe',\n 'robin',\n 'robotics',\n 'robust',\n 'rockband',\n 'rocker',\n 'rocket',\n 'rockfish',\n 'rockiness',\n 'rocking',\n 'rocklike',\n 'rockslide',\n 'rockstar',\n 'rocky',\n 'rogue',\n 'roman',\n 'romp',\n 'rope',\n 'roping',\n 'roster',\n 'rosy',\n 'rotten',\n 'rotting',\n 'rotunda',\n 'roulette',\n 'rounding',\n 'roundish',\n 'roundness',\n 'roundup',\n 'roundworm',\n 'routine',\n 'routing',\n 'rover',\n 'roving',\n 'royal',\n 'rubbed',\n 'rubber',\n 'rubbing',\n 'rubble',\n 'rubdown',\n 'ruby',\n 'ruckus',\n 'rudder',\n 'rug',\n 'ruined',\n 'rule',\n 'rumble',\n 'rumbling',\n 'rummage',\n 'rumor',\n 'runaround',\n 'rundown',\n 'runner',\n 'running',\n 'runny',\n 'runt',\n 'runway',\n 'rupture',\n 'rural',\n 'ruse',\n 'rush',\n 'rust',\n 'rut',\n 'sabbath',\n 'sabotage',\n 'sacrament',\n 'sacred',\n 'sacrifice',\n 'sadden',\n 'saddlebag',\n 'saddled',\n 'saddling',\n 'sadly',\n 'sadness',\n 'safari',\n 'safeguard',\n 'safehouse',\n 'safely',\n 'safeness',\n 'saffron',\n 'saga',\n 'sage',\n 'sagging',\n 'saggy',\n 'said',\n 'saint',\n 'sake',\n 'salad',\n 'salami',\n 'salaried',\n 'salary',\n 'saline',\n 'salon',\n 'saloon',\n 'salsa',\n 'salt',\n 'salutary',\n 'salute',\n 'salvage',\n 'salvaging',\n 'salvation',\n 'same',\n 'sample',\n 'sampling',\n 'sanction',\n 'sanctity',\n 'sanctuary',\n 'sandal',\n 'sandbag',\n 'sandbank',\n 'sandbar',\n 'sandblast',\n 'sandbox',\n 'sanded',\n 'sandfish',\n 'sanding',\n 'sandlot',\n 'sandpaper',\n 'sandpit',\n 'sandstone',\n 'sandstorm',\n 'sandworm',\n 'sandy',\n 'sanitary',\n 'sanitizer',\n 'sank',\n 'santa',\n 'sapling',\n 'sappiness',\n 'sappy',\n 'sarcasm',\n 'sarcastic',\n 'sardine',\n 'sash',\n 'sasquatch',\n 'sassy',\n 'satchel',\n 'satiable',\n 'satin',\n 'satirical',\n 'satisfied',\n 'satisfy',\n 'saturate',\n 'saturday',\n 'sauciness',\n 'saucy',\n 'sauna',\n 'savage',\n 'savanna',\n 'saved',\n 'savings',\n 'savior',\n 'savor',\n 'saxophone',\n 'say',\n 'scabbed',\n 'scabby',\n 'scalded',\n 'scalding',\n 'scale',\n 'scaling',\n 'scallion',\n 'scallop',\n 'scalping',\n 'scam',\n 'scandal',\n 'scanner',\n 'scanning',\n 'scant',\n 'scapegoat',\n 'scarce',\n 'scarcity',\n 'scarecrow',\n 'scared',\n 'scarf',\n 'scarily',\n 'scariness',\n 'scarring',\n 'scary',\n 'scavenger',\n 'scenic',\n 'schedule',\n 'schematic',\n 'scheme',\n 'scheming',\n 'schilling',\n 'schnapps',\n 'scholar',\n 'science',\n 'scientist',\n 'scion',\n 'scoff',\n 'scolding',\n 'scone',\n 'scoop',\n 'scooter',\n 'scope',\n 'scorch',\n 'scorebook',\n 'scorecard',\n 'scored',\n 'scoreless',\n 'scorer',\n 'scoring',\n 'scorn',\n 'scorpion',\n 'scotch',\n 'scoundrel',\n 'scoured',\n 'scouring',\n 'scouting',\n 'scouts',\n 'scowling',\n 'scrabble',\n 'scraggly',\n 'scrambled',\n 'scrambler',\n 'scrap',\n 'scratch',\n 'scrawny',\n 'screen',\n 'scribble',\n 'scribe',\n 'scribing',\n 'scrimmage',\n 'script',\n 'scroll',\n 'scrooge',\n 'scrounger',\n 'scrubbed',\n 'scrubber',\n 'scruffy',\n 'scrunch',\n 'scrutiny',\n 'scuba',\n 'scuff',\n 'sculptor',\n 'sculpture',\n 'scurvy',\n 'scuttle',\n 'secluded',\n 'secluding',\n 'seclusion',\n 'second',\n 'secrecy',\n 'secret',\n 'sectional',\n 'sector',\n 'secular',\n 'securely',\n 'security',\n 'sedan',\n 'sedate',\n 'sedation',\n 'sedative',\n 'sediment',\n 'seduce',\n 'seducing',\n 'segment',\n 'seismic',\n 'seizing',\n 'seldom',\n 'selected',\n 'selection',\n 'selective',\n 'selector',\n 'self',\n 'seltzer',\n 'semantic',\n 'semester',\n 'semicolon',\n 'semifinal',\n 'seminar',\n 'semisoft',\n 'semisweet',\n 'senate',\n 'senator',\n 'send',\n 'senior',\n 'senorita',\n 'sensation',\n 'sensitive',\n 'sensitize',\n 'sensually',\n 'sensuous',\n 'sepia',\n 'september',\n 'septic',\n 'septum',\n 'sequel',\n 'sequence',\n 'sequester',\n 'series',\n 'sermon',\n 'serotonin',\n 'serpent',\n 'serrated',\n 'serve',\n 'service',\n 'serving',\n 'sesame',\n 'sessions',\n 'setback',\n 'setting',\n 'settle',\n 'settling',\n 'setup',\n 'sevenfold',\n 'seventeen',\n 'seventh',\n 'seventy',\n 'severity',\n 'shabby',\n 'shack',\n 'shaded',\n 'shadily',\n 'shadiness',\n 'shading',\n 'shadow',\n 'shady',\n 'shaft',\n 'shakable',\n 'shakily',\n 'shakiness',\n 'shaking',\n 'shaky',\n 'shale',\n 'shallot',\n 'shallow',\n 'shame',\n 'shampoo',\n 'shamrock',\n 'shank',\n 'shanty',\n 'shape',\n 'shaping',\n 'share',\n 'sharpener',\n 'sharper',\n 'sharpie',\n 'sharply',\n 'sharpness',\n 'shawl',\n 'sheath',\n 'shed',\n 'sheep',\n 'sheet',\n 'shelf',\n 'shell',\n 'shelter',\n 'shelve',\n 'shelving',\n 'sherry',\n 'shield',\n 'shifter',\n 'shifting',\n 'shiftless',\n 'shifty',\n 'shimmer',\n 'shimmy',\n 'shindig',\n 'shine',\n 'shingle',\n 'shininess',\n 'shining',\n 'shiny',\n 'ship',\n 'shirt',\n 'shivering',\n 'shock',\n 'shone',\n 'shoplift',\n 'shopper',\n 'shopping',\n 'shoptalk',\n 'shore',\n 'shortage',\n 'shortcake',\n 'shortcut',\n 'shorten',\n 'shorter',\n 'shorthand',\n 'shortlist',\n 'shortly',\n 'shortness',\n 'shorts',\n 'shortwave',\n 'shorty',\n 'shout',\n 'shove',\n 'showbiz',\n 'showcase',\n 'showdown',\n 'shower',\n 'showgirl',\n 'showing',\n 'showman',\n 'shown',\n 'showoff',\n 'showpiece',\n 'showplace',\n 'showroom',\n 'showy',\n 'shrank',\n 'shrapnel',\n 'shredder',\n 'shredding',\n 'shrewdly',\n 'shriek',\n 'shrill',\n 'shrimp',\n 'shrine',\n 'shrink',\n 'shrivel',\n 'shrouded',\n 'shrubbery',\n 'shrubs',\n 'shrug',\n 'shrunk',\n 'shucking',\n 'shudder',\n 'shuffle',\n 'shuffling',\n 'shun',\n 'shush',\n 'shut',\n 'shy',\n 'siamese',\n 'siberian',\n 'sibling',\n 'siding',\n 'sierra',\n 'siesta',\n 'sift',\n 'sighing',\n 'silenced',\n 'silencer',\n 'silent',\n 'silica',\n 'silicon',\n 'silk',\n 'silliness',\n 'silly',\n 'silo',\n 'silt',\n 'silver',\n 'similarly',\n 'simile',\n 'simmering',\n 'simple',\n 'simplify',\n 'simply',\n 'sincere',\n 'sincerity',\n 'singer',\n 'singing',\n 'single',\n 'singular',\n 'sinister',\n 'sinless',\n 'sinner',\n 'sinuous',\n 'sip',\n 'siren',\n 'sister',\n 'sitcom',\n 'sitter',\n 'sitting',\n 'situated',\n 'situation',\n 'sixfold',\n 'sixteen',\n 'sixth',\n 'sixties',\n 'sixtieth',\n 'sixtyfold',\n 'sizable',\n 'sizably',\n 'size',\n 'sizing',\n 'sizzle',\n 'sizzling',\n 'skater',\n 'skating',\n 'skedaddle',\n 'skeletal',\n 'skeleton',\n 'skeptic',\n 'sketch',\n 'skewed',\n 'skewer',\n 'skid',\n 'skied',\n 'skier',\n 'skies',\n 'skiing',\n 'skilled',\n 'skillet',\n 'skillful',\n 'skimmed',\n 'skimmer',\n 'skimming',\n 'skimpily',\n 'skincare',\n 'skinhead',\n 'skinless',\n 'skinning',\n 'skinny',\n 'skintight',\n 'skipper',\n 'skipping',\n 'skirmish',\n 'skirt',\n 'skittle',\n 'skydiver',\n 'skylight',\n 'skyline',\n 'skype',\n 'skyrocket',\n 'skyward',\n 'slab',\n 'slacked',\n 'slacker',\n 'slacking',\n 'slackness',\n 'slacks',\n 'slain',\n 'slam',\n 'slander',\n 'slang',\n 'slapping',\n 'slapstick',\n 'slashed',\n 'slashing',\n 'slate',\n 'slather',\n 'slaw',\n 'sled',\n 'sleek',\n 'sleep',\n 'sleet',\n 'sleeve',\n 'slept',\n 'sliceable',\n 'sliced',\n 'slicer',\n 'slicing',\n 'slick',\n 'slider',\n 'slideshow',\n 'sliding',\n 'slighted',\n 'slighting',\n 'slightly',\n 'slimness',\n 'slimy',\n 'slinging',\n 'slingshot',\n 'slinky',\n 'slip',\n 'slit',\n 'sliver',\n 'slobbery',\n 'slogan',\n 'sloped',\n 'sloping',\n 'sloppily',\n 'sloppy',\n 'slot',\n 'slouching',\n 'slouchy',\n 'sludge',\n 'slug',\n 'slum',\n 'slurp',\n 'slush',\n 'sly',\n 'small',\n 'smartly',\n 'smartness',\n 'smasher',\n 'smashing',\n 'smashup',\n 'smell',\n 'smelting',\n 'smile',\n 'smilingly',\n 'smirk',\n 'smite',\n 'smith',\n 'smitten',\n 'smock',\n 'smog',\n 'smoked',\n 'smokeless',\n 'smokiness',\n 'smoking',\n 'smoky',\n 'smolder',\n 'smooth',\n 'smother',\n 'smudge',\n 'smudgy',\n 'smuggler',\n 'smuggling',\n 'smugly',\n 'smugness',\n 'snack',\n 'snagged',\n 'snaking',\n 'snap',\n 'snare',\n 'snarl',\n 'snazzy',\n 'sneak',\n 'sneer',\n 'sneeze',\n 'sneezing',\n 'snide',\n 'sniff',\n 'snippet',\n 'snipping',\n 'snitch',\n 'snooper',\n 'snooze',\n 'snore',\n 'snoring',\n 'snorkel',\n 'snort',\n 'snout',\n 'snowbird',\n 'snowboard',\n 'snowbound',\n 'snowcap',\n 'snowdrift',\n 'snowdrop',\n 'snowfall',\n 'snowfield',\n 'snowflake',\n 'snowiness',\n 'snowless',\n 'snowman',\n 'snowplow',\n 'snowshoe',\n 'snowstorm',\n 'snowsuit',\n 'snowy',\n 'snub',\n 'snuff',\n 'snuggle',\n 'snugly',\n 'snugness',\n 'speak',\n 'spearfish',\n 'spearhead',\n 'spearman',\n 'spearmint',\n 'species',\n 'specimen',\n 'specked',\n 'speckled',\n 'specks',\n 'spectacle',\n 'spectator',\n 'spectrum',\n 'speculate',\n 'speech',\n 'speed',\n 'spellbind',\n 'speller',\n 'spelling',\n 'spendable',\n 'spender',\n 'spending',\n 'spent',\n 'spew',\n 'sphere',\n 'spherical',\n 'sphinx',\n 'spider',\n 'spied',\n 'spiffy',\n 'spill',\n 'spilt',\n 'spinach',\n 'spinal',\n 'spindle',\n 'spinner',\n 'spinning',\n 'spinout',\n 'spinster',\n 'spiny',\n 'spiral',\n 'spirited',\n 'spiritism',\n 'spirits',\n 'spiritual',\n 'splashed',\n 'splashing',\n 'splashy',\n 'splatter',\n 'spleen',\n 'splendid',\n 'splendor',\n 'splice',\n 'splicing',\n 'splinter',\n 'splotchy',\n 'splurge',\n 'spoilage',\n 'spoiled',\n 'spoiler',\n 'spoiling',\n 'spoils',\n 'spoken',\n 'spokesman',\n 'sponge',\n 'spongy',\n 'sponsor',\n 'spoof',\n 'spookily',\n 'spooky',\n 'spool',\n 'spoon',\n 'spore',\n 'sporting',\n 'sports',\n 'sporty',\n 'spotless',\n 'spotlight',\n 'spotted',\n 'spotter',\n 'spotting',\n 'spotty',\n 'spousal',\n 'spouse',\n 'spout',\n 'sprain',\n 'sprang',\n 'sprawl',\n 'spray',\n 'spree',\n 'sprig',\n 'spring',\n 'sprinkled',\n 'sprinkler',\n 'sprint',\n 'sprite',\n 'sprout',\n 'spruce',\n 'sprung',\n 'spry',\n 'spud',\n 'spur',\n 'sputter',\n 'spyglass',\n 'squabble',\n 'squad',\n 'squall',\n 'squander',\n 'squash',\n 'squatted',\n 'squatter',\n 'squatting',\n 'squeak',\n 'squealer',\n 'squealing',\n 'squeamish',\n 'squeegee',\n 'squeeze',\n 'squeezing',\n 'squid',\n 'squiggle',\n 'squiggly',\n 'squint',\n 'squire',\n 'squirt',\n 'squishier',\n 'squishy',\n 'stability',\n 'stabilize',\n 'stable',\n 'stack',\n 'stadium',\n 'staff',\n 'stage',\n 'staging',\n 'stagnant',\n 'stagnate',\n 'stainable',\n 'stained',\n 'staining',\n 'stainless',\n 'stalemate',\n 'staleness',\n 'stalling',\n 'stallion',\n 'stamina',\n 'stammer',\n 'stamp',\n 'stand',\n 'stank',\n 'staple',\n 'stapling',\n 'starboard',\n 'starch',\n 'stardom',\n 'stardust',\n 'starfish',\n 'stargazer',\n 'staring',\n 'stark',\n 'starless',\n 'starlet',\n 'starlight',\n 'starlit',\n 'starring',\n 'starry',\n 'starship',\n 'starter',\n 'starting',\n 'startle',\n 'startling',\n 'startup',\n 'starved',\n 'starving',\n 'stash',\n 'state',\n 'static',\n 'statistic',\n 'statue',\n 'stature',\n 'status',\n 'statute',\n 'statutory',\n 'staunch',\n 'stays',\n 'steadfast',\n 'steadier',\n 'steadily',\n 'steadying',\n 'steam',\n 'steed',\n 'steep',\n 'steerable',\n 'steering',\n 'steersman',\n 'stegosaur',\n 'stellar',\n 'stem',\n 'stench',\n 'stencil',\n 'step',\n 'stereo',\n 'sterile',\n 'sterility',\n 'sterilize',\n 'sterling',\n 'sternness',\n 'sternum',\n 'stew',\n 'stick',\n 'stiffen',\n 'stiffly',\n 'stiffness',\n 'stifle',\n 'stifling',\n 'stillness',\n 'stilt',\n 'stimulant',\n 'stimulate',\n 'stimuli',\n 'stimulus',\n 'stinger',\n 'stingily',\n 'stinging',\n 'stingray',\n 'stingy',\n 'stinking',\n 'stinky',\n 'stipend',\n 'stipulate',\n 'stir',\n 'stitch',\n 'stock',\n 'stoic',\n 'stoke',\n 'stole',\n 'stomp',\n 'stonewall',\n 'stoneware',\n 'stonework',\n 'stoning',\n 'stony',\n 'stood',\n 'stooge',\n 'stool',\n 'stoop',\n 'stoplight',\n 'stoppable',\n 'stoppage',\n 'stopped',\n 'stopper',\n 'stopping',\n 'stopwatch',\n 'storable',\n 'storage',\n 'storeroom',\n 'storewide',\n 'storm',\n 'stout',\n 'stove',\n 'stowaway',\n 'stowing',\n 'straddle',\n 'straggler',\n 'strained',\n 'strainer',\n 'straining',\n 'strangely',\n 'stranger',\n 'strangle',\n 'strategic',\n 'strategy',\n 'stratus',\n 'straw',\n 'stray',\n 'streak',\n 'stream',\n 'street',\n 'strength',\n 'strenuous',\n 'strep',\n 'stress',\n 'stretch',\n 'strewn',\n 'stricken',\n 'strict',\n 'stride',\n 'strife',\n 'strike',\n 'striking',\n 'strive',\n 'striving',\n 'strobe',\n 'strode',\n 'stroller',\n 'strongbox',\n 'strongly',\n 'strongman',\n 'struck',\n 'structure',\n 'strudel',\n 'struggle',\n 'strum',\n 'strung',\n 'strut',\n 'stubbed',\n 'stubble',\n 'stubbly',\n 'stubborn',\n 'stucco',\n 'stuck',\n 'student',\n 'studied',\n 'studio',\n 'study',\n 'stuffed',\n 'stuffing',\n 'stuffy',\n 'stumble',\n 'stumbling',\n 'stump',\n 'stung',\n 'stunned',\n 'stunner',\n 'stunning',\n 'stunt',\n 'stupor',\n 'sturdily',\n 'sturdy',\n 'styling',\n 'stylishly',\n 'stylist',\n 'stylized',\n 'stylus',\n 'suave',\n 'subarctic',\n 'subatomic',\n 'subdivide',\n 'subdued',\n 'subduing',\n 'subfloor',\n 'subgroup',\n 'subheader',\n 'subject',\n 'sublease',\n 'sublet',\n 'sublevel',\n 'sublime',\n 'submarine',\n 'submerge',\n 'submersed',\n 'submitter',\n 'subpanel',\n 'subpar',\n 'subplot',\n 'subprime',\n 'subscribe',\n 'subscript',\n 'subsector',\n 'subside',\n 'subsiding',\n 'subsidize',\n 'subsidy',\n 'subsoil',\n 'subsonic',\n 'substance',\n 'subsystem',\n 'subtext',\n 'subtitle',\n 'subtly',\n 'subtotal',\n 'subtract',\n 'subtype',\n 'suburb',\n 'subway',\n 'subwoofer',\n 'subzero',\n 'succulent',\n 'such',\n 'suction',\n 'sudden',\n 'sudoku',\n 'suds',\n 'sufferer',\n 'suffering',\n 'suffice',\n 'suffix',\n 'suffocate',\n 'suffrage',\n 'sugar',\n 'suggest',\n 'suing',\n 'suitable',\n 'suitably',\n 'suitcase',\n 'suitor',\n 'sulfate',\n 'sulfide',\n 'sulfite',\n 'sulfur',\n 'sulk',\n 'sullen',\n 'sulphate',\n 'sulphuric',\n 'sultry',\n 'superbowl',\n 'superglue',\n 'superhero',\n 'superior',\n 'superjet',\n 'superman',\n 'supermom',\n 'supernova',\n 'supervise',\n 'supper',\n 'supplier',\n 'supply',\n 'support',\n 'supremacy',\n 'supreme',\n 'surcharge',\n 'surely',\n 'sureness',\n 'surface',\n 'surfacing',\n 'surfboard',\n 'surfer',\n 'surgery',\n 'surgical',\n 'surging',\n 'surname',\n 'surpass',\n 'surplus',\n 'surprise',\n 'surreal',\n 'surrender',\n 'surrogate',\n 'surround',\n 'survey',\n 'survival',\n 'survive',\n 'surviving',\n 'survivor',\n 'sushi',\n 'suspect',\n 'suspend',\n 'suspense',\n 'sustained',\n 'sustainer',\n 'swab',\n 'swaddling',\n 'swagger',\n 'swampland',\n 'swan',\n 'swapping',\n 'swarm',\n 'sway',\n 'swear',\n 'sweat',\n 'sweep',\n 'swell',\n 'swept',\n 'swerve',\n 'swifter',\n 'swiftly',\n 'swiftness',\n 'swimmable',\n 'swimmer',\n 'swimming',\n 'swimsuit',\n 'swimwear',\n 'swinger',\n 'swinging',\n 'swipe',\n 'swirl',\n 'switch',\n 'swivel',\n 'swizzle',\n 'swooned',\n 'swoop',\n 'swoosh',\n 'swore',\n 'sworn',\n 'swung',\n 'sycamore',\n 'sympathy',\n 'symphonic',\n 'symphony',\n 'symptom',\n 'synapse',\n 'syndrome',\n 'synergy',\n 'synopses',\n 'synopsis',\n 'synthesis',\n 'synthetic',\n 'syrup',\n 'system',\n 't-shirt',\n 'tabasco',\n 'tabby',\n 'tableful',\n 'tables',\n 'tablet',\n 'tableware',\n 'tabloid',\n 'tackiness',\n 'tacking',\n 'tackle',\n 'tackling',\n 'tacky',\n 'taco',\n 'tactful',\n 'tactical',\n 'tactics',\n 'tactile',\n 'tactless',\n 'tadpole',\n 'taekwondo',\n 'tag',\n 'tainted',\n 'take',\n 'taking',\n 'talcum',\n 'talisman',\n 'tall',\n 'talon',\n 'tamale',\n 'tameness',\n 'tamer',\n 'tamper',\n 'tank',\n 'tanned',\n 'tannery',\n 'tanning',\n 'tantrum',\n 'tapeless',\n 'tapered',\n 'tapering',\n 'tapestry',\n 'tapioca',\n 'tapping',\n 'taps',\n 'tarantula',\n 'target',\n 'tarmac',\n 'tarnish',\n 'tarot',\n 'tartar',\n 'tartly',\n 'tartness',\n 'task',\n 'tassel',\n 'taste',\n 'tastiness',\n 'tasting',\n 'tasty',\n 'tattered',\n 'tattle',\n 'tattling',\n 'tattoo',\n 'taunt',\n 'tavern',\n 'thank',\n 'that',\n 'thaw',\n 'theater',\n 'theatrics',\n 'thee',\n 'theft',\n 'theme',\n 'theology',\n 'theorize',\n 'thermal',\n 'thermos',\n 'thesaurus',\n 'these',\n 'thesis',\n 'thespian',\n 'thicken',\n 'thicket',\n 'thickness',\n 'thieving',\n 'thievish',\n 'thigh',\n 'thimble',\n 'thing',\n 'think',\n 'thinly',\n 'thinner',\n 'thinness',\n 'thinning',\n 'thirstily',\n 'thirsting',\n 'thirsty',\n 'thirteen',\n 'thirty',\n 'thong',\n 'thorn',\n 'those',\n 'thousand',\n 'thrash',\n 'thread',\n 'threaten',\n 'threefold',\n 'thrift',\n 'thrill',\n 'thrive',\n 'thriving',\n 'throat',\n 'throbbing',\n 'throng',\n 'throttle',\n 'throwaway',\n 'throwback',\n 'thrower',\n 'throwing',\n 'thud',\n 'thumb',\n 'thumping',\n 'thursday',\n 'thus',\n 'thwarting',\n 'thyself',\n 'tiara',\n 'tibia',\n 'tidal',\n 'tidbit',\n 'tidiness',\n 'tidings',\n 'tidy',\n 'tiger',\n 'tighten',\n 'tightly',\n 'tightness',\n 'tightrope',\n 'tightwad',\n 'tigress',\n 'tile',\n 'tiling',\n 'till',\n 'tilt',\n 'timid',\n 'timing',\n 'timothy',\n 'tinderbox',\n 'tinfoil',\n 'tingle',\n 'tingling',\n 'tingly',\n 'tinker',\n 'tinkling',\n 'tinsel',\n 'tinsmith',\n 'tint',\n 'tinwork',\n 'tiny',\n 'tipoff',\n 'tipped',\n 'tipper',\n 'tipping',\n 'tiptoeing',\n 'tiptop',\n 'tiring',\n 'tissue',\n 'trace',\n 'tracing',\n 'track',\n 'traction',\n 'tractor',\n 'trade',\n 'trading',\n 'tradition',\n 'traffic',\n 'tragedy',\n 'trailing',\n 'trailside',\n 'train',\n 'traitor',\n 'trance',\n 'tranquil',\n 'transfer',\n 'transform',\n 'translate',\n 'transpire',\n 'transport',\n 'transpose',\n 'trapdoor',\n 'trapeze',\n 'trapezoid',\n 'trapped',\n 'trapper',\n 'trapping',\n 'traps',\n 'trash',\n 'travel',\n 'traverse',\n 'travesty',\n 'tray',\n 'treachery',\n 'treading',\n 'treadmill',\n 'treason',\n 'treat',\n 'treble',\n 'tree',\n 'trekker',\n 'tremble',\n 'trembling',\n 'tremor',\n 'trench',\n 'trend',\n 'trespass',\n 'triage',\n 'trial',\n 'triangle',\n 'tribesman',\n 'tribunal',\n 'tribune',\n 'tributary',\n 'tribute',\n 'triceps',\n 'trickery',\n 'trickily',\n 'tricking',\n 'trickle',\n 'trickster',\n 'tricky',\n 'tricolor',\n 'tricycle',\n 'trident',\n 'tried',\n 'trifle',\n 'trifocals',\n 'trillion',\n 'trilogy',\n 'trimester',\n 'trimmer',\n 'trimming',\n 'trimness',\n 'trinity',\n 'trio',\n 'tripod',\n 'tripping',\n 'triumph',\n 'trivial',\n 'trodden',\n 'trolling',\n 'trombone',\n 'trophy',\n 'tropical',\n 'tropics',\n 'trouble',\n 'troubling',\n 'trough',\n 'trousers',\n 'trout',\n 'trowel',\n 'truce',\n 'truck',\n 'truffle',\n 'trump',\n 'trunks',\n 'trustable',\n 'trustee',\n 'trustful',\n 'trusting',\n 'trustless',\n 'truth',\n 'try',\n 'tubby',\n 'tubeless',\n 'tubular',\n 'tucking',\n 'tuesday',\n 'tug',\n 'tuition',\n 'tulip',\n 'tumble',\n 'tumbling',\n 'tummy',\n 'turban',\n 'turbine',\n 'turbofan',\n 'turbojet',\n 'turbulent',\n 'turf',\n 'turkey',\n 'turmoil',\n 'turret',\n 'turtle',\n 'tusk',\n 'tutor',\n 'tutu',\n 'tux',\n 'tweak',\n 'tweed',\n 'tweet',\n 'tweezers',\n 'twelve',\n 'twentieth',\n 'twenty',\n 'twerp',\n 'twice',\n 'twiddle',\n 'twiddling',\n 'twig',\n 'twilight',\n 'twine',\n 'twins',\n 'twirl',\n 'twistable',\n 'twisted',\n 'twister',\n 'twisting',\n 'twisty',\n 'twitch',\n 'twitter',\n 'tycoon',\n 'tying',\n 'tyke',\n 'udder',\n 'ultimate',\n 'ultimatum',\n 'ultra',\n 'umbilical',\n 'umbrella',\n 'umpire',\n 'unabashed',\n 'unable',\n 'unadorned',\n 'unadvised',\n 'unafraid',\n 'unaired',\n 'unaligned',\n 'unaltered',\n 'unarmored',\n 'unashamed',\n 'unaudited',\n 'unawake',\n 'unaware',\n 'unbaked',\n 'unbalance',\n 'unbeaten',\n 'unbend',\n 'unbent',\n 'unbiased',\n 'unbitten',\n 'unblended',\n 'unblessed',\n 'unblock',\n 'unbolted',\n 'unbounded',\n 'unboxed',\n 'unbraided',\n 'unbridle',\n 'unbroken',\n 'unbuckled',\n 'unbundle',\n 'unburned',\n 'unbutton',\n 'uncanny',\n 'uncapped',\n 'uncaring',\n 'uncertain',\n 'unchain',\n 'unchanged',\n 'uncharted',\n 'uncheck',\n 'uncivil',\n 'unclad',\n 'unclaimed',\n 'unclamped',\n 'unclasp',\n 'uncle',\n 'unclip',\n 'uncloak',\n 'unclog',\n 'unclothed',\n 'uncoated',\n 'uncoiled',\n 'uncolored',\n 'uncombed',\n 'uncommon',\n 'uncooked',\n 'uncork',\n 'uncorrupt',\n 'uncounted',\n 'uncouple',\n 'uncouth',\n 'uncover',\n 'uncross',\n 'uncrown',\n 'uncrushed',\n 'uncured',\n 'uncurious',\n 'uncurled',\n 'uncut',\n 'undamaged',\n 'undated',\n 'undaunted',\n 'undead',\n 'undecided',\n 'undefined',\n 'underage',\n 'underarm',\n 'undercoat',\n 'undercook',\n 'undercut',\n 'underdog',\n 'underdone',\n 'underfed',\n 'underfeed',\n 'underfoot',\n 'undergo',\n 'undergrad',\n 'underhand',\n 'underline',\n 'underling',\n 'undermine',\n 'undermost',\n 'underpaid',\n 'underpass',\n 'underpay',\n 'underrate',\n 'undertake',\n 'undertone',\n 'undertook',\n 'undertow',\n 'underuse',\n 'underwear',\n 'underwent',\n 'underwire',\n 'undesired',\n 'undiluted',\n 'undivided',\n 'undocked',\n 'undoing',\n 'undone',\n 'undrafted',\n 'undress',\n 'undrilled',\n 'undusted',\n 'undying',\n 'unearned',\n 'unearth',\n 'unease',\n 'uneasily',\n 'uneasy',\n 'uneatable',\n 'uneaten',\n 'unedited',\n 'unelected',\n 'unending',\n 'unengaged',\n 'unenvied',\n 'unequal',\n 'unethical',\n 'uneven',\n 'unexpired',\n 'unexposed',\n 'unfailing',\n 'unfair',\n 'unfasten',\n 'unfazed',\n 'unfeeling',\n 'unfiled',\n 'unfilled',\n 'unfitted',\n 'unfitting',\n 'unfixable',\n 'unfixed',\n 'unflawed',\n 'unfocused',\n 'unfold',\n 'unfounded',\n 'unframed',\n 'unfreeze',\n 'unfrosted',\n 'unfrozen',\n 'unfunded',\n 'unglazed',\n 'ungloved',\n 'unglue',\n 'ungodly',\n 'ungraded',\n 'ungreased',\n 'unguarded',\n 'unguided',\n 'unhappily',\n 'unhappy',\n 'unharmed',\n 'unhealthy',\n 'unheard',\n 'unhearing',\n 'unheated',\n 'unhelpful',\n 'unhidden',\n 'unhinge',\n 'unhitched',\n 'unholy',\n 'unhook',\n 'unicorn',\n 'unicycle',\n 'unified',\n 'unifier',\n 'uniformed',\n 'uniformly',\n 'unify',\n 'unimpeded',\n 'uninjured',\n 'uninstall',\n 'uninsured',\n 'uninvited',\n 'union',\n 'uniquely',\n 'unisexual',\n 'unison',\n 'unissued',\n 'unit',\n 'universal',\n 'universe',\n 'unjustly',\n 'unkempt',\n 'unkind',\n 'unknotted',\n 'unknowing',\n 'unknown',\n 'unlaced',\n 'unlatch',\n 'unlawful',\n 'unleaded',\n 'unlearned',\n 'unleash',\n 'unless',\n 'unleveled',\n 'unlighted',\n 'unlikable',\n 'unlimited',\n 'unlined',\n 'unlinked',\n 'unlisted',\n 'unlit',\n 'unlivable',\n 'unloaded',\n 'unloader',\n 'unlocked',\n 'unlocking',\n 'unlovable',\n 'unloved',\n 'unlovely',\n 'unloving',\n 'unluckily',\n 'unlucky',\n 'unmade',\n 'unmanaged',\n 'unmanned',\n 'unmapped',\n 'unmarked',\n 'unmasked',\n 'unmasking',\n 'unmatched',\n 'unmindful',\n 'unmixable',\n 'unmixed',\n 'unmolded',\n 'unmoral',\n 'unmovable',\n 'unmoved',\n 'unmoving',\n 'unnamable',\n 'unnamed',\n 'unnatural',\n 'unneeded',\n 'unnerve',\n 'unnerving',\n 'unnoticed',\n 'unopened',\n 'unopposed',\n 'unpack',\n 'unpadded',\n 'unpaid',\n 'unpainted',\n 'unpaired',\n 'unpaved',\n 'unpeeled',\n 'unpicked',\n 'unpiloted',\n 'unpinned',\n 'unplanned',\n 'unplanted',\n 'unpleased',\n 'unpledged',\n 'unplowed',\n 'unplug',\n 'unpopular',\n 'unproven',\n 'unquote',\n 'unranked',\n 'unrated',\n 'unraveled',\n 'unreached',\n 'unread',\n 'unreal',\n 'unreeling',\n 'unrefined',\n 'unrelated',\n 'unrented',\n 'unrest',\n 'unretired',\n 'unrevised',\n 'unrigged',\n 'unripe',\n 'unrivaled',\n 'unroasted',\n 'unrobed',\n 'unroll',\n 'unruffled',\n 'unruly',\n 'unrushed',\n 'unsaddle',\n 'unsafe',\n 'unsaid',\n 'unsalted',\n 'unsaved',\n 'unsavory',\n 'unscathed',\n 'unscented',\n 'unscrew',\n 'unsealed',\n 'unseated',\n 'unsecured',\n 'unseeing',\n 'unseemly',\n 'unseen',\n 'unselect',\n 'unselfish',\n 'unsent',\n 'unsettled',\n 'unshackle',\n 'unshaken',\n 'unshaved',\n 'unshaven',\n 'unsheathe',\n 'unshipped',\n 'unsightly',\n 'unsigned',\n 'unskilled',\n 'unsliced',\n 'unsmooth',\n 'unsnap',\n 'unsocial',\n 'unsoiled',\n 'unsold',\n 'unsolved',\n 'unsorted',\n 'unspoiled',\n 'unspoken',\n 'unstable',\n 'unstaffed',\n 'unstamped',\n 'unsteady',\n 'unsterile',\n 'unstirred',\n 'unstitch',\n 'unstopped',\n 'unstuck',\n 'unstuffed',\n 'unstylish',\n 'unsubtle',\n 'unsubtly',\n 'unsuited',\n 'unsure',\n 'unsworn',\n 'untagged',\n 'untainted',\n 'untaken',\n 'untamed',\n 'untangled',\n 'untapped',\n 'untaxed',\n 'unthawed',\n 'unthread',\n 'untidy',\n 'untie',\n 'until',\n 'untimed',\n 'untimely',\n 'untitled',\n 'untoasted',\n 'untold',\n 'untouched',\n 'untracked',\n 'untrained',\n 'untreated',\n 'untried',\n 'untrimmed',\n 'untrue',\n 'untruth',\n 'unturned',\n 'untwist',\n 'untying',\n 'unusable',\n 'unused',\n 'unusual',\n 'unvalued',\n 'unvaried',\n 'unvarying',\n 'unveiled',\n 'unveiling',\n 'unvented',\n 'unviable',\n 'unvisited',\n 'unvocal',\n 'unwanted',\n 'unwarlike',\n 'unwary',\n 'unwashed',\n 'unwatched',\n 'unweave',\n 'unwed',\n 'unwelcome',\n 'unwell',\n 'unwieldy',\n 'unwilling',\n 'unwind',\n 'unwired',\n 'unwitting',\n 'unwomanly',\n 'unworldly',\n 'unworn',\n 'unworried',\n 'unworthy',\n 'unwound',\n 'unwoven',\n 'unwrapped',\n 'unwritten',\n 'unzip',\n 'upbeat',\n 'upchuck',\n 'upcoming',\n 'upcountry',\n 'update',\n 'upfront',\n 'upgrade',\n 'upheaval',\n 'upheld',\n 'uphill',\n 'uphold',\n 'uplifted',\n 'uplifting',\n 'upload',\n 'upon',\n 'upper',\n 'upright',\n 'uprising',\n 'upriver',\n 'uproar',\n 'uproot',\n 'upscale',\n 'upside',\n 'upstage',\n 'upstairs',\n 'upstart',\n 'upstate',\n 'upstream',\n 'upstroke',\n 'upswing',\n 'uptake',\n 'uptight',\n 'uptown',\n 'upturned',\n 'upward',\n 'upwind',\n 'uranium',\n 'urban',\n 'urchin',\n 'urethane',\n 'urgency',\n 'urgent',\n 'urging',\n 'urologist',\n 'urology',\n 'usable',\n 'usage',\n 'useable',\n 'used',\n 'uselessly',\n 'user',\n 'usher',\n 'usual',\n 'utensil',\n 'utility',\n 'utilize',\n 'utmost',\n 'utopia',\n 'utter',\n 'vacancy',\n 'vacant',\n 'vacate',\n 'vacation',\n 'vagabond',\n 'vagrancy',\n 'vagrantly',\n 'vaguely',\n 'vagueness',\n 'valiant',\n 'valid',\n 'valium',\n 'valley',\n 'valuables',\n 'value',\n 'vanilla',\n 'vanish',\n 'vanity',\n 'vanquish',\n 'vantage',\n 'vaporizer',\n 'variable',\n 'variably',\n 'varied',\n 'variety',\n 'various',\n 'varmint',\n 'varnish',\n 'varsity',\n 'varying',\n 'vascular',\n 'vaseline',\n 'vastly',\n 'vastness',\n 'veal',\n 'vegan',\n 'veggie',\n 'vehicular',\n 'velcro',\n 'velocity',\n 'velvet',\n 'vendetta',\n 'vending',\n 'vendor',\n 'veneering',\n 'vengeful',\n 'venomous',\n 'ventricle',\n 'venture',\n 'venue',\n 'venus',\n 'verbalize',\n 'verbally',\n 'verbose',\n 'verdict',\n 'verify',\n 'verse',\n 'version',\n 'versus',\n 'vertebrae',\n 'vertical',\n 'vertigo',\n 'very',\n 'vessel',\n 'vest',\n 'veteran',\n 'veto',\n 'vexingly',\n 'viability',\n 'viable',\n 'vibes',\n 'vice',\n 'vicinity',\n 'victory',\n 'video',\n 'viewable',\n 'viewer',\n 'viewing',\n 'viewless',\n 'viewpoint',\n 'vigorous',\n 'village',\n 'villain',\n 'vindicate',\n 'vineyard',\n 'vintage',\n 'violate',\n 'violation',\n 'violator',\n 'violet',\n 'violin',\n 'viper',\n 'viral',\n 'virtual',\n 'virtuous',\n 'virus',\n 'visa',\n 'viscosity',\n 'viscous',\n 'viselike',\n 'visible',\n 'visibly',\n 'vision',\n 'visiting',\n 'visitor',\n 'visor',\n 'vista',\n 'vitality',\n 'vitalize',\n 'vitally',\n 'vitamins',\n 'vivacious',\n 'vividly',\n 'vividness',\n 'vixen',\n 'vocalist',\n 'vocalize',\n 'vocally',\n 'vocation',\n 'voice',\n 'voicing',\n 'void',\n 'volatile',\n 'volley',\n 'voltage',\n 'volumes',\n 'voter',\n 'voting',\n 'voucher',\n 'vowed',\n 'vowel',\n 'voyage',\n 'wackiness',\n 'wad',\n 'wafer',\n 'waffle',\n 'waged',\n 'wager',\n 'wages',\n 'waggle',\n 'wagon',\n 'wake',\n 'waking',\n 'walk',\n 'walmart',\n 'walnut',\n 'walrus',\n 'waltz',\n 'wand',\n 'wannabe',\n 'wanted',\n 'wanting',\n 'wasabi',\n 'washable',\n 'washbasin',\n 'washboard',\n 'washbowl',\n 'washcloth',\n 'washday',\n 'washed',\n 'washer',\n 'washhouse',\n 'washing',\n 'washout',\n 'washroom',\n 'washstand',\n 'washtub',\n 'wasp',\n 'wasting',\n 'watch',\n 'water',\n 'waviness',\n 'waving',\n 'wavy',\n 'whacking',\n 'whacky',\n 'wham',\n 'wharf',\n 'wheat',\n 'whenever',\n 'whiff',\n 'whimsical',\n 'whinny',\n 'whiny',\n 'whisking',\n 'whoever',\n 'whole',\n 'whomever',\n 'whoopee',\n 'whooping',\n 'whoops',\n 'why',\n 'wick',\n 'widely',\n 'widen',\n 'widget',\n 'widow',\n 'width',\n 'wieldable',\n 'wielder',\n 'wife',\n 'wifi',\n 'wikipedia',\n 'wildcard',\n 'wildcat',\n 'wilder',\n 'wildfire',\n 'wildfowl',\n 'wildland',\n 'wildlife',\n 'wildly',\n 'wildness',\n 'willed',\n 'willfully',\n 'willing',\n 'willow',\n 'willpower',\n 'wilt',\n 'wimp',\n 'wince',\n 'wincing',\n 'wind',\n 'wing',\n 'winking',\n 'winner',\n 'winnings',\n 'winter',\n 'wipe',\n 'wired',\n 'wireless',\n 'wiring',\n 'wiry',\n 'wisdom',\n 'wise',\n 'wish',\n 'wisplike',\n 'wispy',\n 'wistful',\n 'wizard',\n 'wobble',\n 'wobbling',\n 'wobbly',\n 'wok',\n 'wolf',\n 'wolverine',\n 'womanhood',\n 'womankind',\n 'womanless',\n 'womanlike',\n 'womanly',\n 'womb',\n 'woof',\n 'wooing',\n 'wool',\n 'woozy',\n 'word',\n 'work',\n 'worried',\n 'worrier',\n 'worrisome',\n 'worry',\n 'worsening',\n 'worshiper',\n 'worst',\n 'wound',\n 'woven',\n 'wow',\n 'wrangle',\n 'wrath',\n 'wreath',\n 'wreckage',\n 'wrecker',\n 'wrecking',\n 'wrench',\n 'wriggle',\n 'wriggly',\n 'wrinkle',\n 'wrinkly',\n 'wrist',\n 'writing',\n 'written',\n 'wrongdoer',\n 'wronged',\n 'wrongful',\n 'wrongly',\n 'wrongness',\n 'wrought',\n 'xbox',\n 'xerox',\n 'yahoo',\n 'yam',\n 'yanking',\n 'yapping',\n 'yard',\n 'yarn',\n 'yeah',\n 'yearbook',\n 'yearling',\n 'yearly',\n 'yearning',\n 'yeast',\n 'yelling',\n 'yelp',\n 'yen',\n 'yesterday',\n 'yiddish',\n 'yield',\n 'yin',\n 'yippee',\n 'yo-yo',\n 'yodel',\n 'yoga',\n 'yogurt',\n 'yonder',\n 'yoyo',\n 'yummy',\n 'zap',\n 'zealous',\n 'zebra',\n 'zen',\n 'zeppelin',\n 'zero',\n 'zestfully',\n 'zesty',\n 'zigzagged',\n 'zipfile',\n 'zipping',\n 'zippy',\n 'zips',\n 'zit',\n 'zodiac',\n 'zombie',\n 'zone',\n 'zoning',\n 'zookeeper',\n 'zoologist',\n 'zoology',\n 'zoom',\n];\n","import { EnvironmentUrls } from '../models/domain/environmentUrls';\n\nimport { ConstantsService } from './constants.service';\n\nimport { ApiService } from '../abstractions/api.service';\nimport { EnvironmentService as EnvironmentServiceAbstraction } from '../abstractions/environment.service';\nimport { NotificationsService } from '../abstractions/notifications.service';\nimport { StorageService } from '../abstractions/storage.service';\n\nexport class EnvironmentService implements EnvironmentServiceAbstraction {\n baseUrl: string;\n webVaultUrl: string;\n apiUrl: string;\n identityUrl: string;\n iconsUrl: string;\n notificationsUrl: string;\n eventsUrl: string;\n enterpriseUrl: string;\n\n constructor(private apiService: ApiService, private storageService: StorageService,\n private notificationsService: NotificationsService) { }\n\n getWebVaultUrl(): string {\n if (this.webVaultUrl != null) {\n return this.webVaultUrl;\n } else if (this.baseUrl) {\n return this.baseUrl;\n }\n return null;\n }\n\n async setUrlsFromStorage(): Promise {\n const urlsObj: any = await this.storageService.get(ConstantsService.environmentUrlsKey);\n const urls = urlsObj || {\n base: null,\n api: null,\n identity: null,\n icons: null,\n notifications: null,\n events: null,\n webVault: null,\n enterprise: null,\n };\n\n const envUrls = new EnvironmentUrls();\n\n if (urls.base) {\n this.baseUrl = envUrls.base = urls.base;\n this.apiService.setUrls(envUrls);\n return;\n }\n\n this.webVaultUrl = urls.webVault;\n this.apiUrl = envUrls.api = urls.api;\n this.identityUrl = envUrls.identity = urls.identity;\n this.iconsUrl = urls.icons;\n this.notificationsUrl = urls.notifications;\n this.eventsUrl = envUrls.events = urls.events;\n this.enterpriseUrl = urls.enterprise;\n this.apiService.setUrls(envUrls);\n }\n\n async setUrls(urls: any): Promise {\n urls.base = this.formatUrl(urls.base);\n urls.webVault = this.formatUrl(urls.webVault);\n urls.api = this.formatUrl(urls.api);\n urls.identity = this.formatUrl(urls.identity);\n urls.icons = this.formatUrl(urls.icons);\n urls.notifications = this.formatUrl(urls.notifications);\n urls.events = this.formatUrl(urls.events);\n urls.enterprise = this.formatUrl(urls.enterprise);\n\n await this.storageService.save(ConstantsService.environmentUrlsKey, {\n base: urls.base,\n api: urls.api,\n identity: urls.identity,\n webVault: urls.webVault,\n icons: urls.icons,\n notifications: urls.notifications,\n events: urls.events,\n enterprise: urls.enterprise,\n });\n\n this.baseUrl = urls.base;\n this.webVaultUrl = urls.webVault;\n this.apiUrl = urls.api;\n this.identityUrl = urls.identity;\n this.iconsUrl = urls.icons;\n this.notificationsUrl = urls.notifications;\n this.eventsUrl = urls.events;\n this.enterpriseUrl = urls.enterprise;\n\n const envUrls = new EnvironmentUrls();\n if (this.baseUrl) {\n envUrls.base = this.baseUrl;\n } else {\n envUrls.api = this.apiUrl;\n envUrls.identity = this.identityUrl;\n envUrls.events = this.eventsUrl;\n }\n\n this.apiService.setUrls(envUrls);\n if (this.notificationsService != null) {\n this.notificationsService.init(this);\n }\n return urls;\n }\n\n private formatUrl(url: string): string {\n if (url == null || url === '') {\n return null;\n }\n\n url = url.replace(/\\/+$/g, '');\n if (!url.startsWith('http://') && !url.startsWith('https://')) {\n url = 'https://' + url;\n }\n\n return url.trim();\n }\n}\n","import { FolderData } from '../models/data/folderData';\n\nimport { Folder } from '../models/domain/folder';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\nimport { TreeNode } from '../models/domain/treeNode';\n\nimport { FolderRequest } from '../models/request/folderRequest';\n\nimport { FolderResponse } from '../models/response/folderResponse';\n\nimport { FolderView } from '../models/view/folderView';\n\nimport { ApiService } from '../abstractions/api.service';\nimport { CipherService } from '../abstractions/cipher.service';\nimport { CryptoService } from '../abstractions/crypto.service';\nimport { FolderService as FolderServiceAbstraction } from '../abstractions/folder.service';\nimport { I18nService } from '../abstractions/i18n.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { UserService } from '../abstractions/user.service';\nimport { CipherData } from '../models/data/cipherData';\n\nimport { ServiceUtils } from '../misc/serviceUtils';\nimport { Utils } from '../misc/utils';\n\nconst Keys = {\n foldersPrefix: 'folders_',\n ciphersPrefix: 'ciphers_',\n};\nconst NestingDelimiter = '/';\n\nexport class FolderService implements FolderServiceAbstraction {\n decryptedFolderCache: FolderView[];\n\n constructor(private cryptoService: CryptoService, private userService: UserService,\n private apiService: ApiService, private storageService: StorageService,\n private i18nService: I18nService, private cipherService: CipherService) { }\n\n clearCache(): void {\n this.decryptedFolderCache = null;\n }\n\n async encrypt(model: FolderView, key?: SymmetricCryptoKey): Promise {\n const folder = new Folder();\n folder.id = model.id;\n folder.name = await this.cryptoService.encrypt(model.name, key);\n return folder;\n }\n\n async get(id: string): Promise {\n const userId = await this.userService.getUserId();\n const folders = await this.storageService.get<{ [id: string]: FolderData; }>(\n Keys.foldersPrefix + userId);\n if (folders == null || !folders.hasOwnProperty(id)) {\n return null;\n }\n\n return new Folder(folders[id]);\n }\n\n async getAll(): Promise {\n const userId = await this.userService.getUserId();\n const folders = await this.storageService.get<{ [id: string]: FolderData; }>(\n Keys.foldersPrefix + userId);\n const response: Folder[] = [];\n for (const id in folders) {\n if (folders.hasOwnProperty(id)) {\n response.push(new Folder(folders[id]));\n }\n }\n return response;\n }\n\n async getAllDecrypted(): Promise {\n if (this.decryptedFolderCache != null) {\n return this.decryptedFolderCache;\n }\n\n const hasKey = await this.cryptoService.hasKey();\n if (!hasKey) {\n throw new Error('No key.');\n }\n\n const decFolders: FolderView[] = [];\n const promises: Promise[] = [];\n const folders = await this.getAll();\n folders.forEach(folder => {\n promises.push(folder.decrypt().then(f => decFolders.push(f)));\n });\n\n await Promise.all(promises);\n decFolders.sort(Utils.getSortFunction(this.i18nService, 'name'));\n\n const noneFolder = new FolderView();\n noneFolder.name = this.i18nService.t('noneFolder');\n decFolders.push(noneFolder);\n\n this.decryptedFolderCache = decFolders;\n return this.decryptedFolderCache;\n }\n\n async getAllNested(): Promise[]> {\n const folders = await this.getAllDecrypted();\n const nodes: TreeNode[] = [];\n folders.forEach(f => {\n const folderCopy = new FolderView();\n folderCopy.id = f.id;\n folderCopy.revisionDate = f.revisionDate;\n const parts = f.name != null ? f.name.replace(/^\\/+|\\/+$/g, '').split(NestingDelimiter) : [];\n ServiceUtils.nestedTraverse(nodes, 0, parts, folderCopy, null, NestingDelimiter);\n });\n return nodes;\n }\n\n async getNested(id: string): Promise> {\n const folders = await this.getAllNested();\n return ServiceUtils.getTreeNodeObject(folders, id) as TreeNode;\n }\n\n async saveWithServer(folder: Folder): Promise {\n const request = new FolderRequest(folder);\n\n let response: FolderResponse;\n if (folder.id == null) {\n response = await this.apiService.postFolder(request);\n folder.id = response.id;\n } else {\n response = await this.apiService.putFolder(folder.id, request);\n }\n\n const userId = await this.userService.getUserId();\n const data = new FolderData(response, userId);\n await this.upsert(data);\n }\n\n async upsert(folder: FolderData | FolderData[]): Promise {\n const userId = await this.userService.getUserId();\n let folders = await this.storageService.get<{ [id: string]: FolderData; }>(\n Keys.foldersPrefix + userId);\n if (folders == null) {\n folders = {};\n }\n\n if (folder instanceof FolderData) {\n const f = folder as FolderData;\n folders[f.id] = f;\n } else {\n (folder as FolderData[]).forEach(f => {\n folders[f.id] = f;\n });\n }\n\n await this.storageService.save(Keys.foldersPrefix + userId, folders);\n this.decryptedFolderCache = null;\n }\n\n async replace(folders: { [id: string]: FolderData; }): Promise {\n const userId = await this.userService.getUserId();\n await this.storageService.save(Keys.foldersPrefix + userId, folders);\n this.decryptedFolderCache = null;\n }\n\n async clear(userId: string): Promise {\n await this.storageService.remove(Keys.foldersPrefix + userId);\n this.decryptedFolderCache = null;\n }\n\n async delete(id: string | string[]): Promise {\n const userId = await this.userService.getUserId();\n const folders = await this.storageService.get<{ [id: string]: FolderData; }>(\n Keys.foldersPrefix + userId);\n if (folders == null) {\n return;\n }\n\n if (typeof id === 'string') {\n if (folders[id] == null) {\n return;\n }\n delete folders[id];\n } else {\n (id as string[]).forEach(i => {\n delete folders[i];\n });\n }\n\n await this.storageService.save(Keys.foldersPrefix + userId, folders);\n this.decryptedFolderCache = null;\n\n // Items in a deleted folder are re-assigned to \"No Folder\"\n const ciphers = await this.storageService.get<{ [id: string]: CipherData; }>(Keys.ciphersPrefix + userId);\n if (ciphers != null) {\n const updates: CipherData[] = [];\n for (const cId in ciphers) {\n if (ciphers[cId].folderId === id) {\n ciphers[cId].folderId = null;\n updates.push(ciphers[cId]);\n }\n }\n if (updates.length > 0) {\n this.cipherService.upsert(updates);\n }\n }\n }\n\n async deleteWithServer(id: string): Promise {\n await this.apiService.deleteFolder(id);\n await this.delete(id);\n }\n}\n","import { I18nService as I18nServiceAbstraction } from '../abstractions/i18n.service';\n\nexport class I18nService implements I18nServiceAbstraction {\n locale: string;\n // First locale is the default (English)\n supportedTranslationLocales: string[] = ['en'];\n translationLocale: string;\n collator: Intl.Collator;\n localeNames = new Map([\n ['af', 'Afrikaans'],\n ['be', 'Беларуская'],\n ['bg', 'български'],\n ['ca', 'català'],\n ['cs', 'čeština'],\n ['da', 'dansk'],\n ['de', 'Deutsch'],\n ['el', 'Ελληνικά'],\n ['en', 'English'],\n ['en-GB', 'English (British)'],\n ['eo', 'Esperanto'],\n ['es', 'español'],\n ['et', 'eesti'],\n ['fa', 'فارسی'],\n ['fi', 'suomi'],\n ['fr', 'français'],\n ['he', 'עברית'],\n ['hi', 'हिन्दी'],\n ['hr', 'hrvatski'],\n ['hu', 'magyar'],\n ['id', 'Bahasa Indonesia'],\n ['it', 'italiano'],\n ['ja', '日本語'],\n ['ko', '한국어'],\n ['lv', 'Latvietis'],\n ['ml', 'മലയാളം'],\n ['nb', 'norsk (bokmål)'],\n ['nl', 'Nederlands'],\n ['pl', 'polski'],\n ['pt-BR', 'português do Brasil'],\n ['pt-PT', 'português'],\n ['ro', 'română'],\n ['ru', 'русский'],\n ['sk', 'slovenčina'],\n ['sr', 'Српски'],\n ['sv', 'svenska'],\n ['th', 'ไทย'],\n ['tr', 'Türkçe'],\n ['uk', 'українська'],\n ['vi', 'Tiếng Việt'],\n ['zh-CN', '中文(中国大陆)'],\n ['zh-TW', '中文(台灣)'],\n ]);\n\n protected inited: boolean;\n protected defaultMessages: any = {};\n protected localeMessages: any = {};\n\n constructor(protected systemLanguage: string, protected localesDirectory: string,\n protected getLocalesJson: (formattedLocale: string) => Promise) {\n this.systemLanguage = systemLanguage.replace('_', '-');\n }\n\n async init(locale?: string) {\n if (this.inited) {\n throw new Error('i18n already initialized.');\n }\n if (this.supportedTranslationLocales == null || this.supportedTranslationLocales.length === 0) {\n throw new Error('supportedTranslationLocales not set.');\n }\n\n this.inited = true;\n this.locale = this.translationLocale = locale != null ? locale : this.systemLanguage;\n\n try {\n this.collator = new Intl.Collator(this.locale, { numeric: true, sensitivity: 'base' });\n } catch {\n this.collator = null;\n }\n\n if (this.supportedTranslationLocales.indexOf(this.translationLocale) === -1) {\n this.translationLocale = this.translationLocale.slice(0, 2);\n\n if (this.supportedTranslationLocales.indexOf(this.translationLocale) === -1) {\n this.translationLocale = this.supportedTranslationLocales[0];\n }\n }\n\n if (this.localesDirectory != null) {\n await this.loadMessages(this.translationLocale, this.localeMessages);\n if (this.translationLocale !== this.supportedTranslationLocales[0]) {\n await this.loadMessages(this.supportedTranslationLocales[0], this.defaultMessages);\n }\n }\n }\n\n t(id: string, p1?: string, p2?: string, p3?: string): string {\n return this.translate(id, p1, p2, p3);\n }\n\n translate(id: string, p1?: string, p2?: string, p3?: string): string {\n let result: string;\n if (this.localeMessages.hasOwnProperty(id) && this.localeMessages[id]) {\n result = this.localeMessages[id];\n } else if (this.defaultMessages.hasOwnProperty(id) && this.defaultMessages[id]) {\n result = this.defaultMessages[id];\n } else {\n result = '';\n }\n\n if (result !== '') {\n if (p1 != null) {\n result = result.split('__$1__').join(p1);\n }\n if (p2 != null) {\n result = result.split('__$2__').join(p2);\n }\n if (p3 != null) {\n result = result.split('__$3__').join(p3);\n }\n }\n\n return result;\n }\n\n private async loadMessages(locale: string, messagesObj: any): Promise {\n const formattedLocale = locale.replace('-', '_');\n const locales = await this.getLocalesJson(formattedLocale);\n for (const prop in locales) {\n if (!locales.hasOwnProperty(prop)) {\n continue;\n }\n messagesObj[prop] = locales[prop].message;\n\n if (locales[prop].placeholders) {\n for (const placeProp in locales[prop].placeholders) {\n if (!locales[prop].placeholders.hasOwnProperty(placeProp) ||\n !locales[prop].placeholders[placeProp].content) {\n continue;\n }\n\n const replaceToken = '\\\\$' + placeProp.toUpperCase() + '\\\\$';\n let replaceContent = locales[prop].placeholders[placeProp].content;\n if (replaceContent === '$1' || replaceContent === '$2' || replaceContent === '$3') {\n replaceContent = '__$' + replaceContent + '__';\n }\n messagesObj[prop] = messagesObj[prop].replace(new RegExp(replaceToken, 'g'), replaceContent);\n }\n }\n }\n }\n\n}\n","import * as zxcvbn from 'zxcvbn';\n\nimport { CipherString } from '../models/domain/cipherString';\nimport { GeneratedPasswordHistory } from '../models/domain/generatedPasswordHistory';\nimport { PasswordGeneratorPolicyOptions } from '../models/domain/passwordGeneratorPolicyOptions';\nimport { Policy } from '../models/domain/policy';\n\nimport { CryptoService } from '../abstractions/crypto.service';\nimport {\n PasswordGenerationService as PasswordGenerationServiceAbstraction,\n} from '../abstractions/passwordGeneration.service';\nimport { PolicyService } from '../abstractions/policy.service';\nimport { StorageService } from '../abstractions/storage.service';\n\nimport { EEFLongWordList } from '../misc/wordlist';\n\nimport { PolicyType } from '../enums/policyType';\n\nconst DefaultOptions = {\n length: 14,\n ambiguous: false,\n number: true,\n minNumber: 1,\n uppercase: true,\n minUppercase: 0,\n lowercase: true,\n minLowercase: 0,\n special: false,\n minSpecial: 1,\n type: 'password',\n numWords: 3,\n wordSeparator: '-',\n capitalize: false,\n includeNumber: false,\n};\n\nconst Keys = {\n options: 'passwordGenerationOptions',\n history: 'generatedPasswordHistory',\n};\n\nconst MaxPasswordsInHistory = 100;\n\nexport class PasswordGenerationService implements PasswordGenerationServiceAbstraction {\n private optionsCache: any;\n private history: GeneratedPasswordHistory[];\n\n constructor(private cryptoService: CryptoService, private storageService: StorageService,\n private policyService: PolicyService) { }\n\n async generatePassword(options: any): Promise {\n // overload defaults with given options\n const o = Object.assign({}, DefaultOptions, options);\n\n if (o.type === 'passphrase') {\n return this.generatePassphrase(options);\n }\n\n // sanitize\n this.sanitizePasswordLength(o, true);\n\n const minLength: number = o.minUppercase + o.minLowercase + o.minNumber + o.minSpecial;\n if (o.length < minLength) {\n o.length = minLength;\n }\n\n const positions: string[] = [];\n if (o.lowercase && o.minLowercase > 0) {\n for (let i = 0; i < o.minLowercase; i++) {\n positions.push('l');\n }\n }\n if (o.uppercase && o.minUppercase > 0) {\n for (let i = 0; i < o.minUppercase; i++) {\n positions.push('u');\n }\n }\n if (o.number && o.minNumber > 0) {\n for (let i = 0; i < o.minNumber; i++) {\n positions.push('n');\n }\n }\n if (o.special && o.minSpecial > 0) {\n for (let i = 0; i < o.minSpecial; i++) {\n positions.push('s');\n }\n }\n while (positions.length < o.length) {\n positions.push('a');\n }\n\n // shuffle\n await this.shuffleArray(positions);\n\n // build out the char sets\n let allCharSet = '';\n\n let lowercaseCharSet = 'abcdefghijkmnopqrstuvwxyz';\n if (o.ambiguous) {\n lowercaseCharSet += 'l';\n }\n if (o.lowercase) {\n allCharSet += lowercaseCharSet;\n }\n\n let uppercaseCharSet = 'ABCDEFGHJKLMNPQRSTUVWXYZ';\n if (o.ambiguous) {\n uppercaseCharSet += 'IO';\n }\n if (o.uppercase) {\n allCharSet += uppercaseCharSet;\n }\n\n let numberCharSet = '23456789';\n if (o.ambiguous) {\n numberCharSet += '01';\n }\n if (o.number) {\n allCharSet += numberCharSet;\n }\n\n const specialCharSet = '!@#$%^&*';\n if (o.special) {\n allCharSet += specialCharSet;\n }\n\n let password = '';\n for (let i = 0; i < o.length; i++) {\n let positionChars: string;\n switch (positions[i]) {\n case 'l':\n positionChars = lowercaseCharSet;\n break;\n case 'u':\n positionChars = uppercaseCharSet;\n break;\n case 'n':\n positionChars = numberCharSet;\n break;\n case 's':\n positionChars = specialCharSet;\n break;\n case 'a':\n positionChars = allCharSet;\n break;\n default:\n break;\n }\n\n const randomCharIndex = await this.cryptoService.randomNumber(0, positionChars.length - 1);\n password += positionChars.charAt(randomCharIndex);\n }\n\n return password;\n }\n\n async generatePassphrase(options: any): Promise {\n const o = Object.assign({}, DefaultOptions, options);\n\n if (o.numWords == null || o.numWords <= 2) {\n o.numWords = DefaultOptions.numWords;\n }\n if (o.wordSeparator == null || o.wordSeparator.length === 0 || o.wordSeparator.length > 1) {\n o.wordSeparator = ' ';\n }\n if (o.capitalize == null) {\n o.capitalize = false;\n }\n if (o.includeNumber == null) {\n o.includeNumber = false;\n }\n\n const listLength = EEFLongWordList.length - 1;\n const wordList = new Array(o.numWords);\n for (let i = 0; i < o.numWords; i++) {\n const wordIndex = await this.cryptoService.randomNumber(0, listLength);\n if (o.capitalize) {\n wordList[i] = this.capitalize(EEFLongWordList[wordIndex]);\n } else {\n wordList[i] = EEFLongWordList[wordIndex];\n }\n }\n\n if (o.includeNumber) {\n await this.appendRandomNumberToRandomWord(wordList);\n }\n return wordList.join(o.wordSeparator);\n }\n\n async getOptions(): Promise<[any, PasswordGeneratorPolicyOptions]> {\n if (this.optionsCache == null) {\n const options = await this.storageService.get(Keys.options);\n if (options == null) {\n this.optionsCache = DefaultOptions;\n } else {\n this.optionsCache = Object.assign({}, DefaultOptions, options);\n }\n }\n const enforcedOptions = await this.enforcePasswordGeneratorPoliciesOnOptions(this.optionsCache);\n this.optionsCache = enforcedOptions[0];\n return [this.optionsCache, enforcedOptions[1]];\n }\n\n async enforcePasswordGeneratorPoliciesOnOptions(options: any): Promise<[any, PasswordGeneratorPolicyOptions]> {\n let enforcedPolicyOptions = await this.getPasswordGeneratorPolicyOptions();\n if (enforcedPolicyOptions != null) {\n if (options.length < enforcedPolicyOptions.minLength) {\n options.length = enforcedPolicyOptions.minLength;\n }\n\n if (enforcedPolicyOptions.useUppercase) {\n options.uppercase = true;\n }\n\n if (enforcedPolicyOptions.useLowercase) {\n options.lowercase = true;\n }\n\n if (enforcedPolicyOptions.useNumbers) {\n options.number = true;\n }\n\n if (options.minNumber < enforcedPolicyOptions.numberCount) {\n options.minNumber = enforcedPolicyOptions.numberCount;\n }\n\n if (enforcedPolicyOptions.useSpecial) {\n options.special = true;\n }\n\n if (options.minSpecial < enforcedPolicyOptions.specialCount) {\n options.minSpecial = enforcedPolicyOptions.specialCount;\n }\n\n // Must normalize these fields because the receiving call expects all options to pass the current rules\n if (options.minSpecial + options.minNumber > options.length) {\n options.minSpecial = options.length - options.minNumber;\n }\n\n if (options.numWords < enforcedPolicyOptions.minNumberWords) {\n options.numWords = enforcedPolicyOptions.minNumberWords;\n }\n\n if (enforcedPolicyOptions.capitalize) {\n options.capitalize = true;\n }\n\n if (enforcedPolicyOptions.includeNumber) {\n options.includeNumber = true;\n }\n\n // Force default type if password/passphrase selected via policy\n if (enforcedPolicyOptions.defaultType === 'password' ||\n enforcedPolicyOptions.defaultType === 'passphrase') {\n options.type = enforcedPolicyOptions.defaultType;\n }\n } else { // UI layer expects an instantiated object to prevent more explicit null checks\n enforcedPolicyOptions = new PasswordGeneratorPolicyOptions();\n }\n return [options, enforcedPolicyOptions];\n }\n\n async getPasswordGeneratorPolicyOptions(): Promise {\n const policies: Policy[] = this.policyService == null ? null :\n await this.policyService.getAll(PolicyType.PasswordGenerator);\n let enforcedOptions: PasswordGeneratorPolicyOptions = null;\n\n if (policies == null || policies.length === 0) {\n return enforcedOptions;\n }\n\n policies.forEach(currentPolicy => {\n if (!currentPolicy.enabled || currentPolicy.data == null) {\n return;\n }\n\n if (enforcedOptions == null) {\n enforcedOptions = new PasswordGeneratorPolicyOptions();\n }\n\n // Password wins in multi-org collisions\n if (currentPolicy.data.defaultType != null && enforcedOptions.defaultType !== 'password') {\n enforcedOptions.defaultType = currentPolicy.data.defaultType;\n }\n\n if (currentPolicy.data.minLength != null\n && currentPolicy.data.minLength > enforcedOptions.minLength) {\n enforcedOptions.minLength = currentPolicy.data.minLength;\n }\n\n if (currentPolicy.data.useUpper) {\n enforcedOptions.useUppercase = true;\n }\n\n if (currentPolicy.data.useLower) {\n enforcedOptions.useLowercase = true;\n }\n\n if (currentPolicy.data.useNumbers) {\n enforcedOptions.useNumbers = true;\n }\n\n if (currentPolicy.data.minNumbers != null\n && currentPolicy.data.minNumbers > enforcedOptions.numberCount) {\n enforcedOptions.numberCount = currentPolicy.data.minNumbers;\n }\n\n if (currentPolicy.data.useSpecial) {\n enforcedOptions.useSpecial = true;\n }\n\n if (currentPolicy.data.minSpecial != null\n && currentPolicy.data.minSpecial > enforcedOptions.specialCount) {\n enforcedOptions.specialCount = currentPolicy.data.minSpecial;\n }\n\n if (currentPolicy.data.minNumberWords != null\n && currentPolicy.data.minNumberWords > enforcedOptions.minNumberWords) {\n enforcedOptions.minNumberWords = currentPolicy.data.minNumberWords;\n }\n\n if (currentPolicy.data.capitalize) {\n enforcedOptions.capitalize = true;\n }\n\n if (currentPolicy.data.includeNumber) {\n enforcedOptions.includeNumber = true;\n }\n });\n\n return enforcedOptions;\n }\n\n async saveOptions(options: any) {\n await this.storageService.save(Keys.options, options);\n this.optionsCache = options;\n }\n\n async getHistory(): Promise {\n const hasKey = await this.cryptoService.hasKey();\n if (!hasKey) {\n return new Array();\n }\n\n if (!this.history) {\n const encrypted = await this.storageService.get(Keys.history);\n this.history = await this.decryptHistory(encrypted);\n }\n\n return this.history || new Array();\n }\n\n async addHistory(password: string): Promise {\n // Cannot add new history if no key is available\n const hasKey = await this.cryptoService.hasKey();\n if (!hasKey) {\n return;\n }\n\n const currentHistory = await this.getHistory();\n\n // Prevent duplicates\n if (this.matchesPrevious(password, currentHistory)) {\n return;\n }\n\n currentHistory.unshift(new GeneratedPasswordHistory(password, Date.now()));\n\n // Remove old items.\n if (currentHistory.length > MaxPasswordsInHistory) {\n currentHistory.pop();\n }\n\n const newHistory = await this.encryptHistory(currentHistory);\n return await this.storageService.save(Keys.history, newHistory);\n }\n\n async clear(): Promise {\n this.history = [];\n return await this.storageService.remove(Keys.history);\n }\n\n passwordStrength(password: string, userInputs: string[] = null): zxcvbn.ZXCVBNResult {\n if (password == null || password.length === 0) {\n return null;\n }\n let globalUserInputs = ['bitwarden', 'bit', 'warden'];\n if (userInputs != null && userInputs.length > 0) {\n globalUserInputs = globalUserInputs.concat(userInputs);\n }\n // Use a hash set to get rid of any duplicate user inputs\n const finalUserInputs = Array.from(new Set(globalUserInputs));\n const result = zxcvbn(password, finalUserInputs);\n return result;\n }\n\n normalizeOptions(options: any, enforcedPolicyOptions: PasswordGeneratorPolicyOptions) {\n options.minLowercase = 0;\n options.minUppercase = 0;\n\n if (!options.length || options.length < 5) {\n options.length = 5;\n } else if (options.length > 128) {\n options.length = 128;\n }\n\n if (options.length < enforcedPolicyOptions.minLength) {\n options.length = enforcedPolicyOptions.minLength;\n }\n\n if (!options.minNumber) {\n options.minNumber = 0;\n } else if (options.minNumber > options.length) {\n options.minNumber = options.length;\n } else if (options.minNumber > 9) {\n options.minNumber = 9;\n }\n\n if (options.minNumber < enforcedPolicyOptions.numberCount) {\n options.minNumber = enforcedPolicyOptions.numberCount;\n }\n\n if (!options.minSpecial) {\n options.minSpecial = 0;\n } else if (options.minSpecial > options.length) {\n options.minSpecial = options.length;\n } else if (options.minSpecial > 9) {\n options.minSpecial = 9;\n }\n\n if (options.minSpecial < enforcedPolicyOptions.specialCount) {\n options.minSpecial = enforcedPolicyOptions.specialCount;\n }\n\n if (options.minSpecial + options.minNumber > options.length) {\n options.minSpecial = options.length - options.minNumber;\n }\n\n if (options.numWords == null || options.length < 3) {\n options.numWords = 3;\n } else if (options.numWords > 20) {\n options.numWords = 20;\n }\n\n if (options.numWords < enforcedPolicyOptions.minNumberWords) {\n options.numWords = enforcedPolicyOptions.minNumberWords;\n }\n\n if (options.wordSeparator != null && options.wordSeparator.length > 1) {\n options.wordSeparator = options.wordSeparator[0];\n }\n\n this.sanitizePasswordLength(options, false);\n }\n\n private capitalize(str: string) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n }\n\n private async appendRandomNumberToRandomWord(wordList: string[]) {\n if (wordList == null || wordList.length <= 0) {\n return;\n }\n const index = await this.cryptoService.randomNumber(0, wordList.length - 1);\n const num = await this.cryptoService.randomNumber(0, 9);\n wordList[index] = wordList[index] + num;\n }\n\n private async encryptHistory(history: GeneratedPasswordHistory[]): Promise {\n if (history == null || history.length === 0) {\n return Promise.resolve([]);\n }\n\n const promises = history.map(async item => {\n const encrypted = await this.cryptoService.encrypt(item.password);\n return new GeneratedPasswordHistory(encrypted.encryptedString, item.date);\n });\n\n return await Promise.all(promises);\n }\n\n private async decryptHistory(history: GeneratedPasswordHistory[]): Promise {\n if (history == null || history.length === 0) {\n return Promise.resolve([]);\n }\n\n const promises = history.map(async item => {\n const decrypted = await this.cryptoService.decryptToUtf8(new CipherString(item.password));\n return new GeneratedPasswordHistory(decrypted, item.date);\n });\n\n return await Promise.all(promises);\n }\n\n private matchesPrevious(password: string, history: GeneratedPasswordHistory[]): boolean {\n if (history == null || history.length === 0) {\n return false;\n }\n\n return history[history.length - 1].password === password;\n }\n\n // ref: https://stackoverflow.com/a/12646864/1090359\n private async shuffleArray(array: string[]) {\n for (let i = array.length - 1; i > 0; i--) {\n const j = await this.cryptoService.randomNumber(0, i);\n [array[i], array[j]] = [array[j], array[i]];\n }\n }\n\n private sanitizePasswordLength(options: any, forGeneration: boolean) {\n let minUppercaseCalc = 0;\n let minLowercaseCalc = 0;\n let minNumberCalc: number = options.minNumber;\n let minSpecialCalc: number = options.minSpecial;\n\n if (options.uppercase && options.minUppercase <= 0) {\n minUppercaseCalc = 1;\n } else if (!options.uppercase) {\n minUppercaseCalc = 0;\n }\n\n if (options.lowercase && options.minLowercase <= 0) {\n minLowercaseCalc = 1;\n } else if (!options.lowercase) {\n minLowercaseCalc = 0;\n }\n\n if (options.number && options.minNumber <= 0) {\n minNumberCalc = 1;\n } else if (!options.number) {\n minNumberCalc = 0;\n }\n\n if (options.special && options.minSpecial <= 0) {\n minSpecialCalc = 1;\n } else if (!options.special) {\n minSpecialCalc = 0;\n }\n\n // This should never happen but is a final safety net\n if (!options.length || options.length < 1) {\n options.length = 10;\n }\n\n const minLength: number = minUppercaseCalc + minLowercaseCalc + minNumberCalc + minSpecialCalc;\n // Normalize and Generation both require this modification\n if (options.length < minLength) {\n options.length = minLength;\n }\n\n // Apply other changes if the options object passed in is for generation\n if (forGeneration) {\n options.minUppercase = minUppercaseCalc;\n options.minLowercase = minLowercaseCalc;\n options.minNumber = minNumberCalc;\n options.minSpecial = minSpecialCalc;\n }\n }\n}\n","import { SettingsService as SettingsServiceAbstraction } from '../abstractions/settings.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { UserService } from '../abstractions/user.service';\n\nconst Keys = {\n settingsPrefix: 'settings_',\n equivalentDomains: 'equivalentDomains',\n};\n\nexport class SettingsService implements SettingsServiceAbstraction {\n private settingsCache: any;\n\n constructor(private userService: UserService, private storageService: StorageService) {\n }\n\n clearCache(): void {\n this.settingsCache = null;\n }\n\n getEquivalentDomains(): Promise {\n return this.getSettingsKey(Keys.equivalentDomains);\n }\n\n async setEquivalentDomains(equivalentDomains: string[][]): Promise {\n await this.setSettingsKey(Keys.equivalentDomains, equivalentDomains);\n }\n\n async clear(userId: string): Promise {\n await this.storageService.remove(Keys.settingsPrefix + userId);\n this.clearCache();\n }\n\n // Helpers\n\n private async getSettings(): Promise {\n if (this.settingsCache == null) {\n const userId = await this.userService.getUserId();\n this.settingsCache = this.storageService.get(Keys.settingsPrefix + userId);\n }\n return this.settingsCache;\n }\n\n private async getSettingsKey(key: string): Promise {\n const settings = await this.getSettings();\n if (settings != null && settings[key]) {\n return settings[key];\n }\n return null;\n }\n\n private async setSettingsKey(key: string, value: any): Promise {\n const userId = await this.userService.getUserId();\n let settings = await this.getSettings();\n if (!settings) {\n settings = {};\n }\n\n settings[key] = value;\n await this.storageService.save(Keys.settingsPrefix + userId, settings);\n this.settingsCache = settings;\n }\n}\n","import { StateService as StateServiceAbstraction } from '../abstractions/state.service';\n\nexport class StateService implements StateServiceAbstraction {\n private state: any = {};\n\n get(key: string): Promise {\n if (this.state.hasOwnProperty(key)) {\n return Promise.resolve(this.state[key]);\n }\n return Promise.resolve(null);\n }\n\n save(key: string, obj: any): Promise {\n this.state[key] = obj;\n return Promise.resolve();\n }\n\n remove(key: string): Promise {\n delete this.state[key];\n return Promise.resolve();\n }\n\n purge(): Promise {\n this.state = {};\n return Promise.resolve();\n }\n}\n","import { ApiService } from '../abstractions/api.service';\nimport { CipherService } from '../abstractions/cipher.service';\nimport { CollectionService } from '../abstractions/collection.service';\nimport { CryptoService } from '../abstractions/crypto.service';\nimport { FolderService } from '../abstractions/folder.service';\nimport { MessagingService } from '../abstractions/messaging.service';\nimport { PolicyService } from '../abstractions/policy.service';\nimport { SendService } from '../abstractions/send.service';\nimport { SettingsService } from '../abstractions/settings.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { SyncService as SyncServiceAbstraction } from '../abstractions/sync.service';\nimport { UserService } from '../abstractions/user.service';\n\nimport { CipherData } from '../models/data/cipherData';\nimport { CollectionData } from '../models/data/collectionData';\nimport { FolderData } from '../models/data/folderData';\nimport { OrganizationData } from '../models/data/organizationData';\nimport { PolicyData } from '../models/data/policyData';\nimport { SendData } from '../models/data/sendData';\n\nimport { CipherResponse } from '../models/response/cipherResponse';\nimport { CollectionDetailsResponse } from '../models/response/collectionResponse';\nimport { DomainsResponse } from '../models/response/domainsResponse';\nimport { FolderResponse } from '../models/response/folderResponse';\nimport {\n SyncCipherNotification,\n SyncFolderNotification,\n SyncSendNotification,\n} from '../models/response/notificationResponse';\nimport { PolicyResponse } from '../models/response/policyResponse';\nimport { ProfileResponse } from '../models/response/profileResponse';\nimport { SendResponse } from '../models/response/sendResponse';\n\nconst Keys = {\n lastSyncPrefix: 'lastSync_',\n};\n\nexport class SyncService implements SyncServiceAbstraction {\n syncInProgress: boolean = false;\n\n constructor(private userService: UserService, private apiService: ApiService,\n private settingsService: SettingsService, private folderService: FolderService,\n private cipherService: CipherService, private cryptoService: CryptoService,\n private collectionService: CollectionService, private storageService: StorageService,\n private messagingService: MessagingService, private policyService: PolicyService,\n private sendService: SendService, private logoutCallback: (expired: boolean) => Promise) {\n }\n\n async getLastSync(): Promise {\n const userId = await this.userService.getUserId();\n if (userId == null) {\n return null;\n }\n\n const lastSync = await this.storageService.get(Keys.lastSyncPrefix + userId);\n if (lastSync) {\n return new Date(lastSync);\n }\n\n return null;\n }\n\n async setLastSync(date: Date): Promise {\n const userId = await this.userService.getUserId();\n if (userId == null) {\n return;\n }\n\n await this.storageService.save(Keys.lastSyncPrefix + userId, date.toJSON());\n }\n\n async fullSync(forceSync: boolean, allowThrowOnError = false): Promise {\n this.syncStarted();\n const isAuthenticated = await this.userService.isAuthenticated();\n if (!isAuthenticated) {\n return this.syncCompleted(false);\n }\n\n const now = new Date();\n let needsSync = false;\n try {\n needsSync = await this.needsSyncing(forceSync);\n } catch (e) {\n if (allowThrowOnError) {\n throw e;\n }\n }\n\n if (!needsSync) {\n await this.setLastSync(now);\n return this.syncCompleted(false);\n }\n\n const userId = await this.userService.getUserId();\n try {\n const response = await this.apiService.getSync();\n\n await this.syncProfile(response.profile);\n await this.syncFolders(userId, response.folders);\n await this.syncCollections(response.collections);\n await this.syncCiphers(userId, response.ciphers);\n await this.syncSends(userId, response.sends);\n await this.syncSettings(userId, response.domains);\n await this.syncPolicies(response.policies);\n\n await this.setLastSync(now);\n return this.syncCompleted(true);\n } catch (e) {\n if (allowThrowOnError) {\n throw e;\n } else {\n return this.syncCompleted(false);\n }\n }\n }\n\n async syncUpsertFolder(notification: SyncFolderNotification, isEdit: boolean): Promise {\n this.syncStarted();\n if (await this.userService.isAuthenticated()) {\n try {\n const localFolder = await this.folderService.get(notification.id);\n if ((!isEdit && localFolder == null) ||\n (isEdit && localFolder != null && localFolder.revisionDate < notification.revisionDate)) {\n const remoteFolder = await this.apiService.getFolder(notification.id);\n if (remoteFolder != null) {\n const userId = await this.userService.getUserId();\n await this.folderService.upsert(new FolderData(remoteFolder, userId));\n this.messagingService.send('syncedUpsertedFolder', { folderId: notification.id });\n return this.syncCompleted(true);\n }\n }\n } catch { }\n }\n return this.syncCompleted(false);\n }\n\n async syncDeleteFolder(notification: SyncFolderNotification): Promise {\n this.syncStarted();\n if (await this.userService.isAuthenticated()) {\n await this.folderService.delete(notification.id);\n this.messagingService.send('syncedDeletedFolder', { folderId: notification.id });\n this.syncCompleted(true);\n return true;\n }\n return this.syncCompleted(false);\n }\n\n async syncUpsertCipher(notification: SyncCipherNotification, isEdit: boolean): Promise {\n this.syncStarted();\n if (await this.userService.isAuthenticated()) {\n try {\n let shouldUpdate = true;\n const localCipher = await this.cipherService.get(notification.id);\n if (localCipher != null && localCipher.revisionDate >= notification.revisionDate) {\n shouldUpdate = false;\n }\n\n let checkCollections = false;\n if (shouldUpdate) {\n if (isEdit) {\n shouldUpdate = localCipher != null;\n checkCollections = true;\n } else {\n if (notification.collectionIds == null || notification.organizationId == null) {\n shouldUpdate = localCipher == null;\n } else {\n shouldUpdate = false;\n checkCollections = true;\n }\n }\n }\n\n if (!shouldUpdate && checkCollections && notification.organizationId != null &&\n notification.collectionIds != null && notification.collectionIds.length > 0) {\n const collections = await this.collectionService.getAll();\n if (collections != null) {\n for (let i = 0; i < collections.length; i++) {\n if (notification.collectionIds.indexOf(collections[i].id) > -1) {\n shouldUpdate = true;\n break;\n }\n }\n }\n }\n\n if (shouldUpdate) {\n const remoteCipher = await this.apiService.getCipher(notification.id);\n if (remoteCipher != null) {\n const userId = await this.userService.getUserId();\n await this.cipherService.upsert(new CipherData(remoteCipher, userId));\n this.messagingService.send('syncedUpsertedCipher', { cipherId: notification.id });\n return this.syncCompleted(true);\n }\n }\n } catch (e) {\n if (e != null && e.statusCode === 404 && isEdit) {\n await this.cipherService.delete(notification.id);\n this.messagingService.send('syncedDeletedCipher', { cipherId: notification.id });\n return this.syncCompleted(true);\n }\n }\n }\n return this.syncCompleted(false);\n }\n\n async syncDeleteCipher(notification: SyncCipherNotification): Promise {\n this.syncStarted();\n if (await this.userService.isAuthenticated()) {\n await this.cipherService.delete(notification.id);\n this.messagingService.send('syncedDeletedCipher', { cipherId: notification.id });\n return this.syncCompleted(true);\n }\n return this.syncCompleted(false);\n }\n\n async syncUpsertSend(notification: SyncSendNotification, isEdit: boolean): Promise {\n this.syncStarted();\n if (await this.userService.isAuthenticated()) {\n try {\n const localSend = await this.sendService.get(notification.id);\n if ((!isEdit && localSend == null) ||\n (isEdit && localSend != null && localSend.revisionDate < notification.revisionDate)) {\n const remoteSend = await this.apiService.getSend(notification.id);\n if (remoteSend != null) {\n const userId = await this.userService.getUserId();\n await this.sendService.upsert(new SendData(remoteSend, userId));\n this.messagingService.send('syncedUpsertedSend', { sendId: notification.id });\n return this.syncCompleted(true);\n }\n }\n } catch { }\n }\n return this.syncCompleted(false);\n }\n\n async syncDeleteSend(notification: SyncSendNotification): Promise {\n this.syncStarted();\n if (await this.userService.isAuthenticated()) {\n await this.sendService.delete(notification.id);\n this.messagingService.send('syncedDeletedSend', { sendId: notification.id });\n this.syncCompleted(true);\n return true;\n }\n return this.syncCompleted(false);\n }\n\n // Helpers\n\n private syncStarted() {\n this.syncInProgress = true;\n this.messagingService.send('syncStarted');\n }\n\n private syncCompleted(successfully: boolean): boolean {\n this.syncInProgress = false;\n this.messagingService.send('syncCompleted', { successfully: successfully });\n return successfully;\n }\n\n private async needsSyncing(forceSync: boolean) {\n if (forceSync) {\n return true;\n }\n\n const lastSync = await this.getLastSync();\n if (lastSync == null || lastSync.getTime() === 0) {\n return true;\n }\n\n const response = await this.apiService.getAccountRevisionDate();\n if (new Date(response) <= lastSync) {\n return false;\n }\n return true;\n }\n\n private async syncProfile(response: ProfileResponse) {\n const stamp = await this.userService.getSecurityStamp();\n if (stamp != null && stamp !== response.securityStamp) {\n if (this.logoutCallback != null) {\n await this.logoutCallback(true);\n }\n\n throw new Error('Stamp has changed');\n }\n\n await this.cryptoService.setEncKey(response.key);\n await this.cryptoService.setEncPrivateKey(response.privateKey);\n await this.cryptoService.setOrgKeys(response.organizations);\n await this.userService.setSecurityStamp(response.securityStamp);\n\n const organizations: { [id: string]: OrganizationData; } = {};\n response.organizations.forEach(o => {\n organizations[o.id] = new OrganizationData(o);\n });\n return await this.userService.replaceOrganizations(organizations);\n }\n\n private async syncFolders(userId: string, response: FolderResponse[]) {\n const folders: { [id: string]: FolderData; } = {};\n response.forEach(f => {\n folders[f.id] = new FolderData(f, userId);\n });\n return await this.folderService.replace(folders);\n }\n\n private async syncCollections(response: CollectionDetailsResponse[]) {\n const collections: { [id: string]: CollectionData; } = {};\n response.forEach(c => {\n collections[c.id] = new CollectionData(c);\n });\n return await this.collectionService.replace(collections);\n }\n\n private async syncCiphers(userId: string, response: CipherResponse[]) {\n const ciphers: { [id: string]: CipherData; } = {};\n response.forEach(c => {\n ciphers[c.id] = new CipherData(c, userId);\n });\n return await this.cipherService.replace(ciphers);\n }\n\n private async syncSends(userId: string, response: SendResponse[]) {\n const sends: { [id: string]: SendData; } = {};\n response.forEach(s => {\n sends[s.id] = new SendData(s, userId);\n });\n return await this.sendService.replace(sends);\n }\n\n private async syncSettings(userId: string, response: DomainsResponse) {\n let eqDomains: string[][] = [];\n if (response != null && response.equivalentDomains != null) {\n eqDomains = eqDomains.concat(response.equivalentDomains);\n }\n\n if (response != null && response.globalEquivalentDomains != null) {\n response.globalEquivalentDomains.forEach(global => {\n if (global.domains.length > 0) {\n eqDomains.push(global.domains);\n }\n });\n }\n\n return this.settingsService.setEquivalentDomains(eqDomains);\n }\n\n private async syncPolicies(response: PolicyResponse[]) {\n const policies: { [id: string]: PolicyData; } = {};\n if (response != null) {\n response.forEach(p => {\n policies[p.id] = new PolicyData(p);\n });\n }\n return await this.policyService.replace(policies);\n }\n}\n","import { SendType } from '../../enums/sendType';\n\nimport { SendFileData } from './sendFileData';\nimport { SendTextData } from './sendTextData';\n\nimport { SendResponse } from '../response/sendResponse';\n\nexport class SendData {\n id: string;\n accessId: string;\n userId: string;\n type: SendType;\n name: string;\n notes: string;\n file: SendFileData;\n text: SendTextData;\n key: string;\n maxAccessCount?: number;\n accessCount: number;\n revisionDate: string;\n expirationDate: string;\n deletionDate: string;\n password: string;\n disabled: boolean;\n\n constructor(response?: SendResponse, userId?: string) {\n if (response == null) {\n return;\n }\n\n this.id = response.id;\n this.accessId = response.accessId;\n this.userId = userId;\n this.type = response.type;\n this.name = response.name;\n this.notes = response.notes;\n this.key = response.key;\n this.maxAccessCount = response.maxAccessCount;\n this.accessCount = response.accessCount;\n this.revisionDate = response.revisionDate;\n this.expirationDate = response.expirationDate;\n this.deletionDate = response.deletionDate;\n this.password = response.password;\n this.disabled = response.disable;\n\n switch (this.type) {\n case SendType.Text:\n this.text = new SendTextData(response.text);\n break;\n case SendType.File:\n this.file = new SendFileData(response.file);\n break;\n default:\n break;\n }\n }\n}\n","import { ConstantsService } from './constants.service';\n\nimport { StorageService } from '../abstractions/storage.service';\nimport { TokenService as TokenServiceAbstraction } from '../abstractions/token.service';\n\nimport { Utils } from '../misc/utils';\n\nconst Keys = {\n accessToken: 'accessToken',\n refreshToken: 'refreshToken',\n twoFactorTokenPrefix: 'twoFactorToken_',\n};\n\nexport class TokenService implements TokenServiceAbstraction {\n token: string;\n decodedToken: any;\n refreshToken: string;\n\n constructor(private storageService: StorageService) {\n }\n\n setTokens(accessToken: string, refreshToken: string): Promise {\n return Promise.all([\n this.setToken(accessToken),\n this.setRefreshToken(refreshToken),\n ]);\n }\n\n async setToken(token: string): Promise {\n this.token = token;\n this.decodedToken = null;\n\n if (await this.skipTokenStorage()) {\n // if we have a vault timeout and the action is log out, don't store token\n return;\n }\n\n return this.storageService.save(Keys.accessToken, token);\n }\n\n async getToken(): Promise {\n if (this.token != null) {\n return this.token;\n }\n\n this.token = await this.storageService.get(Keys.accessToken);\n return this.token;\n }\n\n async setRefreshToken(refreshToken: string): Promise {\n this.refreshToken = refreshToken;\n\n if (await this.skipTokenStorage()) {\n // if we have a vault timeout and the action is log out, don't store token\n return;\n }\n\n return this.storageService.save(Keys.refreshToken, refreshToken);\n }\n\n async getRefreshToken(): Promise {\n if (this.refreshToken != null) {\n return this.refreshToken;\n }\n\n this.refreshToken = await this.storageService.get(Keys.refreshToken);\n return this.refreshToken;\n }\n\n async toggleTokens(): Promise {\n const token = await this.getToken();\n const refreshToken = await this.getRefreshToken();\n const timeout = await this.storageService.get(ConstantsService.vaultTimeoutKey);\n const action = await this.storageService.get(ConstantsService.vaultTimeoutActionKey);\n if ((timeout != null || timeout === 0) && action === 'logOut') {\n // if we have a vault timeout and the action is log out, reset tokens\n await this.clearToken();\n this.token = token;\n this.refreshToken = refreshToken;\n return;\n }\n\n await this.setToken(token);\n await this.setRefreshToken(refreshToken);\n }\n\n setTwoFactorToken(token: string, email: string): Promise {\n return this.storageService.save(Keys.twoFactorTokenPrefix + email, token);\n }\n\n getTwoFactorToken(email: string): Promise {\n return this.storageService.get(Keys.twoFactorTokenPrefix + email);\n }\n\n clearTwoFactorToken(email: string): Promise {\n return this.storageService.remove(Keys.twoFactorTokenPrefix + email);\n }\n\n clearToken(): Promise {\n this.token = null;\n this.decodedToken = null;\n this.refreshToken = null;\n\n return Promise.all([\n this.storageService.remove(Keys.accessToken),\n this.storageService.remove(Keys.refreshToken),\n ]);\n }\n\n // jwthelper methods\n // ref https://github.com/auth0/angular-jwt/blob/master/src/angularJwt/services/jwt.js\n\n decodeToken(): any {\n if (this.decodedToken) {\n return this.decodedToken;\n }\n\n if (this.token == null) {\n throw new Error('Token not found.');\n }\n\n const parts = this.token.split('.');\n if (parts.length !== 3) {\n throw new Error('JWT must have 3 parts');\n }\n\n const decoded = Utils.fromUrlB64ToUtf8(parts[1]);\n if (decoded == null) {\n throw new Error('Cannot decode the token');\n }\n\n this.decodedToken = JSON.parse(decoded);\n return this.decodedToken;\n }\n\n getTokenExpirationDate(): Date {\n const decoded = this.decodeToken();\n if (typeof decoded.exp === 'undefined') {\n return null;\n }\n\n const d = new Date(0); // The 0 here is the key, which sets the date to the epoch\n d.setUTCSeconds(decoded.exp);\n return d;\n }\n\n tokenSecondsRemaining(offsetSeconds: number = 0): number {\n const d = this.getTokenExpirationDate();\n if (d == null) {\n return 0;\n }\n\n const msRemaining = d.valueOf() - (new Date().valueOf() + (offsetSeconds * 1000));\n return Math.round(msRemaining / 1000);\n }\n\n tokenNeedsRefresh(minutes: number = 5): boolean {\n const sRemaining = this.tokenSecondsRemaining();\n return sRemaining < (60 * minutes);\n }\n\n getUserId(): string {\n const decoded = this.decodeToken();\n if (typeof decoded.sub === 'undefined') {\n throw new Error('No user id found');\n }\n\n return decoded.sub as string;\n }\n\n getEmail(): string {\n const decoded = this.decodeToken();\n if (typeof decoded.email === 'undefined') {\n throw new Error('No email found');\n }\n\n return decoded.email as string;\n }\n\n getEmailVerified(): boolean {\n const decoded = this.decodeToken();\n if (typeof decoded.email_verified === 'undefined') {\n throw new Error('No email verification found');\n }\n\n return decoded.email_verified as boolean;\n }\n\n getName(): string {\n const decoded = this.decodeToken();\n if (typeof decoded.name === 'undefined') {\n return null;\n }\n\n return decoded.name as string;\n }\n\n getPremium(): boolean {\n const decoded = this.decodeToken();\n if (typeof decoded.premium === 'undefined') {\n return false;\n }\n\n return decoded.premium as boolean;\n }\n\n getIssuer(): string {\n const decoded = this.decodeToken();\n if (typeof decoded.iss === 'undefined') {\n throw new Error('No issuer found');\n }\n\n return decoded.iss as string;\n }\n\n private async skipTokenStorage(): Promise {\n const timeout = await this.storageService.get(ConstantsService.vaultTimeoutKey);\n const action = await this.storageService.get(ConstantsService.vaultTimeoutActionKey);\n return timeout != null && action === 'logOut';\n }\n}\n","import { ConstantsService } from './constants.service';\n\nimport { CryptoFunctionService } from '../abstractions/cryptoFunction.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { TotpService as TotpServiceAbstraction } from '../abstractions/totp.service';\n\nimport { Utils } from '../misc/utils';\n\nconst B32Chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567';\nconst SteamChars = '23456789BCDFGHJKMNPQRTVWXY';\n\nexport class TotpService implements TotpServiceAbstraction {\n constructor(private storageService: StorageService, private cryptoFunctionService: CryptoFunctionService) { }\n\n async getCode(key: string): Promise {\n if (key == null) {\n return null;\n }\n let period = 30;\n let alg: 'sha1' | 'sha256' | 'sha512' = 'sha1';\n let digits = 6;\n let keyB32 = key;\n const isOtpAuth = key.toLowerCase().indexOf('otpauth://') === 0;\n const isSteamAuth = !isOtpAuth && key.toLowerCase().indexOf('steam://') === 0;\n if (isOtpAuth) {\n const params = Utils.getQueryParams(key);\n if (params.has('digits') && params.get('digits') != null) {\n try {\n const digitParams = parseInt(params.get('digits').trim(), null);\n if (digitParams > 10) {\n digits = 10;\n } else if (digitParams > 0) {\n digits = digitParams;\n }\n } catch { }\n }\n if (params.has('period') && params.get('period') != null) {\n try {\n const periodParam = parseInt(params.get('period').trim(), null);\n if (periodParam > 0) {\n period = periodParam;\n }\n } catch { }\n }\n if (params.has('secret') && params.get('secret') != null) {\n keyB32 = params.get('secret');\n }\n if (params.has('algorithm') && params.get('algorithm') != null) {\n const algParam = params.get('algorithm').toLowerCase();\n if (algParam === 'sha1' || algParam === 'sha256' || algParam === 'sha512') {\n alg = algParam;\n }\n }\n } else if (isSteamAuth) {\n keyB32 = key.substr('steam://'.length);\n digits = 5;\n }\n\n const epoch = Math.round(new Date().getTime() / 1000.0);\n const timeHex = this.leftPad(this.decToHex(Math.floor(epoch / period)), 16, '0');\n const timeBytes = Utils.fromHexToArray(timeHex);\n const keyBytes = this.b32ToBytes(keyB32);\n\n if (!keyBytes.length || !timeBytes.length) {\n return null;\n }\n\n const hash = await this.sign(keyBytes, timeBytes, alg);\n if (hash.length === 0) {\n return null;\n }\n\n /* tslint:disable */\n const offset = (hash[hash.length - 1] & 0xf);\n const binary = ((hash[offset] & 0x7f) << 24) | ((hash[offset + 1] & 0xff) << 16) |\n ((hash[offset + 2] & 0xff) << 8) | (hash[offset + 3] & 0xff);\n /* tslint:enable */\n\n let otp = '';\n if (isSteamAuth) {\n // tslint:disable-next-line\n let fullCode = binary & 0x7fffffff;\n for (let i = 0; i < digits; i++) {\n otp += SteamChars[fullCode % SteamChars.length];\n fullCode = Math.trunc(fullCode / SteamChars.length);\n }\n } else {\n otp = (binary % Math.pow(10, digits)).toString();\n otp = this.leftPad(otp, digits, '0');\n }\n\n return otp;\n }\n\n getTimeInterval(key: string): number {\n let period = 30;\n if (key != null && key.toLowerCase().indexOf('otpauth://') === 0) {\n const params = Utils.getQueryParams(key);\n if (params.has('period') && params.get('period') != null) {\n try {\n period = parseInt(params.get('period').trim(), null);\n } catch { }\n }\n }\n return period;\n }\n\n async isAutoCopyEnabled(): Promise {\n return !(await this.storageService.get(ConstantsService.disableAutoTotpCopyKey));\n }\n\n // Helpers\n\n private leftPad(s: string, l: number, p: string): string {\n if (l + 1 >= s.length) {\n s = Array(l + 1 - s.length).join(p) + s;\n }\n return s;\n }\n\n private decToHex(d: number): string {\n return (d < 15.5 ? '0' : '') + Math.round(d).toString(16);\n }\n\n private b32ToHex(s: string): string {\n s = s.toUpperCase();\n let cleanedInput = '';\n\n for (let i = 0; i < s.length; i++) {\n if (B32Chars.indexOf(s[i]) < 0) {\n continue;\n }\n\n cleanedInput += s[i];\n }\n s = cleanedInput;\n\n let bits = '';\n let hex = '';\n for (let i = 0; i < s.length; i++) {\n const byteIndex = B32Chars.indexOf(s.charAt(i));\n if (byteIndex < 0) {\n continue;\n }\n bits += this.leftPad(byteIndex.toString(2), 5, '0');\n }\n for (let i = 0; i + 4 <= bits.length; i += 4) {\n const chunk = bits.substr(i, 4);\n hex = hex + parseInt(chunk, 2).toString(16);\n }\n return hex;\n }\n\n private b32ToBytes(s: string): Uint8Array {\n return Utils.fromHexToArray(this.b32ToHex(s));\n }\n\n private async sign(keyBytes: Uint8Array, timeBytes: Uint8Array, alg: 'sha1' | 'sha256' | 'sha512') {\n const signature = await this.cryptoFunctionService.hmac(timeBytes.buffer, keyBytes.buffer, alg);\n return new Uint8Array(signature);\n }\n}\n","import { StorageService } from '../abstractions/storage.service';\nimport { TokenService } from '../abstractions/token.service';\nimport { UserService as UserServiceAbstraction } from '../abstractions/user.service';\n\nimport { OrganizationData } from '../models/data/organizationData';\nimport { Organization } from '../models/domain/organization';\n\nimport { KdfType } from '../enums/kdfType';\n\nconst Keys = {\n userId: 'userId',\n userEmail: 'userEmail',\n stamp: 'securityStamp',\n kdf: 'kdf',\n kdfIterations: 'kdfIterations',\n organizationsPrefix: 'organizations_',\n};\n\nexport class UserService implements UserServiceAbstraction {\n private userId: string;\n private email: string;\n private stamp: string;\n private kdf: KdfType;\n private kdfIterations: number;\n\n constructor(private tokenService: TokenService, private storageService: StorageService) { }\n\n setInformation(userId: string, email: string, kdf: KdfType, kdfIterations: number): Promise {\n this.email = email;\n this.userId = userId;\n this.kdf = kdf;\n this.kdfIterations = kdfIterations;\n\n return Promise.all([\n this.storageService.save(Keys.userEmail, email),\n this.storageService.save(Keys.userId, userId),\n this.storageService.save(Keys.kdf, kdf),\n this.storageService.save(Keys.kdfIterations, kdfIterations),\n ]);\n }\n\n setSecurityStamp(stamp: string): Promise {\n this.stamp = stamp;\n return this.storageService.save(Keys.stamp, stamp);\n }\n\n async getUserId(): Promise {\n if (this.userId == null) {\n this.userId = await this.storageService.get(Keys.userId);\n }\n return this.userId;\n }\n\n async getEmail(): Promise {\n if (this.email == null) {\n this.email = await this.storageService.get(Keys.userEmail);\n }\n return this.email;\n }\n\n async getSecurityStamp(): Promise {\n if (this.stamp == null) {\n this.stamp = await this.storageService.get(Keys.stamp);\n }\n return this.stamp;\n }\n\n async getKdf(): Promise {\n if (this.kdf == null) {\n this.kdf = await this.storageService.get(Keys.kdf);\n }\n return this.kdf;\n }\n\n async getKdfIterations(): Promise {\n if (this.kdfIterations == null) {\n this.kdfIterations = await this.storageService.get(Keys.kdfIterations);\n }\n return this.kdfIterations;\n }\n\n async clear(): Promise {\n const userId = await this.getUserId();\n\n await Promise.all([\n this.storageService.remove(Keys.userId),\n this.storageService.remove(Keys.userEmail),\n this.storageService.remove(Keys.stamp),\n this.storageService.remove(Keys.kdf),\n this.storageService.remove(Keys.kdfIterations),\n this.clearOrganizations(userId),\n ]);\n\n this.userId = this.email = this.stamp = null;\n this.kdf = null;\n this.kdfIterations = null;\n }\n\n async isAuthenticated(): Promise {\n const token = await this.tokenService.getToken();\n if (token == null) {\n return false;\n }\n\n const userId = await this.getUserId();\n return userId != null;\n }\n\n async canAccessPremium(): Promise {\n const authed = await this.isAuthenticated();\n if (!authed) {\n return false;\n }\n\n const tokenPremium = this.tokenService.getPremium();\n if (tokenPremium) {\n return true;\n }\n\n const orgs = await this.getAllOrganizations();\n for (let i = 0; i < orgs.length; i++) {\n if (orgs[i].usersGetPremium && orgs[i].enabled) {\n return true;\n }\n }\n return false;\n }\n\n async getOrganization(id: string): Promise {\n const userId = await this.getUserId();\n const organizations = await this.storageService.get<{ [id: string]: OrganizationData; }>(\n Keys.organizationsPrefix + userId);\n if (organizations == null || !organizations.hasOwnProperty(id)) {\n return null;\n }\n\n return new Organization(organizations[id]);\n }\n\n async getAllOrganizations(): Promise {\n const userId = await this.getUserId();\n const organizations = await this.storageService.get<{ [id: string]: OrganizationData; }>(\n Keys.organizationsPrefix + userId);\n const response: Organization[] = [];\n for (const id in organizations) {\n if (organizations.hasOwnProperty(id)) {\n response.push(new Organization(organizations[id]));\n }\n }\n return response;\n }\n\n async replaceOrganizations(organizations: { [id: string]: OrganizationData; }): Promise {\n const userId = await this.getUserId();\n await this.storageService.save(Keys.organizationsPrefix + userId, organizations);\n }\n\n async clearOrganizations(userId: string): Promise {\n await this.storageService.remove(Keys.organizationsPrefix + userId);\n }\n}\n","import { ConstantsService } from './constants.service';\n\nimport { CipherService } from '../abstractions/cipher.service';\nimport { CollectionService } from '../abstractions/collection.service';\nimport { CryptoService } from '../abstractions/crypto.service';\nimport { FolderService } from '../abstractions/folder.service';\nimport { MessagingService } from '../abstractions/messaging.service';\nimport { PlatformUtilsService } from '../abstractions/platformUtils.service';\nimport { SearchService } from '../abstractions/search.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { TokenService } from '../abstractions/token.service';\nimport { UserService } from '../abstractions/user.service';\nimport { VaultTimeoutService as VaultTimeoutServiceAbstraction } from '../abstractions/vaultTimeout.service';\n\nimport { CipherString } from '../models/domain/cipherString';\n\nexport class VaultTimeoutService implements VaultTimeoutServiceAbstraction {\n pinProtectedKey: CipherString = null;\n biometricLocked: boolean = true;\n\n private inited = false;\n\n constructor(private cipherService: CipherService, private folderService: FolderService,\n private collectionService: CollectionService, private cryptoService: CryptoService,\n protected platformUtilsService: PlatformUtilsService, private storageService: StorageService,\n private messagingService: MessagingService, private searchService: SearchService,\n private userService: UserService, private tokenService: TokenService,\n private lockedCallback: () => Promise = null, private loggedOutCallback: () => Promise = null) {\n }\n\n init(checkOnInterval: boolean) {\n if (this.inited) {\n return;\n }\n\n this.inited = true;\n if (checkOnInterval) {\n this.startCheck();\n }\n }\n\n startCheck() {\n this.checkVaultTimeout();\n setInterval(() => this.checkVaultTimeout(), 10 * 1000); // check every 10 seconds\n }\n\n // Keys aren't stored for a device that is locked or logged out.\n async isLocked(): Promise {\n const hasKey = await this.cryptoService.hasKey();\n if (hasKey) {\n if (await this.isBiometricLockSet() && this.biometricLocked) {\n return true;\n }\n }\n return !hasKey;\n }\n\n async checkVaultTimeout(): Promise {\n if (await this.platformUtilsService.isViewOpen()) {\n // Do not lock\n return;\n }\n\n // \"is logged out check\" - similar to isLocked, below\n const authed = await this.userService.isAuthenticated();\n if (!authed) {\n return;\n }\n\n if (await this.isLocked()) {\n return;\n }\n\n // This has the potential to be removed. Evaluate after all platforms complete with auto-logout\n let vaultTimeout = this.platformUtilsService.lockTimeout();\n if (vaultTimeout == null) {\n vaultTimeout = await this.storageService.get(ConstantsService.vaultTimeoutKey);\n }\n\n if (vaultTimeout == null || vaultTimeout < 0) {\n return;\n }\n\n const lastActive = await this.storageService.get(ConstantsService.lastActiveKey);\n if (lastActive == null) {\n return;\n }\n\n const vaultTimeoutSeconds = vaultTimeout * 60;\n const diffSeconds = ((new Date()).getTime() - lastActive) / 1000;\n if (diffSeconds >= vaultTimeoutSeconds) {\n // Pivot based on the saved vault timeout action\n const timeoutAction = await this.storageService.get(ConstantsService.vaultTimeoutActionKey);\n timeoutAction === 'logOut' ? await this.logOut() : await this.lock(true);\n }\n }\n\n async lock(allowSoftLock = false): Promise {\n const authed = await this.userService.isAuthenticated();\n if (!authed) {\n return;\n }\n\n this.biometricLocked = true;\n if (allowSoftLock) {\n const biometricLocked = await this.isBiometricLockSet();\n if (biometricLocked && this.platformUtilsService.supportsSecureStorage()) {\n this.messagingService.send('locked');\n if (this.lockedCallback != null) {\n await this.lockedCallback();\n }\n return;\n }\n }\n\n await Promise.all([\n this.cryptoService.clearKey(),\n this.cryptoService.clearOrgKeys(true),\n this.cryptoService.clearKeyPair(true),\n this.cryptoService.clearEncKey(true),\n ]);\n\n this.folderService.clearCache();\n this.cipherService.clearCache();\n this.collectionService.clearCache();\n this.searchService.clearIndex();\n this.messagingService.send('locked');\n if (this.lockedCallback != null) {\n await this.lockedCallback();\n }\n }\n\n async logOut(): Promise {\n if (this.loggedOutCallback != null) {\n await this.loggedOutCallback();\n }\n }\n\n async setVaultTimeoutOptions(timeout: number, action: string): Promise {\n await this.storageService.save(ConstantsService.vaultTimeoutKey, timeout);\n await this.storageService.save(ConstantsService.vaultTimeoutActionKey, action);\n await this.cryptoService.toggleKey();\n await this.tokenService.toggleTokens();\n }\n\n async isPinLockSet(): Promise<[boolean, boolean]> {\n const protectedPin = await this.storageService.get(ConstantsService.protectedPin);\n const pinProtectedKey = await this.storageService.get(ConstantsService.pinProtectedKey);\n return [protectedPin != null, pinProtectedKey != null];\n }\n\n async isBiometricLockSet(): Promise {\n return await this.storageService.get(ConstantsService.biometricUnlockKey);\n }\n\n clear(): Promise {\n this.pinProtectedKey = null;\n return this.storageService.remove(ConstantsService.protectedPin);\n }\n}\n","import { LogLevelType } from '../enums/logLevelType';\n\nimport { LogService as LogServiceAbstraction } from '../abstractions/log.service';\n\nimport * as hrtime from 'browser-hrtime';\n\nexport class ConsoleLogService implements LogServiceAbstraction {\n protected timersMap: Map = new Map();\n\n constructor(protected isDev: boolean, protected filter: (level: LogLevelType) => boolean = null) { }\n\n debug(message: string) {\n if (!this.isDev) {\n return;\n }\n this.write(LogLevelType.Debug, message);\n }\n\n info(message: string) {\n this.write(LogLevelType.Info, message);\n }\n\n warning(message: string) {\n this.write(LogLevelType.Warning, message);\n }\n\n error(message: string) {\n this.write(LogLevelType.Error, message);\n }\n\n write(level: LogLevelType, message: string) {\n if (this.filter != null && this.filter(level)) {\n return;\n }\n\n switch (level) {\n case LogLevelType.Debug:\n // tslint:disable-next-line\n console.log(message);\n break;\n case LogLevelType.Info:\n // tslint:disable-next-line\n console.log(message);\n break;\n case LogLevelType.Warning:\n // tslint:disable-next-line\n console.warn(message);\n break;\n case LogLevelType.Error:\n // tslint:disable-next-line\n console.error(message);\n break;\n default:\n break;\n }\n }\n\n time(label: string = 'default') {\n if (!this.timersMap.has(label)) {\n this.timersMap.set(label, hrtime());\n }\n }\n\n timeEnd(label: string = 'default'): [number, number] {\n const elapsed = hrtime(this.timersMap.get(label));\n this.timersMap.delete(label);\n this.write(LogLevelType.Info, `${label}: ${elapsed[0] * 1000 + elapsed[1] / 10e6}ms`);\n return elapsed;\n }\n}\n","import { Cipher } from './cipher';\n\nimport { CipherView } from '../view/cipherView';\n\nimport { Cipher as CipherDomain } from '../domain/cipher';\n\nexport class CipherWithIds extends Cipher {\n id: string;\n collectionIds: string[];\n\n // Use build method instead of ctor so that we can control order of JSON stringify for pretty print\n build(o: CipherView | CipherDomain) {\n this.id = o.id;\n super.build(o);\n this.collectionIds = o.collectionIds;\n }\n}\n","import { Collection } from './collection';\n\nimport { CollectionView } from '../view/collectionView';\n\nimport { Collection as CollectionDomain } from '../domain/collection';\n\nexport class CollectionWithId extends Collection {\n id: string;\n\n // Use build method instead of ctor so that we can control order of JSON stringify for pretty print\n build(o: CollectionView | CollectionDomain) {\n this.id = o.id;\n super.build(o);\n }\n}\n","import { Folder } from './folder';\n\nimport { FolderView } from '../view/folderView';\n\nimport { Folder as FolderDomain } from '../domain/folder';\n\nexport class FolderWithId extends Folder {\n id: string;\n\n // Use build method instead of ctor so that we can control order of JSON stringify for pretty print\n build(o: FolderView | FolderDomain) {\n this.id = o.id;\n super.build(o);\n }\n}\n","import { ImportResult } from '../../models/domain/importResult';\nimport { BaseImporter } from '../baseImporter';\nimport { Importer } from '../importer';\n\nimport { CipherType } from '../../enums/cipherType';\nimport { FieldType } from '../../enums/fieldType';\nimport { CipherView } from '../../models/view';\nimport { CipherImportContext } from './cipherImportContext';\n\nexport const IgnoredProperties = ['ainfo', 'autosubmit', 'notesplain', 'ps', 'scope', 'tags', 'title', 'uuid', 'notes'];\n\nexport abstract class OnePasswordCsvImporter extends BaseImporter implements Importer {\n protected loginPropertyParsers = [this.setLoginUsername, this.setLoginPassword, this.setLoginUris];\n protected creditCardPropertyParsers = [this.setCreditCardNumber, this.setCreditCardVerification, this.setCreditCardCardholderName, this.setCreditCardExpiry];\n protected identityPropertyParsers = [this.setIdentityFirstName, this.setIdentityInitial, this.setIdentityLastName, this.setIdentityUserName, this.setIdentityEmail, this.setIdentityPhone, this.setIdentityCompany];\n\n abstract setCipherType(value: any, cipher: CipherView): void;\n\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true, {\n quoteChar: '\"',\n escapeChar: '\\\\',\n });\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (this.isNullOrWhitespace(this.getProp(value, 'title'))) {\n return;\n }\n\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(this.getProp(value, 'title'), '--');\n\n this.setNotes(value, cipher);\n\n this.setCipherType(value, cipher);\n\n let altUsername: string = null;\n for (const property in value) {\n if (!value.hasOwnProperty(property) || this.isNullOrWhitespace(value[property])) {\n continue;\n }\n\n const context = new CipherImportContext(value, property, cipher);\n if (cipher.type === CipherType.Login && this.setKnownLoginValue(context)) {\n continue;\n } else if (cipher.type === CipherType.Card && this.setKnownCreditCardValue(context)) {\n continue;\n } else if (cipher.type === CipherType.Identity && this.setKnownIdentityValue(context)) {\n continue;\n }\n\n altUsername = this.setUnknownValue(context, altUsername);\n }\n\n if (cipher.type === CipherType.Login && !this.isNullOrWhitespace(altUsername) &&\n this.isNullOrWhitespace(cipher.login.username) && altUsername.indexOf('://') === -1) {\n cipher.login.username = altUsername;\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n protected getProp(obj: any, name: string): any {\n const lowerObj = Object.entries(obj).reduce((agg: any, entry: [string, any]) => {\n agg[entry[0].toLowerCase()] = entry[1];\n return agg;\n }, {});\n return lowerObj[name.toLowerCase()];\n }\n\n protected getPropByRegexp(obj: any, regexp: RegExp): any {\n const matchingKeys = Object.keys(obj).reduce((agg: string[], key: string) => {\n if (key.match(regexp)) {\n agg.push(key);\n }\n return agg;\n }, []);\n if (matchingKeys.length === 0) {\n return null;\n } else {\n return obj[matchingKeys[0]];\n }\n }\n\n protected getPropIncluding(obj: any, name: string): any {\n const includesMap = Object.keys(obj).reduce((agg: string[], entry: string) => {\n if (entry.toLowerCase().includes(name.toLowerCase())) {\n agg.push(entry);\n }\n return agg;\n }, []);\n if (includesMap.length === 0) {\n return null;\n } else {\n return obj[includesMap[0]];\n }\n }\n\n protected setNotes(importRecord: any, cipher: CipherView) {\n cipher.notes = this.getValueOrDefault(this.getProp(importRecord, 'notesPlain'), '') + '\\n' +\n this.getValueOrDefault(this.getProp(importRecord, 'notes'), '') + '\\n';\n cipher.notes.trim();\n\n }\n\n protected setKnownLoginValue(context: CipherImportContext): boolean {\n return this.loginPropertyParsers.reduce((agg: boolean, func) => {\n if (!agg) {\n agg = func.bind(this)(context);\n }\n return agg;\n }, false);\n }\n\n protected setKnownCreditCardValue(context: CipherImportContext): boolean {\n return this.creditCardPropertyParsers.reduce((agg: boolean, func) => {\n if (!agg) {\n agg = func.bind(this)(context);\n }\n return agg;\n }, false);\n }\n\n protected setKnownIdentityValue(context: CipherImportContext): boolean {\n return this.identityPropertyParsers.reduce((agg: boolean, func) => {\n if (!agg) {\n agg = func.bind(this)(context);\n }\n return agg;\n }, false);\n }\n\n protected setUnknownValue(context: CipherImportContext, altUsername: string): string {\n if (IgnoredProperties.indexOf(context.lowerProperty) === -1 && !context.lowerProperty.startsWith('section:') &&\n !context.lowerProperty.startsWith('section ')) {\n if (altUsername == null && context.lowerProperty === 'email') {\n return context.importRecord[context.property];\n }\n else if (context.lowerProperty === 'created date' || context.lowerProperty === 'modified date') {\n const readableDate = new Date(parseInt(context.importRecord[context.property], 10) * 1000).toUTCString();\n this.processKvp(context.cipher, '1Password ' + context.property, readableDate);\n return null;\n }\n if (context.lowerProperty.includes('password') || context.lowerProperty.includes('key') || context.lowerProperty.includes('secret')) {\n this.processKvp(context.cipher, context.property, context.importRecord[context.property], FieldType.Hidden);\n } else {\n this.processKvp(context.cipher, context.property, context.importRecord[context.property]);\n }\n }\n return null;\n }\n\n protected setIdentityFirstName(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.identity.firstName) && context.lowerProperty.includes('first name')) {\n context.cipher.identity.firstName = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setIdentityInitial(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.identity.middleName) && context.lowerProperty.includes('initial')) {\n context.cipher.identity.middleName = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setIdentityLastName(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.identity.lastName) && context.lowerProperty.includes('last name')) {\n context.cipher.identity.lastName = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setIdentityUserName(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.identity.username) && context.lowerProperty.includes('username')) {\n context.cipher.identity.username = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setIdentityCompany(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.identity.company) && context.lowerProperty.includes('company')) {\n context.cipher.identity.company = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setIdentityPhone(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.identity.phone) && context.lowerProperty.includes('default phone')) {\n context.cipher.identity.phone = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setIdentityEmail(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.identity.email) && context.lowerProperty.includes('email')) {\n context.cipher.identity.email = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setCreditCardNumber(context: CipherImportContext): boolean {\n if (this.isNullOrWhitespace(context.cipher.card.number) && context.lowerProperty.includes('number')) {\n context.cipher.card.number = context.importRecord[context.property];\n context.cipher.card.brand = this.getCardBrand(context.cipher.card.number);\n return true;\n }\n return false;\n }\n\n protected setCreditCardVerification(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.card.code) && context.lowerProperty.includes('verification number')) {\n context.cipher.card.code = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setCreditCardCardholderName(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.card.cardholderName) && context.lowerProperty.includes('cardholder name')) {\n context.cipher.card.cardholderName = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setCreditCardExpiry(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.card.expiration) && context.lowerProperty.includes('expiry date') &&\n context.importRecord[context.property].length === 7) {\n context.cipher.card.expMonth = (context.importRecord[context.property] as string).substr(0, 2);\n if (context.cipher.card.expMonth[0] === '0') {\n context.cipher.card.expMonth = context.cipher.card.expMonth.substr(1, 1);\n }\n context.cipher.card.expYear = (context.importRecord[context.property] as string).substr(3, 4);\n return true;\n }\n return false;\n }\n\n protected setLoginPassword(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.login.password) && context.lowerProperty === 'password') {\n context.cipher.login.password = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setLoginUsername(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.login.username) && context.lowerProperty === 'username') {\n context.cipher.login.username = context.importRecord[context.property];\n return true;\n }\n return false;\n }\n\n protected setLoginUris(context: CipherImportContext) {\n if ((context.cipher.login.uris == null || context.cipher.login.uris.length === 0) && context.lowerProperty === 'urls') {\n const urls = context.importRecord[context.property].split(this.newLineRegex);\n context.cipher.login.uris = this.makeUriArray(urls);\n return true;\n } else if ((context.lowerProperty === 'url')) {\n if (context.cipher.login.uris == null) {\n context.cipher.login.uris = [];\n }\n context.cipher.login.uris.concat(this.makeUriArray(context.importRecord[context.property]));\n return true;\n }\n return false;\n }\n}\n","export { AttachmentView } from './attachmentView';\nexport { CardView } from './cardView';\nexport { CipherView } from './cipherView';\nexport { FieldView } from './fieldView';\nexport { IdentityView } from './identityView';\nexport { LoginUriView } from './loginUriView';\nexport { LoginView } from './loginView';\nexport { SecureNoteView } from './secureNoteView';\nexport { View } from './view';\n","export enum NotificationType {\n SyncCipherUpdate = 0,\n SyncCipherCreate = 1,\n SyncLoginDelete = 2,\n SyncFolderDelete = 3,\n SyncCiphers = 4,\n\n SyncVault = 5,\n SyncOrgKeys = 6,\n SyncFolderCreate = 7,\n SyncFolderUpdate = 8,\n SyncCipherDelete = 9,\n SyncSettings = 10,\n\n LogOut = 11,\n\n SyncSendCreate = 12,\n SyncSendUpdate = 13,\n SyncSendDelete = 14,\n}\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport 'bootstrap';\nimport 'jquery';\nimport 'popper.js';\n\n// tslint:disable-next-line\nrequire('../scss/styles.scss');\n\nimport { AppModule } from './app.module';\n\nif (process.env.ENV === 'production') {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule, { preserveWhitespaces: true });\n","import 'core-js';\n\nimport { ToasterModule } from 'angular2-toaster';\nimport { Angulartics2Module } from 'angulartics2';\nimport { Angulartics2GoogleAnalytics } from 'angulartics2/ga';\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\n\nimport { AppRoutingModule } from './app-routing.module';\n\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n\nimport { ServicesModule } from './services/services.module';\n\nimport { AppComponent } from './app.component';\nimport { ModalComponent } from './modal.component';\n\nimport { AvatarComponent } from './components/avatar.component';\nimport { PasswordStrengthComponent } from './components/password-strength.component';\n\nimport { FooterComponent } from './layouts/footer.component';\nimport { FrontendLayoutComponent } from './layouts/frontend-layout.component';\nimport { NavbarComponent } from './layouts/navbar.component';\nimport { OrganizationLayoutComponent } from './layouts/organization-layout.component';\nimport { UserLayoutComponent } from './layouts/user-layout.component';\n\nimport { AcceptEmergencyComponent } from './accounts/accept-emergency.component';\nimport { AcceptOrganizationComponent } from './accounts/accept-organization.component';\nimport { HintComponent } from './accounts/hint.component';\nimport { LockComponent } from './accounts/lock.component';\nimport { LoginComponent } from './accounts/login.component';\nimport { RecoverDeleteComponent } from './accounts/recover-delete.component';\nimport { RecoverTwoFactorComponent } from './accounts/recover-two-factor.component';\nimport { RegisterComponent } from './accounts/register.component';\nimport { SetPasswordComponent } from './accounts/set-password.component';\nimport { SsoComponent } from './accounts/sso.component';\nimport { TwoFactorOptionsComponent } from './accounts/two-factor-options.component';\nimport { TwoFactorComponent } from './accounts/two-factor.component';\nimport { VerifyEmailTokenComponent } from './accounts/verify-email-token.component';\nimport { VerifyRecoverDeleteComponent } from './accounts/verify-recover-delete.component';\n\nimport {\n CollectionAddEditComponent as OrgCollectionAddEditComponent,\n} from './organizations/manage/collection-add-edit.component';\nimport { CollectionsComponent as OrgManageCollectionsComponent } from './organizations/manage/collections.component';\nimport { EntityEventsComponent as OrgEntityEventsComponent } from './organizations/manage/entity-events.component';\nimport { EntityUsersComponent as OrgEntityUsersComponent } from './organizations/manage/entity-users.component';\nimport { EventsComponent as OrgEventsComponent } from './organizations/manage/events.component';\nimport { GroupAddEditComponent as OrgGroupAddEditComponent } from './organizations/manage/group-add-edit.component';\nimport { GroupsComponent as OrgGroupsComponent } from './organizations/manage/groups.component';\nimport { ManageComponent as OrgManageComponent } from './organizations/manage/manage.component';\nimport { PeopleComponent as OrgPeopleComponent } from './organizations/manage/people.component';\nimport { PoliciesComponent as OrgPoliciesComponent } from './organizations/manage/policies.component';\nimport { PolicyEditComponent as OrgPolicyEditComponent } from './organizations/manage/policy-edit.component';\nimport { UserAddEditComponent as OrgUserAddEditComponent } from './organizations/manage/user-add-edit.component';\nimport { UserConfirmComponent as OrgUserConfirmComponent } from './organizations/manage/user-confirm.component';\nimport { UserGroupsComponent as OrgUserGroupsComponent } from './organizations/manage/user-groups.component';\n\nimport { AccountComponent as OrgAccountComponent } from './organizations/settings/account.component';\nimport { AdjustSeatsComponent } from './organizations/settings/adjust-seats.component';\nimport { ChangePlanComponent } from './organizations/settings/change-plan.component';\nimport { DeleteOrganizationComponent } from './organizations/settings/delete-organization.component';\nimport { DownloadLicenseComponent } from './organizations/settings/download-license.component';\nimport { OrganizationBillingComponent } from './organizations/settings/organization-billing.component';\nimport { OrganizationSubscriptionComponent } from './organizations/settings/organization-subscription.component';\nimport { SettingsComponent as OrgSettingComponent } from './organizations/settings/settings.component';\nimport {\n TwoFactorSetupComponent as OrgTwoFactorSetupComponent,\n} from './organizations/settings/two-factor-setup.component';\n\nimport { ExportComponent as OrgExportComponent } from './organizations/tools/export.component';\nimport {\n ExposedPasswordsReportComponent as OrgExposedPasswordsReportComponent,\n} from './organizations/tools/exposed-passwords-report.component';\nimport { ImportComponent as OrgImportComponent } from './organizations/tools/import.component';\nimport {\n InactiveTwoFactorReportComponent as OrgInactiveTwoFactorReportComponent,\n} from './organizations/tools/inactive-two-factor-report.component';\nimport {\n ReusedPasswordsReportComponent as OrgReusedPasswordsReportComponent,\n} from './organizations/tools/reused-passwords-report.component';\nimport { ToolsComponent as OrgToolsComponent } from './organizations/tools/tools.component';\nimport {\n UnsecuredWebsitesReportComponent as OrgUnsecuredWebsitesReportComponent,\n} from './organizations/tools/unsecured-websites-report.component';\nimport {\n WeakPasswordsReportComponent as OrgWeakPasswordsReportComponent,\n} from './organizations/tools/weak-passwords-report.component';\n\nimport { AddEditComponent as OrgAddEditComponent } from './organizations/vault/add-edit.component';\nimport { AttachmentsComponent as OrgAttachmentsComponent } from './organizations/vault/attachments.component';\nimport { CiphersComponent as OrgCiphersComponent } from './organizations/vault/ciphers.component';\nimport { CollectionsComponent as OrgCollectionsComponent } from './organizations/vault/collections.component';\nimport { GroupingsComponent as OrgGroupingsComponent } from './organizations/vault/groupings.component';\nimport { VaultComponent as OrgVaultComponent } from './organizations/vault/vault.component';\n\nimport { AccessComponent } from './send/access.component';\nimport { AddEditComponent as SendAddEditComponent } from './send/add-edit.component';\nimport { SendComponent } from './send/send.component';\n\nimport { AccountComponent } from './settings/account.component';\nimport { AddCreditComponent } from './settings/add-credit.component';\nimport { AdjustPaymentComponent } from './settings/adjust-payment.component';\nimport { AdjustStorageComponent } from './settings/adjust-storage.component';\nimport { ApiKeyComponent } from './settings/api-key.component';\nimport { ChangeEmailComponent } from './settings/change-email.component';\nimport { ChangeKdfComponent } from './settings/change-kdf.component';\nimport { ChangePasswordComponent } from './settings/change-password.component';\nimport { CreateOrganizationComponent } from './settings/create-organization.component';\nimport { DeauthorizeSessionsComponent } from './settings/deauthorize-sessions.component';\nimport { DeleteAccountComponent } from './settings/delete-account.component';\nimport { DomainRulesComponent } from './settings/domain-rules.component';\nimport { EmergencyAccessAddEditComponent } from './settings/emergency-access-add-edit.component';\nimport { EmergencyAccessAttachmentsComponent } from './settings/emergency-access-attachments.component';\nimport { EmergencyAccessConfirmComponent } from './settings/emergency-access-confirm.component';\nimport { EmergencyAccessTakeoverComponent } from './settings/emergency-access-takeover.component';\nimport { EmergencyAccessViewComponent } from './settings/emergency-access-view.component';\nimport { EmergencyAccessComponent } from './settings/emergency-access.component';\nimport { EmergencyAddEditComponent } from './settings/emergency-add-edit.component';\nimport { LinkSsoComponent } from './settings/link-sso.component';\nimport { OptionsComponent } from './settings/options.component';\nimport { OrganizationPlansComponent } from './settings/organization-plans.component';\nimport { OrganizationsComponent } from './settings/organizations.component';\nimport { PaymentComponent } from './settings/payment.component';\nimport { PremiumComponent } from './settings/premium.component';\nimport { ProfileComponent } from './settings/profile.component';\nimport { PurgeVaultComponent } from './settings/purge-vault.component';\nimport { SettingsComponent } from './settings/settings.component';\nimport { TaxInfoComponent } from './settings/tax-info.component';\nimport { TwoFactorAuthenticatorComponent } from './settings/two-factor-authenticator.component';\nimport { TwoFactorDuoComponent } from './settings/two-factor-duo.component';\nimport { TwoFactorEmailComponent } from './settings/two-factor-email.component';\nimport { TwoFactorRecoveryComponent } from './settings/two-factor-recovery.component';\nimport { TwoFactorSetupComponent } from './settings/two-factor-setup.component';\nimport { TwoFactorU2fComponent } from './settings/two-factor-u2f.component';\nimport { TwoFactorVerifyComponent } from './settings/two-factor-verify.component';\nimport { TwoFactorYubiKeyComponent } from './settings/two-factor-yubikey.component';\nimport { UpdateKeyComponent } from './settings/update-key.component';\nimport { UpdateLicenseComponent } from './settings/update-license.component';\nimport { UserBillingComponent } from './settings/user-billing.component';\nimport { UserSubscriptionComponent } from './settings/user-subscription.component';\nimport { VerifyEmailComponent } from './settings/verify-email.component';\n\nimport { BreachReportComponent } from './tools/breach-report.component';\nimport { ExportComponent } from './tools/export.component';\nimport { ExposedPasswordsReportComponent } from './tools/exposed-passwords-report.component';\nimport { ImportComponent } from './tools/import.component';\nimport { InactiveTwoFactorReportComponent } from './tools/inactive-two-factor-report.component';\nimport { PasswordGeneratorHistoryComponent } from './tools/password-generator-history.component';\nimport { PasswordGeneratorComponent } from './tools/password-generator.component';\nimport { ReusedPasswordsReportComponent } from './tools/reused-passwords-report.component';\nimport { ToolsComponent } from './tools/tools.component';\nimport { UnsecuredWebsitesReportComponent } from './tools/unsecured-websites-report.component';\nimport { WeakPasswordsReportComponent } from './tools/weak-passwords-report.component';\n\nimport { AddEditComponent } from './vault/add-edit.component';\nimport { AttachmentsComponent } from './vault/attachments.component';\nimport { BulkActionsComponent } from './vault/bulk-actions.component';\nimport { BulkDeleteComponent } from './vault/bulk-delete.component';\nimport { BulkMoveComponent } from './vault/bulk-move.component';\nimport { BulkRestoreComponent } from './vault/bulk-restore.component';\nimport { BulkShareComponent } from './vault/bulk-share.component';\nimport { CiphersComponent } from './vault/ciphers.component';\nimport { CollectionsComponent } from './vault/collections.component';\nimport { FolderAddEditComponent } from './vault/folder-add-edit.component';\nimport { GroupingsComponent } from './vault/groupings.component';\nimport { SendInfoComponent } from './vault/send-info.component';\nimport { ShareComponent } from './vault/share.component';\nimport { VaultComponent } from './vault/vault.component';\n\nimport { CalloutComponent } from 'jslib/angular/components/callout.component';\nimport { IconComponent } from 'jslib/angular/components/icon.component';\n\nimport { A11yTitleDirective } from 'jslib/angular/directives/a11y-title.directive';\nimport { ApiActionDirective } from 'jslib/angular/directives/api-action.directive';\nimport { AutofocusDirective } from 'jslib/angular/directives/autofocus.directive';\nimport { BlurClickDirective } from 'jslib/angular/directives/blur-click.directive';\nimport { BoxRowDirective } from 'jslib/angular/directives/box-row.directive';\nimport { FallbackSrcDirective } from 'jslib/angular/directives/fallback-src.directive';\nimport { InputVerbatimDirective } from 'jslib/angular/directives/input-verbatim.directive';\nimport { SelectCopyDirective } from 'jslib/angular/directives/select-copy.directive';\nimport { StopClickDirective } from 'jslib/angular/directives/stop-click.directive';\nimport { StopPropDirective } from 'jslib/angular/directives/stop-prop.directive';\nimport { TrueFalseValueDirective } from 'jslib/angular/directives/true-false-value.directive';\n\nimport { ColorPasswordPipe } from 'jslib/angular/pipes/color-password.pipe';\nimport { I18nPipe } from 'jslib/angular/pipes/i18n.pipe';\nimport { SearchCiphersPipe } from 'jslib/angular/pipes/search-ciphers.pipe';\nimport { SearchPipe } from 'jslib/angular/pipes/search.pipe';\n\nimport {\n DatePipe,\n registerLocaleData,\n} from '@angular/common';\nimport localeCa from '@angular/common/locales/ca';\nimport localeCs from '@angular/common/locales/cs';\nimport localeDa from '@angular/common/locales/da';\nimport localeDe from '@angular/common/locales/de';\nimport localeEl from '@angular/common/locales/el';\nimport localeEnGb from '@angular/common/locales/en-GB';\nimport localeEs from '@angular/common/locales/es';\nimport localeEt from '@angular/common/locales/et';\nimport localeFr from '@angular/common/locales/fr';\nimport localeHe from '@angular/common/locales/he';\nimport localeIt from '@angular/common/locales/it';\nimport localeJa from '@angular/common/locales/ja';\nimport localeKo from '@angular/common/locales/ko';\nimport localeLv from '@angular/common/locales/lv';\nimport localeMl from '@angular/common/locales/ml';\nimport localeNb from '@angular/common/locales/nb';\nimport localeNl from '@angular/common/locales/nl';\nimport localePl from '@angular/common/locales/pl';\nimport localePtBr from '@angular/common/locales/pt';\nimport localePtPt from '@angular/common/locales/pt-PT';\nimport localeRu from '@angular/common/locales/ru';\nimport localeSk from '@angular/common/locales/sk';\nimport localeSv from '@angular/common/locales/sv';\nimport localeUk from '@angular/common/locales/uk';\nimport localeZhCn from '@angular/common/locales/zh-Hans';\nimport localeZhTw from '@angular/common/locales/zh-Hant';\n\nregisterLocaleData(localeCa, 'ca');\nregisterLocaleData(localeCs, 'cs');\nregisterLocaleData(localeDa, 'da');\nregisterLocaleData(localeDe, 'de');\nregisterLocaleData(localeEl, 'el');\nregisterLocaleData(localeEnGb, 'en-GB');\nregisterLocaleData(localeEs, 'es');\nregisterLocaleData(localeEt, 'et');\nregisterLocaleData(localeFr, 'fr');\nregisterLocaleData(localeHe, 'he');\nregisterLocaleData(localeIt, 'it');\nregisterLocaleData(localeJa, 'ja');\nregisterLocaleData(localeKo, 'ko');\nregisterLocaleData(localeLv, 'lv');\nregisterLocaleData(localeMl, 'ml');\nregisterLocaleData(localeNb, 'nb');\nregisterLocaleData(localeNl, 'nl');\nregisterLocaleData(localePl, 'pl');\nregisterLocaleData(localePtBr, 'pt-BR');\nregisterLocaleData(localePtPt, 'pt-PT');\nregisterLocaleData(localeRu, 'ru');\nregisterLocaleData(localeSk, 'sk');\nregisterLocaleData(localeSv, 'sv');\nregisterLocaleData(localeUk, 'uk');\nregisterLocaleData(localeZhCn, 'zh-CN');\nregisterLocaleData(localeZhTw, 'zh-TW');\n\n@NgModule({\n imports: [\n BrowserModule,\n BrowserAnimationsModule,\n FormsModule,\n AppRoutingModule,\n ServicesModule,\n Angulartics2Module.forRoot({\n pageTracking: {\n clearQueryParams: true,\n },\n }),\n ToasterModule.forRoot(),\n InfiniteScrollModule,\n DragDropModule,\n ],\n declarations: [\n A11yTitleDirective,\n AcceptEmergencyComponent,\n AccessComponent,\n AcceptOrganizationComponent,\n AccountComponent,\n SetPasswordComponent,\n AddCreditComponent,\n AddEditComponent,\n AdjustPaymentComponent,\n AdjustSeatsComponent,\n AdjustStorageComponent,\n ApiActionDirective,\n ApiKeyComponent,\n AppComponent,\n AttachmentsComponent,\n AutofocusDirective,\n AvatarComponent,\n BlurClickDirective,\n BoxRowDirective,\n BreachReportComponent,\n BulkActionsComponent,\n BulkDeleteComponent,\n BulkMoveComponent,\n BulkRestoreComponent,\n BulkShareComponent,\n CalloutComponent,\n ChangeEmailComponent,\n ChangeKdfComponent,\n ChangePasswordComponent,\n ChangePlanComponent,\n CiphersComponent,\n CollectionsComponent,\n ColorPasswordPipe,\n CreateOrganizationComponent,\n DeauthorizeSessionsComponent,\n DeleteAccountComponent,\n DeleteOrganizationComponent,\n DomainRulesComponent,\n DownloadLicenseComponent,\n EmergencyAccessAddEditComponent,\n EmergencyAccessAttachmentsComponent,\n EmergencyAccessComponent,\n EmergencyAccessConfirmComponent,\n EmergencyAccessTakeoverComponent,\n EmergencyAccessViewComponent,\n EmergencyAddEditComponent,\n ExportComponent,\n ExposedPasswordsReportComponent,\n FallbackSrcDirective,\n FolderAddEditComponent,\n FooterComponent,\n FrontendLayoutComponent,\n GroupingsComponent,\n HintComponent,\n I18nPipe,\n IconComponent,\n ImportComponent,\n InactiveTwoFactorReportComponent,\n InputVerbatimDirective,\n LinkSsoComponent,\n LockComponent,\n LoginComponent,\n ModalComponent,\n NavbarComponent,\n OptionsComponent,\n OrgAccountComponent,\n OrgAddEditComponent,\n OrganizationBillingComponent,\n OrganizationPlansComponent,\n OrganizationSubscriptionComponent,\n OrgAttachmentsComponent,\n OrgCiphersComponent,\n OrgCollectionAddEditComponent,\n OrgCollectionsComponent,\n OrgEntityEventsComponent,\n OrgEntityUsersComponent,\n OrgEventsComponent,\n OrgExportComponent,\n OrgExposedPasswordsReportComponent,\n OrgImportComponent,\n OrgInactiveTwoFactorReportComponent,\n OrgGroupAddEditComponent,\n OrgGroupingsComponent,\n OrgGroupsComponent,\n OrgManageCollectionsComponent,\n OrgManageComponent,\n OrgPeopleComponent,\n OrgPolicyEditComponent,\n OrgPoliciesComponent,\n OrgReusedPasswordsReportComponent,\n OrgSettingComponent,\n OrgToolsComponent,\n OrgTwoFactorSetupComponent,\n OrgUserAddEditComponent,\n OrgUserConfirmComponent,\n OrgUserGroupsComponent,\n OrganizationsComponent,\n OrganizationLayoutComponent,\n OrgUnsecuredWebsitesReportComponent,\n OrgVaultComponent,\n OrgWeakPasswordsReportComponent,\n PasswordGeneratorComponent,\n PasswordGeneratorHistoryComponent,\n PasswordStrengthComponent,\n PaymentComponent,\n PremiumComponent,\n ProfileComponent,\n PurgeVaultComponent,\n RecoverDeleteComponent,\n RecoverTwoFactorComponent,\n RegisterComponent,\n ReusedPasswordsReportComponent,\n SearchCiphersPipe,\n SearchPipe,\n SelectCopyDirective,\n SendAddEditComponent,\n SendComponent,\n SendInfoComponent,\n SettingsComponent,\n ShareComponent,\n SsoComponent,\n StopClickDirective,\n StopPropDirective,\n TaxInfoComponent,\n ToolsComponent,\n TrueFalseValueDirective,\n TwoFactorAuthenticatorComponent,\n TwoFactorComponent,\n TwoFactorDuoComponent,\n TwoFactorEmailComponent,\n TwoFactorOptionsComponent,\n TwoFactorRecoveryComponent,\n TwoFactorSetupComponent,\n TwoFactorU2fComponent,\n TwoFactorVerifyComponent,\n TwoFactorYubiKeyComponent,\n UnsecuredWebsitesReportComponent,\n UpdateKeyComponent,\n UpdateLicenseComponent,\n UserBillingComponent,\n UserLayoutComponent,\n UserSubscriptionComponent,\n VaultComponent,\n VerifyEmailComponent,\n VerifyEmailTokenComponent,\n VerifyRecoverDeleteComponent,\n WeakPasswordsReportComponent,\n ],\n entryComponents: [\n AddEditComponent,\n ApiKeyComponent,\n AttachmentsComponent,\n BulkActionsComponent,\n BulkDeleteComponent,\n BulkMoveComponent,\n BulkRestoreComponent,\n BulkShareComponent,\n CollectionsComponent,\n DeauthorizeSessionsComponent,\n DeleteAccountComponent,\n DeleteOrganizationComponent,\n EmergencyAccessAddEditComponent,\n EmergencyAccessAttachmentsComponent,\n EmergencyAccessConfirmComponent,\n EmergencyAccessTakeoverComponent,\n EmergencyAddEditComponent,\n FolderAddEditComponent,\n ModalComponent,\n OrgAddEditComponent,\n OrgAttachmentsComponent,\n OrgCollectionAddEditComponent,\n OrgCollectionsComponent,\n OrgEntityEventsComponent,\n OrgEntityUsersComponent,\n OrgGroupAddEditComponent,\n OrgPolicyEditComponent,\n OrgUserAddEditComponent,\n OrgUserConfirmComponent,\n OrgUserGroupsComponent,\n PasswordGeneratorHistoryComponent,\n PurgeVaultComponent,\n SendAddEditComponent,\n ShareComponent,\n TwoFactorAuthenticatorComponent,\n TwoFactorDuoComponent,\n TwoFactorEmailComponent,\n TwoFactorOptionsComponent,\n TwoFactorRecoveryComponent,\n TwoFactorU2fComponent,\n TwoFactorYubiKeyComponent,\n UpdateKeyComponent,\n ],\n providers: [DatePipe],\n bootstrap: [AppComponent],\n})\nexport class AppModule { }\n","import { NgModule } from '@angular/core';\nimport {\n RouterModule,\n Routes,\n} from '@angular/router';\n\nimport { FrontendLayoutComponent } from './layouts/frontend-layout.component';\nimport { OrganizationLayoutComponent } from './layouts/organization-layout.component';\nimport { UserLayoutComponent } from './layouts/user-layout.component';\n\nimport { AcceptEmergencyComponent } from './accounts/accept-emergency.component';\nimport { AcceptOrganizationComponent } from './accounts/accept-organization.component';\nimport { HintComponent } from './accounts/hint.component';\nimport { LockComponent } from './accounts/lock.component';\nimport { LoginComponent } from './accounts/login.component';\nimport { RecoverDeleteComponent } from './accounts/recover-delete.component';\nimport { RecoverTwoFactorComponent } from './accounts/recover-two-factor.component';\nimport { RegisterComponent } from './accounts/register.component';\nimport { SetPasswordComponent } from './accounts/set-password.component';\nimport { SsoComponent } from './accounts/sso.component';\nimport { TwoFactorComponent } from './accounts/two-factor.component';\nimport { VerifyEmailTokenComponent } from './accounts/verify-email-token.component';\nimport { VerifyRecoverDeleteComponent } from './accounts/verify-recover-delete.component';\n\nimport { CollectionsComponent as OrgManageCollectionsComponent } from './organizations/manage/collections.component';\nimport { EventsComponent as OrgEventsComponent } from './organizations/manage/events.component';\nimport { GroupsComponent as OrgGroupsComponent } from './organizations/manage/groups.component';\nimport { ManageComponent as OrgManageComponent } from './organizations/manage/manage.component';\nimport { PeopleComponent as OrgPeopleComponent } from './organizations/manage/people.component';\nimport { PoliciesComponent as OrgPoliciesComponent } from './organizations/manage/policies.component';\n\nimport { AccountComponent as OrgAccountComponent } from './organizations/settings/account.component';\nimport { OrganizationBillingComponent } from './organizations/settings/organization-billing.component';\nimport { OrganizationSubscriptionComponent } from './organizations/settings/organization-subscription.component';\nimport { SettingsComponent as OrgSettingsComponent } from './organizations/settings/settings.component';\nimport {\n TwoFactorSetupComponent as OrgTwoFactorSetupComponent,\n} from './organizations/settings/two-factor-setup.component';\n\nimport { ExportComponent as OrgExportComponent } from './organizations/tools/export.component';\nimport {\n ExposedPasswordsReportComponent as OrgExposedPasswordsReportComponent,\n} from './organizations/tools/exposed-passwords-report.component';\nimport { ImportComponent as OrgImportComponent } from './organizations/tools/import.component';\nimport {\n InactiveTwoFactorReportComponent as OrgInactiveTwoFactorReportComponent,\n} from './organizations/tools/inactive-two-factor-report.component';\nimport {\n ReusedPasswordsReportComponent as OrgReusedPasswordsReportComponent,\n} from './organizations/tools/reused-passwords-report.component';\nimport { ToolsComponent as OrgToolsComponent } from './organizations/tools/tools.component';\nimport {\n UnsecuredWebsitesReportComponent as OrgUnsecuredWebsitesReportComponent,\n} from './organizations/tools/unsecured-websites-report.component';\nimport {\n WeakPasswordsReportComponent as OrgWeakPasswordsReportComponent,\n} from './organizations/tools/weak-passwords-report.component';\n\nimport { VaultComponent as OrgVaultComponent } from './organizations/vault/vault.component';\n\nimport { AccessComponent } from './send/access.component';\nimport { SendComponent } from './send/send.component';\n\nimport { AccountComponent } from './settings/account.component';\nimport { CreateOrganizationComponent } from './settings/create-organization.component';\nimport { DomainRulesComponent } from './settings/domain-rules.component';\nimport { OptionsComponent } from './settings/options.component';\nimport { OrganizationsComponent } from './settings/organizations.component';\nimport { PremiumComponent } from './settings/premium.component';\nimport { SettingsComponent } from './settings/settings.component';\nimport { TwoFactorSetupComponent } from './settings/two-factor-setup.component';\nimport { UserBillingComponent } from './settings/user-billing.component';\nimport { UserSubscriptionComponent } from './settings/user-subscription.component';\n\nimport { BreachReportComponent } from './tools/breach-report.component';\nimport { ExportComponent } from './tools/export.component';\nimport { ExposedPasswordsReportComponent } from './tools/exposed-passwords-report.component';\nimport { ImportComponent } from './tools/import.component';\nimport { InactiveTwoFactorReportComponent } from './tools/inactive-two-factor-report.component';\nimport { PasswordGeneratorComponent } from './tools/password-generator.component';\nimport { ReusedPasswordsReportComponent } from './tools/reused-passwords-report.component';\nimport { ToolsComponent } from './tools/tools.component';\nimport { UnsecuredWebsitesReportComponent } from './tools/unsecured-websites-report.component';\nimport { WeakPasswordsReportComponent } from './tools/weak-passwords-report.component';\n\nimport { VaultComponent } from './vault/vault.component';\n\nimport { OrganizationGuardService } from './services/organization-guard.service';\nimport { OrganizationTypeGuardService } from './services/organization-type-guard.service';\nimport { UnauthGuardService } from './services/unauth-guard.service';\n\nimport { AuthGuardService } from 'jslib/angular/services/auth-guard.service';\n\nimport { Permissions } from 'jslib/enums/permissions';\n\nimport { EmergencyAccessViewComponent } from './settings/emergency-access-view.component';\nimport { EmergencyAccessComponent } from './settings/emergency-access.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: FrontendLayoutComponent,\n children: [\n { path: '', pathMatch: 'full', component: LoginComponent, canActivate: [UnauthGuardService] },\n { path: '2fa', component: TwoFactorComponent, canActivate: [UnauthGuardService] },\n {\n path: 'register', component: RegisterComponent,\n canActivate: [UnauthGuardService],\n data: { titleId: 'createAccount' },\n },\n {\n path: 'sso', component: SsoComponent,\n canActivate: [UnauthGuardService],\n data: { titleId: 'enterpriseSingleSignOn' },\n },\n {\n path: 'set-password', component: SetPasswordComponent,\n data: { titleId: 'setMasterPassword' },\n },\n {\n path: 'hint', component: HintComponent,\n canActivate: [UnauthGuardService],\n data: { titleId: 'passwordHint' },\n },\n { path: 'lock', component: LockComponent },\n { path: 'verify-email', component: VerifyEmailTokenComponent },\n {\n path: 'accept-organization',\n component: AcceptOrganizationComponent,\n data: { titleId: 'joinOrganization' },\n },\n {\n path: 'accept-emergency',\n component: AcceptEmergencyComponent,\n data: { titleId: 'acceptEmergency' },\n },\n { path: 'recover', pathMatch: 'full', redirectTo: 'recover-2fa' },\n {\n path: 'recover-2fa',\n component: RecoverTwoFactorComponent,\n canActivate: [UnauthGuardService],\n data: { titleId: 'recoverAccountTwoStep' },\n },\n {\n path: 'recover-delete',\n component: RecoverDeleteComponent,\n canActivate: [UnauthGuardService],\n data: { titleId: 'deleteAccount' },\n },\n {\n path: 'verify-recover-delete',\n component: VerifyRecoverDeleteComponent,\n canActivate: [UnauthGuardService],\n data: { titleId: 'deleteAccount' },\n },\n {\n path: 'send/:sendId/:key',\n component: AccessComponent,\n data: { title: 'Bitwarden Send' },\n },\n ],\n },\n {\n path: '',\n component: UserLayoutComponent,\n canActivate: [AuthGuardService],\n children: [\n { path: 'vault', component: VaultComponent, data: { titleId: 'myVault' } },\n { path: 'sends', component: SendComponent, data: { title: 'Send' } },\n {\n path: 'settings',\n component: SettingsComponent,\n children: [\n { path: '', pathMatch: 'full', redirectTo: 'account' },\n { path: 'account', component: AccountComponent, data: { titleId: 'myAccount' } },\n { path: 'options', component: OptionsComponent, data: { titleId: 'options' } },\n { path: 'domain-rules', component: DomainRulesComponent, data: { titleId: 'domainRules' } },\n { path: 'two-factor', component: TwoFactorSetupComponent, data: { titleId: 'twoStepLogin' } },\n { path: 'premium', component: PremiumComponent, data: { titleId: 'goPremium' } },\n { path: 'billing', component: UserBillingComponent, data: { titleId: 'billing' } },\n {\n path: 'subscription',\n component: UserSubscriptionComponent,\n data: { titleId: 'premiumMembership' },\n },\n { path: 'organizations', component: OrganizationsComponent, data: { titleId: 'organizations' } },\n {\n path: 'create-organization',\n component: CreateOrganizationComponent,\n data: { titleId: 'newOrganization' },\n },\n {\n path: 'emergency-access',\n children: [\n {\n path: '',\n component: EmergencyAccessComponent,\n data: { titleId: 'emergencyAccess'},\n },\n {\n path: ':id',\n component: EmergencyAccessViewComponent,\n data: { titleId: 'emergencyAccess'},\n },\n ],\n },\n ],\n },\n {\n path: 'tools',\n component: ToolsComponent,\n canActivate: [AuthGuardService],\n children: [\n { path: '', pathMatch: 'full', redirectTo: 'generator' },\n { path: 'import', component: ImportComponent, data: { titleId: 'importData' } },\n { path: 'export', component: ExportComponent, data: { titleId: 'exportVault' } },\n {\n path: 'generator',\n component: PasswordGeneratorComponent,\n data: { titleId: 'passwordGenerator' },\n },\n { path: 'breach-report', component: BreachReportComponent, data: { titleId: 'dataBreachReport' } },\n {\n path: 'reused-passwords-report',\n component: ReusedPasswordsReportComponent,\n data: { titleId: 'reusedPasswordsReport' },\n },\n {\n path: 'unsecured-websites-report',\n component: UnsecuredWebsitesReportComponent,\n data: { titleId: 'unsecuredWebsitesReport' },\n },\n {\n path: 'weak-passwords-report',\n component: WeakPasswordsReportComponent,\n data: { titleId: 'weakPasswordsReport' },\n },\n {\n path: 'exposed-passwords-report',\n component: ExposedPasswordsReportComponent,\n data: { titleId: 'exposedPasswordsReport' },\n },\n {\n path: 'inactive-two-factor-report',\n component: InactiveTwoFactorReportComponent,\n data: { titleId: 'inactive2faReport' },\n },\n ],\n },\n ],\n },\n {\n path: 'organizations/:organizationId',\n component: OrganizationLayoutComponent,\n canActivate: [AuthGuardService, OrganizationGuardService],\n children: [\n { path: '', pathMatch: 'full', redirectTo: 'vault' },\n { path: 'vault', component: OrgVaultComponent, data: { titleId: 'vault' } },\n {\n path: 'tools',\n component: OrgToolsComponent,\n canActivate: [OrganizationTypeGuardService],\n data: { permissions: [Permissions.AccessImportExport, Permissions.AccessReports] },\n children: [\n {\n path: '',\n pathMatch: 'full',\n redirectTo: 'import',\n },\n {\n path: 'import',\n component: OrgImportComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'importData',\n permissions: [Permissions.AccessImportExport],\n },\n },\n {\n path: 'export',\n component: OrgExportComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'exportVault',\n permissions: [Permissions.AccessImportExport],\n },\n },\n {\n path: 'exposed-passwords-report',\n component: OrgExposedPasswordsReportComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'exposedPasswordsReport',\n permissions: [Permissions.AccessReports],\n },\n },\n {\n path: 'inactive-two-factor-report',\n component: OrgInactiveTwoFactorReportComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'inactive2faReport',\n permissions: [Permissions.AccessReports],\n },\n },\n {\n path: 'reused-passwords-report',\n component: OrgReusedPasswordsReportComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'reusedPasswordsReport',\n permissions: [Permissions.AccessReports],\n },\n },\n {\n path: 'unsecured-websites-report',\n component: OrgUnsecuredWebsitesReportComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'unsecuredWebsitesReport',\n permissions: [Permissions.AccessReports],\n },\n },\n {\n path: 'weak-passwords-report',\n component: OrgWeakPasswordsReportComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'weakPasswordsReport',\n permissions: [Permissions.AccessReports],\n },\n },\n ],\n },\n {\n path: 'manage',\n component: OrgManageComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n permissions: [\n Permissions.ManageAssignedCollections,\n Permissions.ManageAllCollections,\n Permissions.AccessEventLogs,\n Permissions.ManageGroups,\n Permissions.ManageUsers,\n Permissions.ManagePolicies,\n ],\n },\n children: [\n {\n path: '',\n pathMatch: 'full',\n redirectTo: 'people',\n },\n {\n path: 'collections',\n component: OrgManageCollectionsComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'collections',\n permissions: [Permissions.ManageAssignedCollections, Permissions.ManageAllCollections],\n },\n },\n {\n path: 'events',\n component: OrgEventsComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'eventLogs',\n permissions: [Permissions.AccessEventLogs],\n },\n },\n {\n path: 'groups',\n component: OrgGroupsComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'groups',\n permissions: [Permissions.ManageGroups],\n },\n },\n {\n path: 'people',\n component: OrgPeopleComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'people',\n permissions: [Permissions.ManageUsers],\n },\n },\n {\n path: 'policies',\n component: OrgPoliciesComponent,\n canActivate: [OrganizationTypeGuardService],\n data: {\n titleId: 'policies',\n permissions: [Permissions.ManagePolicies],\n },\n },\n ],\n },\n {\n path: 'settings',\n component: OrgSettingsComponent,\n canActivate: [OrganizationTypeGuardService],\n data: { permissions: [Permissions.ManageOrganization] },\n children: [\n { path: '', pathMatch: 'full', redirectTo: 'account' },\n { path: 'account', component: OrgAccountComponent, data: { titleId: 'myOrganization' } },\n { path: 'two-factor', component: OrgTwoFactorSetupComponent, data: { titleId: 'twoStepLogin' } },\n {\n path: 'billing',\n component: OrganizationBillingComponent,\n data: { titleId: 'billing' },\n },\n {\n path: 'subscription',\n component: OrganizationSubscriptionComponent,\n data: { titleId: 'subscription' },\n },\n ],\n },\n ],\n },\n { path: '**', redirectTo: '' },\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes, {\n useHash: true,\n paramsInheritanceStrategy: 'always',\n /*enableTracing: true,*/\n })],\n exports: [RouterModule],\n})\nexport class AppRoutingModule { }\n","import { BroadcasterService as BroadcasterServiceAbstraction } from '../abstractions/broadcaster.service';\n\nexport class BroadcasterService implements BroadcasterServiceAbstraction {\n subscribers: Map any> = new Map any>();\n\n send(message: any, id?: string) {\n if (id != null) {\n if (this.subscribers.has(id)) {\n this.subscribers.get(id)(message);\n }\n return;\n }\n\n this.subscribers.forEach(value => {\n value(message);\n });\n }\n\n subscribe(id: string, messageCallback: (message: any) => any) {\n this.subscribers.set(id, messageCallback);\n }\n\n unsubscribe(id: string) {\n if (this.subscribers.has(id)) {\n this.subscribers.delete(id);\n }\n }\n}\n","export function getDomain(host: string): string | null {\n return null;\n}\n","export class EmergencyAccessAcceptRequest {\n token: string;\n}\n","export class OrganizationUserAcceptRequest {\n token: string;\n}\n","import { Router } from '@angular/router';\n\nimport { PasswordHintRequest } from '../../models/request/passwordHintRequest';\n\nimport { ApiService } from '../../abstractions/api.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\nexport class HintComponent {\n email: string = '';\n formPromise: Promise;\n\n protected successRoute = 'login';\n protected onSuccessfulSubmit: () => void;\n\n constructor(protected router: Router, protected i18nService: I18nService,\n protected apiService: ApiService, protected platformUtilsService: PlatformUtilsService) { }\n\n async submit() {\n if (this.email == null || this.email === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('emailRequired'));\n return;\n }\n if (this.email.indexOf('@') === -1) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidEmail'));\n return;\n }\n\n try {\n this.formPromise = this.apiService.postPasswordHint(new PasswordHintRequest(this.email));\n await this.formPromise;\n this.platformUtilsService.eventTrack('Requested Hint');\n this.platformUtilsService.showToast('success', null, this.i18nService.t('masterPassSent'));\n if (this.onSuccessfulSubmit != null) {\n this.onSuccessfulSubmit();\n } else if (this.router != null) {\n this.router.navigate([this.successRoute]);\n }\n } catch { }\n }\n}\n","export class PasswordHintRequest {\n email: string;\n\n constructor(email: string) {\n this.email = email;\n }\n}\n","import { OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ApiService } from '../../abstractions/api.service';\nimport { CryptoService } from '../../abstractions/crypto.service';\nimport { EnvironmentService } from '../../abstractions/environment.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { MessagingService } from '../../abstractions/messaging.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { StateService } from '../../abstractions/state.service';\nimport { StorageService } from '../../abstractions/storage.service';\nimport { UserService } from '../../abstractions/user.service';\nimport { VaultTimeoutService } from '../../abstractions/vaultTimeout.service';\n\nimport { ConstantsService } from '../../services/constants.service';\n\nimport { CipherString } from '../../models/domain/cipherString';\nimport { SymmetricCryptoKey } from '../../models/domain/symmetricCryptoKey';\n\nimport { PasswordVerificationRequest } from '../../models/request/passwordVerificationRequest';\n\nimport { Utils } from '../../misc/utils';\n\nexport class LockComponent implements OnInit {\n masterPassword: string = '';\n pin: string = '';\n showPassword: boolean = false;\n email: string;\n pinLock: boolean = false;\n webVaultHostname: string = '';\n formPromise: Promise;\n supportsBiometric: boolean;\n biometricLock: boolean;\n biometricText: string;\n\n protected successRoute: string = 'vault';\n protected onSuccessfulSubmit: () => void;\n\n private invalidPinAttempts = 0;\n private pinSet: [boolean, boolean];\n\n constructor(protected router: Router, protected i18nService: I18nService,\n protected platformUtilsService: PlatformUtilsService, protected messagingService: MessagingService,\n protected userService: UserService, protected cryptoService: CryptoService,\n protected storageService: StorageService, protected vaultTimeoutService: VaultTimeoutService,\n protected environmentService: EnvironmentService, protected stateService: StateService,\n protected apiService: ApiService) { }\n\n async ngOnInit() {\n this.pinSet = await this.vaultTimeoutService.isPinLockSet();\n this.pinLock = (this.pinSet[0] && this.vaultTimeoutService.pinProtectedKey != null) || this.pinSet[1];\n this.supportsBiometric = await this.platformUtilsService.supportsBiometric();\n this.biometricLock = await this.vaultTimeoutService.isBiometricLockSet() && (await this.cryptoService.hasKey() || !this.platformUtilsService.supportsSecureStorage());\n this.biometricText = await this.storageService.get(ConstantsService.biometricText);\n this.email = await this.userService.getEmail();\n let vaultUrl = this.environmentService.getWebVaultUrl();\n if (vaultUrl == null) {\n vaultUrl = 'https://bitwarden.com';\n }\n this.webVaultHostname = Utils.getHostname(vaultUrl);\n }\n\n async submit() {\n if (this.pinLock && (this.pin == null || this.pin === '')) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('pinRequired'));\n return;\n }\n if (!this.pinLock && (this.masterPassword == null || this.masterPassword === '')) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n const kdf = await this.userService.getKdf();\n const kdfIterations = await this.userService.getKdfIterations();\n\n if (this.pinLock) {\n let failed = true;\n try {\n if (this.pinSet[0]) {\n const key = await this.cryptoService.makeKeyFromPin(this.pin, this.email, kdf, kdfIterations,\n this.vaultTimeoutService.pinProtectedKey);\n const encKey = await this.cryptoService.getEncKey(key);\n const protectedPin = await this.storageService.get(ConstantsService.protectedPin);\n const decPin = await this.cryptoService.decryptToUtf8(new CipherString(protectedPin), encKey);\n failed = decPin !== this.pin;\n if (!failed) {\n await this.setKeyAndContinue(key);\n }\n } else {\n const key = await this.cryptoService.makeKeyFromPin(this.pin, this.email, kdf, kdfIterations);\n failed = false;\n await this.setKeyAndContinue(key);\n }\n } catch {\n failed = true;\n }\n\n if (failed) {\n this.invalidPinAttempts++;\n if (this.invalidPinAttempts >= 5) {\n this.messagingService.send('logout');\n return;\n }\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidPin'));\n }\n } else {\n const key = await this.cryptoService.makeKey(this.masterPassword, this.email, kdf, kdfIterations);\n const keyHash = await this.cryptoService.hashPassword(this.masterPassword, key);\n\n let passwordValid = false;\n\n if (keyHash != null) {\n const storedKeyHash = await this.cryptoService.getKeyHash();\n if (storedKeyHash != null) {\n passwordValid = storedKeyHash === keyHash;\n } else {\n const request = new PasswordVerificationRequest();\n request.masterPasswordHash = keyHash;\n try {\n this.formPromise = this.apiService.postAccountVerifyPassword(request);\n await this.formPromise;\n passwordValid = true;\n await this.cryptoService.setKeyHash(keyHash);\n } catch { }\n }\n }\n\n if (passwordValid) {\n if (this.pinSet[0]) {\n const protectedPin = await this.storageService.get(ConstantsService.protectedPin);\n const encKey = await this.cryptoService.getEncKey(key);\n const decPin = await this.cryptoService.decryptToUtf8(new CipherString(protectedPin), encKey);\n const pinKey = await this.cryptoService.makePinKey(decPin, this.email, kdf, kdfIterations);\n this.vaultTimeoutService.pinProtectedKey = await this.cryptoService.encrypt(key.key, pinKey);\n }\n this.setKeyAndContinue(key);\n } else {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidMasterPassword'));\n }\n }\n }\n\n async logOut() {\n const confirmed = await this.platformUtilsService.showDialog(this.i18nService.t('logOutConfirmation'),\n this.i18nService.t('logOut'), this.i18nService.t('logOut'), this.i18nService.t('cancel'));\n if (confirmed) {\n this.messagingService.send('logout');\n }\n }\n\n async unlockBiometric() {\n if (!this.biometricLock) {\n return;\n }\n const success = await this.platformUtilsService.authenticateBiometric();\n\n if (success) {\n await this.doContinue();\n }\n }\n\n togglePassword() {\n this.platformUtilsService.eventTrack('Toggled Master Password on Unlock');\n this.showPassword = !this.showPassword;\n document.getElementById(this.pinLock ? 'pin' : 'masterPassword').focus();\n }\n\n private async setKeyAndContinue(key: SymmetricCryptoKey) {\n await this.cryptoService.setKey(key);\n this.doContinue();\n }\n\n private async doContinue() {\n this.vaultTimeoutService.biometricLocked = false;\n const disableFavicon = await this.storageService.get(ConstantsService.disableFaviconKey);\n await this.stateService.save(ConstantsService.disableFaviconKey, !!disableFavicon);\n this.messagingService.send('unlocked');\n if (this.onSuccessfulSubmit != null) {\n this.onSuccessfulSubmit();\n } else if (this.router != null) {\n this.router.navigate([this.successRoute]);\n }\n }\n}\n","import {\n Directive,\n Input,\n OnInit,\n} from '@angular/core';\n\nimport { Router } from '@angular/router';\n\nimport { AuthResult } from '../../models/domain/authResult';\n\nimport { AuthService } from '../../abstractions/auth.service';\nimport { CryptoFunctionService } from '../../abstractions/cryptoFunction.service';\nimport { EnvironmentService } from '../../abstractions/environment.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PasswordGenerationService } from '../../abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { StateService } from '../../abstractions/state.service';\nimport { StorageService } from '../../abstractions/storage.service';\n\nimport { ConstantsService } from '../../services/constants.service';\n\nimport { Utils } from '../../misc/utils';\n\nconst Keys = {\n rememberedEmail: 'rememberedEmail',\n rememberEmail: 'rememberEmail',\n};\n\n@Directive()\nexport class LoginComponent implements OnInit {\n @Input() email: string = '';\n @Input() rememberEmail = true;\n\n masterPassword: string = '';\n showPassword: boolean = false;\n formPromise: Promise;\n onSuccessfulLogin: () => Promise;\n onSuccessfulLoginNavigate: () => Promise;\n onSuccessfulLoginTwoFactorNavigate: () => Promise;\n\n protected twoFactorRoute = '2fa';\n protected successRoute = 'vault';\n\n constructor(protected authService: AuthService, protected router: Router,\n protected platformUtilsService: PlatformUtilsService, protected i18nService: I18nService,\n protected stateService: StateService, protected environmentService: EnvironmentService,\n protected passwordGenerationService: PasswordGenerationService,\n protected cryptoFunctionService: CryptoFunctionService, private storageService: StorageService) { }\n\n async ngOnInit() {\n if (this.email == null || this.email === '') {\n this.email = await this.storageService.get(Keys.rememberedEmail);\n if (this.email == null) {\n this.email = '';\n }\n }\n this.rememberEmail = await this.storageService.get(Keys.rememberEmail);\n if (this.rememberEmail == null) {\n this.rememberEmail = true;\n }\n if (Utils.isBrowser) {\n document.getElementById(this.email == null || this.email === '' ? 'email' : 'masterPassword').focus();\n }\n }\n\n async submit() {\n if (this.email == null || this.email === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('emailRequired'));\n return;\n }\n if (this.email.indexOf('@') === -1) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidEmail'));\n return;\n }\n if (this.masterPassword == null || this.masterPassword === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n\n try {\n this.formPromise = this.authService.logIn(this.email, this.masterPassword);\n const response = await this.formPromise;\n await this.storageService.save(Keys.rememberEmail, this.rememberEmail);\n if (this.rememberEmail) {\n await this.storageService.save(Keys.rememberedEmail, this.email);\n } else {\n await this.storageService.remove(Keys.rememberedEmail);\n }\n if (response.twoFactor) {\n this.platformUtilsService.eventTrack('Logged In To Two-step');\n if (this.onSuccessfulLoginTwoFactorNavigate != null) {\n this.onSuccessfulLoginTwoFactorNavigate();\n } else {\n this.router.navigate([this.twoFactorRoute]);\n }\n } else {\n const disableFavicon = await this.storageService.get(ConstantsService.disableFaviconKey);\n await this.stateService.save(ConstantsService.disableFaviconKey, !!disableFavicon);\n if (this.onSuccessfulLogin != null) {\n this.onSuccessfulLogin();\n }\n this.platformUtilsService.eventTrack('Logged In');\n if (this.onSuccessfulLoginNavigate != null) {\n this.onSuccessfulLoginNavigate();\n } else {\n this.router.navigate([this.successRoute]);\n }\n }\n } catch { }\n }\n\n togglePassword() {\n this.platformUtilsService.eventTrack('Toggled Master Password on Login');\n this.showPassword = !this.showPassword;\n document.getElementById('masterPassword').focus();\n }\n\n async launchSsoBrowser(clientId: string, ssoRedirectUri: string) {\n // Generate necessary sso params\n const passwordOptions: any = {\n type: 'password',\n length: 64,\n uppercase: true,\n lowercase: true,\n numbers: true,\n special: false,\n };\n const state = await this.passwordGenerationService.generatePassword(passwordOptions);\n const ssoCodeVerifier = await this.passwordGenerationService.generatePassword(passwordOptions);\n const codeVerifierHash = await this.cryptoFunctionService.hash(ssoCodeVerifier, 'sha256');\n const codeChallenge = Utils.fromBufferToUrlB64(codeVerifierHash);\n\n // Save sso params\n await this.storageService.save(ConstantsService.ssoStateKey, state);\n await this.storageService.save(ConstantsService.ssoCodeVerifierKey, ssoCodeVerifier);\n\n // Build URI\n const webUrl = this.environmentService.getWebVaultUrl() == null ? 'https://vault.bitwarden.com' :\n this.environmentService.getWebVaultUrl();\n\n // Launch browser\n this.platformUtilsService.launchUri(webUrl + '/#/sso?clientId=' + clientId +\n '&redirectUri=' + encodeURIComponent(ssoRedirectUri) +\n '&state=' + state + '&codeChallenge=' + codeChallenge);\n }\n}\n","export class DeleteRecoverRequest {\n email: string;\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class TwoFactorRecoveryRequest extends PasswordVerificationRequest {\n recoveryCode: string;\n email: string;\n}\n","import { Router } from '@angular/router';\n\nimport { KeysRequest } from '../../models/request/keysRequest';\nimport { ReferenceEventRequest } from '../../models/request/referenceEventRequest';\nimport { RegisterRequest } from '../../models/request/registerRequest';\n\nimport { ApiService } from '../../abstractions/api.service';\nimport { AuthService } from '../../abstractions/auth.service';\nimport { CryptoService } from '../../abstractions/crypto.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PasswordGenerationService } from '../../abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { StateService } from '../../abstractions/state.service';\n\nimport { KdfType } from '../../enums/kdfType';\n\nexport class RegisterComponent {\n name: string = '';\n email: string = '';\n masterPassword: string = '';\n confirmMasterPassword: string = '';\n hint: string = '';\n showPassword: boolean = false;\n formPromise: Promise;\n masterPasswordScore: number;\n referenceData: ReferenceEventRequest;\n showTerms = true;\n acceptPolicies: boolean = false;\n\n protected successRoute = 'login';\n private masterPasswordStrengthTimeout: any;\n\n constructor(protected authService: AuthService, protected router: Router,\n protected i18nService: I18nService, protected cryptoService: CryptoService,\n protected apiService: ApiService, protected stateService: StateService,\n protected platformUtilsService: PlatformUtilsService,\n protected passwordGenerationService: PasswordGenerationService) {\n this.showTerms = !platformUtilsService.isSelfHost();\n }\n\n get masterPasswordScoreWidth() {\n return this.masterPasswordScore == null ? 0 : (this.masterPasswordScore + 1) * 20;\n }\n\n get masterPasswordScoreColor() {\n switch (this.masterPasswordScore) {\n case 4:\n return 'success';\n case 3:\n return 'primary';\n case 2:\n return 'warning';\n default:\n return 'danger';\n }\n }\n\n get masterPasswordScoreText() {\n switch (this.masterPasswordScore) {\n case 4:\n return this.i18nService.t('strong');\n case 3:\n return this.i18nService.t('good');\n case 2:\n return this.i18nService.t('weak');\n default:\n return this.masterPasswordScore != null ? this.i18nService.t('weak') : null;\n }\n }\n\n async submit() {\n if (!this.acceptPolicies && this.showTerms) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('acceptPoliciesError'));\n return;\n }\n\n if (this.email == null || this.email === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('emailRequired'));\n return;\n }\n if (this.email.indexOf('@') === -1) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidEmail'));\n return;\n }\n if (this.masterPassword == null || this.masterPassword === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassRequired'));\n return;\n }\n if (this.masterPassword.length < 8) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassLength'));\n return;\n }\n if (this.masterPassword !== this.confirmMasterPassword) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('masterPassDoesntMatch'));\n return;\n }\n\n const strengthResult = this.passwordGenerationService.passwordStrength(this.masterPassword,\n this.getPasswordStrengthUserInput());\n if (strengthResult != null && strengthResult.score < 3) {\n const result = await this.platformUtilsService.showDialog(this.i18nService.t('weakMasterPasswordDesc'),\n this.i18nService.t('weakMasterPassword'), this.i18nService.t('yes'), this.i18nService.t('no'),\n 'warning');\n if (!result) {\n return;\n }\n }\n\n if (this.hint === this.masterPassword) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'), this.i18nService.t('hintEqualsPassword'));\n return;\n }\n\n this.name = this.name === '' ? null : this.name;\n this.email = this.email.trim().toLowerCase();\n const kdf = KdfType.PBKDF2_SHA256;\n const useLowerKdf = this.platformUtilsService.isIE();\n const kdfIterations = useLowerKdf ? 10000 : 100000;\n const key = await this.cryptoService.makeKey(this.masterPassword, this.email, kdf, kdfIterations);\n const encKey = await this.cryptoService.makeEncKey(key);\n const hashedPassword = await this.cryptoService.hashPassword(this.masterPassword, key);\n const keys = await this.cryptoService.makeKeyPair(encKey[0]);\n const request = new RegisterRequest(this.email, this.name, hashedPassword,\n this.hint, encKey[1].encryptedString, kdf, kdfIterations, this.referenceData);\n request.keys = new KeysRequest(keys[0], keys[1].encryptedString);\n const orgInvite = await this.stateService.get('orgInvitation');\n if (orgInvite != null && orgInvite.token != null && orgInvite.organizationUserId != null) {\n request.token = orgInvite.token;\n request.organizationUserId = orgInvite.organizationUserId;\n }\n\n try {\n this.formPromise = this.apiService.postRegister(request);\n await this.formPromise;\n this.platformUtilsService.eventTrack('Registered');\n this.platformUtilsService.showToast('success', null, this.i18nService.t('newAccountCreated'));\n this.router.navigate([this.successRoute], { queryParams: { email: this.email } });\n } catch { }\n }\n\n togglePassword(confirmField: boolean) {\n this.platformUtilsService.eventTrack('Toggled Master Password on Register');\n this.showPassword = !this.showPassword;\n document.getElementById(confirmField ? 'masterPasswordRetype' : 'masterPassword').focus();\n }\n\n updatePasswordStrength() {\n if (this.masterPasswordStrengthTimeout != null) {\n clearTimeout(this.masterPasswordStrengthTimeout);\n }\n this.masterPasswordStrengthTimeout = setTimeout(() => {\n const strengthResult = this.passwordGenerationService.passwordStrength(this.masterPassword,\n this.getPasswordStrengthUserInput());\n this.masterPasswordScore = strengthResult == null ? null : strengthResult.score;\n }, 300);\n }\n\n private getPasswordStrengthUserInput() {\n let userInput: string[] = [];\n const atPosition = this.email.indexOf('@');\n if (atPosition > -1) {\n userInput = userInput.concat(this.email.substr(0, atPosition).trim().toLowerCase().split(/[^A-Za-z0-9]/));\n }\n if (this.name != null && this.name !== '') {\n userInput = userInput.concat(this.name.trim().toLowerCase().split(' '));\n }\n return userInput;\n }\n}\n","import { KeysRequest } from './keysRequest';\nimport { ReferenceEventRequest } from './referenceEventRequest';\n\nimport { KdfType } from '../../enums/kdfType';\n\nexport class RegisterRequest {\n name: string;\n email: string;\n masterPasswordHash: string;\n masterPasswordHint: string;\n key: string;\n keys: KeysRequest;\n token: string;\n organizationUserId: string;\n kdf: KdfType;\n kdfIterations: number;\n referenceData: ReferenceEventRequest;\n\n constructor(email: string, name: string, masterPasswordHash: string, masterPasswordHint: string, key: string,\n kdf: KdfType, kdfIterations: number, referenceData: ReferenceEventRequest) {\n this.name = name;\n this.email = email;\n this.masterPasswordHash = masterPasswordHash;\n this.masterPasswordHint = masterPasswordHint ? masterPasswordHint : null;\n this.key = key;\n this.kdf = kdf;\n this.kdfIterations = kdfIterations;\n this.referenceData = referenceData;\n }\n}\n","export class ReferenceEventRequest {\n id: string;\n layout: string;\n flow: string;\n}\n","import {\n ActivatedRoute,\n Router\n} from '@angular/router';\n\nimport { ApiService } from '../../abstractions/api.service';\nimport { CryptoService } from '../../abstractions/crypto.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { MessagingService } from '../../abstractions/messaging.service';\nimport { PasswordGenerationService } from '../../abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { PolicyService } from '../../abstractions/policy.service';\nimport { SyncService } from '../../abstractions/sync.service';\nimport { UserService } from '../../abstractions/user.service';\n\nimport { CipherString } from '../../models/domain/cipherString';\nimport { SymmetricCryptoKey } from '../../models/domain/symmetricCryptoKey';\n\nimport { KeysRequest } from '../../models/request/keysRequest';\nimport { SetPasswordRequest } from '../../models/request/setPasswordRequest';\n\nimport { ChangePasswordComponent as BaseChangePasswordComponent } from './change-password.component';\n\nimport { KdfType } from '../../enums/kdfType';\n\nexport class SetPasswordComponent extends BaseChangePasswordComponent {\n syncLoading: boolean = true;\n showPassword: boolean = false;\n hint: string = '';\n identifier: string = null;\n\n onSuccessfulChangePassword: () => Promise;\n successRoute = 'vault';\n\n constructor(i18nService: I18nService, cryptoService: CryptoService, messagingService: MessagingService,\n userService: UserService, passwordGenerationService: PasswordGenerationService,\n platformUtilsService: PlatformUtilsService, policyService: PolicyService, private router: Router,\n private apiService: ApiService, private syncService: SyncService, private route: ActivatedRoute) {\n super(i18nService, cryptoService, messagingService, userService, passwordGenerationService,\n platformUtilsService, policyService);\n }\n\n async ngOnInit() {\n await this.syncService.fullSync(true);\n this.syncLoading = false;\n\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n if (qParams.identifier != null) {\n this.identifier = qParams.identifier;\n }\n\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n\n super.ngOnInit();\n }\n\n async setupSubmitActions() {\n this.kdf = KdfType.PBKDF2_SHA256;\n const useLowerKdf = this.platformUtilsService.isIE();\n this.kdfIterations = useLowerKdf ? 10000 : 100000;\n return true;\n }\n\n async performSubmitActions(masterPasswordHash: string, key: SymmetricCryptoKey,\n encKey: [SymmetricCryptoKey, CipherString]) {\n const request = new SetPasswordRequest();\n request.masterPasswordHash = masterPasswordHash;\n request.key = encKey[1].encryptedString;\n request.masterPasswordHint = this.hint;\n request.kdf = this.kdf;\n request.kdfIterations = this.kdfIterations;\n request.orgIdentifier = this.identifier;\n\n const keys = await this.cryptoService.makeKeyPair(encKey[0]);\n request.keys = new KeysRequest(keys[0], keys[1].encryptedString);\n\n try {\n this.formPromise = this.apiService.setPassword(request);\n await this.formPromise;\n\n await this.userService.setInformation(await this.userService.getUserId(), await this.userService.getEmail(),\n this.kdf, this.kdfIterations);\n await this.cryptoService.setKey(key);\n await this.cryptoService.setKeyHash(masterPasswordHash);\n await this.cryptoService.setEncKey(encKey[1].encryptedString);\n await this.cryptoService.setEncPrivateKey(keys[1].encryptedString);\n\n if (this.onSuccessfulChangePassword != null) {\n this.onSuccessfulChangePassword();\n } else {\n this.router.navigate([this.successRoute]);\n }\n } catch {\n this.platformUtilsService.showToast('error', null, this.i18nService.t('errorOccurred'));\n }\n }\n\n togglePassword(confirmField: boolean) {\n this.platformUtilsService.eventTrack('Toggled Master Password on Set Password');\n this.showPassword = !this.showPassword;\n document.getElementById(confirmField ? 'masterPasswordRetype' : 'masterPassword').focus();\n }\n}\n","import { KeysRequest } from './keysRequest';\n\nimport { KdfType } from '../../enums/kdfType';\n\nexport class SetPasswordRequest {\n masterPasswordHash: string;\n key: string;\n masterPasswordHint: string;\n keys: KeysRequest;\n kdf: KdfType;\n kdfIterations: number;\n orgIdentifier: string;\n}\n","import {\n Directive,\n EventEmitter,\n OnInit,\n Output,\n} from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { TwoFactorProviderType } from '../../enums/twoFactorProviderType';\n\nimport { AuthService } from '../../abstractions/auth.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\n@Directive()\nexport class TwoFactorOptionsComponent implements OnInit {\n @Output() onProviderSelected = new EventEmitter();\n @Output() onRecoverSelected = new EventEmitter();\n\n providers: any[] = [];\n\n constructor(protected authService: AuthService, protected router: Router,\n protected i18nService: I18nService, protected platformUtilsService: PlatformUtilsService,\n protected win: Window) { }\n\n ngOnInit() {\n this.providers = this.authService.getSupportedTwoFactorProviders(this.win);\n }\n\n choose(p: any) {\n this.onProviderSelected.emit(p.type);\n }\n\n recover() {\n this.platformUtilsService.eventTrack('Selected Recover');\n this.platformUtilsService.launchUri('https://help.bitwarden.com/article/lost-two-step-device/');\n this.onRecoverSelected.emit();\n }\n}\n","import {\n Component,\n ComponentFactoryResolver,\n EventEmitter,\n OnDestroy,\n Output,\n Type,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { MessagingService } from '../../abstractions/messaging.service';\n\n@Component({\n selector: 'app-modal',\n template: ``,\n})\nexport class ModalComponent implements OnDestroy {\n @Output() onClose = new EventEmitter();\n @Output() onClosed = new EventEmitter();\n @Output() onShow = new EventEmitter();\n @Output() onShown = new EventEmitter();\n @ViewChild('container', { read: ViewContainerRef, static: true }) container: ViewContainerRef;\n parentContainer: ViewContainerRef = null;\n fade: boolean = true;\n\n constructor(protected componentFactoryResolver: ComponentFactoryResolver,\n protected messagingService: MessagingService) { }\n\n ngOnDestroy() {\n document.body.classList.remove('modal-open');\n document.body.removeChild(document.querySelector('.modal-backdrop'));\n }\n\n show(type: Type, parentContainer: ViewContainerRef, fade: boolean = true,\n setComponentParameters: (component: T) => void = null): T {\n this.onShow.emit();\n this.messagingService.send('modalShow');\n this.parentContainer = parentContainer;\n this.fade = fade;\n\n document.body.classList.add('modal-open');\n const backdrop = document.createElement('div');\n backdrop.className = 'modal-backdrop' + (this.fade ? ' fade' : '');\n document.body.appendChild(backdrop);\n\n const factory = this.componentFactoryResolver.resolveComponentFactory(type);\n const componentRef = this.container.createComponent(factory);\n if (setComponentParameters != null) {\n setComponentParameters(componentRef.instance);\n }\n\n document.querySelector('.modal-dialog').addEventListener('click', (e: Event) => {\n e.stopPropagation();\n });\n\n const modals = Array.from(document.querySelectorAll('.modal, .modal *[data-dismiss=\"modal\"]'));\n for (const closeElement of modals) {\n closeElement.addEventListener('click', event => {\n this.close();\n });\n }\n\n this.onShown.emit();\n this.messagingService.send('modalShown');\n return componentRef.instance;\n }\n\n close() {\n this.onClose.emit();\n this.messagingService.send('modalClose');\n this.onClosed.emit();\n this.messagingService.send('modalClosed');\n if (this.parentContainer != null) {\n this.parentContainer.clear();\n }\n }\n}\n","import {\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport {\n ActivatedRoute,\n Router,\n} from '@angular/router';\n\nimport { TwoFactorProviderType } from '../../enums/twoFactorProviderType';\n\nimport { TwoFactorEmailRequest } from '../../models/request/twoFactorEmailRequest';\n\nimport { AuthResult } from '../../models/domain';\n\nimport { ApiService } from '../../abstractions/api.service';\nimport { AuthService } from '../../abstractions/auth.service';\nimport { EnvironmentService } from '../../abstractions/environment.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { StateService } from '../../abstractions/state.service';\nimport { StorageService } from '../../abstractions/storage.service';\n\nimport { TwoFactorProviders } from '../../services/auth.service';\nimport { ConstantsService } from '../../services/constants.service';\n\nimport * as DuoWebSDK from 'duo_web_sdk';\nimport { U2f } from '../../misc/u2f';\n\nexport class TwoFactorComponent implements OnInit, OnDestroy {\n token: string = '';\n remember: boolean = false;\n u2fReady: boolean = false;\n initU2f: boolean = true;\n providers = TwoFactorProviders;\n providerType = TwoFactorProviderType;\n selectedProviderType: TwoFactorProviderType = TwoFactorProviderType.Authenticator;\n u2fSupported: boolean = false;\n u2f: U2f = null;\n title: string = '';\n twoFactorEmail: string = null;\n formPromise: Promise;\n emailPromise: Promise;\n identifier: string = null;\n onSuccessfulLogin: () => Promise;\n onSuccessfulLoginNavigate: () => Promise;\n\n protected loginRoute = 'login';\n protected successRoute = 'vault';\n\n constructor(protected authService: AuthService, protected router: Router,\n protected i18nService: I18nService, protected apiService: ApiService,\n protected platformUtilsService: PlatformUtilsService, protected win: Window,\n protected environmentService: EnvironmentService, protected stateService: StateService,\n protected storageService: StorageService, protected route: ActivatedRoute) {\n this.u2fSupported = this.platformUtilsService.supportsU2f(win);\n }\n\n async ngOnInit() {\n if (!this.authing || this.authService.twoFactorProvidersData == null) {\n this.router.navigate([this.loginRoute]);\n return;\n }\n\n const queryParamsSub = this.route.queryParams.subscribe(async qParams => {\n if (qParams.identifier != null) {\n this.identifier = qParams.identifier;\n }\n\n if (queryParamsSub != null) {\n queryParamsSub.unsubscribe();\n }\n });\n\n if (this.needsLock) {\n this.successRoute = 'lock';\n }\n\n if (this.initU2f && this.win != null && this.u2fSupported) {\n let customWebVaultUrl: string = null;\n if (this.environmentService.baseUrl != null) {\n customWebVaultUrl = this.environmentService.baseUrl;\n } else if (this.environmentService.webVaultUrl != null) {\n customWebVaultUrl = this.environmentService.webVaultUrl;\n }\n\n this.u2f = new U2f(this.win, customWebVaultUrl, (token: string) => {\n this.token = token;\n this.submit();\n }, (error: string) => {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'), error);\n }, (info: string) => {\n if (info === 'ready') {\n this.u2fReady = true;\n }\n });\n }\n\n this.selectedProviderType = this.authService.getDefaultTwoFactorProvider(this.u2fSupported);\n await this.init();\n }\n\n ngOnDestroy(): void {\n this.cleanupU2f();\n this.u2f = null;\n }\n\n async init() {\n if (this.selectedProviderType == null) {\n this.title = this.i18nService.t('loginUnavailable');\n return;\n }\n\n this.cleanupU2f();\n this.title = (TwoFactorProviders as any)[this.selectedProviderType].name;\n const providerData = this.authService.twoFactorProvidersData.get(this.selectedProviderType);\n switch (this.selectedProviderType) {\n case TwoFactorProviderType.U2f:\n if (!this.u2fSupported || this.u2f == null) {\n break;\n }\n\n if (providerData.Challenge != null) {\n setTimeout(() => {\n this.u2f.init(JSON.parse(providerData.Challenge));\n }, 500);\n } else {\n // TODO: Deprecated. Remove in future version.\n const challenges = JSON.parse(providerData.Challenges);\n if (challenges != null && challenges.length > 0) {\n this.u2f.init({\n appId: challenges[0].appId,\n challenge: challenges[0].challenge,\n keys: challenges.map((c: any) => {\n return {\n version: c.version,\n keyHandle: c.keyHandle,\n };\n }),\n });\n }\n }\n break;\n case TwoFactorProviderType.Duo:\n case TwoFactorProviderType.OrganizationDuo:\n setTimeout(() => {\n DuoWebSDK.init({\n iframe: undefined,\n host: providerData.Host,\n sig_request: providerData.Signature,\n submit_callback: async (f: HTMLFormElement) => {\n const sig = f.querySelector('input[name=\"sig_response\"]') as HTMLInputElement;\n if (sig != null) {\n this.token = sig.value;\n await this.submit();\n }\n },\n });\n }, 0);\n break;\n case TwoFactorProviderType.Email:\n this.twoFactorEmail = providerData.Email;\n if (this.authService.twoFactorProvidersData.size > 1) {\n await this.sendEmail(false);\n }\n break;\n default:\n break;\n }\n }\n\n async submit() {\n if (this.token == null || this.token === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('verificationCodeRequired'));\n return;\n }\n\n if (this.selectedProviderType === TwoFactorProviderType.U2f) {\n if (this.u2f != null) {\n this.u2f.stop();\n } else {\n return;\n }\n } else if (this.selectedProviderType === TwoFactorProviderType.Email ||\n this.selectedProviderType === TwoFactorProviderType.Authenticator) {\n this.token = this.token.replace(' ', '').trim();\n }\n\n try {\n this.formPromise = this.authService.logInTwoFactor(this.selectedProviderType, this.token, this.remember);\n const response: AuthResult = await this.formPromise;\n const disableFavicon = await this.storageService.get(ConstantsService.disableFaviconKey);\n await this.stateService.save(ConstantsService.disableFaviconKey, !!disableFavicon);\n if (this.onSuccessfulLogin != null) {\n this.onSuccessfulLogin();\n }\n this.platformUtilsService.eventTrack('Logged In From Two-step');\n if (response.resetMasterPassword) {\n this.successRoute = 'set-password';\n }\n if (this.onSuccessfulLoginNavigate != null) {\n this.onSuccessfulLoginNavigate();\n } else {\n this.router.navigate([this.successRoute], {\n queryParams: {\n identifier: this.identifier,\n },\n });\n }\n } catch {\n if (this.selectedProviderType === TwoFactorProviderType.U2f && this.u2f != null) {\n this.u2f.start();\n }\n }\n }\n\n async sendEmail(doToast: boolean) {\n if (this.selectedProviderType !== TwoFactorProviderType.Email) {\n return;\n }\n\n if (this.emailPromise != null) {\n return;\n }\n\n try {\n const request = new TwoFactorEmailRequest(this.authService.email, this.authService.masterPasswordHash);\n this.emailPromise = this.apiService.postTwoFactorEmail(request);\n await this.emailPromise;\n if (doToast) {\n this.platformUtilsService.showToast('success', null,\n this.i18nService.t('verificationCodeEmailSent', this.twoFactorEmail));\n }\n } catch { }\n\n this.emailPromise = null;\n }\n\n private cleanupU2f() {\n if (this.u2f != null) {\n this.u2f.stop();\n this.u2f.cleanup();\n }\n }\n\n get authing(): boolean {\n return this.authService.authingWithPassword() || this.authService.authingWithSso() || this.authService.authingWithApiKey();\n }\n\n get needsLock(): boolean {\n return this.authService.authingWithSso() || this.authService.authingWithApiKey();\n }\n}\n","import { DeviceType } from '../../enums/deviceType';\n\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\nexport class DeviceRequest {\n type: DeviceType;\n name: string;\n identifier: string;\n pushToken?: string;\n\n constructor(appId: string, platformUtilsService: PlatformUtilsService) {\n this.type = platformUtilsService.getDevice();\n this.name = platformUtilsService.getDeviceString();\n this.identifier = appId;\n this.pushToken = null;\n }\n}\n","export class PreloginRequest {\n email: string;\n\n constructor(email: string) {\n this.email = email;\n }\n}\n","import { TwoFactorProviderType } from '../../enums/twoFactorProviderType';\n\nimport { DeviceRequest } from './deviceRequest';\n\nexport class TokenRequest {\n email: string;\n masterPasswordHash: string;\n code: string;\n codeVerifier: string;\n redirectUri: string;\n clientId: string;\n clientSecret: string;\n token: string;\n provider: TwoFactorProviderType;\n remember: boolean;\n device?: DeviceRequest;\n\n constructor(credentials: string[], codes: string[], clientIdClientSecret: string[], provider: TwoFactorProviderType,\n token: string, remember: boolean, device?: DeviceRequest) {\n if (credentials != null && credentials.length > 1) {\n this.email = credentials[0];\n this.masterPasswordHash = credentials[1];\n } else if (codes != null && codes.length > 2) {\n this.code = codes[0];\n this.codeVerifier = codes[1];\n this.redirectUri = codes[2];\n } else if (clientIdClientSecret != null && clientIdClientSecret.length > 1) {\n this.clientId = clientIdClientSecret[0];\n this.clientSecret = clientIdClientSecret[1];\n }\n this.token = token;\n this.provider = provider;\n this.remember = remember;\n this.device = device != null ? device : null;\n }\n\n toIdentityToken(clientId: string) {\n const obj: any = {\n scope: 'api offline_access',\n client_id: clientId,\n };\n\n if (this.clientSecret != null) {\n obj.scope = 'api';\n obj.grant_type = 'client_credentials';\n obj.client_secret = this.clientSecret;\n } else if (this.masterPasswordHash != null && this.email != null) {\n obj.grant_type = 'password';\n obj.username = this.email;\n obj.password = this.masterPasswordHash;\n } else if (this.code != null && this.codeVerifier != null && this.redirectUri != null) {\n obj.grant_type = 'authorization_code';\n obj.code = this.code;\n obj.code_verifier = this.codeVerifier;\n obj.redirect_uri = this.redirectUri;\n } else {\n throw new Error('must provide credentials or codes');\n }\n\n if (this.device) {\n obj.deviceType = this.device.type;\n obj.deviceIdentifier = this.device.identifier;\n obj.deviceName = this.device.name;\n // no push tokens for browser apps yet\n // obj.devicePushToken = this.device.pushToken;\n }\n\n if (this.token && this.provider != null) {\n obj.twoFactorToken = this.token;\n obj.twoFactorProvider = this.provider;\n obj.twoFactorRemember = this.remember ? '1' : '0';\n }\n\n return obj;\n }\n}\n","export class U2f {\n private iframe: HTMLIFrameElement = null;\n private connectorLink: HTMLAnchorElement;\n private parseFunction = this.parseMessage.bind(this);\n\n constructor(private win: Window, private webVaultUrl: string, private successCallback: Function,\n private errorCallback: Function, private infoCallback: Function) {\n this.connectorLink = win.document.createElement('a');\n this.webVaultUrl = webVaultUrl != null && webVaultUrl !== '' ? webVaultUrl : 'https://vault.bitwarden.com';\n }\n\n init(data: any): void {\n this.connectorLink.href = this.webVaultUrl + '/u2f-connector.html' +\n '?data=' + this.base64Encode(JSON.stringify(data)) +\n '&parent=' + encodeURIComponent(this.win.document.location.href) +\n '&v=1';\n\n this.iframe = this.win.document.getElementById('u2f_iframe') as HTMLIFrameElement;\n this.iframe.src = this.connectorLink.href;\n\n this.win.addEventListener('message', this.parseFunction, false);\n }\n\n stop() {\n this.sendMessage('stop');\n }\n\n start() {\n this.sendMessage('start');\n }\n\n sendMessage(message: any) {\n if (!this.iframe || !this.iframe.src || !this.iframe.contentWindow) {\n return;\n }\n\n this.iframe.contentWindow.postMessage(message, this.iframe.src);\n }\n\n base64Encode(str: string): string {\n return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, (match, p1) => {\n return String.fromCharCode(('0x' + p1) as any);\n }));\n }\n\n cleanup() {\n this.win.removeEventListener('message', this.parseFunction, false);\n }\n\n private parseMessage(event: MessageEvent) {\n if (!this.validMessage(event)) {\n return;\n }\n\n const parts: string[] = event.data.split('|');\n if (parts[0] === 'success' && this.successCallback) {\n this.successCallback(parts[1]);\n } else if (parts[0] === 'error' && this.errorCallback) {\n this.errorCallback(parts[1]);\n } else if (parts[0] === 'info' && this.infoCallback) {\n this.infoCallback(parts[1]);\n }\n }\n\n private validMessage(event: MessageEvent) {\n if (event.origin == null || event.origin === '' || event.origin !== (this.connectorLink as any).origin ||\n event.data == null || typeof (event.data) !== 'string') {\n return false;\n }\n\n return event.data.indexOf('success|') === 0 || event.data.indexOf('error|') === 0 ||\n event.data.indexOf('info|') === 0;\n }\n}\n","export class VerifyEmailRequest {\n userId: string;\n token: string;\n\n constructor(userId: string, token: string) {\n this.userId = userId;\n this.token = token;\n }\n}\n","export class VerifyDeleteRecoverRequest {\n userId: string;\n token: string;\n\n constructor(userId: string, token: string) {\n this.userId = userId;\n this.token = token;\n }\n}\n","import { SelectionReadOnlyRequest } from './selectionReadOnlyRequest';\n\nexport class GroupRequest {\n name: string;\n accessAll: boolean;\n externalId: string;\n collections: SelectionReadOnlyRequest[] = [];\n}\n","import { SelectionReadOnlyRequest } from './selectionReadOnlyRequest';\n\nimport { OrganizationUserType } from '../../enums/organizationUserType';\nimport { PermissionsApi } from '../api/permissionsApi';\n\nexport class OrganizationUserInviteRequest {\n emails: string[] = [];\n type: OrganizationUserType;\n accessAll: boolean;\n collections: SelectionReadOnlyRequest[] = [];\n permissions: PermissionsApi;\n}\n","import { SelectionReadOnlyRequest } from './selectionReadOnlyRequest';\n\nimport { OrganizationUserType } from '../../enums/organizationUserType';\nimport { PermissionsApi } from '../api/permissionsApi';\n\nexport class OrganizationUserUpdateRequest {\n type: OrganizationUserType;\n accessAll: boolean;\n collections: SelectionReadOnlyRequest[] = [];\n permissions: PermissionsApi;\n}\n","export class OrganizationUserUpdateGroupsRequest {\n groupIds: string[] = [];\n}\n","export abstract class AppIdService {\n getAppId: () => Promise;\n getAnonymousAppId: () => Promise;\n}\n","import { LogLevelType } from '../enums/logLevelType';\n\nexport abstract class LogService {\n debug: (message: string) => void;\n info: (message: string) => void;\n warning: (message: string) => void;\n error: (message: string) => void;\n write: (level: LogLevelType, message: string) => void;\n time: (label: string) => void;\n timeEnd: (label: string) => [number, number];\n}\n","import { PolicyType } from '../../enums/policyType';\n\nexport class PolicyRequest {\n type: PolicyType;\n enabled: boolean;\n data: any;\n}\n","export class OrganizationUpdateRequest {\n name: string;\n identifier: string;\n businessName: string;\n billingEmail: string;\n}\n","export enum TransactionType {\n Charge = 0,\n Credit = 1,\n PromotionalCredit = 2,\n ReferralCredit = 3,\n Refund = 4,\n}\n","export class VerifyBankRequest {\n amount1: number;\n amount2: number;\n}\n","export class BitPayInvoiceRequest {\n userId: string;\n organizationId: string;\n credit: boolean;\n amount: number;\n returnUrl: string;\n name: string;\n email: string;\n}\n","import { PaymentMethodType } from '../../enums/paymentMethodType';\nimport { OrganizationTaxInfoUpdateRequest } from '../request/organizationTaxInfoUpdateRequest';\n\nexport class PaymentRequest extends OrganizationTaxInfoUpdateRequest {\n paymentMethodType: PaymentMethodType;\n paymentToken: string;\n}\n","import { PaymentMethodType } from '../../enums/paymentMethodType';\nimport { PlanType } from '../../enums/planType';\n\nexport class OrganizationCreateRequest {\n name: string;\n businessName: string;\n billingEmail: string;\n planType: PlanType;\n key: string;\n paymentMethodType: PaymentMethodType;\n paymentToken: string;\n additionalSeats: number;\n additionalStorageGb: number;\n premiumAccessAddon: boolean;\n collectionName: string;\n taxIdNumber: string;\n billingAddressLine1: string;\n billingAddressLine2: string;\n billingAddressCity: string;\n billingAddressState: string;\n billingAddressPostalCode: string;\n billingAddressCountry: string;\n}\n","import { PlanType } from '../../enums/planType';\n\nexport class OrganizationUpgradeRequest {\n businessName: string;\n planType: PlanType;\n additionalSeats: number;\n additionalStorageGb: number;\n premiumAccessAddon: boolean;\n billingAddressCountry: string;\n billingAddressPostalCode: string;\n}\n","export class SeatRequest {\n seatAdjustment: number;\n}\n","export class StorageRequest {\n storageGbAdjustment: number;\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class UpdateTwoFactorDuoRequest extends PasswordVerificationRequest {\n integrationKey: string;\n secretKey: string;\n host: string;\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nimport { TwoFactorProviderType } from '../../enums/twoFactorProviderType';\n\nexport class TwoFactorProviderRequest extends PasswordVerificationRequest {\n type: TwoFactorProviderType;\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class UpdateTwoFactorAuthenticatorRequest extends PasswordVerificationRequest {\n token: string;\n key: string;\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class UpdateTwoFactorEmailRequest extends PasswordVerificationRequest {\n token: string;\n email: string;\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class UpdateTwoFactorU2fDeleteRequest extends PasswordVerificationRequest {\n id: number;\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class UpdateTwoFactorU2fRequest extends PasswordVerificationRequest {\n deviceResponse: string;\n name: string;\n id: number;\n}\n","import { PasswordVerificationRequest } from './passwordVerificationRequest';\n\nexport class UpdateTwoFactorYubioOtpRequest extends PasswordVerificationRequest {\n key1: string;\n key2: string;\n key3: string;\n key4: string;\n key5: string;\n nfc: boolean;\n}\n","import {\n Directive,\n EventEmitter,\n Output,\n} from '@angular/core';\n\nimport { CryptoService } from '../../abstractions/crypto.service';\nimport { EventService } from '../../abstractions/event.service';\nimport { ExportService } from '../../abstractions/export.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { EventType } from '../../enums/eventType';\n\n@Directive()\nexport class ExportComponent {\n @Output() onSaved = new EventEmitter();\n\n formPromise: Promise;\n masterPassword: string;\n format: 'json' | 'encrypted_json' | 'csv' = 'json';\n showPassword = false;\n\n constructor(protected cryptoService: CryptoService, protected i18nService: I18nService,\n protected platformUtilsService: PlatformUtilsService, protected exportService: ExportService,\n protected eventService: EventService, protected win: Window) { }\n\n get encryptedFormat() {\n return this.format === 'encrypted_json';\n }\n\n async submit() {\n if (this.masterPassword == null || this.masterPassword === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidMasterPassword'));\n return;\n }\n\n const acceptedWarning = await this.warningDialog();\n if (!acceptedWarning) {\n return;\n }\n\n const keyHash = await this.cryptoService.hashPassword(this.masterPassword, null);\n const storedKeyHash = await this.cryptoService.getKeyHash();\n if (storedKeyHash != null && keyHash != null && storedKeyHash === keyHash) {\n try {\n this.formPromise = this.getExportData();\n const data = await this.formPromise;\n this.platformUtilsService.eventTrack('Exported Data');\n this.downloadFile(data);\n this.saved();\n await this.collectEvent();\n } catch { }\n } else {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('invalidMasterPassword'));\n }\n }\n\n async warningDialog() {\n if (this.encryptedFormat) {\n return await this.platformUtilsService.showDialog(\n '

' + this.i18nService.t('encExportKeyWarningDesc') +\n '

' + this.i18nService.t('encExportAccountWarningDesc'),\n this.i18nService.t('confirmVaultExport'), this.i18nService.t('exportVault'),\n this.i18nService.t('cancel'), 'warning',\n true);\n } else {\n return await this.platformUtilsService.showDialog(\n this.i18nService.t('exportWarningDesc'),\n this.i18nService.t('confirmVaultExport'), this.i18nService.t('exportVault'),\n this.i18nService.t('cancel'), 'warning');\n }\n }\n\n togglePassword() {\n this.platformUtilsService.eventTrack('Toggled Master Password on Export');\n this.showPassword = !this.showPassword;\n document.getElementById('masterPassword').focus();\n }\n\n protected saved() {\n this.onSaved.emit();\n }\n\n protected getExportData() {\n return this.exportService.getExport(this.format);\n }\n\n protected getFileName(prefix?: string) {\n let extension = this.format;\n if (this.format === 'encrypted_json') {\n if (prefix == null) {\n prefix = 'encrypted';\n } else {\n prefix = 'encrypted_' + prefix;\n }\n extension = 'json';\n }\n return this.exportService.getFileName(prefix, extension);\n }\n\n protected async collectEvent(): Promise {\n await this.eventService.collect(EventType.User_ClientExportedVault);\n }\n\n private downloadFile(csv: string): void {\n const fileName = this.getFileName();\n this.platformUtilsService.saveFile(this.win, csv, { type: 'text/plain' }, fileName);\n }\n}\n","export class AttachmentRequest {\n fileName: string;\n key: string;\n}\n","import {\n CdkDragDrop,\n moveItemInArray,\n} from '@angular/cdk/drag-drop';\nimport {\n Directive,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { CipherType } from '../../enums/cipherType';\nimport { EventType } from '../../enums/eventType';\nimport { FieldType } from '../../enums/fieldType';\nimport { OrganizationUserStatusType } from '../../enums/organizationUserStatusType';\nimport { PolicyType } from '../../enums/policyType';\nimport { SecureNoteType } from '../../enums/secureNoteType';\nimport { UriMatchType } from '../../enums/uriMatchType';\n\nimport { AuditService } from '../../abstractions/audit.service';\nimport { CipherService } from '../../abstractions/cipher.service';\nimport { CollectionService } from '../../abstractions/collection.service';\nimport { EventService } from '../../abstractions/event.service';\nimport { FolderService } from '../../abstractions/folder.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { MessagingService } from '../../abstractions/messaging.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { PolicyService } from '../../abstractions/policy.service';\nimport { StateService } from '../../abstractions/state.service';\nimport { UserService } from '../../abstractions/user.service';\n\nimport { Cipher } from '../../models/domain/cipher';\n\nimport { CardView } from '../../models/view/cardView';\nimport { CipherView } from '../../models/view/cipherView';\nimport { CollectionView } from '../../models/view/collectionView';\nimport { FieldView } from '../../models/view/fieldView';\nimport { FolderView } from '../../models/view/folderView';\nimport { IdentityView } from '../../models/view/identityView';\nimport { LoginUriView } from '../../models/view/loginUriView';\nimport { LoginView } from '../../models/view/loginView';\nimport { SecureNoteView } from '../../models/view/secureNoteView';\n\nimport { Utils } from '../../misc/utils';\n\n@Directive()\nexport class AddEditComponent implements OnInit {\n @Input() cloneMode: boolean = false;\n @Input() folderId: string = null;\n @Input() cipherId: string;\n @Input() type: CipherType;\n @Input() collectionIds: string[];\n @Input() organizationId: string = null;\n @Output() onSavedCipher = new EventEmitter();\n @Output() onDeletedCipher = new EventEmitter();\n @Output() onRestoredCipher = new EventEmitter();\n @Output() onCancelled = new EventEmitter();\n @Output() onEditAttachments = new EventEmitter();\n @Output() onShareCipher = new EventEmitter();\n @Output() onEditCollections = new EventEmitter();\n @Output() onGeneratePassword = new EventEmitter();\n\n editMode: boolean = false;\n cipher: CipherView;\n folders: FolderView[];\n collections: CollectionView[] = [];\n title: string;\n formPromise: Promise;\n deletePromise: Promise;\n restorePromise: Promise;\n checkPasswordPromise: Promise;\n showPassword: boolean = false;\n showCardCode: boolean = false;\n cipherType = CipherType;\n fieldType = FieldType;\n addFieldType: FieldType = FieldType.Text;\n typeOptions: any[];\n cardBrandOptions: any[];\n cardExpMonthOptions: any[];\n identityTitleOptions: any[];\n addFieldTypeOptions: any[];\n uriMatchOptions: any[];\n ownershipOptions: any[] = [];\n currentDate = new Date();\n allowPersonal = true;\n\n protected writeableCollections: CollectionView[];\n private previousCipherId: string;\n\n constructor(protected cipherService: CipherService, protected folderService: FolderService,\n protected i18nService: I18nService, protected platformUtilsService: PlatformUtilsService,\n protected auditService: AuditService, protected stateService: StateService,\n protected userService: UserService, protected collectionService: CollectionService,\n protected messagingService: MessagingService, protected eventService: EventService,\n protected policyService: PolicyService) {\n this.typeOptions = [\n { name: i18nService.t('typeLogin'), value: CipherType.Login },\n { name: i18nService.t('typeCard'), value: CipherType.Card },\n { name: i18nService.t('typeIdentity'), value: CipherType.Identity },\n { name: i18nService.t('typeSecureNote'), value: CipherType.SecureNote },\n ];\n this.cardBrandOptions = [\n { name: '-- ' + i18nService.t('select') + ' --', value: null },\n { name: 'Visa', value: 'Visa' },\n { name: 'Mastercard', value: 'Mastercard' },\n { name: 'American Express', value: 'Amex' },\n { name: 'Discover', value: 'Discover' },\n { name: 'Diners Club', value: 'Diners Club' },\n { name: 'JCB', value: 'JCB' },\n { name: 'Maestro', value: 'Maestro' },\n { name: 'UnionPay', value: 'UnionPay' },\n { name: i18nService.t('other'), value: 'Other' },\n ];\n this.cardExpMonthOptions = [\n { name: '-- ' + i18nService.t('select') + ' --', value: null },\n { name: '01 - ' + i18nService.t('january'), value: '1' },\n { name: '02 - ' + i18nService.t('february'), value: '2' },\n { name: '03 - ' + i18nService.t('march'), value: '3' },\n { name: '04 - ' + i18nService.t('april'), value: '4' },\n { name: '05 - ' + i18nService.t('may'), value: '5' },\n { name: '06 - ' + i18nService.t('june'), value: '6' },\n { name: '07 - ' + i18nService.t('july'), value: '7' },\n { name: '08 - ' + i18nService.t('august'), value: '8' },\n { name: '09 - ' + i18nService.t('september'), value: '9' },\n { name: '10 - ' + i18nService.t('october'), value: '10' },\n { name: '11 - ' + i18nService.t('november'), value: '11' },\n { name: '12 - ' + i18nService.t('december'), value: '12' },\n ];\n this.identityTitleOptions = [\n { name: '-- ' + i18nService.t('select') + ' --', value: null },\n { name: i18nService.t('mr'), value: i18nService.t('mr') },\n { name: i18nService.t('mrs'), value: i18nService.t('mrs') },\n { name: i18nService.t('ms'), value: i18nService.t('ms') },\n { name: i18nService.t('dr'), value: i18nService.t('dr') },\n ];\n this.addFieldTypeOptions = [\n { name: i18nService.t('cfTypeText'), value: FieldType.Text },\n { name: i18nService.t('cfTypeHidden'), value: FieldType.Hidden },\n { name: i18nService.t('cfTypeBoolean'), value: FieldType.Boolean },\n ];\n this.uriMatchOptions = [\n { name: i18nService.t('defaultMatchDetection'), value: null },\n { name: i18nService.t('baseDomain'), value: UriMatchType.Domain },\n { name: i18nService.t('host'), value: UriMatchType.Host },\n { name: i18nService.t('startsWith'), value: UriMatchType.StartsWith },\n { name: i18nService.t('regEx'), value: UriMatchType.RegularExpression },\n { name: i18nService.t('exact'), value: UriMatchType.Exact },\n { name: i18nService.t('never'), value: UriMatchType.Never },\n ];\n }\n\n async ngOnInit() {\n await this.init();\n }\n\n async init() {\n const policies = await this.policyService.getAll(PolicyType.PersonalOwnership);\n const myEmail = await this.userService.getEmail();\n this.ownershipOptions.push({ name: myEmail, value: null });\n const orgs = await this.userService.getAllOrganizations();\n orgs.sort(Utils.getSortFunction(this.i18nService, 'name')).forEach(o => {\n if (o.enabled && o.status === OrganizationUserStatusType.Confirmed) {\n this.ownershipOptions.push({ name: o.name, value: o.id });\n if (policies != null && o.usePolicies && !o.canManagePolicies && this.allowPersonal) {\n for (const policy of policies) {\n if (policy.organizationId === o.id && policy.enabled) {\n this.allowPersonal = false;\n this.ownershipOptions.splice(0, 1);\n // Default to the organization who owns this policy for now (if necessary)\n if (this.organizationId == null) {\n this.organizationId = o.id;\n }\n break;\n }\n }\n }\n }\n });\n this.writeableCollections = await this.loadCollections();\n }\n\n async load() {\n this.editMode = this.cipherId != null;\n if (this.editMode) {\n this.editMode = true;\n if (this.cloneMode) {\n this.cloneMode = true;\n this.title = this.i18nService.t('addItem');\n } else {\n this.title = this.i18nService.t('editItem');\n }\n } else {\n this.title = this.i18nService.t('addItem');\n }\n\n const addEditCipherInfo: any = await this.stateService.get('addEditCipherInfo');\n if (addEditCipherInfo != null) {\n this.cipher = addEditCipherInfo.cipher;\n this.collectionIds = addEditCipherInfo.collectionIds;\n }\n await this.stateService.remove('addEditCipherInfo');\n\n if (this.cipher == null) {\n if (this.editMode) {\n const cipher = await this.loadCipher();\n this.cipher = await cipher.decrypt();\n\n // Adjust Cipher Name if Cloning\n if (this.cloneMode) {\n this.cipher.name += ' - ' + this.i18nService.t('clone');\n // If not allowing personal ownership, update cipher's org Id to prompt downstream changes\n if (this.cipher.organizationId == null && !this.allowPersonal) {\n this.cipher.organizationId = this.organizationId;\n }\n }\n } else {\n this.cipher = new CipherView();\n this.cipher.organizationId = this.organizationId == null ? null : this.organizationId;\n this.cipher.folderId = this.folderId;\n this.cipher.type = this.type == null ? CipherType.Login : this.type;\n this.cipher.login = new LoginView();\n this.cipher.login.uris = [new LoginUriView()];\n this.cipher.card = new CardView();\n this.cipher.identity = new IdentityView();\n this.cipher.secureNote = new SecureNoteView();\n this.cipher.secureNote.type = SecureNoteType.Generic;\n }\n }\n\n if (this.cipher != null && (!this.editMode || addEditCipherInfo != null || this.cloneMode)) {\n await this.organizationChanged();\n if (this.collectionIds != null && this.collectionIds.length > 0 && this.collections.length > 0) {\n this.collections.forEach(c => {\n if (this.collectionIds.indexOf(c.id) > -1) {\n (c as any).checked = true;\n }\n });\n }\n }\n\n this.folders = await this.folderService.getAllDecrypted();\n\n if (this.editMode && this.previousCipherId !== this.cipherId) {\n this.eventService.collect(EventType.Cipher_ClientViewed, this.cipherId);\n }\n this.previousCipherId = this.cipherId;\n }\n\n async submit(): Promise {\n if (this.cipher.isDeleted) {\n return this.restore();\n }\n\n if (this.cipher.name == null || this.cipher.name === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('nameRequired'));\n return false;\n }\n\n if ((!this.editMode || this.cloneMode) && !this.allowPersonal && this.cipher.organizationId == null) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('personalOwnershipSubmitError'));\n return false;\n }\n\n if ((!this.editMode || this.cloneMode) && this.cipher.type === CipherType.Login &&\n this.cipher.login.uris != null && this.cipher.login.uris.length === 1 &&\n (this.cipher.login.uris[0].uri == null || this.cipher.login.uris[0].uri === '')) {\n this.cipher.login.uris = null;\n }\n\n // Allows saving of selected collections during \"Add\" and \"Clone\" flows\n if ((!this.editMode || this.cloneMode) && this.cipher.organizationId != null) {\n this.cipher.collectionIds = this.collections == null ? [] :\n this.collections.filter(c => (c as any).checked).map(c => c.id);\n }\n\n // Clear current Cipher Id to trigger \"Add\" cipher flow\n if (this.cloneMode) {\n this.cipher.id = null;\n }\n\n const cipher = await this.encryptCipher();\n try {\n this.formPromise = this.saveCipher(cipher);\n await this.formPromise;\n this.cipher.id = cipher.id;\n this.platformUtilsService.eventTrack(this.editMode && !this.cloneMode ? 'Edited Cipher' : 'Added Cipher');\n this.platformUtilsService.showToast('success', null,\n this.i18nService.t(this.editMode && !this.cloneMode ? 'editedItem' : 'addedItem'));\n this.onSavedCipher.emit(this.cipher);\n this.messagingService.send(this.editMode && !this.cloneMode ? 'editedCipher' : 'addedCipher');\n return true;\n } catch { }\n\n return false;\n }\n\n addUri() {\n if (this.cipher.type !== CipherType.Login) {\n return;\n }\n\n if (this.cipher.login.uris == null) {\n this.cipher.login.uris = [];\n }\n\n this.cipher.login.uris.push(new LoginUriView());\n }\n\n removeUri(uri: LoginUriView) {\n if (this.cipher.type !== CipherType.Login || this.cipher.login.uris == null) {\n return;\n }\n\n const i = this.cipher.login.uris.indexOf(uri);\n if (i > -1) {\n this.cipher.login.uris.splice(i, 1);\n }\n }\n\n addField() {\n if (this.cipher.fields == null) {\n this.cipher.fields = [];\n }\n\n const f = new FieldView();\n f.type = this.addFieldType;\n f.newField = true;\n this.cipher.fields.push(f);\n }\n\n removeField(field: FieldView) {\n const i = this.cipher.fields.indexOf(field);\n if (i > -1) {\n this.cipher.fields.splice(i, 1);\n }\n }\n\n trackByFunction(index: number, item: any) {\n return index;\n }\n\n cancel() {\n this.onCancelled.emit(this.cipher);\n }\n\n attachments() {\n this.onEditAttachments.emit(this.cipher);\n }\n\n share() {\n this.onShareCipher.emit(this.cipher);\n }\n\n editCollections() {\n this.onEditCollections.emit(this.cipher);\n }\n\n async delete(): Promise {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t(this.cipher.isDeleted ? 'permanentlyDeleteItemConfirmation' : 'deleteItemConfirmation'),\n this.i18nService.t('deleteItem'), this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.deletePromise = this.deleteCipher();\n await this.deletePromise;\n this.platformUtilsService.eventTrack((this.cipher.isDeleted ? 'Permanently ' : '') + 'Deleted Cipher');\n this.platformUtilsService.showToast('success', null,\n this.i18nService.t(this.cipher.isDeleted ? 'permanentlyDeletedItem' : 'deletedItem'));\n this.onDeletedCipher.emit(this.cipher);\n this.messagingService.send(this.cipher.isDeleted ? 'permanentlyDeletedCipher' : 'deletedCipher');\n } catch { }\n\n return true;\n }\n\n async restore(): Promise {\n if (!this.cipher.isDeleted) {\n return false;\n }\n\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('restoreItemConfirmation'), this.i18nService.t('restoreItem'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.restorePromise = this.restoreCipher();\n await this.restorePromise;\n this.platformUtilsService.eventTrack('Restored Cipher');\n this.platformUtilsService.showToast('success', null, this.i18nService.t('restoredItem'));\n this.onRestoredCipher.emit(this.cipher);\n this.messagingService.send('restoredCipher');\n } catch { }\n\n return true;\n }\n\n async generatePassword(): Promise {\n if (this.cipher.login != null && this.cipher.login.password != null && this.cipher.login.password.length) {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('overwritePasswordConfirmation'), this.i18nService.t('overwritePassword'),\n this.i18nService.t('yes'), this.i18nService.t('no'));\n if (!confirmed) {\n return false;\n }\n }\n\n this.onGeneratePassword.emit();\n return true;\n }\n\n togglePassword() {\n this.platformUtilsService.eventTrack('Toggled Password on Edit');\n this.showPassword = !this.showPassword;\n document.getElementById('loginPassword').focus();\n if (this.editMode && this.showPassword) {\n this.eventService.collect(EventType.Cipher_ClientToggledPasswordVisible, this.cipherId);\n }\n }\n\n toggleCardCode() {\n this.platformUtilsService.eventTrack('Toggled CardCode on Edit');\n this.showCardCode = !this.showCardCode;\n document.getElementById('cardCode').focus();\n if (this.editMode && this.showCardCode) {\n this.eventService.collect(EventType.Cipher_ClientToggledCardCodeVisible, this.cipherId);\n }\n }\n\n toggleFieldValue(field: FieldView) {\n const f = (field as any);\n f.showValue = !f.showValue;\n if (this.editMode && f.showValue) {\n this.eventService.collect(EventType.Cipher_ClientToggledHiddenFieldVisible, this.cipherId);\n }\n }\n\n toggleUriOptions(uri: LoginUriView) {\n const u = (uri as any);\n u.showOptions = u.showOptions == null && uri.match != null ? false : !u.showOptions;\n }\n\n loginUriMatchChanged(uri: LoginUriView) {\n const u = (uri as any);\n u.showOptions = u.showOptions == null ? true : u.showOptions;\n }\n\n drop(event: CdkDragDrop) {\n moveItemInArray(this.cipher.fields, event.previousIndex, event.currentIndex);\n }\n\n async organizationChanged() {\n if (this.writeableCollections != null) {\n this.writeableCollections.forEach(c => (c as any).checked = false);\n }\n if (this.cipher.organizationId != null) {\n this.collections = this.writeableCollections.filter(c => c.organizationId === this.cipher.organizationId);\n const org = await this.userService.getOrganization(this.cipher.organizationId);\n if (org != null) {\n this.cipher.organizationUseTotp = org.useTotp;\n }\n } else {\n this.collections = [];\n }\n }\n\n async checkPassword() {\n if (this.checkPasswordPromise != null) {\n return;\n }\n\n if (this.cipher.login == null || this.cipher.login.password == null || this.cipher.login.password === '') {\n return;\n }\n\n this.platformUtilsService.eventTrack('Check Password');\n this.checkPasswordPromise = this.auditService.passwordLeaked(this.cipher.login.password);\n const matches = await this.checkPasswordPromise;\n this.checkPasswordPromise = null;\n\n if (matches > 0) {\n this.platformUtilsService.showToast('warning', null,\n this.i18nService.t('passwordExposed', matches.toString()));\n } else {\n this.platformUtilsService.showToast('success', null, this.i18nService.t('passwordSafe'));\n }\n }\n\n protected async loadCollections() {\n const allCollections = await this.collectionService.getAllDecrypted();\n return allCollections.filter(c => !c.readOnly);\n }\n\n protected loadCipher() {\n return this.cipherService.get(this.cipherId);\n }\n\n protected encryptCipher() {\n return this.cipherService.encrypt(this.cipher);\n }\n\n protected saveCipher(cipher: Cipher) {\n return this.cipherService.saveWithServer(cipher);\n }\n\n protected deleteCipher() {\n return this.cipher.isDeleted ? this.cipherService.deleteWithServer(this.cipher.id)\n : this.cipherService.softDeleteWithServer(this.cipher.id);\n }\n\n protected restoreCipher() {\n return this.cipherService.restoreWithServer(this.cipher.id);\n }\n}\n","import {\n Directive,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { SearchService } from '../../abstractions/search.service';\n\nimport { CipherView } from '../../models/view/cipherView';\n\n@Directive()\nexport class CiphersComponent {\n @Input() activeCipherId: string = null;\n @Output() onCipherClicked = new EventEmitter();\n @Output() onCipherRightClicked = new EventEmitter();\n @Output() onAddCipher = new EventEmitter();\n @Output() onAddCipherOptions = new EventEmitter();\n\n loaded: boolean = false;\n ciphers: CipherView[] = [];\n pagedCiphers: CipherView[] = [];\n searchText: string;\n searchPlaceholder: string = null;\n filter: (cipher: CipherView) => boolean = null;\n deleted: boolean = false;\n\n protected searchPending = false;\n protected didScroll = false;\n protected pageSize = 100;\n\n private searchTimeout: any = null;\n private pagedCiphersCount = 0;\n private refreshing = false;\n\n constructor(protected searchService: SearchService) { }\n\n async load(filter: (cipher: CipherView) => boolean = null, deleted: boolean = false) {\n this.deleted = deleted || false;\n await this.applyFilter(filter);\n this.loaded = true;\n }\n\n loadMore() {\n if (this.ciphers.length <= this.pageSize) {\n return;\n }\n const pagedLength = this.pagedCiphers.length;\n let pagedSize = this.pageSize;\n if (this.refreshing && pagedLength === 0 && this.pagedCiphersCount > this.pageSize) {\n pagedSize = this.pagedCiphersCount;\n }\n if (this.ciphers.length > pagedLength) {\n this.pagedCiphers = this.pagedCiphers.concat(this.ciphers.slice(pagedLength, pagedLength + pagedSize));\n }\n this.pagedCiphersCount = this.pagedCiphers.length;\n this.didScroll = this.pagedCiphers.length > this.pageSize;\n }\n\n async reload(filter: (cipher: CipherView) => boolean = null, deleted: boolean = false) {\n this.loaded = false;\n this.ciphers = [];\n await this.load(filter, deleted);\n }\n\n async refresh() {\n try {\n this.refreshing = true;\n await this.reload(this.filter, this.deleted);\n } finally {\n this.refreshing = false;\n }\n }\n\n async applyFilter(filter: (cipher: CipherView) => boolean = null) {\n this.filter = filter;\n await this.search(null);\n }\n\n async search(timeout: number = null) {\n this.searchPending = false;\n if (this.searchTimeout != null) {\n clearTimeout(this.searchTimeout);\n }\n const deletedFilter: (cipher: CipherView) => boolean = c => c.isDeleted === this.deleted;\n if (timeout == null) {\n this.ciphers = await this.searchService.searchCiphers(this.searchText, [this.filter, deletedFilter], null);\n await this.resetPaging();\n return;\n }\n this.searchPending = true;\n this.searchTimeout = setTimeout(async () => {\n this.ciphers = await this.searchService.searchCiphers(this.searchText, [this.filter, deletedFilter], null);\n await this.resetPaging();\n this.searchPending = false;\n }, timeout);\n }\n\n selectCipher(cipher: CipherView) {\n this.onCipherClicked.emit(cipher);\n }\n\n rightClickCipher(cipher: CipherView) {\n this.onCipherRightClicked.emit(cipher);\n }\n\n addCipher() {\n this.onAddCipher.emit();\n }\n\n addCipherOptions() {\n this.onAddCipherOptions.emit();\n }\n\n isSearching() {\n return !this.searchPending && this.searchService.isSearchable(this.searchText);\n }\n\n isPaging() {\n const searching = this.isSearching();\n if (searching && this.didScroll) {\n this.resetPaging();\n }\n return !searching && this.ciphers.length > this.pageSize;\n }\n\n async resetPaging() {\n this.pagedCiphers = [];\n this.loadMore();\n }\n}\n","import {\n Directive,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { CipherService } from '../../abstractions/cipher.service';\nimport { CollectionService } from '../../abstractions/collection.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\nimport { CipherView } from '../../models/view/cipherView';\nimport { CollectionView } from '../../models/view/collectionView';\n\nimport { Cipher } from '../../models/domain/cipher';\n\n@Directive()\nexport class CollectionsComponent implements OnInit {\n @Input() cipherId: string;\n @Input() allowSelectNone = false;\n @Output() onSavedCollections = new EventEmitter();\n\n formPromise: Promise;\n cipher: CipherView;\n collectionIds: string[];\n collections: CollectionView[] = [];\n\n protected cipherDomain: Cipher;\n\n constructor(protected collectionService: CollectionService, protected platformUtilsService: PlatformUtilsService,\n protected i18nService: I18nService, protected cipherService: CipherService) { }\n\n async ngOnInit() {\n await this.load();\n }\n\n async load() {\n this.cipherDomain = await this.loadCipher();\n this.collectionIds = this.loadCipherCollections();\n this.cipher = await this.cipherDomain.decrypt();\n this.collections = await this.loadCollections();\n\n this.collections.forEach(c => (c as any).checked = false);\n if (this.collectionIds != null) {\n this.collections.forEach(c => {\n (c as any).checked = this.collectionIds != null && this.collectionIds.indexOf(c.id) > -1;\n });\n }\n }\n\n async submit() {\n const selectedCollectionIds = this.collections\n .filter(c => !!(c as any).checked)\n .map(c => c.id);\n if (!this.allowSelectNone && selectedCollectionIds.length === 0) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectOneCollection'));\n return;\n }\n this.cipherDomain.collectionIds = selectedCollectionIds;\n try {\n this.formPromise = this.saveCollections();\n await this.formPromise;\n this.onSavedCollections.emit();\n this.platformUtilsService.eventTrack('Edited Cipher Collections');\n this.platformUtilsService.showToast('success', null, this.i18nService.t('editedItem'));\n } catch { }\n }\n\n protected loadCipher() {\n return this.cipherService.get(this.cipherId);\n }\n\n protected loadCipherCollections() {\n return this.cipherDomain.collectionIds;\n }\n\n protected async loadCollections() {\n const allCollections = await this.collectionService.getAllDecrypted();\n return allCollections.filter(c => !c.readOnly && c.organizationId === this.cipher.organizationId);\n }\n\n protected saveCollections() {\n return this.cipherService.saveCollectionsWithServer(this.cipherDomain);\n }\n}\n","import {\n Directive,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\nimport { CipherType } from '../../enums/cipherType';\n\nimport { CollectionView } from '../../models/view/collectionView';\nimport { FolderView } from '../../models/view/folderView';\n\nimport { TreeNode } from '../../models/domain/treeNode';\n\nimport { CollectionService } from '../../abstractions/collection.service';\nimport { FolderService } from '../../abstractions/folder.service';\nimport { StorageService } from '../../abstractions/storage.service';\nimport { UserService } from '../../abstractions/user.service';\n\nimport { ConstantsService } from '../../services/constants.service';\n\n@Directive()\nexport class GroupingsComponent {\n @Input() showFolders = true;\n @Input() showCollections = true;\n @Input() showFavorites = true;\n @Input() showTrash = true;\n\n @Output() onAllClicked = new EventEmitter();\n @Output() onFavoritesClicked = new EventEmitter();\n @Output() onTrashClicked = new EventEmitter();\n @Output() onCipherTypeClicked = new EventEmitter();\n @Output() onFolderClicked = new EventEmitter();\n @Output() onAddFolder = new EventEmitter();\n @Output() onEditFolder = new EventEmitter();\n @Output() onCollectionClicked = new EventEmitter();\n\n folders: FolderView[];\n nestedFolders: TreeNode[];\n collections: CollectionView[];\n nestedCollections: TreeNode[];\n loaded: boolean = false;\n cipherType = CipherType;\n selectedAll: boolean = false;\n selectedFavorites: boolean = false;\n selectedTrash: boolean = false;\n selectedType: CipherType = null;\n selectedFolder: boolean = false;\n selectedFolderId: string = null;\n selectedCollectionId: string = null;\n\n private collapsedGroupings: Set;\n private collapsedGroupingsKey: string;\n\n constructor(protected collectionService: CollectionService, protected folderService: FolderService,\n protected storageService: StorageService, protected userService: UserService) { }\n\n async load(setLoaded = true) {\n const userId = await this.userService.getUserId();\n this.collapsedGroupingsKey = ConstantsService.collapsedGroupingsKey + '_' + userId;\n const collapsedGroupings = await this.storageService.get(this.collapsedGroupingsKey);\n if (collapsedGroupings == null) {\n this.collapsedGroupings = new Set();\n } else {\n this.collapsedGroupings = new Set(collapsedGroupings);\n }\n\n await this.loadFolders();\n await this.loadCollections();\n\n if (setLoaded) {\n this.loaded = true;\n }\n }\n\n async loadCollections(organizationId?: string) {\n if (!this.showCollections) {\n return;\n }\n const collections = await this.collectionService.getAllDecrypted();\n if (organizationId != null) {\n this.collections = collections.filter(c => c.organizationId === organizationId);\n } else {\n this.collections = collections;\n }\n this.nestedCollections = await this.collectionService.getAllNested(this.collections);\n }\n\n async loadFolders() {\n if (!this.showFolders) {\n return;\n }\n this.folders = await this.folderService.getAllDecrypted();\n this.nestedFolders = await this.folderService.getAllNested();\n }\n\n selectAll() {\n this.clearSelections();\n this.selectedAll = true;\n this.onAllClicked.emit();\n }\n\n selectFavorites() {\n this.clearSelections();\n this.selectedFavorites = true;\n this.onFavoritesClicked.emit();\n }\n\n selectTrash() {\n this.clearSelections();\n this.selectedTrash = true;\n this.onTrashClicked.emit();\n }\n\n selectType(type: CipherType) {\n this.clearSelections();\n this.selectedType = type;\n this.onCipherTypeClicked.emit(type);\n }\n\n selectFolder(folder: FolderView) {\n this.clearSelections();\n this.selectedFolder = true;\n this.selectedFolderId = folder.id;\n this.onFolderClicked.emit(folder);\n }\n\n addFolder() {\n this.onAddFolder.emit();\n }\n\n editFolder(folder: FolderView) {\n this.onEditFolder.emit(folder);\n }\n\n selectCollection(collection: CollectionView) {\n this.clearSelections();\n this.selectedCollectionId = collection.id;\n this.onCollectionClicked.emit(collection);\n }\n\n clearSelections() {\n this.selectedAll = false;\n this.selectedFavorites = false;\n this.selectedTrash = false;\n this.selectedType = null;\n this.selectedFolder = false;\n this.selectedFolderId = null;\n this.selectedCollectionId = null;\n }\n\n collapse(grouping: FolderView | CollectionView, idPrefix = '') {\n if (grouping.id == null) {\n return;\n }\n const id = idPrefix + grouping.id;\n if (this.isCollapsed(grouping, idPrefix)) {\n this.collapsedGroupings.delete(id);\n } else {\n this.collapsedGroupings.add(id);\n }\n this.storageService.save(this.collapsedGroupingsKey, this.collapsedGroupings);\n }\n\n isCollapsed(grouping: FolderView | CollectionView, idPrefix = '') {\n return this.collapsedGroupings.has(idPrefix + grouping.id);\n }\n}\n","import { SendType } from '../../enums/sendType';\n\nimport { SendAccessResponse } from '../response/sendAccessResponse';\n\nimport { SendAccessView } from '../view/sendAccessView';\n\nimport { CipherString } from './cipherString';\nimport Domain from './domainBase';\nimport { SendFile } from './sendFile';\nimport { SendText } from './sendText';\nimport { SymmetricCryptoKey } from './symmetricCryptoKey';\n\nexport class SendAccess extends Domain {\n id: string;\n type: SendType;\n name: CipherString;\n file: SendFile;\n text: SendText;\n expirationDate: Date;\n creatorIdentifier: string;\n\n constructor(obj?: SendAccessResponse, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.buildDomainModel(this, obj, {\n id: null,\n name: null,\n expirationDate: null,\n creatorIdentifier: null,\n }, alreadyEncrypted, ['id', 'expirationDate', 'creatorIdentifier']);\n\n this.type = obj.type;\n\n switch (this.type) {\n case SendType.Text:\n this.text = new SendText(obj.text, alreadyEncrypted);\n break;\n case SendType.File:\n this.file = new SendFile(obj.file, alreadyEncrypted);\n break;\n default:\n break;\n }\n }\n\n async decrypt(key: SymmetricCryptoKey): Promise {\n const model = new SendAccessView(this);\n\n await this.decryptObj(model, {\n name: null,\n }, null, key);\n\n switch (this.type) {\n case SendType.File:\n model.file = await this.file.decrypt(key);\n break;\n case SendType.Text:\n model.text = await this.text.decrypt(key);\n break;\n default:\n break;\n }\n\n return model;\n }\n}\n","import { SendType } from '../../enums/sendType';\n\nimport { SendAccess } from '../domain/sendAccess';\n\nimport { SendFileView } from './sendFileView';\nimport { SendTextView } from './sendTextView';\nimport { View } from './view';\n\nexport class SendAccessView implements View {\n id: string = null;\n name: string = null;\n type: SendType = null;\n text = new SendTextView();\n file = new SendFileView();\n expirationDate: Date = null;\n creatorIdentifier: string = null;\n\n constructor(s?: SendAccess) {\n if (!s) {\n return;\n }\n\n this.id = s.id;\n this.type = s.type;\n this.expirationDate = s.expirationDate;\n this.creatorIdentifier = s.creatorIdentifier;\n }\n}\n","export class SendAccessRequest {\n password: string;\n}\n","import {\n NgZone,\n OnInit,\n} from '@angular/core';\n\nimport { OrganizationUserStatusType } from '../../../enums/organizationUserStatusType';\nimport { PolicyType } from '../../../enums/policyType';\nimport { SendType } from '../../../enums/sendType';\n\nimport { SendView } from '../../../models/view/sendView';\n\nimport { EnvironmentService } from '../../../abstractions/environment.service';\nimport { I18nService } from '../../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../../abstractions/platformUtils.service';\nimport { PolicyService } from '../../../abstractions/policy.service';\nimport { SearchService } from '../../../abstractions/search.service';\nimport { SendService } from '../../../abstractions/send.service';\nimport { UserService } from '../../../abstractions/user.service';\n\nexport class SendComponent implements OnInit {\n\n disableSend = false;\n sendType = SendType;\n loaded = false;\n loading = true;\n refreshing = false;\n expired: boolean = false;\n type: SendType = null;\n sends: SendView[] = [];\n filteredSends: SendView[] = [];\n searchText: string;\n selectedType: SendType;\n selectedAll: boolean;\n searchPlaceholder: string;\n filter: (cipher: SendView) => boolean;\n searchPending = false;\n hasSearched = false; // search() function called - returns true if text qualifies for search\n\n actionPromise: any;\n onSuccessfulRemovePassword: () => Promise;\n onSuccessfulDelete: () => Promise;\n onSuccessfulLoad: () => Promise;\n\n private searchTimeout: any;\n\n constructor(protected sendService: SendService, protected i18nService: I18nService,\n protected platformUtilsService: PlatformUtilsService, protected environmentService: EnvironmentService,\n protected ngZone: NgZone, protected searchService: SearchService,\n protected policyService: PolicyService, protected userService: UserService) { }\n\n async ngOnInit() {\n const policies = await this.policyService.getAll(PolicyType.DisableSend);\n const organizations = await this.userService.getAllOrganizations();\n this.disableSend = organizations.some(o => {\n return o.enabled &&\n o.status === OrganizationUserStatusType.Confirmed &&\n o.usePolicies &&\n !o.canManagePolicies &&\n policies.some(p => p.organizationId === o.id && p.enabled);\n });\n }\n\n async load(filter: (send: SendView) => boolean = null) {\n this.loading = true;\n const sends = await this.sendService.getAllDecrypted();\n this.sends = sends;\n if (this.onSuccessfulLoad != null) {\n await this.onSuccessfulLoad();\n } else {\n // Default action\n this.selectAll();\n }\n this.loading = false;\n this.loaded = true;\n }\n\n async reload(filter: (send: SendView) => boolean = null) {\n this.loaded = false;\n this.sends = [];\n await this.load(filter);\n }\n\n async refresh() {\n try {\n this.refreshing = true;\n await this.reload(this.filter);\n } finally {\n this.refreshing = false;\n }\n }\n\n async applyFilter(filter: (send: SendView) => boolean = null) {\n this.filter = filter;\n await this.search(null);\n }\n\n async search(timeout: number = null) {\n this.searchPending = false;\n if (this.searchTimeout != null) {\n clearTimeout(this.searchTimeout);\n }\n if (timeout == null) {\n this.hasSearched = this.searchService.isSearchable(this.searchText);\n this.filteredSends = this.sends.filter(s => this.filter == null || this.filter(s));\n this.applyTextSearch();\n return;\n }\n this.searchPending = true;\n this.searchTimeout = setTimeout(async () => {\n this.hasSearched = this.searchService.isSearchable(this.searchText);\n this.filteredSends = this.sends.filter(s => this.filter == null || this.filter(s));\n this.applyTextSearch();\n this.searchPending = false;\n }, timeout);\n }\n\n async removePassword(s: SendView): Promise {\n if (this.actionPromise != null || s.password == null) {\n return;\n }\n const confirmed = await this.platformUtilsService.showDialog(this.i18nService.t('removePasswordConfirmation'),\n this.i18nService.t('removePassword'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.actionPromise = this.sendService.removePasswordWithServer(s.id);\n await this.actionPromise;\n if (this.onSuccessfulRemovePassword != null) {\n this.onSuccessfulRemovePassword();\n } else {\n // Default actions\n this.platformUtilsService.showToast('success', null, this.i18nService.t('removedPassword'));\n await this.load();\n }\n } catch { }\n this.actionPromise = null;\n }\n\n async delete(s: SendView): Promise {\n if (this.actionPromise != null) {\n return false;\n }\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('deleteSendConfirmation'),\n this.i18nService.t('deleteSend'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.actionPromise = this.sendService.deleteWithServer(s.id);\n await this.actionPromise;\n\n if (this.onSuccessfulDelete != null) {\n this.onSuccessfulDelete();\n } else {\n // Default actions\n this.platformUtilsService.showToast('success', null, this.i18nService.t('deletedSend'));\n await this.refresh();\n }\n } catch { }\n this.actionPromise = null;\n return true;\n }\n\n copy(s: SendView) {\n let sendLinkBaseUrl = 'https://send.bitwarden.com/#';\n const webVaultUrl = this.environmentService.getWebVaultUrl();\n if (webVaultUrl != null) {\n sendLinkBaseUrl = webVaultUrl + '/#/send/';\n }\n const link = sendLinkBaseUrl + s.accessId + '/' + s.urlB64Key;\n this.platformUtilsService.copyToClipboard(link);\n this.platformUtilsService.showToast('success', null,\n this.i18nService.t('valueCopied', this.i18nService.t('sendLink')));\n }\n\n searchTextChanged() {\n this.search(200);\n }\n\n selectAll() {\n this.clearSelections();\n this.selectedAll = true;\n this.applyFilter(null);\n }\n\n selectType(type: SendType) {\n this.clearSelections();\n this.selectedType = type;\n this.applyFilter(s => s.type === type);\n }\n\n clearSelections() {\n this.selectedAll = false;\n this.selectedType = null;\n }\n\n private applyTextSearch() {\n if (this.searchText != null) {\n this.filteredSends = this.searchService.searchSends(this.filteredSends, this.searchText);\n }\n }\n}\n","import { DatePipe } from '@angular/common';\n\nimport {\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { OrganizationUserStatusType } from '../../../enums/organizationUserStatusType';\nimport { PolicyType } from '../../../enums/policyType';\nimport { SendType } from '../../../enums/sendType';\n\nimport { EnvironmentService } from '../../../abstractions/environment.service';\nimport { I18nService } from '../../../abstractions/i18n.service';\nimport { MessagingService } from '../../../abstractions/messaging.service';\nimport { PlatformUtilsService } from '../../../abstractions/platformUtils.service';\nimport { PolicyService } from '../../../abstractions/policy.service';\nimport { SendService } from '../../../abstractions/send.service';\nimport { UserService } from '../../../abstractions/user.service';\n\nimport { SendFileView } from '../../../models/view/sendFileView';\nimport { SendTextView } from '../../../models/view/sendTextView';\nimport { SendView } from '../../../models/view/sendView';\n\nimport { Send } from '../../../models/domain/send';\n\n// TimeOption is used for the dropdown implementation of custom times\n// Standard = displayed time; Military = stored time\ninterface TimeOption {\n standard: string;\n military: string;\n}\n\nenum DateField {\n DeletionDate = 'deletion',\n ExpriationDate = 'expiration',\n}\n\nexport class AddEditComponent implements OnInit {\n @Input() sendId: string;\n @Input() type: SendType;\n\n @Output() onSavedSend = new EventEmitter();\n @Output() onDeletedSend = new EventEmitter();\n @Output() onCancelled = new EventEmitter();\n\n copyLink = false;\n disableSend = false;\n send: SendView;\n deletionDate: string;\n deletionDateFallback: string;\n deletionTimeFallback: string;\n expirationDate: string = null;\n expirationDateFallback: string;\n expirationTimeFallback: string;\n hasPassword: boolean;\n password: string;\n showPassword = false;\n formPromise: Promise;\n deletePromise: Promise;\n sendType = SendType;\n typeOptions: any[];\n deletionDateOptions: any[];\n expirationDateOptions: any[];\n deletionDateSelect = 168;\n expirationDateSelect: number = null;\n canAccessPremium = true;\n premiumRequiredAlertShown = false;\n showOptions = false;\n\n safariDeletionTime: string;\n safariExpirationTime: string;\n safariDeletionTimeOptions: TimeOption[];\n safariExpirationTimeOptions: TimeOption[];\n\n private sendLinkBaseUrl: string;\n\n constructor(protected i18nService: I18nService, protected platformUtilsService: PlatformUtilsService,\n protected environmentService: EnvironmentService, protected datePipe: DatePipe,\n protected sendService: SendService, protected userService: UserService,\n protected messagingService: MessagingService, protected policyService: PolicyService) {\n this.typeOptions = [\n { name: i18nService.t('sendTypeFile'), value: SendType.File },\n { name: i18nService.t('sendTypeText'), value: SendType.Text },\n ];\n this.deletionDateOptions = this.expirationDateOptions = [\n { name: i18nService.t('oneHour'), value: 1 },\n { name: i18nService.t('oneDay'), value: 24 },\n { name: i18nService.t('days', '2'), value: 48 },\n { name: i18nService.t('days', '3'), value: 72 },\n { name: i18nService.t('days', '7'), value: 168 },\n { name: i18nService.t('days', '30'), value: 720 },\n { name: i18nService.t('custom'), value: 0 },\n ];\n this.expirationDateOptions = [\n { name: i18nService.t('never'), value: null },\n ].concat([...this.deletionDateOptions]);\n\n const webVaultUrl = this.environmentService.getWebVaultUrl();\n if (webVaultUrl == null) {\n this.sendLinkBaseUrl = 'https://send.bitwarden.com/#';\n } else {\n this.sendLinkBaseUrl = webVaultUrl + '/#/send/';\n }\n }\n\n get link(): string {\n if (this.send.id != null && this.send.accessId != null) {\n return this.sendLinkBaseUrl + this.send.accessId + '/' + this.send.urlB64Key;\n }\n return null;\n }\n\n get isSafari() {\n return this.platformUtilsService.isSafari();\n }\n\n get isDateTimeLocalSupported(): boolean {\n return !(this.platformUtilsService.isFirefox() || this.platformUtilsService.isSafari());\n }\n\n async ngOnInit() {\n await this.load();\n }\n\n get editMode(): boolean {\n return this.sendId != null;\n }\n\n get title(): string {\n return this.i18nService.t(\n this.editMode ?\n 'editSend' :\n 'createSend'\n );\n }\n\n get expirationDateTimeFallback() {\n return this.nullOrWhiteSpaceCount([this.expirationDateFallback, this.expirationTimeFallback]) > 0 ?\n null :\n `${this.formatDateFallbacks(this.expirationDateFallback)}T${this.expirationTimeFallback}`;\n }\n\n get deletionDateTimeFallback() {\n return this.nullOrWhiteSpaceCount([this.deletionDateFallback, this.deletionTimeFallback]) > 0 ?\n null :\n `${this.formatDateFallbacks(this.deletionDateFallback)}T${this.deletionTimeFallback}`;\n }\n\n async load() {\n const policies = await this.policyService.getAll(PolicyType.DisableSend);\n const organizations = await this.userService.getAllOrganizations();\n this.disableSend = organizations.some(o => {\n return o.enabled &&\n o.status === OrganizationUserStatusType.Confirmed &&\n o.usePolicies &&\n !o.canManagePolicies &&\n policies.some(p => p.organizationId === o.id && p.enabled);\n });\n\n this.canAccessPremium = await this.userService.canAccessPremium();\n if (!this.canAccessPremium) {\n this.type = SendType.Text;\n }\n\n if (this.send == null) {\n if (this.editMode) {\n const send = await this.loadSend();\n this.send = await send.decrypt();\n } else {\n this.send = new SendView();\n this.send.type = this.type == null ? SendType.File : this.type;\n this.send.file = new SendFileView();\n this.send.text = new SendTextView();\n this.send.deletionDate = new Date();\n this.send.deletionDate.setDate(this.send.deletionDate.getDate() + 7);\n }\n }\n\n this.hasPassword = this.send.password != null && this.send.password.trim() !== '';\n\n // Parse dates\n if (!this.isDateTimeLocalSupported) {\n const deletionDateParts = this.dateToSplitString(this.send.deletionDate);\n if (deletionDateParts !== undefined && deletionDateParts.length > 0) {\n this.deletionDateFallback = deletionDateParts[0];\n this.deletionTimeFallback = deletionDateParts[1];\n if (this.isSafari) {\n this.safariDeletionTime = this.deletionTimeFallback;\n }\n }\n\n const expirationDateParts = this.dateToSplitString(this.send.expirationDate);\n if (expirationDateParts !== undefined && expirationDateParts.length > 0) {\n this.expirationDateFallback = expirationDateParts[0];\n this.expirationTimeFallback = expirationDateParts[1];\n if (this.isSafari) {\n this.safariExpirationTime = this.expirationTimeFallback;\n }\n }\n } else {\n this.deletionDate = this.dateToString(this.send.deletionDate);\n this.expirationDate = this.dateToString(this.send.expirationDate);\n }\n\n if (this.isSafari) {\n this.safariDeletionTimeOptions = this.safariTimeOptions(DateField.DeletionDate);\n this.safariExpirationTimeOptions = this.safariTimeOptions(DateField.ExpriationDate);\n }\n }\n\n async submit(): Promise {\n if (!this.isDateTimeLocalSupported) {\n if (this.isSafari) {\n this.expirationTimeFallback = this.safariExpirationTime ?? this.expirationTimeFallback;\n this.deletionTimeFallback = this.safariDeletionTime ?? this.deletionTimeFallback;\n }\n this.deletionDate = this.deletionDateTimeFallback;\n if (this.expirationDateTimeFallback != null && isNaN(Date.parse(this.expirationDateTimeFallback))) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('expirationDateIsInvalid'));\n return;\n }\n if (isNaN(Date.parse(this.deletionDateTimeFallback))) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('deletionDateIsInvalid'));\n return;\n }\n if (this.nullOrWhiteSpaceCount([this.expirationDateFallback, this.expirationTimeFallback]) === 1) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('expirationDateAndTimeRequired'));\n return;\n }\n if (this.editMode || this.expirationDateSelect === 0) {\n this.expirationDate = this.expirationDateTimeFallback;\n }\n }\n\n if (this.disableSend) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('sendDisabledWarning'));\n return false;\n }\n\n if (this.send.name == null || this.send.name === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('nameRequired'));\n return false;\n }\n\n let file: File = null;\n if (this.send.type === SendType.File && !this.editMode) {\n const fileEl = document.getElementById('file') as HTMLInputElement;\n const files = fileEl.files;\n if (files == null || files.length === 0) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectFile'));\n return;\n }\n\n file = files[0];\n if (file.size > 104857600) { // 100 MB\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('maxFileSize'));\n return;\n }\n }\n\n if (!this.editMode) {\n const now = new Date();\n if (this.deletionDateSelect > 0) {\n const d = new Date();\n d.setHours(now.getHours() + this.deletionDateSelect);\n this.deletionDate = this.dateToString(d);\n }\n if (this.expirationDateSelect != null && this.expirationDateSelect > 0) {\n const d = new Date();\n d.setHours(now.getHours() + this.expirationDateSelect);\n this.expirationDate = this.dateToString(d);\n }\n }\n\n if (this.password != null && this.password.trim() === '') {\n this.password = null;\n }\n\n const encSend = await this.encryptSend(file);\n try {\n this.formPromise = this.sendService.saveWithServer(encSend);\n await this.formPromise;\n if (this.send.id == null) {\n this.send.id = encSend[0].id;\n }\n if (this.send.accessId == null) {\n this.send.accessId = encSend[0].accessId;\n }\n this.platformUtilsService.showToast('success', null,\n this.i18nService.t(this.editMode ? 'editedSend' : 'createdSend'));\n this.onSavedSend.emit(this.send);\n if (this.copyLink) {\n this.copyLinkToClipboard(this.link);\n }\n return true;\n } catch { }\n\n return false;\n }\n\n clearExpiration() {\n this.expirationDate = null;\n this.expirationDateFallback = null;\n this.expirationTimeFallback = null;\n this.safariExpirationTime = null;\n }\n\n copyLinkToClipboard(link: string) {\n if (link != null) {\n this.platformUtilsService.copyToClipboard(link);\n }\n }\n\n async delete(): Promise {\n if (this.deletePromise != null) {\n return false;\n }\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('deleteSendConfirmation'),\n this.i18nService.t('deleteSend'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.deletePromise = this.sendService.deleteWithServer(this.send.id);\n await this.deletePromise;\n this.platformUtilsService.showToast('success', null, this.i18nService.t('deletedSend'));\n await this.load();\n this.onDeletedSend.emit(this.send);\n return true;\n } catch { }\n\n return false;\n }\n\n typeChanged() {\n if (!this.canAccessPremium && this.send.type === SendType.File && !this.premiumRequiredAlertShown) {\n this.premiumRequiredAlertShown = true;\n this.messagingService.send('premiumRequired');\n }\n }\n\n toggleOptions() {\n this.showOptions = !this.showOptions;\n }\n\n expirationDateFallbackChanged() {\n this.isSafari ?\n this.safariExpirationTime = this.safariExpirationTime ?? '00:00' :\n this.expirationTimeFallback = this.expirationTimeFallback ?? this.datePipe.transform(new Date(), 'HH:mm');\n }\n\n protected async loadSend(): Promise {\n return this.sendService.get(this.sendId);\n }\n\n protected async encryptSend(file: File): Promise<[Send, ArrayBuffer]> {\n const sendData = await this.sendService.encrypt(this.send, file, this.password, null);\n\n // Parse dates\n try {\n sendData[0].deletionDate = this.deletionDate == null ? null : new Date(this.deletionDate);\n } catch {\n sendData[0].deletionDate = null;\n }\n try {\n sendData[0].expirationDate = this.expirationDate == null ? null : new Date(this.expirationDate);\n } catch {\n sendData[0].expirationDate = null;\n }\n\n return sendData;\n }\n\n protected dateToString(d: Date) {\n return d == null ? null : this.datePipe.transform(d, 'yyyy-MM-ddTHH:mm');\n }\n\n protected formatDateFallbacks(dateString: string) {\n try {\n // The Firefox date picker doesn't supply a time, safari's polyfill does.\n // Unknown if Safari's native date picker will or not when it releases.\n if (!this.isSafari) {\n dateString += ' 00:00';\n }\n return this.datePipe.transform(new Date(dateString), 'yyyy-MM-dd');\n } catch {\n // this should never happen\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('dateParsingError'));\n }\n }\n\n protected dateToSplitString(d: Date) {\n if (d != null) {\n const date = !this.isSafari ?\n this.datePipe.transform(d, 'yyyy-MM-dd') :\n this.datePipe.transform(d, 'MM/dd/yyyy');\n const time = this.datePipe.transform(d, 'HH:mm');\n return [date, time];\n }\n }\n\n protected togglePasswordVisible() {\n this.showPassword = !this.showPassword;\n document.getElementById('password').focus();\n }\n\n protected nullOrWhiteSpaceCount(strarray: string[]): number {\n return strarray.filter(str => str == null || str.trim() === '').length;\n }\n\n protected safariTimeOptions(field: DateField): TimeOption[] {\n // init individual arrays for major sort groups\n const noon: TimeOption[] = [];\n const midnight: TimeOption[] = [];\n const ams: TimeOption[] = [];\n const pms: TimeOption[] = [];\n\n // determine minute skip (5 min, 10 min, 15 min, etc.)\n const minuteIncrementer = 15;\n\n // loop through each hour on a 12 hour system\n for (let h = 1; h <= 12; h++) {\n // loop through each minute in the hour using the skip to incriment\n for (let m = 0; m < 60; m += minuteIncrementer) {\n // init the final strings that will be added to the lists\n let hour = h.toString();\n let minutes = m.toString();\n\n // add prepending 0s to single digit hours/minutes\n if (h < 10) {\n hour = '0' + hour;\n }\n if (m < 10) {\n minutes = '0' + minutes;\n }\n\n // build time strings and push to relevant sort groups\n if (h === 12) {\n const midnightOption: TimeOption = {\n standard: `${hour}:${minutes} AM`,\n military: `00:${minutes}`,\n };\n midnight.push(midnightOption);\n\n const noonOption: TimeOption = {\n standard: `${hour}:${minutes} PM`,\n military: `${hour}:${minutes}`,\n };\n noon.push(noonOption);\n } else {\n const amOption: TimeOption = {\n standard: `${hour}:${minutes} AM`,\n military: `${hour}:${minutes}`,\n };\n ams.push(amOption);\n\n const pmOption: TimeOption = {\n standard: `${hour}:${minutes} PM`,\n military: `${h + 12}:${minutes}`,\n };\n pms.push(pmOption);\n }\n }\n }\n\n // bring all the arrays together in the right order\n const validTimes = [...midnight, ...ams, ...noon, ...pms];\n\n // determine if an unsupported value already exists on the send & add that to the top of the option list\n // example: if the Send was created with a different client\n if (field === DateField.ExpriationDate && this.expirationDateTimeFallback != null && this.editMode) {\n const previousValue: TimeOption = {\n standard: this.datePipe.transform(this.expirationDateTimeFallback, 'hh:mm a'),\n military: this.datePipe.transform(this.expirationDateTimeFallback, 'HH:mm'),\n };\n return [previousValue, { standard: null, military: null }, ...validTimes];\n } else if (field === DateField.DeletionDate && this.deletionDateTimeFallback != null && this.editMode) {\n const previousValue: TimeOption = {\n standard: this.datePipe.transform(this.deletionDateTimeFallback, 'hh:mm a'),\n military: this.datePipe.transform(this.deletionDateTimeFallback, 'HH:mm'),\n };\n return [previousValue, ...validTimes];\n } else {\n return [{ standard: null, military: null }, ...validTimes];\n }\n }\n}\n","export class UpdateProfileRequest {\n name: string;\n masterPasswordHint: string;\n culture = 'en-US'; // deprecated\n\n constructor(name: string, masterPasswordHint: string) {\n this.name = name;\n this.masterPasswordHint = masterPasswordHint ? masterPasswordHint : null;\n }\n}\n","import { EmailTokenRequest } from './emailTokenRequest';\n\nexport class EmailRequest extends EmailTokenRequest {\n newMasterPasswordHash: string;\n token: string;\n key: string;\n}\n","import { PasswordRequest } from './passwordRequest';\n\nimport { KdfType } from '../../enums/kdfType';\n\nexport class KdfRequest extends PasswordRequest {\n kdf: KdfType;\n kdfIterations: number;\n}\n","export class UpdateDomainsRequest {\n equivalentDomains: string[][];\n excludedGlobalEquivalentDomains: number[];\n}\n","import {\n Directive,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PasswordGenerationService } from '../../abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\nimport { PasswordGeneratorPolicyOptions } from '../../models/domain/passwordGeneratorPolicyOptions';\n\n@Directive()\nexport class PasswordGeneratorComponent implements OnInit {\n @Input() showSelect: boolean = false;\n @Output() onSelected = new EventEmitter();\n\n options: any = {};\n password: string = '-';\n showOptions = false;\n avoidAmbiguous = false;\n enforcedPolicyOptions: PasswordGeneratorPolicyOptions;\n\n constructor(protected passwordGenerationService: PasswordGenerationService,\n protected platformUtilsService: PlatformUtilsService, protected i18nService: I18nService,\n private win: Window) { }\n\n async ngOnInit() {\n const optionsResponse = await this.passwordGenerationService.getOptions();\n this.options = optionsResponse[0];\n this.enforcedPolicyOptions = optionsResponse[1];\n this.avoidAmbiguous = !this.options.ambiguous;\n this.options.type = this.options.type === 'passphrase' ? 'passphrase' : 'password';\n this.password = await this.passwordGenerationService.generatePassword(this.options);\n this.platformUtilsService.eventTrack('Generated Password');\n await this.passwordGenerationService.addHistory(this.password);\n }\n\n async sliderChanged() {\n this.saveOptions(false);\n await this.passwordGenerationService.addHistory(this.password);\n this.platformUtilsService.eventTrack('Regenerated Password');\n }\n\n async sliderInput() {\n this.normalizeOptions();\n this.password = await this.passwordGenerationService.generatePassword(this.options);\n }\n\n async saveOptions(regenerate: boolean = true) {\n this.normalizeOptions();\n await this.passwordGenerationService.saveOptions(this.options);\n\n if (regenerate) {\n await this.regenerate();\n }\n }\n\n async regenerate() {\n this.password = await this.passwordGenerationService.generatePassword(this.options);\n await this.passwordGenerationService.addHistory(this.password);\n this.platformUtilsService.eventTrack('Regenerated Password');\n }\n\n copy() {\n this.platformUtilsService.eventTrack('Copied Generated Password');\n const copyOptions = this.win != null ? { window: this.win } : null;\n this.platformUtilsService.copyToClipboard(this.password, copyOptions);\n this.platformUtilsService.showToast('info', null,\n this.i18nService.t('valueCopied', this.i18nService.t('password')));\n }\n\n select() {\n this.platformUtilsService.eventTrack('Selected Generated Password');\n this.onSelected.emit(this.password);\n }\n\n toggleOptions() {\n this.showOptions = !this.showOptions;\n }\n\n private normalizeOptions() {\n // Application level normalize options depedent on class variables\n this.options.ambiguous = !this.avoidAmbiguous;\n\n if (!this.options.uppercase && !this.options.lowercase && !this.options.number && !this.options.special) {\n this.options.lowercase = true;\n if (this.win != null) {\n const lowercase = this.win.document.querySelector('#lowercase') as HTMLInputElement;\n if (lowercase) {\n lowercase.checked = true;\n }\n }\n }\n\n this.passwordGenerationService.normalizeOptions(this.options, this.enforcedPolicyOptions);\n }\n}\n","import { OnInit } from '@angular/core';\n\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PasswordGenerationService } from '../../abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\nimport { GeneratedPasswordHistory } from '../../models/domain/generatedPasswordHistory';\n\nexport class PasswordGeneratorHistoryComponent implements OnInit {\n history: GeneratedPasswordHistory[] = [];\n\n constructor(protected passwordGenerationService: PasswordGenerationService,\n protected platformUtilsService: PlatformUtilsService, protected i18nService: I18nService,\n private win: Window) { }\n\n async ngOnInit() {\n this.history = await this.passwordGenerationService.getHistory();\n }\n\n clear() {\n this.history = [];\n this.passwordGenerationService.clear();\n }\n\n copy(password: string) {\n this.platformUtilsService.eventTrack('Copied Historical Password');\n const copyOptions = this.win != null ? { window: this.win } : null;\n this.platformUtilsService.copyToClipboard(password, copyOptions);\n this.platformUtilsService.showToast('info', null,\n this.i18nService.t('valueCopied', this.i18nService.t('password')));\n }\n}\n","import {\n Directive,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { FolderService } from '../../abstractions/folder.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\n\nimport { FolderView } from '../../models/view/folderView';\n\n@Directive()\nexport class FolderAddEditComponent implements OnInit {\n @Input() folderId: string;\n @Output() onSavedFolder = new EventEmitter();\n @Output() onDeletedFolder = new EventEmitter();\n\n editMode: boolean = false;\n folder: FolderView = new FolderView();\n title: string;\n formPromise: Promise;\n deletePromise: Promise;\n\n constructor(protected folderService: FolderService, protected i18nService: I18nService,\n protected platformUtilsService: PlatformUtilsService) { }\n\n async ngOnInit() {\n await this.init();\n }\n\n async submit(): Promise {\n if (this.folder.name == null || this.folder.name === '') {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('nameRequired'));\n return false;\n }\n\n try {\n const folder = await this.folderService.encrypt(this.folder);\n this.formPromise = this.folderService.saveWithServer(folder);\n await this.formPromise;\n this.platformUtilsService.eventTrack(this.editMode ? 'Edited Folder' : 'Added Folder');\n this.platformUtilsService.showToast('success', null,\n this.i18nService.t(this.editMode ? 'editedFolder' : 'addedFolder'));\n this.onSavedFolder.emit(this.folder);\n return true;\n } catch { }\n\n return false;\n }\n\n async delete(): Promise {\n const confirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('deleteFolderConfirmation'), this.i18nService.t('deleteFolder'),\n this.i18nService.t('yes'), this.i18nService.t('no'), 'warning');\n if (!confirmed) {\n return false;\n }\n\n try {\n this.deletePromise = this.folderService.deleteWithServer(this.folder.id);\n await this.deletePromise;\n this.platformUtilsService.eventTrack('Deleted Folder');\n this.platformUtilsService.showToast('success', null, this.i18nService.t('deletedFolder'));\n this.onDeletedFolder.emit(this.folder);\n } catch { }\n\n return true;\n }\n\n protected async init() {\n this.editMode = this.folderId != null;\n\n if (this.editMode) {\n this.editMode = true;\n this.title = this.i18nService.t('editFolder');\n const folder = await this.folderService.get(this.folderId);\n this.folder = await folder.decrypt();\n } else {\n this.title = this.i18nService.t('addFolder');\n }\n }\n}\n","import {\n Directive,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { OrganizationUserStatusType } from '../../enums/organizationUserStatusType';\n\nimport { CipherService } from '../../abstractions/cipher.service';\nimport { CollectionService } from '../../abstractions/collection.service';\nimport { I18nService } from '../../abstractions/i18n.service';\nimport { PlatformUtilsService } from '../../abstractions/platformUtils.service';\nimport { UserService } from '../../abstractions/user.service';\n\nimport { Organization } from '../../models/domain/organization';\nimport { CipherView } from '../../models/view/cipherView';\nimport { CollectionView } from '../../models/view/collectionView';\n\nimport { Utils } from '../../misc/utils';\n\n@Directive()\nexport class ShareComponent implements OnInit {\n @Input() cipherId: string;\n @Input() organizationId: string;\n @Output() onSharedCipher = new EventEmitter();\n\n formPromise: Promise;\n cipher: CipherView;\n collections: CollectionView[] = [];\n organizations: Organization[] = [];\n\n protected writeableCollections: CollectionView[] = [];\n\n constructor(protected collectionService: CollectionService, protected platformUtilsService: PlatformUtilsService,\n protected i18nService: I18nService, protected userService: UserService,\n protected cipherService: CipherService) { }\n\n async ngOnInit() {\n await this.load();\n }\n\n async load() {\n const allCollections = await this.collectionService.getAllDecrypted();\n this.writeableCollections = allCollections.map(c => c).filter(c => !c.readOnly);\n const orgs = await this.userService.getAllOrganizations();\n this.organizations = orgs.sort(Utils.getSortFunction(this.i18nService, 'name'))\n .filter(o => o.enabled && o.status === OrganizationUserStatusType.Confirmed);\n\n const cipherDomain = await this.cipherService.get(this.cipherId);\n this.cipher = await cipherDomain.decrypt();\n if (this.organizationId == null && this.organizations.length > 0) {\n this.organizationId = this.organizations[0].id;\n }\n this.filterCollections();\n }\n\n filterCollections() {\n this.writeableCollections.forEach(c => (c as any).checked = false);\n if (this.organizationId == null || this.writeableCollections.length === 0) {\n this.collections = [];\n } else {\n this.collections = this.writeableCollections.filter(c => c.organizationId === this.organizationId);\n }\n }\n\n async submit(): Promise {\n const selectedCollectionIds = this.collections\n .filter(c => !!(c as any).checked)\n .map(c => c.id);\n if (selectedCollectionIds.length === 0) {\n this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),\n this.i18nService.t('selectOneCollection'));\n return;\n }\n\n const cipherDomain = await this.cipherService.get(this.cipherId);\n const cipherView = await cipherDomain.decrypt();\n\n try {\n this.formPromise = this.cipherService.shareWithServer(cipherView, this.organizationId,\n selectedCollectionIds).then(async () => {\n this.onSharedCipher.emit();\n this.platformUtilsService.eventTrack('Shared Cipher');\n this.platformUtilsService.showToast('success', null, this.i18nService.t('sharedItem'));\n });\n await this.formPromise;\n return true;\n } catch { }\n return false;\n }\n\n get canSave() {\n if (this.collections != null) {\n for (let i = 0; i < this.collections.length; i++) {\n if ((this.collections[i] as any).checked) {\n return true;\n }\n }\n }\n return false;\n }\n}\n","export { AttachmentData } from './attachmentData';\nexport { CardData } from './cardData';\nexport { CipherData } from './cipherData';\nexport { CollectionData } from './collectionData';\nexport { FieldData } from './fieldData';\nexport { FolderData } from './folderData';\nexport { IdentityData } from './identityData';\nexport { LoginData } from './loginData';\nexport { LoginUriData } from './loginUriData';\nexport { SecureNoteData } from './secureNoteData';\n","export { Attachment } from './attachment';\nexport { AuthResult } from './authResult';\nexport { Card } from './card';\nexport { Cipher } from './cipher';\nexport { CipherString } from './cipherString';\nexport { Collection } from './collection';\nexport { EncryptedObject } from './encryptedObject';\nexport { EnvironmentUrls } from './environmentUrls';\nexport { Field } from './field';\nexport { Folder } from './folder';\nexport { Identity } from './identity';\nexport { Login } from './login';\nexport { LoginUri } from './loginUri';\nexport { GeneratedPasswordHistory } from './generatedPasswordHistory';\nexport { SecureNote } from './secureNote';\nexport { SymmetricCryptoKey } from './symmetricCryptoKey';\n","export class EmergencyAccessConfirmRequest {\n key: string;\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class AttachmentResponse extends BaseResponse {\n id: string;\n url: string;\n fileName: string;\n key: string;\n size: string;\n sizeName: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.url = this.getResponseProperty('Url');\n this.fileName = this.getResponseProperty('FileName');\n this.key = this.getResponseProperty('Key');\n this.size = this.getResponseProperty('Size');\n this.sizeName = this.getResponseProperty('SizeName');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class PasswordHistoryResponse extends BaseResponse {\n password: string;\n lastUsedDate: string;\n\n constructor(response: any) {\n super(response);\n this.password = this.getResponseProperty('Password');\n this.lastUsedDate = this.getResponseProperty('LastUsedDate');\n }\n}\n","import { EmergencyAccessType } from '../../enums/emergencyAccessType';\n\nexport class EmergencyAccessInviteRequest {\n email: string;\n type: EmergencyAccessType;\n waitTimeDays: number;\n}\n","export class EmergencyAccessPasswordRequest {\n newMasterPasswordHash: string;\n key: string;\n}\n","import {\n APP_INITIALIZER,\n LOCALE_ID,\n NgModule,\n} from '@angular/core';\n\nimport { ToasterModule } from 'angular2-toaster';\n\nimport { BroadcasterMessagingService } from '../../services/broadcasterMessaging.service';\nimport { HtmlStorageService } from '../../services/htmlStorage.service';\nimport { I18nService } from '../../services/i18n.service';\nimport { MemoryStorageService } from '../../services/memoryStorage.service';\nimport { WebPlatformUtilsService } from '../../services/webPlatformUtils.service';\n\nimport { EventService } from './event.service';\nimport { OrganizationGuardService } from './organization-guard.service';\nimport { OrganizationTypeGuardService } from './organization-type-guard.service';\nimport { RouterService } from './router.service';\nimport { UnauthGuardService } from './unauth-guard.service';\n\nimport { AuthGuardService } from 'jslib/angular/services/auth-guard.service';\nimport { BroadcasterService } from 'jslib/angular/services/broadcaster.service';\nimport { ValidationService } from 'jslib/angular/services/validation.service';\n\nimport { Analytics } from 'jslib/misc/analytics';\n\nimport { ApiService } from 'jslib/services/api.service';\nimport { AppIdService } from 'jslib/services/appId.service';\nimport { AuditService } from 'jslib/services/audit.service';\nimport { AuthService } from 'jslib/services/auth.service';\nimport { CipherService } from 'jslib/services/cipher.service';\nimport { CollectionService } from 'jslib/services/collection.service';\nimport { ConsoleLogService } from 'jslib/services/consoleLog.service';\nimport { ConstantsService } from 'jslib/services/constants.service';\nimport { ContainerService } from 'jslib/services/container.service';\nimport { CryptoService } from 'jslib/services/crypto.service';\nimport { EnvironmentService } from 'jslib/services/environment.service';\nimport { EventService as EventLoggingService } from 'jslib/services/event.service';\nimport { ExportService } from 'jslib/services/export.service';\nimport { FolderService } from 'jslib/services/folder.service';\nimport { ImportService } from 'jslib/services/import.service';\nimport { NotificationsService } from 'jslib/services/notifications.service';\nimport { PasswordGenerationService } from 'jslib/services/passwordGeneration.service';\nimport { PolicyService } from 'jslib/services/policy.service';\nimport { SearchService } from 'jslib/services/search.service';\nimport { SendService } from 'jslib/services/send.service';\nimport { SettingsService } from 'jslib/services/settings.service';\nimport { StateService } from 'jslib/services/state.service';\nimport { SyncService } from 'jslib/services/sync.service';\nimport { TokenService } from 'jslib/services/token.service';\nimport { TotpService } from 'jslib/services/totp.service';\nimport { UserService } from 'jslib/services/user.service';\nimport { VaultTimeoutService } from 'jslib/services/vaultTimeout.service';\nimport { WebCryptoFunctionService } from 'jslib/services/webCryptoFunction.service';\n\nimport { ApiService as ApiServiceAbstraction } from 'jslib/abstractions/api.service';\nimport { AppIdService as AppIdServiceAbstraction } from 'jslib/abstractions/appId.service';\nimport { AuditService as AuditServiceAbstraction } from 'jslib/abstractions/audit.service';\nimport { AuthService as AuthServiceAbstraction } from 'jslib/abstractions/auth.service';\nimport { CipherService as CipherServiceAbstraction } from 'jslib/abstractions/cipher.service';\nimport { CollectionService as CollectionServiceAbstraction } from 'jslib/abstractions/collection.service';\nimport { CryptoService as CryptoServiceAbstraction } from 'jslib/abstractions/crypto.service';\nimport { CryptoFunctionService as CryptoFunctionServiceAbstraction } from 'jslib/abstractions/cryptoFunction.service';\nimport { EnvironmentService as EnvironmentServiceAbstraction } from 'jslib/abstractions/environment.service';\nimport { EventService as EventLoggingServiceAbstraction } from 'jslib/abstractions/event.service';\nimport { ExportService as ExportServiceAbstraction } from 'jslib/abstractions/export.service';\nimport { FolderService as FolderServiceAbstraction } from 'jslib/abstractions/folder.service';\nimport { I18nService as I18nServiceAbstraction } from 'jslib/abstractions/i18n.service';\nimport { ImportService as ImportServiceAbstraction } from 'jslib/abstractions/import.service';\nimport { LogService as LogServiceAbstraction } from 'jslib/abstractions/log.service';\nimport { MessagingService as MessagingServiceAbstraction } from 'jslib/abstractions/messaging.service';\nimport { NotificationsService as NotificationsServiceAbstraction } from 'jslib/abstractions/notifications.service';\nimport {\n PasswordGenerationService as PasswordGenerationServiceAbstraction,\n} from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService as PlatformUtilsServiceAbstraction } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService as PolicyServiceAbstraction } from 'jslib/abstractions/policy.service';\nimport { SearchService as SearchServiceAbstraction } from 'jslib/abstractions/search.service';\nimport { SendService as SendServiceAbstraction } from 'jslib/abstractions/send.service';\nimport { SettingsService as SettingsServiceAbstraction } from 'jslib/abstractions/settings.service';\nimport { StateService as StateServiceAbstraction } from 'jslib/abstractions/state.service';\nimport { StorageService as StorageServiceAbstraction } from 'jslib/abstractions/storage.service';\nimport { SyncService as SyncServiceAbstraction } from 'jslib/abstractions/sync.service';\nimport { TokenService as TokenServiceAbstraction } from 'jslib/abstractions/token.service';\nimport { TotpService as TotpServiceAbstraction } from 'jslib/abstractions/totp.service';\nimport { UserService as UserServiceAbstraction } from 'jslib/abstractions/user.service';\nimport { VaultTimeoutService as VaultTimeoutServiceAbstraction } from 'jslib/abstractions/vaultTimeout.service';\n\nconst i18nService = new I18nService(window.navigator.language, 'locales');\nconst stateService = new StateService();\nconst broadcasterService = new BroadcasterService();\nconst messagingService = new BroadcasterMessagingService(broadcasterService);\nconst platformUtilsService = new WebPlatformUtilsService(i18nService, messagingService);\nconst storageService: StorageServiceAbstraction = new HtmlStorageService(platformUtilsService);\nconst secureStorageService: StorageServiceAbstraction = new MemoryStorageService();\nconst cryptoFunctionService: CryptoFunctionServiceAbstraction = new WebCryptoFunctionService(window,\n platformUtilsService);\nconst consoleLogService = new ConsoleLogService(false);\nconst cryptoService = new CryptoService(storageService,\n platformUtilsService.isDev() ? storageService : secureStorageService, cryptoFunctionService, platformUtilsService,\n consoleLogService);\nconst tokenService = new TokenService(storageService);\nconst appIdService = new AppIdService(storageService);\nconst apiService = new ApiService(tokenService, platformUtilsService,\n async (expired: boolean) => messagingService.send('logout', { expired: expired }));\nconst userService = new UserService(tokenService, storageService);\nconst settingsService = new SettingsService(userService, storageService);\nexport let searchService: SearchService = null;\nconst cipherService = new CipherService(cryptoService, userService, settingsService,\n apiService, storageService, i18nService, () => searchService);\nconst folderService = new FolderService(cryptoService, userService, apiService, storageService,\n i18nService, cipherService);\nconst collectionService = new CollectionService(cryptoService, userService, storageService, i18nService);\nsearchService = new SearchService(cipherService, consoleLogService);\nconst policyService = new PolicyService(userService, storageService);\nconst sendService = new SendService(cryptoService, userService, apiService, storageService,\n i18nService, cryptoFunctionService);\nconst vaultTimeoutService = new VaultTimeoutService(cipherService, folderService, collectionService,\n cryptoService, platformUtilsService, storageService, messagingService, searchService, userService, tokenService,\n null, async () => messagingService.send('logout', { expired: false }));\nconst syncService = new SyncService(userService, apiService, settingsService,\n folderService, cipherService, cryptoService, collectionService, storageService, messagingService, policyService,\n sendService, async (expired: boolean) => messagingService.send('logout', { expired: expired }));\nconst passwordGenerationService = new PasswordGenerationService(cryptoService, storageService, policyService);\nconst totpService = new TotpService(storageService, cryptoFunctionService);\nconst containerService = new ContainerService(cryptoService);\nconst authService = new AuthService(cryptoService, apiService,\n userService, tokenService, appIdService, i18nService, platformUtilsService, messagingService, vaultTimeoutService,\n consoleLogService);\nconst exportService = new ExportService(folderService, cipherService, apiService);\nconst importService = new ImportService(cipherService, folderService, apiService, i18nService, collectionService,\n platformUtilsService);\nconst notificationsService = new NotificationsService(userService, syncService, appIdService,\n apiService, vaultTimeoutService, async () => messagingService.send('logout', { expired: true }), consoleLogService);\nconst environmentService = new EnvironmentService(apiService, storageService, notificationsService);\nconst auditService = new AuditService(cryptoFunctionService, apiService);\nconst eventLoggingService = new EventLoggingService(storageService, apiService, userService, cipherService);\n\nconst analytics = new Analytics(window, () => platformUtilsService.isDev() || platformUtilsService.isSelfHost(),\n platformUtilsService, storageService, appIdService);\ncontainerService.attachToWindow(window);\n\nexport function initFactory(): Function {\n return async () => {\n await (storageService as HtmlStorageService).init();\n const isDev = platformUtilsService.isDev();\n if (!isDev && platformUtilsService.isSelfHost()) {\n environmentService.baseUrl = window.location.origin;\n } else {\n environmentService.webVaultUrl = isDev ? 'https://localhost:8080' : null;\n environmentService.notificationsUrl = isDev ? 'http://localhost:61840' :\n 'https://notifications.bitwarden.com'; // window.location.origin + '/notifications';\n environmentService.enterpriseUrl = isDev ? 'http://localhost:52313' :\n 'https://portal.bitwarden.com'; // window.location.origin + '/portal';\n }\n apiService.setUrls({\n base: isDev ? null : window.location.origin,\n api: isDev ? 'http://localhost:4000' : null,\n identity: isDev ? 'http://localhost:33656' : null,\n events: isDev ? 'http://localhost:46273' : null,\n\n // Uncomment these (and comment out the above) if you want to target production\n // servers for local development.\n\n // base: null,\n // api: 'https://api.bitwarden.com',\n // identity: 'https://identity.bitwarden.com',\n // events: 'https://events.bitwarden.com',\n });\n setTimeout(() => notificationsService.init(environmentService), 3000);\n\n vaultTimeoutService.init(true);\n const locale = await storageService.get(ConstantsService.localeKey);\n await i18nService.init(locale);\n eventLoggingService.init(true);\n authService.init();\n const htmlEl = window.document.documentElement;\n htmlEl.classList.add('locale_' + i18nService.translationLocale);\n let theme = await storageService.get(ConstantsService.themeKey);\n if (theme == null) {\n theme = 'light';\n }\n htmlEl.classList.add('theme_' + theme);\n stateService.save(ConstantsService.disableFaviconKey,\n await storageService.get(ConstantsService.disableFaviconKey));\n stateService.save('enableGravatars', await storageService.get('enableGravatars'));\n };\n}\n\n@NgModule({\n imports: [\n ToasterModule,\n ],\n declarations: [],\n providers: [\n ValidationService,\n AuthGuardService,\n OrganizationGuardService,\n OrganizationTypeGuardService,\n UnauthGuardService,\n RouterService,\n EventService,\n { provide: AuditServiceAbstraction, useValue: auditService },\n { provide: AuthServiceAbstraction, useValue: authService },\n { provide: CipherServiceAbstraction, useValue: cipherService },\n { provide: FolderServiceAbstraction, useValue: folderService },\n { provide: CollectionServiceAbstraction, useValue: collectionService },\n { provide: EnvironmentServiceAbstraction, useValue: environmentService },\n { provide: TotpServiceAbstraction, useValue: totpService },\n { provide: TokenServiceAbstraction, useValue: tokenService },\n { provide: I18nServiceAbstraction, useValue: i18nService },\n { provide: CryptoServiceAbstraction, useValue: cryptoService },\n { provide: PlatformUtilsServiceAbstraction, useValue: platformUtilsService },\n { provide: PasswordGenerationServiceAbstraction, useValue: passwordGenerationService },\n { provide: ApiServiceAbstraction, useValue: apiService },\n { provide: SyncServiceAbstraction, useValue: syncService },\n { provide: UserServiceAbstraction, useValue: userService },\n { provide: MessagingServiceAbstraction, useValue: messagingService },\n { provide: BroadcasterService, useValue: broadcasterService },\n { provide: SettingsServiceAbstraction, useValue: settingsService },\n { provide: VaultTimeoutServiceAbstraction, useValue: vaultTimeoutService },\n { provide: StorageServiceAbstraction, useValue: storageService },\n { provide: StateServiceAbstraction, useValue: stateService },\n { provide: ExportServiceAbstraction, useValue: exportService },\n { provide: SearchServiceAbstraction, useValue: searchService },\n { provide: ImportServiceAbstraction, useValue: importService },\n { provide: NotificationsServiceAbstraction, useValue: notificationsService },\n { provide: CryptoFunctionServiceAbstraction, useValue: cryptoFunctionService },\n { provide: EventLoggingServiceAbstraction, useValue: eventLoggingService },\n { provide: PolicyServiceAbstraction, useValue: policyService },\n { provide: SendServiceAbstraction, useValue: sendService },\n {\n provide: APP_INITIALIZER,\n useFactory: initFactory,\n deps: [],\n multi: true,\n },\n {\n provide: LOCALE_ID,\n useFactory: () => i18nService.translationLocale,\n deps: [],\n },\n ],\n})\nexport class ServicesModule {\n}\n","import { MessagingService } from 'jslib/abstractions/messaging.service';\n\nimport { BroadcasterService } from 'jslib/angular/services/broadcaster.service';\n\nexport class BroadcasterMessagingService implements MessagingService {\n constructor(private broadcasterService: BroadcasterService) { }\n\n send(subscriber: string, arg: any = {}) {\n const message = Object.assign({}, { command: subscriber }, arg);\n this.broadcasterService.send(message);\n }\n}\n","import { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { StorageService } from 'jslib/abstractions/storage.service';\nimport { ConstantsService } from 'jslib/services';\n\nexport class HtmlStorageService implements StorageService {\n private localStorageKeys = new Set(['appId', 'anonymousAppId', 'rememberedEmail', 'passwordGenerationOptions',\n ConstantsService.disableFaviconKey, 'rememberEmail', 'enableGravatars', 'enableFullWidth',\n ConstantsService.localeKey, ConstantsService.autoConfirmFingerprints,\n ConstantsService.vaultTimeoutKey, ConstantsService.vaultTimeoutActionKey, ConstantsService.ssoCodeVerifierKey,\n ConstantsService.ssoStateKey, 'ssoOrgIdentifier']);\n private localStorageStartsWithKeys = ['twoFactorToken_', ConstantsService.collapsedGroupingsKey + '_'];\n private memoryStorageStartsWithKeys = ['ciphers_', 'folders_', 'collections_', 'settings_', 'lastSync_'];\n private memoryStorage = new Map();\n\n constructor(private platformUtilsService: PlatformUtilsService) { }\n\n async init() {\n // LockOption -> VaultTimeout (uses the same legacy string value for backwards compat)\n const vaultTimeout = await this.get(ConstantsService.vaultTimeoutKey);\n if (vaultTimeout == null && !this.platformUtilsService.isDev()) {\n await this.save(ConstantsService.vaultTimeoutKey, 15);\n }\n\n // Default Action to lock\n const vaultTimeoutAction = await this.get(ConstantsService.vaultTimeoutActionKey);\n if (vaultTimeoutAction == null) {\n await this.save(ConstantsService.vaultTimeoutActionKey, 'lock');\n }\n }\n\n get(key: string): Promise {\n let json: string = null;\n if (this.isLocalStorage(key)) {\n json = window.localStorage.getItem(key);\n } else if (this.isMemoryStorage(key)) {\n json = this.memoryStorage.get(key);\n } else {\n json = window.sessionStorage.getItem(key);\n }\n if (json != null) {\n const obj = JSON.parse(json);\n return Promise.resolve(obj as T);\n }\n return Promise.resolve(null);\n }\n\n save(key: string, obj: any): Promise {\n if (obj == null) {\n return this.remove(key);\n }\n\n const json = JSON.stringify(obj);\n if (this.isLocalStorage(key)) {\n window.localStorage.setItem(key, json);\n } else if (this.isMemoryStorage(key)) {\n this.memoryStorage.set(key, json);\n } else {\n window.sessionStorage.setItem(key, json);\n }\n return Promise.resolve();\n }\n\n remove(key: string): Promise {\n if (this.isLocalStorage(key)) {\n window.localStorage.removeItem(key);\n } else if (this.isMemoryStorage(key)) {\n this.memoryStorage.delete(key);\n } else {\n window.sessionStorage.removeItem(key);\n }\n return Promise.resolve();\n }\n\n private isLocalStorage(key: string): boolean {\n if (this.localStorageKeys.has(key)) {\n return true;\n }\n for (const swKey of this.localStorageStartsWithKeys) {\n if (key.startsWith(swKey)) {\n return true;\n }\n }\n return false;\n }\n\n private isMemoryStorage(key: string): boolean {\n for (const swKey of this.memoryStorageStartsWithKeys) {\n if (key.startsWith(swKey)) {\n return true;\n }\n }\n return false;\n }\n}\n","export { ApiService } from './api.service';\nexport { AppIdService } from './appId.service';\nexport { AuditService } from './audit.service';\nexport { AuthService } from './auth.service';\nexport { CipherService } from './cipher.service';\nexport { CollectionService } from './collection.service';\nexport { ConstantsService } from './constants.service';\nexport { ContainerService } from './container.service';\nexport { CryptoService } from './crypto.service';\nexport { EnvironmentService } from './environment.service';\nexport { FolderService } from './folder.service';\nexport { I18nService } from './i18n.service';\nexport { PasswordGenerationService } from './passwordGeneration.service';\nexport { SettingsService } from './settings.service';\nexport { StateService } from './state.service';\nexport { SyncService } from './sync.service';\nexport { TokenService } from './token.service';\nexport { TotpService } from './totp.service';\nexport { UserService } from './user.service';\nexport { VaultTimeoutService } from './vaultTimeout.service';\n","import { BaseResponse } from './baseResponse';\n\nexport class ApiKeyResponse extends BaseResponse {\n apiKey: string;\n\n constructor(response: any) {\n super(response);\n this.apiKey = this.getResponseProperty('ApiKey');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { PaymentMethodType } from '../../enums/paymentMethodType';\nimport { TransactionType } from '../../enums/transactionType';\n\nexport class BillingResponse extends BaseResponse {\n balance: number;\n paymentSource: BillingSourceResponse;\n invoices: BillingInvoiceResponse[] = [];\n transactions: BillingTransactionResponse[] = [];\n\n constructor(response: any) {\n super(response);\n this.balance = this.getResponseProperty('Balance');\n const paymentSource = this.getResponseProperty('PaymentSource');\n const transactions = this.getResponseProperty('Transactions');\n const invoices = this.getResponseProperty('Invoices');\n this.paymentSource = paymentSource == null ? null : new BillingSourceResponse(paymentSource);\n if (transactions != null) {\n this.transactions = transactions.map((t: any) => new BillingTransactionResponse(t));\n }\n if (invoices != null) {\n this.invoices = invoices.map((i: any) => new BillingInvoiceResponse(i));\n }\n }\n}\n\nexport class BillingSourceResponse extends BaseResponse {\n type: PaymentMethodType;\n cardBrand: string;\n description: string;\n needsVerification: boolean;\n\n constructor(response: any) {\n super(response);\n this.type = this.getResponseProperty('Type');\n this.cardBrand = this.getResponseProperty('CardBrand');\n this.description = this.getResponseProperty('Description');\n this.needsVerification = this.getResponseProperty('NeedsVerification');\n }\n}\n\nexport class BillingInvoiceResponse extends BaseResponse {\n url: string;\n pdfUrl: string;\n number: string;\n paid: boolean;\n date: string;\n amount: number;\n\n constructor(response: any) {\n super(response);\n this.url = this.getResponseProperty('Url');\n this.pdfUrl = this.getResponseProperty('PdfUrl');\n this.number = this.getResponseProperty('Number');\n this.paid = this.getResponseProperty('Paid');\n this.date = this.getResponseProperty('Date');\n this.amount = this.getResponseProperty('Amount');\n }\n}\n\nexport class BillingTransactionResponse extends BaseResponse {\n createdDate: string;\n amount: number;\n refunded: boolean;\n partiallyRefunded: boolean;\n refundedAmount: number;\n type: TransactionType;\n paymentMethodType: PaymentMethodType;\n details: string;\n\n constructor(response: any) {\n super(response);\n this.createdDate = this.getResponseProperty('CreatedDate');\n this.amount = this.getResponseProperty('Amount');\n this.refunded = this.getResponseProperty('Refunded');\n this.partiallyRefunded = this.getResponseProperty('PartiallyRefunded');\n this.refundedAmount = this.getResponseProperty('RefundedAmount');\n this.type = this.getResponseProperty('Type');\n this.paymentMethodType = this.getResponseProperty('PaymentMethodType');\n this.details = this.getResponseProperty('Details');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class BreachAccountResponse extends BaseResponse {\n addedDate: string;\n breachDate: string;\n dataClasses: string[];\n description: string;\n domain: string;\n isActive: boolean;\n isVerified: boolean;\n logoPath: string;\n modifiedDate: string;\n name: string;\n pwnCount: number;\n title: string;\n\n constructor(response: any) {\n super(response);\n this.addedDate = this.getResponseProperty('AddedDate');\n this.breachDate = this.getResponseProperty('BreachDate');\n this.dataClasses = this.getResponseProperty('DataClasses');\n this.description = this.getResponseProperty('Description');\n this.domain = this.getResponseProperty('Domain');\n this.isActive = this.getResponseProperty('IsActive');\n this.isVerified = this.getResponseProperty('IsVerified');\n this.logoPath = this.getResponseProperty('LogoPath');\n this.modifiedDate = this.getResponseProperty('ModifiedDate');\n this.name = this.getResponseProperty('Name');\n this.pwnCount = this.getResponseProperty('PwnCount');\n this.title = this.getResponseProperty('Title');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class GlobalDomainResponse extends BaseResponse {\n type: number;\n domains: string[];\n excluded: boolean;\n\n constructor(response: any) {\n super(response);\n this.type = this.getResponseProperty('Type');\n this.domains = this.getResponseProperty('Domains');\n this.excluded = this.getResponseProperty('Excluded');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { DeviceType } from '../../enums/deviceType';\nimport { EventType } from '../../enums/eventType';\n\nexport class EventResponse extends BaseResponse {\n type: EventType;\n userId: string;\n organizationId: string;\n cipherId: string;\n collectionId: string;\n groupId: string;\n policyId: string;\n organizationUserId: string;\n actingUserId: string;\n date: string;\n deviceType: DeviceType;\n ipAddress: string;\n\n constructor(response: any) {\n super(response);\n this.type = this.getResponseProperty('Type');\n this.userId = this.getResponseProperty('UserId');\n this.organizationId = this.getResponseProperty('OrganizationId');\n this.cipherId = this.getResponseProperty('CipherId');\n this.collectionId = this.getResponseProperty('CollectionId');\n this.groupId = this.getResponseProperty('GroupId');\n this.policyId = this.getResponseProperty('PolicyId');\n this.organizationUserId = this.getResponseProperty('OrganizationUserId');\n this.actingUserId = this.getResponseProperty('ActingUserId');\n this.date = this.getResponseProperty('Date');\n this.deviceType = this.getResponseProperty('DeviceType');\n this.ipAddress = this.getResponseProperty('IpAddress');\n }\n}\n","import { BaseResponse } from './baseResponse';\nimport { SelectionReadOnlyResponse } from './selectionReadOnlyResponse';\n\nexport class GroupResponse extends BaseResponse {\n id: string;\n organizationId: string;\n name: string;\n accessAll: boolean;\n externalId: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.organizationId = this.getResponseProperty('OrganizationId');\n this.name = this.getResponseProperty('Name');\n this.accessAll = this.getResponseProperty('AccessAll');\n this.externalId = this.getResponseProperty('ExternalId');\n }\n}\n\nexport class GroupDetailsResponse extends GroupResponse {\n collections: SelectionReadOnlyResponse[] = [];\n\n constructor(response: any) {\n super(response);\n const collections = this.getResponseProperty('Collections');\n if (collections != null) {\n this.collections = collections.map((c: any) => new SelectionReadOnlyResponse(c));\n }\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { KdfType } from '../../enums/kdfType';\n\nexport class IdentityTokenResponse extends BaseResponse {\n accessToken: string;\n expiresIn: number;\n refreshToken: string;\n tokenType: string;\n\n resetMasterPassword: boolean;\n privateKey: string;\n key: string;\n twoFactorToken: string;\n kdf: KdfType;\n kdfIterations: number;\n\n constructor(response: any) {\n super(response);\n this.accessToken = response.access_token;\n this.expiresIn = response.expires_in;\n this.refreshToken = response.refresh_token;\n this.tokenType = response.token_type;\n\n this.resetMasterPassword = this.getResponseProperty('ResetMasterPassword');\n this.privateKey = this.getResponseProperty('PrivateKey');\n this.key = this.getResponseProperty('Key');\n this.twoFactorToken = this.getResponseProperty('TwoFactorToken');\n this.kdf = this.getResponseProperty('Kdf');\n this.kdfIterations = this.getResponseProperty('KdfIterations');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { TwoFactorProviderType } from '../../enums/twoFactorProviderType';\n\nexport class IdentityTwoFactorResponse extends BaseResponse {\n twoFactorProviders: TwoFactorProviderType[];\n twoFactorProviders2 = new Map();\n\n constructor(response: any) {\n super(response);\n this.twoFactorProviders = this.getResponseProperty('TwoFactorProviders');\n const twoFactorProviders2 = this.getResponseProperty('TwoFactorProviders2');\n if (twoFactorProviders2 != null) {\n for (const prop in twoFactorProviders2) {\n if (twoFactorProviders2.hasOwnProperty(prop)) {\n this.twoFactorProviders2.set(parseInt(prop, null), twoFactorProviders2[prop]);\n }\n }\n }\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class ListResponse extends BaseResponse {\n data: T[];\n continuationToken: string;\n\n constructor(response: any, t: new (dataResponse: any) => T) {\n super(response);\n const data = this.getResponseProperty('Data');\n this.data = data == null ? [] : data.map((dr: any) => new t(dr));\n this.continuationToken = this.getResponseProperty('ContinuationToken');\n }\n}\n","import { OrganizationResponse } from './organizationResponse';\nimport {\n BillingSubscriptionResponse,\n BillingSubscriptionUpcomingInvoiceResponse,\n} from './subscriptionResponse';\n\nexport class OrganizationSubscriptionResponse extends OrganizationResponse {\n storageName: string;\n storageGb: number;\n subscription: BillingSubscriptionResponse;\n upcomingInvoice: BillingSubscriptionUpcomingInvoiceResponse;\n expiration: string;\n\n constructor(response: any) {\n super(response);\n this.storageName = this.getResponseProperty('StorageName');\n this.storageGb = this.getResponseProperty('StorageGb');\n const subscription = this.getResponseProperty('Subscription');\n this.subscription = subscription == null ? null : new BillingSubscriptionResponse(subscription);\n const upcomingInvoice = this.getResponseProperty('UpcomingInvoice');\n this.upcomingInvoice = upcomingInvoice == null ? null :\n new BillingSubscriptionUpcomingInvoiceResponse(upcomingInvoice);\n this.expiration = this.getResponseProperty('Expiration');\n }\n}\n","import { BaseResponse } from './baseResponse';\nimport { SelectionReadOnlyResponse } from './selectionReadOnlyResponse';\n\nimport { PermissionsApi } from '../api/permissionsApi';\n\nimport { OrganizationUserStatusType } from '../../enums/organizationUserStatusType';\nimport { OrganizationUserType } from '../../enums/organizationUserType';\n\nexport class OrganizationUserResponse extends BaseResponse {\n id: string;\n userId: string;\n type: OrganizationUserType;\n status: OrganizationUserStatusType;\n accessAll: boolean;\n permissions: PermissionsApi;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.userId = this.getResponseProperty('UserId');\n this.type = this.getResponseProperty('Type');\n this.status = this.getResponseProperty('Status');\n this.permissions = new PermissionsApi(this.getResponseProperty('Permissions'));\n this.accessAll = this.getResponseProperty('AccessAll');\n }\n}\n\nexport class OrganizationUserUserDetailsResponse extends OrganizationUserResponse {\n name: string;\n email: string;\n twoFactorEnabled: boolean;\n\n constructor(response: any) {\n super(response);\n this.name = this.getResponseProperty('Name');\n this.email = this.getResponseProperty('Email');\n this.twoFactorEnabled = this.getResponseProperty('TwoFactorEnabled');\n }\n}\n\nexport class OrganizationUserDetailsResponse extends OrganizationUserResponse {\n collections: SelectionReadOnlyResponse[] = [];\n\n constructor(response: any) {\n super(response);\n const collections = this.getResponseProperty('Collections');\n if (collections != null) {\n this.collections = collections.map((c: any) => new SelectionReadOnlyResponse(c));\n }\n }\n}\n","import { BaseResponse } from './baseResponse';\nimport { ProfileResponse } from './profileResponse';\n\nexport class PaymentResponse extends BaseResponse {\n userProfile: ProfileResponse;\n paymentIntentClientSecret: string;\n success: boolean;\n\n constructor(response: any) {\n super(response);\n const userProfile = this.getResponseProperty('UserProfile');\n if (userProfile != null) {\n this.userProfile = new ProfileResponse(userProfile);\n }\n this.paymentIntentClientSecret = this.getResponseProperty('PaymentIntentClientSecret');\n this.success = this.getResponseProperty('Success');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { OrganizationUserStatusType } from '../../enums/organizationUserStatusType';\nimport { OrganizationUserType } from '../../enums/organizationUserType';\nimport { PermissionsApi } from '../api/permissionsApi';\n\nexport class ProfileOrganizationResponse extends BaseResponse {\n id: string;\n name: string;\n usePolicies: boolean;\n useGroups: boolean;\n useDirectory: boolean;\n useEvents: boolean;\n useTotp: boolean;\n use2fa: boolean;\n useApi: boolean;\n useBusinessPortal: boolean;\n useSso: boolean;\n selfHost: boolean;\n usersGetPremium: boolean;\n seats: number;\n maxCollections: number;\n maxStorageGb?: number;\n key: string;\n status: OrganizationUserStatusType;\n type: OrganizationUserType;\n enabled: boolean;\n ssoBound: boolean;\n identifier: string;\n permissions: PermissionsApi;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.name = this.getResponseProperty('Name');\n this.usePolicies = this.getResponseProperty('UsePolicies');\n this.useGroups = this.getResponseProperty('UseGroups');\n this.useDirectory = this.getResponseProperty('UseDirectory');\n this.useEvents = this.getResponseProperty('UseEvents');\n this.useTotp = this.getResponseProperty('UseTotp');\n this.use2fa = this.getResponseProperty('Use2fa');\n this.useApi = this.getResponseProperty('UseApi');\n this.useBusinessPortal = this.getResponseProperty('UseBusinessPortal');\n this.useSso = this.getResponseProperty('UseSso');\n this.selfHost = this.getResponseProperty('SelfHost');\n this.usersGetPremium = this.getResponseProperty('UsersGetPremium');\n this.seats = this.getResponseProperty('Seats');\n this.maxCollections = this.getResponseProperty('MaxCollections');\n this.maxStorageGb = this.getResponseProperty('MaxStorageGb');\n this.key = this.getResponseProperty('Key');\n this.status = this.getResponseProperty('Status');\n this.type = this.getResponseProperty('Type');\n this.enabled = this.getResponseProperty('Enabled');\n this.ssoBound = this.getResponseProperty('SsoBound');\n this.identifier = this.getResponseProperty('Identifier');\n this.permissions = new PermissionsApi(this.getResponseProperty('permissions'));\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { KdfType } from '../../enums/kdfType';\n\nexport class PreloginResponse extends BaseResponse {\n kdf: KdfType;\n kdfIterations: number;\n\n constructor(response: any) {\n super(response);\n this.kdf = this.getResponseProperty('Kdf');\n this.kdfIterations = this.getResponseProperty('KdfIterations');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { SendType } from '../../enums/sendType';\n\nimport { SendFileApi } from '../api/sendFileApi';\nimport { SendTextApi } from '../api/sendTextApi';\n\nexport class SendAccessResponse extends BaseResponse {\n id: string;\n type: SendType;\n name: string;\n file: SendFileApi;\n text: SendTextApi;\n expirationDate: Date;\n creatorIdentifier: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.type = this.getResponseProperty('Type');\n this.name = this.getResponseProperty('Name');\n\n const text = this.getResponseProperty('Text');\n if (text != null) {\n this.text = new SendTextApi(text);\n }\n\n const file = this.getResponseProperty('File');\n if (file != null) {\n this.file = new SendFileApi(file);\n }\n\n this.expirationDate = this.getResponseProperty('ExpirationDate');\n this.creatorIdentifier = this.getResponseProperty('CreatorIdentifier');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class SendFileDownloadDataResponse extends BaseResponse {\n\n id: string = null;\n url: string = null;\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.url = this.getResponseProperty('Url');\n }\n}\n","import { BaseResponse } from './baseResponse';\nimport { CipherResponse } from './cipherResponse';\nimport { CollectionDetailsResponse } from './collectionResponse';\nimport { DomainsResponse } from './domainsResponse';\nimport { FolderResponse } from './folderResponse';\nimport { PolicyResponse } from './policyResponse';\nimport { ProfileResponse } from './profileResponse';\nimport { SendResponse } from './sendResponse';\n\nexport class SyncResponse extends BaseResponse {\n profile?: ProfileResponse;\n folders: FolderResponse[] = [];\n collections: CollectionDetailsResponse[] = [];\n ciphers: CipherResponse[] = [];\n domains?: DomainsResponse;\n policies?: PolicyResponse[] = [];\n sends: SendResponse[] = [];\n\n constructor(response: any) {\n super(response);\n\n const profile = this.getResponseProperty('Profile');\n if (profile != null) {\n this.profile = new ProfileResponse(profile);\n }\n\n const folders = this.getResponseProperty('Folders');\n if (folders != null) {\n this.folders = folders.map((f: any) => new FolderResponse(f));\n }\n\n const collections = this.getResponseProperty('Collections');\n if (collections != null) {\n this.collections = collections.map((c: any) => new CollectionDetailsResponse(c));\n }\n\n const ciphers = this.getResponseProperty('Ciphers');\n if (ciphers != null) {\n this.ciphers = ciphers.map((c: any) => new CipherResponse(c));\n }\n\n const domains = this.getResponseProperty('Domains');\n if (domains != null) {\n this.domains = new DomainsResponse(domains);\n }\n\n const policies = this.getResponseProperty('Policies');\n if (policies != null) {\n this.policies = policies.map((p: any) => new PolicyResponse(p));\n }\n\n const sends = this.getResponseProperty('Sends');\n if (sends != null) {\n this.sends = sends.map((s: any) => new SendResponse(s));\n }\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class TaxInfoResponse extends BaseResponse {\n taxId: string;\n taxIdType: string;\n line1: string;\n line2: string;\n city: string;\n state: string;\n country: string;\n postalCode: string;\n\n constructor(response: any) {\n super(response);\n this.taxId = this.getResponseProperty('TaxIdNumber');\n this.taxIdType = this.getResponseProperty('TaxIdType');\n this.line1 = this.getResponseProperty('Line1');\n this.line2 = this.getResponseProperty('Line2');\n this.city = this.getResponseProperty('City');\n this.state = this.getResponseProperty('State');\n this.postalCode = this.getResponseProperty('PostalCode');\n this.country = this.getResponseProperty('Country');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class TaxRateResponse extends BaseResponse {\n id: string;\n country: string;\n state: string;\n postalCode: string;\n rate: number;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.country = this.getResponseProperty('Country');\n this.state = this.getResponseProperty('State');\n this.postalCode = this.getResponseProperty('PostalCode');\n this.rate = this.getResponseProperty('Rate');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class TwoFactorAuthenticatorResponse extends BaseResponse {\n enabled: boolean;\n key: string;\n\n constructor(response: any) {\n super(response);\n this.enabled = this.getResponseProperty('Enabled');\n this.key = this.getResponseProperty('Key');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class TwoFactorDuoResponse extends BaseResponse {\n enabled: boolean;\n host: string;\n secretKey: string;\n integrationKey: string;\n\n constructor(response: any) {\n super(response);\n this.enabled = this.getResponseProperty('Enabled');\n this.host = this.getResponseProperty('Host');\n this.secretKey = this.getResponseProperty('SecretKey');\n this.integrationKey = this.getResponseProperty('IntegrationKey');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class TwoFactorEmailResponse extends BaseResponse {\n enabled: boolean;\n email: string;\n\n constructor(response: any) {\n super(response);\n this.enabled = this.getResponseProperty('Enabled');\n this.email = this.getResponseProperty('Email');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { TwoFactorProviderType } from '../../enums/twoFactorProviderType';\n\nexport class TwoFactorProviderResponse extends BaseResponse {\n enabled: boolean;\n type: TwoFactorProviderType;\n\n constructor(response: any) {\n super(response);\n this.enabled = this.getResponseProperty('Enabled');\n this.type = this.getResponseProperty('Type');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class TwoFactorRecoverResponse extends BaseResponse {\n code: string;\n\n constructor(response: any) {\n super(response);\n this.code = this.getResponseProperty('Code');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class TwoFactorU2fResponse extends BaseResponse {\n enabled: boolean;\n keys: KeyResponse[];\n\n constructor(response: any) {\n super(response);\n this.enabled = this.getResponseProperty('Enabled');\n const keys = this.getResponseProperty('Keys');\n this.keys = keys == null ? null : keys.map((k: any) => new KeyResponse(k));\n }\n}\n\nexport class KeyResponse extends BaseResponse {\n name: string;\n id: number;\n compromised: boolean;\n\n constructor(response: any) {\n super(response);\n this.name = this.getResponseProperty('Name');\n this.id = this.getResponseProperty('Id');\n this.compromised = this.getResponseProperty('Compromised');\n }\n}\n\nexport class ChallengeResponse extends BaseResponse {\n userId: string;\n appId: string;\n challenge: string;\n version: string;\n\n constructor(response: any) {\n super(response);\n this.userId = this.getResponseProperty('UserId');\n this.appId = this.getResponseProperty('AppId');\n this.challenge = this.getResponseProperty('Challenge');\n this.version = this.getResponseProperty('Version');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class TwoFactorYubiKeyResponse extends BaseResponse {\n enabled: boolean;\n key1: string;\n key2: string;\n key3: string;\n key4: string;\n key5: string;\n nfc: boolean;\n\n constructor(response: any) {\n super(response);\n this.enabled = this.getResponseProperty('Enabled');\n this.key1 = this.getResponseProperty('Key1');\n this.key2 = this.getResponseProperty('Key2');\n this.key3 = this.getResponseProperty('Key3');\n this.key4 = this.getResponseProperty('Key4');\n this.key5 = this.getResponseProperty('Key5');\n this.nfc = this.getResponseProperty('Nfc');\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nexport class UserKeyResponse extends BaseResponse {\n userId: string;\n publicKey: string;\n\n constructor(response: any) {\n super(response);\n this.userId = this.getResponseProperty('UserId');\n this.publicKey = this.getResponseProperty('PublicKey');\n }\n}\n","/**\n * Use as a Decorator on async functions, it will limit how many times the function can be\n * in-flight at a time.\n *\n * Calls beyond the limit will be queued, and run when one of the active calls finishes\n */\nexport function throttle(limit: number, throttleKey: (args: any[]) => string) {\n return (target: any, propertyKey: string | symbol,\n descriptor: TypedPropertyDescriptor<(...args: any[]) => Promise>) => {\n const originalMethod: () => Promise = descriptor.value;\n const allThrottles = new Map void)[]>>();\n\n const getThrottles = (obj: any) => {\n let throttles = allThrottles.get(obj);\n if (throttles != null) {\n return throttles;\n }\n throttles = new Map void)[]>();\n allThrottles.set(obj, throttles);\n return throttles;\n };\n\n return {\n value: function(...args: any[]) {\n const throttles = getThrottles(this);\n const argsThrottleKey = throttleKey(args);\n let queue = throttles.get(argsThrottleKey);\n if (queue == null) {\n queue = [];\n throttles.set(argsThrottleKey, queue);\n }\n\n return new Promise((resolve, reject) => {\n const exec = () => {\n const onFinally = () => {\n queue.splice(queue.indexOf(exec), 1);\n if (queue.length >= limit) {\n queue[limit - 1]();\n } else if (queue.length === 0) {\n throttles.delete(argsThrottleKey);\n if (throttles.size === 0) {\n allThrottles.delete(this);\n }\n }\n };\n originalMethod.apply(this, args).then((val: any) => {\n onFinally();\n return val;\n }).catch((err: any) => {\n onFinally();\n throw err;\n }).then(resolve, reject);\n };\n queue.push(exec);\n if (queue.length <= limit) {\n exec();\n }\n });\n },\n };\n };\n}\n","export class CipherBulkMoveRequest {\n ids: string[];\n folderId: string;\n\n constructor(ids: string[], folderId: string) {\n this.ids = ids == null ? [] : ids;\n this.folderId = folderId;\n }\n}\n","export class CipherBulkRestoreRequest {\n ids: string[];\n\n constructor(ids: string[]) {\n this.ids = ids == null ? [] : ids;\n }\n}\n","import { CipherWithIdRequest } from './cipherWithIdRequest';\n\nimport { Cipher } from '../domain/cipher';\n\nexport class CipherBulkShareRequest {\n ciphers: CipherWithIdRequest[];\n collectionIds: string[];\n\n constructor(ciphers: Cipher[], collectionIds: string[]) {\n if (ciphers != null) {\n this.ciphers = [];\n ciphers.forEach(c => {\n this.ciphers.push(new CipherWithIdRequest(c));\n });\n }\n this.collectionIds = collectionIds;\n }\n}\n","import { CipherRequest } from './cipherRequest';\n\nimport { Cipher } from '../domain/cipher';\n\nexport class CipherShareRequest {\n cipher: CipherRequest;\n collectionIds: string[];\n\n constructor(cipher: Cipher) {\n this.cipher = new CipherRequest(cipher);\n this.collectionIds = cipher.collectionIds;\n }\n}\n","import { CipherView } from '../view';\n\nconst CacheTTL = 3000;\n\nexport class SortedCiphersCache {\n private readonly sortedCiphersByUrl: Map = new Map();\n private readonly timeouts: Map = new Map();\n\n constructor(private readonly comparator: (a: CipherView, b: CipherView) => number) { }\n\n isCached(url: string) {\n return this.sortedCiphersByUrl.has(url);\n }\n\n addCiphers(url: string, ciphers: CipherView[]) {\n ciphers.sort(this.comparator);\n this.sortedCiphersByUrl.set(url, new Ciphers(ciphers));\n this.resetTimer(url);\n }\n\n getLastUsed(url: string) {\n this.resetTimer(url);\n return this.isCached(url) ? this.sortedCiphersByUrl.get(url).getLastUsed() : null;\n }\n\n getLastLaunched(url: string) {\n return this.isCached(url) ? this.sortedCiphersByUrl.get(url).getLastLaunched() : null;\n }\n\n getNext(url: string) {\n this.resetTimer(url);\n return this.isCached(url) ? this.sortedCiphersByUrl.get(url).getNext() : null;\n }\n\n updateLastUsedIndex(url: string) {\n if (this.isCached(url)) {\n this.sortedCiphersByUrl.get(url).updateLastUsedIndex();\n }\n }\n\n clear() {\n this.sortedCiphersByUrl.clear();\n this.timeouts.clear();\n }\n\n private resetTimer(url: string) {\n clearTimeout(this.timeouts.get(url));\n this.timeouts.set(url, setTimeout(() => {\n this.sortedCiphersByUrl.delete(url);\n this.timeouts.delete(url);\n }, CacheTTL));\n }\n}\n\nclass Ciphers {\n lastUsedIndex = -1;\n\n constructor(private readonly ciphers: CipherView[]) { }\n\n getLastUsed() {\n this.lastUsedIndex = Math.max(this.lastUsedIndex, 0);\n return this.ciphers[this.lastUsedIndex];\n }\n\n getLastLaunched() {\n const usedCiphers = this.ciphers.filter(cipher => cipher.localData?.lastLaunched);\n const sortedCiphers = usedCiphers.sort((x, y) => y.localData.lastLaunched.valueOf() - x.localData.lastLaunched.valueOf());\n return sortedCiphers[0];\n }\n\n getNextIndex() {\n return (this.lastUsedIndex + 1) % this.ciphers.length;\n }\n\n getNext() {\n return this.ciphers[this.getNextIndex()];\n }\n\n updateLastUsedIndex() {\n this.lastUsedIndex = this.getNextIndex();\n }\n}\n","export class TreeNode {\n parent: T;\n node: T;\n children: TreeNode[] = [];\n\n constructor(node: T, name: string, parent: T) {\n this.parent = parent;\n this.node = node;\n this.node.name = name;\n }\n}\n\nexport interface ITreeNodeObject {\n id: string;\n name: string;\n}\n","import Domain from './domainBase';\n\nexport class PasswordGeneratorPolicyOptions extends Domain {\n defaultType: string = '';\n minLength: number = 0;\n useUppercase: boolean = false;\n useLowercase: boolean = false;\n useNumbers: boolean = false;\n numberCount: number = 0;\n useSpecial: boolean = false;\n specialCount: number = 0;\n minNumberWords: number = 0;\n capitalize: boolean = false;\n includeNumber: boolean = false;\n\n inEffect() {\n return this.defaultType !== '' ||\n this.minLength > 0 ||\n this.numberCount > 0 ||\n this.specialCount > 0 ||\n this.useUppercase ||\n this.useLowercase ||\n this.useNumbers ||\n this.useSpecial ||\n this.minNumberWords > 0 ||\n this.capitalize ||\n this.includeNumber;\n }\n}\n","import { ProfileOrganizationResponse } from '../response/profileOrganizationResponse';\n\nimport { OrganizationUserStatusType } from '../../enums/organizationUserStatusType';\nimport { OrganizationUserType } from '../../enums/organizationUserType';\nimport { PermissionsApi } from '../api/permissionsApi';\n\nexport class OrganizationData {\n id: string;\n name: string;\n status: OrganizationUserStatusType;\n type: OrganizationUserType;\n enabled: boolean;\n usePolicies: boolean;\n useGroups: boolean;\n useDirectory: boolean;\n useEvents: boolean;\n useTotp: boolean;\n use2fa: boolean;\n useApi: boolean;\n useBusinessPortal: boolean;\n useSso: boolean;\n selfHost: boolean;\n usersGetPremium: boolean;\n seats: number;\n maxCollections: number;\n maxStorageGb?: number;\n ssoBound: boolean;\n identifier: string;\n permissions: PermissionsApi;\n\n constructor(response: ProfileOrganizationResponse) {\n this.id = response.id;\n this.name = response.name;\n this.status = response.status;\n this.type = response.type;\n this.enabled = response.enabled;\n this.usePolicies = response.usePolicies;\n this.useGroups = response.useGroups;\n this.useDirectory = response.useDirectory;\n this.useEvents = response.useEvents;\n this.useTotp = response.useTotp;\n this.use2fa = response.use2fa;\n this.useApi = response.useApi;\n this.useBusinessPortal = response.useBusinessPortal;\n this.useSso = response.useSso;\n this.selfHost = response.selfHost;\n this.usersGetPremium = response.usersGetPremium;\n this.seats = response.seats;\n this.maxCollections = response.maxCollections;\n this.maxStorageGb = response.maxStorageGb;\n this.ssoBound = response.ssoBound;\n this.identifier = response.identifier;\n this.permissions = response.permissions;\n }\n}\n","import { SendFileApi } from '../api/sendFileApi';\n\nexport class SendFileData {\n id: string;\n fileName: string;\n key: string;\n size: string;\n sizeName: string;\n\n constructor(data?: SendFileApi) {\n if (data == null) {\n return;\n }\n\n this.id = data.id;\n this.fileName = data.fileName;\n this.key = data.key;\n this.size = data.size;\n this.sizeName = data.sizeName;\n }\n}\n","import { SendTextApi } from '../api/sendTextApi';\n\nexport class SendTextData {\n text: string;\n hidden: boolean;\n\n constructor(data?: SendTextApi) {\n if (data == null) {\n return;\n }\n\n this.text = data.text;\n this.hidden = data.hidden;\n }\n}\n","import { I18nService as BaseI18nService } from 'jslib/services/i18n.service';\n\nexport class I18nService extends BaseI18nService {\n constructor(systemLanguage: string, localesDirectory: string) {\n super(systemLanguage || 'en-US', localesDirectory, async (formattedLocale: string) => {\n const filePath = this.localesDirectory + '/' + formattedLocale + '/messages.json?cache=' +\n process.env.CACHE_TAG;\n const localesResult = await fetch(filePath);\n const locales = await localesResult.json();\n return locales;\n });\n\n this.supportedTranslationLocales = [\n 'en', 'ca', 'cs', 'da', 'de', 'el', 'en-GB', 'es', 'et', 'fr', 'he', 'it', 'ja', 'ko', 'lv', 'ml', 'nb',\n 'nl', 'pl', 'pt-PT', 'pt-BR', 'ru', 'sk', 'sv', 'uk', 'zh-CN', 'zh-TW',\n ];\n }\n}\n","import { StorageService } from 'jslib/abstractions/storage.service';\n\nexport class MemoryStorageService implements StorageService {\n private store = new Map();\n\n get(key: string): Promise {\n if (this.store.has(key)) {\n const obj = this.store.get(key);\n return Promise.resolve(obj as T);\n }\n return Promise.resolve(null);\n }\n\n save(key: string, obj: any): Promise {\n if (obj == null) {\n return this.remove(key);\n }\n this.store.set(key, obj);\n return Promise.resolve();\n }\n\n remove(key: string): Promise {\n this.store.delete(key);\n return Promise.resolve();\n }\n}\n","import Swal, { SweetAlertIcon } from 'sweetalert2/dist/sweetalert2.js';\n\nimport { DeviceType } from 'jslib/enums/deviceType';\n\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { MessagingService } from 'jslib/abstractions/messaging.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\n\nimport { Utils } from 'jslib/misc/utils';\n\nexport class WebPlatformUtilsService implements PlatformUtilsService {\n identityClientId: string = 'web';\n\n private browserCache: DeviceType = null;\n\n constructor(private i18nService: I18nService, private messagingService: MessagingService) { }\n\n getDevice(): DeviceType {\n if (this.browserCache != null) {\n return this.browserCache;\n }\n\n if (navigator.userAgent.indexOf(' Firefox/') !== -1 || navigator.userAgent.indexOf(' Gecko/') !== -1) {\n this.browserCache = DeviceType.FirefoxBrowser;\n } else if (navigator.userAgent.indexOf(' OPR/') >= 0) {\n this.browserCache = DeviceType.OperaBrowser;\n } else if (navigator.userAgent.indexOf(' Edg/') !== -1) {\n this.browserCache = DeviceType.EdgeBrowser;\n } else if (navigator.userAgent.indexOf(' Vivaldi/') !== -1) {\n this.browserCache = DeviceType.VivaldiBrowser;\n } else if (navigator.userAgent.indexOf(' Safari/') !== -1 && navigator.userAgent.indexOf('Chrome') === -1) {\n this.browserCache = DeviceType.SafariBrowser;\n } else if ((window as any).chrome && navigator.userAgent.indexOf(' Chrome/') !== -1) {\n this.browserCache = DeviceType.ChromeBrowser;\n } else if (navigator.userAgent.indexOf(' Trident/') !== -1) {\n this.browserCache = DeviceType.IEBrowser;\n } else {\n this.browserCache = DeviceType.UnknownBrowser;\n }\n\n return this.browserCache;\n }\n\n getDeviceString(): string {\n const device = DeviceType[this.getDevice()].toLowerCase();\n return device.replace('browser', '');\n }\n\n isFirefox(): boolean {\n return this.getDevice() === DeviceType.FirefoxBrowser;\n }\n\n isChrome(): boolean {\n return this.getDevice() === DeviceType.ChromeBrowser;\n }\n\n isEdge(): boolean {\n return this.getDevice() === DeviceType.EdgeBrowser;\n }\n\n isOpera(): boolean {\n return this.getDevice() === DeviceType.OperaBrowser;\n }\n\n isVivaldi(): boolean {\n return this.getDevice() === DeviceType.VivaldiBrowser;\n }\n\n isSafari(): boolean {\n return this.getDevice() === DeviceType.SafariBrowser;\n }\n\n isIE(): boolean {\n return this.getDevice() === DeviceType.IEBrowser;\n }\n\n isMacAppStore(): boolean {\n return false;\n }\n\n analyticsId(): string {\n return 'UA-81915606-3';\n }\n\n isViewOpen(): Promise {\n return Promise.resolve(false);\n }\n\n lockTimeout(): number {\n return null;\n }\n\n launchUri(uri: string, options?: any): void {\n const a = document.createElement('a');\n a.href = uri;\n if (options == null || !options.sameWindow) {\n a.target = '_blank';\n a.rel = 'noreferrer noopener';\n }\n a.classList.add('d-none');\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n }\n\n saveFile(win: Window, blobData: any, blobOptions: any, fileName: string): void {\n let blob: Blob = null;\n let type: string = null;\n const fileNameLower = fileName.toLowerCase();\n let doDownload = true;\n if (fileNameLower.endsWith('.pdf')) {\n type = 'application/pdf';\n doDownload = false;\n } else if (fileNameLower.endsWith('.xlsx')) {\n type = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';\n } else if (fileNameLower.endsWith('.docx')) {\n type = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';\n } else if (fileNameLower.endsWith('.pptx')) {\n type = 'application/vnd.openxmlformats-officedocument.presentationml.presentation';\n } else if (fileNameLower.endsWith('.csv')) {\n type = 'text/csv';\n } else if (fileNameLower.endsWith('.png')) {\n type = 'image/png';\n } else if (fileNameLower.endsWith('.jpg') || fileNameLower.endsWith('.jpeg')) {\n type = 'image/jpeg';\n } else if (fileNameLower.endsWith('.gif')) {\n type = 'image/gif';\n }\n if (type != null) {\n blobOptions = blobOptions || {};\n if (blobOptions.type == null) {\n blobOptions.type = type;\n }\n }\n if (blobOptions != null && !this.isIE()) {\n blob = new Blob([blobData], blobOptions);\n } else {\n blob = new Blob([blobData]);\n }\n if (navigator.msSaveOrOpenBlob) {\n navigator.msSaveBlob(blob, fileName);\n } else {\n const a = win.document.createElement('a');\n if (doDownload) {\n a.download = fileName;\n } else {\n a.target = '_blank';\n }\n a.href = URL.createObjectURL(blob);\n a.style.position = 'fixed';\n win.document.body.appendChild(a);\n a.click();\n win.document.body.removeChild(a);\n }\n }\n\n getApplicationVersion(): string {\n return process.env.APPLICATION_VERSION || '-';\n }\n\n supportsU2f(win: Window): boolean {\n if (win != null && (win as any).u2f != null) {\n return true;\n }\n return this.isChrome() || ((this.isEdge() || this.isOpera() || this.isVivaldi()) && !Utils.isMobileBrowser);\n }\n\n supportsDuo(): boolean {\n return true;\n }\n\n showToast(type: 'error' | 'success' | 'warning' | 'info', title: string, text: string | string[],\n options?: any): void {\n this.messagingService.send('showToast', {\n text: text,\n title: title,\n type: type,\n options: options,\n });\n }\n\n async showDialog(body: string, title?: string, confirmText?: string, cancelText?: string, type?: string,\n bodyIsHtml: boolean = false) {\n let iconClasses: string = null;\n if (type != null) {\n // If you add custom types to this part, the type to SweetAlertIcon cast below needs to be changed.\n switch (type) {\n case 'success':\n iconClasses = 'fa-check text-success';\n break;\n case 'warning':\n iconClasses = 'fa-warning text-warning';\n break;\n case 'error':\n iconClasses = 'fa-bolt text-danger';\n break;\n case 'info':\n iconClasses = 'fa-info-circle text-info';\n break;\n default:\n break;\n }\n }\n\n const iconHtmlStr = iconClasses != null ? `` : undefined;\n const confirmed = await Swal.fire({\n heightAuto: false,\n buttonsStyling: false,\n icon: type as SweetAlertIcon, // required to be any of the SweetAlertIcons to output the iconHtml.\n iconHtml: iconHtmlStr,\n text: bodyIsHtml ? null : body,\n html: bodyIsHtml ? body : null,\n title: title,\n showCancelButton: (cancelText != null),\n cancelButtonText: cancelText,\n showConfirmButton: true,\n confirmButtonText: confirmText == null ? this.i18nService.t('ok') : confirmText,\n });\n\n return confirmed.value;\n }\n\n eventTrack(action: string, label?: string, options?: any) {\n this.messagingService.send('analyticsEventTrack', {\n action: action,\n label: label,\n options: options,\n });\n }\n\n isDev(): boolean {\n return process.env.ENV === 'development';\n }\n\n isSelfHost(): boolean {\n return process.env.SELF_HOST.toString() === 'true';\n }\n\n copyToClipboard(text: string, options?: any): void {\n let win = window;\n let doc = window.document;\n if (options && (options.window || options.win)) {\n win = options.window || options.win;\n doc = win.document;\n } else if (options && options.doc) {\n doc = options.doc;\n }\n if ((win as any).clipboardData && (win as any).clipboardData.setData) {\n // IE specific code path to prevent textarea being shown while dialog is visible.\n (win as any).clipboardData.setData('Text', text);\n } else if (doc.queryCommandSupported && doc.queryCommandSupported('copy')) {\n const textarea = doc.createElement('textarea');\n textarea.textContent = text;\n // Prevent scrolling to bottom of page in MS Edge.\n textarea.style.position = 'fixed';\n let copyEl = doc.body;\n // For some reason copy command won't work when modal is open if appending to body\n if (doc.body.classList.contains('modal-open')) {\n copyEl = doc.body.querySelector('.modal');\n }\n copyEl.appendChild(textarea);\n textarea.select();\n try {\n // Security exception may be thrown by some browsers.\n doc.execCommand('copy');\n } catch (e) {\n // tslint:disable-next-line\n console.warn('Copy to clipboard failed.', e);\n } finally {\n copyEl.removeChild(textarea);\n }\n }\n }\n\n readFromClipboard(options?: any): Promise {\n throw new Error('Cannot read from clipboard on web.');\n }\n\n supportsBiometric() {\n return Promise.resolve(false);\n }\n\n authenticateBiometric() {\n return Promise.resolve(false);\n }\n\n supportsSecureStorage() {\n return false;\n }\n\n getDefaultSystemTheme() {\n return null as 'light' | 'dark';\n }\n\n onDefaultSystemThemeChange() {\n /* noop */\n }\n}\n","import { AppIdService } from '../abstractions/appId.service';\nimport { PlatformUtilsService } from '../abstractions/platformUtils.service';\nimport { StorageService } from '../abstractions/storage.service';\n\nimport { ConstantsService } from '../services/constants.service';\n\nimport { DeviceType } from '../enums/deviceType';\n\nconst GaObj = 'ga';\n\nexport const AnalyticsIds = {\n [DeviceType.ChromeExtension]: 'UA-81915606-6',\n [DeviceType.FirefoxExtension]: 'UA-81915606-7',\n [DeviceType.OperaExtension]: 'UA-81915606-8',\n [DeviceType.EdgeExtension]: 'UA-81915606-9',\n [DeviceType.VivaldiExtension]: 'UA-81915606-15',\n [DeviceType.SafariExtension]: 'UA-81915606-16',\n [DeviceType.WindowsDesktop]: 'UA-81915606-17',\n [DeviceType.LinuxDesktop]: 'UA-81915606-19',\n [DeviceType.MacOsDesktop]: 'UA-81915606-18',\n};\n\nexport class Analytics {\n private gaTrackingId: string = null;\n private defaultDisabled = false;\n private appVersion: string;\n\n constructor(win: Window, private gaFilter?: () => boolean,\n private platformUtilsService?: PlatformUtilsService, private storageService?: StorageService,\n private appIdService?: AppIdService, private dependencyResolver?: () => any) {\n if (dependencyResolver != null) {\n const deps = dependencyResolver();\n if (platformUtilsService == null && deps.platformUtilsService) {\n this.platformUtilsService = deps.platformUtilsService as PlatformUtilsService;\n }\n if (storageService == null && deps.storageService) {\n this.storageService = deps.storageService as StorageService;\n }\n if (appIdService == null && deps.appIdService) {\n this.appIdService = deps.appIdService as AppIdService;\n }\n }\n\n this.appVersion = this.platformUtilsService.getApplicationVersion();\n this.defaultDisabled = this.platformUtilsService.getDevice() === DeviceType.FirefoxExtension ||\n this.platformUtilsService.isMacAppStore();\n this.gaTrackingId = this.platformUtilsService.analyticsId();\n\n (win as any).GoogleAnalyticsObject = GaObj;\n (win as any)[GaObj] = async (action: string, param1: any, param2?: any) => {\n await this.ga(action, param1, param2);\n };\n }\n\n async ga(action: string, param1: any, param2?: any) {\n return;\n\n if (this.gaFilter != null && this.gaFilter()) {\n return;\n }\n\n const disabled = await this.storageService.get(ConstantsService.disableGaKey);\n if ((this.defaultDisabled && disabled == null) || disabled != null && disabled) {\n return;\n }\n\n if (action !== 'send' || !param1) {\n return;\n }\n\n const gaAnonAppId = await this.appIdService.getAnonymousAppId();\n const version = encodeURIComponent(this.appVersion);\n let message = 'v=1&tid=' + this.gaTrackingId + '&cid=' + gaAnonAppId + '&cd1=' + version;\n\n if (param1 === 'pageview' && param2) {\n message += this.gaTrackPageView(param2);\n } else if (typeof param1 === 'object' && param1.hitType === 'pageview') {\n message += this.gaTrackPageView(param1.page);\n } else if (param1 === 'event' && param2) {\n message += this.gaTrackEvent(param2);\n } else if (typeof param1 === 'object' && param1.hitType === 'event') {\n message += this.gaTrackEvent(param1);\n }\n\n const request = new XMLHttpRequest();\n request.open('POST', 'https://www.google-analytics.com/collect', true);\n request.send(message);\n }\n\n private gaTrackEvent(options: any) {\n return '&t=event&ec=' + (options.eventCategory ? encodeURIComponent(options.eventCategory) : 'Event') +\n '&ea=' + encodeURIComponent(options.eventAction) +\n (options.eventLabel ? '&el=' + encodeURIComponent(options.eventLabel) : '') +\n (options.eventValue ? '&ev=' + encodeURIComponent(options.eventValue) : '') +\n (options.page ? '&dp=' + this.cleanPagePath(options.page) : '');\n }\n\n private gaTrackPageView(pagePath: string) {\n return '&t=pageview&dp=' + this.cleanPagePath(pagePath);\n }\n\n private cleanPagePath(pagePath: string) {\n const paramIndex = pagePath.indexOf('?');\n if (paramIndex > -1) {\n pagePath = pagePath.substring(0, paramIndex);\n }\n if (pagePath.indexOf('!/') === 0 || pagePath.indexOf('#/') === 0) {\n pagePath = pagePath.substring(1);\n }\n const pathParts = pagePath.split('/');\n const newPathParts: string[] = [];\n pathParts.forEach(p => {\n if (p.match(/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i)) {\n newPathParts.push('__guid__');\n } else {\n newPathParts.push(p);\n }\n });\n return encodeURIComponent(newPathParts.join('/'));\n }\n}\n","export enum LogLevelType {\n Debug,\n Info,\n Warning,\n Error,\n}\n","import { EventType } from '../enums/eventType';\n\nimport { EventData } from '../models/data/eventData';\n\nimport { EventRequest } from '../models/request/eventRequest';\n\nimport { ApiService } from '../abstractions/api.service';\nimport { CipherService } from '../abstractions/cipher.service';\nimport { EventService as EventServiceAbstraction } from '../abstractions/event.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { UserService } from '../abstractions/user.service';\n\nimport { ConstantsService } from './constants.service';\n\nexport class EventService implements EventServiceAbstraction {\n private inited = false;\n\n constructor(private storageService: StorageService, private apiService: ApiService,\n private userService: UserService, private cipherService: CipherService) { }\n\n init(checkOnInterval: boolean) {\n if (this.inited) {\n return;\n }\n\n this.inited = true;\n if (checkOnInterval) {\n this.uploadEvents();\n setInterval(() => this.uploadEvents(), 60 * 1000); // check every 60 seconds\n }\n }\n\n async collect(eventType: EventType, cipherId: string = null, uploadImmediately = false): Promise {\n const authed = await this.userService.isAuthenticated();\n if (!authed) {\n return;\n }\n const organizations = await this.userService.getAllOrganizations();\n if (organizations == null) {\n return;\n }\n const orgIds = new Set(organizations.filter(o => o.useEvents).map(o => o.id));\n if (orgIds.size === 0) {\n return;\n }\n if (cipherId != null) {\n const cipher = await this.cipherService.get(cipherId);\n if (cipher == null || cipher.organizationId == null || !orgIds.has(cipher.organizationId)) {\n return;\n }\n }\n let eventCollection = await this.storageService.get(ConstantsService.eventCollectionKey);\n if (eventCollection == null) {\n eventCollection = [];\n }\n const event = new EventData();\n event.type = eventType;\n event.cipherId = cipherId;\n event.date = new Date().toISOString();\n eventCollection.push(event);\n await this.storageService.save(ConstantsService.eventCollectionKey, eventCollection);\n if (uploadImmediately) {\n await this.uploadEvents();\n }\n }\n\n async uploadEvents(): Promise {\n const authed = await this.userService.isAuthenticated();\n if (!authed) {\n return;\n }\n const eventCollection = await this.storageService.get(ConstantsService.eventCollectionKey);\n if (eventCollection == null || eventCollection.length === 0) {\n return;\n }\n const request = eventCollection.map(e => {\n const req = new EventRequest();\n req.type = e.type;\n req.cipherId = e.cipherId;\n req.date = e.date;\n return req;\n });\n try {\n await this.apiService.postEventsCollect(request);\n this.clearEvents();\n } catch { }\n }\n\n async clearEvents(): Promise {\n await this.storageService.remove(ConstantsService.eventCollectionKey);\n }\n}\n","import { EventType } from '../../enums/eventType';\n\nexport class EventData {\n type: EventType;\n cipherId: string;\n date: string;\n}\n","import { EventType } from '../../enums/eventType';\n\nexport class EventRequest {\n type: EventType;\n cipherId: string;\n date: string;\n}\n","import * as papa from 'papaparse';\n\nimport { CipherType } from '../enums/cipherType';\n\nimport { ApiService } from '../abstractions/api.service';\nimport { CipherService } from '../abstractions/cipher.service';\nimport { ExportService as ExportServiceAbstraction } from '../abstractions/export.service';\nimport { FolderService } from '../abstractions/folder.service';\n\nimport { CipherView } from '../models/view/cipherView';\nimport { CollectionView } from '../models/view/collectionView';\nimport { FolderView } from '../models/view/folderView';\n\nimport { Cipher } from '../models/domain/cipher';\nimport { Collection } from '../models/domain/collection';\nimport { Folder } from '../models/domain/folder';\n\nimport { CipherData } from '../models/data/cipherData';\nimport { CollectionData } from '../models/data/collectionData';\nimport { CollectionDetailsResponse } from '../models/response/collectionResponse';\n\nimport { CipherWithIds as CipherExport } from '../models/export/cipherWithIds';\nimport { CollectionWithId as CollectionExport } from '../models/export/collectionWithId';\nimport { FolderWithId as FolderExport } from '../models/export/folderWithId';\n\nexport class ExportService implements ExportServiceAbstraction {\n constructor(private folderService: FolderService, private cipherService: CipherService,\n private apiService: ApiService) { }\n\n async getExport(format: 'csv' | 'json' | 'encrypted_json' = 'csv'): Promise {\n if (format === 'encrypted_json') {\n return this.getEncryptedExport();\n } else {\n return this.getDecryptedExport(format);\n }\n }\n\n async getOrganizationExport(organizationId: string,\n format: 'csv' | 'json' | 'encrypted_json' = 'csv'): Promise {\n if (format === 'encrypted_json') {\n return this.getOrganizationEncryptedExport(organizationId);\n } else {\n return this.getOrganizationDecryptedExport(organizationId, format);\n }\n }\n\n getFileName(prefix: string = null, extension: string = 'csv'): string {\n const now = new Date();\n const dateString =\n now.getFullYear() + '' + this.padNumber(now.getMonth() + 1, 2) + '' + this.padNumber(now.getDate(), 2) +\n this.padNumber(now.getHours(), 2) + '' + this.padNumber(now.getMinutes(), 2) +\n this.padNumber(now.getSeconds(), 2);\n\n return 'bitwarden' + (prefix ? ('_' + prefix) : '') + '_export_' + dateString + '.' + extension;\n }\n\n private async getDecryptedExport(format: 'json' | 'csv'): Promise {\n let decFolders: FolderView[] = [];\n let decCiphers: CipherView[] = [];\n const promises = [];\n\n promises.push(this.folderService.getAllDecrypted().then(folders => {\n decFolders = folders;\n }));\n\n promises.push(this.cipherService.getAllDecrypted().then(ciphers => {\n decCiphers = ciphers.filter(f => f.deletedDate == null);\n }));\n\n await Promise.all(promises);\n\n if (format === 'csv') {\n const foldersMap = new Map();\n decFolders.forEach(f => {\n if (f.id != null) {\n foldersMap.set(f.id, f);\n }\n });\n\n const exportCiphers: any[] = [];\n decCiphers.forEach(c => {\n // only export logins and secure notes\n if (c.type !== CipherType.Login && c.type !== CipherType.SecureNote) {\n return;\n }\n if (c.organizationId != null) {\n return;\n }\n\n const cipher: any = {};\n cipher.folder = c.folderId != null && foldersMap.has(c.folderId) ?\n foldersMap.get(c.folderId).name : null;\n cipher.favorite = c.favorite ? 1 : null;\n this.buildCommonCipher(cipher, c);\n exportCiphers.push(cipher);\n });\n\n return papa.unparse(exportCiphers);\n } else {\n const jsonDoc: any = {\n encrypted: false,\n folders: [],\n items: [],\n };\n\n decFolders.forEach(f => {\n if (f.id == null) {\n return;\n }\n const folder = new FolderExport();\n folder.build(f);\n jsonDoc.folders.push(folder);\n });\n\n decCiphers.forEach(c => {\n if (c.organizationId != null) {\n return;\n }\n const cipher = new CipherExport();\n cipher.build(c);\n cipher.collectionIds = null;\n jsonDoc.items.push(cipher);\n });\n\n return JSON.stringify(jsonDoc, null, ' ');\n }\n }\n\n private async getEncryptedExport(): Promise {\n let folders: Folder[] = [];\n let ciphers: Cipher[] = [];\n const promises = [];\n\n promises.push(this.folderService.getAll().then(f => {\n folders = f;\n }));\n\n promises.push(this.cipherService.getAll().then(c => {\n ciphers = c.filter(f => f.deletedDate == null);\n }));\n\n await Promise.all(promises);\n\n const jsonDoc: any = {\n encrypted: true,\n folders: [],\n items: [],\n };\n\n folders.forEach(f => {\n if (f.id == null) {\n return;\n }\n const folder = new FolderExport();\n folder.build(f);\n jsonDoc.folders.push(folder);\n });\n\n ciphers.forEach(c => {\n if (c.organizationId != null) {\n return;\n }\n const cipher = new CipherExport();\n cipher.build(c);\n cipher.collectionIds = null;\n jsonDoc.items.push(cipher);\n });\n\n return JSON.stringify(jsonDoc, null, ' ');\n }\n\n private async getOrganizationDecryptedExport(organizationId: string, format: 'json' | 'csv'): Promise {\n const decCollections: CollectionView[] = [];\n const decCiphers: CipherView[] = [];\n const promises = [];\n\n promises.push(this.apiService.getCollections(organizationId).then(collections => {\n const collectionPromises: any = [];\n if (collections != null && collections.data != null && collections.data.length > 0) {\n collections.data.forEach(c => {\n const collection = new Collection(new CollectionData(c as CollectionDetailsResponse));\n collectionPromises.push(collection.decrypt().then(decCol => {\n decCollections.push(decCol);\n }));\n });\n }\n return Promise.all(collectionPromises);\n }));\n\n promises.push(this.apiService.getCiphersOrganization(organizationId).then(ciphers => {\n const cipherPromises: any = [];\n if (ciphers != null && ciphers.data != null && ciphers.data.length > 0) {\n ciphers.data.filter(c => c.deletedDate === null).forEach(c => {\n const cipher = new Cipher(new CipherData(c));\n cipherPromises.push(cipher.decrypt().then(decCipher => {\n decCiphers.push(decCipher);\n }));\n });\n }\n return Promise.all(cipherPromises);\n }));\n\n await Promise.all(promises);\n\n if (format === 'csv') {\n const collectionsMap = new Map();\n decCollections.forEach(c => {\n collectionsMap.set(c.id, c);\n });\n\n const exportCiphers: any[] = [];\n decCiphers.forEach(c => {\n // only export logins and secure notes\n if (c.type !== CipherType.Login && c.type !== CipherType.SecureNote) {\n return;\n }\n\n const cipher: any = {};\n cipher.collections = [];\n if (c.collectionIds != null) {\n cipher.collections = c.collectionIds.filter(id => collectionsMap.has(id))\n .map(id => collectionsMap.get(id).name);\n }\n this.buildCommonCipher(cipher, c);\n exportCiphers.push(cipher);\n });\n\n return papa.unparse(exportCiphers);\n } else {\n const jsonDoc: any = {\n encrypted: false,\n collections: [],\n items: [],\n };\n\n decCollections.forEach(c => {\n const collection = new CollectionExport();\n collection.build(c);\n jsonDoc.collections.push(collection);\n });\n\n decCiphers.forEach(c => {\n const cipher = new CipherExport();\n cipher.build(c);\n jsonDoc.items.push(cipher);\n });\n return JSON.stringify(jsonDoc, null, ' ');\n }\n }\n\n private async getOrganizationEncryptedExport(organizationId: string): Promise {\n const collections: Collection[] = [];\n const ciphers: Cipher[] = [];\n const promises = [];\n\n promises.push(this.apiService.getCollections(organizationId).then(c => {\n const collectionPromises: any = [];\n if (c != null && c.data != null && c.data.length > 0) {\n c.data.forEach(r => {\n const collection = new Collection(new CollectionData(r as CollectionDetailsResponse));\n collections.push(collection);\n });\n }\n return Promise.all(collectionPromises);\n }));\n\n promises.push(this.apiService.getCiphersOrganization(organizationId).then(c => {\n const cipherPromises: any = [];\n if (c != null && c.data != null && c.data.length > 0) {\n c.data.filter(item => item.deletedDate === null).forEach(item => {\n const cipher = new Cipher(new CipherData(item));\n ciphers.push(cipher);\n });\n }\n return Promise.all(cipherPromises);\n }));\n\n await Promise.all(promises);\n\n const jsonDoc: any = {\n encrypted: true,\n collections: [],\n items: [],\n };\n\n collections.forEach(c => {\n const collection = new CollectionExport();\n collection.build(c);\n jsonDoc.collections.push(collection);\n });\n\n ciphers.forEach(c => {\n const cipher = new CipherExport();\n cipher.build(c);\n jsonDoc.items.push(cipher);\n });\n return JSON.stringify(jsonDoc, null, ' ');\n }\n\n private padNumber(num: number, width: number, padCharacter: string = '0'): string {\n const numString = num.toString();\n return numString.length >= width ? numString :\n new Array(width - numString.length + 1).join(padCharacter) + numString;\n }\n\n private buildCommonCipher(cipher: any, c: CipherView) {\n cipher.type = null;\n cipher.name = c.name;\n cipher.notes = c.notes;\n cipher.fields = null;\n // Login props\n cipher.login_uri = null;\n cipher.login_username = null;\n cipher.login_password = null;\n cipher.login_totp = null;\n\n if (c.fields) {\n c.fields.forEach((f: any) => {\n if (!cipher.fields) {\n cipher.fields = '';\n } else {\n cipher.fields += '\\n';\n }\n\n cipher.fields += ((f.name || '') + ': ' + f.value);\n });\n }\n\n switch (c.type) {\n case CipherType.Login:\n cipher.type = 'login';\n cipher.login_username = c.login.username;\n cipher.login_password = c.login.password;\n cipher.login_totp = c.login.totp;\n\n if (c.login.uris) {\n cipher.login_uri = [];\n c.login.uris.forEach(u => {\n cipher.login_uri.push(u.uri);\n });\n }\n break;\n case CipherType.SecureNote:\n cipher.type = 'note';\n break;\n default:\n return;\n }\n\n return cipher;\n }\n}\n","import { CipherType } from '../../enums/cipherType';\n\nimport { CipherView } from '../view/cipherView';\n\nimport { Cipher as CipherDomain } from '../domain/cipher';\nimport { CipherString } from '../domain/cipherString';\n\nimport { Card } from './card';\nimport { Field } from './field';\nimport { Identity } from './identity';\nimport { Login } from './login';\nimport { SecureNote } from './secureNote';\n\nexport class Cipher {\n static template(): Cipher {\n const req = new Cipher();\n req.organizationId = null;\n req.folderId = null;\n req.type = CipherType.Login;\n req.name = 'Item name';\n req.notes = 'Some notes about this item.';\n req.favorite = false;\n req.fields = [];\n req.login = null;\n req.secureNote = null;\n req.card = null;\n req.identity = null;\n return req;\n }\n\n static toView(req: Cipher, view = new CipherView()) {\n view.type = req.type;\n view.folderId = req.folderId;\n if (view.organizationId == null) {\n view.organizationId = req.organizationId;\n }\n view.name = req.name;\n view.notes = req.notes;\n view.favorite = req.favorite;\n\n if (req.fields != null) {\n view.fields = req.fields.map(f => Field.toView(f));\n }\n\n switch (req.type) {\n case CipherType.Login:\n view.login = Login.toView(req.login);\n break;\n case CipherType.SecureNote:\n view.secureNote = SecureNote.toView(req.secureNote);\n break;\n case CipherType.Card:\n view.card = Card.toView(req.card);\n break;\n case CipherType.Identity:\n view.identity = Identity.toView(req.identity);\n break;\n }\n\n return view;\n }\n\n static toDomain(req: Cipher, domain = new CipherDomain()) {\n domain.type = req.type;\n domain.folderId = req.folderId;\n if (domain.organizationId == null) {\n domain.organizationId = req.organizationId;\n }\n domain.name = req.name != null ? new CipherString(req.name) : null;\n domain.notes = req.notes != null ? new CipherString(req.notes) : null;\n domain.favorite = req.favorite;\n\n if (req.fields != null) {\n domain.fields = req.fields.map(f => Field.toDomain(f));\n }\n\n switch (req.type) {\n case CipherType.Login:\n domain.login = Login.toDomain(req.login);\n break;\n case CipherType.SecureNote:\n domain.secureNote = SecureNote.toDomain(req.secureNote);\n break;\n case CipherType.Card:\n domain.card = Card.toDomain(req.card);\n break;\n case CipherType.Identity:\n domain.identity = Identity.toDomain(req.identity);\n break;\n }\n\n return domain;\n }\n\n type: CipherType;\n folderId: string;\n organizationId: string;\n name: string;\n notes: string;\n favorite: boolean;\n fields: Field[];\n login: Login;\n secureNote: SecureNote;\n card: Card;\n identity: Identity;\n\n // Use build method instead of ctor so that we can control order of JSON stringify for pretty print\n build(o: CipherView | CipherDomain) {\n this.organizationId = o.organizationId;\n this.folderId = o.folderId;\n this.type = o.type;\n\n if (o instanceof CipherView) {\n this.name = o.name;\n this.notes = o.notes;\n } else {\n this.name = o.name?.encryptedString;\n this.notes = o.notes?.encryptedString;\n }\n\n this.favorite = o.favorite;\n\n if (o.fields != null) {\n if (o instanceof CipherView) {\n this.fields = o.fields.map(f => new Field(f));\n } else {\n this.fields = o.fields.map(f => new Field(f));\n }\n }\n\n switch (o.type) {\n case CipherType.Login:\n this.login = new Login(o.login);\n break;\n case CipherType.SecureNote:\n this.secureNote = new SecureNote(o.secureNote);\n break;\n case CipherType.Card:\n this.card = new Card(o.card);\n break;\n case CipherType.Identity:\n this.identity = new Identity(o.identity);\n break;\n }\n }\n}\n","import { CardView } from '../view/cardView';\n\nimport { Card as CardDomain } from '../domain/card';\nimport { CipherString } from '../domain/cipherString';\n\nexport class Card {\n static template(): Card {\n const req = new Card();\n req.cardholderName = 'John Doe';\n req.brand = 'visa';\n req.number = '4242424242424242';\n req.expMonth = '04';\n req.expYear = '2023';\n req.code = '123';\n return req;\n }\n\n static toView(req: Card, view = new CardView()) {\n view.cardholderName = req.cardholderName;\n view.brand = req.brand;\n view.number = req.number;\n view.expMonth = req.expMonth;\n view.expYear = req.expYear;\n view.code = req.code;\n return view;\n }\n\n static toDomain(req: Card, domain = new CardDomain()) {\n domain.cardholderName = req.cardholderName != null ? new CipherString(req.cardholderName) : null;\n domain.brand = req.brand != null ? new CipherString(req.brand) : null;\n domain.number = req.number != null ? new CipherString(req.number) : null;\n domain.expMonth = req.expMonth != null ? new CipherString(req.expMonth) : null;\n domain.expYear = req.expYear != null ? new CipherString(req.expYear) : null;\n domain.code = req.code != null ? new CipherString(req.code) : null;\n return domain;\n }\n\n cardholderName: string;\n brand: string;\n number: string;\n expMonth: string;\n expYear: string;\n code: string;\n\n constructor(o?: CardView | CardDomain) {\n if (o == null) {\n return;\n }\n\n if (o instanceof CardView) {\n this.cardholderName = o.cardholderName;\n this.brand = o.brand;\n this.number = o.number;\n this.expMonth = o.expMonth;\n this.expYear = o.expYear;\n this.code = o.code;\n } else {\n this.cardholderName = o.cardholderName?.encryptedString;\n this.brand = o.brand?.encryptedString;\n this.number = o.number?.encryptedString;\n this.expMonth = o.expMonth?.encryptedString;\n this.expYear = o.expYear?.encryptedString;\n this.code = o.code?.encryptedString;\n }\n }\n}\n","import { FieldType } from '../../enums/fieldType';\n\nimport { FieldView } from '../view/fieldView';\n\nimport { CipherString } from '../domain/cipherString';\nimport { Field as FieldDomain } from '../domain/field';\n\nexport class Field {\n static template(): Field {\n const req = new Field();\n req.name = 'Field name';\n req.value = 'Some value';\n req.type = FieldType.Text;\n return req;\n }\n\n static toView(req: Field, view = new FieldView()) {\n view.type = req.type;\n view.value = req.value;\n view.name = req.name;\n return view;\n }\n\n static toDomain(req: Field, domain = new FieldDomain()) {\n domain.type = req.type;\n domain.value = req.value != null ? new CipherString(req.value) : null;\n domain.name = req.name != null ? new CipherString(req.name) : null;\n return domain;\n }\n\n name: string;\n value: string;\n type: FieldType;\n\n constructor(o?: FieldView | FieldDomain) {\n if (o == null) {\n return;\n }\n\n if (o instanceof FieldView) {\n this.name = o.name;\n this.value = o.value;\n } else {\n this.name = o.name?.encryptedString;\n this.value = o.value?.encryptedString;\n }\n this.type = o.type;\n }\n}\n","import { IdentityView } from '../view/identityView';\n\nimport { CipherString } from '../domain/cipherString';\nimport { Identity as IdentityDomain } from '../domain/identity';\n\nexport class Identity {\n static template(): Identity {\n const req = new Identity();\n req.title = 'Mr';\n req.firstName = 'John';\n req.middleName = 'William';\n req.lastName = 'Doe';\n req.address1 = '123 Any St';\n req.address2 = 'Apt #123';\n req.address3 = null;\n req.city = 'New York';\n req.state = 'NY';\n req.postalCode = '10001';\n req.country = 'US';\n req.company = 'Acme Inc.';\n req.email = 'john@company.com';\n req.phone = '5555551234';\n req.ssn = '000-123-4567';\n req.username = 'jdoe';\n req.passportNumber = 'US-123456789';\n req.licenseNumber = 'D123-12-123-12333';\n return req;\n }\n\n static toView(req: Identity, view = new IdentityView()) {\n view.title = req.title;\n view.firstName = req.firstName;\n view.middleName = req.middleName;\n view.lastName = req.lastName;\n view.address1 = req.address1;\n view.address2 = req.address2;\n view.address3 = req.address3;\n view.city = req.city;\n view.state = req.state;\n view.postalCode = req.postalCode;\n view.country = req.country;\n view.company = req.company;\n view.email = req.email;\n view.phone = req.phone;\n view.ssn = req.ssn;\n view.username = req.username;\n view.passportNumber = req.passportNumber;\n view.licenseNumber = req.licenseNumber;\n return view;\n }\n\n static toDomain(req: Identity, domain = new IdentityDomain()) {\n domain.title = req.title != null ? new CipherString(req.title) : null;\n domain.firstName = req.firstName != null ? new CipherString(req.firstName) : null;\n domain.middleName = req.middleName != null ? new CipherString(req.middleName) : null;\n domain.lastName = req.lastName != null ? new CipherString(req.lastName) : null;\n domain.address1 = req.address1 != null ? new CipherString(req.address1) : null;\n domain.address2 = req.address2 != null ? new CipherString(req.address2) : null;\n domain.address3 = req.address3 != null ? new CipherString(req.address3) : null;\n domain.city = req.city != null ? new CipherString(req.city) : null;\n domain.state = req.state != null ? new CipherString(req.state) : null;\n domain.postalCode = req.postalCode != null ? new CipherString(req.postalCode) : null;\n domain.country = req.country != null ? new CipherString(req.country) : null;\n domain.company = req.company != null ? new CipherString(req.company) : null;\n domain.email = req.email != null ? new CipherString(req.email) : null;\n domain.phone = req.phone != null ? new CipherString(req.phone) : null;\n domain.ssn = req.ssn != null ? new CipherString(req.ssn) : null;\n domain.username = req.username != null ? new CipherString(req.username) : null;\n domain.passportNumber = req.passportNumber != null ? new CipherString(req.passportNumber) : null;\n domain.licenseNumber = req.licenseNumber != null ? new CipherString(req.licenseNumber) : null;\n return domain;\n }\n\n title: string;\n firstName: string;\n middleName: string;\n lastName: string;\n address1: string;\n address2: string;\n address3: string;\n city: string;\n state: string;\n postalCode: string;\n country: string;\n company: string;\n email: string;\n phone: string;\n ssn: string;\n username: string;\n passportNumber: string;\n licenseNumber: string;\n\n constructor(o?: IdentityView | IdentityDomain) {\n if (o == null) {\n return;\n }\n\n if (o instanceof IdentityView) {\n this.title = o.title;\n this.firstName = o.firstName;\n this.middleName = o.middleName;\n this.lastName = o.lastName;\n this.address1 = o.address1;\n this.address2 = o.address2;\n this.address3 = o.address3;\n this.city = o.city;\n this.state = o.state;\n this.postalCode = o.postalCode;\n this.country = o.country;\n this.company = o.company;\n this.email = o.email;\n this.phone = o.phone;\n this.ssn = o.ssn;\n this.username = o.username;\n this.passportNumber = o.passportNumber;\n this.licenseNumber = o.licenseNumber;\n } else {\n this.title = o.title?.encryptedString;\n this.firstName = o.firstName?.encryptedString;\n this.middleName = o.middleName?.encryptedString;\n this.lastName = o.lastName?.encryptedString;\n this.address1 = o.address1?.encryptedString;\n this.address2 = o.address2?.encryptedString;\n this.address3 = o.address3?.encryptedString;\n this.city = o.city?.encryptedString;\n this.state = o.state?.encryptedString;\n this.postalCode = o.postalCode?.encryptedString;\n this.country = o.country?.encryptedString;\n this.company = o.company?.encryptedString;\n this.email = o.email?.encryptedString;\n this.phone = o.phone?.encryptedString;\n this.ssn = o.ssn?.encryptedString;\n this.username = o.username?.encryptedString;\n this.passportNumber = o.passportNumber?.encryptedString;\n this.licenseNumber = o.licenseNumber?.encryptedString;\n }\n }\n}\n","import { LoginUri } from './loginUri';\n\nimport { LoginView } from '../view/loginView';\n\nimport { CipherString } from '../domain/cipherString';\nimport { Login as LoginDomain } from '../domain/login';\n\nexport class Login {\n static template(): Login {\n const req = new Login();\n req.uris = [];\n req.username = 'jdoe';\n req.password = 'myp@ssword123';\n req.totp = 'JBSWY3DPEHPK3PXP';\n return req;\n }\n\n static toView(req: Login, view = new LoginView()) {\n if (req.uris != null) {\n view.uris = req.uris.map(u => LoginUri.toView(u));\n }\n view.username = req.username;\n view.password = req.password;\n view.totp = req.totp;\n return view;\n }\n\n static toDomain(req: Login, domain = new LoginDomain()) {\n if (req.uris != null) {\n domain.uris = req.uris.map(u => LoginUri.toDomain(u));\n }\n domain.username = req.username != null ? new CipherString(req.username) : null;\n domain.password = req.password != null ? new CipherString(req.password) : null;\n domain.totp = req.totp != null ? new CipherString(req.totp) : null;\n return domain;\n }\n\n uris: LoginUri[];\n username: string;\n password: string;\n totp: string;\n\n constructor(o?: LoginView | LoginDomain) {\n if (o == null) {\n return;\n }\n\n if (o.uris != null) {\n if (o instanceof LoginView) {\n this.uris = o.uris.map(u => new LoginUri(u));\n } else {\n this.uris = o.uris.map(u => new LoginUri(u));\n }\n }\n\n if (o instanceof LoginView) {\n this.username = o.username;\n this.password = o.password;\n this.totp = o.totp;\n } else {\n this.username = o.username?.encryptedString;\n this.password = o.password?.encryptedString;\n this.totp = o.totp?.encryptedString;\n }\n }\n}\n","import { UriMatchType } from '../../enums/uriMatchType';\n\nimport { LoginUriView } from '../view/loginUriView';\n\nimport { CipherString } from '../domain/cipherString';\nimport { LoginUri as LoginUriDomain } from '../domain/loginUri';\n\nexport class LoginUri {\n static template(): LoginUri {\n const req = new LoginUri();\n req.uri = 'https://google.com';\n req.match = null;\n return req;\n }\n\n static toView(req: LoginUri, view = new LoginUriView()) {\n view.uri = req.uri;\n view.match = req.match;\n return view;\n }\n\n static toDomain(req: LoginUri, domain = new LoginUriDomain()) {\n domain.uri = req.uri != null ? new CipherString(req.uri) : null;\n domain.match = req.match;\n return domain;\n }\n\n uri: string;\n match: UriMatchType = null;\n\n constructor(o?: LoginUriView | LoginUriDomain) {\n if (o == null) {\n return;\n }\n\n if (o instanceof LoginUriView) {\n this.uri = o.uri;\n } else {\n this.uri = o.uri?.encryptedString;\n }\n this.match = o.match;\n }\n}\n","import { SecureNoteType } from '../../enums/secureNoteType';\n\nimport { SecureNoteView } from '../view/secureNoteView';\n\nimport { SecureNote as SecureNoteDomain } from '../domain/secureNote';\n\nexport class SecureNote {\n static template(): SecureNote {\n const req = new SecureNote();\n req.type = SecureNoteType.Generic;\n return req;\n }\n\n static toView(req: SecureNote, view = new SecureNoteView()) {\n view.type = req.type;\n return view;\n }\n\n static toDomain(req: SecureNote, view = new SecureNoteDomain()) {\n view.type = req.type;\n return view;\n }\n\n type: SecureNoteType;\n\n constructor(o?: SecureNoteView | SecureNoteDomain) {\n if (o == null) {\n return;\n }\n\n this.type = o.type;\n }\n}\n","import { CollectionView } from '../view/collectionView';\n\nimport { CipherString } from '../domain/cipherString';\nimport { Collection as CollectionDomain } from '../domain/collection';\n\nexport class Collection {\n static template(): Collection {\n const req = new Collection();\n req.organizationId = '00000000-0000-0000-0000-000000000000';\n req.name = 'Collection name';\n req.externalId = null;\n return req;\n }\n\n static toView(req: Collection, view = new CollectionView()) {\n view.name = req.name;\n view.externalId = req.externalId;\n if (view.organizationId == null) {\n view.organizationId = req.organizationId;\n }\n return view;\n }\n\n static toDomain(req: Collection, domain = new CollectionDomain()) {\n domain.name = req.name != null ? new CipherString(req.name) : null;\n domain.externalId = req.externalId;\n if (domain.organizationId == null) {\n domain.organizationId = req.organizationId;\n }\n return domain;\n }\n\n organizationId: string;\n name: string;\n externalId: string;\n\n // Use build method instead of ctor so that we can control order of JSON stringify for pretty print\n build(o: CollectionView | CollectionDomain) {\n this.organizationId = o.organizationId;\n if (o instanceof CollectionView) {\n this.name = o.name;\n } else {\n this.name = o.name?.encryptedString;\n }\n this.externalId = o.externalId;\n }\n}\n","import { FolderView } from '../view/folderView';\n\nimport { CipherString } from '../domain/cipherString';\nimport { Folder as FolderDomain } from '../domain/folder';\n\nexport class Folder {\n static template(): Folder {\n const req = new Folder();\n req.name = 'Folder name';\n return req;\n }\n\n static toView(req: Folder, view = new FolderView()) {\n view.name = req.name;\n return view;\n }\n\n static toDomain(req: Folder, domain = new FolderDomain()) {\n domain.name = req.name != null ? new CipherString(req.name) : null;\n return domain;\n }\n\n name: string;\n\n // Use build method instead of ctor so that we can control order of JSON stringify for pretty print\n build(o: FolderView | FolderDomain) {\n if (o instanceof FolderView) {\n this.name = o.name;\n } else {\n this.name = o.name?.encryptedString;\n }\n }\n}\n","import { ApiService } from '../abstractions/api.service';\nimport { CipherService } from '../abstractions/cipher.service';\nimport { CollectionService } from '../abstractions/collection.service';\nimport { FolderService } from '../abstractions/folder.service';\nimport { I18nService } from '../abstractions/i18n.service';\nimport {\n ImportOption,\n ImportService as ImportServiceAbstraction,\n} from '../abstractions/import.service';\nimport { PlatformUtilsService } from '../abstractions/platformUtils.service';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CipherType } from '../enums/cipherType';\n\nimport { Utils } from '../misc/utils';\n\nimport { CipherRequest } from '../models/request/cipherRequest';\nimport { CollectionRequest } from '../models/request/collectionRequest';\nimport { FolderRequest } from '../models/request/folderRequest';\nimport { ImportCiphersRequest } from '../models/request/importCiphersRequest';\nimport { ImportOrganizationCiphersRequest } from '../models/request/importOrganizationCiphersRequest';\nimport { KvpRequest } from '../models/request/kvpRequest';\n\nimport { ErrorResponse } from '../models/response/errorResponse';\nimport { CipherView } from '../models/view/cipherView';\n\nimport { AscendoCsvImporter } from '../importers/ascendoCsvImporter';\nimport { AvastCsvImporter } from '../importers/avastCsvImporter';\nimport { AvastJsonImporter } from '../importers/avastJsonImporter';\nimport { AviraCsvImporter } from '../importers/aviraCsvImporter';\nimport { BitwardenCsvImporter } from '../importers/bitwardenCsvImporter';\nimport { BitwardenJsonImporter } from '../importers/bitwardenJsonImporter';\nimport { BlackBerryCsvImporter } from '../importers/blackBerryCsvImporter';\nimport { BlurCsvImporter } from '../importers/blurCsvImporter';\nimport { ButtercupCsvImporter } from '../importers/buttercupCsvImporter';\nimport { ChromeCsvImporter } from '../importers/chromeCsvImporter';\nimport { ClipperzHtmlImporter } from '../importers/clipperzHtmlImporter';\nimport { CodebookCsvImporter } from '../importers/codebookCsvImporter';\nimport { DashlaneJsonImporter } from '../importers/dashlaneJsonImporter';\nimport { EncryptrCsvImporter } from '../importers/encryptrCsvImporter';\nimport { EnpassCsvImporter } from '../importers/enpassCsvImporter';\nimport { EnpassJsonImporter } from '../importers/enpassJsonImporter';\nimport { FirefoxCsvImporter } from '../importers/firefoxCsvImporter';\nimport { FSecureFskImporter } from '../importers/fsecureFskImporter';\nimport { GnomeJsonImporter } from '../importers/gnomeJsonImporter';\nimport { Importer } from '../importers/importer';\nimport { KasperskyTxtImporter } from '../importers/kasperskyTxtImporter';\nimport { KeePass2XmlImporter } from '../importers/keepass2XmlImporter';\nimport { KeePassXCsvImporter } from '../importers/keepassxCsvImporter';\nimport { KeeperCsvImporter } from '../importers/keeperCsvImporter';\nimport { LastPassCsvImporter } from '../importers/lastpassCsvImporter';\nimport { LogMeOnceCsvImporter } from '../importers/logMeOnceCsvImporter';\nimport { MeldiumCsvImporter } from '../importers/meldiumCsvImporter';\nimport { MSecureCsvImporter } from '../importers/msecureCsvImporter';\nimport { MykiCsvImporter } from '../importers/mykiCsvImporter';\nimport { OnePassword1PifImporter } from '../importers/onepasswordImporters/onepassword1PifImporter';\nimport { OnePasswordMacCsvImporter } from '../importers/onepasswordImporters/onepasswordMacCsvImporter';\nimport { OnePasswordWinCsvImporter } from '../importers/onepasswordImporters/onepasswordWinCsvImporter';\nimport { PadlockCsvImporter } from '../importers/padlockCsvImporter';\nimport { PassKeepCsvImporter } from '../importers/passkeepCsvImporter';\nimport { PassmanJsonImporter } from '../importers/passmanJsonImporter';\nimport { PasspackCsvImporter } from '../importers/passpackCsvImporter';\nimport { PasswordAgentCsvImporter } from '../importers/passwordAgentCsvImporter';\nimport { PasswordBossJsonImporter } from '../importers/passwordBossJsonImporter';\nimport { PasswordDragonXmlImporter } from '../importers/passwordDragonXmlImporter';\nimport { PasswordSafeXmlImporter } from '../importers/passwordSafeXmlImporter';\nimport { PasswordWalletTxtImporter } from '../importers/passwordWalletTxtImporter';\nimport { RememBearCsvImporter } from '../importers/rememBearCsvImporter';\nimport { RoboFormCsvImporter } from '../importers/roboformCsvImporter';\nimport { SafeInCloudXmlImporter } from '../importers/safeInCloudXmlImporter';\nimport { SaferPassCsvImporter } from '../importers/saferpassCsvImport';\nimport { SecureSafeCsvImporter } from '../importers/secureSafeCsvImporter';\nimport { SplashIdCsvImporter } from '../importers/splashIdCsvImporter';\nimport { StickyPasswordXmlImporter } from '../importers/stickyPasswordXmlImporter';\nimport { TrueKeyCsvImporter } from '../importers/truekeyCsvImporter';\nimport { UpmCsvImporter } from '../importers/upmCsvImporter';\nimport { YotiCsvImporter } from '../importers/yotiCsvImporter';\nimport { ZohoVaultCsvImporter } from '../importers/zohoVaultCsvImporter';\n\nexport class ImportService implements ImportServiceAbstraction {\n featuredImportOptions = [\n { id: 'bitwardenjson', name: 'Bitwarden (json)' },\n { id: 'bitwardencsv', name: 'Bitwarden (csv)' },\n { id: 'lastpasscsv', name: 'LastPass (csv)' },\n { id: 'chromecsv', name: 'Chrome (csv)' },\n { id: 'firefoxcsv', name: 'Firefox (csv)' },\n { id: 'keepass2xml', name: 'KeePass 2 (xml)' },\n { id: '1password1pif', name: '1Password (1pif)' },\n { id: 'dashlanejson', name: 'Dashlane (json)' },\n ];\n\n regularImportOptions: ImportOption[] = [\n { id: 'keepassxcsv', name: 'KeePassX (csv)' },\n { id: '1passwordwincsv', name: '1Password 6 and 7 Windows (csv)' },\n { id: '1passwordmaccsv', name: '1Password 6 and 7 Mac (csv)' },\n { id: 'roboformcsv', name: 'RoboForm (csv)' },\n { id: 'keepercsv', name: 'Keeper (csv)' },\n { id: 'enpasscsv', name: 'Enpass (csv)' },\n { id: 'enpassjson', name: 'Enpass (json)' },\n { id: 'safeincloudxml', name: 'SafeInCloud (xml)' },\n { id: 'pwsafexml', name: 'Password Safe (xml)' },\n { id: 'stickypasswordxml', name: 'Sticky Password (xml)' },\n { id: 'msecurecsv', name: 'mSecure (csv)' },\n { id: 'truekeycsv', name: 'True Key (csv)' },\n { id: 'passwordbossjson', name: 'Password Boss (json)' },\n { id: 'zohovaultcsv', name: 'Zoho Vault (csv)' },\n { id: 'splashidcsv', name: 'SplashID (csv)' },\n { id: 'passworddragonxml', name: 'Password Dragon (xml)' },\n { id: 'padlockcsv', name: 'Padlock (csv)' },\n { id: 'passboltcsv', name: 'Passbolt (csv)' },\n { id: 'clipperzhtml', name: 'Clipperz (html)' },\n { id: 'aviracsv', name: 'Avira (csv)' },\n { id: 'saferpasscsv', name: 'SaferPass (csv)' },\n { id: 'upmcsv', name: 'Universal Password Manager (csv)' },\n { id: 'ascendocsv', name: 'Ascendo DataVault (csv)' },\n { id: 'meldiumcsv', name: 'Meldium (csv)' },\n { id: 'passkeepcsv', name: 'PassKeep (csv)' },\n { id: 'operacsv', name: 'Opera (csv)' },\n { id: 'vivaldicsv', name: 'Vivaldi (csv)' },\n { id: 'gnomejson', name: 'GNOME Passwords and Keys/Seahorse (json)' },\n { id: 'blurcsv', name: 'Blur (csv)' },\n { id: 'passwordagentcsv', name: 'Password Agent (csv)' },\n { id: 'passpackcsv', name: 'Passpack (csv)' },\n { id: 'passmanjson', name: 'Passman (json)' },\n { id: 'avastcsv', name: 'Avast Passwords (csv)' },\n { id: 'avastjson', name: 'Avast Passwords (json)' },\n { id: 'fsecurefsk', name: 'F-Secure KEY (fsk)' },\n { id: 'kasperskytxt', name: 'Kaspersky Password Manager (txt)' },\n { id: 'remembearcsv', name: 'RememBear (csv)' },\n { id: 'passwordwallettxt', name: 'PasswordWallet (txt)' },\n { id: 'mykicsv', name: 'Myki (csv)' },\n { id: 'securesafecsv', name: 'SecureSafe (csv)' },\n { id: 'logmeoncecsv', name: 'LogMeOnce (csv)' },\n { id: 'blackberrycsv', name: 'BlackBerry Password Keeper (csv)' },\n { id: 'buttercupcsv', name: 'Buttercup (csv)' },\n { id: 'codebookcsv', name: 'Codebook (csv)' },\n { id: 'encryptrcsv', name: 'Encryptr (csv)' },\n { id: 'yoticsv', name: 'Yoti (csv)' },\n ];\n\n constructor(private cipherService: CipherService, private folderService: FolderService,\n private apiService: ApiService, private i18nService: I18nService,\n private collectionService: CollectionService, private platformUtilsService: PlatformUtilsService) { }\n\n getImportOptions(): ImportOption[] {\n return this.featuredImportOptions.concat(this.regularImportOptions);\n }\n\n async import(importer: Importer, fileContents: string, organizationId: string = null): Promise {\n const importResult = await importer.parse(fileContents);\n if (importResult.success) {\n if (importResult.folders.length === 0 && importResult.ciphers.length === 0) {\n return new Error(this.i18nService.t('importNothingError'));\n } else if (importResult.ciphers.length > 0) {\n const halfway = Math.floor(importResult.ciphers.length / 2);\n const last = importResult.ciphers.length - 1;\n\n if (this.badData(importResult.ciphers[0]) &&\n this.badData(importResult.ciphers[halfway]) &&\n this.badData(importResult.ciphers[last])) {\n return new Error(this.i18nService.t('importFormatError'));\n }\n }\n try {\n await this.postImport(importResult, organizationId);\n } catch (error) {\n const errorResponse = new ErrorResponse(error, 400);\n return this.handleServerError(errorResponse, importResult);\n }\n return null;\n } else {\n return new Error(this.i18nService.t('importFormatError'));\n }\n }\n\n getImporter(format: string, organizationId: string = null): Importer {\n const importer = this.getImporterInstance(format);\n if (importer == null) {\n return null;\n }\n importer.organizationId = organizationId;\n return importer;\n }\n\n private getImporterInstance(format: string) {\n if (format == null || format === '') {\n return null;\n }\n\n switch (format) {\n case 'bitwardencsv':\n return new BitwardenCsvImporter();\n case 'bitwardenjson':\n return new BitwardenJsonImporter();\n case 'lastpasscsv':\n case 'passboltcsv':\n return new LastPassCsvImporter();\n case 'keepassxcsv':\n return new KeePassXCsvImporter();\n case 'aviracsv':\n return new AviraCsvImporter();\n case 'blurcsv':\n return new BlurCsvImporter();\n case 'safeincloudxml':\n return new SafeInCloudXmlImporter();\n case 'padlockcsv':\n return new PadlockCsvImporter();\n case 'keepass2xml':\n return new KeePass2XmlImporter();\n case 'chromecsv':\n case 'operacsv':\n case 'vivaldicsv':\n return new ChromeCsvImporter();\n case 'firefoxcsv':\n return new FirefoxCsvImporter();\n case 'upmcsv':\n return new UpmCsvImporter();\n case 'saferpasscsv':\n return new SaferPassCsvImporter();\n case 'meldiumcsv':\n return new MeldiumCsvImporter();\n case '1password1pif':\n return new OnePassword1PifImporter();\n case '1passwordwincsv':\n return new OnePasswordWinCsvImporter();\n case '1passwordmaccsv':\n return new OnePasswordMacCsvImporter();\n case 'keepercsv':\n return new KeeperCsvImporter();\n case 'passworddragonxml':\n return new PasswordDragonXmlImporter();\n case 'enpasscsv':\n return new EnpassCsvImporter();\n case 'enpassjson':\n return new EnpassJsonImporter();\n case 'pwsafexml':\n return new PasswordSafeXmlImporter();\n case 'dashlanejson':\n return new DashlaneJsonImporter();\n case 'msecurecsv':\n return new MSecureCsvImporter();\n case 'stickypasswordxml':\n return new StickyPasswordXmlImporter();\n case 'truekeycsv':\n return new TrueKeyCsvImporter();\n case 'clipperzhtml':\n return new ClipperzHtmlImporter();\n case 'roboformcsv':\n return new RoboFormCsvImporter();\n case 'ascendocsv':\n return new AscendoCsvImporter();\n case 'passwordbossjson':\n return new PasswordBossJsonImporter();\n case 'zohovaultcsv':\n return new ZohoVaultCsvImporter();\n case 'splashidcsv':\n return new SplashIdCsvImporter();\n case 'passkeepcsv':\n return new PassKeepCsvImporter();\n case 'gnomejson':\n return new GnomeJsonImporter();\n case 'passwordagentcsv':\n return new PasswordAgentCsvImporter();\n case 'passpackcsv':\n return new PasspackCsvImporter();\n case 'passmanjson':\n return new PassmanJsonImporter();\n case 'avastcsv':\n return new AvastCsvImporter();\n case 'avastjson':\n return new AvastJsonImporter();\n case 'fsecurefsk':\n return new FSecureFskImporter();\n case 'kasperskytxt':\n return new KasperskyTxtImporter();\n case 'remembearcsv':\n return new RememBearCsvImporter();\n case 'passwordwallettxt':\n return new PasswordWalletTxtImporter();\n case 'mykicsv':\n return new MykiCsvImporter();\n case 'securesafecsv':\n return new SecureSafeCsvImporter();\n case 'logmeoncecsv':\n return new LogMeOnceCsvImporter();\n case 'blackberrycsv':\n return new BlackBerryCsvImporter();\n case 'buttercupcsv':\n return new ButtercupCsvImporter();\n case 'codebookcsv':\n return new CodebookCsvImporter();\n case 'encryptrcsv':\n return new EncryptrCsvImporter();\n case 'yoticsv':\n return new YotiCsvImporter();\n default:\n return null;\n }\n }\n\n private async postImport(importResult: ImportResult, organizationId: string = null) {\n if (organizationId == null) {\n const request = new ImportCiphersRequest();\n for (let i = 0; i < importResult.ciphers.length; i++) {\n const c = await this.cipherService.encrypt(importResult.ciphers[i]);\n request.ciphers.push(new CipherRequest(c));\n }\n if (importResult.folders != null) {\n for (let i = 0; i < importResult.folders.length; i++) {\n const f = await this.folderService.encrypt(importResult.folders[i]);\n request.folders.push(new FolderRequest(f));\n }\n }\n if (importResult.folderRelationships != null) {\n importResult.folderRelationships.forEach(r =>\n request.folderRelationships.push(new KvpRequest(r[0], r[1])));\n }\n return await this.apiService.postImportCiphers(request);\n } else {\n const request = new ImportOrganizationCiphersRequest();\n for (let i = 0; i < importResult.ciphers.length; i++) {\n importResult.ciphers[i].organizationId = organizationId;\n const c = await this.cipherService.encrypt(importResult.ciphers[i]);\n request.ciphers.push(new CipherRequest(c));\n }\n if (importResult.collections != null) {\n for (let i = 0; i < importResult.collections.length; i++) {\n importResult.collections[i].organizationId = organizationId;\n const c = await this.collectionService.encrypt(importResult.collections[i]);\n request.collections.push(new CollectionRequest(c));\n }\n }\n if (importResult.collectionRelationships != null) {\n importResult.collectionRelationships.forEach(r =>\n request.collectionRelationships.push(new KvpRequest(r[0], r[1])));\n }\n return await this.apiService.postImportOrganizationCiphers(organizationId, request);\n }\n }\n\n private badData(c: CipherView) {\n return (c.name == null || c.name === '--') &&\n (c.type === CipherType.Login && c.login != null && Utils.isNullOrWhitespace(c.login.password));\n }\n\n private handleServerError(errorResponse: ErrorResponse, importResult: ImportResult): Error {\n if (errorResponse.validationErrors == null) {\n return new Error(errorResponse.message);\n }\n\n let errorMessage = '';\n\n Object.entries(errorResponse.validationErrors).forEach(([key, value], index) => {\n let item;\n let itemType;\n const i = Number(key.match(/[0-9]+/)[0]);\n\n switch (key.match(/^\\w+/)[0]) {\n case 'Ciphers':\n item = importResult.ciphers[i];\n itemType = CipherType[item.type];\n break;\n case 'Folders':\n item = importResult.folders[i];\n itemType = 'Folder';\n break;\n case 'Collections':\n item = importResult.collections[i];\n itemType = 'Collection';\n break;\n default:\n return;\n }\n\n if (index > 0) {\n errorMessage += '\\n\\n';\n }\n\n if (itemType !== 'Folder' && itemType !== 'Collection') {\n errorMessage += '[' + (i + 1) + '] ';\n }\n\n errorMessage += '[' + itemType + '] \"' + item.name + '\": ' + value;\n });\n\n return new Error(errorMessage);\n }\n}\n","import { CipherRequest } from './cipherRequest';\nimport { FolderRequest } from './folderRequest';\nimport { KvpRequest } from './kvpRequest';\n\nexport class ImportCiphersRequest {\n ciphers: CipherRequest[] = [];\n folders: FolderRequest[] = [];\n folderRelationships: KvpRequest[] = [];\n}\n","import { CipherRequest } from './cipherRequest';\nimport { CollectionRequest } from './collectionRequest';\nimport { KvpRequest } from './kvpRequest';\n\nexport class ImportOrganizationCiphersRequest {\n ciphers: CipherRequest[] = [];\n collections: CollectionRequest[] = [];\n collectionRelationships: KvpRequest[] = [];\n}\n","export class KvpRequest {\n key: TK;\n value: TV;\n\n constructor(key: TK, value: TV) {\n this.key = key;\n this.value = value;\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class AscendoCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.length < 2) {\n return;\n }\n\n const cipher = this.initLoginCipher();\n cipher.notes = this.getValueOrDefault(value[value.length - 1]);\n cipher.name = this.getValueOrDefault(value[0], '--');\n\n if (value.length > 2 && (value.length % 2) === 0) {\n for (let i = 0; i < value.length - 2; i += 2) {\n const val: string = value[i + 2];\n const field: string = value[i + 1];\n if (this.isNullOrWhitespace(val) || this.isNullOrWhitespace(field)) {\n continue;\n }\n\n const fieldLower = field.toLowerCase();\n if (cipher.login.password == null && this.passwordFieldNames.indexOf(fieldLower) > -1) {\n cipher.login.password = this.getValueOrDefault(val);\n } else if (cipher.login.username == null &&\n this.usernameFieldNames.indexOf(fieldLower) > -1) {\n cipher.login.username = this.getValueOrDefault(val);\n } else if ((cipher.login.uris == null || cipher.login.uris.length === 0) &&\n this.uriFieldNames.indexOf(fieldLower) > -1) {\n cipher.login.uris = this.makeUriArray(val);\n } else {\n this.processKvp(cipher, field, val);\n }\n }\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class AvastCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.name);\n cipher.login.uris = this.makeUriArray(value.web);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.username = this.getValueOrDefault(value.login);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CipherType } from '../enums/cipherType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nexport class AvastJsonImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = JSON.parse(data);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n if (results.logins != null) {\n results.logins.forEach((value: any) => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.custName);\n cipher.notes = this.getValueOrDefault(value.note);\n cipher.login.uris = this.makeUriArray(value.url);\n cipher.login.password = this.getValueOrDefault(value.pwd);\n cipher.login.username = this.getValueOrDefault(value.loginName);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n }\n\n if (results.notes != null) {\n results.notes.forEach((value: any) => {\n const cipher = this.initLoginCipher();\n cipher.type = CipherType.SecureNote;\n cipher.secureNote.type = SecureNoteType.Generic;\n cipher.name = this.getValueOrDefault(value.label);\n cipher.notes = this.getValueOrDefault(value.text);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n }\n\n if (results.cards != null) {\n results.cards.forEach((value: any) => {\n const cipher = this.initLoginCipher();\n cipher.type = CipherType.Card;\n cipher.name = this.getValueOrDefault(value.custName);\n cipher.notes = this.getValueOrDefault(value.note);\n cipher.card.cardholderName = this.getValueOrDefault(value.holderName);\n cipher.card.number = this.getValueOrDefault(value.cardNumber);\n cipher.card.code = this.getValueOrDefault(value.cvv);\n cipher.card.brand = this.getCardBrand(cipher.card.number);\n if (value.expirationDate != null) {\n if (value.expirationDate.month != null) {\n cipher.card.expMonth = value.expirationDate.month + '';\n }\n if (value.expirationDate.year != null) {\n cipher.card.expYear = value.expirationDate.year + '';\n }\n }\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class AviraCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.name,\n this.getValueOrDefault(this.nameFromUrl(value.website), '--'));\n cipher.login.uris = this.makeUriArray(value.website);\n cipher.login.password = this.getValueOrDefault(value.password);\n\n if (this.isNullOrWhitespace(value.username) && !this.isNullOrWhitespace(value.secondary_username)) {\n cipher.login.username = value.secondary_username;\n } else {\n cipher.login.username = this.getValueOrDefault(value.username);\n cipher.notes = this.getValueOrDefault(value.secondary_username);\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CipherView } from '../models/view/cipherView';\nimport { CollectionView } from '../models/view/collectionView';\nimport { FieldView } from '../models/view/fieldView';\nimport { FolderView } from '../models/view/folderView';\nimport { LoginView } from '../models/view/loginView';\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nimport { CipherType } from '../enums/cipherType';\nimport { FieldType } from '../enums/fieldType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nexport class BitwardenCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (this.organization && !this.isNullOrWhitespace(value.collections)) {\n const collections = (value.collections as string).split(',');\n collections.forEach(col => {\n let addCollection = true;\n let collectionIndex = result.collections.length;\n\n for (let i = 0; i < result.collections.length; i++) {\n if (result.collections[i].name === col) {\n addCollection = false;\n collectionIndex = i;\n break;\n }\n }\n\n if (addCollection) {\n const collection = new CollectionView();\n collection.name = col;\n result.collections.push(collection);\n }\n\n result.collectionRelationships.push([result.ciphers.length, collectionIndex]);\n });\n } else if (!this.organization) {\n this.processFolder(result, value.folder);\n }\n\n const cipher = new CipherView();\n cipher.favorite = !this.organization && this.getValueOrDefault(value.favorite, '0') !== '0' ? true : false;\n cipher.type = CipherType.Login;\n cipher.notes = this.getValueOrDefault(value.notes);\n cipher.name = this.getValueOrDefault(value.name, '--');\n\n if (!this.isNullOrWhitespace(value.fields)) {\n const fields = this.splitNewLine(value.fields);\n for (let i = 0; i < fields.length; i++) {\n if (this.isNullOrWhitespace(fields[i])) {\n continue;\n }\n\n const delimPosition = fields[i].lastIndexOf(': ');\n if (delimPosition === -1) {\n continue;\n }\n\n if (cipher.fields == null) {\n cipher.fields = [];\n }\n\n const field = new FieldView();\n field.name = fields[i].substr(0, delimPosition);\n field.value = null;\n field.type = FieldType.Text;\n if (fields[i].length > (delimPosition + 2)) {\n field.value = fields[i].substr(delimPosition + 2);\n }\n cipher.fields.push(field);\n }\n }\n\n const valueType = value.type != null ? value.type.toLowerCase() : null;\n switch (valueType) {\n case 'note':\n cipher.type = CipherType.SecureNote;\n cipher.secureNote = new SecureNoteView();\n cipher.secureNote.type = SecureNoteType.Generic;\n break;\n default:\n cipher.type = CipherType.Login;\n cipher.login = new LoginView();\n cipher.login.totp = this.getValueOrDefault(value.login_totp || value.totp);\n cipher.login.username = this.getValueOrDefault(value.login_username || value.username);\n cipher.login.password = this.getValueOrDefault(value.login_password || value.password);\n const uris = this.parseSingleRowCsv(value.login_uri || value.uri);\n cipher.login.uris = this.makeUriArray(uris);\n break;\n }\n\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CipherWithIds } from '../models/export/cipherWithIds';\nimport { CollectionWithId } from '../models/export/collectionWithId';\nimport { FolderWithId } from '../models/export/folderWithId';\n\nexport class BitwardenJsonImporter extends BaseImporter implements Importer {\n private results: any;\n private result: ImportResult;\n\n async parse(data: string): Promise {\n this.result = new ImportResult();\n this.results = JSON.parse(data);\n if (this.results == null || this.results.items == null || this.results.items.length === 0) {\n this.result.success = false;\n return this.result;\n }\n\n if (this.results.encrypted) {\n await this.parseEncrypted();\n } else {\n this.parseDecrypted();\n }\n\n this.result.success = true;\n return this.result;\n }\n\n private async parseEncrypted() {\n const groupingsMap = new Map();\n\n if (this.organization && this.results.collections != null) {\n for (const c of this.results.collections as CollectionWithId[]) {\n const collection = CollectionWithId.toDomain(c);\n if (collection != null) {\n collection.id = null;\n collection.organizationId = this.organizationId;\n const view = await collection.decrypt();\n groupingsMap.set(c.id, this.result.collections.length);\n this.result.collections.push(view);\n }\n }\n } else if (!this.organization && this.results.folders != null) {\n for (const f of this.results.folders as FolderWithId[]) {\n const folder = FolderWithId.toDomain(f);\n if (folder != null) {\n folder.id = null;\n const view = await folder.decrypt();\n groupingsMap.set(f.id, this.result.folders.length);\n this.result.folders.push(view);\n }\n }\n }\n\n for (const c of this.results.items as CipherWithIds[]) {\n const cipher = CipherWithIds.toDomain(c);\n // reset ids incase they were set for some reason\n cipher.id = null;\n cipher.folderId = null;\n cipher.organizationId = this.organizationId;\n cipher.collectionIds = null;\n\n // make sure password history is limited\n if (cipher.passwordHistory != null && cipher.passwordHistory.length > 5) {\n cipher.passwordHistory = cipher.passwordHistory.slice(0, 5);\n }\n\n if (!this.organization && c.folderId != null && groupingsMap.has(c.folderId)) {\n this.result.folderRelationships.push([this.result.ciphers.length, groupingsMap.get(c.folderId)]);\n } else if (this.organization && c.collectionIds != null) {\n c.collectionIds.forEach(cId => {\n if (groupingsMap.has(cId)) {\n this.result.collectionRelationships.push([this.result.ciphers.length, groupingsMap.get(cId)]);\n }\n });\n }\n\n const view = await cipher.decrypt();\n this.cleanupCipher(view);\n this.result.ciphers.push(view);\n }\n }\n\n private parseDecrypted() {\n const groupingsMap = new Map();\n if (this.organization && this.results.collections != null) {\n this.results.collections.forEach((c: CollectionWithId) => {\n const collection = CollectionWithId.toView(c);\n if (collection != null) {\n collection.id = null;\n collection.organizationId = null;\n groupingsMap.set(c.id, this.result.collections.length);\n this.result.collections.push(collection);\n }\n });\n } else if (!this.organization && this.results.folders != null) {\n this.results.folders.forEach((f: FolderWithId) => {\n const folder = FolderWithId.toView(f);\n if (folder != null) {\n folder.id = null;\n groupingsMap.set(f.id, this.result.folders.length);\n this.result.folders.push(folder);\n }\n });\n }\n\n this.results.items.forEach((c: CipherWithIds) => {\n const cipher = CipherWithIds.toView(c);\n // reset ids incase they were set for some reason\n cipher.id = null;\n cipher.folderId = null;\n cipher.organizationId = null;\n cipher.collectionIds = null;\n\n // make sure password history is limited\n if (cipher.passwordHistory != null && cipher.passwordHistory.length > 5) {\n cipher.passwordHistory = cipher.passwordHistory.slice(0, 5);\n }\n\n if (!this.organization && c.folderId != null && groupingsMap.has(c.folderId)) {\n this.result.folderRelationships.push([this.result.ciphers.length, groupingsMap.get(c.folderId)]);\n } else if (this.organization && c.collectionIds != null) {\n c.collectionIds.forEach(cId => {\n if (groupingsMap.has(cId)) {\n this.result.collectionRelationships.push([this.result.ciphers.length, groupingsMap.get(cId)]);\n }\n });\n }\n\n this.cleanupCipher(cipher);\n this.result.ciphers.push(cipher);\n });\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class BlackBerryCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.grouping === 'list') {\n return;\n }\n const cipher = this.initLoginCipher();\n cipher.favorite = value.fav === '1';\n cipher.name = this.getValueOrDefault(value.name);\n cipher.notes = this.getValueOrDefault(value.extra);\n if (value.grouping !== 'note') {\n cipher.login.uris = this.makeUriArray(value.url);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.username = this.getValueOrDefault(value.username);\n }\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class BlurCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.label === 'null') {\n value.label = null;\n }\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.label,\n this.getValueOrDefault(this.nameFromUrl(value.domain), '--'));\n cipher.login.uris = this.makeUriArray(value.domain);\n cipher.login.password = this.getValueOrDefault(value.password);\n\n if (this.isNullOrWhitespace(value.email) && !this.isNullOrWhitespace(value.username)) {\n cipher.login.username = value.username;\n } else {\n cipher.login.username = this.getValueOrDefault(value.email);\n cipher.notes = this.getValueOrDefault(value.username);\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nconst OfficialProps = [\n '!group_id', '!group_name', 'title', 'username', 'password', 'URL', 'id',\n];\n\nexport class ButtercupCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n this.processFolder(result, this.getValueOrDefault(value['!group_name']));\n\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.title, '--');\n cipher.login.username = this.getValueOrDefault(value.username);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.uris = this.makeUriArray(value.URL);\n\n let processingCustomFields = false;\n for (const prop in value) {\n if (value.hasOwnProperty(prop)) {\n if (!processingCustomFields && OfficialProps.indexOf(prop) === -1) {\n processingCustomFields = true;\n }\n if (processingCustomFields) {\n this.processKvp(cipher, prop, value[prop]);\n }\n }\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class ChromeCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.name, '--');\n cipher.login.username = this.getValueOrDefault(value.username);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.uris = this.makeUriArray(value.url);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class ClipperzHtmlImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const doc = this.parseXml(data);\n if (doc == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n const textarea = doc.querySelector('textarea');\n if (textarea == null || this.isNullOrWhitespace(textarea.textContent)) {\n result.errorMessage = 'Missing textarea.';\n result.success = false;\n return Promise.resolve(result);\n }\n\n const entries = JSON.parse(textarea.textContent);\n entries.forEach((entry: any) => {\n const cipher = this.initLoginCipher();\n if (!this.isNullOrWhitespace(entry.label)) {\n cipher.name = entry.label.split(' ')[0];\n }\n if (entry.data != null && !this.isNullOrWhitespace(entry.data.notes)) {\n cipher.notes = entry.data.notes.split('\\\\n').join('\\n');\n }\n\n if (entry.currentVersion != null && entry.currentVersion.fields != null) {\n for (const property in entry.currentVersion.fields) {\n if (!entry.currentVersion.fields.hasOwnProperty(property)) {\n continue;\n }\n\n const field = entry.currentVersion.fields[property];\n const actionType = field.actionType != null ? field.actionType.toLowerCase() : null;\n switch (actionType) {\n case 'password':\n cipher.login.password = this.getValueOrDefault(field.value);\n break;\n case 'email':\n case 'username':\n case 'user':\n case 'name':\n cipher.login.username = this.getValueOrDefault(field.value);\n break;\n case 'url':\n cipher.login.uris = this.makeUriArray(field.value);\n break;\n default:\n const labelLower = field.label != null ? field.label.toLowerCase() : null;\n if (cipher.login.password == null && this.passwordFieldNames.indexOf(labelLower) > -1) {\n cipher.login.password = this.getValueOrDefault(field.value);\n } else if (cipher.login.username == null &&\n this.usernameFieldNames.indexOf(labelLower) > -1) {\n cipher.login.username = this.getValueOrDefault(field.value);\n } else if ((cipher.login.uris == null || cipher.login.uris.length === 0) &&\n this.uriFieldNames.indexOf(labelLower) > -1) {\n cipher.login.uris = this.makeUriArray(field.value);\n } else {\n this.processKvp(cipher, field.label, field.value);\n }\n break;\n }\n }\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class CodebookCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n this.processFolder(result, this.getValueOrDefault(value.Category));\n\n const cipher = this.initLoginCipher();\n cipher.favorite = this.getValueOrDefault(value.Favorite) === 'True';\n cipher.name = this.getValueOrDefault(value.Entry, '--');\n cipher.notes = this.getValueOrDefault(value.Note);\n cipher.login.username = this.getValueOrDefault(value.Username, value.Email);\n cipher.login.password = this.getValueOrDefault(value.Password);\n cipher.login.totp = this.getValueOrDefault(value.TOTP);\n cipher.login.uris = this.makeUriArray(value.Website);\n\n if (!this.isNullOrWhitespace(value.Username)) {\n this.processKvp(cipher, 'Email', value.Email);\n }\n this.processKvp(cipher, 'Phone', value.Phone);\n this.processKvp(cipher, 'PIN', value.PIN);\n this.processKvp(cipher, 'Account', value.Account);\n this.processKvp(cipher, 'Date', value.Date);\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CardView } from '../models/view/cardView';\nimport { CipherView } from '../models/view/cipherView';\nimport { IdentityView } from '../models/view/identityView';\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nimport { CipherType } from '../enums/cipherType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nconst HandledResults = new Set(['ADDRESS', 'AUTHENTIFIANT', 'BANKSTATEMENT', 'IDCARD', 'IDENTITY',\n 'PAYMENTMEANS_CREDITCARD', 'PAYMENTMEAN_PAYPAL', 'EMAIL']);\n\nexport class DashlaneJsonImporter extends BaseImporter implements Importer {\n private result: ImportResult;\n\n parse(data: string): Promise {\n this.result = new ImportResult();\n const results = JSON.parse(data);\n if (results == null || results.length === 0) {\n this.result.success = false;\n return Promise.resolve(this.result);\n }\n\n if (results.ADDRESS != null) {\n this.processAddress(results.ADDRESS);\n }\n if (results.AUTHENTIFIANT != null) {\n this.processAuth(results.AUTHENTIFIANT);\n }\n if (results.BANKSTATEMENT != null) {\n this.processNote(results.BANKSTATEMENT, 'BankAccountName');\n }\n if (results.IDCARD != null) {\n this.processNote(results.IDCARD, 'Fullname');\n }\n if (results.PAYMENTMEANS_CREDITCARD != null) {\n this.processCard(results.PAYMENTMEANS_CREDITCARD);\n }\n if (results.IDENTITY != null) {\n this.processIdentity(results.IDENTITY);\n }\n\n for (const key in results) {\n if (results.hasOwnProperty(key) && !HandledResults.has(key)) {\n this.processNote(results[key], null, 'Generic Note');\n }\n }\n\n this.result.success = true;\n return Promise.resolve(this.result);\n }\n\n private processAuth(results: any[]) {\n results.forEach((credential: any) => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(credential.title);\n\n cipher.login.username = this.getValueOrDefault(credential.login,\n this.getValueOrDefault(credential.secondaryLogin));\n if (this.isNullOrWhitespace(cipher.login.username)) {\n cipher.login.username = this.getValueOrDefault(credential.email);\n } else if (!this.isNullOrWhitespace(credential.email)) {\n cipher.notes = ('Email: ' + credential.email + '\\n');\n }\n\n cipher.login.password = this.getValueOrDefault(credential.password);\n cipher.login.uris = this.makeUriArray(credential.domain);\n cipher.notes += this.getValueOrDefault(credential.note, '');\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n this.result.ciphers.push(cipher);\n });\n }\n\n private processIdentity(results: any[]) {\n results.forEach((obj: any) => {\n const cipher = new CipherView();\n cipher.identity = new IdentityView();\n cipher.type = CipherType.Identity;\n cipher.name = this.getValueOrDefault(obj.fullName, '');\n const nameParts = cipher.name.split(' ');\n if (nameParts.length > 0) {\n cipher.identity.firstName = this.getValueOrDefault(nameParts[0]);\n }\n if (nameParts.length === 2) {\n cipher.identity.lastName = this.getValueOrDefault(nameParts[1]);\n } else if (nameParts.length === 3) {\n cipher.identity.middleName = this.getValueOrDefault(nameParts[1]);\n cipher.identity.lastName = this.getValueOrDefault(nameParts[2]);\n }\n cipher.identity.username = this.getValueOrDefault(obj.pseudo);\n this.cleanupCipher(cipher);\n this.result.ciphers.push(cipher);\n });\n }\n\n private processAddress(results: any[]) {\n results.forEach((obj: any) => {\n const cipher = new CipherView();\n cipher.identity = new IdentityView();\n cipher.type = CipherType.Identity;\n cipher.name = this.getValueOrDefault(obj.addressName);\n cipher.identity.address1 = this.getValueOrDefault(obj.addressFull);\n cipher.identity.city = this.getValueOrDefault(obj.city);\n cipher.identity.state = this.getValueOrDefault(obj.state);\n cipher.identity.postalCode = this.getValueOrDefault(obj.zipcode);\n cipher.identity.country = this.getValueOrDefault(obj.country);\n if (cipher.identity.country != null) {\n cipher.identity.country = cipher.identity.country.toUpperCase();\n }\n this.cleanupCipher(cipher);\n this.result.ciphers.push(cipher);\n });\n }\n\n private processCard(results: any[]) {\n results.forEach((obj: any) => {\n const cipher = new CipherView();\n cipher.card = new CardView();\n cipher.type = CipherType.Card;\n cipher.name = this.getValueOrDefault(obj.bank);\n cipher.card.number = this.getValueOrDefault(obj.cardNumber);\n cipher.card.brand = this.getCardBrand(cipher.card.number);\n cipher.card.cardholderName = this.getValueOrDefault(obj.owner);\n if (!this.isNullOrWhitespace(cipher.card.brand)) {\n if (this.isNullOrWhitespace(cipher.name)) {\n cipher.name = cipher.card.brand;\n } else {\n cipher.name += (' - ' + cipher.card.brand);\n }\n }\n this.cleanupCipher(cipher);\n this.result.ciphers.push(cipher);\n });\n }\n\n private processNote(results: any[], nameProperty: string, name: string = null) {\n results.forEach((obj: any) => {\n const cipher = new CipherView();\n cipher.secureNote = new SecureNoteView();\n cipher.type = CipherType.SecureNote;\n cipher.secureNote.type = SecureNoteType.Generic;\n if (name != null) {\n cipher.name = name;\n } else {\n cipher.name = this.getValueOrDefault(obj[nameProperty]);\n }\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && key !== nameProperty) {\n this.processKvp(cipher, key, obj[key].toString());\n }\n }\n this.cleanupCipher(cipher);\n this.result.ciphers.push(cipher);\n });\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CardView } from '../models/view/cardView';\n\nimport { CipherType } from '../enums/cipherType';\n\nexport class EncryptrCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.Label, '--');\n cipher.notes = this.getValueOrDefault(value.Notes);\n const text = this.getValueOrDefault(value.Text);\n if (!this.isNullOrWhitespace(text)) {\n if (this.isNullOrWhitespace(cipher.notes)) {\n cipher.notes = text;\n } else {\n cipher.notes += ('\\n\\n' + text);\n }\n }\n\n const type = value['Entry Type'];\n if (type === 'Password') {\n cipher.login.username = this.getValueOrDefault(value.Username);\n cipher.login.password = this.getValueOrDefault(value.Password);\n cipher.login.uris = this.makeUriArray(value['Site URL']);\n } else if (type === 'Credit Card') {\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n cipher.card.cardholderName = this.getValueOrDefault(value['Name on card']);\n cipher.card.number = this.getValueOrDefault(value['Card Number']);\n cipher.card.brand = this.getCardBrand(cipher.card.number);\n cipher.card.code = this.getValueOrDefault(value.CVV);\n const expiry = this.getValueOrDefault(value.Expiry);\n if (!this.isNullOrWhitespace(expiry)) {\n const expParts = expiry.split('/');\n if (expParts.length > 1) {\n cipher.card.expMonth = parseInt(expParts[0], null).toString();\n cipher.card.expYear = (2000 + parseInt(expParts[1], null)).toString();\n }\n }\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CipherType } from '../enums/cipherType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nimport { CardView } from '../models/view/cardView';\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nexport class EnpassCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n let firstRow = true;\n results.forEach(value => {\n if (value.length < 2 || (firstRow && (value[0] === 'Title' || value[0] === 'title'))) {\n firstRow = false;\n return;\n }\n\n const cipher = this.initLoginCipher();\n cipher.notes = this.getValueOrDefault(value[value.length - 1]);\n cipher.name = this.getValueOrDefault(value[0], '--');\n\n if (value.length === 2 || (!this.containsField(value, 'username') &&\n !this.containsField(value, 'password') && !this.containsField(value, 'email') &&\n !this.containsField(value, 'url'))) {\n cipher.type = CipherType.SecureNote;\n cipher.secureNote = new SecureNoteView();\n cipher.secureNote.type = SecureNoteType.Generic;\n }\n\n if (this.containsField(value, 'cardholder') && this.containsField(value, 'number') &&\n this.containsField(value, 'expiry date')) {\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n }\n\n if (value.length > 2 && (value.length % 2) === 0) {\n for (let i = 0; i < value.length - 2; i += 2) {\n const fieldValue: string = value[i + 2];\n if (this.isNullOrWhitespace(fieldValue)) {\n continue;\n }\n\n const fieldName: string = value[i + 1];\n const fieldNameLower = fieldName.toLowerCase();\n\n if (cipher.type === CipherType.Login) {\n if (fieldNameLower === 'url' && (cipher.login.uris == null || cipher.login.uris.length === 0)) {\n cipher.login.uris = this.makeUriArray(fieldValue);\n continue;\n } else if ((fieldNameLower === 'username' || fieldNameLower === 'email') &&\n this.isNullOrWhitespace(cipher.login.username)) {\n cipher.login.username = fieldValue;\n continue;\n } else if (fieldNameLower === 'password' && this.isNullOrWhitespace(cipher.login.password)) {\n cipher.login.password = fieldValue;\n continue;\n } else if (fieldNameLower === 'totp' && this.isNullOrWhitespace(cipher.login.totp)) {\n cipher.login.totp = fieldValue;\n continue;\n }\n } else if (cipher.type === CipherType.Card) {\n if (fieldNameLower === 'cardholder' && this.isNullOrWhitespace(cipher.card.cardholderName)) {\n cipher.card.cardholderName = fieldValue;\n continue;\n } else if (fieldNameLower === 'number' && this.isNullOrWhitespace(cipher.card.number)) {\n cipher.card.number = fieldValue;\n cipher.card.brand = this.getCardBrand(fieldValue);\n continue;\n } else if (fieldNameLower === 'cvc' && this.isNullOrWhitespace(cipher.card.code)) {\n cipher.card.code = fieldValue;\n continue;\n } else if (fieldNameLower === 'expiry date' && this.isNullOrWhitespace(cipher.card.expMonth) &&\n this.isNullOrWhitespace(cipher.card.expYear)) {\n if (this.setCardExpiration(cipher, fieldValue)) {\n continue;\n }\n } else if (fieldNameLower === 'type') {\n // Skip since brand was determined from number above\n continue;\n }\n }\n\n this.processKvp(cipher, fieldName, fieldValue);\n }\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n private containsField(fields: any[], name: string) {\n if (fields == null || name == null) {\n return false;\n }\n return fields.filter(f => !this.isNullOrWhitespace(f) &&\n f.toLowerCase() === name.toLowerCase()).length > 0;\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CardView } from '../models/view/cardView';\nimport { CipherView } from '../models/view/cipherView';\nimport { FolderView } from '../models/view/folderView';\n\nimport { CipherType } from '../enums/cipherType';\nimport { FieldType } from '../enums/fieldType';\n\nexport class EnpassJsonImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = JSON.parse(data);\n if (results == null || results.items == null || results.items.length === 0) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n const foldersMap = new Map();\n const foldersIndexMap = new Map();\n const folderTree = this.buildFolderTree(results.folders);\n this.flattenFolderTree(null, folderTree, foldersMap);\n foldersMap.forEach((val, key) => {\n foldersIndexMap.set(key, result.folders.length);\n const f = new FolderView();\n f.name = val;\n result.folders.push(f);\n });\n\n results.items.forEach((item: any) => {\n if (item.folders != null && item.folders.length > 0 && foldersIndexMap.has(item.folders[0])) {\n result.folderRelationships.push([result.ciphers.length, foldersIndexMap.get(item.folders[0])]);\n }\n\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(item.title);\n cipher.favorite = item.favorite > 0;\n\n if (item.template_type != null && item.fields != null && item.fields.length > 0) {\n if (item.template_type.indexOf('login.') === 0 || item.template_type.indexOf('password.') === 0) {\n this.processLogin(cipher, item.fields);\n } else if (item.template_type.indexOf('creditcard.') === 0) {\n this.processCard(cipher, item.fields);\n } else if (item.template_type.indexOf('identity.') < 0 &&\n item.fields.some((f: any) => f.type === 'password' && !this.isNullOrWhitespace(f.value))) {\n this.processLogin(cipher, item.fields);\n } else {\n this.processNote(cipher, item.fields);\n }\n }\n\n cipher.notes += ('\\n' + this.getValueOrDefault(item.note, ''));\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n private processLogin(cipher: CipherView, fields: any[]) {\n const urls: string[] = [];\n fields.forEach((field: any) => {\n if (this.isNullOrWhitespace(field.value) || field.type === 'section') {\n return;\n }\n\n if ((field.type === 'username' || field.type === 'email') &&\n this.isNullOrWhitespace(cipher.login.username)) {\n cipher.login.username = field.value;\n } else if (field.type === 'password' && this.isNullOrWhitespace(cipher.login.password)) {\n cipher.login.password = field.value;\n } else if (field.type === 'totp' && this.isNullOrWhitespace(cipher.login.totp)) {\n cipher.login.totp = field.value;\n } else if (field.type === 'url') {\n urls.push(field.value);\n } else {\n this.processKvp(cipher, field.label, field.value,\n field.sensitive === 1 ? FieldType.Hidden : FieldType.Text);\n }\n });\n cipher.login.uris = this.makeUriArray(urls);\n }\n\n private processCard(cipher: CipherView, fields: any[]) {\n cipher.card = new CardView();\n cipher.type = CipherType.Card;\n fields.forEach((field: any) => {\n if (this.isNullOrWhitespace(field.value) || field.type === 'section' || field.type === 'ccType') {\n return;\n }\n\n if (field.type === 'ccName' && this.isNullOrWhitespace(cipher.card.cardholderName)) {\n cipher.card.cardholderName = field.value;\n } else if (field.type === 'ccNumber' && this.isNullOrWhitespace(cipher.card.number)) {\n cipher.card.number = field.value;\n cipher.card.brand = this.getCardBrand(cipher.card.number);\n } else if (field.type === 'ccCvc' && this.isNullOrWhitespace(cipher.card.code)) {\n cipher.card.code = field.value;\n } else if (field.type === 'ccExpiry' && this.isNullOrWhitespace(cipher.card.expYear)) {\n if (!this.setCardExpiration(cipher, field.value)) {\n this.processKvp(cipher, field.label, field.value,\n field.sensitive === 1 ? FieldType.Hidden : FieldType.Text);\n }\n } else {\n this.processKvp(cipher, field.label, field.value,\n field.sensitive === 1 ? FieldType.Hidden : FieldType.Text);\n }\n });\n }\n\n private processNote(cipher: CipherView, fields: any[]) {\n fields.forEach((field: any) => {\n if (this.isNullOrWhitespace(field.value) || field.type === 'section') {\n return;\n }\n this.processKvp(cipher, field.label, field.value,\n field.sensitive === 1 ? FieldType.Hidden : FieldType.Text);\n });\n }\n\n private buildFolderTree(folders: any[]): any[] {\n if (folders == null) {\n return [];\n }\n const folderTree: any[] = [];\n const map = new Map([]);\n folders.forEach((obj: any) => {\n map.set(obj.uuid, obj);\n obj.children = [];\n });\n folders.forEach((obj: any) => {\n if (obj.parent_uuid != null && obj.parent_uuid !== '' && map.has(obj.parent_uuid)) {\n map.get(obj.parent_uuid).children.push(obj);\n } else {\n folderTree.push(obj);\n }\n });\n return folderTree;\n }\n\n private flattenFolderTree(titlePrefix: string, tree: any[], map: Map) {\n if (tree == null) {\n return;\n }\n tree.forEach((f: any) => {\n if (f.title != null && f.title.trim() !== '') {\n let title = f.title.trim();\n if (titlePrefix != null && titlePrefix.trim() !== '') {\n title = titlePrefix + '/' + title;\n }\n map.set(f.uuid, title);\n if (f.children != null && f.children.length !== 0) {\n this.flattenFolderTree(title, f.children, map);\n }\n }\n });\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class FirefoxCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n const url = this.getValueOrDefault(value.url, this.getValueOrDefault(value.hostname));\n cipher.name = this.getValueOrDefault(this.nameFromUrl(url), '--');\n cipher.login.username = this.getValueOrDefault(value.username);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.uris = this.makeUriArray(url);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CardView } from '../models/view/cardView';\n\nimport { CipherType } from '../enums/cipherType';\n\nexport class FSecureFskImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = JSON.parse(data);\n if (results == null || results.data == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n for (const key in results.data) {\n if (!results.data.hasOwnProperty(key)) {\n continue;\n }\n\n const value = results.data[key];\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.service);\n cipher.notes = this.getValueOrDefault(value.notes);\n\n if (value.style === 'website') {\n cipher.login.username = this.getValueOrDefault(value.username);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.uris = this.makeUriArray(value.url);\n } else if (value.style === 'creditcard') {\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n cipher.card.cardholderName = this.getValueOrDefault(value.username);\n cipher.card.number = this.getValueOrDefault(value.creditNumber);\n cipher.card.brand = this.getCardBrand(cipher.card.number);\n cipher.card.code = this.getValueOrDefault(value.creditCvv);\n if (!this.isNullOrWhitespace(value.creditExpiry)) {\n if (!this.setCardExpiration(cipher, value.creditExpiry)) {\n this.processKvp(cipher, 'Expiration', value.creditExpiry);\n }\n }\n if (!this.isNullOrWhitespace(value.password)) {\n this.processKvp(cipher, 'PIN', value.password);\n }\n } else {\n continue;\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class GnomeJsonImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = JSON.parse(data);\n if (results == null || Object.keys(results).length === 0) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n for (const keyRing in results) {\n if (!results.hasOwnProperty(keyRing) || this.isNullOrWhitespace(keyRing) ||\n results[keyRing].length === 0) {\n continue;\n }\n\n results[keyRing].forEach((value: any) => {\n if (this.isNullOrWhitespace(value.display_name) || value.display_name.indexOf('http') !== 0) {\n return;\n }\n\n this.processFolder(result, keyRing);\n const cipher = this.initLoginCipher();\n cipher.name = value.display_name.replace('http://', '').replace('https://', '');\n if (cipher.name.length > 30) {\n cipher.name = cipher.name.substring(0, 30);\n }\n cipher.login.password = this.getValueOrDefault(value.secret);\n cipher.login.uris = this.makeUriArray(value.display_name);\n\n if (value.attributes != null) {\n cipher.login.username = value.attributes != null ?\n this.getValueOrDefault(value.attributes.username_value) : null;\n for (const attr in value.attributes) {\n if (!value.attributes.hasOwnProperty(attr) || attr === 'username_value' ||\n attr === 'xdg:schema') {\n continue;\n }\n this.processKvp(cipher, attr, value.attributes[attr]);\n }\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n }\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nconst NotesHeader = 'Notes\\n\\n';\nconst ApplicationsHeader = 'Applications\\n\\n';\nconst WebsitesHeader = 'Websites\\n\\n';\nconst Delimiter = '\\n---\\n';\n\nexport class KasperskyTxtImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n\n let notesData: string;\n let applicationsData: string;\n let websitesData: string;\n let workingData = this.splitNewLine(data).join('\\n');\n\n if (workingData.indexOf(NotesHeader) !== -1) {\n const parts = workingData.split(NotesHeader);\n if (parts.length > 1) {\n workingData = parts[0];\n notesData = parts[1];\n }\n }\n if (workingData.indexOf(ApplicationsHeader) !== -1) {\n const parts = workingData.split(ApplicationsHeader);\n if (parts.length > 1) {\n workingData = parts[0];\n applicationsData = parts[1];\n }\n }\n if (workingData.indexOf(WebsitesHeader) === 0) {\n const parts = workingData.split(WebsitesHeader);\n if (parts.length > 1) {\n workingData = parts[0];\n websitesData = parts[1];\n }\n }\n\n const notes = this.parseDataCategory(notesData);\n const applications = this.parseDataCategory(applicationsData);\n const websites = this.parseDataCategory(websitesData);\n\n notes.forEach(n => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(n.get('Name'));\n cipher.notes = this.getValueOrDefault(n.get('Text'));\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n websites.concat(applications).forEach(w => {\n const cipher = this.initLoginCipher();\n const nameKey = w.has('Website name') ? 'Website name' : 'Application';\n cipher.name = this.getValueOrDefault(w.get(nameKey), '');\n if (!this.isNullOrWhitespace(w.get('Login name'))) {\n if (!this.isNullOrWhitespace(cipher.name)) {\n cipher.name += ': ';\n }\n cipher.name += w.get('Login name');\n }\n cipher.notes = this.getValueOrDefault(w.get('Comment'));\n if (w.has('Website URL')) {\n cipher.login.uris = this.makeUriArray(w.get('Website URL'));\n }\n cipher.login.username = this.getValueOrDefault(w.get('Login'));\n cipher.login.password = this.getValueOrDefault(w.get('Password'));\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n private parseDataCategory(data: string): Map[] {\n if (this.isNullOrWhitespace(data) || data.indexOf(Delimiter) === -1) {\n return [];\n }\n const items: Map[] = [];\n data.split(Delimiter).forEach(p => {\n if (p.indexOf('\\n') === -1) {\n return;\n }\n const item = new Map();\n let itemComment: string;\n let itemCommentKey: string;\n p.split('\\n').forEach(l => {\n if (itemComment != null) {\n itemComment += ('\\n' + l);\n return;\n }\n const colonIndex = l.indexOf(':');\n let key: string;\n let val: string;\n if (colonIndex === -1) {\n return;\n } else {\n key = l.substring(0, colonIndex);\n if (l.length > colonIndex + 1) {\n val = l.substring(colonIndex + 2);\n }\n }\n if (key != null) {\n item.set(key, val);\n }\n if (key === 'Comment' || key === 'Text') {\n itemComment = val;\n itemCommentKey = key;\n }\n });\n if (itemComment != null && itemCommentKey != null) {\n item.set(itemCommentKey, itemComment);\n }\n if (item.size === 0) {\n return;\n }\n items.push(item);\n });\n return items;\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { FieldType } from '../enums/fieldType';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { FolderView } from '../models/view/folderView';\n\nexport class KeePass2XmlImporter extends BaseImporter implements Importer {\n result = new ImportResult();\n\n parse(data: string): Promise {\n const doc = this.parseXml(data);\n if (doc == null) {\n this.result.success = false;\n return Promise.resolve(this.result);\n }\n\n const rootGroup = doc.querySelector('KeePassFile > Root > Group');\n if (rootGroup == null) {\n this.result.errorMessage = 'Missing `KeePassFile > Root > Group` node.';\n this.result.success = false;\n return Promise.resolve(this.result);\n }\n\n this.traverse(rootGroup, true, '');\n\n if (this.organization) {\n this.moveFoldersToCollections(this.result);\n }\n\n this.result.success = true;\n return Promise.resolve(this.result);\n }\n\n traverse(node: Element, isRootNode: boolean, groupPrefixName: string) {\n const folderIndex = this.result.folders.length;\n let groupName = groupPrefixName;\n\n if (!isRootNode) {\n if (groupName !== '') {\n groupName += '/';\n }\n const nameEl = this.querySelectorDirectChild(node, 'Name');\n groupName += nameEl == null ? '-' : nameEl.textContent;\n const folder = new FolderView();\n folder.name = groupName;\n this.result.folders.push(folder);\n }\n\n this.querySelectorAllDirectChild(node, 'Entry').forEach(entry => {\n const cipherIndex = this.result.ciphers.length;\n\n const cipher = this.initLoginCipher();\n this.querySelectorAllDirectChild(entry, 'String').forEach(entryString => {\n const valueEl = this.querySelectorDirectChild(entryString, 'Value');\n const value = valueEl != null ? valueEl.textContent : null;\n if (this.isNullOrWhitespace(value)) {\n return;\n }\n const keyEl = this.querySelectorDirectChild(entryString, 'Key');\n const key = keyEl != null ? keyEl.textContent : null;\n\n if (key === 'URL') {\n cipher.login.uris = this.makeUriArray(value);\n } else if (key === 'UserName') {\n cipher.login.username = value;\n } else if (key === 'Password') {\n cipher.login.password = value;\n } else if (key === 'otp') {\n cipher.login.totp = value.replace('key=', '');\n } else if (key === 'Title') {\n cipher.name = value;\n } else if (key === 'Notes') {\n cipher.notes += (value + '\\n');\n } else {\n let type = FieldType.Text;\n const attrs = (valueEl.attributes as any);\n if (attrs.length > 0 && attrs.ProtectInMemory != null &&\n attrs.ProtectInMemory.value === 'True') {\n type = FieldType.Hidden;\n }\n this.processKvp(cipher, key, value, type);\n }\n });\n\n this.cleanupCipher(cipher);\n this.result.ciphers.push(cipher);\n\n if (!isRootNode) {\n this.result.folderRelationships.push([cipherIndex, folderIndex]);\n }\n });\n\n this.querySelectorAllDirectChild(node, 'Group').forEach(group => {\n this.traverse(group, false, groupName);\n });\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class KeePassXCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (this.isNullOrWhitespace(value.Title)) {\n return;\n }\n\n value.Group = !this.isNullOrWhitespace(value.Group) && value.Group.startsWith('Root/') ?\n value.Group.replace('Root/', '') : value.Group;\n const groupName = !this.isNullOrWhitespace(value.Group) ? value.Group : null;\n this.processFolder(result, groupName);\n\n const cipher = this.initLoginCipher();\n cipher.notes = this.getValueOrDefault(value.Notes);\n cipher.name = this.getValueOrDefault(value.Title, '--');\n cipher.login.username = this.getValueOrDefault(value.Username);\n cipher.login.password = this.getValueOrDefault(value.Password);\n cipher.login.uris = this.makeUriArray(value.URL);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { FolderView } from '../models/view/folderView';\n\nexport class KeeperCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.length < 6) {\n return;\n }\n\n this.processFolder(result, value[0]);\n const cipher = this.initLoginCipher();\n cipher.notes = this.getValueOrDefault(value[5]) + '\\n';\n cipher.name = this.getValueOrDefault(value[1], '--');\n cipher.login.username = this.getValueOrDefault(value[2]);\n cipher.login.password = this.getValueOrDefault(value[3]);\n cipher.login.uris = this.makeUriArray(value[4]);\n\n if (value.length > 7) {\n // we have some custom fields.\n for (let i = 7; i < value.length; i = i + 2) {\n this.processKvp(cipher, value[i], value[i + 1]);\n }\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CardView } from '../models/view/cardView';\nimport { CipherView } from '../models/view/cipherView';\nimport { FolderView } from '../models/view/folderView';\nimport { IdentityView } from '../models/view/identityView';\nimport { LoginView } from '../models/view/loginView';\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nimport { CipherType } from '../enums/cipherType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nexport class LastPassCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach((value, index) => {\n const cipherIndex = result.ciphers.length;\n let folderIndex = result.folders.length;\n let grouping = value.grouping;\n if (grouping != null) {\n grouping = grouping.replace(/\\\\/g, '/').replace(/[\\x00-\\x1F\\x7F-\\x9F]/g, '');\n }\n const hasFolder = this.getValueOrDefault(grouping, '(none)') !== '(none)';\n let addFolder = hasFolder;\n\n if (hasFolder) {\n for (let i = 0; i < result.folders.length; i++) {\n if (result.folders[i].name === grouping) {\n addFolder = false;\n folderIndex = i;\n break;\n }\n }\n }\n\n const cipher = this.buildBaseCipher(value);\n if (cipher.type === CipherType.Login) {\n cipher.notes = this.getValueOrDefault(value.extra);\n cipher.login = new LoginView();\n cipher.login.uris = this.makeUriArray(value.url);\n cipher.login.username = this.getValueOrDefault(value.username);\n cipher.login.password = this.getValueOrDefault(value.password);\n } else if (cipher.type === CipherType.SecureNote) {\n this.parseSecureNote(value, cipher);\n } else if (cipher.type === CipherType.Card) {\n cipher.card = this.parseCard(value);\n cipher.notes = this.getValueOrDefault(value.notes);\n } else if (cipher.type === CipherType.Identity) {\n cipher.identity = this.parseIdentity(value);\n cipher.notes = this.getValueOrDefault(value.notes);\n if (!this.isNullOrWhitespace(value.ccnum)) {\n // there is a card on this identity too\n const cardCipher = this.buildBaseCipher(value);\n cardCipher.identity = null;\n cardCipher.type = CipherType.Card;\n cardCipher.card = this.parseCard(value);\n result.ciphers.push(cardCipher);\n }\n }\n\n result.ciphers.push(cipher);\n\n if (addFolder) {\n const f = new FolderView();\n f.name = grouping;\n result.folders.push(f);\n }\n if (hasFolder) {\n result.folderRelationships.push([cipherIndex, folderIndex]);\n }\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n private buildBaseCipher(value: any) {\n const cipher = new CipherView();\n if (value.hasOwnProperty('profilename') && value.hasOwnProperty('profilelanguage')) {\n // form fill\n cipher.favorite = false;\n cipher.name = this.getValueOrDefault(value.profilename, '--');\n cipher.type = CipherType.Card;\n\n if (!this.isNullOrWhitespace(value.title) || !this.isNullOrWhitespace(value.firstname) ||\n !this.isNullOrWhitespace(value.lastname) || !this.isNullOrWhitespace(value.address1) ||\n !this.isNullOrWhitespace(value.phone) || !this.isNullOrWhitespace(value.username) ||\n !this.isNullOrWhitespace(value.email)) {\n cipher.type = CipherType.Identity;\n }\n } else {\n // site or secure note\n cipher.favorite = !this.organization && this.getValueOrDefault(value.fav, '0') === '1';\n cipher.name = this.getValueOrDefault(value.name, '--');\n cipher.type = value.url === 'http://sn' ? CipherType.SecureNote : CipherType.Login;\n }\n return cipher;\n }\n\n private parseCard(value: any): CardView {\n const card = new CardView();\n card.cardholderName = this.getValueOrDefault(value.ccname);\n card.number = this.getValueOrDefault(value.ccnum);\n card.code = this.getValueOrDefault(value.cccsc);\n card.brand = this.getCardBrand(value.ccnum);\n\n if (!this.isNullOrWhitespace(value.ccexp) && value.ccexp.indexOf('-') > -1) {\n const ccexpParts = (value.ccexp as string).split('-');\n if (ccexpParts.length > 1) {\n card.expYear = ccexpParts[0];\n card.expMonth = ccexpParts[1];\n if (card.expMonth.length === 2 && card.expMonth[0] === '0') {\n card.expMonth = card.expMonth[1];\n }\n }\n }\n\n return card;\n }\n\n private parseIdentity(value: any): IdentityView {\n const identity = new IdentityView();\n identity.title = this.getValueOrDefault(value.title);\n identity.firstName = this.getValueOrDefault(value.firstname);\n identity.middleName = this.getValueOrDefault(value.middlename);\n identity.lastName = this.getValueOrDefault(value.lastname);\n identity.username = this.getValueOrDefault(value.username);\n identity.company = this.getValueOrDefault(value.company);\n identity.ssn = this.getValueOrDefault(value.ssn);\n identity.address1 = this.getValueOrDefault(value.address1);\n identity.address2 = this.getValueOrDefault(value.address2);\n identity.address3 = this.getValueOrDefault(value.address3);\n identity.city = this.getValueOrDefault(value.city);\n identity.state = this.getValueOrDefault(value.state);\n identity.postalCode = this.getValueOrDefault(value.zip);\n identity.country = this.getValueOrDefault(value.country);\n identity.email = this.getValueOrDefault(value.email);\n identity.phone = this.getValueOrDefault(value.phone);\n\n if (!this.isNullOrWhitespace(identity.title)) {\n identity.title = identity.title.charAt(0).toUpperCase() + identity.title.slice(1);\n }\n\n return identity;\n }\n\n private parseSecureNote(value: any, cipher: CipherView) {\n const extraParts = this.splitNewLine(value.extra);\n let processedNote = false;\n\n if (extraParts.length) {\n const typeParts = extraParts[0].split(':');\n if (typeParts.length > 1 && typeParts[0] === 'NoteType' &&\n (typeParts[1] === 'Credit Card' || typeParts[1] === 'Address')) {\n if (typeParts[1] === 'Credit Card') {\n const mappedData = this.parseSecureNoteMapping(cipher, extraParts, {\n 'Number': 'number',\n 'Name on Card': 'cardholderName',\n 'Security Code': 'code',\n // LP provides date in a format like 'June,2020'\n // Store in expMonth, then parse and modify\n 'Expiration Date': 'expMonth',\n });\n\n if (this.isNullOrWhitespace(mappedData.expMonth) || mappedData.expMonth === ',') {\n // No expiration data\n mappedData.expMonth = undefined;\n } else {\n const [monthString, year] = mappedData.expMonth.split(',');\n // Parse month name into number\n if (!this.isNullOrWhitespace(monthString)) {\n const month = new Date(Date.parse(monthString.trim() + ' 1, 2012')).getMonth() + 1;\n if (isNaN(month)) {\n mappedData.expMonth = undefined;\n } else {\n mappedData.expMonth = month.toString();\n }\n } else {\n mappedData.expMonth = undefined;\n }\n if (!this.isNullOrWhitespace(year)) {\n mappedData.expYear = year;\n }\n }\n\n cipher.type = CipherType.Card;\n cipher.card = mappedData;\n } else if (typeParts[1] === 'Address') {\n const mappedData = this.parseSecureNoteMapping(cipher, extraParts, {\n 'Title': 'title',\n 'First Name': 'firstName',\n 'Last Name': 'lastName',\n 'Middle Name': 'middleName',\n 'Company': 'company',\n 'Address 1': 'address1',\n 'Address 2': 'address2',\n 'Address 3': 'address3',\n 'City / Town': 'city',\n 'State': 'state',\n 'Zip / Postal Code': 'postalCode',\n 'Country': 'country',\n 'Email Address': 'email',\n 'Username': 'username',\n });\n cipher.type = CipherType.Identity;\n cipher.identity = mappedData;\n }\n processedNote = true;\n }\n }\n\n if (!processedNote) {\n cipher.secureNote = new SecureNoteView();\n cipher.secureNote.type = SecureNoteType.Generic;\n cipher.notes = this.getValueOrDefault(value.extra);\n }\n }\n\n private parseSecureNoteMapping(cipher: CipherView, extraParts: string[], map: any): T {\n const dataObj: any = {};\n\n let processingNotes = false;\n extraParts.forEach(extraPart => {\n let key: string = null;\n let val: string = null;\n if (!processingNotes) {\n if (this.isNullOrWhitespace(extraPart)) {\n return;\n }\n const colonIndex = extraPart.indexOf(':');\n if (colonIndex === -1) {\n key = extraPart;\n } else {\n key = extraPart.substring(0, colonIndex);\n if (extraPart.length > colonIndex) {\n val = extraPart.substring(colonIndex + 1);\n }\n }\n if (this.isNullOrWhitespace(key) || this.isNullOrWhitespace(val) || key === 'NoteType') {\n return;\n }\n }\n\n if (processingNotes) {\n cipher.notes += ('\\n' + extraPart);\n } else if (key === 'Notes') {\n if (!this.isNullOrWhitespace(cipher.notes)) {\n cipher.notes += ('\\n' + val);\n } else {\n cipher.notes = val;\n }\n processingNotes = true;\n } else if (map.hasOwnProperty(key)) {\n dataObj[map[key]] = val;\n } else {\n this.processKvp(cipher, key, val);\n }\n });\n\n return dataObj;\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class LogMeOnceCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.length < 4) {\n return;\n }\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value[0], '--');\n cipher.login.username = this.getValueOrDefault(value[2]);\n cipher.login.password = this.getValueOrDefault(value[3]);\n cipher.login.uris = this.makeUriArray(value[1]);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class MeldiumCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.DisplayName, '--');\n cipher.notes = this.getValueOrDefault(value.Notes);\n cipher.login.username = this.getValueOrDefault(value.UserName);\n cipher.login.password = this.getValueOrDefault(value.Password);\n cipher.login.uris = this.makeUriArray(value.Url);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CipherType } from '../enums/cipherType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nexport class MSecureCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.length < 3) {\n return;\n }\n\n const folderName = this.getValueOrDefault(value[0], 'Unassigned') !== 'Unassigned' ? value[0] : null;\n this.processFolder(result, folderName);\n\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value[2], '--');\n\n if (value[1] === 'Web Logins' || value[1] === 'Login') {\n cipher.login.uris = this.makeUriArray(value[4]);\n cipher.login.username = this.getValueOrDefault(value[5]);\n cipher.login.password = this.getValueOrDefault(value[6]);\n cipher.notes = !this.isNullOrWhitespace(value[3]) ? value[3].split('\\\\n').join('\\n') : null;\n } else if (value.length > 3) {\n cipher.type = CipherType.SecureNote;\n cipher.secureNote = new SecureNoteView();\n cipher.secureNote.type = SecureNoteType.Generic;\n for (let i = 3; i < value.length; i++) {\n if (!this.isNullOrWhitespace(value[i])) {\n cipher.notes += (value[i] + '\\n');\n }\n }\n }\n\n if (!this.isNullOrWhitespace(value[1]) && cipher.type !== CipherType.Login) {\n cipher.name = value[1] + ': ' + cipher.name;\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { CipherType } from '../enums/cipherType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nimport { CardView } from '../models/view/cardView';\nimport { IdentityView } from '../models/view/identityView';\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class MykiCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.nickname, '--');\n cipher.notes = this.getValueOrDefault(value.additionalInfo);\n\n if (value.url !== undefined) {\n // Accounts\n cipher.login.uris = this.makeUriArray(value.url);\n cipher.login.username = this.getValueOrDefault(value.username);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.totp = this.getValueOrDefault(value.twoFactAuthToken);\n } else if (value.cardNumber !== undefined) {\n // Cards\n cipher.card = new CardView();\n cipher.type = CipherType.Card;\n cipher.card.cardholderName = this.getValueOrDefault(value.cardName);\n cipher.card.number = this.getValueOrDefault(value.cardNumber);\n cipher.card.brand = this.getCardBrand(cipher.card.number);\n cipher.card.expMonth = this.getValueOrDefault(value.exp_month);\n cipher.card.expYear = this.getValueOrDefault(value.exp_year);\n cipher.card.code = this.getValueOrDefault(value.cvv);\n } else if (value.firstName !== undefined) {\n // Identities\n cipher.identity = new IdentityView();\n cipher.type = CipherType.Identity;\n cipher.identity.title = this.getValueOrDefault(value.title);\n cipher.identity.firstName = this.getValueOrDefault(value.firstName);\n cipher.identity.middleName = this.getValueOrDefault(value.middleName);\n cipher.identity.lastName = this.getValueOrDefault(value.lastName);\n cipher.identity.phone = this.getValueOrDefault(value.number);\n cipher.identity.email = this.getValueOrDefault(value.email);\n cipher.identity.address1 = this.getValueOrDefault(value.firstAddressLine);\n cipher.identity.address2 = this.getValueOrDefault(value.secondAddressLine);\n cipher.identity.city = this.getValueOrDefault(value.city);\n cipher.identity.country = this.getValueOrDefault(value.country);\n cipher.identity.postalCode = this.getValueOrDefault(value.zipCode);\n } else if (value.content !== undefined) {\n // Notes\n cipher.secureNote = new SecureNoteView();\n cipher.type = CipherType.SecureNote;\n cipher.secureNote.type = SecureNoteType.Generic;\n cipher.name = this.getValueOrDefault(value.title, '--');\n cipher.notes = this.getValueOrDefault(value.content);\n } else {\n return;\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from '../baseImporter';\nimport { Importer } from '../importer';\n\nimport { ImportResult } from '../../models/domain/importResult';\n\nimport { CardView } from '../../models/view/cardView';\nimport { CipherView } from '../../models/view/cipherView';\nimport { IdentityView } from '../../models/view/identityView';\nimport { PasswordHistoryView } from '../../models/view/passwordHistoryView';\nimport { SecureNoteView } from '../../models/view/secureNoteView';\n\nimport { CipherType } from '../../enums/cipherType';\nimport { FieldType } from '../../enums/fieldType';\nimport { SecureNoteType } from '../../enums/secureNoteType';\n\nexport class OnePassword1PifImporter extends BaseImporter implements Importer {\n result = new ImportResult();\n\n parse(data: string): Promise {\n data.split(this.newLineRegex).forEach(line => {\n if (this.isNullOrWhitespace(line) || line[0] !== '{') {\n return;\n }\n const item = JSON.parse(line);\n if (item.trashed === true) {\n return;\n }\n const cipher = this.initLoginCipher();\n\n if (this.isNullOrWhitespace(item.hmac)) {\n this.processStandardItem(item, cipher);\n } else {\n this.processWinOpVaultItem(item, cipher);\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n this.result.ciphers.push(cipher);\n });\n\n this.result.success = true;\n return Promise.resolve(this.result);\n }\n\n private processWinOpVaultItem(item: any, cipher: CipherView) {\n if (item.overview != null) {\n cipher.name = this.getValueOrDefault(item.overview.title);\n if (item.overview.URLs != null) {\n const urls: string[] = [];\n item.overview.URLs.forEach((url: any) => {\n if (!this.isNullOrWhitespace(url.u)) {\n urls.push(url.u);\n }\n });\n cipher.login.uris = this.makeUriArray(urls);\n }\n }\n\n if (item.details != null) {\n if (item.details.passwordHistory != null) {\n this.parsePasswordHistory(item.details.passwordHistory, cipher);\n }\n if (!this.isNullOrWhitespace(item.details.ccnum) || !this.isNullOrWhitespace(item.details.cvv)) {\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n } else if (!this.isNullOrWhitespace(item.details.firstname) ||\n !this.isNullOrWhitespace(item.details.address1)) {\n cipher.type = CipherType.Identity;\n cipher.identity = new IdentityView();\n }\n if (cipher.type === CipherType.Login && !this.isNullOrWhitespace(item.details.password)) {\n cipher.login.password = item.details.password;\n }\n if (!this.isNullOrWhitespace(item.details.notesPlain)) {\n cipher.notes = item.details.notesPlain.split(this.newLineRegex).join('\\n') + '\\n';\n }\n if (item.details.fields != null) {\n this.parseFields(item.details.fields, cipher, 'designation', 'value', 'name');\n }\n if (item.details.sections != null) {\n item.details.sections.forEach((section: any) => {\n if (section.fields != null) {\n this.parseFields(section.fields, cipher, 'n', 'v', 't');\n }\n });\n }\n }\n }\n\n private processStandardItem(item: any, cipher: CipherView) {\n cipher.favorite = item.openContents && item.openContents.faveIndex ? true : false;\n cipher.name = this.getValueOrDefault(item.title);\n\n if (item.typeName === 'securenotes.SecureNote') {\n cipher.type = CipherType.SecureNote;\n cipher.secureNote = new SecureNoteView();\n cipher.secureNote.type = SecureNoteType.Generic;\n } else if (item.typeName === 'wallet.financial.CreditCard') {\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n } else if (item.typeName === 'identities.Identity') {\n cipher.type = CipherType.Identity;\n cipher.identity = new IdentityView();\n } else {\n cipher.login.uris = this.makeUriArray(item.location);\n }\n\n if (item.secureContents != null) {\n if (item.secureContents.passwordHistory != null) {\n this.parsePasswordHistory(item.secureContents.passwordHistory, cipher);\n }\n if (!this.isNullOrWhitespace(item.secureContents.notesPlain)) {\n cipher.notes = item.secureContents.notesPlain.split(this.newLineRegex).join('\\n') + '\\n';\n }\n if (cipher.type === CipherType.Login) {\n if (!this.isNullOrWhitespace(item.secureContents.password)) {\n cipher.login.password = item.secureContents.password;\n }\n if (item.secureContents.URLs != null) {\n const urls: string[] = [];\n item.secureContents.URLs.forEach((u: any) => {\n if (!this.isNullOrWhitespace(u.url)) {\n urls.push(u.url);\n }\n });\n if (urls.length > 0) {\n cipher.login.uris = this.makeUriArray(urls);\n }\n }\n }\n if (item.secureContents.fields != null) {\n this.parseFields(item.secureContents.fields, cipher, 'designation', 'value', 'name');\n }\n if (item.secureContents.sections != null) {\n item.secureContents.sections.forEach((section: any) => {\n if (section.fields != null) {\n this.parseFields(section.fields, cipher, 'n', 'v', 't');\n }\n });\n }\n }\n }\n\n private parsePasswordHistory(items: any[], cipher: CipherView) {\n const maxSize = items.length > 5 ? 5 : items.length;\n cipher.passwordHistory = items\n .filter((h: any) => !this.isNullOrWhitespace(h.value) && h.time != null)\n .sort((a, b) => b.time - a.time)\n .slice(0, maxSize)\n .map((h: any) => {\n const ph = new PasswordHistoryView();\n ph.password = h.value;\n ph.lastUsedDate = new Date(('' + h.time).length >= 13 ? h.time : h.time * 1000);\n return ph;\n });\n }\n\n private parseFields(fields: any[], cipher: CipherView, designationKey: string, valueKey: string, nameKey: string) {\n fields.forEach((field: any) => {\n if (field[valueKey] == null || field[valueKey].toString().trim() === '') {\n return;\n }\n\n const fieldValue = field[valueKey].toString();\n const fieldDesignation = field[designationKey] != null ? field[designationKey].toString() : null;\n\n if (cipher.type === CipherType.Login) {\n if (this.isNullOrWhitespace(cipher.login.username) && fieldDesignation === 'username') {\n cipher.login.username = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(cipher.login.password) && fieldDesignation === 'password') {\n cipher.login.password = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(cipher.login.totp) && fieldDesignation != null &&\n fieldDesignation.startsWith('TOTP_')) {\n cipher.login.totp = fieldValue;\n return;\n }\n } else if (cipher.type === CipherType.Card) {\n if (this.isNullOrWhitespace(cipher.card.number) && fieldDesignation === 'ccnum') {\n cipher.card.number = fieldValue;\n cipher.card.brand = this.getCardBrand(fieldValue);\n return;\n } else if (this.isNullOrWhitespace(cipher.card.code) && fieldDesignation === 'cvv') {\n cipher.card.code = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(cipher.card.cardholderName) && fieldDesignation === 'cardholder') {\n cipher.card.cardholderName = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(cipher.card.expiration) && fieldDesignation === 'expiry' &&\n fieldValue.length === 6) {\n cipher.card.expMonth = (fieldValue as string).substr(4, 2);\n if (cipher.card.expMonth[0] === '0') {\n cipher.card.expMonth = cipher.card.expMonth.substr(1, 1);\n }\n cipher.card.expYear = (fieldValue as string).substr(0, 4);\n return;\n } else if (fieldDesignation === 'type') {\n // Skip since brand was determined from number above\n return;\n }\n } else if (cipher.type === CipherType.Identity) {\n const identity = cipher.identity;\n if (this.isNullOrWhitespace(identity.firstName) && fieldDesignation === 'firstname') {\n identity.firstName = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(identity.lastName) && fieldDesignation === 'lastname') {\n identity.lastName = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(identity.middleName) && fieldDesignation === 'initial') {\n identity.middleName = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(identity.phone) && fieldDesignation === 'defphone') {\n identity.phone = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(identity.company) && fieldDesignation === 'company') {\n identity.company = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(identity.email) && fieldDesignation === 'email') {\n identity.email = fieldValue;\n return;\n } else if (this.isNullOrWhitespace(identity.username) && fieldDesignation === 'username') {\n identity.username = fieldValue;\n return;\n } else if (fieldDesignation === 'address') {\n // fieldValue is an object casted into a string, so access the plain value instead\n const { street, city, country, zip } = field[valueKey];\n identity.address1 = this.getValueOrDefault(street);\n identity.city = this.getValueOrDefault(city);\n if (!this.isNullOrWhitespace(country)) {\n identity.country = country.toUpperCase();\n }\n identity.postalCode = this.getValueOrDefault(zip);\n return;\n }\n }\n\n const fieldName = this.isNullOrWhitespace(field[nameKey]) ? 'no_name' : field[nameKey];\n if (fieldName === 'password' && cipher.passwordHistory != null &&\n cipher.passwordHistory.some(h => h.password === fieldValue)) {\n return;\n }\n\n const fieldType = field.k === 'concealed' ? FieldType.Hidden : FieldType.Text;\n this.processKvp(cipher, fieldName, fieldValue, fieldType);\n });\n }\n}\n","import { Importer } from '../importer';\nimport { IgnoredProperties, OnePasswordCsvImporter } from './onepasswordCsvImporter';\n\nimport { CipherType } from '../../enums/cipherType';\nimport { CardView, CipherView, IdentityView } from '../../models/view';\n\nexport class OnePasswordMacCsvImporter extends OnePasswordCsvImporter implements Importer {\n setCipherType(value: any, cipher: CipherView) {\n const onePassType = this.getValueOrDefault(this.getProp(value, 'type'), 'Login');\n switch (onePassType) {\n case 'Credit Card':\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n IgnoredProperties.push('type');\n break;\n case 'Identity':\n cipher.type = CipherType.Identity;\n cipher.identity = new IdentityView();\n IgnoredProperties.push('type');\n break;\n case 'Login':\n case 'Secure Note':\n IgnoredProperties.push('type');\n default:\n break;\n }\n }\n}\n","import { CipherView } from '../../models/view';\n\nexport class CipherImportContext {\n lowerProperty: string;\n constructor(public importRecord: any, public property: string, public cipher: CipherView) {\n this.lowerProperty = property.toLowerCase();\n }\n}\n","export class View {\n}\n","import { Importer } from '../importer';\nimport { CipherImportContext } from './cipherImportContext';\nimport { OnePasswordCsvImporter } from './onepasswordCsvImporter';\n\nimport { CipherType } from '../../enums/cipherType';\nimport { CardView, CipherView, IdentityView, LoginView } from '../../models/view';\n\nexport class OnePasswordWinCsvImporter extends OnePasswordCsvImporter implements Importer {\n constructor() {\n super();\n this.identityPropertyParsers.push(this.setIdentityAddress);\n }\n\n setCipherType(value: any, cipher: CipherView) {\n cipher.type = CipherType.Login;\n cipher.login = new LoginView();\n\n if (!this.isNullOrWhitespace(this.getPropByRegexp(value, /\\d+: number/i)) &&\n !this.isNullOrWhitespace(this.getPropByRegexp(value, /\\d+: expiry date/i))) {\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n }\n\n if (!this.isNullOrWhitespace(this.getPropByRegexp(value, /name \\d+: first name/i)) ||\n !this.isNullOrWhitespace(this.getPropByRegexp(value, /name \\d+: initial/i)) ||\n !this.isNullOrWhitespace(this.getPropByRegexp(value, /name \\d+: last name/i)) ||\n !this.isNullOrWhitespace(this.getPropByRegexp(value, /internet \\d+: email/i))) {\n cipher.type = CipherType.Identity;\n cipher.identity = new IdentityView();\n }\n }\n\n setIdentityAddress(context: CipherImportContext) {\n if (context.lowerProperty.match(/address \\d+: address/i)) {\n this.processKvp(context.cipher, 'address', context.importRecord[context.property]);\n return true;\n }\n return false;\n }\n\n setCreditCardExpiry(context: CipherImportContext) {\n if (this.isNullOrWhitespace(context.cipher.card.expiration) && context.lowerProperty.includes('expiry date')) {\n const expSplit = (context.importRecord[context.property] as string).split('/');\n context.cipher.card.expMonth = expSplit[0];\n if (context.cipher.card.expMonth[0] === '0' && context.cipher.card.expMonth.length === 2) {\n context.cipher.card.expMonth = context.cipher.card.expMonth.substr(1, 1);\n }\n context.cipher.card.expYear = expSplit[2].length > 4 ? expSplit[2].substr(0, 4) : expSplit[2];\n return true;\n }\n return false;\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CollectionView } from '../models/view/collectionView';\nimport { FolderView } from '../models/view/folderView';\n\nexport class PadlockCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n let headers: string[] = null;\n results.forEach(value => {\n if (headers == null) {\n headers = value.map((v: string) => v);\n return;\n }\n\n if (value.length < 2 || value.length !== headers.length) {\n return;\n }\n\n if (!this.isNullOrWhitespace(value[1])) {\n if (this.organization) {\n const tags = (value[1] as string).split(',');\n tags.forEach(tag => {\n tag = tag.trim();\n let addCollection = true;\n let collectionIndex = result.collections.length;\n\n for (let i = 0; i < result.collections.length; i++) {\n if (result.collections[i].name === tag) {\n addCollection = false;\n collectionIndex = i;\n break;\n }\n }\n\n if (addCollection) {\n const collection = new CollectionView();\n collection.name = tag;\n result.collections.push(collection);\n }\n\n result.collectionRelationships.push([result.ciphers.length, collectionIndex]);\n });\n } else {\n const tags = (value[1] as string).split(',');\n const tag = tags.length > 0 ? tags[0].trim() : null;\n this.processFolder(result, tag);\n }\n }\n\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value[0], '--');\n\n for (let i = 2; i < value.length; i++) {\n const header = headers[i].trim().toLowerCase();\n if (this.isNullOrWhitespace(value[i]) || this.isNullOrWhitespace(header)) {\n continue;\n }\n\n if (this.usernameFieldNames.indexOf(header) > -1) {\n cipher.login.username = value[i];\n } else if (this.passwordFieldNames.indexOf(header) > -1) {\n cipher.login.password = value[i];\n } else if (this.uriFieldNames.indexOf(header) > -1) {\n cipher.login.uris = this.makeUriArray(value[i]);\n } else {\n this.processKvp(cipher, headers[i], value[i]);\n }\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class PassKeepCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n this.processFolder(result, this.getValue('category', value));\n const cipher = this.initLoginCipher();\n cipher.notes = this.getValue('description', value);\n cipher.name = this.getValueOrDefault(this.getValue('title', value), '--');\n cipher.login.username = this.getValue('username', value);\n cipher.login.password = this.getValue('password', value);\n cipher.login.uris = this.makeUriArray(this.getValue('site', value));\n this.processKvp(cipher, 'Password 2', this.getValue('password2', value));\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n private getValue(key: string, value: any) {\n return this.getValueOrDefault(value[key], this.getValueOrDefault(value[(' ' + key)]));\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class PassmanJsonImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = JSON.parse(data);\n if (results == null || results.length === 0) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach((credential: any) => {\n if (credential.tags != null && credential.tags.length > 0) {\n const folderName = credential.tags[0].text;\n this.processFolder(result, folderName);\n }\n\n const cipher = this.initLoginCipher();\n cipher.name = credential.label;\n\n cipher.login.username = this.getValueOrDefault(credential.username);\n if (this.isNullOrWhitespace(cipher.login.username)) {\n cipher.login.username = this.getValueOrDefault(credential.email);\n } else if (!this.isNullOrWhitespace(credential.email)) {\n cipher.notes = ('Email: ' + credential.email + '\\n');\n }\n\n cipher.login.password = this.getValueOrDefault(credential.password);\n cipher.login.uris = this.makeUriArray(credential.url);\n cipher.notes += this.getValueOrDefault(credential.description, '');\n if (credential.otp != null) {\n cipher.login.totp = this.getValueOrDefault(credential.otp.secret);\n }\n\n if (credential.custom_fields != null) {\n credential.custom_fields.forEach((customField: any) => {\n switch (customField.field_type) {\n case 'text':\n case 'password':\n this.processKvp(cipher, customField.label, customField.value);\n break;\n }\n });\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CollectionView } from '../models/view/collectionView';\n\nexport class PasspackCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const tagsJson = !this.isNullOrWhitespace(value.Tags) ? JSON.parse(value.Tags) : null;\n const tags: string[] = tagsJson != null && tagsJson.tags != null && tagsJson.tags.length > 0 ?\n tagsJson.tags.map((tagJson: string) => {\n try {\n const t = JSON.parse(tagJson);\n return this.getValueOrDefault(t.tag);\n } catch { }\n return null;\n }).filter((t: string) => !this.isNullOrWhitespace(t)) : null;\n\n if (this.organization && tags != null && tags.length > 0) {\n tags.forEach(tag => {\n let addCollection = true;\n let collectionIndex = result.collections.length;\n\n for (let i = 0; i < result.collections.length; i++) {\n if (result.collections[i].name === tag) {\n addCollection = false;\n collectionIndex = i;\n break;\n }\n }\n\n if (addCollection) {\n const collection = new CollectionView();\n collection.name = tag;\n result.collections.push(collection);\n }\n\n result.collectionRelationships.push([result.ciphers.length, collectionIndex]);\n });\n } else if (!this.organization && tags != null && tags.length > 0) {\n this.processFolder(result, tags[0]);\n }\n\n const cipher = this.initLoginCipher();\n cipher.notes = this.getValueOrDefault(value.Notes, '');\n cipher.notes += ('\\n\\n' + this.getValueOrDefault(value['Shared Notes'], '') + '\\n');\n cipher.name = this.getValueOrDefault(value['Entry Name'], '--');\n cipher.login.username = this.getValueOrDefault(value['User ID']);\n cipher.login.password = this.getValueOrDefault(value.Password);\n cipher.login.uris = this.makeUriArray(value.URL);\n\n if (value.__parsed_extra != null && value.__parsed_extra.length > 0) {\n value.__parsed_extra.forEach((extra: string) => {\n if (!this.isNullOrWhitespace(extra)) {\n cipher.notes += ('\\n' + extra);\n }\n });\n }\n\n const fieldsJson = !this.isNullOrWhitespace(value['Extra Fields']) ?\n JSON.parse(value['Extra Fields']) : null;\n const fields = fieldsJson != null && fieldsJson.extraFields != null &&\n fieldsJson.extraFields.length > 0 ? fieldsJson.extraFields.map((fieldJson: string) => {\n try {\n return JSON.parse(fieldJson);\n } catch { }\n return null;\n }) : null;\n if (fields != null) {\n fields.forEach((f: any) => {\n if (f != null) {\n this.processKvp(cipher, f.name, f.data);\n }\n });\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class PasswordAgentCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n let newVersion = true;\n results.forEach(value => {\n if (value.length !== 5 && value.length < 9) {\n return;\n }\n const altFormat = value.length === 10 && value[0] === '0';\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value[altFormat ? 1 : 0], '--');\n cipher.login.username = this.getValueOrDefault(value[altFormat ? 2 : 1]);\n cipher.login.password = this.getValueOrDefault(value[altFormat ? 3 : 2]);\n if (value.length === 5) {\n newVersion = false;\n cipher.notes = this.getValueOrDefault(value[4]);\n cipher.login.uris = this.makeUriArray(value[3]);\n } else {\n const folder = this.getValueOrDefault(value[altFormat ? 9 : 8], '(None)');\n let folderName = folder !== '(None)' ? folder.split('\\\\').join('/') : null;\n if (folderName != null) {\n folderName = folder.split(' > ').join('/');\n folderName = folder.split('>').join('/');\n }\n this.processFolder(result, folderName);\n cipher.notes = this.getValueOrDefault(value[altFormat ? 5 : 3]);\n cipher.login.uris = this.makeUriArray(value[4]);\n }\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (newVersion && this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CardView } from '../models/view/cardView';\nimport { FolderView } from '../models/view/folderView';\n\nimport { CipherType } from '../enums/cipherType';\n\nexport class PasswordBossJsonImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = JSON.parse(data);\n if (results == null || results.items == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n const foldersMap = new Map();\n results.folders.forEach((value: any) => {\n foldersMap.set(value.id, value.name);\n });\n const foldersIndexMap = new Map();\n foldersMap.forEach((val, key) => {\n foldersIndexMap.set(key, result.folders.length);\n const f = new FolderView();\n f.name = val;\n result.folders.push(f);\n });\n\n results.items.forEach((value: any) => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.name, '--');\n cipher.login.uris = this.makeUriArray(value.login_url);\n\n if (value.folder != null && foldersIndexMap.has(value.folder)) {\n result.folderRelationships.push([result.ciphers.length, foldersIndexMap.get(value.folder)]);\n }\n\n if (value.identifiers == null) {\n return;\n }\n\n if (!this.isNullOrWhitespace(value.identifiers.notes)) {\n cipher.notes = value.identifiers.notes.split('\\\\r\\\\n').join('\\n').split('\\\\n').join('\\n');\n }\n\n if (value.type === 'CreditCard') {\n cipher.card = new CardView();\n cipher.type = CipherType.Card;\n }\n\n for (const property in value.identifiers) {\n if (!value.identifiers.hasOwnProperty(property)) {\n continue;\n }\n const valObj = value.identifiers[property];\n const val = valObj != null ? valObj.toString() : null;\n if (this.isNullOrWhitespace(val) || property === 'notes' || property === 'ignoreItemInSecurityScore') {\n continue;\n }\n\n if (property === 'custom_fields') {\n valObj.forEach((cf: any) => {\n this.processKvp(cipher, cf.name, cf.value);\n });\n continue;\n }\n\n if (cipher.type === CipherType.Card) {\n if (property === 'cardNumber') {\n cipher.card.number = val;\n cipher.card.brand = this.getCardBrand(val);\n continue;\n } else if (property === 'nameOnCard') {\n cipher.card.cardholderName = val;\n continue;\n } else if (property === 'security_code') {\n cipher.card.code = val;\n continue;\n } else if (property === 'expires') {\n try {\n const expDate = new Date(val);\n cipher.card.expYear = expDate.getFullYear().toString();\n cipher.card.expMonth = (expDate.getMonth() + 1).toString();\n } catch { }\n continue;\n } else if (property === 'cardType') {\n continue;\n }\n } else {\n if ((property === 'username' || property === 'email') &&\n this.isNullOrWhitespace(cipher.login.username)) {\n cipher.login.username = val;\n continue;\n } else if (property === 'password') {\n cipher.login.password = val;\n continue;\n } else if (property === 'totp') {\n cipher.login.totp = val;\n continue;\n } else if ((cipher.login.uris == null || cipher.login.uris.length === 0) &&\n this.uriFieldNames.indexOf(property) > -1) {\n cipher.login.uris = this.makeUriArray(val);\n continue;\n }\n }\n\n this.processKvp(cipher, property, val);\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class PasswordDragonXmlImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const doc = this.parseXml(data);\n if (doc == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n const records = doc.querySelectorAll('PasswordManager > record');\n Array.from(records).forEach(record => {\n const category = this.querySelectorDirectChild(record, 'Category');\n const categoryText = category != null && !this.isNullOrWhitespace(category.textContent) &&\n category.textContent !== 'Unfiled' ? category.textContent : null;\n this.processFolder(result, categoryText);\n\n const accountName = this.querySelectorDirectChild(record, 'Account-Name');\n const userId = this.querySelectorDirectChild(record, 'User-Id');\n const password = this.querySelectorDirectChild(record, 'Password');\n const url = this.querySelectorDirectChild(record, 'URL');\n const notes = this.querySelectorDirectChild(record, 'Notes');\n const cipher = this.initLoginCipher();\n cipher.name = accountName != null ? this.getValueOrDefault(accountName.textContent, '--') : '--';\n cipher.notes = notes != null ? this.getValueOrDefault(notes.textContent) : '';\n cipher.login.username = userId != null ? this.getValueOrDefault(userId.textContent) : null;\n cipher.login.password = password != null ? this.getValueOrDefault(password.textContent) : null;\n cipher.login.uris = url != null ? this.makeUriArray(url.textContent) : null;\n\n const attributes: string[] = [];\n for (let i = 1; i <= 10; i++) {\n attributes.push('Attribute-' + i);\n }\n\n this.querySelectorAllDirectChild(record, attributes.join(',')).forEach(attr => {\n if (this.isNullOrWhitespace(attr.textContent) || attr.textContent === 'null') {\n return;\n }\n this.processKvp(cipher, attr.tagName, attr.textContent);\n });\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class PasswordSafeXmlImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const doc = this.parseXml(data);\n if (doc == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n const passwordSafe = doc.querySelector('passwordsafe');\n if (passwordSafe == null) {\n result.errorMessage = 'Missing `passwordsafe` node.';\n result.success = false;\n return Promise.resolve(result);\n }\n\n const notesDelimiter = passwordSafe.getAttribute('delimiter');\n const entries = doc.querySelectorAll('passwordsafe > entry');\n Array.from(entries).forEach(entry => {\n const group = this.querySelectorDirectChild(entry, 'group');\n const groupText = group != null && !this.isNullOrWhitespace(group.textContent) ?\n group.textContent.split('.').join('/') : null;\n this.processFolder(result, groupText);\n\n const title = this.querySelectorDirectChild(entry, 'title');\n const username = this.querySelectorDirectChild(entry, 'username');\n const email = this.querySelectorDirectChild(entry, 'email');\n const password = this.querySelectorDirectChild(entry, 'password');\n const url = this.querySelectorDirectChild(entry, 'url');\n const notes = this.querySelectorDirectChild(entry, 'notes');\n const cipher = this.initLoginCipher();\n cipher.name = title != null ? this.getValueOrDefault(title.textContent, '--') : '--';\n cipher.notes = notes != null ?\n this.getValueOrDefault(notes.textContent, '').split(notesDelimiter).join('\\n') : null;\n cipher.login.username = username != null ? this.getValueOrDefault(username.textContent) : null;\n cipher.login.password = password != null ? this.getValueOrDefault(password.textContent) : null;\n cipher.login.uris = url != null ? this.makeUriArray(url.textContent) : null;\n\n if (this.isNullOrWhitespace(cipher.login.username) && email != null) {\n cipher.login.username = this.getValueOrDefault(email.textContent);\n } else if (email != null && !this.isNullOrWhitespace(email.textContent)) {\n cipher.notes = this.isNullOrWhitespace(cipher.notes) ? 'Email: ' + email.textContent\n : (cipher.notes + '\\n' + 'Email: ' + email.textContent);\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class PasswordWalletTxtImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.length < 1) {\n return;\n }\n if (value.length > 5) {\n this.processFolder(result, value[5]);\n }\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value[0], '--');\n if (value.length > 4) {\n cipher.notes = this.getValueOrDefault(value[4], '').split('¬').join('\\n');\n }\n if (value.length > 2) {\n cipher.login.username = this.getValueOrDefault(value[2]);\n }\n if (value.length > 3) {\n cipher.login.password = this.getValueOrDefault(value[3]);\n }\n if (value.length > 1) {\n cipher.login.uris = this.makeUriArray(value[1]);\n }\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { CipherType } from '../enums/cipherType';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CardView } from '../models/view/cardView';\n\nexport class RememBearCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.trash === 'true') {\n return;\n }\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.name);\n cipher.notes = this.getValueOrDefault(value.notes);\n if (value.type === 'LoginItem') {\n cipher.login.uris = this.makeUriArray(value.website);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.username = this.getValueOrDefault(value.username);\n } else if (value.type === 'CreditCardItem') {\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n cipher.card.cardholderName = this.getValueOrDefault(value.cardholder);\n cipher.card.number = this.getValueOrDefault(value.number);\n cipher.card.brand = this.getCardBrand(cipher.card.number);\n cipher.card.code = this.getValueOrDefault(value.verification);\n\n try {\n const expMonth = this.getValueOrDefault(value.expiryMonth);\n if (expMonth != null) {\n const expMonthNumber = parseInt(expMonth, null);\n if (expMonthNumber != null && expMonthNumber >= 1 && expMonthNumber <= 12) {\n cipher.card.expMonth = expMonthNumber.toString();\n }\n }\n } catch { }\n try {\n const expYear = this.getValueOrDefault(value.expiryYear);\n if (expYear != null) {\n const expYearNumber = parseInt(expYear, null);\n if (expYearNumber != null) {\n cipher.card.expYear = expYearNumber.toString();\n }\n }\n } catch { }\n\n const pin = this.getValueOrDefault(value.pin);\n if (pin != null) {\n this.processKvp(cipher, 'PIN', pin);\n }\n const zip = this.getValueOrDefault(value.zipCode);\n if (zip != null) {\n this.processKvp(cipher, 'Zip Code', zip);\n }\n }\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class RoboFormCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n let i = 1;\n results.forEach(value => {\n const folder = !this.isNullOrWhitespace(value.Folder) && value.Folder.startsWith('/') ?\n value.Folder.replace('/', '') : value.Folder;\n const folderName = !this.isNullOrWhitespace(folder) ? folder : null;\n this.processFolder(result, folderName);\n\n const cipher = this.initLoginCipher();\n cipher.notes = this.getValueOrDefault(value.Note);\n cipher.name = this.getValueOrDefault(value.Name, '--');\n cipher.login.username = this.getValueOrDefault(value.Login);\n cipher.login.password = this.getValueOrDefault(value.Pwd);\n cipher.login.uris = this.makeUriArray(value.Url);\n\n if (!this.isNullOrWhitespace(value.Rf_fields)) {\n let fields: string[] = [value.Rf_fields];\n if (value.__parsed_extra != null && value.__parsed_extra.length > 0) {\n fields = fields.concat(value.__parsed_extra);\n }\n fields.forEach((field: string) => {\n const parts = field.split(':');\n if (parts.length < 3) {\n return;\n }\n const key = parts[0] === '-no-name-' ? null : parts[0];\n const val = parts.length === 4 && parts[2] === 'rck' ? parts[1] : parts[2];\n this.processKvp(cipher, key, val);\n });\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n\n if (i === results.length && cipher.name === '--' && this.isNullOrWhitespace(cipher.login.password)) {\n return;\n }\n\n result.ciphers.push(cipher);\n i++;\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { FolderView } from '../models/view/folderView';\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nimport { CipherType } from '../enums/cipherType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nexport class SafeInCloudXmlImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const doc = this.parseXml(data);\n if (doc == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n const db = doc.querySelector('database');\n if (db == null) {\n result.errorMessage = 'Missing `database` node.';\n result.success = false;\n return Promise.resolve(result);\n }\n\n const foldersMap = new Map();\n\n Array.from(doc.querySelectorAll('database > label')).forEach(labelEl => {\n const name = labelEl.getAttribute('name');\n const id = labelEl.getAttribute('id');\n if (!this.isNullOrWhitespace(name) && !this.isNullOrWhitespace(id)) {\n foldersMap.set(id, result.folders.length);\n const folder = new FolderView();\n folder.name = name;\n result.folders.push(folder);\n }\n });\n\n Array.from(doc.querySelectorAll('database > card')).forEach(cardEl => {\n if (cardEl.getAttribute('template') === 'true') {\n return;\n }\n\n const labelIdEl = this.querySelectorDirectChild(cardEl, 'label_id');\n if (labelIdEl != null) {\n const labelId = labelIdEl.textContent;\n if (!this.isNullOrWhitespace(labelId) && foldersMap.has(labelId)) {\n result.folderRelationships.push([result.ciphers.length, foldersMap.get(labelId)]);\n }\n }\n\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(cardEl.getAttribute('title'), '--');\n\n const cardType = cardEl.getAttribute('type');\n if (cardType === 'note') {\n cipher.type = CipherType.SecureNote;\n cipher.secureNote = new SecureNoteView();\n cipher.secureNote.type = SecureNoteType.Generic;\n } else {\n Array.from(this.querySelectorAllDirectChild(cardEl, 'field')).forEach(fieldEl => {\n const text = fieldEl.textContent;\n if (this.isNullOrWhitespace(text)) {\n return;\n }\n const name = fieldEl.getAttribute('name');\n const fieldType = this.getValueOrDefault(fieldEl.getAttribute('type'), '').toLowerCase();\n if (fieldType === 'login') {\n cipher.login.username = text;\n } else if (fieldType === 'password') {\n cipher.login.password = text;\n } else if (fieldType === 'one_time_password') {\n cipher.login.totp = text;\n } else if (fieldType === 'notes') {\n cipher.notes += (text + '\\n');\n } else if (fieldType === 'weblogin' || fieldType === 'website') {\n cipher.login.uris = this.makeUriArray(text);\n } else {\n this.processKvp(cipher, name, text);\n }\n });\n }\n\n Array.from(this.querySelectorAllDirectChild(cardEl, 'notes')).forEach(notesEl => {\n cipher.notes += (notesEl.textContent + '\\n');\n });\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class SaferPassCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(this.nameFromUrl(value.url), '--');\n cipher.notes = this.getValueOrDefault(value.notes);\n cipher.login.username = this.getValueOrDefault(value.username);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.uris = this.makeUriArray(value.url);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class SecureSafeCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.Title);\n cipher.notes = this.getValueOrDefault(value.Comment);\n cipher.login.uris = this.makeUriArray(value.Url);\n cipher.login.password = this.getValueOrDefault(value.Password);\n cipher.login.username = this.getValueOrDefault(value.Username);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\nimport { CipherView } from '../models/view/cipherView';\n\nexport class SplashIdCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.length < 3) {\n return;\n }\n\n this.processFolder(result, this.getValueOrDefault(value[value.length - 1]));\n const cipher = this.initLoginCipher();\n cipher.notes = this.getValueOrDefault(value[value.length - 2], '');\n cipher.name = this.getValueOrDefault(value[1], '--');\n\n if (value[0] === 'Web Logins' || value[0] === 'Servers' || value[0] === 'Email Accounts') {\n cipher.login.username = this.getValueOrDefault(value[2]);\n cipher.login.password = this.getValueOrDefault(value[3]);\n cipher.login.uris = this.makeUriArray(value[4]);\n this.parseFieldsToNotes(cipher, 5, value);\n } else {\n this.parseFieldsToNotes(cipher, 2, value);\n }\n\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n private parseFieldsToNotes(cipher: CipherView, startIndex: number, value: any) {\n // last 3 rows do not get parsed\n for (let i = startIndex; i < value.length - 3; i++) {\n if (this.isNullOrWhitespace(value[i])) {\n continue;\n }\n cipher.notes += (value[i] + '\\n');\n }\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class StickyPasswordXmlImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const doc = this.parseXml(data);\n if (doc == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n const loginNodes = doc.querySelectorAll('root > Database > Logins > Login');\n Array.from(loginNodes).forEach(loginNode => {\n const accountId = loginNode.getAttribute('ID');\n if (this.isNullOrWhitespace(accountId)) {\n return;\n }\n\n const usernameText = loginNode.getAttribute('Name');\n const passwordText = loginNode.getAttribute('Password');\n let titleText: string = null;\n let linkText: string = null;\n let notesText: string = null;\n let groupId: string = null;\n let groupText: string = null;\n\n const accountLogin = doc.querySelector('root > Database > Accounts > Account > ' +\n 'LoginLinks > Login[SourceLoginID=\"' + accountId + '\"]');\n if (accountLogin != null) {\n const account = accountLogin.parentElement.parentElement;\n if (account != null) {\n titleText = account.getAttribute('Name');\n linkText = account.getAttribute('Link');\n groupId = account.getAttribute('ParentID');\n notesText = account.getAttribute('Comments');\n if (!this.isNullOrWhitespace(notesText)) {\n notesText = notesText.split('/n').join('\\n');\n }\n }\n }\n\n if (!this.isNullOrWhitespace(groupId)) {\n groupText = this.buildGroupText(doc, groupId, '');\n this.processFolder(result, groupText);\n }\n\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(titleText, '--');\n cipher.notes = this.getValueOrDefault(notesText);\n cipher.login.username = this.getValueOrDefault(usernameText);\n cipher.login.password = this.getValueOrDefault(passwordText);\n cipher.login.uris = this.makeUriArray(linkText);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n buildGroupText(doc: Document, groupId: string, groupText: string): string {\n const group = doc.querySelector('root > Database > Groups > Group[ID=\"' + groupId + '\"]');\n if (group == null) {\n return groupText;\n }\n if (!this.isNullOrWhitespace(groupText)) {\n groupText = '/' + groupText;\n }\n groupText = group.getAttribute('Name') + groupText;\n return this.buildGroupText(doc, group.getAttribute('ParentID'), groupText);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nimport { CardView } from '../models/view/cardView';\nimport { SecureNoteView } from '../models/view/secureNoteView';\n\nimport { CipherType } from '../enums/cipherType';\nimport { SecureNoteType } from '../enums/secureNoteType';\n\nconst PropertiesToIgnore = ['kind', 'autologin', 'favorite', 'hexcolor', 'protectedwithpassword', 'subdomainonly',\n 'type', 'tk_export_version', 'note', 'title', 'document_content',\n];\n\nexport class TrueKeyCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.favorite = this.getValueOrDefault(value.favorite, '').toLowerCase() === 'true';\n cipher.name = this.getValueOrDefault(value.name, '--');\n cipher.notes = this.getValueOrDefault(value.memo, '');\n cipher.login.username = this.getValueOrDefault(value.login);\n cipher.login.password = this.getValueOrDefault(value.password);\n cipher.login.uris = this.makeUriArray(value.url);\n\n if (value.kind !== 'login') {\n cipher.name = this.getValueOrDefault(value.title, '--');\n cipher.notes = this.getValueOrDefault(value.note, '');\n }\n\n if (value.kind === 'cc') {\n cipher.type = CipherType.Card;\n cipher.card = new CardView();\n cipher.card.cardholderName = this.getValueOrDefault(value.cardholder);\n cipher.card.number = this.getValueOrDefault(value.number);\n cipher.card.brand = this.getCardBrand(cipher.card.number);\n if (!this.isNullOrWhitespace(value.expiryDate)) {\n try {\n const expDate = new Date(value.expiryDate);\n cipher.card.expYear = expDate.getFullYear().toString();\n cipher.card.expMonth = (expDate.getMonth() + 1).toString();\n } catch { }\n }\n } else if (value.kind !== 'login') {\n cipher.type = CipherType.SecureNote;\n cipher.secureNote = new SecureNoteView();\n cipher.secureNote.type = SecureNoteType.Generic;\n if (!this.isNullOrWhitespace(cipher.notes)) {\n cipher.notes = this.getValueOrDefault(value.document_content, '');\n }\n for (const property in value) {\n if (value.hasOwnProperty(property) && PropertiesToIgnore.indexOf(property.toLowerCase()) < 0 &&\n !this.isNullOrWhitespace(value[property])) {\n this.processKvp(cipher, property, value[property]);\n }\n }\n }\n\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class UpmCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, false);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (value.length !== 5) {\n return;\n }\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value[0], '--');\n cipher.notes = this.getValueOrDefault(value[4]);\n cipher.login.username = this.getValueOrDefault(value[1]);\n cipher.login.password = this.getValueOrDefault(value[2]);\n cipher.login.uris = this.makeUriArray(value[3]);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\n\nexport class YotiCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n const cipher = this.initLoginCipher();\n cipher.name = this.getValueOrDefault(value.Name, '--');\n cipher.login.username = this.getValueOrDefault(value['User name']);\n cipher.login.password = this.getValueOrDefault(value.Password);\n cipher.login.uris = this.makeUriArray(value.URL);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n result.success = true;\n return Promise.resolve(result);\n }\n}\n","import { BaseImporter } from './baseImporter';\nimport { Importer } from './importer';\n\nimport { ImportResult } from '../models/domain/importResult';\nimport { CipherView } from '../models/view';\n\nexport class ZohoVaultCsvImporter extends BaseImporter implements Importer {\n parse(data: string): Promise {\n const result = new ImportResult();\n const results = this.parseCsv(data, true);\n if (results == null) {\n result.success = false;\n return Promise.resolve(result);\n }\n\n results.forEach(value => {\n if (this.isNullOrWhitespace(value['Password Name']) && this.isNullOrWhitespace(value['Secret Name'])) {\n return;\n }\n this.processFolder(result, this.getValueOrDefault(value.ChamberName));\n const cipher = this.initLoginCipher();\n cipher.favorite = this.getValueOrDefault(value.Favorite, '0') === '1';\n cipher.notes = this.getValueOrDefault(value.Notes);\n cipher.name = this.getValueOrDefault(\n value['Password Name'], this.getValueOrDefault(value['Secret Name'], '--'));\n cipher.login.uris = this.makeUriArray(\n this.getValueOrDefault(value['Password URL'], this.getValueOrDefault(value['Secret URL'])));\n this.parseData(cipher, value.SecretData);\n this.parseData(cipher, value.CustomData);\n this.convertToNoteIfNeeded(cipher);\n this.cleanupCipher(cipher);\n result.ciphers.push(cipher);\n });\n\n if (this.organization) {\n this.moveFoldersToCollections(result);\n }\n\n result.success = true;\n return Promise.resolve(result);\n }\n\n private parseData(cipher: CipherView, data: string) {\n if (this.isNullOrWhitespace(data)) {\n return;\n }\n const dataLines = this.splitNewLine(data);\n dataLines.forEach(line => {\n const delimPosition = line.indexOf(':');\n if (delimPosition < 0) {\n return;\n }\n const field = line.substring(0, delimPosition);\n const value = line.length > delimPosition ? line.substring(delimPosition + 1) : null;\n if (this.isNullOrWhitespace(field) || this.isNullOrWhitespace(value) || field === 'SecretType') {\n return;\n }\n const fieldLower = field.toLowerCase();\n if (cipher.login.username == null && this.usernameFieldNames.indexOf(fieldLower) > -1) {\n cipher.login.username = value;\n } else if (cipher.login.password == null && this.passwordFieldNames.indexOf(fieldLower) > -1) {\n cipher.login.password = value;\n } else {\n this.processKvp(cipher, field, value);\n }\n });\n }\n}\n","import * as signalR from '@microsoft/signalr';\nimport * as signalRMsgPack from '@microsoft/signalr-protocol-msgpack';\n\nimport { NotificationType } from '../enums/notificationType';\n\nimport { ApiService } from '../abstractions/api.service';\nimport { AppIdService } from '../abstractions/appId.service';\nimport { EnvironmentService } from '../abstractions/environment.service';\nimport { LogService } from '../abstractions/log.service';\nimport { NotificationsService as NotificationsServiceAbstraction } from '../abstractions/notifications.service';\nimport { SyncService } from '../abstractions/sync.service';\nimport { UserService } from '../abstractions/user.service';\nimport { VaultTimeoutService } from '../abstractions/vaultTimeout.service';\n\nimport {\n NotificationResponse,\n SyncCipherNotification,\n SyncFolderNotification,\n SyncSendNotification,\n} from '../models/response/notificationResponse';\n\nexport class NotificationsService implements NotificationsServiceAbstraction {\n private signalrConnection: signalR.HubConnection;\n private url: string;\n private connected = false;\n private inited = false;\n private inactive = false;\n private reconnectTimer: any = null;\n\n constructor(private userService: UserService, private syncService: SyncService,\n private appIdService: AppIdService, private apiService: ApiService,\n private vaultTimeoutService: VaultTimeoutService,\n private logoutCallback: () => Promise, private logService: LogService) {\n }\n\n async init(environmentService: EnvironmentService): Promise {\n this.inited = false;\n this.url = 'https://notifications.bitwarden.com';\n if (environmentService.notificationsUrl != null) {\n this.url = environmentService.notificationsUrl;\n } else if (environmentService.baseUrl != null) {\n this.url = environmentService.baseUrl + '/notifications';\n }\n\n // Set notifications server URL to `https://-` to effectively disable communication\n // with the notifications server from the client app\n if (this.url === 'https://-') {\n return;\n }\n\n if (this.signalrConnection != null) {\n this.signalrConnection.off('ReceiveMessage');\n this.signalrConnection.off('Heartbeat');\n await this.signalrConnection.stop();\n this.connected = false;\n this.signalrConnection = null;\n }\n\n this.signalrConnection = new signalR.HubConnectionBuilder()\n .withUrl(this.url + '/hub', {\n accessTokenFactory: () => this.apiService.getActiveBearerToken(),\n skipNegotiation: true,\n transport: signalR.HttpTransportType.WebSockets,\n })\n .withHubProtocol(new signalRMsgPack.MessagePackHubProtocol())\n // .configureLogging(signalR.LogLevel.Trace)\n .build();\n\n this.signalrConnection.on('ReceiveMessage',\n (data: any) => this.processNotification(new NotificationResponse(data)));\n this.signalrConnection.on('Heartbeat',\n (data: any) => { /*console.log('Heartbeat!');*/ });\n this.signalrConnection.onclose(() => {\n this.connected = false;\n this.reconnect(true);\n });\n this.inited = true;\n if (await this.isAuthedAndUnlocked()) {\n await this.reconnect(false);\n }\n }\n\n async updateConnection(sync = false): Promise {\n if (!this.inited) {\n return;\n }\n try {\n if (await this.isAuthedAndUnlocked()) {\n await this.reconnect(sync);\n } else {\n await this.signalrConnection.stop();\n }\n } catch (e) {\n this.logService.error(e.toString());\n }\n }\n\n async reconnectFromActivity(): Promise {\n this.inactive = false;\n if (this.inited && !this.connected) {\n await this.reconnect(true);\n }\n }\n\n async disconnectFromInactivity(): Promise {\n this.inactive = true;\n if (this.inited && this.connected) {\n await this.signalrConnection.stop();\n }\n }\n\n private async processNotification(notification: NotificationResponse) {\n const appId = await this.appIdService.getAppId();\n if (notification == null || notification.contextId === appId) {\n return;\n }\n\n const isAuthenticated = await this.userService.isAuthenticated();\n const payloadUserId = notification.payload.userId || notification.payload.UserId;\n const myUserId = await this.userService.getUserId();\n if (isAuthenticated && payloadUserId != null && payloadUserId !== myUserId) {\n return;\n }\n\n switch (notification.type) {\n case NotificationType.SyncCipherCreate:\n case NotificationType.SyncCipherUpdate:\n await this.syncService.syncUpsertCipher(notification.payload as SyncCipherNotification,\n notification.type === NotificationType.SyncCipherUpdate);\n break;\n case NotificationType.SyncCipherDelete:\n case NotificationType.SyncLoginDelete:\n await this.syncService.syncDeleteCipher(notification.payload as SyncCipherNotification);\n break;\n case NotificationType.SyncFolderCreate:\n case NotificationType.SyncFolderUpdate:\n await this.syncService.syncUpsertFolder(notification.payload as SyncFolderNotification,\n notification.type === NotificationType.SyncFolderUpdate);\n break;\n case NotificationType.SyncFolderDelete:\n await this.syncService.syncDeleteFolder(notification.payload as SyncFolderNotification);\n break;\n case NotificationType.SyncVault:\n case NotificationType.SyncCiphers:\n case NotificationType.SyncSettings:\n if (isAuthenticated) {\n await this.syncService.fullSync(false);\n }\n break;\n case NotificationType.SyncOrgKeys:\n if (isAuthenticated) {\n await this.apiService.refreshIdentityToken();\n await this.syncService.fullSync(true);\n // Stop so a reconnect can be made\n await this.signalrConnection.stop();\n }\n break;\n case NotificationType.LogOut:\n if (isAuthenticated) {\n this.logoutCallback();\n }\n break;\n case NotificationType.SyncSendCreate:\n case NotificationType.SyncSendUpdate:\n await this.syncService.syncUpsertSend(notification.payload as SyncSendNotification,\n notification.type === NotificationType.SyncSendUpdate);\n break;\n case NotificationType.SyncSendDelete:\n await this.syncService.syncDeleteSend(notification.payload as SyncSendNotification);\n default:\n break;\n }\n }\n\n private async reconnect(sync: boolean) {\n if (this.reconnectTimer != null) {\n clearTimeout(this.reconnectTimer);\n this.reconnectTimer = null;\n }\n if (this.connected || !this.inited || this.inactive) {\n return;\n }\n const authedAndUnlocked = await this.isAuthedAndUnlocked();\n if (!authedAndUnlocked) {\n return;\n }\n\n try {\n await this.signalrConnection.start();\n this.connected = true;\n if (sync) {\n await this.syncService.fullSync(false);\n }\n } catch { }\n\n if (!this.connected) {\n this.reconnectTimer = setTimeout(() => this.reconnect(sync), this.random(120000, 300000));\n }\n }\n\n private async isAuthedAndUnlocked() {\n if (await this.userService.isAuthenticated()) {\n const locked = await this.vaultTimeoutService.isLocked();\n return !locked;\n }\n return false;\n }\n\n private random(min: number, max: number) {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n }\n}\n","import { BaseResponse } from './baseResponse';\n\nimport { NotificationType } from '../../enums/notificationType';\n\nexport class NotificationResponse extends BaseResponse {\n contextId: string;\n type: NotificationType;\n payload: any;\n\n constructor(response: any) {\n super(response);\n this.contextId = this.getResponseProperty('ContextId');\n this.type = this.getResponseProperty('Type');\n\n const payload = this.getResponseProperty('Payload');\n switch (this.type) {\n case NotificationType.SyncCipherCreate:\n case NotificationType.SyncCipherDelete:\n case NotificationType.SyncCipherUpdate:\n case NotificationType.SyncLoginDelete:\n this.payload = new SyncCipherNotification(payload);\n break;\n case NotificationType.SyncFolderCreate:\n case NotificationType.SyncFolderDelete:\n case NotificationType.SyncFolderUpdate:\n this.payload = new SyncFolderNotification(payload);\n break;\n case NotificationType.SyncVault:\n case NotificationType.SyncCiphers:\n case NotificationType.SyncOrgKeys:\n case NotificationType.SyncSettings:\n case NotificationType.LogOut:\n this.payload = new UserNotification(payload);\n break;\n case NotificationType.SyncSendCreate:\n case NotificationType.SyncSendUpdate:\n case NotificationType.SyncSendDelete:\n this.payload = new SyncSendNotification(payload);\n default:\n break;\n }\n }\n}\n\nexport class SyncCipherNotification extends BaseResponse {\n id: string;\n userId: string;\n organizationId: string;\n collectionIds: string[];\n revisionDate: Date;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.userId = this.getResponseProperty('UserId');\n this.organizationId = this.getResponseProperty('OrganizationId');\n this.collectionIds = this.getResponseProperty('CollectionIds');\n this.revisionDate = new Date(this.getResponseProperty('RevisionDate'));\n }\n}\n\nexport class SyncFolderNotification extends BaseResponse {\n id: string;\n userId: string;\n revisionDate: Date;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.userId = this.getResponseProperty('UserId');\n this.revisionDate = new Date(this.getResponseProperty('RevisionDate'));\n }\n}\n\nexport class UserNotification extends BaseResponse {\n userId: string;\n date: Date;\n\n constructor(response: any) {\n super(response);\n this.userId = this.getResponseProperty('UserId');\n this.date = new Date(this.getResponseProperty('Date'));\n }\n}\n\nexport class SyncSendNotification extends BaseResponse {\n id: string;\n userId: string;\n revisionDate: Date;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty('Id');\n this.userId = this.getResponseProperty('UserId');\n this.revisionDate = new Date(this.getResponseProperty('RevisionDate'));\n }\n}\n","import { PolicyService as PolicyServiceAbstraction } from '../abstractions/policy.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { UserService } from '../abstractions/user.service';\n\nimport { PolicyData } from '../models/data/policyData';\n\nimport { MasterPasswordPolicyOptions } from '../models/domain/masterPasswordPolicyOptions';\nimport { Policy } from '../models/domain/policy';\n\nimport { PolicyType } from '../enums/policyType';\n\nconst Keys = {\n policiesPrefix: 'policies_',\n};\n\nexport class PolicyService implements PolicyServiceAbstraction {\n policyCache: Policy[];\n\n constructor(private userService: UserService, private storageService: StorageService) {\n }\n\n clearCache(): void {\n this.policyCache = null;\n }\n\n async getAll(type?: PolicyType): Promise {\n if (this.policyCache == null) {\n const userId = await this.userService.getUserId();\n const policies = await this.storageService.get<{ [id: string]: PolicyData; }>(\n Keys.policiesPrefix + userId);\n const response: Policy[] = [];\n for (const id in policies) {\n if (policies.hasOwnProperty(id)) {\n response.push(new Policy(policies[id]));\n }\n }\n this.policyCache = response;\n }\n if (type != null) {\n return this.policyCache.filter(p => p.type === type);\n } else {\n return this.policyCache;\n }\n }\n\n async replace(policies: { [id: string]: PolicyData; }): Promise {\n const userId = await this.userService.getUserId();\n await this.storageService.save(Keys.policiesPrefix + userId, policies);\n this.policyCache = null;\n }\n\n async clear(userId: string): Promise {\n await this.storageService.remove(Keys.policiesPrefix + userId);\n this.policyCache = null;\n }\n\n async getMasterPasswordPolicyOptions(policies?: Policy[]): Promise {\n let enforcedOptions: MasterPasswordPolicyOptions = null;\n\n if (policies == null) {\n policies = await this.getAll(PolicyType.MasterPassword);\n } else {\n policies = policies.filter(p => p.type === PolicyType.MasterPassword);\n }\n\n if (policies == null || policies.length === 0) {\n return enforcedOptions;\n }\n\n policies.forEach(currentPolicy => {\n if (!currentPolicy.enabled || currentPolicy.data == null) {\n return;\n }\n\n if (enforcedOptions == null) {\n enforcedOptions = new MasterPasswordPolicyOptions();\n }\n\n if (currentPolicy.data.minComplexity != null\n && currentPolicy.data.minComplexity > enforcedOptions.minComplexity) {\n enforcedOptions.minComplexity = currentPolicy.data.minComplexity;\n }\n\n if (currentPolicy.data.minLength != null\n && currentPolicy.data.minLength > enforcedOptions.minLength) {\n enforcedOptions.minLength = currentPolicy.data.minLength;\n }\n\n if (currentPolicy.data.requireUpper) {\n enforcedOptions.requireUpper = true;\n }\n\n if (currentPolicy.data.requireLower) {\n enforcedOptions.requireLower = true;\n }\n\n if (currentPolicy.data.requireNumbers) {\n enforcedOptions.requireNumbers = true;\n }\n\n if (currentPolicy.data.requireSpecial) {\n enforcedOptions.requireSpecial = true;\n }\n });\n\n return enforcedOptions;\n }\n\n evaluateMasterPassword(passwordStrength: number, newPassword: string,\n enforcedPolicyOptions: MasterPasswordPolicyOptions): boolean {\n if (enforcedPolicyOptions == null) {\n return true;\n }\n\n if (enforcedPolicyOptions.minComplexity > 0 && enforcedPolicyOptions.minComplexity > passwordStrength) {\n return false;\n }\n\n if (enforcedPolicyOptions.minLength > 0 && enforcedPolicyOptions.minLength > newPassword.length) {\n return false;\n }\n\n if (enforcedPolicyOptions.requireUpper && newPassword.toLocaleLowerCase() === newPassword) {\n return false;\n }\n\n if (enforcedPolicyOptions.requireLower && newPassword.toLocaleUpperCase() === newPassword) {\n return false;\n }\n\n if (enforcedPolicyOptions.requireNumbers && !(/[0-9]/.test(newPassword))) {\n return false;\n }\n\n if (enforcedPolicyOptions.requireSpecial && !(/[!@#$%\\^&*]/g.test(newPassword))) {\n return false;\n }\n\n return true;\n }\n}\n","import Domain from './domainBase';\n\nexport class MasterPasswordPolicyOptions extends Domain {\n minComplexity: number = 0;\n minLength: number = 0;\n requireUpper: boolean = false;\n requireLower: boolean = false;\n requireNumbers: boolean = false;\n requireSpecial: boolean = false;\n}\n","import * as lunr from 'lunr';\n\nimport { CipherView } from '../models/view/cipherView';\n\nimport { CipherService } from '../abstractions/cipher.service';\nimport { LogService } from '../abstractions/log.service';\nimport { SearchService as SearchServiceAbstraction } from '../abstractions/search.service';\n\nimport { CipherType } from '../enums/cipherType';\nimport { FieldType } from '../enums/fieldType';\nimport { UriMatchType } from '../enums/uriMatchType';\nimport { SendView } from '../models/view/sendView';\n\nexport class SearchService implements SearchServiceAbstraction {\n private indexing = false;\n private index: lunr.Index = null;\n\n constructor(private cipherService: CipherService, private logService: LogService) {\n }\n\n clearIndex(): void {\n this.index = null;\n }\n\n isSearchable(query: string): boolean {\n const notSearchable = query == null || (this.index == null && query.length < 2) ||\n (this.index != null && query.length < 2 && query.indexOf('>') !== 0);\n return !notSearchable;\n }\n\n async indexCiphers(): Promise {\n if (this.indexing) {\n return;\n }\n\n this.logService.time('search indexing');\n this.indexing = true;\n this.index = null;\n const builder = new lunr.Builder();\n builder.ref('id');\n builder.field('shortid', { boost: 100, extractor: (c: CipherView) => c.id.substr(0, 8) });\n builder.field('name', { boost: 10 });\n builder.field('subtitle', {\n boost: 5,\n extractor: (c: CipherView) => {\n if (c.subTitle != null && c.type === CipherType.Card) {\n return c.subTitle.replace(/\\*/g, '');\n }\n return c.subTitle;\n },\n });\n builder.field('notes');\n builder.field('login.username', {\n extractor: (c: CipherView) => c.type === CipherType.Login && c.login != null ? c.login.username : null,\n });\n builder.field('login.uris', { boost: 2, extractor: (c: CipherView) => this.uriExtractor(c) });\n builder.field('fields', { extractor: (c: CipherView) => this.fieldExtractor(c, false) });\n builder.field('fields_joined', { extractor: (c: CipherView) => this.fieldExtractor(c, true) });\n builder.field('attachments', { extractor: (c: CipherView) => this.attachmentExtractor(c, false) });\n builder.field('attachments_joined',\n { extractor: (c: CipherView) => this.attachmentExtractor(c, true) });\n builder.field('organizationid', { extractor: (c: CipherView) => c.organizationId });\n const ciphers = await this.cipherService.getAllDecrypted();\n ciphers.forEach(c => builder.add(c));\n this.index = builder.build();\n this.indexing = false;\n\n this.logService.timeEnd('search indexing');\n }\n\n async searchCiphers(query: string,\n filter: (((cipher: CipherView) => boolean) | (((cipher: CipherView) => boolean)[])) = null,\n ciphers: CipherView[] = null):\n Promise {\n const results: CipherView[] = [];\n if (query != null) {\n query = query.trim().toLowerCase();\n }\n if (query === '') {\n query = null;\n }\n\n if (ciphers == null) {\n ciphers = await this.cipherService.getAllDecrypted();\n }\n\n if (filter != null && Array.isArray(filter) && filter.length > 0) {\n ciphers = ciphers.filter(c => filter.every(f => f == null || f(c)));\n } else if (filter != null) {\n ciphers = ciphers.filter(filter as (cipher: CipherView) => boolean);\n }\n\n if (!this.isSearchable(query)) {\n return ciphers;\n }\n\n if (this.indexing) {\n await new Promise(r => setTimeout(r, 250));\n if (this.indexing) {\n await new Promise(r => setTimeout(r, 500));\n }\n }\n\n const index = this.getIndexForSearch();\n if (index == null) {\n // Fall back to basic search if index is not available\n return this.searchCiphersBasic(ciphers, query);\n }\n\n const ciphersMap = new Map();\n ciphers.forEach(c => ciphersMap.set(c.id, c));\n\n let searchResults: lunr.Index.Result[] = null;\n const isQueryString = query != null && query.length > 1 && query.indexOf('>') === 0;\n if (isQueryString) {\n try {\n searchResults = index.search(query.substr(1).trim());\n } catch { }\n } else {\n // tslint:disable-next-line\n const soWild = lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING;\n searchResults = index.query(q => {\n lunr.tokenizer(query).forEach(token => {\n const t = token.toString();\n q.term(t, { fields: ['name'], wildcard: soWild });\n q.term(t, { fields: ['subtitle'], wildcard: soWild });\n q.term(t, { fields: ['login.uris'], wildcard: soWild });\n q.term(t, {});\n });\n });\n }\n\n if (searchResults != null) {\n searchResults.forEach(r => {\n if (ciphersMap.has(r.ref)) {\n results.push(ciphersMap.get(r.ref));\n }\n });\n }\n return results;\n }\n\n searchCiphersBasic(ciphers: CipherView[], query: string, deleted: boolean = false) {\n query = query.trim().toLowerCase();\n return ciphers.filter(c => {\n if (deleted !== c.isDeleted) {\n return false;\n }\n if (c.name != null && c.name.toLowerCase().indexOf(query) > -1) {\n return true;\n }\n if (query.length >= 8 && c.id.startsWith(query)) {\n return true;\n }\n if (c.subTitle != null && c.subTitle.toLowerCase().indexOf(query) > -1) {\n return true;\n }\n if (c.login && c.login.uri != null && c.login.uri.toLowerCase().indexOf(query) > -1) {\n return true;\n }\n return false;\n });\n }\n\n searchSends(sends: SendView[], query: string) {\n query = query.trim().toLocaleLowerCase();\n\n return sends.filter(s => {\n if (s.name != null && s.name.toLowerCase().indexOf(query) > -1) {\n return true;\n }\n if (query.length >= 8 && (s.id.startsWith(query) || s.accessId.toLocaleLowerCase().startsWith(query) || (s.file?.id != null && s.file.id.startsWith(query)))) {\n return true;\n }\n if (s.notes != null && s.notes.toLowerCase().indexOf(query) > -1) {\n return true;\n }\n if (s.text?.text != null && s.text.text.toLowerCase().indexOf(query) > -1) {\n return true;\n }\n if (s.file?.fileName != null && s.file.fileName.toLowerCase().indexOf(query) > -1) {\n return true;\n }\n });\n }\n\n getIndexForSearch(): lunr.Index {\n return this.index;\n }\n\n private fieldExtractor(c: CipherView, joined: boolean) {\n if (!c.hasFields) {\n return null;\n }\n let fields: string[] = [];\n c.fields.forEach(f => {\n if (f.name != null) {\n fields.push(f.name);\n }\n if (f.type === FieldType.Text && f.value != null) {\n fields.push(f.value);\n }\n });\n fields = fields.filter(f => f.trim() !== '');\n if (fields.length === 0) {\n return null;\n }\n return joined ? fields.join(' ') : fields;\n }\n\n private attachmentExtractor(c: CipherView, joined: boolean) {\n if (!c.hasAttachments) {\n return null;\n }\n let attachments: string[] = [];\n c.attachments.forEach(a => {\n if (a != null && a.fileName != null) {\n if (joined && a.fileName.indexOf('.') > -1) {\n attachments.push(a.fileName.substr(0, a.fileName.lastIndexOf('.')));\n } else {\n attachments.push(a.fileName);\n }\n }\n });\n attachments = attachments.filter(f => f.trim() !== '');\n if (attachments.length === 0) {\n return null;\n }\n return joined ? attachments.join(' ') : attachments;\n }\n\n private uriExtractor(c: CipherView) {\n if (c.type !== CipherType.Login || c.login == null || !c.login.hasUris) {\n return null;\n }\n const uris: string[] = [];\n c.login.uris.forEach(u => {\n if (u.uri == null || u.uri === '') {\n return;\n }\n if (u.hostname != null) {\n uris.push(u.hostname);\n return;\n }\n let uri = u.uri;\n if (u.match !== UriMatchType.RegularExpression) {\n const protocolIndex = uri.indexOf('://');\n if (protocolIndex > -1) {\n uri = uri.substr(protocolIndex + 3);\n }\n const queryIndex = uri.search(/\\?|&|#/);\n if (queryIndex > -1) {\n uri = uri.substring(0, queryIndex);\n }\n }\n uris.push(uri);\n });\n return uris.length > 0 ? uris : null;\n }\n}\n","import { SendData } from '../models/data/sendData';\n\nimport { SendRequest } from '../models/request/sendRequest';\n\nimport { SendResponse } from '../models/response/sendResponse';\n\nimport { Send } from '../models/domain/send';\nimport { SendFile } from '../models/domain/sendFile';\nimport { SendText } from '../models/domain/sendText';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nimport { SendType } from '../enums/sendType';\n\nimport { SendView } from '../models/view/sendView';\n\nimport { ApiService } from '../abstractions/api.service';\nimport { CryptoService } from '../abstractions/crypto.service';\nimport { CryptoFunctionService } from '../abstractions/cryptoFunction.service';\nimport { I18nService } from '../abstractions/i18n.service';\nimport { SendService as SendServiceAbstraction } from '../abstractions/send.service';\nimport { StorageService } from '../abstractions/storage.service';\nimport { UserService } from '../abstractions/user.service';\n\nimport { Utils } from '../misc/utils';\nimport { CipherString } from '../models/domain';\n\nconst Keys = {\n sendsPrefix: 'sends_',\n};\n\nexport class SendService implements SendServiceAbstraction {\n decryptedSendCache: SendView[];\n\n constructor(private cryptoService: CryptoService, private userService: UserService,\n private apiService: ApiService, private storageService: StorageService,\n private i18nService: I18nService, private cryptoFunctionService: CryptoFunctionService) { }\n\n clearCache(): void {\n this.decryptedSendCache = null;\n }\n\n async encrypt(model: SendView, file: File | ArrayBuffer, password: string,\n key?: SymmetricCryptoKey): Promise<[Send, ArrayBuffer]> {\n let fileData: ArrayBuffer = null;\n const send = new Send();\n send.id = model.id;\n send.type = model.type;\n send.disabled = model.disabled;\n send.maxAccessCount = model.maxAccessCount;\n if (model.key == null) {\n model.key = await this.cryptoFunctionService.randomBytes(16);\n model.cryptoKey = await this.cryptoService.makeSendKey(model.key);\n }\n if (password != null) {\n const passwordHash = await this.cryptoFunctionService.pbkdf2(password, model.key, 'sha256', 100000);\n send.password = Utils.fromBufferToB64(passwordHash);\n }\n send.key = await this.cryptoService.encrypt(model.key, key);\n send.name = await this.cryptoService.encrypt(model.name, model.cryptoKey);\n send.notes = await this.cryptoService.encrypt(model.notes, model.cryptoKey);\n if (send.type === SendType.Text) {\n send.text = new SendText();\n send.text.text = await this.cryptoService.encrypt(model.text.text, model.cryptoKey);\n send.text.hidden = model.text.hidden;\n } else if (send.type === SendType.File) {\n send.file = new SendFile();\n if (file != null) {\n if (file instanceof ArrayBuffer) {\n const [name, data] = await this.encryptFileData(model.file.fileName, file, model.cryptoKey);\n send.file.fileName = name;\n fileData = data;\n } else {\n fileData = await this.parseFile(send, file, model.cryptoKey);\n }\n }\n }\n\n return [send, fileData];\n }\n\n async get(id: string): Promise {\n const userId = await this.userService.getUserId();\n const sends = await this.storageService.get<{ [id: string]: SendData; }>(\n Keys.sendsPrefix + userId);\n if (sends == null || !sends.hasOwnProperty(id)) {\n return null;\n }\n\n return new Send(sends[id]);\n }\n\n async getAll(): Promise {\n const userId = await this.userService.getUserId();\n const sends = await this.storageService.get<{ [id: string]: SendData; }>(\n Keys.sendsPrefix + userId);\n const response: Send[] = [];\n for (const id in sends) {\n if (sends.hasOwnProperty(id)) {\n response.push(new Send(sends[id]));\n }\n }\n return response;\n }\n\n async getAllDecrypted(): Promise {\n if (this.decryptedSendCache != null) {\n return this.decryptedSendCache;\n }\n\n const hasKey = await this.cryptoService.hasKey();\n if (!hasKey) {\n throw new Error('No key.');\n }\n\n const decSends: SendView[] = [];\n const promises: Promise[] = [];\n const sends = await this.getAll();\n sends.forEach(send => {\n promises.push(send.decrypt().then(f => decSends.push(f)));\n });\n\n await Promise.all(promises);\n decSends.sort(Utils.getSortFunction(this.i18nService, 'name'));\n\n this.decryptedSendCache = decSends;\n return this.decryptedSendCache;\n }\n\n async saveWithServer(sendData: [Send, ArrayBuffer]): Promise {\n const request = new SendRequest(sendData[0], sendData[1]?.byteLength);\n let response: SendResponse;\n if (sendData[0].id == null) {\n if (sendData[0].type === SendType.Text) {\n response = await this.apiService.postSend(request);\n } else {\n const fd = new FormData();\n try {\n const blob = new Blob([sendData[1]], { type: 'application/octet-stream' });\n fd.append('model', JSON.stringify(request));\n fd.append('data', blob, sendData[0].file.fileName.encryptedString);\n } catch (e) {\n if (Utils.isNode && !Utils.isBrowser) {\n fd.append('model', JSON.stringify(request));\n fd.append('data', Buffer.from(sendData[1]) as any, {\n filepath: sendData[0].file.fileName.encryptedString,\n contentType: 'application/octet-stream',\n } as any);\n } else {\n throw e;\n }\n }\n response = await this.apiService.postSendFile(fd);\n }\n sendData[0].id = response.id;\n sendData[0].accessId = response.accessId;\n } else {\n response = await this.apiService.putSend(sendData[0].id, request);\n }\n\n const userId = await this.userService.getUserId();\n const data = new SendData(response, userId);\n await this.upsert(data);\n }\n\n async upsert(send: SendData | SendData[]): Promise {\n const userId = await this.userService.getUserId();\n let sends = await this.storageService.get<{ [id: string]: SendData; }>(\n Keys.sendsPrefix + userId);\n if (sends == null) {\n sends = {};\n }\n\n if (send instanceof SendData) {\n const s = send as SendData;\n sends[s.id] = s;\n } else {\n (send as SendData[]).forEach(s => {\n sends[s.id] = s;\n });\n }\n\n await this.storageService.save(Keys.sendsPrefix + userId, sends);\n this.decryptedSendCache = null;\n }\n\n async replace(sends: { [id: string]: SendData; }): Promise {\n const userId = await this.userService.getUserId();\n await this.storageService.save(Keys.sendsPrefix + userId, sends);\n this.decryptedSendCache = null;\n }\n\n async clear(userId: string): Promise {\n await this.storageService.remove(Keys.sendsPrefix + userId);\n this.decryptedSendCache = null;\n }\n\n async delete(id: string | string[]): Promise {\n const userId = await this.userService.getUserId();\n const sends = await this.storageService.get<{ [id: string]: SendData; }>(\n Keys.sendsPrefix + userId);\n if (sends == null) {\n return;\n }\n\n if (typeof id === 'string') {\n if (sends[id] == null) {\n return;\n }\n delete sends[id];\n } else {\n (id as string[]).forEach(i => {\n delete sends[i];\n });\n }\n\n await this.storageService.save(Keys.sendsPrefix + userId, sends);\n this.decryptedSendCache = null;\n }\n\n async deleteWithServer(id: string): Promise {\n await this.apiService.deleteSend(id);\n await this.delete(id);\n }\n\n async removePasswordWithServer(id: string): Promise {\n const response = await this.apiService.putSendRemovePassword(id);\n const userId = await this.userService.getUserId();\n const data = new SendData(response, userId);\n await this.upsert(data);\n }\n\n private parseFile(send: Send, file: File, key: SymmetricCryptoKey): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsArrayBuffer(file);\n reader.onload = async evt => {\n try {\n const [name, data] = await this.encryptFileData(file.name, evt.target.result as ArrayBuffer, key);\n send.file.fileName = name;\n resolve(data);\n } catch (e) {\n reject(e);\n }\n };\n reader.onerror = evt => {\n reject('Error reading file.');\n };\n });\n }\n\n private async encryptFileData(fileName: string, data: ArrayBuffer,\n key: SymmetricCryptoKey): Promise<[CipherString, ArrayBuffer]> {\n const encFileName = await this.cryptoService.encrypt(fileName, key);\n const encFileData = await this.cryptoService.encryptToBytes(data, key);\n return [encFileName, encFileData];\n }\n}\n","import { SendType } from '../../enums/sendType';\n\nimport { SendFileApi } from '../api/sendFileApi';\nimport { SendTextApi } from '../api/sendTextApi';\n\nimport { Send } from '../domain/send';\n\nexport class SendRequest {\n type: SendType;\n fileLength?: number;\n name: string;\n notes: string;\n key: string;\n maxAccessCount?: number;\n expirationDate: string;\n deletionDate: string;\n text: SendTextApi;\n file: SendFileApi;\n password: string;\n disabled: boolean;\n\n constructor(send: Send, fileLength?: number) {\n this.type = send.type;\n this.fileLength = fileLength;\n this.name = send.name ? send.name.encryptedString : null;\n this.notes = send.notes ? send.notes.encryptedString : null;\n this.maxAccessCount = send.maxAccessCount;\n this.expirationDate = send.expirationDate != null ? send.expirationDate.toISOString() : null;\n this.deletionDate = send.deletionDate != null ? send.deletionDate.toISOString() : null;\n this.key = send.key != null ? send.key.encryptedString : null;\n this.password = send.password;\n this.disabled = send.disabled;\n\n switch (this.type) {\n case SendType.Text:\n this.text = new SendTextApi();\n this.text.text = send.text.text != null ? send.text.text.encryptedString : null;\n this.text.hidden = send.text.hidden;\n break;\n case SendType.File:\n this.file = new SendFileApi();\n this.file.fileName = send.file.fileName != null ? send.file.fileName.encryptedString : null;\n break;\n default:\n break;\n }\n }\n}\n","import { CryptoService } from '../../abstractions/crypto.service';\n\nimport { SendType } from '../../enums/sendType';\n\nimport { Utils } from '../../misc/utils';\n\nimport { SendData } from '../data/sendData';\n\nimport { SendView } from '../view/sendView';\n\nimport { CipherString } from './cipherString';\nimport Domain from './domainBase';\nimport { SendFile } from './sendFile';\nimport { SendText } from './sendText';\n\nexport class Send extends Domain {\n id: string;\n accessId: string;\n userId: string;\n type: SendType;\n name: CipherString;\n notes: CipherString;\n file: SendFile;\n text: SendText;\n key: CipherString;\n maxAccessCount?: number;\n accessCount: number;\n revisionDate: Date;\n expirationDate: Date;\n deletionDate: Date;\n password: string;\n disabled: boolean;\n\n constructor(obj?: SendData, alreadyEncrypted: boolean = false) {\n super();\n if (obj == null) {\n return;\n }\n\n this.buildDomainModel(this, obj, {\n id: null,\n accessId: null,\n userId: null,\n name: null,\n notes: null,\n key: null,\n }, alreadyEncrypted, ['id', 'accessId', 'userId']);\n\n this.type = obj.type;\n this.maxAccessCount = obj.maxAccessCount;\n this.accessCount = obj.accessCount;\n this.password = obj.password;\n this.disabled = obj.disabled;\n this.revisionDate = obj.revisionDate != null ? new Date(obj.revisionDate) : null;\n this.deletionDate = obj.deletionDate != null ? new Date(obj.deletionDate) : null;\n this.expirationDate = obj.expirationDate != null ? new Date(obj.expirationDate) : null;\n\n switch (this.type) {\n case SendType.Text:\n this.text = new SendText(obj.text, alreadyEncrypted);\n break;\n case SendType.File:\n this.file = new SendFile(obj.file, alreadyEncrypted);\n break;\n default:\n break;\n }\n }\n\n async decrypt(): Promise {\n const model = new SendView(this);\n\n let cryptoService: CryptoService;\n const containerService = (Utils.global as any).bitwardenContainerService;\n if (containerService) {\n cryptoService = containerService.getCryptoService();\n } else {\n throw new Error('global bitwardenContainerService not initialized.');\n }\n\n try {\n model.key = await cryptoService.decryptToBytes(this.key, null);\n model.cryptoKey = await cryptoService.makeSendKey(model.key);\n } catch (e) {\n // TODO: error?\n }\n\n await this.decryptObj(model, {\n name: null,\n notes: null,\n }, null, model.cryptoKey);\n\n switch (this.type) {\n case SendType.File:\n model.file = await this.file.decrypt(model.cryptoKey);\n break;\n case SendType.Text:\n model.text = await this.text.decrypt(model.cryptoKey);\n break;\n default:\n break;\n }\n\n return model;\n }\n}\n","import * as forge from 'node-forge';\n\nimport { CryptoFunctionService } from '../abstractions/cryptoFunction.service';\nimport { PlatformUtilsService } from '../abstractions/platformUtils.service';\n\nimport { Utils } from '../misc/utils';\n\nimport { DecryptParameters } from '../models/domain/decryptParameters';\nimport { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey';\n\nexport class WebCryptoFunctionService implements CryptoFunctionService {\n private crypto: Crypto;\n private subtle: SubtleCrypto;\n private isIE: boolean;\n private isOldSafari: boolean;\n\n constructor(private win: Window, private platformUtilsService: PlatformUtilsService) {\n this.crypto = typeof win.crypto !== 'undefined' ? win.crypto : null;\n this.subtle = (!!this.crypto && typeof win.crypto.subtle !== 'undefined') ? win.crypto.subtle : null;\n this.isIE = platformUtilsService.isIE();\n const ua = win.navigator.userAgent;\n this.isOldSafari = platformUtilsService.isSafari() &&\n (ua.indexOf(' Version/10.') > -1 || ua.indexOf(' Version/9.') > -1);\n }\n\n async pbkdf2(password: string | ArrayBuffer, salt: string | ArrayBuffer, algorithm: 'sha256' | 'sha512',\n iterations: number): Promise {\n if (this.isIE || this.isOldSafari) {\n const forgeLen = algorithm === 'sha256' ? 32 : 64;\n const passwordBytes = this.toByteString(password);\n const saltBytes = this.toByteString(salt);\n const derivedKeyBytes = (forge as any).pbkdf2(passwordBytes, saltBytes, iterations, forgeLen, algorithm);\n return Utils.fromByteStringToArray(derivedKeyBytes).buffer;\n }\n\n const wcLen = algorithm === 'sha256' ? 256 : 512;\n const passwordBuf = this.toBuf(password);\n const saltBuf = this.toBuf(salt);\n\n const pbkdf2Params: Pbkdf2Params = {\n name: 'PBKDF2',\n salt: saltBuf,\n iterations: iterations,\n hash: { name: this.toWebCryptoAlgorithm(algorithm) },\n };\n\n const impKey = await this.subtle.importKey('raw', passwordBuf, { name: 'PBKDF2' } as any,\n false, ['deriveBits']);\n return await this.subtle.deriveBits(pbkdf2Params, impKey, wcLen);\n }\n\n async hkdf(ikm: ArrayBuffer, salt: string | ArrayBuffer, info: string | ArrayBuffer,\n outputByteSize: number, algorithm: 'sha256' | 'sha512'): Promise {\n const saltBuf = this.toBuf(salt);\n const infoBuf = this.toBuf(info);\n\n const hkdfParams: HkdfParams = {\n name: 'HKDF',\n salt: saltBuf,\n info: infoBuf,\n hash: { name: this.toWebCryptoAlgorithm(algorithm) },\n };\n\n const impKey = await this.subtle.importKey('raw', ikm, { name: 'HKDF' } as any,\n false, ['deriveBits']);\n return await this.subtle.deriveBits(hkdfParams as any, impKey, outputByteSize * 8);\n }\n\n // ref: https://tools.ietf.org/html/rfc5869\n async hkdfExpand(prk: ArrayBuffer, info: string | ArrayBuffer, outputByteSize: number,\n algorithm: 'sha256' | 'sha512'): Promise {\n const hashLen = algorithm === 'sha256' ? 32 : 64;\n if (outputByteSize > 255 * hashLen) {\n throw new Error('outputByteSize is too large.');\n }\n const prkArr = new Uint8Array(prk);\n if (prkArr.length < hashLen) {\n throw new Error('prk is too small.');\n }\n const infoBuf = this.toBuf(info);\n const infoArr = new Uint8Array(infoBuf);\n let runningOkmLength = 0;\n let previousT = new Uint8Array(0);\n const n = Math.ceil(outputByteSize / hashLen);\n const okm = new Uint8Array(n * hashLen);\n for (let i = 0; i < n; i++) {\n const t = new Uint8Array(previousT.length + infoArr.length + 1);\n t.set(previousT);\n t.set(infoArr, previousT.length);\n t.set([i + 1], t.length - 1);\n previousT = new Uint8Array(await this.hmac(t.buffer, prk, algorithm));\n okm.set(previousT, runningOkmLength);\n runningOkmLength += previousT.length;\n if (runningOkmLength >= outputByteSize) {\n break;\n }\n }\n return okm.slice(0, outputByteSize).buffer;\n }\n\n async hash(value: string | ArrayBuffer, algorithm: 'sha1' | 'sha256' | 'sha512' | 'md5'): Promise {\n if ((this.isIE && algorithm === 'sha1') || algorithm === 'md5') {\n const md = algorithm === 'md5' ? forge.md.md5.create() : forge.md.sha1.create();\n const valueBytes = this.toByteString(value);\n md.update(valueBytes, 'raw');\n return Utils.fromByteStringToArray(md.digest().data).buffer;\n }\n\n const valueBuf = this.toBuf(value);\n return await this.subtle.digest({ name: this.toWebCryptoAlgorithm(algorithm) }, valueBuf);\n }\n\n async hmac(value: ArrayBuffer, key: ArrayBuffer, algorithm: 'sha1' | 'sha256' | 'sha512'): Promise {\n if (this.isIE && algorithm === 'sha512') {\n const hmac = (forge as any).hmac.create();\n const keyBytes = this.toByteString(key);\n const valueBytes = this.toByteString(value);\n hmac.start(algorithm, keyBytes);\n hmac.update(valueBytes, 'raw');\n return Utils.fromByteStringToArray(hmac.digest().data).buffer;\n }\n\n const signingAlgorithm = {\n name: 'HMAC',\n hash: { name: this.toWebCryptoAlgorithm(algorithm) },\n };\n\n const impKey = await this.subtle.importKey('raw', key, signingAlgorithm, false, ['sign']);\n return await this.subtle.sign(signingAlgorithm, impKey, value);\n }\n\n // Safely compare two values in a way that protects against timing attacks (Double HMAC Verification).\n // ref: https://www.nccgroup.trust/us/about-us/newsroom-and-events/blog/2011/february/double-hmac-verification/\n // ref: https://paragonie.com/blog/2015/11/preventing-timing-attacks-on-string-comparison-with-double-hmac-strategy\n async compare(a: ArrayBuffer, b: ArrayBuffer): Promise {\n const macKey = await this.randomBytes(32);\n const signingAlgorithm = {\n name: 'HMAC',\n hash: { name: 'SHA-256' },\n };\n const impKey = await this.subtle.importKey('raw', macKey, signingAlgorithm, false, ['sign']);\n const mac1 = await this.subtle.sign(signingAlgorithm, impKey, a);\n const mac2 = await this.subtle.sign(signingAlgorithm, impKey, b);\n\n if (mac1.byteLength !== mac2.byteLength) {\n return false;\n }\n\n const arr1 = new Uint8Array(mac1);\n const arr2 = new Uint8Array(mac2);\n for (let i = 0; i < arr2.length; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n hmacFast(value: string, key: string, algorithm: 'sha1' | 'sha256' | 'sha512'): Promise {\n const hmac = (forge as any).hmac.create();\n hmac.start(algorithm, key);\n hmac.update(value);\n const bytes = hmac.digest().getBytes();\n return Promise.resolve(bytes);\n }\n\n async compareFast(a: string, b: string): Promise {\n const rand = await this.randomBytes(32);\n const bytes = new Uint32Array(rand);\n const buffer = forge.util.createBuffer();\n for (let i = 0; i < bytes.length; i++) {\n buffer.putInt32(bytes[i]);\n }\n const macKey = buffer.getBytes();\n\n const hmac = (forge as any).hmac.create();\n hmac.start('sha256', macKey);\n hmac.update(a);\n const mac1 = hmac.digest().getBytes();\n\n hmac.start(null, null);\n hmac.update(b);\n const mac2 = hmac.digest().getBytes();\n\n const equals = mac1 === mac2;\n return equals;\n }\n\n async aesEncrypt(data: ArrayBuffer, iv: ArrayBuffer, key: ArrayBuffer): Promise {\n const impKey = await this.subtle.importKey('raw', key, { name: 'AES-CBC' } as any, false, ['encrypt']);\n return await this.subtle.encrypt({ name: 'AES-CBC', iv: iv }, impKey, data);\n }\n\n aesDecryptFastParameters(data: string, iv: string, mac: string, key: SymmetricCryptoKey):\n DecryptParameters {\n const p = new DecryptParameters();\n if (key.meta != null) {\n p.encKey = key.meta.encKeyByteString;\n p.macKey = key.meta.macKeyByteString;\n }\n\n if (p.encKey == null) {\n p.encKey = forge.util.decode64(key.encKeyB64);\n }\n p.data = forge.util.decode64(data);\n p.iv = forge.util.decode64(iv);\n p.macData = p.iv + p.data;\n if (p.macKey == null && key.macKeyB64 != null) {\n p.macKey = forge.util.decode64(key.macKeyB64);\n }\n if (mac != null) {\n p.mac = forge.util.decode64(mac);\n }\n\n // cache byte string keys for later\n if (key.meta == null) {\n key.meta = {};\n }\n if (key.meta.encKeyByteString == null) {\n key.meta.encKeyByteString = p.encKey;\n }\n if (p.macKey != null && key.meta.macKeyByteString == null) {\n key.meta.macKeyByteString = p.macKey;\n }\n\n return p;\n }\n\n aesDecryptFast(parameters: DecryptParameters): Promise {\n const dataBuffer = (forge as any).util.createBuffer(parameters.data);\n const decipher = (forge as any).cipher.createDecipher('AES-CBC', parameters.encKey);\n decipher.start({ iv: parameters.iv });\n decipher.update(dataBuffer);\n decipher.finish();\n const val = decipher.output.toString('utf8');\n return Promise.resolve(val);\n }\n\n async aesDecrypt(data: ArrayBuffer, iv: ArrayBuffer, key: ArrayBuffer): Promise {\n const impKey = await this.subtle.importKey('raw', key, { name: 'AES-CBC' } as any, false, ['decrypt']);\n return await this.subtle.decrypt({ name: 'AES-CBC', iv: iv }, impKey, data);\n }\n\n async rsaEncrypt(data: ArrayBuffer, publicKey: ArrayBuffer, algorithm: 'sha1' | 'sha256'): Promise {\n // Note: Edge browser requires that we specify name and hash for both key import and decrypt.\n // We cannot use the proper types here.\n const rsaParams = {\n name: 'RSA-OAEP',\n hash: { name: this.toWebCryptoAlgorithm(algorithm) },\n };\n const impKey = await this.subtle.importKey('spki', publicKey, rsaParams, false, ['encrypt']);\n return await this.subtle.encrypt(rsaParams, impKey, data);\n }\n\n async rsaDecrypt(data: ArrayBuffer, privateKey: ArrayBuffer, algorithm: 'sha1' | 'sha256'): Promise {\n // Note: Edge browser requires that we specify name and hash for both key import and decrypt.\n // We cannot use the proper types here.\n const rsaParams = {\n name: 'RSA-OAEP',\n hash: { name: this.toWebCryptoAlgorithm(algorithm) },\n };\n const impKey = await this.subtle.importKey('pkcs8', privateKey, rsaParams, false, ['decrypt']);\n return await this.subtle.decrypt(rsaParams, impKey, data);\n }\n\n async rsaExtractPublicKey(privateKey: ArrayBuffer): Promise {\n const rsaParams = {\n name: 'RSA-OAEP',\n // Have to specify some algorithm\n hash: { name: this.toWebCryptoAlgorithm('sha1') },\n };\n const impPrivateKey = await this.subtle.importKey('pkcs8', privateKey, rsaParams, true, ['decrypt']);\n const jwkPrivateKey = await this.subtle.exportKey('jwk', impPrivateKey);\n const jwkPublicKeyParams = {\n kty: 'RSA',\n e: jwkPrivateKey.e,\n n: jwkPrivateKey.n,\n alg: 'RSA-OAEP',\n ext: true,\n };\n const impPublicKey = await this.subtle.importKey('jwk', jwkPublicKeyParams, rsaParams, true, ['encrypt']);\n return await this.subtle.exportKey('spki', impPublicKey);\n }\n\n async rsaGenerateKeyPair(length: 1024 | 2048 | 4096): Promise<[ArrayBuffer, ArrayBuffer]> {\n const rsaParams = {\n name: 'RSA-OAEP',\n modulusLength: length,\n publicExponent: new Uint8Array([0x01, 0x00, 0x01]), // 65537\n // Have to specify some algorithm\n hash: { name: this.toWebCryptoAlgorithm('sha1') },\n };\n const keyPair = await this.subtle.generateKey(rsaParams, true, ['encrypt', 'decrypt']);\n const publicKey = await this.subtle.exportKey('spki', keyPair.publicKey);\n const privateKey = await this.subtle.exportKey('pkcs8', keyPair.privateKey);\n return [publicKey, privateKey];\n }\n\n randomBytes(length: number): Promise {\n const arr = new Uint8Array(length);\n this.crypto.getRandomValues(arr);\n return Promise.resolve(arr.buffer);\n }\n\n private toBuf(value: string | ArrayBuffer): ArrayBuffer {\n let buf: ArrayBuffer;\n if (typeof (value) === 'string') {\n buf = Utils.fromUtf8ToArray(value).buffer;\n } else {\n buf = value;\n }\n return buf;\n }\n\n private toByteString(value: string | ArrayBuffer): string {\n let bytes: string;\n if (typeof (value) === 'string') {\n bytes = forge.util.encodeUtf8(value);\n } else {\n bytes = Utils.fromBufferToByteString(value);\n }\n return bytes;\n }\n\n private toWebCryptoAlgorithm(algorithm: 'sha1' | 'sha256' | 'sha512' | 'md5'): string {\n if (algorithm === 'md5') {\n throw new Error('MD5 is not supported in WebCrypto.');\n }\n return algorithm === 'sha1' ? 'SHA-1' : algorithm === 'sha256' ? 'SHA-256' : 'SHA-512';\n }\n}\n","export class DecryptParameters {\n encKey: T;\n data: T;\n iv: T;\n macKey: T;\n mac: T;\n macData: T;\n}\n","import * as jq from 'jquery';\nimport Swal from 'sweetalert2/dist/sweetalert2.js';\n\nimport {\n BodyOutputType,\n Toast,\n ToasterConfig,\n ToasterContainerComponent,\n ToasterService,\n} from 'angular2-toaster';\nimport { Angulartics2 } from 'angulartics2';\nimport { Angulartics2GoogleAnalytics } from 'angulartics2/ga';\n\nimport {\n Component,\n NgZone,\n OnDestroy,\n OnInit,\n SecurityContext,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport {\n NavigationEnd,\n Router,\n} from '@angular/router';\n\nimport { BroadcasterService } from 'jslib/angular/services/broadcaster.service';\n\nimport { StorageService } from 'jslib/abstractions/storage.service';\n\nimport { AuthService } from 'jslib/abstractions/auth.service';\nimport { CipherService } from 'jslib/abstractions/cipher.service';\nimport { CollectionService } from 'jslib/abstractions/collection.service';\nimport { CryptoService } from 'jslib/abstractions/crypto.service';\nimport { EventService } from 'jslib/abstractions/event.service';\nimport { FolderService } from 'jslib/abstractions/folder.service';\nimport { I18nService } from 'jslib/abstractions/i18n.service';\nimport { NotificationsService } from 'jslib/abstractions/notifications.service';\nimport { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';\nimport { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';\nimport { PolicyService } from 'jslib/abstractions/policy.service';\nimport { SearchService } from 'jslib/abstractions/search.service';\nimport { SettingsService } from 'jslib/abstractions/settings.service';\nimport { StateService } from 'jslib/abstractions/state.service';\nimport { SyncService } from 'jslib/abstractions/sync.service';\nimport { TokenService } from 'jslib/abstractions/token.service';\nimport { UserService } from 'jslib/abstractions/user.service';\nimport { VaultTimeoutService } from 'jslib/abstractions/vaultTimeout.service';\n\nimport { ConstantsService } from 'jslib/services/constants.service';\n\nimport { RouterService } from './services/router.service';\n\nconst BroadcasterSubscriptionId = 'AppComponent';\nconst IdleTimeout = 60000 * 10; // 10 minutes\n\n@Component({\n selector: 'app-root',\n templateUrl: 'app.component.html',\n})\nexport class AppComponent implements OnDestroy, OnInit {\n toasterConfig: ToasterConfig = new ToasterConfig({\n showCloseButton: true,\n mouseoverTimerStop: true,\n animation: 'flyRight',\n limit: 5,\n });\n\n private lastActivity: number = null;\n private idleTimer: number = null;\n private isIdle = false;\n\n constructor(private angulartics2GoogleAnalytics: Angulartics2GoogleAnalytics,\n private broadcasterService: BroadcasterService, private userService: UserService,\n private tokenService: TokenService, private folderService: FolderService,\n private settingsService: SettingsService, private syncService: SyncService,\n private passwordGenerationService: PasswordGenerationService, private cipherService: CipherService,\n private authService: AuthService, private router: Router, private analytics: Angulartics2,\n private toasterService: ToasterService, private i18nService: I18nService,\n private platformUtilsService: PlatformUtilsService, private ngZone: NgZone,\n private vaultTimeoutService: VaultTimeoutService, private storageService: StorageService,\n private cryptoService: CryptoService, private collectionService: CollectionService,\n private sanitizer: DomSanitizer, private searchService: SearchService,\n private notificationsService: NotificationsService, private routerService: RouterService,\n private stateService: StateService, private eventService: EventService,\n private policyService: PolicyService) { }\n\n ngOnInit() {\n this.ngZone.runOutsideAngular(() => {\n window.onmousemove = () => this.recordActivity();\n window.onmousedown = () => this.recordActivity();\n window.ontouchstart = () => this.recordActivity();\n window.onclick = () => this.recordActivity();\n window.onscroll = () => this.recordActivity();\n window.onkeypress = () => this.recordActivity();\n });\n\n this.broadcasterService.subscribe(BroadcasterSubscriptionId, async (message: any) => {\n this.ngZone.run(async () => {\n switch (message.command) {\n case 'loggedIn':\n case 'loggedOut':\n case 'unlocked':\n this.notificationsService.updateConnection(false);\n break;\n case 'authBlocked':\n this.router.navigate(['/']);\n break;\n case 'logout':\n this.logOut(!!message.expired);\n break;\n case 'lockVault':\n await this.vaultTimeoutService.lock();\n break;\n case 'locked':\n this.notificationsService.updateConnection(false);\n this.router.navigate(['lock']);\n break;\n case 'lockedUrl':\n window.setTimeout(() => this.routerService.setPreviousUrl(message.url), 500);\n break;\n case 'syncStarted':\n break;\n case 'syncCompleted':\n break;\n case 'upgradeOrganization':\n const upgradeConfirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('upgradeOrganizationDesc'), this.i18nService.t('upgradeOrganization'),\n this.i18nService.t('upgradeOrganization'), this.i18nService.t('cancel'));\n if (upgradeConfirmed) {\n this.router.navigate(['organizations', message.organizationId, 'settings', 'billing']);\n }\n break;\n case 'premiumRequired':\n const premiumConfirmed = await this.platformUtilsService.showDialog(\n this.i18nService.t('premiumRequiredDesc'), this.i18nService.t('premiumRequired'),\n this.i18nService.t('learnMore'), this.i18nService.t('cancel'));\n if (premiumConfirmed) {\n this.router.navigate(['settings/premium']);\n }\n break;\n case 'showToast':\n this.showToast(message);\n break;\n case 'analyticsEventTrack':\n this.analytics.eventTrack.next({\n action: message.action,\n properties: { label: message.label },\n });\n break;\n case 'setFullWidth':\n this.setFullWidth();\n break;\n default:\n break;\n }\n });\n });\n\n this.router.events.subscribe(event => {\n if (event instanceof NavigationEnd) {\n const modals = Array.from(document.querySelectorAll('.modal'));\n for (const modal of modals) {\n (jq(modal) as any).modal('hide');\n }\n\n if (document.querySelector('.swal-modal') != null) {\n Swal.close(undefined);\n }\n }\n });\n\n this.setFullWidth();\n }\n\n ngOnDestroy() {\n this.broadcasterService.unsubscribe(BroadcasterSubscriptionId);\n }\n\n private async logOut(expired: boolean) {\n await this.eventService.uploadEvents();\n const userId = await this.userService.getUserId();\n\n await Promise.all([\n this.eventService.clearEvents(),\n this.syncService.setLastSync(new Date(0)),\n this.tokenService.clearToken(),\n this.cryptoService.clearKeys(),\n this.userService.clear(),\n this.settingsService.clear(userId),\n this.cipherService.clear(userId),\n this.folderService.clear(userId),\n this.collectionService.clear(userId),\n this.policyService.clear(userId),\n this.passwordGenerationService.clear(),\n this.stateService.purge(),\n ]);\n\n this.searchService.clearIndex();\n this.authService.logOut(async () => {\n this.analytics.eventTrack.next({ action: 'Logged Out' });\n if (expired) {\n this.toasterService.popAsync('warning', this.i18nService.t('loggedOut'),\n this.i18nService.t('loginExpired'));\n }\n\n Swal.close();\n this.router.navigate(['/']);\n });\n }\n\n private async recordActivity() {\n const now = (new Date()).getTime();\n if (this.lastActivity != null && now - this.lastActivity < 250) {\n return;\n }\n\n this.lastActivity = now;\n this.storageService.save(ConstantsService.lastActiveKey, now);\n\n // Idle states\n if (this.isIdle) {\n this.isIdle = false;\n this.idleStateChanged();\n }\n if (this.idleTimer != null) {\n window.clearTimeout(this.idleTimer);\n this.idleTimer = null;\n }\n this.idleTimer = window.setTimeout(() => {\n if (!this.isIdle) {\n this.isIdle = true;\n this.idleStateChanged();\n }\n }, IdleTimeout);\n }\n\n private showToast(msg: any) {\n const toast: Toast = {\n type: msg.type,\n title: msg.title,\n };\n if (typeof (msg.text) === 'string') {\n toast.body = msg.text;\n } else if (msg.text.length === 1) {\n toast.body = msg.text[0];\n } else {\n let message = '';\n msg.text.forEach((t: string) =>\n message += ('

' + this.sanitizer.sanitize(SecurityContext.HTML, t) + '

'));\n toast.body = message;\n toast.bodyOutputType = BodyOutputType.TrustedHtml;\n }\n if (msg.options != null) {\n if (msg.options.trustedHtml === true) {\n toast.bodyOutputType = BodyOutputType.TrustedHtml;\n }\n if (msg.options.timeout != null && msg.options.timeout > 0) {\n toast.timeout = msg.options.timeout;\n }\n }\n this.toasterService.popAsync(toast);\n }\n\n private idleStateChanged() {\n if (this.isIdle) {\n this.notificationsService.disconnectFromInactivity();\n } else {\n this.notificationsService.reconnectFromActivity();\n }\n }\n\n private async setFullWidth() {\n const enableFullWidth = await this.storageService.get('enableFullWidth');\n if (enableFullWidth) {\n document.body.classList.add('full-width');\n } else {\n document.body.classList.remove('full-width');\n }\n }\n}\n","\n\n","import {\n Directive,\n ElementRef,\n HostListener,\n} from '@angular/core';\n\n@Directive({\n selector: '[appBlurClick]',\n})\nexport class BlurClickDirective {\n constructor(private el: ElementRef) {\n }\n\n @HostListener('click') onClick() {\n this.el.nativeElement.blur();\n }\n}\n","import {\n Directive,\n ElementRef,\n HostListener,\n OnInit,\n} from '@angular/core';\n\n@Directive({\n selector: '[appBoxRow]',\n})\nexport class BoxRowDirective implements OnInit {\n el: HTMLElement = null;\n formEls: Element[];\n\n constructor(private elRef: ElementRef) {\n this.el = elRef.nativeElement;\n }\n\n ngOnInit(): void {\n this.formEls = Array.from(this.el.querySelectorAll('input:not([type=\"hidden\"]), select, textarea'));\n this.formEls.forEach(formEl => {\n formEl.addEventListener('focus', (event: Event) => {\n this.el.classList.add('active');\n }, false);\n\n formEl.addEventListener('blur', (event: Event) => {\n this.el.classList.remove('active');\n }, false);\n });\n }\n\n @HostListener('click', ['$event']) onClick(event: Event) {\n const target = event.target as HTMLElement;\n if (target !== this.el && !target.classList.contains('progress') &&\n !target.classList.contains('progress-bar')) {\n return;\n }\n\n if (this.formEls.length > 0) {\n const formEl = (this.formEls[0] as HTMLElement);\n if (formEl.tagName.toLowerCase() === 'input') {\n const inputEl = (formEl as HTMLInputElement);\n if (inputEl.type != null && inputEl.type.toLowerCase() === 'checkbox') {\n inputEl.click();\n return;\n }\n }\n formEl.focus();\n }\n }\n}\n","import {\n Pipe,\n PipeTransform,\n} from '@angular/core';\n\nimport { CipherView } from '../../models/view/cipherView';\n\n@Pipe({\n name: 'searchCiphers',\n})\nexport class SearchCiphersPipe implements PipeTransform {\n transform(ciphers: CipherView[], searchText: string, deleted: boolean = false): CipherView[] {\n if (ciphers == null || ciphers.length === 0) {\n return [];\n }\n\n if (searchText == null || searchText.length < 2) {\n return ciphers.filter(c => {\n return deleted !== c.isDeleted;\n });\n }\n\n searchText = searchText.trim().toLowerCase();\n return ciphers.filter(c => {\n if (deleted !== c.isDeleted) {\n return false;\n }\n if (c.name != null && c.name.toLowerCase().indexOf(searchText) > -1) {\n return true;\n }\n if (searchText.length >= 8 && c.id.startsWith(searchText)) {\n return true;\n }\n if (c.subTitle != null && c.subTitle.toLowerCase().indexOf(searchText) > -1) {\n return true;\n }\n if (c.login && c.login.uri != null && c.login.uri.toLowerCase().indexOf(searchText) > -1) {\n return true;\n }\n\n return false;\n });\n }\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/app/polyfills.a34068436143996e1f65.js b/app/polyfills.a34068436143996e1f65.js new file mode 100644 index 00000000..048b6703 --- /dev/null +++ b/app/polyfills.a34068436143996e1f65.js @@ -0,0 +1,139 @@ +!function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=746)}([,,function(t,e,n){var r=n(20),o=n(55),i=n(56),a=n(51),u=n(62),c=function(t,e,n){var s,f,l,p,h=t&c.F,d=t&c.G,v=t&c.S,y=t&c.P,g=t&c.B,m=d?r:v?r[e]||(r[e]={}):(r[e]||{}).prototype,b=d?o:o[e]||(o[e]={}),_=b.prototype||(b.prototype={});for(s in d&&(n=e),n)l=((f=!h&&m&&void 0!==m[s])?m:n)[s],p=g&&f?u(l,r):y&&"function"==typeof l?u(Function.call,l):l,m&&a(m,s,l,t&c.U),b[s]!=l&&i(b,s,p),y&&_[s]!=l&&(_[s]=l)};r.core=o,c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,t.exports=c},,,,,,,,,,,,,function(t,e,n){var r=n(22);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},,,,,function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},,,,,function(t,e,n){var r=n(131)("wks"),o=n(89),i=n(20).Symbol,a="function"==typeof i;(t.exports=function(t){return r[t]||(r[t]=a&&i[t]||(a?i:o)("Symbol."+t))}).store=r},,,,function(t,e,n){var r=n(63),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},,function(t,e,n){var r=n(15),o=n(220),i=n(75),a=Object.defineProperty;e.f=n(35)?Object.defineProperty:function(t,e,n){if(r(t),e=i(e,!0),r(n),o)try{return a(t,e,n)}catch(u){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},,function(t,e,n){t.exports=!n(21)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},,,,,,,function(t,e,n){var r=n(76);t.exports=function(t){return Object(r(t))}},,,,,function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},,function(t,e,n){var r=n(2),o=n(21),i=n(76),a=/"/g,u=function(t,e,n,r){var o=String(i(t)),u="<"+e;return""!==n&&(u+=" "+n+'="'+String(r).replace(a,""")+'"'),u+">"+o+""};t.exports=function(t,e){var n={};n[t]=e(u),r(r.P+r.F*o((function(){var e=""[t]('"');return e!==e.toLowerCase()||e.split('"').length>3})),"String",n)}},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var r=n(20),o=n(56),i=n(50),a=n(89)("src"),u=Function.toString,c=(""+u).split("toString");n(55).inspectSource=function(t){return u.call(t)},(t.exports=function(t,e,n,u){var s="function"==typeof n;s&&(i(n,"name")||o(n,"name",e)),t[e]!==n&&(s&&(i(n,a)||o(n,a,t[e]?""+t[e]:c.join(String(e)))),t===r?t[e]=n:u?t[e]?t[e]=n:o(t,e,n):(delete t[e],o(t,e,n)))})(Function.prototype,"toString",(function(){return"function"==typeof this&&this[a]||u.call(this)}))},function(t,e,n){var r=n(115),o=n(76);t.exports=function(t){return r(o(t))}},,,function(t,e){var n=t.exports={version:"2.6.2"};"number"==typeof __e&&(__e=n)},function(t,e,n){var r=n(33),o=n(85);t.exports=n(35)?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){var r=n(50),o=n(42),i=n(172)("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),r(t,i)?t[i]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},,function(t,e,n){var r=n(123),o=n(85),i=n(52),a=n(75),u=n(50),c=n(220),s=Object.getOwnPropertyDescriptor;e.f=n(35)?s:function(t,e){if(t=i(t),e=a(e,!0),c)try{return s(t,e)}catch(n){}if(u(t,e))return o(!r.f.call(t,e),t[e])}},function(t,e,n){"use strict";var r=n(21);t.exports=function(t,e){return!!t&&r((function(){e?t.call(null,(function(){}),1):t.call(null)}))}},,function(t,e,n){var r=n(47);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},,,,function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e,n){var r=n(2),o=n(55),i=n(21);t.exports=function(t,e){var n=(o.Object||{})[t]||Object[t],a={};a[t]=e(n),r(r.S+r.F*i((function(){n(1)})),"Object",a)}},function(t,e,n){var r=n(62),o=n(115),i=n(42),a=n(31),u=n(234);t.exports=function(t,e){var n=1==t,c=2==t,s=3==t,f=4==t,l=6==t,p=5==t||l,h=e||u;return function(e,u,d){for(var v,y,g=i(e),m=o(g),b=r(u,d,3),_=a(m.length),w=0,S=n?h(e,_):c?h(e,0):void 0;_>w;w++)if((p||w in m)&&(y=b(v=m[w],w,g),t))if(n)S[w]=y;else if(y)switch(t){case 3:return!0;case 5:return v;case 6:return w;case 2:S.push(v)}else if(f)return!1;return l?-1:s||f?f:S}}},,,,,,function(t,e,n){var r=n(22);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,n){"use strict";if(n(35)){var r=n(86),o=n(20),i=n(21),a=n(2),u=n(138),c=n(187),s=n(62),f=n(99),l=n(85),p=n(56),h=n(101),d=n(63),v=n(31),y=n(245),g=n(91),m=n(75),b=n(50),_=n(96),w=n(22),S=n(42),k=n(183),E=n(83),x=n(57),T=n(92).f,O=n(133),A=n(89),M=n(27),P=n(69),j=n(150),D=n(125),C=n(204),F=n(110),I=n(134),R=n(98),N=n(184),L=n(236),Z=n(33),U=n(59),z=Z.f,B=U.f,H=o.RangeError,W=o.TypeError,K=o.Uint8Array,G=Array.prototype,J=c.ArrayBuffer,V=c.DataView,q=P(0),Y=P(2),X=P(3),$=P(4),Q=P(5),tt=P(6),et=j(!0),nt=j(!1),rt=C.values,ot=C.keys,it=C.entries,at=G.lastIndexOf,ut=G.reduce,ct=G.reduceRight,st=G.join,ft=G.sort,lt=G.slice,pt=G.toString,ht=G.toLocaleString,dt=M("iterator"),vt=M("toStringTag"),yt=A("typed_constructor"),gt=A("def_constructor"),mt=u.CONSTR,bt=u.TYPED,_t=u.VIEW,wt=P(1,(function(t,e){return Tt(D(t,t[gt]),e)})),St=i((function(){return 1===new K(new Uint16Array([1]).buffer)[0]})),kt=!!K&&!!K.prototype.set&&i((function(){new K(1).set({})})),Et=function(t,e){var n=d(t);if(n<0||n%e)throw H("Wrong offset!");return n},xt=function(t){if(w(t)&&bt in t)return t;throw W(t+" is not a typed array!")},Tt=function(t,e){if(!w(t)||!(yt in t))throw W("It is not a typed array constructor!");return new t(e)},Ot=function(t,e){return At(D(t,t[gt]),e)},At=function(t,e){for(var n=0,r=e.length,o=Tt(t,r);r>n;)o[n]=e[n++];return o},Mt=function(t,e,n){z(t,e,{get:function(){return this._d[n]}})},Pt=function(t){var e,n,r,o,i,a,u=S(t),c=arguments.length,f=c>1?arguments[1]:void 0,l=void 0!==f,p=O(u);if(null!=p&&!k(p)){for(a=p.call(u),r=[],e=0;!(i=a.next()).done;e++)r.push(i.value);u=r}for(l&&c>2&&(f=s(f,arguments[2],2)),e=0,n=v(u.length),o=Tt(this,n);n>e;e++)o[e]=l?f(u[e],e):u[e];return o},jt=function(){for(var t=0,e=arguments.length,n=Tt(this,e);e>t;)n[t]=arguments[t++];return n},Dt=!!K&&i((function(){ht.call(new K(1))})),Ct=function(){return ht.apply(Dt?lt.call(xt(this)):xt(this),arguments)},Ft={copyWithin:function(t,e){return L.call(xt(this),t,e,arguments.length>2?arguments[2]:void 0)},every:function(t){return $(xt(this),t,arguments.length>1?arguments[1]:void 0)},fill:function(t){return N.apply(xt(this),arguments)},filter:function(t){return Ot(this,Y(xt(this),t,arguments.length>1?arguments[1]:void 0))},find:function(t){return Q(xt(this),t,arguments.length>1?arguments[1]:void 0)},findIndex:function(t){return tt(xt(this),t,arguments.length>1?arguments[1]:void 0)},forEach:function(t){q(xt(this),t,arguments.length>1?arguments[1]:void 0)},indexOf:function(t){return nt(xt(this),t,arguments.length>1?arguments[1]:void 0)},includes:function(t){return et(xt(this),t,arguments.length>1?arguments[1]:void 0)},join:function(t){return st.apply(xt(this),arguments)},lastIndexOf:function(t){return at.apply(xt(this),arguments)},map:function(t){return wt(xt(this),t,arguments.length>1?arguments[1]:void 0)},reduce:function(t){return ut.apply(xt(this),arguments)},reduceRight:function(t){return ct.apply(xt(this),arguments)},reverse:function(){for(var t,e=xt(this).length,n=Math.floor(e/2),r=0;r1?arguments[1]:void 0)},sort:function(t){return ft.call(xt(this),t)},subarray:function(t,e){var n=xt(this),r=n.length,o=g(t,r);return new(D(n,n[gt]))(n.buffer,n.byteOffset+o*n.BYTES_PER_ELEMENT,v((void 0===e?r:g(e,r))-o))}},It=function(t,e){return Ot(this,lt.call(xt(this),t,e))},Rt=function(t){xt(this);var e=Et(arguments[1],1),n=this.length,r=S(t),o=v(r.length),i=0;if(o+e>n)throw H("Wrong length!");for(;i255?255:255&r),o.v[h](n*e+o.o,r,St)}(this,n,t)},enumerable:!0})};b?(d=n((function(t,n,r,o){f(t,d,s,"_d");var i,a,u,c,l=0,h=0;if(w(n)){if(!(n instanceof J||"ArrayBuffer"==(c=_(n))||"SharedArrayBuffer"==c))return bt in n?At(d,n):Pt.call(d,n);i=n,h=Et(r,e);var g=n.byteLength;if(void 0===o){if(g%e)throw H("Wrong length!");if((a=g-h)<0)throw H("Wrong length!")}else if((a=v(o)*e)+h>g)throw H("Wrong length!");u=a/e}else u=y(n),i=new J(a=u*e);for(p(t,"_d",{b:i,o:h,l:a,e:u,v:new V(i)});ldocument.F=Object<\/script>"),t.close(),c=t.F;r--;)delete c.prototype[i[r]];return c()};t.exports=Object.create||function(t,e){var n;return null!==t?(u.prototype=r(t),n=new u,u.prototype=null,n[a]=t):n=c(),void 0===e?n:o(n,e)}},,function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e){t.exports=!1},,,function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},function(t,e,n){var r=n(223),o=n(173);t.exports=Object.keys||function(t){return r(t,o)}},function(t,e,n){var r=n(63),o=Math.max,i=Math.min;t.exports=function(t,e){return(t=r(t))<0?o(t+e,0):i(t,e)}},function(t,e,n){var r=n(223),o=n(173).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},,,,function(t,e,n){var r=n(67),o=n(27)("toStringTag"),i="Arguments"==r(function(){return arguments}());t.exports=function(t){var e,n,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=Object(t),o))?n:i?r(e):"Object"==(a=r(e))&&"function"==typeof e.callee?"Arguments":a}},function(t,e,n){var r=n(27)("unscopables"),o=Array.prototype;null==o[r]&&n(56)(o,r,{}),t.exports=function(t){o[r][t]=!0}},function(t,e,n){"use strict";var r=n(20),o=n(33),i=n(35),a=n(27)("species");t.exports=function(t){var e=r[t];i&&e&&!e[a]&&o.f(e,a,{configurable:!0,get:function(){return this}})}},function(t,e){t.exports=function(t,e,n,r){if(!(t instanceof e)||void 0!==r&&r in t)throw TypeError(n+": incorrect invocation!");return t}},function(t,e,n){var r=n(62),o=n(233),i=n(183),a=n(15),u=n(31),c=n(133),s={},f={};(e=t.exports=function(t,e,n,l,p){var h,d,v,y,g=p?function(){return t}:c(t),m=r(n,l,e?2:1),b=0;if("function"!=typeof g)throw TypeError(t+" is not iterable!");if(i(g)){for(h=u(t.length);h>b;b++)if((y=e?m(a(d=t[b])[0],d[1]):m(t[b]))===s||y===f)return y}else for(v=g.call(t);!(d=v.next()).done;)if((y=o(v,m,d.value,e))===s||y===f)return y}).BREAK=s,e.RETURN=f},function(t,e,n){var r=n(51);t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(r){"object"==typeof window&&(n=window)}t.exports=n},,,,,,,function(t,e,n){var r=n(33).f,o=n(50),i=n(27)("toStringTag");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},function(t,e){t.exports={}},function(t,e,n){var r=n(22);t.exports=function(t,e){if(!r(t)||t._t!==e)throw TypeError("Incompatible receiver, "+e+" required!");return t}},,,,function(t,e,n){var r=n(67);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},function(t,e,n){var r=n(2),o=n(76),i=n(21),a=n(176),u="["+a+"]",c=RegExp("^"+u+u+"*"),s=RegExp(u+u+"*$"),f=function(t,e,n){var o={},u=i((function(){return!!a[t]()||"​…"!="​…"[t]()})),c=o[t]=u?e(l):a[t];n&&(o[n]=c),r(r.P+r.F*u,"String",o)},l=f.trim=function(t,e){return t=String(o(t)),1&e&&(t=t.replace(c,"")),2&e&&(t=t.replace(s,"")),t};t.exports=f},,,,,,,function(t,e){e.f={}.propertyIsEnumerable},function(t,e,n){"use strict";var r=n(15);t.exports=function(){var t=r(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},function(t,e,n){var r=n(15),o=n(47),i=n(27)("species");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||null==(n=r(a)[i])?e:o(n)}},,,,,,function(t,e,n){var r=n(55),o=n(20),i=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(t.exports=function(t,e){return i[t]||(i[t]=void 0!==e?e:{})})("versions",[]).push({version:r.version,mode:n(86)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,n){var r=n(96),o=n(27)("iterator"),i=n(110);t.exports=n(55).getIteratorMethod=function(t){if(null!=t)return t[o]||t["@@iterator"]||i[r(t)]}},function(t,e,n){var r=n(27)("iterator"),o=!1;try{var i=[7][r]();i.return=function(){o=!0},Array.from(i,(function(){throw 2}))}catch(a){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i=[7],u=i[r]();u.next=function(){return{done:n=!0}},i[r]=function(){return u},t(i)}catch(a){}return n}},function(t,e,n){"use strict";var r=n(96),o=RegExp.prototype.exec;t.exports=function(t,e){var n=t.exec;if("function"==typeof n){var i=n.call(t,e);if("object"!=typeof i)throw new TypeError("RegExp exec method returned something other than an Object or null");return i}if("RegExp"!==r(t))throw new TypeError("RegExp#exec called on incompatible receiver");return o.call(t,e)}},function(t,e,n){"use strict";n(237);var r=n(51),o=n(56),i=n(21),a=n(76),u=n(27),c=n(185),s=u("species"),f=!i((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$")})),l=function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2===n.length&&"a"===n[0]&&"b"===n[1]}();t.exports=function(t,e,n){var p=u(t),h=!i((function(){var e={};return e[p]=function(){return 7},7!=""[t](e)})),d=h?!i((function(){var e=!1,n=/a/;return n.exec=function(){return e=!0,null},"split"===t&&(n.constructor={},n.constructor[s]=function(){return n}),n[p](""),!e})):void 0;if(!h||!d||"replace"===t&&!f||"split"===t&&!l){var v=/./[p],y=n(a,p,""[t],(function(t,e,n,r,o){return e.exec===c?h&&!o?{done:!0,value:v.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}})),g=y[0],m=y[1];r(String.prototype,t,g),o(RegExp.prototype,p,2==e?function(t,e){return m.call(t,this,e)}:function(t){return m.call(t,this)})}}},function(t,e,n){"use strict";var r=n(20),o=n(2),i=n(51),a=n(101),u=n(82),c=n(100),s=n(99),f=n(22),l=n(21),p=n(134),h=n(109),d=n(177);t.exports=function(t,e,n,v,y,g){var m=r[t],b=m,_=y?"set":"add",w=b&&b.prototype,S={},k=function(t){var e=w[t];i(w,t,"delete"==t||"has"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!f(t)?void 0:e.call(this,0===t?0:t)}:"add"==t?function(t){return e.call(this,0===t?0:t),this}:function(t,n){return e.call(this,0===t?0:t,n),this})};if("function"==typeof b&&(g||w.forEach&&!l((function(){(new b).entries().next()})))){var E=new b,x=E[_](g?{}:-0,1)!=E,T=l((function(){E.has(1)})),O=p((function(t){new b(t)})),A=!g&&l((function(){for(var t=new b,e=5;e--;)t[_](e,e);return!t.has(-0)}));O||((b=e((function(e,n){s(e,b,t);var r=d(new m,e,b);return null!=n&&c(n,y,r[_],r),r}))).prototype=w,w.constructor=b),(T||A)&&(k("delete"),k("has"),y&&k("get")),(A||x)&&k(_),g&&w.clear&&delete w.clear}else b=v.getConstructor(e,t,y,_),a(b.prototype,n),u.NEED=!0;return h(b,t),S[t]=b,o(o.G+o.W+o.F*(b!=m),S),g||v.setStrong(b,t,y),b}},function(t,e,n){for(var r,o=n(20),i=n(56),a=n(89),u=a("typed_array"),c=a("view"),s=!(!o.ArrayBuffer||!o.DataView),f=s,l=0,p="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");l<9;)(r=o[p[l++]])?(i(r.prototype,u,!0),i(r.prototype,c,!0)):f=!1;t.exports={ABV:s,CONSTR:f,TYPED:u,VIEW:c}},,,,,,,,,,,,function(t,e,n){var r=n(52),o=n(31),i=n(91);t.exports=function(t){return function(e,n,a){var u,c=r(e),s=o(c.length),f=i(a,s);if(t&&n!=n){for(;s>f;)if((u=c[f++])!=u)return!0}else for(;s>f;f++)if((t||f in c)&&c[f]===n)return t||f||0;return!t&&-1}}},function(t,e,n){var r=n(67);t.exports=Array.isArray||function(t){return"Array"==r(t)}},function(t,e,n){var r=n(63),o=n(76);t.exports=function(t){return function(e,n){var i,a,u=String(o(e)),c=r(n),s=u.length;return c<0||c>=s?t?"":void 0:(i=u.charCodeAt(c))<55296||i>56319||c+1===s||(a=u.charCodeAt(c+1))<56320||a>57343?t?u.charAt(c):i:t?u.slice(c,c+2):a-56320+(i-55296<<10)+65536}}},function(t,e,n){"use strict";var r=n(86),o=n(2),i=n(51),a=n(56),u=n(110),c=n(180),s=n(109),f=n(57),l=n(27)("iterator"),p=!([].keys&&"next"in[].keys()),h=function(){return this};t.exports=function(t,e,n,d,v,y,g){c(n,e,d);var m,b,_,w=function(t){if(!p&&t in x)return x[t];switch(t){case"keys":case"values":return function(){return new n(this,t)}}return function(){return new n(this,t)}},S=e+" Iterator",k="values"==v,E=!1,x=t.prototype,T=x[l]||x["@@iterator"]||v&&x[v],O=T||w(v),A=v?k?w("entries"):O:void 0,M="Array"==e&&x.entries||T;if(M&&(_=f(M.call(new t)))!==Object.prototype&&_.next&&(s(_,S,!0),r||"function"==typeof _[l]||a(_,l,h)),k&&T&&"values"!==T.name&&(E=!0,O=function(){return T.call(this)}),r&&!g||!p&&!E&&x[l]||a(x,l,O),u[e]=O,u[S]=h,v)if(m={values:k?O:w("values"),keys:y?O:w("keys"),entries:A},g)for(b in m)b in x||i(x,b,m[b]);else o(o.P+o.F*(p||E),e,m);return m}},function(t,e,n){var r=n(22),o=n(67),i=n(27)("match");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:"RegExp"==o(t))}},,,,,,,,,,,,,,,,,function(t,e,n){var r=n(22),o=n(20).document,i=r(o)&&r(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},function(t,e,n){var r=n(131)("keys"),o=n(89);t.exports=function(t){return r[t]||(r[t]=o(t))}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,n){var r=n(20).document;t.exports=r&&r.documentElement},function(t,e,n){var r=n(22),o=n(15),i=function(t,e){if(o(t),!r(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,r){try{(r=n(62)(Function.call,n(59).f(Object.prototype,"__proto__").set,2))(t,[]),e=!(t instanceof Array)}catch(o){e=!0}return function(t,n){return i(t,n),e?t.__proto__=n:r(t,n),t}}({},!1):void 0),check:i}},function(t,e){t.exports="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff"},function(t,e,n){var r=n(22),o=n(175).set;t.exports=function(t,e,n){var i,a=e.constructor;return a!==n&&"function"==typeof a&&(i=a.prototype)!==n.prototype&&r(i)&&o&&o(t,i),t}},function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},function(t,e){var n=Math.expm1;t.exports=!n||n(10)>22025.465794806718||n(10)<22025.465794806718||-2e-17!=n(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:Math.exp(t)-1}:n},function(t,e,n){"use strict";var r=n(83),o=n(85),i=n(109),a={};n(56)(a,n(27)("iterator"),(function(){return this})),t.exports=function(t,e,n){t.prototype=r(a,{next:o(1,n)}),i(t,e+" Iterator")}},function(t,e,n){var r=n(154),o=n(76);t.exports=function(t,e,n){if(r(e))throw TypeError("String#"+n+" doesn't accept regex!");return String(o(t))}},function(t,e,n){var r=n(27)("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[r]=!1,!"/./"[t](e)}catch(o){}}return!0}},function(t,e,n){var r=n(110),o=n(27)("iterator"),i=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||i[o]===t)}},function(t,e,n){"use strict";var r=n(42),o=n(91),i=n(31);t.exports=function(t){for(var e=r(this),n=i(e.length),a=arguments.length,u=o(a>1?arguments[1]:void 0,n),c=a>2?arguments[2]:void 0,s=void 0===c?n:o(c,n);s>u;)e[u++]=t;return e}},function(t,e,n){"use strict";var r,o,i=n(124),a=RegExp.prototype.exec,u=String.prototype.replace,c=a,s=(r=/a/,o=/b*/g,a.call(r,"a"),a.call(o,"a"),0!==r.lastIndex||0!==o.lastIndex),f=void 0!==/()??/.exec("")[1];(s||f)&&(c=function(t){var e,n,r,o,c=this;return f&&(n=new RegExp("^"+c.source+"$(?!\\s)",i.call(c))),s&&(e=c.lastIndex),r=a.call(c,t),s&&r&&(c.lastIndex=c.global?r.index+r[0].length:e),f&&r&&r.length>1&&u.call(r[0],n,(function(){for(o=1;o>1,f=23===e?x(2,-24)-x(2,-77):0,l=0,p=t<0||0===t&&1/t<0?1:0;for((t=E(t))!=t||t===S?(o=t!=t?1:0,r=c):(r=T(O(t)/A),t*(i=x(2,-r))<1&&(r--,i*=2),(t+=r+s>=1?f/i:f*x(2,1-s))*i>=2&&(r++,i/=2),r+s>=c?(o=0,r=c):r+s>=1?(o=(t*i-1)*x(2,e),r+=s):(o=t*x(2,s-1)*x(2,e),r=0));e>=8;a[l++]=255&o,o/=256,e-=8);for(r=r<0;a[l++]=255&r,r/=256,u-=8);return a[--l]|=128*p,a}function C(t,e,n){var r,o=8*n-e-1,i=(1<>1,u=o-7,c=n-1,s=t[c--],f=127&s;for(s>>=7;u>0;f=256*f+t[c],c--,u-=8);for(r=f&(1<<-u)-1,f>>=-u,u+=e;u>0;r=256*r+t[c],c--,u-=8);if(0===f)f=1-a;else{if(f===i)return r?NaN:s?-S:S;r+=x(2,e),f-=a}return(s?-1:1)*r*x(2,f-e)}function F(t){return t[3]<<24|t[2]<<16|t[1]<<8|t[0]}function I(t){return[255&t]}function R(t){return[255&t,t>>8&255]}function N(t){return[255&t,t>>8&255,t>>16&255,t>>24&255]}function L(t){return D(t,52,8)}function Z(t){return D(t,23,4)}function U(t,e,n){v(t.prototype,e,{get:function(){return this[n]}})}function z(t,e,n,r){var o=h(+n);if(o+e>t[P])throw w("Wrong index!");var i=t[M]._b,a=o+t[j],u=i.slice(a,a+e);return r?u:u.reverse()}function B(t,e,n,r,o,i){var a=h(+n);if(a+e>t[P])throw w("Wrong index!");for(var u=t[M]._b,c=a+t[j],s=r(+o),f=0;fG;)(H=K[G++])in m||u(m,H,k[H]);i||(W.constructor=m)}var J=new b(new m(2)),V=b.prototype.setInt8;J.setInt8(0,2147483648),J.setInt8(1,2147483649),!J.getInt8(0)&&J.getInt8(1)||c(b.prototype,{setInt8:function(t,e){V.call(this,t,e<<24>>24)},setUint8:function(t,e){V.call(this,t,e<<24>>24)}},!0)}else m=function(t){f(this,m,"ArrayBuffer");var e=h(t);this._b=y.call(new Array(e),0),this[P]=e},b=function(t,e,n){f(this,b,"DataView"),f(t,m,"DataView");var r=t[P],o=l(e);if(o<0||o>r)throw w("Wrong offset!");if(o+(n=void 0===n?r-o:p(n))>r)throw w("Wrong length!");this[M]=t,this[j]=o,this[P]=n},o&&(U(m,"byteLength","_l"),U(b,"buffer","_b"),U(b,"byteLength","_l"),U(b,"byteOffset","_o")),c(b.prototype,{getInt8:function(t){return z(this,1,t)[0]<<24>>24},getUint8:function(t){return z(this,1,t)[0]},getInt16:function(t){var e=z(this,2,t,arguments[1]);return(e[1]<<8|e[0])<<16>>16},getUint16:function(t){var e=z(this,2,t,arguments[1]);return e[1]<<8|e[0]},getInt32:function(t){return F(z(this,4,t,arguments[1]))},getUint32:function(t){return F(z(this,4,t,arguments[1]))>>>0},getFloat32:function(t){return C(z(this,4,t,arguments[1]),23,4)},getFloat64:function(t){return C(z(this,8,t,arguments[1]),52,8)},setInt8:function(t,e){B(this,1,t,I,e)},setUint8:function(t,e){B(this,1,t,I,e)},setInt16:function(t,e){B(this,2,t,R,e,arguments[2])},setUint16:function(t,e){B(this,2,t,R,e,arguments[2])},setInt32:function(t,e){B(this,4,t,N,e,arguments[2])},setUint32:function(t,e){B(this,4,t,N,e,arguments[2])},setFloat32:function(t,e){B(this,4,t,Z,e,arguments[2])},setFloat64:function(t,e){B(this,8,t,L,e,arguments[2])}});g(m,"ArrayBuffer"),g(b,"DataView"),u(b.prototype,a.VIEW,!0),e.ArrayBuffer=m,e.DataView=b},,,,,,,,,,,,,function(t,e,n){"use strict";var r=n(90),o=n(132),i=n(123),a=n(42),u=n(115),c=Object.assign;t.exports=!c||n(21)((function(){var t={},e={},n=Symbol(),r="abcdefghijklmnopqrst";return t[n]=7,r.split("").forEach((function(t){e[t]=t})),7!=c({},t)[n]||Object.keys(c({},e)).join("")!=r}))?function(t,e){for(var n=a(t),c=arguments.length,s=1,f=o.f,l=i.f;c>s;)for(var p,h=u(arguments[s++]),d=f?r(h).concat(f(h)):r(h),v=d.length,y=0;v>y;)l.call(h,p=d[y++])&&(n[p]=h[p]);return n}:c},function(t,e){t.exports=function(t,e,n){var r=void 0===n;switch(e.length){case 0:return r?t():t.call(n);case 1:return r?t(e[0]):t.call(n,e[0]);case 2:return r?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return r?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return r?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},function(t,e,n){"use strict";var r=n(63),o=n(76);t.exports=function(t){var e=String(o(this)),n="",i=r(t);if(i<0||i==1/0)throw RangeError("Count can't be negative");for(;i>0;(i>>>=1)&&(e+=e))1&i&&(n+=e);return n}},function(t,e,n){"use strict";var r=n(33),o=n(85);t.exports=function(t,e,n){e in t?r.f(t,e,o(0,n)):t[e]=n}},function(t,e,n){"use strict";var r=n(97),o=n(205),i=n(110),a=n(52);t.exports=n(153)(Array,"Array",(function(t,e){this._t=a(t),this._i=0,this._k=e}),(function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,o(1)):o(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])}),"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){var r,o,i,a=n(62),u=n(201),c=n(174),s=n(171),f=n(20),l=f.process,p=f.setImmediate,h=f.clearImmediate,d=f.MessageChannel,v=f.Dispatch,y=0,g={},m=function(){var t=+this;if(g.hasOwnProperty(t)){var e=g[t];delete g[t],e()}},b=function(t){m.call(t.data)};p&&h||(p=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return g[++y]=function(){u("function"==typeof t?t:Function(t),e)},r(y),y},h=function(t){delete g[t]},"process"==n(67)(l)?r=function(t){l.nextTick(a(m,t,1))}:v&&v.now?r=function(t){v.now(a(m,t,1))}:d?(i=(o=new d).port2,o.port1.onmessage=b,r=a(i.postMessage,i,1)):f.addEventListener&&"function"==typeof postMessage&&!f.importScripts?(r=function(t){f.postMessage(t+"","*")},f.addEventListener("message",b,!1)):r="onreadystatechange"in s("script")?function(t){c.appendChild(s("script")).onreadystatechange=function(){c.removeChild(this),m.call(t)}}:function(t){setTimeout(a(m,t,1),0)}),t.exports={set:p,clear:h}},function(t,e,n){"use strict";var r=n(47);function o(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=r})),this.resolve=r(e),this.reject=r(n)}t.exports.f=function(t){return new o(t)}},function(t,e,n){var r=n(20).navigator;t.exports=r&&r.userAgent||""},,,,,,,,,,,,function(t,e,n){t.exports=!n(35)&&!n(21)((function(){return 7!=Object.defineProperty(n(171)("div"),"a",{get:function(){return 7}}).a}))},function(t,e,n){e.f=n(27)},function(t,e,n){var r=n(20),o=n(55),i=n(86),a=n(221),u=n(33).f;t.exports=function(t){var e=o.Symbol||(o.Symbol=i?{}:r.Symbol||{});"_"==t.charAt(0)||t in e||u(e,t,{value:a.f(t)})}},function(t,e,n){var r=n(50),o=n(52),i=n(150)(!1),a=n(172)("IE_PROTO");t.exports=function(t,e){var n,u=o(t),c=0,s=[];for(n in u)n!=a&&r(u,n)&&s.push(n);for(;e.length>c;)r(u,n=e[c++])&&(~i(s,n)||s.push(n));return s}},function(t,e,n){var r=n(33),o=n(15),i=n(90);t.exports=n(35)?Object.defineProperties:function(t,e){o(t);for(var n,a=i(e),u=a.length,c=0;u>c;)r.f(t,n=a[c++],e[n]);return t}},function(t,e,n){var r=n(52),o=n(92).f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&"[object Window]"==i.call(t)?function(t){try{return o(t)}catch(e){return a.slice()}}(t):o(r(t))}},function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},function(t,e,n){"use strict";var r=n(47),o=n(22),i=n(201),a=[].slice,u={},c=function(t,e,n){if(!(e in u)){for(var r=[],o=0;o>>0||(a.test(n)?16:10))}:r},function(t,e,n){var r=n(20).parseFloat,o=n(116).trim;t.exports=1/r(n(176)+"-0")!=-1/0?function(t){var e=o(String(t),3),n=r(e);return 0===n&&"-"==e.charAt(0)?-0:n}:r},function(t,e,n){var r=n(67);t.exports=function(t,e){if("number"!=typeof t&&"Number"!=r(t))throw TypeError(e);return+t}},function(t,e,n){var r=n(22),o=Math.floor;t.exports=function(t){return!r(t)&&isFinite(t)&&o(t)===t}},function(t,e){t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:Math.log(1+t)}},function(t,e,n){var r=n(15);t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(a){var i=t.return;throw void 0!==i&&r(i.call(t)),a}}},function(t,e,n){var r=n(402);t.exports=function(t,e){return new(r(t))(e)}},function(t,e,n){var r=n(47),o=n(42),i=n(115),a=n(31);t.exports=function(t,e,n,u,c){r(e);var s=o(t),f=i(s),l=a(s.length),p=c?l-1:0,h=c?-1:1;if(n<2)for(;;){if(p in f){u=f[p],p+=h;break}if(p+=h,c?p<0:l<=p)throw TypeError("Reduce of empty array with no initial value")}for(;c?p>=0:l>p;p+=h)p in f&&(u=e(u,f[p],p,s));return u}},function(t,e,n){"use strict";var r=n(42),o=n(91),i=n(31);t.exports=[].copyWithin||function(t,e){var n=r(this),a=i(n.length),u=o(t,a),c=o(e,a),s=arguments.length>2?arguments[2]:void 0,f=Math.min((void 0===s?a:o(s,a))-c,a-u),l=1;for(c0;)c in n?n[u]=n[c]:delete n[u],u+=l,c+=l;return n}},function(t,e,n){"use strict";var r=n(185);n(2)({target:"RegExp",proto:!0,forced:r!==/./.exec},{exec:r})},function(t,e,n){n(35)&&"g"!=/./g.flags&&n(33).f(RegExp.prototype,"flags",{configurable:!0,get:n(124)})},function(t,e,n){var r=n(20),o=n(206).set,i=r.MutationObserver||r.WebKitMutationObserver,a=r.process,u=r.Promise,c="process"==n(67)(a);t.exports=function(){var t,e,n,s=function(){var r,o;for(c&&(r=a.domain)&&r.exit();t;){o=t.fn,t=t.next;try{o()}catch(i){throw t?n():e=void 0,i}}e=void 0,r&&r.enter()};if(c)n=function(){a.nextTick(s)};else if(!i||r.navigator&&r.navigator.standalone)if(u&&u.resolve){var f=u.resolve(void 0);n=function(){f.then(s)}}else n=function(){o.call(r,s)};else{var l=!0,p=document.createTextNode("");new i(s).observe(p,{characterData:!0}),n=function(){p.data=l=!l}}return function(r){var o={fn:r,next:void 0};e&&(e.next=o),t||(t=o,n()),e=o}}},function(t,e,n){"use strict";var r=n(241),o=n(111);t.exports=n(137)("Map",(function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}}),{get:function(t){var e=r.getEntry(o(this,"Map"),t);return e&&e.v},set:function(t,e){return r.def(o(this,"Map"),0===t?0:t,e)}},r,!0)},function(t,e,n){"use strict";var r=n(33).f,o=n(83),i=n(101),a=n(62),u=n(99),c=n(100),s=n(153),f=n(205),l=n(98),p=n(35),h=n(82).fastKey,d=n(111),v=p?"_s":"size",y=function(t,e){var n,r=h(e);if("F"!==r)return t._i[r];for(n=t._f;n;n=n.n)if(n.k==e)return n};t.exports={getConstructor:function(t,e,n,s){var f=t((function(t,r){u(t,f,e,"_i"),t._t=e,t._i=o(null),t._f=void 0,t._l=void 0,t[v]=0,null!=r&&c(r,n,t[s],t)}));return i(f.prototype,{clear:function(){for(var t=d(this,e),n=t._i,r=t._f;r;r=r.n)r.r=!0,r.p&&(r.p=r.p.n=void 0),delete n[r.i];t._f=t._l=void 0,t[v]=0},delete:function(t){var n=d(this,e),r=y(n,t);if(r){var o=r.n,i=r.p;delete n._i[r.i],r.r=!0,i&&(i.n=o),o&&(o.p=i),n._f==r&&(n._f=o),n._l==r&&(n._l=i),n[v]--}return!!r},forEach:function(t){d(this,e);for(var n,r=a(t,arguments.length>1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(r(n.v,n.k,this);n&&n.r;)n=n.p},has:function(t){return!!y(d(this,e),t)}}),p&&r(f.prototype,"size",{get:function(){return d(this,e)[v]}}),f},def:function(t,e,n){var r,o,i=y(t,e);return i?i.v=n:(t._l=i={i:o=h(e,!0),k:e,v:n,p:r=t._l,n:void 0,r:!1},t._f||(t._f=i),r&&(r.n=i),t[v]++,"F"!==o&&(t._i[o]=i)),t},getEntry:y,setStrong:function(t,e,n){s(t,e,(function(t,n){this._t=d(t,e),this._k=n,this._l=void 0}),(function(){for(var t=this._k,e=this._l;e&&e.r;)e=e.p;return this._t&&(this._l=e=e?e.n:this._t._f)?f(0,"keys"==t?e.k:"values"==t?e.v:[e.k,e.v]):(this._t=void 0,f(1))}),n?"entries":"values",!n,!0),l(e)}}},function(t,e,n){"use strict";var r=n(241),o=n(111);t.exports=n(137)("Set",(function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}}),{add:function(t){return r.def(o(this,"Set"),t=0===t?0:t,t)}},r)},function(t,e,n){"use strict";var r,o=n(69)(0),i=n(51),a=n(82),u=n(200),c=n(244),s=n(22),f=n(21),l=n(111),p=a.getWeak,h=Object.isExtensible,d=c.ufstore,v={},y=function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},g={get:function(t){if(s(t)){var e=p(t);return!0===e?d(l(this,"WeakMap")).get(t):e?e[this._i]:void 0}},set:function(t,e){return c.def(l(this,"WeakMap"),t,e)}},m=t.exports=n(137)("WeakMap",y,g,c,!0,!0);f((function(){return 7!=(new m).set((Object.freeze||Object)(v),7).get(v)}))&&(u((r=c.getConstructor(y,"WeakMap")).prototype,g),a.NEED=!0,o(["delete","has","get","set"],(function(t){var e=m.prototype,n=e[t];i(e,t,(function(e,o){if(s(e)&&!h(e)){this._f||(this._f=new r);var i=this._f[t](e,o);return"set"==t?this:i}return n.call(this,e,o)}))})))},function(t,e,n){"use strict";var r=n(101),o=n(82).getWeak,i=n(15),a=n(22),u=n(99),c=n(100),s=n(69),f=n(50),l=n(111),p=s(5),h=s(6),d=0,v=function(t){return t._l||(t._l=new y)},y=function(){this.a=[]},g=function(t,e){return p(t.a,(function(t){return t[0]===e}))};y.prototype={get:function(t){var e=g(this,t);if(e)return e[1]},has:function(t){return!!g(this,t)},set:function(t,e){var n=g(this,t);n?n[1]=e:this.a.push([t,e])},delete:function(t){var e=h(this.a,(function(e){return e[0]===t}));return~e&&this.a.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,n,i){var s=t((function(t,r){u(t,s,e,"_i"),t._t=e,t._i=d++,t._l=void 0,null!=r&&c(r,n,t[i],t)}));return r(s.prototype,{delete:function(t){if(!a(t))return!1;var n=o(t);return!0===n?v(l(this,e)).delete(t):n&&f(n,this._i)&&delete n[this._i]},has:function(t){if(!a(t))return!1;var n=o(t);return!0===n?v(l(this,e)).has(t):n&&f(n,this._i)}}),s},def:function(t,e,n){var r=o(i(e),!0);return!0===r?v(t).set(e,n):r[t._i]=n,t},ufstore:v}},function(t,e,n){var r=n(63),o=n(31);t.exports=function(t){if(void 0===t)return 0;var e=r(t),n=o(e);if(e!==n)throw RangeError("Wrong length!");return n}},function(t,e,n){var r=n(92),o=n(132),i=n(15),a=n(20).Reflect;t.exports=a&&a.ownKeys||function(t){var e=r.f(i(t)),n=o.f;return n?e.concat(n(t)):e}},,,,,,,,,,,,,,,,,,,,,,,function(t,e,n){var r=n(178),o=Math.pow,i=o(2,-52),a=o(2,-23),u=o(2,127)*(2-a),c=o(2,-126);t.exports=Math.fround||function(t){var e,n,o=Math.abs(t),s=r(t);return ou||n!=n?s*(1/0):s*n}},function(t,e){t.exports=function(t){try{return{e:!1,v:t()}}catch(e){return{e:!0,v:e}}}},function(t,e,n){var r=n(15),o=n(22),i=n(207);t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},function(t,e,n){var r=n(100);t.exports=function(t,e){var n=[];return r(t,!1,n.push,n,e),n}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(t,e,n){"use strict";var r=n(20),o=n(50),i=n(35),a=n(2),u=n(51),c=n(82).KEY,s=n(21),f=n(131),l=n(109),p=n(89),h=n(27),d=n(221),v=n(222),y=n(314),g=n(151),m=n(15),b=n(22),_=n(52),w=n(75),S=n(85),k=n(83),E=n(225),x=n(59),T=n(33),O=n(90),A=x.f,M=T.f,P=E.f,j=r.Symbol,D=r.JSON,C=D&&D.stringify,F=h("_hidden"),I=h("toPrimitive"),R={}.propertyIsEnumerable,N=f("symbol-registry"),L=f("symbols"),Z=f("op-symbols"),U=Object.prototype,z="function"==typeof j,B=r.QObject,H=!B||!B.prototype||!B.prototype.findChild,W=i&&s((function(){return 7!=k(M({},"a",{get:function(){return M(this,"a",{value:7}).a}})).a}))?function(t,e,n){var r=A(U,e);r&&delete U[e],M(t,e,n),r&&t!==U&&M(U,e,r)}:M,K=function(t){var e=L[t]=k(j.prototype);return e._k=t,e},G=z&&"symbol"==typeof j.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof j},J=function(t,e,n){return t===U&&J(Z,e,n),m(t),e=w(e,!0),m(n),o(L,e)?(n.enumerable?(o(t,F)&&t[F][e]&&(t[F][e]=!1),n=k(n,{enumerable:S(0,!1)})):(o(t,F)||M(t,F,S(1,{})),t[F][e]=!0),W(t,e,n)):M(t,e,n)},V=function(t,e){m(t);for(var n,r=y(e=_(e)),o=0,i=r.length;i>o;)J(t,n=r[o++],e[n]);return t},q=function(t){var e=R.call(this,t=w(t,!0));return!(this===U&&o(L,t)&&!o(Z,t))&&(!(e||!o(this,t)||!o(L,t)||o(this,F)&&this[F][t])||e)},Y=function(t,e){if(t=_(t),e=w(e,!0),t!==U||!o(L,e)||o(Z,e)){var n=A(t,e);return!n||!o(L,e)||o(t,F)&&t[F][e]||(n.enumerable=!0),n}},X=function(t){for(var e,n=P(_(t)),r=[],i=0;n.length>i;)o(L,e=n[i++])||e==F||e==c||r.push(e);return r},$=function(t){for(var e,n=t===U,r=P(n?Z:_(t)),i=[],a=0;r.length>a;)!o(L,e=r[a++])||n&&!o(U,e)||i.push(L[e]);return i};z||(u((j=function(){if(this instanceof j)throw TypeError("Symbol is not a constructor!");var t=p(arguments.length>0?arguments[0]:void 0),e=function(n){this===U&&e.call(Z,n),o(this,F)&&o(this[F],t)&&(this[F][t]=!1),W(this,t,S(1,n))};return i&&H&&W(U,t,{configurable:!0,set:e}),K(t)}).prototype,"toString",(function(){return this._k})),x.f=Y,T.f=J,n(92).f=E.f=X,n(123).f=q,n(132).f=$,i&&!n(86)&&u(U,"propertyIsEnumerable",q,!0),d.f=function(t){return K(h(t))}),a(a.G+a.W+a.F*!z,{Symbol:j});for(var Q="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),tt=0;Q.length>tt;)h(Q[tt++]);for(var et=O(h.store),nt=0;et.length>nt;)v(et[nt++]);a(a.S+a.F*!z,"Symbol",{for:function(t){return o(N,t+="")?N[t]:N[t]=j(t)},keyFor:function(t){if(!G(t))throw TypeError(t+" is not a symbol!");for(var e in N)if(N[e]===t)return e},useSetter:function(){H=!0},useSimple:function(){H=!1}}),a(a.S+a.F*!z,"Object",{create:function(t,e){return void 0===e?k(t):V(k(t),e)},defineProperty:J,defineProperties:V,getOwnPropertyDescriptor:Y,getOwnPropertyNames:X,getOwnPropertySymbols:$}),D&&a(a.S+a.F*(!z||s((function(){var t=j();return"[null]"!=C([t])||"{}"!=C({a:t})||"{}"!=C(Object(t))}))),"JSON",{stringify:function(t){for(var e,n,r=[t],o=1;arguments.length>o;)r.push(arguments[o++]);if(n=e=r[1],(b(e)||void 0!==t)&&!G(t))return g(e)||(e=function(t,e){if("function"==typeof n&&(e=n.call(this,t,e)),!G(e))return e}),r[1]=e,C.apply(D,r)}}),j.prototype[I]||n(56)(j.prototype,I,j.prototype.valueOf),l(j,"Symbol"),l(Math,"Math",!0),l(r.JSON,"JSON",!0)},function(t,e,n){var r=n(90),o=n(132),i=n(123);t.exports=function(t){var e=r(t),n=o.f;if(n)for(var a,u=n(t),c=i.f,s=0;u.length>s;)c.call(t,a=u[s++])&&e.push(a);return e}},function(t,e,n){var r=n(2);r(r.S,"Object",{create:n(83)})},function(t,e,n){var r=n(2);r(r.S+r.F*!n(35),"Object",{defineProperty:n(33).f})},function(t,e,n){var r=n(2);r(r.S+r.F*!n(35),"Object",{defineProperties:n(224)})},function(t,e,n){var r=n(52),o=n(59).f;n(68)("getOwnPropertyDescriptor",(function(){return function(t,e){return o(r(t),e)}}))},function(t,e,n){var r=n(42),o=n(57);n(68)("getPrototypeOf",(function(){return function(t){return o(r(t))}}))},function(t,e,n){var r=n(42),o=n(90);n(68)("keys",(function(){return function(t){return o(r(t))}}))},function(t,e,n){n(68)("getOwnPropertyNames",(function(){return n(225).f}))},function(t,e,n){var r=n(22),o=n(82).onFreeze;n(68)("freeze",(function(t){return function(e){return t&&r(e)?t(o(e)):e}}))},function(t,e,n){var r=n(22),o=n(82).onFreeze;n(68)("seal",(function(t){return function(e){return t&&r(e)?t(o(e)):e}}))},function(t,e,n){var r=n(22),o=n(82).onFreeze;n(68)("preventExtensions",(function(t){return function(e){return t&&r(e)?t(o(e)):e}}))},function(t,e,n){var r=n(22);n(68)("isFrozen",(function(t){return function(e){return!r(e)||!!t&&t(e)}}))},function(t,e,n){var r=n(22);n(68)("isSealed",(function(t){return function(e){return!r(e)||!!t&&t(e)}}))},function(t,e,n){var r=n(22);n(68)("isExtensible",(function(t){return function(e){return!!r(e)&&(!t||t(e))}}))},function(t,e,n){var r=n(2);r(r.S+r.F,"Object",{assign:n(200)})},function(t,e,n){var r=n(2);r(r.S,"Object",{is:n(226)})},function(t,e,n){var r=n(2);r(r.S,"Object",{setPrototypeOf:n(175).set})},function(t,e,n){"use strict";var r=n(96),o={};o[n(27)("toStringTag")]="z",o+""!="[object z]"&&n(51)(Object.prototype,"toString",(function(){return"[object "+r(this)+"]"}),!0)},function(t,e,n){var r=n(2);r(r.P,"Function",{bind:n(227)})},function(t,e,n){var r=n(33).f,o=Function.prototype,i=/^\s*function ([^ (]*)/;"name"in o||n(35)&&r(o,"name",{configurable:!0,get:function(){try{return(""+this).match(i)[1]}catch(t){return""}}})},function(t,e,n){"use strict";var r=n(22),o=n(57),i=n(27)("hasInstance"),a=Function.prototype;i in a||n(33).f(a,i,{value:function(t){if("function"!=typeof this||!r(t))return!1;if(!r(this.prototype))return t instanceof this;for(;t=o(t);)if(this.prototype===t)return!0;return!1}})},function(t,e,n){var r=n(2),o=n(228);r(r.G+r.F*(parseInt!=o),{parseInt:o})},function(t,e,n){var r=n(2),o=n(229);r(r.G+r.F*(parseFloat!=o),{parseFloat:o})},function(t,e,n){"use strict";var r=n(20),o=n(50),i=n(67),a=n(177),u=n(75),c=n(21),s=n(92).f,f=n(59).f,l=n(33).f,p=n(116).trim,h=r.Number,d=h,v=h.prototype,y="Number"==i(n(83)(v)),g="trim"in String.prototype,m=function(t){var e=u(t,!1);if("string"==typeof e&&e.length>2){var n,r,o,i=(e=g?e.trim():p(e,3)).charCodeAt(0);if(43===i||45===i){if(88===(n=e.charCodeAt(2))||120===n)return NaN}else if(48===i){switch(e.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+e}for(var a,c=e.slice(2),s=0,f=c.length;so)return NaN;return parseInt(c,r)}}return+e};if(!h(" 0o1")||!h("0b1")||h("+0x1")){h=function(t){var e=arguments.length<1?0:t,n=this;return n instanceof h&&(y?c((function(){v.valueOf.call(n)})):"Number"!=i(n))?a(new d(m(e)),n,h):m(e)};for(var b,_=n(35)?s(d):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),w=0;_.length>w;w++)o(d,b=_[w])&&!o(h,b)&&l(h,b,f(d,b));h.prototype=v,v.constructor=h,n(51)(r,"Number",h)}},function(t,e,n){"use strict";var r=n(2),o=n(63),i=n(230),a=n(202),u=1..toFixed,c=Math.floor,s=[0,0,0,0,0,0],f="Number.toFixed: incorrect invocation!",l=function(t,e){for(var n=-1,r=e;++n<6;)r+=t*s[n],s[n]=r%1e7,r=c(r/1e7)},p=function(t){for(var e=6,n=0;--e>=0;)n+=s[e],s[e]=c(n/t),n=n%t*1e7},h=function(){for(var t=6,e="";--t>=0;)if(""!==e||0===t||0!==s[t]){var n=String(s[t]);e=""===e?n:e+a.call("0",7-n.length)+n}return e},d=function(t,e,n){return 0===e?n:e%2==1?d(t,e-1,n*t):d(t*t,e/2,n)};r(r.P+r.F*(!!u&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!n(21)((function(){u.call({})}))),"Number",{toFixed:function(t){var e,n,r,u,c=i(this,f),s=o(t),v="",y="0";if(s<0||s>20)throw RangeError(f);if(c!=c)return"NaN";if(c<=-1e21||c>=1e21)return String(c);if(c<0&&(v="-",c=-c),c>1e-21)if(n=(e=function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096;for(;n>=2;)e+=1,n/=2;return e}(c*d(2,69,1))-69)<0?c*d(2,-e,1):c/d(2,e,1),n*=4503599627370496,(e=52-e)>0){for(l(0,n),r=s;r>=7;)l(1e7,0),r-=7;for(l(d(10,r,1),0),r=e-1;r>=23;)p(1<<23),r-=23;p(1<0?v+((u=y.length)<=s?"0."+a.call("0",s-u)+y:y.slice(0,u-s)+"."+y.slice(u-s)):v+y}})},function(t,e,n){"use strict";var r=n(2),o=n(21),i=n(230),a=1..toPrecision;r(r.P+r.F*(o((function(){return"1"!==a.call(1,void 0)}))||!o((function(){a.call({})}))),"Number",{toPrecision:function(t){var e=i(this,"Number#toPrecision: incorrect invocation!");return void 0===t?a.call(e):a.call(e,t)}})},function(t,e,n){var r=n(2);r(r.S,"Number",{EPSILON:Math.pow(2,-52)})},function(t,e,n){var r=n(2),o=n(20).isFinite;r(r.S,"Number",{isFinite:function(t){return"number"==typeof t&&o(t)}})},function(t,e,n){var r=n(2);r(r.S,"Number",{isInteger:n(231)})},function(t,e,n){var r=n(2);r(r.S,"Number",{isNaN:function(t){return t!=t}})},function(t,e,n){var r=n(2),o=n(231),i=Math.abs;r(r.S,"Number",{isSafeInteger:function(t){return o(t)&&i(t)<=9007199254740991}})},function(t,e,n){var r=n(2);r(r.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},function(t,e,n){var r=n(2);r(r.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},function(t,e,n){var r=n(2),o=n(229);r(r.S+r.F*(Number.parseFloat!=o),"Number",{parseFloat:o})},function(t,e,n){var r=n(2),o=n(228);r(r.S+r.F*(Number.parseInt!=o),"Number",{parseInt:o})},function(t,e,n){var r=n(2),o=n(232),i=Math.sqrt,a=Math.acosh;r(r.S+r.F*!(a&&710==Math.floor(a(Number.MAX_VALUE))&&a(1/0)==1/0),"Math",{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?Math.log(t)+Math.LN2:o(t-1+i(t-1)*i(t+1))}})},function(t,e,n){var r=n(2),o=Math.asinh;r(r.S+r.F*!(o&&1/o(0)>0),"Math",{asinh:function t(e){return isFinite(e=+e)&&0!=e?e<0?-t(-e):Math.log(e+Math.sqrt(e*e+1)):e}})},function(t,e,n){var r=n(2),o=Math.atanh;r(r.S+r.F*!(o&&1/o(-0)<0),"Math",{atanh:function(t){return 0==(t=+t)?t:Math.log((1+t)/(1-t))/2}})},function(t,e,n){var r=n(2),o=n(178);r(r.S,"Math",{cbrt:function(t){return o(t=+t)*Math.pow(Math.abs(t),1/3)}})},function(t,e,n){var r=n(2);r(r.S,"Math",{clz32:function(t){return(t>>>=0)?31-Math.floor(Math.log(t+.5)*Math.LOG2E):32}})},function(t,e,n){var r=n(2),o=Math.exp;r(r.S,"Math",{cosh:function(t){return(o(t=+t)+o(-t))/2}})},function(t,e,n){var r=n(2),o=n(179);r(r.S+r.F*(o!=Math.expm1),"Math",{expm1:o})},function(t,e,n){var r=n(2);r(r.S,"Math",{fround:n(269)})},function(t,e,n){var r=n(2),o=Math.abs;r(r.S,"Math",{hypot:function(t,e){for(var n,r,i=0,a=0,u=arguments.length,c=0;a0?(r=n/c)*r:n;return c===1/0?1/0:c*Math.sqrt(i)}})},function(t,e,n){var r=n(2),o=Math.imul;r(r.S+r.F*n(21)((function(){return-5!=o(4294967295,5)||2!=o.length})),"Math",{imul:function(t,e){var n=+t,r=+e,o=65535&n,i=65535&r;return 0|o*i+((65535&n>>>16)*i+o*(65535&r>>>16)<<16>>>0)}})},function(t,e,n){var r=n(2);r(r.S,"Math",{log10:function(t){return Math.log(t)*Math.LOG10E}})},function(t,e,n){var r=n(2);r(r.S,"Math",{log1p:n(232)})},function(t,e,n){var r=n(2);r(r.S,"Math",{log2:function(t){return Math.log(t)/Math.LN2}})},function(t,e,n){var r=n(2);r(r.S,"Math",{sign:n(178)})},function(t,e,n){var r=n(2),o=n(179),i=Math.exp;r(r.S+r.F*n(21)((function(){return-2e-17!=!Math.sinh(-2e-17)})),"Math",{sinh:function(t){return Math.abs(t=+t)<1?(o(t)-o(-t))/2:(i(t-1)-i(-t-1))*(Math.E/2)}})},function(t,e,n){var r=n(2),o=n(179),i=Math.exp;r(r.S,"Math",{tanh:function(t){var e=o(t=+t),n=o(-t);return e==1/0?1:n==1/0?-1:(e-n)/(i(t)+i(-t))}})},function(t,e,n){var r=n(2);r(r.S,"Math",{trunc:function(t){return(t>0?Math.floor:Math.ceil)(t)}})},function(t,e,n){var r=n(2),o=n(91),i=String.fromCharCode,a=String.fromCodePoint;r(r.S+r.F*(!!a&&1!=a.length),"String",{fromCodePoint:function(t){for(var e,n=[],r=arguments.length,a=0;r>a;){if(e=+arguments[a++],o(e,1114111)!==e)throw RangeError(e+" is not a valid code point");n.push(e<65536?i(e):i(55296+((e-=65536)>>10),e%1024+56320))}return n.join("")}})},function(t,e,n){var r=n(2),o=n(52),i=n(31);r(r.S,"String",{raw:function(t){for(var e=o(t.raw),n=i(e.length),r=arguments.length,a=[],u=0;n>u;)a.push(String(e[u++])),u=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})}))},function(t,e,n){"use strict";var r=n(2),o=n(152)(!1);r(r.P,"String",{codePointAt:function(t){return o(this,t)}})},function(t,e,n){"use strict";var r=n(2),o=n(31),i=n(181),a="".endsWith;r(r.P+r.F*n(182)("endsWith"),"String",{endsWith:function(t){var e=i(this,t,"endsWith"),n=arguments.length>1?arguments[1]:void 0,r=o(e.length),u=void 0===n?r:Math.min(o(n),r),c=String(t);return a?a.call(e,c,u):e.slice(u-c.length,u)===c}})},function(t,e,n){"use strict";var r=n(2),o=n(181);r(r.P+r.F*n(182)("includes"),"String",{includes:function(t){return!!~o(this,t,"includes").indexOf(t,arguments.length>1?arguments[1]:void 0)}})},function(t,e,n){var r=n(2);r(r.P,"String",{repeat:n(202)})},function(t,e,n){"use strict";var r=n(2),o=n(31),i=n(181),a="".startsWith;r(r.P+r.F*n(182)("startsWith"),"String",{startsWith:function(t){var e=i(this,t,"startsWith"),n=o(Math.min(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return a?a.call(e,r,n):e.slice(n,n+r.length)===r}})},function(t,e,n){"use strict";n(49)("anchor",(function(t){return function(e){return t(this,"a","name",e)}}))},function(t,e,n){"use strict";n(49)("big",(function(t){return function(){return t(this,"big","","")}}))},function(t,e,n){"use strict";n(49)("blink",(function(t){return function(){return t(this,"blink","","")}}))},function(t,e,n){"use strict";n(49)("bold",(function(t){return function(){return t(this,"b","","")}}))},function(t,e,n){"use strict";n(49)("fixed",(function(t){return function(){return t(this,"tt","","")}}))},function(t,e,n){"use strict";n(49)("fontcolor",(function(t){return function(e){return t(this,"font","color",e)}}))},function(t,e,n){"use strict";n(49)("fontsize",(function(t){return function(e){return t(this,"font","size",e)}}))},function(t,e,n){"use strict";n(49)("italics",(function(t){return function(){return t(this,"i","","")}}))},function(t,e,n){"use strict";n(49)("link",(function(t){return function(e){return t(this,"a","href",e)}}))},function(t,e,n){"use strict";n(49)("small",(function(t){return function(){return t(this,"small","","")}}))},function(t,e,n){"use strict";n(49)("strike",(function(t){return function(){return t(this,"strike","","")}}))},function(t,e,n){"use strict";n(49)("sub",(function(t){return function(){return t(this,"sub","","")}}))},function(t,e,n){"use strict";n(49)("sup",(function(t){return function(){return t(this,"sup","","")}}))},function(t,e,n){var r=n(2);r(r.S,"Date",{now:function(){return(new Date).getTime()}})},function(t,e,n){"use strict";var r=n(2),o=n(42),i=n(75);r(r.P+r.F*n(21)((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})})),"Date",{toJSON:function(t){var e=o(this),n=i(e);return"number"!=typeof n||isFinite(n)?e.toISOString():null}})},function(t,e,n){var r=n(2),o=n(391);r(r.P+r.F*(Date.prototype.toISOString!==o),"Date",{toISOString:o})},function(t,e,n){"use strict";var r=n(21),o=Date.prototype.getTime,i=Date.prototype.toISOString,a=function(t){return t>9?t:"0"+t};t.exports=r((function(){return"0385-07-25T07:06:39.999Z"!=i.call(new Date(-50000000000001))}))||!r((function(){i.call(new Date(NaN))}))?function(){if(!isFinite(o.call(this)))throw RangeError("Invalid time value");var t=this,e=t.getUTCFullYear(),n=t.getUTCMilliseconds(),r=e<0?"-":e>9999?"+":"";return r+("00000"+Math.abs(e)).slice(r?-6:-4)+"-"+a(t.getUTCMonth()+1)+"-"+a(t.getUTCDate())+"T"+a(t.getUTCHours())+":"+a(t.getUTCMinutes())+":"+a(t.getUTCSeconds())+"."+(n>99?n:"0"+a(n))+"Z"}:i},function(t,e,n){var r=Date.prototype,o=r.toString,i=r.getTime;new Date(NaN)+""!="Invalid Date"&&n(51)(r,"toString",(function(){var t=i.call(this);return t==t?o.call(this):"Invalid Date"}))},function(t,e,n){var r=n(27)("toPrimitive"),o=Date.prototype;r in o||n(56)(o,r,n(394))},function(t,e,n){"use strict";var r=n(15),o=n(75);t.exports=function(t){if("string"!==t&&"number"!==t&&"default"!==t)throw TypeError("Incorrect hint");return o(r(this),"number"!=t)}},function(t,e,n){var r=n(2);r(r.S,"Array",{isArray:n(151)})},function(t,e,n){"use strict";var r=n(62),o=n(2),i=n(42),a=n(233),u=n(183),c=n(31),s=n(203),f=n(133);o(o.S+o.F*!n(134)((function(t){Array.from(t)})),"Array",{from:function(t){var e,n,o,l,p=i(t),h="function"==typeof this?this:Array,d=arguments.length,v=d>1?arguments[1]:void 0,y=void 0!==v,g=0,m=f(p);if(y&&(v=r(v,d>2?arguments[2]:void 0,2)),null==m||h==Array&&u(m))for(n=new h(e=c(p.length));e>g;g++)s(n,g,y?v(p[g],g):p[g]);else for(l=m.call(p),n=new h;!(o=l.next()).done;g++)s(n,g,y?a(l,v,[o.value,g],!0):o.value);return n.length=g,n}})},function(t,e,n){"use strict";var r=n(2),o=n(203);r(r.S+r.F*n(21)((function(){function t(){}return!(Array.of.call(t)instanceof t)})),"Array",{of:function(){for(var t=0,e=arguments.length,n=new("function"==typeof this?this:Array)(e);e>t;)o(n,t,arguments[t++]);return n.length=e,n}})},function(t,e,n){"use strict";var r=n(2),o=n(52),i=[].join;r(r.P+r.F*(n(115)!=Object||!n(60)(i)),"Array",{join:function(t){return i.call(o(this),void 0===t?",":t)}})},function(t,e,n){"use strict";var r=n(2),o=n(174),i=n(67),a=n(91),u=n(31),c=[].slice;r(r.P+r.F*n(21)((function(){o&&c.call(o)})),"Array",{slice:function(t,e){var n=u(this.length),r=i(this);if(e=void 0===e?n:e,"Array"==r)return c.call(this,t,e);for(var o=a(t,n),s=a(e,n),f=u(s-o),l=new Array(f),p=0;p1&&(r=Math.min(r,i(arguments[1]))),r<0&&(r=n+r);r>=0;r--)if(r in e&&e[r]===t)return r||0;return-1}})},function(t,e,n){var r=n(2);r(r.P,"Array",{copyWithin:n(236)}),n(97)("copyWithin")},function(t,e,n){var r=n(2);r(r.P,"Array",{fill:n(184)}),n(97)("fill")},function(t,e,n){"use strict";var r=n(2),o=n(69)(5),i=!0;"find"in[]&&Array(1).find((function(){i=!1})),r(r.P+r.F*i,"Array",{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),n(97)("find")},function(t,e,n){"use strict";var r=n(2),o=n(69)(6),i="findIndex",a=!0;i in[]&&Array(1)[i]((function(){a=!1})),r(r.P+r.F*a,"Array",{findIndex:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),n(97)(i)},function(t,e,n){n(98)("Array")},function(t,e,n){var r=n(20),o=n(177),i=n(33).f,a=n(92).f,u=n(154),c=n(124),s=r.RegExp,f=s,l=s.prototype,p=/a/g,h=/a/g,d=new s(p)!==p;if(n(35)&&(!d||n(21)((function(){return h[n(27)("match")]=!1,s(p)!=p||s(h)==h||"/a/i"!=s(p,"i")})))){s=function(t,e){var n=this instanceof s,r=u(t),i=void 0===e;return!n&&r&&t.constructor===s&&i?t:o(d?new f(r&&!i?t.source:t,e):f((r=t instanceof s)?t.source:t,r&&i?c.call(t):e),n?this:l,s)};for(var v=function(t){t in s||i(s,t,{configurable:!0,get:function(){return f[t]},set:function(e){f[t]=e}})},y=a(f),g=0;y.length>g;)v(y[g++]);l.constructor=s,s.prototype=l,n(51)(r,"RegExp",s)}n(98)("RegExp")},function(t,e,n){"use strict";n(238);var r=n(15),o=n(124),i=n(35),a=/./.toString,u=function(t){n(51)(RegExp.prototype,"toString",t,!0)};n(21)((function(){return"/a/b"!=a.call({source:"a",flags:"b"})}))?u((function(){var t=r(this);return"/".concat(t.source,"/","flags"in t?t.flags:!i&&t instanceof RegExp?o.call(t):void 0)})):"toString"!=a.name&&u((function(){return a.call(this)}))},function(t,e,n){"use strict";var r=n(15),o=n(31),i=n(186),a=n(135);n(136)("match",1,(function(t,e,n,u){return[function(n){var r=t(this),o=null==n?void 0:n[e];return void 0!==o?o.call(n,r):new RegExp(n)[e](String(r))},function(t){var e=u(n,t,this);if(e.done)return e.value;var c=r(t),s=String(this);if(!c.global)return a(c,s);var f=c.unicode;c.lastIndex=0;for(var l,p=[],h=0;null!==(l=a(c,s));){var d=String(l[0]);p[h]=d,""===d&&(c.lastIndex=i(s,o(c.lastIndex),f)),h++}return 0===h?null:p}]}))},function(t,e,n){"use strict";var r=n(15),o=n(42),i=n(31),a=n(63),u=n(186),c=n(135),s=Math.max,f=Math.min,l=Math.floor,p=/\$([$&`']|\d\d?|<[^>]*>)/g,h=/\$([$&`']|\d\d?)/g;n(136)("replace",2,(function(t,e,n,d){return[function(r,o){var i=t(this),a=null==r?void 0:r[e];return void 0!==a?a.call(r,i,o):n.call(String(i),r,o)},function(t,e){var o=d(n,t,this,e);if(o.done)return o.value;var l=r(t),p=String(this),h="function"==typeof e;h||(e=String(e));var y=l.global;if(y){var g=l.unicode;l.lastIndex=0}for(var m=[];;){var b=c(l,p);if(null===b)break;if(m.push(b),!y)break;""===String(b[0])&&(l.lastIndex=u(p,i(l.lastIndex),g))}for(var _,w="",S=0,k=0;k=S&&(w+=p.slice(S,x)+P,S=x+E.length)}return w+p.slice(S)}];function v(t,e,r,i,a,u){var c=r+t.length,s=i.length,f=h;return void 0!==a&&(a=o(a),f=p),n.call(u,f,(function(n,o){var u;switch(o.charAt(0)){case"$":return"$";case"&":return t;case"`":return e.slice(0,r);case"'":return e.slice(c);case"<":u=a[o.slice(1,-1)];break;default:var f=+o;if(0===f)return n;if(f>s){var p=l(f/10);return 0===p?n:p<=s?void 0===i[p-1]?o.charAt(1):i[p-1]+o.charAt(1):n}u=i[f-1]}return void 0===u?"":u}))}}))},function(t,e,n){"use strict";var r=n(15),o=n(226),i=n(135);n(136)("search",1,(function(t,e,n,a){return[function(n){var r=t(this),o=null==n?void 0:n[e];return void 0!==o?o.call(n,r):new RegExp(n)[e](String(r))},function(t){var e=a(n,t,this);if(e.done)return e.value;var u=r(t),c=String(this),s=u.lastIndex;o(s,0)||(u.lastIndex=0);var f=i(u,c);return o(u.lastIndex,s)||(u.lastIndex=s),null===f?-1:f.index}]}))},function(t,e,n){"use strict";var r=n(154),o=n(15),i=n(125),a=n(186),u=n(31),c=n(135),s=n(185),f=Math.min,l=[].push,p="length",h=!!function(){try{return new RegExp("x","y")}catch(t){}}();n(136)("split",2,(function(t,e,n,d){var v;return v="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1)[p]||2!="ab".split(/(?:ab)*/)[p]||4!=".".split(/(.?)(.?)/)[p]||".".split(/()()/)[p]>1||"".split(/.?/)[p]?function(t,e){var o=String(this);if(void 0===t&&0===e)return[];if(!r(t))return n.call(o,t,e);for(var i,a,u,c=[],f=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),h=0,d=void 0===e?4294967295:e>>>0,v=new RegExp(t.source,f+"g");(i=s.call(v,o))&&!((a=v.lastIndex)>h&&(c.push(o.slice(h,i.index)),i[p]>1&&i.index=d));)v.lastIndex===i.index&&v.lastIndex++;return h===o[p]?!u&&v.test("")||c.push(""):c.push(o.slice(h)),c[p]>d?c.slice(0,d):c}:"0".split(void 0,0)[p]?function(t,e){return void 0===t&&0===e?[]:n.call(this,t,e)}:n,[function(n,r){var o=t(this),i=null==n?void 0:n[e];return void 0!==i?i.call(n,o,r):v.call(String(o),n,r)},function(t,e){var r=d(v,t,this,e,v!==n);if(r.done)return r.value;var s=o(t),l=String(this),p=i(s,RegExp),y=s.unicode,g=(s.ignoreCase?"i":"")+(s.multiline?"m":"")+(s.unicode?"u":"")+(h?"y":"g"),m=new p(h?s:"^(?:"+s.source+")",g),b=void 0===e?4294967295:e>>>0;if(0===b)return[];if(0===l.length)return null===c(m,l)?[l]:[];for(var _=0,w=0,S=[];wi;)a(n[i++]);t._c=[],t._n=!1,e&&!t._h&&F(t)}))}},F=function(t){g.call(c,(function(){var e,n,r,o=t._v,i=I(t);if(i&&(e=_((function(){A?E.emit("unhandledRejection",o,t):(n=c.onunhandledrejection)?n({promise:t,reason:o}):(r=c.console)&&r.error&&r.error("Unhandled promise rejection",o)})),t._h=A||I(t)?2:1),t._a=void 0,i&&e.e)throw e.v}))},I=function(t){return 1!==t._h&&0===(t._a||t._c).length},R=function(t){g.call(c,(function(){var e;A?E.emit("rejectionHandled",t):(e=c.onrejectionhandled)&&e({promise:t,reason:t._v})}))},N=function(t){var e=this;e._d||(e._d=!0,(e=e._w||e)._v=t,e._s=2,e._a||(e._a=e._c.slice()),C(e,!0))},L=function(t){var e,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===t)throw k("Promise can't be resolved itself");(e=D(t))?m((function(){var r={_w:n,_d:!1};try{e.call(t,s(L,r,1),s(N,r,1))}catch(o){N.call(r,o)}})):(n._v=t,n._s=1,C(n,!1))}catch(r){N.call({_w:n,_d:!1},r)}}};j||(O=function(t){d(this,O,"Promise","_h"),h(t),r.call(this);try{t(s(L,this,1),s(N,this,1))}catch(e){N.call(this,e)}},(r=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n(101)(O.prototype,{then:function(t,e){var n=P(y(this,O));return n.ok="function"!=typeof t||t,n.fail="function"==typeof e&&e,n.domain=A?E.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&C(this,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),i=function(){var t=new r;this.promise=t,this.resolve=s(L,t,1),this.reject=s(N,t,1)},b.f=P=function(t){return t===O||t===a?new i(t):o(t)}),l(l.G+l.W+l.F*!j,{Promise:O}),n(109)(O,"Promise"),n(98)("Promise"),a=n(55).Promise,l(l.S+l.F*!j,"Promise",{reject:function(t){var e=P(this);return(0,e.reject)(t),e.promise}}),l(l.S+l.F*(u||!j),"Promise",{resolve:function(t){return S(u&&this===a?O:this,t)}}),l(l.S+l.F*!(j&&n(134)((function(t){O.all(t).catch(M)}))),"Promise",{all:function(t){var e=this,n=P(e),r=n.resolve,o=n.reject,i=_((function(){var n=[],i=0,a=1;v(t,!1,(function(t){var u=i++,c=!1;n.push(void 0),a++,e.resolve(t).then((function(t){c||(c=!0,n[u]=t,--a||r(n))}),o)})),--a||r(n)}));return i.e&&o(i.v),n.promise},race:function(t){var e=this,n=P(e),r=n.reject,o=_((function(){v(t,!1,(function(t){e.resolve(t).then(n.resolve,r)}))}));return o.e&&r(o.v),n.promise}})},function(t,e,n){"use strict";var r=n(244),o=n(111);n(137)("WeakSet",(function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}}),{add:function(t){return r.def(o(this,"WeakSet"),t,!0)}},r,!1,!0)},function(t,e,n){"use strict";var r=n(2),o=n(138),i=n(187),a=n(15),u=n(91),c=n(31),s=n(22),f=n(20).ArrayBuffer,l=n(125),p=i.ArrayBuffer,h=i.DataView,d=o.ABV&&f.isView,v=p.prototype.slice,y=o.VIEW;r(r.G+r.W+r.F*(f!==p),{ArrayBuffer:p}),r(r.S+r.F*!o.CONSTR,"ArrayBuffer",{isView:function(t){return d&&d(t)||s(t)&&y in t}}),r(r.P+r.U+r.F*n(21)((function(){return!new p(2).slice(1,void 0).byteLength})),"ArrayBuffer",{slice:function(t,e){if(void 0!==v&&void 0===e)return v.call(a(this),t);for(var n=a(this).byteLength,r=u(t,n),o=u(void 0===e?n:e,n),i=new(l(this,p))(c(o-r)),s=new h(this),f=new h(i),d=0;r=e.length)return{value:void 0,done:!0}}while(!((t=e[this._i++])in this._t));return{value:t,done:!1}})),r(r.S,"Reflect",{enumerate:function(t){return new i(t)}})},function(t,e,n){var r=n(59),o=n(57),i=n(50),a=n(2),u=n(22),c=n(15);a(a.S,"Reflect",{get:function t(e,n){var a,s,f=arguments.length<3?e:arguments[2];return c(e)===f?e[n]:(a=r.f(e,n))?i(a,"value")?a.value:void 0!==a.get?a.get.call(f):void 0:u(s=o(e))?t(s,n,f):void 0}})},function(t,e,n){var r=n(59),o=n(2),i=n(15);o(o.S,"Reflect",{getOwnPropertyDescriptor:function(t,e){return r.f(i(t),e)}})},function(t,e,n){var r=n(2),o=n(57),i=n(15);r(r.S,"Reflect",{getPrototypeOf:function(t){return o(i(t))}})},function(t,e,n){var r=n(2);r(r.S,"Reflect",{has:function(t,e){return e in t}})},function(t,e,n){var r=n(2),o=n(15),i=Object.isExtensible;r(r.S,"Reflect",{isExtensible:function(t){return o(t),!i||i(t)}})},function(t,e,n){var r=n(2);r(r.S,"Reflect",{ownKeys:n(246)})},function(t,e,n){var r=n(2),o=n(15),i=Object.preventExtensions;r(r.S,"Reflect",{preventExtensions:function(t){o(t);try{return i&&i(t),!0}catch(e){return!1}}})},function(t,e,n){var r=n(33),o=n(59),i=n(57),a=n(50),u=n(2),c=n(85),s=n(15),f=n(22);u(u.S,"Reflect",{set:function t(e,n,u){var l,p,h=arguments.length<4?e:arguments[3],d=o.f(s(e),n);if(!d){if(f(p=i(e)))return t(p,n,u,h);d=c(0)}if(a(d,"value")){if(!1===d.writable||!f(h))return!1;if(l=o.f(h,n)){if(l.get||l.set||!1===l.writable)return!1;l.value=u,r.f(h,n,l)}else r.f(h,n,c(0,u));return!0}return void 0!==d.set&&(d.set.call(h,u),!0)}})},function(t,e,n){var r=n(2),o=n(175);o&&r(r.S,"Reflect",{setPrototypeOf:function(t,e){o.check(t,e);try{return o.set(t,e),!0}catch(n){return!1}}})},function(t,e,n){var r=n(78),o=n(15),i=r.key,a=r.set;r.exp({defineMetadata:function(t,e,n,r){a(t,e,o(n),i(r))}})},function(t,e,n){var r=n(78),o=n(15),i=r.key,a=r.map,u=r.store;r.exp({deleteMetadata:function(t,e){var n=arguments.length<3?void 0:i(arguments[2]),r=a(o(e),n,!1);if(void 0===r||!r.delete(t))return!1;if(r.size)return!0;var c=u.get(e);return c.delete(n),!!c.size||u.delete(e)}})},function(t,e,n){var r=n(78),o=n(15),i=n(57),a=r.has,u=r.get,c=r.key,s=function(t,e,n){if(a(t,e,n))return u(t,e,n);var r=i(e);return null!==r?s(t,r,n):void 0};r.exp({getMetadata:function(t,e){return s(t,o(e),arguments.length<3?void 0:c(arguments[2]))}})},function(t,e,n){var r=n(242),o=n(272),i=n(78),a=n(15),u=n(57),c=i.keys,s=i.key,f=function(t,e){var n=c(t,e),i=u(t);if(null===i)return n;var a=f(i,e);return a.length?n.length?o(new r(n.concat(a))):a:n};i.exp({getMetadataKeys:function(t){return f(a(t),arguments.length<2?void 0:s(arguments[1]))}})},function(t,e,n){var r=n(78),o=n(15),i=r.get,a=r.key;r.exp({getOwnMetadata:function(t,e){return i(t,o(e),arguments.length<3?void 0:a(arguments[2]))}})},function(t,e,n){var r=n(78),o=n(15),i=r.keys,a=r.key;r.exp({getOwnMetadataKeys:function(t){return i(o(t),arguments.length<2?void 0:a(arguments[1]))}})},function(t,e,n){var r=n(78),o=n(15),i=n(57),a=r.has,u=r.key,c=function(t,e,n){if(a(t,e,n))return!0;var r=i(e);return null!==r&&c(t,r,n)};r.exp({hasMetadata:function(t,e){return c(t,o(e),arguments.length<3?void 0:u(arguments[2]))}})},function(t,e,n){var r=n(78),o=n(15),i=r.has,a=r.key;r.exp({hasOwnMetadata:function(t,e){return i(t,o(e),arguments.length<3?void 0:a(arguments[2]))}})},function(t,e,n){var r=n(78),o=n(15),i=n(47),a=r.key,u=r.set;r.exp({metadata:function(t,e){return function(n,r){u(t,e,(void 0!==r?o:i)(n),a(r))}}})},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),n(747),n(748),n(749),!Element.prototype.matches&&Element.prototype.msMatchesSelector&&(Element.prototype.matches=Element.prototype.msMatchesSelector),n(750),n(751),n(752)},function(t,e,n){n(313),n(315),n(316),n(317),n(318),n(319),n(320),n(321),n(322),n(323),n(324),n(325),n(326),n(327),n(328),n(329),n(330),n(331),n(332),n(333),n(334),n(335),n(336),n(337),n(338),n(339),n(340),n(341),n(342),n(343),n(344),n(345),n(346),n(347),n(348),n(349),n(350),n(351),n(352),n(353),n(354),n(355),n(356),n(357),n(358),n(359),n(360),n(361),n(362),n(363),n(364),n(365),n(366),n(367),n(368),n(369),n(370),n(371),n(372),n(373),n(374),n(375),n(376),n(377),n(378),n(379),n(380),n(381),n(382),n(383),n(384),n(385),n(386),n(387),n(388),n(389),n(390),n(392),n(393),n(395),n(396),n(397),n(398),n(399),n(400),n(401),n(403),n(404),n(405),n(406),n(407),n(408),n(409),n(410),n(411),n(412),n(413),n(414),n(415),n(204),n(416),n(237),n(417),n(238),n(418),n(419),n(420),n(421),n(422),n(240),n(242),n(243),n(423),n(424),n(425),n(426),n(427),n(428),n(429),n(430),n(431),n(432),n(433),n(434),n(435),n(436),n(437),n(438),n(439),n(440),n(441),n(442),n(443),n(444),n(445),n(446),n(447),n(448),t.exports=n(55)},function(t,e,n){n(449),n(450),n(451),n(452),n(453),n(454),n(455),n(456),n(457),t.exports=n(55).Reflect},function(t,e,n){(function(r){var o,i; +/** +* @license Angular v9.1.0-next.4+61.sha-e552591.with-local-changes +* (c) 2010-2020 Google LLC. https://angular.io/ +* License: MIT +*/void 0===(i="function"==typeof(o=function(){"use strict"; +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */!function(t){var e=t.performance;function n(t){e&&e.mark&&e.mark(t)}function r(t,n){e&&e.measure&&e.measure(t,n)}n("Zone");var o=t.__Zone_symbol_prefix||"__zone_symbol__";function i(t){return o+t}var a=!0===t[i("forceDuplicateZoneCheck")];if(t.Zone){if(a||"function"!=typeof t.Zone.__symbol__)throw new Error("Zone already loaded.");return t.Zone}var u=function(){function e(t,e){this._parent=t,this._name=e?e.name||"unnamed":"",this._properties=e&&e.properties||{},this._zoneDelegate=new f(this,this._parent&&this._parent._zoneDelegate,e)}return e.assertZonePatched=function(){if(t.Promise!==M.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")},Object.defineProperty(e,"root",{get:function(){for(var t=e.current;t.parent;)t=t.parent;return t},enumerable:!0,configurable:!0}),Object.defineProperty(e,"current",{get:function(){return j.zone},enumerable:!0,configurable:!0}),Object.defineProperty(e,"currentTask",{get:function(){return D},enumerable:!0,configurable:!0}),e.__load_patch=function(o,i){if(M.hasOwnProperty(o)){if(a)throw Error("Already loaded patch: "+o)}else if(!t["__Zone_disable_"+o]){var u="Zone:"+o;n(u),M[o]=i(t,e,P),r(u,u)}},Object.defineProperty(e.prototype,"parent",{get:function(){return this._parent},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"name",{get:function(){return this._name},enumerable:!0,configurable:!0}),e.prototype.get=function(t){var e=this.getZoneWith(t);if(e)return e._properties[t]},e.prototype.getZoneWith=function(t){for(var e=this;e;){if(e._properties.hasOwnProperty(t))return e;e=e._parent}return null},e.prototype.fork=function(t){if(!t)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,t)},e.prototype.wrap=function(t,e){if("function"!=typeof t)throw new Error("Expecting function got: "+t);var n=this._zoneDelegate.intercept(this,t,e),r=this;return function(){return r.runGuarded(n,this,arguments,e)}},e.prototype.run=function(t,e,n,r){j={parent:j,zone:this};try{return this._zoneDelegate.invoke(this,t,e,n,r)}finally{j=j.parent}},e.prototype.runGuarded=function(t,e,n,r){void 0===e&&(e=null),j={parent:j,zone:this};try{try{return this._zoneDelegate.invoke(this,t,e,n,r)}catch(o){if(this._zoneDelegate.handleError(this,o))throw o}}finally{j=j.parent}},e.prototype.runTask=function(t,e,n){if(t.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(t.zone||b).name+"; Execution: "+this.name+")");if(t.state!==_||t.type!==A&&t.type!==O){var r=t.state!=k;r&&t._transitionTo(k,S),t.runCount++;var o=D;D=t,j={parent:j,zone:this};try{t.type==O&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,e,n)}catch(i){if(this._zoneDelegate.handleError(this,i))throw i}}finally{t.state!==_&&t.state!==x&&(t.type==A||t.data&&t.data.isPeriodic?r&&t._transitionTo(S,k):(t.runCount=0,this._updateTaskCount(t,-1),r&&t._transitionTo(_,k,_))),j=j.parent,D=o}}},e.prototype.scheduleTask=function(t){if(t.zone&&t.zone!==this)for(var e=this;e;){if(e===t.zone)throw Error("can not reschedule task to "+this.name+" which is descendants of the original zone "+t.zone.name);e=e.parent}t._transitionTo(w,_);var n=[];t._zoneDelegates=n,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(r){throw t._transitionTo(x,w,_),this._zoneDelegate.handleError(this,r),r}return t._zoneDelegates===n&&this._updateTaskCount(t,1),t.state==w&&t._transitionTo(S,w),t},e.prototype.scheduleMicroTask=function(t,e,n,r){return this.scheduleTask(new l(T,t,e,n,r,void 0))},e.prototype.scheduleMacroTask=function(t,e,n,r,o){return this.scheduleTask(new l(O,t,e,n,r,o))},e.prototype.scheduleEventTask=function(t,e,n,r,o){return this.scheduleTask(new l(A,t,e,n,r,o))},e.prototype.cancelTask=function(t){if(t.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(t.zone||b).name+"; Execution: "+this.name+")");t._transitionTo(E,S,k);try{this._zoneDelegate.cancelTask(this,t)}catch(e){throw t._transitionTo(x,E),this._zoneDelegate.handleError(this,e),e}return this._updateTaskCount(t,-1),t._transitionTo(_,E),t.runCount=0,t},e.prototype._updateTaskCount=function(t,e){var n=t._zoneDelegates;-1==e&&(t._zoneDelegates=null);for(var r=0;r0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:t};this.hasTask(this.zone,i)}},t}(),l=function(){function e(n,r,o,i,a,u){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=n,this.source=r,this.data=i,this.scheduleFn=a,this.cancelFn=u,!o)throw new Error("callback is not defined");this.callback=o;var c=this;n===A&&i&&i.useG?this.invoke=e.invokeTask:this.invoke=function(){return e.invokeTask.call(t,c,this,arguments)}}return e.invokeTask=function(t,e,n){t||(t=this),C++;try{return t.runCount++,t.zone.runTask(t,e,n)}finally{1==C&&m(),C--}},Object.defineProperty(e.prototype,"zone",{get:function(){return this._zone},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"state",{get:function(){return this._state},enumerable:!0,configurable:!0}),e.prototype.cancelScheduleRequest=function(){this._transitionTo(_,w)},e.prototype._transitionTo=function(t,e,n){if(this._state!==e&&this._state!==n)throw new Error(this.type+" '"+this.source+"': can not transition to '"+t+"', expecting state '"+e+"'"+(n?" or '"+n+"'":"")+", was '"+this._state+"'.");this._state=t,t==_&&(this._zoneDelegates=null)},e.prototype.toString=function(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)},e.prototype.toJSON=function(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}},e}(),p=i("setTimeout"),h=i("Promise"),d=i("then"),v=[],y=!1;function g(e){if(0===C&&0===v.length)if(c||t[h]&&(c=t[h].resolve(0)),c){var n=c[d];n||(n=c.then),n.call(c,m)}else t[p](m,0);e&&v.push(e)}function m(){if(!y){for(y=!0;v.length;){var t=v;v=[];for(var e=0;e=0;n--)"function"==typeof t[n]&&(t[n]=s(t[n],e+"_"+n));return t}function g(t){return!t||!1!==t.writable&&!("function"==typeof t.get&&void 0===t.set)}var m="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,b=!("nw"in d)&&void 0!==d.process&&"[object process]"==={}.toString.call(d.process),_=!b&&!m&&!(!p||!h.HTMLElement),w=void 0!==d.process&&"[object process]"==={}.toString.call(d.process)&&!m&&!(!p||!h.HTMLElement),S={},k=function(t){if(t=t||d.event){var e=S[t.type];e||(e=S[t.type]=l("ON_PROPERTY"+t.type));var n,r=this||t.target||d,o=r[e];if(_&&r===h&&"error"===t.type){var i=t;!0===(n=o&&o.call(this,i.message,i.filename,i.lineno,i.colno,i.error))&&t.preventDefault()}else null==(n=o&&o.apply(this,arguments))||n||t.preventDefault();return n}};function E(n,r,o){var i=t(n,r);if(!i&&o&&t(o,r)&&(i={enumerable:!0,configurable:!0}),i&&i.configurable){var a=l("on"+r+"patched");if(!n.hasOwnProperty(a)||!n[a]){delete i.writable,delete i.value;var u=i.get,c=i.set,s=r.substr(2),f=S[s];f||(f=S[s]=l("ON_PROPERTY"+s)),i.set=function(t){var e=this;e||n!==d||(e=d),e&&(e[f]&&e.removeEventListener(s,k),c&&c.apply(e,v),"function"==typeof t?(e[f]=t,e.addEventListener(s,k,!1)):e[f]=null)},i.get=function(){var t=this;if(t||n!==d||(t=d),!t)return null;var e=t[f];if(e)return e;if(u){var o=u&&u.call(this);if(o)return i.set.call(this,o),"function"==typeof t.removeAttribute&&t.removeAttribute(r),o}return null},e(n,r,i),n[a]=!0}}}function x(t,e,n){if(e)for(var r=0;r=0&&"function"==typeof r[i.cbIdx]?f(i.name,r[i.cbIdx],i,o):t.apply(e,r)}}))}function P(t,e){t[l("OriginalDelegate")]=e}var j=!1,D=!1;function C(){try{var t=h.navigator.userAgent;if(-1!==t.indexOf("MSIE ")||-1!==t.indexOf("Trident/"))return!0}catch(e){}return!1}function F(){if(j)return D;j=!0;try{var t=h.navigator.userAgent;-1===t.indexOf("MSIE ")&&-1===t.indexOf("Trident/")&&-1===t.indexOf("Edge/")||(D=!0)}catch(e){}return D} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */Zone.__load_patch("toString",(function(t){var e=Function.prototype.toString,n=l("OriginalDelegate"),r=l("Promise"),o=l("Error"),i=function(){if("function"==typeof this){var i=this[n];if(i)return"function"==typeof i?e.call(i):Object.prototype.toString.call(i);if(this===Promise){var a=t[r];if(a)return e.call(a)}if(this===Error){var u=t[o];if(u)return e.call(u)}}return e.call(this)};i[n]=e,Function.prototype.toString=i;var a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?"[object Promise]":a.call(this)}})); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +var I=!1;if("undefined"!=typeof window)try{var R=Object.defineProperty({},"passive",{get:function(){I=!0}});window.addEventListener("test",R,R),window.removeEventListener("test",R,R)}catch(wt){I=!1}var N={useG:!0},L={},Z={},U=new RegExp("^"+c+"(\\w+)(true|false)$"),z=l("propagationStopped");function B(t,e){var n=(e?e(t):t)+"false",r=(e?e(t):t)+"true",o=c+n,i=c+r;L[t]={},L[t].false=o,L[t].true=i}function H(t,e,r){var o=r&&r.add||"addEventListener",i=r&&r.rm||"removeEventListener",a=r&&r.listeners||"eventListeners",u=r&&r.rmAll||"removeAllListeners",s=l(o),f="."+o+":",p=function(t,e,n){if(!t.isRemoved){var r=t.callback;"object"==typeof r&&r.handleEvent&&(t.callback=function(t){return r.handleEvent(t)},t.originalDelegate=r),t.invoke(t,e,[n]);var o=t.options;if(o&&"object"==typeof o&&o.once){var a=t.originalDelegate?t.originalDelegate:t.callback;e[i].call(e,n.type,a,o)}}},h=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[L[e.type].false];if(r)if(1===r.length)p(r[0],n,e);else for(var o=r.slice(),i=0;i1?new i(e,n):new i(e),s=t.ObjectGetOwnPropertyDescriptor(c,"onmessage");return s&&!1===s.configurable?(a=t.ObjectCreate(c),u=c,[r,o,"send","close"].forEach((function(e){a[e]=function(){var n=t.ArraySlice.call(arguments);if(e===r||e===o){var i=n.length>0?n[0]:void 0;if(i){var u=Zone.__symbol__("ON_PROPERTY"+i);c[u]=a[u]}}return c[e].apply(c,n)}}))):a=c,t.patchOnProperties(a,["close","error","message","open"],u),a};var a=e.WebSocket;for(var u in i)a[u]=i[u]}(t,e),Zone[t.symbol("patchEvents")]=!0}}Zone.__load_patch("util",(function(n,r,a){a.patchOnProperties=x,a.patchMethod=A,a.bindArguments=y,a.patchMacroTask=M;var u=r.__symbol__("BLACK_LISTED_EVENTS"),f=r.__symbol__("UNPATCHED_EVENTS");n[f]&&(n[u]=n[f]),n[u]&&(r[u]=r[f]=n[u]),a.patchEventPrototype=K,a.patchEventTarget=H,a.isIEOrEdge=F,a.ObjectDefineProperty=e,a.ObjectGetOwnPropertyDescriptor=t,a.ObjectCreate=o,a.ArraySlice=i,a.patchClass=O,a.wrapWithCurrentZone=s,a.filterProperties=ct,a.attachOriginToPatched=P,a._redefineProperty=Object.defineProperty,a.patchCallbacks=G,a.getGlobalObjects=function(){return{globalSources:Z,zoneSymbolEventNames:L,eventNames:ut,isBrowser:_,isMix:w,isNode:b,TRUE_STR:"true",FALSE_STR:"false",ZONE_SYMBOL_PREFIX:c,ADD_EVENT_LISTENER_STR:"addEventListener",REMOVE_EVENT_LISTENER_STR:"removeEventListener"}}})), +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +function(t){var e,n=t.__Zone_symbol_prefix||"__zone_symbol__";t[(e="legacyPatch",n+e)]=function(){var e=t.Zone;e.__load_patch("defineProperty",(function(t,e,n){n._redefineProperty=pt,lt()})),e.__load_patch("registerElement",(function(t,e,n){!function(t,e){var n=e.getGlobalObjects(),r=n.isBrowser,o=n.isMix;(r||o)&&"registerElement"in t.document&&e.patchCallbacks(e,document,"Document","registerElement",["createdCallback","attachedCallback","detachedCallback","attributeChangedCallback"])}(t,n)})),e.__load_patch("EventTargetLegacy",(function(t,e,n){yt(t,n),gt(n,t)}))}}("undefined"!=typeof window?window:void 0!==r?r:"undefined"!=typeof self?self:{}); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +var mt=l("zoneTask");function bt(t,e,n,r){var o=null,i=null;n+=r;var a={};function u(e){var n=e.data;return n.args[0]=function(){try{e.invoke.apply(this,arguments)}finally{e.data&&e.data.isPeriodic||("number"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[mt]=null))}},n.handleId=o.apply(t,n.args),e}function c(t){return i(t.data.handleId)}o=A(t,e+=r,(function(n){return function(o,i){if("function"==typeof i[0]){var s={isPeriodic:"Interval"===r,delay:"Timeout"===r||"Interval"===r?i[1]||0:void 0,args:i},l=f(e,i[0],s,u,c);if(!l)return l;var p=l.data.handleId;return"number"==typeof p?a[p]=l:p&&(p[mt]=l),p&&p.ref&&p.unref&&"function"==typeof p.ref&&"function"==typeof p.unref&&(l.ref=p.ref.bind(p),l.unref=p.unref.bind(p)),"number"==typeof p||p?p:l}return n.apply(t,i)}})),i=A(t,n,(function(e){return function(n,r){var o,i=r[0];"number"==typeof i?o=a[i]:(o=i&&i[mt])||(o=i),o&&"string"==typeof o.type?"notScheduled"!==o.state&&(o.cancelFn&&o.data.isPeriodic||0===o.runCount)&&("number"==typeof i?delete a[i]:i&&(i[mt]=null),o.zone.cancelTask(o)):e.apply(t,r)}}))} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +function _t(t,e){if(!Zone[e.symbol("patchEventTarget")]){for(var n=e.getGlobalObjects(),r=n.eventNames,o=n.zoneSymbolEventNames,i=n.TRUE_STR,a=n.FALSE_STR,u=n.ZONE_SYMBOL_PREFIX,c=0;c0){var o=t.invoke;t.invoke=function(){for(var n=c[e.__symbol__("loadfalse")],i=0;i-1};function f(t){if("string"!=typeof t&&(t=String(t)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(t))throw new TypeError("Invalid character in header field name");return t.toLowerCase()}function l(t){return"string"!=typeof t&&(t=String(t)),t}function p(t){var e={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return o&&(e[Symbol.iterator]=function(){return e}),e}function h(t){this.map={},t instanceof h?t.forEach((function(t,e){this.append(e,t)}),this):Array.isArray(t)?t.forEach((function(t){this.append(t[0],t[1])}),this):t&&Object.getOwnPropertyNames(t).forEach((function(e){this.append(e,t[e])}),this)}function d(t){if(t.bodyUsed)return Promise.reject(new TypeError("Already read"));t.bodyUsed=!0}function v(t){return new Promise((function(e,n){t.onload=function(){e(t.result)},t.onerror=function(){n(t.error)}}))}function y(t){var e=new FileReader,n=v(e);return e.readAsArrayBuffer(t),n}function g(t){if(t.slice)return t.slice(0);var e=new Uint8Array(t.byteLength);return e.set(new Uint8Array(t)),e.buffer}function m(){return this.bodyUsed=!1,this._initBody=function(t){var e;this._bodyInit=t,t?"string"==typeof t?this._bodyText=t:i&&Blob.prototype.isPrototypeOf(t)?this._bodyBlob=t:a&&FormData.prototype.isPrototypeOf(t)?this._bodyFormData=t:r&&URLSearchParams.prototype.isPrototypeOf(t)?this._bodyText=t.toString():u&&i&&((e=t)&&DataView.prototype.isPrototypeOf(e))?(this._bodyArrayBuffer=g(t.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):u&&(ArrayBuffer.prototype.isPrototypeOf(t)||s(t))?this._bodyArrayBuffer=g(t):this._bodyText=t=Object.prototype.toString.call(t):this._bodyText="",this.headers.get("content-type")||("string"==typeof t?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):r&&URLSearchParams.prototype.isPrototypeOf(t)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},i&&(this.blob=function(){var t=d(this);if(t)return t;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?d(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(y)}),this.text=function(){var t,e,n,r=d(this);if(r)return r;if(this._bodyBlob)return t=this._bodyBlob,e=new FileReader,n=v(e),e.readAsText(t),n;if(this._bodyArrayBuffer)return Promise.resolve(function(t){for(var e=new Uint8Array(t),n=new Array(e.length),r=0;r-1?r:n),this.mode=e.mode||this.mode||null,this.signal=e.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&o)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(o)}function w(t){var e=new FormData;return t.trim().split("&").forEach((function(t){if(t){var n=t.split("="),r=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");e.append(decodeURIComponent(r),decodeURIComponent(o))}})),e}function S(t,e){e||(e={}),this.type="default",this.status=void 0===e.status?200:e.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in e?e.statusText:"OK",this.headers=new h(e.headers),this.url=e.url||"",this._initBody(t)}_.prototype.clone=function(){return new _(this,{body:this._bodyInit})},m.call(_.prototype),m.call(S.prototype),S.prototype.clone=function(){return new S(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new h(this.headers),url:this.url})},S.error=function(){var t=new S(null,{status:0,statusText:""});return t.type="error",t};var k=[301,302,303,307,308];S.redirect=function(t,e){if(-1===k.indexOf(e))throw new RangeError("Invalid status code");return new S(null,{status:e,headers:{location:t}})};var E=self.DOMException;try{new E}catch(T){(E=function(t,e){this.message=t,this.name=e;var n=Error(t);this.stack=n.stack}).prototype=Object.create(Error.prototype),E.prototype.constructor=E}function x(t,e){return new Promise((function(n,r){var o=new _(t,e);if(o.signal&&o.signal.aborted)return r(new E("Aborted","AbortError"));var a=new XMLHttpRequest;function u(){a.abort()}a.onload=function(){var t,e,r={status:a.status,statusText:a.statusText,headers:(t=a.getAllResponseHeaders()||"",e=new h,t.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach((function(t){var n=t.split(":"),r=n.shift().trim();if(r){var o=n.join(":").trim();e.append(r,o)}})),e)};r.url="responseURL"in a?a.responseURL:r.headers.get("X-Request-URL");var o="response"in a?a.response:a.responseText;n(new S(o,r))},a.onerror=function(){r(new TypeError("Network request failed"))},a.ontimeout=function(){r(new TypeError("Network request failed"))},a.onabort=function(){r(new E("Aborted","AbortError"))},a.open(o.method,o.url,!0),"include"===o.credentials?a.withCredentials=!0:"omit"===o.credentials&&(a.withCredentials=!1),"responseType"in a&&i&&(a.responseType="blob"),o.headers.forEach((function(t,e){a.setRequestHeader(e,t)})),o.signal&&(o.signal.addEventListener("abort",u),a.onreadystatechange=function(){4===a.readyState&&o.signal.removeEventListener("abort",u)}),a.send(void 0===o._bodyInit?null:o._bodyInit)}))}x.polyfill=!0,self.fetch||(self.fetch=x,self.Headers=h,self.Request=_,self.Response=S)},function(t,e,n){var r,o; +/** + * @file Web Cryptography API shim + * @author Artem S Vybornov + * @license MIT + */o="undefined"!=typeof self?self:this,void 0===(r=function(){return function(t){"use strict";if("function"!=typeof Promise)throw"Promise support required";var e=t.crypto||t.msCrypto;if(e){var n=e.subtle||e.webkitSubtle;if(n){var r=t.Crypto||e.constructor||Object,o=t.SubtleCrypto||n.constructor||Object,i=(t.CryptoKey||t.Key,t.navigator.userAgent.indexOf("Edge/")>-1),a=!!t.msCrypto&&!i,u=!e.subtle&&!!e.webkitSubtle;if(a||u){var c={KoZIhvcNAQEB:"1.2.840.113549.1.1.1"},s={"1.2.840.113549.1.1.1":"KoZIhvcNAQEB"};if(["generateKey","importKey","unwrapKey"].forEach((function(t){var r=n[t];n[t]=function(o,i,c){var s,f,l,d,_=[].slice.call(arguments);switch(t){case"generateKey":s=v(o),f=i,l=c;break;case"importKey":s=v(c),f=_[3],l=_[4],"jwk"===o&&((i=g(i)).alg||(i.alg=y(s)),i.key_ops||(i.key_ops="oct"!==i.kty?"d"in i?l.filter(x):l.filter(E):l.slice()),_[1]=m(i));break;case"unwrapKey":s=_[4],f=_[5],l=_[6],_[2]=c._key}if("generateKey"===t&&"HMAC"===s.name&&s.hash)return s.length=s.length||{"SHA-1":512,"SHA-256":512,"SHA-384":1024,"SHA-512":1024}[s.hash.name],n.importKey("raw",e.getRandomValues(new Uint8Array(s.length+7>>3)),s,f,l);if(u&&"generateKey"===t&&"RSASSA-PKCS1-v1_5"===s.name&&(!s.modulusLength||s.modulusLength>=2048))return(o=v(o)).name="RSAES-PKCS1-v1_5",delete o.hash,n.generateKey(o,!0,["encrypt","decrypt"]).then((function(t){return Promise.all([n.exportKey("jwk",t.publicKey),n.exportKey("jwk",t.privateKey)])})).then((function(t){return t[0].alg=t[1].alg=y(s),t[0].key_ops=l.filter(E),t[1].key_ops=l.filter(x),Promise.all([n.importKey("jwk",t[0],s,!0,t[0].key_ops),n.importKey("jwk",t[1],s,f,t[1].key_ops)])})).then((function(t){return{publicKey:t[0],privateKey:t[1]}}));if((u||a&&"SHA-1"===(s.hash||{}).name)&&"importKey"===t&&"jwk"===o&&"HMAC"===s.name&&"oct"===i.kty)return n.importKey("raw",h(p(i.k)),c,_[3],_[4]);if(u&&"importKey"===t&&("spki"===o||"pkcs8"===o))return n.importKey("jwk",b(i),c,_[3],_[4]);if(a&&"unwrapKey"===t)return n.decrypt(_[3],c,i).then((function(t){return n.importKey(o,t,_[4],_[5],_[6])}));try{d=r.apply(n,_)}catch(w){return Promise.reject(w)}return a&&(d=new Promise((function(t,e){d.onabort=d.onerror=function(t){e(t)},d.oncomplete=function(e){t(e.target.result)}}))),d=d.then((function(t){return"HMAC"===s.name&&(s.length||(s.length=8*t.algorithm.length)),0==s.name.search("RSA")&&(s.modulusLength||(s.modulusLength=(t.publicKey||t).algorithm.modulusLength),s.publicExponent||(s.publicExponent=(t.publicKey||t).algorithm.publicExponent)),t=t.publicKey&&t.privateKey?{publicKey:new k(t.publicKey,s,f,l.filter(E)),privateKey:new k(t.privateKey,s,f,l.filter(x))}:new k(t,s,f,l)}))}})),["exportKey","wrapKey"].forEach((function(t){var e=n[t];n[t]=function(r,o,i){var c,s=[].slice.call(arguments);switch(t){case"exportKey":s[1]=o._key;break;case"wrapKey":s[1]=o._key,s[2]=i._key}if((u||a&&"SHA-1"===(o.algorithm.hash||{}).name)&&"exportKey"===t&&"jwk"===r&&"HMAC"===o.algorithm.name&&(s[0]="raw"),!u||"exportKey"!==t||"spki"!==r&&"pkcs8"!==r||(s[0]="jwk"),a&&"wrapKey"===t)return n.exportKey(r,o).then((function(t){return"jwk"===r&&(t=h(unescape(encodeURIComponent(JSON.stringify(g(t)))))),n.encrypt(s[3],i,t)}));try{c=e.apply(n,s)}catch(f){return Promise.reject(f)}return a&&(c=new Promise((function(t,e){c.onabort=c.onerror=function(t){e(t)},c.oncomplete=function(e){t(e.target.result)}}))),"exportKey"===t&&"jwk"===r&&(c=c.then((function(t){return(u||a&&"SHA-1"===(o.algorithm.hash||{}).name)&&"HMAC"===o.algorithm.name?{kty:"oct",alg:y(o.algorithm),key_ops:o.usages.slice(),ext:!0,k:l(d(t))}:((t=g(t)).alg||(t.alg=y(o.algorithm)),t.key_ops||(t.key_ops="public"===o.type?o.usages.filter(E):"private"===o.type?o.usages.filter(x):o.usages.slice()),t)}))),!u||"exportKey"!==t||"spki"!==r&&"pkcs8"!==r||(c=c.then((function(t){return t=_(g(t))}))),c}})),["encrypt","decrypt","sign","verify"].forEach((function(t){var e=n[t];n[t]=function(r,o,i,u){if(a&&(!i.byteLength||u&&!u.byteLength))throw new Error("Empy input is not allowed");var c,s=[].slice.call(arguments),f=v(r);if(a&&"decrypt"===t&&"AES-GCM"===f.name){var l=r.tagLength>>3;s[2]=(i.buffer||i).slice(0,i.byteLength-l),r.tag=(i.buffer||i).slice(i.byteLength-l)}s[1]=o._key;try{c=e.apply(n,s)}catch(p){return Promise.reject(p)}return a&&(c=new Promise((function(e,n){c.onabort=c.onerror=function(t){n(t)},c.oncomplete=function(n){if(n=n.target.result,"encrypt"===t&&n instanceof AesGcmEncryptResult){var r=n.ciphertext,o=n.tag;(n=new Uint8Array(r.byteLength+o.byteLength)).set(new Uint8Array(r),0),n.set(new Uint8Array(o),r.byteLength),n=n.buffer}e(n)}}))),c}})),a){var f=n.digest;n.digest=function(t,e){if(!e.byteLength)throw new Error("Empy input is not allowed");var r;try{r=f.call(n,t,e)}catch(o){return Promise.reject(o)}return r=new Promise((function(t,e){r.onabort=r.onerror=function(t){e(t)},r.oncomplete=function(e){t(e.target.result)}}))},t.crypto=Object.create(e,{getRandomValues:{value:function(t){return e.getRandomValues(t)}},subtle:{value:n}}),t.CryptoKey=k}u&&(e.subtle=n,t.Crypto=r,t.SubtleCrypto=o,t.CryptoKey=k)}}}function l(t){return btoa(t).replace(/\=+$/,"").replace(/\+/g,"-").replace(/\//g,"_")}function p(t){return t=(t+="===").slice(0,-t.length%4),atob(t.replace(/-/g,"+").replace(/_/g,"/"))}function h(t){for(var e=new Uint8Array(t.length),n=0;n2&&(n=!0,e.shift());var r={ext:!0};switch(e[0][0]){case"1.2.840.113549.1.1.1":var o=["n","e","d","p","q","dp","dq","qi"],i=w(e[1]);n&&i.shift();for(var a=0;a2&&(r=!0,i.unshift(new Uint8Array([0]))),n[0][0]="1.2.840.113549.1.1.1",e=i;break;default:throw new TypeError("Unsupported key type")}return n.push(new Uint8Array(S(e)).buffer),r?n.unshift(new Uint8Array([0])):n[1]={tag:3,value:n[1]},new Uint8Array(S(n)).buffer}function w(t,e){if(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),e||(e={pos:0,end:t.length}),e.end-e.pos<2||e.end>t.length)throw new RangeError("Malformed DER");var n,r=t[e.pos++],o=t[e.pos++];if(o>=128){if(o&=127,e.end-e.pos=128){var u=r;for(r=4,e.splice(o,0,u>>24&255,u>>16&255,u>>8&255,255&u);r>1&&!(u>>24);)u<<=8,r--;r<4&&e.splice(o,4-r),r|=128}return e.splice(o-2,2,n,r),e}function k(t,e,n,r){Object.defineProperties(this,{_key:{value:t},type:{value:t.type,enumerable:!0},extractable:{value:void 0===n?t.extractable:n,enumerable:!0},algorithm:{value:void 0===e?t.algorithm:e,enumerable:!0},usages:{value:void 0===r?t.usages:r,enumerable:!0}})}function E(t){return"verify"===t||"encrypt"===t||"wrapKey"===t}function x(t){return"sign"===t||"decrypt"===t||"unwrapKey"===t}}(o)}.apply(e,[]))||(t.exports=r)},function(t,e,n){t.exports=function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return t[r].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";n(84);var r=function(t){return t&&t.__esModule?t:{default:t}}(n(41)),o=function(){r.default.addPickerToOtherInputs(),r.default.supportsDateInput()||r.default.addPickerToDateInputs()};o(),document.addEventListener("DOMContentLoaded",(function(){o()})),document.querySelector("body").addEventListener("mousedown",(function(){o()}))},function(t,e,n){t.exports=!n(11)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var r=n(9),o=n(32),i=n(25),a=Object.defineProperty;e.f=n(1)?Object.defineProperty:function(t,e,n){if(r(t),e=i(e,!0),r(n),o)try{return a(t,e,n)}catch(u){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},function(t,e,n){var r=n(59),o=n(16);t.exports=function(t){return r(o(t))}},function(t,e,n){var r=n(4),o=n(14);t.exports=n(1)?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){var r=n(23)("wks"),o=n(15),i=n(2).Symbol,a="function"==typeof i;(t.exports=function(t){return r[t]||(r[t]=a&&i[t]||(a?i:o)("Symbol."+t))}).store=r},function(t,e){var n=t.exports={version:"2.4.0"};"number"==typeof __e&&(__e=n)},function(t,e,n){var r=n(12);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},function(t,e,n){var r=n(2),o=n(8),i=n(56),a=n(6),u="prototype",c=function(t,e,n){var s,f,l,p=t&c.F,h=t&c.G,d=t&c.S,v=t&c.P,y=t&c.B,g=t&c.W,m=h?o:o[e]||(o[e]={}),b=m[u],_=h?r:d?r[e]:(r[e]||{})[u];for(s in h&&(n=e),n)(f=!p&&_&&void 0!==_[s])&&s in m||(l=f?_[s]:n[s],m[s]=h&&"function"!=typeof _[s]?n[s]:y&&f?i(l,r):g&&_[s]==l?function(t){var e=function(e,n,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,r)}return t.apply(this,arguments)};return e[u]=t[u],e}(l):v&&"function"==typeof l?i(Function.call,l):l,v&&((m.virtual||(m.virtual={}))[s]=l,t&c.R&&b&&!b[s]&&a(b,s,l)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,t.exports=c},function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e,n){var r=n(38),o=n(17);t.exports=Object.keys||function(t){return r(t,o)}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e){t.exports={}},function(t,e){t.exports=!0},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,n){var r=n(4).f,o=n(3),i=n(7)("toStringTag");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},function(t,e,n){var r=n(23)("keys"),o=n(15);t.exports=function(t){return r[t]||(r[t]=o(t))}},function(t,e,n){var r=n(2),o="__core-js_shared__",i=r[o]||(r[o]={});t.exports=function(t){return i[t]||(i[t]={})}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e,n){var r=n(12);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,e,n){var r=n(2),o=n(8),i=n(19),a=n(27),u=n(4).f;t.exports=function(t){var e=o.Symbol||(o.Symbol=i?{}:r.Symbol||{});"_"==t.charAt(0)||t in e||u(e,t,{value:a.f(t)})}},function(t,e,n){e.f=n(7)},function(t,e){"use strict";e.__esModule=!0,e.default=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},function(t,e,n){"use strict";e.__esModule=!0;var r=function(t){return t&&t.__esModule?t:{default:t}}(n(45));e.default=function(){function t(t,e){for(var n=0;ndocument.F=Object<\/script>"),t.close(),s=t.F;r--;)delete s[c][i[r]];return s()};t.exports=Object.create||function(t,e){var n;return null!==t?(u[c]=r(t),n=new u,u[c]=null,n[a]=t):n=s(),void 0===e?n:o(n,e)}},function(t,e,n){var r=n(4),o=n(9),i=n(13);t.exports=n(1)?Object.defineProperties:function(t,e){o(t);for(var n,a=i(e),u=a.length,c=0;u>c;)r.f(t,n=a[c++],e[n]);return t}},function(t,e,n){var r=n(38),o=n(17).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,n){var r=n(3),o=n(5),i=n(55)(!1),a=n(22)("IE_PROTO");t.exports=function(t,e){var n,u=o(t),c=0,s=[];for(n in u)n!=a&&r(u,n)&&s.push(n);for(;e.length>c;)r(u,n=e[c++])&&(~i(s,n)||s.push(n));return s}},function(t,e,n){t.exports=n(6)},function(t,e,n){"use strict";function r(t,e){for(t=String(t),e=e||2;t.length0?"-":"+")+r(100*Math.floor(Math.abs(S)/60)+Math.abs(S)%60,4),S:["th","st","nd","rd"][d%10>3?0:(d%100-d%10!=10)*d%10],W:k,N:E};return s.replace(t,(function(t){return t in x?x[t]:t.slice(1,t.length-1)}))}}();c.masks={default:"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:sso",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'",expiresHeaderFormat:"ddd, dd mmm yyyy HH:MM:ss Z"},c.i18n={dayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","January","February","March","April","May","June","July","August","September","October","November","December"]},e.default=c},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=r(n(44)),i=r(n(28)),a=r(n(29)),u=r(n(43)),c=r(n(42)),s=r(n(40)),f=function(){function t(e){var n=this;(0,i.default)(this,t),this.element=e,this.element.setAttribute("data-has-picker",""),this.locale=this.element.getAttribute("lang")||document.body.getAttribute("lang")||"en",this.format=this.element.getAttribute("date-format")||document.body.getAttribute("date-format")||this.element.getAttribute("data-date-format")||document.body.getAttribute("data-date-format")||"yyyy-mm-dd",this.localeText=this.getLocaleText(),(0,o.default)(this.element,{valueAsDate:{get:function(){if(!n.element.value)return null;var t=n.format||"yyyy-mm-dd",e=n.element.value.match(/(\d+)/g),r=0,o={};return t.replace(/(yyyy|dd|mm)/g,(function(t){o[t]=r++})),new Date(e[o.yyyy],e[o.mm]-1,e[o.dd])},set:function(t){n.element.value=(0,s.default)(t,n.format)}},valueAsNumber:{get:function(){return n.element.value?n.element.valueAsDate.valueOf():NaN},set:function(t){n.element.valueAsDate=new Date(t)}}});var r=function(t){var e=n.element;e.locale=n.localeText,u.default.attachTo(e)};this.element.addEventListener("focus",r),this.element.addEventListener("mouseup",r),this.element.addEventListener("keydown",(function(t){var e=new Date;switch(t.keyCode){case 9:case 27:u.default.hide();break;case 38:n.element.valueAsDate&&(e.setDate(n.element.valueAsDate.getDate()+1),n.element.valueAsDate=e,u.default.pingInput());break;case 40:n.element.valueAsDate&&(e.setDate(n.element.valueAsDate.getDate()-1),n.element.valueAsDate=e,u.default.pingInput())}u.default.sync()})),this.element.addEventListener("keyup",(function(t){u.default.sync()}))}return(0,a.default)(t,[{key:"getLocaleText",value:function(){var t=this.locale.toLowerCase();for(var e in c.default){var n=e.split("_");if(n.map((function(t){return t.toLowerCase()})),~n.indexOf(t)||~n.indexOf(t.substr(0,2)))return c.default[e]}}}],[{key:"supportsDateInput",value:function(){var t=document.createElement("input");t.setAttribute("type","date");var e="not-a-date";return t.setAttribute("value",e),!(t.value===e)}},{key:"addPickerToDateInputs",value:function(){var e=document.querySelectorAll('input[type="date"]:not([data-has-picker])'),n=e.length;if(!n)return!1;for(var r=0;r"],n=0,r=this.locale.days.length;n'+this.locale.days[n]+"");this.daysHead.innerHTML=e.join(""),t.createRangeSelect(this.month,0,11,this.locale.months)}},{key:"refreshDaysMatrix",value:function(){this.refreshLocale();for(var e=this.date.getFullYear(),n=this.date.getMonth(),r=new Date(e,n,1).getDay(),o=new Date(this.date.getFullYear(),n+1,0).getDate(),i=t.absoluteDate(this.input.valueAsDate)||!1,a=i&&e===i.getFullYear()&&n===i.getMonth(),u=[],c=0;c":"")+"\n \n "),c+1<=r)u.push("");else{var s=c+1-r,f=a&&i.getDate()===s;u.push("\n "+s+"\n ")}this.days.innerHTML=u.join("")}},{key:"pingInput",value:function(){var t=void 0,e=void 0;try{t=new Event("input"),e=new Event("change")}catch(n){(t=document.createEvent("KeyboardEvent")).initEvent("input",!0,!1),(e=document.createEvent("KeyboardEvent")).initEvent("change",!0,!1)}this.input.dispatchEvent(t),this.input.dispatchEvent(e)}}],[{key:"createRangeSelect",value:function(t,e,n,r){t.innerHTML="";for(var o=e;o<=n;++o){var i=document.createElement("option");t.appendChild(i);var a=r?r[o-e]:o;i.text=a,i.value=o}return t}},{key:"absoluteDate",value:function(t){return t&&new Date(t.getTime()+60*t.getTimezoneOffset()*1e3)}}]),t}();window.thePicker=new a,e.default=window.thePicker},function(t,e,n){t.exports={default:n(49),__esModule:!0}},function(t,e,n){t.exports={default:n(50),__esModule:!0}},function(t,e,n){t.exports={default:n(51),__esModule:!0}},function(t,e,n){t.exports={default:n(52),__esModule:!0}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var o=r(n(47)),i=r(n(46)),a="function"==typeof i.default&&"symbol"==typeof o.default?function(t){return typeof t}:function(t){return t&&"function"==typeof i.default&&t.constructor===i.default?"symbol":typeof t};e.default="function"==typeof i.default&&"symbol"===a(o.default)?function(t){return void 0===t?"undefined":a(t)}:function(t){return t&&"function"==typeof i.default&&t.constructor===i.default?"symbol":void 0===t?"undefined":a(t)}},function(t,e,n){n(73);var r=n(8).Object;t.exports=function(t,e){return r.defineProperties(t,e)}},function(t,e,n){n(74);var r=n(8).Object;t.exports=function(t,e,n){return r.defineProperty(t,e,n)}},function(t,e,n){n(77),n(75),n(78),n(79),t.exports=n(8).Symbol},function(t,e,n){n(76),n(80),t.exports=n(27).f("iterator")},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e){t.exports=function(){}},function(t,e,n){var r=n(5),o=n(70),i=n(69);t.exports=function(t){return function(e,n,a){var u,c=r(e),s=o(c.length),f=i(a,s);if(t&&n!=n){for(;s>f;)if((u=c[f++])!=u)return!0}else for(;s>f;f++)if((t||f in c)&&c[f]===n)return t||f||0;return!t&&-1}}},function(t,e,n){var r=n(53);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},function(t,e,n){var r=n(13),o=n(37),i=n(20);t.exports=function(t){var e=r(t),n=o.f;if(n)for(var a,u=n(t),c=i.f,s=0;u.length>s;)c.call(t,a=u[s++])&&e.push(a);return e}},function(t,e,n){t.exports=n(2).document&&document.documentElement},function(t,e,n){var r=n(30);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},function(t,e,n){var r=n(30);t.exports=Array.isArray||function(t){return"Array"==r(t)}},function(t,e,n){"use strict";var r=n(34),o=n(14),i=n(21),a={};n(6)(a,n(7)("iterator"),(function(){return this})),t.exports=function(t,e,n){t.prototype=r(a,{next:o(1,n)}),i(t,e+" Iterator")}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){var r=n(13),o=n(5);t.exports=function(t,e){for(var n,i=o(t),a=r(i),u=a.length,c=0;u>c;)if(i[n=a[c++]]===e)return n}},function(t,e,n){var r=n(15)("meta"),o=n(12),i=n(3),a=n(4).f,u=0,c=Object.isExtensible||function(){return!0},s=!n(11)((function(){return c(Object.preventExtensions({}))})),f=function(t){a(t,r,{value:{i:"O"+ ++u,w:{}}})},l=t.exports={KEY:r,NEED:!1,fastKey:function(t,e){if(!o(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!i(t,r)){if(!c(t))return"F";if(!e)return"E";f(t)}return t[r].i},getWeak:function(t,e){if(!i(t,r)){if(!c(t))return!0;if(!e)return!1;f(t)}return t[r].w},onFreeze:function(t){return s&&l.NEED&&c(t)&&!i(t,r)&&f(t),t}}},function(t,e,n){var r=n(20),o=n(14),i=n(5),a=n(25),u=n(3),c=n(32),s=Object.getOwnPropertyDescriptor;e.f=n(1)?s:function(t,e){if(t=i(t),e=a(e,!0),c)try{return s(t,e)}catch(n){}if(u(t,e))return o(!r.f.call(t,e),t[e])}},function(t,e,n){var r=n(5),o=n(36).f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&"[object Window]"==i.call(t)?function(t){try{return o(t)}catch(e){return a.slice()}}(t):o(r(t))}},function(t,e,n){var r=n(3),o=n(71),i=n(22)("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),r(t,i)?t[i]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},function(t,e,n){var r=n(24),o=n(16);t.exports=function(t){return function(e,n){var i,a,u=String(o(e)),c=r(n),s=u.length;return c<0||c>=s?t?"":void 0:(i=u.charCodeAt(c))<55296||i>56319||c+1===s||(a=u.charCodeAt(c+1))<56320||a>57343?t?u.charAt(c):i:t?u.slice(c,c+2):a-56320+(i-55296<<10)+65536}}},function(t,e,n){var r=n(24),o=Math.max,i=Math.min;t.exports=function(t,e){return(t=r(t))<0?o(t+e,0):i(t,e)}},function(t,e,n){var r=n(24),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},function(t,e,n){var r=n(16);t.exports=function(t){return Object(r(t))}},function(t,e,n){"use strict";var r=n(54),o=n(62),i=n(18),a=n(5);t.exports=n(33)(Array,"Array",(function(t,e){this._t=a(t),this._i=0,this._k=e}),(function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,o(1)):o(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])}),"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(t,e,n){var r=n(10);r(r.S+r.F*!n(1),"Object",{defineProperties:n(35)})},function(t,e,n){var r=n(10);r(r.S+r.F*!n(1),"Object",{defineProperty:n(4).f})},function(t,e){},function(t,e,n){"use strict";var r=n(68)(!0);n(33)(String,"String",(function(t){this._t=String(t),this._i=0}),(function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})}))},function(t,e,n){"use strict";var r=n(2),o=n(3),i=n(1),a=n(10),u=n(39),c=n(64).KEY,s=n(11),f=n(23),l=n(21),p=n(15),h=n(7),d=n(27),v=n(26),y=n(63),g=n(57),m=n(60),b=n(9),_=n(5),w=n(25),S=n(14),k=n(34),E=n(66),x=n(65),T=n(4),O=n(13),A=x.f,M=T.f,P=E.f,j=r.Symbol,D=r.JSON,C=D&&D.stringify,F="prototype",I=h("_hidden"),R=h("toPrimitive"),N={}.propertyIsEnumerable,L=f("symbol-registry"),Z=f("symbols"),U=f("op-symbols"),z=Object[F],B="function"==typeof j,H=r.QObject,W=!H||!H[F]||!H[F].findChild,K=i&&s((function(){return 7!=k(M({},"a",{get:function(){return M(this,"a",{value:7}).a}})).a}))?function(t,e,n){var r=A(z,e);r&&delete z[e],M(t,e,n),r&&t!==z&&M(z,e,r)}:M,G=function(t){var e=Z[t]=k(j[F]);return e._k=t,e},J=B&&"symbol"==typeof j.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof j},V=function(t,e,n){return t===z&&V(U,e,n),b(t),e=w(e,!0),b(n),o(Z,e)?(n.enumerable?(o(t,I)&&t[I][e]&&(t[I][e]=!1),n=k(n,{enumerable:S(0,!1)})):(o(t,I)||M(t,I,S(1,{})),t[I][e]=!0),K(t,e,n)):M(t,e,n)},q=function(t,e){b(t);for(var n,r=g(e=_(e)),o=0,i=r.length;i>o;)V(t,n=r[o++],e[n]);return t},Y=function(t){var e=N.call(this,t=w(t,!0));return!(this===z&&o(Z,t)&&!o(U,t))&&(!(e||!o(this,t)||!o(Z,t)||o(this,I)&&this[I][t])||e)},X=function(t,e){if(t=_(t),e=w(e,!0),t!==z||!o(Z,e)||o(U,e)){var n=A(t,e);return!n||!o(Z,e)||o(t,I)&&t[I][e]||(n.enumerable=!0),n}},$=function(t){for(var e,n=P(_(t)),r=[],i=0;n.length>i;)o(Z,e=n[i++])||e==I||e==c||r.push(e);return r},Q=function(t){for(var e,n=t===z,r=P(n?U:_(t)),i=[],a=0;r.length>a;)!o(Z,e=r[a++])||n&&!o(z,e)||i.push(Z[e]);return i};B||(u((j=function(){if(this instanceof j)throw TypeError("Symbol is not a constructor!");var t=p(arguments.length>0?arguments[0]:void 0),e=function(n){this===z&&e.call(U,n),o(this,I)&&o(this[I],t)&&(this[I][t]=!1),K(this,t,S(1,n))};return i&&W&&K(z,t,{configurable:!0,set:e}),G(t)})[F],"toString",(function(){return this._k})),x.f=X,T.f=V,n(36).f=E.f=$,n(20).f=Y,n(37).f=Q,i&&!n(19)&&u(z,"propertyIsEnumerable",Y,!0),d.f=function(t){return G(h(t))}),a(a.G+a.W+a.F*!B,{Symbol:j});for(var tt="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),et=0;tt.length>et;)h(tt[et++]);for(tt=O(h.store),et=0;tt.length>et;)v(tt[et++]);a(a.S+a.F*!B,"Symbol",{for:function(t){return o(L,t+="")?L[t]:L[t]=j(t)},keyFor:function(t){if(J(t))return y(L,t);throw TypeError(t+" is not a symbol!")},useSetter:function(){W=!0},useSimple:function(){W=!1}}),a(a.S+a.F*!B,"Object",{create:function(t,e){return void 0===e?k(t):q(k(t),e)},defineProperty:V,defineProperties:q,getOwnPropertyDescriptor:X,getOwnPropertyNames:$,getOwnPropertySymbols:Q}),D&&a(a.S+a.F*(!B||s((function(){var t=j();return"[null]"!=C([t])||"{}"!=C({a:t})||"{}"!=C(Object(t))}))),"JSON",{stringify:function(t){if(void 0!==t&&!J(t)){for(var e,n,r=[t],o=1;arguments.length>o;)r.push(arguments[o++]);return"function"==typeof(e=r[1])&&(n=e),!n&&m(e)||(e=function(t,e){if(n&&(e=n.call(this,t,e)),!J(e))return e}),r[1]=e,C.apply(D,r)}}}),j[F][R]||n(6)(j[F],R,j[F].valueOf),l(j,"Symbol"),l(Math,"Math",!0),l(r.JSON,"JSON",!0)},function(t,e,n){n(26)("asyncIterator")},function(t,e,n){n(26)("observable")},function(t,e,n){n(72);for(var r=n(2),o=n(6),i=n(18),a=n(7)("toStringTag"),u=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],c=0;c<5;c++){var s=u[c],f=r[s],l=f&&f.prototype;l&&!l[a]&&o(l,a,s),i[s]=i.Array}},function(t,e,n){(t.exports=n(82)()).push([t.id,"date-input-polyfill{background:#fff;color:#000;text-shadow:none;border:0;padding:0;height:auto;width:auto;line-height:normal;font-family:sans-serif;font-size:14px;position:absolute!important;text-align:center;box-shadow:0 3px 10px 1px rgba(0,0,0,.22);cursor:default;z-index:1;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;overflow:hidden;display:block}date-input-polyfill[data-open=false]{visibility:hidden;z-index:-100!important;top:0}date-input-polyfill[data-open=true]{visibility:visible}date-input-polyfill select,date-input-polyfill table,date-input-polyfill td,date-input-polyfill th{background:#fff;color:#000;text-shadow:none;border:0;padding:0;height:auto;width:auto;line-height:normal;font-family:sans-serif;font-size:14px;box-shadow:none;font-family:Lato,Helvetica,Arial,sans-serif}date-input-polyfill button,date-input-polyfill select{border:0;border-radius:0;border-bottom:1px solid #dadfe1;height:24px;vertical-align:top;-webkit-appearance:none;-moz-appearance:none}date-input-polyfill .monthSelect-wrapper{width:55%;display:inline-block}date-input-polyfill .yearSelect-wrapper{width:25%;display:inline-block}date-input-polyfill select{width:100%}date-input-polyfill select:first-of-type{border-right:1px solid #dadfe1;border-radius:5px 0 0 0;-moz-border-radius:5px 0 0 0;-webkit-border-radius:5px 0 0 0}date-input-polyfill button{width:20%;background:#dadfe1;border-radius:0 5px 0 0;-moz-border-radius:0 5px 0 0;-webkit-border-radius:0 5px 0 0}date-input-polyfill button:hover{background:#eee}date-input-polyfill table{border-collapse:separate!important;border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0 0 5px 5px;overflow:hidden;max-width:280px;width:280px}date-input-polyfill td,date-input-polyfill th{width:32px;padding:4px;text-align:center;box-sizing:content-box}date-input-polyfill td[data-day]{cursor:pointer}date-input-polyfill td[data-day]:hover{background:#dadfe1}date-input-polyfill [data-selected]{font-weight:700;background:#d8eaf6}",""])},function(t,e){t.exports=function(){var t=[];return t.toString=function(){for(var t=[],e=0;e=0&&b.splice(e,1)}function u(t){var e=document.createElement("style");return e.type="text/css",i(t,e),e}function c(t){var e=document.createElement("link");return e.rel="stylesheet",i(t,e),e}function s(t,e){var n,r,o;if(e.singleton){var i=m++;n=g||(g=u(e)),r=f.bind(null,n,i,!1),o=f.bind(null,n,i,!0)}else t.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=c(e),r=p.bind(null,n),o=function(){a(n),n.href&&URL.revokeObjectURL(n.href)}):(n=u(e),r=l.bind(null,n),o=function(){a(n)});return r(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;r(t=e)}else o()}}function f(t,e,n,r){var o=n?"":r.css;if(t.styleSheet)t.styleSheet.cssText=_(e,o);else{var i=document.createTextNode(o),a=t.childNodes;a[e]&&t.removeChild(a[e]),a.length?t.insertBefore(i,a[e]):t.appendChild(i)}}function l(t,e){var n=e.css,r=e.media;if(r&&t.setAttribute("media",r),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}function p(t,e){var n=e.css,r=e.sourceMap;r&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var o=new Blob([n],{type:"text/css"}),i=t.href;t.href=URL.createObjectURL(o),i&&URL.revokeObjectURL(i)}var h={},d=function(t){var e;return function(){return void 0===e&&(e=t.apply(this,arguments)),e}},v=d((function(){return/msie [6-9]\b/.test(window.navigator.userAgent.toLowerCase())})),y=d((function(){return document.head||document.getElementsByTagName("head")[0]})),g=null,m=0,b=[];t.exports=function(t,e){void 0===(e=e||{}).singleton&&(e.singleton=v()),void 0===e.insertAt&&(e.insertAt="bottom");var n=o(t);return r(n,e),function(t){for(var i=[],a=0;a 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","var $export = require('./_export');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar quot = /\"/g;\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\nvar createHTML = function (string, tag, attribute, value) {\n var S = String(defined(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\nmodule.exports = function (NAME, exec) {\n var O = {};\n O[NAME] = exec(createHTML);\n $export($export.P + $export.F * fails(function () {\n var test = ''[NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n }), 'String', O);\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","var core = module.exports = { version: '2.6.2' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","'use strict';\nvar fails = require('./_fails');\n\nmodule.exports = function (method, arg) {\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call\n arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);\n });\n};\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nif (require('./_descriptors')) {\n var LIBRARY = require('./_library');\n var global = require('./_global');\n var fails = require('./_fails');\n var $export = require('./_export');\n var $typed = require('./_typed');\n var $buffer = require('./_typed-buffer');\n var ctx = require('./_ctx');\n var anInstance = require('./_an-instance');\n var propertyDesc = require('./_property-desc');\n var hide = require('./_hide');\n var redefineAll = require('./_redefine-all');\n var toInteger = require('./_to-integer');\n var toLength = require('./_to-length');\n var toIndex = require('./_to-index');\n var toAbsoluteIndex = require('./_to-absolute-index');\n var toPrimitive = require('./_to-primitive');\n var has = require('./_has');\n var classof = require('./_classof');\n var isObject = require('./_is-object');\n var toObject = require('./_to-object');\n var isArrayIter = require('./_is-array-iter');\n var create = require('./_object-create');\n var getPrototypeOf = require('./_object-gpo');\n var gOPN = require('./_object-gopn').f;\n var getIterFn = require('./core.get-iterator-method');\n var uid = require('./_uid');\n var wks = require('./_wks');\n var createArrayMethod = require('./_array-methods');\n var createArrayIncludes = require('./_array-includes');\n var speciesConstructor = require('./_species-constructor');\n var ArrayIterators = require('./es6.array.iterator');\n var Iterators = require('./_iterators');\n var $iterDetect = require('./_iter-detect');\n var setSpecies = require('./_set-species');\n var arrayFill = require('./_array-fill');\n var arrayCopyWithin = require('./_array-copy-within');\n var $DP = require('./_object-dp');\n var $GOPD = require('./_object-gopd');\n var dP = $DP.f;\n var gOPD = $GOPD.f;\n var RangeError = global.RangeError;\n var TypeError = global.TypeError;\n var Uint8Array = global.Uint8Array;\n var ARRAY_BUFFER = 'ArrayBuffer';\n var SHARED_BUFFER = 'Shared' + ARRAY_BUFFER;\n var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\n var PROTOTYPE = 'prototype';\n var ArrayProto = Array[PROTOTYPE];\n var $ArrayBuffer = $buffer.ArrayBuffer;\n var $DataView = $buffer.DataView;\n var arrayForEach = createArrayMethod(0);\n var arrayFilter = createArrayMethod(2);\n var arraySome = createArrayMethod(3);\n var arrayEvery = createArrayMethod(4);\n var arrayFind = createArrayMethod(5);\n var arrayFindIndex = createArrayMethod(6);\n var arrayIncludes = createArrayIncludes(true);\n var arrayIndexOf = createArrayIncludes(false);\n var arrayValues = ArrayIterators.values;\n var arrayKeys = ArrayIterators.keys;\n var arrayEntries = ArrayIterators.entries;\n var arrayLastIndexOf = ArrayProto.lastIndexOf;\n var arrayReduce = ArrayProto.reduce;\n var arrayReduceRight = ArrayProto.reduceRight;\n var arrayJoin = ArrayProto.join;\n var arraySort = ArrayProto.sort;\n var arraySlice = ArrayProto.slice;\n var arrayToString = ArrayProto.toString;\n var arrayToLocaleString = ArrayProto.toLocaleString;\n var ITERATOR = wks('iterator');\n var TAG = wks('toStringTag');\n var TYPED_CONSTRUCTOR = uid('typed_constructor');\n var DEF_CONSTRUCTOR = uid('def_constructor');\n var ALL_CONSTRUCTORS = $typed.CONSTR;\n var TYPED_ARRAY = $typed.TYPED;\n var VIEW = $typed.VIEW;\n var WRONG_LENGTH = 'Wrong length!';\n\n var $map = createArrayMethod(1, function (O, length) {\n return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);\n });\n\n var LITTLE_ENDIAN = fails(function () {\n // eslint-disable-next-line no-undef\n return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;\n });\n\n var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function () {\n new Uint8Array(1).set({});\n });\n\n var toOffset = function (it, BYTES) {\n var offset = toInteger(it);\n if (offset < 0 || offset % BYTES) throw RangeError('Wrong offset!');\n return offset;\n };\n\n var validate = function (it) {\n if (isObject(it) && TYPED_ARRAY in it) return it;\n throw TypeError(it + ' is not a typed array!');\n };\n\n var allocate = function (C, length) {\n if (!(isObject(C) && TYPED_CONSTRUCTOR in C)) {\n throw TypeError('It is not a typed array constructor!');\n } return new C(length);\n };\n\n var speciesFromList = function (O, list) {\n return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);\n };\n\n var fromList = function (C, list) {\n var index = 0;\n var length = list.length;\n var result = allocate(C, length);\n while (length > index) result[index] = list[index++];\n return result;\n };\n\n var addGetter = function (it, key, internal) {\n dP(it, key, { get: function () { return this._d[internal]; } });\n };\n\n var $from = function from(source /* , mapfn, thisArg */) {\n var O = toObject(source);\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iterFn = getIterFn(O);\n var i, length, values, result, step, iterator;\n if (iterFn != undefined && !isArrayIter(iterFn)) {\n for (iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++) {\n values.push(step.value);\n } O = values;\n }\n if (mapping && aLen > 2) mapfn = ctx(mapfn, arguments[2], 2);\n for (i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n };\n\n var $of = function of(/* ...items */) {\n var index = 0;\n var length = arguments.length;\n var result = allocate(this, length);\n while (length > index) result[index] = arguments[index++];\n return result;\n };\n\n // iOS Safari 6.x fails here\n var TO_LOCALE_BUG = !!Uint8Array && fails(function () { arrayToLocaleString.call(new Uint8Array(1)); });\n\n var $toLocaleString = function toLocaleString() {\n return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments);\n };\n\n var proto = {\n copyWithin: function copyWithin(target, start /* , end */) {\n return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n },\n every: function every(callbackfn /* , thisArg */) {\n return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n fill: function fill(value /* , start, end */) { // eslint-disable-line no-unused-vars\n return arrayFill.apply(validate(this), arguments);\n },\n filter: function filter(callbackfn /* , thisArg */) {\n return speciesFromList(this, arrayFilter(validate(this), callbackfn,\n arguments.length > 1 ? arguments[1] : undefined));\n },\n find: function find(predicate /* , thisArg */) {\n return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n findIndex: function findIndex(predicate /* , thisArg */) {\n return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n forEach: function forEach(callbackfn /* , thisArg */) {\n arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n indexOf: function indexOf(searchElement /* , fromIndex */) {\n return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n includes: function includes(searchElement /* , fromIndex */) {\n return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n join: function join(separator) { // eslint-disable-line no-unused-vars\n return arrayJoin.apply(validate(this), arguments);\n },\n lastIndexOf: function lastIndexOf(searchElement /* , fromIndex */) { // eslint-disable-line no-unused-vars\n return arrayLastIndexOf.apply(validate(this), arguments);\n },\n map: function map(mapfn /* , thisArg */) {\n return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n reduce: function reduce(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars\n return arrayReduce.apply(validate(this), arguments);\n },\n reduceRight: function reduceRight(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars\n return arrayReduceRight.apply(validate(this), arguments);\n },\n reverse: function reverse() {\n var that = this;\n var length = validate(that).length;\n var middle = Math.floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n },\n some: function some(callbackfn /* , thisArg */) {\n return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n sort: function sort(comparefn) {\n return arraySort.call(validate(this), comparefn);\n },\n subarray: function subarray(begin, end) {\n var O = validate(this);\n var length = O.length;\n var $begin = toAbsoluteIndex(begin, length);\n return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(\n O.buffer,\n O.byteOffset + $begin * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - $begin)\n );\n }\n };\n\n var $slice = function slice(start, end) {\n return speciesFromList(this, arraySlice.call(validate(this), start, end));\n };\n\n var $set = function set(arrayLike /* , offset */) {\n validate(this);\n var offset = toOffset(arguments[1], 1);\n var length = this.length;\n var src = toObject(arrayLike);\n var len = toLength(src.length);\n var index = 0;\n if (len + offset > length) throw RangeError(WRONG_LENGTH);\n while (index < len) this[offset + index] = src[index++];\n };\n\n var $iterators = {\n entries: function entries() {\n return arrayEntries.call(validate(this));\n },\n keys: function keys() {\n return arrayKeys.call(validate(this));\n },\n values: function values() {\n return arrayValues.call(validate(this));\n }\n };\n\n var isTAIndex = function (target, key) {\n return isObject(target)\n && target[TYPED_ARRAY]\n && typeof key != 'symbol'\n && key in target\n && String(+key) == String(key);\n };\n var $getDesc = function getOwnPropertyDescriptor(target, key) {\n return isTAIndex(target, key = toPrimitive(key, true))\n ? propertyDesc(2, target[key])\n : gOPD(target, key);\n };\n var $setDesc = function defineProperty(target, key, desc) {\n if (isTAIndex(target, key = toPrimitive(key, true))\n && isObject(desc)\n && has(desc, 'value')\n && !has(desc, 'get')\n && !has(desc, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !desc.configurable\n && (!has(desc, 'writable') || desc.writable)\n && (!has(desc, 'enumerable') || desc.enumerable)\n ) {\n target[key] = desc.value;\n return target;\n } return dP(target, key, desc);\n };\n\n if (!ALL_CONSTRUCTORS) {\n $GOPD.f = $getDesc;\n $DP.f = $setDesc;\n }\n\n $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', {\n getOwnPropertyDescriptor: $getDesc,\n defineProperty: $setDesc\n });\n\n if (fails(function () { arrayToString.call({}); })) {\n arrayToString = arrayToLocaleString = function toString() {\n return arrayJoin.call(this);\n };\n }\n\n var $TypedArrayPrototype$ = redefineAll({}, proto);\n redefineAll($TypedArrayPrototype$, $iterators);\n hide($TypedArrayPrototype$, ITERATOR, $iterators.values);\n redefineAll($TypedArrayPrototype$, {\n slice: $slice,\n set: $set,\n constructor: function () { /* noop */ },\n toString: arrayToString,\n toLocaleString: $toLocaleString\n });\n addGetter($TypedArrayPrototype$, 'buffer', 'b');\n addGetter($TypedArrayPrototype$, 'byteOffset', 'o');\n addGetter($TypedArrayPrototype$, 'byteLength', 'l');\n addGetter($TypedArrayPrototype$, 'length', 'e');\n dP($TypedArrayPrototype$, TAG, {\n get: function () { return this[TYPED_ARRAY]; }\n });\n\n // eslint-disable-next-line max-statements\n module.exports = function (KEY, BYTES, wrapper, CLAMPED) {\n CLAMPED = !!CLAMPED;\n var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + KEY;\n var SETTER = 'set' + KEY;\n var TypedArray = global[NAME];\n var Base = TypedArray || {};\n var TAC = TypedArray && getPrototypeOf(TypedArray);\n var FORCED = !TypedArray || !$typed.ABV;\n var O = {};\n var TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE];\n var getter = function (that, index) {\n var data = that._d;\n return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);\n };\n var setter = function (that, index, value) {\n var data = that._d;\n if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff;\n data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN);\n };\n var addElement = function (that, index) {\n dP(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n if (FORCED) {\n TypedArray = wrapper(function (that, data, $offset, $length) {\n anInstance(that, TypedArray, NAME, '_d');\n var index = 0;\n var offset = 0;\n var buffer, byteLength, length, klass;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new $ArrayBuffer(byteLength);\n } else if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n buffer = data;\n offset = toOffset($offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - offset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + offset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (TYPED_ARRAY in data) {\n return fromList(TypedArray, data);\n } else {\n return $from.call(TypedArray, data);\n }\n hide(that, '_d', {\n b: buffer,\n o: offset,\n l: byteLength,\n e: length,\n v: new $DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);\n hide(TypedArrayPrototype, 'constructor', TypedArray);\n } else if (!fails(function () {\n TypedArray(1);\n }) || !fails(function () {\n new TypedArray(-1); // eslint-disable-line no-new\n }) || !$iterDetect(function (iter) {\n new TypedArray(); // eslint-disable-line no-new\n new TypedArray(null); // eslint-disable-line no-new\n new TypedArray(1.5); // eslint-disable-line no-new\n new TypedArray(iter); // eslint-disable-line no-new\n }, true)) {\n TypedArray = wrapper(function (that, data, $offset, $length) {\n anInstance(that, TypedArray, NAME);\n var klass;\n // `ws` module bug, temporarily remove validation length for Uint8Array\n // https://github.com/websockets/ws/pull/645\n if (!isObject(data)) return new Base(toIndex(data));\n if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n return $length !== undefined\n ? new Base(data, toOffset($offset, BYTES), $length)\n : $offset !== undefined\n ? new Base(data, toOffset($offset, BYTES))\n : new Base(data);\n }\n if (TYPED_ARRAY in data) return fromList(TypedArray, data);\n return $from.call(TypedArray, data);\n });\n arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function (key) {\n if (!(key in TypedArray)) hide(TypedArray, key, Base[key]);\n });\n TypedArray[PROTOTYPE] = TypedArrayPrototype;\n if (!LIBRARY) TypedArrayPrototype.constructor = TypedArray;\n }\n var $nativeIterator = TypedArrayPrototype[ITERATOR];\n var CORRECT_ITER_NAME = !!$nativeIterator\n && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined);\n var $iterator = $iterators.values;\n hide(TypedArray, TYPED_CONSTRUCTOR, true);\n hide(TypedArrayPrototype, TYPED_ARRAY, NAME);\n hide(TypedArrayPrototype, VIEW, true);\n hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);\n\n if (CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)) {\n dP(TypedArrayPrototype, TAG, {\n get: function () { return NAME; }\n });\n }\n\n O[NAME] = TypedArray;\n\n $export($export.G + $export.W + $export.F * (TypedArray != Base), O);\n\n $export($export.S, NAME, {\n BYTES_PER_ELEMENT: BYTES\n });\n\n $export($export.S + $export.F * fails(function () { Base.of.call(TypedArray, 1); }), NAME, {\n from: $from,\n of: $of\n });\n\n if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);\n\n $export($export.P, NAME, proto);\n\n setSpecies(NAME);\n\n $export($export.P + $export.F * FORCED_SET, NAME, { set: $set });\n\n $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);\n\n if (!LIBRARY && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString;\n\n $export($export.P + $export.F * fails(function () {\n new TypedArray(1).slice();\n }), NAME, { slice: $slice });\n\n $export($export.P + $export.F * (fails(function () {\n return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString();\n }) || !fails(function () {\n TypedArrayPrototype.toLocaleString.call([1, 2]);\n })), NAME, { toLocaleString: $toLocaleString });\n\n Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;\n if (!LIBRARY && !CORRECT_ITER_NAME) hide(TypedArrayPrototype, ITERATOR, $iterator);\n };\n} else module.exports = function () { /* empty */ };\n","var Map = require('./es6.map');\nvar $export = require('./_export');\nvar shared = require('./_shared')('metadata');\nvar store = shared.store || (shared.store = new (require('./es6.weak-map'))());\n\nvar getOrCreateMetadataMap = function (target, targetKey, create) {\n var targetMetadata = store.get(target);\n if (!targetMetadata) {\n if (!create) return undefined;\n store.set(target, targetMetadata = new Map());\n }\n var keyMetadata = targetMetadata.get(targetKey);\n if (!keyMetadata) {\n if (!create) return undefined;\n targetMetadata.set(targetKey, keyMetadata = new Map());\n } return keyMetadata;\n};\nvar ordinaryHasOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? false : metadataMap.has(MetadataKey);\n};\nvar ordinaryGetOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);\n};\nvar ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) {\n getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);\n};\nvar ordinaryOwnMetadataKeys = function (target, targetKey) {\n var metadataMap = getOrCreateMetadataMap(target, targetKey, false);\n var keys = [];\n if (metadataMap) metadataMap.forEach(function (_, key) { keys.push(key); });\n return keys;\n};\nvar toMetaKey = function (it) {\n return it === undefined || typeof it == 'symbol' ? it : String(it);\n};\nvar exp = function (O) {\n $export($export.S, 'Reflect', O);\n};\n\nmodule.exports = {\n store: store,\n map: getOrCreateMetadataMap,\n has: ordinaryHasOwnMetadata,\n get: ordinaryGetOwnMetadata,\n set: ordinaryDefineOwnMetadata,\n keys: ordinaryOwnMetadataKeys,\n key: toMetaKey,\n exp: exp\n};\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","module.exports = false;\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","module.exports = {};\n","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","var $export = require('./_export');\nvar defined = require('./_defined');\nvar fails = require('./_fails');\nvar spaces = require('./_string-ws');\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n var exp = {};\n var FORCE = fails(function () {\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if (ALIAS) exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n string = String(defined(string));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;\n","exports.f = {}.propertyIsEnumerable;\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","exports.f = Object.getOwnPropertySymbols;\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","'use strict';\n\nvar classof = require('./_classof');\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n","'use strict';\nrequire('./es6.regexp.exec');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar wks = require('./_wks');\nvar regexpExec = require('./_regexp-exec');\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n var fixMethod = function (KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n // weak collections should not contains .clear method\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar uid = require('./_uid');\nvar TYPED = uid('typed_array');\nvar VIEW = uid('view');\nvar ABV = !!(global.ArrayBuffer && global.DataView);\nvar CONSTR = ABV;\nvar i = 0;\nvar l = 9;\nvar Typed;\n\nvar TypedArrayConstructors = (\n 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'\n).split(',');\n\nwhile (i < l) {\n if (Typed = global[TypedArrayConstructors[i++]]) {\n hide(Typed.prototype, TYPED, true);\n hide(Typed.prototype, VIEW, true);\n } else CONSTR = false;\n}\n\nmodule.exports = {\n ABV: ABV,\n CONSTR: CONSTR,\n TYPED: TYPED,\n VIEW: VIEW\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n","// 20.2.2.28 Math.sign(x)\nmodule.exports = Math.sign || function sign(x) {\n // eslint-disable-next-line no-self-compare\n return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n","// 20.2.2.14 Math.expm1(x)\nvar $expm1 = Math.expm1;\nmodule.exports = (!$expm1\n // Old FF bug\n || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168\n // Tor Browser bug\n || $expm1(-2e-17) != -2e-17\n) ? function expm1(x) {\n return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;\n} : $expm1;\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = require('./_is-regexp');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n","var MATCH = require('./_wks')('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var aLen = arguments.length;\n var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);\n var end = aLen > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","'use strict';\n\nvar regexpFlags = require('./_flags');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar at = require('./_string-at')(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n","'use strict';\nvar global = require('./_global');\nvar DESCRIPTORS = require('./_descriptors');\nvar LIBRARY = require('./_library');\nvar $typed = require('./_typed');\nvar hide = require('./_hide');\nvar redefineAll = require('./_redefine-all');\nvar fails = require('./_fails');\nvar anInstance = require('./_an-instance');\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nvar toIndex = require('./_to-index');\nvar gOPN = require('./_object-gopn').f;\nvar dP = require('./_object-dp').f;\nvar arrayFill = require('./_array-fill');\nvar setToStringTag = require('./_set-to-string-tag');\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length!';\nvar WRONG_INDEX = 'Wrong index!';\nvar $ArrayBuffer = global[ARRAY_BUFFER];\nvar $DataView = global[DATA_VIEW];\nvar Math = global.Math;\nvar RangeError = global.RangeError;\n// eslint-disable-next-line no-shadow-restricted-names\nvar Infinity = global.Infinity;\nvar BaseBuffer = $ArrayBuffer;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\nvar BUFFER = 'buffer';\nvar BYTE_LENGTH = 'byteLength';\nvar BYTE_OFFSET = 'byteOffset';\nvar $BUFFER = DESCRIPTORS ? '_b' : BUFFER;\nvar $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH;\nvar $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET;\n\n// IEEE754 conversions based on https://github.com/feross/ieee754\nfunction packIEEE754(value, mLen, nBytes) {\n var buffer = new Array(nBytes);\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var i = 0;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n var e, m, c;\n value = abs(value);\n // eslint-disable-next-line no-self-compare\n if (value != value || value === Infinity) {\n // eslint-disable-next-line no-self-compare\n m = value != value ? 1 : 0;\n e = eMax;\n } else {\n e = floor(log(value) / LN2);\n if (value * (c = pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * pow(2, eBias - 1) * pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8);\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8);\n buffer[--i] |= s * 128;\n return buffer;\n}\nfunction unpackIEEE754(buffer, mLen, nBytes) {\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = eLen - 7;\n var i = nBytes - 1;\n var s = buffer[i--];\n var e = s & 127;\n var m;\n s >>= 7;\n for (; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8);\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8);\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : s ? -Infinity : Infinity;\n } else {\n m = m + pow(2, mLen);\n e = e - eBias;\n } return (s ? -1 : 1) * m * pow(2, e - mLen);\n}\n\nfunction unpackI32(bytes) {\n return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];\n}\nfunction packI8(it) {\n return [it & 0xff];\n}\nfunction packI16(it) {\n return [it & 0xff, it >> 8 & 0xff];\n}\nfunction packI32(it) {\n return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff];\n}\nfunction packF64(it) {\n return packIEEE754(it, 52, 8);\n}\nfunction packF32(it) {\n return packIEEE754(it, 23, 4);\n}\n\nfunction addGetter(C, key, internal) {\n dP(C[PROTOTYPE], key, { get: function () { return this[internal]; } });\n}\n\nfunction get(view, bytes, index, isLittleEndian) {\n var numIndex = +index;\n var intIndex = toIndex(numIndex);\n if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b;\n var start = intIndex + view[$OFFSET];\n var pack = store.slice(start, start + bytes);\n return isLittleEndian ? pack : pack.reverse();\n}\nfunction set(view, bytes, index, conversion, value, isLittleEndian) {\n var numIndex = +index;\n var intIndex = toIndex(numIndex);\n if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b;\n var start = intIndex + view[$OFFSET];\n var pack = conversion(+value);\n for (var i = 0; i < bytes; i++) store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];\n}\n\nif (!$typed.ABV) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n this._b = arrayFill.call(new Array(byteLength), 0);\n this[$LENGTH] = byteLength;\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = buffer[$LENGTH];\n var offset = toInteger(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset!');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n this[$BUFFER] = buffer;\n this[$OFFSET] = offset;\n this[$LENGTH] = byteLength;\n };\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, BYTE_LENGTH, '_l');\n addGetter($DataView, BUFFER, '_b');\n addGetter($DataView, BYTE_LENGTH, '_l');\n addGetter($DataView, BYTE_OFFSET, '_o');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackI32(get(this, 4, byteOffset, arguments[1]));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packI8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packI8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packF32, value, arguments[2]);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packF64, value, arguments[2]);\n }\n });\n} else {\n if (!fails(function () {\n $ArrayBuffer(1);\n }) || !fails(function () {\n new $ArrayBuffer(-1); // eslint-disable-line no-new\n }) || fails(function () {\n new $ArrayBuffer(); // eslint-disable-line no-new\n new $ArrayBuffer(1.5); // eslint-disable-line no-new\n new $ArrayBuffer(NaN); // eslint-disable-line no-new\n return $ArrayBuffer.name != ARRAY_BUFFER;\n })) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new BaseBuffer(toIndex(length));\n };\n var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];\n for (var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, BaseBuffer[key]);\n }\n if (!LIBRARY) ArrayBufferProto.constructor = $ArrayBuffer;\n }\n // iOS Safari 7.x bug\n var view = new $DataView(new $ArrayBuffer(2));\n var $setInt8 = $DataView[PROTOTYPE].setInt8;\n view.setInt8(0, 2147483648);\n view.setInt8(1, 2147483649);\n if (view.getInt8(0) || !view.getInt8(1)) redefineAll($DataView[PROTOTYPE], {\n setInt8: function setInt8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, true);\n}\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\nhide($DataView[PROTOTYPE], $typed.VIEW, true);\nexports[ARRAY_BUFFER] = $ArrayBuffer;\nexports[DATA_VIEW] = $DataView;\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n","'use strict';\nvar toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n\nmodule.exports = function repeat(count) {\n var str = String(defined(this));\n var res = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError(\"Count can't be negative\");\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;\n return res;\n};\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","exports.f = require('./_wks');\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// 7.2.9 SameValue(x, y)\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","'use strict';\nvar aFunction = require('./_a-function');\nvar isObject = require('./_is-object');\nvar invoke = require('./_invoke');\nvar arraySlice = [].slice;\nvar factories = {};\n\nvar construct = function (F, len, args) {\n if (!(len in factories)) {\n for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');\n } return factories[len](F, args);\n};\n\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = arraySlice.call(arguments, 1);\n var bound = function (/* args... */) {\n var args = partArgs.concat(arraySlice.call(arguments));\n return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);\n };\n if (isObject(fn.prototype)) bound.prototype = fn.prototype;\n return bound;\n};\n","var $parseInt = require('./_global').parseInt;\nvar $trim = require('./_string-trim').trim;\nvar ws = require('./_string-ws');\nvar hex = /^[-+]?0[xX]/;\n\nmodule.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) {\n var string = $trim(String(str), 3);\n return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));\n} : $parseInt;\n","var $parseFloat = require('./_global').parseFloat;\nvar $trim = require('./_string-trim').trim;\n\nmodule.exports = 1 / $parseFloat(require('./_string-ws') + '-0') !== -Infinity ? function parseFloat(str) {\n var string = $trim(String(str), 3);\n var result = $parseFloat(string);\n return result === 0 && string.charAt(0) == '-' ? -0 : result;\n} : $parseFloat;\n","var cof = require('./_cof');\nmodule.exports = function (it, msg) {\n if (typeof it != 'number' && cof(it) != 'Number') throw TypeError(msg);\n return +it;\n};\n","// 20.1.2.3 Number.isInteger(number)\nvar isObject = require('./_is-object');\nvar floor = Math.floor;\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","// 20.2.2.20 Math.log1p(x)\nmodule.exports = Math.log1p || function log1p(x) {\n return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);\n};\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n","var aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar toLength = require('./_to-length');\n\nmodule.exports = function (that, callbackfn, aLen, memo, isRight) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IObject(O);\n var length = toLength(O.length);\n var index = isRight ? length - 1 : 0;\n var i = isRight ? -1 : 1;\n if (aLen < 2) for (;;) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (isRight ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;isRight ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n};\n","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\n\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","'use strict';\nvar regexpExec = require('./_regexp-exec');\nrequire('./_export')({\n target: 'RegExp',\n proto: true,\n forced: regexpExec !== /./.exec\n}, {\n exec: regexpExec\n});\n","// 21.2.5.3 get RegExp.prototype.flags()\nif (require('./_descriptors') && /./g.flags != 'g') require('./_object-dp').f(RegExp.prototype, 'flags', {\n configurable: true,\n get: require('./_flags')\n});\n","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n var promise = Promise.resolve(undefined);\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar MAP = 'Map';\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')(MAP, function (get) {\n return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = strong.getEntry(validate(this, MAP), key);\n return entry && entry.v;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);\n }\n}, strong, true);\n","'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return that._i[index];\n // frozen object case\n for (entry = that._f; entry; entry = entry.n) {\n if (entry.k == key) return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n entry.r = true;\n if (entry.p) entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = validate(this, NAME);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.n;\n var prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if (prev) prev.n = next;\n if (next) next.p = prev;\n if (that._f == entry) that._f = next;\n if (that._l == entry) that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n validate(this, NAME);\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.n : this._f) {\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(validate(this, NAME), key);\n }\n });\n if (DESCRIPTORS) dP(C.prototype, 'size', {\n get: function () {\n return validate(this, NAME)[SIZE];\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var entry = getEntry(that, key);\n var prev, index;\n // change existing entry\n if (entry) {\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if (!that._f) that._f = entry;\n if (prev) prev.n = entry;\n that[SIZE]++;\n // add to index\n if (index !== 'F') that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function (C, NAME, IS_MAP) {\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function (iterated, kind) {\n this._t = validate(iterated, NAME); // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function () {\n var that = this;\n var kind = that._k;\n var entry = that._l;\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n // get next entry\n if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if (kind == 'keys') return step(0, entry.k);\n if (kind == 'values') return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar SET = 'Set';\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')(SET, function (get) {\n return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);\n }\n}, strong);\n","'use strict';\nvar each = require('./_array-methods')(0);\nvar redefine = require('./_redefine');\nvar meta = require('./_meta');\nvar assign = require('./_object-assign');\nvar weak = require('./_collection-weak');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar validate = require('./_validate-collection');\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar tmp = {};\nvar InternalMap;\n\nvar wrapper = function (get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n if (isObject(key)) {\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif (fails(function () { return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; })) {\n InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function (key) {\n var proto = $WeakMap.prototype;\n var method = proto[key];\n redefine(proto, key, function (a, b) {\n // store frozen objects on internal weakmap shim\n if (isObject(a) && !isExtensible(a)) {\n if (!this._f) this._f = new InternalMap();\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}\n","'use strict';\nvar redefineAll = require('./_redefine-all');\nvar getWeak = require('./_meta').getWeak;\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar createArrayMethod = require('./_array-methods');\nvar $has = require('./_has');\nvar validate = require('./_validate-collection');\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function () {\n this.a = [];\n};\nvar findUncaughtFrozen = function (store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function (key) {\n var index = arrayFindIndex(this.a, function (it) {\n return it[0] === key;\n });\n if (~index) this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n","// https://tc39.github.io/ecma262/#sec-toindex\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length!');\n return length;\n};\n","// all object keys, includes non-enumerable and symbols\nvar gOPN = require('./_object-gopn');\nvar gOPS = require('./_object-gops');\nvar anObject = require('./_an-object');\nvar Reflect = require('./_global').Reflect;\nmodule.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {\n var keys = gOPN.f(anObject(it));\n var getSymbols = gOPS.f;\n return getSymbols ? keys.concat(getSymbols(it)) : keys;\n};\n","// 20.2.2.16 Math.fround(x)\nvar sign = require('./_math-sign');\nvar pow = Math.pow;\nvar EPSILON = pow(2, -52);\nvar EPSILON32 = pow(2, -23);\nvar MAX32 = pow(2, 127) * (2 - EPSILON32);\nvar MIN32 = pow(2, -126);\n\nvar roundTiesToEven = function (n) {\n return n + 1 / EPSILON - 1 / EPSILON;\n};\n\nmodule.exports = Math.fround || function fround(x) {\n var $abs = Math.abs(x);\n var $sign = sign(x);\n var a, result;\n if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;\n a = (1 + EPSILON32 / EPSILON) * $abs;\n result = a - (a - $abs);\n // eslint-disable-next-line no-self-compare\n if (result > MAX32 || result != result) return $sign * Infinity;\n return $sign * result;\n};\n","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var forOf = require('./_for-of');\n\nmodule.exports = function (iter, ITERATOR) {\n var result = [];\n forOf(iter, false, result.push, result, ITERATOR);\n return result;\n};\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","var $export = require('./_export');\n// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperties: require('./_object-dps') });\n","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n","// 19.1.2.7 Object.getOwnPropertyNames(O)\nrequire('./_object-sap')('getOwnPropertyNames', function () {\n return require('./_object-gopn-ext').f;\n});\n","// 19.1.2.5 Object.freeze(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('freeze', function ($freeze) {\n return function freeze(it) {\n return $freeze && isObject(it) ? $freeze(meta(it)) : it;\n };\n});\n","// 19.1.2.17 Object.seal(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('seal', function ($seal) {\n return function seal(it) {\n return $seal && isObject(it) ? $seal(meta(it)) : it;\n };\n});\n","// 19.1.2.15 Object.preventExtensions(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('preventExtensions', function ($preventExtensions) {\n return function preventExtensions(it) {\n return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;\n };\n});\n","// 19.1.2.12 Object.isFrozen(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isFrozen', function ($isFrozen) {\n return function isFrozen(it) {\n return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;\n };\n});\n","// 19.1.2.13 Object.isSealed(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isSealed', function ($isSealed) {\n return function isSealed(it) {\n return isObject(it) ? $isSealed ? $isSealed(it) : false : true;\n };\n});\n","// 19.1.2.11 Object.isExtensible(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isExtensible', function ($isExtensible) {\n return function isExtensible(it) {\n return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;\n };\n});\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","// 19.1.3.10 Object.is(value1, value2)\nvar $export = require('./_export');\n$export($export.S, 'Object', { is: require('./_same-value') });\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n","// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)\nvar $export = require('./_export');\n\n$export($export.P, 'Function', { bind: require('./_bind') });\n","var dP = require('./_object-dp').f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || require('./_descriptors') && dP(FProto, NAME, {\n configurable: true,\n get: function () {\n try {\n return ('' + this).match(nameRE)[1];\n } catch (e) {\n return '';\n }\n }\n});\n","'use strict';\nvar isObject = require('./_is-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar HAS_INSTANCE = require('./_wks')('hasInstance');\nvar FunctionProto = Function.prototype;\n// 19.2.3.6 Function.prototype[@@hasInstance](V)\nif (!(HAS_INSTANCE in FunctionProto)) require('./_object-dp').f(FunctionProto, HAS_INSTANCE, { value: function (O) {\n if (typeof this != 'function' || !isObject(O)) return false;\n if (!isObject(this.prototype)) return O instanceof this;\n // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:\n while (O = getPrototypeOf(O)) if (this.prototype === O) return true;\n return false;\n} });\n","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 18.2.5 parseInt(string, radix)\n$export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt });\n","var $export = require('./_export');\nvar $parseFloat = require('./_parse-float');\n// 18.2.4 parseFloat(string)\n$export($export.G + $export.F * (parseFloat != $parseFloat), { parseFloat: $parseFloat });\n","'use strict';\nvar global = require('./_global');\nvar has = require('./_has');\nvar cof = require('./_cof');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar toPrimitive = require('./_to-primitive');\nvar fails = require('./_fails');\nvar gOPN = require('./_object-gopn').f;\nvar gOPD = require('./_object-gopd').f;\nvar dP = require('./_object-dp').f;\nvar $trim = require('./_string-trim').trim;\nvar NUMBER = 'Number';\nvar $Number = global[NUMBER];\nvar Base = $Number;\nvar proto = $Number.prototype;\n// Opera ~12 has broken Object#toString\nvar BROKEN_COF = cof(require('./_object-create')(proto)) == NUMBER;\nvar TRIM = 'trim' in String.prototype;\n\n// 7.1.3 ToNumber(argument)\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n if (typeof it == 'string' && it.length > 2) {\n it = TRIM ? it.trim() : $trim(it, 3);\n var first = it.charCodeAt(0);\n var third, radix, maxCode;\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i\n default: return +it;\n }\n for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {\n code = digits.charCodeAt(i);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nif (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {\n $Number = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var that = this;\n return that instanceof $Number\n // check on 1..constructor(foo) case\n && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)\n ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);\n };\n for (var keys = require('./_descriptors') ? gOPN(Base) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES6 (in case, if modules with ES6 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(Base, key = keys[j]) && !has($Number, key)) {\n dP($Number, key, gOPD(Base, key));\n }\n }\n $Number.prototype = proto;\n proto.constructor = $Number;\n require('./_redefine')(global, NUMBER, $Number);\n}\n","'use strict';\nvar $export = require('./_export');\nvar toInteger = require('./_to-integer');\nvar aNumberValue = require('./_a-number-value');\nvar repeat = require('./_string-repeat');\nvar $toFixed = 1.0.toFixed;\nvar floor = Math.floor;\nvar data = [0, 0, 0, 0, 0, 0];\nvar ERROR = 'Number.toFixed: incorrect invocation!';\nvar ZERO = '0';\n\nvar multiply = function (n, c) {\n var i = -1;\n var c2 = c;\n while (++i < 6) {\n c2 += n * data[i];\n data[i] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\nvar divide = function (n) {\n var i = 6;\n var c = 0;\n while (--i >= 0) {\n c += data[i];\n data[i] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\nvar numToString = function () {\n var i = 6;\n var s = '';\n while (--i >= 0) {\n if (s !== '' || i === 0 || data[i] !== 0) {\n var t = String(data[i]);\n s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;\n }\n } return s;\n};\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\n$export($export.P + $export.F * (!!$toFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !require('./_fails')(function () {\n // V8 ~ Android 4.3-\n $toFixed.call({});\n})), 'Number', {\n toFixed: function toFixed(fractionDigits) {\n var x = aNumberValue(this, ERROR);\n var f = toInteger(fractionDigits);\n var s = '';\n var m = ZERO;\n var e, z, j, k;\n if (f < 0 || f > 20) throw RangeError(ERROR);\n // eslint-disable-next-line no-self-compare\n if (x != x) return 'NaN';\n if (x <= -1e21 || x >= 1e21) return String(x);\n if (x < 0) {\n s = '-';\n x = -x;\n }\n if (x > 1e-21) {\n e = log(x * pow(2, 69, 1)) - 69;\n z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = f;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n m = numToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n m = numToString() + repeat.call(ZERO, f);\n }\n }\n if (f > 0) {\n k = m.length;\n m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));\n } else {\n m = s + m;\n } return m;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $fails = require('./_fails');\nvar aNumberValue = require('./_a-number-value');\nvar $toPrecision = 1.0.toPrecision;\n\n$export($export.P + $export.F * ($fails(function () {\n // IE7-\n return $toPrecision.call(1, undefined) !== '1';\n}) || !$fails(function () {\n // V8 ~ Android 4.3-\n $toPrecision.call({});\n})), 'Number', {\n toPrecision: function toPrecision(precision) {\n var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');\n return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);\n }\n});\n","// 20.1.2.1 Number.EPSILON\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { EPSILON: Math.pow(2, -52) });\n","// 20.1.2.2 Number.isFinite(number)\nvar $export = require('./_export');\nvar _isFinite = require('./_global').isFinite;\n\n$export($export.S, 'Number', {\n isFinite: function isFinite(it) {\n return typeof it == 'number' && _isFinite(it);\n }\n});\n","// 20.1.2.3 Number.isInteger(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { isInteger: require('./_is-integer') });\n","// 20.1.2.4 Number.isNaN(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare\n return number != number;\n }\n});\n","// 20.1.2.5 Number.isSafeInteger(number)\nvar $export = require('./_export');\nvar isInteger = require('./_is-integer');\nvar abs = Math.abs;\n\n$export($export.S, 'Number', {\n isSafeInteger: function isSafeInteger(number) {\n return isInteger(number) && abs(number) <= 0x1fffffffffffff;\n }\n});\n","// 20.1.2.6 Number.MAX_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff });\n","// 20.1.2.10 Number.MIN_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff });\n","var $export = require('./_export');\nvar $parseFloat = require('./_parse-float');\n// 20.1.2.12 Number.parseFloat(string)\n$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat });\n","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 20.1.2.13 Number.parseInt(string, radix)\n$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt });\n","// 20.2.2.3 Math.acosh(x)\nvar $export = require('./_export');\nvar log1p = require('./_math-log1p');\nvar sqrt = Math.sqrt;\nvar $acosh = Math.acosh;\n\n$export($export.S + $export.F * !($acosh\n // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n && Math.floor($acosh(Number.MAX_VALUE)) == 710\n // Tor Browser bug: Math.acosh(Infinity) -> NaN\n && $acosh(Infinity) == Infinity\n), 'Math', {\n acosh: function acosh(x) {\n return (x = +x) < 1 ? NaN : x > 94906265.62425156\n ? Math.log(x) + Math.LN2\n : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));\n }\n});\n","// 20.2.2.5 Math.asinh(x)\nvar $export = require('./_export');\nvar $asinh = Math.asinh;\n\nfunction asinh(x) {\n return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));\n}\n\n// Tor Browser bug: Math.asinh(0) -> -0\n$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh });\n","// 20.2.2.7 Math.atanh(x)\nvar $export = require('./_export');\nvar $atanh = Math.atanh;\n\n// Tor Browser bug: Math.atanh(-0) -> 0\n$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {\n atanh: function atanh(x) {\n return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;\n }\n});\n","// 20.2.2.9 Math.cbrt(x)\nvar $export = require('./_export');\nvar sign = require('./_math-sign');\n\n$export($export.S, 'Math', {\n cbrt: function cbrt(x) {\n return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);\n }\n});\n","// 20.2.2.11 Math.clz32(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n clz32: function clz32(x) {\n return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;\n }\n});\n","// 20.2.2.12 Math.cosh(x)\nvar $export = require('./_export');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n cosh: function cosh(x) {\n return (exp(x = +x) + exp(-x)) / 2;\n }\n});\n","// 20.2.2.14 Math.expm1(x)\nvar $export = require('./_export');\nvar $expm1 = require('./_math-expm1');\n\n$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 });\n","// 20.2.2.16 Math.fround(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { fround: require('./_math-fround') });\n","// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])\nvar $export = require('./_export');\nvar abs = Math.abs;\n\n$export($export.S, 'Math', {\n hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * Math.sqrt(sum);\n }\n});\n","// 20.2.2.18 Math.imul(x, y)\nvar $export = require('./_export');\nvar $imul = Math.imul;\n\n// some WebKit versions fails with big numbers, some has wrong arity\n$export($export.S + $export.F * require('./_fails')(function () {\n return $imul(0xffffffff, 5) != -5 || $imul.length != 2;\n}), 'Math', {\n imul: function imul(x, y) {\n var UINT16 = 0xffff;\n var xn = +x;\n var yn = +y;\n var xl = UINT16 & xn;\n var yl = UINT16 & yn;\n return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n }\n});\n","// 20.2.2.21 Math.log10(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log10: function log10(x) {\n return Math.log(x) * Math.LOG10E;\n }\n});\n","// 20.2.2.20 Math.log1p(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { log1p: require('./_math-log1p') });\n","// 20.2.2.22 Math.log2(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log2: function log2(x) {\n return Math.log(x) / Math.LN2;\n }\n});\n","// 20.2.2.28 Math.sign(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { sign: require('./_math-sign') });\n","// 20.2.2.30 Math.sinh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n// V8 near Chromium 38 has a problem with very small numbers\n$export($export.S + $export.F * require('./_fails')(function () {\n return !Math.sinh(-2e-17) != -2e-17;\n}), 'Math', {\n sinh: function sinh(x) {\n return Math.abs(x = +x) < 1\n ? (expm1(x) - expm1(-x)) / 2\n : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);\n }\n});\n","// 20.2.2.33 Math.tanh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n tanh: function tanh(x) {\n var a = expm1(x = +x);\n var b = expm1(-x);\n return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));\n }\n});\n","// 20.2.2.34 Math.trunc(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n trunc: function trunc(it) {\n return (it > 0 ? Math.floor : Math.ceil)(it);\n }\n});\n","var $export = require('./_export');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar fromCharCode = String.fromCharCode;\nvar $fromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\n$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n // 21.1.2.2 String.fromCodePoint(...codePoints)\n fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n var res = [];\n var aLen = arguments.length;\n var i = 0;\n var code;\n while (aLen > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');\n res.push(code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)\n );\n } return res.join('');\n }\n});\n","var $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\n\n$export($export.S, 'String', {\n // 21.1.2.4 String.raw(callSite, ...substitutions)\n raw: function raw(callSite) {\n var tpl = toIObject(callSite.raw);\n var len = toLength(tpl.length);\n var aLen = arguments.length;\n var res = [];\n var i = 0;\n while (len > i) {\n res.push(String(tpl[i++]));\n if (i < aLen) res.push(String(arguments[i]));\n } return res.join('');\n }\n});\n","'use strict';\n// 21.1.3.25 String.prototype.trim()\nrequire('./_string-trim')('trim', function ($trim) {\n return function trim() {\n return $trim(this, 3);\n };\n});\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\nvar $export = require('./_export');\nvar $at = require('./_string-at')(false);\n$export($export.P, 'String', {\n // 21.1.3.3 String.prototype.codePointAt(pos)\n codePointAt: function codePointAt(pos) {\n return $at(this, pos);\n }\n});\n","// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar ENDS_WITH = 'endsWith';\nvar $endsWith = ''[ENDS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(ENDS_WITH), 'String', {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = context(this, searchString, ENDS_WITH);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n'use strict';\nvar $export = require('./_export');\nvar context = require('./_string-context');\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var $export = require('./_export');\n\n$export($export.P, 'String', {\n // 21.1.3.13 String.prototype.repeat(count)\n repeat: require('./_string-repeat')\n});\n","// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","'use strict';\n// B.2.3.2 String.prototype.anchor(name)\nrequire('./_string-html')('anchor', function (createHTML) {\n return function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n };\n});\n","'use strict';\n// B.2.3.3 String.prototype.big()\nrequire('./_string-html')('big', function (createHTML) {\n return function big() {\n return createHTML(this, 'big', '', '');\n };\n});\n","'use strict';\n// B.2.3.4 String.prototype.blink()\nrequire('./_string-html')('blink', function (createHTML) {\n return function blink() {\n return createHTML(this, 'blink', '', '');\n };\n});\n","'use strict';\n// B.2.3.5 String.prototype.bold()\nrequire('./_string-html')('bold', function (createHTML) {\n return function bold() {\n return createHTML(this, 'b', '', '');\n };\n});\n","'use strict';\n// B.2.3.6 String.prototype.fixed()\nrequire('./_string-html')('fixed', function (createHTML) {\n return function fixed() {\n return createHTML(this, 'tt', '', '');\n };\n});\n","'use strict';\n// B.2.3.7 String.prototype.fontcolor(color)\nrequire('./_string-html')('fontcolor', function (createHTML) {\n return function fontcolor(color) {\n return createHTML(this, 'font', 'color', color);\n };\n});\n","'use strict';\n// B.2.3.8 String.prototype.fontsize(size)\nrequire('./_string-html')('fontsize', function (createHTML) {\n return function fontsize(size) {\n return createHTML(this, 'font', 'size', size);\n };\n});\n","'use strict';\n// B.2.3.9 String.prototype.italics()\nrequire('./_string-html')('italics', function (createHTML) {\n return function italics() {\n return createHTML(this, 'i', '', '');\n };\n});\n","'use strict';\n// B.2.3.10 String.prototype.link(url)\nrequire('./_string-html')('link', function (createHTML) {\n return function link(url) {\n return createHTML(this, 'a', 'href', url);\n };\n});\n","'use strict';\n// B.2.3.11 String.prototype.small()\nrequire('./_string-html')('small', function (createHTML) {\n return function small() {\n return createHTML(this, 'small', '', '');\n };\n});\n","'use strict';\n// B.2.3.12 String.prototype.strike()\nrequire('./_string-html')('strike', function (createHTML) {\n return function strike() {\n return createHTML(this, 'strike', '', '');\n };\n});\n","'use strict';\n// B.2.3.13 String.prototype.sub()\nrequire('./_string-html')('sub', function (createHTML) {\n return function sub() {\n return createHTML(this, 'sub', '', '');\n };\n});\n","'use strict';\n// B.2.3.14 String.prototype.sup()\nrequire('./_string-html')('sup', function (createHTML) {\n return function sup() {\n return createHTML(this, 'sup', '', '');\n };\n});\n","// 20.3.3.1 / 15.9.4.4 Date.now()\nvar $export = require('./_export');\n\n$export($export.S, 'Date', { now: function () { return new Date().getTime(); } });\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar toPrimitive = require('./_to-primitive');\n\n$export($export.P + $export.F * require('./_fails')(function () {\n return new Date(NaN).toJSON() !== null\n || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;\n}), 'Date', {\n // eslint-disable-next-line no-unused-vars\n toJSON: function toJSON(key) {\n var O = toObject(this);\n var pv = toPrimitive(O);\n return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();\n }\n});\n","// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar $export = require('./_export');\nvar toISOString = require('./_date-to-iso-string');\n\n// PhantomJS / old WebKit has a broken implementations\n$export($export.P + $export.F * (Date.prototype.toISOString !== toISOString), 'Date', {\n toISOString: toISOString\n});\n","'use strict';\n// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar fails = require('./_fails');\nvar getTime = Date.prototype.getTime;\nvar $toISOString = Date.prototype.toISOString;\n\nvar lz = function (num) {\n return num > 9 ? num : '0' + num;\n};\n\n// PhantomJS / old WebKit has a broken implementations\nmodule.exports = (fails(function () {\n return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';\n}) || !fails(function () {\n $toISOString.call(new Date(NaN));\n})) ? function toISOString() {\n if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value');\n var d = this;\n var y = d.getUTCFullYear();\n var m = d.getUTCMilliseconds();\n var s = y < 0 ? '-' : y > 9999 ? '+' : '';\n return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +\n '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +\n 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +\n ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';\n} : $toISOString;\n","var DateProto = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar $toString = DateProto[TO_STRING];\nvar getTime = DateProto.getTime;\nif (new Date(NaN) + '' != INVALID_DATE) {\n require('./_redefine')(DateProto, TO_STRING, function toString() {\n var value = getTime.call(this);\n // eslint-disable-next-line no-self-compare\n return value === value ? $toString.call(this) : INVALID_DATE;\n });\n}\n","var TO_PRIMITIVE = require('./_wks')('toPrimitive');\nvar proto = Date.prototype;\n\nif (!(TO_PRIMITIVE in proto)) require('./_hide')(proto, TO_PRIMITIVE, require('./_date-to-primitive'));\n","'use strict';\nvar anObject = require('./_an-object');\nvar toPrimitive = require('./_to-primitive');\nvar NUMBER = 'number';\n\nmodule.exports = function (hint) {\n if (hint !== 'string' && hint !== NUMBER && hint !== 'default') throw TypeError('Incorrect hint');\n return toPrimitive(anObject(this), hint != NUMBER);\n};\n","// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = require('./_export');\n\n$export($export.S, 'Array', { isArray: require('./_is-array') });\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar createProperty = require('./_create-property');\n\n// WebKit Array.of isn't generic\n$export($export.S + $export.F * require('./_fails')(function () {\n function F() { /* empty */ }\n return !(Array.of.call(F) instanceof F);\n}), 'Array', {\n // 22.1.2.3 Array.of( ...items)\n of: function of(/* ...args */) {\n var index = 0;\n var aLen = arguments.length;\n var result = new (typeof this == 'function' ? this : Array)(aLen);\n while (aLen > index) createProperty(result, index, arguments[index++]);\n result.length = aLen;\n return result;\n }\n});\n","'use strict';\n// 22.1.3.13 Array.prototype.join(separator)\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar arrayJoin = [].join;\n\n// fallback for not array-like strings\n$export($export.P + $export.F * (require('./_iobject') != Object || !require('./_strict-method')(arrayJoin)), 'Array', {\n join: function join(separator) {\n return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar html = require('./_html');\nvar cof = require('./_cof');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nvar arraySlice = [].slice;\n\n// fallback for not array-like ES3 strings and DOM objects\n$export($export.P + $export.F * require('./_fails')(function () {\n if (html) arraySlice.call(html);\n}), 'Array', {\n slice: function slice(begin, end) {\n var len = toLength(this.length);\n var klass = cof(this);\n end = end === undefined ? len : end;\n if (klass == 'Array') return arraySlice.call(this, begin, end);\n var start = toAbsoluteIndex(begin, len);\n var upTo = toAbsoluteIndex(end, len);\n var size = toLength(upTo - start);\n var cloned = new Array(size);\n var i = 0;\n for (; i < size; i++) cloned[i] = klass == 'String'\n ? this.charAt(start + i)\n : this[start + i];\n return cloned;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar fails = require('./_fails');\nvar $sort = [].sort;\nvar test = [1, 2, 3];\n\n$export($export.P + $export.F * (fails(function () {\n // IE8-\n test.sort(undefined);\n}) || !fails(function () {\n // V8 bug\n test.sort(null);\n // Old WebKit\n}) || !require('./_strict-method')($sort)), 'Array', {\n // 22.1.3.25 Array.prototype.sort(comparefn)\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? $sort.call(toObject(this))\n : $sort.call(toObject(this), aFunction(comparefn));\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $forEach = require('./_array-methods')(0);\nvar STRICT = require('./_strict-method')([].forEach, true);\n\n$export($export.P + $export.F * !STRICT, 'Array', {\n // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])\n forEach: function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments[1]);\n }\n});\n","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","'use strict';\nvar $export = require('./_export');\nvar $map = require('./_array-methods')(1);\n\n$export($export.P + $export.F * !require('./_strict-method')([].map, true), 'Array', {\n // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $filter = require('./_array-methods')(2);\n\n$export($export.P + $export.F * !require('./_strict-method')([].filter, true), 'Array', {\n // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $some = require('./_array-methods')(3);\n\n$export($export.P + $export.F * !require('./_strict-method')([].some, true), 'Array', {\n // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $every = require('./_array-methods')(4);\n\n$export($export.P + $export.F * !require('./_strict-method')([].every, true), 'Array', {\n // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])\n every: function every(callbackfn /* , thisArg */) {\n return $every(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduce, true), 'Array', {\n // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], false);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduceRight, true), 'Array', {\n // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])\n reduceRight: function reduceRight(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], true);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $indexOf = require('./_array-includes')(false);\nvar $native = [].indexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? $native.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nvar $native = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])\n lastIndexOf: function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0;\n var O = toIObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O) if (O[index] === searchElement) return index || 0;\n return -1;\n }\n});\n","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { copyWithin: require('./_array-copy-within') });\n\nrequire('./_add-to-unscopables')('copyWithin');\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { fill: require('./_array-fill') });\n\nrequire('./_add-to-unscopables')('fill');\n","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(5);\nvar KEY = 'find';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","'use strict';\n// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(6);\nvar KEY = 'findIndex';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","require('./_set-species')('Array');\n","var global = require('./_global');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar dP = require('./_object-dp').f;\nvar gOPN = require('./_object-gopn').f;\nvar isRegExp = require('./_is-regexp');\nvar $flags = require('./_flags');\nvar $RegExp = global.RegExp;\nvar Base = $RegExp;\nvar proto = $RegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n// \"new\" creates a new object, old webkit buggy here\nvar CORRECT_NEW = new $RegExp(re1) !== re1;\n\nif (require('./_descriptors') && (!CORRECT_NEW || require('./_fails')(function () {\n re2[require('./_wks')('match')] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';\n}))) {\n $RegExp = function RegExp(p, f) {\n var tiRE = this instanceof $RegExp;\n var piRE = isRegExp(p);\n var fiU = f === undefined;\n return !tiRE && piRE && p.constructor === $RegExp && fiU ? p\n : inheritIfRequired(CORRECT_NEW\n ? new Base(piRE && !fiU ? p.source : p, f)\n : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)\n , tiRE ? this : proto, $RegExp);\n };\n var proxy = function (key) {\n key in $RegExp || dP($RegExp, key, {\n configurable: true,\n get: function () { return Base[key]; },\n set: function (it) { Base[key] = it; }\n });\n };\n for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);\n proto.constructor = $RegExp;\n $RegExp.prototype = proto;\n require('./_redefine')(global, 'RegExp', $RegExp);\n}\n\nrequire('./_set-species')('RegExp');\n","'use strict';\nrequire('./es6.regexp.flags');\nvar anObject = require('./_an-object');\nvar $flags = require('./_flags');\nvar DESCRIPTORS = require('./_descriptors');\nvar TO_STRING = 'toString';\nvar $toString = /./[TO_STRING];\n\nvar define = function (fn) {\n require('./_redefine')(RegExp.prototype, TO_STRING, fn, true);\n};\n\n// 21.2.5.14 RegExp.prototype.toString()\nif (require('./_fails')(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {\n define(function toString() {\n var R = anObject(this);\n return '/'.concat(R.source, '/',\n 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);\n });\n// FF44- RegExp#toString has a wrong name\n} else if ($toString.name != TO_STRING) {\n define(function toString() {\n return $toString.call(this);\n });\n}\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@match logic\nrequire('./_fix-re-wks')('match', 1, function (defined, MATCH, $match, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[MATCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative($match, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n if (!rx.global) return regExpExec(rx, S);\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar toInteger = require('./_to-integer');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nrequire('./_fix-re-wks')('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative($replace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return $replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar sameValue = require('./_same-value');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@search logic\nrequire('./_fix-re-wks')('search', 1, function (defined, SEARCH, $search, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[SEARCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative($search, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","'use strict';\n\nvar isRegExp = require('./_is-regexp');\nvar anObject = require('./_an-object');\nvar speciesConstructor = require('./_species-constructor');\nvar advanceStringIndex = require('./_advance-string-index');\nvar toLength = require('./_to-length');\nvar callRegExpExec = require('./_regexp-exec-abstract');\nvar regexpExec = require('./_regexp-exec');\nvar $min = Math.min;\nvar $push = [].push;\nvar $SPLIT = 'split';\nvar LENGTH = 'length';\nvar LAST_INDEX = 'lastIndex';\n\n// eslint-disable-next-line no-empty\nvar SUPPORTS_Y = !!(function () { try { return new RegExp('x', 'y'); } catch (e) {} })();\n\n// @@split logic\nrequire('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n ''[$SPLIT](/.?/)[LENGTH]\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(this);\n if (separator === undefined && limit === 0) return [];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) return $split.call(string, separator, limit);\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n var splitLimit = limit === undefined ? 4294967295 : limit >>> 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy[LAST_INDEX];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if (output[LENGTH] >= splitLimit) break;\n }\n if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n }\n if (lastLastIndex === string[LENGTH]) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);\n };\n } else {\n internalSplit = $split;\n }\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = defined(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? 0xffffffff : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n});\n","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar userAgent = require('./_user-agent');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function')\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n","'use strict';\nvar weak = require('./_collection-weak');\nvar validate = require('./_validate-collection');\nvar WEAK_SET = 'WeakSet';\n\n// 23.4 WeakSet Objects\nrequire('./_collection')(WEAK_SET, function (get) {\n return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value) {\n return weak.def(validate(this, WEAK_SET), value, true);\n }\n}, weak, false, true);\n","'use strict';\nvar $export = require('./_export');\nvar $typed = require('./_typed');\nvar buffer = require('./_typed-buffer');\nvar anObject = require('./_an-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nvar isObject = require('./_is-object');\nvar ArrayBuffer = require('./_global').ArrayBuffer;\nvar speciesConstructor = require('./_species-constructor');\nvar $ArrayBuffer = buffer.ArrayBuffer;\nvar $DataView = buffer.DataView;\nvar $isView = $typed.ABV && ArrayBuffer.isView;\nvar $slice = $ArrayBuffer.prototype.slice;\nvar VIEW = $typed.VIEW;\nvar ARRAY_BUFFER = 'ArrayBuffer';\n\n$export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), { ArrayBuffer: $ArrayBuffer });\n\n$export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {\n // 24.1.3.1 ArrayBuffer.isView(arg)\n isView: function isView(it) {\n return $isView && $isView(it) || isObject(it) && VIEW in it;\n }\n});\n\n$export($export.P + $export.U + $export.F * require('./_fails')(function () {\n return !new $ArrayBuffer(2).slice(1, undefined).byteLength;\n}), ARRAY_BUFFER, {\n // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)\n slice: function slice(start, end) {\n if ($slice !== undefined && end === undefined) return $slice.call(anObject(this), start); // FF fix\n var len = anObject(this).byteLength;\n var first = toAbsoluteIndex(start, len);\n var fin = toAbsoluteIndex(end === undefined ? len : end, len);\n var result = new (speciesConstructor(this, $ArrayBuffer))(toLength(fin - first));\n var viewS = new $DataView(this);\n var viewT = new $DataView(result);\n var index = 0;\n while (first < fin) {\n viewT.setUint8(index++, viewS.getUint8(first++));\n } return result;\n }\n});\n\nrequire('./_set-species')(ARRAY_BUFFER);\n","var $export = require('./_export');\n$export($export.G + $export.W + $export.F * !require('./_typed').ABV, {\n DataView: require('./_typed-buffer').DataView\n});\n","require('./_typed-array')('Int8', 1, function (init) {\n return function Int8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint8', 1, function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint8', 1, function (init) {\n return function Uint8ClampedArray(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n}, true);\n","require('./_typed-array')('Int16', 2, function (init) {\n return function Int16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint16', 2, function (init) {\n return function Uint16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Int32', 4, function (init) {\n return function Int32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint32', 4, function (init) {\n return function Uint32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Float32', 4, function (init) {\n return function Float32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Float64', 8, function (init) {\n return function Float64Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar rApply = (require('./_global').Reflect || {}).apply;\nvar fApply = Function.apply;\n// MS Edge argumentsList argument is optional\n$export($export.S + $export.F * !require('./_fails')(function () {\n rApply(function () { /* empty */ });\n}), 'Reflect', {\n apply: function apply(target, thisArgument, argumentsList) {\n var T = aFunction(target);\n var L = anObject(argumentsList);\n return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);\n }\n});\n","// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])\nvar $export = require('./_export');\nvar create = require('./_object-create');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar bind = require('./_bind');\nvar rConstruct = (require('./_global').Reflect || {}).construct;\n\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n rConstruct(function () { /* empty */ });\n});\n\n$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)\nvar dP = require('./_object-dp');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar toPrimitive = require('./_to-primitive');\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\n$export($export.S + $export.F * require('./_fails')(function () {\n // eslint-disable-next-line no-undef\n Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 });\n}), 'Reflect', {\n defineProperty: function defineProperty(target, propertyKey, attributes) {\n anObject(target);\n propertyKey = toPrimitive(propertyKey, true);\n anObject(attributes);\n try {\n dP.f(target, propertyKey, attributes);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.4 Reflect.deleteProperty(target, propertyKey)\nvar $export = require('./_export');\nvar gOPD = require('./_object-gopd').f;\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n deleteProperty: function deleteProperty(target, propertyKey) {\n var desc = gOPD(anObject(target), propertyKey);\n return desc && !desc.configurable ? false : delete target[propertyKey];\n }\n});\n","'use strict';\n// 26.1.5 Reflect.enumerate(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar Enumerate = function (iterated) {\n this._t = anObject(iterated); // target\n this._i = 0; // next index\n var keys = this._k = []; // keys\n var key;\n for (key in iterated) keys.push(key);\n};\nrequire('./_iter-create')(Enumerate, 'Object', function () {\n var that = this;\n var keys = that._k;\n var key;\n do {\n if (that._i >= keys.length) return { value: undefined, done: true };\n } while (!((key = keys[that._i++]) in that._t));\n return { value: key, done: false };\n});\n\n$export($export.S, 'Reflect', {\n enumerate: function enumerate(target) {\n return new Enumerate(target);\n }\n});\n","// 26.1.6 Reflect.get(target, propertyKey [, receiver])\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\n\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var desc, proto;\n if (anObject(target) === receiver) return target[propertyKey];\n if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value')\n ? desc.value\n : desc.get !== undefined\n ? desc.get.call(receiver)\n : undefined;\n if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);\n}\n\n$export($export.S, 'Reflect', { get: get });\n","// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)\nvar gOPD = require('./_object-gopd');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n return gOPD.f(anObject(target), propertyKey);\n }\n});\n","// 26.1.8 Reflect.getPrototypeOf(target)\nvar $export = require('./_export');\nvar getProto = require('./_object-gpo');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getPrototypeOf: function getPrototypeOf(target) {\n return getProto(anObject(target));\n }\n});\n","// 26.1.9 Reflect.has(target, propertyKey)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', {\n has: function has(target, propertyKey) {\n return propertyKey in target;\n }\n});\n","// 26.1.10 Reflect.isExtensible(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $isExtensible = Object.isExtensible;\n\n$export($export.S, 'Reflect', {\n isExtensible: function isExtensible(target) {\n anObject(target);\n return $isExtensible ? $isExtensible(target) : true;\n }\n});\n","// 26.1.11 Reflect.ownKeys(target)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', { ownKeys: require('./_own-keys') });\n","// 26.1.12 Reflect.preventExtensions(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $preventExtensions = Object.preventExtensions;\n\n$export($export.S, 'Reflect', {\n preventExtensions: function preventExtensions(target) {\n anObject(target);\n try {\n if ($preventExtensions) $preventExtensions(target);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])\nvar dP = require('./_object-dp');\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar createDesc = require('./_property-desc');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\n\nfunction set(target, propertyKey, V /* , receiver */) {\n var receiver = arguments.length < 4 ? target : arguments[3];\n var ownDesc = gOPD.f(anObject(target), propertyKey);\n var existingDescriptor, proto;\n if (!ownDesc) {\n if (isObject(proto = getPrototypeOf(target))) {\n return set(proto, propertyKey, V, receiver);\n }\n ownDesc = createDesc(0);\n }\n if (has(ownDesc, 'value')) {\n if (ownDesc.writable === false || !isObject(receiver)) return false;\n if (existingDescriptor = gOPD.f(receiver, propertyKey)) {\n if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;\n existingDescriptor.value = V;\n dP.f(receiver, propertyKey, existingDescriptor);\n } else dP.f(receiver, propertyKey, createDesc(0, V));\n return true;\n }\n return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);\n}\n\n$export($export.S, 'Reflect', { set: set });\n","// 26.1.14 Reflect.setPrototypeOf(target, proto)\nvar $export = require('./_export');\nvar setProto = require('./_set-proto');\n\nif (setProto) $export($export.S, 'Reflect', {\n setPrototypeOf: function setPrototypeOf(target, proto) {\n setProto.check(target, proto);\n try {\n setProto.set(target, proto);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar ordinaryDefineOwnMetadata = metadata.set;\n\nmetadata.exp({ defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey) {\n ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar getOrCreateMetadataMap = metadata.map;\nvar store = metadata.store;\n\nmetadata.exp({ deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) {\n var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2]);\n var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);\n if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false;\n if (metadataMap.size) return true;\n var targetMetadata = store.get(target);\n targetMetadata['delete'](targetKey);\n return !!targetMetadata.size || store['delete'](target);\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nvar ordinaryGetMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;\n};\n\nmetadata.exp({ getMetadata: function getMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var Set = require('./es6.set');\nvar from = require('./_array-from-iterable');\nvar metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nvar ordinaryMetadataKeys = function (O, P) {\n var oKeys = ordinaryOwnMetadataKeys(O, P);\n var parent = getPrototypeOf(O);\n if (parent === null) return oKeys;\n var pKeys = ordinaryMetadataKeys(parent, P);\n return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;\n};\n\nmetadata.exp({ getMetadataKeys: function getMetadataKeys(target /* , targetKey */) {\n return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) {\n return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nvar ordinaryHasMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return true;\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;\n};\n\nmetadata.exp({ hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var $metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar toMetaKey = $metadata.key;\nvar ordinaryDefineOwnMetadata = $metadata.set;\n\n$metadata.exp({ metadata: function metadata(metadataKey, metadataValue) {\n return function decorator(target, targetKey) {\n ordinaryDefineOwnMetadata(\n metadataKey, metadataValue,\n (targetKey !== undefined ? anObject : aFunction)(target),\n toMetaKey(targetKey)\n );\n };\n} });\n","/* tslint:disable */\nimport 'core-js/es6';\nimport 'core-js/es7/reflect';\nrequire('zone.js/dist/zone');\n\n// IE11 fix, ref: https://github.com/angular/angular/issues/24769\nif (!Element.prototype.matches && (Element.prototype as any).msMatchesSelector) {\n Element.prototype.matches = (Element.prototype as any).msMatchesSelector;\n}\n\nif (process.env.ENV === 'production') {\n // Production\n} else {\n // Development and test\n Error['stackTraceLimit'] = Infinity;\n require('zone.js/dist/long-stack-trace-zone');\n}\n\n// Other polyfills\nrequire('whatwg-fetch');\nrequire('webcrypto-shim');\nrequire('date-input-polyfill');\n/* tslint:enable */\n","require('../modules/es6.symbol');\nrequire('../modules/es6.object.create');\nrequire('../modules/es6.object.define-property');\nrequire('../modules/es6.object.define-properties');\nrequire('../modules/es6.object.get-own-property-descriptor');\nrequire('../modules/es6.object.get-prototype-of');\nrequire('../modules/es6.object.keys');\nrequire('../modules/es6.object.get-own-property-names');\nrequire('../modules/es6.object.freeze');\nrequire('../modules/es6.object.seal');\nrequire('../modules/es6.object.prevent-extensions');\nrequire('../modules/es6.object.is-frozen');\nrequire('../modules/es6.object.is-sealed');\nrequire('../modules/es6.object.is-extensible');\nrequire('../modules/es6.object.assign');\nrequire('../modules/es6.object.is');\nrequire('../modules/es6.object.set-prototype-of');\nrequire('../modules/es6.object.to-string');\nrequire('../modules/es6.function.bind');\nrequire('../modules/es6.function.name');\nrequire('../modules/es6.function.has-instance');\nrequire('../modules/es6.parse-int');\nrequire('../modules/es6.parse-float');\nrequire('../modules/es6.number.constructor');\nrequire('../modules/es6.number.to-fixed');\nrequire('../modules/es6.number.to-precision');\nrequire('../modules/es6.number.epsilon');\nrequire('../modules/es6.number.is-finite');\nrequire('../modules/es6.number.is-integer');\nrequire('../modules/es6.number.is-nan');\nrequire('../modules/es6.number.is-safe-integer');\nrequire('../modules/es6.number.max-safe-integer');\nrequire('../modules/es6.number.min-safe-integer');\nrequire('../modules/es6.number.parse-float');\nrequire('../modules/es6.number.parse-int');\nrequire('../modules/es6.math.acosh');\nrequire('../modules/es6.math.asinh');\nrequire('../modules/es6.math.atanh');\nrequire('../modules/es6.math.cbrt');\nrequire('../modules/es6.math.clz32');\nrequire('../modules/es6.math.cosh');\nrequire('../modules/es6.math.expm1');\nrequire('../modules/es6.math.fround');\nrequire('../modules/es6.math.hypot');\nrequire('../modules/es6.math.imul');\nrequire('../modules/es6.math.log10');\nrequire('../modules/es6.math.log1p');\nrequire('../modules/es6.math.log2');\nrequire('../modules/es6.math.sign');\nrequire('../modules/es6.math.sinh');\nrequire('../modules/es6.math.tanh');\nrequire('../modules/es6.math.trunc');\nrequire('../modules/es6.string.from-code-point');\nrequire('../modules/es6.string.raw');\nrequire('../modules/es6.string.trim');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/es6.string.code-point-at');\nrequire('../modules/es6.string.ends-with');\nrequire('../modules/es6.string.includes');\nrequire('../modules/es6.string.repeat');\nrequire('../modules/es6.string.starts-with');\nrequire('../modules/es6.string.anchor');\nrequire('../modules/es6.string.big');\nrequire('../modules/es6.string.blink');\nrequire('../modules/es6.string.bold');\nrequire('../modules/es6.string.fixed');\nrequire('../modules/es6.string.fontcolor');\nrequire('../modules/es6.string.fontsize');\nrequire('../modules/es6.string.italics');\nrequire('../modules/es6.string.link');\nrequire('../modules/es6.string.small');\nrequire('../modules/es6.string.strike');\nrequire('../modules/es6.string.sub');\nrequire('../modules/es6.string.sup');\nrequire('../modules/es6.date.now');\nrequire('../modules/es6.date.to-json');\nrequire('../modules/es6.date.to-iso-string');\nrequire('../modules/es6.date.to-string');\nrequire('../modules/es6.date.to-primitive');\nrequire('../modules/es6.array.is-array');\nrequire('../modules/es6.array.from');\nrequire('../modules/es6.array.of');\nrequire('../modules/es6.array.join');\nrequire('../modules/es6.array.slice');\nrequire('../modules/es6.array.sort');\nrequire('../modules/es6.array.for-each');\nrequire('../modules/es6.array.map');\nrequire('../modules/es6.array.filter');\nrequire('../modules/es6.array.some');\nrequire('../modules/es6.array.every');\nrequire('../modules/es6.array.reduce');\nrequire('../modules/es6.array.reduce-right');\nrequire('../modules/es6.array.index-of');\nrequire('../modules/es6.array.last-index-of');\nrequire('../modules/es6.array.copy-within');\nrequire('../modules/es6.array.fill');\nrequire('../modules/es6.array.find');\nrequire('../modules/es6.array.find-index');\nrequire('../modules/es6.array.species');\nrequire('../modules/es6.array.iterator');\nrequire('../modules/es6.regexp.constructor');\nrequire('../modules/es6.regexp.exec');\nrequire('../modules/es6.regexp.to-string');\nrequire('../modules/es6.regexp.flags');\nrequire('../modules/es6.regexp.match');\nrequire('../modules/es6.regexp.replace');\nrequire('../modules/es6.regexp.search');\nrequire('../modules/es6.regexp.split');\nrequire('../modules/es6.promise');\nrequire('../modules/es6.map');\nrequire('../modules/es6.set');\nrequire('../modules/es6.weak-map');\nrequire('../modules/es6.weak-set');\nrequire('../modules/es6.typed.array-buffer');\nrequire('../modules/es6.typed.data-view');\nrequire('../modules/es6.typed.int8-array');\nrequire('../modules/es6.typed.uint8-array');\nrequire('../modules/es6.typed.uint8-clamped-array');\nrequire('../modules/es6.typed.int16-array');\nrequire('../modules/es6.typed.uint16-array');\nrequire('../modules/es6.typed.int32-array');\nrequire('../modules/es6.typed.uint32-array');\nrequire('../modules/es6.typed.float32-array');\nrequire('../modules/es6.typed.float64-array');\nrequire('../modules/es6.reflect.apply');\nrequire('../modules/es6.reflect.construct');\nrequire('../modules/es6.reflect.define-property');\nrequire('../modules/es6.reflect.delete-property');\nrequire('../modules/es6.reflect.enumerate');\nrequire('../modules/es6.reflect.get');\nrequire('../modules/es6.reflect.get-own-property-descriptor');\nrequire('../modules/es6.reflect.get-prototype-of');\nrequire('../modules/es6.reflect.has');\nrequire('../modules/es6.reflect.is-extensible');\nrequire('../modules/es6.reflect.own-keys');\nrequire('../modules/es6.reflect.prevent-extensions');\nrequire('../modules/es6.reflect.set');\nrequire('../modules/es6.reflect.set-prototype-of');\nmodule.exports = require('../modules/_core');\n","require('../modules/es7.reflect.define-metadata');\nrequire('../modules/es7.reflect.delete-metadata');\nrequire('../modules/es7.reflect.get-metadata');\nrequire('../modules/es7.reflect.get-metadata-keys');\nrequire('../modules/es7.reflect.get-own-metadata');\nrequire('../modules/es7.reflect.get-own-metadata-keys');\nrequire('../modules/es7.reflect.has-metadata');\nrequire('../modules/es7.reflect.has-own-metadata');\nrequire('../modules/es7.reflect.metadata');\nmodule.exports = require('../modules/_core').Reflect;\n","/**\n* @license Angular v9.1.0-next.4+61.sha-e552591.with-local-changes\n* (c) 2010-2020 Google LLC. https://angular.io/\n* License: MIT\n*/\n(function (factory) {\n typeof define === 'function' && define.amd ? define(factory) :\n factory();\n}((function () {\n 'use strict';\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n var Zone$1 = (function (global) {\n var performance = global['performance'];\n function mark(name) { performance && performance['mark'] && performance['mark'](name); }\n function performanceMeasure(name, label) {\n performance && performance['measure'] && performance['measure'](name, label);\n }\n mark('Zone');\n // Initialize before it's accessed below.\n // __Zone_symbol_prefix global can be used to override the default zone\n // symbol prefix with a custom one if needed.\n var symbolPrefix = global['__Zone_symbol_prefix'] || '__zone_symbol__';\n function __symbol__(name) { return symbolPrefix + name; }\n var checkDuplicate = global[__symbol__('forceDuplicateZoneCheck')] === true;\n if (global['Zone']) {\n // if global['Zone'] already exists (maybe zone.js was already loaded or\n // some other lib also registered a global object named Zone), we may need\n // to throw an error, but sometimes user may not want this error.\n // For example,\n // we have two web pages, page1 includes zone.js, page2 doesn't.\n // and the 1st time user load page1 and page2, everything work fine,\n // but when user load page2 again, error occurs because global['Zone'] already exists.\n // so we add a flag to let user choose whether to throw this error or not.\n // By default, if existing Zone is from zone.js, we will not throw the error.\n if (checkDuplicate || typeof global['Zone'].__symbol__ !== 'function') {\n throw new Error('Zone already loaded.');\n }\n else {\n return global['Zone'];\n }\n }\n var Zone = /** @class */ (function () {\n function Zone(parent, zoneSpec) {\n this._parent = parent;\n this._name = zoneSpec ? zoneSpec.name || 'unnamed' : '';\n this._properties = zoneSpec && zoneSpec.properties || {};\n this._zoneDelegate =\n new ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec);\n }\n Zone.assertZonePatched = function () {\n if (global['Promise'] !== patches['ZoneAwarePromise']) {\n throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' +\n 'has been overwritten.\\n' +\n 'Most likely cause is that a Promise polyfill has been loaded ' +\n 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' +\n 'If you must load one, do so before loading zone.js.)');\n }\n };\n Object.defineProperty(Zone, \"root\", {\n get: function () {\n var zone = Zone.current;\n while (zone.parent) {\n zone = zone.parent;\n }\n return zone;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Zone, \"current\", {\n get: function () { return _currentZoneFrame.zone; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Zone, \"currentTask\", {\n get: function () { return _currentTask; },\n enumerable: true,\n configurable: true\n });\n // tslint:disable-next-line:require-internal-with-underscore\n Zone.__load_patch = function (name, fn) {\n if (patches.hasOwnProperty(name)) {\n if (checkDuplicate) {\n throw Error('Already loaded patch: ' + name);\n }\n }\n else if (!global['__Zone_disable_' + name]) {\n var perfName = 'Zone:' + name;\n mark(perfName);\n patches[name] = fn(global, Zone, _api);\n performanceMeasure(perfName, perfName);\n }\n };\n Object.defineProperty(Zone.prototype, \"parent\", {\n get: function () { return this._parent; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Zone.prototype, \"name\", {\n get: function () { return this._name; },\n enumerable: true,\n configurable: true\n });\n Zone.prototype.get = function (key) {\n var zone = this.getZoneWith(key);\n if (zone)\n return zone._properties[key];\n };\n Zone.prototype.getZoneWith = function (key) {\n var current = this;\n while (current) {\n if (current._properties.hasOwnProperty(key)) {\n return current;\n }\n current = current._parent;\n }\n return null;\n };\n Zone.prototype.fork = function (zoneSpec) {\n if (!zoneSpec)\n throw new Error('ZoneSpec required!');\n return this._zoneDelegate.fork(this, zoneSpec);\n };\n Zone.prototype.wrap = function (callback, source) {\n if (typeof callback !== 'function') {\n throw new Error('Expecting function got: ' + callback);\n }\n var _callback = this._zoneDelegate.intercept(this, callback, source);\n var zone = this;\n return function () {\n return zone.runGuarded(_callback, this, arguments, source);\n };\n };\n Zone.prototype.run = function (callback, applyThis, applyArgs, source) {\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n };\n Zone.prototype.runGuarded = function (callback, applyThis, applyArgs, source) {\n if (applyThis === void 0) { applyThis = null; }\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n };\n Zone.prototype.runTask = function (task, applyThis, applyArgs) {\n if (task.zone != this) {\n throw new Error('A task can only be run in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n }\n // https://github.com/angular/zone.js/issues/778, sometimes eventTask\n // will run in notScheduled(canceled) state, we should not try to\n // run such kind of task but just return\n if (task.state === notScheduled && (task.type === eventTask || task.type === macroTask)) {\n return;\n }\n var reEntryGuard = task.state != running;\n reEntryGuard && task._transitionTo(running, scheduled);\n task.runCount++;\n var previousTask = _currentTask;\n _currentTask = task;\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n if (task.type == macroTask && task.data && !task.data.isPeriodic) {\n task.cancelFn = undefined;\n }\n try {\n return this._zoneDelegate.invokeTask(this, task, applyThis, applyArgs);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n // if the task's state is notScheduled or unknown, then it has already been cancelled\n // we should not reset the state to scheduled\n if (task.state !== notScheduled && task.state !== unknown) {\n if (task.type == eventTask || (task.data && task.data.isPeriodic)) {\n reEntryGuard && task._transitionTo(scheduled, running);\n }\n else {\n task.runCount = 0;\n this._updateTaskCount(task, -1);\n reEntryGuard &&\n task._transitionTo(notScheduled, running, notScheduled);\n }\n }\n _currentZoneFrame = _currentZoneFrame.parent;\n _currentTask = previousTask;\n }\n };\n Zone.prototype.scheduleTask = function (task) {\n if (task.zone && task.zone !== this) {\n // check if the task was rescheduled, the newZone\n // should not be the children of the original zone\n var newZone = this;\n while (newZone) {\n if (newZone === task.zone) {\n throw Error(\"can not reschedule task to \" + this.name + \" which is descendants of the original zone \" + task.zone.name);\n }\n newZone = newZone.parent;\n }\n }\n task._transitionTo(scheduling, notScheduled);\n var zoneDelegates = [];\n task._zoneDelegates = zoneDelegates;\n task._zone = this;\n try {\n task = this._zoneDelegate.scheduleTask(this, task);\n }\n catch (err) {\n // should set task's state to unknown when scheduleTask throw error\n // because the err may from reschedule, so the fromState maybe notScheduled\n task._transitionTo(unknown, scheduling, notScheduled);\n // TODO: @JiaLiPassion, should we check the result from handleError?\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n if (task._zoneDelegates === zoneDelegates) {\n // we have to check because internally the delegate can reschedule the task.\n this._updateTaskCount(task, 1);\n }\n if (task.state == scheduling) {\n task._transitionTo(scheduled, scheduling);\n }\n return task;\n };\n Zone.prototype.scheduleMicroTask = function (source, callback, data, customSchedule) {\n return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, undefined));\n };\n Zone.prototype.scheduleMacroTask = function (source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel));\n };\n Zone.prototype.scheduleEventTask = function (source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel));\n };\n Zone.prototype.cancelTask = function (task) {\n if (task.zone != this)\n throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n task._transitionTo(canceling, scheduled, running);\n try {\n this._zoneDelegate.cancelTask(this, task);\n }\n catch (err) {\n // if error occurs when cancelTask, transit the state to unknown\n task._transitionTo(unknown, canceling);\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n this._updateTaskCount(task, -1);\n task._transitionTo(notScheduled, canceling);\n task.runCount = 0;\n return task;\n };\n Zone.prototype._updateTaskCount = function (task, count) {\n var zoneDelegates = task._zoneDelegates;\n if (count == -1) {\n task._zoneDelegates = null;\n }\n for (var i = 0; i < zoneDelegates.length; i++) {\n zoneDelegates[i]._updateTaskCount(task.type, count);\n }\n };\n return Zone;\n }());\n // tslint:disable-next-line:require-internal-with-underscore\n Zone.__symbol__ = __symbol__;\n var DELEGATE_ZS = {\n name: '',\n onHasTask: function (delegate, _, target, hasTaskState) { return delegate.hasTask(target, hasTaskState); },\n onScheduleTask: function (delegate, _, target, task) { return delegate.scheduleTask(target, task); },\n onInvokeTask: function (delegate, _, target, task, applyThis, applyArgs) { return delegate.invokeTask(target, task, applyThis, applyArgs); },\n onCancelTask: function (delegate, _, target, task) { return delegate.cancelTask(target, task); }\n };\n var ZoneDelegate = /** @class */ (function () {\n function ZoneDelegate(zone, parentDelegate, zoneSpec) {\n this._taskCounts = { 'microTask': 0, 'macroTask': 0, 'eventTask': 0 };\n this.zone = zone;\n this._parentDelegate = parentDelegate;\n this._forkZS =\n zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS);\n this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt);\n this._forkCurrZone =\n zoneSpec && (zoneSpec.onFork ? this.zone : parentDelegate._forkCurrZone);\n this._interceptZS =\n zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS);\n this._interceptDlgt =\n zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt);\n this._interceptCurrZone =\n zoneSpec && (zoneSpec.onIntercept ? this.zone : parentDelegate._interceptCurrZone);\n this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS);\n this._invokeDlgt =\n zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt);\n this._invokeCurrZone =\n zoneSpec && (zoneSpec.onInvoke ? this.zone : parentDelegate._invokeCurrZone);\n this._handleErrorZS =\n zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS);\n this._handleErrorDlgt = zoneSpec &&\n (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt);\n this._handleErrorCurrZone =\n zoneSpec && (zoneSpec.onHandleError ? this.zone : parentDelegate._handleErrorCurrZone);\n this._scheduleTaskZS =\n zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS);\n this._scheduleTaskDlgt = zoneSpec &&\n (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt);\n this._scheduleTaskCurrZone = zoneSpec &&\n (zoneSpec.onScheduleTask ? this.zone : parentDelegate._scheduleTaskCurrZone);\n this._invokeTaskZS =\n zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS);\n this._invokeTaskDlgt =\n zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt);\n this._invokeTaskCurrZone =\n zoneSpec && (zoneSpec.onInvokeTask ? this.zone : parentDelegate._invokeTaskCurrZone);\n this._cancelTaskZS =\n zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS);\n this._cancelTaskDlgt =\n zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt);\n this._cancelTaskCurrZone =\n zoneSpec && (zoneSpec.onCancelTask ? this.zone : parentDelegate._cancelTaskCurrZone);\n this._hasTaskZS = null;\n this._hasTaskDlgt = null;\n this._hasTaskDlgtOwner = null;\n this._hasTaskCurrZone = null;\n var zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask;\n var parentHasTask = parentDelegate && parentDelegate._hasTaskZS;\n if (zoneSpecHasTask || parentHasTask) {\n // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such\n // a case all task related interceptors must go through this ZD. We can't short circuit it.\n this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS;\n this._hasTaskDlgt = parentDelegate;\n this._hasTaskDlgtOwner = this;\n this._hasTaskCurrZone = zone;\n if (!zoneSpec.onScheduleTask) {\n this._scheduleTaskZS = DELEGATE_ZS;\n this._scheduleTaskDlgt = parentDelegate;\n this._scheduleTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onInvokeTask) {\n this._invokeTaskZS = DELEGATE_ZS;\n this._invokeTaskDlgt = parentDelegate;\n this._invokeTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onCancelTask) {\n this._cancelTaskZS = DELEGATE_ZS;\n this._cancelTaskDlgt = parentDelegate;\n this._cancelTaskCurrZone = this.zone;\n }\n }\n }\n ZoneDelegate.prototype.fork = function (targetZone, zoneSpec) {\n return this._forkZS ?\n this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) :\n new Zone(targetZone, zoneSpec);\n };\n ZoneDelegate.prototype.intercept = function (targetZone, callback, source) {\n return this._interceptZS ?\n this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) :\n callback;\n };\n ZoneDelegate.prototype.invoke = function (targetZone, callback, applyThis, applyArgs, source) {\n return this._invokeZS ?\n this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source) :\n callback.apply(applyThis, applyArgs);\n };\n ZoneDelegate.prototype.handleError = function (targetZone, error) {\n return this._handleErrorZS ?\n this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) :\n true;\n };\n ZoneDelegate.prototype.scheduleTask = function (targetZone, task) {\n var returnTask = task;\n if (this._scheduleTaskZS) {\n if (this._hasTaskZS) {\n returnTask._zoneDelegates.push(this._hasTaskDlgtOwner);\n }\n // clang-format off\n returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task);\n // clang-format on\n if (!returnTask)\n returnTask = task;\n }\n else {\n if (task.scheduleFn) {\n task.scheduleFn(task);\n }\n else if (task.type == microTask) {\n scheduleMicroTask(task);\n }\n else {\n throw new Error('Task is missing scheduleFn.');\n }\n }\n return returnTask;\n };\n ZoneDelegate.prototype.invokeTask = function (targetZone, task, applyThis, applyArgs) {\n return this._invokeTaskZS ?\n this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs) :\n task.callback.apply(applyThis, applyArgs);\n };\n ZoneDelegate.prototype.cancelTask = function (targetZone, task) {\n var value;\n if (this._cancelTaskZS) {\n value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task);\n }\n else {\n if (!task.cancelFn) {\n throw Error('Task is not cancelable');\n }\n value = task.cancelFn(task);\n }\n return value;\n };\n ZoneDelegate.prototype.hasTask = function (targetZone, isEmpty) {\n // hasTask should not throw error so other ZoneDelegate\n // can still trigger hasTask callback\n try {\n this._hasTaskZS &&\n this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty);\n }\n catch (err) {\n this.handleError(targetZone, err);\n }\n };\n // tslint:disable-next-line:require-internal-with-underscore\n ZoneDelegate.prototype._updateTaskCount = function (type, count) {\n var counts = this._taskCounts;\n var prev = counts[type];\n var next = counts[type] = prev + count;\n if (next < 0) {\n throw new Error('More tasks executed then were scheduled.');\n }\n if (prev == 0 || next == 0) {\n var isEmpty = {\n microTask: counts['microTask'] > 0,\n macroTask: counts['macroTask'] > 0,\n eventTask: counts['eventTask'] > 0,\n change: type\n };\n this.hasTask(this.zone, isEmpty);\n }\n };\n return ZoneDelegate;\n }());\n var ZoneTask = /** @class */ (function () {\n function ZoneTask(type, source, callback, options, scheduleFn, cancelFn) {\n // tslint:disable-next-line:require-internal-with-underscore\n this._zone = null;\n this.runCount = 0;\n // tslint:disable-next-line:require-internal-with-underscore\n this._zoneDelegates = null;\n // tslint:disable-next-line:require-internal-with-underscore\n this._state = 'notScheduled';\n this.type = type;\n this.source = source;\n this.data = options;\n this.scheduleFn = scheduleFn;\n this.cancelFn = cancelFn;\n if (!callback) {\n throw new Error('callback is not defined');\n }\n this.callback = callback;\n var self = this;\n // TODO: @JiaLiPassion options should have interface\n if (type === eventTask && options && options.useG) {\n this.invoke = ZoneTask.invokeTask;\n }\n else {\n this.invoke = function () {\n return ZoneTask.invokeTask.call(global, self, this, arguments);\n };\n }\n }\n ZoneTask.invokeTask = function (task, target, args) {\n if (!task) {\n task = this;\n }\n _numberOfNestedTaskFrames++;\n try {\n task.runCount++;\n return task.zone.runTask(task, target, args);\n }\n finally {\n if (_numberOfNestedTaskFrames == 1) {\n drainMicroTaskQueue();\n }\n _numberOfNestedTaskFrames--;\n }\n };\n Object.defineProperty(ZoneTask.prototype, \"zone\", {\n get: function () { return this._zone; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ZoneTask.prototype, \"state\", {\n get: function () { return this._state; },\n enumerable: true,\n configurable: true\n });\n ZoneTask.prototype.cancelScheduleRequest = function () { this._transitionTo(notScheduled, scheduling); };\n // tslint:disable-next-line:require-internal-with-underscore\n ZoneTask.prototype._transitionTo = function (toState, fromState1, fromState2) {\n if (this._state === fromState1 || this._state === fromState2) {\n this._state = toState;\n if (toState == notScheduled) {\n this._zoneDelegates = null;\n }\n }\n else {\n throw new Error(this.type + \" '\" + this.source + \"': can not transition to '\" + toState + \"', expecting state '\" + fromState1 + \"'\" + (fromState2 ? ' or \\'' + fromState2 + '\\'' : '') + \", was '\" + this._state + \"'.\");\n }\n };\n ZoneTask.prototype.toString = function () {\n if (this.data && typeof this.data.handleId !== 'undefined') {\n return this.data.handleId.toString();\n }\n else {\n return Object.prototype.toString.call(this);\n }\n };\n // add toJSON method to prevent cyclic error when\n // call JSON.stringify(zoneTask)\n ZoneTask.prototype.toJSON = function () {\n return {\n type: this.type,\n state: this.state,\n source: this.source,\n zone: this.zone.name,\n runCount: this.runCount\n };\n };\n return ZoneTask;\n }());\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// MICROTASK QUEUE\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n var symbolSetTimeout = __symbol__('setTimeout');\n var symbolPromise = __symbol__('Promise');\n var symbolThen = __symbol__('then');\n var _microTaskQueue = [];\n var _isDrainingMicrotaskQueue = false;\n var nativeMicroTaskQueuePromise;\n function scheduleMicroTask(task) {\n // if we are not running in any task, and there has not been anything scheduled\n // we must bootstrap the initial task creation by manually scheduling the drain\n if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) {\n // We are not running in Task, so we need to kickstart the microtask queue.\n if (!nativeMicroTaskQueuePromise) {\n if (global[symbolPromise]) {\n nativeMicroTaskQueuePromise = global[symbolPromise].resolve(0);\n }\n }\n if (nativeMicroTaskQueuePromise) {\n var nativeThen = nativeMicroTaskQueuePromise[symbolThen];\n if (!nativeThen) {\n // native Promise is not patchable, we need to use `then` directly\n // issue 1078\n nativeThen = nativeMicroTaskQueuePromise['then'];\n }\n nativeThen.call(nativeMicroTaskQueuePromise, drainMicroTaskQueue);\n }\n else {\n global[symbolSetTimeout](drainMicroTaskQueue, 0);\n }\n }\n task && _microTaskQueue.push(task);\n }\n function drainMicroTaskQueue() {\n if (!_isDrainingMicrotaskQueue) {\n _isDrainingMicrotaskQueue = true;\n while (_microTaskQueue.length) {\n var queue = _microTaskQueue;\n _microTaskQueue = [];\n for (var i = 0; i < queue.length; i++) {\n var task = queue[i];\n try {\n task.zone.runTask(task, null, null);\n }\n catch (error) {\n _api.onUnhandledError(error);\n }\n }\n }\n _api.microtaskDrainDone();\n _isDrainingMicrotaskQueue = false;\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// BOOTSTRAP\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n var NO_ZONE = { name: 'NO ZONE' };\n var notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling', unknown = 'unknown';\n var microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask';\n var patches = {};\n var _api = {\n symbol: __symbol__,\n currentZoneFrame: function () { return _currentZoneFrame; },\n onUnhandledError: noop,\n microtaskDrainDone: noop,\n scheduleMicroTask: scheduleMicroTask,\n showUncaughtError: function () { return !Zone[__symbol__('ignoreConsoleErrorUncaughtError')]; },\n patchEventTarget: function () { return []; },\n patchOnProperties: noop,\n patchMethod: function () { return noop; },\n bindArguments: function () { return []; },\n patchThen: function () { return noop; },\n patchMacroTask: function () { return noop; },\n setNativePromise: function (NativePromise) {\n // sometimes NativePromise.resolve static function\n // is not ready yet, (such as core-js/es6.promise)\n // so we need to check here.\n if (NativePromise && typeof NativePromise.resolve === 'function') {\n nativeMicroTaskQueuePromise = NativePromise.resolve(0);\n }\n },\n patchEventPrototype: function () { return noop; },\n isIEOrEdge: function () { return false; },\n getGlobalObjects: function () { return undefined; },\n ObjectDefineProperty: function () { return noop; },\n ObjectGetOwnPropertyDescriptor: function () { return undefined; },\n ObjectCreate: function () { return undefined; },\n ArraySlice: function () { return []; },\n patchClass: function () { return noop; },\n wrapWithCurrentZone: function () { return noop; },\n filterProperties: function () { return []; },\n attachOriginToPatched: function () { return noop; },\n _redefineProperty: function () { return noop; },\n patchCallbacks: function () { return noop; }\n };\n var _currentZoneFrame = { parent: null, zone: new Zone(null, null) };\n var _currentTask = null;\n var _numberOfNestedTaskFrames = 0;\n function noop() { }\n performanceMeasure('Zone', 'Zone');\n return global['Zone'] = Zone;\n })(typeof window !== 'undefined' && window || typeof self !== 'undefined' && self || global);\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n Zone.__load_patch('ZoneAwarePromise', function (global, Zone, api) {\n var ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n var ObjectDefineProperty = Object.defineProperty;\n function readableObjectToString(obj) {\n if (obj && obj.toString === Object.prototype.toString) {\n var className = obj.constructor && obj.constructor.name;\n return (className ? className : '') + ': ' + JSON.stringify(obj);\n }\n return obj ? obj.toString() : Object.prototype.toString.call(obj);\n }\n var __symbol__ = api.symbol;\n var _uncaughtPromiseErrors = [];\n var isDisableWrappingUncaughtPromiseRejection = global[__symbol__('DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION')] === true;\n var symbolPromise = __symbol__('Promise');\n var symbolThen = __symbol__('then');\n var creationTrace = '__creationTrace__';\n api.onUnhandledError = function (e) {\n if (api.showUncaughtError()) {\n var rejection = e && e.rejection;\n if (rejection) {\n console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined);\n }\n else {\n console.error(e);\n }\n }\n };\n api.microtaskDrainDone = function () {\n var _loop_1 = function () {\n var uncaughtPromiseError = _uncaughtPromiseErrors.shift();\n try {\n uncaughtPromiseError.zone.runGuarded(function () { throw uncaughtPromiseError; });\n }\n catch (error) {\n handleUnhandledRejection(error);\n }\n };\n while (_uncaughtPromiseErrors.length) {\n _loop_1();\n }\n };\n var UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL = __symbol__('unhandledPromiseRejectionHandler');\n function handleUnhandledRejection(e) {\n api.onUnhandledError(e);\n try {\n var handler = Zone[UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL];\n if (typeof handler === 'function') {\n handler.call(this, e);\n }\n }\n catch (err) {\n }\n }\n function isThenable(value) { return value && value.then; }\n function forwardResolution(value) { return value; }\n function forwardRejection(rejection) { return ZoneAwarePromise.reject(rejection); }\n var symbolState = __symbol__('state');\n var symbolValue = __symbol__('value');\n var symbolFinally = __symbol__('finally');\n var symbolParentPromiseValue = __symbol__('parentPromiseValue');\n var symbolParentPromiseState = __symbol__('parentPromiseState');\n var source = 'Promise.then';\n var UNRESOLVED = null;\n var RESOLVED = true;\n var REJECTED = false;\n var REJECTED_NO_CATCH = 0;\n function makeResolver(promise, state) {\n return function (v) {\n try {\n resolvePromise(promise, state, v);\n }\n catch (err) {\n resolvePromise(promise, false, err);\n }\n // Do not return value or you will break the Promise spec.\n };\n }\n var once = function () {\n var wasCalled = false;\n return function wrapper(wrappedFunction) {\n return function () {\n if (wasCalled) {\n return;\n }\n wasCalled = true;\n wrappedFunction.apply(null, arguments);\n };\n };\n };\n var TYPE_ERROR = 'Promise resolved with itself';\n var CURRENT_TASK_TRACE_SYMBOL = __symbol__('currentTaskTrace');\n // Promise Resolution\n function resolvePromise(promise, state, value) {\n var onceWrapper = once();\n if (promise === value) {\n throw new TypeError(TYPE_ERROR);\n }\n if (promise[symbolState] === UNRESOLVED) {\n // should only get value.then once based on promise spec.\n var then = null;\n try {\n if (typeof value === 'object' || typeof value === 'function') {\n then = value && value.then;\n }\n }\n catch (err) {\n onceWrapper(function () { resolvePromise(promise, false, err); })();\n return promise;\n }\n // if (value instanceof ZoneAwarePromise) {\n if (state !== REJECTED && value instanceof ZoneAwarePromise &&\n value.hasOwnProperty(symbolState) && value.hasOwnProperty(symbolValue) &&\n value[symbolState] !== UNRESOLVED) {\n clearRejectedNoCatch(value);\n resolvePromise(promise, value[symbolState], value[symbolValue]);\n }\n else if (state !== REJECTED && typeof then === 'function') {\n try {\n then.call(value, onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false)));\n }\n catch (err) {\n onceWrapper(function () { resolvePromise(promise, false, err); })();\n }\n }\n else {\n promise[symbolState] = state;\n var queue = promise[symbolValue];\n promise[symbolValue] = value;\n if (promise[symbolFinally] === symbolFinally) {\n // the promise is generated by Promise.prototype.finally\n if (state === RESOLVED) {\n // the state is resolved, should ignore the value\n // and use parent promise value\n promise[symbolState] = promise[symbolParentPromiseState];\n promise[symbolValue] = promise[symbolParentPromiseValue];\n }\n }\n // record task information in value when error occurs, so we can\n // do some additional work such as render longStackTrace\n if (state === REJECTED && value instanceof Error) {\n // check if longStackTraceZone is here\n var trace = Zone.currentTask && Zone.currentTask.data &&\n Zone.currentTask.data[creationTrace];\n if (trace) {\n // only keep the long stack trace into error when in longStackTraceZone\n ObjectDefineProperty(value, CURRENT_TASK_TRACE_SYMBOL, { configurable: true, enumerable: false, writable: true, value: trace });\n }\n }\n for (var i = 0; i < queue.length;) {\n scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]);\n }\n if (queue.length == 0 && state == REJECTED) {\n promise[symbolState] = REJECTED_NO_CATCH;\n var uncaughtPromiseError = value;\n if (!isDisableWrappingUncaughtPromiseRejection) {\n // If disable wrapping uncaught promise reject\n // and the rejected value is an Error object,\n // use the value instead of wrapping it.\n try {\n // Here we throws a new Error to print more readable error log\n // and if the value is not an error, zone.js builds an `Error`\n // Object here to attach the stack information.\n throw new Error('Uncaught (in promise): ' + readableObjectToString(value) +\n (value && value.stack ? '\\n' + value.stack : ''));\n }\n catch (err) {\n uncaughtPromiseError = err;\n }\n }\n uncaughtPromiseError.rejection = value;\n uncaughtPromiseError.promise = promise;\n uncaughtPromiseError.zone = Zone.current;\n uncaughtPromiseError.task = Zone.currentTask;\n _uncaughtPromiseErrors.push(uncaughtPromiseError);\n api.scheduleMicroTask(); // to make sure that it is running\n }\n }\n }\n // Resolving an already resolved promise is a noop.\n return promise;\n }\n var REJECTION_HANDLED_HANDLER = __symbol__('rejectionHandledHandler');\n function clearRejectedNoCatch(promise) {\n if (promise[symbolState] === REJECTED_NO_CATCH) {\n // if the promise is rejected no catch status\n // and queue.length > 0, means there is a error handler\n // here to handle the rejected promise, we should trigger\n // windows.rejectionhandled eventHandler or nodejs rejectionHandled\n // eventHandler\n try {\n var handler = Zone[REJECTION_HANDLED_HANDLER];\n if (handler && typeof handler === 'function') {\n handler.call(this, { rejection: promise[symbolValue], promise: promise });\n }\n }\n catch (err) {\n }\n promise[symbolState] = REJECTED;\n for (var i = 0; i < _uncaughtPromiseErrors.length; i++) {\n if (promise === _uncaughtPromiseErrors[i].promise) {\n _uncaughtPromiseErrors.splice(i, 1);\n }\n }\n }\n }\n function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) {\n clearRejectedNoCatch(promise);\n var promiseState = promise[symbolState];\n var delegate = promiseState ?\n (typeof onFulfilled === 'function') ? onFulfilled : forwardResolution :\n (typeof onRejected === 'function') ? onRejected : forwardRejection;\n zone.scheduleMicroTask(source, function () {\n try {\n var parentPromiseValue = promise[symbolValue];\n var isFinallyPromise = !!chainPromise && symbolFinally === chainPromise[symbolFinally];\n if (isFinallyPromise) {\n // if the promise is generated from finally call, keep parent promise's state and value\n chainPromise[symbolParentPromiseValue] = parentPromiseValue;\n chainPromise[symbolParentPromiseState] = promiseState;\n }\n // should not pass value to finally callback\n var value = zone.run(delegate, undefined, isFinallyPromise && delegate !== forwardRejection && delegate !== forwardResolution ?\n [] :\n [parentPromiseValue]);\n resolvePromise(chainPromise, true, value);\n }\n catch (error) {\n // if error occurs, should always return this error\n resolvePromise(chainPromise, false, error);\n }\n }, chainPromise);\n }\n var ZONE_AWARE_PROMISE_TO_STRING = 'function ZoneAwarePromise() { [native code] }';\n var noop = function () { };\n var ZoneAwarePromise = /** @class */ (function () {\n function ZoneAwarePromise(executor) {\n var promise = this;\n if (!(promise instanceof ZoneAwarePromise)) {\n throw new Error('Must be an instanceof Promise.');\n }\n promise[symbolState] = UNRESOLVED;\n promise[symbolValue] = []; // queue;\n try {\n executor && executor(makeResolver(promise, RESOLVED), makeResolver(promise, REJECTED));\n }\n catch (error) {\n resolvePromise(promise, false, error);\n }\n }\n ZoneAwarePromise.toString = function () { return ZONE_AWARE_PROMISE_TO_STRING; };\n ZoneAwarePromise.resolve = function (value) {\n return resolvePromise(new this(null), RESOLVED, value);\n };\n ZoneAwarePromise.reject = function (error) {\n return resolvePromise(new this(null), REJECTED, error);\n };\n ZoneAwarePromise.race = function (values) {\n var resolve;\n var reject;\n var promise = new this(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n function onResolve(value) { resolve(value); }\n function onReject(error) { reject(error); }\n for (var _i = 0, values_1 = values; _i < values_1.length; _i++) {\n var value = values_1[_i];\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then(onResolve, onReject);\n }\n return promise;\n };\n ZoneAwarePromise.all = function (values) { return ZoneAwarePromise.allWithCallback(values); };\n ZoneAwarePromise.allSettled = function (values) {\n var P = this && this.prototype instanceof ZoneAwarePromise ? this : ZoneAwarePromise;\n return P.allWithCallback(values, {\n thenCallback: function (value) { return ({ status: 'fulfilled', value: value }); },\n errorCallback: function (err) { return ({ status: 'rejected', reason: err }); }\n });\n };\n ZoneAwarePromise.allWithCallback = function (values, callback) {\n var resolve;\n var reject;\n var promise = new this(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n // Start at 2 to prevent prematurely resolving if .then is called immediately.\n var unresolvedCount = 2;\n var valueIndex = 0;\n var resolvedValues = [];\n var _loop_2 = function (value) {\n if (!isThenable(value)) {\n value = this_1.resolve(value);\n }\n var curValueIndex = valueIndex;\n try {\n value.then(function (value) {\n resolvedValues[curValueIndex] = callback ? callback.thenCallback(value) : value;\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }, function (err) {\n if (!callback) {\n reject(err);\n }\n else {\n resolvedValues[curValueIndex] = callback.errorCallback(err);\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }\n });\n }\n catch (thenErr) {\n reject(thenErr);\n }\n unresolvedCount++;\n valueIndex++;\n };\n var this_1 = this;\n for (var _i = 0, values_2 = values; _i < values_2.length; _i++) {\n var value = values_2[_i];\n _loop_2(value);\n }\n // Make the unresolvedCount zero-based again.\n unresolvedCount -= 2;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n return promise;\n };\n Object.defineProperty(ZoneAwarePromise.prototype, Symbol.toStringTag, {\n get: function () { return 'Promise'; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ZoneAwarePromise.prototype, Symbol.species, {\n get: function () { return ZoneAwarePromise; },\n enumerable: true,\n configurable: true\n });\n ZoneAwarePromise.prototype.then = function (onFulfilled, onRejected) {\n var C = this.constructor[Symbol.species];\n if (!C || typeof C !== 'function') {\n C = this.constructor || ZoneAwarePromise;\n }\n var chainPromise = new C(noop);\n var zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected);\n }\n return chainPromise;\n };\n ZoneAwarePromise.prototype.catch = function (onRejected) {\n return this.then(null, onRejected);\n };\n ZoneAwarePromise.prototype.finally = function (onFinally) {\n var C = this.constructor[Symbol.species];\n if (!C || typeof C !== 'function') {\n C = ZoneAwarePromise;\n }\n var chainPromise = new C(noop);\n chainPromise[symbolFinally] = symbolFinally;\n var zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFinally, onFinally);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFinally, onFinally);\n }\n return chainPromise;\n };\n return ZoneAwarePromise;\n }());\n // Protect against aggressive optimizers dropping seemingly unused properties.\n // E.g. Closure Compiler in advanced mode.\n ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve;\n ZoneAwarePromise['reject'] = ZoneAwarePromise.reject;\n ZoneAwarePromise['race'] = ZoneAwarePromise.race;\n ZoneAwarePromise['all'] = ZoneAwarePromise.all;\n var NativePromise = global[symbolPromise] = global['Promise'];\n var ZONE_AWARE_PROMISE = Zone.__symbol__('ZoneAwarePromise');\n var desc = ObjectGetOwnPropertyDescriptor(global, 'Promise');\n if (!desc || desc.configurable) {\n desc && delete desc.writable;\n desc && delete desc.value;\n if (!desc) {\n desc = { configurable: true, enumerable: true };\n }\n desc.get = function () {\n // if we already set ZoneAwarePromise, use patched one\n // otherwise return native one.\n return global[ZONE_AWARE_PROMISE] ? global[ZONE_AWARE_PROMISE] : global[symbolPromise];\n };\n desc.set = function (NewNativePromise) {\n if (NewNativePromise === ZoneAwarePromise) {\n // if the NewNativePromise is ZoneAwarePromise\n // save to global\n global[ZONE_AWARE_PROMISE] = NewNativePromise;\n }\n else {\n // if the NewNativePromise is not ZoneAwarePromise\n // for example: after load zone.js, some library just\n // set es6-promise to global, if we set it to global\n // directly, assertZonePatched will fail and angular\n // will not loaded, so we just set the NewNativePromise\n // to global[symbolPromise], so the result is just like\n // we load ES6 Promise before zone.js\n global[symbolPromise] = NewNativePromise;\n if (!NewNativePromise.prototype[symbolThen]) {\n patchThen(NewNativePromise);\n }\n api.setNativePromise(NewNativePromise);\n }\n };\n ObjectDefineProperty(global, 'Promise', desc);\n }\n global['Promise'] = ZoneAwarePromise;\n var symbolThenPatched = __symbol__('thenPatched');\n function patchThen(Ctor) {\n var proto = Ctor.prototype;\n var prop = ObjectGetOwnPropertyDescriptor(proto, 'then');\n if (prop && (prop.writable === false || !prop.configurable)) {\n // check Ctor.prototype.then propertyDescriptor is writable or not\n // in meteor env, writable is false, we should ignore such case\n return;\n }\n var originalThen = proto.then;\n // Keep a reference to the original method.\n proto[symbolThen] = originalThen;\n Ctor.prototype.then = function (onResolve, onReject) {\n var _this = this;\n var wrapped = new ZoneAwarePromise(function (resolve, reject) { originalThen.call(_this, resolve, reject); });\n return wrapped.then(onResolve, onReject);\n };\n Ctor[symbolThenPatched] = true;\n }\n api.patchThen = patchThen;\n function zoneify(fn) {\n return function () {\n var resultPromise = fn.apply(this, arguments);\n if (resultPromise instanceof ZoneAwarePromise) {\n return resultPromise;\n }\n var ctor = resultPromise.constructor;\n if (!ctor[symbolThenPatched]) {\n patchThen(ctor);\n }\n return resultPromise;\n };\n }\n if (NativePromise) {\n patchThen(NativePromise);\n var fetch_1 = global['fetch'];\n if (typeof fetch_1 == 'function') {\n global[api.symbol('fetch')] = fetch_1;\n global['fetch'] = zoneify(fetch_1);\n }\n }\n // This is not part of public API, but it is useful for tests, so we expose it.\n Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors;\n return ZoneAwarePromise;\n });\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n /**\n * Suppress closure compiler errors about unknown 'Zone' variable\n * @fileoverview\n * @suppress {undefinedVars,globalThis,missingRequire}\n */\n /// \n // issue #989, to reduce bundle size, use short name\n /** Object.getOwnPropertyDescriptor */\n var ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n /** Object.defineProperty */\n var ObjectDefineProperty = Object.defineProperty;\n /** Object.getPrototypeOf */\n var ObjectGetPrototypeOf = Object.getPrototypeOf;\n /** Object.create */\n var ObjectCreate = Object.create;\n /** Array.prototype.slice */\n var ArraySlice = Array.prototype.slice;\n /** addEventListener string const */\n var ADD_EVENT_LISTENER_STR = 'addEventListener';\n /** removeEventListener string const */\n var REMOVE_EVENT_LISTENER_STR = 'removeEventListener';\n /** zoneSymbol addEventListener */\n var ZONE_SYMBOL_ADD_EVENT_LISTENER = Zone.__symbol__(ADD_EVENT_LISTENER_STR);\n /** zoneSymbol removeEventListener */\n var ZONE_SYMBOL_REMOVE_EVENT_LISTENER = Zone.__symbol__(REMOVE_EVENT_LISTENER_STR);\n /** true string const */\n var TRUE_STR = 'true';\n /** false string const */\n var FALSE_STR = 'false';\n /** Zone symbol prefix string const. */\n var ZONE_SYMBOL_PREFIX = Zone.__symbol__('');\n function wrapWithCurrentZone(callback, source) {\n return Zone.current.wrap(callback, source);\n }\n function scheduleMacroTaskWithCurrentZone(source, callback, data, customSchedule, customCancel) {\n return Zone.current.scheduleMacroTask(source, callback, data, customSchedule, customCancel);\n }\n var zoneSymbol = Zone.__symbol__;\n var isWindowExists = typeof window !== 'undefined';\n var internalWindow = isWindowExists ? window : undefined;\n var _global = isWindowExists && internalWindow || typeof self === 'object' && self || global;\n var REMOVE_ATTRIBUTE = 'removeAttribute';\n var NULL_ON_PROP_VALUE = [null];\n function bindArguments(args, source) {\n for (var i = args.length - 1; i >= 0; i--) {\n if (typeof args[i] === 'function') {\n args[i] = wrapWithCurrentZone(args[i], source + '_' + i);\n }\n }\n return args;\n }\n function patchPrototype(prototype, fnNames) {\n var source = prototype.constructor['name'];\n var _loop_3 = function (i) {\n var name_1 = fnNames[i];\n var delegate = prototype[name_1];\n if (delegate) {\n var prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, name_1);\n if (!isPropertyWritable(prototypeDesc)) {\n return \"continue\";\n }\n prototype[name_1] = (function (delegate) {\n var patched = function () {\n return delegate.apply(this, bindArguments(arguments, source + '.' + name_1));\n };\n attachOriginToPatched(patched, delegate);\n return patched;\n })(delegate);\n }\n };\n for (var i = 0; i < fnNames.length; i++) {\n _loop_3(i);\n }\n }\n function isPropertyWritable(propertyDesc) {\n if (!propertyDesc) {\n return true;\n }\n if (propertyDesc.writable === false) {\n return false;\n }\n return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined');\n }\n var isWebWorker = (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope);\n // Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n // this code.\n var isNode = (!('nw' in _global) && typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]');\n var isBrowser = !isNode && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']);\n // we are in electron of nw, so we are both browser and nodejs\n // Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n // this code.\n var isMix = typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]' && !isWebWorker &&\n !!(isWindowExists && internalWindow['HTMLElement']);\n var zoneSymbolEventNames = {};\n var wrapFn = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n var eventNameSymbol = zoneSymbolEventNames[event.type];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames[event.type] = zoneSymbol('ON_PROPERTY' + event.type);\n }\n var target = this || event.target || _global;\n var listener = target[eventNameSymbol];\n var result;\n if (isBrowser && target === internalWindow && event.type === 'error') {\n // window.onerror have different signiture\n // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror#window.onerror\n // and onerror callback will prevent default when callback return true\n var errorEvent = event;\n result = listener &&\n listener.call(this, errorEvent.message, errorEvent.filename, errorEvent.lineno, errorEvent.colno, errorEvent.error);\n if (result === true) {\n event.preventDefault();\n }\n }\n else {\n result = listener && listener.apply(this, arguments);\n if (result != undefined && !result) {\n event.preventDefault();\n }\n }\n return result;\n };\n function patchProperty(obj, prop, prototype) {\n var desc = ObjectGetOwnPropertyDescriptor(obj, prop);\n if (!desc && prototype) {\n // when patch window object, use prototype to check prop exist or not\n var prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, prop);\n if (prototypeDesc) {\n desc = { enumerable: true, configurable: true };\n }\n }\n // if the descriptor not exists or is not configurable\n // just return\n if (!desc || !desc.configurable) {\n return;\n }\n var onPropPatchedSymbol = zoneSymbol('on' + prop + 'patched');\n if (obj.hasOwnProperty(onPropPatchedSymbol) && obj[onPropPatchedSymbol]) {\n return;\n }\n // A property descriptor cannot have getter/setter and be writable\n // deleting the writable and value properties avoids this error:\n //\n // TypeError: property descriptors must not specify a value or be writable when a\n // getter or setter has been specified\n delete desc.writable;\n delete desc.value;\n var originalDescGet = desc.get;\n var originalDescSet = desc.set;\n // substr(2) cuz 'onclick' -> 'click', etc\n var eventName = prop.substr(2);\n var eventNameSymbol = zoneSymbolEventNames[eventName];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames[eventName] = zoneSymbol('ON_PROPERTY' + eventName);\n }\n desc.set = function (newValue) {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n var target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return;\n }\n var previousValue = target[eventNameSymbol];\n if (previousValue) {\n target.removeEventListener(eventName, wrapFn);\n }\n // issue #978, when onload handler was added before loading zone.js\n // we should remove it with originalDescSet\n if (originalDescSet) {\n originalDescSet.apply(target, NULL_ON_PROP_VALUE);\n }\n if (typeof newValue === 'function') {\n target[eventNameSymbol] = newValue;\n target.addEventListener(eventName, wrapFn, false);\n }\n else {\n target[eventNameSymbol] = null;\n }\n };\n // The getter would return undefined for unassigned properties but the default value of an\n // unassigned property is null\n desc.get = function () {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n var target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return null;\n }\n var listener = target[eventNameSymbol];\n if (listener) {\n return listener;\n }\n else if (originalDescGet) {\n // result will be null when use inline event attribute,\n // such as \n // because the onclick function is internal raw uncompiled handler\n // the onclick will be evaluated when first time event was triggered or\n // the property is accessed, https://github.com/angular/zone.js/issues/525\n // so we should use original native get to retrieve the handler\n var value = originalDescGet && originalDescGet.call(this);\n if (value) {\n desc.set.call(this, value);\n if (typeof target[REMOVE_ATTRIBUTE] === 'function') {\n target.removeAttribute(prop);\n }\n return value;\n }\n }\n return null;\n };\n ObjectDefineProperty(obj, prop, desc);\n obj[onPropPatchedSymbol] = true;\n }\n function patchOnProperties(obj, properties, prototype) {\n if (properties) {\n for (var i = 0; i < properties.length; i++) {\n patchProperty(obj, 'on' + properties[i], prototype);\n }\n }\n else {\n var onProperties = [];\n for (var prop in obj) {\n if (prop.substr(0, 2) == 'on') {\n onProperties.push(prop);\n }\n }\n for (var j = 0; j < onProperties.length; j++) {\n patchProperty(obj, onProperties[j], prototype);\n }\n }\n }\n var originalInstanceKey = zoneSymbol('originalInstance');\n // wrap some native API on `window`\n function patchClass(className) {\n var OriginalClass = _global[className];\n if (!OriginalClass)\n return;\n // keep original class in global\n _global[zoneSymbol(className)] = OriginalClass;\n _global[className] = function () {\n var a = bindArguments(arguments, className);\n switch (a.length) {\n case 0:\n this[originalInstanceKey] = new OriginalClass();\n break;\n case 1:\n this[originalInstanceKey] = new OriginalClass(a[0]);\n break;\n case 2:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1]);\n break;\n case 3:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]);\n break;\n case 4:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]);\n break;\n default:\n throw new Error('Arg list too long.');\n }\n };\n // attach original delegate to patched function\n attachOriginToPatched(_global[className], OriginalClass);\n var instance = new OriginalClass(function () { });\n var prop;\n for (prop in instance) {\n // https://bugs.webkit.org/show_bug.cgi?id=44721\n if (className === 'XMLHttpRequest' && prop === 'responseBlob')\n continue;\n (function (prop) {\n if (typeof instance[prop] === 'function') {\n _global[className].prototype[prop] = function () {\n return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments);\n };\n }\n else {\n ObjectDefineProperty(_global[className].prototype, prop, {\n set: function (fn) {\n if (typeof fn === 'function') {\n this[originalInstanceKey][prop] = wrapWithCurrentZone(fn, className + '.' + prop);\n // keep callback in wrapped function so we can\n // use it in Function.prototype.toString to return\n // the native one.\n attachOriginToPatched(this[originalInstanceKey][prop], fn);\n }\n else {\n this[originalInstanceKey][prop] = fn;\n }\n },\n get: function () { return this[originalInstanceKey][prop]; }\n });\n }\n }(prop));\n }\n for (prop in OriginalClass) {\n if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) {\n _global[className][prop] = OriginalClass[prop];\n }\n }\n }\n function copySymbolProperties(src, dest) {\n if (typeof Object.getOwnPropertySymbols !== 'function') {\n return;\n }\n var symbols = Object.getOwnPropertySymbols(src);\n symbols.forEach(function (symbol) {\n var desc = Object.getOwnPropertyDescriptor(src, symbol);\n Object.defineProperty(dest, symbol, {\n get: function () { return src[symbol]; },\n set: function (value) {\n if (desc && (!desc.writable || typeof desc.set !== 'function')) {\n // if src[symbol] is not writable or not have a setter, just return\n return;\n }\n src[symbol] = value;\n },\n enumerable: desc ? desc.enumerable : true,\n configurable: desc ? desc.configurable : true\n });\n });\n }\n var shouldCopySymbolProperties = false;\n function patchMethod(target, name, patchFn) {\n var proto = target;\n while (proto && !proto.hasOwnProperty(name)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && target[name]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = target;\n }\n var delegateName = zoneSymbol(name);\n var delegate = null;\n if (proto && !(delegate = proto[delegateName])) {\n delegate = proto[delegateName] = proto[name];\n // check whether proto[name] is writable\n // some property is readonly in safari, such as HtmlCanvasElement.prototype.toBlob\n var desc = proto && ObjectGetOwnPropertyDescriptor(proto, name);\n if (isPropertyWritable(desc)) {\n var patchDelegate_1 = patchFn(delegate, delegateName, name);\n proto[name] = function () { return patchDelegate_1(this, arguments); };\n attachOriginToPatched(proto[name], delegate);\n if (shouldCopySymbolProperties) {\n copySymbolProperties(delegate, proto[name]);\n }\n }\n }\n return delegate;\n }\n // TODO: @JiaLiPassion, support cancel task later if necessary\n function patchMacroTask(obj, funcName, metaCreator) {\n var setNative = null;\n function scheduleTask(task) {\n var data = task.data;\n data.args[data.cbIdx] = function () { task.invoke.apply(this, arguments); };\n setNative.apply(data.target, data.args);\n return task;\n }\n setNative = patchMethod(obj, funcName, function (delegate) { return function (self, args) {\n var meta = metaCreator(self, args);\n if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') {\n return scheduleMacroTaskWithCurrentZone(meta.name, args[meta.cbIdx], meta, scheduleTask);\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(self, args);\n }\n }; });\n }\n function attachOriginToPatched(patched, original) {\n patched[zoneSymbol('OriginalDelegate')] = original;\n }\n var isDetectedIEOrEdge = false;\n var ieOrEdge = false;\n function isIE() {\n try {\n var ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1) {\n return true;\n }\n }\n catch (error) {\n }\n return false;\n }\n function isIEOrEdge() {\n if (isDetectedIEOrEdge) {\n return ieOrEdge;\n }\n isDetectedIEOrEdge = true;\n try {\n var ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1 || ua.indexOf('Edge/') !== -1) {\n ieOrEdge = true;\n }\n }\n catch (error) {\n }\n return ieOrEdge;\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n // override Function.prototype.toString to make zone.js patched function\n // look like native function\n Zone.__load_patch('toString', function (global) {\n // patch Func.prototype.toString to let them look like native\n var originalFunctionToString = Function.prototype.toString;\n var ORIGINAL_DELEGATE_SYMBOL = zoneSymbol('OriginalDelegate');\n var PROMISE_SYMBOL = zoneSymbol('Promise');\n var ERROR_SYMBOL = zoneSymbol('Error');\n var newFunctionToString = function toString() {\n if (typeof this === 'function') {\n var originalDelegate = this[ORIGINAL_DELEGATE_SYMBOL];\n if (originalDelegate) {\n if (typeof originalDelegate === 'function') {\n return originalFunctionToString.call(originalDelegate);\n }\n else {\n return Object.prototype.toString.call(originalDelegate);\n }\n }\n if (this === Promise) {\n var nativePromise = global[PROMISE_SYMBOL];\n if (nativePromise) {\n return originalFunctionToString.call(nativePromise);\n }\n }\n if (this === Error) {\n var nativeError = global[ERROR_SYMBOL];\n if (nativeError) {\n return originalFunctionToString.call(nativeError);\n }\n }\n }\n return originalFunctionToString.call(this);\n };\n newFunctionToString[ORIGINAL_DELEGATE_SYMBOL] = originalFunctionToString;\n Function.prototype.toString = newFunctionToString;\n // patch Object.prototype.toString to let them look like native\n var originalObjectToString = Object.prototype.toString;\n var PROMISE_OBJECT_TO_STRING = '[object Promise]';\n Object.prototype.toString = function () {\n if (this instanceof Promise) {\n return PROMISE_OBJECT_TO_STRING;\n }\n return originalObjectToString.call(this);\n };\n });\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n var passiveSupported = false;\n if (typeof window !== 'undefined') {\n try {\n var options = Object.defineProperty({}, 'passive', { get: function () { passiveSupported = true; } });\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n }\n // an identifier to tell ZoneTask do not create a new invoke closure\n var OPTIMIZED_ZONE_EVENT_TASK_DATA = {\n useG: true\n };\n var zoneSymbolEventNames$1 = {};\n var globalSources = {};\n var EVENT_NAME_SYMBOL_REGX = new RegExp('^' + ZONE_SYMBOL_PREFIX + '(\\\\w+)(true|false)$');\n var IMMEDIATE_PROPAGATION_SYMBOL = zoneSymbol('propagationStopped');\n function prepareEventNames(eventName, eventNameToString) {\n var falseEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + FALSE_STR;\n var trueEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + TRUE_STR;\n var symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames$1[eventName] = {};\n zoneSymbolEventNames$1[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames$1[eventName][TRUE_STR] = symbolCapture;\n }\n function patchEventTarget(_global, apis, patchOptions) {\n var ADD_EVENT_LISTENER = (patchOptions && patchOptions.add) || ADD_EVENT_LISTENER_STR;\n var REMOVE_EVENT_LISTENER = (patchOptions && patchOptions.rm) || REMOVE_EVENT_LISTENER_STR;\n var LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.listeners) || 'eventListeners';\n var REMOVE_ALL_LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.rmAll) || 'removeAllListeners';\n var zoneSymbolAddEventListener = zoneSymbol(ADD_EVENT_LISTENER);\n var ADD_EVENT_LISTENER_SOURCE = '.' + ADD_EVENT_LISTENER + ':';\n var PREPEND_EVENT_LISTENER = 'prependListener';\n var PREPEND_EVENT_LISTENER_SOURCE = '.' + PREPEND_EVENT_LISTENER + ':';\n var invokeTask = function (task, target, event) {\n // for better performance, check isRemoved which is set\n // by removeEventListener\n if (task.isRemoved) {\n return;\n }\n var delegate = task.callback;\n if (typeof delegate === 'object' && delegate.handleEvent) {\n // create the bind version of handleEvent when invoke\n task.callback = function (event) { return delegate.handleEvent(event); };\n task.originalDelegate = delegate;\n }\n // invoke static task.invoke\n task.invoke(task, target, [event]);\n var options = task.options;\n if (options && typeof options === 'object' && options.once) {\n // if options.once is true, after invoke once remove listener here\n // only browser need to do this, nodejs eventEmitter will cal removeListener\n // inside EventEmitter.once\n var delegate_1 = task.originalDelegate ? task.originalDelegate : task.callback;\n target[REMOVE_EVENT_LISTENER].call(target, event.type, delegate_1, options);\n }\n };\n // global shared zoneAwareCallback to handle all event callback with capture = false\n var globalZoneAwareCallback = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n var target = this || event.target || _global;\n var tasks = target[zoneSymbolEventNames$1[event.type][FALSE_STR]];\n if (tasks) {\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n invokeTask(tasks[0], target, event);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n var copyTasks = tasks.slice();\n for (var i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n invokeTask(copyTasks[i], target, event);\n }\n }\n }\n };\n // global shared zoneAwareCallback to handle all event callback with capture = true\n var globalZoneAwareCaptureCallback = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n var target = this || event.target || _global;\n var tasks = target[zoneSymbolEventNames$1[event.type][TRUE_STR]];\n if (tasks) {\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n invokeTask(tasks[0], target, event);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n var copyTasks = tasks.slice();\n for (var i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n invokeTask(copyTasks[i], target, event);\n }\n }\n }\n };\n function patchEventTargetMethods(obj, patchOptions) {\n if (!obj) {\n return false;\n }\n var useGlobalCallback = true;\n if (patchOptions && patchOptions.useG !== undefined) {\n useGlobalCallback = patchOptions.useG;\n }\n var validateHandler = patchOptions && patchOptions.vh;\n var checkDuplicate = true;\n if (patchOptions && patchOptions.chkDup !== undefined) {\n checkDuplicate = patchOptions.chkDup;\n }\n var returnTarget = false;\n if (patchOptions && patchOptions.rt !== undefined) {\n returnTarget = patchOptions.rt;\n }\n var proto = obj;\n while (proto && !proto.hasOwnProperty(ADD_EVENT_LISTENER)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && obj[ADD_EVENT_LISTENER]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = obj;\n }\n if (!proto) {\n return false;\n }\n if (proto[zoneSymbolAddEventListener]) {\n return false;\n }\n var eventNameToString = patchOptions && patchOptions.eventNameToString;\n // a shared global taskData to pass data for scheduleEventTask\n // so we do not need to create a new object just for pass some data\n var taskData = {};\n var nativeAddEventListener = proto[zoneSymbolAddEventListener] = proto[ADD_EVENT_LISTENER];\n var nativeRemoveEventListener = proto[zoneSymbol(REMOVE_EVENT_LISTENER)] =\n proto[REMOVE_EVENT_LISTENER];\n var nativeListeners = proto[zoneSymbol(LISTENERS_EVENT_LISTENER)] =\n proto[LISTENERS_EVENT_LISTENER];\n var nativeRemoveAllListeners = proto[zoneSymbol(REMOVE_ALL_LISTENERS_EVENT_LISTENER)] =\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER];\n var nativePrependEventListener;\n if (patchOptions && patchOptions.prepend) {\n nativePrependEventListener = proto[zoneSymbol(patchOptions.prepend)] =\n proto[patchOptions.prepend];\n }\n /**\n * This util function will build an option object with passive option\n * to handle all possible input from the user.\n */\n function buildEventListenerOptions(options, passive) {\n if (!passiveSupported && typeof options === 'object' && options) {\n // doesn't support passive but user want to pass an object as options.\n // this will not work on some old browser, so we just pass a boolean\n // as useCapture parameter\n return !!options.capture;\n }\n if (!passiveSupported || !passive) {\n return options;\n }\n if (typeof options === 'boolean') {\n return { capture: options, passive: true };\n }\n if (!options) {\n return { passive: true };\n }\n if (typeof options === 'object' && options.passive !== false) {\n return Object.assign(Object.assign({}, options), { passive: true });\n }\n return options;\n }\n var customScheduleGlobal = function (task) {\n // if there is already a task for the eventName + capture,\n // just return, because we use the shared globalZoneAwareCallback here.\n if (taskData.isExisting) {\n return;\n }\n return nativeAddEventListener.call(taskData.target, taskData.eventName, taskData.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, taskData.options);\n };\n var customCancelGlobal = function (task) {\n // if task is not marked as isRemoved, this call is directly\n // from Zone.prototype.cancelTask, we should remove the task\n // from tasksList of target first\n if (!task.isRemoved) {\n var symbolEventNames = zoneSymbolEventNames$1[task.eventName];\n var symbolEventName = void 0;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[task.capture ? TRUE_STR : FALSE_STR];\n }\n var existingTasks = symbolEventName && task.target[symbolEventName];\n if (existingTasks) {\n for (var i = 0; i < existingTasks.length; i++) {\n var existingTask = existingTasks[i];\n if (existingTask === task) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n task.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n task.allRemoved = true;\n task.target[symbolEventName] = null;\n }\n break;\n }\n }\n }\n }\n // if all tasks for the eventName + capture have gone,\n // we will really remove the global event callback,\n // if not, return\n if (!task.allRemoved) {\n return;\n }\n return nativeRemoveEventListener.call(task.target, task.eventName, task.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, task.options);\n };\n var customScheduleNonGlobal = function (task) {\n return nativeAddEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n var customSchedulePrepend = function (task) {\n return nativePrependEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n var customCancelNonGlobal = function (task) {\n return nativeRemoveEventListener.call(task.target, task.eventName, task.invoke, task.options);\n };\n var customSchedule = useGlobalCallback ? customScheduleGlobal : customScheduleNonGlobal;\n var customCancel = useGlobalCallback ? customCancelGlobal : customCancelNonGlobal;\n var compareTaskCallbackVsDelegate = function (task, delegate) {\n var typeOfDelegate = typeof delegate;\n return (typeOfDelegate === 'function' && task.callback === delegate) ||\n (typeOfDelegate === 'object' && task.originalDelegate === delegate);\n };\n var compare = (patchOptions && patchOptions.diff) ? patchOptions.diff : compareTaskCallbackVsDelegate;\n var blackListedEvents = Zone[zoneSymbol('BLACK_LISTED_EVENTS')];\n var passiveEvents = _global[zoneSymbol('PASSIVE_EVENTS')];\n var makeAddListener = function (nativeListener, addSource, customScheduleFn, customCancelFn, returnTarget, prepend) {\n if (returnTarget === void 0) { returnTarget = false; }\n if (prepend === void 0) { prepend = false; }\n return function () {\n var target = this || _global;\n var eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n var delegate = arguments[1];\n if (!delegate) {\n return nativeListener.apply(this, arguments);\n }\n if (isNode && eventName === 'uncaughtException') {\n // don't patch uncaughtException of nodejs to prevent endless loop\n return nativeListener.apply(this, arguments);\n }\n // don't create the bind delegate function for handleEvent\n // case here to improve addEventListener performance\n // we will create the bind delegate when invoke\n var isHandleEvent = false;\n if (typeof delegate !== 'function') {\n if (!delegate.handleEvent) {\n return nativeListener.apply(this, arguments);\n }\n isHandleEvent = true;\n }\n if (validateHandler && !validateHandler(nativeListener, delegate, target, arguments)) {\n return;\n }\n var passive = passiveSupported && !!passiveEvents && passiveEvents.indexOf(eventName) !== -1;\n var options = buildEventListenerOptions(arguments[2], passive);\n if (blackListedEvents) {\n // check black list\n for (var i = 0; i < blackListedEvents.length; i++) {\n if (eventName === blackListedEvents[i]) {\n if (passive) {\n return nativeListener.call(target, eventName, delegate, options);\n }\n else {\n return nativeListener.apply(this, arguments);\n }\n }\n }\n }\n var capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n var once = options && typeof options === 'object' ? options.once : false;\n var zone = Zone.current;\n var symbolEventNames = zoneSymbolEventNames$1[eventName];\n if (!symbolEventNames) {\n prepareEventNames(eventName, eventNameToString);\n symbolEventNames = zoneSymbolEventNames$1[eventName];\n }\n var symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n var existingTasks = target[symbolEventName];\n var isExisting = false;\n if (existingTasks) {\n // already have task registered\n isExisting = true;\n if (checkDuplicate) {\n for (var i = 0; i < existingTasks.length; i++) {\n if (compare(existingTasks[i], delegate)) {\n // same callback, same capture, same event name, just return\n return;\n }\n }\n }\n }\n else {\n existingTasks = target[symbolEventName] = [];\n }\n var source;\n var constructorName = target.constructor['name'];\n var targetSource = globalSources[constructorName];\n if (targetSource) {\n source = targetSource[eventName];\n }\n if (!source) {\n source = constructorName + addSource +\n (eventNameToString ? eventNameToString(eventName) : eventName);\n }\n // do not create a new object as task.data to pass those things\n // just use the global shared one\n taskData.options = options;\n if (once) {\n // if addEventListener with once options, we don't pass it to\n // native addEventListener, instead we keep the once setting\n // and handle ourselves.\n taskData.options.once = false;\n }\n taskData.target = target;\n taskData.capture = capture;\n taskData.eventName = eventName;\n taskData.isExisting = isExisting;\n var data = useGlobalCallback ? OPTIMIZED_ZONE_EVENT_TASK_DATA : undefined;\n // keep taskData into data to allow onScheduleEventTask to access the task information\n if (data) {\n data.taskData = taskData;\n }\n var task = zone.scheduleEventTask(source, delegate, data, customScheduleFn, customCancelFn);\n // should clear taskData.target to avoid memory leak\n // issue, https://github.com/angular/angular/issues/20442\n taskData.target = null;\n // need to clear up taskData because it is a global object\n if (data) {\n data.taskData = null;\n }\n // have to save those information to task in case\n // application may call task.zone.cancelTask() directly\n if (once) {\n options.once = true;\n }\n if (!(!passiveSupported && typeof task.options === 'boolean')) {\n // if not support passive, and we pass an option object\n // to addEventListener, we should save the options to task\n task.options = options;\n }\n task.target = target;\n task.capture = capture;\n task.eventName = eventName;\n if (isHandleEvent) {\n // save original delegate for compare to check duplicate\n task.originalDelegate = delegate;\n }\n if (!prepend) {\n existingTasks.push(task);\n }\n else {\n existingTasks.unshift(task);\n }\n if (returnTarget) {\n return target;\n }\n };\n };\n proto[ADD_EVENT_LISTENER] = makeAddListener(nativeAddEventListener, ADD_EVENT_LISTENER_SOURCE, customSchedule, customCancel, returnTarget);\n if (nativePrependEventListener) {\n proto[PREPEND_EVENT_LISTENER] = makeAddListener(nativePrependEventListener, PREPEND_EVENT_LISTENER_SOURCE, customSchedulePrepend, customCancel, returnTarget, true);\n }\n proto[REMOVE_EVENT_LISTENER] = function () {\n var target = this || _global;\n var eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n var options = arguments[2];\n var capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n var delegate = arguments[1];\n if (!delegate) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (validateHandler &&\n !validateHandler(nativeRemoveEventListener, delegate, target, arguments)) {\n return;\n }\n var symbolEventNames = zoneSymbolEventNames$1[eventName];\n var symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n }\n var existingTasks = symbolEventName && target[symbolEventName];\n if (existingTasks) {\n for (var i = 0; i < existingTasks.length; i++) {\n var existingTask = existingTasks[i];\n if (compare(existingTask, delegate)) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n existingTask.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n existingTask.allRemoved = true;\n target[symbolEventName] = null;\n // in the target, we have an event listener which is added by on_property\n // such as target.onclick = function() {}, so we need to clear this internal\n // property too if all delegates all removed\n if (typeof eventName === 'string') {\n var onPropertySymbol = ZONE_SYMBOL_PREFIX + 'ON_PROPERTY' + eventName;\n target[onPropertySymbol] = null;\n }\n }\n existingTask.zone.cancelTask(existingTask);\n if (returnTarget) {\n return target;\n }\n return;\n }\n }\n }\n // issue 930, didn't find the event name or callback\n // from zone kept existingTasks, the callback maybe\n // added outside of zone, we need to call native removeEventListener\n // to try to remove it.\n return nativeRemoveEventListener.apply(this, arguments);\n };\n proto[LISTENERS_EVENT_LISTENER] = function () {\n var target = this || _global;\n var eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n var listeners = [];\n var tasks = findEventTasks(target, eventNameToString ? eventNameToString(eventName) : eventName);\n for (var i = 0; i < tasks.length; i++) {\n var task = tasks[i];\n var delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n listeners.push(delegate);\n }\n return listeners;\n };\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER] = function () {\n var target = this || _global;\n var eventName = arguments[0];\n if (!eventName) {\n var keys = Object.keys(target);\n for (var i = 0; i < keys.length; i++) {\n var prop = keys[i];\n var match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n var evtName = match && match[1];\n // in nodejs EventEmitter, removeListener event is\n // used for monitoring the removeListener call,\n // so just keep removeListener eventListener until\n // all other eventListeners are removed\n if (evtName && evtName !== 'removeListener') {\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, evtName);\n }\n }\n // remove removeListener listener finally\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, 'removeListener');\n }\n else {\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n var symbolEventNames = zoneSymbolEventNames$1[eventName];\n if (symbolEventNames) {\n var symbolEventName = symbolEventNames[FALSE_STR];\n var symbolCaptureEventName = symbolEventNames[TRUE_STR];\n var tasks = target[symbolEventName];\n var captureTasks = target[symbolCaptureEventName];\n if (tasks) {\n var removeTasks = tasks.slice();\n for (var i = 0; i < removeTasks.length; i++) {\n var task = removeTasks[i];\n var delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n if (captureTasks) {\n var removeTasks = captureTasks.slice();\n for (var i = 0; i < removeTasks.length; i++) {\n var task = removeTasks[i];\n var delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n }\n }\n if (returnTarget) {\n return this;\n }\n };\n // for native toString patch\n attachOriginToPatched(proto[ADD_EVENT_LISTENER], nativeAddEventListener);\n attachOriginToPatched(proto[REMOVE_EVENT_LISTENER], nativeRemoveEventListener);\n if (nativeRemoveAllListeners) {\n attachOriginToPatched(proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER], nativeRemoveAllListeners);\n }\n if (nativeListeners) {\n attachOriginToPatched(proto[LISTENERS_EVENT_LISTENER], nativeListeners);\n }\n return true;\n }\n var results = [];\n for (var i = 0; i < apis.length; i++) {\n results[i] = patchEventTargetMethods(apis[i], patchOptions);\n }\n return results;\n }\n function findEventTasks(target, eventName) {\n if (!eventName) {\n var foundTasks = [];\n for (var prop in target) {\n var match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n var evtName = match && match[1];\n if (evtName && (!eventName || evtName === eventName)) {\n var tasks = target[prop];\n if (tasks) {\n for (var i = 0; i < tasks.length; i++) {\n foundTasks.push(tasks[i]);\n }\n }\n }\n }\n return foundTasks;\n }\n var symbolEventName = zoneSymbolEventNames$1[eventName];\n if (!symbolEventName) {\n prepareEventNames(eventName);\n symbolEventName = zoneSymbolEventNames$1[eventName];\n }\n var captureFalseTasks = target[symbolEventName[FALSE_STR]];\n var captureTrueTasks = target[symbolEventName[TRUE_STR]];\n if (!captureFalseTasks) {\n return captureTrueTasks ? captureTrueTasks.slice() : [];\n }\n else {\n return captureTrueTasks ? captureFalseTasks.concat(captureTrueTasks) :\n captureFalseTasks.slice();\n }\n }\n function patchEventPrototype(global, api) {\n var Event = global['Event'];\n if (Event && Event.prototype) {\n api.patchMethod(Event.prototype, 'stopImmediatePropagation', function (delegate) { return function (self, args) {\n self[IMMEDIATE_PROPAGATION_SYMBOL] = true;\n // we need to call the native stopImmediatePropagation\n // in case in some hybrid application, some part of\n // application will be controlled by zone, some are not\n delegate && delegate.apply(self, args);\n }; });\n }\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function patchCallbacks(api, target, targetName, method, callbacks) {\n var symbol = Zone.__symbol__(method);\n if (target[symbol]) {\n return;\n }\n var nativeDelegate = target[symbol] = target[method];\n target[method] = function (name, opts, options) {\n if (opts && opts.prototype) {\n callbacks.forEach(function (callback) {\n var source = targetName + \".\" + method + \"::\" + callback;\n var prototype = opts.prototype;\n if (prototype.hasOwnProperty(callback)) {\n var descriptor = api.ObjectGetOwnPropertyDescriptor(prototype, callback);\n if (descriptor && descriptor.value) {\n descriptor.value = api.wrapWithCurrentZone(descriptor.value, source);\n api._redefineProperty(opts.prototype, callback, descriptor);\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n });\n }\n return nativeDelegate.call(target, name, opts, options);\n };\n api.attachOriginToPatched(target[method], nativeDelegate);\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n var globalEventHandlersEventNames = [\n 'abort',\n 'animationcancel',\n 'animationend',\n 'animationiteration',\n 'auxclick',\n 'beforeinput',\n 'blur',\n 'cancel',\n 'canplay',\n 'canplaythrough',\n 'change',\n 'compositionstart',\n 'compositionupdate',\n 'compositionend',\n 'cuechange',\n 'click',\n 'close',\n 'contextmenu',\n 'curechange',\n 'dblclick',\n 'drag',\n 'dragend',\n 'dragenter',\n 'dragexit',\n 'dragleave',\n 'dragover',\n 'drop',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'focus',\n 'focusin',\n 'focusout',\n 'gotpointercapture',\n 'input',\n 'invalid',\n 'keydown',\n 'keypress',\n 'keyup',\n 'load',\n 'loadstart',\n 'loadeddata',\n 'loadedmetadata',\n 'lostpointercapture',\n 'mousedown',\n 'mouseenter',\n 'mouseleave',\n 'mousemove',\n 'mouseout',\n 'mouseover',\n 'mouseup',\n 'mousewheel',\n 'orientationchange',\n 'pause',\n 'play',\n 'playing',\n 'pointercancel',\n 'pointerdown',\n 'pointerenter',\n 'pointerleave',\n 'pointerlockchange',\n 'mozpointerlockchange',\n 'webkitpointerlockerchange',\n 'pointerlockerror',\n 'mozpointerlockerror',\n 'webkitpointerlockerror',\n 'pointermove',\n 'pointout',\n 'pointerover',\n 'pointerup',\n 'progress',\n 'ratechange',\n 'reset',\n 'resize',\n 'scroll',\n 'seeked',\n 'seeking',\n 'select',\n 'selectionchange',\n 'selectstart',\n 'show',\n 'sort',\n 'stalled',\n 'submit',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'touchcancel',\n 'touchmove',\n 'touchstart',\n 'touchend',\n 'transitioncancel',\n 'transitionend',\n 'waiting',\n 'wheel'\n ];\n var documentEventNames = [\n 'afterscriptexecute', 'beforescriptexecute', 'DOMContentLoaded', 'freeze', 'fullscreenchange',\n 'mozfullscreenchange', 'webkitfullscreenchange', 'msfullscreenchange', 'fullscreenerror',\n 'mozfullscreenerror', 'webkitfullscreenerror', 'msfullscreenerror', 'readystatechange',\n 'visibilitychange', 'resume'\n ];\n var windowEventNames = [\n 'absolutedeviceorientation',\n 'afterinput',\n 'afterprint',\n 'appinstalled',\n 'beforeinstallprompt',\n 'beforeprint',\n 'beforeunload',\n 'devicelight',\n 'devicemotion',\n 'deviceorientation',\n 'deviceorientationabsolute',\n 'deviceproximity',\n 'hashchange',\n 'languagechange',\n 'message',\n 'mozbeforepaint',\n 'offline',\n 'online',\n 'paint',\n 'pageshow',\n 'pagehide',\n 'popstate',\n 'rejectionhandled',\n 'storage',\n 'unhandledrejection',\n 'unload',\n 'userproximity',\n 'vrdisplayconnected',\n 'vrdisplaydisconnected',\n 'vrdisplaypresentchange'\n ];\n var htmlElementEventNames = [\n 'beforecopy', 'beforecut', 'beforepaste', 'copy', 'cut', 'paste', 'dragstart', 'loadend',\n 'animationstart', 'search', 'transitionrun', 'transitionstart', 'webkitanimationend',\n 'webkitanimationiteration', 'webkitanimationstart', 'webkittransitionend'\n ];\n var mediaElementEventNames = ['encrypted', 'waitingforkey', 'msneedkey', 'mozinterruptbegin', 'mozinterruptend'];\n var ieElementEventNames = [\n 'activate',\n 'afterupdate',\n 'ariarequest',\n 'beforeactivate',\n 'beforedeactivate',\n 'beforeeditfocus',\n 'beforeupdate',\n 'cellchange',\n 'controlselect',\n 'dataavailable',\n 'datasetchanged',\n 'datasetcomplete',\n 'errorupdate',\n 'filterchange',\n 'layoutcomplete',\n 'losecapture',\n 'move',\n 'moveend',\n 'movestart',\n 'propertychange',\n 'resizeend',\n 'resizestart',\n 'rowenter',\n 'rowexit',\n 'rowsdelete',\n 'rowsinserted',\n 'command',\n 'compassneedscalibration',\n 'deactivate',\n 'help',\n 'mscontentzoom',\n 'msmanipulationstatechanged',\n 'msgesturechange',\n 'msgesturedoubletap',\n 'msgestureend',\n 'msgesturehold',\n 'msgesturestart',\n 'msgesturetap',\n 'msgotpointercapture',\n 'msinertiastart',\n 'mslostpointercapture',\n 'mspointercancel',\n 'mspointerdown',\n 'mspointerenter',\n 'mspointerhover',\n 'mspointerleave',\n 'mspointermove',\n 'mspointerout',\n 'mspointerover',\n 'mspointerup',\n 'pointerout',\n 'mssitemodejumplistitemremoved',\n 'msthumbnailclick',\n 'stop',\n 'storagecommit'\n ];\n var webglEventNames = ['webglcontextrestored', 'webglcontextlost', 'webglcontextcreationerror'];\n var formEventNames = ['autocomplete', 'autocompleteerror'];\n var detailEventNames = ['toggle'];\n var frameEventNames = ['load'];\n var frameSetEventNames = ['blur', 'error', 'focus', 'load', 'resize', 'scroll', 'messageerror'];\n var marqueeEventNames = ['bounce', 'finish', 'start'];\n var XMLHttpRequestEventNames = [\n 'loadstart', 'progress', 'abort', 'error', 'load', 'progress', 'timeout', 'loadend',\n 'readystatechange'\n ];\n var IDBIndexEventNames = ['upgradeneeded', 'complete', 'abort', 'success', 'error', 'blocked', 'versionchange', 'close'];\n var websocketEventNames = ['close', 'error', 'open', 'message'];\n var workerEventNames = ['error', 'message'];\n var eventNames = globalEventHandlersEventNames.concat(webglEventNames, formEventNames, detailEventNames, documentEventNames, windowEventNames, htmlElementEventNames, ieElementEventNames);\n function filterProperties(target, onProperties, ignoreProperties) {\n if (!ignoreProperties || ignoreProperties.length === 0) {\n return onProperties;\n }\n var tip = ignoreProperties.filter(function (ip) { return ip.target === target; });\n if (!tip || tip.length === 0) {\n return onProperties;\n }\n var targetIgnoreProperties = tip[0].ignoreProperties;\n return onProperties.filter(function (op) { return targetIgnoreProperties.indexOf(op) === -1; });\n }\n function patchFilteredProperties(target, onProperties, ignoreProperties, prototype) {\n // check whether target is available, sometimes target will be undefined\n // because different browser or some 3rd party plugin.\n if (!target) {\n return;\n }\n var filteredProperties = filterProperties(target, onProperties, ignoreProperties);\n patchOnProperties(target, filteredProperties, prototype);\n }\n function propertyDescriptorPatch(api, _global) {\n if (isNode && !isMix) {\n return;\n }\n if (Zone[api.symbol('patchEvents')]) {\n // events are already been patched by legacy patch.\n return;\n }\n var supportsWebSocket = typeof WebSocket !== 'undefined';\n var ignoreProperties = _global['__Zone_ignore_on_properties'];\n // for browsers that we can patch the descriptor: Chrome & Firefox\n if (isBrowser) {\n var internalWindow_1 = window;\n var ignoreErrorProperties = isIE ? [{ target: internalWindow_1, ignoreProperties: ['error'] }] : [];\n // in IE/Edge, onProp not exist in window object, but in WindowPrototype\n // so we need to pass WindowPrototype to check onProp exist or not\n patchFilteredProperties(internalWindow_1, eventNames.concat(['messageerror']), ignoreProperties ? ignoreProperties.concat(ignoreErrorProperties) : ignoreProperties, ObjectGetPrototypeOf(internalWindow_1));\n patchFilteredProperties(Document.prototype, eventNames, ignoreProperties);\n if (typeof internalWindow_1['SVGElement'] !== 'undefined') {\n patchFilteredProperties(internalWindow_1['SVGElement'].prototype, eventNames, ignoreProperties);\n }\n patchFilteredProperties(Element.prototype, eventNames, ignoreProperties);\n patchFilteredProperties(HTMLElement.prototype, eventNames, ignoreProperties);\n patchFilteredProperties(HTMLMediaElement.prototype, mediaElementEventNames, ignoreProperties);\n patchFilteredProperties(HTMLFrameSetElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties);\n patchFilteredProperties(HTMLBodyElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties);\n patchFilteredProperties(HTMLFrameElement.prototype, frameEventNames, ignoreProperties);\n patchFilteredProperties(HTMLIFrameElement.prototype, frameEventNames, ignoreProperties);\n var HTMLMarqueeElement_1 = internalWindow_1['HTMLMarqueeElement'];\n if (HTMLMarqueeElement_1) {\n patchFilteredProperties(HTMLMarqueeElement_1.prototype, marqueeEventNames, ignoreProperties);\n }\n var Worker_1 = internalWindow_1['Worker'];\n if (Worker_1) {\n patchFilteredProperties(Worker_1.prototype, workerEventNames, ignoreProperties);\n }\n }\n var XMLHttpRequest = _global['XMLHttpRequest'];\n if (XMLHttpRequest) {\n // XMLHttpRequest is not available in ServiceWorker, so we need to check here\n patchFilteredProperties(XMLHttpRequest.prototype, XMLHttpRequestEventNames, ignoreProperties);\n }\n var XMLHttpRequestEventTarget = _global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget) {\n patchFilteredProperties(XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype, XMLHttpRequestEventNames, ignoreProperties);\n }\n if (typeof IDBIndex !== 'undefined') {\n patchFilteredProperties(IDBIndex.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBRequest.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBOpenDBRequest.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBDatabase.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBTransaction.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBCursor.prototype, IDBIndexEventNames, ignoreProperties);\n }\n if (supportsWebSocket) {\n patchFilteredProperties(WebSocket.prototype, websocketEventNames, ignoreProperties);\n }\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n Zone.__load_patch('util', function (global, Zone, api) {\n api.patchOnProperties = patchOnProperties;\n api.patchMethod = patchMethod;\n api.bindArguments = bindArguments;\n api.patchMacroTask = patchMacroTask;\n // In earlier version of zone.js (<0.9.0), we use env name `__zone_symbol__BLACK_LISTED_EVENTS` to\n // define which events will not be patched by `Zone.js`.\n // In newer version (>=0.9.0), we change the env name to `__zone_symbol__UNPATCHED_EVENTS` to keep\n // the name consistent with angular repo.\n // The `__zone_symbol__BLACK_LISTED_EVENTS` is deprecated, but it is still be supported for\n // backwards compatibility.\n var SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS');\n var SYMBOL_UNPATCHED_EVENTS = Zone.__symbol__('UNPATCHED_EVENTS');\n if (global[SYMBOL_UNPATCHED_EVENTS]) {\n global[SYMBOL_BLACK_LISTED_EVENTS] = global[SYMBOL_UNPATCHED_EVENTS];\n }\n if (global[SYMBOL_BLACK_LISTED_EVENTS]) {\n Zone[SYMBOL_BLACK_LISTED_EVENTS] = Zone[SYMBOL_UNPATCHED_EVENTS] =\n global[SYMBOL_BLACK_LISTED_EVENTS];\n }\n api.patchEventPrototype = patchEventPrototype;\n api.patchEventTarget = patchEventTarget;\n api.isIEOrEdge = isIEOrEdge;\n api.ObjectDefineProperty = ObjectDefineProperty;\n api.ObjectGetOwnPropertyDescriptor = ObjectGetOwnPropertyDescriptor;\n api.ObjectCreate = ObjectCreate;\n api.ArraySlice = ArraySlice;\n api.patchClass = patchClass;\n api.wrapWithCurrentZone = wrapWithCurrentZone;\n api.filterProperties = filterProperties;\n api.attachOriginToPatched = attachOriginToPatched;\n api._redefineProperty = Object.defineProperty;\n api.patchCallbacks = patchCallbacks;\n api.getGlobalObjects = function () { return ({ globalSources: globalSources, zoneSymbolEventNames: zoneSymbolEventNames$1, eventNames: eventNames, isBrowser: isBrowser, isMix: isMix, isNode: isNode, TRUE_STR: TRUE_STR,\n FALSE_STR: FALSE_STR, ZONE_SYMBOL_PREFIX: ZONE_SYMBOL_PREFIX, ADD_EVENT_LISTENER_STR: ADD_EVENT_LISTENER_STR, REMOVE_EVENT_LISTENER_STR: REMOVE_EVENT_LISTENER_STR }); };\n });\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n /*\n * This is necessary for Chrome and Chrome mobile, to enable\n * things like redefining `createdCallback` on an element.\n */\n var zoneSymbol$1;\n var _defineProperty;\n var _getOwnPropertyDescriptor;\n var _create;\n var unconfigurablesKey;\n function propertyPatch() {\n zoneSymbol$1 = Zone.__symbol__;\n _defineProperty = Object[zoneSymbol$1('defineProperty')] = Object.defineProperty;\n _getOwnPropertyDescriptor = Object[zoneSymbol$1('getOwnPropertyDescriptor')] =\n Object.getOwnPropertyDescriptor;\n _create = Object.create;\n unconfigurablesKey = zoneSymbol$1('unconfigurables');\n Object.defineProperty = function (obj, prop, desc) {\n if (isUnconfigurable(obj, prop)) {\n throw new TypeError('Cannot assign to read only property \\'' + prop + '\\' of ' + obj);\n }\n var originalConfigurableFlag = desc.configurable;\n if (prop !== 'prototype') {\n desc = rewriteDescriptor(obj, prop, desc);\n }\n return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag);\n };\n Object.defineProperties = function (obj, props) {\n Object.keys(props).forEach(function (prop) { Object.defineProperty(obj, prop, props[prop]); });\n return obj;\n };\n Object.create = function (obj, proto) {\n if (typeof proto === 'object' && !Object.isFrozen(proto)) {\n Object.keys(proto).forEach(function (prop) {\n proto[prop] = rewriteDescriptor(obj, prop, proto[prop]);\n });\n }\n return _create(obj, proto);\n };\n Object.getOwnPropertyDescriptor = function (obj, prop) {\n var desc = _getOwnPropertyDescriptor(obj, prop);\n if (desc && isUnconfigurable(obj, prop)) {\n desc.configurable = false;\n }\n return desc;\n };\n }\n function _redefineProperty(obj, prop, desc) {\n var originalConfigurableFlag = desc.configurable;\n desc = rewriteDescriptor(obj, prop, desc);\n return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag);\n }\n function isUnconfigurable(obj, prop) {\n return obj && obj[unconfigurablesKey] && obj[unconfigurablesKey][prop];\n }\n function rewriteDescriptor(obj, prop, desc) {\n // issue-927, if the desc is frozen, don't try to change the desc\n if (!Object.isFrozen(desc)) {\n desc.configurable = true;\n }\n if (!desc.configurable) {\n // issue-927, if the obj is frozen, don't try to set the desc to obj\n if (!obj[unconfigurablesKey] && !Object.isFrozen(obj)) {\n _defineProperty(obj, unconfigurablesKey, { writable: true, value: {} });\n }\n if (obj[unconfigurablesKey]) {\n obj[unconfigurablesKey][prop] = true;\n }\n }\n return desc;\n }\n function _tryDefineProperty(obj, prop, desc, originalConfigurableFlag) {\n try {\n return _defineProperty(obj, prop, desc);\n }\n catch (error) {\n if (desc.configurable) {\n // In case of errors, when the configurable flag was likely set by rewriteDescriptor(), let's\n // retry with the original flag value\n if (typeof originalConfigurableFlag == 'undefined') {\n delete desc.configurable;\n }\n else {\n desc.configurable = originalConfigurableFlag;\n }\n try {\n return _defineProperty(obj, prop, desc);\n }\n catch (error) {\n var descJson = null;\n try {\n descJson = JSON.stringify(desc);\n }\n catch (error) {\n descJson = desc.toString();\n }\n console.log(\"Attempting to configure '\" + prop + \"' with descriptor '\" + descJson + \"' on object '\" + obj + \"' and got error, giving up: \" + error);\n }\n }\n else {\n throw error;\n }\n }\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function eventTargetLegacyPatch(_global, api) {\n var _a = api.getGlobalObjects(), eventNames = _a.eventNames, globalSources = _a.globalSources, zoneSymbolEventNames = _a.zoneSymbolEventNames, TRUE_STR = _a.TRUE_STR, FALSE_STR = _a.FALSE_STR, ZONE_SYMBOL_PREFIX = _a.ZONE_SYMBOL_PREFIX;\n var WTF_ISSUE_555 = 'Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video';\n var NO_EVENT_TARGET = 'ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket'\n .split(',');\n var EVENT_TARGET = 'EventTarget';\n var apis = [];\n var isWtf = _global['wtf'];\n var WTF_ISSUE_555_ARRAY = WTF_ISSUE_555.split(',');\n if (isWtf) {\n // Workaround for: https://github.com/google/tracing-framework/issues/555\n apis = WTF_ISSUE_555_ARRAY.map(function (v) { return 'HTML' + v + 'Element'; }).concat(NO_EVENT_TARGET);\n }\n else if (_global[EVENT_TARGET]) {\n apis.push(EVENT_TARGET);\n }\n else {\n // Note: EventTarget is not available in all browsers,\n // if it's not available, we instead patch the APIs in the IDL that inherit from EventTarget\n apis = NO_EVENT_TARGET;\n }\n var isDisableIECheck = _global['__Zone_disable_IE_check'] || false;\n var isEnableCrossContextCheck = _global['__Zone_enable_cross_context_check'] || false;\n var ieOrEdge = api.isIEOrEdge();\n var ADD_EVENT_LISTENER_SOURCE = '.addEventListener:';\n var FUNCTION_WRAPPER = '[object FunctionWrapper]';\n var BROWSER_TOOLS = 'function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }';\n var pointerEventsMap = {\n 'MSPointerCancel': 'pointercancel',\n 'MSPointerDown': 'pointerdown',\n 'MSPointerEnter': 'pointerenter',\n 'MSPointerHover': 'pointerhover',\n 'MSPointerLeave': 'pointerleave',\n 'MSPointerMove': 'pointermove',\n 'MSPointerOut': 'pointerout',\n 'MSPointerOver': 'pointerover',\n 'MSPointerUp': 'pointerup'\n };\n // predefine all __zone_symbol__ + eventName + true/false string\n for (var i = 0; i < eventNames.length; i++) {\n var eventName = eventNames[i];\n var falseEventName = eventName + FALSE_STR;\n var trueEventName = eventName + TRUE_STR;\n var symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n }\n // predefine all task.source string\n for (var i = 0; i < WTF_ISSUE_555_ARRAY.length; i++) {\n var target = WTF_ISSUE_555_ARRAY[i];\n var targets = globalSources[target] = {};\n for (var j = 0; j < eventNames.length; j++) {\n var eventName = eventNames[j];\n targets[eventName] = target + ADD_EVENT_LISTENER_SOURCE + eventName;\n }\n }\n var checkIEAndCrossContext = function (nativeDelegate, delegate, target, args) {\n if (!isDisableIECheck && ieOrEdge) {\n if (isEnableCrossContextCheck) {\n try {\n var testString = delegate.toString();\n if ((testString === FUNCTION_WRAPPER || testString == BROWSER_TOOLS)) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n catch (error) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n else {\n var testString = delegate.toString();\n if ((testString === FUNCTION_WRAPPER || testString == BROWSER_TOOLS)) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n }\n else if (isEnableCrossContextCheck) {\n try {\n delegate.toString();\n }\n catch (error) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n return true;\n };\n var apiTypes = [];\n for (var i = 0; i < apis.length; i++) {\n var type = _global[apis[i]];\n apiTypes.push(type && type.prototype);\n }\n // vh is validateHandler to check event handler\n // is valid or not(for security check)\n api.patchEventTarget(_global, apiTypes, {\n vh: checkIEAndCrossContext,\n transferEventName: function (eventName) {\n var pointerEventName = pointerEventsMap[eventName];\n return pointerEventName || eventName;\n }\n });\n Zone[api.symbol('patchEventTarget')] = !!_global[EVENT_TARGET];\n return true;\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n // we have to patch the instance since the proto is non-configurable\n function apply(api, _global) {\n var _a = api.getGlobalObjects(), ADD_EVENT_LISTENER_STR = _a.ADD_EVENT_LISTENER_STR, REMOVE_EVENT_LISTENER_STR = _a.REMOVE_EVENT_LISTENER_STR;\n var WS = _global.WebSocket;\n // On Safari window.EventTarget doesn't exist so need to patch WS add/removeEventListener\n // On older Chrome, no need since EventTarget was already patched\n if (!_global.EventTarget) {\n api.patchEventTarget(_global, [WS.prototype]);\n }\n _global.WebSocket = function (x, y) {\n var socket = arguments.length > 1 ? new WS(x, y) : new WS(x);\n var proxySocket;\n var proxySocketProto;\n // Safari 7.0 has non-configurable own 'onmessage' and friends properties on the socket instance\n var onmessageDesc = api.ObjectGetOwnPropertyDescriptor(socket, 'onmessage');\n if (onmessageDesc && onmessageDesc.configurable === false) {\n proxySocket = api.ObjectCreate(socket);\n // socket have own property descriptor 'onopen', 'onmessage', 'onclose', 'onerror'\n // but proxySocket not, so we will keep socket as prototype and pass it to\n // patchOnProperties method\n proxySocketProto = socket;\n [ADD_EVENT_LISTENER_STR, REMOVE_EVENT_LISTENER_STR, 'send', 'close'].forEach(function (propName) {\n proxySocket[propName] = function () {\n var args = api.ArraySlice.call(arguments);\n if (propName === ADD_EVENT_LISTENER_STR || propName === REMOVE_EVENT_LISTENER_STR) {\n var eventName = args.length > 0 ? args[0] : undefined;\n if (eventName) {\n var propertySymbol = Zone.__symbol__('ON_PROPERTY' + eventName);\n socket[propertySymbol] = proxySocket[propertySymbol];\n }\n }\n return socket[propName].apply(socket, args);\n };\n });\n }\n else {\n // we can patch the real socket\n proxySocket = socket;\n }\n api.patchOnProperties(proxySocket, ['close', 'error', 'message', 'open'], proxySocketProto);\n return proxySocket;\n };\n var globalWebSocket = _global['WebSocket'];\n for (var prop in WS) {\n globalWebSocket[prop] = WS[prop];\n }\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function propertyDescriptorLegacyPatch(api, _global) {\n var _a = api.getGlobalObjects(), isNode = _a.isNode, isMix = _a.isMix;\n if (isNode && !isMix) {\n return;\n }\n if (!canPatchViaPropertyDescriptor(api, _global)) {\n var supportsWebSocket = typeof WebSocket !== 'undefined';\n // Safari, Android browsers (Jelly Bean)\n patchViaCapturingAllTheEvents(api);\n api.patchClass('XMLHttpRequest');\n if (supportsWebSocket) {\n apply(api, _global);\n }\n Zone[api.symbol('patchEvents')] = true;\n }\n }\n function canPatchViaPropertyDescriptor(api, _global) {\n var _a = api.getGlobalObjects(), isBrowser = _a.isBrowser, isMix = _a.isMix;\n if ((isBrowser || isMix) &&\n !api.ObjectGetOwnPropertyDescriptor(HTMLElement.prototype, 'onclick') &&\n typeof Element !== 'undefined') {\n // WebKit https://bugs.webkit.org/show_bug.cgi?id=134364\n // IDL interface attributes are not configurable\n var desc = api.ObjectGetOwnPropertyDescriptor(Element.prototype, 'onclick');\n if (desc && !desc.configurable)\n return false;\n // try to use onclick to detect whether we can patch via propertyDescriptor\n // because XMLHttpRequest is not available in service worker\n if (desc) {\n api.ObjectDefineProperty(Element.prototype, 'onclick', { enumerable: true, configurable: true, get: function () { return true; } });\n var div = document.createElement('div');\n var result = !!div.onclick;\n api.ObjectDefineProperty(Element.prototype, 'onclick', desc);\n return result;\n }\n }\n var XMLHttpRequest = _global['XMLHttpRequest'];\n if (!XMLHttpRequest) {\n // XMLHttpRequest is not available in service worker\n return false;\n }\n var ON_READY_STATE_CHANGE = 'onreadystatechange';\n var XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n var xhrDesc = api.ObjectGetOwnPropertyDescriptor(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE);\n // add enumerable and configurable here because in opera\n // by default XMLHttpRequest.prototype.onreadystatechange is undefined\n // without adding enumerable and configurable will cause onreadystatechange\n // non-configurable\n // and if XMLHttpRequest.prototype.onreadystatechange is undefined,\n // we should set a real desc instead a fake one\n if (xhrDesc) {\n api.ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, { enumerable: true, configurable: true, get: function () { return true; } });\n var req = new XMLHttpRequest();\n var result = !!req.onreadystatechange;\n // restore original desc\n api.ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, xhrDesc || {});\n return result;\n }\n else {\n var SYMBOL_FAKE_ONREADYSTATECHANGE_1 = api.symbol('fake');\n api.ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, {\n enumerable: true,\n configurable: true,\n get: function () { return this[SYMBOL_FAKE_ONREADYSTATECHANGE_1]; },\n set: function (value) { this[SYMBOL_FAKE_ONREADYSTATECHANGE_1] = value; }\n });\n var req = new XMLHttpRequest();\n var detectFunc = function () { };\n req.onreadystatechange = detectFunc;\n var result = req[SYMBOL_FAKE_ONREADYSTATECHANGE_1] === detectFunc;\n req.onreadystatechange = null;\n return result;\n }\n }\n // Whenever any eventListener fires, we check the eventListener target and all parents\n // for `onwhatever` properties and replace them with zone-bound functions\n // - Chrome (for now)\n function patchViaCapturingAllTheEvents(api) {\n var eventNames = api.getGlobalObjects().eventNames;\n var unboundKey = api.symbol('unbound');\n var _loop_4 = function (i) {\n var property = eventNames[i];\n var onproperty = 'on' + property;\n self.addEventListener(property, function (event) {\n var elt = event.target, bound, source;\n if (elt) {\n source = elt.constructor['name'] + '.' + onproperty;\n }\n else {\n source = 'unknown.' + onproperty;\n }\n while (elt) {\n if (elt[onproperty] && !elt[onproperty][unboundKey]) {\n bound = api.wrapWithCurrentZone(elt[onproperty], source);\n bound[unboundKey] = elt[onproperty];\n elt[onproperty] = bound;\n }\n elt = elt.parentElement;\n }\n }, true);\n };\n for (var i = 0; i < eventNames.length; i++) {\n _loop_4(i);\n }\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function registerElementPatch(_global, api) {\n var _a = api.getGlobalObjects(), isBrowser = _a.isBrowser, isMix = _a.isMix;\n if ((!isBrowser && !isMix) || !('registerElement' in _global.document)) {\n return;\n }\n var callbacks = ['createdCallback', 'attachedCallback', 'detachedCallback', 'attributeChangedCallback'];\n api.patchCallbacks(api, document, 'Document', 'registerElement', callbacks);\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n (function (_global) {\n var symbolPrefix = _global['__Zone_symbol_prefix'] || '__zone_symbol__';\n function __symbol__(name) { return symbolPrefix + name; }\n _global[__symbol__('legacyPatch')] = function () {\n var Zone = _global['Zone'];\n Zone.__load_patch('defineProperty', function (global, Zone, api) {\n api._redefineProperty = _redefineProperty;\n propertyPatch();\n });\n Zone.__load_patch('registerElement', function (global, Zone, api) {\n registerElementPatch(global, api);\n });\n Zone.__load_patch('EventTargetLegacy', function (global, Zone, api) {\n eventTargetLegacyPatch(global, api);\n propertyDescriptorLegacyPatch(api, global);\n });\n };\n })(typeof window !== 'undefined' ?\n window :\n typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {});\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n var taskSymbol = zoneSymbol('zoneTask');\n function patchTimer(window, setName, cancelName, nameSuffix) {\n var setNative = null;\n var clearNative = null;\n setName += nameSuffix;\n cancelName += nameSuffix;\n var tasksByHandleId = {};\n function scheduleTask(task) {\n var data = task.data;\n function timer() {\n try {\n task.invoke.apply(this, arguments);\n }\n finally {\n // issue-934, task will be cancelled\n // even it is a periodic task such as\n // setInterval\n if (!(task.data && task.data.isPeriodic)) {\n if (typeof data.handleId === 'number') {\n // in non-nodejs env, we remove timerId\n // from local cache\n delete tasksByHandleId[data.handleId];\n }\n else if (data.handleId) {\n // Node returns complex objects as handleIds\n // we remove task reference from timer object\n data.handleId[taskSymbol] = null;\n }\n }\n }\n }\n data.args[0] = timer;\n data.handleId = setNative.apply(window, data.args);\n return task;\n }\n function clearTask(task) { return clearNative(task.data.handleId); }\n setNative =\n patchMethod(window, setName, function (delegate) { return function (self, args) {\n if (typeof args[0] === 'function') {\n var options = {\n isPeriodic: nameSuffix === 'Interval',\n delay: (nameSuffix === 'Timeout' || nameSuffix === 'Interval') ? args[1] || 0 :\n undefined,\n args: args\n };\n var task = scheduleMacroTaskWithCurrentZone(setName, args[0], options, scheduleTask, clearTask);\n if (!task) {\n return task;\n }\n // Node.js must additionally support the ref and unref functions.\n var handle = task.data.handleId;\n if (typeof handle === 'number') {\n // for non nodejs env, we save handleId: task\n // mapping in local cache for clearTimeout\n tasksByHandleId[handle] = task;\n }\n else if (handle) {\n // for nodejs env, we save task\n // reference in timerId Object for clearTimeout\n handle[taskSymbol] = task;\n }\n // check whether handle is null, because some polyfill or browser\n // may return undefined from setTimeout/setInterval/setImmediate/requestAnimationFrame\n if (handle && handle.ref && handle.unref && typeof handle.ref === 'function' &&\n typeof handle.unref === 'function') {\n task.ref = handle.ref.bind(handle);\n task.unref = handle.unref.bind(handle);\n }\n if (typeof handle === 'number' || handle) {\n return handle;\n }\n return task;\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(window, args);\n }\n }; });\n clearNative =\n patchMethod(window, cancelName, function (delegate) { return function (self, args) {\n var id = args[0];\n var task;\n if (typeof id === 'number') {\n // non nodejs env.\n task = tasksByHandleId[id];\n }\n else {\n // nodejs env.\n task = id && id[taskSymbol];\n // other environments.\n if (!task) {\n task = id;\n }\n }\n if (task && typeof task.type === 'string') {\n if (task.state !== 'notScheduled' &&\n (task.cancelFn && task.data.isPeriodic || task.runCount === 0)) {\n if (typeof id === 'number') {\n delete tasksByHandleId[id];\n }\n else if (id) {\n id[taskSymbol] = null;\n }\n // Do not cancel already canceled functions\n task.zone.cancelTask(task);\n }\n }\n else {\n // cause an error by calling it directly.\n delegate.apply(window, args);\n }\n }; });\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function patchCustomElements(_global, api) {\n var _a = api.getGlobalObjects(), isBrowser = _a.isBrowser, isMix = _a.isMix;\n if ((!isBrowser && !isMix) || !_global['customElements'] || !('customElements' in _global)) {\n return;\n }\n var callbacks = ['connectedCallback', 'disconnectedCallback', 'adoptedCallback', 'attributeChangedCallback'];\n api.patchCallbacks(api, _global.customElements, 'customElements', 'define', callbacks);\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function eventTargetPatch(_global, api) {\n if (Zone[api.symbol('patchEventTarget')]) {\n // EventTarget is already patched.\n return;\n }\n var _a = api.getGlobalObjects(), eventNames = _a.eventNames, zoneSymbolEventNames = _a.zoneSymbolEventNames, TRUE_STR = _a.TRUE_STR, FALSE_STR = _a.FALSE_STR, ZONE_SYMBOL_PREFIX = _a.ZONE_SYMBOL_PREFIX;\n // predefine all __zone_symbol__ + eventName + true/false string\n for (var i = 0; i < eventNames.length; i++) {\n var eventName = eventNames[i];\n var falseEventName = eventName + FALSE_STR;\n var trueEventName = eventName + TRUE_STR;\n var symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n }\n var EVENT_TARGET = _global['EventTarget'];\n if (!EVENT_TARGET || !EVENT_TARGET.prototype) {\n return;\n }\n api.patchEventTarget(_global, [EVENT_TARGET && EVENT_TARGET.prototype]);\n return true;\n }\n function patchEvent(global, api) {\n api.patchEventPrototype(global, api);\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n Zone.__load_patch('legacy', function (global) {\n var legacyPatch = global[Zone.__symbol__('legacyPatch')];\n if (legacyPatch) {\n legacyPatch();\n }\n });\n Zone.__load_patch('timers', function (global) {\n var set = 'set';\n var clear = 'clear';\n patchTimer(global, set, clear, 'Timeout');\n patchTimer(global, set, clear, 'Interval');\n patchTimer(global, set, clear, 'Immediate');\n });\n Zone.__load_patch('requestAnimationFrame', function (global) {\n patchTimer(global, 'request', 'cancel', 'AnimationFrame');\n patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame');\n patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame');\n });\n Zone.__load_patch('blocking', function (global, Zone) {\n var blockingMethods = ['alert', 'prompt', 'confirm'];\n for (var i = 0; i < blockingMethods.length; i++) {\n var name_2 = blockingMethods[i];\n patchMethod(global, name_2, function (delegate, symbol, name) {\n return function (s, args) {\n return Zone.current.run(delegate, global, args, name);\n };\n });\n }\n });\n Zone.__load_patch('EventTarget', function (global, Zone, api) {\n patchEvent(global, api);\n eventTargetPatch(global, api);\n // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener\n var XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) {\n api.patchEventTarget(global, [XMLHttpRequestEventTarget.prototype]);\n }\n patchClass('MutationObserver');\n patchClass('WebKitMutationObserver');\n patchClass('IntersectionObserver');\n patchClass('FileReader');\n });\n Zone.__load_patch('on_property', function (global, Zone, api) {\n propertyDescriptorPatch(api, global);\n });\n Zone.__load_patch('customElements', function (global, Zone, api) {\n patchCustomElements(global, api);\n });\n Zone.__load_patch('XHR', function (global, Zone) {\n // Treat XMLHttpRequest as a macrotask.\n patchXHR(global);\n var XHR_TASK = zoneSymbol('xhrTask');\n var XHR_SYNC = zoneSymbol('xhrSync');\n var XHR_LISTENER = zoneSymbol('xhrListener');\n var XHR_SCHEDULED = zoneSymbol('xhrScheduled');\n var XHR_URL = zoneSymbol('xhrURL');\n var XHR_ERROR_BEFORE_SCHEDULED = zoneSymbol('xhrErrorBeforeScheduled');\n function patchXHR(window) {\n var XMLHttpRequest = window['XMLHttpRequest'];\n if (!XMLHttpRequest) {\n // XMLHttpRequest is not available in service worker\n return;\n }\n var XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n function findPendingTask(target) { return target[XHR_TASK]; }\n var oriAddListener = XMLHttpRequestPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n var oriRemoveListener = XMLHttpRequestPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n if (!oriAddListener) {\n var XMLHttpRequestEventTarget_1 = window['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget_1) {\n var XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget_1.prototype;\n oriAddListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n }\n var READY_STATE_CHANGE = 'readystatechange';\n var SCHEDULED = 'scheduled';\n function scheduleTask(task) {\n var data = task.data;\n var target = data.target;\n target[XHR_SCHEDULED] = false;\n target[XHR_ERROR_BEFORE_SCHEDULED] = false;\n // remove existing event listener\n var listener = target[XHR_LISTENER];\n if (!oriAddListener) {\n oriAddListener = target[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = target[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n if (listener) {\n oriRemoveListener.call(target, READY_STATE_CHANGE, listener);\n }\n var newListener = target[XHR_LISTENER] = function () {\n if (target.readyState === target.DONE) {\n // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with\n // readyState=4 multiple times, so we need to check task state here\n if (!data.aborted && target[XHR_SCHEDULED] && task.state === SCHEDULED) {\n // check whether the xhr has registered onload listener\n // if that is the case, the task should invoke after all\n // onload listeners finish.\n var loadTasks = target[Zone.__symbol__('loadfalse')];\n if (loadTasks && loadTasks.length > 0) {\n var oriInvoke_1 = task.invoke;\n task.invoke = function () {\n // need to load the tasks again, because in other\n // load listener, they may remove themselves\n var loadTasks = target[Zone.__symbol__('loadfalse')];\n for (var i = 0; i < loadTasks.length; i++) {\n if (loadTasks[i] === task) {\n loadTasks.splice(i, 1);\n }\n }\n if (!data.aborted && task.state === SCHEDULED) {\n oriInvoke_1.call(task);\n }\n };\n loadTasks.push(task);\n }\n else {\n task.invoke();\n }\n }\n else if (!data.aborted && target[XHR_SCHEDULED] === false) {\n // error occurs when xhr.send()\n target[XHR_ERROR_BEFORE_SCHEDULED] = true;\n }\n }\n };\n oriAddListener.call(target, READY_STATE_CHANGE, newListener);\n var storedTask = target[XHR_TASK];\n if (!storedTask) {\n target[XHR_TASK] = task;\n }\n sendNative.apply(target, data.args);\n target[XHR_SCHEDULED] = true;\n return task;\n }\n function placeholderCallback() { }\n function clearTask(task) {\n var data = task.data;\n // Note - ideally, we would call data.target.removeEventListener here, but it's too late\n // to prevent it from firing. So instead, we store info for the event listener.\n data.aborted = true;\n return abortNative.apply(data.target, data.args);\n }\n var openNative = patchMethod(XMLHttpRequestPrototype, 'open', function () { return function (self, args) {\n self[XHR_SYNC] = args[2] == false;\n self[XHR_URL] = args[1];\n return openNative.apply(self, args);\n }; });\n var XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send';\n var fetchTaskAborting = zoneSymbol('fetchTaskAborting');\n var fetchTaskScheduling = zoneSymbol('fetchTaskScheduling');\n var sendNative = patchMethod(XMLHttpRequestPrototype, 'send', function () { return function (self, args) {\n if (Zone.current[fetchTaskScheduling] === true) {\n // a fetch is scheduling, so we are using xhr to polyfill fetch\n // and because we already schedule macroTask for fetch, we should\n // not schedule a macroTask for xhr again\n return sendNative.apply(self, args);\n }\n if (self[XHR_SYNC]) {\n // if the XHR is sync there is no task to schedule, just execute the code.\n return sendNative.apply(self, args);\n }\n else {\n var options = { target: self, url: self[XHR_URL], isPeriodic: false, args: args, aborted: false };\n var task = scheduleMacroTaskWithCurrentZone(XMLHTTPREQUEST_SOURCE, placeholderCallback, options, scheduleTask, clearTask);\n if (self && self[XHR_ERROR_BEFORE_SCHEDULED] === true && !options.aborted &&\n task.state === SCHEDULED) {\n // xhr request throw error when send\n // we should invoke task instead of leaving a scheduled\n // pending macroTask\n task.invoke();\n }\n }\n }; });\n var abortNative = patchMethod(XMLHttpRequestPrototype, 'abort', function () { return function (self, args) {\n var task = findPendingTask(self);\n if (task && typeof task.type == 'string') {\n // If the XHR has already completed, do nothing.\n // If the XHR has already been aborted, do nothing.\n // Fix #569, call abort multiple times before done will cause\n // macroTask task count be negative number\n if (task.cancelFn == null || (task.data && task.data.aborted)) {\n return;\n }\n task.zone.cancelTask(task);\n }\n else if (Zone.current[fetchTaskAborting] === true) {\n // the abort is called from fetch polyfill, we need to call native abort of XHR.\n return abortNative.apply(self, args);\n }\n // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no\n // task\n // to cancel. Do nothing.\n }; });\n }\n });\n Zone.__load_patch('geolocation', function (global) {\n /// GEO_LOCATION\n if (global['navigator'] && global['navigator'].geolocation) {\n patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']);\n }\n });\n Zone.__load_patch('PromiseRejectionEvent', function (global, Zone) {\n // handle unhandled promise rejection\n function findPromiseRejectionHandler(evtName) {\n return function (e) {\n var eventTasks = findEventTasks(global, evtName);\n eventTasks.forEach(function (eventTask) {\n // windows has added unhandledrejection event listener\n // trigger the event listener\n var PromiseRejectionEvent = global['PromiseRejectionEvent'];\n if (PromiseRejectionEvent) {\n var evt = new PromiseRejectionEvent(evtName, { promise: e.promise, reason: e.rejection });\n eventTask.invoke(evt);\n }\n });\n };\n }\n if (global['PromiseRejectionEvent']) {\n Zone[zoneSymbol('unhandledPromiseRejectionHandler')] =\n findPromiseRejectionHandler('unhandledrejection');\n Zone[zoneSymbol('rejectionHandledHandler')] =\n findPromiseRejectionHandler('rejectionhandled');\n }\n });\n})));\n","var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob()\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n}\n\nfunction isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n}\n\nif (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n}\n\nfunction normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n}\n\nfunction normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n}\n\n// Build a destructive iterator for the value list\nfunction iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n}\n\nexport function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n}\n\nHeaders.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue + ', ' + value : value\n}\n\nHeaders.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n}\n\nHeaders.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n}\n\nHeaders.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n}\n\nHeaders.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n}\n\nHeaders.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n}\n\nHeaders.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push(name)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.values = function() {\n var items = []\n this.forEach(function(value) {\n items.push(value)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push([name, value])\n })\n return iteratorFor(items)\n}\n\nif (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n}\n\nfunction consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n}\n\nfunction fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n}\n\nfunction readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n}\n\nfunction readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n}\n\nfunction readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n}\n\nfunction bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n}\n\nfunction Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n this._bodyText = body = Object.prototype.toString.call(body)\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n}\n\n// HTTP methods whose capitalization should be normalized\nvar methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\nfunction normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return methods.indexOf(upcased) > -1 ? upcased : method\n}\n\nexport function Request(input, options) {\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n this.signal = input.signal\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.signal = options.signal || this.signal\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n}\n\nRequest.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n}\n\nfunction decode(body) {\n var form = new FormData()\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n}\n\nfunction parseHeaders(rawHeaders) {\n var headers = new Headers()\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n}\n\nBody.call(Request.prototype)\n\nexport function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = options.status === undefined ? 200 : options.status\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : 'OK'\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n}\n\nBody.call(Response.prototype)\n\nResponse.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n}\n\nResponse.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n}\n\nvar redirectStatuses = [301, 302, 303, 307, 308]\n\nResponse.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n}\n\nexport var DOMException = self.DOMException\ntry {\n new DOMException()\n} catch (err) {\n DOMException = function(message, name) {\n this.message = message\n this.name = name\n var error = Error(message)\n this.stack = error.stack\n }\n DOMException.prototype = Object.create(Error.prototype)\n DOMException.prototype.constructor = DOMException\n}\n\nexport function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n\n if (request.signal && request.signal.aborted) {\n return reject(new DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest()\n\n function abortXhr() {\n xhr.abort()\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.onabort = function() {\n reject(new DOMException('Aborted', 'AbortError'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr)\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr)\n }\n }\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n}\n\nfetch.polyfill = true\n\nif (!self.fetch) {\n self.fetch = fetch\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n}\n","/**\n * @file Web Cryptography API shim\n * @author Artem S Vybornov \n * @license MIT\n */\n(function (global, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define([], function () {\n return factory(global);\n });\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports\n module.exports = factory(global);\n } else {\n factory(global);\n }\n}(typeof self !== 'undefined' ? self : this, function (global) {\n 'use strict';\n\n if ( typeof Promise !== 'function' )\n throw \"Promise support required\";\n\n var _crypto = global.crypto || global.msCrypto;\n if ( !_crypto ) return;\n\n var _subtle = _crypto.subtle || _crypto.webkitSubtle;\n if ( !_subtle ) return;\n\n var _Crypto = global.Crypto || _crypto.constructor || Object,\n _SubtleCrypto = global.SubtleCrypto || _subtle.constructor || Object,\n _CryptoKey = global.CryptoKey || global.Key || Object;\n\n var isEdge = global.navigator.userAgent.indexOf('Edge/') > -1;\n var isIE = !!global.msCrypto && !isEdge;\n var isWebkit = !_crypto.subtle && !!_crypto.webkitSubtle;\n if ( !isIE && !isWebkit ) return;\n\n function s2a ( s ) {\n return btoa(s).replace(/\\=+$/, '').replace(/\\+/g, '-').replace(/\\//g, '_');\n }\n\n function a2s ( s ) {\n s += '===', s = s.slice( 0, -s.length % 4 );\n return atob( s.replace(/-/g, '+').replace(/_/g, '/') );\n }\n\n function s2b ( s ) {\n var b = new Uint8Array(s.length);\n for ( var i = 0; i < s.length; i++ ) b[i] = s.charCodeAt(i);\n return b;\n }\n\n function b2s ( b ) {\n if ( b instanceof ArrayBuffer ) b = new Uint8Array(b);\n return String.fromCharCode.apply( String, b );\n }\n\n function alg ( a ) {\n var r = { 'name': (a.name || a || '').toUpperCase().replace('V','v') };\n switch ( r.name ) {\n case 'SHA-1':\n case 'SHA-256':\n case 'SHA-384':\n case 'SHA-512':\n break;\n case 'AES-CBC':\n case 'AES-GCM':\n case 'AES-KW':\n if ( a.length ) r['length'] = a.length;\n break;\n case 'HMAC':\n if ( a.hash ) r['hash'] = alg(a.hash);\n if ( a.length ) r['length'] = a.length;\n break;\n case 'RSAES-PKCS1-v1_5':\n if ( a.publicExponent ) r['publicExponent'] = new Uint8Array(a.publicExponent);\n if ( a.modulusLength ) r['modulusLength'] = a.modulusLength;\n break;\n case 'RSASSA-PKCS1-v1_5':\n case 'RSA-OAEP':\n if ( a.hash ) r['hash'] = alg(a.hash);\n if ( a.publicExponent ) r['publicExponent'] = new Uint8Array(a.publicExponent);\n if ( a.modulusLength ) r['modulusLength'] = a.modulusLength;\n break;\n default:\n throw new SyntaxError(\"Bad algorithm name\");\n }\n return r;\n };\n\n function jwkAlg ( a ) {\n return {\n 'HMAC': {\n 'SHA-1': 'HS1',\n 'SHA-256': 'HS256',\n 'SHA-384': 'HS384',\n 'SHA-512': 'HS512',\n },\n 'RSASSA-PKCS1-v1_5': {\n 'SHA-1': 'RS1',\n 'SHA-256': 'RS256',\n 'SHA-384': 'RS384',\n 'SHA-512': 'RS512',\n },\n 'RSAES-PKCS1-v1_5': {\n '': 'RSA1_5',\n },\n 'RSA-OAEP': {\n 'SHA-1': 'RSA-OAEP',\n 'SHA-256': 'RSA-OAEP-256',\n },\n 'AES-KW': {\n '128': 'A128KW',\n '192': 'A192KW',\n '256': 'A256KW',\n },\n 'AES-GCM': {\n '128': 'A128GCM',\n '192': 'A192GCM',\n '256': 'A256GCM',\n },\n 'AES-CBC': {\n '128': 'A128CBC',\n '192': 'A192CBC',\n '256': 'A256CBC',\n },\n }[a.name][ ( a.hash || {} ).name || a.length || '' ];\n }\n\n function b2jwk ( k ) {\n if ( k instanceof ArrayBuffer || k instanceof Uint8Array ) k = JSON.parse( decodeURIComponent( escape( b2s(k) ) ) );\n var jwk = { 'kty': k.kty, 'alg': k.alg, 'ext': k.ext || k.extractable };\n switch ( jwk.kty ) {\n case 'oct':\n jwk.k = k.k;\n case 'RSA':\n [ 'n', 'e', 'd', 'p', 'q', 'dp', 'dq', 'qi', 'oth' ].forEach( function ( x ) { if ( x in k ) jwk[x] = k[x] } );\n break;\n default:\n throw new TypeError(\"Unsupported key type\");\n }\n return jwk;\n }\n\n function jwk2b ( k ) {\n var jwk = b2jwk(k);\n if ( isIE ) jwk['extractable'] = jwk.ext, delete jwk.ext;\n return s2b( unescape( encodeURIComponent( JSON.stringify(jwk) ) ) ).buffer;\n }\n\n function pkcs2jwk ( k ) {\n var info = b2der(k), prv = false;\n if ( info.length > 2 ) prv = true, info.shift(); // remove version from PKCS#8 PrivateKeyInfo structure\n var jwk = { 'ext': true };\n switch ( info[0][0] ) {\n case '1.2.840.113549.1.1.1':\n var rsaComp = [ 'n', 'e', 'd', 'p', 'q', 'dp', 'dq', 'qi' ],\n rsaKey = b2der( info[1] );\n if ( prv ) rsaKey.shift(); // remove version from PKCS#1 RSAPrivateKey structure\n for ( var i = 0; i < rsaKey.length; i++ ) {\n if ( !rsaKey[i][0] ) rsaKey[i] = rsaKey[i].subarray(1);\n jwk[ rsaComp[i] ] = s2a( b2s( rsaKey[i] ) );\n }\n jwk['kty'] = 'RSA';\n break;\n default:\n throw new TypeError(\"Unsupported key type\");\n }\n return jwk;\n }\n\n function jwk2pkcs ( k ) {\n var key, info = [ [ '', null ] ], prv = false;\n switch ( k.kty ) {\n case 'RSA':\n var rsaComp = [ 'n', 'e', 'd', 'p', 'q', 'dp', 'dq', 'qi' ],\n rsaKey = [];\n for ( var i = 0; i < rsaComp.length; i++ ) {\n if ( !( rsaComp[i] in k ) ) break;\n var b = rsaKey[i] = s2b( a2s( k[ rsaComp[i] ] ) );\n if ( b[0] & 0x80 ) rsaKey[i] = new Uint8Array(b.length + 1), rsaKey[i].set( b, 1 );\n }\n if ( rsaKey.length > 2 ) prv = true, rsaKey.unshift( new Uint8Array([0]) ); // add version to PKCS#1 RSAPrivateKey structure\n info[0][0] = '1.2.840.113549.1.1.1';\n key = rsaKey;\n break;\n default:\n throw new TypeError(\"Unsupported key type\");\n }\n info.push( new Uint8Array( der2b(key) ).buffer );\n if ( !prv ) info[1] = { 'tag': 0x03, 'value': info[1] };\n else info.unshift( new Uint8Array([0]) ); // add version to PKCS#8 PrivateKeyInfo structure\n return new Uint8Array( der2b(info) ).buffer;\n }\n\n var oid2str = { 'KoZIhvcNAQEB': '1.2.840.113549.1.1.1' },\n str2oid = { '1.2.840.113549.1.1.1': 'KoZIhvcNAQEB' };\n\n function b2der ( buf, ctx ) {\n if ( buf instanceof ArrayBuffer ) buf = new Uint8Array(buf);\n if ( !ctx ) ctx = { pos: 0, end: buf.length };\n\n if ( ctx.end - ctx.pos < 2 || ctx.end > buf.length ) throw new RangeError(\"Malformed DER\");\n\n var tag = buf[ctx.pos++],\n len = buf[ctx.pos++];\n\n if ( len >= 0x80 ) {\n len &= 0x7f;\n if ( ctx.end - ctx.pos < len ) throw new RangeError(\"Malformed DER\");\n for ( var xlen = 0; len--; ) xlen <<= 8, xlen |= buf[ctx.pos++];\n len = xlen;\n }\n\n if ( ctx.end - ctx.pos < len ) throw new RangeError(\"Malformed DER\");\n\n var rv;\n\n switch ( tag ) {\n case 0x02: // Universal Primitive INTEGER\n rv = buf.subarray( ctx.pos, ctx.pos += len );\n break;\n case 0x03: // Universal Primitive BIT STRING\n if ( buf[ctx.pos++] ) throw new Error( \"Unsupported bit string\" );\n len--;\n case 0x04: // Universal Primitive OCTET STRING\n rv = new Uint8Array( buf.subarray( ctx.pos, ctx.pos += len ) ).buffer;\n break;\n case 0x05: // Universal Primitive NULL\n rv = null;\n break;\n case 0x06: // Universal Primitive OBJECT IDENTIFIER\n var oid = btoa( b2s( buf.subarray( ctx.pos, ctx.pos += len ) ) );\n if ( !( oid in oid2str ) ) throw new Error( \"Unsupported OBJECT ID \" + oid );\n rv = oid2str[oid];\n break;\n case 0x30: // Universal Constructed SEQUENCE\n rv = [];\n for ( var end = ctx.pos + len; ctx.pos < end; ) rv.push( b2der( buf, ctx ) );\n break;\n default:\n throw new Error( \"Unsupported DER tag 0x\" + tag.toString(16) );\n }\n\n return rv;\n }\n\n function der2b ( val, buf ) {\n if ( !buf ) buf = [];\n\n var tag = 0, len = 0,\n pos = buf.length + 2;\n\n buf.push( 0, 0 ); // placeholder\n\n if ( val instanceof Uint8Array ) { // Universal Primitive INTEGER\n tag = 0x02, len = val.length;\n for ( var i = 0; i < len; i++ ) buf.push( val[i] );\n }\n else if ( val instanceof ArrayBuffer ) { // Universal Primitive OCTET STRING\n tag = 0x04, len = val.byteLength, val = new Uint8Array(val);\n for ( var i = 0; i < len; i++ ) buf.push( val[i] );\n }\n else if ( val === null ) { // Universal Primitive NULL\n tag = 0x05, len = 0;\n }\n else if ( typeof val === 'string' && val in str2oid ) { // Universal Primitive OBJECT IDENTIFIER\n var oid = s2b( atob( str2oid[val] ) );\n tag = 0x06, len = oid.length;\n for ( var i = 0; i < len; i++ ) buf.push( oid[i] );\n }\n else if ( val instanceof Array ) { // Universal Constructed SEQUENCE\n for ( var i = 0; i < val.length; i++ ) der2b( val[i], buf );\n tag = 0x30, len = buf.length - pos;\n }\n else if ( typeof val === 'object' && val.tag === 0x03 && val.value instanceof ArrayBuffer ) { // Tag hint\n val = new Uint8Array(val.value), tag = 0x03, len = val.byteLength;\n buf.push(0); for ( var i = 0; i < len; i++ ) buf.push( val[i] );\n len++;\n }\n else {\n throw new Error( \"Unsupported DER value \" + val );\n }\n\n if ( len >= 0x80 ) {\n var xlen = len, len = 4;\n buf.splice( pos, 0, (xlen >> 24) & 0xff, (xlen >> 16) & 0xff, (xlen >> 8) & 0xff, xlen & 0xff );\n while ( len > 1 && !(xlen >> 24) ) xlen <<= 8, len--;\n if ( len < 4 ) buf.splice( pos, 4 - len );\n len |= 0x80;\n }\n\n buf.splice( pos - 2, 2, tag, len );\n\n return buf;\n }\n\n function CryptoKey ( key, alg, ext, use ) {\n Object.defineProperties( this, {\n _key: {\n value: key\n },\n type: {\n value: key.type,\n enumerable: true,\n },\n extractable: {\n value: (ext === undefined) ? key.extractable : ext,\n enumerable: true,\n },\n algorithm: {\n value: (alg === undefined) ? key.algorithm : alg,\n enumerable: true,\n },\n usages: {\n value: (use === undefined) ? key.usages : use,\n enumerable: true,\n },\n });\n }\n\n function isPubKeyUse ( u ) {\n return u === 'verify' || u === 'encrypt' || u === 'wrapKey';\n }\n\n function isPrvKeyUse ( u ) {\n return u === 'sign' || u === 'decrypt' || u === 'unwrapKey';\n }\n\n [ 'generateKey', 'importKey', 'unwrapKey' ]\n .forEach( function ( m ) {\n var _fn = _subtle[m];\n\n _subtle[m] = function ( a, b, c ) {\n var args = [].slice.call(arguments),\n ka, kx, ku;\n\n switch ( m ) {\n case 'generateKey':\n ka = alg(a), kx = b, ku = c;\n break;\n case 'importKey':\n ka = alg(c), kx = args[3], ku = args[4];\n if ( a === 'jwk' ) {\n b = b2jwk(b);\n if ( !b.alg ) b.alg = jwkAlg(ka);\n if ( !b.key_ops ) b.key_ops = ( b.kty !== 'oct' ) ? ( 'd' in b ) ? ku.filter(isPrvKeyUse) : ku.filter(isPubKeyUse) : ku.slice();\n args[1] = jwk2b(b);\n }\n break;\n case 'unwrapKey':\n ka = args[4], kx = args[5], ku = args[6];\n args[2] = c._key;\n break;\n }\n\n if ( m === 'generateKey' && ka.name === 'HMAC' && ka.hash ) {\n ka.length = ka.length || { 'SHA-1': 512, 'SHA-256': 512, 'SHA-384': 1024, 'SHA-512': 1024 }[ka.hash.name];\n return _subtle.importKey( 'raw', _crypto.getRandomValues( new Uint8Array( (ka.length+7)>>3 ) ), ka, kx, ku );\n }\n\n if ( isWebkit && m === 'generateKey' && ka.name === 'RSASSA-PKCS1-v1_5' && ( !ka.modulusLength || ka.modulusLength >= 2048 ) ) {\n a = alg(a), a.name = 'RSAES-PKCS1-v1_5', delete a.hash;\n return _subtle.generateKey( a, true, [ 'encrypt', 'decrypt' ] )\n .then( function ( k ) {\n return Promise.all([\n _subtle.exportKey( 'jwk', k.publicKey ),\n _subtle.exportKey( 'jwk', k.privateKey ),\n ]);\n })\n .then( function ( keys ) {\n keys[0].alg = keys[1].alg = jwkAlg(ka);\n keys[0].key_ops = ku.filter(isPubKeyUse), keys[1].key_ops = ku.filter(isPrvKeyUse);\n return Promise.all([\n _subtle.importKey( 'jwk', keys[0], ka, true, keys[0].key_ops ),\n _subtle.importKey( 'jwk', keys[1], ka, kx, keys[1].key_ops ),\n ]);\n })\n .then( function ( keys ) {\n return {\n publicKey: keys[0],\n privateKey: keys[1],\n };\n });\n }\n\n if ( ( isWebkit || ( isIE && ( ka.hash || {} ).name === 'SHA-1' ) )\n && m === 'importKey' && a === 'jwk' && ka.name === 'HMAC' && b.kty === 'oct' ) {\n return _subtle.importKey( 'raw', s2b( a2s(b.k) ), c, args[3], args[4] );\n }\n\n if ( isWebkit && m === 'importKey' && ( a === 'spki' || a === 'pkcs8' ) ) {\n return _subtle.importKey( 'jwk', pkcs2jwk(b), c, args[3], args[4] );\n }\n\n if ( isIE && m === 'unwrapKey' ) {\n return _subtle.decrypt( args[3], c, b )\n .then( function ( k ) {\n return _subtle.importKey( a, k, args[4], args[5], args[6] );\n });\n }\n\n var op;\n try {\n op = _fn.apply( _subtle, args );\n }\n catch ( e ) {\n return Promise.reject(e);\n }\n\n if ( isIE ) {\n op = new Promise( function ( res, rej ) {\n op.onabort =\n op.onerror = function ( e ) { rej(e) };\n op.oncomplete = function ( r ) { res(r.target.result) };\n });\n }\n\n op = op.then( function ( k ) {\n if ( ka.name === 'HMAC' ) {\n if ( !ka.length ) ka.length = 8 * k.algorithm.length;\n }\n if ( ka.name.search('RSA') == 0 ) {\n if ( !ka.modulusLength ) ka.modulusLength = (k.publicKey || k).algorithm.modulusLength;\n if ( !ka.publicExponent ) ka.publicExponent = (k.publicKey || k).algorithm.publicExponent;\n }\n if ( k.publicKey && k.privateKey ) {\n k = {\n publicKey: new CryptoKey( k.publicKey, ka, kx, ku.filter(isPubKeyUse) ),\n privateKey: new CryptoKey( k.privateKey, ka, kx, ku.filter(isPrvKeyUse) ),\n };\n }\n else {\n k = new CryptoKey( k, ka, kx, ku );\n }\n return k;\n });\n\n return op;\n }\n });\n\n [ 'exportKey', 'wrapKey' ]\n .forEach( function ( m ) {\n var _fn = _subtle[m];\n\n _subtle[m] = function ( a, b, c ) {\n var args = [].slice.call(arguments);\n\n switch ( m ) {\n case 'exportKey':\n args[1] = b._key;\n break;\n case 'wrapKey':\n args[1] = b._key, args[2] = c._key;\n break;\n }\n\n if ( ( isWebkit || ( isIE && ( b.algorithm.hash || {} ).name === 'SHA-1' ) )\n && m === 'exportKey' && a === 'jwk' && b.algorithm.name === 'HMAC' ) {\n args[0] = 'raw';\n }\n\n if ( isWebkit && m === 'exportKey' && ( a === 'spki' || a === 'pkcs8' ) ) {\n args[0] = 'jwk';\n }\n\n if ( isIE && m === 'wrapKey' ) {\n return _subtle.exportKey( a, b )\n .then( function ( k ) {\n if ( a === 'jwk' ) k = s2b( unescape( encodeURIComponent( JSON.stringify( b2jwk(k) ) ) ) );\n return _subtle.encrypt( args[3], c, k );\n });\n }\n\n var op;\n try {\n op = _fn.apply( _subtle, args );\n }\n catch ( e ) {\n return Promise.reject(e);\n }\n\n if ( isIE ) {\n op = new Promise( function ( res, rej ) {\n op.onabort =\n op.onerror = function ( e ) { rej(e) };\n op.oncomplete = function ( r ) { res(r.target.result) };\n });\n }\n\n if ( m === 'exportKey' && a === 'jwk' ) {\n op = op.then( function ( k ) {\n if ( ( isWebkit || ( isIE && ( b.algorithm.hash || {} ).name === 'SHA-1' ) )\n && b.algorithm.name === 'HMAC') {\n return { 'kty': 'oct', 'alg': jwkAlg(b.algorithm), 'key_ops': b.usages.slice(), 'ext': true, 'k': s2a( b2s(k) ) };\n }\n k = b2jwk(k);\n if ( !k.alg ) k['alg'] = jwkAlg(b.algorithm);\n if ( !k.key_ops ) k['key_ops'] = ( b.type === 'public' ) ? b.usages.filter(isPubKeyUse) : ( b.type === 'private' ) ? b.usages.filter(isPrvKeyUse) : b.usages.slice();\n return k;\n });\n }\n\n if ( isWebkit && m === 'exportKey' && ( a === 'spki' || a === 'pkcs8' ) ) {\n op = op.then( function ( k ) {\n k = jwk2pkcs( b2jwk(k) );\n return k;\n });\n }\n\n return op;\n }\n });\n\n [ 'encrypt', 'decrypt', 'sign', 'verify' ]\n .forEach( function ( m ) {\n var _fn = _subtle[m];\n\n _subtle[m] = function ( a, b, c, d ) {\n if ( isIE && ( !c.byteLength || ( d && !d.byteLength ) ) )\n throw new Error(\"Empy input is not allowed\");\n\n var args = [].slice.call(arguments),\n ka = alg(a);\n\n if ( isIE && m === 'decrypt' && ka.name === 'AES-GCM' ) {\n var tl = a.tagLength >> 3;\n args[2] = (c.buffer || c).slice( 0, c.byteLength - tl ),\n a.tag = (c.buffer || c).slice( c.byteLength - tl );\n }\n\n args[1] = b._key;\n\n var op;\n try {\n op = _fn.apply( _subtle, args );\n }\n catch ( e ) {\n return Promise.reject(e);\n }\n\n if ( isIE ) {\n op = new Promise( function ( res, rej ) {\n op.onabort =\n op.onerror = function ( e ) {\n rej(e);\n };\n\n op.oncomplete = function ( r ) {\n var r = r.target.result;\n\n if ( m === 'encrypt' && r instanceof AesGcmEncryptResult ) {\n var c = r.ciphertext, t = r.tag;\n r = new Uint8Array( c.byteLength + t.byteLength );\n r.set( new Uint8Array(c), 0 );\n r.set( new Uint8Array(t), c.byteLength );\n r = r.buffer;\n }\n\n res(r);\n };\n });\n }\n\n return op;\n }\n });\n\n if ( isIE ) {\n var _digest = _subtle.digest;\n\n _subtle['digest'] = function ( a, b ) {\n if ( !b.byteLength )\n throw new Error(\"Empy input is not allowed\");\n\n var op;\n try {\n op = _digest.call( _subtle, a, b );\n }\n catch ( e ) {\n return Promise.reject(e);\n }\n\n op = new Promise( function ( res, rej ) {\n op.onabort =\n op.onerror = function ( e ) { rej(e) };\n op.oncomplete = function ( r ) { res(r.target.result) };\n });\n\n return op;\n };\n\n global.crypto = Object.create( _crypto, {\n getRandomValues: { value: function ( a ) { return _crypto.getRandomValues(a) } },\n subtle: { value: _subtle },\n });\n\n global.CryptoKey = CryptoKey;\n }\n\n if ( isWebkit ) {\n _crypto.subtle = _subtle;\n\n global.Crypto = _Crypto;\n global.SubtleCrypto = _SubtleCrypto;\n global.CryptoKey = CryptoKey;\n }\n}));\n","!function(t,e){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{var n=e();for(var r in n)(\"object\"==typeof exports?exports:t)[r]=n[r]}}(this,function(){return function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return t[r].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}var n={};return e.m=t,e.c=n,e.p=\"\",e(0)}([function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{\"default\":t}}n(84);var o=n(41),i=r(o),a=function(){i[\"default\"].addPickerToOtherInputs(),i[\"default\"].supportsDateInput()||i[\"default\"].addPickerToDateInputs()};a(),document.addEventListener(\"DOMContentLoaded\",function(){a()}),document.querySelector(\"body\").addEventListener(\"mousedown\",function(){a()})},function(t,e,n){t.exports=!n(11)(function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a})},function(t,e){var n=t.exports=\"undefined\"!=typeof window&&window.Math==Math?window:\"undefined\"!=typeof self&&self.Math==Math?self:Function(\"return this\")();\"number\"==typeof __g&&(__g=n)},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var r=n(9),o=n(32),i=n(25),a=Object.defineProperty;e.f=n(1)?Object.defineProperty:function(t,e,n){if(r(t),e=i(e,!0),r(n),o)try{return a(t,e,n)}catch(u){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported!\");return\"value\"in n&&(t[e]=n.value),t}},function(t,e,n){var r=n(59),o=n(16);t.exports=function(t){return r(o(t))}},function(t,e,n){var r=n(4),o=n(14);t.exports=n(1)?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){var r=n(23)(\"wks\"),o=n(15),i=n(2).Symbol,a=\"function\"==typeof i,u=t.exports=function(t){return r[t]||(r[t]=a&&i[t]||(a?i:o)(\"Symbol.\"+t))};u.store=r},function(t,e){var n=t.exports={version:\"2.4.0\"};\"number\"==typeof __e&&(__e=n)},function(t,e,n){var r=n(12);t.exports=function(t){if(!r(t))throw TypeError(t+\" is not an object!\");return t}},function(t,e,n){var r=n(2),o=n(8),i=n(56),a=n(6),u=\"prototype\",s=function(t,e,n){var c,l,f,d=t&s.F,p=t&s.G,h=t&s.S,y=t&s.P,m=t&s.B,v=t&s.W,b=p?o:o[e]||(o[e]={}),g=b[u],x=p?r:h?r[e]:(r[e]||{})[u];p&&(n=e);for(c in n)l=!d&&x&&void 0!==x[c],l&&c in b||(f=l?x[c]:n[c],b[c]=p&&\"function\"!=typeof x[c]?n[c]:m&&l?i(f,r):v&&x[c]==f?function(t){var e=function(e,n,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,r)}return t.apply(this,arguments)};return e[u]=t[u],e}(f):y&&\"function\"==typeof f?i(Function.call,f):f,y&&((b.virtual||(b.virtual={}))[c]=f,t&s.R&&g&&!g[c]&&a(g,c,f)))};s.F=1,s.G=2,s.S=4,s.P=8,s.B=16,s.W=32,s.U=64,s.R=128,t.exports=s},function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},function(t,e,n){var r=n(38),o=n(17);t.exports=Object.keys||function(t){return r(t,o)}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e){var n=0,r=Math.random();t.exports=function(t){return\"Symbol(\".concat(void 0===t?\"\":t,\")_\",(++n+r).toString(36))}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError(\"Can't call method on \"+t);return t}},function(t,e){t.exports=\"constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf\".split(\",\")},function(t,e){t.exports={}},function(t,e){t.exports=!0},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,n){var r=n(4).f,o=n(3),i=n(7)(\"toStringTag\");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},function(t,e,n){var r=n(23)(\"keys\"),o=n(15);t.exports=function(t){return r[t]||(r[t]=o(t))}},function(t,e,n){var r=n(2),o=\"__core-js_shared__\",i=r[o]||(r[o]={});t.exports=function(t){return i[t]||(i[t]={})}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e,n){var r=n(12);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if(\"function\"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError(\"Can't convert object to primitive value\")}},function(t,e,n){var r=n(2),o=n(8),i=n(19),a=n(27),u=n(4).f;t.exports=function(t){var e=o.Symbol||(o.Symbol=i?{}:r.Symbol||{});\"_\"==t.charAt(0)||t in e||u(e,t,{value:a.f(t)})}},function(t,e,n){e.f=n(7)},function(t,e){\"use strict\";e.__esModule=!0,e[\"default\"]=function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{\"default\":t}}e.__esModule=!0;var o=n(45),i=r(o);e[\"default\"]=function(){function t(t,e){for(var n=0;n\";for(e.style.display=\"none\",n(58).appendChild(e),e.src=\"javascript:\",t=e.contentWindow.document,t.open(),t.write(o+\"script\"+a+\"document.F=Object\"+o+\"/script\"+a),t.close(),c=t.F;r--;)delete c[s][i[r]];return c()};t.exports=Object.create||function(t,e){var n;return null!==t?(u[s]=r(t),n=new u,u[s]=null,n[a]=t):n=c(),void 0===e?n:o(n,e)}},function(t,e,n){var r=n(4),o=n(9),i=n(13);t.exports=n(1)?Object.defineProperties:function(t,e){o(t);for(var n,a=i(e),u=a.length,s=0;u>s;)r.f(t,n=a[s++],e[n]);return t}},function(t,e,n){var r=n(38),o=n(17).concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,n){var r=n(3),o=n(5),i=n(55)(!1),a=n(22)(\"IE_PROTO\");t.exports=function(t,e){var n,u=o(t),s=0,c=[];for(n in u)n!=a&&r(u,n)&&c.push(n);for(;e.length>s;)r(u,n=e[s++])&&(~i(c,n)||c.push(n));return c}},function(t,e,n){t.exports=n(6)},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{\"default\":t}}function o(t,e){for(t=String(t),e=e||2;t.length0?\"-\":\"+\")+o(100*Math.floor(Math.abs(w)/60)+Math.abs(w)%60,4),S:[\"th\",\"st\",\"nd\",\"rd\"][h%10>3?0:(h%100-h%10!=10)*h%10],W:S,N:O};return s.replace(t,function(t){return t in D?D[t]:t.slice(1,t.length-1)})}}();l.masks={\"default\":\"ddd mmm dd yyyy HH:MM:ss\",shortDate:\"m/d/yy\",mediumDate:\"mmm d, yyyy\",longDate:\"mmmm d, yyyy\",fullDate:\"dddd, mmmm d, yyyy\",shortTime:\"h:MM TT\",mediumTime:\"h:MM:ss TT\",longTime:\"h:MM:ss TT Z\",isoDate:\"yyyy-mm-dd\",isoTime:\"HH:MM:ss\",isoDateTime:\"yyyy-mm-dd'T'HH:MM:sso\",isoUtcDateTime:\"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'\",expiresHeaderFormat:\"ddd, dd mmm yyyy HH:MM:ss Z\"},l.i18n={dayNames:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\",\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],monthNames:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\",\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]},e[\"default\"]=l},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{\"default\":t}}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(44),i=r(o),a=n(28),u=r(a),s=n(29),c=r(s),l=n(43),f=r(l),d=n(42),p=r(d),h=n(40),y=r(h),m=function(){function t(e){var n=this;(0,u[\"default\"])(this,t),this.element=e,this.element.setAttribute(\"data-has-picker\",\"\"),this.locale=this.element.getAttribute(\"lang\")||document.body.getAttribute(\"lang\")||\"en\",this.format=this.element.getAttribute(\"date-format\")||document.body.getAttribute(\"date-format\")||this.element.getAttribute(\"data-date-format\")||document.body.getAttribute(\"data-date-format\")||\"yyyy-mm-dd\",this.localeText=this.getLocaleText(),(0,i[\"default\"])(this.element,{valueAsDate:{get:function(){if(!n.element.value)return null;var t=n.format||\"yyyy-mm-dd\",e=n.element.value.match(/(\\d+)/g),r=0,o={};return t.replace(/(yyyy|dd|mm)/g,function(t){o[t]=r++}),new Date(e[o.yyyy],e[o.mm]-1,e[o.dd])},set:function(t){n.element.value=(0,y[\"default\"])(t,n.format)}},valueAsNumber:{get:function(){return n.element.value?n.element.valueAsDate.valueOf():NaN},set:function(t){n.element.valueAsDate=new Date(t)}}});var r=function(t){var e=n.element;e.locale=n.localeText,f[\"default\"].attachTo(e)};this.element.addEventListener(\"focus\",r),this.element.addEventListener(\"mouseup\",r),this.element.addEventListener(\"keydown\",function(t){var e=new Date;switch(t.keyCode){case 9:case 27:f[\"default\"].hide();break;case 38:n.element.valueAsDate&&(e.setDate(n.element.valueAsDate.getDate()+1),n.element.valueAsDate=e,f[\"default\"].pingInput());break;case 40:n.element.valueAsDate&&(e.setDate(n.element.valueAsDate.getDate()-1),n.element.valueAsDate=e,f[\"default\"].pingInput())}f[\"default\"].sync()}),this.element.addEventListener(\"keyup\",function(t){f[\"default\"].sync()})}return(0,c[\"default\"])(t,[{key:\"getLocaleText\",value:function(){var t=this.locale.toLowerCase();for(var e in p[\"default\"]){var n=e.split(\"_\");if(n.map(function(t){return t.toLowerCase()}),~n.indexOf(t)||~n.indexOf(t.substr(0,2)))return p[\"default\"][e]}}}],[{key:\"supportsDateInput\",value:function(){var t=document.createElement(\"input\");t.setAttribute(\"type\",\"date\");var e=\"not-a-date\";return t.setAttribute(\"value\",e),!(t.value===e)}},{key:\"addPickerToDateInputs\",value:function(){var e=document.querySelectorAll('input[type=\"date\"]:not([data-has-picker])'),n=e.length;if(!n)return!1;for(var r=0;r\"],n=0,r=this.locale.days.length;n'+this.locale.days[n]+\"\");this.daysHead.innerHTML=e.join(\"\"),t.createRangeSelect(this.month,0,11,this.locale.months)}},{key:\"refreshDaysMatrix\",value:function(){this.refreshLocale();for(var e=this.date.getFullYear(),n=this.date.getMonth(),r=new Date(e,n,1).getDay(),o=new Date(this.date.getFullYear(),n+1,0).getDate(),i=t.absoluteDate(this.input.valueAsDate)||!1,a=i&&e===i.getFullYear()&&n===i.getMonth(),u=[],s=0;s\":\"\")+\"\\n \\n \"),s+1<=r)u.push(\"\");else{var c=s+1-r,l=a&&i.getDate()===c;u.push(\"\\n \"+c+\"\\n \")}this.days.innerHTML=u.join(\"\")}},{key:\"pingInput\",value:function(){var t=void 0,e=void 0;try{t=new Event(\"input\"),e=new Event(\"change\")}catch(n){t=document.createEvent(\"KeyboardEvent\"),t.initEvent(\"input\",!0,!1),e=document.createEvent(\"KeyboardEvent\"),e.initEvent(\"change\",!0,!1)}this.input.dispatchEvent(t),this.input.dispatchEvent(e)}}],[{key:\"createRangeSelect\",value:function(t,e,n,r){t.innerHTML=\"\";for(var o=e;o<=n;++o){var i=document.createElement(\"option\");t.appendChild(i);var a=r?r[o-e]:o;i.text=a,i.value=o}return t}},{key:\"absoluteDate\",value:function(t){return t&&new Date(t.getTime()+60*t.getTimezoneOffset()*1e3)}}]),t}();window.thePicker=new s,e[\"default\"]=window.thePicker},function(t,e,n){t.exports={\"default\":n(49),__esModule:!0}},function(t,e,n){t.exports={\"default\":n(50),__esModule:!0}},function(t,e,n){t.exports={\"default\":n(51),__esModule:!0}},function(t,e,n){t.exports={\"default\":n(52),__esModule:!0}},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{\"default\":t}}e.__esModule=!0;var o=n(47),i=r(o),a=n(46),u=r(a),s=\"function\"==typeof u[\"default\"]&&\"symbol\"==typeof i[\"default\"]?function(t){return typeof t}:function(t){return t&&\"function\"==typeof u[\"default\"]&&t.constructor===u[\"default\"]?\"symbol\":typeof t};e[\"default\"]=\"function\"==typeof u[\"default\"]&&\"symbol\"===s(i[\"default\"])?function(t){return\"undefined\"==typeof t?\"undefined\":s(t)}:function(t){return t&&\"function\"==typeof u[\"default\"]&&t.constructor===u[\"default\"]?\"symbol\":\"undefined\"==typeof t?\"undefined\":s(t)}},function(t,e,n){n(73);var r=n(8).Object;t.exports=function(t,e){return r.defineProperties(t,e)}},function(t,e,n){n(74);var r=n(8).Object;t.exports=function(t,e,n){return r.defineProperty(t,e,n)}},function(t,e,n){n(77),n(75),n(78),n(79),t.exports=n(8).Symbol},function(t,e,n){n(76),n(80),t.exports=n(27).f(\"iterator\")},function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(t+\" is not a function!\");return t}},function(t,e){t.exports=function(){}},function(t,e,n){var r=n(5),o=n(70),i=n(69);t.exports=function(t){return function(e,n,a){var u,s=r(e),c=o(s.length),l=i(a,c);if(t&&n!=n){for(;c>l;)if(u=s[l++],u!=u)return!0}else for(;c>l;l++)if((t||l in s)&&s[l]===n)return t||l||0;return!t&&-1}}},function(t,e,n){var r=n(53);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},function(t,e,n){var r=n(13),o=n(37),i=n(20);t.exports=function(t){var e=r(t),n=o.f;if(n)for(var a,u=n(t),s=i.f,c=0;u.length>c;)s.call(t,a=u[c++])&&e.push(a);return e}},function(t,e,n){t.exports=n(2).document&&document.documentElement},function(t,e,n){var r=n(30);t.exports=Object(\"z\").propertyIsEnumerable(0)?Object:function(t){return\"String\"==r(t)?t.split(\"\"):Object(t)}},function(t,e,n){var r=n(30);t.exports=Array.isArray||function(t){return\"Array\"==r(t)}},function(t,e,n){\"use strict\";var r=n(34),o=n(14),i=n(21),a={};n(6)(a,n(7)(\"iterator\"),function(){return this}),t.exports=function(t,e,n){t.prototype=r(a,{next:o(1,n)}),i(t,e+\" Iterator\")}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){var r=n(13),o=n(5);t.exports=function(t,e){for(var n,i=o(t),a=r(i),u=a.length,s=0;u>s;)if(i[n=a[s++]]===e)return n}},function(t,e,n){var r=n(15)(\"meta\"),o=n(12),i=n(3),a=n(4).f,u=0,s=Object.isExtensible||function(){return!0},c=!n(11)(function(){return s(Object.preventExtensions({}))}),l=function(t){a(t,r,{value:{i:\"O\"+ ++u,w:{}}})},f=function(t,e){if(!o(t))return\"symbol\"==typeof t?t:(\"string\"==typeof t?\"S\":\"P\")+t;if(!i(t,r)){if(!s(t))return\"F\";if(!e)return\"E\";l(t)}return t[r].i},d=function(t,e){if(!i(t,r)){if(!s(t))return!0;if(!e)return!1;l(t)}return t[r].w},p=function(t){return c&&h.NEED&&s(t)&&!i(t,r)&&l(t),t},h=t.exports={KEY:r,NEED:!1,fastKey:f,getWeak:d,onFreeze:p}},function(t,e,n){var r=n(20),o=n(14),i=n(5),a=n(25),u=n(3),s=n(32),c=Object.getOwnPropertyDescriptor;e.f=n(1)?c:function(t,e){if(t=i(t),e=a(e,!0),s)try{return c(t,e)}catch(n){}if(u(t,e))return o(!r.f.call(t,e),t[e])}},function(t,e,n){var r=n(5),o=n(36).f,i={}.toString,a=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],u=function(t){try{return o(t)}catch(e){return a.slice()}};t.exports.f=function(t){return a&&\"[object Window]\"==i.call(t)?u(t):o(r(t))}},function(t,e,n){var r=n(3),o=n(71),i=n(22)(\"IE_PROTO\"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),r(t,i)?t[i]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},function(t,e,n){var r=n(24),o=n(16);t.exports=function(t){return function(e,n){var i,a,u=String(o(e)),s=r(n),c=u.length;return s<0||s>=c?t?\"\":void 0:(i=u.charCodeAt(s),i<55296||i>56319||s+1===c||(a=u.charCodeAt(s+1))<56320||a>57343?t?u.charAt(s):i:t?u.slice(s,s+2):(i-55296<<10)+(a-56320)+65536)}}},function(t,e,n){var r=n(24),o=Math.max,i=Math.min;t.exports=function(t,e){return t=r(t),t<0?o(t+e,0):i(t,e)}},function(t,e,n){var r=n(24),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},function(t,e,n){var r=n(16);t.exports=function(t){return Object(r(t))}},function(t,e,n){\"use strict\";var r=n(54),o=n(62),i=n(18),a=n(5);t.exports=n(33)(Array,\"Array\",function(t,e){this._t=a(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,o(1)):\"keys\"==e?o(0,n):\"values\"==e?o(0,t[n]):o(0,[n,t[n]])},\"values\"),i.Arguments=i.Array,r(\"keys\"),r(\"values\"),r(\"entries\")},function(t,e,n){var r=n(10);r(r.S+r.F*!n(1),\"Object\",{defineProperties:n(35)})},function(t,e,n){var r=n(10);r(r.S+r.F*!n(1),\"Object\",{defineProperty:n(4).f})},function(t,e){},function(t,e,n){\"use strict\";var r=n(68)(!0);n(33)(String,\"String\",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})})},function(t,e,n){\"use strict\";var r=n(2),o=n(3),i=n(1),a=n(10),u=n(39),s=n(64).KEY,c=n(11),l=n(23),f=n(21),d=n(15),p=n(7),h=n(27),y=n(26),m=n(63),v=n(57),b=n(60),g=n(9),x=n(5),M=n(25),w=n(14),S=n(34),O=n(66),D=n(65),T=n(4),_=n(13),A=D.f,k=T.f,E=O.f,j=r.Symbol,C=r.JSON,N=C&&C.stringify,L=\"prototype\",P=p(\"_hidden\"),F=p(\"toPrimitive\"),J={}.propertyIsEnumerable,H=l(\"symbol-registry\"),I=l(\"symbols\"),Y=l(\"op-symbols\"),R=Object[L],z=\"function\"==typeof j,U=r.QObject,B=!U||!U[L]||!U[L].findChild,W=i&&c(function(){return 7!=S(k({},\"a\",{get:function(){return k(this,\"a\",{value:7}).a}})).a})?function(t,e,n){var r=A(R,e);r&&delete R[e],k(t,e,n),r&&t!==R&&k(R,e,r)}:k,Z=function(t){var e=I[t]=S(j[L]);return e._k=t,e},G=z&&\"symbol\"==typeof j.iterator?function(t){return\"symbol\"==typeof t}:function(t){return t instanceof j},K=function(t,e,n){return t===R&&K(Y,e,n),g(t),e=M(e,!0),g(n),o(I,e)?(n.enumerable?(o(t,P)&&t[P][e]&&(t[P][e]=!1),n=S(n,{enumerable:w(0,!1)})):(o(t,P)||k(t,P,w(1,{})),t[P][e]=!0),W(t,e,n)):k(t,e,n)},V=function(t,e){g(t);for(var n,r=v(e=x(e)),o=0,i=r.length;i>o;)K(t,n=r[o++],e[n]);return t},q=function(t,e){return void 0===e?S(t):V(S(t),e)},Q=function(t){var e=J.call(this,t=M(t,!0));return!(this===R&&o(I,t)&&!o(Y,t))&&(!(e||!o(this,t)||!o(I,t)||o(this,P)&&this[P][t])||e)},X=function(t,e){if(t=x(t),e=M(e,!0),t!==R||!o(I,e)||o(Y,e)){var n=A(t,e);return!n||!o(I,e)||o(t,P)&&t[P][e]||(n.enumerable=!0),n}},$=function(t){for(var e,n=E(x(t)),r=[],i=0;n.length>i;)o(I,e=n[i++])||e==P||e==s||r.push(e);return r},tt=function(t){for(var e,n=t===R,r=E(n?Y:x(t)),i=[],a=0;r.length>a;)!o(I,e=r[a++])||n&&!o(R,e)||i.push(I[e]);return i};z||(j=function(){if(this instanceof j)throw TypeError(\"Symbol is not a constructor!\");var t=d(arguments.length>0?arguments[0]:void 0),e=function(n){this===R&&e.call(Y,n),o(this,P)&&o(this[P],t)&&(this[P][t]=!1),W(this,t,w(1,n))};return i&&B&&W(R,t,{configurable:!0,set:e}),Z(t)},u(j[L],\"toString\",function(){return this._k}),D.f=X,T.f=K,n(36).f=O.f=$,n(20).f=Q,n(37).f=tt,i&&!n(19)&&u(R,\"propertyIsEnumerable\",Q,!0),h.f=function(t){return Z(p(t))}),a(a.G+a.W+a.F*!z,{Symbol:j});for(var et=\"hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables\".split(\",\"),nt=0;et.length>nt;)p(et[nt++]);for(var et=_(p.store),nt=0;et.length>nt;)y(et[nt++]);a(a.S+a.F*!z,\"Symbol\",{\"for\":function(t){return o(H,t+=\"\")?H[t]:H[t]=j(t)},keyFor:function(t){if(G(t))return m(H,t);throw TypeError(t+\" is not a symbol!\")},useSetter:function(){B=!0},useSimple:function(){B=!1}}),a(a.S+a.F*!z,\"Object\",{create:q,defineProperty:K,defineProperties:V,getOwnPropertyDescriptor:X,getOwnPropertyNames:$,getOwnPropertySymbols:tt}),C&&a(a.S+a.F*(!z||c(function(){var t=j();return\"[null]\"!=N([t])||\"{}\"!=N({a:t})||\"{}\"!=N(Object(t))})),\"JSON\",{stringify:function(t){if(void 0!==t&&!G(t)){for(var e,n,r=[t],o=1;arguments.length>o;)r.push(arguments[o++]);return e=r[1],\"function\"==typeof e&&(n=e),!n&&b(e)||(e=function(t,e){if(n&&(e=n.call(this,t,e)),!G(e))return e}),r[1]=e,N.apply(C,r)}}}),j[L][F]||n(6)(j[L],F,j[L].valueOf),f(j,\"Symbol\"),f(Math,\"Math\",!0),f(r.JSON,\"JSON\",!0)},function(t,e,n){n(26)(\"asyncIterator\")},function(t,e,n){n(26)(\"observable\")},function(t,e,n){n(72);for(var r=n(2),o=n(6),i=n(18),a=n(7)(\"toStringTag\"),u=[\"NodeList\",\"DOMTokenList\",\"MediaList\",\"StyleSheetList\",\"CSSRuleList\"],s=0;s<5;s++){var c=u[s],l=r[c],f=l&&l.prototype;f&&!f[a]&&o(f,a,c),i[c]=i.Array}},function(t,e,n){e=t.exports=n(82)(),e.push([t.id,\"date-input-polyfill{background:#fff;color:#000;text-shadow:none;border:0;padding:0;height:auto;width:auto;line-height:normal;font-family:sans-serif;font-size:14px;position:absolute!important;text-align:center;box-shadow:0 3px 10px 1px rgba(0,0,0,.22);cursor:default;z-index:1;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;overflow:hidden;display:block}date-input-polyfill[data-open=false]{visibility:hidden;z-index:-100!important;top:0}date-input-polyfill[data-open=true]{visibility:visible}date-input-polyfill select,date-input-polyfill table,date-input-polyfill td,date-input-polyfill th{background:#fff;color:#000;text-shadow:none;border:0;padding:0;height:auto;width:auto;line-height:normal;font-family:sans-serif;font-size:14px;box-shadow:none;font-family:Lato,Helvetica,Arial,sans-serif}date-input-polyfill button,date-input-polyfill select{border:0;border-radius:0;border-bottom:1px solid #dadfe1;height:24px;vertical-align:top;-webkit-appearance:none;-moz-appearance:none}date-input-polyfill .monthSelect-wrapper{width:55%;display:inline-block}date-input-polyfill .yearSelect-wrapper{width:25%;display:inline-block}date-input-polyfill select{width:100%}date-input-polyfill select:first-of-type{border-right:1px solid #dadfe1;border-radius:5px 0 0 0;-moz-border-radius:5px 0 0 0;-webkit-border-radius:5px 0 0 0}date-input-polyfill button{width:20%;background:#dadfe1;border-radius:0 5px 0 0;-moz-border-radius:0 5px 0 0;-webkit-border-radius:0 5px 0 0}date-input-polyfill button:hover{background:#eee}date-input-polyfill table{border-collapse:separate!important;border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0 0 5px 5px;overflow:hidden;max-width:280px;width:280px}date-input-polyfill td,date-input-polyfill th{width:32px;padding:4px;text-align:center;box-sizing:content-box}date-input-polyfill td[data-day]{cursor:pointer}date-input-polyfill td[data-day]:hover{background:#dadfe1}date-input-polyfill [data-selected]{font-weight:700;background:#d8eaf6}\",\"\"]);\n},function(t,e){t.exports=function(){var t=[];return t.toString=function(){for(var t=[],e=0;e=0&&g.splice(e,1)}function u(t){var e=document.createElement(\"style\");return e.type=\"text/css\",i(t,e),e}function s(t){var e=document.createElement(\"link\");return e.rel=\"stylesheet\",i(t,e),e}function c(t,e){var n,r,o;if(e.singleton){var i=b++;n=v||(v=u(e)),r=l.bind(null,n,i,!1),o=l.bind(null,n,i,!0)}else t.sourceMap&&\"function\"==typeof URL&&\"function\"==typeof URL.createObjectURL&&\"function\"==typeof URL.revokeObjectURL&&\"function\"==typeof Blob&&\"function\"==typeof btoa?(n=s(e),r=d.bind(null,n),o=function(){a(n),n.href&&URL.revokeObjectURL(n.href)}):(n=u(e),r=f.bind(null,n),o=function(){a(n)});return r(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;r(t=e)}else o()}}function l(t,e,n,r){var o=n?\"\":r.css;if(t.styleSheet)t.styleSheet.cssText=x(e,o);else{var i=document.createTextNode(o),a=t.childNodes;a[e]&&t.removeChild(a[e]),a.length?t.insertBefore(i,a[e]):t.appendChild(i)}}function f(t,e){var n=e.css,r=e.media;if(r&&t.setAttribute(\"media\",r),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}function d(t,e){var n=e.css,r=e.sourceMap;r&&(n+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+\" */\");var o=new Blob([n],{type:\"text/css\"}),i=t.href;t.href=URL.createObjectURL(o),i&&URL.revokeObjectURL(i)}var p={},h=function(t){var e;return function(){return\"undefined\"==typeof e&&(e=t.apply(this,arguments)),e}},y=h(function(){return/msie [6-9]\\b/.test(window.navigator.userAgent.toLowerCase())}),m=h(function(){return document.head||document.getElementsByTagName(\"head\")[0]}),v=null,b=0,g=[];t.exports=function(t,e){e=e||{},\"undefined\"==typeof e.singleton&&(e.singleton=y()),\"undefined\"==typeof e.insertAt&&(e.insertAt=\"bottom\");var n=o(t);return r(n,e),function(t){for(var i=[],a=0;a0?o(r(t),9007199254740991):0}},,,function(t,e,n){var r=n(16),o=n(220),i=n(76),a=Object.defineProperty;e.f=n(35)?Object.defineProperty:function(t,e,n){if(r(t),e=i(e,!0),r(n),o)try{return a(t,e,n)}catch(u){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},function(t,e,n){t.exports=!n(22)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},,,,,,,,function(t,e,n){var r=n(77);t.exports=function(t){return Object(r(t))}},,,,,function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},,function(t,e,n){var r=n(2),o=n(22),i=n(77),a=/"/g,u=function(t,e,n,r){var o=String(i(t)),u="<"+e;return""!==n&&(u+=" "+n+'="'+String(r).replace(a,""")+'"'),u+">"+o+""};t.exports=function(t,e){var n={};n[t]=e(u),r(r.P+r.F*o(function(){var e=""[t]('"');return e!==e.toLowerCase()||e.split('"').length>3}),"String",n)}},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var r=n(21),o=n(56),i=n(51),a=n(90)("src"),u=Function.toString,c=(""+u).split("toString");n(55).inspectSource=function(t){return u.call(t)},(t.exports=function(t,e,n,u){var s="function"==typeof n;s&&(i(n,"name")||o(n,"name",e)),t[e]!==n&&(s&&(i(n,a)||o(n,a,t[e]?""+t[e]:c.join(String(e)))),t===r?t[e]=n:u?t[e]?t[e]=n:o(t,e,n):(delete t[e],o(t,e,n)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[a]||u.call(this)})},function(t,e,n){var r=n(116),o=n(77);t.exports=function(t){return r(o(t))}},,function(t,e){var n=t.exports={version:"2.6.2"};"number"==typeof __e&&(__e=n)},function(t,e,n){var r=n(34),o=n(86);t.exports=n(35)?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},,function(t,e,n){var r=n(51),o=n(43),i=n(175)("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),r(t,i)?t[i]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},,function(t,e,n){var r=n(124),o=n(86),i=n(53),a=n(76),u=n(51),c=n(220),s=Object.getOwnPropertyDescriptor;e.f=n(35)?s:function(t,e){if(t=i(t),e=a(e,!0),c)try{return s(t,e)}catch(n){}if(u(t,e))return o(!r.f.call(t,e),t[e])}},function(t,e,n){"use strict";var r=n(22);t.exports=function(t,e){return!!t&&r(function(){e?t.call(null,function(){},1):t.call(null)})}},,function(t,e,n){var r=n(48);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},,,,,function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e,n){var r=n(2),o=n(55),i=n(22);t.exports=function(t,e){var n=(o.Object||{})[t]||Object[t],a={};a[t]=e(n),r(r.S+r.F*i(function(){n(1)}),"Object",a)}},function(t,e,n){var r=n(63),o=n(116),i=n(43),a=n(31),u=n(234);t.exports=function(t,e){var n=1==t,c=2==t,s=3==t,f=4==t,l=6==t,p=5==t||l,h=e||u;return function(e,u,d){for(var v,y,g=i(e),m=o(g),b=r(u,d,3),_=a(m.length),w=0,S=n?h(e,_):c?h(e,0):void 0;_>w;w++)if((p||w in m)&&(y=b(v=m[w],w,g),t))if(n)S[w]=y;else if(y)switch(t){case 3:return!0;case 5:return v;case 6:return w;case 2:S.push(v)}else if(f)return!1;return l?-1:s||f?f:S}}},,,,,function(t,e,n){var r=n(23);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,n){"use strict";if(n(35)){var r=n(87),o=n(21),i=n(22),a=n(2),u=n(139),c=n(190),s=n(63),f=n(98),l=n(86),p=n(56),h=n(100),d=n(64),v=n(31),y=n(245),g=n(92),m=n(76),b=n(51),_=n(95),w=n(23),S=n(43),k=n(186),E=n(84),x=n(58),T=n(93).f,O=n(134),A=n(90),P=n(29),M=n(71),j=n(152),D=n(126),C=n(206),F=n(108),I=n(135),R=n(97),N=n(187),L=n(236),Z=n(34),U=n(60),z=Z.f,B=U.f,H=o.RangeError,W=o.TypeError,K=o.Uint8Array,G=Array.prototype,J=c.ArrayBuffer,V=c.DataView,q=M(0),Y=M(2),X=M(3),$=M(4),Q=M(5),tt=M(6),et=j(!0),nt=j(!1),rt=C.values,ot=C.keys,it=C.entries,at=G.lastIndexOf,ut=G.reduce,ct=G.reduceRight,st=G.join,ft=G.sort,lt=G.slice,pt=G.toString,ht=G.toLocaleString,dt=P("iterator"),vt=P("toStringTag"),yt=A("typed_constructor"),gt=A("def_constructor"),mt=u.CONSTR,bt=u.TYPED,_t=u.VIEW,wt=M(1,function(t,e){return Tt(D(t,t[gt]),e)}),St=i(function(){return 1===new K(new Uint16Array([1]).buffer)[0]}),kt=!!K&&!!K.prototype.set&&i(function(){new K(1).set({})}),Et=function(t,e){var n=d(t);if(n<0||n%e)throw H("Wrong offset!");return n},xt=function(t){if(w(t)&&bt in t)return t;throw W(t+" is not a typed array!")},Tt=function(t,e){if(!(w(t)&&yt in t))throw W("It is not a typed array constructor!");return new t(e)},Ot=function(t,e){return At(D(t,t[gt]),e)},At=function(t,e){for(var n=0,r=e.length,o=Tt(t,r);r>n;)o[n]=e[n++];return o},Pt=function(t,e,n){z(t,e,{get:function(){return this._d[n]}})},Mt=function(t){var e,n,r,o,i,a,u=S(t),c=arguments.length,f=c>1?arguments[1]:void 0,l=void 0!==f,p=O(u);if(null!=p&&!k(p)){for(a=p.call(u),r=[],e=0;!(i=a.next()).done;e++)r.push(i.value);u=r}for(l&&c>2&&(f=s(f,arguments[2],2)),e=0,n=v(u.length),o=Tt(this,n);n>e;e++)o[e]=l?f(u[e],e):u[e];return o},jt=function(){for(var t=0,e=arguments.length,n=Tt(this,e);e>t;)n[t]=arguments[t++];return n},Dt=!!K&&i(function(){ht.call(new K(1))}),Ct=function(){return ht.apply(Dt?lt.call(xt(this)):xt(this),arguments)},Ft={copyWithin:function(t,e){return L.call(xt(this),t,e,arguments.length>2?arguments[2]:void 0)},every:function(t){return $(xt(this),t,arguments.length>1?arguments[1]:void 0)},fill:function(t){return N.apply(xt(this),arguments)},filter:function(t){return Ot(this,Y(xt(this),t,arguments.length>1?arguments[1]:void 0))},find:function(t){return Q(xt(this),t,arguments.length>1?arguments[1]:void 0)},findIndex:function(t){return tt(xt(this),t,arguments.length>1?arguments[1]:void 0)},forEach:function(t){q(xt(this),t,arguments.length>1?arguments[1]:void 0)},indexOf:function(t){return nt(xt(this),t,arguments.length>1?arguments[1]:void 0)},includes:function(t){return et(xt(this),t,arguments.length>1?arguments[1]:void 0)},join:function(t){return st.apply(xt(this),arguments)},lastIndexOf:function(t){return at.apply(xt(this),arguments)},map:function(t){return wt(xt(this),t,arguments.length>1?arguments[1]:void 0)},reduce:function(t){return ut.apply(xt(this),arguments)},reduceRight:function(t){return ct.apply(xt(this),arguments)},reverse:function(){for(var t,e=xt(this).length,n=Math.floor(e/2),r=0;r1?arguments[1]:void 0)},sort:function(t){return ft.call(xt(this),t)},subarray:function(t,e){var n=xt(this),r=n.length,o=g(t,r);return new(D(n,n[gt]))(n.buffer,n.byteOffset+o*n.BYTES_PER_ELEMENT,v((void 0===e?r:g(e,r))-o))}},It=function(t,e){return Ot(this,lt.call(xt(this),t,e))},Rt=function(t){xt(this);var e=Et(arguments[1],1),n=this.length,r=S(t),o=v(r.length),i=0;if(o+e>n)throw H("Wrong length!");for(;i255?255:255&r),o.v[h](n*e+o.o,r,St)}(this,n,t)},enumerable:!0})};b?(d=n(function(t,n,r,o){f(t,d,s,"_d");var i,a,u,c,l=0,h=0;if(w(n)){if(!(n instanceof J||"ArrayBuffer"==(c=_(n))||"SharedArrayBuffer"==c))return bt in n?At(d,n):Mt.call(d,n);i=n,h=Et(r,e);var g=n.byteLength;if(void 0===o){if(g%e)throw H("Wrong length!");if((a=g-h)<0)throw H("Wrong length!")}else if((a=v(o)*e)+h>g)throw H("Wrong length!");u=a/e}else u=y(n),i=new J(a=u*e);for(p(t,"_d",{b:i,o:h,l:a,e:u,v:new V(i)});ldocument.F=Object<\/script>"),t.close(),c=t.F;r--;)delete c.prototype[i[r]];return c()};t.exports=Object.create||function(t,e){var n;return null!==t?(u.prototype=r(t),n=new u,u.prototype=null,n[a]=t):n=c(),void 0===e?n:o(n,e)}},,function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e){t.exports=!1},,,function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},function(t,e,n){var r=n(223),o=n(176);t.exports=Object.keys||function(t){return r(t,o)}},function(t,e,n){var r=n(64),o=Math.max,i=Math.min;t.exports=function(t,e){return(t=r(t))<0?o(t+e,0):i(t,e)}},function(t,e,n){var r=n(223),o=n(176).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},,function(t,e,n){var r=n(69),o=n(29)("toStringTag"),i="Arguments"==r(function(){return arguments}());t.exports=function(t){var e,n,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=Object(t),o))?n:i?r(e):"Object"==(a=r(e))&&"function"==typeof e.callee?"Arguments":a}},function(t,e,n){var r=n(29)("unscopables"),o=Array.prototype;null==o[r]&&n(56)(o,r,{}),t.exports=function(t){o[r][t]=!0}},function(t,e,n){"use strict";var r=n(21),o=n(34),i=n(35),a=n(29)("species");t.exports=function(t){var e=r[t];i&&e&&!e[a]&&o.f(e,a,{configurable:!0,get:function(){return this}})}},function(t,e){t.exports=function(t,e,n,r){if(!(t instanceof e)||void 0!==r&&r in t)throw TypeError(n+": incorrect invocation!");return t}},function(t,e,n){var r=n(63),o=n(233),i=n(186),a=n(16),u=n(31),c=n(134),s={},f={};(e=t.exports=function(t,e,n,l,p){var h,d,v,y,g=p?function(){return t}:c(t),m=r(n,l,e?2:1),b=0;if("function"!=typeof g)throw TypeError(t+" is not iterable!");if(i(g)){for(h=u(t.length);h>b;b++)if((y=e?m(a(d=t[b])[0],d[1]):m(t[b]))===s||y===f)return y}else for(v=g.call(t);!(d=v.next()).done;)if((y=o(v,m,d.value,e))===s||y===f)return y}).BREAK=s,e.RETURN=f},function(t,e,n){var r=n(52);t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},,,,,,,function(t,e,n){var r=n(34).f,o=n(51),i=n(29)("toStringTag");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},function(t,e){t.exports={}},function(t,e,n){var r=n(23);t.exports=function(t,e){if(!r(t)||t._t!==e)throw TypeError("Incompatible receiver, "+e+" required!");return t}},function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(r){"object"==typeof window&&(n=window)}t.exports=n},,,,,,function(t,e,n){var r=n(69);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},function(t,e,n){var r=n(2),o=n(77),i=n(22),a=n(179),u="["+a+"]",c=RegExp("^"+u+u+"*"),s=RegExp(u+u+"*$"),f=function(t,e,n){var o={},u=i(function(){return!!a[t]()||"​…"!="​…"[t]()}),c=o[t]=u?e(l):a[t];n&&(o[n]=c),r(r.P+r.F*u,"String",o)},l=f.trim=function(t,e){return t=String(o(t)),1&e&&(t=t.replace(c,"")),2&e&&(t=t.replace(s,"")),t};t.exports=f},,,,,,,function(t,e){e.f={}.propertyIsEnumerable},function(t,e,n){"use strict";var r=n(16);t.exports=function(){var t=r(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},function(t,e,n){var r=n(16),o=n(48),i=n(29)("species");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||null==(n=r(a)[i])?e:o(n)}},,,,,,function(t,e,n){var r=n(55),o=n(21),i=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(t.exports=function(t,e){return i[t]||(i[t]=void 0!==e?e:{})})("versions",[]).push({version:r.version,mode:n(87)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,n){var r=n(95),o=n(29)("iterator"),i=n(108);t.exports=n(55).getIteratorMethod=function(t){if(null!=t)return t[o]||t["@@iterator"]||i[r(t)]}},function(t,e,n){var r=n(29)("iterator"),o=!1;try{var i=[7][r]();i.return=function(){o=!0},Array.from(i,function(){throw 2})}catch(a){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i=[7],u=i[r]();u.next=function(){return{done:n=!0}},i[r]=function(){return u},t(i)}catch(a){}return n}},function(t,e,n){"use strict";var r=n(95),o=RegExp.prototype.exec;t.exports=function(t,e){var n=t.exec;if("function"==typeof n){var i=n.call(t,e);if("object"!=typeof i)throw new TypeError("RegExp exec method returned something other than an Object or null");return i}if("RegExp"!==r(t))throw new TypeError("RegExp#exec called on incompatible receiver");return o.call(t,e)}},function(t,e,n){"use strict";n(237);var r=n(52),o=n(56),i=n(22),a=n(77),u=n(29),c=n(188),s=u("species"),f=!i(function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$")}),l=function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2===n.length&&"a"===n[0]&&"b"===n[1]}();t.exports=function(t,e,n){var p=u(t),h=!i(function(){var e={};return e[p]=function(){return 7},7!=""[t](e)}),d=h?!i(function(){var e=!1,n=/a/;return n.exec=function(){return e=!0,null},"split"===t&&(n.constructor={},n.constructor[s]=function(){return n}),n[p](""),!e}):void 0;if(!h||!d||"replace"===t&&!f||"split"===t&&!l){var v=/./[p],y=n(a,p,""[t],function(t,e,n,r,o){return e.exec===c?h&&!o?{done:!0,value:v.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),g=y[0],m=y[1];r(String.prototype,t,g),o(RegExp.prototype,p,2==e?function(t,e){return m.call(t,this,e)}:function(t){return m.call(t,this)})}}},function(t,e,n){"use strict";var r=n(21),o=n(2),i=n(52),a=n(100),u=n(83),c=n(99),s=n(98),f=n(23),l=n(22),p=n(135),h=n(107),d=n(180);t.exports=function(t,e,n,v,y,g){var m=r[t],b=m,_=y?"set":"add",w=b&&b.prototype,S={},k=function(t){var e=w[t];i(w,t,"delete"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!f(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!f(t)?void 0:e.call(this,0===t?0:t)}:"add"==t?function(t){return e.call(this,0===t?0:t),this}:function(t,n){return e.call(this,0===t?0:t,n),this})};if("function"==typeof b&&(g||w.forEach&&!l(function(){(new b).entries().next()}))){var E=new b,x=E[_](g?{}:-0,1)!=E,T=l(function(){E.has(1)}),O=p(function(t){new b(t)}),A=!g&&l(function(){for(var t=new b,e=5;e--;)t[_](e,e);return!t.has(-0)});O||((b=e(function(e,n){s(e,b,t);var r=d(new m,e,b);return null!=n&&c(n,y,r[_],r),r})).prototype=w,w.constructor=b),(T||A)&&(k("delete"),k("has"),y&&k("get")),(A||x)&&k(_),g&&w.clear&&delete w.clear}else b=v.getConstructor(e,t,y,_),a(b.prototype,n),u.NEED=!0;return h(b,t),S[t]=b,o(o.G+o.W+o.F*(b!=m),S),g||v.setStrong(b,t,y),b}},function(t,e,n){for(var r,o=n(21),i=n(56),a=n(90),u=a("typed_array"),c=a("view"),s=!(!o.ArrayBuffer||!o.DataView),f=s,l=0,p="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");l<9;)(r=o[p[l++]])?(i(r.prototype,u,!0),i(r.prototype,c,!0)):f=!1;t.exports={ABV:s,CONSTR:f,TYPED:u,VIEW:c}},,,,,,,,,,,,,function(t,e,n){var r=n(53),o=n(31),i=n(92);t.exports=function(t){return function(e,n,a){var u,c=r(e),s=o(c.length),f=i(a,s);if(t&&n!=n){for(;s>f;)if((u=c[f++])!=u)return!0}else for(;s>f;f++)if((t||f in c)&&c[f]===n)return t||f||0;return!t&&-1}}},function(t,e,n){var r=n(69);t.exports=Array.isArray||function(t){return"Array"==r(t)}},function(t,e,n){var r=n(64),o=n(77);t.exports=function(t){return function(e,n){var i,a,u=String(o(e)),c=r(n),s=u.length;return c<0||c>=s?t?"":void 0:(i=u.charCodeAt(c))<55296||i>56319||c+1===s||(a=u.charCodeAt(c+1))<56320||a>57343?t?u.charAt(c):i:t?u.slice(c,c+2):a-56320+(i-55296<<10)+65536}}},function(t,e,n){"use strict";var r=n(87),o=n(2),i=n(52),a=n(56),u=n(108),c=n(183),s=n(107),f=n(58),l=n(29)("iterator"),p=!([].keys&&"next"in[].keys()),h=function(){return this};t.exports=function(t,e,n,d,v,y,g){c(n,e,d);var m,b,_,w=function(t){if(!p&&t in x)return x[t];switch(t){case"keys":case"values":return function(){return new n(this,t)}}return function(){return new n(this,t)}},S=e+" Iterator",k="values"==v,E=!1,x=t.prototype,T=x[l]||x["@@iterator"]||v&&x[v],O=T||w(v),A=v?k?w("entries"):O:void 0,P="Array"==e&&x.entries||T;if(P&&(_=f(P.call(new t)))!==Object.prototype&&_.next&&(s(_,S,!0),r||"function"==typeof _[l]||a(_,l,h)),k&&T&&"values"!==T.name&&(E=!0,O=function(){return T.call(this)}),r&&!g||!p&&!E&&x[l]||a(x,l,O),u[e]=O,u[S]=h,v)if(m={values:k?O:w("values"),keys:y?O:w("keys"),entries:A},g)for(b in m)b in x||i(x,b,m[b]);else o(o.P+o.F*(p||E),e,m);return m}},function(t,e,n){var r=n(23),o=n(69),i=n(29)("match");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:"RegExp"==o(t))}},,,,,,,,,,,,,,,,,,function(t,e,n){var r=n(23),o=n(21).document,i=r(o)&&r(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},function(t,e,n){var r=n(132)("keys"),o=n(90);t.exports=function(t){return r[t]||(r[t]=o(t))}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,n){var r=n(21).document;t.exports=r&&r.documentElement},function(t,e,n){var r=n(23),o=n(16),i=function(t,e){if(o(t),!r(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,r){try{(r=n(63)(Function.call,n(60).f(Object.prototype,"__proto__").set,2))(t,[]),e=!(t instanceof Array)}catch(o){e=!0}return function(t,n){return i(t,n),e?t.__proto__=n:r(t,n),t}}({},!1):void 0),check:i}},function(t,e){t.exports="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff"},function(t,e,n){var r=n(23),o=n(178).set;t.exports=function(t,e,n){var i,a=e.constructor;return a!==n&&"function"==typeof a&&(i=a.prototype)!==n.prototype&&r(i)&&o&&o(t,i),t}},function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},function(t,e){var n=Math.expm1;t.exports=!n||n(10)>22025.465794806718||n(10)<22025.465794806718||-2e-17!=n(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:Math.exp(t)-1}:n},function(t,e,n){"use strict";var r=n(84),o=n(86),i=n(107),a={};n(56)(a,n(29)("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=r(a,{next:o(1,n)}),i(t,e+" Iterator")}},function(t,e,n){var r=n(156),o=n(77);t.exports=function(t,e,n){if(r(e))throw TypeError("String#"+n+" doesn't accept regex!");return String(o(t))}},function(t,e,n){var r=n(29)("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[r]=!1,!"/./"[t](e)}catch(o){}}return!0}},function(t,e,n){var r=n(108),o=n(29)("iterator"),i=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||i[o]===t)}},function(t,e,n){"use strict";var r=n(43),o=n(92),i=n(31);t.exports=function(t){for(var e=r(this),n=i(e.length),a=arguments.length,u=o(a>1?arguments[1]:void 0,n),c=a>2?arguments[2]:void 0,s=void 0===c?n:o(c,n);s>u;)e[u++]=t;return e}},function(t,e,n){"use strict";var r,o,i=n(125),a=RegExp.prototype.exec,u=String.prototype.replace,c=a,s=(r=/a/,o=/b*/g,a.call(r,"a"),a.call(o,"a"),0!==r.lastIndex||0!==o.lastIndex),f=void 0!==/()??/.exec("")[1];(s||f)&&(c=function(t){var e,n,r,o,c=this;return f&&(n=new RegExp("^"+c.source+"$(?!\\s)",i.call(c))),s&&(e=c.lastIndex),r=a.call(c,t),s&&r&&(c.lastIndex=c.global?r.index+r[0].length:e),f&&r&&r.length>1&&u.call(r[0],n,function(){for(o=1;o>1,f=23===e?O(2,-24)-O(2,-77):0,l=0,p=t<0||0===t&&1/t<0?1:0;for((t=T(t))!=t||t===E?(o=t!=t?1:0,r=c):(r=A(P(t)/M),t*(i=O(2,-r))<1&&(r--,i*=2),(t+=r+s>=1?f/i:f*O(2,1-s))*i>=2&&(r++,i/=2),r+s>=c?(o=0,r=c):r+s>=1?(o=(t*i-1)*O(2,e),r+=s):(o=t*O(2,s-1)*O(2,e),r=0));e>=8;a[l++]=255&o,o/=256,e-=8);for(r=r<0;a[l++]=255&r,r/=256,u-=8);return a[--l]|=128*p,a}function I(t,e,n){var r,o=8*n-e-1,i=(1<>1,u=o-7,c=n-1,s=t[c--],f=127&s;for(s>>=7;u>0;f=256*f+t[c],c--,u-=8);for(r=f&(1<<-u)-1,f>>=-u,u+=e;u>0;r=256*r+t[c],c--,u-=8);if(0===f)f=1-a;else{if(f===i)return r?NaN:s?-E:E;r+=O(2,e),f-=a}return(s?-1:1)*r*O(2,f-e)}function R(t){return t[3]<<24|t[2]<<16|t[1]<<8|t[0]}function N(t){return[255&t]}function L(t){return[255&t,t>>8&255]}function Z(t){return[255&t,t>>8&255,t>>16&255,t>>24&255]}function U(t){return F(t,52,8)}function z(t){return F(t,23,4)}function B(t,e,n){v(t[m],e,{get:function(){return this[n]}})}function H(t,e,n,r){var o=h(+n);if(o+e>t[D])throw k(b);var i=t[j]._b,a=o+t[C],u=i.slice(a,a+e);return r?u:u.reverse()}function W(t,e,n,r,o,i){var a=h(+n);if(a+e>t[D])throw k(b);for(var u=t[j]._b,c=a+t[C],s=r(+o),f=0;fV;)(K=J[V++])in _||u(_,K,x[K]);i||(G.constructor=_)}var q=new w(new _(2)),Y=w[m].setInt8;q.setInt8(0,2147483648),q.setInt8(1,2147483649),!q.getInt8(0)&&q.getInt8(1)||c(w[m],{setInt8:function(t,e){Y.call(this,t,e<<24>>24)},setUint8:function(t,e){Y.call(this,t,e<<24>>24)}},!0)}else _=function(t){f(this,_,"ArrayBuffer");var e=h(t);this._b=y.call(new Array(e),0),this[D]=e},w=function(t,e,n){f(this,w,"DataView"),f(t,_,"DataView");var r=t[D],o=l(e);if(o<0||o>r)throw k("Wrong offset!");if(o+(n=void 0===n?r-o:p(n))>r)throw k("Wrong length!");this[j]=t,this[C]=o,this[D]=n},o&&(B(_,"byteLength","_l"),B(w,"buffer","_b"),B(w,"byteLength","_l"),B(w,"byteOffset","_o")),c(w[m],{getInt8:function(t){return H(this,1,t)[0]<<24>>24},getUint8:function(t){return H(this,1,t)[0]},getInt16:function(t){var e=H(this,2,t,arguments[1]);return(e[1]<<8|e[0])<<16>>16},getUint16:function(t){var e=H(this,2,t,arguments[1]);return e[1]<<8|e[0]},getInt32:function(t){return R(H(this,4,t,arguments[1]))},getUint32:function(t){return R(H(this,4,t,arguments[1]))>>>0},getFloat32:function(t){return I(H(this,4,t,arguments[1]),23,4)},getFloat64:function(t){return I(H(this,8,t,arguments[1]),52,8)},setInt8:function(t,e){W(this,1,t,N,e)},setUint8:function(t,e){W(this,1,t,N,e)},setInt16:function(t,e){W(this,2,t,L,e,arguments[2])},setUint16:function(t,e){W(this,2,t,L,e,arguments[2])},setInt32:function(t,e){W(this,4,t,Z,e,arguments[2])},setUint32:function(t,e){W(this,4,t,Z,e,arguments[2])},setFloat32:function(t,e){W(this,4,t,z,e,arguments[2])},setFloat64:function(t,e){W(this,8,t,U,e,arguments[2])}});g(_,"ArrayBuffer"),g(w,"DataView"),u(w[m],a.VIEW,!0),e.ArrayBuffer=_,e.DataView=w},,,,,,,,,,,,function(t,e,n){"use strict";var r=n(91),o=n(133),i=n(124),a=n(43),u=n(116),c=Object.assign;t.exports=!c||n(22)(function(){var t={},e={},n=Symbol(),r="abcdefghijklmnopqrst";return t[n]=7,r.split("").forEach(function(t){e[t]=t}),7!=c({},t)[n]||Object.keys(c({},e)).join("")!=r})?function(t,e){for(var n=a(t),c=arguments.length,s=1,f=o.f,l=i.f;c>s;)for(var p,h=u(arguments[s++]),d=f?r(h).concat(f(h)):r(h),v=d.length,y=0;v>y;)l.call(h,p=d[y++])&&(n[p]=h[p]);return n}:c},function(t,e){t.exports=function(t,e,n){var r=void 0===n;switch(e.length){case 0:return r?t():t.call(n);case 1:return r?t(e[0]):t.call(n,e[0]);case 2:return r?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return r?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return r?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},function(t,e,n){"use strict";var r=n(64),o=n(77);t.exports=function(t){var e=String(o(this)),n="",i=r(t);if(i<0||i==1/0)throw RangeError("Count can't be negative");for(;i>0;(i>>>=1)&&(e+=e))1&i&&(n+=e);return n}},function(t,e,n){"use strict";var r=n(34),o=n(86);t.exports=function(t,e,n){e in t?r.f(t,e,o(0,n)):t[e]=n}},function(t,e,n){"use strict";var r=n(96),o=n(207),i=n(108),a=n(53);t.exports=n(155)(Array,"Array",function(t,e){this._t=a(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,o(1)):o(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])},"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){var r,o,i,a=n(63),u=n(203),c=n(177),s=n(174),f=n(21),l=f.process,p=f.setImmediate,h=f.clearImmediate,d=f.MessageChannel,v=f.Dispatch,y=0,g={},m=function(){var t=+this;if(g.hasOwnProperty(t)){var e=g[t];delete g[t],e()}},b=function(t){m.call(t.data)};p&&h||(p=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return g[++y]=function(){u("function"==typeof t?t:Function(t),e)},r(y),y},h=function(t){delete g[t]},"process"==n(69)(l)?r=function(t){l.nextTick(a(m,t,1))}:v&&v.now?r=function(t){v.now(a(m,t,1))}:d?(i=(o=new d).port2,o.port1.onmessage=b,r=a(i.postMessage,i,1)):f.addEventListener&&"function"==typeof postMessage&&!f.importScripts?(r=function(t){f.postMessage(t+"","*")},f.addEventListener("message",b,!1)):r="onreadystatechange"in s("script")?function(t){c.appendChild(s("script")).onreadystatechange=function(){c.removeChild(this),m.call(t)}}:function(t){setTimeout(a(m,t,1),0)}),t.exports={set:p,clear:h}},function(t,e,n){"use strict";var r=n(48);function o(t){var e,n;this.promise=new t(function(t,r){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=r}),this.resolve=r(e),this.reject=r(n)}t.exports.f=function(t){return new o(t)}},function(t,e,n){var r=n(21).navigator;t.exports=r&&r.userAgent||""},,,,,,,,,,function(t,e,n){t.exports=!n(35)&&!n(22)(function(){return 7!=Object.defineProperty(n(174)("div"),"a",{get:function(){return 7}}).a})},function(t,e,n){e.f=n(29)},function(t,e,n){var r=n(21),o=n(55),i=n(87),a=n(221),u=n(34).f;t.exports=function(t){var e=o.Symbol||(o.Symbol=i?{}:r.Symbol||{});"_"==t.charAt(0)||t in e||u(e,t,{value:a.f(t)})}},function(t,e,n){var r=n(51),o=n(53),i=n(152)(!1),a=n(175)("IE_PROTO");t.exports=function(t,e){var n,u=o(t),c=0,s=[];for(n in u)n!=a&&r(u,n)&&s.push(n);for(;e.length>c;)r(u,n=e[c++])&&(~i(s,n)||s.push(n));return s}},function(t,e,n){var r=n(34),o=n(16),i=n(91);t.exports=n(35)?Object.defineProperties:function(t,e){o(t);for(var n,a=i(e),u=a.length,c=0;u>c;)r.f(t,n=a[c++],e[n]);return t}},function(t,e,n){var r=n(53),o=n(93).f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&"[object Window]"==i.call(t)?function(t){try{return o(t)}catch(e){return a.slice()}}(t):o(r(t))}},function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},function(t,e,n){"use strict";var r=n(48),o=n(23),i=n(203),a=[].slice,u={};t.exports=Function.bind||function(t){var e=r(this),n=a.call(arguments,1),c=function(){var r=n.concat(a.call(arguments));return this instanceof c?function(t,e,n){if(!(e in u)){for(var r=[],o=0;o>>0||(a.test(n)?16:10))}:r},function(t,e,n){var r=n(21).parseFloat,o=n(117).trim;t.exports=1/r(n(179)+"-0")!=-1/0?function(t){var e=o(String(t),3),n=r(e);return 0===n&&"-"==e.charAt(0)?-0:n}:r},function(t,e,n){var r=n(69);t.exports=function(t,e){if("number"!=typeof t&&"Number"!=r(t))throw TypeError(e);return+t}},function(t,e,n){var r=n(23),o=Math.floor;t.exports=function(t){return!r(t)&&isFinite(t)&&o(t)===t}},function(t,e){t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:Math.log(1+t)}},function(t,e,n){var r=n(16);t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(a){var i=t.return;throw void 0!==i&&r(i.call(t)),a}}},function(t,e,n){var r=n(399);t.exports=function(t,e){return new(r(t))(e)}},function(t,e,n){var r=n(48),o=n(43),i=n(116),a=n(31);t.exports=function(t,e,n,u,c){r(e);var s=o(t),f=i(s),l=a(s.length),p=c?l-1:0,h=c?-1:1;if(n<2)for(;;){if(p in f){u=f[p],p+=h;break}if(p+=h,c?p<0:l<=p)throw TypeError("Reduce of empty array with no initial value")}for(;c?p>=0:l>p;p+=h)p in f&&(u=e(u,f[p],p,s));return u}},function(t,e,n){"use strict";var r=n(43),o=n(92),i=n(31);t.exports=[].copyWithin||function(t,e){var n=r(this),a=i(n.length),u=o(t,a),c=o(e,a),s=arguments.length>2?arguments[2]:void 0,f=Math.min((void 0===s?a:o(s,a))-c,a-u),l=1;for(c0;)c in n?n[u]=n[c]:delete n[u],u+=l,c+=l;return n}},function(t,e,n){"use strict";var r=n(188);n(2)({target:"RegExp",proto:!0,forced:r!==/./.exec},{exec:r})},function(t,e,n){n(35)&&"g"!=/./g.flags&&n(34).f(RegExp.prototype,"flags",{configurable:!0,get:n(125)})},function(t,e,n){var r=n(21),o=n(208).set,i=r.MutationObserver||r.WebKitMutationObserver,a=r.process,u=r.Promise,c="process"==n(69)(a);t.exports=function(){var t,e,n,s=function(){var r,o;for(c&&(r=a.domain)&&r.exit();t;){o=t.fn,t=t.next;try{o()}catch(i){throw t?n():e=void 0,i}}e=void 0,r&&r.enter()};if(c)n=function(){a.nextTick(s)};else if(!i||r.navigator&&r.navigator.standalone)if(u&&u.resolve){var f=u.resolve(void 0);n=function(){f.then(s)}}else n=function(){o.call(r,s)};else{var l=!0,p=document.createTextNode("");new i(s).observe(p,{characterData:!0}),n=function(){p.data=l=!l}}return function(r){var o={fn:r,next:void 0};e&&(e.next=o),t||(t=o,n()),e=o}}},function(t,e,n){"use strict";var r=n(241),o=n(109);t.exports=n(138)("Map",function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{get:function(t){var e=r.getEntry(o(this,"Map"),t);return e&&e.v},set:function(t,e){return r.def(o(this,"Map"),0===t?0:t,e)}},r,!0)},function(t,e,n){"use strict";var r=n(34).f,o=n(84),i=n(100),a=n(63),u=n(98),c=n(99),s=n(155),f=n(207),l=n(97),p=n(35),h=n(83).fastKey,d=n(109),v=p?"_s":"size",y=function(t,e){var n,r=h(e);if("F"!==r)return t._i[r];for(n=t._f;n;n=n.n)if(n.k==e)return n};t.exports={getConstructor:function(t,e,n,s){var f=t(function(t,r){u(t,f,e,"_i"),t._t=e,t._i=o(null),t._f=void 0,t._l=void 0,t[v]=0,null!=r&&c(r,n,t[s],t)});return i(f.prototype,{clear:function(){for(var t=d(this,e),n=t._i,r=t._f;r;r=r.n)r.r=!0,r.p&&(r.p=r.p.n=void 0),delete n[r.i];t._f=t._l=void 0,t[v]=0},delete:function(t){var n=d(this,e),r=y(n,t);if(r){var o=r.n,i=r.p;delete n._i[r.i],r.r=!0,i&&(i.n=o),o&&(o.p=i),n._f==r&&(n._f=o),n._l==r&&(n._l=i),n[v]--}return!!r},forEach:function(t){d(this,e);for(var n,r=a(t,arguments.length>1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(r(n.v,n.k,this);n&&n.r;)n=n.p},has:function(t){return!!y(d(this,e),t)}}),p&&r(f.prototype,"size",{get:function(){return d(this,e)[v]}}),f},def:function(t,e,n){var r,o,i=y(t,e);return i?i.v=n:(t._l=i={i:o=h(e,!0),k:e,v:n,p:r=t._l,n:void 0,r:!1},t._f||(t._f=i),r&&(r.n=i),t[v]++,"F"!==o&&(t._i[o]=i)),t},getEntry:y,setStrong:function(t,e,n){s(t,e,function(t,n){this._t=d(t,e),this._k=n,this._l=void 0},function(){for(var t=this._k,e=this._l;e&&e.r;)e=e.p;return this._t&&(this._l=e=e?e.n:this._t._f)?f(0,"keys"==t?e.k:"values"==t?e.v:[e.k,e.v]):(this._t=void 0,f(1))},n?"entries":"values",!n,!0),l(e)}}},function(t,e,n){"use strict";var r=n(241),o=n(109);t.exports=n(138)("Set",function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{add:function(t){return r.def(o(this,"Set"),t=0===t?0:t,t)}},r)},function(t,e,n){"use strict";var r,o=n(71)(0),i=n(52),a=n(83),u=n(202),c=n(244),s=n(23),f=n(22),l=n(109),p=a.getWeak,h=Object.isExtensible,d=c.ufstore,v={},y=function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},g={get:function(t){if(s(t)){var e=p(t);return!0===e?d(l(this,"WeakMap")).get(t):e?e[this._i]:void 0}},set:function(t,e){return c.def(l(this,"WeakMap"),t,e)}},m=t.exports=n(138)("WeakMap",y,g,c,!0,!0);f(function(){return 7!=(new m).set((Object.freeze||Object)(v),7).get(v)})&&(u((r=c.getConstructor(y,"WeakMap")).prototype,g),a.NEED=!0,o(["delete","has","get","set"],function(t){var e=m.prototype,n=e[t];i(e,t,function(e,o){if(s(e)&&!h(e)){this._f||(this._f=new r);var i=this._f[t](e,o);return"set"==t?this:i}return n.call(this,e,o)})}))},function(t,e,n){"use strict";var r=n(100),o=n(83).getWeak,i=n(16),a=n(23),u=n(98),c=n(99),s=n(71),f=n(51),l=n(109),p=s(5),h=s(6),d=0,v=function(t){return t._l||(t._l=new y)},y=function(){this.a=[]},g=function(t,e){return p(t.a,function(t){return t[0]===e})};y.prototype={get:function(t){var e=g(this,t);if(e)return e[1]},has:function(t){return!!g(this,t)},set:function(t,e){var n=g(this,t);n?n[1]=e:this.a.push([t,e])},delete:function(t){var e=h(this.a,function(e){return e[0]===t});return~e&&this.a.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,n,i){var s=t(function(t,r){u(t,s,e,"_i"),t._t=e,t._i=d++,t._l=void 0,null!=r&&c(r,n,t[i],t)});return r(s.prototype,{delete:function(t){if(!a(t))return!1;var n=o(t);return!0===n?v(l(this,e)).delete(t):n&&f(n,this._i)&&delete n[this._i]},has:function(t){if(!a(t))return!1;var n=o(t);return!0===n?v(l(this,e)).has(t):n&&f(n,this._i)}}),s},def:function(t,e,n){var r=o(i(e),!0);return!0===r?v(t).set(e,n):r[t._i]=n,t},ufstore:v}},function(t,e,n){var r=n(64),o=n(31);t.exports=function(t){if(void 0===t)return 0;var e=r(t),n=o(e);if(e!==n)throw RangeError("Wrong length!");return n}},function(t,e,n){var r=n(93),o=n(133),i=n(16),a=n(21).Reflect;t.exports=a&&a.ownKeys||function(t){var e=r.f(i(t)),n=o.f;return n?e.concat(n(t)):e}},,,,,,,,,,,,,,,,,,,,,function(t,e,n){var r=n(181),o=Math.pow,i=o(2,-52),a=o(2,-23),u=o(2,127)*(2-a),c=o(2,-126);t.exports=Math.fround||function(t){var e,n,o=Math.abs(t),s=r(t);return ou||n!=n?s*(1/0):s*n}},function(t,e){t.exports=function(t){try{return{e:!1,v:t()}}catch(e){return{e:!0,v:e}}}},function(t,e,n){var r=n(16),o=n(23),i=n(209);t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},function(t,e,n){var r=n(99);t.exports=function(t,e){var n=[];return r(t,!1,n.push,n,e),n}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(t,e,n){"use strict";var r=n(21),o=n(51),i=n(35),a=n(2),u=n(52),c=n(83).KEY,s=n(22),f=n(132),l=n(107),p=n(90),h=n(29),d=n(221),v=n(222),y=n(311),g=n(153),m=n(16),b=n(23),_=n(53),w=n(76),S=n(86),k=n(84),E=n(225),x=n(60),T=n(34),O=n(91),A=x.f,P=T.f,M=E.f,j=r.Symbol,D=r.JSON,C=D&&D.stringify,F=h("_hidden"),I=h("toPrimitive"),R={}.propertyIsEnumerable,N=f("symbol-registry"),L=f("symbols"),Z=f("op-symbols"),U=Object.prototype,z="function"==typeof j,B=r.QObject,H=!B||!B.prototype||!B.prototype.findChild,W=i&&s(function(){return 7!=k(P({},"a",{get:function(){return P(this,"a",{value:7}).a}})).a})?function(t,e,n){var r=A(U,e);r&&delete U[e],P(t,e,n),r&&t!==U&&P(U,e,r)}:P,K=function(t){var e=L[t]=k(j.prototype);return e._k=t,e},G=z&&"symbol"==typeof j.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof j},J=function(t,e,n){return t===U&&J(Z,e,n),m(t),e=w(e,!0),m(n),o(L,e)?(n.enumerable?(o(t,F)&&t[F][e]&&(t[F][e]=!1),n=k(n,{enumerable:S(0,!1)})):(o(t,F)||P(t,F,S(1,{})),t[F][e]=!0),W(t,e,n)):P(t,e,n)},V=function(t,e){m(t);for(var n,r=y(e=_(e)),o=0,i=r.length;i>o;)J(t,n=r[o++],e[n]);return t},q=function(t){var e=R.call(this,t=w(t,!0));return!(this===U&&o(L,t)&&!o(Z,t))&&(!(e||!o(this,t)||!o(L,t)||o(this,F)&&this[F][t])||e)},Y=function(t,e){if(t=_(t),e=w(e,!0),t!==U||!o(L,e)||o(Z,e)){var n=A(t,e);return!n||!o(L,e)||o(t,F)&&t[F][e]||(n.enumerable=!0),n}},X=function(t){for(var e,n=M(_(t)),r=[],i=0;n.length>i;)o(L,e=n[i++])||e==F||e==c||r.push(e);return r},$=function(t){for(var e,n=t===U,r=M(n?Z:_(t)),i=[],a=0;r.length>a;)!o(L,e=r[a++])||n&&!o(U,e)||i.push(L[e]);return i};z||(u((j=function(){if(this instanceof j)throw TypeError("Symbol is not a constructor!");var t=p(arguments.length>0?arguments[0]:void 0),e=function(n){this===U&&e.call(Z,n),o(this,F)&&o(this[F],t)&&(this[F][t]=!1),W(this,t,S(1,n))};return i&&H&&W(U,t,{configurable:!0,set:e}),K(t)}).prototype,"toString",function(){return this._k}),x.f=Y,T.f=J,n(93).f=E.f=X,n(124).f=q,n(133).f=$,i&&!n(87)&&u(U,"propertyIsEnumerable",q,!0),d.f=function(t){return K(h(t))}),a(a.G+a.W+a.F*!z,{Symbol:j});for(var Q="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),tt=0;Q.length>tt;)h(Q[tt++]);for(var et=O(h.store),nt=0;et.length>nt;)v(et[nt++]);a(a.S+a.F*!z,"Symbol",{for:function(t){return o(N,t+="")?N[t]:N[t]=j(t)},keyFor:function(t){if(!G(t))throw TypeError(t+" is not a symbol!");for(var e in N)if(N[e]===t)return e},useSetter:function(){H=!0},useSimple:function(){H=!1}}),a(a.S+a.F*!z,"Object",{create:function(t,e){return void 0===e?k(t):V(k(t),e)},defineProperty:J,defineProperties:V,getOwnPropertyDescriptor:Y,getOwnPropertyNames:X,getOwnPropertySymbols:$}),D&&a(a.S+a.F*(!z||s(function(){var t=j();return"[null]"!=C([t])||"{}"!=C({a:t})||"{}"!=C(Object(t))})),"JSON",{stringify:function(t){for(var e,n,r=[t],o=1;arguments.length>o;)r.push(arguments[o++]);if(n=e=r[1],(b(e)||void 0!==t)&&!G(t))return g(e)||(e=function(t,e){if("function"==typeof n&&(e=n.call(this,t,e)),!G(e))return e}),r[1]=e,C.apply(D,r)}}),j.prototype[I]||n(56)(j.prototype,I,j.prototype.valueOf),l(j,"Symbol"),l(Math,"Math",!0),l(r.JSON,"JSON",!0)},function(t,e,n){var r=n(91),o=n(133),i=n(124);t.exports=function(t){var e=r(t),n=o.f;if(n)for(var a,u=n(t),c=i.f,s=0;u.length>s;)c.call(t,a=u[s++])&&e.push(a);return e}},function(t,e,n){var r=n(2);r(r.S,"Object",{create:n(84)})},function(t,e,n){var r=n(2);r(r.S+r.F*!n(35),"Object",{defineProperty:n(34).f})},function(t,e,n){var r=n(2);r(r.S+r.F*!n(35),"Object",{defineProperties:n(224)})},function(t,e,n){var r=n(53),o=n(60).f;n(70)("getOwnPropertyDescriptor",function(){return function(t,e){return o(r(t),e)}})},function(t,e,n){var r=n(43),o=n(58);n(70)("getPrototypeOf",function(){return function(t){return o(r(t))}})},function(t,e,n){var r=n(43),o=n(91);n(70)("keys",function(){return function(t){return o(r(t))}})},function(t,e,n){n(70)("getOwnPropertyNames",function(){return n(225).f})},function(t,e,n){var r=n(23),o=n(83).onFreeze;n(70)("freeze",function(t){return function(e){return t&&r(e)?t(o(e)):e}})},function(t,e,n){var r=n(23),o=n(83).onFreeze;n(70)("seal",function(t){return function(e){return t&&r(e)?t(o(e)):e}})},function(t,e,n){var r=n(23),o=n(83).onFreeze;n(70)("preventExtensions",function(t){return function(e){return t&&r(e)?t(o(e)):e}})},function(t,e,n){var r=n(23);n(70)("isFrozen",function(t){return function(e){return!r(e)||!!t&&t(e)}})},function(t,e,n){var r=n(23);n(70)("isSealed",function(t){return function(e){return!r(e)||!!t&&t(e)}})},function(t,e,n){var r=n(23);n(70)("isExtensible",function(t){return function(e){return!!r(e)&&(!t||t(e))}})},function(t,e,n){var r=n(2);r(r.S+r.F,"Object",{assign:n(202)})},function(t,e,n){var r=n(2);r(r.S,"Object",{is:n(226)})},function(t,e,n){var r=n(2);r(r.S,"Object",{setPrototypeOf:n(178).set})},function(t,e,n){"use strict";var r=n(95),o={};o[n(29)("toStringTag")]="z",o+""!="[object z]"&&n(52)(Object.prototype,"toString",function(){return"[object "+r(this)+"]"},!0)},function(t,e,n){var r=n(2);r(r.P,"Function",{bind:n(227)})},function(t,e,n){var r=n(34).f,o=Function.prototype,i=/^\s*function ([^ (]*)/;"name"in o||n(35)&&r(o,"name",{configurable:!0,get:function(){try{return(""+this).match(i)[1]}catch(t){return""}}})},function(t,e,n){"use strict";var r=n(23),o=n(58),i=n(29)("hasInstance"),a=Function.prototype;i in a||n(34).f(a,i,{value:function(t){if("function"!=typeof this||!r(t))return!1;if(!r(this.prototype))return t instanceof this;for(;t=o(t);)if(this.prototype===t)return!0;return!1}})},function(t,e,n){var r=n(2),o=n(228);r(r.G+r.F*(parseInt!=o),{parseInt:o})},function(t,e,n){var r=n(2),o=n(229);r(r.G+r.F*(parseFloat!=o),{parseFloat:o})},function(t,e,n){"use strict";var r=n(21),o=n(51),i=n(69),a=n(180),u=n(76),c=n(22),s=n(93).f,f=n(60).f,l=n(34).f,p=n(117).trim,h=r.Number,d=h,v=h.prototype,y="Number"==i(n(84)(v)),g="trim"in String.prototype,m=function(t){var e=u(t,!1);if("string"==typeof e&&e.length>2){var n,r,o,i=(e=g?e.trim():p(e,3)).charCodeAt(0);if(43===i||45===i){if(88===(n=e.charCodeAt(2))||120===n)return NaN}else if(48===i){switch(e.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+e}for(var a,c=e.slice(2),s=0,f=c.length;so)return NaN;return parseInt(c,r)}}return+e};if(!h(" 0o1")||!h("0b1")||h("+0x1")){h=function(t){var e=arguments.length<1?0:t,n=this;return n instanceof h&&(y?c(function(){v.valueOf.call(n)}):"Number"!=i(n))?a(new d(m(e)),n,h):m(e)};for(var b,_=n(35)?s(d):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),w=0;_.length>w;w++)o(d,b=_[w])&&!o(h,b)&&l(h,b,f(d,b));h.prototype=v,v.constructor=h,n(52)(r,"Number",h)}},function(t,e,n){"use strict";var r=n(2),o=n(64),i=n(230),a=n(204),u=1..toFixed,c=Math.floor,s=[0,0,0,0,0,0],f="Number.toFixed: incorrect invocation!",l=function(t,e){for(var n=-1,r=e;++n<6;)r+=t*s[n],s[n]=r%1e7,r=c(r/1e7)},p=function(t){for(var e=6,n=0;--e>=0;)n+=s[e],s[e]=c(n/t),n=n%t*1e7},h=function(){for(var t=6,e="";--t>=0;)if(""!==e||0===t||0!==s[t]){var n=String(s[t]);e=""===e?n:e+a.call("0",7-n.length)+n}return e},d=function(t,e,n){return 0===e?n:e%2==1?d(t,e-1,n*t):d(t*t,e/2,n)};r(r.P+r.F*(!!u&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!n(22)(function(){u.call({})})),"Number",{toFixed:function(t){var e,n,r,u,c=i(this,f),s=o(t),v="",y="0";if(s<0||s>20)throw RangeError(f);if(c!=c)return"NaN";if(c<=-1e21||c>=1e21)return String(c);if(c<0&&(v="-",c=-c),c>1e-21)if(n=(e=function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096;for(;n>=2;)e+=1,n/=2;return e}(c*d(2,69,1))-69)<0?c*d(2,-e,1):c/d(2,e,1),n*=4503599627370496,(e=52-e)>0){for(l(0,n),r=s;r>=7;)l(1e7,0),r-=7;for(l(d(10,r,1),0),r=e-1;r>=23;)p(1<<23),r-=23;p(1<0?v+((u=y.length)<=s?"0."+a.call("0",s-u)+y:y.slice(0,u-s)+"."+y.slice(u-s)):v+y}})},function(t,e,n){"use strict";var r=n(2),o=n(22),i=n(230),a=1..toPrecision;r(r.P+r.F*(o(function(){return"1"!==a.call(1,void 0)})||!o(function(){a.call({})})),"Number",{toPrecision:function(t){var e=i(this,"Number#toPrecision: incorrect invocation!");return void 0===t?a.call(e):a.call(e,t)}})},function(t,e,n){var r=n(2);r(r.S,"Number",{EPSILON:Math.pow(2,-52)})},function(t,e,n){var r=n(2),o=n(21).isFinite;r(r.S,"Number",{isFinite:function(t){return"number"==typeof t&&o(t)}})},function(t,e,n){var r=n(2);r(r.S,"Number",{isInteger:n(231)})},function(t,e,n){var r=n(2);r(r.S,"Number",{isNaN:function(t){return t!=t}})},function(t,e,n){var r=n(2),o=n(231),i=Math.abs;r(r.S,"Number",{isSafeInteger:function(t){return o(t)&&i(t)<=9007199254740991}})},function(t,e,n){var r=n(2);r(r.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},function(t,e,n){var r=n(2);r(r.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},function(t,e,n){var r=n(2),o=n(229);r(r.S+r.F*(Number.parseFloat!=o),"Number",{parseFloat:o})},function(t,e,n){var r=n(2),o=n(228);r(r.S+r.F*(Number.parseInt!=o),"Number",{parseInt:o})},function(t,e,n){var r=n(2),o=n(232),i=Math.sqrt,a=Math.acosh;r(r.S+r.F*!(a&&710==Math.floor(a(Number.MAX_VALUE))&&a(1/0)==1/0),"Math",{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?Math.log(t)+Math.LN2:o(t-1+i(t-1)*i(t+1))}})},function(t,e,n){var r=n(2),o=Math.asinh;r(r.S+r.F*!(o&&1/o(0)>0),"Math",{asinh:function t(e){return isFinite(e=+e)&&0!=e?e<0?-t(-e):Math.log(e+Math.sqrt(e*e+1)):e}})},function(t,e,n){var r=n(2),o=Math.atanh;r(r.S+r.F*!(o&&1/o(-0)<0),"Math",{atanh:function(t){return 0==(t=+t)?t:Math.log((1+t)/(1-t))/2}})},function(t,e,n){var r=n(2),o=n(181);r(r.S,"Math",{cbrt:function(t){return o(t=+t)*Math.pow(Math.abs(t),1/3)}})},function(t,e,n){var r=n(2);r(r.S,"Math",{clz32:function(t){return(t>>>=0)?31-Math.floor(Math.log(t+.5)*Math.LOG2E):32}})},function(t,e,n){var r=n(2),o=Math.exp;r(r.S,"Math",{cosh:function(t){return(o(t=+t)+o(-t))/2}})},function(t,e,n){var r=n(2),o=n(182);r(r.S+r.F*(o!=Math.expm1),"Math",{expm1:o})},function(t,e,n){var r=n(2);r(r.S,"Math",{fround:n(267)})},function(t,e,n){var r=n(2),o=Math.abs;r(r.S,"Math",{hypot:function(t,e){for(var n,r,i=0,a=0,u=arguments.length,c=0;a0?(r=n/c)*r:n;return c===1/0?1/0:c*Math.sqrt(i)}})},function(t,e,n){var r=n(2),o=Math.imul;r(r.S+r.F*n(22)(function(){return-5!=o(4294967295,5)||2!=o.length}),"Math",{imul:function(t,e){var n=+t,r=+e,o=65535&n,i=65535&r;return 0|o*i+((65535&n>>>16)*i+o*(65535&r>>>16)<<16>>>0)}})},function(t,e,n){var r=n(2);r(r.S,"Math",{log10:function(t){return Math.log(t)*Math.LOG10E}})},function(t,e,n){var r=n(2);r(r.S,"Math",{log1p:n(232)})},function(t,e,n){var r=n(2);r(r.S,"Math",{log2:function(t){return Math.log(t)/Math.LN2}})},function(t,e,n){var r=n(2);r(r.S,"Math",{sign:n(181)})},function(t,e,n){var r=n(2),o=n(182),i=Math.exp;r(r.S+r.F*n(22)(function(){return-2e-17!=!Math.sinh(-2e-17)}),"Math",{sinh:function(t){return Math.abs(t=+t)<1?(o(t)-o(-t))/2:(i(t-1)-i(-t-1))*(Math.E/2)}})},function(t,e,n){var r=n(2),o=n(182),i=Math.exp;r(r.S,"Math",{tanh:function(t){var e=o(t=+t),n=o(-t);return e==1/0?1:n==1/0?-1:(e-n)/(i(t)+i(-t))}})},function(t,e,n){var r=n(2);r(r.S,"Math",{trunc:function(t){return(t>0?Math.floor:Math.ceil)(t)}})},function(t,e,n){var r=n(2),o=n(92),i=String.fromCharCode,a=String.fromCodePoint;r(r.S+r.F*(!!a&&1!=a.length),"String",{fromCodePoint:function(t){for(var e,n=[],r=arguments.length,a=0;r>a;){if(e=+arguments[a++],o(e,1114111)!==e)throw RangeError(e+" is not a valid code point");n.push(e<65536?i(e):i(55296+((e-=65536)>>10),e%1024+56320))}return n.join("")}})},function(t,e,n){var r=n(2),o=n(53),i=n(31);r(r.S,"String",{raw:function(t){for(var e=o(t.raw),n=i(e.length),r=arguments.length,a=[],u=0;n>u;)a.push(String(e[u++])),u=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})})},function(t,e,n){"use strict";var r=n(2),o=n(154)(!1);r(r.P,"String",{codePointAt:function(t){return o(this,t)}})},function(t,e,n){"use strict";var r=n(2),o=n(31),i=n(184),a="".endsWith;r(r.P+r.F*n(185)("endsWith"),"String",{endsWith:function(t){var e=i(this,t,"endsWith"),n=arguments.length>1?arguments[1]:void 0,r=o(e.length),u=void 0===n?r:Math.min(o(n),r),c=String(t);return a?a.call(e,c,u):e.slice(u-c.length,u)===c}})},function(t,e,n){"use strict";var r=n(2),o=n(184);r(r.P+r.F*n(185)("includes"),"String",{includes:function(t){return!!~o(this,t,"includes").indexOf(t,arguments.length>1?arguments[1]:void 0)}})},function(t,e,n){var r=n(2);r(r.P,"String",{repeat:n(204)})},function(t,e,n){"use strict";var r=n(2),o=n(31),i=n(184),a="".startsWith;r(r.P+r.F*n(185)("startsWith"),"String",{startsWith:function(t){var e=i(this,t,"startsWith"),n=o(Math.min(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return a?a.call(e,r,n):e.slice(n,n+r.length)===r}})},function(t,e,n){"use strict";n(50)("anchor",function(t){return function(e){return t(this,"a","name",e)}})},function(t,e,n){"use strict";n(50)("big",function(t){return function(){return t(this,"big","","")}})},function(t,e,n){"use strict";n(50)("blink",function(t){return function(){return t(this,"blink","","")}})},function(t,e,n){"use strict";n(50)("bold",function(t){return function(){return t(this,"b","","")}})},function(t,e,n){"use strict";n(50)("fixed",function(t){return function(){return t(this,"tt","","")}})},function(t,e,n){"use strict";n(50)("fontcolor",function(t){return function(e){return t(this,"font","color",e)}})},function(t,e,n){"use strict";n(50)("fontsize",function(t){return function(e){return t(this,"font","size",e)}})},function(t,e,n){"use strict";n(50)("italics",function(t){return function(){return t(this,"i","","")}})},function(t,e,n){"use strict";n(50)("link",function(t){return function(e){return t(this,"a","href",e)}})},function(t,e,n){"use strict";n(50)("small",function(t){return function(){return t(this,"small","","")}})},function(t,e,n){"use strict";n(50)("strike",function(t){return function(){return t(this,"strike","","")}})},function(t,e,n){"use strict";n(50)("sub",function(t){return function(){return t(this,"sub","","")}})},function(t,e,n){"use strict";n(50)("sup",function(t){return function(){return t(this,"sup","","")}})},function(t,e,n){var r=n(2);r(r.S,"Date",{now:function(){return(new Date).getTime()}})},function(t,e,n){"use strict";var r=n(2),o=n(43),i=n(76);r(r.P+r.F*n(22)(function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}),"Date",{toJSON:function(t){var e=o(this),n=i(e);return"number"!=typeof n||isFinite(n)?e.toISOString():null}})},function(t,e,n){var r=n(2),o=n(388);r(r.P+r.F*(Date.prototype.toISOString!==o),"Date",{toISOString:o})},function(t,e,n){"use strict";var r=n(22),o=Date.prototype.getTime,i=Date.prototype.toISOString,a=function(t){return t>9?t:"0"+t};t.exports=r(function(){return"0385-07-25T07:06:39.999Z"!=i.call(new Date(-5e13-1))})||!r(function(){i.call(new Date(NaN))})?function(){if(!isFinite(o.call(this)))throw RangeError("Invalid time value");var t=this,e=t.getUTCFullYear(),n=t.getUTCMilliseconds(),r=e<0?"-":e>9999?"+":"";return r+("00000"+Math.abs(e)).slice(r?-6:-4)+"-"+a(t.getUTCMonth()+1)+"-"+a(t.getUTCDate())+"T"+a(t.getUTCHours())+":"+a(t.getUTCMinutes())+":"+a(t.getUTCSeconds())+"."+(n>99?n:"0"+a(n))+"Z"}:i},function(t,e,n){var r=Date.prototype,o=r.toString,i=r.getTime;new Date(NaN)+""!="Invalid Date"&&n(52)(r,"toString",function(){var t=i.call(this);return t==t?o.call(this):"Invalid Date"})},function(t,e,n){var r=n(29)("toPrimitive"),o=Date.prototype;r in o||n(56)(o,r,n(391))},function(t,e,n){"use strict";var r=n(16),o=n(76);t.exports=function(t){if("string"!==t&&"number"!==t&&"default"!==t)throw TypeError("Incorrect hint");return o(r(this),"number"!=t)}},function(t,e,n){var r=n(2);r(r.S,"Array",{isArray:n(153)})},function(t,e,n){"use strict";var r=n(63),o=n(2),i=n(43),a=n(233),u=n(186),c=n(31),s=n(205),f=n(134);o(o.S+o.F*!n(135)(function(t){Array.from(t)}),"Array",{from:function(t){var e,n,o,l,p=i(t),h="function"==typeof this?this:Array,d=arguments.length,v=d>1?arguments[1]:void 0,y=void 0!==v,g=0,m=f(p);if(y&&(v=r(v,d>2?arguments[2]:void 0,2)),null==m||h==Array&&u(m))for(n=new h(e=c(p.length));e>g;g++)s(n,g,y?v(p[g],g):p[g]);else for(l=m.call(p),n=new h;!(o=l.next()).done;g++)s(n,g,y?a(l,v,[o.value,g],!0):o.value);return n.length=g,n}})},function(t,e,n){"use strict";var r=n(2),o=n(205);r(r.S+r.F*n(22)(function(){function t(){}return!(Array.of.call(t)instanceof t)}),"Array",{of:function(){for(var t=0,e=arguments.length,n=new("function"==typeof this?this:Array)(e);e>t;)o(n,t,arguments[t++]);return n.length=e,n}})},function(t,e,n){"use strict";var r=n(2),o=n(53),i=[].join;r(r.P+r.F*(n(116)!=Object||!n(61)(i)),"Array",{join:function(t){return i.call(o(this),void 0===t?",":t)}})},function(t,e,n){"use strict";var r=n(2),o=n(177),i=n(69),a=n(92),u=n(31),c=[].slice;r(r.P+r.F*n(22)(function(){o&&c.call(o)}),"Array",{slice:function(t,e){var n=u(this.length),r=i(this);if(e=void 0===e?n:e,"Array"==r)return c.call(this,t,e);for(var o=a(t,n),s=a(e,n),f=u(s-o),l=new Array(f),p=0;p1&&(r=Math.min(r,i(arguments[1]))),r<0&&(r=n+r);r>=0;r--)if(r in e&&e[r]===t)return r||0;return-1}})},function(t,e,n){var r=n(2);r(r.P,"Array",{copyWithin:n(236)}),n(96)("copyWithin")},function(t,e,n){var r=n(2);r(r.P,"Array",{fill:n(187)}),n(96)("fill")},function(t,e,n){"use strict";var r=n(2),o=n(71)(5),i=!0;"find"in[]&&Array(1).find(function(){i=!1}),r(r.P+r.F*i,"Array",{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),n(96)("find")},function(t,e,n){"use strict";var r=n(2),o=n(71)(6),i="findIndex",a=!0;i in[]&&Array(1)[i](function(){a=!1}),r(r.P+r.F*a,"Array",{findIndex:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),n(96)(i)},function(t,e,n){n(97)("Array")},function(t,e,n){var r=n(21),o=n(180),i=n(34).f,a=n(93).f,u=n(156),c=n(125),s=r.RegExp,f=s,l=s.prototype,p=/a/g,h=/a/g,d=new s(p)!==p;if(n(35)&&(!d||n(22)(function(){return h[n(29)("match")]=!1,s(p)!=p||s(h)==h||"/a/i"!=s(p,"i")}))){s=function(t,e){var n=this instanceof s,r=u(t),i=void 0===e;return!n&&r&&t.constructor===s&&i?t:o(d?new f(r&&!i?t.source:t,e):f((r=t instanceof s)?t.source:t,r&&i?c.call(t):e),n?this:l,s)};for(var v=function(t){t in s||i(s,t,{configurable:!0,get:function(){return f[t]},set:function(e){f[t]=e}})},y=a(f),g=0;y.length>g;)v(y[g++]);l.constructor=s,s.prototype=l,n(52)(r,"RegExp",s)}n(97)("RegExp")},function(t,e,n){"use strict";n(238);var r=n(16),o=n(125),i=n(35),a=/./.toString,u=function(t){n(52)(RegExp.prototype,"toString",t,!0)};n(22)(function(){return"/a/b"!=a.call({source:"a",flags:"b"})})?u(function(){var t=r(this);return"/".concat(t.source,"/","flags"in t?t.flags:!i&&t instanceof RegExp?o.call(t):void 0)}):"toString"!=a.name&&u(function(){return a.call(this)})},function(t,e,n){"use strict";var r=n(16),o=n(31),i=n(189),a=n(136);n(137)("match",1,function(t,e,n,u){return[function(n){var r=t(this),o=null==n?void 0:n[e];return void 0!==o?o.call(n,r):new RegExp(n)[e](String(r))},function(t){var e=u(n,t,this);if(e.done)return e.value;var c=r(t),s=String(this);if(!c.global)return a(c,s);var f=c.unicode;c.lastIndex=0;for(var l,p=[],h=0;null!==(l=a(c,s));){var d=String(l[0]);p[h]=d,""===d&&(c.lastIndex=i(s,o(c.lastIndex),f)),h++}return 0===h?null:p}]})},function(t,e,n){"use strict";var r=n(16),o=n(43),i=n(31),a=n(64),u=n(189),c=n(136),s=Math.max,f=Math.min,l=Math.floor,p=/\$([$&`']|\d\d?|<[^>]*>)/g,h=/\$([$&`']|\d\d?)/g;n(137)("replace",2,function(t,e,n,d){return[function(r,o){var i=t(this),a=null==r?void 0:r[e];return void 0!==a?a.call(r,i,o):n.call(String(i),r,o)},function(t,e){var o=d(n,t,this,e);if(o.done)return o.value;var l=r(t),p=String(this),h="function"==typeof e;h||(e=String(e));var y=l.global;if(y){var g=l.unicode;l.lastIndex=0}for(var m=[];;){var b=c(l,p);if(null===b)break;if(m.push(b),!y)break;""===String(b[0])&&(l.lastIndex=u(p,i(l.lastIndex),g))}for(var _,w="",S=0,k=0;k=S&&(w+=p.slice(S,x)+M,S=x+E.length)}return w+p.slice(S)}];function v(t,e,r,i,a,u){var c=r+t.length,s=i.length,f=h;return void 0!==a&&(a=o(a),f=p),n.call(u,f,function(n,o){var u;switch(o.charAt(0)){case"$":return"$";case"&":return t;case"`":return e.slice(0,r);case"'":return e.slice(c);case"<":u=a[o.slice(1,-1)];break;default:var f=+o;if(0===f)return n;if(f>s){var p=l(f/10);return 0===p?n:p<=s?void 0===i[p-1]?o.charAt(1):i[p-1]+o.charAt(1):n}u=i[f-1]}return void 0===u?"":u})}})},function(t,e,n){"use strict";var r=n(16),o=n(226),i=n(136);n(137)("search",1,function(t,e,n,a){return[function(n){var r=t(this),o=null==n?void 0:n[e];return void 0!==o?o.call(n,r):new RegExp(n)[e](String(r))},function(t){var e=a(n,t,this);if(e.done)return e.value;var u=r(t),c=String(this),s=u.lastIndex;o(s,0)||(u.lastIndex=0);var f=i(u,c);return o(u.lastIndex,s)||(u.lastIndex=s),null===f?-1:f.index}]})},function(t,e,n){"use strict";var r=n(156),o=n(16),i=n(126),a=n(189),u=n(31),c=n(136),s=n(188),f=Math.min,l=[].push,p=!!function(){try{return new RegExp("x","y")}catch(t){}}();n(137)("split",2,function(t,e,n,h){var d;return d="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(t,e){var o=String(this);if(void 0===t&&0===e)return[];if(!r(t))return n.call(o,t,e);for(var i,a,u,c=[],f=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),p=0,h=void 0===e?4294967295:e>>>0,d=new RegExp(t.source,f+"g");(i=s.call(d,o))&&!((a=d.lastIndex)>p&&(c.push(o.slice(p,i.index)),i.length>1&&i.index=h));)d.lastIndex===i.index&&d.lastIndex++;return p===o.length?!u&&d.test("")||c.push(""):c.push(o.slice(p)),c.length>h?c.slice(0,h):c}:"0".split(void 0,0).length?function(t,e){return void 0===t&&0===e?[]:n.call(this,t,e)}:n,[function(n,r){var o=t(this),i=null==n?void 0:n[e];return void 0!==i?i.call(n,o,r):d.call(String(o),n,r)},function(t,e){var r=h(d,t,this,e,d!==n);if(r.done)return r.value;var s=o(t),l=String(this),v=i(s,RegExp),y=s.unicode,g=(s.ignoreCase?"i":"")+(s.multiline?"m":"")+(s.unicode?"u":"")+(p?"y":"g"),m=new v(p?s:"^(?:"+s.source+")",g),b=void 0===e?4294967295:e>>>0;if(0===b)return[];if(0===l.length)return null===c(m,l)?[l]:[];for(var _=0,w=0,S=[];wi;)a(n[i++]);t._c=[],t._n=!1,e&&!t._h&&F(t)})}},F=function(t){g.call(c,function(){var e,n,r,o=t._v,i=I(t);if(i&&(e=_(function(){A?E.emit("unhandledRejection",o,t):(n=c.onunhandledrejection)?n({promise:t,reason:o}):(r=c.console)&&r.error&&r.error("Unhandled promise rejection",o)}),t._h=A||I(t)?2:1),t._a=void 0,i&&e.e)throw e.v})},I=function(t){return 1!==t._h&&0===(t._a||t._c).length},R=function(t){g.call(c,function(){var e;A?E.emit("rejectionHandled",t):(e=c.onrejectionhandled)&&e({promise:t,reason:t._v})})},N=function(t){var e=this;e._d||(e._d=!0,(e=e._w||e)._v=t,e._s=2,e._a||(e._a=e._c.slice()),C(e,!0))},L=function(t){var e,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===t)throw k("Promise can't be resolved itself");(e=D(t))?m(function(){var r={_w:n,_d:!1};try{e.call(t,s(L,r,1),s(N,r,1))}catch(o){N.call(r,o)}}):(n._v=t,n._s=1,C(n,!1))}catch(r){N.call({_w:n,_d:!1},r)}}};j||(O=function(t){d(this,O,"Promise","_h"),h(t),r.call(this);try{t(s(L,this,1),s(N,this,1))}catch(e){N.call(this,e)}},(r=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n(100)(O.prototype,{then:function(t,e){var n=M(y(this,O));return n.ok="function"!=typeof t||t,n.fail="function"==typeof e&&e,n.domain=A?E.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&C(this,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),i=function(){var t=new r;this.promise=t,this.resolve=s(L,t,1),this.reject=s(N,t,1)},b.f=M=function(t){return t===O||t===a?new i(t):o(t)}),l(l.G+l.W+l.F*!j,{Promise:O}),n(107)(O,"Promise"),n(97)("Promise"),a=n(55).Promise,l(l.S+l.F*!j,"Promise",{reject:function(t){var e=M(this);return(0,e.reject)(t),e.promise}}),l(l.S+l.F*(u||!j),"Promise",{resolve:function(t){return S(u&&this===a?O:this,t)}}),l(l.S+l.F*!(j&&n(135)(function(t){O.all(t).catch(P)})),"Promise",{all:function(t){var e=this,n=M(e),r=n.resolve,o=n.reject,i=_(function(){var n=[],i=0,a=1;v(t,!1,function(t){var u=i++,c=!1;n.push(void 0),a++,e.resolve(t).then(function(t){c||(c=!0,n[u]=t,--a||r(n))},o)}),--a||r(n)});return i.e&&o(i.v),n.promise},race:function(t){var e=this,n=M(e),r=n.reject,o=_(function(){v(t,!1,function(t){e.resolve(t).then(n.resolve,r)})});return o.e&&r(o.v),n.promise}})},function(t,e,n){"use strict";var r=n(244),o=n(109);n(138)("WeakSet",function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{add:function(t){return r.def(o(this,"WeakSet"),t,!0)}},r,!1,!0)},function(t,e,n){"use strict";var r=n(2),o=n(139),i=n(190),a=n(16),u=n(92),c=n(31),s=n(23),f=n(21).ArrayBuffer,l=n(126),p=i.ArrayBuffer,h=i.DataView,d=o.ABV&&f.isView,v=p.prototype.slice,y=o.VIEW;r(r.G+r.W+r.F*(f!==p),{ArrayBuffer:p}),r(r.S+r.F*!o.CONSTR,"ArrayBuffer",{isView:function(t){return d&&d(t)||s(t)&&y in t}}),r(r.P+r.U+r.F*n(22)(function(){return!new p(2).slice(1,void 0).byteLength}),"ArrayBuffer",{slice:function(t,e){if(void 0!==v&&void 0===e)return v.call(a(this),t);for(var n=a(this).byteLength,r=u(t,n),o=u(void 0===e?n:e,n),i=new(l(this,p))(c(o-r)),s=new h(this),f=new h(i),d=0;r=e.length)return{value:void 0,done:!0}}while(!((t=e[this._i++])in this._t));return{value:t,done:!1}}),r(r.S,"Reflect",{enumerate:function(t){return new i(t)}})},function(t,e,n){var r=n(60),o=n(58),i=n(51),a=n(2),u=n(23),c=n(16);a(a.S,"Reflect",{get:function t(e,n){var a,s,f=arguments.length<3?e:arguments[2];return c(e)===f?e[n]:(a=r.f(e,n))?i(a,"value")?a.value:void 0!==a.get?a.get.call(f):void 0:u(s=o(e))?t(s,n,f):void 0}})},function(t,e,n){var r=n(60),o=n(2),i=n(16);o(o.S,"Reflect",{getOwnPropertyDescriptor:function(t,e){return r.f(i(t),e)}})},function(t,e,n){var r=n(2),o=n(58),i=n(16);r(r.S,"Reflect",{getPrototypeOf:function(t){return o(i(t))}})},function(t,e,n){var r=n(2);r(r.S,"Reflect",{has:function(t,e){return e in t}})},function(t,e,n){var r=n(2),o=n(16),i=Object.isExtensible;r(r.S,"Reflect",{isExtensible:function(t){return o(t),!i||i(t)}})},function(t,e,n){var r=n(2);r(r.S,"Reflect",{ownKeys:n(246)})},function(t,e,n){var r=n(2),o=n(16),i=Object.preventExtensions;r(r.S,"Reflect",{preventExtensions:function(t){o(t);try{return i&&i(t),!0}catch(e){return!1}}})},function(t,e,n){var r=n(34),o=n(60),i=n(58),a=n(51),u=n(2),c=n(86),s=n(16),f=n(23);u(u.S,"Reflect",{set:function t(e,n,u){var l,p,h=arguments.length<4?e:arguments[3],d=o.f(s(e),n);if(!d){if(f(p=i(e)))return t(p,n,u,h);d=c(0)}if(a(d,"value")){if(!1===d.writable||!f(h))return!1;if(l=o.f(h,n)){if(l.get||l.set||!1===l.writable)return!1;l.value=u,r.f(h,n,l)}else r.f(h,n,c(0,u));return!0}return void 0!==d.set&&(d.set.call(h,u),!0)}})},function(t,e,n){var r=n(2),o=n(178);o&&r(r.S,"Reflect",{setPrototypeOf:function(t,e){o.check(t,e);try{return o.set(t,e),!0}catch(n){return!1}}})},function(t,e,n){var r=n(79),o=n(16),i=r.key,a=r.set;r.exp({defineMetadata:function(t,e,n,r){a(t,e,o(n),i(r))}})},function(t,e,n){var r=n(79),o=n(16),i=r.key,a=r.map,u=r.store;r.exp({deleteMetadata:function(t,e){var n=arguments.length<3?void 0:i(arguments[2]),r=a(o(e),n,!1);if(void 0===r||!r.delete(t))return!1;if(r.size)return!0;var c=u.get(e);return c.delete(n),!!c.size||u.delete(e)}})},function(t,e,n){var r=n(79),o=n(16),i=n(58),a=r.has,u=r.get,c=r.key,s=function(t,e,n){if(a(t,e,n))return u(t,e,n);var r=i(e);return null!==r?s(t,r,n):void 0};r.exp({getMetadata:function(t,e){return s(t,o(e),arguments.length<3?void 0:c(arguments[2]))}})},function(t,e,n){var r=n(242),o=n(270),i=n(79),a=n(16),u=n(58),c=i.keys,s=i.key,f=function(t,e){var n=c(t,e),i=u(t);if(null===i)return n;var a=f(i,e);return a.length?n.length?o(new r(n.concat(a))):a:n};i.exp({getMetadataKeys:function(t){return f(a(t),arguments.length<2?void 0:s(arguments[1]))}})},function(t,e,n){var r=n(79),o=n(16),i=r.get,a=r.key;r.exp({getOwnMetadata:function(t,e){return i(t,o(e),arguments.length<3?void 0:a(arguments[2]))}})},function(t,e,n){var r=n(79),o=n(16),i=r.keys,a=r.key;r.exp({getOwnMetadataKeys:function(t){return i(o(t),arguments.length<2?void 0:a(arguments[1]))}})},function(t,e,n){var r=n(79),o=n(16),i=n(58),a=r.has,u=r.key,c=function(t,e,n){if(a(t,e,n))return!0;var r=i(e);return null!==r&&c(t,r,n)};r.exp({hasMetadata:function(t,e){return c(t,o(e),arguments.length<3?void 0:u(arguments[2]))}})},function(t,e,n){var r=n(79),o=n(16),i=r.has,a=r.key;r.exp({hasOwnMetadata:function(t,e){return i(t,o(e),arguments.length<3?void 0:a(arguments[2]))}})},function(t,e,n){var r=n(79),o=n(16),i=n(48),a=r.key,u=r.set;r.exp({metadata:function(t,e){return function(n,r){u(t,e,(void 0!==r?o:i)(n),a(r))}}})},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),n(738),n(739),n(740),!Element.prototype.matches&&Element.prototype.msMatchesSelector&&(Element.prototype.matches=Element.prototype.msMatchesSelector),n(741),n(742),n(743)},function(t,e,n){n(310),n(312),n(313),n(314),n(315),n(316),n(317),n(318),n(319),n(320),n(321),n(322),n(323),n(324),n(325),n(326),n(327),n(328),n(329),n(330),n(331),n(332),n(333),n(334),n(335),n(336),n(337),n(338),n(339),n(340),n(341),n(342),n(343),n(344),n(345),n(346),n(347),n(348),n(349),n(350),n(351),n(352),n(353),n(354),n(355),n(356),n(357),n(358),n(359),n(360),n(361),n(362),n(363),n(364),n(365),n(366),n(367),n(368),n(369),n(370),n(371),n(372),n(373),n(374),n(375),n(376),n(377),n(378),n(379),n(380),n(381),n(382),n(383),n(384),n(385),n(386),n(387),n(389),n(390),n(392),n(393),n(394),n(395),n(396),n(397),n(398),n(400),n(401),n(402),n(403),n(404),n(405),n(406),n(407),n(408),n(409),n(410),n(411),n(412),n(206),n(413),n(237),n(414),n(238),n(415),n(416),n(417),n(418),n(419),n(240),n(242),n(243),n(420),n(421),n(422),n(423),n(424),n(425),n(426),n(427),n(428),n(429),n(430),n(431),n(432),n(433),n(434),n(435),n(436),n(437),n(438),n(439),n(440),n(441),n(442),n(443),n(444),n(445),t.exports=n(55)},function(t,e,n){n(446),n(447),n(448),n(449),n(450),n(451),n(452),n(453),n(454),t.exports=n(55).Reflect},function(t,e,n){(function(r){var o,i; -/** -* @license Angular v9.1.0-next.4+61.sha-e552591.with-local-changes -* (c) 2010-2020 Google LLC. https://angular.io/ -* License: MIT -*/void 0===(i="function"==typeof(o=function(){"use strict"; -/** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */!function(t){var e=t.performance;function n(t){e&&e.mark&&e.mark(t)}function r(t,n){e&&e.measure&&e.measure(t,n)}n("Zone");var o=t.__Zone_symbol_prefix||"__zone_symbol__";function i(t){return o+t}var a=!0===t[i("forceDuplicateZoneCheck")];if(t.Zone){if(a||"function"!=typeof t.Zone.__symbol__)throw new Error("Zone already loaded.");return t.Zone}var u=function(){function e(t,e){this._parent=t,this._name=e?e.name||"unnamed":"",this._properties=e&&e.properties||{},this._zoneDelegate=new f(this,this._parent&&this._parent._zoneDelegate,e)}return e.assertZonePatched=function(){if(t.Promise!==P.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")},Object.defineProperty(e,"root",{get:function(){for(var t=e.current;t.parent;)t=t.parent;return t},enumerable:!0,configurable:!0}),Object.defineProperty(e,"current",{get:function(){return j.zone},enumerable:!0,configurable:!0}),Object.defineProperty(e,"currentTask",{get:function(){return D},enumerable:!0,configurable:!0}),e.__load_patch=function(o,i){if(P.hasOwnProperty(o)){if(a)throw Error("Already loaded patch: "+o)}else if(!t["__Zone_disable_"+o]){var u="Zone:"+o;n(u),P[o]=i(t,e,M),r(u,u)}},Object.defineProperty(e.prototype,"parent",{get:function(){return this._parent},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"name",{get:function(){return this._name},enumerable:!0,configurable:!0}),e.prototype.get=function(t){var e=this.getZoneWith(t);if(e)return e._properties[t]},e.prototype.getZoneWith=function(t){for(var e=this;e;){if(e._properties.hasOwnProperty(t))return e;e=e._parent}return null},e.prototype.fork=function(t){if(!t)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,t)},e.prototype.wrap=function(t,e){if("function"!=typeof t)throw new Error("Expecting function got: "+t);var n=this._zoneDelegate.intercept(this,t,e),r=this;return function(){return r.runGuarded(n,this,arguments,e)}},e.prototype.run=function(t,e,n,r){j={parent:j,zone:this};try{return this._zoneDelegate.invoke(this,t,e,n,r)}finally{j=j.parent}},e.prototype.runGuarded=function(t,e,n,r){void 0===e&&(e=null),j={parent:j,zone:this};try{try{return this._zoneDelegate.invoke(this,t,e,n,r)}catch(o){if(this._zoneDelegate.handleError(this,o))throw o}}finally{j=j.parent}},e.prototype.runTask=function(t,e,n){if(t.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(t.zone||b).name+"; Execution: "+this.name+")");if(t.state!==_||t.type!==A&&t.type!==O){var r=t.state!=k;r&&t._transitionTo(k,S),t.runCount++;var o=D;D=t,j={parent:j,zone:this};try{t.type==O&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,e,n)}catch(i){if(this._zoneDelegate.handleError(this,i))throw i}}finally{t.state!==_&&t.state!==x&&(t.type==A||t.data&&t.data.isPeriodic?r&&t._transitionTo(S,k):(t.runCount=0,this._updateTaskCount(t,-1),r&&t._transitionTo(_,k,_))),j=j.parent,D=o}}},e.prototype.scheduleTask=function(t){if(t.zone&&t.zone!==this)for(var e=this;e;){if(e===t.zone)throw Error("can not reschedule task to "+this.name+" which is descendants of the original zone "+t.zone.name);e=e.parent}t._transitionTo(w,_);var n=[];t._zoneDelegates=n,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(r){throw t._transitionTo(x,w,_),this._zoneDelegate.handleError(this,r),r}return t._zoneDelegates===n&&this._updateTaskCount(t,1),t.state==w&&t._transitionTo(S,w),t},e.prototype.scheduleMicroTask=function(t,e,n,r){return this.scheduleTask(new l(T,t,e,n,r,void 0))},e.prototype.scheduleMacroTask=function(t,e,n,r,o){return this.scheduleTask(new l(O,t,e,n,r,o))},e.prototype.scheduleEventTask=function(t,e,n,r,o){return this.scheduleTask(new l(A,t,e,n,r,o))},e.prototype.cancelTask=function(t){if(t.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(t.zone||b).name+"; Execution: "+this.name+")");t._transitionTo(E,S,k);try{this._zoneDelegate.cancelTask(this,t)}catch(e){throw t._transitionTo(x,E),this._zoneDelegate.handleError(this,e),e}return this._updateTaskCount(t,-1),t._transitionTo(_,E),t.runCount=0,t},e.prototype._updateTaskCount=function(t,e){var n=t._zoneDelegates;-1==e&&(t._zoneDelegates=null);for(var r=0;r0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:t};this.hasTask(this.zone,i)}},t}(),l=function(){function e(n,r,o,i,a,u){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=n,this.source=r,this.data=i,this.scheduleFn=a,this.cancelFn=u,!o)throw new Error("callback is not defined");this.callback=o;var c=this;n===A&&i&&i.useG?this.invoke=e.invokeTask:this.invoke=function(){return e.invokeTask.call(t,c,this,arguments)}}return e.invokeTask=function(t,e,n){t||(t=this),C++;try{return t.runCount++,t.zone.runTask(t,e,n)}finally{1==C&&m(),C--}},Object.defineProperty(e.prototype,"zone",{get:function(){return this._zone},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"state",{get:function(){return this._state},enumerable:!0,configurable:!0}),e.prototype.cancelScheduleRequest=function(){this._transitionTo(_,w)},e.prototype._transitionTo=function(t,e,n){if(this._state!==e&&this._state!==n)throw new Error(this.type+" '"+this.source+"': can not transition to '"+t+"', expecting state '"+e+"'"+(n?" or '"+n+"'":"")+", was '"+this._state+"'.");this._state=t,t==_&&(this._zoneDelegates=null)},e.prototype.toString=function(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)},e.prototype.toJSON=function(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}},e}(),p=i("setTimeout"),h=i("Promise"),d=i("then"),v=[],y=!1;function g(e){if(0===C&&0===v.length)if(c||t[h]&&(c=t[h].resolve(0)),c){var n=c[d];n||(n=c.then),n.call(c,m)}else t[p](m,0);e&&v.push(e)}function m(){if(!y){for(y=!0;v.length;){var t=v;v=[];for(var e=0;e=0;n--)"function"==typeof t[n]&&(t[n]=h(t[n],e+"_"+n));return t}function S(t){return!t||!1!==t.writable&&!("function"==typeof t.get&&void 0===t.set)}var k="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,E=!("nw"in m)&&void 0!==m.process&&"[object process]"==={}.toString.call(m.process),x=!E&&!k&&!(!y||!g.HTMLElement),T=void 0!==m.process&&"[object process]"==={}.toString.call(m.process)&&!k&&!(!y||!g.HTMLElement),O={},A=function(t){if(t=t||m.event){var e=O[t.type];e||(e=O[t.type]=v("ON_PROPERTY"+t.type));var n,r=this||t.target||m,o=r[e];if(x&&r===g&&"error"===t.type){var i=t;!0===(n=o&&o.call(this,i.message,i.filename,i.lineno,i.colno,i.error))&&t.preventDefault()}else null==(n=o&&o.apply(this,arguments))||n||t.preventDefault();return n}};function P(n,r,o){var i=t(n,r);if(!i&&o){var a=t(o,r);a&&(i={enumerable:!0,configurable:!0})}if(i&&i.configurable){var u=v("on"+r+"patched");if(!n.hasOwnProperty(u)||!n[u]){delete i.writable,delete i.value;var c=i.get,s=i.set,f=r.substr(2),l=O[f];l||(l=O[f]=v("ON_PROPERTY"+f)),i.set=function(t){var e=this;if(e||n!==m||(e=m),e){var r=e[l];r&&e.removeEventListener(f,A),s&&s.apply(e,_),"function"==typeof t?(e[l]=t,e.addEventListener(f,A,!1)):e[l]=null}},i.get=function(){var t=this;if(t||n!==m||(t=m),!t)return null;var e=t[l];if(e)return e;if(c){var o=c&&c.call(this);if(o)return i.set.call(this,o),"function"==typeof t[b]&&t.removeAttribute(r),o}return null},e(n,r,i),n[u]=!0}}}function M(t,e,n){if(e)for(var r=0;r=0&&"function"==typeof r[i.cbIdx]?d(i.name,r[i.cbIdx],i,o):t.apply(e,r)}})}function R(t,e){t[v("OriginalDelegate")]=e}var N=!1,L=!1;function Z(){if(N)return L;N=!0;try{var t=g.navigator.userAgent;-1===t.indexOf("MSIE ")&&-1===t.indexOf("Trident/")&&-1===t.indexOf("Edge/")||(L=!0)}catch(e){}return L} -/** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */Zone.__load_patch("toString",function(t){var e=Function.prototype.toString,n=v("OriginalDelegate"),r=v("Promise"),o=v("Error"),i=function(){if("function"==typeof this){var i=this[n];if(i)return"function"==typeof i?e.call(i):Object.prototype.toString.call(i);if(this===Promise){var a=t[r];if(a)return e.call(a)}if(this===Error){var u=t[o];if(u)return e.call(u)}}return e.call(this)};i[n]=e,Function.prototype.toString=i;var a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?"[object Promise]":a.call(this)}}); -/** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ -var U=!1;if("undefined"!=typeof window)try{var z=Object.defineProperty({},"passive",{get:function(){U=!0}});window.addEventListener("test",z,z),window.removeEventListener("test",z,z)}catch(Tt){U=!1}var B={useG:!0},H={},W={},K=new RegExp("^"+p+"(\\w+)(true|false)$"),G=v("propagationStopped");function J(t,e){var n=(e?e(t):t)+l,r=(e?e(t):t)+f,o=p+n,i=p+r;H[t]={},H[t][l]=o,H[t][f]=i}function V(t,e,r){var o=r&&r.add||a,i=r&&r.rm||u,c=r&&r.listeners||"eventListeners",s=r&&r.rmAll||"removeAllListeners",h=v(o),d="."+o+":",y="prependListener",g="."+y+":",m=function(t,e,n){if(!t.isRemoved){var r=t.callback;"object"==typeof r&&r.handleEvent&&(t.callback=function(t){return r.handleEvent(t)},t.originalDelegate=r),t.invoke(t,e,[n]);var o=t.options;if(o&&"object"==typeof o&&o.once){var a=t.originalDelegate?t.originalDelegate:t.callback;e[i].call(e,n.type,a,o)}}},b=function(e){if(e=e||t.event){var n=this||e.target||t,r=n[H[e.type][l]];if(r)if(1===r.length)m(r[0],n,e);else for(var o=r.slice(),i=0;i1?new i(e,n):new i(e),s=t.ObjectGetOwnPropertyDescriptor(c,"onmessage");return s&&!1===s.configurable?(a=t.ObjectCreate(c),u=c,[r,o,"send","close"].forEach(function(e){a[e]=function(){var n=t.ArraySlice.call(arguments);if(e===r||e===o){var i=n.length>0?n[0]:void 0;if(i){var u=Zone.__symbol__("ON_PROPERTY"+i);c[u]=a[u]}}return c[e].apply(c,n)}})):a=c,t.patchOnProperties(a,["close","error","message","open"],u),a};var a=e.WebSocket;for(var u in i)a[u]=i[u]}(t,e),Zone[t.symbol("patchEvents")]=!0}}Zone.__load_patch("util",function(n,r,c){c.patchOnProperties=M,c.patchMethod=F,c.bindArguments=w,c.patchMacroTask=I;var s=r.__symbol__("BLACK_LISTED_EVENTS"),d=r.__symbol__("UNPATCHED_EVENTS");n[d]&&(n[s]=n[d]),n[s]&&(r[s]=r[d]=n[s]),c.patchEventPrototype=Y,c.patchEventTarget=V,c.isIEOrEdge=Z,c.ObjectDefineProperty=e,c.ObjectGetOwnPropertyDescriptor=t,c.ObjectCreate=o,c.ArraySlice=i,c.patchClass=D,c.wrapWithCurrentZone=h,c.filterProperties=ht,c.attachOriginToPatched=R,c._redefineProperty=Object.defineProperty,c.patchCallbacks=X,c.getGlobalObjects=function(){return{globalSources:W,zoneSymbolEventNames:H,eventNames:pt,isBrowser:x,isMix:T,isNode:E,TRUE_STR:f,FALSE_STR:l,ZONE_SYMBOL_PREFIX:p,ADD_EVENT_LISTENER_STR:a,REMOVE_EVENT_LISTENER_STR:u}}}), -/** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ -function(t){var e,n=t.__Zone_symbol_prefix||"__zone_symbol__";t[(e="legacyPatch",n+e)]=function(){var e=t.Zone;e.__load_patch("defineProperty",function(t,e,n){n._redefineProperty=gt,yt()}),e.__load_patch("registerElement",function(t,e,n){!function(t,e){var n=e.getGlobalObjects(),r=n.isBrowser,o=n.isMix;(r||o)&&"registerElement"in t.document&&e.patchCallbacks(e,document,"Document","registerElement",["createdCallback","attachedCallback","detachedCallback","attributeChangedCallback"])} -/** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */(t,n)}),e.__load_patch("EventTargetLegacy",function(t,e,n){wt(t,n),St(n,t)})}}("undefined"!=typeof window?window:void 0!==r?r:"undefined"!=typeof self?self:{}); -/** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ -var kt=v("zoneTask");function Et(t,e,n,r){var o=null,i=null;n+=r;var a={};function u(e){var n=e.data;return n.args[0]=function(){try{e.invoke.apply(this,arguments)}finally{e.data&&e.data.isPeriodic||("number"==typeof n.handleId?delete a[n.handleId]:n.handleId&&(n.handleId[kt]=null))}},n.handleId=o.apply(t,n.args),e}function c(t){return i(t.data.handleId)}o=F(t,e+=r,function(n){return function(o,i){if("function"==typeof i[0]){var s={isPeriodic:"Interval"===r,delay:"Timeout"===r||"Interval"===r?i[1]||0:void 0,args:i},f=d(e,i[0],s,u,c);if(!f)return f;var l=f.data.handleId;return"number"==typeof l?a[l]=f:l&&(l[kt]=f),l&&l.ref&&l.unref&&"function"==typeof l.ref&&"function"==typeof l.unref&&(f.ref=l.ref.bind(l),f.unref=l.unref.bind(l)),"number"==typeof l||l?l:f}return n.apply(t,i)}}),i=F(t,n,function(e){return function(n,r){var o,i=r[0];"number"==typeof i?o=a[i]:(o=i&&i[kt])||(o=i),o&&"string"==typeof o.type?"notScheduled"!==o.state&&(o.cancelFn&&o.data.isPeriodic||0===o.runCount)&&("number"==typeof i?delete a[i]:i&&(i[kt]=null),o.zone.cancelTask(o)):e.apply(t,r)}})} -/** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ -/** - * @license - * Copyright Google Inc. All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ -function xt(t,e){if(!Zone[e.symbol("patchEventTarget")]){for(var n=e.getGlobalObjects(),r=n.eventNames,o=n.zoneSymbolEventNames,i=n.TRUE_STR,a=n.FALSE_STR,u=n.ZONE_SYMBOL_PREFIX,c=0;c0){var o=t.invoke;t.invoke=function(){for(var n=a[e.__symbol__("loadfalse")],i=0;i-1};function a(t){if("string"!=typeof t&&(t=String(t)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(t))throw new TypeError("Invalid character in header field name");return t.toLowerCase()}function u(t){return"string"!=typeof t&&(t=String(t)),t}function c(t){var e={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return r.iterable&&(e[Symbol.iterator]=function(){return e}),e}function s(t){this.map={},t instanceof s?t.forEach(function(t,e){this.append(e,t)},this):Array.isArray(t)?t.forEach(function(t){this.append(t[0],t[1])},this):t&&Object.getOwnPropertyNames(t).forEach(function(e){this.append(e,t[e])},this)}function f(t){if(t.bodyUsed)return Promise.reject(new TypeError("Already read"));t.bodyUsed=!0}function l(t){return new Promise(function(e,n){t.onload=function(){e(t.result)},t.onerror=function(){n(t.error)}})}function p(t){var e=new FileReader,n=l(e);return e.readAsArrayBuffer(t),n}function h(t){if(t.slice)return t.slice(0);var e=new Uint8Array(t.byteLength);return e.set(new Uint8Array(t)),e.buffer}function d(){return this.bodyUsed=!1,this._initBody=function(t){var e;this._bodyInit=t,t?"string"==typeof t?this._bodyText=t:r.blob&&Blob.prototype.isPrototypeOf(t)?this._bodyBlob=t:r.formData&&FormData.prototype.isPrototypeOf(t)?this._bodyFormData=t:r.searchParams&&URLSearchParams.prototype.isPrototypeOf(t)?this._bodyText=t.toString():r.arrayBuffer&&r.blob&&((e=t)&&DataView.prototype.isPrototypeOf(e))?(this._bodyArrayBuffer=h(t.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):r.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(t)||i(t))?this._bodyArrayBuffer=h(t):this._bodyText=t=Object.prototype.toString.call(t):this._bodyText="",this.headers.get("content-type")||("string"==typeof t?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):r.searchParams&&URLSearchParams.prototype.isPrototypeOf(t)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},r.blob&&(this.blob=function(){var t=f(this);if(t)return t;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?f(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(p)}),this.text=function(){var t,e,n,r=f(this);if(r)return r;if(this._bodyBlob)return t=this._bodyBlob,e=new FileReader,n=l(e),e.readAsText(t),n;if(this._bodyArrayBuffer)return Promise.resolve(function(t){for(var e=new Uint8Array(t),n=new Array(e.length),r=0;r-1?r:n),this.mode=e.mode||this.mode||null,this.signal=e.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&o)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(o)}function g(t){var e=new FormData;return t.trim().split("&").forEach(function(t){if(t){var n=t.split("="),r=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");e.append(decodeURIComponent(r),decodeURIComponent(o))}}),e}function m(t,e){e||(e={}),this.type="default",this.status=void 0===e.status?200:e.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in e?e.statusText:"OK",this.headers=new s(e.headers),this.url=e.url||"",this._initBody(t)}y.prototype.clone=function(){return new y(this,{body:this._bodyInit})},d.call(y.prototype),d.call(m.prototype),m.prototype.clone=function(){return new m(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new s(this.headers),url:this.url})},m.error=function(){var t=new m(null,{status:0,statusText:""});return t.type="error",t};var b=[301,302,303,307,308];m.redirect=function(t,e){if(-1===b.indexOf(e))throw new RangeError("Invalid status code");return new m(null,{status:e,headers:{location:t}})};var _=self.DOMException;try{new _}catch(S){(_=function(t,e){this.message=t,this.name=e;var n=Error(t);this.stack=n.stack}).prototype=Object.create(Error.prototype),_.prototype.constructor=_}function w(t,e){return new Promise(function(n,o){var i=new y(t,e);if(i.signal&&i.signal.aborted)return o(new _("Aborted","AbortError"));var a=new XMLHttpRequest;function u(){a.abort()}a.onload=function(){var t,e,r={status:a.status,statusText:a.statusText,headers:(t=a.getAllResponseHeaders()||"",e=new s,t.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach(function(t){var n=t.split(":"),r=n.shift().trim();if(r){var o=n.join(":").trim();e.append(r,o)}}),e)};r.url="responseURL"in a?a.responseURL:r.headers.get("X-Request-URL");var o="response"in a?a.response:a.responseText;n(new m(o,r))},a.onerror=function(){o(new TypeError("Network request failed"))},a.ontimeout=function(){o(new TypeError("Network request failed"))},a.onabort=function(){o(new _("Aborted","AbortError"))},a.open(i.method,i.url,!0),"include"===i.credentials?a.withCredentials=!0:"omit"===i.credentials&&(a.withCredentials=!1),"responseType"in a&&r.blob&&(a.responseType="blob"),i.headers.forEach(function(t,e){a.setRequestHeader(e,t)}),i.signal&&(i.signal.addEventListener("abort",u),a.onreadystatechange=function(){4===a.readyState&&i.signal.removeEventListener("abort",u)}),a.send(void 0===i._bodyInit?null:i._bodyInit)})}w.polyfill=!0,self.fetch||(self.fetch=w,self.Headers=s,self.Request=y,self.Response=m)},function(t,e,n){var r,o; -/** - * @file Web Cryptography API shim - * @author Artem S Vybornov - * @license MIT - */ -/** - * @file Web Cryptography API shim - * @author Artem S Vybornov - * @license MIT - */ -o="undefined"!=typeof self?self:this,void 0===(r=function(){return function(t){"use strict";if("function"!=typeof Promise)throw"Promise support required";var e=t.crypto||t.msCrypto;if(e){var n=e.subtle||e.webkitSubtle;if(n){var r=t.Crypto||e.constructor||Object,o=t.SubtleCrypto||n.constructor||Object,i=(t.CryptoKey||t.Key||Object,t.navigator.userAgent.indexOf("Edge/")>-1),a=!!t.msCrypto&&!i,u=!e.subtle&&!!e.webkitSubtle;if(a||u){var c={KoZIhvcNAQEB:"1.2.840.113549.1.1.1"},s={"1.2.840.113549.1.1.1":"KoZIhvcNAQEB"};if(["generateKey","importKey","unwrapKey"].forEach(function(t){var r=n[t];n[t]=function(o,i,c){var s,f,b,k,E,x=[].slice.call(arguments);switch(t){case"generateKey":s=v(o),f=i,b=c;break;case"importKey":s=v(c),f=x[3],b=x[4],"jwk"===o&&((i=g(i)).alg||(i.alg=y(s)),i.key_ops||(i.key_ops="oct"!==i.kty?"d"in i?b.filter(S):b.filter(w):b.slice()),x[1]=(E=g(i),a&&(E.extractable=E.ext,delete E.ext),h(unescape(encodeURIComponent(JSON.stringify(E)))).buffer));break;case"unwrapKey":s=x[4],f=x[5],b=x[6],x[2]=c._key}if("generateKey"===t&&"HMAC"===s.name&&s.hash)return s.length=s.length||{"SHA-1":512,"SHA-256":512,"SHA-384":1024,"SHA-512":1024}[s.hash.name],n.importKey("raw",e.getRandomValues(new Uint8Array(s.length+7>>3)),s,f,b);if(u&&"generateKey"===t&&"RSASSA-PKCS1-v1_5"===s.name&&(!s.modulusLength||s.modulusLength>=2048))return(o=v(o)).name="RSAES-PKCS1-v1_5",delete o.hash,n.generateKey(o,!0,["encrypt","decrypt"]).then(function(t){return Promise.all([n.exportKey("jwk",t.publicKey),n.exportKey("jwk",t.privateKey)])}).then(function(t){return t[0].alg=t[1].alg=y(s),t[0].key_ops=b.filter(w),t[1].key_ops=b.filter(S),Promise.all([n.importKey("jwk",t[0],s,!0,t[0].key_ops),n.importKey("jwk",t[1],s,f,t[1].key_ops)])}).then(function(t){return{publicKey:t[0],privateKey:t[1]}});if((u||a&&"SHA-1"===(s.hash||{}).name)&&"importKey"===t&&"jwk"===o&&"HMAC"===s.name&&"oct"===i.kty)return n.importKey("raw",h(p(i.k)),c,x[3],x[4]);if(u&&"importKey"===t&&("spki"===o||"pkcs8"===o))return n.importKey("jwk",function(t){var e=m(t),n=!1;e.length>2&&(n=!0,e.shift());var r={ext:!0};switch(e[0][0]){case"1.2.840.113549.1.1.1":var o=["n","e","d","p","q","dp","dq","qi"],i=m(e[1]);n&&i.shift();for(var a=0;a2&&(r=!0,i.unshift(new Uint8Array([0]))),n[0][0]="1.2.840.113549.1.1.1",e=i;break;default:throw new TypeError("Unsupported key type")}return n.push(new Uint8Array(b(e)).buffer),r?n.unshift(new Uint8Array([0])):n[1]={tag:3,value:n[1]},new Uint8Array(b(n)).buffer}(g(t))})),c}}),["encrypt","decrypt","sign","verify"].forEach(function(t){var e=n[t];n[t]=function(r,o,i,u){if(a&&(!i.byteLength||u&&!u.byteLength))throw new Error("Empy input is not allowed");var c,s=[].slice.call(arguments),f=v(r);if(a&&"decrypt"===t&&"AES-GCM"===f.name){var l=r.tagLength>>3;s[2]=(i.buffer||i).slice(0,i.byteLength-l),r.tag=(i.buffer||i).slice(i.byteLength-l)}s[1]=o._key;try{c=e.apply(n,s)}catch(p){return Promise.reject(p)}return a&&(c=new Promise(function(e,n){c.onabort=c.onerror=function(t){n(t)},c.oncomplete=function(n){if(n=n.target.result,"encrypt"===t&&n instanceof AesGcmEncryptResult){var r=n.ciphertext,o=n.tag;(n=new Uint8Array(r.byteLength+o.byteLength)).set(new Uint8Array(r),0),n.set(new Uint8Array(o),r.byteLength),n=n.buffer}e(n)}})),c}}),a){var f=n.digest;n.digest=function(t,e){if(!e.byteLength)throw new Error("Empy input is not allowed");var r;try{r=f.call(n,t,e)}catch(o){return Promise.reject(o)}return r=new Promise(function(t,e){r.onabort=r.onerror=function(t){e(t)},r.oncomplete=function(e){t(e.target.result)}})},t.crypto=Object.create(e,{getRandomValues:{value:function(t){return e.getRandomValues(t)}},subtle:{value:n}}),t.CryptoKey=_}u&&(e.subtle=n,t.Crypto=r,t.SubtleCrypto=o,t.CryptoKey=_)}}}function l(t){return btoa(t).replace(/\=+$/,"").replace(/\+/g,"-").replace(/\//g,"_")}function p(t){return t=(t+="===").slice(0,-t.length%4),atob(t.replace(/-/g,"+").replace(/_/g,"/"))}function h(t){for(var e=new Uint8Array(t.length),n=0;nt.length)throw new RangeError("Malformed DER");var n,r=t[e.pos++],o=t[e.pos++];if(o>=128){if(o&=127,e.end-e.pos=128){var u=r,r=4;for(e.splice(o,0,u>>24&255,u>>16&255,u>>8&255,255&u);r>1&&!(u>>24);)u<<=8,r--;r<4&&e.splice(o,4-r),r|=128}return e.splice(o-2,2,n,r),e}function _(t,e,n,r){Object.defineProperties(this,{_key:{value:t},type:{value:t.type,enumerable:!0},extractable:{value:void 0===n?t.extractable:n,enumerable:!0},algorithm:{value:void 0===e?t.algorithm:e,enumerable:!0},usages:{value:void 0===r?t.usages:r,enumerable:!0}})}function w(t){return"verify"===t||"encrypt"===t||"wrapKey"===t}function S(t){return"sign"===t||"decrypt"===t||"unwrapKey"===t}}(o)}.apply(e,[]))||(t.exports=r)},function(t,e,n){t.exports=function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return t[r].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";n(84);var r=n(41),o=function(t){return t&&t.__esModule?t:{default:t}}(r),i=function(){o.default.addPickerToOtherInputs(),o.default.supportsDateInput()||o.default.addPickerToDateInputs()};i(),document.addEventListener("DOMContentLoaded",function(){i()}),document.querySelector("body").addEventListener("mousedown",function(){i()})},function(t,e,n){t.exports=!n(11)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var r=n(9),o=n(32),i=n(25),a=Object.defineProperty;e.f=n(1)?Object.defineProperty:function(t,e,n){if(r(t),e=i(e,!0),r(n),o)try{return a(t,e,n)}catch(u){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},function(t,e,n){var r=n(59),o=n(16);t.exports=function(t){return r(o(t))}},function(t,e,n){var r=n(4),o=n(14);t.exports=n(1)?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){var r=n(23)("wks"),o=n(15),i=n(2).Symbol,a="function"==typeof i,u=t.exports=function(t){return r[t]||(r[t]=a&&i[t]||(a?i:o)("Symbol."+t))};u.store=r},function(t,e){var n=t.exports={version:"2.4.0"};"number"==typeof __e&&(__e=n)},function(t,e,n){var r=n(12);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},function(t,e,n){var r=n(2),o=n(8),i=n(56),a=n(6),u="prototype",c=function(t,e,n){var s,f,l,p=t&c.F,h=t&c.G,d=t&c.S,v=t&c.P,y=t&c.B,g=t&c.W,m=h?o:o[e]||(o[e]={}),b=m[u],_=h?r:d?r[e]:(r[e]||{})[u];for(s in h&&(n=e),n)(f=!p&&_&&void 0!==_[s])&&s in m||(l=f?_[s]:n[s],m[s]=h&&"function"!=typeof _[s]?n[s]:y&&f?i(l,r):g&&_[s]==l?function(t){var e=function(e,n,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,r)}return t.apply(this,arguments)};return e[u]=t[u],e}(l):v&&"function"==typeof l?i(Function.call,l):l,v&&((m.virtual||(m.virtual={}))[s]=l,t&c.R&&b&&!b[s]&&a(b,s,l)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,t.exports=c},function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e,n){var r=n(38),o=n(17);t.exports=Object.keys||function(t){return r(t,o)}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e){t.exports={}},function(t,e){t.exports=!0},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,n){var r=n(4).f,o=n(3),i=n(7)("toStringTag");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},function(t,e,n){var r=n(23)("keys"),o=n(15);t.exports=function(t){return r[t]||(r[t]=o(t))}},function(t,e,n){var r=n(2),o="__core-js_shared__",i=r[o]||(r[o]={});t.exports=function(t){return i[t]||(i[t]={})}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e,n){var r=n(12);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,e,n){var r=n(2),o=n(8),i=n(19),a=n(27),u=n(4).f;t.exports=function(t){var e=o.Symbol||(o.Symbol=i?{}:r.Symbol||{});"_"==t.charAt(0)||t in e||u(e,t,{value:a.f(t)})}},function(t,e,n){e.f=n(7)},function(t,e){"use strict";e.__esModule=!0,e.default=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},function(t,e,n){"use strict";e.__esModule=!0;var r=n(45),o=function(t){return t&&t.__esModule?t:{default:t}}(r);e.default=function(){function t(t,e){for(var n=0;ndocument.F=Object<\/script>"),t.close(),s=t.F;r--;)delete s[c][i[r]];return s()};t.exports=Object.create||function(t,e){var n;return null!==t?(u[c]=r(t),n=new u,u[c]=null,n[a]=t):n=s(),void 0===e?n:o(n,e)}},function(t,e,n){var r=n(4),o=n(9),i=n(13);t.exports=n(1)?Object.defineProperties:function(t,e){o(t);for(var n,a=i(e),u=a.length,c=0;u>c;)r.f(t,n=a[c++],e[n]);return t}},function(t,e,n){var r=n(38),o=n(17).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,n){var r=n(3),o=n(5),i=n(55)(!1),a=n(22)("IE_PROTO");t.exports=function(t,e){var n,u=o(t),c=0,s=[];for(n in u)n!=a&&r(u,n)&&s.push(n);for(;e.length>c;)r(u,n=e[c++])&&(~i(s,n)||s.push(n));return s}},function(t,e,n){t.exports=n(6)},function(t,e,n){"use strict";function r(t,e){for(t=String(t),e=e||2;t.length0?"-":"+")+r(100*Math.floor(Math.abs(_)/60)+Math.abs(_)%60,4),S:["th","st","nd","rd"][p%10>3?0:(p%100-p%10!=10)*p%10],W:w,N:S};return a.replace(t,function(t){return t in k?k[t]:t.slice(1,t.length-1)})}}();u.masks={default:"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:sso",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'",expiresHeaderFormat:"ddd, dd mmm yyyy HH:MM:ss Z"},u.i18n={dayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","January","February","March","April","May","June","July","August","September","October","November","December"]},e.default=u},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(44),i=r(o),a=n(28),u=r(a),c=n(29),s=r(c),f=n(43),l=r(f),p=n(42),h=r(p),d=n(40),v=r(d),y=function(){function t(e){var n=this;(0,u.default)(this,t),this.element=e,this.element.setAttribute("data-has-picker",""),this.locale=this.element.getAttribute("lang")||document.body.getAttribute("lang")||"en",this.format=this.element.getAttribute("date-format")||document.body.getAttribute("date-format")||this.element.getAttribute("data-date-format")||document.body.getAttribute("data-date-format")||"yyyy-mm-dd",this.localeText=this.getLocaleText(),(0,i.default)(this.element,{valueAsDate:{get:function(){if(!n.element.value)return null;var t=n.format||"yyyy-mm-dd",e=n.element.value.match(/(\d+)/g),r=0,o={};return t.replace(/(yyyy|dd|mm)/g,function(t){o[t]=r++}),new Date(e[o.yyyy],e[o.mm]-1,e[o.dd])},set:function(t){n.element.value=(0,v.default)(t,n.format)}},valueAsNumber:{get:function(){return n.element.value?n.element.valueAsDate.valueOf():NaN},set:function(t){n.element.valueAsDate=new Date(t)}}});var r=function(t){var e=n.element;e.locale=n.localeText,l.default.attachTo(e)};this.element.addEventListener("focus",r),this.element.addEventListener("mouseup",r),this.element.addEventListener("keydown",function(t){var e=new Date;switch(t.keyCode){case 9:case 27:l.default.hide();break;case 38:n.element.valueAsDate&&(e.setDate(n.element.valueAsDate.getDate()+1),n.element.valueAsDate=e,l.default.pingInput());break;case 40:n.element.valueAsDate&&(e.setDate(n.element.valueAsDate.getDate()-1),n.element.valueAsDate=e,l.default.pingInput())}l.default.sync()}),this.element.addEventListener("keyup",function(t){l.default.sync()})}return(0,s.default)(t,[{key:"getLocaleText",value:function(){var t=this.locale.toLowerCase();for(var e in h.default){var n=e.split("_");if(n.map(function(t){return t.toLowerCase()}),~n.indexOf(t)||~n.indexOf(t.substr(0,2)))return h.default[e]}}}],[{key:"supportsDateInput",value:function(){var t=document.createElement("input");t.setAttribute("type","date");var e="not-a-date";return t.setAttribute("value",e),!(t.value===e)}},{key:"addPickerToDateInputs",value:function(){var e=document.querySelectorAll('input[type="date"]:not([data-has-picker])'),n=e.length;if(!n)return!1;for(var r=0;r"],n=0,r=this.locale.days.length;n'+this.locale.days[n]+"");this.daysHead.innerHTML=e.join(""),t.createRangeSelect(this.month,0,11,this.locale.months)}},{key:"refreshDaysMatrix",value:function(){this.refreshLocale();for(var e=this.date.getFullYear(),n=this.date.getMonth(),r=new Date(e,n,1).getDay(),o=new Date(this.date.getFullYear(),n+1,0).getDate(),i=t.absoluteDate(this.input.valueAsDate)||!1,a=i&&e===i.getFullYear()&&n===i.getMonth(),u=[],c=0;c":"")+"\n \n "),c+1<=r)u.push("");else{var s=c+1-r,f=a&&i.getDate()===s;u.push("\n "+s+"\n ")}this.days.innerHTML=u.join("")}},{key:"pingInput",value:function(){var t=void 0,e=void 0;try{t=new Event("input"),e=new Event("change")}catch(n){(t=document.createEvent("KeyboardEvent")).initEvent("input",!0,!1),(e=document.createEvent("KeyboardEvent")).initEvent("change",!0,!1)}this.input.dispatchEvent(t),this.input.dispatchEvent(e)}}],[{key:"createRangeSelect",value:function(t,e,n,r){t.innerHTML="";for(var o=e;o<=n;++o){var i=document.createElement("option");t.appendChild(i);var a=r?r[o-e]:o;i.text=a,i.value=o}return t}},{key:"absoluteDate",value:function(t){return t&&new Date(t.getTime()+60*t.getTimezoneOffset()*1e3)}}]),t}();window.thePicker=new c,e.default=window.thePicker},function(t,e,n){t.exports={default:n(49),__esModule:!0}},function(t,e,n){t.exports={default:n(50),__esModule:!0}},function(t,e,n){t.exports={default:n(51),__esModule:!0}},function(t,e,n){t.exports={default:n(52),__esModule:!0}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var o=n(47),i=r(o),a=n(46),u=r(a),c="function"==typeof u.default&&"symbol"==typeof i.default?function(t){return typeof t}:function(t){return t&&"function"==typeof u.default&&t.constructor===u.default?"symbol":typeof t};e.default="function"==typeof u.default&&"symbol"===c(i.default)?function(t){return void 0===t?"undefined":c(t)}:function(t){return t&&"function"==typeof u.default&&t.constructor===u.default?"symbol":void 0===t?"undefined":c(t)}},function(t,e,n){n(73);var r=n(8).Object;t.exports=function(t,e){return r.defineProperties(t,e)}},function(t,e,n){n(74);var r=n(8).Object;t.exports=function(t,e,n){return r.defineProperty(t,e,n)}},function(t,e,n){n(77),n(75),n(78),n(79),t.exports=n(8).Symbol},function(t,e,n){n(76),n(80),t.exports=n(27).f("iterator")},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e){t.exports=function(){}},function(t,e,n){var r=n(5),o=n(70),i=n(69);t.exports=function(t){return function(e,n,a){var u,c=r(e),s=o(c.length),f=i(a,s);if(t&&n!=n){for(;s>f;)if((u=c[f++])!=u)return!0}else for(;s>f;f++)if((t||f in c)&&c[f]===n)return t||f||0;return!t&&-1}}},function(t,e,n){var r=n(53);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},function(t,e,n){var r=n(13),o=n(37),i=n(20);t.exports=function(t){var e=r(t),n=o.f;if(n)for(var a,u=n(t),c=i.f,s=0;u.length>s;)c.call(t,a=u[s++])&&e.push(a);return e}},function(t,e,n){t.exports=n(2).document&&document.documentElement},function(t,e,n){var r=n(30);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},function(t,e,n){var r=n(30);t.exports=Array.isArray||function(t){return"Array"==r(t)}},function(t,e,n){"use strict";var r=n(34),o=n(14),i=n(21),a={};n(6)(a,n(7)("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=r(a,{next:o(1,n)}),i(t,e+" Iterator")}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){var r=n(13),o=n(5);t.exports=function(t,e){for(var n,i=o(t),a=r(i),u=a.length,c=0;u>c;)if(i[n=a[c++]]===e)return n}},function(t,e,n){var r=n(15)("meta"),o=n(12),i=n(3),a=n(4).f,u=0,c=Object.isExtensible||function(){return!0},s=!n(11)(function(){return c(Object.preventExtensions({}))}),f=function(t){a(t,r,{value:{i:"O"+ ++u,w:{}}})},l=t.exports={KEY:r,NEED:!1,fastKey:function(t,e){if(!o(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!i(t,r)){if(!c(t))return"F";if(!e)return"E";f(t)}return t[r].i},getWeak:function(t,e){if(!i(t,r)){if(!c(t))return!0;if(!e)return!1;f(t)}return t[r].w},onFreeze:function(t){return s&&l.NEED&&c(t)&&!i(t,r)&&f(t),t}}},function(t,e,n){var r=n(20),o=n(14),i=n(5),a=n(25),u=n(3),c=n(32),s=Object.getOwnPropertyDescriptor;e.f=n(1)?s:function(t,e){if(t=i(t),e=a(e,!0),c)try{return s(t,e)}catch(n){}if(u(t,e))return o(!r.f.call(t,e),t[e])}},function(t,e,n){var r=n(5),o=n(36).f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&"[object Window]"==i.call(t)?function(t){try{return o(t)}catch(e){return a.slice()}}(t):o(r(t))}},function(t,e,n){var r=n(3),o=n(71),i=n(22)("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),r(t,i)?t[i]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},function(t,e,n){var r=n(24),o=n(16);t.exports=function(t){return function(e,n){var i,a,u=String(o(e)),c=r(n),s=u.length;return c<0||c>=s?t?"":void 0:(i=u.charCodeAt(c))<55296||i>56319||c+1===s||(a=u.charCodeAt(c+1))<56320||a>57343?t?u.charAt(c):i:t?u.slice(c,c+2):a-56320+(i-55296<<10)+65536}}},function(t,e,n){var r=n(24),o=Math.max,i=Math.min;t.exports=function(t,e){return(t=r(t))<0?o(t+e,0):i(t,e)}},function(t,e,n){var r=n(24),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},function(t,e,n){var r=n(16);t.exports=function(t){return Object(r(t))}},function(t,e,n){"use strict";var r=n(54),o=n(62),i=n(18),a=n(5);t.exports=n(33)(Array,"Array",function(t,e){this._t=a(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,o(1)):o(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])},"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(t,e,n){var r=n(10);r(r.S+r.F*!n(1),"Object",{defineProperties:n(35)})},function(t,e,n){var r=n(10);r(r.S+r.F*!n(1),"Object",{defineProperty:n(4).f})},function(t,e){},function(t,e,n){"use strict";var r=n(68)(!0);n(33)(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})})},function(t,e,n){"use strict";var r=n(2),o=n(3),i=n(1),a=n(10),u=n(39),c=n(64).KEY,s=n(11),f=n(23),l=n(21),p=n(15),h=n(7),d=n(27),v=n(26),y=n(63),g=n(57),m=n(60),b=n(9),_=n(5),w=n(25),S=n(14),k=n(34),E=n(66),x=n(65),T=n(4),O=n(13),A=x.f,P=T.f,M=E.f,j=r.Symbol,D=r.JSON,C=D&&D.stringify,F="prototype",I=h("_hidden"),R=h("toPrimitive"),N={}.propertyIsEnumerable,L=f("symbol-registry"),Z=f("symbols"),U=f("op-symbols"),z=Object[F],B="function"==typeof j,H=r.QObject,W=!H||!H[F]||!H[F].findChild,K=i&&s(function(){return 7!=k(P({},"a",{get:function(){return P(this,"a",{value:7}).a}})).a})?function(t,e,n){var r=A(z,e);r&&delete z[e],P(t,e,n),r&&t!==z&&P(z,e,r)}:P,G=function(t){var e=Z[t]=k(j[F]);return e._k=t,e},J=B&&"symbol"==typeof j.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof j},V=function(t,e,n){return t===z&&V(U,e,n),b(t),e=w(e,!0),b(n),o(Z,e)?(n.enumerable?(o(t,I)&&t[I][e]&&(t[I][e]=!1),n=k(n,{enumerable:S(0,!1)})):(o(t,I)||P(t,I,S(1,{})),t[I][e]=!0),K(t,e,n)):P(t,e,n)},q=function(t,e){b(t);for(var n,r=g(e=_(e)),o=0,i=r.length;i>o;)V(t,n=r[o++],e[n]);return t},Y=function(t){var e=N.call(this,t=w(t,!0));return!(this===z&&o(Z,t)&&!o(U,t))&&(!(e||!o(this,t)||!o(Z,t)||o(this,I)&&this[I][t])||e)},X=function(t,e){if(t=_(t),e=w(e,!0),t!==z||!o(Z,e)||o(U,e)){var n=A(t,e);return!n||!o(Z,e)||o(t,I)&&t[I][e]||(n.enumerable=!0),n}},$=function(t){for(var e,n=M(_(t)),r=[],i=0;n.length>i;)o(Z,e=n[i++])||e==I||e==c||r.push(e);return r},Q=function(t){for(var e,n=t===z,r=M(n?U:_(t)),i=[],a=0;r.length>a;)!o(Z,e=r[a++])||n&&!o(z,e)||i.push(Z[e]);return i};B||(u((j=function(){if(this instanceof j)throw TypeError("Symbol is not a constructor!");var t=p(arguments.length>0?arguments[0]:void 0),e=function(n){this===z&&e.call(U,n),o(this,I)&&o(this[I],t)&&(this[I][t]=!1),K(this,t,S(1,n))};return i&&W&&K(z,t,{configurable:!0,set:e}),G(t)})[F],"toString",function(){return this._k}),x.f=X,T.f=V,n(36).f=E.f=$,n(20).f=Y,n(37).f=Q,i&&!n(19)&&u(z,"propertyIsEnumerable",Y,!0),d.f=function(t){return G(h(t))}),a(a.G+a.W+a.F*!B,{Symbol:j});for(var tt="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),et=0;tt.length>et;)h(tt[et++]);for(var tt=O(h.store),et=0;tt.length>et;)v(tt[et++]);a(a.S+a.F*!B,"Symbol",{for:function(t){return o(L,t+="")?L[t]:L[t]=j(t)},keyFor:function(t){if(J(t))return y(L,t);throw TypeError(t+" is not a symbol!")},useSetter:function(){W=!0},useSimple:function(){W=!1}}),a(a.S+a.F*!B,"Object",{create:function(t,e){return void 0===e?k(t):q(k(t),e)},defineProperty:V,defineProperties:q,getOwnPropertyDescriptor:X,getOwnPropertyNames:$,getOwnPropertySymbols:Q}),D&&a(a.S+a.F*(!B||s(function(){var t=j();return"[null]"!=C([t])||"{}"!=C({a:t})||"{}"!=C(Object(t))})),"JSON",{stringify:function(t){if(void 0!==t&&!J(t)){for(var e,n,r=[t],o=1;arguments.length>o;)r.push(arguments[o++]);return"function"==typeof(e=r[1])&&(n=e),!n&&m(e)||(e=function(t,e){if(n&&(e=n.call(this,t,e)),!J(e))return e}),r[1]=e,C.apply(D,r)}}}),j[F][R]||n(6)(j[F],R,j[F].valueOf),l(j,"Symbol"),l(Math,"Math",!0),l(r.JSON,"JSON",!0)},function(t,e,n){n(26)("asyncIterator")},function(t,e,n){n(26)("observable")},function(t,e,n){n(72);for(var r=n(2),o=n(6),i=n(18),a=n(7)("toStringTag"),u=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],c=0;c<5;c++){var s=u[c],f=r[s],l=f&&f.prototype;l&&!l[a]&&o(l,a,s),i[s]=i.Array}},function(t,e,n){(t.exports=n(82)()).push([t.id,"date-input-polyfill{background:#fff;color:#000;text-shadow:none;border:0;padding:0;height:auto;width:auto;line-height:normal;font-family:sans-serif;font-size:14px;position:absolute!important;text-align:center;box-shadow:0 3px 10px 1px rgba(0,0,0,.22);cursor:default;z-index:1;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;overflow:hidden;display:block}date-input-polyfill[data-open=false]{visibility:hidden;z-index:-100!important;top:0}date-input-polyfill[data-open=true]{visibility:visible}date-input-polyfill select,date-input-polyfill table,date-input-polyfill td,date-input-polyfill th{background:#fff;color:#000;text-shadow:none;border:0;padding:0;height:auto;width:auto;line-height:normal;font-family:sans-serif;font-size:14px;box-shadow:none;font-family:Lato,Helvetica,Arial,sans-serif}date-input-polyfill button,date-input-polyfill select{border:0;border-radius:0;border-bottom:1px solid #dadfe1;height:24px;vertical-align:top;-webkit-appearance:none;-moz-appearance:none}date-input-polyfill .monthSelect-wrapper{width:55%;display:inline-block}date-input-polyfill .yearSelect-wrapper{width:25%;display:inline-block}date-input-polyfill select{width:100%}date-input-polyfill select:first-of-type{border-right:1px solid #dadfe1;border-radius:5px 0 0 0;-moz-border-radius:5px 0 0 0;-webkit-border-radius:5px 0 0 0}date-input-polyfill button{width:20%;background:#dadfe1;border-radius:0 5px 0 0;-moz-border-radius:0 5px 0 0;-webkit-border-radius:0 5px 0 0}date-input-polyfill button:hover{background:#eee}date-input-polyfill table{border-collapse:separate!important;border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0 0 5px 5px;overflow:hidden;max-width:280px;width:280px}date-input-polyfill td,date-input-polyfill th{width:32px;padding:4px;text-align:center;box-sizing:content-box}date-input-polyfill td[data-day]{cursor:pointer}date-input-polyfill td[data-day]:hover{background:#dadfe1}date-input-polyfill [data-selected]{font-weight:700;background:#d8eaf6}",""])},function(t,e){t.exports=function(){var t=[];return t.toString=function(){for(var t=[],e=0;e=0&&g.splice(e,1)}function u(t){var e=document.createElement("style");return e.type="text/css",i(t,e),e}function c(t){var e=document.createElement("link");return e.rel="stylesheet",i(t,e),e}function s(t,e){var n,r,o;if(e.singleton){var i=y++;n=v||(v=u(e)),r=f.bind(null,n,i,!1),o=f.bind(null,n,i,!0)}else t.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=c(e),r=function(t,e){var n=e.css,r=e.sourceMap;r&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var o=new Blob([n],{type:"text/css"}),i=t.href;t.href=URL.createObjectURL(o),i&&URL.revokeObjectURL(i)}.bind(null,n),o=function(){a(n),n.href&&URL.revokeObjectURL(n.href)}):(n=u(e),r=function(t,e){var n=e.css,r=e.media;if(r&&t.setAttribute("media",r),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}.bind(null,n),o=function(){a(n)});return r(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;r(t=e)}else o()}}function f(t,e,n,r){var o=n?"":r.css;if(t.styleSheet)t.styleSheet.cssText=m(e,o);else{var i=document.createTextNode(o),a=t.childNodes;a[e]&&t.removeChild(a[e]),a.length?t.insertBefore(i,a[e]):t.appendChild(i)}}var l={},p=function(t){var e;return function(){return void 0===e&&(e=t.apply(this,arguments)),e}},h=p(function(){return/msie [6-9]\b/.test(window.navigator.userAgent.toLowerCase())}),d=p(function(){return document.head||document.getElementsByTagName("head")[0]}),v=null,y=0,g=[];t.exports=function(t,e){void 0===(e=e||{}).singleton&&(e.singleton=h()),void 0===e.insertAt&&(e.insertAt="bottom");var n=o(t);return r(n,e),function(t){for(var i=[],a=0;a 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","var $export = require('./_export');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar quot = /\"/g;\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\nvar createHTML = function (string, tag, attribute, value) {\n var S = String(defined(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\nmodule.exports = function (NAME, exec) {\n var O = {};\n O[NAME] = exec(createHTML);\n $export($export.P + $export.F * fails(function () {\n var test = ''[NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n }), 'String', O);\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","var core = module.exports = { version: '2.6.2' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","'use strict';\nvar fails = require('./_fails');\n\nmodule.exports = function (method, arg) {\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call\n arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);\n });\n};\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nif (require('./_descriptors')) {\n var LIBRARY = require('./_library');\n var global = require('./_global');\n var fails = require('./_fails');\n var $export = require('./_export');\n var $typed = require('./_typed');\n var $buffer = require('./_typed-buffer');\n var ctx = require('./_ctx');\n var anInstance = require('./_an-instance');\n var propertyDesc = require('./_property-desc');\n var hide = require('./_hide');\n var redefineAll = require('./_redefine-all');\n var toInteger = require('./_to-integer');\n var toLength = require('./_to-length');\n var toIndex = require('./_to-index');\n var toAbsoluteIndex = require('./_to-absolute-index');\n var toPrimitive = require('./_to-primitive');\n var has = require('./_has');\n var classof = require('./_classof');\n var isObject = require('./_is-object');\n var toObject = require('./_to-object');\n var isArrayIter = require('./_is-array-iter');\n var create = require('./_object-create');\n var getPrototypeOf = require('./_object-gpo');\n var gOPN = require('./_object-gopn').f;\n var getIterFn = require('./core.get-iterator-method');\n var uid = require('./_uid');\n var wks = require('./_wks');\n var createArrayMethod = require('./_array-methods');\n var createArrayIncludes = require('./_array-includes');\n var speciesConstructor = require('./_species-constructor');\n var ArrayIterators = require('./es6.array.iterator');\n var Iterators = require('./_iterators');\n var $iterDetect = require('./_iter-detect');\n var setSpecies = require('./_set-species');\n var arrayFill = require('./_array-fill');\n var arrayCopyWithin = require('./_array-copy-within');\n var $DP = require('./_object-dp');\n var $GOPD = require('./_object-gopd');\n var dP = $DP.f;\n var gOPD = $GOPD.f;\n var RangeError = global.RangeError;\n var TypeError = global.TypeError;\n var Uint8Array = global.Uint8Array;\n var ARRAY_BUFFER = 'ArrayBuffer';\n var SHARED_BUFFER = 'Shared' + ARRAY_BUFFER;\n var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\n var PROTOTYPE = 'prototype';\n var ArrayProto = Array[PROTOTYPE];\n var $ArrayBuffer = $buffer.ArrayBuffer;\n var $DataView = $buffer.DataView;\n var arrayForEach = createArrayMethod(0);\n var arrayFilter = createArrayMethod(2);\n var arraySome = createArrayMethod(3);\n var arrayEvery = createArrayMethod(4);\n var arrayFind = createArrayMethod(5);\n var arrayFindIndex = createArrayMethod(6);\n var arrayIncludes = createArrayIncludes(true);\n var arrayIndexOf = createArrayIncludes(false);\n var arrayValues = ArrayIterators.values;\n var arrayKeys = ArrayIterators.keys;\n var arrayEntries = ArrayIterators.entries;\n var arrayLastIndexOf = ArrayProto.lastIndexOf;\n var arrayReduce = ArrayProto.reduce;\n var arrayReduceRight = ArrayProto.reduceRight;\n var arrayJoin = ArrayProto.join;\n var arraySort = ArrayProto.sort;\n var arraySlice = ArrayProto.slice;\n var arrayToString = ArrayProto.toString;\n var arrayToLocaleString = ArrayProto.toLocaleString;\n var ITERATOR = wks('iterator');\n var TAG = wks('toStringTag');\n var TYPED_CONSTRUCTOR = uid('typed_constructor');\n var DEF_CONSTRUCTOR = uid('def_constructor');\n var ALL_CONSTRUCTORS = $typed.CONSTR;\n var TYPED_ARRAY = $typed.TYPED;\n var VIEW = $typed.VIEW;\n var WRONG_LENGTH = 'Wrong length!';\n\n var $map = createArrayMethod(1, function (O, length) {\n return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);\n });\n\n var LITTLE_ENDIAN = fails(function () {\n // eslint-disable-next-line no-undef\n return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;\n });\n\n var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function () {\n new Uint8Array(1).set({});\n });\n\n var toOffset = function (it, BYTES) {\n var offset = toInteger(it);\n if (offset < 0 || offset % BYTES) throw RangeError('Wrong offset!');\n return offset;\n };\n\n var validate = function (it) {\n if (isObject(it) && TYPED_ARRAY in it) return it;\n throw TypeError(it + ' is not a typed array!');\n };\n\n var allocate = function (C, length) {\n if (!(isObject(C) && TYPED_CONSTRUCTOR in C)) {\n throw TypeError('It is not a typed array constructor!');\n } return new C(length);\n };\n\n var speciesFromList = function (O, list) {\n return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);\n };\n\n var fromList = function (C, list) {\n var index = 0;\n var length = list.length;\n var result = allocate(C, length);\n while (length > index) result[index] = list[index++];\n return result;\n };\n\n var addGetter = function (it, key, internal) {\n dP(it, key, { get: function () { return this._d[internal]; } });\n };\n\n var $from = function from(source /* , mapfn, thisArg */) {\n var O = toObject(source);\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iterFn = getIterFn(O);\n var i, length, values, result, step, iterator;\n if (iterFn != undefined && !isArrayIter(iterFn)) {\n for (iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++) {\n values.push(step.value);\n } O = values;\n }\n if (mapping && aLen > 2) mapfn = ctx(mapfn, arguments[2], 2);\n for (i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n };\n\n var $of = function of(/* ...items */) {\n var index = 0;\n var length = arguments.length;\n var result = allocate(this, length);\n while (length > index) result[index] = arguments[index++];\n return result;\n };\n\n // iOS Safari 6.x fails here\n var TO_LOCALE_BUG = !!Uint8Array && fails(function () { arrayToLocaleString.call(new Uint8Array(1)); });\n\n var $toLocaleString = function toLocaleString() {\n return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments);\n };\n\n var proto = {\n copyWithin: function copyWithin(target, start /* , end */) {\n return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n },\n every: function every(callbackfn /* , thisArg */) {\n return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n fill: function fill(value /* , start, end */) { // eslint-disable-line no-unused-vars\n return arrayFill.apply(validate(this), arguments);\n },\n filter: function filter(callbackfn /* , thisArg */) {\n return speciesFromList(this, arrayFilter(validate(this), callbackfn,\n arguments.length > 1 ? arguments[1] : undefined));\n },\n find: function find(predicate /* , thisArg */) {\n return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n findIndex: function findIndex(predicate /* , thisArg */) {\n return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n forEach: function forEach(callbackfn /* , thisArg */) {\n arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n indexOf: function indexOf(searchElement /* , fromIndex */) {\n return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n includes: function includes(searchElement /* , fromIndex */) {\n return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n join: function join(separator) { // eslint-disable-line no-unused-vars\n return arrayJoin.apply(validate(this), arguments);\n },\n lastIndexOf: function lastIndexOf(searchElement /* , fromIndex */) { // eslint-disable-line no-unused-vars\n return arrayLastIndexOf.apply(validate(this), arguments);\n },\n map: function map(mapfn /* , thisArg */) {\n return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n reduce: function reduce(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars\n return arrayReduce.apply(validate(this), arguments);\n },\n reduceRight: function reduceRight(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars\n return arrayReduceRight.apply(validate(this), arguments);\n },\n reverse: function reverse() {\n var that = this;\n var length = validate(that).length;\n var middle = Math.floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n },\n some: function some(callbackfn /* , thisArg */) {\n return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n sort: function sort(comparefn) {\n return arraySort.call(validate(this), comparefn);\n },\n subarray: function subarray(begin, end) {\n var O = validate(this);\n var length = O.length;\n var $begin = toAbsoluteIndex(begin, length);\n return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(\n O.buffer,\n O.byteOffset + $begin * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - $begin)\n );\n }\n };\n\n var $slice = function slice(start, end) {\n return speciesFromList(this, arraySlice.call(validate(this), start, end));\n };\n\n var $set = function set(arrayLike /* , offset */) {\n validate(this);\n var offset = toOffset(arguments[1], 1);\n var length = this.length;\n var src = toObject(arrayLike);\n var len = toLength(src.length);\n var index = 0;\n if (len + offset > length) throw RangeError(WRONG_LENGTH);\n while (index < len) this[offset + index] = src[index++];\n };\n\n var $iterators = {\n entries: function entries() {\n return arrayEntries.call(validate(this));\n },\n keys: function keys() {\n return arrayKeys.call(validate(this));\n },\n values: function values() {\n return arrayValues.call(validate(this));\n }\n };\n\n var isTAIndex = function (target, key) {\n return isObject(target)\n && target[TYPED_ARRAY]\n && typeof key != 'symbol'\n && key in target\n && String(+key) == String(key);\n };\n var $getDesc = function getOwnPropertyDescriptor(target, key) {\n return isTAIndex(target, key = toPrimitive(key, true))\n ? propertyDesc(2, target[key])\n : gOPD(target, key);\n };\n var $setDesc = function defineProperty(target, key, desc) {\n if (isTAIndex(target, key = toPrimitive(key, true))\n && isObject(desc)\n && has(desc, 'value')\n && !has(desc, 'get')\n && !has(desc, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !desc.configurable\n && (!has(desc, 'writable') || desc.writable)\n && (!has(desc, 'enumerable') || desc.enumerable)\n ) {\n target[key] = desc.value;\n return target;\n } return dP(target, key, desc);\n };\n\n if (!ALL_CONSTRUCTORS) {\n $GOPD.f = $getDesc;\n $DP.f = $setDesc;\n }\n\n $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', {\n getOwnPropertyDescriptor: $getDesc,\n defineProperty: $setDesc\n });\n\n if (fails(function () { arrayToString.call({}); })) {\n arrayToString = arrayToLocaleString = function toString() {\n return arrayJoin.call(this);\n };\n }\n\n var $TypedArrayPrototype$ = redefineAll({}, proto);\n redefineAll($TypedArrayPrototype$, $iterators);\n hide($TypedArrayPrototype$, ITERATOR, $iterators.values);\n redefineAll($TypedArrayPrototype$, {\n slice: $slice,\n set: $set,\n constructor: function () { /* noop */ },\n toString: arrayToString,\n toLocaleString: $toLocaleString\n });\n addGetter($TypedArrayPrototype$, 'buffer', 'b');\n addGetter($TypedArrayPrototype$, 'byteOffset', 'o');\n addGetter($TypedArrayPrototype$, 'byteLength', 'l');\n addGetter($TypedArrayPrototype$, 'length', 'e');\n dP($TypedArrayPrototype$, TAG, {\n get: function () { return this[TYPED_ARRAY]; }\n });\n\n // eslint-disable-next-line max-statements\n module.exports = function (KEY, BYTES, wrapper, CLAMPED) {\n CLAMPED = !!CLAMPED;\n var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + KEY;\n var SETTER = 'set' + KEY;\n var TypedArray = global[NAME];\n var Base = TypedArray || {};\n var TAC = TypedArray && getPrototypeOf(TypedArray);\n var FORCED = !TypedArray || !$typed.ABV;\n var O = {};\n var TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE];\n var getter = function (that, index) {\n var data = that._d;\n return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);\n };\n var setter = function (that, index, value) {\n var data = that._d;\n if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff;\n data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN);\n };\n var addElement = function (that, index) {\n dP(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n if (FORCED) {\n TypedArray = wrapper(function (that, data, $offset, $length) {\n anInstance(that, TypedArray, NAME, '_d');\n var index = 0;\n var offset = 0;\n var buffer, byteLength, length, klass;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new $ArrayBuffer(byteLength);\n } else if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n buffer = data;\n offset = toOffset($offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - offset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + offset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (TYPED_ARRAY in data) {\n return fromList(TypedArray, data);\n } else {\n return $from.call(TypedArray, data);\n }\n hide(that, '_d', {\n b: buffer,\n o: offset,\n l: byteLength,\n e: length,\n v: new $DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);\n hide(TypedArrayPrototype, 'constructor', TypedArray);\n } else if (!fails(function () {\n TypedArray(1);\n }) || !fails(function () {\n new TypedArray(-1); // eslint-disable-line no-new\n }) || !$iterDetect(function (iter) {\n new TypedArray(); // eslint-disable-line no-new\n new TypedArray(null); // eslint-disable-line no-new\n new TypedArray(1.5); // eslint-disable-line no-new\n new TypedArray(iter); // eslint-disable-line no-new\n }, true)) {\n TypedArray = wrapper(function (that, data, $offset, $length) {\n anInstance(that, TypedArray, NAME);\n var klass;\n // `ws` module bug, temporarily remove validation length for Uint8Array\n // https://github.com/websockets/ws/pull/645\n if (!isObject(data)) return new Base(toIndex(data));\n if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n return $length !== undefined\n ? new Base(data, toOffset($offset, BYTES), $length)\n : $offset !== undefined\n ? new Base(data, toOffset($offset, BYTES))\n : new Base(data);\n }\n if (TYPED_ARRAY in data) return fromList(TypedArray, data);\n return $from.call(TypedArray, data);\n });\n arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function (key) {\n if (!(key in TypedArray)) hide(TypedArray, key, Base[key]);\n });\n TypedArray[PROTOTYPE] = TypedArrayPrototype;\n if (!LIBRARY) TypedArrayPrototype.constructor = TypedArray;\n }\n var $nativeIterator = TypedArrayPrototype[ITERATOR];\n var CORRECT_ITER_NAME = !!$nativeIterator\n && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined);\n var $iterator = $iterators.values;\n hide(TypedArray, TYPED_CONSTRUCTOR, true);\n hide(TypedArrayPrototype, TYPED_ARRAY, NAME);\n hide(TypedArrayPrototype, VIEW, true);\n hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);\n\n if (CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)) {\n dP(TypedArrayPrototype, TAG, {\n get: function () { return NAME; }\n });\n }\n\n O[NAME] = TypedArray;\n\n $export($export.G + $export.W + $export.F * (TypedArray != Base), O);\n\n $export($export.S, NAME, {\n BYTES_PER_ELEMENT: BYTES\n });\n\n $export($export.S + $export.F * fails(function () { Base.of.call(TypedArray, 1); }), NAME, {\n from: $from,\n of: $of\n });\n\n if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);\n\n $export($export.P, NAME, proto);\n\n setSpecies(NAME);\n\n $export($export.P + $export.F * FORCED_SET, NAME, { set: $set });\n\n $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);\n\n if (!LIBRARY && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString;\n\n $export($export.P + $export.F * fails(function () {\n new TypedArray(1).slice();\n }), NAME, { slice: $slice });\n\n $export($export.P + $export.F * (fails(function () {\n return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString();\n }) || !fails(function () {\n TypedArrayPrototype.toLocaleString.call([1, 2]);\n })), NAME, { toLocaleString: $toLocaleString });\n\n Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;\n if (!LIBRARY && !CORRECT_ITER_NAME) hide(TypedArrayPrototype, ITERATOR, $iterator);\n };\n} else module.exports = function () { /* empty */ };\n","var Map = require('./es6.map');\nvar $export = require('./_export');\nvar shared = require('./_shared')('metadata');\nvar store = shared.store || (shared.store = new (require('./es6.weak-map'))());\n\nvar getOrCreateMetadataMap = function (target, targetKey, create) {\n var targetMetadata = store.get(target);\n if (!targetMetadata) {\n if (!create) return undefined;\n store.set(target, targetMetadata = new Map());\n }\n var keyMetadata = targetMetadata.get(targetKey);\n if (!keyMetadata) {\n if (!create) return undefined;\n targetMetadata.set(targetKey, keyMetadata = new Map());\n } return keyMetadata;\n};\nvar ordinaryHasOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? false : metadataMap.has(MetadataKey);\n};\nvar ordinaryGetOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);\n};\nvar ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) {\n getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);\n};\nvar ordinaryOwnMetadataKeys = function (target, targetKey) {\n var metadataMap = getOrCreateMetadataMap(target, targetKey, false);\n var keys = [];\n if (metadataMap) metadataMap.forEach(function (_, key) { keys.push(key); });\n return keys;\n};\nvar toMetaKey = function (it) {\n return it === undefined || typeof it == 'symbol' ? it : String(it);\n};\nvar exp = function (O) {\n $export($export.S, 'Reflect', O);\n};\n\nmodule.exports = {\n store: store,\n map: getOrCreateMetadataMap,\n has: ordinaryHasOwnMetadata,\n get: ordinaryGetOwnMetadata,\n set: ordinaryDefineOwnMetadata,\n keys: ordinaryOwnMetadataKeys,\n key: toMetaKey,\n exp: exp\n};\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","module.exports = false;\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","module.exports = {};\n","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","var $export = require('./_export');\nvar defined = require('./_defined');\nvar fails = require('./_fails');\nvar spaces = require('./_string-ws');\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n var exp = {};\n var FORCE = fails(function () {\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if (ALIAS) exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n string = String(defined(string));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;\n","exports.f = {}.propertyIsEnumerable;\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","exports.f = Object.getOwnPropertySymbols;\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","'use strict';\n\nvar classof = require('./_classof');\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n","'use strict';\nrequire('./es6.regexp.exec');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar wks = require('./_wks');\nvar regexpExec = require('./_regexp-exec');\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n var fixMethod = function (KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n // weak collections should not contains .clear method\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar uid = require('./_uid');\nvar TYPED = uid('typed_array');\nvar VIEW = uid('view');\nvar ABV = !!(global.ArrayBuffer && global.DataView);\nvar CONSTR = ABV;\nvar i = 0;\nvar l = 9;\nvar Typed;\n\nvar TypedArrayConstructors = (\n 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'\n).split(',');\n\nwhile (i < l) {\n if (Typed = global[TypedArrayConstructors[i++]]) {\n hide(Typed.prototype, TYPED, true);\n hide(Typed.prototype, VIEW, true);\n } else CONSTR = false;\n}\n\nmodule.exports = {\n ABV: ABV,\n CONSTR: CONSTR,\n TYPED: TYPED,\n VIEW: VIEW\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n","// 20.2.2.28 Math.sign(x)\nmodule.exports = Math.sign || function sign(x) {\n // eslint-disable-next-line no-self-compare\n return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n","// 20.2.2.14 Math.expm1(x)\nvar $expm1 = Math.expm1;\nmodule.exports = (!$expm1\n // Old FF bug\n || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168\n // Tor Browser bug\n || $expm1(-2e-17) != -2e-17\n) ? function expm1(x) {\n return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;\n} : $expm1;\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = require('./_is-regexp');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n","var MATCH = require('./_wks')('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var aLen = arguments.length;\n var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);\n var end = aLen > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","'use strict';\n\nvar regexpFlags = require('./_flags');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar at = require('./_string-at')(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n","'use strict';\nvar global = require('./_global');\nvar DESCRIPTORS = require('./_descriptors');\nvar LIBRARY = require('./_library');\nvar $typed = require('./_typed');\nvar hide = require('./_hide');\nvar redefineAll = require('./_redefine-all');\nvar fails = require('./_fails');\nvar anInstance = require('./_an-instance');\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nvar toIndex = require('./_to-index');\nvar gOPN = require('./_object-gopn').f;\nvar dP = require('./_object-dp').f;\nvar arrayFill = require('./_array-fill');\nvar setToStringTag = require('./_set-to-string-tag');\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length!';\nvar WRONG_INDEX = 'Wrong index!';\nvar $ArrayBuffer = global[ARRAY_BUFFER];\nvar $DataView = global[DATA_VIEW];\nvar Math = global.Math;\nvar RangeError = global.RangeError;\n// eslint-disable-next-line no-shadow-restricted-names\nvar Infinity = global.Infinity;\nvar BaseBuffer = $ArrayBuffer;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\nvar BUFFER = 'buffer';\nvar BYTE_LENGTH = 'byteLength';\nvar BYTE_OFFSET = 'byteOffset';\nvar $BUFFER = DESCRIPTORS ? '_b' : BUFFER;\nvar $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH;\nvar $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET;\n\n// IEEE754 conversions based on https://github.com/feross/ieee754\nfunction packIEEE754(value, mLen, nBytes) {\n var buffer = new Array(nBytes);\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var i = 0;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n var e, m, c;\n value = abs(value);\n // eslint-disable-next-line no-self-compare\n if (value != value || value === Infinity) {\n // eslint-disable-next-line no-self-compare\n m = value != value ? 1 : 0;\n e = eMax;\n } else {\n e = floor(log(value) / LN2);\n if (value * (c = pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * pow(2, eBias - 1) * pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8);\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8);\n buffer[--i] |= s * 128;\n return buffer;\n}\nfunction unpackIEEE754(buffer, mLen, nBytes) {\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = eLen - 7;\n var i = nBytes - 1;\n var s = buffer[i--];\n var e = s & 127;\n var m;\n s >>= 7;\n for (; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8);\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8);\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : s ? -Infinity : Infinity;\n } else {\n m = m + pow(2, mLen);\n e = e - eBias;\n } return (s ? -1 : 1) * m * pow(2, e - mLen);\n}\n\nfunction unpackI32(bytes) {\n return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];\n}\nfunction packI8(it) {\n return [it & 0xff];\n}\nfunction packI16(it) {\n return [it & 0xff, it >> 8 & 0xff];\n}\nfunction packI32(it) {\n return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff];\n}\nfunction packF64(it) {\n return packIEEE754(it, 52, 8);\n}\nfunction packF32(it) {\n return packIEEE754(it, 23, 4);\n}\n\nfunction addGetter(C, key, internal) {\n dP(C[PROTOTYPE], key, { get: function () { return this[internal]; } });\n}\n\nfunction get(view, bytes, index, isLittleEndian) {\n var numIndex = +index;\n var intIndex = toIndex(numIndex);\n if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b;\n var start = intIndex + view[$OFFSET];\n var pack = store.slice(start, start + bytes);\n return isLittleEndian ? pack : pack.reverse();\n}\nfunction set(view, bytes, index, conversion, value, isLittleEndian) {\n var numIndex = +index;\n var intIndex = toIndex(numIndex);\n if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b;\n var start = intIndex + view[$OFFSET];\n var pack = conversion(+value);\n for (var i = 0; i < bytes; i++) store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];\n}\n\nif (!$typed.ABV) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n this._b = arrayFill.call(new Array(byteLength), 0);\n this[$LENGTH] = byteLength;\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = buffer[$LENGTH];\n var offset = toInteger(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset!');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n this[$BUFFER] = buffer;\n this[$OFFSET] = offset;\n this[$LENGTH] = byteLength;\n };\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, BYTE_LENGTH, '_l');\n addGetter($DataView, BUFFER, '_b');\n addGetter($DataView, BYTE_LENGTH, '_l');\n addGetter($DataView, BYTE_OFFSET, '_o');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackI32(get(this, 4, byteOffset, arguments[1]));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packI8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packI8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packF32, value, arguments[2]);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packF64, value, arguments[2]);\n }\n });\n} else {\n if (!fails(function () {\n $ArrayBuffer(1);\n }) || !fails(function () {\n new $ArrayBuffer(-1); // eslint-disable-line no-new\n }) || fails(function () {\n new $ArrayBuffer(); // eslint-disable-line no-new\n new $ArrayBuffer(1.5); // eslint-disable-line no-new\n new $ArrayBuffer(NaN); // eslint-disable-line no-new\n return $ArrayBuffer.name != ARRAY_BUFFER;\n })) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new BaseBuffer(toIndex(length));\n };\n var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];\n for (var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, BaseBuffer[key]);\n }\n if (!LIBRARY) ArrayBufferProto.constructor = $ArrayBuffer;\n }\n // iOS Safari 7.x bug\n var view = new $DataView(new $ArrayBuffer(2));\n var $setInt8 = $DataView[PROTOTYPE].setInt8;\n view.setInt8(0, 2147483648);\n view.setInt8(1, 2147483649);\n if (view.getInt8(0) || !view.getInt8(1)) redefineAll($DataView[PROTOTYPE], {\n setInt8: function setInt8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, true);\n}\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\nhide($DataView[PROTOTYPE], $typed.VIEW, true);\nexports[ARRAY_BUFFER] = $ArrayBuffer;\nexports[DATA_VIEW] = $DataView;\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n","'use strict';\nvar toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n\nmodule.exports = function repeat(count) {\n var str = String(defined(this));\n var res = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError(\"Count can't be negative\");\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;\n return res;\n};\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","exports.f = require('./_wks');\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// 7.2.9 SameValue(x, y)\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","'use strict';\nvar aFunction = require('./_a-function');\nvar isObject = require('./_is-object');\nvar invoke = require('./_invoke');\nvar arraySlice = [].slice;\nvar factories = {};\n\nvar construct = function (F, len, args) {\n if (!(len in factories)) {\n for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');\n } return factories[len](F, args);\n};\n\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = arraySlice.call(arguments, 1);\n var bound = function (/* args... */) {\n var args = partArgs.concat(arraySlice.call(arguments));\n return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);\n };\n if (isObject(fn.prototype)) bound.prototype = fn.prototype;\n return bound;\n};\n","var $parseInt = require('./_global').parseInt;\nvar $trim = require('./_string-trim').trim;\nvar ws = require('./_string-ws');\nvar hex = /^[-+]?0[xX]/;\n\nmodule.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) {\n var string = $trim(String(str), 3);\n return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));\n} : $parseInt;\n","var $parseFloat = require('./_global').parseFloat;\nvar $trim = require('./_string-trim').trim;\n\nmodule.exports = 1 / $parseFloat(require('./_string-ws') + '-0') !== -Infinity ? function parseFloat(str) {\n var string = $trim(String(str), 3);\n var result = $parseFloat(string);\n return result === 0 && string.charAt(0) == '-' ? -0 : result;\n} : $parseFloat;\n","var cof = require('./_cof');\nmodule.exports = function (it, msg) {\n if (typeof it != 'number' && cof(it) != 'Number') throw TypeError(msg);\n return +it;\n};\n","// 20.1.2.3 Number.isInteger(number)\nvar isObject = require('./_is-object');\nvar floor = Math.floor;\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","// 20.2.2.20 Math.log1p(x)\nmodule.exports = Math.log1p || function log1p(x) {\n return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);\n};\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n","var aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar toLength = require('./_to-length');\n\nmodule.exports = function (that, callbackfn, aLen, memo, isRight) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IObject(O);\n var length = toLength(O.length);\n var index = isRight ? length - 1 : 0;\n var i = isRight ? -1 : 1;\n if (aLen < 2) for (;;) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (isRight ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;isRight ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n};\n","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\n\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","'use strict';\nvar regexpExec = require('./_regexp-exec');\nrequire('./_export')({\n target: 'RegExp',\n proto: true,\n forced: regexpExec !== /./.exec\n}, {\n exec: regexpExec\n});\n","// 21.2.5.3 get RegExp.prototype.flags()\nif (require('./_descriptors') && /./g.flags != 'g') require('./_object-dp').f(RegExp.prototype, 'flags', {\n configurable: true,\n get: require('./_flags')\n});\n","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n var promise = Promise.resolve(undefined);\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar MAP = 'Map';\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')(MAP, function (get) {\n return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = strong.getEntry(validate(this, MAP), key);\n return entry && entry.v;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);\n }\n}, strong, true);\n","'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return that._i[index];\n // frozen object case\n for (entry = that._f; entry; entry = entry.n) {\n if (entry.k == key) return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n entry.r = true;\n if (entry.p) entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = validate(this, NAME);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.n;\n var prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if (prev) prev.n = next;\n if (next) next.p = prev;\n if (that._f == entry) that._f = next;\n if (that._l == entry) that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n validate(this, NAME);\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.n : this._f) {\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(validate(this, NAME), key);\n }\n });\n if (DESCRIPTORS) dP(C.prototype, 'size', {\n get: function () {\n return validate(this, NAME)[SIZE];\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var entry = getEntry(that, key);\n var prev, index;\n // change existing entry\n if (entry) {\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if (!that._f) that._f = entry;\n if (prev) prev.n = entry;\n that[SIZE]++;\n // add to index\n if (index !== 'F') that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function (C, NAME, IS_MAP) {\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function (iterated, kind) {\n this._t = validate(iterated, NAME); // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function () {\n var that = this;\n var kind = that._k;\n var entry = that._l;\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n // get next entry\n if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if (kind == 'keys') return step(0, entry.k);\n if (kind == 'values') return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar SET = 'Set';\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')(SET, function (get) {\n return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);\n }\n}, strong);\n","'use strict';\nvar each = require('./_array-methods')(0);\nvar redefine = require('./_redefine');\nvar meta = require('./_meta');\nvar assign = require('./_object-assign');\nvar weak = require('./_collection-weak');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar validate = require('./_validate-collection');\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar tmp = {};\nvar InternalMap;\n\nvar wrapper = function (get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n if (isObject(key)) {\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif (fails(function () { return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; })) {\n InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function (key) {\n var proto = $WeakMap.prototype;\n var method = proto[key];\n redefine(proto, key, function (a, b) {\n // store frozen objects on internal weakmap shim\n if (isObject(a) && !isExtensible(a)) {\n if (!this._f) this._f = new InternalMap();\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}\n","'use strict';\nvar redefineAll = require('./_redefine-all');\nvar getWeak = require('./_meta').getWeak;\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar createArrayMethod = require('./_array-methods');\nvar $has = require('./_has');\nvar validate = require('./_validate-collection');\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function () {\n this.a = [];\n};\nvar findUncaughtFrozen = function (store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function (key) {\n var index = arrayFindIndex(this.a, function (it) {\n return it[0] === key;\n });\n if (~index) this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n","// https://tc39.github.io/ecma262/#sec-toindex\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length!');\n return length;\n};\n","// all object keys, includes non-enumerable and symbols\nvar gOPN = require('./_object-gopn');\nvar gOPS = require('./_object-gops');\nvar anObject = require('./_an-object');\nvar Reflect = require('./_global').Reflect;\nmodule.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {\n var keys = gOPN.f(anObject(it));\n var getSymbols = gOPS.f;\n return getSymbols ? keys.concat(getSymbols(it)) : keys;\n};\n","// 20.2.2.16 Math.fround(x)\nvar sign = require('./_math-sign');\nvar pow = Math.pow;\nvar EPSILON = pow(2, -52);\nvar EPSILON32 = pow(2, -23);\nvar MAX32 = pow(2, 127) * (2 - EPSILON32);\nvar MIN32 = pow(2, -126);\n\nvar roundTiesToEven = function (n) {\n return n + 1 / EPSILON - 1 / EPSILON;\n};\n\nmodule.exports = Math.fround || function fround(x) {\n var $abs = Math.abs(x);\n var $sign = sign(x);\n var a, result;\n if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;\n a = (1 + EPSILON32 / EPSILON) * $abs;\n result = a - (a - $abs);\n // eslint-disable-next-line no-self-compare\n if (result > MAX32 || result != result) return $sign * Infinity;\n return $sign * result;\n};\n","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var forOf = require('./_for-of');\n\nmodule.exports = function (iter, ITERATOR) {\n var result = [];\n forOf(iter, false, result.push, result, ITERATOR);\n return result;\n};\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","var $export = require('./_export');\n// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperties: require('./_object-dps') });\n","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n","// 19.1.2.7 Object.getOwnPropertyNames(O)\nrequire('./_object-sap')('getOwnPropertyNames', function () {\n return require('./_object-gopn-ext').f;\n});\n","// 19.1.2.5 Object.freeze(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('freeze', function ($freeze) {\n return function freeze(it) {\n return $freeze && isObject(it) ? $freeze(meta(it)) : it;\n };\n});\n","// 19.1.2.17 Object.seal(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('seal', function ($seal) {\n return function seal(it) {\n return $seal && isObject(it) ? $seal(meta(it)) : it;\n };\n});\n","// 19.1.2.15 Object.preventExtensions(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('preventExtensions', function ($preventExtensions) {\n return function preventExtensions(it) {\n return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;\n };\n});\n","// 19.1.2.12 Object.isFrozen(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isFrozen', function ($isFrozen) {\n return function isFrozen(it) {\n return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;\n };\n});\n","// 19.1.2.13 Object.isSealed(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isSealed', function ($isSealed) {\n return function isSealed(it) {\n return isObject(it) ? $isSealed ? $isSealed(it) : false : true;\n };\n});\n","// 19.1.2.11 Object.isExtensible(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isExtensible', function ($isExtensible) {\n return function isExtensible(it) {\n return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;\n };\n});\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","// 19.1.3.10 Object.is(value1, value2)\nvar $export = require('./_export');\n$export($export.S, 'Object', { is: require('./_same-value') });\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n","// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)\nvar $export = require('./_export');\n\n$export($export.P, 'Function', { bind: require('./_bind') });\n","var dP = require('./_object-dp').f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || require('./_descriptors') && dP(FProto, NAME, {\n configurable: true,\n get: function () {\n try {\n return ('' + this).match(nameRE)[1];\n } catch (e) {\n return '';\n }\n }\n});\n","'use strict';\nvar isObject = require('./_is-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar HAS_INSTANCE = require('./_wks')('hasInstance');\nvar FunctionProto = Function.prototype;\n// 19.2.3.6 Function.prototype[@@hasInstance](V)\nif (!(HAS_INSTANCE in FunctionProto)) require('./_object-dp').f(FunctionProto, HAS_INSTANCE, { value: function (O) {\n if (typeof this != 'function' || !isObject(O)) return false;\n if (!isObject(this.prototype)) return O instanceof this;\n // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:\n while (O = getPrototypeOf(O)) if (this.prototype === O) return true;\n return false;\n} });\n","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 18.2.5 parseInt(string, radix)\n$export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt });\n","var $export = require('./_export');\nvar $parseFloat = require('./_parse-float');\n// 18.2.4 parseFloat(string)\n$export($export.G + $export.F * (parseFloat != $parseFloat), { parseFloat: $parseFloat });\n","'use strict';\nvar global = require('./_global');\nvar has = require('./_has');\nvar cof = require('./_cof');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar toPrimitive = require('./_to-primitive');\nvar fails = require('./_fails');\nvar gOPN = require('./_object-gopn').f;\nvar gOPD = require('./_object-gopd').f;\nvar dP = require('./_object-dp').f;\nvar $trim = require('./_string-trim').trim;\nvar NUMBER = 'Number';\nvar $Number = global[NUMBER];\nvar Base = $Number;\nvar proto = $Number.prototype;\n// Opera ~12 has broken Object#toString\nvar BROKEN_COF = cof(require('./_object-create')(proto)) == NUMBER;\nvar TRIM = 'trim' in String.prototype;\n\n// 7.1.3 ToNumber(argument)\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n if (typeof it == 'string' && it.length > 2) {\n it = TRIM ? it.trim() : $trim(it, 3);\n var first = it.charCodeAt(0);\n var third, radix, maxCode;\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i\n default: return +it;\n }\n for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {\n code = digits.charCodeAt(i);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nif (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {\n $Number = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var that = this;\n return that instanceof $Number\n // check on 1..constructor(foo) case\n && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)\n ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);\n };\n for (var keys = require('./_descriptors') ? gOPN(Base) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES6 (in case, if modules with ES6 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(Base, key = keys[j]) && !has($Number, key)) {\n dP($Number, key, gOPD(Base, key));\n }\n }\n $Number.prototype = proto;\n proto.constructor = $Number;\n require('./_redefine')(global, NUMBER, $Number);\n}\n","'use strict';\nvar $export = require('./_export');\nvar toInteger = require('./_to-integer');\nvar aNumberValue = require('./_a-number-value');\nvar repeat = require('./_string-repeat');\nvar $toFixed = 1.0.toFixed;\nvar floor = Math.floor;\nvar data = [0, 0, 0, 0, 0, 0];\nvar ERROR = 'Number.toFixed: incorrect invocation!';\nvar ZERO = '0';\n\nvar multiply = function (n, c) {\n var i = -1;\n var c2 = c;\n while (++i < 6) {\n c2 += n * data[i];\n data[i] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\nvar divide = function (n) {\n var i = 6;\n var c = 0;\n while (--i >= 0) {\n c += data[i];\n data[i] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\nvar numToString = function () {\n var i = 6;\n var s = '';\n while (--i >= 0) {\n if (s !== '' || i === 0 || data[i] !== 0) {\n var t = String(data[i]);\n s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;\n }\n } return s;\n};\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\n$export($export.P + $export.F * (!!$toFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !require('./_fails')(function () {\n // V8 ~ Android 4.3-\n $toFixed.call({});\n})), 'Number', {\n toFixed: function toFixed(fractionDigits) {\n var x = aNumberValue(this, ERROR);\n var f = toInteger(fractionDigits);\n var s = '';\n var m = ZERO;\n var e, z, j, k;\n if (f < 0 || f > 20) throw RangeError(ERROR);\n // eslint-disable-next-line no-self-compare\n if (x != x) return 'NaN';\n if (x <= -1e21 || x >= 1e21) return String(x);\n if (x < 0) {\n s = '-';\n x = -x;\n }\n if (x > 1e-21) {\n e = log(x * pow(2, 69, 1)) - 69;\n z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = f;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n m = numToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n m = numToString() + repeat.call(ZERO, f);\n }\n }\n if (f > 0) {\n k = m.length;\n m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));\n } else {\n m = s + m;\n } return m;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $fails = require('./_fails');\nvar aNumberValue = require('./_a-number-value');\nvar $toPrecision = 1.0.toPrecision;\n\n$export($export.P + $export.F * ($fails(function () {\n // IE7-\n return $toPrecision.call(1, undefined) !== '1';\n}) || !$fails(function () {\n // V8 ~ Android 4.3-\n $toPrecision.call({});\n})), 'Number', {\n toPrecision: function toPrecision(precision) {\n var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');\n return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);\n }\n});\n","// 20.1.2.1 Number.EPSILON\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { EPSILON: Math.pow(2, -52) });\n","// 20.1.2.2 Number.isFinite(number)\nvar $export = require('./_export');\nvar _isFinite = require('./_global').isFinite;\n\n$export($export.S, 'Number', {\n isFinite: function isFinite(it) {\n return typeof it == 'number' && _isFinite(it);\n }\n});\n","// 20.1.2.3 Number.isInteger(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { isInteger: require('./_is-integer') });\n","// 20.1.2.4 Number.isNaN(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare\n return number != number;\n }\n});\n","// 20.1.2.5 Number.isSafeInteger(number)\nvar $export = require('./_export');\nvar isInteger = require('./_is-integer');\nvar abs = Math.abs;\n\n$export($export.S, 'Number', {\n isSafeInteger: function isSafeInteger(number) {\n return isInteger(number) && abs(number) <= 0x1fffffffffffff;\n }\n});\n","// 20.1.2.6 Number.MAX_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff });\n","// 20.1.2.10 Number.MIN_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff });\n","var $export = require('./_export');\nvar $parseFloat = require('./_parse-float');\n// 20.1.2.12 Number.parseFloat(string)\n$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat });\n","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 20.1.2.13 Number.parseInt(string, radix)\n$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt });\n","// 20.2.2.3 Math.acosh(x)\nvar $export = require('./_export');\nvar log1p = require('./_math-log1p');\nvar sqrt = Math.sqrt;\nvar $acosh = Math.acosh;\n\n$export($export.S + $export.F * !($acosh\n // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n && Math.floor($acosh(Number.MAX_VALUE)) == 710\n // Tor Browser bug: Math.acosh(Infinity) -> NaN\n && $acosh(Infinity) == Infinity\n), 'Math', {\n acosh: function acosh(x) {\n return (x = +x) < 1 ? NaN : x > 94906265.62425156\n ? Math.log(x) + Math.LN2\n : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));\n }\n});\n","// 20.2.2.5 Math.asinh(x)\nvar $export = require('./_export');\nvar $asinh = Math.asinh;\n\nfunction asinh(x) {\n return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));\n}\n\n// Tor Browser bug: Math.asinh(0) -> -0\n$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh });\n","// 20.2.2.7 Math.atanh(x)\nvar $export = require('./_export');\nvar $atanh = Math.atanh;\n\n// Tor Browser bug: Math.atanh(-0) -> 0\n$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {\n atanh: function atanh(x) {\n return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;\n }\n});\n","// 20.2.2.9 Math.cbrt(x)\nvar $export = require('./_export');\nvar sign = require('./_math-sign');\n\n$export($export.S, 'Math', {\n cbrt: function cbrt(x) {\n return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);\n }\n});\n","// 20.2.2.11 Math.clz32(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n clz32: function clz32(x) {\n return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;\n }\n});\n","// 20.2.2.12 Math.cosh(x)\nvar $export = require('./_export');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n cosh: function cosh(x) {\n return (exp(x = +x) + exp(-x)) / 2;\n }\n});\n","// 20.2.2.14 Math.expm1(x)\nvar $export = require('./_export');\nvar $expm1 = require('./_math-expm1');\n\n$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 });\n","// 20.2.2.16 Math.fround(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { fround: require('./_math-fround') });\n","// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])\nvar $export = require('./_export');\nvar abs = Math.abs;\n\n$export($export.S, 'Math', {\n hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * Math.sqrt(sum);\n }\n});\n","// 20.2.2.18 Math.imul(x, y)\nvar $export = require('./_export');\nvar $imul = Math.imul;\n\n// some WebKit versions fails with big numbers, some has wrong arity\n$export($export.S + $export.F * require('./_fails')(function () {\n return $imul(0xffffffff, 5) != -5 || $imul.length != 2;\n}), 'Math', {\n imul: function imul(x, y) {\n var UINT16 = 0xffff;\n var xn = +x;\n var yn = +y;\n var xl = UINT16 & xn;\n var yl = UINT16 & yn;\n return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n }\n});\n","// 20.2.2.21 Math.log10(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log10: function log10(x) {\n return Math.log(x) * Math.LOG10E;\n }\n});\n","// 20.2.2.20 Math.log1p(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { log1p: require('./_math-log1p') });\n","// 20.2.2.22 Math.log2(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log2: function log2(x) {\n return Math.log(x) / Math.LN2;\n }\n});\n","// 20.2.2.28 Math.sign(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { sign: require('./_math-sign') });\n","// 20.2.2.30 Math.sinh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n// V8 near Chromium 38 has a problem with very small numbers\n$export($export.S + $export.F * require('./_fails')(function () {\n return !Math.sinh(-2e-17) != -2e-17;\n}), 'Math', {\n sinh: function sinh(x) {\n return Math.abs(x = +x) < 1\n ? (expm1(x) - expm1(-x)) / 2\n : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);\n }\n});\n","// 20.2.2.33 Math.tanh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n tanh: function tanh(x) {\n var a = expm1(x = +x);\n var b = expm1(-x);\n return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));\n }\n});\n","// 20.2.2.34 Math.trunc(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n trunc: function trunc(it) {\n return (it > 0 ? Math.floor : Math.ceil)(it);\n }\n});\n","var $export = require('./_export');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar fromCharCode = String.fromCharCode;\nvar $fromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\n$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n // 21.1.2.2 String.fromCodePoint(...codePoints)\n fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n var res = [];\n var aLen = arguments.length;\n var i = 0;\n var code;\n while (aLen > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');\n res.push(code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)\n );\n } return res.join('');\n }\n});\n","var $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\n\n$export($export.S, 'String', {\n // 21.1.2.4 String.raw(callSite, ...substitutions)\n raw: function raw(callSite) {\n var tpl = toIObject(callSite.raw);\n var len = toLength(tpl.length);\n var aLen = arguments.length;\n var res = [];\n var i = 0;\n while (len > i) {\n res.push(String(tpl[i++]));\n if (i < aLen) res.push(String(arguments[i]));\n } return res.join('');\n }\n});\n","'use strict';\n// 21.1.3.25 String.prototype.trim()\nrequire('./_string-trim')('trim', function ($trim) {\n return function trim() {\n return $trim(this, 3);\n };\n});\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\nvar $export = require('./_export');\nvar $at = require('./_string-at')(false);\n$export($export.P, 'String', {\n // 21.1.3.3 String.prototype.codePointAt(pos)\n codePointAt: function codePointAt(pos) {\n return $at(this, pos);\n }\n});\n","// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar ENDS_WITH = 'endsWith';\nvar $endsWith = ''[ENDS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(ENDS_WITH), 'String', {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = context(this, searchString, ENDS_WITH);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n'use strict';\nvar $export = require('./_export');\nvar context = require('./_string-context');\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var $export = require('./_export');\n\n$export($export.P, 'String', {\n // 21.1.3.13 String.prototype.repeat(count)\n repeat: require('./_string-repeat')\n});\n","// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","'use strict';\n// B.2.3.2 String.prototype.anchor(name)\nrequire('./_string-html')('anchor', function (createHTML) {\n return function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n };\n});\n","'use strict';\n// B.2.3.3 String.prototype.big()\nrequire('./_string-html')('big', function (createHTML) {\n return function big() {\n return createHTML(this, 'big', '', '');\n };\n});\n","'use strict';\n// B.2.3.4 String.prototype.blink()\nrequire('./_string-html')('blink', function (createHTML) {\n return function blink() {\n return createHTML(this, 'blink', '', '');\n };\n});\n","'use strict';\n// B.2.3.5 String.prototype.bold()\nrequire('./_string-html')('bold', function (createHTML) {\n return function bold() {\n return createHTML(this, 'b', '', '');\n };\n});\n","'use strict';\n// B.2.3.6 String.prototype.fixed()\nrequire('./_string-html')('fixed', function (createHTML) {\n return function fixed() {\n return createHTML(this, 'tt', '', '');\n };\n});\n","'use strict';\n// B.2.3.7 String.prototype.fontcolor(color)\nrequire('./_string-html')('fontcolor', function (createHTML) {\n return function fontcolor(color) {\n return createHTML(this, 'font', 'color', color);\n };\n});\n","'use strict';\n// B.2.3.8 String.prototype.fontsize(size)\nrequire('./_string-html')('fontsize', function (createHTML) {\n return function fontsize(size) {\n return createHTML(this, 'font', 'size', size);\n };\n});\n","'use strict';\n// B.2.3.9 String.prototype.italics()\nrequire('./_string-html')('italics', function (createHTML) {\n return function italics() {\n return createHTML(this, 'i', '', '');\n };\n});\n","'use strict';\n// B.2.3.10 String.prototype.link(url)\nrequire('./_string-html')('link', function (createHTML) {\n return function link(url) {\n return createHTML(this, 'a', 'href', url);\n };\n});\n","'use strict';\n// B.2.3.11 String.prototype.small()\nrequire('./_string-html')('small', function (createHTML) {\n return function small() {\n return createHTML(this, 'small', '', '');\n };\n});\n","'use strict';\n// B.2.3.12 String.prototype.strike()\nrequire('./_string-html')('strike', function (createHTML) {\n return function strike() {\n return createHTML(this, 'strike', '', '');\n };\n});\n","'use strict';\n// B.2.3.13 String.prototype.sub()\nrequire('./_string-html')('sub', function (createHTML) {\n return function sub() {\n return createHTML(this, 'sub', '', '');\n };\n});\n","'use strict';\n// B.2.3.14 String.prototype.sup()\nrequire('./_string-html')('sup', function (createHTML) {\n return function sup() {\n return createHTML(this, 'sup', '', '');\n };\n});\n","// 20.3.3.1 / 15.9.4.4 Date.now()\nvar $export = require('./_export');\n\n$export($export.S, 'Date', { now: function () { return new Date().getTime(); } });\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar toPrimitive = require('./_to-primitive');\n\n$export($export.P + $export.F * require('./_fails')(function () {\n return new Date(NaN).toJSON() !== null\n || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;\n}), 'Date', {\n // eslint-disable-next-line no-unused-vars\n toJSON: function toJSON(key) {\n var O = toObject(this);\n var pv = toPrimitive(O);\n return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();\n }\n});\n","// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar $export = require('./_export');\nvar toISOString = require('./_date-to-iso-string');\n\n// PhantomJS / old WebKit has a broken implementations\n$export($export.P + $export.F * (Date.prototype.toISOString !== toISOString), 'Date', {\n toISOString: toISOString\n});\n","'use strict';\n// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar fails = require('./_fails');\nvar getTime = Date.prototype.getTime;\nvar $toISOString = Date.prototype.toISOString;\n\nvar lz = function (num) {\n return num > 9 ? num : '0' + num;\n};\n\n// PhantomJS / old WebKit has a broken implementations\nmodule.exports = (fails(function () {\n return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';\n}) || !fails(function () {\n $toISOString.call(new Date(NaN));\n})) ? function toISOString() {\n if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value');\n var d = this;\n var y = d.getUTCFullYear();\n var m = d.getUTCMilliseconds();\n var s = y < 0 ? '-' : y > 9999 ? '+' : '';\n return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +\n '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +\n 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +\n ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';\n} : $toISOString;\n","var DateProto = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar $toString = DateProto[TO_STRING];\nvar getTime = DateProto.getTime;\nif (new Date(NaN) + '' != INVALID_DATE) {\n require('./_redefine')(DateProto, TO_STRING, function toString() {\n var value = getTime.call(this);\n // eslint-disable-next-line no-self-compare\n return value === value ? $toString.call(this) : INVALID_DATE;\n });\n}\n","var TO_PRIMITIVE = require('./_wks')('toPrimitive');\nvar proto = Date.prototype;\n\nif (!(TO_PRIMITIVE in proto)) require('./_hide')(proto, TO_PRIMITIVE, require('./_date-to-primitive'));\n","'use strict';\nvar anObject = require('./_an-object');\nvar toPrimitive = require('./_to-primitive');\nvar NUMBER = 'number';\n\nmodule.exports = function (hint) {\n if (hint !== 'string' && hint !== NUMBER && hint !== 'default') throw TypeError('Incorrect hint');\n return toPrimitive(anObject(this), hint != NUMBER);\n};\n","// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = require('./_export');\n\n$export($export.S, 'Array', { isArray: require('./_is-array') });\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar createProperty = require('./_create-property');\n\n// WebKit Array.of isn't generic\n$export($export.S + $export.F * require('./_fails')(function () {\n function F() { /* empty */ }\n return !(Array.of.call(F) instanceof F);\n}), 'Array', {\n // 22.1.2.3 Array.of( ...items)\n of: function of(/* ...args */) {\n var index = 0;\n var aLen = arguments.length;\n var result = new (typeof this == 'function' ? this : Array)(aLen);\n while (aLen > index) createProperty(result, index, arguments[index++]);\n result.length = aLen;\n return result;\n }\n});\n","'use strict';\n// 22.1.3.13 Array.prototype.join(separator)\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar arrayJoin = [].join;\n\n// fallback for not array-like strings\n$export($export.P + $export.F * (require('./_iobject') != Object || !require('./_strict-method')(arrayJoin)), 'Array', {\n join: function join(separator) {\n return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar html = require('./_html');\nvar cof = require('./_cof');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nvar arraySlice = [].slice;\n\n// fallback for not array-like ES3 strings and DOM objects\n$export($export.P + $export.F * require('./_fails')(function () {\n if (html) arraySlice.call(html);\n}), 'Array', {\n slice: function slice(begin, end) {\n var len = toLength(this.length);\n var klass = cof(this);\n end = end === undefined ? len : end;\n if (klass == 'Array') return arraySlice.call(this, begin, end);\n var start = toAbsoluteIndex(begin, len);\n var upTo = toAbsoluteIndex(end, len);\n var size = toLength(upTo - start);\n var cloned = new Array(size);\n var i = 0;\n for (; i < size; i++) cloned[i] = klass == 'String'\n ? this.charAt(start + i)\n : this[start + i];\n return cloned;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar fails = require('./_fails');\nvar $sort = [].sort;\nvar test = [1, 2, 3];\n\n$export($export.P + $export.F * (fails(function () {\n // IE8-\n test.sort(undefined);\n}) || !fails(function () {\n // V8 bug\n test.sort(null);\n // Old WebKit\n}) || !require('./_strict-method')($sort)), 'Array', {\n // 22.1.3.25 Array.prototype.sort(comparefn)\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? $sort.call(toObject(this))\n : $sort.call(toObject(this), aFunction(comparefn));\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $forEach = require('./_array-methods')(0);\nvar STRICT = require('./_strict-method')([].forEach, true);\n\n$export($export.P + $export.F * !STRICT, 'Array', {\n // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])\n forEach: function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments[1]);\n }\n});\n","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","'use strict';\nvar $export = require('./_export');\nvar $map = require('./_array-methods')(1);\n\n$export($export.P + $export.F * !require('./_strict-method')([].map, true), 'Array', {\n // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $filter = require('./_array-methods')(2);\n\n$export($export.P + $export.F * !require('./_strict-method')([].filter, true), 'Array', {\n // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $some = require('./_array-methods')(3);\n\n$export($export.P + $export.F * !require('./_strict-method')([].some, true), 'Array', {\n // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $every = require('./_array-methods')(4);\n\n$export($export.P + $export.F * !require('./_strict-method')([].every, true), 'Array', {\n // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])\n every: function every(callbackfn /* , thisArg */) {\n return $every(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduce, true), 'Array', {\n // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], false);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduceRight, true), 'Array', {\n // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])\n reduceRight: function reduceRight(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], true);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $indexOf = require('./_array-includes')(false);\nvar $native = [].indexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? $native.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nvar $native = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])\n lastIndexOf: function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0;\n var O = toIObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O) if (O[index] === searchElement) return index || 0;\n return -1;\n }\n});\n","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { copyWithin: require('./_array-copy-within') });\n\nrequire('./_add-to-unscopables')('copyWithin');\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { fill: require('./_array-fill') });\n\nrequire('./_add-to-unscopables')('fill');\n","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(5);\nvar KEY = 'find';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","'use strict';\n// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(6);\nvar KEY = 'findIndex';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","require('./_set-species')('Array');\n","var global = require('./_global');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar dP = require('./_object-dp').f;\nvar gOPN = require('./_object-gopn').f;\nvar isRegExp = require('./_is-regexp');\nvar $flags = require('./_flags');\nvar $RegExp = global.RegExp;\nvar Base = $RegExp;\nvar proto = $RegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n// \"new\" creates a new object, old webkit buggy here\nvar CORRECT_NEW = new $RegExp(re1) !== re1;\n\nif (require('./_descriptors') && (!CORRECT_NEW || require('./_fails')(function () {\n re2[require('./_wks')('match')] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';\n}))) {\n $RegExp = function RegExp(p, f) {\n var tiRE = this instanceof $RegExp;\n var piRE = isRegExp(p);\n var fiU = f === undefined;\n return !tiRE && piRE && p.constructor === $RegExp && fiU ? p\n : inheritIfRequired(CORRECT_NEW\n ? new Base(piRE && !fiU ? p.source : p, f)\n : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)\n , tiRE ? this : proto, $RegExp);\n };\n var proxy = function (key) {\n key in $RegExp || dP($RegExp, key, {\n configurable: true,\n get: function () { return Base[key]; },\n set: function (it) { Base[key] = it; }\n });\n };\n for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);\n proto.constructor = $RegExp;\n $RegExp.prototype = proto;\n require('./_redefine')(global, 'RegExp', $RegExp);\n}\n\nrequire('./_set-species')('RegExp');\n","'use strict';\nrequire('./es6.regexp.flags');\nvar anObject = require('./_an-object');\nvar $flags = require('./_flags');\nvar DESCRIPTORS = require('./_descriptors');\nvar TO_STRING = 'toString';\nvar $toString = /./[TO_STRING];\n\nvar define = function (fn) {\n require('./_redefine')(RegExp.prototype, TO_STRING, fn, true);\n};\n\n// 21.2.5.14 RegExp.prototype.toString()\nif (require('./_fails')(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {\n define(function toString() {\n var R = anObject(this);\n return '/'.concat(R.source, '/',\n 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);\n });\n// FF44- RegExp#toString has a wrong name\n} else if ($toString.name != TO_STRING) {\n define(function toString() {\n return $toString.call(this);\n });\n}\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@match logic\nrequire('./_fix-re-wks')('match', 1, function (defined, MATCH, $match, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[MATCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative($match, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n if (!rx.global) return regExpExec(rx, S);\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar toInteger = require('./_to-integer');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nrequire('./_fix-re-wks')('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative($replace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return $replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar sameValue = require('./_same-value');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@search logic\nrequire('./_fix-re-wks')('search', 1, function (defined, SEARCH, $search, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[SEARCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative($search, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","'use strict';\n\nvar isRegExp = require('./_is-regexp');\nvar anObject = require('./_an-object');\nvar speciesConstructor = require('./_species-constructor');\nvar advanceStringIndex = require('./_advance-string-index');\nvar toLength = require('./_to-length');\nvar callRegExpExec = require('./_regexp-exec-abstract');\nvar regexpExec = require('./_regexp-exec');\nvar $min = Math.min;\nvar $push = [].push;\nvar $SPLIT = 'split';\nvar LENGTH = 'length';\nvar LAST_INDEX = 'lastIndex';\n\n// eslint-disable-next-line no-empty\nvar SUPPORTS_Y = !!(function () { try { return new RegExp('x', 'y'); } catch (e) {} })();\n\n// @@split logic\nrequire('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n ''[$SPLIT](/.?/)[LENGTH]\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(this);\n if (separator === undefined && limit === 0) return [];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) return $split.call(string, separator, limit);\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n var splitLimit = limit === undefined ? 4294967295 : limit >>> 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy[LAST_INDEX];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if (output[LENGTH] >= splitLimit) break;\n }\n if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n }\n if (lastLastIndex === string[LENGTH]) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);\n };\n } else {\n internalSplit = $split;\n }\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = defined(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? 0xffffffff : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n});\n","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar userAgent = require('./_user-agent');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function')\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n","'use strict';\nvar weak = require('./_collection-weak');\nvar validate = require('./_validate-collection');\nvar WEAK_SET = 'WeakSet';\n\n// 23.4 WeakSet Objects\nrequire('./_collection')(WEAK_SET, function (get) {\n return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value) {\n return weak.def(validate(this, WEAK_SET), value, true);\n }\n}, weak, false, true);\n","'use strict';\nvar $export = require('./_export');\nvar $typed = require('./_typed');\nvar buffer = require('./_typed-buffer');\nvar anObject = require('./_an-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nvar isObject = require('./_is-object');\nvar ArrayBuffer = require('./_global').ArrayBuffer;\nvar speciesConstructor = require('./_species-constructor');\nvar $ArrayBuffer = buffer.ArrayBuffer;\nvar $DataView = buffer.DataView;\nvar $isView = $typed.ABV && ArrayBuffer.isView;\nvar $slice = $ArrayBuffer.prototype.slice;\nvar VIEW = $typed.VIEW;\nvar ARRAY_BUFFER = 'ArrayBuffer';\n\n$export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), { ArrayBuffer: $ArrayBuffer });\n\n$export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {\n // 24.1.3.1 ArrayBuffer.isView(arg)\n isView: function isView(it) {\n return $isView && $isView(it) || isObject(it) && VIEW in it;\n }\n});\n\n$export($export.P + $export.U + $export.F * require('./_fails')(function () {\n return !new $ArrayBuffer(2).slice(1, undefined).byteLength;\n}), ARRAY_BUFFER, {\n // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)\n slice: function slice(start, end) {\n if ($slice !== undefined && end === undefined) return $slice.call(anObject(this), start); // FF fix\n var len = anObject(this).byteLength;\n var first = toAbsoluteIndex(start, len);\n var fin = toAbsoluteIndex(end === undefined ? len : end, len);\n var result = new (speciesConstructor(this, $ArrayBuffer))(toLength(fin - first));\n var viewS = new $DataView(this);\n var viewT = new $DataView(result);\n var index = 0;\n while (first < fin) {\n viewT.setUint8(index++, viewS.getUint8(first++));\n } return result;\n }\n});\n\nrequire('./_set-species')(ARRAY_BUFFER);\n","var $export = require('./_export');\n$export($export.G + $export.W + $export.F * !require('./_typed').ABV, {\n DataView: require('./_typed-buffer').DataView\n});\n","require('./_typed-array')('Int8', 1, function (init) {\n return function Int8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint8', 1, function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint8', 1, function (init) {\n return function Uint8ClampedArray(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n}, true);\n","require('./_typed-array')('Int16', 2, function (init) {\n return function Int16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint16', 2, function (init) {\n return function Uint16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Int32', 4, function (init) {\n return function Int32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint32', 4, function (init) {\n return function Uint32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Float32', 4, function (init) {\n return function Float32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Float64', 8, function (init) {\n return function Float64Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar rApply = (require('./_global').Reflect || {}).apply;\nvar fApply = Function.apply;\n// MS Edge argumentsList argument is optional\n$export($export.S + $export.F * !require('./_fails')(function () {\n rApply(function () { /* empty */ });\n}), 'Reflect', {\n apply: function apply(target, thisArgument, argumentsList) {\n var T = aFunction(target);\n var L = anObject(argumentsList);\n return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);\n }\n});\n","// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])\nvar $export = require('./_export');\nvar create = require('./_object-create');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar bind = require('./_bind');\nvar rConstruct = (require('./_global').Reflect || {}).construct;\n\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n rConstruct(function () { /* empty */ });\n});\n\n$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)\nvar dP = require('./_object-dp');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar toPrimitive = require('./_to-primitive');\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\n$export($export.S + $export.F * require('./_fails')(function () {\n // eslint-disable-next-line no-undef\n Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 });\n}), 'Reflect', {\n defineProperty: function defineProperty(target, propertyKey, attributes) {\n anObject(target);\n propertyKey = toPrimitive(propertyKey, true);\n anObject(attributes);\n try {\n dP.f(target, propertyKey, attributes);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.4 Reflect.deleteProperty(target, propertyKey)\nvar $export = require('./_export');\nvar gOPD = require('./_object-gopd').f;\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n deleteProperty: function deleteProperty(target, propertyKey) {\n var desc = gOPD(anObject(target), propertyKey);\n return desc && !desc.configurable ? false : delete target[propertyKey];\n }\n});\n","'use strict';\n// 26.1.5 Reflect.enumerate(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar Enumerate = function (iterated) {\n this._t = anObject(iterated); // target\n this._i = 0; // next index\n var keys = this._k = []; // keys\n var key;\n for (key in iterated) keys.push(key);\n};\nrequire('./_iter-create')(Enumerate, 'Object', function () {\n var that = this;\n var keys = that._k;\n var key;\n do {\n if (that._i >= keys.length) return { value: undefined, done: true };\n } while (!((key = keys[that._i++]) in that._t));\n return { value: key, done: false };\n});\n\n$export($export.S, 'Reflect', {\n enumerate: function enumerate(target) {\n return new Enumerate(target);\n }\n});\n","// 26.1.6 Reflect.get(target, propertyKey [, receiver])\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\n\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var desc, proto;\n if (anObject(target) === receiver) return target[propertyKey];\n if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value')\n ? desc.value\n : desc.get !== undefined\n ? desc.get.call(receiver)\n : undefined;\n if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);\n}\n\n$export($export.S, 'Reflect', { get: get });\n","// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)\nvar gOPD = require('./_object-gopd');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n return gOPD.f(anObject(target), propertyKey);\n }\n});\n","// 26.1.8 Reflect.getPrototypeOf(target)\nvar $export = require('./_export');\nvar getProto = require('./_object-gpo');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getPrototypeOf: function getPrototypeOf(target) {\n return getProto(anObject(target));\n }\n});\n","// 26.1.9 Reflect.has(target, propertyKey)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', {\n has: function has(target, propertyKey) {\n return propertyKey in target;\n }\n});\n","// 26.1.10 Reflect.isExtensible(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $isExtensible = Object.isExtensible;\n\n$export($export.S, 'Reflect', {\n isExtensible: function isExtensible(target) {\n anObject(target);\n return $isExtensible ? $isExtensible(target) : true;\n }\n});\n","// 26.1.11 Reflect.ownKeys(target)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', { ownKeys: require('./_own-keys') });\n","// 26.1.12 Reflect.preventExtensions(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $preventExtensions = Object.preventExtensions;\n\n$export($export.S, 'Reflect', {\n preventExtensions: function preventExtensions(target) {\n anObject(target);\n try {\n if ($preventExtensions) $preventExtensions(target);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])\nvar dP = require('./_object-dp');\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar createDesc = require('./_property-desc');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\n\nfunction set(target, propertyKey, V /* , receiver */) {\n var receiver = arguments.length < 4 ? target : arguments[3];\n var ownDesc = gOPD.f(anObject(target), propertyKey);\n var existingDescriptor, proto;\n if (!ownDesc) {\n if (isObject(proto = getPrototypeOf(target))) {\n return set(proto, propertyKey, V, receiver);\n }\n ownDesc = createDesc(0);\n }\n if (has(ownDesc, 'value')) {\n if (ownDesc.writable === false || !isObject(receiver)) return false;\n if (existingDescriptor = gOPD.f(receiver, propertyKey)) {\n if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;\n existingDescriptor.value = V;\n dP.f(receiver, propertyKey, existingDescriptor);\n } else dP.f(receiver, propertyKey, createDesc(0, V));\n return true;\n }\n return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);\n}\n\n$export($export.S, 'Reflect', { set: set });\n","// 26.1.14 Reflect.setPrototypeOf(target, proto)\nvar $export = require('./_export');\nvar setProto = require('./_set-proto');\n\nif (setProto) $export($export.S, 'Reflect', {\n setPrototypeOf: function setPrototypeOf(target, proto) {\n setProto.check(target, proto);\n try {\n setProto.set(target, proto);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar ordinaryDefineOwnMetadata = metadata.set;\n\nmetadata.exp({ defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey) {\n ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar getOrCreateMetadataMap = metadata.map;\nvar store = metadata.store;\n\nmetadata.exp({ deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) {\n var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2]);\n var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);\n if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false;\n if (metadataMap.size) return true;\n var targetMetadata = store.get(target);\n targetMetadata['delete'](targetKey);\n return !!targetMetadata.size || store['delete'](target);\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nvar ordinaryGetMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;\n};\n\nmetadata.exp({ getMetadata: function getMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var Set = require('./es6.set');\nvar from = require('./_array-from-iterable');\nvar metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nvar ordinaryMetadataKeys = function (O, P) {\n var oKeys = ordinaryOwnMetadataKeys(O, P);\n var parent = getPrototypeOf(O);\n if (parent === null) return oKeys;\n var pKeys = ordinaryMetadataKeys(parent, P);\n return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;\n};\n\nmetadata.exp({ getMetadataKeys: function getMetadataKeys(target /* , targetKey */) {\n return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) {\n return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nvar ordinaryHasMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return true;\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;\n};\n\nmetadata.exp({ hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var $metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar toMetaKey = $metadata.key;\nvar ordinaryDefineOwnMetadata = $metadata.set;\n\n$metadata.exp({ metadata: function metadata(metadataKey, metadataValue) {\n return function decorator(target, targetKey) {\n ordinaryDefineOwnMetadata(\n metadataKey, metadataValue,\n (targetKey !== undefined ? anObject : aFunction)(target),\n toMetaKey(targetKey)\n );\n };\n} });\n","/* tslint:disable */\nimport 'core-js/es6';\nimport 'core-js/es7/reflect';\nrequire('zone.js/dist/zone');\n\n// IE11 fix, ref: https://github.com/angular/angular/issues/24769\nif (!Element.prototype.matches && (Element.prototype as any).msMatchesSelector) {\n Element.prototype.matches = (Element.prototype as any).msMatchesSelector;\n}\n\nif (process.env.ENV === 'production') {\n // Production\n} else {\n // Development and test\n Error['stackTraceLimit'] = Infinity;\n require('zone.js/dist/long-stack-trace-zone');\n}\n\n// Other polyfills\nrequire('whatwg-fetch');\nrequire('webcrypto-shim');\nrequire('date-input-polyfill');\n/* tslint:enable */\n","require('../modules/es6.symbol');\nrequire('../modules/es6.object.create');\nrequire('../modules/es6.object.define-property');\nrequire('../modules/es6.object.define-properties');\nrequire('../modules/es6.object.get-own-property-descriptor');\nrequire('../modules/es6.object.get-prototype-of');\nrequire('../modules/es6.object.keys');\nrequire('../modules/es6.object.get-own-property-names');\nrequire('../modules/es6.object.freeze');\nrequire('../modules/es6.object.seal');\nrequire('../modules/es6.object.prevent-extensions');\nrequire('../modules/es6.object.is-frozen');\nrequire('../modules/es6.object.is-sealed');\nrequire('../modules/es6.object.is-extensible');\nrequire('../modules/es6.object.assign');\nrequire('../modules/es6.object.is');\nrequire('../modules/es6.object.set-prototype-of');\nrequire('../modules/es6.object.to-string');\nrequire('../modules/es6.function.bind');\nrequire('../modules/es6.function.name');\nrequire('../modules/es6.function.has-instance');\nrequire('../modules/es6.parse-int');\nrequire('../modules/es6.parse-float');\nrequire('../modules/es6.number.constructor');\nrequire('../modules/es6.number.to-fixed');\nrequire('../modules/es6.number.to-precision');\nrequire('../modules/es6.number.epsilon');\nrequire('../modules/es6.number.is-finite');\nrequire('../modules/es6.number.is-integer');\nrequire('../modules/es6.number.is-nan');\nrequire('../modules/es6.number.is-safe-integer');\nrequire('../modules/es6.number.max-safe-integer');\nrequire('../modules/es6.number.min-safe-integer');\nrequire('../modules/es6.number.parse-float');\nrequire('../modules/es6.number.parse-int');\nrequire('../modules/es6.math.acosh');\nrequire('../modules/es6.math.asinh');\nrequire('../modules/es6.math.atanh');\nrequire('../modules/es6.math.cbrt');\nrequire('../modules/es6.math.clz32');\nrequire('../modules/es6.math.cosh');\nrequire('../modules/es6.math.expm1');\nrequire('../modules/es6.math.fround');\nrequire('../modules/es6.math.hypot');\nrequire('../modules/es6.math.imul');\nrequire('../modules/es6.math.log10');\nrequire('../modules/es6.math.log1p');\nrequire('../modules/es6.math.log2');\nrequire('../modules/es6.math.sign');\nrequire('../modules/es6.math.sinh');\nrequire('../modules/es6.math.tanh');\nrequire('../modules/es6.math.trunc');\nrequire('../modules/es6.string.from-code-point');\nrequire('../modules/es6.string.raw');\nrequire('../modules/es6.string.trim');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/es6.string.code-point-at');\nrequire('../modules/es6.string.ends-with');\nrequire('../modules/es6.string.includes');\nrequire('../modules/es6.string.repeat');\nrequire('../modules/es6.string.starts-with');\nrequire('../modules/es6.string.anchor');\nrequire('../modules/es6.string.big');\nrequire('../modules/es6.string.blink');\nrequire('../modules/es6.string.bold');\nrequire('../modules/es6.string.fixed');\nrequire('../modules/es6.string.fontcolor');\nrequire('../modules/es6.string.fontsize');\nrequire('../modules/es6.string.italics');\nrequire('../modules/es6.string.link');\nrequire('../modules/es6.string.small');\nrequire('../modules/es6.string.strike');\nrequire('../modules/es6.string.sub');\nrequire('../modules/es6.string.sup');\nrequire('../modules/es6.date.now');\nrequire('../modules/es6.date.to-json');\nrequire('../modules/es6.date.to-iso-string');\nrequire('../modules/es6.date.to-string');\nrequire('../modules/es6.date.to-primitive');\nrequire('../modules/es6.array.is-array');\nrequire('../modules/es6.array.from');\nrequire('../modules/es6.array.of');\nrequire('../modules/es6.array.join');\nrequire('../modules/es6.array.slice');\nrequire('../modules/es6.array.sort');\nrequire('../modules/es6.array.for-each');\nrequire('../modules/es6.array.map');\nrequire('../modules/es6.array.filter');\nrequire('../modules/es6.array.some');\nrequire('../modules/es6.array.every');\nrequire('../modules/es6.array.reduce');\nrequire('../modules/es6.array.reduce-right');\nrequire('../modules/es6.array.index-of');\nrequire('../modules/es6.array.last-index-of');\nrequire('../modules/es6.array.copy-within');\nrequire('../modules/es6.array.fill');\nrequire('../modules/es6.array.find');\nrequire('../modules/es6.array.find-index');\nrequire('../modules/es6.array.species');\nrequire('../modules/es6.array.iterator');\nrequire('../modules/es6.regexp.constructor');\nrequire('../modules/es6.regexp.exec');\nrequire('../modules/es6.regexp.to-string');\nrequire('../modules/es6.regexp.flags');\nrequire('../modules/es6.regexp.match');\nrequire('../modules/es6.regexp.replace');\nrequire('../modules/es6.regexp.search');\nrequire('../modules/es6.regexp.split');\nrequire('../modules/es6.promise');\nrequire('../modules/es6.map');\nrequire('../modules/es6.set');\nrequire('../modules/es6.weak-map');\nrequire('../modules/es6.weak-set');\nrequire('../modules/es6.typed.array-buffer');\nrequire('../modules/es6.typed.data-view');\nrequire('../modules/es6.typed.int8-array');\nrequire('../modules/es6.typed.uint8-array');\nrequire('../modules/es6.typed.uint8-clamped-array');\nrequire('../modules/es6.typed.int16-array');\nrequire('../modules/es6.typed.uint16-array');\nrequire('../modules/es6.typed.int32-array');\nrequire('../modules/es6.typed.uint32-array');\nrequire('../modules/es6.typed.float32-array');\nrequire('../modules/es6.typed.float64-array');\nrequire('../modules/es6.reflect.apply');\nrequire('../modules/es6.reflect.construct');\nrequire('../modules/es6.reflect.define-property');\nrequire('../modules/es6.reflect.delete-property');\nrequire('../modules/es6.reflect.enumerate');\nrequire('../modules/es6.reflect.get');\nrequire('../modules/es6.reflect.get-own-property-descriptor');\nrequire('../modules/es6.reflect.get-prototype-of');\nrequire('../modules/es6.reflect.has');\nrequire('../modules/es6.reflect.is-extensible');\nrequire('../modules/es6.reflect.own-keys');\nrequire('../modules/es6.reflect.prevent-extensions');\nrequire('../modules/es6.reflect.set');\nrequire('../modules/es6.reflect.set-prototype-of');\nmodule.exports = require('../modules/_core');\n","require('../modules/es7.reflect.define-metadata');\nrequire('../modules/es7.reflect.delete-metadata');\nrequire('../modules/es7.reflect.get-metadata');\nrequire('../modules/es7.reflect.get-metadata-keys');\nrequire('../modules/es7.reflect.get-own-metadata');\nrequire('../modules/es7.reflect.get-own-metadata-keys');\nrequire('../modules/es7.reflect.has-metadata');\nrequire('../modules/es7.reflect.has-own-metadata');\nrequire('../modules/es7.reflect.metadata');\nmodule.exports = require('../modules/_core').Reflect;\n","/**\n* @license Angular v9.1.0-next.4+61.sha-e552591.with-local-changes\n* (c) 2010-2020 Google LLC. https://angular.io/\n* License: MIT\n*/\n(function (factory) {\n typeof define === 'function' && define.amd ? define(factory) :\n factory();\n}((function () {\n 'use strict';\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n var Zone$1 = (function (global) {\n var performance = global['performance'];\n function mark(name) { performance && performance['mark'] && performance['mark'](name); }\n function performanceMeasure(name, label) {\n performance && performance['measure'] && performance['measure'](name, label);\n }\n mark('Zone');\n // Initialize before it's accessed below.\n // __Zone_symbol_prefix global can be used to override the default zone\n // symbol prefix with a custom one if needed.\n var symbolPrefix = global['__Zone_symbol_prefix'] || '__zone_symbol__';\n function __symbol__(name) { return symbolPrefix + name; }\n var checkDuplicate = global[__symbol__('forceDuplicateZoneCheck')] === true;\n if (global['Zone']) {\n // if global['Zone'] already exists (maybe zone.js was already loaded or\n // some other lib also registered a global object named Zone), we may need\n // to throw an error, but sometimes user may not want this error.\n // For example,\n // we have two web pages, page1 includes zone.js, page2 doesn't.\n // and the 1st time user load page1 and page2, everything work fine,\n // but when user load page2 again, error occurs because global['Zone'] already exists.\n // so we add a flag to let user choose whether to throw this error or not.\n // By default, if existing Zone is from zone.js, we will not throw the error.\n if (checkDuplicate || typeof global['Zone'].__symbol__ !== 'function') {\n throw new Error('Zone already loaded.');\n }\n else {\n return global['Zone'];\n }\n }\n var Zone = /** @class */ (function () {\n function Zone(parent, zoneSpec) {\n this._parent = parent;\n this._name = zoneSpec ? zoneSpec.name || 'unnamed' : '';\n this._properties = zoneSpec && zoneSpec.properties || {};\n this._zoneDelegate =\n new ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec);\n }\n Zone.assertZonePatched = function () {\n if (global['Promise'] !== patches['ZoneAwarePromise']) {\n throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' +\n 'has been overwritten.\\n' +\n 'Most likely cause is that a Promise polyfill has been loaded ' +\n 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' +\n 'If you must load one, do so before loading zone.js.)');\n }\n };\n Object.defineProperty(Zone, \"root\", {\n get: function () {\n var zone = Zone.current;\n while (zone.parent) {\n zone = zone.parent;\n }\n return zone;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Zone, \"current\", {\n get: function () { return _currentZoneFrame.zone; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Zone, \"currentTask\", {\n get: function () { return _currentTask; },\n enumerable: true,\n configurable: true\n });\n // tslint:disable-next-line:require-internal-with-underscore\n Zone.__load_patch = function (name, fn) {\n if (patches.hasOwnProperty(name)) {\n if (checkDuplicate) {\n throw Error('Already loaded patch: ' + name);\n }\n }\n else if (!global['__Zone_disable_' + name]) {\n var perfName = 'Zone:' + name;\n mark(perfName);\n patches[name] = fn(global, Zone, _api);\n performanceMeasure(perfName, perfName);\n }\n };\n Object.defineProperty(Zone.prototype, \"parent\", {\n get: function () { return this._parent; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Zone.prototype, \"name\", {\n get: function () { return this._name; },\n enumerable: true,\n configurable: true\n });\n Zone.prototype.get = function (key) {\n var zone = this.getZoneWith(key);\n if (zone)\n return zone._properties[key];\n };\n Zone.prototype.getZoneWith = function (key) {\n var current = this;\n while (current) {\n if (current._properties.hasOwnProperty(key)) {\n return current;\n }\n current = current._parent;\n }\n return null;\n };\n Zone.prototype.fork = function (zoneSpec) {\n if (!zoneSpec)\n throw new Error('ZoneSpec required!');\n return this._zoneDelegate.fork(this, zoneSpec);\n };\n Zone.prototype.wrap = function (callback, source) {\n if (typeof callback !== 'function') {\n throw new Error('Expecting function got: ' + callback);\n }\n var _callback = this._zoneDelegate.intercept(this, callback, source);\n var zone = this;\n return function () {\n return zone.runGuarded(_callback, this, arguments, source);\n };\n };\n Zone.prototype.run = function (callback, applyThis, applyArgs, source) {\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n };\n Zone.prototype.runGuarded = function (callback, applyThis, applyArgs, source) {\n if (applyThis === void 0) { applyThis = null; }\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n };\n Zone.prototype.runTask = function (task, applyThis, applyArgs) {\n if (task.zone != this) {\n throw new Error('A task can only be run in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n }\n // https://github.com/angular/zone.js/issues/778, sometimes eventTask\n // will run in notScheduled(canceled) state, we should not try to\n // run such kind of task but just return\n if (task.state === notScheduled && (task.type === eventTask || task.type === macroTask)) {\n return;\n }\n var reEntryGuard = task.state != running;\n reEntryGuard && task._transitionTo(running, scheduled);\n task.runCount++;\n var previousTask = _currentTask;\n _currentTask = task;\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n if (task.type == macroTask && task.data && !task.data.isPeriodic) {\n task.cancelFn = undefined;\n }\n try {\n return this._zoneDelegate.invokeTask(this, task, applyThis, applyArgs);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n // if the task's state is notScheduled or unknown, then it has already been cancelled\n // we should not reset the state to scheduled\n if (task.state !== notScheduled && task.state !== unknown) {\n if (task.type == eventTask || (task.data && task.data.isPeriodic)) {\n reEntryGuard && task._transitionTo(scheduled, running);\n }\n else {\n task.runCount = 0;\n this._updateTaskCount(task, -1);\n reEntryGuard &&\n task._transitionTo(notScheduled, running, notScheduled);\n }\n }\n _currentZoneFrame = _currentZoneFrame.parent;\n _currentTask = previousTask;\n }\n };\n Zone.prototype.scheduleTask = function (task) {\n if (task.zone && task.zone !== this) {\n // check if the task was rescheduled, the newZone\n // should not be the children of the original zone\n var newZone = this;\n while (newZone) {\n if (newZone === task.zone) {\n throw Error(\"can not reschedule task to \" + this.name + \" which is descendants of the original zone \" + task.zone.name);\n }\n newZone = newZone.parent;\n }\n }\n task._transitionTo(scheduling, notScheduled);\n var zoneDelegates = [];\n task._zoneDelegates = zoneDelegates;\n task._zone = this;\n try {\n task = this._zoneDelegate.scheduleTask(this, task);\n }\n catch (err) {\n // should set task's state to unknown when scheduleTask throw error\n // because the err may from reschedule, so the fromState maybe notScheduled\n task._transitionTo(unknown, scheduling, notScheduled);\n // TODO: @JiaLiPassion, should we check the result from handleError?\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n if (task._zoneDelegates === zoneDelegates) {\n // we have to check because internally the delegate can reschedule the task.\n this._updateTaskCount(task, 1);\n }\n if (task.state == scheduling) {\n task._transitionTo(scheduled, scheduling);\n }\n return task;\n };\n Zone.prototype.scheduleMicroTask = function (source, callback, data, customSchedule) {\n return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, undefined));\n };\n Zone.prototype.scheduleMacroTask = function (source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel));\n };\n Zone.prototype.scheduleEventTask = function (source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel));\n };\n Zone.prototype.cancelTask = function (task) {\n if (task.zone != this)\n throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n task._transitionTo(canceling, scheduled, running);\n try {\n this._zoneDelegate.cancelTask(this, task);\n }\n catch (err) {\n // if error occurs when cancelTask, transit the state to unknown\n task._transitionTo(unknown, canceling);\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n this._updateTaskCount(task, -1);\n task._transitionTo(notScheduled, canceling);\n task.runCount = 0;\n return task;\n };\n Zone.prototype._updateTaskCount = function (task, count) {\n var zoneDelegates = task._zoneDelegates;\n if (count == -1) {\n task._zoneDelegates = null;\n }\n for (var i = 0; i < zoneDelegates.length; i++) {\n zoneDelegates[i]._updateTaskCount(task.type, count);\n }\n };\n return Zone;\n }());\n // tslint:disable-next-line:require-internal-with-underscore\n Zone.__symbol__ = __symbol__;\n var DELEGATE_ZS = {\n name: '',\n onHasTask: function (delegate, _, target, hasTaskState) { return delegate.hasTask(target, hasTaskState); },\n onScheduleTask: function (delegate, _, target, task) { return delegate.scheduleTask(target, task); },\n onInvokeTask: function (delegate, _, target, task, applyThis, applyArgs) { return delegate.invokeTask(target, task, applyThis, applyArgs); },\n onCancelTask: function (delegate, _, target, task) { return delegate.cancelTask(target, task); }\n };\n var ZoneDelegate = /** @class */ (function () {\n function ZoneDelegate(zone, parentDelegate, zoneSpec) {\n this._taskCounts = { 'microTask': 0, 'macroTask': 0, 'eventTask': 0 };\n this.zone = zone;\n this._parentDelegate = parentDelegate;\n this._forkZS =\n zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS);\n this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt);\n this._forkCurrZone =\n zoneSpec && (zoneSpec.onFork ? this.zone : parentDelegate._forkCurrZone);\n this._interceptZS =\n zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS);\n this._interceptDlgt =\n zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt);\n this._interceptCurrZone =\n zoneSpec && (zoneSpec.onIntercept ? this.zone : parentDelegate._interceptCurrZone);\n this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS);\n this._invokeDlgt =\n zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt);\n this._invokeCurrZone =\n zoneSpec && (zoneSpec.onInvoke ? this.zone : parentDelegate._invokeCurrZone);\n this._handleErrorZS =\n zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS);\n this._handleErrorDlgt = zoneSpec &&\n (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt);\n this._handleErrorCurrZone =\n zoneSpec && (zoneSpec.onHandleError ? this.zone : parentDelegate._handleErrorCurrZone);\n this._scheduleTaskZS =\n zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS);\n this._scheduleTaskDlgt = zoneSpec &&\n (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt);\n this._scheduleTaskCurrZone = zoneSpec &&\n (zoneSpec.onScheduleTask ? this.zone : parentDelegate._scheduleTaskCurrZone);\n this._invokeTaskZS =\n zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS);\n this._invokeTaskDlgt =\n zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt);\n this._invokeTaskCurrZone =\n zoneSpec && (zoneSpec.onInvokeTask ? this.zone : parentDelegate._invokeTaskCurrZone);\n this._cancelTaskZS =\n zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS);\n this._cancelTaskDlgt =\n zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt);\n this._cancelTaskCurrZone =\n zoneSpec && (zoneSpec.onCancelTask ? this.zone : parentDelegate._cancelTaskCurrZone);\n this._hasTaskZS = null;\n this._hasTaskDlgt = null;\n this._hasTaskDlgtOwner = null;\n this._hasTaskCurrZone = null;\n var zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask;\n var parentHasTask = parentDelegate && parentDelegate._hasTaskZS;\n if (zoneSpecHasTask || parentHasTask) {\n // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such\n // a case all task related interceptors must go through this ZD. We can't short circuit it.\n this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS;\n this._hasTaskDlgt = parentDelegate;\n this._hasTaskDlgtOwner = this;\n this._hasTaskCurrZone = zone;\n if (!zoneSpec.onScheduleTask) {\n this._scheduleTaskZS = DELEGATE_ZS;\n this._scheduleTaskDlgt = parentDelegate;\n this._scheduleTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onInvokeTask) {\n this._invokeTaskZS = DELEGATE_ZS;\n this._invokeTaskDlgt = parentDelegate;\n this._invokeTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onCancelTask) {\n this._cancelTaskZS = DELEGATE_ZS;\n this._cancelTaskDlgt = parentDelegate;\n this._cancelTaskCurrZone = this.zone;\n }\n }\n }\n ZoneDelegate.prototype.fork = function (targetZone, zoneSpec) {\n return this._forkZS ?\n this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) :\n new Zone(targetZone, zoneSpec);\n };\n ZoneDelegate.prototype.intercept = function (targetZone, callback, source) {\n return this._interceptZS ?\n this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) :\n callback;\n };\n ZoneDelegate.prototype.invoke = function (targetZone, callback, applyThis, applyArgs, source) {\n return this._invokeZS ?\n this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source) :\n callback.apply(applyThis, applyArgs);\n };\n ZoneDelegate.prototype.handleError = function (targetZone, error) {\n return this._handleErrorZS ?\n this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) :\n true;\n };\n ZoneDelegate.prototype.scheduleTask = function (targetZone, task) {\n var returnTask = task;\n if (this._scheduleTaskZS) {\n if (this._hasTaskZS) {\n returnTask._zoneDelegates.push(this._hasTaskDlgtOwner);\n }\n // clang-format off\n returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task);\n // clang-format on\n if (!returnTask)\n returnTask = task;\n }\n else {\n if (task.scheduleFn) {\n task.scheduleFn(task);\n }\n else if (task.type == microTask) {\n scheduleMicroTask(task);\n }\n else {\n throw new Error('Task is missing scheduleFn.');\n }\n }\n return returnTask;\n };\n ZoneDelegate.prototype.invokeTask = function (targetZone, task, applyThis, applyArgs) {\n return this._invokeTaskZS ?\n this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs) :\n task.callback.apply(applyThis, applyArgs);\n };\n ZoneDelegate.prototype.cancelTask = function (targetZone, task) {\n var value;\n if (this._cancelTaskZS) {\n value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task);\n }\n else {\n if (!task.cancelFn) {\n throw Error('Task is not cancelable');\n }\n value = task.cancelFn(task);\n }\n return value;\n };\n ZoneDelegate.prototype.hasTask = function (targetZone, isEmpty) {\n // hasTask should not throw error so other ZoneDelegate\n // can still trigger hasTask callback\n try {\n this._hasTaskZS &&\n this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty);\n }\n catch (err) {\n this.handleError(targetZone, err);\n }\n };\n // tslint:disable-next-line:require-internal-with-underscore\n ZoneDelegate.prototype._updateTaskCount = function (type, count) {\n var counts = this._taskCounts;\n var prev = counts[type];\n var next = counts[type] = prev + count;\n if (next < 0) {\n throw new Error('More tasks executed then were scheduled.');\n }\n if (prev == 0 || next == 0) {\n var isEmpty = {\n microTask: counts['microTask'] > 0,\n macroTask: counts['macroTask'] > 0,\n eventTask: counts['eventTask'] > 0,\n change: type\n };\n this.hasTask(this.zone, isEmpty);\n }\n };\n return ZoneDelegate;\n }());\n var ZoneTask = /** @class */ (function () {\n function ZoneTask(type, source, callback, options, scheduleFn, cancelFn) {\n // tslint:disable-next-line:require-internal-with-underscore\n this._zone = null;\n this.runCount = 0;\n // tslint:disable-next-line:require-internal-with-underscore\n this._zoneDelegates = null;\n // tslint:disable-next-line:require-internal-with-underscore\n this._state = 'notScheduled';\n this.type = type;\n this.source = source;\n this.data = options;\n this.scheduleFn = scheduleFn;\n this.cancelFn = cancelFn;\n if (!callback) {\n throw new Error('callback is not defined');\n }\n this.callback = callback;\n var self = this;\n // TODO: @JiaLiPassion options should have interface\n if (type === eventTask && options && options.useG) {\n this.invoke = ZoneTask.invokeTask;\n }\n else {\n this.invoke = function () {\n return ZoneTask.invokeTask.call(global, self, this, arguments);\n };\n }\n }\n ZoneTask.invokeTask = function (task, target, args) {\n if (!task) {\n task = this;\n }\n _numberOfNestedTaskFrames++;\n try {\n task.runCount++;\n return task.zone.runTask(task, target, args);\n }\n finally {\n if (_numberOfNestedTaskFrames == 1) {\n drainMicroTaskQueue();\n }\n _numberOfNestedTaskFrames--;\n }\n };\n Object.defineProperty(ZoneTask.prototype, \"zone\", {\n get: function () { return this._zone; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ZoneTask.prototype, \"state\", {\n get: function () { return this._state; },\n enumerable: true,\n configurable: true\n });\n ZoneTask.prototype.cancelScheduleRequest = function () { this._transitionTo(notScheduled, scheduling); };\n // tslint:disable-next-line:require-internal-with-underscore\n ZoneTask.prototype._transitionTo = function (toState, fromState1, fromState2) {\n if (this._state === fromState1 || this._state === fromState2) {\n this._state = toState;\n if (toState == notScheduled) {\n this._zoneDelegates = null;\n }\n }\n else {\n throw new Error(this.type + \" '\" + this.source + \"': can not transition to '\" + toState + \"', expecting state '\" + fromState1 + \"'\" + (fromState2 ? ' or \\'' + fromState2 + '\\'' : '') + \", was '\" + this._state + \"'.\");\n }\n };\n ZoneTask.prototype.toString = function () {\n if (this.data && typeof this.data.handleId !== 'undefined') {\n return this.data.handleId.toString();\n }\n else {\n return Object.prototype.toString.call(this);\n }\n };\n // add toJSON method to prevent cyclic error when\n // call JSON.stringify(zoneTask)\n ZoneTask.prototype.toJSON = function () {\n return {\n type: this.type,\n state: this.state,\n source: this.source,\n zone: this.zone.name,\n runCount: this.runCount\n };\n };\n return ZoneTask;\n }());\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// MICROTASK QUEUE\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n var symbolSetTimeout = __symbol__('setTimeout');\n var symbolPromise = __symbol__('Promise');\n var symbolThen = __symbol__('then');\n var _microTaskQueue = [];\n var _isDrainingMicrotaskQueue = false;\n var nativeMicroTaskQueuePromise;\n function scheduleMicroTask(task) {\n // if we are not running in any task, and there has not been anything scheduled\n // we must bootstrap the initial task creation by manually scheduling the drain\n if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) {\n // We are not running in Task, so we need to kickstart the microtask queue.\n if (!nativeMicroTaskQueuePromise) {\n if (global[symbolPromise]) {\n nativeMicroTaskQueuePromise = global[symbolPromise].resolve(0);\n }\n }\n if (nativeMicroTaskQueuePromise) {\n var nativeThen = nativeMicroTaskQueuePromise[symbolThen];\n if (!nativeThen) {\n // native Promise is not patchable, we need to use `then` directly\n // issue 1078\n nativeThen = nativeMicroTaskQueuePromise['then'];\n }\n nativeThen.call(nativeMicroTaskQueuePromise, drainMicroTaskQueue);\n }\n else {\n global[symbolSetTimeout](drainMicroTaskQueue, 0);\n }\n }\n task && _microTaskQueue.push(task);\n }\n function drainMicroTaskQueue() {\n if (!_isDrainingMicrotaskQueue) {\n _isDrainingMicrotaskQueue = true;\n while (_microTaskQueue.length) {\n var queue = _microTaskQueue;\n _microTaskQueue = [];\n for (var i = 0; i < queue.length; i++) {\n var task = queue[i];\n try {\n task.zone.runTask(task, null, null);\n }\n catch (error) {\n _api.onUnhandledError(error);\n }\n }\n }\n _api.microtaskDrainDone();\n _isDrainingMicrotaskQueue = false;\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// BOOTSTRAP\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n var NO_ZONE = { name: 'NO ZONE' };\n var notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling', unknown = 'unknown';\n var microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask';\n var patches = {};\n var _api = {\n symbol: __symbol__,\n currentZoneFrame: function () { return _currentZoneFrame; },\n onUnhandledError: noop,\n microtaskDrainDone: noop,\n scheduleMicroTask: scheduleMicroTask,\n showUncaughtError: function () { return !Zone[__symbol__('ignoreConsoleErrorUncaughtError')]; },\n patchEventTarget: function () { return []; },\n patchOnProperties: noop,\n patchMethod: function () { return noop; },\n bindArguments: function () { return []; },\n patchThen: function () { return noop; },\n patchMacroTask: function () { return noop; },\n setNativePromise: function (NativePromise) {\n // sometimes NativePromise.resolve static function\n // is not ready yet, (such as core-js/es6.promise)\n // so we need to check here.\n if (NativePromise && typeof NativePromise.resolve === 'function') {\n nativeMicroTaskQueuePromise = NativePromise.resolve(0);\n }\n },\n patchEventPrototype: function () { return noop; },\n isIEOrEdge: function () { return false; },\n getGlobalObjects: function () { return undefined; },\n ObjectDefineProperty: function () { return noop; },\n ObjectGetOwnPropertyDescriptor: function () { return undefined; },\n ObjectCreate: function () { return undefined; },\n ArraySlice: function () { return []; },\n patchClass: function () { return noop; },\n wrapWithCurrentZone: function () { return noop; },\n filterProperties: function () { return []; },\n attachOriginToPatched: function () { return noop; },\n _redefineProperty: function () { return noop; },\n patchCallbacks: function () { return noop; }\n };\n var _currentZoneFrame = { parent: null, zone: new Zone(null, null) };\n var _currentTask = null;\n var _numberOfNestedTaskFrames = 0;\n function noop() { }\n performanceMeasure('Zone', 'Zone');\n return global['Zone'] = Zone;\n })(typeof window !== 'undefined' && window || typeof self !== 'undefined' && self || global);\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n Zone.__load_patch('ZoneAwarePromise', function (global, Zone, api) {\n var ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n var ObjectDefineProperty = Object.defineProperty;\n function readableObjectToString(obj) {\n if (obj && obj.toString === Object.prototype.toString) {\n var className = obj.constructor && obj.constructor.name;\n return (className ? className : '') + ': ' + JSON.stringify(obj);\n }\n return obj ? obj.toString() : Object.prototype.toString.call(obj);\n }\n var __symbol__ = api.symbol;\n var _uncaughtPromiseErrors = [];\n var isDisableWrappingUncaughtPromiseRejection = global[__symbol__('DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION')] === true;\n var symbolPromise = __symbol__('Promise');\n var symbolThen = __symbol__('then');\n var creationTrace = '__creationTrace__';\n api.onUnhandledError = function (e) {\n if (api.showUncaughtError()) {\n var rejection = e && e.rejection;\n if (rejection) {\n console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined);\n }\n else {\n console.error(e);\n }\n }\n };\n api.microtaskDrainDone = function () {\n var _loop_1 = function () {\n var uncaughtPromiseError = _uncaughtPromiseErrors.shift();\n try {\n uncaughtPromiseError.zone.runGuarded(function () { throw uncaughtPromiseError; });\n }\n catch (error) {\n handleUnhandledRejection(error);\n }\n };\n while (_uncaughtPromiseErrors.length) {\n _loop_1();\n }\n };\n var UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL = __symbol__('unhandledPromiseRejectionHandler');\n function handleUnhandledRejection(e) {\n api.onUnhandledError(e);\n try {\n var handler = Zone[UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL];\n if (typeof handler === 'function') {\n handler.call(this, e);\n }\n }\n catch (err) {\n }\n }\n function isThenable(value) { return value && value.then; }\n function forwardResolution(value) { return value; }\n function forwardRejection(rejection) { return ZoneAwarePromise.reject(rejection); }\n var symbolState = __symbol__('state');\n var symbolValue = __symbol__('value');\n var symbolFinally = __symbol__('finally');\n var symbolParentPromiseValue = __symbol__('parentPromiseValue');\n var symbolParentPromiseState = __symbol__('parentPromiseState');\n var source = 'Promise.then';\n var UNRESOLVED = null;\n var RESOLVED = true;\n var REJECTED = false;\n var REJECTED_NO_CATCH = 0;\n function makeResolver(promise, state) {\n return function (v) {\n try {\n resolvePromise(promise, state, v);\n }\n catch (err) {\n resolvePromise(promise, false, err);\n }\n // Do not return value or you will break the Promise spec.\n };\n }\n var once = function () {\n var wasCalled = false;\n return function wrapper(wrappedFunction) {\n return function () {\n if (wasCalled) {\n return;\n }\n wasCalled = true;\n wrappedFunction.apply(null, arguments);\n };\n };\n };\n var TYPE_ERROR = 'Promise resolved with itself';\n var CURRENT_TASK_TRACE_SYMBOL = __symbol__('currentTaskTrace');\n // Promise Resolution\n function resolvePromise(promise, state, value) {\n var onceWrapper = once();\n if (promise === value) {\n throw new TypeError(TYPE_ERROR);\n }\n if (promise[symbolState] === UNRESOLVED) {\n // should only get value.then once based on promise spec.\n var then = null;\n try {\n if (typeof value === 'object' || typeof value === 'function') {\n then = value && value.then;\n }\n }\n catch (err) {\n onceWrapper(function () { resolvePromise(promise, false, err); })();\n return promise;\n }\n // if (value instanceof ZoneAwarePromise) {\n if (state !== REJECTED && value instanceof ZoneAwarePromise &&\n value.hasOwnProperty(symbolState) && value.hasOwnProperty(symbolValue) &&\n value[symbolState] !== UNRESOLVED) {\n clearRejectedNoCatch(value);\n resolvePromise(promise, value[symbolState], value[symbolValue]);\n }\n else if (state !== REJECTED && typeof then === 'function') {\n try {\n then.call(value, onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false)));\n }\n catch (err) {\n onceWrapper(function () { resolvePromise(promise, false, err); })();\n }\n }\n else {\n promise[symbolState] = state;\n var queue = promise[symbolValue];\n promise[symbolValue] = value;\n if (promise[symbolFinally] === symbolFinally) {\n // the promise is generated by Promise.prototype.finally\n if (state === RESOLVED) {\n // the state is resolved, should ignore the value\n // and use parent promise value\n promise[symbolState] = promise[symbolParentPromiseState];\n promise[symbolValue] = promise[symbolParentPromiseValue];\n }\n }\n // record task information in value when error occurs, so we can\n // do some additional work such as render longStackTrace\n if (state === REJECTED && value instanceof Error) {\n // check if longStackTraceZone is here\n var trace = Zone.currentTask && Zone.currentTask.data &&\n Zone.currentTask.data[creationTrace];\n if (trace) {\n // only keep the long stack trace into error when in longStackTraceZone\n ObjectDefineProperty(value, CURRENT_TASK_TRACE_SYMBOL, { configurable: true, enumerable: false, writable: true, value: trace });\n }\n }\n for (var i = 0; i < queue.length;) {\n scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]);\n }\n if (queue.length == 0 && state == REJECTED) {\n promise[symbolState] = REJECTED_NO_CATCH;\n var uncaughtPromiseError = value;\n if (!isDisableWrappingUncaughtPromiseRejection) {\n // If disable wrapping uncaught promise reject\n // and the rejected value is an Error object,\n // use the value instead of wrapping it.\n try {\n // Here we throws a new Error to print more readable error log\n // and if the value is not an error, zone.js builds an `Error`\n // Object here to attach the stack information.\n throw new Error('Uncaught (in promise): ' + readableObjectToString(value) +\n (value && value.stack ? '\\n' + value.stack : ''));\n }\n catch (err) {\n uncaughtPromiseError = err;\n }\n }\n uncaughtPromiseError.rejection = value;\n uncaughtPromiseError.promise = promise;\n uncaughtPromiseError.zone = Zone.current;\n uncaughtPromiseError.task = Zone.currentTask;\n _uncaughtPromiseErrors.push(uncaughtPromiseError);\n api.scheduleMicroTask(); // to make sure that it is running\n }\n }\n }\n // Resolving an already resolved promise is a noop.\n return promise;\n }\n var REJECTION_HANDLED_HANDLER = __symbol__('rejectionHandledHandler');\n function clearRejectedNoCatch(promise) {\n if (promise[symbolState] === REJECTED_NO_CATCH) {\n // if the promise is rejected no catch status\n // and queue.length > 0, means there is a error handler\n // here to handle the rejected promise, we should trigger\n // windows.rejectionhandled eventHandler or nodejs rejectionHandled\n // eventHandler\n try {\n var handler = Zone[REJECTION_HANDLED_HANDLER];\n if (handler && typeof handler === 'function') {\n handler.call(this, { rejection: promise[symbolValue], promise: promise });\n }\n }\n catch (err) {\n }\n promise[symbolState] = REJECTED;\n for (var i = 0; i < _uncaughtPromiseErrors.length; i++) {\n if (promise === _uncaughtPromiseErrors[i].promise) {\n _uncaughtPromiseErrors.splice(i, 1);\n }\n }\n }\n }\n function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) {\n clearRejectedNoCatch(promise);\n var promiseState = promise[symbolState];\n var delegate = promiseState ?\n (typeof onFulfilled === 'function') ? onFulfilled : forwardResolution :\n (typeof onRejected === 'function') ? onRejected : forwardRejection;\n zone.scheduleMicroTask(source, function () {\n try {\n var parentPromiseValue = promise[symbolValue];\n var isFinallyPromise = !!chainPromise && symbolFinally === chainPromise[symbolFinally];\n if (isFinallyPromise) {\n // if the promise is generated from finally call, keep parent promise's state and value\n chainPromise[symbolParentPromiseValue] = parentPromiseValue;\n chainPromise[symbolParentPromiseState] = promiseState;\n }\n // should not pass value to finally callback\n var value = zone.run(delegate, undefined, isFinallyPromise && delegate !== forwardRejection && delegate !== forwardResolution ?\n [] :\n [parentPromiseValue]);\n resolvePromise(chainPromise, true, value);\n }\n catch (error) {\n // if error occurs, should always return this error\n resolvePromise(chainPromise, false, error);\n }\n }, chainPromise);\n }\n var ZONE_AWARE_PROMISE_TO_STRING = 'function ZoneAwarePromise() { [native code] }';\n var noop = function () { };\n var ZoneAwarePromise = /** @class */ (function () {\n function ZoneAwarePromise(executor) {\n var promise = this;\n if (!(promise instanceof ZoneAwarePromise)) {\n throw new Error('Must be an instanceof Promise.');\n }\n promise[symbolState] = UNRESOLVED;\n promise[symbolValue] = []; // queue;\n try {\n executor && executor(makeResolver(promise, RESOLVED), makeResolver(promise, REJECTED));\n }\n catch (error) {\n resolvePromise(promise, false, error);\n }\n }\n ZoneAwarePromise.toString = function () { return ZONE_AWARE_PROMISE_TO_STRING; };\n ZoneAwarePromise.resolve = function (value) {\n return resolvePromise(new this(null), RESOLVED, value);\n };\n ZoneAwarePromise.reject = function (error) {\n return resolvePromise(new this(null), REJECTED, error);\n };\n ZoneAwarePromise.race = function (values) {\n var resolve;\n var reject;\n var promise = new this(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n function onResolve(value) { resolve(value); }\n function onReject(error) { reject(error); }\n for (var _i = 0, values_1 = values; _i < values_1.length; _i++) {\n var value = values_1[_i];\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then(onResolve, onReject);\n }\n return promise;\n };\n ZoneAwarePromise.all = function (values) { return ZoneAwarePromise.allWithCallback(values); };\n ZoneAwarePromise.allSettled = function (values) {\n var P = this && this.prototype instanceof ZoneAwarePromise ? this : ZoneAwarePromise;\n return P.allWithCallback(values, {\n thenCallback: function (value) { return ({ status: 'fulfilled', value: value }); },\n errorCallback: function (err) { return ({ status: 'rejected', reason: err }); }\n });\n };\n ZoneAwarePromise.allWithCallback = function (values, callback) {\n var resolve;\n var reject;\n var promise = new this(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n // Start at 2 to prevent prematurely resolving if .then is called immediately.\n var unresolvedCount = 2;\n var valueIndex = 0;\n var resolvedValues = [];\n var _loop_2 = function (value) {\n if (!isThenable(value)) {\n value = this_1.resolve(value);\n }\n var curValueIndex = valueIndex;\n try {\n value.then(function (value) {\n resolvedValues[curValueIndex] = callback ? callback.thenCallback(value) : value;\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }, function (err) {\n if (!callback) {\n reject(err);\n }\n else {\n resolvedValues[curValueIndex] = callback.errorCallback(err);\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }\n });\n }\n catch (thenErr) {\n reject(thenErr);\n }\n unresolvedCount++;\n valueIndex++;\n };\n var this_1 = this;\n for (var _i = 0, values_2 = values; _i < values_2.length; _i++) {\n var value = values_2[_i];\n _loop_2(value);\n }\n // Make the unresolvedCount zero-based again.\n unresolvedCount -= 2;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n return promise;\n };\n Object.defineProperty(ZoneAwarePromise.prototype, Symbol.toStringTag, {\n get: function () { return 'Promise'; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ZoneAwarePromise.prototype, Symbol.species, {\n get: function () { return ZoneAwarePromise; },\n enumerable: true,\n configurable: true\n });\n ZoneAwarePromise.prototype.then = function (onFulfilled, onRejected) {\n var C = this.constructor[Symbol.species];\n if (!C || typeof C !== 'function') {\n C = this.constructor || ZoneAwarePromise;\n }\n var chainPromise = new C(noop);\n var zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected);\n }\n return chainPromise;\n };\n ZoneAwarePromise.prototype.catch = function (onRejected) {\n return this.then(null, onRejected);\n };\n ZoneAwarePromise.prototype.finally = function (onFinally) {\n var C = this.constructor[Symbol.species];\n if (!C || typeof C !== 'function') {\n C = ZoneAwarePromise;\n }\n var chainPromise = new C(noop);\n chainPromise[symbolFinally] = symbolFinally;\n var zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFinally, onFinally);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFinally, onFinally);\n }\n return chainPromise;\n };\n return ZoneAwarePromise;\n }());\n // Protect against aggressive optimizers dropping seemingly unused properties.\n // E.g. Closure Compiler in advanced mode.\n ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve;\n ZoneAwarePromise['reject'] = ZoneAwarePromise.reject;\n ZoneAwarePromise['race'] = ZoneAwarePromise.race;\n ZoneAwarePromise['all'] = ZoneAwarePromise.all;\n var NativePromise = global[symbolPromise] = global['Promise'];\n var ZONE_AWARE_PROMISE = Zone.__symbol__('ZoneAwarePromise');\n var desc = ObjectGetOwnPropertyDescriptor(global, 'Promise');\n if (!desc || desc.configurable) {\n desc && delete desc.writable;\n desc && delete desc.value;\n if (!desc) {\n desc = { configurable: true, enumerable: true };\n }\n desc.get = function () {\n // if we already set ZoneAwarePromise, use patched one\n // otherwise return native one.\n return global[ZONE_AWARE_PROMISE] ? global[ZONE_AWARE_PROMISE] : global[symbolPromise];\n };\n desc.set = function (NewNativePromise) {\n if (NewNativePromise === ZoneAwarePromise) {\n // if the NewNativePromise is ZoneAwarePromise\n // save to global\n global[ZONE_AWARE_PROMISE] = NewNativePromise;\n }\n else {\n // if the NewNativePromise is not ZoneAwarePromise\n // for example: after load zone.js, some library just\n // set es6-promise to global, if we set it to global\n // directly, assertZonePatched will fail and angular\n // will not loaded, so we just set the NewNativePromise\n // to global[symbolPromise], so the result is just like\n // we load ES6 Promise before zone.js\n global[symbolPromise] = NewNativePromise;\n if (!NewNativePromise.prototype[symbolThen]) {\n patchThen(NewNativePromise);\n }\n api.setNativePromise(NewNativePromise);\n }\n };\n ObjectDefineProperty(global, 'Promise', desc);\n }\n global['Promise'] = ZoneAwarePromise;\n var symbolThenPatched = __symbol__('thenPatched');\n function patchThen(Ctor) {\n var proto = Ctor.prototype;\n var prop = ObjectGetOwnPropertyDescriptor(proto, 'then');\n if (prop && (prop.writable === false || !prop.configurable)) {\n // check Ctor.prototype.then propertyDescriptor is writable or not\n // in meteor env, writable is false, we should ignore such case\n return;\n }\n var originalThen = proto.then;\n // Keep a reference to the original method.\n proto[symbolThen] = originalThen;\n Ctor.prototype.then = function (onResolve, onReject) {\n var _this = this;\n var wrapped = new ZoneAwarePromise(function (resolve, reject) { originalThen.call(_this, resolve, reject); });\n return wrapped.then(onResolve, onReject);\n };\n Ctor[symbolThenPatched] = true;\n }\n api.patchThen = patchThen;\n function zoneify(fn) {\n return function () {\n var resultPromise = fn.apply(this, arguments);\n if (resultPromise instanceof ZoneAwarePromise) {\n return resultPromise;\n }\n var ctor = resultPromise.constructor;\n if (!ctor[symbolThenPatched]) {\n patchThen(ctor);\n }\n return resultPromise;\n };\n }\n if (NativePromise) {\n patchThen(NativePromise);\n var fetch_1 = global['fetch'];\n if (typeof fetch_1 == 'function') {\n global[api.symbol('fetch')] = fetch_1;\n global['fetch'] = zoneify(fetch_1);\n }\n }\n // This is not part of public API, but it is useful for tests, so we expose it.\n Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors;\n return ZoneAwarePromise;\n });\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n /**\n * Suppress closure compiler errors about unknown 'Zone' variable\n * @fileoverview\n * @suppress {undefinedVars,globalThis,missingRequire}\n */\n /// \n // issue #989, to reduce bundle size, use short name\n /** Object.getOwnPropertyDescriptor */\n var ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n /** Object.defineProperty */\n var ObjectDefineProperty = Object.defineProperty;\n /** Object.getPrototypeOf */\n var ObjectGetPrototypeOf = Object.getPrototypeOf;\n /** Object.create */\n var ObjectCreate = Object.create;\n /** Array.prototype.slice */\n var ArraySlice = Array.prototype.slice;\n /** addEventListener string const */\n var ADD_EVENT_LISTENER_STR = 'addEventListener';\n /** removeEventListener string const */\n var REMOVE_EVENT_LISTENER_STR = 'removeEventListener';\n /** zoneSymbol addEventListener */\n var ZONE_SYMBOL_ADD_EVENT_LISTENER = Zone.__symbol__(ADD_EVENT_LISTENER_STR);\n /** zoneSymbol removeEventListener */\n var ZONE_SYMBOL_REMOVE_EVENT_LISTENER = Zone.__symbol__(REMOVE_EVENT_LISTENER_STR);\n /** true string const */\n var TRUE_STR = 'true';\n /** false string const */\n var FALSE_STR = 'false';\n /** Zone symbol prefix string const. */\n var ZONE_SYMBOL_PREFIX = Zone.__symbol__('');\n function wrapWithCurrentZone(callback, source) {\n return Zone.current.wrap(callback, source);\n }\n function scheduleMacroTaskWithCurrentZone(source, callback, data, customSchedule, customCancel) {\n return Zone.current.scheduleMacroTask(source, callback, data, customSchedule, customCancel);\n }\n var zoneSymbol = Zone.__symbol__;\n var isWindowExists = typeof window !== 'undefined';\n var internalWindow = isWindowExists ? window : undefined;\n var _global = isWindowExists && internalWindow || typeof self === 'object' && self || global;\n var REMOVE_ATTRIBUTE = 'removeAttribute';\n var NULL_ON_PROP_VALUE = [null];\n function bindArguments(args, source) {\n for (var i = args.length - 1; i >= 0; i--) {\n if (typeof args[i] === 'function') {\n args[i] = wrapWithCurrentZone(args[i], source + '_' + i);\n }\n }\n return args;\n }\n function patchPrototype(prototype, fnNames) {\n var source = prototype.constructor['name'];\n var _loop_3 = function (i) {\n var name_1 = fnNames[i];\n var delegate = prototype[name_1];\n if (delegate) {\n var prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, name_1);\n if (!isPropertyWritable(prototypeDesc)) {\n return \"continue\";\n }\n prototype[name_1] = (function (delegate) {\n var patched = function () {\n return delegate.apply(this, bindArguments(arguments, source + '.' + name_1));\n };\n attachOriginToPatched(patched, delegate);\n return patched;\n })(delegate);\n }\n };\n for (var i = 0; i < fnNames.length; i++) {\n _loop_3(i);\n }\n }\n function isPropertyWritable(propertyDesc) {\n if (!propertyDesc) {\n return true;\n }\n if (propertyDesc.writable === false) {\n return false;\n }\n return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined');\n }\n var isWebWorker = (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope);\n // Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n // this code.\n var isNode = (!('nw' in _global) && typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]');\n var isBrowser = !isNode && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']);\n // we are in electron of nw, so we are both browser and nodejs\n // Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n // this code.\n var isMix = typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]' && !isWebWorker &&\n !!(isWindowExists && internalWindow['HTMLElement']);\n var zoneSymbolEventNames = {};\n var wrapFn = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n var eventNameSymbol = zoneSymbolEventNames[event.type];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames[event.type] = zoneSymbol('ON_PROPERTY' + event.type);\n }\n var target = this || event.target || _global;\n var listener = target[eventNameSymbol];\n var result;\n if (isBrowser && target === internalWindow && event.type === 'error') {\n // window.onerror have different signiture\n // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror#window.onerror\n // and onerror callback will prevent default when callback return true\n var errorEvent = event;\n result = listener &&\n listener.call(this, errorEvent.message, errorEvent.filename, errorEvent.lineno, errorEvent.colno, errorEvent.error);\n if (result === true) {\n event.preventDefault();\n }\n }\n else {\n result = listener && listener.apply(this, arguments);\n if (result != undefined && !result) {\n event.preventDefault();\n }\n }\n return result;\n };\n function patchProperty(obj, prop, prototype) {\n var desc = ObjectGetOwnPropertyDescriptor(obj, prop);\n if (!desc && prototype) {\n // when patch window object, use prototype to check prop exist or not\n var prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, prop);\n if (prototypeDesc) {\n desc = { enumerable: true, configurable: true };\n }\n }\n // if the descriptor not exists or is not configurable\n // just return\n if (!desc || !desc.configurable) {\n return;\n }\n var onPropPatchedSymbol = zoneSymbol('on' + prop + 'patched');\n if (obj.hasOwnProperty(onPropPatchedSymbol) && obj[onPropPatchedSymbol]) {\n return;\n }\n // A property descriptor cannot have getter/setter and be writable\n // deleting the writable and value properties avoids this error:\n //\n // TypeError: property descriptors must not specify a value or be writable when a\n // getter or setter has been specified\n delete desc.writable;\n delete desc.value;\n var originalDescGet = desc.get;\n var originalDescSet = desc.set;\n // substr(2) cuz 'onclick' -> 'click', etc\n var eventName = prop.substr(2);\n var eventNameSymbol = zoneSymbolEventNames[eventName];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames[eventName] = zoneSymbol('ON_PROPERTY' + eventName);\n }\n desc.set = function (newValue) {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n var target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return;\n }\n var previousValue = target[eventNameSymbol];\n if (previousValue) {\n target.removeEventListener(eventName, wrapFn);\n }\n // issue #978, when onload handler was added before loading zone.js\n // we should remove it with originalDescSet\n if (originalDescSet) {\n originalDescSet.apply(target, NULL_ON_PROP_VALUE);\n }\n if (typeof newValue === 'function') {\n target[eventNameSymbol] = newValue;\n target.addEventListener(eventName, wrapFn, false);\n }\n else {\n target[eventNameSymbol] = null;\n }\n };\n // The getter would return undefined for unassigned properties but the default value of an\n // unassigned property is null\n desc.get = function () {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n var target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return null;\n }\n var listener = target[eventNameSymbol];\n if (listener) {\n return listener;\n }\n else if (originalDescGet) {\n // result will be null when use inline event attribute,\n // such as \n // because the onclick function is internal raw uncompiled handler\n // the onclick will be evaluated when first time event was triggered or\n // the property is accessed, https://github.com/angular/zone.js/issues/525\n // so we should use original native get to retrieve the handler\n var value = originalDescGet && originalDescGet.call(this);\n if (value) {\n desc.set.call(this, value);\n if (typeof target[REMOVE_ATTRIBUTE] === 'function') {\n target.removeAttribute(prop);\n }\n return value;\n }\n }\n return null;\n };\n ObjectDefineProperty(obj, prop, desc);\n obj[onPropPatchedSymbol] = true;\n }\n function patchOnProperties(obj, properties, prototype) {\n if (properties) {\n for (var i = 0; i < properties.length; i++) {\n patchProperty(obj, 'on' + properties[i], prototype);\n }\n }\n else {\n var onProperties = [];\n for (var prop in obj) {\n if (prop.substr(0, 2) == 'on') {\n onProperties.push(prop);\n }\n }\n for (var j = 0; j < onProperties.length; j++) {\n patchProperty(obj, onProperties[j], prototype);\n }\n }\n }\n var originalInstanceKey = zoneSymbol('originalInstance');\n // wrap some native API on `window`\n function patchClass(className) {\n var OriginalClass = _global[className];\n if (!OriginalClass)\n return;\n // keep original class in global\n _global[zoneSymbol(className)] = OriginalClass;\n _global[className] = function () {\n var a = bindArguments(arguments, className);\n switch (a.length) {\n case 0:\n this[originalInstanceKey] = new OriginalClass();\n break;\n case 1:\n this[originalInstanceKey] = new OriginalClass(a[0]);\n break;\n case 2:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1]);\n break;\n case 3:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]);\n break;\n case 4:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]);\n break;\n default:\n throw new Error('Arg list too long.');\n }\n };\n // attach original delegate to patched function\n attachOriginToPatched(_global[className], OriginalClass);\n var instance = new OriginalClass(function () { });\n var prop;\n for (prop in instance) {\n // https://bugs.webkit.org/show_bug.cgi?id=44721\n if (className === 'XMLHttpRequest' && prop === 'responseBlob')\n continue;\n (function (prop) {\n if (typeof instance[prop] === 'function') {\n _global[className].prototype[prop] = function () {\n return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments);\n };\n }\n else {\n ObjectDefineProperty(_global[className].prototype, prop, {\n set: function (fn) {\n if (typeof fn === 'function') {\n this[originalInstanceKey][prop] = wrapWithCurrentZone(fn, className + '.' + prop);\n // keep callback in wrapped function so we can\n // use it in Function.prototype.toString to return\n // the native one.\n attachOriginToPatched(this[originalInstanceKey][prop], fn);\n }\n else {\n this[originalInstanceKey][prop] = fn;\n }\n },\n get: function () { return this[originalInstanceKey][prop]; }\n });\n }\n }(prop));\n }\n for (prop in OriginalClass) {\n if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) {\n _global[className][prop] = OriginalClass[prop];\n }\n }\n }\n function copySymbolProperties(src, dest) {\n if (typeof Object.getOwnPropertySymbols !== 'function') {\n return;\n }\n var symbols = Object.getOwnPropertySymbols(src);\n symbols.forEach(function (symbol) {\n var desc = Object.getOwnPropertyDescriptor(src, symbol);\n Object.defineProperty(dest, symbol, {\n get: function () { return src[symbol]; },\n set: function (value) {\n if (desc && (!desc.writable || typeof desc.set !== 'function')) {\n // if src[symbol] is not writable or not have a setter, just return\n return;\n }\n src[symbol] = value;\n },\n enumerable: desc ? desc.enumerable : true,\n configurable: desc ? desc.configurable : true\n });\n });\n }\n var shouldCopySymbolProperties = false;\n function patchMethod(target, name, patchFn) {\n var proto = target;\n while (proto && !proto.hasOwnProperty(name)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && target[name]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = target;\n }\n var delegateName = zoneSymbol(name);\n var delegate = null;\n if (proto && !(delegate = proto[delegateName])) {\n delegate = proto[delegateName] = proto[name];\n // check whether proto[name] is writable\n // some property is readonly in safari, such as HtmlCanvasElement.prototype.toBlob\n var desc = proto && ObjectGetOwnPropertyDescriptor(proto, name);\n if (isPropertyWritable(desc)) {\n var patchDelegate_1 = patchFn(delegate, delegateName, name);\n proto[name] = function () { return patchDelegate_1(this, arguments); };\n attachOriginToPatched(proto[name], delegate);\n if (shouldCopySymbolProperties) {\n copySymbolProperties(delegate, proto[name]);\n }\n }\n }\n return delegate;\n }\n // TODO: @JiaLiPassion, support cancel task later if necessary\n function patchMacroTask(obj, funcName, metaCreator) {\n var setNative = null;\n function scheduleTask(task) {\n var data = task.data;\n data.args[data.cbIdx] = function () { task.invoke.apply(this, arguments); };\n setNative.apply(data.target, data.args);\n return task;\n }\n setNative = patchMethod(obj, funcName, function (delegate) { return function (self, args) {\n var meta = metaCreator(self, args);\n if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') {\n return scheduleMacroTaskWithCurrentZone(meta.name, args[meta.cbIdx], meta, scheduleTask);\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(self, args);\n }\n }; });\n }\n function attachOriginToPatched(patched, original) {\n patched[zoneSymbol('OriginalDelegate')] = original;\n }\n var isDetectedIEOrEdge = false;\n var ieOrEdge = false;\n function isIE() {\n try {\n var ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1) {\n return true;\n }\n }\n catch (error) {\n }\n return false;\n }\n function isIEOrEdge() {\n if (isDetectedIEOrEdge) {\n return ieOrEdge;\n }\n isDetectedIEOrEdge = true;\n try {\n var ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1 || ua.indexOf('Edge/') !== -1) {\n ieOrEdge = true;\n }\n }\n catch (error) {\n }\n return ieOrEdge;\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n // override Function.prototype.toString to make zone.js patched function\n // look like native function\n Zone.__load_patch('toString', function (global) {\n // patch Func.prototype.toString to let them look like native\n var originalFunctionToString = Function.prototype.toString;\n var ORIGINAL_DELEGATE_SYMBOL = zoneSymbol('OriginalDelegate');\n var PROMISE_SYMBOL = zoneSymbol('Promise');\n var ERROR_SYMBOL = zoneSymbol('Error');\n var newFunctionToString = function toString() {\n if (typeof this === 'function') {\n var originalDelegate = this[ORIGINAL_DELEGATE_SYMBOL];\n if (originalDelegate) {\n if (typeof originalDelegate === 'function') {\n return originalFunctionToString.call(originalDelegate);\n }\n else {\n return Object.prototype.toString.call(originalDelegate);\n }\n }\n if (this === Promise) {\n var nativePromise = global[PROMISE_SYMBOL];\n if (nativePromise) {\n return originalFunctionToString.call(nativePromise);\n }\n }\n if (this === Error) {\n var nativeError = global[ERROR_SYMBOL];\n if (nativeError) {\n return originalFunctionToString.call(nativeError);\n }\n }\n }\n return originalFunctionToString.call(this);\n };\n newFunctionToString[ORIGINAL_DELEGATE_SYMBOL] = originalFunctionToString;\n Function.prototype.toString = newFunctionToString;\n // patch Object.prototype.toString to let them look like native\n var originalObjectToString = Object.prototype.toString;\n var PROMISE_OBJECT_TO_STRING = '[object Promise]';\n Object.prototype.toString = function () {\n if (this instanceof Promise) {\n return PROMISE_OBJECT_TO_STRING;\n }\n return originalObjectToString.call(this);\n };\n });\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n var passiveSupported = false;\n if (typeof window !== 'undefined') {\n try {\n var options = Object.defineProperty({}, 'passive', { get: function () { passiveSupported = true; } });\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n }\n // an identifier to tell ZoneTask do not create a new invoke closure\n var OPTIMIZED_ZONE_EVENT_TASK_DATA = {\n useG: true\n };\n var zoneSymbolEventNames$1 = {};\n var globalSources = {};\n var EVENT_NAME_SYMBOL_REGX = new RegExp('^' + ZONE_SYMBOL_PREFIX + '(\\\\w+)(true|false)$');\n var IMMEDIATE_PROPAGATION_SYMBOL = zoneSymbol('propagationStopped');\n function prepareEventNames(eventName, eventNameToString) {\n var falseEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + FALSE_STR;\n var trueEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + TRUE_STR;\n var symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames$1[eventName] = {};\n zoneSymbolEventNames$1[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames$1[eventName][TRUE_STR] = symbolCapture;\n }\n function patchEventTarget(_global, apis, patchOptions) {\n var ADD_EVENT_LISTENER = (patchOptions && patchOptions.add) || ADD_EVENT_LISTENER_STR;\n var REMOVE_EVENT_LISTENER = (patchOptions && patchOptions.rm) || REMOVE_EVENT_LISTENER_STR;\n var LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.listeners) || 'eventListeners';\n var REMOVE_ALL_LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.rmAll) || 'removeAllListeners';\n var zoneSymbolAddEventListener = zoneSymbol(ADD_EVENT_LISTENER);\n var ADD_EVENT_LISTENER_SOURCE = '.' + ADD_EVENT_LISTENER + ':';\n var PREPEND_EVENT_LISTENER = 'prependListener';\n var PREPEND_EVENT_LISTENER_SOURCE = '.' + PREPEND_EVENT_LISTENER + ':';\n var invokeTask = function (task, target, event) {\n // for better performance, check isRemoved which is set\n // by removeEventListener\n if (task.isRemoved) {\n return;\n }\n var delegate = task.callback;\n if (typeof delegate === 'object' && delegate.handleEvent) {\n // create the bind version of handleEvent when invoke\n task.callback = function (event) { return delegate.handleEvent(event); };\n task.originalDelegate = delegate;\n }\n // invoke static task.invoke\n task.invoke(task, target, [event]);\n var options = task.options;\n if (options && typeof options === 'object' && options.once) {\n // if options.once is true, after invoke once remove listener here\n // only browser need to do this, nodejs eventEmitter will cal removeListener\n // inside EventEmitter.once\n var delegate_1 = task.originalDelegate ? task.originalDelegate : task.callback;\n target[REMOVE_EVENT_LISTENER].call(target, event.type, delegate_1, options);\n }\n };\n // global shared zoneAwareCallback to handle all event callback with capture = false\n var globalZoneAwareCallback = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n var target = this || event.target || _global;\n var tasks = target[zoneSymbolEventNames$1[event.type][FALSE_STR]];\n if (tasks) {\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n invokeTask(tasks[0], target, event);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n var copyTasks = tasks.slice();\n for (var i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n invokeTask(copyTasks[i], target, event);\n }\n }\n }\n };\n // global shared zoneAwareCallback to handle all event callback with capture = true\n var globalZoneAwareCaptureCallback = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n var target = this || event.target || _global;\n var tasks = target[zoneSymbolEventNames$1[event.type][TRUE_STR]];\n if (tasks) {\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n invokeTask(tasks[0], target, event);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n var copyTasks = tasks.slice();\n for (var i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n invokeTask(copyTasks[i], target, event);\n }\n }\n }\n };\n function patchEventTargetMethods(obj, patchOptions) {\n if (!obj) {\n return false;\n }\n var useGlobalCallback = true;\n if (patchOptions && patchOptions.useG !== undefined) {\n useGlobalCallback = patchOptions.useG;\n }\n var validateHandler = patchOptions && patchOptions.vh;\n var checkDuplicate = true;\n if (patchOptions && patchOptions.chkDup !== undefined) {\n checkDuplicate = patchOptions.chkDup;\n }\n var returnTarget = false;\n if (patchOptions && patchOptions.rt !== undefined) {\n returnTarget = patchOptions.rt;\n }\n var proto = obj;\n while (proto && !proto.hasOwnProperty(ADD_EVENT_LISTENER)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && obj[ADD_EVENT_LISTENER]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = obj;\n }\n if (!proto) {\n return false;\n }\n if (proto[zoneSymbolAddEventListener]) {\n return false;\n }\n var eventNameToString = patchOptions && patchOptions.eventNameToString;\n // a shared global taskData to pass data for scheduleEventTask\n // so we do not need to create a new object just for pass some data\n var taskData = {};\n var nativeAddEventListener = proto[zoneSymbolAddEventListener] = proto[ADD_EVENT_LISTENER];\n var nativeRemoveEventListener = proto[zoneSymbol(REMOVE_EVENT_LISTENER)] =\n proto[REMOVE_EVENT_LISTENER];\n var nativeListeners = proto[zoneSymbol(LISTENERS_EVENT_LISTENER)] =\n proto[LISTENERS_EVENT_LISTENER];\n var nativeRemoveAllListeners = proto[zoneSymbol(REMOVE_ALL_LISTENERS_EVENT_LISTENER)] =\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER];\n var nativePrependEventListener;\n if (patchOptions && patchOptions.prepend) {\n nativePrependEventListener = proto[zoneSymbol(patchOptions.prepend)] =\n proto[patchOptions.prepend];\n }\n /**\n * This util function will build an option object with passive option\n * to handle all possible input from the user.\n */\n function buildEventListenerOptions(options, passive) {\n if (!passiveSupported && typeof options === 'object' && options) {\n // doesn't support passive but user want to pass an object as options.\n // this will not work on some old browser, so we just pass a boolean\n // as useCapture parameter\n return !!options.capture;\n }\n if (!passiveSupported || !passive) {\n return options;\n }\n if (typeof options === 'boolean') {\n return { capture: options, passive: true };\n }\n if (!options) {\n return { passive: true };\n }\n if (typeof options === 'object' && options.passive !== false) {\n return Object.assign(Object.assign({}, options), { passive: true });\n }\n return options;\n }\n var customScheduleGlobal = function (task) {\n // if there is already a task for the eventName + capture,\n // just return, because we use the shared globalZoneAwareCallback here.\n if (taskData.isExisting) {\n return;\n }\n return nativeAddEventListener.call(taskData.target, taskData.eventName, taskData.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, taskData.options);\n };\n var customCancelGlobal = function (task) {\n // if task is not marked as isRemoved, this call is directly\n // from Zone.prototype.cancelTask, we should remove the task\n // from tasksList of target first\n if (!task.isRemoved) {\n var symbolEventNames = zoneSymbolEventNames$1[task.eventName];\n var symbolEventName = void 0;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[task.capture ? TRUE_STR : FALSE_STR];\n }\n var existingTasks = symbolEventName && task.target[symbolEventName];\n if (existingTasks) {\n for (var i = 0; i < existingTasks.length; i++) {\n var existingTask = existingTasks[i];\n if (existingTask === task) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n task.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n task.allRemoved = true;\n task.target[symbolEventName] = null;\n }\n break;\n }\n }\n }\n }\n // if all tasks for the eventName + capture have gone,\n // we will really remove the global event callback,\n // if not, return\n if (!task.allRemoved) {\n return;\n }\n return nativeRemoveEventListener.call(task.target, task.eventName, task.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, task.options);\n };\n var customScheduleNonGlobal = function (task) {\n return nativeAddEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n var customSchedulePrepend = function (task) {\n return nativePrependEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n var customCancelNonGlobal = function (task) {\n return nativeRemoveEventListener.call(task.target, task.eventName, task.invoke, task.options);\n };\n var customSchedule = useGlobalCallback ? customScheduleGlobal : customScheduleNonGlobal;\n var customCancel = useGlobalCallback ? customCancelGlobal : customCancelNonGlobal;\n var compareTaskCallbackVsDelegate = function (task, delegate) {\n var typeOfDelegate = typeof delegate;\n return (typeOfDelegate === 'function' && task.callback === delegate) ||\n (typeOfDelegate === 'object' && task.originalDelegate === delegate);\n };\n var compare = (patchOptions && patchOptions.diff) ? patchOptions.diff : compareTaskCallbackVsDelegate;\n var blackListedEvents = Zone[zoneSymbol('BLACK_LISTED_EVENTS')];\n var passiveEvents = _global[zoneSymbol('PASSIVE_EVENTS')];\n var makeAddListener = function (nativeListener, addSource, customScheduleFn, customCancelFn, returnTarget, prepend) {\n if (returnTarget === void 0) { returnTarget = false; }\n if (prepend === void 0) { prepend = false; }\n return function () {\n var target = this || _global;\n var eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n var delegate = arguments[1];\n if (!delegate) {\n return nativeListener.apply(this, arguments);\n }\n if (isNode && eventName === 'uncaughtException') {\n // don't patch uncaughtException of nodejs to prevent endless loop\n return nativeListener.apply(this, arguments);\n }\n // don't create the bind delegate function for handleEvent\n // case here to improve addEventListener performance\n // we will create the bind delegate when invoke\n var isHandleEvent = false;\n if (typeof delegate !== 'function') {\n if (!delegate.handleEvent) {\n return nativeListener.apply(this, arguments);\n }\n isHandleEvent = true;\n }\n if (validateHandler && !validateHandler(nativeListener, delegate, target, arguments)) {\n return;\n }\n var passive = passiveSupported && !!passiveEvents && passiveEvents.indexOf(eventName) !== -1;\n var options = buildEventListenerOptions(arguments[2], passive);\n if (blackListedEvents) {\n // check black list\n for (var i = 0; i < blackListedEvents.length; i++) {\n if (eventName === blackListedEvents[i]) {\n if (passive) {\n return nativeListener.call(target, eventName, delegate, options);\n }\n else {\n return nativeListener.apply(this, arguments);\n }\n }\n }\n }\n var capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n var once = options && typeof options === 'object' ? options.once : false;\n var zone = Zone.current;\n var symbolEventNames = zoneSymbolEventNames$1[eventName];\n if (!symbolEventNames) {\n prepareEventNames(eventName, eventNameToString);\n symbolEventNames = zoneSymbolEventNames$1[eventName];\n }\n var symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n var existingTasks = target[symbolEventName];\n var isExisting = false;\n if (existingTasks) {\n // already have task registered\n isExisting = true;\n if (checkDuplicate) {\n for (var i = 0; i < existingTasks.length; i++) {\n if (compare(existingTasks[i], delegate)) {\n // same callback, same capture, same event name, just return\n return;\n }\n }\n }\n }\n else {\n existingTasks = target[symbolEventName] = [];\n }\n var source;\n var constructorName = target.constructor['name'];\n var targetSource = globalSources[constructorName];\n if (targetSource) {\n source = targetSource[eventName];\n }\n if (!source) {\n source = constructorName + addSource +\n (eventNameToString ? eventNameToString(eventName) : eventName);\n }\n // do not create a new object as task.data to pass those things\n // just use the global shared one\n taskData.options = options;\n if (once) {\n // if addEventListener with once options, we don't pass it to\n // native addEventListener, instead we keep the once setting\n // and handle ourselves.\n taskData.options.once = false;\n }\n taskData.target = target;\n taskData.capture = capture;\n taskData.eventName = eventName;\n taskData.isExisting = isExisting;\n var data = useGlobalCallback ? OPTIMIZED_ZONE_EVENT_TASK_DATA : undefined;\n // keep taskData into data to allow onScheduleEventTask to access the task information\n if (data) {\n data.taskData = taskData;\n }\n var task = zone.scheduleEventTask(source, delegate, data, customScheduleFn, customCancelFn);\n // should clear taskData.target to avoid memory leak\n // issue, https://github.com/angular/angular/issues/20442\n taskData.target = null;\n // need to clear up taskData because it is a global object\n if (data) {\n data.taskData = null;\n }\n // have to save those information to task in case\n // application may call task.zone.cancelTask() directly\n if (once) {\n options.once = true;\n }\n if (!(!passiveSupported && typeof task.options === 'boolean')) {\n // if not support passive, and we pass an option object\n // to addEventListener, we should save the options to task\n task.options = options;\n }\n task.target = target;\n task.capture = capture;\n task.eventName = eventName;\n if (isHandleEvent) {\n // save original delegate for compare to check duplicate\n task.originalDelegate = delegate;\n }\n if (!prepend) {\n existingTasks.push(task);\n }\n else {\n existingTasks.unshift(task);\n }\n if (returnTarget) {\n return target;\n }\n };\n };\n proto[ADD_EVENT_LISTENER] = makeAddListener(nativeAddEventListener, ADD_EVENT_LISTENER_SOURCE, customSchedule, customCancel, returnTarget);\n if (nativePrependEventListener) {\n proto[PREPEND_EVENT_LISTENER] = makeAddListener(nativePrependEventListener, PREPEND_EVENT_LISTENER_SOURCE, customSchedulePrepend, customCancel, returnTarget, true);\n }\n proto[REMOVE_EVENT_LISTENER] = function () {\n var target = this || _global;\n var eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n var options = arguments[2];\n var capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n var delegate = arguments[1];\n if (!delegate) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (validateHandler &&\n !validateHandler(nativeRemoveEventListener, delegate, target, arguments)) {\n return;\n }\n var symbolEventNames = zoneSymbolEventNames$1[eventName];\n var symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n }\n var existingTasks = symbolEventName && target[symbolEventName];\n if (existingTasks) {\n for (var i = 0; i < existingTasks.length; i++) {\n var existingTask = existingTasks[i];\n if (compare(existingTask, delegate)) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n existingTask.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n existingTask.allRemoved = true;\n target[symbolEventName] = null;\n // in the target, we have an event listener which is added by on_property\n // such as target.onclick = function() {}, so we need to clear this internal\n // property too if all delegates all removed\n if (typeof eventName === 'string') {\n var onPropertySymbol = ZONE_SYMBOL_PREFIX + 'ON_PROPERTY' + eventName;\n target[onPropertySymbol] = null;\n }\n }\n existingTask.zone.cancelTask(existingTask);\n if (returnTarget) {\n return target;\n }\n return;\n }\n }\n }\n // issue 930, didn't find the event name or callback\n // from zone kept existingTasks, the callback maybe\n // added outside of zone, we need to call native removeEventListener\n // to try to remove it.\n return nativeRemoveEventListener.apply(this, arguments);\n };\n proto[LISTENERS_EVENT_LISTENER] = function () {\n var target = this || _global;\n var eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n var listeners = [];\n var tasks = findEventTasks(target, eventNameToString ? eventNameToString(eventName) : eventName);\n for (var i = 0; i < tasks.length; i++) {\n var task = tasks[i];\n var delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n listeners.push(delegate);\n }\n return listeners;\n };\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER] = function () {\n var target = this || _global;\n var eventName = arguments[0];\n if (!eventName) {\n var keys = Object.keys(target);\n for (var i = 0; i < keys.length; i++) {\n var prop = keys[i];\n var match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n var evtName = match && match[1];\n // in nodejs EventEmitter, removeListener event is\n // used for monitoring the removeListener call,\n // so just keep removeListener eventListener until\n // all other eventListeners are removed\n if (evtName && evtName !== 'removeListener') {\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, evtName);\n }\n }\n // remove removeListener listener finally\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, 'removeListener');\n }\n else {\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n var symbolEventNames = zoneSymbolEventNames$1[eventName];\n if (symbolEventNames) {\n var symbolEventName = symbolEventNames[FALSE_STR];\n var symbolCaptureEventName = symbolEventNames[TRUE_STR];\n var tasks = target[symbolEventName];\n var captureTasks = target[symbolCaptureEventName];\n if (tasks) {\n var removeTasks = tasks.slice();\n for (var i = 0; i < removeTasks.length; i++) {\n var task = removeTasks[i];\n var delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n if (captureTasks) {\n var removeTasks = captureTasks.slice();\n for (var i = 0; i < removeTasks.length; i++) {\n var task = removeTasks[i];\n var delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n }\n }\n if (returnTarget) {\n return this;\n }\n };\n // for native toString patch\n attachOriginToPatched(proto[ADD_EVENT_LISTENER], nativeAddEventListener);\n attachOriginToPatched(proto[REMOVE_EVENT_LISTENER], nativeRemoveEventListener);\n if (nativeRemoveAllListeners) {\n attachOriginToPatched(proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER], nativeRemoveAllListeners);\n }\n if (nativeListeners) {\n attachOriginToPatched(proto[LISTENERS_EVENT_LISTENER], nativeListeners);\n }\n return true;\n }\n var results = [];\n for (var i = 0; i < apis.length; i++) {\n results[i] = patchEventTargetMethods(apis[i], patchOptions);\n }\n return results;\n }\n function findEventTasks(target, eventName) {\n if (!eventName) {\n var foundTasks = [];\n for (var prop in target) {\n var match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n var evtName = match && match[1];\n if (evtName && (!eventName || evtName === eventName)) {\n var tasks = target[prop];\n if (tasks) {\n for (var i = 0; i < tasks.length; i++) {\n foundTasks.push(tasks[i]);\n }\n }\n }\n }\n return foundTasks;\n }\n var symbolEventName = zoneSymbolEventNames$1[eventName];\n if (!symbolEventName) {\n prepareEventNames(eventName);\n symbolEventName = zoneSymbolEventNames$1[eventName];\n }\n var captureFalseTasks = target[symbolEventName[FALSE_STR]];\n var captureTrueTasks = target[symbolEventName[TRUE_STR]];\n if (!captureFalseTasks) {\n return captureTrueTasks ? captureTrueTasks.slice() : [];\n }\n else {\n return captureTrueTasks ? captureFalseTasks.concat(captureTrueTasks) :\n captureFalseTasks.slice();\n }\n }\n function patchEventPrototype(global, api) {\n var Event = global['Event'];\n if (Event && Event.prototype) {\n api.patchMethod(Event.prototype, 'stopImmediatePropagation', function (delegate) { return function (self, args) {\n self[IMMEDIATE_PROPAGATION_SYMBOL] = true;\n // we need to call the native stopImmediatePropagation\n // in case in some hybrid application, some part of\n // application will be controlled by zone, some are not\n delegate && delegate.apply(self, args);\n }; });\n }\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function patchCallbacks(api, target, targetName, method, callbacks) {\n var symbol = Zone.__symbol__(method);\n if (target[symbol]) {\n return;\n }\n var nativeDelegate = target[symbol] = target[method];\n target[method] = function (name, opts, options) {\n if (opts && opts.prototype) {\n callbacks.forEach(function (callback) {\n var source = targetName + \".\" + method + \"::\" + callback;\n var prototype = opts.prototype;\n if (prototype.hasOwnProperty(callback)) {\n var descriptor = api.ObjectGetOwnPropertyDescriptor(prototype, callback);\n if (descriptor && descriptor.value) {\n descriptor.value = api.wrapWithCurrentZone(descriptor.value, source);\n api._redefineProperty(opts.prototype, callback, descriptor);\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n });\n }\n return nativeDelegate.call(target, name, opts, options);\n };\n api.attachOriginToPatched(target[method], nativeDelegate);\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n var globalEventHandlersEventNames = [\n 'abort',\n 'animationcancel',\n 'animationend',\n 'animationiteration',\n 'auxclick',\n 'beforeinput',\n 'blur',\n 'cancel',\n 'canplay',\n 'canplaythrough',\n 'change',\n 'compositionstart',\n 'compositionupdate',\n 'compositionend',\n 'cuechange',\n 'click',\n 'close',\n 'contextmenu',\n 'curechange',\n 'dblclick',\n 'drag',\n 'dragend',\n 'dragenter',\n 'dragexit',\n 'dragleave',\n 'dragover',\n 'drop',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'focus',\n 'focusin',\n 'focusout',\n 'gotpointercapture',\n 'input',\n 'invalid',\n 'keydown',\n 'keypress',\n 'keyup',\n 'load',\n 'loadstart',\n 'loadeddata',\n 'loadedmetadata',\n 'lostpointercapture',\n 'mousedown',\n 'mouseenter',\n 'mouseleave',\n 'mousemove',\n 'mouseout',\n 'mouseover',\n 'mouseup',\n 'mousewheel',\n 'orientationchange',\n 'pause',\n 'play',\n 'playing',\n 'pointercancel',\n 'pointerdown',\n 'pointerenter',\n 'pointerleave',\n 'pointerlockchange',\n 'mozpointerlockchange',\n 'webkitpointerlockerchange',\n 'pointerlockerror',\n 'mozpointerlockerror',\n 'webkitpointerlockerror',\n 'pointermove',\n 'pointout',\n 'pointerover',\n 'pointerup',\n 'progress',\n 'ratechange',\n 'reset',\n 'resize',\n 'scroll',\n 'seeked',\n 'seeking',\n 'select',\n 'selectionchange',\n 'selectstart',\n 'show',\n 'sort',\n 'stalled',\n 'submit',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'touchcancel',\n 'touchmove',\n 'touchstart',\n 'touchend',\n 'transitioncancel',\n 'transitionend',\n 'waiting',\n 'wheel'\n ];\n var documentEventNames = [\n 'afterscriptexecute', 'beforescriptexecute', 'DOMContentLoaded', 'freeze', 'fullscreenchange',\n 'mozfullscreenchange', 'webkitfullscreenchange', 'msfullscreenchange', 'fullscreenerror',\n 'mozfullscreenerror', 'webkitfullscreenerror', 'msfullscreenerror', 'readystatechange',\n 'visibilitychange', 'resume'\n ];\n var windowEventNames = [\n 'absolutedeviceorientation',\n 'afterinput',\n 'afterprint',\n 'appinstalled',\n 'beforeinstallprompt',\n 'beforeprint',\n 'beforeunload',\n 'devicelight',\n 'devicemotion',\n 'deviceorientation',\n 'deviceorientationabsolute',\n 'deviceproximity',\n 'hashchange',\n 'languagechange',\n 'message',\n 'mozbeforepaint',\n 'offline',\n 'online',\n 'paint',\n 'pageshow',\n 'pagehide',\n 'popstate',\n 'rejectionhandled',\n 'storage',\n 'unhandledrejection',\n 'unload',\n 'userproximity',\n 'vrdisplayconnected',\n 'vrdisplaydisconnected',\n 'vrdisplaypresentchange'\n ];\n var htmlElementEventNames = [\n 'beforecopy', 'beforecut', 'beforepaste', 'copy', 'cut', 'paste', 'dragstart', 'loadend',\n 'animationstart', 'search', 'transitionrun', 'transitionstart', 'webkitanimationend',\n 'webkitanimationiteration', 'webkitanimationstart', 'webkittransitionend'\n ];\n var mediaElementEventNames = ['encrypted', 'waitingforkey', 'msneedkey', 'mozinterruptbegin', 'mozinterruptend'];\n var ieElementEventNames = [\n 'activate',\n 'afterupdate',\n 'ariarequest',\n 'beforeactivate',\n 'beforedeactivate',\n 'beforeeditfocus',\n 'beforeupdate',\n 'cellchange',\n 'controlselect',\n 'dataavailable',\n 'datasetchanged',\n 'datasetcomplete',\n 'errorupdate',\n 'filterchange',\n 'layoutcomplete',\n 'losecapture',\n 'move',\n 'moveend',\n 'movestart',\n 'propertychange',\n 'resizeend',\n 'resizestart',\n 'rowenter',\n 'rowexit',\n 'rowsdelete',\n 'rowsinserted',\n 'command',\n 'compassneedscalibration',\n 'deactivate',\n 'help',\n 'mscontentzoom',\n 'msmanipulationstatechanged',\n 'msgesturechange',\n 'msgesturedoubletap',\n 'msgestureend',\n 'msgesturehold',\n 'msgesturestart',\n 'msgesturetap',\n 'msgotpointercapture',\n 'msinertiastart',\n 'mslostpointercapture',\n 'mspointercancel',\n 'mspointerdown',\n 'mspointerenter',\n 'mspointerhover',\n 'mspointerleave',\n 'mspointermove',\n 'mspointerout',\n 'mspointerover',\n 'mspointerup',\n 'pointerout',\n 'mssitemodejumplistitemremoved',\n 'msthumbnailclick',\n 'stop',\n 'storagecommit'\n ];\n var webglEventNames = ['webglcontextrestored', 'webglcontextlost', 'webglcontextcreationerror'];\n var formEventNames = ['autocomplete', 'autocompleteerror'];\n var detailEventNames = ['toggle'];\n var frameEventNames = ['load'];\n var frameSetEventNames = ['blur', 'error', 'focus', 'load', 'resize', 'scroll', 'messageerror'];\n var marqueeEventNames = ['bounce', 'finish', 'start'];\n var XMLHttpRequestEventNames = [\n 'loadstart', 'progress', 'abort', 'error', 'load', 'progress', 'timeout', 'loadend',\n 'readystatechange'\n ];\n var IDBIndexEventNames = ['upgradeneeded', 'complete', 'abort', 'success', 'error', 'blocked', 'versionchange', 'close'];\n var websocketEventNames = ['close', 'error', 'open', 'message'];\n var workerEventNames = ['error', 'message'];\n var eventNames = globalEventHandlersEventNames.concat(webglEventNames, formEventNames, detailEventNames, documentEventNames, windowEventNames, htmlElementEventNames, ieElementEventNames);\n function filterProperties(target, onProperties, ignoreProperties) {\n if (!ignoreProperties || ignoreProperties.length === 0) {\n return onProperties;\n }\n var tip = ignoreProperties.filter(function (ip) { return ip.target === target; });\n if (!tip || tip.length === 0) {\n return onProperties;\n }\n var targetIgnoreProperties = tip[0].ignoreProperties;\n return onProperties.filter(function (op) { return targetIgnoreProperties.indexOf(op) === -1; });\n }\n function patchFilteredProperties(target, onProperties, ignoreProperties, prototype) {\n // check whether target is available, sometimes target will be undefined\n // because different browser or some 3rd party plugin.\n if (!target) {\n return;\n }\n var filteredProperties = filterProperties(target, onProperties, ignoreProperties);\n patchOnProperties(target, filteredProperties, prototype);\n }\n function propertyDescriptorPatch(api, _global) {\n if (isNode && !isMix) {\n return;\n }\n if (Zone[api.symbol('patchEvents')]) {\n // events are already been patched by legacy patch.\n return;\n }\n var supportsWebSocket = typeof WebSocket !== 'undefined';\n var ignoreProperties = _global['__Zone_ignore_on_properties'];\n // for browsers that we can patch the descriptor: Chrome & Firefox\n if (isBrowser) {\n var internalWindow_1 = window;\n var ignoreErrorProperties = isIE ? [{ target: internalWindow_1, ignoreProperties: ['error'] }] : [];\n // in IE/Edge, onProp not exist in window object, but in WindowPrototype\n // so we need to pass WindowPrototype to check onProp exist or not\n patchFilteredProperties(internalWindow_1, eventNames.concat(['messageerror']), ignoreProperties ? ignoreProperties.concat(ignoreErrorProperties) : ignoreProperties, ObjectGetPrototypeOf(internalWindow_1));\n patchFilteredProperties(Document.prototype, eventNames, ignoreProperties);\n if (typeof internalWindow_1['SVGElement'] !== 'undefined') {\n patchFilteredProperties(internalWindow_1['SVGElement'].prototype, eventNames, ignoreProperties);\n }\n patchFilteredProperties(Element.prototype, eventNames, ignoreProperties);\n patchFilteredProperties(HTMLElement.prototype, eventNames, ignoreProperties);\n patchFilteredProperties(HTMLMediaElement.prototype, mediaElementEventNames, ignoreProperties);\n patchFilteredProperties(HTMLFrameSetElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties);\n patchFilteredProperties(HTMLBodyElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties);\n patchFilteredProperties(HTMLFrameElement.prototype, frameEventNames, ignoreProperties);\n patchFilteredProperties(HTMLIFrameElement.prototype, frameEventNames, ignoreProperties);\n var HTMLMarqueeElement_1 = internalWindow_1['HTMLMarqueeElement'];\n if (HTMLMarqueeElement_1) {\n patchFilteredProperties(HTMLMarqueeElement_1.prototype, marqueeEventNames, ignoreProperties);\n }\n var Worker_1 = internalWindow_1['Worker'];\n if (Worker_1) {\n patchFilteredProperties(Worker_1.prototype, workerEventNames, ignoreProperties);\n }\n }\n var XMLHttpRequest = _global['XMLHttpRequest'];\n if (XMLHttpRequest) {\n // XMLHttpRequest is not available in ServiceWorker, so we need to check here\n patchFilteredProperties(XMLHttpRequest.prototype, XMLHttpRequestEventNames, ignoreProperties);\n }\n var XMLHttpRequestEventTarget = _global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget) {\n patchFilteredProperties(XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype, XMLHttpRequestEventNames, ignoreProperties);\n }\n if (typeof IDBIndex !== 'undefined') {\n patchFilteredProperties(IDBIndex.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBRequest.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBOpenDBRequest.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBDatabase.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBTransaction.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBCursor.prototype, IDBIndexEventNames, ignoreProperties);\n }\n if (supportsWebSocket) {\n patchFilteredProperties(WebSocket.prototype, websocketEventNames, ignoreProperties);\n }\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n Zone.__load_patch('util', function (global, Zone, api) {\n api.patchOnProperties = patchOnProperties;\n api.patchMethod = patchMethod;\n api.bindArguments = bindArguments;\n api.patchMacroTask = patchMacroTask;\n // In earlier version of zone.js (<0.9.0), we use env name `__zone_symbol__BLACK_LISTED_EVENTS` to\n // define which events will not be patched by `Zone.js`.\n // In newer version (>=0.9.0), we change the env name to `__zone_symbol__UNPATCHED_EVENTS` to keep\n // the name consistent with angular repo.\n // The `__zone_symbol__BLACK_LISTED_EVENTS` is deprecated, but it is still be supported for\n // backwards compatibility.\n var SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS');\n var SYMBOL_UNPATCHED_EVENTS = Zone.__symbol__('UNPATCHED_EVENTS');\n if (global[SYMBOL_UNPATCHED_EVENTS]) {\n global[SYMBOL_BLACK_LISTED_EVENTS] = global[SYMBOL_UNPATCHED_EVENTS];\n }\n if (global[SYMBOL_BLACK_LISTED_EVENTS]) {\n Zone[SYMBOL_BLACK_LISTED_EVENTS] = Zone[SYMBOL_UNPATCHED_EVENTS] =\n global[SYMBOL_BLACK_LISTED_EVENTS];\n }\n api.patchEventPrototype = patchEventPrototype;\n api.patchEventTarget = patchEventTarget;\n api.isIEOrEdge = isIEOrEdge;\n api.ObjectDefineProperty = ObjectDefineProperty;\n api.ObjectGetOwnPropertyDescriptor = ObjectGetOwnPropertyDescriptor;\n api.ObjectCreate = ObjectCreate;\n api.ArraySlice = ArraySlice;\n api.patchClass = patchClass;\n api.wrapWithCurrentZone = wrapWithCurrentZone;\n api.filterProperties = filterProperties;\n api.attachOriginToPatched = attachOriginToPatched;\n api._redefineProperty = Object.defineProperty;\n api.patchCallbacks = patchCallbacks;\n api.getGlobalObjects = function () { return ({ globalSources: globalSources, zoneSymbolEventNames: zoneSymbolEventNames$1, eventNames: eventNames, isBrowser: isBrowser, isMix: isMix, isNode: isNode, TRUE_STR: TRUE_STR,\n FALSE_STR: FALSE_STR, ZONE_SYMBOL_PREFIX: ZONE_SYMBOL_PREFIX, ADD_EVENT_LISTENER_STR: ADD_EVENT_LISTENER_STR, REMOVE_EVENT_LISTENER_STR: REMOVE_EVENT_LISTENER_STR }); };\n });\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n /*\n * This is necessary for Chrome and Chrome mobile, to enable\n * things like redefining `createdCallback` on an element.\n */\n var zoneSymbol$1;\n var _defineProperty;\n var _getOwnPropertyDescriptor;\n var _create;\n var unconfigurablesKey;\n function propertyPatch() {\n zoneSymbol$1 = Zone.__symbol__;\n _defineProperty = Object[zoneSymbol$1('defineProperty')] = Object.defineProperty;\n _getOwnPropertyDescriptor = Object[zoneSymbol$1('getOwnPropertyDescriptor')] =\n Object.getOwnPropertyDescriptor;\n _create = Object.create;\n unconfigurablesKey = zoneSymbol$1('unconfigurables');\n Object.defineProperty = function (obj, prop, desc) {\n if (isUnconfigurable(obj, prop)) {\n throw new TypeError('Cannot assign to read only property \\'' + prop + '\\' of ' + obj);\n }\n var originalConfigurableFlag = desc.configurable;\n if (prop !== 'prototype') {\n desc = rewriteDescriptor(obj, prop, desc);\n }\n return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag);\n };\n Object.defineProperties = function (obj, props) {\n Object.keys(props).forEach(function (prop) { Object.defineProperty(obj, prop, props[prop]); });\n return obj;\n };\n Object.create = function (obj, proto) {\n if (typeof proto === 'object' && !Object.isFrozen(proto)) {\n Object.keys(proto).forEach(function (prop) {\n proto[prop] = rewriteDescriptor(obj, prop, proto[prop]);\n });\n }\n return _create(obj, proto);\n };\n Object.getOwnPropertyDescriptor = function (obj, prop) {\n var desc = _getOwnPropertyDescriptor(obj, prop);\n if (desc && isUnconfigurable(obj, prop)) {\n desc.configurable = false;\n }\n return desc;\n };\n }\n function _redefineProperty(obj, prop, desc) {\n var originalConfigurableFlag = desc.configurable;\n desc = rewriteDescriptor(obj, prop, desc);\n return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag);\n }\n function isUnconfigurable(obj, prop) {\n return obj && obj[unconfigurablesKey] && obj[unconfigurablesKey][prop];\n }\n function rewriteDescriptor(obj, prop, desc) {\n // issue-927, if the desc is frozen, don't try to change the desc\n if (!Object.isFrozen(desc)) {\n desc.configurable = true;\n }\n if (!desc.configurable) {\n // issue-927, if the obj is frozen, don't try to set the desc to obj\n if (!obj[unconfigurablesKey] && !Object.isFrozen(obj)) {\n _defineProperty(obj, unconfigurablesKey, { writable: true, value: {} });\n }\n if (obj[unconfigurablesKey]) {\n obj[unconfigurablesKey][prop] = true;\n }\n }\n return desc;\n }\n function _tryDefineProperty(obj, prop, desc, originalConfigurableFlag) {\n try {\n return _defineProperty(obj, prop, desc);\n }\n catch (error) {\n if (desc.configurable) {\n // In case of errors, when the configurable flag was likely set by rewriteDescriptor(), let's\n // retry with the original flag value\n if (typeof originalConfigurableFlag == 'undefined') {\n delete desc.configurable;\n }\n else {\n desc.configurable = originalConfigurableFlag;\n }\n try {\n return _defineProperty(obj, prop, desc);\n }\n catch (error) {\n var descJson = null;\n try {\n descJson = JSON.stringify(desc);\n }\n catch (error) {\n descJson = desc.toString();\n }\n console.log(\"Attempting to configure '\" + prop + \"' with descriptor '\" + descJson + \"' on object '\" + obj + \"' and got error, giving up: \" + error);\n }\n }\n else {\n throw error;\n }\n }\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function eventTargetLegacyPatch(_global, api) {\n var _a = api.getGlobalObjects(), eventNames = _a.eventNames, globalSources = _a.globalSources, zoneSymbolEventNames = _a.zoneSymbolEventNames, TRUE_STR = _a.TRUE_STR, FALSE_STR = _a.FALSE_STR, ZONE_SYMBOL_PREFIX = _a.ZONE_SYMBOL_PREFIX;\n var WTF_ISSUE_555 = 'Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video';\n var NO_EVENT_TARGET = 'ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket'\n .split(',');\n var EVENT_TARGET = 'EventTarget';\n var apis = [];\n var isWtf = _global['wtf'];\n var WTF_ISSUE_555_ARRAY = WTF_ISSUE_555.split(',');\n if (isWtf) {\n // Workaround for: https://github.com/google/tracing-framework/issues/555\n apis = WTF_ISSUE_555_ARRAY.map(function (v) { return 'HTML' + v + 'Element'; }).concat(NO_EVENT_TARGET);\n }\n else if (_global[EVENT_TARGET]) {\n apis.push(EVENT_TARGET);\n }\n else {\n // Note: EventTarget is not available in all browsers,\n // if it's not available, we instead patch the APIs in the IDL that inherit from EventTarget\n apis = NO_EVENT_TARGET;\n }\n var isDisableIECheck = _global['__Zone_disable_IE_check'] || false;\n var isEnableCrossContextCheck = _global['__Zone_enable_cross_context_check'] || false;\n var ieOrEdge = api.isIEOrEdge();\n var ADD_EVENT_LISTENER_SOURCE = '.addEventListener:';\n var FUNCTION_WRAPPER = '[object FunctionWrapper]';\n var BROWSER_TOOLS = 'function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }';\n var pointerEventsMap = {\n 'MSPointerCancel': 'pointercancel',\n 'MSPointerDown': 'pointerdown',\n 'MSPointerEnter': 'pointerenter',\n 'MSPointerHover': 'pointerhover',\n 'MSPointerLeave': 'pointerleave',\n 'MSPointerMove': 'pointermove',\n 'MSPointerOut': 'pointerout',\n 'MSPointerOver': 'pointerover',\n 'MSPointerUp': 'pointerup'\n };\n // predefine all __zone_symbol__ + eventName + true/false string\n for (var i = 0; i < eventNames.length; i++) {\n var eventName = eventNames[i];\n var falseEventName = eventName + FALSE_STR;\n var trueEventName = eventName + TRUE_STR;\n var symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n }\n // predefine all task.source string\n for (var i = 0; i < WTF_ISSUE_555_ARRAY.length; i++) {\n var target = WTF_ISSUE_555_ARRAY[i];\n var targets = globalSources[target] = {};\n for (var j = 0; j < eventNames.length; j++) {\n var eventName = eventNames[j];\n targets[eventName] = target + ADD_EVENT_LISTENER_SOURCE + eventName;\n }\n }\n var checkIEAndCrossContext = function (nativeDelegate, delegate, target, args) {\n if (!isDisableIECheck && ieOrEdge) {\n if (isEnableCrossContextCheck) {\n try {\n var testString = delegate.toString();\n if ((testString === FUNCTION_WRAPPER || testString == BROWSER_TOOLS)) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n catch (error) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n else {\n var testString = delegate.toString();\n if ((testString === FUNCTION_WRAPPER || testString == BROWSER_TOOLS)) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n }\n else if (isEnableCrossContextCheck) {\n try {\n delegate.toString();\n }\n catch (error) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n return true;\n };\n var apiTypes = [];\n for (var i = 0; i < apis.length; i++) {\n var type = _global[apis[i]];\n apiTypes.push(type && type.prototype);\n }\n // vh is validateHandler to check event handler\n // is valid or not(for security check)\n api.patchEventTarget(_global, apiTypes, {\n vh: checkIEAndCrossContext,\n transferEventName: function (eventName) {\n var pointerEventName = pointerEventsMap[eventName];\n return pointerEventName || eventName;\n }\n });\n Zone[api.symbol('patchEventTarget')] = !!_global[EVENT_TARGET];\n return true;\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n // we have to patch the instance since the proto is non-configurable\n function apply(api, _global) {\n var _a = api.getGlobalObjects(), ADD_EVENT_LISTENER_STR = _a.ADD_EVENT_LISTENER_STR, REMOVE_EVENT_LISTENER_STR = _a.REMOVE_EVENT_LISTENER_STR;\n var WS = _global.WebSocket;\n // On Safari window.EventTarget doesn't exist so need to patch WS add/removeEventListener\n // On older Chrome, no need since EventTarget was already patched\n if (!_global.EventTarget) {\n api.patchEventTarget(_global, [WS.prototype]);\n }\n _global.WebSocket = function (x, y) {\n var socket = arguments.length > 1 ? new WS(x, y) : new WS(x);\n var proxySocket;\n var proxySocketProto;\n // Safari 7.0 has non-configurable own 'onmessage' and friends properties on the socket instance\n var onmessageDesc = api.ObjectGetOwnPropertyDescriptor(socket, 'onmessage');\n if (onmessageDesc && onmessageDesc.configurable === false) {\n proxySocket = api.ObjectCreate(socket);\n // socket have own property descriptor 'onopen', 'onmessage', 'onclose', 'onerror'\n // but proxySocket not, so we will keep socket as prototype and pass it to\n // patchOnProperties method\n proxySocketProto = socket;\n [ADD_EVENT_LISTENER_STR, REMOVE_EVENT_LISTENER_STR, 'send', 'close'].forEach(function (propName) {\n proxySocket[propName] = function () {\n var args = api.ArraySlice.call(arguments);\n if (propName === ADD_EVENT_LISTENER_STR || propName === REMOVE_EVENT_LISTENER_STR) {\n var eventName = args.length > 0 ? args[0] : undefined;\n if (eventName) {\n var propertySymbol = Zone.__symbol__('ON_PROPERTY' + eventName);\n socket[propertySymbol] = proxySocket[propertySymbol];\n }\n }\n return socket[propName].apply(socket, args);\n };\n });\n }\n else {\n // we can patch the real socket\n proxySocket = socket;\n }\n api.patchOnProperties(proxySocket, ['close', 'error', 'message', 'open'], proxySocketProto);\n return proxySocket;\n };\n var globalWebSocket = _global['WebSocket'];\n for (var prop in WS) {\n globalWebSocket[prop] = WS[prop];\n }\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function propertyDescriptorLegacyPatch(api, _global) {\n var _a = api.getGlobalObjects(), isNode = _a.isNode, isMix = _a.isMix;\n if (isNode && !isMix) {\n return;\n }\n if (!canPatchViaPropertyDescriptor(api, _global)) {\n var supportsWebSocket = typeof WebSocket !== 'undefined';\n // Safari, Android browsers (Jelly Bean)\n patchViaCapturingAllTheEvents(api);\n api.patchClass('XMLHttpRequest');\n if (supportsWebSocket) {\n apply(api, _global);\n }\n Zone[api.symbol('patchEvents')] = true;\n }\n }\n function canPatchViaPropertyDescriptor(api, _global) {\n var _a = api.getGlobalObjects(), isBrowser = _a.isBrowser, isMix = _a.isMix;\n if ((isBrowser || isMix) &&\n !api.ObjectGetOwnPropertyDescriptor(HTMLElement.prototype, 'onclick') &&\n typeof Element !== 'undefined') {\n // WebKit https://bugs.webkit.org/show_bug.cgi?id=134364\n // IDL interface attributes are not configurable\n var desc = api.ObjectGetOwnPropertyDescriptor(Element.prototype, 'onclick');\n if (desc && !desc.configurable)\n return false;\n // try to use onclick to detect whether we can patch via propertyDescriptor\n // because XMLHttpRequest is not available in service worker\n if (desc) {\n api.ObjectDefineProperty(Element.prototype, 'onclick', { enumerable: true, configurable: true, get: function () { return true; } });\n var div = document.createElement('div');\n var result = !!div.onclick;\n api.ObjectDefineProperty(Element.prototype, 'onclick', desc);\n return result;\n }\n }\n var XMLHttpRequest = _global['XMLHttpRequest'];\n if (!XMLHttpRequest) {\n // XMLHttpRequest is not available in service worker\n return false;\n }\n var ON_READY_STATE_CHANGE = 'onreadystatechange';\n var XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n var xhrDesc = api.ObjectGetOwnPropertyDescriptor(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE);\n // add enumerable and configurable here because in opera\n // by default XMLHttpRequest.prototype.onreadystatechange is undefined\n // without adding enumerable and configurable will cause onreadystatechange\n // non-configurable\n // and if XMLHttpRequest.prototype.onreadystatechange is undefined,\n // we should set a real desc instead a fake one\n if (xhrDesc) {\n api.ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, { enumerable: true, configurable: true, get: function () { return true; } });\n var req = new XMLHttpRequest();\n var result = !!req.onreadystatechange;\n // restore original desc\n api.ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, xhrDesc || {});\n return result;\n }\n else {\n var SYMBOL_FAKE_ONREADYSTATECHANGE_1 = api.symbol('fake');\n api.ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, {\n enumerable: true,\n configurable: true,\n get: function () { return this[SYMBOL_FAKE_ONREADYSTATECHANGE_1]; },\n set: function (value) { this[SYMBOL_FAKE_ONREADYSTATECHANGE_1] = value; }\n });\n var req = new XMLHttpRequest();\n var detectFunc = function () { };\n req.onreadystatechange = detectFunc;\n var result = req[SYMBOL_FAKE_ONREADYSTATECHANGE_1] === detectFunc;\n req.onreadystatechange = null;\n return result;\n }\n }\n // Whenever any eventListener fires, we check the eventListener target and all parents\n // for `onwhatever` properties and replace them with zone-bound functions\n // - Chrome (for now)\n function patchViaCapturingAllTheEvents(api) {\n var eventNames = api.getGlobalObjects().eventNames;\n var unboundKey = api.symbol('unbound');\n var _loop_4 = function (i) {\n var property = eventNames[i];\n var onproperty = 'on' + property;\n self.addEventListener(property, function (event) {\n var elt = event.target, bound, source;\n if (elt) {\n source = elt.constructor['name'] + '.' + onproperty;\n }\n else {\n source = 'unknown.' + onproperty;\n }\n while (elt) {\n if (elt[onproperty] && !elt[onproperty][unboundKey]) {\n bound = api.wrapWithCurrentZone(elt[onproperty], source);\n bound[unboundKey] = elt[onproperty];\n elt[onproperty] = bound;\n }\n elt = elt.parentElement;\n }\n }, true);\n };\n for (var i = 0; i < eventNames.length; i++) {\n _loop_4(i);\n }\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function registerElementPatch(_global, api) {\n var _a = api.getGlobalObjects(), isBrowser = _a.isBrowser, isMix = _a.isMix;\n if ((!isBrowser && !isMix) || !('registerElement' in _global.document)) {\n return;\n }\n var callbacks = ['createdCallback', 'attachedCallback', 'detachedCallback', 'attributeChangedCallback'];\n api.patchCallbacks(api, document, 'Document', 'registerElement', callbacks);\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n (function (_global) {\n var symbolPrefix = _global['__Zone_symbol_prefix'] || '__zone_symbol__';\n function __symbol__(name) { return symbolPrefix + name; }\n _global[__symbol__('legacyPatch')] = function () {\n var Zone = _global['Zone'];\n Zone.__load_patch('defineProperty', function (global, Zone, api) {\n api._redefineProperty = _redefineProperty;\n propertyPatch();\n });\n Zone.__load_patch('registerElement', function (global, Zone, api) {\n registerElementPatch(global, api);\n });\n Zone.__load_patch('EventTargetLegacy', function (global, Zone, api) {\n eventTargetLegacyPatch(global, api);\n propertyDescriptorLegacyPatch(api, global);\n });\n };\n })(typeof window !== 'undefined' ?\n window :\n typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {});\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n var taskSymbol = zoneSymbol('zoneTask');\n function patchTimer(window, setName, cancelName, nameSuffix) {\n var setNative = null;\n var clearNative = null;\n setName += nameSuffix;\n cancelName += nameSuffix;\n var tasksByHandleId = {};\n function scheduleTask(task) {\n var data = task.data;\n function timer() {\n try {\n task.invoke.apply(this, arguments);\n }\n finally {\n // issue-934, task will be cancelled\n // even it is a periodic task such as\n // setInterval\n if (!(task.data && task.data.isPeriodic)) {\n if (typeof data.handleId === 'number') {\n // in non-nodejs env, we remove timerId\n // from local cache\n delete tasksByHandleId[data.handleId];\n }\n else if (data.handleId) {\n // Node returns complex objects as handleIds\n // we remove task reference from timer object\n data.handleId[taskSymbol] = null;\n }\n }\n }\n }\n data.args[0] = timer;\n data.handleId = setNative.apply(window, data.args);\n return task;\n }\n function clearTask(task) { return clearNative(task.data.handleId); }\n setNative =\n patchMethod(window, setName, function (delegate) { return function (self, args) {\n if (typeof args[0] === 'function') {\n var options = {\n isPeriodic: nameSuffix === 'Interval',\n delay: (nameSuffix === 'Timeout' || nameSuffix === 'Interval') ? args[1] || 0 :\n undefined,\n args: args\n };\n var task = scheduleMacroTaskWithCurrentZone(setName, args[0], options, scheduleTask, clearTask);\n if (!task) {\n return task;\n }\n // Node.js must additionally support the ref and unref functions.\n var handle = task.data.handleId;\n if (typeof handle === 'number') {\n // for non nodejs env, we save handleId: task\n // mapping in local cache for clearTimeout\n tasksByHandleId[handle] = task;\n }\n else if (handle) {\n // for nodejs env, we save task\n // reference in timerId Object for clearTimeout\n handle[taskSymbol] = task;\n }\n // check whether handle is null, because some polyfill or browser\n // may return undefined from setTimeout/setInterval/setImmediate/requestAnimationFrame\n if (handle && handle.ref && handle.unref && typeof handle.ref === 'function' &&\n typeof handle.unref === 'function') {\n task.ref = handle.ref.bind(handle);\n task.unref = handle.unref.bind(handle);\n }\n if (typeof handle === 'number' || handle) {\n return handle;\n }\n return task;\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(window, args);\n }\n }; });\n clearNative =\n patchMethod(window, cancelName, function (delegate) { return function (self, args) {\n var id = args[0];\n var task;\n if (typeof id === 'number') {\n // non nodejs env.\n task = tasksByHandleId[id];\n }\n else {\n // nodejs env.\n task = id && id[taskSymbol];\n // other environments.\n if (!task) {\n task = id;\n }\n }\n if (task && typeof task.type === 'string') {\n if (task.state !== 'notScheduled' &&\n (task.cancelFn && task.data.isPeriodic || task.runCount === 0)) {\n if (typeof id === 'number') {\n delete tasksByHandleId[id];\n }\n else if (id) {\n id[taskSymbol] = null;\n }\n // Do not cancel already canceled functions\n task.zone.cancelTask(task);\n }\n }\n else {\n // cause an error by calling it directly.\n delegate.apply(window, args);\n }\n }; });\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function patchCustomElements(_global, api) {\n var _a = api.getGlobalObjects(), isBrowser = _a.isBrowser, isMix = _a.isMix;\n if ((!isBrowser && !isMix) || !_global['customElements'] || !('customElements' in _global)) {\n return;\n }\n var callbacks = ['connectedCallback', 'disconnectedCallback', 'adoptedCallback', 'attributeChangedCallback'];\n api.patchCallbacks(api, _global.customElements, 'customElements', 'define', callbacks);\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function eventTargetPatch(_global, api) {\n if (Zone[api.symbol('patchEventTarget')]) {\n // EventTarget is already patched.\n return;\n }\n var _a = api.getGlobalObjects(), eventNames = _a.eventNames, zoneSymbolEventNames = _a.zoneSymbolEventNames, TRUE_STR = _a.TRUE_STR, FALSE_STR = _a.FALSE_STR, ZONE_SYMBOL_PREFIX = _a.ZONE_SYMBOL_PREFIX;\n // predefine all __zone_symbol__ + eventName + true/false string\n for (var i = 0; i < eventNames.length; i++) {\n var eventName = eventNames[i];\n var falseEventName = eventName + FALSE_STR;\n var trueEventName = eventName + TRUE_STR;\n var symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n }\n var EVENT_TARGET = _global['EventTarget'];\n if (!EVENT_TARGET || !EVENT_TARGET.prototype) {\n return;\n }\n api.patchEventTarget(_global, [EVENT_TARGET && EVENT_TARGET.prototype]);\n return true;\n }\n function patchEvent(global, api) {\n api.patchEventPrototype(global, api);\n }\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n Zone.__load_patch('legacy', function (global) {\n var legacyPatch = global[Zone.__symbol__('legacyPatch')];\n if (legacyPatch) {\n legacyPatch();\n }\n });\n Zone.__load_patch('timers', function (global) {\n var set = 'set';\n var clear = 'clear';\n patchTimer(global, set, clear, 'Timeout');\n patchTimer(global, set, clear, 'Interval');\n patchTimer(global, set, clear, 'Immediate');\n });\n Zone.__load_patch('requestAnimationFrame', function (global) {\n patchTimer(global, 'request', 'cancel', 'AnimationFrame');\n patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame');\n patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame');\n });\n Zone.__load_patch('blocking', function (global, Zone) {\n var blockingMethods = ['alert', 'prompt', 'confirm'];\n for (var i = 0; i < blockingMethods.length; i++) {\n var name_2 = blockingMethods[i];\n patchMethod(global, name_2, function (delegate, symbol, name) {\n return function (s, args) {\n return Zone.current.run(delegate, global, args, name);\n };\n });\n }\n });\n Zone.__load_patch('EventTarget', function (global, Zone, api) {\n patchEvent(global, api);\n eventTargetPatch(global, api);\n // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener\n var XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) {\n api.patchEventTarget(global, [XMLHttpRequestEventTarget.prototype]);\n }\n patchClass('MutationObserver');\n patchClass('WebKitMutationObserver');\n patchClass('IntersectionObserver');\n patchClass('FileReader');\n });\n Zone.__load_patch('on_property', function (global, Zone, api) {\n propertyDescriptorPatch(api, global);\n });\n Zone.__load_patch('customElements', function (global, Zone, api) {\n patchCustomElements(global, api);\n });\n Zone.__load_patch('XHR', function (global, Zone) {\n // Treat XMLHttpRequest as a macrotask.\n patchXHR(global);\n var XHR_TASK = zoneSymbol('xhrTask');\n var XHR_SYNC = zoneSymbol('xhrSync');\n var XHR_LISTENER = zoneSymbol('xhrListener');\n var XHR_SCHEDULED = zoneSymbol('xhrScheduled');\n var XHR_URL = zoneSymbol('xhrURL');\n var XHR_ERROR_BEFORE_SCHEDULED = zoneSymbol('xhrErrorBeforeScheduled');\n function patchXHR(window) {\n var XMLHttpRequest = window['XMLHttpRequest'];\n if (!XMLHttpRequest) {\n // XMLHttpRequest is not available in service worker\n return;\n }\n var XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n function findPendingTask(target) { return target[XHR_TASK]; }\n var oriAddListener = XMLHttpRequestPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n var oriRemoveListener = XMLHttpRequestPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n if (!oriAddListener) {\n var XMLHttpRequestEventTarget_1 = window['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget_1) {\n var XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget_1.prototype;\n oriAddListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n }\n var READY_STATE_CHANGE = 'readystatechange';\n var SCHEDULED = 'scheduled';\n function scheduleTask(task) {\n var data = task.data;\n var target = data.target;\n target[XHR_SCHEDULED] = false;\n target[XHR_ERROR_BEFORE_SCHEDULED] = false;\n // remove existing event listener\n var listener = target[XHR_LISTENER];\n if (!oriAddListener) {\n oriAddListener = target[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = target[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n if (listener) {\n oriRemoveListener.call(target, READY_STATE_CHANGE, listener);\n }\n var newListener = target[XHR_LISTENER] = function () {\n if (target.readyState === target.DONE) {\n // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with\n // readyState=4 multiple times, so we need to check task state here\n if (!data.aborted && target[XHR_SCHEDULED] && task.state === SCHEDULED) {\n // check whether the xhr has registered onload listener\n // if that is the case, the task should invoke after all\n // onload listeners finish.\n var loadTasks = target[Zone.__symbol__('loadfalse')];\n if (loadTasks && loadTasks.length > 0) {\n var oriInvoke_1 = task.invoke;\n task.invoke = function () {\n // need to load the tasks again, because in other\n // load listener, they may remove themselves\n var loadTasks = target[Zone.__symbol__('loadfalse')];\n for (var i = 0; i < loadTasks.length; i++) {\n if (loadTasks[i] === task) {\n loadTasks.splice(i, 1);\n }\n }\n if (!data.aborted && task.state === SCHEDULED) {\n oriInvoke_1.call(task);\n }\n };\n loadTasks.push(task);\n }\n else {\n task.invoke();\n }\n }\n else if (!data.aborted && target[XHR_SCHEDULED] === false) {\n // error occurs when xhr.send()\n target[XHR_ERROR_BEFORE_SCHEDULED] = true;\n }\n }\n };\n oriAddListener.call(target, READY_STATE_CHANGE, newListener);\n var storedTask = target[XHR_TASK];\n if (!storedTask) {\n target[XHR_TASK] = task;\n }\n sendNative.apply(target, data.args);\n target[XHR_SCHEDULED] = true;\n return task;\n }\n function placeholderCallback() { }\n function clearTask(task) {\n var data = task.data;\n // Note - ideally, we would call data.target.removeEventListener here, but it's too late\n // to prevent it from firing. So instead, we store info for the event listener.\n data.aborted = true;\n return abortNative.apply(data.target, data.args);\n }\n var openNative = patchMethod(XMLHttpRequestPrototype, 'open', function () { return function (self, args) {\n self[XHR_SYNC] = args[2] == false;\n self[XHR_URL] = args[1];\n return openNative.apply(self, args);\n }; });\n var XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send';\n var fetchTaskAborting = zoneSymbol('fetchTaskAborting');\n var fetchTaskScheduling = zoneSymbol('fetchTaskScheduling');\n var sendNative = patchMethod(XMLHttpRequestPrototype, 'send', function () { return function (self, args) {\n if (Zone.current[fetchTaskScheduling] === true) {\n // a fetch is scheduling, so we are using xhr to polyfill fetch\n // and because we already schedule macroTask for fetch, we should\n // not schedule a macroTask for xhr again\n return sendNative.apply(self, args);\n }\n if (self[XHR_SYNC]) {\n // if the XHR is sync there is no task to schedule, just execute the code.\n return sendNative.apply(self, args);\n }\n else {\n var options = { target: self, url: self[XHR_URL], isPeriodic: false, args: args, aborted: false };\n var task = scheduleMacroTaskWithCurrentZone(XMLHTTPREQUEST_SOURCE, placeholderCallback, options, scheduleTask, clearTask);\n if (self && self[XHR_ERROR_BEFORE_SCHEDULED] === true && !options.aborted &&\n task.state === SCHEDULED) {\n // xhr request throw error when send\n // we should invoke task instead of leaving a scheduled\n // pending macroTask\n task.invoke();\n }\n }\n }; });\n var abortNative = patchMethod(XMLHttpRequestPrototype, 'abort', function () { return function (self, args) {\n var task = findPendingTask(self);\n if (task && typeof task.type == 'string') {\n // If the XHR has already completed, do nothing.\n // If the XHR has already been aborted, do nothing.\n // Fix #569, call abort multiple times before done will cause\n // macroTask task count be negative number\n if (task.cancelFn == null || (task.data && task.data.aborted)) {\n return;\n }\n task.zone.cancelTask(task);\n }\n else if (Zone.current[fetchTaskAborting] === true) {\n // the abort is called from fetch polyfill, we need to call native abort of XHR.\n return abortNative.apply(self, args);\n }\n // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no\n // task\n // to cancel. Do nothing.\n }; });\n }\n });\n Zone.__load_patch('geolocation', function (global) {\n /// GEO_LOCATION\n if (global['navigator'] && global['navigator'].geolocation) {\n patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']);\n }\n });\n Zone.__load_patch('PromiseRejectionEvent', function (global, Zone) {\n // handle unhandled promise rejection\n function findPromiseRejectionHandler(evtName) {\n return function (e) {\n var eventTasks = findEventTasks(global, evtName);\n eventTasks.forEach(function (eventTask) {\n // windows has added unhandledrejection event listener\n // trigger the event listener\n var PromiseRejectionEvent = global['PromiseRejectionEvent'];\n if (PromiseRejectionEvent) {\n var evt = new PromiseRejectionEvent(evtName, { promise: e.promise, reason: e.rejection });\n eventTask.invoke(evt);\n }\n });\n };\n }\n if (global['PromiseRejectionEvent']) {\n Zone[zoneSymbol('unhandledPromiseRejectionHandler')] =\n findPromiseRejectionHandler('unhandledrejection');\n Zone[zoneSymbol('rejectionHandledHandler')] =\n findPromiseRejectionHandler('rejectionhandled');\n }\n });\n})));\n","var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob()\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n}\n\nfunction isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n}\n\nif (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n}\n\nfunction normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n}\n\nfunction normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n}\n\n// Build a destructive iterator for the value list\nfunction iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n}\n\nexport function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n}\n\nHeaders.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue + ', ' + value : value\n}\n\nHeaders.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n}\n\nHeaders.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n}\n\nHeaders.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n}\n\nHeaders.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n}\n\nHeaders.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n}\n\nHeaders.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push(name)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.values = function() {\n var items = []\n this.forEach(function(value) {\n items.push(value)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push([name, value])\n })\n return iteratorFor(items)\n}\n\nif (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n}\n\nfunction consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n}\n\nfunction fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n}\n\nfunction readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n}\n\nfunction readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n}\n\nfunction readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n}\n\nfunction bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n}\n\nfunction Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n this._bodyText = body = Object.prototype.toString.call(body)\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n}\n\n// HTTP methods whose capitalization should be normalized\nvar methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\nfunction normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return methods.indexOf(upcased) > -1 ? upcased : method\n}\n\nexport function Request(input, options) {\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n this.signal = input.signal\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.signal = options.signal || this.signal\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n}\n\nRequest.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n}\n\nfunction decode(body) {\n var form = new FormData()\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n}\n\nfunction parseHeaders(rawHeaders) {\n var headers = new Headers()\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n}\n\nBody.call(Request.prototype)\n\nexport function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = options.status === undefined ? 200 : options.status\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : 'OK'\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n}\n\nBody.call(Response.prototype)\n\nResponse.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n}\n\nResponse.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n}\n\nvar redirectStatuses = [301, 302, 303, 307, 308]\n\nResponse.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n}\n\nexport var DOMException = self.DOMException\ntry {\n new DOMException()\n} catch (err) {\n DOMException = function(message, name) {\n this.message = message\n this.name = name\n var error = Error(message)\n this.stack = error.stack\n }\n DOMException.prototype = Object.create(Error.prototype)\n DOMException.prototype.constructor = DOMException\n}\n\nexport function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n\n if (request.signal && request.signal.aborted) {\n return reject(new DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest()\n\n function abortXhr() {\n xhr.abort()\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.onabort = function() {\n reject(new DOMException('Aborted', 'AbortError'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr)\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr)\n }\n }\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n}\n\nfetch.polyfill = true\n\nif (!self.fetch) {\n self.fetch = fetch\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n}\n","/**\n * @file Web Cryptography API shim\n * @author Artem S Vybornov \n * @license MIT\n */\n(function (global, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define([], function () {\n return factory(global);\n });\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS-like environments that support module.exports\n module.exports = factory(global);\n } else {\n factory(global);\n }\n}(typeof self !== 'undefined' ? self : this, function (global) {\n 'use strict';\n\n if ( typeof Promise !== 'function' )\n throw \"Promise support required\";\n\n var _crypto = global.crypto || global.msCrypto;\n if ( !_crypto ) return;\n\n var _subtle = _crypto.subtle || _crypto.webkitSubtle;\n if ( !_subtle ) return;\n\n var _Crypto = global.Crypto || _crypto.constructor || Object,\n _SubtleCrypto = global.SubtleCrypto || _subtle.constructor || Object,\n _CryptoKey = global.CryptoKey || global.Key || Object;\n\n var isEdge = global.navigator.userAgent.indexOf('Edge/') > -1;\n var isIE = !!global.msCrypto && !isEdge;\n var isWebkit = !_crypto.subtle && !!_crypto.webkitSubtle;\n if ( !isIE && !isWebkit ) return;\n\n function s2a ( s ) {\n return btoa(s).replace(/\\=+$/, '').replace(/\\+/g, '-').replace(/\\//g, '_');\n }\n\n function a2s ( s ) {\n s += '===', s = s.slice( 0, -s.length % 4 );\n return atob( s.replace(/-/g, '+').replace(/_/g, '/') );\n }\n\n function s2b ( s ) {\n var b = new Uint8Array(s.length);\n for ( var i = 0; i < s.length; i++ ) b[i] = s.charCodeAt(i);\n return b;\n }\n\n function b2s ( b ) {\n if ( b instanceof ArrayBuffer ) b = new Uint8Array(b);\n return String.fromCharCode.apply( String, b );\n }\n\n function alg ( a ) {\n var r = { 'name': (a.name || a || '').toUpperCase().replace('V','v') };\n switch ( r.name ) {\n case 'SHA-1':\n case 'SHA-256':\n case 'SHA-384':\n case 'SHA-512':\n break;\n case 'AES-CBC':\n case 'AES-GCM':\n case 'AES-KW':\n if ( a.length ) r['length'] = a.length;\n break;\n case 'HMAC':\n if ( a.hash ) r['hash'] = alg(a.hash);\n if ( a.length ) r['length'] = a.length;\n break;\n case 'RSAES-PKCS1-v1_5':\n if ( a.publicExponent ) r['publicExponent'] = new Uint8Array(a.publicExponent);\n if ( a.modulusLength ) r['modulusLength'] = a.modulusLength;\n break;\n case 'RSASSA-PKCS1-v1_5':\n case 'RSA-OAEP':\n if ( a.hash ) r['hash'] = alg(a.hash);\n if ( a.publicExponent ) r['publicExponent'] = new Uint8Array(a.publicExponent);\n if ( a.modulusLength ) r['modulusLength'] = a.modulusLength;\n break;\n default:\n throw new SyntaxError(\"Bad algorithm name\");\n }\n return r;\n };\n\n function jwkAlg ( a ) {\n return {\n 'HMAC': {\n 'SHA-1': 'HS1',\n 'SHA-256': 'HS256',\n 'SHA-384': 'HS384',\n 'SHA-512': 'HS512',\n },\n 'RSASSA-PKCS1-v1_5': {\n 'SHA-1': 'RS1',\n 'SHA-256': 'RS256',\n 'SHA-384': 'RS384',\n 'SHA-512': 'RS512',\n },\n 'RSAES-PKCS1-v1_5': {\n '': 'RSA1_5',\n },\n 'RSA-OAEP': {\n 'SHA-1': 'RSA-OAEP',\n 'SHA-256': 'RSA-OAEP-256',\n },\n 'AES-KW': {\n '128': 'A128KW',\n '192': 'A192KW',\n '256': 'A256KW',\n },\n 'AES-GCM': {\n '128': 'A128GCM',\n '192': 'A192GCM',\n '256': 'A256GCM',\n },\n 'AES-CBC': {\n '128': 'A128CBC',\n '192': 'A192CBC',\n '256': 'A256CBC',\n },\n }[a.name][ ( a.hash || {} ).name || a.length || '' ];\n }\n\n function b2jwk ( k ) {\n if ( k instanceof ArrayBuffer || k instanceof Uint8Array ) k = JSON.parse( decodeURIComponent( escape( b2s(k) ) ) );\n var jwk = { 'kty': k.kty, 'alg': k.alg, 'ext': k.ext || k.extractable };\n switch ( jwk.kty ) {\n case 'oct':\n jwk.k = k.k;\n case 'RSA':\n [ 'n', 'e', 'd', 'p', 'q', 'dp', 'dq', 'qi', 'oth' ].forEach( function ( x ) { if ( x in k ) jwk[x] = k[x] } );\n break;\n default:\n throw new TypeError(\"Unsupported key type\");\n }\n return jwk;\n }\n\n function jwk2b ( k ) {\n var jwk = b2jwk(k);\n if ( isIE ) jwk['extractable'] = jwk.ext, delete jwk.ext;\n return s2b( unescape( encodeURIComponent( JSON.stringify(jwk) ) ) ).buffer;\n }\n\n function pkcs2jwk ( k ) {\n var info = b2der(k), prv = false;\n if ( info.length > 2 ) prv = true, info.shift(); // remove version from PKCS#8 PrivateKeyInfo structure\n var jwk = { 'ext': true };\n switch ( info[0][0] ) {\n case '1.2.840.113549.1.1.1':\n var rsaComp = [ 'n', 'e', 'd', 'p', 'q', 'dp', 'dq', 'qi' ],\n rsaKey = b2der( info[1] );\n if ( prv ) rsaKey.shift(); // remove version from PKCS#1 RSAPrivateKey structure\n for ( var i = 0; i < rsaKey.length; i++ ) {\n if ( !rsaKey[i][0] ) rsaKey[i] = rsaKey[i].subarray(1);\n jwk[ rsaComp[i] ] = s2a( b2s( rsaKey[i] ) );\n }\n jwk['kty'] = 'RSA';\n break;\n default:\n throw new TypeError(\"Unsupported key type\");\n }\n return jwk;\n }\n\n function jwk2pkcs ( k ) {\n var key, info = [ [ '', null ] ], prv = false;\n switch ( k.kty ) {\n case 'RSA':\n var rsaComp = [ 'n', 'e', 'd', 'p', 'q', 'dp', 'dq', 'qi' ],\n rsaKey = [];\n for ( var i = 0; i < rsaComp.length; i++ ) {\n if ( !( rsaComp[i] in k ) ) break;\n var b = rsaKey[i] = s2b( a2s( k[ rsaComp[i] ] ) );\n if ( b[0] & 0x80 ) rsaKey[i] = new Uint8Array(b.length + 1), rsaKey[i].set( b, 1 );\n }\n if ( rsaKey.length > 2 ) prv = true, rsaKey.unshift( new Uint8Array([0]) ); // add version to PKCS#1 RSAPrivateKey structure\n info[0][0] = '1.2.840.113549.1.1.1';\n key = rsaKey;\n break;\n default:\n throw new TypeError(\"Unsupported key type\");\n }\n info.push( new Uint8Array( der2b(key) ).buffer );\n if ( !prv ) info[1] = { 'tag': 0x03, 'value': info[1] };\n else info.unshift( new Uint8Array([0]) ); // add version to PKCS#8 PrivateKeyInfo structure\n return new Uint8Array( der2b(info) ).buffer;\n }\n\n var oid2str = { 'KoZIhvcNAQEB': '1.2.840.113549.1.1.1' },\n str2oid = { '1.2.840.113549.1.1.1': 'KoZIhvcNAQEB' };\n\n function b2der ( buf, ctx ) {\n if ( buf instanceof ArrayBuffer ) buf = new Uint8Array(buf);\n if ( !ctx ) ctx = { pos: 0, end: buf.length };\n\n if ( ctx.end - ctx.pos < 2 || ctx.end > buf.length ) throw new RangeError(\"Malformed DER\");\n\n var tag = buf[ctx.pos++],\n len = buf[ctx.pos++];\n\n if ( len >= 0x80 ) {\n len &= 0x7f;\n if ( ctx.end - ctx.pos < len ) throw new RangeError(\"Malformed DER\");\n for ( var xlen = 0; len--; ) xlen <<= 8, xlen |= buf[ctx.pos++];\n len = xlen;\n }\n\n if ( ctx.end - ctx.pos < len ) throw new RangeError(\"Malformed DER\");\n\n var rv;\n\n switch ( tag ) {\n case 0x02: // Universal Primitive INTEGER\n rv = buf.subarray( ctx.pos, ctx.pos += len );\n break;\n case 0x03: // Universal Primitive BIT STRING\n if ( buf[ctx.pos++] ) throw new Error( \"Unsupported bit string\" );\n len--;\n case 0x04: // Universal Primitive OCTET STRING\n rv = new Uint8Array( buf.subarray( ctx.pos, ctx.pos += len ) ).buffer;\n break;\n case 0x05: // Universal Primitive NULL\n rv = null;\n break;\n case 0x06: // Universal Primitive OBJECT IDENTIFIER\n var oid = btoa( b2s( buf.subarray( ctx.pos, ctx.pos += len ) ) );\n if ( !( oid in oid2str ) ) throw new Error( \"Unsupported OBJECT ID \" + oid );\n rv = oid2str[oid];\n break;\n case 0x30: // Universal Constructed SEQUENCE\n rv = [];\n for ( var end = ctx.pos + len; ctx.pos < end; ) rv.push( b2der( buf, ctx ) );\n break;\n default:\n throw new Error( \"Unsupported DER tag 0x\" + tag.toString(16) );\n }\n\n return rv;\n }\n\n function der2b ( val, buf ) {\n if ( !buf ) buf = [];\n\n var tag = 0, len = 0,\n pos = buf.length + 2;\n\n buf.push( 0, 0 ); // placeholder\n\n if ( val instanceof Uint8Array ) { // Universal Primitive INTEGER\n tag = 0x02, len = val.length;\n for ( var i = 0; i < len; i++ ) buf.push( val[i] );\n }\n else if ( val instanceof ArrayBuffer ) { // Universal Primitive OCTET STRING\n tag = 0x04, len = val.byteLength, val = new Uint8Array(val);\n for ( var i = 0; i < len; i++ ) buf.push( val[i] );\n }\n else if ( val === null ) { // Universal Primitive NULL\n tag = 0x05, len = 0;\n }\n else if ( typeof val === 'string' && val in str2oid ) { // Universal Primitive OBJECT IDENTIFIER\n var oid = s2b( atob( str2oid[val] ) );\n tag = 0x06, len = oid.length;\n for ( var i = 0; i < len; i++ ) buf.push( oid[i] );\n }\n else if ( val instanceof Array ) { // Universal Constructed SEQUENCE\n for ( var i = 0; i < val.length; i++ ) der2b( val[i], buf );\n tag = 0x30, len = buf.length - pos;\n }\n else if ( typeof val === 'object' && val.tag === 0x03 && val.value instanceof ArrayBuffer ) { // Tag hint\n val = new Uint8Array(val.value), tag = 0x03, len = val.byteLength;\n buf.push(0); for ( var i = 0; i < len; i++ ) buf.push( val[i] );\n len++;\n }\n else {\n throw new Error( \"Unsupported DER value \" + val );\n }\n\n if ( len >= 0x80 ) {\n var xlen = len, len = 4;\n buf.splice( pos, 0, (xlen >> 24) & 0xff, (xlen >> 16) & 0xff, (xlen >> 8) & 0xff, xlen & 0xff );\n while ( len > 1 && !(xlen >> 24) ) xlen <<= 8, len--;\n if ( len < 4 ) buf.splice( pos, 4 - len );\n len |= 0x80;\n }\n\n buf.splice( pos - 2, 2, tag, len );\n\n return buf;\n }\n\n function CryptoKey ( key, alg, ext, use ) {\n Object.defineProperties( this, {\n _key: {\n value: key\n },\n type: {\n value: key.type,\n enumerable: true,\n },\n extractable: {\n value: (ext === undefined) ? key.extractable : ext,\n enumerable: true,\n },\n algorithm: {\n value: (alg === undefined) ? key.algorithm : alg,\n enumerable: true,\n },\n usages: {\n value: (use === undefined) ? key.usages : use,\n enumerable: true,\n },\n });\n }\n\n function isPubKeyUse ( u ) {\n return u === 'verify' || u === 'encrypt' || u === 'wrapKey';\n }\n\n function isPrvKeyUse ( u ) {\n return u === 'sign' || u === 'decrypt' || u === 'unwrapKey';\n }\n\n [ 'generateKey', 'importKey', 'unwrapKey' ]\n .forEach( function ( m ) {\n var _fn = _subtle[m];\n\n _subtle[m] = function ( a, b, c ) {\n var args = [].slice.call(arguments),\n ka, kx, ku;\n\n switch ( m ) {\n case 'generateKey':\n ka = alg(a), kx = b, ku = c;\n break;\n case 'importKey':\n ka = alg(c), kx = args[3], ku = args[4];\n if ( a === 'jwk' ) {\n b = b2jwk(b);\n if ( !b.alg ) b.alg = jwkAlg(ka);\n if ( !b.key_ops ) b.key_ops = ( b.kty !== 'oct' ) ? ( 'd' in b ) ? ku.filter(isPrvKeyUse) : ku.filter(isPubKeyUse) : ku.slice();\n args[1] = jwk2b(b);\n }\n break;\n case 'unwrapKey':\n ka = args[4], kx = args[5], ku = args[6];\n args[2] = c._key;\n break;\n }\n\n if ( m === 'generateKey' && ka.name === 'HMAC' && ka.hash ) {\n ka.length = ka.length || { 'SHA-1': 512, 'SHA-256': 512, 'SHA-384': 1024, 'SHA-512': 1024 }[ka.hash.name];\n return _subtle.importKey( 'raw', _crypto.getRandomValues( new Uint8Array( (ka.length+7)>>3 ) ), ka, kx, ku );\n }\n\n if ( isWebkit && m === 'generateKey' && ka.name === 'RSASSA-PKCS1-v1_5' && ( !ka.modulusLength || ka.modulusLength >= 2048 ) ) {\n a = alg(a), a.name = 'RSAES-PKCS1-v1_5', delete a.hash;\n return _subtle.generateKey( a, true, [ 'encrypt', 'decrypt' ] )\n .then( function ( k ) {\n return Promise.all([\n _subtle.exportKey( 'jwk', k.publicKey ),\n _subtle.exportKey( 'jwk', k.privateKey ),\n ]);\n })\n .then( function ( keys ) {\n keys[0].alg = keys[1].alg = jwkAlg(ka);\n keys[0].key_ops = ku.filter(isPubKeyUse), keys[1].key_ops = ku.filter(isPrvKeyUse);\n return Promise.all([\n _subtle.importKey( 'jwk', keys[0], ka, true, keys[0].key_ops ),\n _subtle.importKey( 'jwk', keys[1], ka, kx, keys[1].key_ops ),\n ]);\n })\n .then( function ( keys ) {\n return {\n publicKey: keys[0],\n privateKey: keys[1],\n };\n });\n }\n\n if ( ( isWebkit || ( isIE && ( ka.hash || {} ).name === 'SHA-1' ) )\n && m === 'importKey' && a === 'jwk' && ka.name === 'HMAC' && b.kty === 'oct' ) {\n return _subtle.importKey( 'raw', s2b( a2s(b.k) ), c, args[3], args[4] );\n }\n\n if ( isWebkit && m === 'importKey' && ( a === 'spki' || a === 'pkcs8' ) ) {\n return _subtle.importKey( 'jwk', pkcs2jwk(b), c, args[3], args[4] );\n }\n\n if ( isIE && m === 'unwrapKey' ) {\n return _subtle.decrypt( args[3], c, b )\n .then( function ( k ) {\n return _subtle.importKey( a, k, args[4], args[5], args[6] );\n });\n }\n\n var op;\n try {\n op = _fn.apply( _subtle, args );\n }\n catch ( e ) {\n return Promise.reject(e);\n }\n\n if ( isIE ) {\n op = new Promise( function ( res, rej ) {\n op.onabort =\n op.onerror = function ( e ) { rej(e) };\n op.oncomplete = function ( r ) { res(r.target.result) };\n });\n }\n\n op = op.then( function ( k ) {\n if ( ka.name === 'HMAC' ) {\n if ( !ka.length ) ka.length = 8 * k.algorithm.length;\n }\n if ( ka.name.search('RSA') == 0 ) {\n if ( !ka.modulusLength ) ka.modulusLength = (k.publicKey || k).algorithm.modulusLength;\n if ( !ka.publicExponent ) ka.publicExponent = (k.publicKey || k).algorithm.publicExponent;\n }\n if ( k.publicKey && k.privateKey ) {\n k = {\n publicKey: new CryptoKey( k.publicKey, ka, kx, ku.filter(isPubKeyUse) ),\n privateKey: new CryptoKey( k.privateKey, ka, kx, ku.filter(isPrvKeyUse) ),\n };\n }\n else {\n k = new CryptoKey( k, ka, kx, ku );\n }\n return k;\n });\n\n return op;\n }\n });\n\n [ 'exportKey', 'wrapKey' ]\n .forEach( function ( m ) {\n var _fn = _subtle[m];\n\n _subtle[m] = function ( a, b, c ) {\n var args = [].slice.call(arguments);\n\n switch ( m ) {\n case 'exportKey':\n args[1] = b._key;\n break;\n case 'wrapKey':\n args[1] = b._key, args[2] = c._key;\n break;\n }\n\n if ( ( isWebkit || ( isIE && ( b.algorithm.hash || {} ).name === 'SHA-1' ) )\n && m === 'exportKey' && a === 'jwk' && b.algorithm.name === 'HMAC' ) {\n args[0] = 'raw';\n }\n\n if ( isWebkit && m === 'exportKey' && ( a === 'spki' || a === 'pkcs8' ) ) {\n args[0] = 'jwk';\n }\n\n if ( isIE && m === 'wrapKey' ) {\n return _subtle.exportKey( a, b )\n .then( function ( k ) {\n if ( a === 'jwk' ) k = s2b( unescape( encodeURIComponent( JSON.stringify( b2jwk(k) ) ) ) );\n return _subtle.encrypt( args[3], c, k );\n });\n }\n\n var op;\n try {\n op = _fn.apply( _subtle, args );\n }\n catch ( e ) {\n return Promise.reject(e);\n }\n\n if ( isIE ) {\n op = new Promise( function ( res, rej ) {\n op.onabort =\n op.onerror = function ( e ) { rej(e) };\n op.oncomplete = function ( r ) { res(r.target.result) };\n });\n }\n\n if ( m === 'exportKey' && a === 'jwk' ) {\n op = op.then( function ( k ) {\n if ( ( isWebkit || ( isIE && ( b.algorithm.hash || {} ).name === 'SHA-1' ) )\n && b.algorithm.name === 'HMAC') {\n return { 'kty': 'oct', 'alg': jwkAlg(b.algorithm), 'key_ops': b.usages.slice(), 'ext': true, 'k': s2a( b2s(k) ) };\n }\n k = b2jwk(k);\n if ( !k.alg ) k['alg'] = jwkAlg(b.algorithm);\n if ( !k.key_ops ) k['key_ops'] = ( b.type === 'public' ) ? b.usages.filter(isPubKeyUse) : ( b.type === 'private' ) ? b.usages.filter(isPrvKeyUse) : b.usages.slice();\n return k;\n });\n }\n\n if ( isWebkit && m === 'exportKey' && ( a === 'spki' || a === 'pkcs8' ) ) {\n op = op.then( function ( k ) {\n k = jwk2pkcs( b2jwk(k) );\n return k;\n });\n }\n\n return op;\n }\n });\n\n [ 'encrypt', 'decrypt', 'sign', 'verify' ]\n .forEach( function ( m ) {\n var _fn = _subtle[m];\n\n _subtle[m] = function ( a, b, c, d ) {\n if ( isIE && ( !c.byteLength || ( d && !d.byteLength ) ) )\n throw new Error(\"Empy input is not allowed\");\n\n var args = [].slice.call(arguments),\n ka = alg(a);\n\n if ( isIE && m === 'decrypt' && ka.name === 'AES-GCM' ) {\n var tl = a.tagLength >> 3;\n args[2] = (c.buffer || c).slice( 0, c.byteLength - tl ),\n a.tag = (c.buffer || c).slice( c.byteLength - tl );\n }\n\n args[1] = b._key;\n\n var op;\n try {\n op = _fn.apply( _subtle, args );\n }\n catch ( e ) {\n return Promise.reject(e);\n }\n\n if ( isIE ) {\n op = new Promise( function ( res, rej ) {\n op.onabort =\n op.onerror = function ( e ) {\n rej(e);\n };\n\n op.oncomplete = function ( r ) {\n var r = r.target.result;\n\n if ( m === 'encrypt' && r instanceof AesGcmEncryptResult ) {\n var c = r.ciphertext, t = r.tag;\n r = new Uint8Array( c.byteLength + t.byteLength );\n r.set( new Uint8Array(c), 0 );\n r.set( new Uint8Array(t), c.byteLength );\n r = r.buffer;\n }\n\n res(r);\n };\n });\n }\n\n return op;\n }\n });\n\n if ( isIE ) {\n var _digest = _subtle.digest;\n\n _subtle['digest'] = function ( a, b ) {\n if ( !b.byteLength )\n throw new Error(\"Empy input is not allowed\");\n\n var op;\n try {\n op = _digest.call( _subtle, a, b );\n }\n catch ( e ) {\n return Promise.reject(e);\n }\n\n op = new Promise( function ( res, rej ) {\n op.onabort =\n op.onerror = function ( e ) { rej(e) };\n op.oncomplete = function ( r ) { res(r.target.result) };\n });\n\n return op;\n };\n\n global.crypto = Object.create( _crypto, {\n getRandomValues: { value: function ( a ) { return _crypto.getRandomValues(a) } },\n subtle: { value: _subtle },\n });\n\n global.CryptoKey = CryptoKey;\n }\n\n if ( isWebkit ) {\n _crypto.subtle = _subtle;\n\n global.Crypto = _Crypto;\n global.SubtleCrypto = _SubtleCrypto;\n global.CryptoKey = CryptoKey;\n }\n}));\n","!function(t,e){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{var n=e();for(var r in n)(\"object\"==typeof exports?exports:t)[r]=n[r]}}(this,function(){return function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return t[r].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}var n={};return e.m=t,e.c=n,e.p=\"\",e(0)}([function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{\"default\":t}}n(84);var o=n(41),i=r(o),a=function(){i[\"default\"].addPickerToOtherInputs(),i[\"default\"].supportsDateInput()||i[\"default\"].addPickerToDateInputs()};a(),document.addEventListener(\"DOMContentLoaded\",function(){a()}),document.querySelector(\"body\").addEventListener(\"mousedown\",function(){a()})},function(t,e,n){t.exports=!n(11)(function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a})},function(t,e){var n=t.exports=\"undefined\"!=typeof window&&window.Math==Math?window:\"undefined\"!=typeof self&&self.Math==Math?self:Function(\"return this\")();\"number\"==typeof __g&&(__g=n)},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var r=n(9),o=n(32),i=n(25),a=Object.defineProperty;e.f=n(1)?Object.defineProperty:function(t,e,n){if(r(t),e=i(e,!0),r(n),o)try{return a(t,e,n)}catch(u){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported!\");return\"value\"in n&&(t[e]=n.value),t}},function(t,e,n){var r=n(59),o=n(16);t.exports=function(t){return r(o(t))}},function(t,e,n){var r=n(4),o=n(14);t.exports=n(1)?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){var r=n(23)(\"wks\"),o=n(15),i=n(2).Symbol,a=\"function\"==typeof i,u=t.exports=function(t){return r[t]||(r[t]=a&&i[t]||(a?i:o)(\"Symbol.\"+t))};u.store=r},function(t,e){var n=t.exports={version:\"2.4.0\"};\"number\"==typeof __e&&(__e=n)},function(t,e,n){var r=n(12);t.exports=function(t){if(!r(t))throw TypeError(t+\" is not an object!\");return t}},function(t,e,n){var r=n(2),o=n(8),i=n(56),a=n(6),u=\"prototype\",s=function(t,e,n){var c,l,f,d=t&s.F,p=t&s.G,h=t&s.S,y=t&s.P,m=t&s.B,v=t&s.W,b=p?o:o[e]||(o[e]={}),g=b[u],x=p?r:h?r[e]:(r[e]||{})[u];p&&(n=e);for(c in n)l=!d&&x&&void 0!==x[c],l&&c in b||(f=l?x[c]:n[c],b[c]=p&&\"function\"!=typeof x[c]?n[c]:m&&l?i(f,r):v&&x[c]==f?function(t){var e=function(e,n,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,r)}return t.apply(this,arguments)};return e[u]=t[u],e}(f):y&&\"function\"==typeof f?i(Function.call,f):f,y&&((b.virtual||(b.virtual={}))[c]=f,t&s.R&&g&&!g[c]&&a(g,c,f)))};s.F=1,s.G=2,s.S=4,s.P=8,s.B=16,s.W=32,s.U=64,s.R=128,t.exports=s},function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},function(t,e,n){var r=n(38),o=n(17);t.exports=Object.keys||function(t){return r(t,o)}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e){var n=0,r=Math.random();t.exports=function(t){return\"Symbol(\".concat(void 0===t?\"\":t,\")_\",(++n+r).toString(36))}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError(\"Can't call method on \"+t);return t}},function(t,e){t.exports=\"constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf\".split(\",\")},function(t,e){t.exports={}},function(t,e){t.exports=!0},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,n){var r=n(4).f,o=n(3),i=n(7)(\"toStringTag\");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},function(t,e,n){var r=n(23)(\"keys\"),o=n(15);t.exports=function(t){return r[t]||(r[t]=o(t))}},function(t,e,n){var r=n(2),o=\"__core-js_shared__\",i=r[o]||(r[o]={});t.exports=function(t){return i[t]||(i[t]={})}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e,n){var r=n(12);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if(\"function\"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError(\"Can't convert object to primitive value\")}},function(t,e,n){var r=n(2),o=n(8),i=n(19),a=n(27),u=n(4).f;t.exports=function(t){var e=o.Symbol||(o.Symbol=i?{}:r.Symbol||{});\"_\"==t.charAt(0)||t in e||u(e,t,{value:a.f(t)})}},function(t,e,n){e.f=n(7)},function(t,e){\"use strict\";e.__esModule=!0,e[\"default\"]=function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{\"default\":t}}e.__esModule=!0;var o=n(45),i=r(o);e[\"default\"]=function(){function t(t,e){for(var n=0;n\";for(e.style.display=\"none\",n(58).appendChild(e),e.src=\"javascript:\",t=e.contentWindow.document,t.open(),t.write(o+\"script\"+a+\"document.F=Object\"+o+\"/script\"+a),t.close(),c=t.F;r--;)delete c[s][i[r]];return c()};t.exports=Object.create||function(t,e){var n;return null!==t?(u[s]=r(t),n=new u,u[s]=null,n[a]=t):n=c(),void 0===e?n:o(n,e)}},function(t,e,n){var r=n(4),o=n(9),i=n(13);t.exports=n(1)?Object.defineProperties:function(t,e){o(t);for(var n,a=i(e),u=a.length,s=0;u>s;)r.f(t,n=a[s++],e[n]);return t}},function(t,e,n){var r=n(38),o=n(17).concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,n){var r=n(3),o=n(5),i=n(55)(!1),a=n(22)(\"IE_PROTO\");t.exports=function(t,e){var n,u=o(t),s=0,c=[];for(n in u)n!=a&&r(u,n)&&c.push(n);for(;e.length>s;)r(u,n=e[s++])&&(~i(c,n)||c.push(n));return c}},function(t,e,n){t.exports=n(6)},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{\"default\":t}}function o(t,e){for(t=String(t),e=e||2;t.length0?\"-\":\"+\")+o(100*Math.floor(Math.abs(w)/60)+Math.abs(w)%60,4),S:[\"th\",\"st\",\"nd\",\"rd\"][h%10>3?0:(h%100-h%10!=10)*h%10],W:S,N:O};return s.replace(t,function(t){return t in D?D[t]:t.slice(1,t.length-1)})}}();l.masks={\"default\":\"ddd mmm dd yyyy HH:MM:ss\",shortDate:\"m/d/yy\",mediumDate:\"mmm d, yyyy\",longDate:\"mmmm d, yyyy\",fullDate:\"dddd, mmmm d, yyyy\",shortTime:\"h:MM TT\",mediumTime:\"h:MM:ss TT\",longTime:\"h:MM:ss TT Z\",isoDate:\"yyyy-mm-dd\",isoTime:\"HH:MM:ss\",isoDateTime:\"yyyy-mm-dd'T'HH:MM:sso\",isoUtcDateTime:\"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'\",expiresHeaderFormat:\"ddd, dd mmm yyyy HH:MM:ss Z\"},l.i18n={dayNames:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\",\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],monthNames:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\",\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]},e[\"default\"]=l},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{\"default\":t}}Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(44),i=r(o),a=n(28),u=r(a),s=n(29),c=r(s),l=n(43),f=r(l),d=n(42),p=r(d),h=n(40),y=r(h),m=function(){function t(e){var n=this;(0,u[\"default\"])(this,t),this.element=e,this.element.setAttribute(\"data-has-picker\",\"\"),this.locale=this.element.getAttribute(\"lang\")||document.body.getAttribute(\"lang\")||\"en\",this.format=this.element.getAttribute(\"date-format\")||document.body.getAttribute(\"date-format\")||this.element.getAttribute(\"data-date-format\")||document.body.getAttribute(\"data-date-format\")||\"yyyy-mm-dd\",this.localeText=this.getLocaleText(),(0,i[\"default\"])(this.element,{valueAsDate:{get:function(){if(!n.element.value)return null;var t=n.format||\"yyyy-mm-dd\",e=n.element.value.match(/(\\d+)/g),r=0,o={};return t.replace(/(yyyy|dd|mm)/g,function(t){o[t]=r++}),new Date(e[o.yyyy],e[o.mm]-1,e[o.dd])},set:function(t){n.element.value=(0,y[\"default\"])(t,n.format)}},valueAsNumber:{get:function(){return n.element.value?n.element.valueAsDate.valueOf():NaN},set:function(t){n.element.valueAsDate=new Date(t)}}});var r=function(t){var e=n.element;e.locale=n.localeText,f[\"default\"].attachTo(e)};this.element.addEventListener(\"focus\",r),this.element.addEventListener(\"mouseup\",r),this.element.addEventListener(\"keydown\",function(t){var e=new Date;switch(t.keyCode){case 9:case 27:f[\"default\"].hide();break;case 38:n.element.valueAsDate&&(e.setDate(n.element.valueAsDate.getDate()+1),n.element.valueAsDate=e,f[\"default\"].pingInput());break;case 40:n.element.valueAsDate&&(e.setDate(n.element.valueAsDate.getDate()-1),n.element.valueAsDate=e,f[\"default\"].pingInput())}f[\"default\"].sync()}),this.element.addEventListener(\"keyup\",function(t){f[\"default\"].sync()})}return(0,c[\"default\"])(t,[{key:\"getLocaleText\",value:function(){var t=this.locale.toLowerCase();for(var e in p[\"default\"]){var n=e.split(\"_\");if(n.map(function(t){return t.toLowerCase()}),~n.indexOf(t)||~n.indexOf(t.substr(0,2)))return p[\"default\"][e]}}}],[{key:\"supportsDateInput\",value:function(){var t=document.createElement(\"input\");t.setAttribute(\"type\",\"date\");var e=\"not-a-date\";return t.setAttribute(\"value\",e),!(t.value===e)}},{key:\"addPickerToDateInputs\",value:function(){var e=document.querySelectorAll('input[type=\"date\"]:not([data-has-picker])'),n=e.length;if(!n)return!1;for(var r=0;r\"],n=0,r=this.locale.days.length;n'+this.locale.days[n]+\"\");this.daysHead.innerHTML=e.join(\"\"),t.createRangeSelect(this.month,0,11,this.locale.months)}},{key:\"refreshDaysMatrix\",value:function(){this.refreshLocale();for(var e=this.date.getFullYear(),n=this.date.getMonth(),r=new Date(e,n,1).getDay(),o=new Date(this.date.getFullYear(),n+1,0).getDate(),i=t.absoluteDate(this.input.valueAsDate)||!1,a=i&&e===i.getFullYear()&&n===i.getMonth(),u=[],s=0;s\":\"\")+\"\\n \\n \"),s+1<=r)u.push(\"\");else{var c=s+1-r,l=a&&i.getDate()===c;u.push(\"\\n \"+c+\"\\n \")}this.days.innerHTML=u.join(\"\")}},{key:\"pingInput\",value:function(){var t=void 0,e=void 0;try{t=new Event(\"input\"),e=new Event(\"change\")}catch(n){t=document.createEvent(\"KeyboardEvent\"),t.initEvent(\"input\",!0,!1),e=document.createEvent(\"KeyboardEvent\"),e.initEvent(\"change\",!0,!1)}this.input.dispatchEvent(t),this.input.dispatchEvent(e)}}],[{key:\"createRangeSelect\",value:function(t,e,n,r){t.innerHTML=\"\";for(var o=e;o<=n;++o){var i=document.createElement(\"option\");t.appendChild(i);var a=r?r[o-e]:o;i.text=a,i.value=o}return t}},{key:\"absoluteDate\",value:function(t){return t&&new Date(t.getTime()+60*t.getTimezoneOffset()*1e3)}}]),t}();window.thePicker=new s,e[\"default\"]=window.thePicker},function(t,e,n){t.exports={\"default\":n(49),__esModule:!0}},function(t,e,n){t.exports={\"default\":n(50),__esModule:!0}},function(t,e,n){t.exports={\"default\":n(51),__esModule:!0}},function(t,e,n){t.exports={\"default\":n(52),__esModule:!0}},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{\"default\":t}}e.__esModule=!0;var o=n(47),i=r(o),a=n(46),u=r(a),s=\"function\"==typeof u[\"default\"]&&\"symbol\"==typeof i[\"default\"]?function(t){return typeof t}:function(t){return t&&\"function\"==typeof u[\"default\"]&&t.constructor===u[\"default\"]?\"symbol\":typeof t};e[\"default\"]=\"function\"==typeof u[\"default\"]&&\"symbol\"===s(i[\"default\"])?function(t){return\"undefined\"==typeof t?\"undefined\":s(t)}:function(t){return t&&\"function\"==typeof u[\"default\"]&&t.constructor===u[\"default\"]?\"symbol\":\"undefined\"==typeof t?\"undefined\":s(t)}},function(t,e,n){n(73);var r=n(8).Object;t.exports=function(t,e){return r.defineProperties(t,e)}},function(t,e,n){n(74);var r=n(8).Object;t.exports=function(t,e,n){return r.defineProperty(t,e,n)}},function(t,e,n){n(77),n(75),n(78),n(79),t.exports=n(8).Symbol},function(t,e,n){n(76),n(80),t.exports=n(27).f(\"iterator\")},function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(t+\" is not a function!\");return t}},function(t,e){t.exports=function(){}},function(t,e,n){var r=n(5),o=n(70),i=n(69);t.exports=function(t){return function(e,n,a){var u,s=r(e),c=o(s.length),l=i(a,c);if(t&&n!=n){for(;c>l;)if(u=s[l++],u!=u)return!0}else for(;c>l;l++)if((t||l in s)&&s[l]===n)return t||l||0;return!t&&-1}}},function(t,e,n){var r=n(53);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},function(t,e,n){var r=n(13),o=n(37),i=n(20);t.exports=function(t){var e=r(t),n=o.f;if(n)for(var a,u=n(t),s=i.f,c=0;u.length>c;)s.call(t,a=u[c++])&&e.push(a);return e}},function(t,e,n){t.exports=n(2).document&&document.documentElement},function(t,e,n){var r=n(30);t.exports=Object(\"z\").propertyIsEnumerable(0)?Object:function(t){return\"String\"==r(t)?t.split(\"\"):Object(t)}},function(t,e,n){var r=n(30);t.exports=Array.isArray||function(t){return\"Array\"==r(t)}},function(t,e,n){\"use strict\";var r=n(34),o=n(14),i=n(21),a={};n(6)(a,n(7)(\"iterator\"),function(){return this}),t.exports=function(t,e,n){t.prototype=r(a,{next:o(1,n)}),i(t,e+\" Iterator\")}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){var r=n(13),o=n(5);t.exports=function(t,e){for(var n,i=o(t),a=r(i),u=a.length,s=0;u>s;)if(i[n=a[s++]]===e)return n}},function(t,e,n){var r=n(15)(\"meta\"),o=n(12),i=n(3),a=n(4).f,u=0,s=Object.isExtensible||function(){return!0},c=!n(11)(function(){return s(Object.preventExtensions({}))}),l=function(t){a(t,r,{value:{i:\"O\"+ ++u,w:{}}})},f=function(t,e){if(!o(t))return\"symbol\"==typeof t?t:(\"string\"==typeof t?\"S\":\"P\")+t;if(!i(t,r)){if(!s(t))return\"F\";if(!e)return\"E\";l(t)}return t[r].i},d=function(t,e){if(!i(t,r)){if(!s(t))return!0;if(!e)return!1;l(t)}return t[r].w},p=function(t){return c&&h.NEED&&s(t)&&!i(t,r)&&l(t),t},h=t.exports={KEY:r,NEED:!1,fastKey:f,getWeak:d,onFreeze:p}},function(t,e,n){var r=n(20),o=n(14),i=n(5),a=n(25),u=n(3),s=n(32),c=Object.getOwnPropertyDescriptor;e.f=n(1)?c:function(t,e){if(t=i(t),e=a(e,!0),s)try{return c(t,e)}catch(n){}if(u(t,e))return o(!r.f.call(t,e),t[e])}},function(t,e,n){var r=n(5),o=n(36).f,i={}.toString,a=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],u=function(t){try{return o(t)}catch(e){return a.slice()}};t.exports.f=function(t){return a&&\"[object Window]\"==i.call(t)?u(t):o(r(t))}},function(t,e,n){var r=n(3),o=n(71),i=n(22)(\"IE_PROTO\"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),r(t,i)?t[i]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},function(t,e,n){var r=n(24),o=n(16);t.exports=function(t){return function(e,n){var i,a,u=String(o(e)),s=r(n),c=u.length;return s<0||s>=c?t?\"\":void 0:(i=u.charCodeAt(s),i<55296||i>56319||s+1===c||(a=u.charCodeAt(s+1))<56320||a>57343?t?u.charAt(s):i:t?u.slice(s,s+2):(i-55296<<10)+(a-56320)+65536)}}},function(t,e,n){var r=n(24),o=Math.max,i=Math.min;t.exports=function(t,e){return t=r(t),t<0?o(t+e,0):i(t,e)}},function(t,e,n){var r=n(24),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},function(t,e,n){var r=n(16);t.exports=function(t){return Object(r(t))}},function(t,e,n){\"use strict\";var r=n(54),o=n(62),i=n(18),a=n(5);t.exports=n(33)(Array,\"Array\",function(t,e){this._t=a(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,o(1)):\"keys\"==e?o(0,n):\"values\"==e?o(0,t[n]):o(0,[n,t[n]])},\"values\"),i.Arguments=i.Array,r(\"keys\"),r(\"values\"),r(\"entries\")},function(t,e,n){var r=n(10);r(r.S+r.F*!n(1),\"Object\",{defineProperties:n(35)})},function(t,e,n){var r=n(10);r(r.S+r.F*!n(1),\"Object\",{defineProperty:n(4).f})},function(t,e){},function(t,e,n){\"use strict\";var r=n(68)(!0);n(33)(String,\"String\",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})})},function(t,e,n){\"use strict\";var r=n(2),o=n(3),i=n(1),a=n(10),u=n(39),s=n(64).KEY,c=n(11),l=n(23),f=n(21),d=n(15),p=n(7),h=n(27),y=n(26),m=n(63),v=n(57),b=n(60),g=n(9),x=n(5),M=n(25),w=n(14),S=n(34),O=n(66),D=n(65),T=n(4),_=n(13),A=D.f,k=T.f,E=O.f,j=r.Symbol,C=r.JSON,N=C&&C.stringify,L=\"prototype\",P=p(\"_hidden\"),F=p(\"toPrimitive\"),J={}.propertyIsEnumerable,H=l(\"symbol-registry\"),I=l(\"symbols\"),Y=l(\"op-symbols\"),R=Object[L],z=\"function\"==typeof j,U=r.QObject,B=!U||!U[L]||!U[L].findChild,W=i&&c(function(){return 7!=S(k({},\"a\",{get:function(){return k(this,\"a\",{value:7}).a}})).a})?function(t,e,n){var r=A(R,e);r&&delete R[e],k(t,e,n),r&&t!==R&&k(R,e,r)}:k,Z=function(t){var e=I[t]=S(j[L]);return e._k=t,e},G=z&&\"symbol\"==typeof j.iterator?function(t){return\"symbol\"==typeof t}:function(t){return t instanceof j},K=function(t,e,n){return t===R&&K(Y,e,n),g(t),e=M(e,!0),g(n),o(I,e)?(n.enumerable?(o(t,P)&&t[P][e]&&(t[P][e]=!1),n=S(n,{enumerable:w(0,!1)})):(o(t,P)||k(t,P,w(1,{})),t[P][e]=!0),W(t,e,n)):k(t,e,n)},V=function(t,e){g(t);for(var n,r=v(e=x(e)),o=0,i=r.length;i>o;)K(t,n=r[o++],e[n]);return t},q=function(t,e){return void 0===e?S(t):V(S(t),e)},Q=function(t){var e=J.call(this,t=M(t,!0));return!(this===R&&o(I,t)&&!o(Y,t))&&(!(e||!o(this,t)||!o(I,t)||o(this,P)&&this[P][t])||e)},X=function(t,e){if(t=x(t),e=M(e,!0),t!==R||!o(I,e)||o(Y,e)){var n=A(t,e);return!n||!o(I,e)||o(t,P)&&t[P][e]||(n.enumerable=!0),n}},$=function(t){for(var e,n=E(x(t)),r=[],i=0;n.length>i;)o(I,e=n[i++])||e==P||e==s||r.push(e);return r},tt=function(t){for(var e,n=t===R,r=E(n?Y:x(t)),i=[],a=0;r.length>a;)!o(I,e=r[a++])||n&&!o(R,e)||i.push(I[e]);return i};z||(j=function(){if(this instanceof j)throw TypeError(\"Symbol is not a constructor!\");var t=d(arguments.length>0?arguments[0]:void 0),e=function(n){this===R&&e.call(Y,n),o(this,P)&&o(this[P],t)&&(this[P][t]=!1),W(this,t,w(1,n))};return i&&B&&W(R,t,{configurable:!0,set:e}),Z(t)},u(j[L],\"toString\",function(){return this._k}),D.f=X,T.f=K,n(36).f=O.f=$,n(20).f=Q,n(37).f=tt,i&&!n(19)&&u(R,\"propertyIsEnumerable\",Q,!0),h.f=function(t){return Z(p(t))}),a(a.G+a.W+a.F*!z,{Symbol:j});for(var et=\"hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables\".split(\",\"),nt=0;et.length>nt;)p(et[nt++]);for(var et=_(p.store),nt=0;et.length>nt;)y(et[nt++]);a(a.S+a.F*!z,\"Symbol\",{\"for\":function(t){return o(H,t+=\"\")?H[t]:H[t]=j(t)},keyFor:function(t){if(G(t))return m(H,t);throw TypeError(t+\" is not a symbol!\")},useSetter:function(){B=!0},useSimple:function(){B=!1}}),a(a.S+a.F*!z,\"Object\",{create:q,defineProperty:K,defineProperties:V,getOwnPropertyDescriptor:X,getOwnPropertyNames:$,getOwnPropertySymbols:tt}),C&&a(a.S+a.F*(!z||c(function(){var t=j();return\"[null]\"!=N([t])||\"{}\"!=N({a:t})||\"{}\"!=N(Object(t))})),\"JSON\",{stringify:function(t){if(void 0!==t&&!G(t)){for(var e,n,r=[t],o=1;arguments.length>o;)r.push(arguments[o++]);return e=r[1],\"function\"==typeof e&&(n=e),!n&&b(e)||(e=function(t,e){if(n&&(e=n.call(this,t,e)),!G(e))return e}),r[1]=e,N.apply(C,r)}}}),j[L][F]||n(6)(j[L],F,j[L].valueOf),f(j,\"Symbol\"),f(Math,\"Math\",!0),f(r.JSON,\"JSON\",!0)},function(t,e,n){n(26)(\"asyncIterator\")},function(t,e,n){n(26)(\"observable\")},function(t,e,n){n(72);for(var r=n(2),o=n(6),i=n(18),a=n(7)(\"toStringTag\"),u=[\"NodeList\",\"DOMTokenList\",\"MediaList\",\"StyleSheetList\",\"CSSRuleList\"],s=0;s<5;s++){var c=u[s],l=r[c],f=l&&l.prototype;f&&!f[a]&&o(f,a,c),i[c]=i.Array}},function(t,e,n){e=t.exports=n(82)(),e.push([t.id,\"date-input-polyfill{background:#fff;color:#000;text-shadow:none;border:0;padding:0;height:auto;width:auto;line-height:normal;font-family:sans-serif;font-size:14px;position:absolute!important;text-align:center;box-shadow:0 3px 10px 1px rgba(0,0,0,.22);cursor:default;z-index:1;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;overflow:hidden;display:block}date-input-polyfill[data-open=false]{visibility:hidden;z-index:-100!important;top:0}date-input-polyfill[data-open=true]{visibility:visible}date-input-polyfill select,date-input-polyfill table,date-input-polyfill td,date-input-polyfill th{background:#fff;color:#000;text-shadow:none;border:0;padding:0;height:auto;width:auto;line-height:normal;font-family:sans-serif;font-size:14px;box-shadow:none;font-family:Lato,Helvetica,Arial,sans-serif}date-input-polyfill button,date-input-polyfill select{border:0;border-radius:0;border-bottom:1px solid #dadfe1;height:24px;vertical-align:top;-webkit-appearance:none;-moz-appearance:none}date-input-polyfill .monthSelect-wrapper{width:55%;display:inline-block}date-input-polyfill .yearSelect-wrapper{width:25%;display:inline-block}date-input-polyfill select{width:100%}date-input-polyfill select:first-of-type{border-right:1px solid #dadfe1;border-radius:5px 0 0 0;-moz-border-radius:5px 0 0 0;-webkit-border-radius:5px 0 0 0}date-input-polyfill button{width:20%;background:#dadfe1;border-radius:0 5px 0 0;-moz-border-radius:0 5px 0 0;-webkit-border-radius:0 5px 0 0}date-input-polyfill button:hover{background:#eee}date-input-polyfill table{border-collapse:separate!important;border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0 0 5px 5px;overflow:hidden;max-width:280px;width:280px}date-input-polyfill td,date-input-polyfill th{width:32px;padding:4px;text-align:center;box-sizing:content-box}date-input-polyfill td[data-day]{cursor:pointer}date-input-polyfill td[data-day]:hover{background:#dadfe1}date-input-polyfill [data-selected]{font-weight:700;background:#d8eaf6}\",\"\"]);\n},function(t,e){t.exports=function(){var t=[];return t.toString=function(){for(var t=[],e=0;e=0&&g.splice(e,1)}function u(t){var e=document.createElement(\"style\");return e.type=\"text/css\",i(t,e),e}function s(t){var e=document.createElement(\"link\");return e.rel=\"stylesheet\",i(t,e),e}function c(t,e){var n,r,o;if(e.singleton){var i=b++;n=v||(v=u(e)),r=l.bind(null,n,i,!1),o=l.bind(null,n,i,!0)}else t.sourceMap&&\"function\"==typeof URL&&\"function\"==typeof URL.createObjectURL&&\"function\"==typeof URL.revokeObjectURL&&\"function\"==typeof Blob&&\"function\"==typeof btoa?(n=s(e),r=d.bind(null,n),o=function(){a(n),n.href&&URL.revokeObjectURL(n.href)}):(n=u(e),r=f.bind(null,n),o=function(){a(n)});return r(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;r(t=e)}else o()}}function l(t,e,n,r){var o=n?\"\":r.css;if(t.styleSheet)t.styleSheet.cssText=x(e,o);else{var i=document.createTextNode(o),a=t.childNodes;a[e]&&t.removeChild(a[e]),a.length?t.insertBefore(i,a[e]):t.appendChild(i)}}function f(t,e){var n=e.css,r=e.media;if(r&&t.setAttribute(\"media\",r),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}function d(t,e){var n=e.css,r=e.sourceMap;r&&(n+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+\" */\");var o=new Blob([n],{type:\"text/css\"}),i=t.href;t.href=URL.createObjectURL(o),i&&URL.revokeObjectURL(i)}var p={},h=function(t){var e;return function(){return\"undefined\"==typeof e&&(e=t.apply(this,arguments)),e}},y=h(function(){return/msie [6-9]\\b/.test(window.navigator.userAgent.toLowerCase())}),m=h(function(){return document.head||document.getElementsByTagName(\"head\")[0]}),v=null,b=0,g=[];t.exports=function(t,e){e=e||{},\"undefined\"==typeof e.singleton&&(e.singleton=y()),\"undefined\"==typeof e.insertAt&&(e.insertAt=\"bottom\");var n=o(t);return r(n,e),function(t){for(var i=[],a=0;a ");else if("object"==typeof t){var a=[];for(var o in t)if(t.hasOwnProperty(o)){var s=t[o];a.push(o+":"+("string"==typeof s?JSON.stringify(s):B(s)))}i="{"+a.join(", ")+"}"}return n+(r?"("+r+")":"")+"["+i+"]: "+e.replace(de,"\n ")} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var xe={"ɵɵdefineInjectable":T,"ɵɵdefineInjector":z,"ɵɵinject":ye,"ɵɵgetFactoryOf":function e(t){var n=t;if(H(t))return function(){var t=e(V(n));return t?t():null};var r=I(n)||A(n);if(!r||void 0===r.factory)return null;return r.factory} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */,"ɵɵinvalidFactoryDep":be};var Ee,Se,Te,Oe=function(){},ze=function(){}; +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +function Ie(e,t){"number"!=typeof e&&Ue(t,typeof e,"number","===")}function De(e,t,n){Ie(e,"Expected a number"),Be(e,n,"Expected number to be less than or equal to"),function(e,t,n){e>=t||Ue(n,e,t,">=")}(e,t,"Expected number to be greater than or equal to")}function Ae(e,t){"string"!=typeof e&&Ue(t,null===e?"null":typeof e,"string","===")}function Ne(e,t,n){e!=t&&Ue(n,e,t,"==")}function Pe(e,t,n){e==t&&Ue(n,e,t,"!=")}function Re(e,t,n){e!==t&&Ue(n,e,t,"===")}function Me(e,t,n){e===t&&Ue(n,e,t,"!==")}function qe(e,t,n){et||Ue(n,e,t,">")}function Fe(e,t){null==e&&Ue(t,e,null,"!=")}function Ue(e,t,n,r){throw new Error("ASSERTION ERROR: "+e+(null==r?"":" [Expected=> "+n+" "+r+" "+t+" <=Actual]"))}function Ve(e){Ne("undefined"!=typeof Node&&e instanceof Node||"object"==typeof e&&null!=e&&"WebWorkerRenderNode"===e.constructor.name,!0,"The provided value must be an instance of a DOM Node but got "+B(e))}function He(e,t){var n=e?e.length:0;qe(t,n,"Index expected to be less than "+n+" but got "+t)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function Ke(e,t){for(var n=0;n=e.length?e.push(n):e.splice(t,0,n)}function $e(e,t){return t>=e.length-1?e.pop():e.splice(t,1)[0]}function Ye(e,t){for(var n=[],r=0;r=0?e[1|r]=n:function(e,t,n,r){ngDevMode&&Be(t,e.length,"Can't insert past array end.");var i=e.length;if(i==t)e.push(n,r);else if(1===i)e.push(r,e[0]),e[0]=n;else{for(i--,e.push(e[i-1],e[i]);i>t;){var a=i-2;e[i]=e[a],i--}e[t]=n,e[t+1]=r}}(e,r=~r,t,n),r}function Je(e,t){var n=Xe(e,t);if(n>=0)return e[1|n]}function Xe(e,t){return et(e,t,1)}function et(e,t,n){ngDevMode&&Ne(Array.isArray(e),!0,"Expecting an array");for(var r=0,i=e.length>>n;i!==r;){var a=r+(i-r>>1),o=e[a<t?i=a:r=a+1}return~(i<0;)ngDevMode&&Fe(t[15],"Declaration view should be defined if nesting level is greater than 0."),t=t[15],e--;return t}(e,tn.lFrame.contextLView))[8]}function An(){return tn.lFrame.selectedIndex}function Nn(e){tn.lFrame.selectedIndex=e}function Pn(){var e=tn.lFrame;return Kt(e.tView,e.selectedIndex)}function Rn(){tn.lFrame.currentNamespace="http://www.w3.org/2000/svg"}function Mn(){tn.lFrame.currentNamespace="http://www.w3.org/1998/MathML/"}function qn(){tn.lFrame.currentNamespace=null}function Bn(e){tn.lFrame.currentSanitizer=e}function Ln(e,t){ngDevMode&&At(e);for(var n=t.directiveStart,r=t.directiveEnd;n=r)break}else t[o]<0&&(e[18]+=65536),(a>11>16&&(3&e[2])===t&&(e[2]+=2048,a.call(o)):a.call(o)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var Wn=function(e,t,n){this.factory=e,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=n}; +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +function Gn(e,t){Fe(e,"should be called with a TNode"),Ne(e.type,t,"should be a "+$n(t))}function Qn(e){for(var t=[],n=1;n"}function Yn(e,t,n){for(var r=Bt(e),i=0;it){o=a-1;break}}}for(;a>16}function ir(e,t){for(var n=rr(e),r=t;n>0;)r=r[15],n--;return r} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function ar(e){return"string"==typeof e?e:null==e?"":""+e}function or(e){return"function"==typeof e?e.name||e.toString():"object"==typeof e&&null!=e&&"function"==typeof e.type?e.type.name||e.type.toString():ar(e)}var sr=("undefined"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(Z);function lr(e){return{name:"window",target:e.ownerDocument.defaultView}}function cr(e){return{name:"document",target:e.ownerDocument}}function ur(e){return{name:"body",target:e.ownerDocument.body}}function dr(e){return e instanceof Function?e():e} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var hr=!0;function pr(e){var t=hr;return hr=e,t}var fr=0;function mr(e,t){var n=yr(e,t);if(-1!==n)return n;var r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,gr(r.data,e),gr(t,null),gr(r.blueprint,null));var i=br(e,t),a=e.injectorIndex;if(tr(i))for(var o=nr(i),s=ir(i,t),l=s[1].data,c=0;c<8;c++)t[a+c]=s[o+c]|l[o+c];return t[a+8]=i,a}function gr(e,t){e.push(0,0,0,0,0,0,0,0,t)}function yr(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null==t[e.injectorIndex+8]?-1:e.injectorIndex}function br(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;for(var n=t[6],r=1;n&&-1===n.injectorIndex;)n=(t=t[15])?t[6]:null,r++;return n?n.injectorIndex|r<<16:-1}function vr(e,t,n){!function(e,t,n){ngDevMode&&Ne(t.firstCreatePass,!0,"expected firstCreatePass to be true");var r="string"!=typeof n?n[ae]:n.charCodeAt(0)||0;null==r&&(r=n[ae]=fr++);var i=255&r,a=1<0?255&t:t}(n);if("function"==typeof a){xn(t,e);try{var o=a();if(null!=o||r&y.Optional)return o;throw new Error("No provider for "+or(n)+"!")}finally{zn()}}else if("number"==typeof a){if(-1===a)return new Tr(e,t);var s=null,l=yr(e,t),c=-1,u=r&y.Host?t[16][6]:null;for((-1===l||r&y.SkipSelf)&&(c=-1===l?br(e,t):t[l+8],Sr(r,!1)?(s=t[1],l=nr(c),t=ir(c,t)):l=-1);-1!==l;){c=t[l+8];var d=t[1];if(Er(a,l,d.data)){var h=jr(l,t,n,s,r,u);if(h!==_r)return h}Sr(r,t[1].data[l+8]===u)&&Er(a,l,t)?(s=d,l=nr(c),t=ir(c,t)):l=-1}}}if(r&y.Optional&&void 0===i&&(i=null),0==(r&(y.Self|y.Host))){var p=t[9],f=me(void 0);try{return p?p.get(n,i,r&y.Optional):ke(n,i,r&y.Optional)}finally{me(f)}}if(r&y.Optional)return i;throw new Error("NodeInjector: NOT_FOUND ["+or(n)+"]")}var _r={};function jr(e,t,n,r,i,a){var o=t[1],s=o.data[e+8],l=Cr(s,o,n,null==r?jt(s)&&hr:r!=o&&3===s.type,i&y.Host&&a===s);return null!==l?xr(t,o,l,s):_r}function Cr(e,t,n,r,i){for(var a=e.providerIndexes,o=t.data,s=65535&a,l=e.directiveStart,c=e.directiveEnd,u=a>>16,d=i?s+u:c,h=r?s:s+u;h=l&&p.type===n)return h}if(i){var f=o[l];if(f&&xt(f)&&f.type===n)return l}return null}function xr(e,t,n,r){var i=e[n],a=t.data;if(i instanceof Wn){var o=i;if(o.resolving)throw new Error("Circular dep for "+or(a[n]));var s=pr(o.canSeeViewProviders);o.resolving=!0;var l=void 0;o.injectImpl&&(l=me(o.injectImpl)),xn(e,r);try{i=e[n]=o.factory(void 0,a,e,r),t.firstCreatePass&&n>=r.directiveStart&&(ngDevMode&&function(e){void 0!==e.type&&null!=e.selectors&&void 0!==e.inputs||Ue("Expected a DirectiveDef/ComponentDef and this object does not seem to have the expected shape.")}(a[n]), +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +function(e,t,n){ngDevMode&&At(n);var r=t.onChanges,i=t.onInit,a=t.doCheck;r&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,r),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,r)),i&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-e,i),a&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,a),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,a))}(n,a[n],t))}finally{o.injectImpl&&me(l),pr(s),o.resolving=!1,zn()}}return i}function Er(e,t,n){var r=1<',!t.querySelector||t.querySelector("svg")?(t.innerHTML='

',t.querySelector&&t.querySelector("svg img")&&function(){try{return!!window.DOMParser}catch(e){return!1}} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */()?this.getInertBodyElement=this.getInertBodyElement_DOMParser:this.getInertBodyElement=this.getInertBodyElement_InertDocument):this.getInertBodyElement=this.getInertBodyElement_XHR}return e.prototype.getInertBodyElement_XHR=function(e){e=""+e+"";try{e=encodeURI(e)}catch(r){return null}var t=new XMLHttpRequest;t.responseType="document",t.open("GET","data:text/html;charset=utf-8,"+e,!1),t.send(void 0);var n=t.response.body;return n.removeChild(n.firstChild),n},e.prototype.getInertBodyElement_DOMParser=function(e){e=""+e+"";try{var t=(new window.DOMParser).parseFromString(e,"text/html").body;return t.removeChild(t.firstChild),t}catch(n){return null}},e.prototype.getInertBodyElement_InertDocument=function(e){var t=this.inertDocument.createElement("template");if("content"in t)return t.innerHTML=e,t;var n=this.inertDocument.createElement("body");return n.innerHTML=e,this.defaultDoc.documentMode&&this.stripCustomNsAttrs(n),n},e.prototype.stripCustomNsAttrs=function(e){for(var t=e.attributes,n=t.length-1;0"),!0},e.prototype.endElement=function(e){var t=e.nodeName.toLowerCase();gi.hasOwnProperty(t)&&!ui.hasOwnProperty(t)&&(this.buf.push(""))},e.prototype.chars=function(e){this.buf.push(Ei(e))},e.prototype.checkClobberedElement=function(e,t){if(t&&(e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_CONTAINED_BY)===Node.DOCUMENT_POSITION_CONTAINED_BY)throw new Error("Failed to sanitize html because the element is clobbered: "+e.outerHTML);return t},e}(),Ci=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,xi=/([^\#-~ |!])/g;function Ei(e){return e.replace(/&/g,"&").replace(Ci,(function(e){return"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";"})).replace(xi,(function(e){return"&#"+e.charCodeAt(0)+";"})).replace(//g,">")}function Si(e,t){var n=null;try{li=li||new ti(e);var r=t?String(t):"";n=li.getInertBodyElement(r);var i=5,a=r;do{if(0===i)throw new Error("Failed to sanitize html because the input is unstable");i--,r=a,a=n.innerHTML,n=li.getInertBodyElement(r)}while(r!==a);var o=new ji,s=o.sanitizeChildren(Ti(n)||n);return Xr()&&o.sanitizedSomething&&console.warn("WARNING: sanitizing HTML stripped some content, see http://g.co/ng/security#xss"),s}finally{if(n)for(var l=Ti(n)||n;l.firstChild;)l.removeChild(l.firstChild)}}function Ti(e){return"content"in e&&function(e){return e.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===e.nodeName} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */(e)?e.content:null}!function(e){e[e.NONE=0]="NONE",e[e.HTML=1]="HTML",e[e.STYLE=2]="STYLE",e[e.SCRIPT=3]="SCRIPT",e[e.URL=4]="URL",e[e.RESOURCE_URL=5]="RESOURCE_URL"}(ci||(ci={})); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +var Oi=new RegExp("^([-,.\"'%_!# a-zA-Z0-9]+|(?:(?:matrix|translate|scale|rotate|skew|perspective)(?:X|Y|Z|3d)?|(?:rgb|hsl)a?|(?:repeating-)?(?:linear|radial)-gradient|(?:attr|calc|var))\\([-0-9.%, #a-zA-Z]+\\))$","g"),zi=/^url\(([^)]+)\)$/;function Ii(e){if(!(e=String(e).trim()))return"";var t=e.match(zi);return t&&ii(t[1])===t[1]||e.match(Oi)&&function(e){for(var t=!0,n=!0,r=0;r=0){var f;$i(f=Ft(r[p]),l=Gi(r,p,f)),n=l;break}}}}return n||null}function Gi(e,t,n){return{lView:e,nodeIndex:t,native:n,component:void 0,directives:void 0,localRefs:void 0}}function Qi(e){var t,n=Qt(e);if(Array.isArray(n)){var r=Ji(n,e);(i=Gi(n,r,(t=Gt(r,n))[0])).component=e,$i(e,i),$i(i.native,i)}else{var i;t=Gt((i=n).nodeIndex,i.lView)}return t}function $i(e,t){e.__ngContext__=t}function Yi(e,t){for(var n=e[1].firstChild;n;){if(Ht(n,e)===t)return n.index;n=Zi(n)}return-1}function Zi(e){if(e.child)return e.child;if(e.next)return e.next;for(;e.parent&&!e.parent.next;)e=e.parent;return e.parent&&e.parent.next}function Ji(e,t){var n=e[1].components;if(n)for(var r=0;ra?d="":(ngDevMode&&Pe(i[u],0,"We do not match directives on namespaced attributes"),d=i[u+1].toLowerCase());var h=8&r?d:null;if(h&&-1!==ra(h,c,0)||2&r&&c!==d){if(la(r))return!1;o=!0}}}}else{if(!o&&!la(r)&&!la(l))return!1;if(o&&la(l))continue;o=!1,r=l|1&r}}return la(r)||o}function la(e){return 0==(1&e)}function ca(e,t,n,r){if(null===t)return-1;var i=0;if(r||!n){for(var a=!1;i-1)for(n++;n0?'="'+s+'"':"")+"]"}else 8&r?i+="."+o:4&r&&(i+=" "+o);else""===i||la(o)||(t+=ha(a,i),i=""),r=o,a=a||!la(r);n++}return""!==i&&(t+=ha(a,i)),t} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +var fa="undefined"==typeof ngDevMode||ngDevMode?{__brand__:"NO_CHANGE"}:{}; +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function ma(e){ngDevMode&&Dt(e);var t=e[3];return wt(t)?t[3]:t}function ga(e){ngDevMode&&Fe(e,"component");for(var t=kt(e)?e:$t(e);t&&!(512&t[2]);)t=ma(t);return ngDevMode&&Dt(t),t}function ya(e){var t=ga(e);return ngDevMode&&Fe(t[8],"RootView has no context. Perhaps it is disconnected?"),t[8]}function ba(e){return ka(e[13])}function va(e){return ka(e[4])}function ka(e){for(;null!==e&&!wt(e);)e=e[4];return e} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function wa(e){ngDevMode&&Le(e,0,"Can only advance forward"),ja(sn(),on(),An()+e,pn())}function _a(e){ja(sn(),on(),e,pn())}function ja(e,t,n,r){if(ngDevMode&&Le(n,-1,"Invalid index"),ngDevMode&&He(t,n+20),!r)if(3==(3&t[2])){var i=e.preOrderCheckHooks;null!==i&&Fn(t,i,n)}else{var a=e.preOrderHooks;null!==a&&Un(t,a,0,n)}Nn(n)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var Ca={marker:"element"},xa={marker:"comment"}; +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +function Ea(e,t){return ngDevMode&&De(e,0,32767),ngDevMode&&De(t,0,32767),e<<17|t<<2}function Sa(e){return ngDevMode&&Ie(e,"expected number"),e>>17&32767}function Ta(e){return ngDevMode&&Ie(e,"expected number"),2==(2&e)}function Oa(e){return ngDevMode&&Ie(e,"expected number"),2|e}function za(e){return ngDevMode&&Ie(e,"expected number"),(131068&e)>>2}function Ia(e,t){return ngDevMode&&Ie(e,"expected number"),ngDevMode&&De(t,0,32767),-131069&e|t<<2}function Da(e){return ngDevMode&&Ie(e,"expected number"),1==(1&e)}function Aa(e){return ngDevMode&&Ie(e,"expected number"),1|e} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +function Na(e,t){Object.defineProperty(e,"debug",{value:t,enumerable:!1})} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var Pa,Ra,Ma,qa=("undefined"==typeof ngDevMode||!!ngDevMode)&&oe();function Ba(e){return function(e,t){switch(e){case 0:return void 0===Ma&&(Ma=new(Ui("LRootView"))),Ma;case 1:void 0===Pa&&(Pa=new Map);var n=Pa.get(t);return void 0===n&&(n=new(Ui("LComponentView"+La(t))),Pa.set(t,n)),n;case 2:void 0===Ra&&(Ra=new Map);var r=Ra.get(t);return void 0===r&&(r=new(Ui("LEmbeddedView"+La(t))),Ra.set(t,r)),r}throw new Error("unreachable code")}(e.type,e.template&&e.template.name).concat(e.blueprint)}function La(e){if(null==e)return"";var t=e.lastIndexOf("_Template");return"_"+(-1===t?e:e.substr(0,t))}var Fa=function(){function e(e,t,n,r,i,a,o,s,l,c,u,d,h,p,f,m,g,y,b,v,k,w,_,j,C,x,E,S,T,O,z){this.type=e,this.id=t,this.blueprint=n,this.template=r,this.queries=i,this.viewQuery=a,this.node=o,this.data=s,this.bindingStartIndex=l,this.expandoStartIndex=c,this.expandoInstructions=u,this.firstCreatePass=d,this.firstUpdatePass=h,this.staticViewQueries=p,this.staticContentQueries=f,this.preOrderHooks=m,this.preOrderCheckHooks=g,this.contentHooks=y,this.contentCheckHooks=b,this.viewHooks=v,this.viewCheckHooks=k,this.destroyHooks=w,this.cleanup=_,this.contentQueries=j,this.components=C,this.directiveRegistry=x,this.pipeRegistry=E,this.firstChild=S,this.schemas=T,this.consts=O,this.incompleteFirstPass=z}return Object.defineProperty(e.prototype,"template_",{get:function(){var e=[];return Ha(this.firstChild,e),e.join("")},enumerable:!0,configurable:!0}),e}(),Ua=function(){function e(e,t,n,r,i,a,o,s,l,c,u,d,h,p,f,m,g,y,b,v,k,w,_,j,C,x,E,S,T,O,z){this.tView_=e,this.type=t,this.index=n,this.injectorIndex=r,this.directiveStart=i,this.directiveEnd=a,this.directiveStylingLast=o,this.propertyBindings=s,this.flags=l,this.providerIndexes=c,this.tagName=u,this.attrs=d,this.mergedAttrs=h,this.localNames=p,this.initialInputs=f,this.inputs=m,this.outputs=g,this.tViews=y,this.next=b,this.projectionNext=v,this.child=k,this.parent=w,this.projection=_,this.styles=j,this.stylesWithoutHost=C,this.residualStyles=x,this.classes=E,this.classesWithoutHost=S,this.residualClasses=T,this.classBindings=O,this.styleBindings=z}return Object.defineProperty(e.prototype,"type_",{get:function(){switch(this.type){case 0:return"TNodeType.Container";case 3:return"TNodeType.Element";case 4:return"TNodeType.ElementContainer";case 5:return"TNodeType.IcuContainer";case 1:return"TNodeType.Projection";case 2:return"TNodeType.View";default:return"TNodeType.???"}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"flags_",{get:function(){var e=[];return 16&this.flags&&e.push("TNodeFlags.hasClassInput"),8&this.flags&&e.push("TNodeFlags.hasContentQuery"),32&this.flags&&e.push("TNodeFlags.hasStyleInput"),128&this.flags&&e.push("TNodeFlags.hasHostBindings"),2&this.flags&&e.push("TNodeFlags.isComponentHost"),1&this.flags&&e.push("TNodeFlags.isDirectiveHost"),64&this.flags&&e.push("TNodeFlags.isDetached"),4&this.flags&&e.push("TNodeFlags.isProjected"),e.join("|")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"template_",{get:function(){var e=[];if(e.push("<",this.tagName||this.type_),this.attrs)for(var t=0;t"),Ha(this.child,e),e.push(""),e.join("")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"styleBindings_",{get:function(){return Va(this,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"classBindings_",{get:function(){return Va(this,!0)},enumerable:!0,configurable:!0}),e}();function Va(e,t){for(var n=e.tView_.data,r=[],i=t?e.classBindings:e.styleBindings,a=Sa(i),o=za(i),s=0!==o,l=s?o:a;0!==l;){var c=n[l],u=n[l+1];r.unshift({key:c,index:l,isTemplate:s,prevDuplicate:Ta(u),nextDuplicate:Da(u),nextIndex:za(u),prevIndex:Sa(u)}),l===a&&(s=!1),l=Sa(u)}return r.push((t?e.residualClasses:e.residualStyles)||null),r}function Ha(e,t){for(;e;)t.push(e.template_),e=e.next}var Ka,Wa=qa&&Ui("TViewData")||null;var Ga=qa&&Ui("LViewBlueprint")||null,Qa=qa&&Ui("MatchesArray")||null,$a=qa&&Ui("TViewComponents")||null,Ya=qa&&Ui("TNodeLocalNames")||null,Za=qa&&Ui("TNodeInitialInputs")||null,Ja=(qa&&Ui("TNodeInitialData"),qa&&Ui("LCleanup")||null),Xa=qa&&Ui("TCleanup")||null;function eo(e){if(e){var t=e.debug;return Fe(t,"Object does not have a debug representation."),t}return e}function to(e,t){void 0===t&&(t=!1);var n=Ft(e);if(n){var r=n.nodeType===Node.TEXT_NODE,i=(r?n.textContent:n.outerHTML)||"";if(t||r)return i;var a=">"+n.innerHTML+"<";return i.split(a)[0]+">"}return null}var no=function(){function e(e){this._raw_lView=e}return Object.defineProperty(e.prototype,"flags",{get:function(){var e=this._raw_lView[2];return{__raw__flags__:e,initPhaseState:3&e,creationMode:!!(4&e),firstViewPass:!!(8&e),checkAlways:!!(16&e),dirty:!!(64&e),attached:!!(128&e),destroyed:!!(256&e),isRoot:!!(512&e),indexWithinInitPhase:e>>11}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"parent",{get:function(){return eo(this._raw_lView[3])},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"host",{get:function(){return to(this._raw_lView[0],!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"html",{get:function(){return(this.nodes||[]).map((function(e){return to(e.native,!0)})).join("")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"context",{get:function(){return this._raw_lView[8]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"nodes",{get:function(){var e=this._raw_lView;return ro(e[1].firstChild,e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tView",{get:function(){return this._raw_lView[1]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"cleanup",{get:function(){return this._raw_lView[7]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"injector",{get:function(){return this._raw_lView[9]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rendererFactory",{get:function(){return this._raw_lView[10]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"renderer",{get:function(){return this._raw_lView[11]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"sanitizer",{get:function(){return this._raw_lView[12]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"childHead",{get:function(){return eo(this._raw_lView[13])},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"next",{get:function(){return eo(this._raw_lView[4])},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"childTail",{get:function(){return eo(this._raw_lView[14])},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"declarationView",{get:function(){return eo(this._raw_lView[15])},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"queries",{get:function(){return this._raw_lView[19]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tHost",{get:function(){return this._raw_lView[6]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"childViews",{get:function(){for(var e=[],t=this.childHead;t;)e.push(t),t=t.next;return e},enumerable:!0,configurable:!0}),e}();function ro(e,t){if(e){for(var n=[],r=e;r;)n.push(io(r,t,r.index)),r=r.next;return n}return null}function io(e,t,n){var r=t[n],i=Ft(r),a=eo(function(e){for(;Array.isArray(e);){if(e.length>=19)return e;e=e[0]}return null}(r));return{html:to(i),native:i,nodes:ro(e.child,t),component:a}}var ao=function(){function e(e){this._raw_lContainer=e}return Object.defineProperty(e.prototype,"hasTransplantedViews",{get:function(){return this._raw_lContainer[2]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"views",{get:function(){return this._raw_lContainer.slice(10).map(eo)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"parent",{get:function(){return eo(this._raw_lContainer[3])},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"movedViews",{get:function(){return this._raw_lContainer[9]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"host",{get:function(){return this._raw_lContainer[0]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"native",{get:function(){return this._raw_lContainer[7]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"next",{get:function(){return eo(this._raw_lContainer[4])},enumerable:!0,configurable:!0}),e}();var oo=function(){function e(e,t,n,r){this.__raw_opCode=e,this._lView=t,this.nodeIndex=n,this.type=r}return Object.defineProperty(e.prototype,"tNode",{get:function(){return Kt(this._lView[1],this.nodeIndex)},enumerable:!0,configurable:!0}),e}();var so=function(){function e(e,t){this.__raw_opCodes=e,this.__lView=t}return Object.defineProperty(e.prototype,"operations",{get:function(){for(var e=this.__lView,t=this.__raw_opCodes,n=[],r=0;r>>17,"AppendChild");break;case 0:a=new oo(i,e,i>>>3,"Select");break;case 5:var o=i>>>3;a=new oo(i,e,o,"ElementEnd");break;case 4:(a=new oo(i,e,o=i>>>3,"Attr")).attrName=t[++r],a.attrValue=t[++r]}if(!a)switch(i){case xa:a={__raw_opCode:i,type:"COMMENT_MARKER",commentValue:t[++r],nodeIndex:t[++r]};break;case Ca:a={__raw_opCode:i,type:"ELEMENT_MARKER"}}a||(a={__raw_opCode:i,type:"Unknown Op Code",code:i}),n.push(a)}return n},enumerable:!0,configurable:!0}),e}(),lo=function(){function e(e,t,n){this.__raw_opCodes=e,this.icus=t,this.__lView=n}return Object.defineProperty(e.prototype,"operations",{get:function(){for(var e=this.__lView,t=this.__raw_opCodes,n=this.icus,r=[],i=0;i>>2,d=void 0,h=void 0;switch(3&c){case 1:var p=t[++l],f=t[++l];r.push({__raw_opCode:c,checkBit:a,type:"Attr",attrValue:s,attrName:p,sanitizeFn:f});break;case 0:r.push({__raw_opCode:c,checkBit:a,type:"Text",nodeIndex:u,text:s});break;case 2:h=n[d=t[++l]];var m=new oo(c,e,u,"IcuSwitch");m.tIcuIndex=d,m.checkBit=a,m.mainBinding=s,m.tIcu=h,r.push(m);break;case 3:h=n[d=t[++l]],(m=new oo(c,e,u,"IcuUpdate")).tIcuIndex=d,m.checkBit=a,m.tIcu=h,r.push(m)}}}i+=o}return r},enumerable:!0,configurable:!0}),e}(),co=Promise.resolve(null);function uo(e,t){var n=e.contentQueries;if(null!==n)for(var r=0;r20&&ja(e,t,0,pn()),n(r,i)}finally{Nn(a)}}function vo(e,t,n){if(_t(t))for(var r=t.directiveStart,i=t.directiveEnd,a=r;a-1)return!0}return!1}function Do(e,t){console.warn("Can't bind to '"+e+"' since it isn't a known property of '"+t.tagName+"'.")}function Ao(e,t,n,r){ngDevMode&&At(e);var i=!1;if(nn()){var a=function(e,t,n){ngDevMode&&At(e),ngDevMode&&Qn(n,3,4,0);var r=e.directiveRegistry,i=null;if(r)for(var a=0;a0&&function e(t){for(var n=ba(t);null!==n;n=va(n))for(var r=10;r0&&e(i)}var o=t[1].components;if(null!==o)for(r=0;r0&&e(s)}}(n)}}function $o(e,t){ngDevMode&&Ne(Yt(e),!0,"Should be run in creation mode");var n=Gt(t,e),r=n[1];!function(e,t){for(var n=t.length;n0&&(s+="�"+i.join("�")),e[r]=s}}var rs=co;function is(e){return e[7]||(e[7]=ngDevMode?new Ja:[])}function as(e){return e.cleanup||(e.cleanup=ngDevMode?new Xa:[])}function os(e,t,n){return(null===e||xt(e))&&(n=function(e){for(;Array.isArray(e);){if("object"==typeof e[1])return e;e=e[0]}return null}(n[t.index])),n[11]}function ss(e,t){var n=e[9],r=n?n.get(Nr,null):null;r&&r.handleError(t)}function ls(e,t,n,r,i){for(var a=0;a0&&(n[i-1][4]=t),r0&&(e[n-1][4]=r[4]);var a=$e(e,10+t);fs(r[1],r,!1,null);var o=a[19];null!==o&&o.detachView(a[1]),r[3]=null,r[4]=null,r[2]&=-129}return r}}function bs(e,t){if(!(256&t[2])){var n=t[11];Bt(n)&&n.destroyNode&&Is(e,t,n,3,null,null),function(e){var t=e[13];if(!t)return ks(e[1],e);for(;t;){var n=null;if(kt(t))n=t[13];else{ngDevMode&&zt(t);var r=t[10];r&&(n=r)}if(!n){for(;t&&!t[4]&&t!==e;)kt(t)&&ks(t[1],t),t=vs(t,e);null===t&&(t=e),kt(t)&&ks(t[1],t),n=t&&t[4]}t=n}}(t)}}function vs(e,t){var n;return kt(e)&&(n=e[6])&&2===n.type?us(n,e):e[3]===t?null:e[3]}function ks(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){var n;if(null!=e&&null!=(n=e.destroyHooks))for(var r=0;r=0?r[l]():r[-l].unsubscribe(),i+=2}else{var c=r[n[i+1]];n[i].call(c)}t[7]=null}}(e,t);var n=t[6];n&&3===n.type&&Bt(t[11])&&(ngDevMode&&ngDevMode.rendererDestroy++,t[11].destroy());var r=t[17];if(null!==r&&wt(t[3])){r!==t[3]&&gs(r,t);var i=t[19];null!==i&&i.detachView(e)}}}function ws(e,t,n){for(var r=t.parent;null!=r&&(4===r.type||5===r.type);)r=(t=r).parent;if(null==r){var i=n[6];return 2===i.type?ds(i,n):(ngDevMode&&Qn(i,3),n[0])}if(t&&5===t.type&&4&t.flags)return Vt(t,n).parentNode;if(ngDevMode&&Gn(r,3),2&r.flags){var a=e.data,o=a[a[r.index].directiveStart].encapsulation;if(o!==Te.ShadowDom&&o!==Te.Native)return null}return Vt(r,n)}function _s(e,t,n,r){ngDevMode&&ngDevMode.rendererInsertBefore++,Bt(e)?e.insertBefore(t,n,r):t.insertBefore(n,r,!0)}function js(e,t,n){ngDevMode&&ngDevMode.rendererAppendChild++,ngDevMode&&Fe(t,"parent node must be defined"),Bt(e)?e.appendChild(t,n):t.appendChild(n)}function Cs(e,t,n,r){null!==r?_s(e,t,n,r):js(e,t,n)}function xs(e,t){return Bt(e)?e.parentNode(t):t.parentNode}function Es(e,t){if(2===e.type){var n=us(e,t);return null===n?null:Ts(n.indexOf(t,10)-10,n)}return 4===e.type||5===e.type?Vt(e,t):null}function Ss(e,t,n,r){var i=ws(e,r,t);if(null!=i){var a=t[11],o=Es(r.parent||t[6],t);if(Array.isArray(n))for(var s=0;s) must have projection slots defined.");var m=p.projection[f];if(Array.isArray(m))a.push.apply(a,Object(r.g)(m));else{var g=ma(h);ngDevMode&&Fe(g,"Component views should always have a parent view (component's host view)"),e(g[1],g,m,a,!0)}}i=o?i.projectionNext:i.next}return a} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */(e[1],e,t.child,[])}return[]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"context",{get:function(){return this._lView[8]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"destroyed",{get:function(){return 256==(256&this._lView[2])},enumerable:!0,configurable:!0}),e.prototype.destroy=function(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){var e=this._viewContainerRef.indexOf(this);e>-1&&this._viewContainerRef.detach(e),this._viewContainerRef=null}bs(this._lView[1],this._lView)},e.prototype.onDestroy=function(e){var t,n,r;t=this._lView[1],n=this._lView,r=e,is(n).push(r),t.firstCreatePass&&as(t).push(n[7].length-1,null)},e.prototype.markForCheck=function(){Zo(this._cdRefInjectingView||this._lView)},e.prototype.detach=function(){this._lView[2]&=-129},e.prototype.reattach=function(){this._lView[2]|=128},e.prototype.detectChanges=function(){Xo(this._lView[1],this._lView,this.context)},e.prototype.checkNoChanges=function(){!function(e,t,n){fn(!0);try{Xo(e,t,n)}finally{fn(!1)}}(this._lView[1],this._lView,this.context)},e.prototype.attachToViewContainerRef=function(e){if(this._appRef)throw new Error("This view is already attached directly to the ApplicationRef!");this._viewContainerRef=e},e.prototype.detachFromAppRef=function(){var e,t;this._appRef=null,e=this._lView[1],t=this._lView,Is(e,t,t[11],2,null,null)},e.prototype.attachToAppRef=function(e){if(this._viewContainerRef)throw new Error("This view is already attached to a ViewContainer!");this._appRef=e},e}(),Ls=function(e){function t(t){var n=e.call(this,t)||this;return n._view=t,n}return Object(r.c)(t,e),t.prototype.detectChanges=function(){es(this._view)},t.prototype.checkNoChanges=function(){!function(e){fn(!0);try{es(e)}finally{fn(!1)}}(this._view)},Object.defineProperty(t.prototype,"context",{get:function(){return null},enumerable:!0,configurable:!0}),t}(Bs);function Fs(e,t,n){return Rs||(Rs=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(r.c)(t,e),t}(e)),new Rs(Vt(t,n))}function Us(e,t,n,i){return Ms||(Ms=function(e){function t(t,n,r){var i=e.call(this)||this;return i._declarationView=t,i._declarationTContainer=n,i.elementRef=r,i}return Object(r.c)(t,e),t.prototype.createEmbeddedView=function(e){var t=this._declarationTContainer.tViews,n=po(this._declarationView,t,e,16,null,t.node),r=this._declarationView[this._declarationTContainer.index];ngDevMode&&zt(r),n[17]=r;var i=this._declarationView[19];return null!==i&&(n[19]=i.createEmbeddedView(t)),mo(t,n,e),new Bs(n)},t}(e)),0===n.type?(ngDevMode&&Fe(n.tViews,"TView must be allocated"),new Ms(i,n,Fs(t,n,i))):null}function Vs(e,t,n,i){var a;qs||(qs=function(e){function n(t,n,r){var i=e.call(this)||this;return i._lContainer=t,i._hostTNode=n,i._hostView=r,i}return Object(r.c)(n,e),Object.defineProperty(n.prototype,"element",{get:function(){return Fs(t,this._hostTNode,this._hostView)},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"injector",{get:function(){return new Tr(this._hostTNode,this._hostView)},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"parentInjector",{get:function(){var e=br(this._hostTNode,this._hostView),t=ir(e,this._hostView),n=function(e,t,n){if(n.parent&&-1!==n.parent.injectorIndex){for(var r=n.parent.injectorIndex,i=n.parent;null!=i.parent&&r==i.parent.injectorIndex;)i=i.parent;return i}for(var a=rr(e),o=t,s=t[6];a>1;)s=(o=o[15])[6],a--;return s}(e,this._hostView,this._hostTNode);return tr(e)&&null!=n?new Tr(n,t):new Tr(null,this._hostView)},enumerable:!0,configurable:!0}),n.prototype.clear=function(){for(;this.length>0;)this.remove(this.length-1)},n.prototype.get=function(e){return null!==this._lContainer[8]&&this._lContainer[8][e]||null},Object.defineProperty(n.prototype,"length",{get:function(){return this._lContainer.length-10},enumerable:!0,configurable:!0}),n.prototype.createEmbeddedView=function(e,t,n){var r=e.createEmbeddedView(t||{});return this.insert(r,n),r},n.prototype.createComponent=function(e,t,n,r,i){var a=n||this.parentInjector;if(!i&&null==e.ngModule&&a){var o=a.get(Oe,null);o&&(i=o)}var s=e.create(a,r,void 0,i);return this.insert(s.hostView,t),s},n.prototype.insert=function(e,t){var n=e._lView,r=n[1];if(e.destroyed)throw new Error("Cannot insert a destroyed View in a ViewContainer!");if(this.allocateContainerIfNeeded(),wt(n[3])){var i=this.indexOf(e);if(-1!==i)this.detach(i);else{var a=n[3];ngDevMode&&Ne(wt(a),!0,"An attached view should have its PARENT point to a container.");var o=new qs(a,a[6],a[3]);o.detach(o.indexOf(e))}}var s=this._adjustIndex(t);return ms(r,n,this._lContainer,s),fs(r,n,!0,Ts(s,this._lContainer)),e.attachToViewContainerRef(this),Qe(this._lContainer[8],s,e),e},n.prototype.move=function(e,t){if(e.destroyed)throw new Error("Cannot move a destroyed View in a ViewContainer!");return this.insert(e,t)},n.prototype.indexOf=function(e){var t=this._lContainer[8];return null!==t?t.indexOf(e):-1},n.prototype.remove=function(e){this.allocateContainerIfNeeded();var t=this._adjustIndex(e,-1);!function(e,t){var n=ys(e,t);n&&bs(n[1],n)}(this._lContainer,t),$e(this._lContainer[8],t)},n.prototype.detach=function(e){this.allocateContainerIfNeeded();var t=this._adjustIndex(e,-1),n=ys(this._lContainer,t);return n&&null!=$e(this._lContainer[8],t)?new Bs(n):null},n.prototype._adjustIndex=function(e,t){return void 0===t&&(t=0),null==e?this.length+t:(ngDevMode&&(Le(e,-1,"ViewRef index must be positive, got "+e),qe(e,this.length+1+t,"index")),e)},n.prototype.allocateContainerIfNeeded=function(){null===this._lContainer[8]&&(this._lContainer[8]=[])},n}(e)),ngDevMode&&Qn(n,0,3,4);var o=i[n.index];if(wt(o))a=o;else{var s=void 0;if(4===n.type)s=Ft(o);else if(ngDevMode&&ngDevMode.rendererCreateComment++,s=i[11].createComment(ngDevMode?"container":""),Et(i)){var l=i[11],c=Vt(n,i);_s(l,xs(l,c),s,function(e,t){return Bt(e)?e.nextSibling(t):t.nextSibling}(l,c))}else Ss(i[1],i,s,n);i[n.index]=a=Go(o,i,s,n),Yo(i,a)}return new qs(a,n,i)}function Hs(e){return void 0===e&&(e=!1),function(e,t,n){if(!n&&jt(e)){var r=Gt(e.index,t);return new Bs(r,r)}if(3===e.type||0===e.type||4===e.type||5===e.type){var i=t[16];return new Bs(i,t)}return null}(cn(),on(),e)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +var Ks=function(){function e(){}return e.__NG_ELEMENT_ID__=function(){return Gs()},e}(),Ws=Hs,Gs=Ws,Qs=Function;function $s(e){return"function"==typeof e} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var Ys=/^function\s+\S+\(\)\s*{[\s\S]+\.apply\(this,\s*arguments\)/,Zs=/^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{/,Js=/^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{[\s\S]*constructor\s*\(/,Xs=/^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{[\s\S]*constructor\s*\(\)\s*{\s*super\(\.\.\.arguments\)/;var el=function(){function e(e){this._reflect=e||Z.Reflect}return e.prototype.isReflectionEnabled=function(){return!0},e.prototype.factory=function(e){return function(){for(var t=[],n=0;n0)for(var i=0;i ")+" > "+s+".")}var l=-1!==n.indexOf(o);if(void 0!==a&&(i=A(a)),null==i)return!1;if(null!=i.imports&&!l){var c;ngDevMode&&t.push(o),n.push(o);try{Ge(i.imports,(function(e){r.processInjectorType(e,t,n)&&(void 0===c&&(c=[]),c.push(e))}))}finally{ngDevMode&&t.pop()}if(void 0!==c)for(var u=function(e){var t=c[e],n=t.ngModule,i=t.providers;Ge(i,(function(e){return r.processProvider(e,n,i||yl)}))},d=0;d0){var n=Ye(t,"?");throw new Error("Can't resolve all parameters for "+B(e)+": ("+n.join(", ")+").")}var r=function(e){var t=e&&(e[N]||e[M]||e[R]&&e[R]());if(t){var n=function(e){if(e.hasOwnProperty("name"))return e.name;var t=(""+e).match(/^function\s*([^\s(]+)/);return null===t?"":t[1]}(e);return console.warn('DEPRECATED: DI is instantiating a token "'+n+'" that inherits its @Injectable decorator but does not provide one itself.\nThis will become an error in v10. Please add @Injectable() to the "'+n+'" class.'),t}return null}(e);return null!==r?function(){return r.factory(e)}:function(){return new e}}(e);throw new Error("unreachable")}function Cl(e,t,n){var i,a=void 0;if(Sl(e)){var o=V(e);return bt(o)||jl(o)}if(El(e))a=function(){return V(e.useValue)};else if((i=e)&&i.useFactory)a=function(){return e.useFactory.apply(e,Object(r.g)(we(e.deps||[])))};else if(function(e){return!(!e||!e.useExisting)}(e))a=function(){return ye(V(e.useExisting))};else{var s=V(e&&(e.useClass||e.provide));if(s||function(e,t,n){var r="";throw e&&t&&(r=" - only instances of Provider and Type are allowed, got: ["+t.map((function(e){return e==n?"?"+n+"?":"..."})).join(", ")+"]"),new Error("Invalid provider for the NgModule '"+B(e)+"'"+r)}(t,n,e),!function(e){return!!e.deps}(e))return bt(s)||jl(s);a=function(){return new(s.bind.apply(s,Object(r.g)([void 0],we(e.deps))))}}return a}function xl(e,t,n){return void 0===n&&(n=!1),{factory:e,value:t,multi:n?[]:void 0}}function El(e){return null!==e&&"object"==typeof e&&he in e}function Sl(e){return"function"==typeof e}function Tl(e,t,n){return kl({name:n},t,e,n)}var Ol=Tl,zl=function(){function e(){}return e.create=function(e,t){return Array.isArray(e)?Ol(e,t,""):Ol(e.providers,e.parent,e.name||"")},e.THROW_IF_NOT_FOUND=ue,e.NULL=new _e,e.ɵprov=T({token:e,providedIn:"any",factory:function(){return ye(ce)}}),e.__NG_ELEMENT_ID__=-1,e}(),Il=function(e){return e},Dl=[],Al=Il,Nl=function(){return Array.prototype.slice.call(arguments)};!function(){function e(e,t,n){void 0===t&&(t=zl.NULL),void 0===n&&(n=null),this.parent=t,this.source=n;var r=this._records=new Map;r.set(zl,{token:zl,fn:Il,deps:Dl,value:this,useNew:!1}),r.set(ce,{token:ce,fn:Il,deps:Dl,value:this,useNew:!1}),this.scope=function e(t,n){var r=null;if(n)if(n=V(n),Array.isArray(n))for(var i=0;i1?" ("+function(e){for(var t=[],n=0;n-1)return t.push(e[n]),t;t.push(e[n])}return t}(e.slice().reverse()).map((function(e){return B(e.token)})).join(" -> ")+")":""}function Ll(e,t,n,r){var i=[t],a=n(i),o=r?function(e,t){var n=e+" caused by: "+(t instanceof Error?t.message:t),r=Error(n);return r.ngOriginalError=t,r} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */(a,r):Error(a);return o.addKey=Fl,o.keys=i,o.injectors=[e],o.constructResolvingMessage=n,o.ngOriginalError=r,o}function Fl(e,t){this.injectors.push(e),this.keys.push(t),this.message=this.constructResolvingMessage(this.keys)}function Ul(e,t){for(var n=[],r=0,i=t.length;r=this._providers.length)throw function(e){return Error("Index "+e+" is out-of-bounds.")}(e);return this._providers[e]},e.prototype._new=function(e){if(this._constructionCounter++>this._getMaxNumberOfObjects())throw t=this,n=e.key,Ll(t,n,(function(e){return"Cannot instantiate cyclic dependency!"+Bl(e)}));var t,n;return this._instantiateProvider(e)},e.prototype._getMaxNumberOfObjects=function(){return this.objs.length},e.prototype._instantiateProvider=function(e){if(e.multiProvider){for(var t=[],n=0;n-1?na(e,t,t,a,r):{propName:a,oldValue:n,newValue:r};if(null===a){for(var o=t-1;"string"!=typeof i[o]&&null===i[o+1];)o--;var s=i[o];if("string"==typeof s){var l=s.match(new RegExp("�","g"));if(l&&l.length-1>t-o)return na(e,o,t,s,r)}}return{propName:void 0,oldValue:n,newValue:r}}(e,t,i,n);!function(e,t,n,r){var i="ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value"+(r?" for '"+r+"'":"")+": '"+t+"'. Current value: '"+n+"'.";throw e&&(i+=" It seems like the view has been created after its parent and its children have been dirty checked. Has it been created in a change detection hook?"),new Error(i)}(r===fa,a.oldValue,a.newValue,a.propName)}return!1}return e[t]=n,!0}function Tc(e,t,n,r){var i=Sc(e,t,n);return Sc(e,t+1,r)||i}function Oc(e,t,n,r,i){var a=Tc(e,t,n,r);return Sc(e,t+2,i)||a}function zc(e,t,n,r,i,a){var o=Tc(e,t,n,r);return Tc(e,t+2,i,a)||o} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function Ic(e,t,n,r){var i=on(),a=bn();if(Sc(i,a,t)){var o=sn(),s=Pn();Vo(s,i,e,t,n,r),ngDevMode&&ns(o.data,s,"attr."+e,a)}return Ic} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function Dc(e,t){ngDevMode&&qe(2,t.length,"should have at least 3 values"),ngDevMode&&Ne(t.length%2,1,"should have an odd number of values");for(var n=!1,r=gn(),i=1;i=e.data.length&&(e.data[i]=null,e.blueprint[i]=null),t[i]=r}function eu(e){return Wt(tn.lFrame.contextLView,e)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function tu(e,t){void 0===t&&(t=y.Default);var n=on();return null==n?ye(e,t):wr(cn(),n,V(e),t)}function nu(e){return kr(cn(),e)}function ru(){var e=ngDevMode?"This constructor was not compatible with Dependency Injection.":"invalid";throw new Error(e)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function iu(e,t,n){var r=on(),i=bn();if(Sc(r,i,t)){var a=sn(),o=Pn();To(a,o,r,e,t,r[11],n,!1),ngDevMode&&ns(a.data,o,e,i)}return iu}function au(e,t,n,r,i){var a=i?"class":"style";ls(e,n,t.inputs[a],a,r)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function ou(e,t,n,r,i,a,o){ngDevMode&&At(t),ngDevMode&&ngDevMode.firstCreatePass++;var s=t.consts,l=Jt(s,a),c=fo(t,n[6],e,3,i,l),u=Ao(t,n,c,Jt(s,o));return ngDevMode&&function(e,t,n,r,i){if(null===e.schemas)return;var a=r.tagName;if(!i&&null!==a){if(("undefined"!=typeof HTMLUnknownElement&&HTMLUnknownElement&&n instanceof HTMLUnknownElement||"undefined"!=typeof customElements&&a.indexOf("-")>-1&&!customElements.get(a))&&!Io(e,0,a)){var o="'"+a+"' is not a known element:\n";o+="1. If '"+a+"' is an Angular component, then verify that it is part of this module.\n",a&&a.indexOf("-")>-1?o+="2. If '"+a+"' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message.":o+="2. To allow any element add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component.",console.warn(o)}}} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */(t,0,r,c,u),null!==c.attrs&&yc(c,c.attrs,!1),null!==c.mergedAttrs&&yc(c,c.mergedAttrs,!0),null!==t.queries&&t.queries.elementStart(t,c),c}function su(e,t,n,r){var i=on(),a=sn(),o=20+e;ngDevMode&&Ne(gn(),a.bindingStartIndex,"elements should be created before any bindings"),ngDevMode&&ngDevMode.rendererCreateElement++,ngDevMode&&He(i,o);var s=i[11],l=i[o]=ho(t,s,tn.lFrame.currentNamespace),c=a.firstCreatePass?ou(e,a,i,l,t,n,r):a.data[o];un(c,!0);var u=c.mergedAttrs;null!==u&&Yn(s,l,u);var d=c.classes;null!==d&&Ps(s,l,d);var h=c.styles;null!==h&&Ns(s,l,h),Ss(a,i,l,c),0===tn.lFrame.elementDepthCount&&$i(l,i),tn.lFrame.elementDepthCount++,Ct(c)&&(ko(a,i,c),vo(a,c,i)),null!==r&&wo(i,c)}function lu(){var e=cn();ngDevMode&&Fe(e,"No parent node to close."),dn()?hn():(ngDevMode&&Ot(cn()),un(e=e.parent,!1));var t=e;ngDevMode&&Gn(t,3),tn.lFrame.elementDepthCount--;var n=sn();n.firstCreatePass&&(Ln(n,e),_t(e)&&n.queries.elementEnd(e)),null!=t.classesWithoutHost&&function(e){return 0!=(16&e.flags)}(t)&&au(n,t,on(),t.classesWithoutHost,!0),null!=t.stylesWithoutHost&&function(e){return 0!=(32&e.flags)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */(t)&&au(n,t,on(),t.stylesWithoutHost,!1)}function cu(e,t,n,r){su(e,t,n,r),lu()}function uu(e,t,n){var r=on(),i=sn(),a=e+20;ngDevMode&&He(r,a),ngDevMode&&Ne(gn(),i.bindingStartIndex,"element containers should be created before any bindings");var o=i.firstCreatePass?function(e,t,n,r,i){ngDevMode&&ngDevMode.firstCreatePass++;var a=t.consts,o=Jt(a,r),s=fo(t,n[6],e,4,"ng-container",o);return null!==o&&yc(s,o,!0),Ao(t,n,s,Jt(a,i)),null!==t.queries&&t.queries.elementStart(t,s),s}(e,i,r,t,n):i.data[a];un(o,!0),ngDevMode&&ngDevMode.rendererCreateComment++;var s=r[a]=r[11].createComment(ngDevMode?"ng-container":"");Ss(i,r,s,o),$i(s,r),Ct(o)&&(ko(i,r,o),vo(i,o,r)),null!=n&&wo(r,o)}function du(){var e=cn(),t=sn();dn()?hn():(ngDevMode&&Ot(e),un(e=e.parent,!1)),ngDevMode&&Gn(e,4),t.firstCreatePass&&(Ln(t,e),_t(e)&&t.queries.elementEnd(e))}function hu(e,t,n){uu(e,t,n),du()}function pu(){return on()} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function fu(e){return!!e&&"function"==typeof e.then}function mu(e){return!!e&&"function"==typeof e.subscribe} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function gu(e,t,n,r){void 0===n&&(n=!1);var i=on(),a=sn(),o=cn();return bu(a,i,i[11],o,e,t,n,r),gu}function yu(e,t,n,r){void 0===n&&(n=!1);var i=cn(),a=on(),o=sn();return bu(o,a,os(_n(o.data),i,a),i,e,t,n,r),yu}function bu(e,t,n,r,i,a,o,s){void 0===o&&(o=!1);var l=Ct(r),c=e.firstCreatePass&&(e.cleanup||(e.cleanup=[])),u=is(t);ngDevMode&&Qn(r,3,0,4);var d=!0;if(3===r.type){var h=Vt(r,t),p=s?s(h):nt,f=p.target||h,m=u.length,g=s?function(e){return s(Ft(e[r.index])).target}:r.index;if(Bt(n)){var y=null;if(!s&&l&&(y=function(e,t,n,r){var i=e.cleanup;if(null!=i)for(var a=0;al?s[l]:null}"string"==typeof o&&(a+=2)}return null}(e,t,i,r.index)),null!==y){(y.__ngLastListenerFn__||y).__ngNextListenerFn__=a,y.__ngLastListenerFn__=a,d=!1}else{a=ku(r,t,a,!1);var b=n.listen(p.name||f,i,a);ngDevMode&&ngDevMode.rendererAddEventListener++,u.push(a,b),c&&c.push(i,g,m,m+1)}}else a=ku(r,t,a,!0),f.addEventListener(i,a,o),ngDevMode&&ngDevMode.rendererAddEventListener++,u.push(a),c&&c.push(i,g,m,o)}var v,k=r.outputs;if(d&&null!==k&&(v=k[i])){var w=v.length;if(w)for(var _=0;_0)&&(h=!0)}else c=n;if(i)if(0!==l){var f=Sa(e[s+1]);e[r+1]=Ea(f,s),0!==f&&(e[f+1]=Ia(e[f+1],r)),e[s+1]=(u=e[s+1],d=r,ngDevMode&&Ie(u,"expected number"),ngDevMode&&De(d,0,32767),131071&u|d<<17)}else e[r+1]=Ea(s,0),0!==s&&(e[s+1]=Ia(e[s+1],r)),s=r;else e[r+1]=Ea(l,0),ngDevMode&&Ne(0!==s&&0===l,!1,"Adding template bindings after hostBindings is not allowed."),0===s?s=r:e[l+1]=Ia(e[l+1],r),l=r;h&&(e[r+1]=Oa(e[r+1])),Bu(e,c,r,!0,a),Bu(e,c,r,!1,a),function(e,t,n,r,i){var a=i?e.residualClasses:e.residualStyles;null!=a&&"string"==typeof t&&Xe(a,t)>=0&&(n[r+1]=Aa(n[r+1]))}(t,c,e,r,a),o=Ea(s,l),a?t.classBindings=o:t.styleBindings=o}function Bu(e,t,n,r,i){for(var a=e[n+1],o=null===t,s=r?Sa(a):za(a),l=!1;0!==s&&(!1===l||o);){ngDevMode&&He(e,s);var c=e[s],u=e[s+1];Lu(c,t)&&(l=!0,e[s+1]=r?Aa(u):Oa(u)),s=r?Sa(u):za(u)}l&&(e[n+1]=r?Oa(a):Aa(a))}function Lu(e,t){return ngDevMode&&Pe(Array.isArray(t),!0,"Expected that 'tStylingKey' has been unwrapped"),null===e||null==t||(Array.isArray(e)?e[1]:e)===t||!(!Array.isArray(e)||"string"!=typeof t)&&Xe(e,t)>=0} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */("undefined"==typeof ngDevMode||ngDevMode)&&oe()&&(Object.freeze({}),Object.freeze(Mu)) +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */;var Fu={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function Uu(e){return e.substring(Fu.key,Fu.keyEnd)}function Vu(e){return e.substring(Fu.value,Fu.valueEnd)}function Hu(e,t){var n=Fu.textEnd;return n===t?-1:(t=Fu.keyEnd=function(e,t,n){for(;t32;)t++;return t}(e,Fu.key=t,n),Gu(e,t,n))}function Ku(e,t){var n=Fu.textEnd,r=Fu.key=Gu(e,t,n);return n===r?-1:(r=Fu.keyEnd=function(e,t,n){var r;for(;t=65&&(-33&r)<=90);)t++;return t}(e,r,n),r=Qu(e,r,n,58),r=Fu.value=Gu(e,r,n),r=Fu.valueEnd=function(e,t,n){var r=-1,i=-1,a=-1,o=t,s=o;for(;o32&&(s=o),a=i,i=r,r=-33&l}return s}(e,r,n),Qu(e,r,n,59))}function Wu(e){Fu.key=0,Fu.keyEnd=0,Fu.value=0,Fu.valueEnd=0,Fu.textEnd=e.length}function Gu(e,t,n){for(;t>"+e.substring(n,n+1)+"<<]"+e.substr(n+1)+"'. Expecting '"+t+"'.")} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function Zu(e){Bn(e)}function Ju(e,t,n){return id(e,t,n,!1),Ju}function Xu(e,t){return id(e,t,null,!0),Xu}function ed(e){ad(ud,td,e,!1)}function td(e,t){for(var n=function(e){return Wu(e),Ku(e,Gu(e,0,Fu.textEnd))}(t);n>=0;n=Ku(t,n))ud(e,Uu(t),Vu(t))}function nd(e){ad(Ze,rd,e,!0)}function rd(e,t){for(var n=function(e){return Wu(e),Hu(e,Gu(e,0,Fu.textEnd))}(t);n>=0;n=Hu(t,n))Ze(e,Uu(t),!0)}function id(e,t,n,r){var i,a=on(),o=sn(),s=vn(2);if(o.firstUpdatePass&&sd(o,e,s,r),t!==fa&&Sc(a,s,t)){var l=void 0;null==n&&(l=null===(i=tn.lFrame)?null:i.currentSanitizer)&&(n=l),dd(o,o.data[An()+20],a,a[11],e,a[s+1]=function(e,t){null==e||("function"==typeof t?e=t(e):"string"==typeof t?e+=t:"object"==typeof e&&(e=B(Vr(e))));return e}(t,n),r,s)}}function ad(e,t,n,r){var i=sn(),a=vn(2);i.firstUpdatePass&&sd(i,null,a,r);var o=on();if(n!==fa&&Sc(o,a,n)){var s=i.data[An()+20];if(fd(s,r)&&!od(i,a)){if(ngDevMode){var l=i.data[a];Ne(Array.isArray(l)?l[1]:l,!1,"Styling linked list shadow input should be marked as 'false'")}var c=r?s.classesWithoutHost:s.stylesWithoutHost;ngDevMode&&!1===r&&null!==c&&Ne(c.endsWith(";"),!0,"Expecting static portion to end with ';'"),null!==c&&(n=L(c,n||"")),au(i,s,o,n,r)}else!function(e,t,n,r,i,a,o,s){i===fa&&(i=Mu);var l=0,c=0,u=0=e.expandoStartIndex}function sd(e,t,n,r){ngDevMode&&Nt(e);var i=e.data;if(null===i[n+1]){var a=i[An()+20],o=od(e,n);fd(a,r)&&null===t&&!o&&(t=!1),t=function(e,t,n,r){var i=_n(e),a=r?t.residualClasses:t.residualStyles;if(null===i){0===(r?t.classBindings:t.styleBindings)&&(n=cd(n=ld(null,e,t,n,r),t.attrs,r),a=null)}else{var o=t.directiveStylingLast;if(-1===o||e[o]!==i)if(n=ld(i,e,t,n,r),null===a){var s=function(e,t,n){var r=n?t.classBindings:t.styleBindings;if(0===za(r))return;return e[Sa(r)]}(e,t,r);void 0!==s&&Array.isArray(s)&&(s=cd(s=ld(null,e,t,s[1],r),t.attrs,r),function(e,t,n,r){var i=n?t.classBindings:t.styleBindings;ngDevMode&&Pe(za(i),0,"Expecting to have at least one template styling binding."),e[Sa(i)]=r}(e,t,r,s))}else a=function(e,t,n){var r=void 0,i=t.directiveEnd;ngDevMode&&Pe(t.directiveStylingLast,-1,"By the time this function gets called at least one hostBindings-node styling instruction must have executed.");for(var a=1+t.directiveStylingLast;a0;){var l=e[i],c=Array.isArray(l),u=c?l[1]:l,d=null===u,h=n[i+1];h===fa&&(h=d?Mu:void 0);var p=d?Je(h,r):u===r?h:void 0;if(c&&!pd(p)&&(p=Je(l,r)),pd(p)&&(s=p,o))return s;var f=e[i+1];i=o?Sa(f):za(f)}if(null!==t){var m=a?t.residualClasses:t.residualStyles;null!=m&&(s=Je(m,r))}return s}function pd(e){return void 0!==e}function fd(e,t){return 0!=(e.flags&(t?16:32))} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function md(e,t){void 0===t&&(t="");var n=on(),r=sn(),i=e+20;ngDevMode&&Ne(gn(),r.bindingStartIndex,"text nodes should be created before any bindings"),ngDevMode&&He(n,i);var a=r.firstCreatePass?fo(r,n[6],e,3,null,null):r.data[i],o=n[i]=ps(t,n[11]);Ss(r,n,o,a),un(a,!1)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function gd(e){return yd("",e,""),gd}function yd(e,t,n){var r=on(),i=Ac(r,e,t,n);return i!==fa&&cs(r,An(),i),yd}function bd(e,t,n,r,i){var a=on(),o=Nc(a,e,t,n,r,i);return o!==fa&&cs(a,An(),o),bd}function vd(e,t,n,r,i,a,o){var s=on(),l=Pc(s,e,t,n,r,i,a,o);return l!==fa&&cs(s,An(),l),vd}function kd(e,t,n,r,i,a,o,s,l){var c=on(),u=Rc(c,e,t,n,r,i,a,o,s,l);return u!==fa&&cs(c,An(),u),kd}function wd(e,t,n,r,i,a,o,s,l,c,u){var d=on(),h=Mc(d,e,t,n,r,i,a,o,s,l,c,u);return h!==fa&&cs(d,An(),h),wd}function _d(e,t,n,r,i,a,o,s,l,c,u,d,h){var p=on(),f=qc(p,e,t,n,r,i,a,o,s,l,c,u,d,h);return f!==fa&&cs(p,An(),f),_d}function jd(e,t,n,r,i,a,o,s,l,c,u,d,h,p,f){var m=on(),g=Bc(m,e,t,n,r,i,a,o,s,l,c,u,d,h,p,f);return g!==fa&&cs(m,An(),g),jd}function Cd(e,t,n,r,i,a,o,s,l,c,u,d,h,p,f,m,g){var y=on(),b=Lc(y,e,t,n,r,i,a,o,s,l,c,u,d,h,p,f,m,g);return b!==fa&&cs(y,An(),b),Cd}function xd(e){var t=on(),n=Dc(t,e);return n!==fa&&cs(t,An(),n),xd} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function Ed(e,t,n){ad(Ze,rd,Ac(on(),e,t,n),!0)}function Sd(e,t,n,r,i){ad(Ze,rd,Nc(on(),e,t,n,r,i),!0)}function Td(e,t,n,r,i,a,o){ad(Ze,rd,Pc(on(),e,t,n,r,i,a,o),!0)}function Od(e,t,n,r,i,a,o,s,l){ad(Ze,rd,Rc(on(),e,t,n,r,i,a,o,s,l),!0)}function zd(e,t,n,r,i,a,o,s,l,c,u){ad(Ze,rd,Mc(on(),e,t,n,r,i,a,o,s,l,c,u),!0)}function Id(e,t,n,r,i,a,o,s,l,c,u,d,h){ad(Ze,rd,qc(on(),e,t,n,r,i,a,o,s,l,c,u,d,h),!0)}function Dd(e,t,n,r,i,a,o,s,l,c,u,d,h,p,f){ad(Ze,rd,Bc(on(),e,t,n,r,i,a,o,s,l,c,u,d,h,p,f),!0)}function Ad(e,t,n,r,i,a,o,s,l,c,u,d,h,p,f,m,g){ad(Ze,rd,Lc(on(),e,t,n,r,i,a,o,s,l,c,u,d,h,p,f,m,g),!0)}function Nd(e){ad(Ze,rd,Dc(on(),e),!0)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function Pd(e,t,n){ed(Ac(on(),e,t,n))}function Rd(e,t,n,r,i){ed(Nc(on(),e,t,n,r,i))}function Md(e,t,n,r,i,a,o){ed(Pc(on(),e,t,n,r,i,a,o))}function qd(e,t,n,r,i,a,o,s,l){ed(Rc(on(),e,t,n,r,i,a,o,s,l))}function Bd(e,t,n,r,i,a,o,s,l,c,u){ed(Mc(on(),e,t,n,r,i,a,o,s,l,c,u))}function Ld(e,t,n,r,i,a,o,s,l,c,u,d,h){ed(qc(on(),e,t,n,r,i,a,o,s,l,c,u,d,h))}function Fd(e,t,n,r,i,a,o,s,l,c,u,d,h,p,f){ed(Bc(on(),e,t,n,r,i,a,o,s,l,c,u,d,h,p,f))}function Ud(e,t,n,r,i,a,o,s,l,c,u,d,h,p,f,m,g){ed(Lc(on(),e,t,n,r,i,a,o,s,l,c,u,d,h,p,f,m,g))}function Vd(e){ed(Dc(on(),e))} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function Hd(e,t,n,r,i){return id(e,Ac(on(),t,n,r),i,!1),Hd}function Kd(e,t,n,r,i,a,o){return id(e,Nc(on(),t,n,r,i,a),o,!1),Kd}function Wd(e,t,n,r,i,a,o,s,l){return id(e,Pc(on(),t,n,r,i,a,o,s),l,!1),Wd}function Gd(e,t,n,r,i,a,o,s,l,c,u){return id(e,Rc(on(),t,n,r,i,a,o,s,l,c),u,!1),Gd}function Qd(e,t,n,r,i,a,o,s,l,c,u,d,h){return id(e,Mc(on(),t,n,r,i,a,o,s,l,c,u,d),h,!1),Qd}function $d(e,t,n,r,i,a,o,s,l,c,u,d,h,p,f){return id(e,qc(on(),t,n,r,i,a,o,s,l,c,u,d,h,p),f,!1),$d}function Yd(e,t,n,r,i,a,o,s,l,c,u,d,h,p,f,m,g){return id(e,Bc(on(),t,n,r,i,a,o,s,l,c,u,d,h,p,f,m),g,!1),Yd}function Zd(e,t,n,r,i,a,o,s,l,c,u,d,h,p,f,m,g,y,b){return id(e,Lc(on(),t,n,r,i,a,o,s,l,c,u,d,h,p,f,m,g,y),b,!1),Zd}function Jd(e,t,n){return id(e,Dc(on(),t),n,!1),Jd} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function Xd(e,t,n){var r=on(),i=bn();if(Sc(r,i,t)){var a=sn(),o=Pn();To(a,o,r,e,t,r[11],n,!0),ngDevMode&&ns(a.data,o,e,i)}return Xd}function eh(e,t,n){var r=on(),i=bn();if(Sc(r,i,t)){var a=sn(),o=Pn();To(a,o,r,e,t,os(_n(a.data),o,r),n,!0),ngDevMode&&ns(a.data,o,e,i)}return eh} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function th(e){dh(e);var t,n,r,i,a=sh(e,!1);return null===a?null:(void 0===a.component&&(a.component=(t=a.nodeIndex,n=a.lView,r=n[1].data[t],i=r.directiveStart,2&r.flags?n[i]:null)),a.component)}function nh(e){dh(e);var t=sh(e,!1);return null===t?null:t.lView[8]}function rh(e){var t=sh(e,!1);if(null===t)return null;var n,r=t.lView;for(ngDevMode&&Dt(r);null===r[0]&&(n=ma(r));)r=n;return 512&r[2]?null:r[8]}function ih(e){return Object(r.g)(ya(e).components)}function ah(e){var t=sh(e,!1);if(null===t)return zl.NULL;var n=t.lView[1].data[t.nodeIndex];return new Tr(n,t.lView)}function oh(e){var t=sh(e);return void 0===t.directives&&(t.directives=Xi(t.nodeIndex,t.lView,!1)),null===t.directives?[]:Object(r.g)(t.directives)}function sh(e,t){void 0===t&&(t=!0);var n=Wi(e);if(!n&&t)throw new Error(ngDevMode?"Unable to find context associated with "+or(e):"Invalid ng target");return n}function lh(e){return Wi(e).native}function ch(e){dh(e);var t=sh(e,!1);if(null===t)return[];var n=t.lView,r=n[1],i=n[7],a=r.cleanup,o=[];if(a&&i)for(var s=0;s=0?"dom":"output",m="boolean"==typeof p&&p;e==d&&o.push({element:e,name:u,callback:h,useCapture:m,type:f})}}return o.sort(uh),o}function uh(e,t){return e.name==t.name?0:e.name=0;r--){var i=e[r];i.hostVars=t+=i.hostVars,i.hostAttrs=Xn(i.hostAttrs,n=Xn(n,i.hostAttrs))}}(r)}function Ch(e){return e===nt?{}:e===rt?[]:e}function xh(e,t){var n=e.viewQuery;e.viewQuery=n?function(e,r){t(e,r),n(e,r)}:t}function Eh(e,t){var n=e.contentQueries;e.contentQueries=n?function(e,r,i){t(e,r,i),n(e,r,i)}:t}function Sh(e,t){var n=e.hostBindings;e.hostBindings=n?function(e,r){t(e,r),n(e,r)}:t} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var Th=["providersResolver"],Oh=["template","decls","consts","vars","onPush","ngContentSelectors","styles","encapsulation","schemas"];function zh(e){var t,n,i,a,o=_h(e.type),s=void 0;s=xt(e)?o.ɵcmp:o.ɵdir;var l=e;try{for(var c=Object(r.h)(Th),u=c.next();!u.done;u=c.next()){l[p=u.value]=s[p]}}catch(f){t={error:f}}finally{try{u&&!u.done&&(n=c.return)&&n.call(c)}finally{if(t)throw t.error}}if(xt(s))try{for(var d=Object(r.h)(Oh),h=d.next();!h.done;h=d.next()){var p;l[p=h.value]=s[p]}}catch(m){i={error:m}}finally{try{h&&!h.done&&(a=d.return)&&a.call(d)}finally{if(i)throw i.error}}} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var Ih=function(){function e(e,t,n){this.previousValue=e,this.currentValue=t,this.firstChange=n}return e.prototype.isFirstChange=function(){return this.firstChange},e}(); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function Dh(e){e.type.prototype.ngOnChanges&&(e.setInput=Ah,e.onChanges=function(){var e=Nh(this),t=e&&e.current;if(t){var n=e.previous;if(n===nt)e.previous=t;else for(var r in t)n[r]=t[r];e.current=null,this.ngOnChanges(t)}})}function Ah(e,t,n,r){var i=Nh(e)||function(e,t){return e.__ngSimpleChanges__=t} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */(e,{previous:nt,current:null}),a=i.current||(i.current={}),o=i.previous,s=this.declaredInputs[n],l=o[s];a[s]=new Ih(l&&l.currentValue,t,o===nt),e[r]=t}Dh.ngInherit=!0;function Nh(e){return e.__ngSimpleChanges__||null}function Ph(e,t,n,r,i){if(e=V(e),Array.isArray(e))for(var a=0;a>16;if(Sl(e)||!e.multi){var f=new Wn(c,i,tu),m=qh(l,t,i?d:d+p,h);-1===m?(vr(mr(u,s),o,l),Rh(o,e,t.length),t.push(l),u.directiveStart++,u.directiveEnd++,i&&(u.providerIndexes+=65536),n.push(f),s.push(f)):(n[m]=f,s[m]=f)}else{var g=qh(l,t,d+p,h),y=qh(l,t,d,d+p),b=g>=0&&n[g],v=y>=0&&n[y];if(i&&!v||!i&&!b){vr(mr(u,s),o,l);f=function(e,t,n,r,i){var a=new Wn(e,n,tu);return a.multi=[],a.index=t,a.componentProviders=0,Mh(a,i,r&&!n),a}(i?Lh:Bh,n.length,i,r,c);!i&&v&&(n[y].providerFactory=f),Rh(o,e,t.length,0),t.push(l),u.directiveStart++,u.directiveEnd++,i&&(u.providerIndexes+=65536),n.push(f),s.push(f)}else{Rh(o,e,g>-1?g:y,Mh(n[i?y:g],c,!i&&r))}!i&&r&&v&&n[y].componentProviders++}}}function Rh(e,t,n,r){var i=Sl(t);if(i||t.useClass){var a=(t.useClass||t).prototype.ngOnDestroy;if(a){var o=e.destroyHooks||(e.destroyHooks=[]);if(!i&&t.multi){ngDevMode&&Fe(r,"indexInFactory when registering multi factory destroy hook");var s=o.indexOf(n);-1===s?o.push(n,[r,a]):o[s+1].push(r,a)}else o.push(n,a)}}}function Mh(e,t,n){return n&&e.componentProviders++,e.multi.push(t)-1}function qh(e,t,n,r){for(var i=n;i-1}(r,i)))){var u=e._providers.length;return e._def.providers[u]=e._def.providersByKey[t.tokenKey]={flags:5120,value:l.factory,deps:[],index:u,token:t.token},e._providers[u]=xf,e._providers[u]=Df(e,e._def.providersByKey[t.tokenKey])}return 4&t.flags?n:e._parent.get(t.token,n)}finally{fe(a)}}function Df(e,t){var n;switch(201347067&t.flags){case 512:n=function(e,t,n){var i=n.length;switch(i){case 0:return new t;case 1:return new t(If(e,n[0]));case 2:return new t(If(e,n[0]),If(e,n[1]));case 3:return new t(If(e,n[0]),If(e,n[1]),If(e,n[2]));default:for(var a=[],o=0;o0?i[n-1]:null,r)}function Nf(e,t){var n=e.viewContainer._embeddedViews;if((null==t||t>=n.length)&&(t=n.length-1),t<0)return null;var r=n[t];return r.viewContainerParent=null,$e(n,t),Fp.dirtyParentQueries(r),Rf(r),r}function Pf(e,t,n){var r=t?nf(t,t.def.lastRenderRootNode):e.renderElement,i=n.renderer.parentNode(r),a=n.renderer.nextSibling(r);hf(n,2,i,a,void 0)}function Rf(e){hf(e,3,null,null,void 0)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var Mf={};function qf(e,t,n,r,i,a){return new Lf(e,t,n,r,i,a)}function Bf(e){return e.viewDefFactory}var Lf=function(e){function t(t,n,r,i,a,o){var s=e.call(this)||this;return s.selector=t,s.componentType=n,s._inputs=i,s._outputs=a,s.ngContentSelectors=o,s.viewDefFactory=r,s}return Object(r.c)(t,e),Object.defineProperty(t.prototype,"inputs",{get:function(){var e=[],t=this._inputs;for(var n in t){var r=t[n];e.push({propName:n,templateName:r})}return e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"outputs",{get:function(){var e=[];for(var t in this._outputs){var n=this._outputs[t];e.push({propName:t,templateName:n})}return e},enumerable:!0,configurable:!0}),t.prototype.create=function(e,t,n,r){if(!r)throw new Error("ngModule should be provided");var i=df(this.viewDefFactory),a=i.nodes[0].element.componentProvider.nodeIndex,o=Fp.createRootView(e,t||[],n,i,r,Mf),s=Mp(o,a).instance;return n&&o.renderer.setAttribute(Rp(o,0).renderElement,"ng-version",sp.full),new Ff(o,new Kf(o),s)},t}(Hh),Ff=function(e){function t(t,n,r){var i=e.call(this)||this;return i._view=t,i._viewRef=n,i._component=r,i._elDef=i._view.def.nodes[0],i.hostView=n,i.changeDetectorRef=n,i.instance=r,i}return Object(r.c)(t,e),Object.defineProperty(t.prototype,"location",{get:function(){return new Jh(Rp(this._view,this._elDef.nodeIndex).renderElement)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"injector",{get:function(){return new $f(this._view,this._elDef)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"componentType",{get:function(){return this._component.constructor},enumerable:!0,configurable:!0}),t.prototype.destroy=function(){this._viewRef.destroy()},t.prototype.onDestroy=function(e){this._viewRef.onDestroy(e)},t}(Vh);function Uf(e,t,n){return new Vf(e,t,n)}var Vf=function(){function e(e,t,n){this._view=e,this._elDef=t,this._data=n,this._embeddedViews=[]}return Object.defineProperty(e.prototype,"element",{get:function(){return new Jh(this._data.renderElement)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"injector",{get:function(){return new $f(this._view,this._elDef)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"parentInjector",{get:function(){for(var e=this._view,t=this._elDef.parent;!t&&e;)t=tf(e),e=e.parent;return e?new $f(e,t):new $f(this._view,null)},enumerable:!0,configurable:!0}),e.prototype.clear=function(){for(var e=this._embeddedViews.length-1;e>=0;e--){var t=Nf(this._data,e);Fp.destroyView(t)}},e.prototype.get=function(e){var t=this._embeddedViews[e];if(t){var n=new Kf(t);return n.attachToViewContainerRef(this),n}return null},Object.defineProperty(e.prototype,"length",{get:function(){return this._embeddedViews.length},enumerable:!0,configurable:!0}),e.prototype.createEmbeddedView=function(e,t,n){var r=e.createEmbeddedView(t||{});return this.insert(r,n),r},e.prototype.createComponent=function(e,t,n,r,i){var a=n||this.parentInjector;i||e instanceof Yh||(i=a.get(Oe));var o=e.create(a,r,void 0,i);return this.insert(o.hostView,t),o},e.prototype.insert=function(e,t){if(e.destroyed)throw new Error("Cannot insert a destroyed View in a ViewContainer!");var n=e,r=n._view;return Af(this._view,this._data,t,r),n.attachToViewContainerRef(this),e},e.prototype.move=function(e,t){if(e.destroyed)throw new Error("Cannot move a destroyed View in a ViewContainer!");var n,r,i,a,o,s=this._embeddedViews.indexOf(e._view);return n=this._data,r=s,i=t,a=n.viewContainer._embeddedViews,o=a[r],$e(a,r),null==i&&(i=a.length),Qe(a,i,o),Fp.dirtyParentQueries(o),Rf(o),Pf(n,i>0?a[i-1]:null,o),e},e.prototype.indexOf=function(e){return this._embeddedViews.indexOf(e._view)},e.prototype.remove=function(e){var t=Nf(this._data,e);t&&Fp.destroyView(t)},e.prototype.detach=function(e){var t=Nf(this._data,e);return t?new Kf(t):null},e}();function Hf(e){return new Kf(e)}var Kf=function(){function e(e){this._view=e,this._viewContainerRef=null,this._appRef=null}return Object.defineProperty(e.prototype,"rootNodes",{get:function(){return hf(this._view,0,void 0,void 0,e=[]),e;var e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"context",{get:function(){return this._view.context},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"destroyed",{get:function(){return 0!=(128&this._view.state)},enumerable:!0,configurable:!0}),e.prototype.markForCheck=function(){Zp(this._view)},e.prototype.detach=function(){this._view.state&=-5},e.prototype.detectChanges=function(){var e=this._view.root.rendererFactory;e.begin&&e.begin();try{Fp.checkAndUpdateView(this._view)}finally{e.end&&e.end()}},e.prototype.checkNoChanges=function(){Fp.checkNoChangesView(this._view)},e.prototype.reattach=function(){this._view.state|=4},e.prototype.onDestroy=function(e){this._view.disposables||(this._view.disposables=[]),this._view.disposables.push(e)},e.prototype.destroy=function(){this._appRef?this._appRef.detachView(this):this._viewContainerRef&&this._viewContainerRef.detach(this._viewContainerRef.indexOf(this)),Fp.destroyView(this._view)},e.prototype.detachFromAppRef=function(){this._appRef=null,Rf(this._view),Fp.dirtyParentQueries(this._view)},e.prototype.attachToAppRef=function(e){if(this._viewContainerRef)throw new Error("This view is already attached to a ViewContainer!");this._appRef=e},e.prototype.attachToViewContainerRef=function(e){if(this._appRef)throw new Error("This view is already attached directly to the ApplicationRef!");this._viewContainerRef=e},e}();function Wf(e,t){return new Gf(e,t)}var Gf=function(e){function t(t,n){var r=e.call(this)||this;return r._parentView=t,r._def=n,r}return Object(r.c)(t,e),t.prototype.createEmbeddedView=function(e){return new Kf(Fp.createEmbeddedView(this._parentView,this._def,this._def.element.template,e))},Object.defineProperty(t.prototype,"elementRef",{get:function(){return new Jh(Rp(this._parentView,this._def.nodeIndex).renderElement)},enumerable:!0,configurable:!0}),t}(Cp);function Qf(e,t){return new $f(e,t)}var $f=function(){function e(e,t){this.view=e,this.elDef=t}return e.prototype.get=function(e,t){void 0===t&&(t=zl.THROW_IF_NOT_FOUND);var n=!!this.elDef&&0!=(33554432&this.elDef.flags);return Fp.resolveDep(this.view,this.elDef,n,{flags:0,token:e,tokenKey:Hp(e)},t)},e}();function Yf(e,t){var n=e.def.nodes[t];if(1&n.flags){var r=Rp(e,n.nodeIndex);return n.element.template?r.template:r.renderElement}if(2&n.flags)return Pp(e,n.nodeIndex).renderText;if(20240&n.flags)return Mp(e,n.nodeIndex).instance;throw new Error("Illegal state: read nodeValue for node index "+t)}function Zf(e,t,n,r){return new Jf(e,t,n,r)}var Jf=function(){function e(e,t,n,r){this._moduleType=e,this._parent=t,this._bootstrapComponents=n,this._def=r,this._destroyListeners=[],this._destroyed=!1,this.injector=this,function(e){for(var t=e._def,n=e._providers=Ye(t.providers.length),r=0;r0,r=mm(e,t.parent,n,t.provider.value,t.provider.deps);if(t.outputs.length)for(var i=0;i0,i=t.provider;switch(201347067&t.flags){case 512:return mm(e,t.parent,n,i.value,i.deps);case 1024:return function(e,t,n,i,a){var o=a.length;switch(o){case 0:return i();case 1:return i(ym(e,t,n,a[0]));case 2:return i(ym(e,t,n,a[0]),ym(e,t,n,a[1]));case 3:return i(ym(e,t,n,a[0]),ym(e,t,n,a[1]),ym(e,t,n,a[2]));default:for(var s=[],l=0;l0&&Ps(c,d,k.join(" "))}if(a=Kt(m,0),void 0!==t)for(var w=a.projection=[],_=0;_n.length&&n.push(l)}return{type:r,mainBinding:i,cases:t,values:n}}function tg(e){for(var t,n,r="",i=0,a=!1;null!==(t=Um.exec(e));)a?t[0]==="�/*"+n+"�"&&(i=t.index,a=!1):(r+=e.substring(i,t.index+t[0].length),n=t[1],a=!0);return ngDevMode&&Ne(a,!1,'Tag mismatch: unable to find the end of the sub-template in the translation "'+e+'"'),r+=e.substr(i)}function ng(e,t,n,r){void 0===r&&(r=null);for(var i=[null,null],a=e.split(Hm),o=0,s=0;s0&&o!==s){var d=o.index-20;dn()||(d=~d),u.push(d<<3|0)}var h=[],p=[];if(""===r&&hg(i))u.push(r,ug(a),l<<17|1);else for(var f=function(e,t){if(hg(t))return tg(e);var n=e.indexOf(":"+t+"�")+2+t.toString().length,r=e.search(new RegExp("�\\/\\*\\d+:"+t+"�"));return tg(e.substring(n,r))}(r,i),m=function(e){return e.replace(Tg," ")}(f).split(Vm),g=0;g0&&function(e,t,n){if(ngDevMode&&Le(n,0,"The number of slots to alloc should be greater than 0"),n>0&&e.firstCreatePass){for(var r=0;r>1),o++}}(t,e),xu(!1)}function mg(e,t,n,r,i,a){var o=cn();ngDevMode&&He(t,n+20),t[n+20]=i;var s=fo(e,t[6],n,r,a,null);return o&&o.next===s&&(o.next=null),s}function gg(e,t,n,r){for(var i=r[11],a=null,o=null,s=[],l=0;l>>17,p=void 0;p=h===e?r[6]:Kt(n,h),ngDevMode&&Fe(a,"You need to create or select a node before you can insert it into the DOM"),o=dg(n,a,p,o,r);break;case 0:var f=c>=0,m=(f?c:~c)>>>3;s.push(m),o=a,(a=Kt(n,m))&&un(a,f);break;case 5:o=a=Kt(n,c>>>3),un(a,!1);break;case 4:var g=c>>>3,y=t[++l],b=t[++l];Vo(Kt(n,g),r,y,b,null,null);break;default:throw new Error('Unable to determine the type of mutate operation for "'+c+'"')}else switch(c){case xa:var v=t[++l],k=t[++l];ngDevMode&&Ne(typeof v,"string",'Expected "'+v+'" to be a comment node value');var w=i.createComment(v);ngDevMode&&ngDevMode.rendererCreateComment++,o=a,a=mg(n,r,k,5,w,null),s.push(k),$i(w,r),a.activeCaseIndex=null,hn();break;case Ca:var _=t[++l];g=t[++l];ngDevMode&&Ne(typeof _,"string",'Expected "'+_+'" to be an element node tag name');var j=i.createElement(_);ngDevMode&&ngDevMode.rendererCreateElement++,o=a,a=mg(n,r,g,3,j,_),s.push(g);break;default:throw new Error('Unable to determine the type of mutate operation for "'+c+'"')}}return hn(),s}function yg(e,t,n,r){var i=Kt(e,n),a=Ut(n,t);a&&Os(t[11],a);var o=Wt(t,n);if(wt(o)){var s=o;0!==i.type&&Os(t[11],s[7])}r&&(i.flags|=64),ngDevMode&&ngDevMode.rendererRemoveNode++}function bg(e,t,n){cg(e,t,n),fg()}function vg(e,t){var n=on(),r=sn();ngDevMode&&Fe(r,"tView should be defined"),function(e,t,n,r){for(var i=cn().index-20,a=[],o=0;o>>2,g=void 0,y=void 0;switch(3&f){case 1:var b=t[++p],v=t[++p];To(a,Kt(a,m),o,b,h,o[11],v,!1);break;case 0:cs(o,m,h);break;case 2:if(g=n[t[++p]],null!==(y=Kt(a,m)).activeCaseIndex)for(var k=g.remove[y.activeCaseIndex],w=0;w>>3,!1);break;case 6:var j=Kt(a,k[w+1]>>>3).activeCaseIndex;if(null!==j)Ke(n[_>>>3].remove[j],k)}}var C=Cg(g,h);y.activeCaseIndex=-1!==C?C:null,C>-1&&(gg(-1,g.create[C],a,o),l=!0);break;case 3:g=n[t[++p]],null!==(y=Kt(a,m)).activeCaseIndex&&e(g.update[y.activeCaseIndex],n,r,i,a,o,l)}}}c+=d}}(r,i,a,kg,t,o),kg=0,wg=0}}function Cg(e,t){var n=e.cases.indexOf(t);if(-1===n)switch(e.type){case 1:var r=function(e,t){var n=Pm(t)(parseInt(e,10)),r=qm[n];return void 0!==r?r:"other"}(t,Og);-1===(n=e.cases.indexOf(r))&&"other"!==r&&(n=e.cases.indexOf("other"));break;case 0:n=e.cases.indexOf("other")}return n}function xg(e,t,n,i){for(var a=[],o=[],s=[],l=[],c=[],u=0;u=0;n--){var r=t[n];if(e===r.name)return r}throw new Error("The pipe '"+e+"' could not be found!")}(t,r.pipeRegistry),r.data[i]=n,n.onDestroy&&(r.destroyHooks||(r.destroyHooks=[])).push(i,n.onDestroy)):n=r.data[i];var a=n.factory||(n.factory=bt(n.type,!0)),o=me(tu),s=pr(!1),l=a();return pr(s),me(o),Xc(r,on(),e,l),l}function ny(e,t,n){var r=on(),i=Wt(r,e);return ly(r,sy(r,e)?Yg(r,mn(),t,i.transform,n,i):i.transform(n))}function ry(e,t,n,r){var i=on(),a=Wt(i,e);return ly(i,sy(i,e)?Zg(i,mn(),t,a.transform,n,r,a):a.transform(n,r))}function iy(e,t,n,r,i){var a=on(),o=Wt(a,e);return ly(a,sy(a,e)?Jg(a,mn(),t,o.transform,n,r,i,o):o.transform(n,r,i))}function ay(e,t,n,r,i,a){var o=on(),s=Wt(o,e);return ly(o,sy(o,e)?Xg(o,mn(),t,s.transform,n,r,i,a,s):s.transform(n,r,i,a))}function oy(e,t,n){var r=on(),i=Wt(r,e);return ly(r,sy(r,e)?ey(r,mn(),t,i.transform,n,i):i.transform.apply(i,n))}function sy(e,t){return e[1].data[t+20].pure}function ly(e,t){_c.isWrapped(t)&&(t=_c.unwrap(t),e[gn()]=fa);return t} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var cy=function(e){function t(t){void 0===t&&(t=!1);var n=e.call(this)||this;return n.__isAsync=t,n}return Object(r.c)(t,e),t.prototype.emit=function(t){e.prototype.next.call(this,t)},t.prototype.subscribe=function(t,n,r){var a,o=function(e){return null},s=function(){return null};t&&"object"==typeof t?(a=this.__isAsync?function(e){setTimeout((function(){return t.next(e)}))}:function(e){t.next(e)},t.error&&(o=this.__isAsync?function(e){setTimeout((function(){return t.error(e)}))}:function(e){t.error(e)}),t.complete&&(s=this.__isAsync?function(){setTimeout((function(){return t.complete()}))}:function(){t.complete()})):(a=this.__isAsync?function(e){setTimeout((function(){return t(e)}))}:function(e){t(e)},n&&(o=this.__isAsync?function(e){setTimeout((function(){return n(e)}))}:function(e){n(e)}),r&&(s=this.__isAsync?function(){setTimeout((function(){return r()}))}:function(){r()}));var l=e.prototype.subscribe.call(this,a,o,s);return t instanceof i.a&&t.add(l),l},t}(a.a); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function uy(){return this._results[vc()]()}var dy=function(){function e(){this.dirty=!0,this._results=[],this.changes=new cy,this.length=0;var t=vc(),n=e.prototype;n[t]||(n[t]=uy)}return e.prototype.map=function(e){return this._results.map(e)},e.prototype.filter=function(e){return this._results.filter(e)},e.prototype.find=function(e){return this._results.find(e)},e.prototype.reduce=function(e,t){return this._results.reduce(e,t)},e.prototype.forEach=function(e){this._results.forEach(e)},e.prototype.some=function(e){return this._results.some(e)},e.prototype.toArray=function(){return this._results.slice()},e.prototype.toString=function(){return this._results.toString()},e.prototype.reset=function(e){this._results=We(e),this.dirty=!1,this.length=this._results.length,this.last=this._results[this.length-1],this.first=this._results[0]},e.prototype.notifyOnChanges=function(){this.changes.emit(this)},e.prototype.setDirty=function(){this.dirty=!0},e.prototype.destroy=function(){this.changes.complete(),this.changes.unsubscribe()},e}(),hy=function(){function e(e){this.queryList=e,this.matches=null}return e.prototype.clone=function(){return new e(this.queryList)},e.prototype.setDirty=function(){this.queryList.setDirty()},e}(),py=function(){function e(e){void 0===e&&(e=[]),this.queries=e}return e.prototype.createEmbeddedView=function(t){var n=t.queries;if(null!==n){for(var r=null!==t.contentQueries?t.contentQueries[0]:n.length,i=[],a=0;a0)i.push(s[l/2]);else{var u=o[l+1],d=n[-c];ngDevMode&&zt(d);for(var h=10;h=0;e--){var t=My[e],n=t.moduleType,r=t.ngModule;r.declarations&&r.declarations.every(Ly)&&(My.splice(e,1),Yy(n,r))}}finally{qy=!1}}}function Ly(e){return Array.isArray(e)?e.every(Ly):!!V(e)}function Fy(e,t){void 0===t&&(t={}),Uy(e,t),function(e,t){My.push({moduleType:e,ngModule:t})}(e,t)}function Uy(e,t,n){void 0===n&&(n=!1),ngDevMode&&Fe(e,"Required value moduleType"),ngDevMode&&Fe(t,"Required value ngModule");var r=We(t.declarations||Ry),i=null;Object.defineProperty(e,ne,{configurable:!0,get:function(){if(null===i){if(ngDevMode&&t.imports&&t.imports.indexOf(e)>-1)throw new Error("'"+or(e)+"' module can't import itself");(i=J().compileNgModule(Ay,"ng:///"+e.name+"/ɵmod.js",{type:e,bootstrap:We(t.bootstrap||Ry).map(V),declarations:r.map(V),imports:We(t.imports||Ry).map(V).map(Xy),exports:We(t.exports||Ry).map(V).map(Xy),schemas:t.schemas?We(t.schemas):null,id:t.id||null})).schemas||(i.schemas=[])}return i}});var a=null;Object.defineProperty(e,P,{get:function(){if(null===a){ngDevMode&&Vy(e,n);var r={name:e.name,type:e,deps:al(e),providers:t.providers||Ry,imports:[(t.imports||Ry).map(V),(t.exports||Ry).map(V)]};a=J().compileInjector(Ay,"ng:///"+e.name+"/ɵinj.js",r)}return a},configurable:!!ngDevMode})}function Vy(e,t,n){if(!Gy.get(e)){var i;if(Gy.set(e,!0),e=V(e),n){if(!(i=vt(e)))throw new Error("Unexpected value '"+e.name+"' imported by the module '"+n.name+"'. Please add an @NgModule annotation.")}else i=vt(e,!0);var a=[],o=dr(i.declarations),s=dr(i.imports);We(s).map(Hy).forEach((function(t){h(t,e),Vy(t,!1,e)}));var l=dr(i.exports);o.forEach((function(t){mt(t=V(t))||gt(t)||yt(t)||a.push("Unexpected value '"+or(t)+"' declared by the module '"+or(e)+"'. Please add a @Pipe/@Directive/@Component annotation.")})),o.forEach((function(e){var t=gt(e=V(e));!mt(e)&&t&&0==t.selectors.length&&a.push("Directive "+or(e)+" has no selector, please add it!")}));var c=Object(r.g)(o.map(V),We(s.map($y)).map(V));l.forEach((function(t){var n=(mt(t=V(t))?"component":gt(t)&&"directive")||yt(t)&&"pipe";n&&-1===c.lastIndexOf(t)&&a.push("Can't export "+n+" "+or(t)+" from "+or(e)+" as it was neither declared nor imported!")})),o.forEach((function(n){return function(t,n){t=V(t);var r=Wy.get(t);if(r&&r!==e){if(!n){var i=[r,e].map(or).sort();a.push("Type "+or(t)+" is part of the declarations of 2 modules: "+i[0]+" and "+i[1]+"! Please consider moving "+or(t)+" to a higher module that imports "+i[0]+" and "+i[1]+". You can also create a new NgModule that exports and includes "+or(t)+" then import that NgModule in "+i[0]+" and "+i[1]+".")}}else Wy.set(t,e)}(n,t)})),o.forEach((function(e){if(mt(e=V(e))){var t=Ky(e,"Component");t&&t.entryComponents&&Ge(t.entryComponents,d)}}));var u=Ky(e,"NgModule");if(u&&(u.imports&&We(u.imports).map(Hy).forEach((function(t){h(t,e),Vy(t,!1,e)})),u.bootstrap&&Ge(u.bootstrap,(function(e){mt(e=V(e))||a.push(or(e)+" cannot be used as an entry component.")})),u.bootstrap&&Ge(u.bootstrap,d),u.entryComponents&&Ge(u.entryComponents,d)),a.length)throw new Error(a.join("\n"))}function d(e){e=V(e),Wy.get(e)||a.push("Component "+or(e)+" is not part of any NgModule or the module has not been imported into your module.")}function h(e,t){if(mt(e=V(e))||gt(e))throw new Error("Unexpected directive '"+e.name+"' imported by the module '"+t.name+"'. Please add an @NgModule annotation.");if(yt(e))throw new Error("Unexpected pipe '"+e.name+"' imported by the module '"+t.name+"'. Please add an @NgModule annotation.")}}function Hy(e){return(e=V(e)).ngModule||e}function Ky(e,t){var n=null;return r(e.__annotations__),r(e.decorators),n;function r(e){e&&e.forEach(i)}function i(e){if(!n)if(Object.getPrototypeOf(e).ngMetadataName==t)n=e;else if(e.type){Object.getPrototypeOf(e.type).ngMetadataName==t&&(n=e.args[0])}}}var Wy=new Map,Gy=new Map;function Qy(){Wy=new Map,Gy=new Map,My.length=0}function $y(e){var t=vt(e=V(e),!0);return Object(r.g)(We(dr(t.exports).map((function(e){return vt(e)?(Vy(e,!1),$y(e)):e}))))}function Yy(e,t){var n=We(t.declarations||Ry),r=Jy(e);n.forEach((function(t){t.hasOwnProperty(X)?Zy(mt(t),r):t.hasOwnProperty(ee)||t.hasOwnProperty(te)||(t.ngSelectorScope=e)}))}function Zy(e,t){e.directiveDefs=function(){return Array.from(t.compilation.directives).map((function(e){return e.hasOwnProperty(X)?mt(e):gt(e)})).filter((function(e){return!!e}))},e.pipeDefs=function(){return Array.from(t.compilation.pipes).map((function(e){return yt(e)}))},e.schemas=t.schemas,e.tView=null}function Jy(e){if(!eb(e))throw new Error(e.name+" does not have a module def (ɵmod property)");var t=vt(e);if(null!==t.transitiveCompileScopes)return t.transitiveCompileScopes;var n={schemas:t.schemas||null,compilation:{directives:new Set,pipes:new Set},exported:{directives:new Set,pipes:new Set}};return dr(t.imports).forEach((function(e){var t=e;if(!eb(t))throw new Error("Importing "+t.name+" which does not have a ɵmod property");var r=Jy(t);r.exported.directives.forEach((function(e){return n.compilation.directives.add(e)})),r.exported.pipes.forEach((function(e){return n.compilation.pipes.add(e)}))})),dr(t.declarations).forEach((function(e){yt(e)?n.compilation.pipes.add(e):n.compilation.directives.add(e)})),dr(t.exports).forEach((function(e){var t=e;if(eb(t)){var r=Jy(t);r.exported.directives.forEach((function(e){n.compilation.directives.add(e),n.exported.directives.add(e)})),r.exported.pipes.forEach((function(e){n.compilation.pipes.add(e),n.exported.pipes.add(e)}))}else yt(t)?n.exported.pipes.add(t):n.exported.directives.add(t)})),t.transitiveCompileScopes=n,n}function Xy(e){return function(e){return void 0!==e.ngModule}(e)?e.ngModule:e}function eb(e){return!!vt(e)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function tb(e,t){("undefined"==typeof ngDevMode||ngDevMode)&&oe();var n=null;!function(e,t){fc(t)&&(hc.set(e,t),pc.add(e))}(e,t),ib(e,t),Object.defineProperty(e,X,{get:function(){if(null===n){var i=J();if(fc(t)){var a=["Component '"+e.name+"' is not resolved:"];throw t.templateUrl&&a.push(" - templateUrl: "+t.templateUrl),t.styleUrls&&t.styleUrls.length&&a.push(" - styleUrls: "+JSON.stringify(t.styleUrls)),a.push("Did you run and wait for 'resolveComponentResources()'?"),new Error(a.join("\n"))}var o=Ny,s=t.preserveWhitespaces;void 0===s&&(s=null!==o&&void 0!==o.preserveWhitespaces&&o.preserveWhitespaces);var l=t.encapsulation;void 0===l&&(l=null!==o&&void 0!==o.defaultEncapsulation?o.defaultEncapsulation:Te.Emulated);var c=t.templateUrl||"ng:///"+e.name+"/template.html",u=Object(r.a)(Object(r.a)({},ob(e,t)),{typeSourceSpan:i.createParseSourceSpan("Component",e.name,c),template:t.template||"",preserveWhitespaces:s,styles:t.styles||rt,animations:t.animations,directives:[],changeDetection:t.changeDetection,pipes:new Map,encapsulation:l,interpolation:t.interpolation,viewProviders:t.viewProviders||null});if(u.usesInheritance&&sb(e),n=i.compileComponent(Ay,c,u),By(),void 0!==e.ngSelectorScope){var d=Jy(e.ngSelectorScope);Zy(n,d)}}return n},configurable:!!ngDevMode})}function nb(e,t){var n=null;ib(e,t||{}),Object.defineProperty(e,ee,{get:function(){if(null===n){var r=rb(e,t||{});n=J().compileDirective(Ay,r.sourceMapUrl,r.metadata)}return n},configurable:!!ngDevMode})}function rb(e,t){var n=e&&e.name,r="ng:///"+n+"/ɵdir.js",i=J(),a=ob(e,t);return a.typeSourceSpan=i.createParseSourceSpan("Directive",n,r),a.usesInheritance&&sb(e),{metadata:a,sourceMapUrl:r}}function ib(e,t){var n=null;Object.defineProperty(e,ie,{get:function(){if(null===n){var i=rb(e,t),a=J();n=a.compileFactory(Ay,"ng:///"+e.name+"/ɵfac.js",Object(r.a)(Object(r.a)({},i.metadata),{injectFn:"directiveInject",target:a.R3FactoryTarget.Directive}))}return n},configurable:!!ngDevMode})}function ab(e){return Object.getPrototypeOf(e.prototype)===Object.prototype}function ob(e,t){var n,r=il(),i=r.ownPropMetadata(e);return{name:e.name,type:e,typeArgumentCount:0,selector:void 0!==t.selector?t.selector:null,deps:al(e),host:t.host||nt,propMetadata:i,inputs:t.inputs||rt,outputs:t.outputs||rt,queries:lb(e,i,cb),lifecycle:{usesOnChanges:r.hasLifecycleHook(e,"ngOnChanges")},typeSourceSpan:null,usesInheritance:!ab(e),exportAs:(n=t.exportAs,void 0===n?null:hb(n)),providers:t.providers||null,viewQueries:lb(e,i,ub)}}function sb(e){for(var t=Object.prototype,n=Object.getPrototypeOf(e.prototype).constructor;n&&n!==t;)gt(n)||mt(n)||!fb(n)||nb(n,null),n=Object.getPrototypeOf(n)}function lb(e,t,n){var r=[],i=function(i){if(t.hasOwnProperty(i)){var a=t[i];a.forEach((function(t){if(n(t)){if(!t.selector)throw new Error("Can't construct a query for the property \""+i+'" of "'+or(e)+"\" since the query selector wasn't defined.");if(a.some(db))throw new Error("Cannot combine @Input decorators with query decorators");r.push(function(e,t){return{propertyName:e,predicate:(n=t.selector,"string"==typeof n?hb(n):V(n)),descendants:t.descendants,first:t.first,read:t.read?t.read:null,static:!!t.static};var n}(i,t))}}))}};for(var a in t)i(a);return r}function cb(e){var t=e.ngMetadataName;return"ContentChild"===t||"ContentChildren"===t}function ub(e){var t=e.ngMetadataName;return"ViewChild"===t||"ViewChildren"===t}function db(e){return"Input"===e.ngMetadataName}function hb(e){return e.split(",").map((function(e){return e.trim()}))}var pb=["ngOnChanges","ngOnInit","ngOnDestroy","ngDoCheck","ngAfterViewInit","ngAfterViewChecked","ngAfterContentInit","ngAfterContentChecked"];function fb(e){var t=il();if(pb.some((function(n){return t.hasLifecycleHook(e,n)})))return!0;var n=t.propMetadata(e);for(var r in n)for(var i=n[r],a=0;a0&&(i=setTimeout((function(){r._callbacks=r._callbacks.filter((function(e){return e.timeoutId!==i})),e(r._didWork,r.getPendingTasks())}),t)),this._callbacks.push({doneCb:e,timeoutId:i,updateCb:n})},e.prototype.whenStable=function(e,t,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/dist/task-tracking.js" loaded?');this.addCallback(e,t,n),this._runCallbacksIfReady()},e.prototype.getPendingRequestCount=function(){return this._pendingCount},e.prototype.findProviders=function(e,t,n){return[]},(e=Object(r.b)([Object(r.d)("design:paramtypes",[dv])],e)).ɵfac=function(t){return new(t||e)(ye(dv))},e.ɵprov=T({token:e,factory:function(t){return e.ɵfac(t)}}),e}(),kv=function(){function e(){this._applications=new Map,jv.addToWindow(this)}return e.prototype.registerApplication=function(e,t){this._applications.set(e,t)},e.prototype.unregisterApplication=function(e){this._applications.delete(e)},e.prototype.unregisterAllApplications=function(){this._applications.clear()},e.prototype.getTestability=function(e){return this._applications.get(e)||null},e.prototype.getAllTestabilities=function(){return Array.from(this._applications.values())},e.prototype.getAllRootElements=function(){return Array.from(this._applications.keys())},e.prototype.findTestabilityInTree=function(e,t){return void 0===t&&(t=!0),jv.findTestabilityInTree(this,e,t)},(e=Object(r.b)([Object(r.d)("design:paramtypes",[])],e)).ɵfac=function(t){return new(t||e)},e.ɵprov=T({token:e,factory:function(t){return e.ɵfac(t)}}),e}(); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function wv(e){jv=e}var _v,jv=new(function(){function e(){}return e.prototype.addToWindow=function(e){},e.prototype.findTestabilityInTree=function(e,t,n){return null},e}()),Cv=xv; +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function xv(e,t,n){var i;ngDevMode&&(void 0===i&&(i="Type passed in is not NgModuleType, it does not have 'ɵmod' property."),vt(n)||Ue(i));var a=e.get(sv,[]).concat(t);("undefined"==typeof ngJitMode||ngJitMode)&&function(e){if(null!==Ny){if(e.defaultEncapsulation!==Ny.defaultEncapsulation)return void(ngDevMode&&console.error("Provided value for `defaultEncapsulation` can not be changed once it has been set."));if(e.preserveWhitespaces!==Ny.preserveWhitespaces)return void(ngDevMode&&console.error("Provided value for `preserveWhitespaces` can not be changed once it has been set."))}Ny=e}({defaultEncapsulation:Lv(a.map((function(e){return e.defaultEncapsulation}))),preserveWhitespaces:Lv(a.map((function(e){return e.preserveWhitespaces})))});var o=new qg(n);if(0===hc.size)return Promise.resolve(o);var s,l,c=(s=a.map((function(e){return e.providers})),l=[],s.forEach((function(e){return e&&l.push.apply(l,Object(r.g)(e))})),l);if(0===c.length)return Promise.resolve(o);var u=J(),d=zl.create({providers:c}).get(u.ResourceLoader);return dc((function(e){return Promise.resolve(d.get(e))})).then((function(){return o}))}var Ev=function(){ngDevMode&&fh()},Sv=Tv;function Tv(e){return e.isBoundToModule}var Ov=new le("AllowMultipleToken"),zv=function(e,t){this.name=e,this.token=t};function Iv(e){if(_v&&!_v.destroyed&&!_v.injector.get(Ov,!1))throw new Error("There can be only one platform. Destroy the previous one to create a new one.");Ev(),_v=e.get(Rv);var t=e.get(Lb,null);return t&&t.forEach((function(e){return e()})),_v}function Dv(e,t,n){void 0===n&&(n=[]);var r="Platform: "+t,i=new le(r);return function(t){void 0===t&&(t=[]);var a=Pv();if(!a||a.injector.get(Ov,!1))if(e)e(n.concat(t).concat({provide:i,useValue:!0}));else{var o=n.concat(t).concat({provide:i,useValue:!0},{provide:fl,useValue:"platform"});Iv(zl.create({providers:o,name:r}))}return Av(i)}}function Av(e){var t=Pv();if(!t)throw new Error("No platform exists!");if(!t.injector.get(e,null))throw new Error("A platform with a different configuration has been created. Please destroy it first.");return t}function Nv(){_v&&!_v.destroyed&&_v.destroy()}function Pv(){return _v&&!_v.destroyed?_v:null}var Rv=function(){function e(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}return e.prototype.bootstrapModuleFactory=function(e,t){var n=this,r=function(e,t){var n;n="noop"===e?new bv:("zone.js"===e?void 0:e)||new dv({enableLongStackTrace:Xr(),shouldCoalesceEventChangeDetection:t});return n}(t?t.ngZone:void 0,t&&t.ngZoneEventCoalescing||!1),i=[{provide:dv,useValue:r}];return r.run((function(){var t=zl.create({providers:i,parent:n.injector,name:e.moduleType.name}),a=e.create(t),o=a.injector.get(Nr,null);if(!o)throw new Error("No ErrorHandler. Is platform module (BrowserModule) included?");return a.onDestroy((function(){return Bv(n._modules,a)})),r.runOutsideAngular((function(){return r.onError.subscribe({next:function(e){o.handleError(e)}})})),function(e,t,n){try{var r=n();return fu(r)?r.catch((function(n){throw t.runOutsideAngular((function(){return e.handleError(n)})),n})):r}catch(i){throw t.runOutsideAngular((function(){return e.handleError(i)})),i}}(o,r,(function(){var e=a.injector.get(Nb);return e.runInitializers(),e.donePromise.then((function(){Yb&&zg(a.injector.get(Kb,Bm)||Bm);return n._moduleDoBootstrap(a),a}))}))}))},e.prototype.bootstrapModule=function(e,t){var n=this;void 0===t&&(t=[]);var r=Mv({},t);return Cv(this.injector,r,e).then((function(e){return n.bootstrapModuleFactory(e,r)}))},e.prototype._moduleDoBootstrap=function(e){var t=e.injector.get(qv);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach((function(e){return t.bootstrap(e)}));else{if(!e.instance.ngDoBootstrap)throw new Error("The module "+B(e.instance.constructor)+' was bootstrapped, but it does not declare "@NgModule.bootstrap" components nor a "ngDoBootstrap" method. Please define one of these.');e.instance.ngDoBootstrap(t)}this._modules.push(e)},e.prototype.onDestroy=function(e){this._destroyListeners.push(e)},Object.defineProperty(e.prototype,"injector",{get:function(){return this._injector},enumerable:!0,configurable:!0}),e.prototype.destroy=function(){if(this._destroyed)throw new Error("The platform has already been destroyed!");this._modules.slice().forEach((function(e){return e.destroy()})),this._destroyListeners.forEach((function(e){return e()})),this._destroyed=!0},Object.defineProperty(e.prototype,"destroyed",{get:function(){return this._destroyed},enumerable:!0,configurable:!0}),(e=Object(r.b)([Object(r.d)("design:paramtypes",[zl])],e)).ɵfac=function(t){return new(t||e)(ye(zl))},e.ɵprov=T({token:e,factory:function(t){return e.ɵfac(t)}}),e}();function Mv(e,t){return e=Array.isArray(t)?t.reduce(Mv,e):Object(r.a)(Object(r.a)({},e),t)}var qv=function(){function e(e,t,n,r,i,a){var c=this;this._zone=e,this._console=t,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=i,this._initStatus=a,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=Xr(),this._zone.onMicrotaskEmpty.subscribe({next:function(){c._zone.run((function(){c.tick()}))}});var u=new o.a((function(e){c._stable=c._zone.isStable&&!c._zone.hasPendingMacrotasks&&!c._zone.hasPendingMicrotasks,c._zone.runOutsideAngular((function(){e.next(c._stable),e.complete()}))})),d=new o.a((function(e){var t;c._zone.runOutsideAngular((function(){t=c._zone.onStable.subscribe((function(){dv.assertNotInAngularZone(),uv((function(){c._stable||c._zone.hasPendingMacrotasks||c._zone.hasPendingMicrotasks||(c._stable=!0,e.next(!0))}))}))}));var n=c._zone.onUnstable.subscribe((function(){dv.assertInAngularZone(),c._stable&&(c._stable=!1,c._zone.runOutsideAngular((function(){e.next(!1)})))}));return function(){t.unsubscribe(),n.unsubscribe()}}));this.isStable=Object(s.a)(u,d.pipe(Object(l.a)()))}return e.prototype.bootstrap=function(e,t){var n,r=this;if(!this._initStatus.done)throw new Error("Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.");n=e instanceof Hh?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(n.componentType);var i=Sv(n)?void 0:this._injector.get(Oe),a=t||n.selector,o=n.create(zl.NULL,[],a,i);o.onDestroy((function(){r._unloadComponent(o)}));var s=o.injector.get(vv,null);return s&&o.injector.get(kv).registerApplication(o.location.nativeElement,s),this._loadComponent(o),Xr()&&this._console.log("Angular is running in the development mode. Call enableProdMode() to enable the production mode."),o},e.prototype.tick=function(){var e,t,n,i,a=this;if(this._runningTick)throw new Error("ApplicationRef.tick is called recursively");try{this._runningTick=!0;try{for(var o=Object(r.h)(this._views),s=o.next();!s.done;s=o.next()){s.value.detectChanges()}}catch(u){e={error:u}}finally{try{s&&!s.done&&(t=o.return)&&t.call(o)}finally{if(e)throw e.error}}if(this._enforceNoNewChanges)try{for(var l=Object(r.h)(this._views),c=l.next();!c.done;c=l.next()){c.value.checkNoChanges()}}catch(d){n={error:d}}finally{try{c&&!c.done&&(i=l.return)&&i.call(l)}finally{if(n)throw n.error}}}catch(h){this._zone.runOutsideAngular((function(){return a._exceptionHandler.handleError(h)}))}finally{this._runningTick=!1}},e.prototype.attachView=function(e){var t=e;this._views.push(t),t.attachToAppRef(this)},e.prototype.detachView=function(e){var t=e;Bv(this._views,t),t.detachFromAppRef()},e.prototype._loadComponent=function(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(Ub,[]).concat(this._bootstrapListeners).forEach((function(t){return t(e)}))},e.prototype._unloadComponent=function(e){this.detachView(e.hostView),Bv(this.components,e)},e.prototype.ngOnDestroy=function(){this._views.slice().forEach((function(e){return e.destroy()}))},Object.defineProperty(e.prototype,"viewCount",{get:function(){return this._views.length},enumerable:!0,configurable:!0}),(e=Object(r.b)([Object(r.d)("design:paramtypes",[dv,Hb,zl,Nr,Qh,Nb])],e)).ɵfac=function(t){return new(t||e)(ye(dv),ye(Hb),ye(zl),ye(Nr),ye(Qh),ye(Nb))},e.ɵprov=T({token:e,factory:function(t){return e.ɵfac(t)}}),e}();function Bv(e,t){var n=e.indexOf(t);n>-1&&e.splice(n,1)}function Lv(e){for(var t=e.length-1;t>=0;t--)if(void 0!==e[t])return e[t]} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +var Fv=function(){};function Uv(e){var t=Rg(e);if(!t)throw Kv(e);return t}function Vv(e){var t=Rg(e);if(!t)throw Kv(e);return new qg(t)}var Hv=Vv;function Kv(e){return new Error("No module with ID "+e+" loaded")} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var Wv=function(){},Gv={factoryPathPrefix:"",factoryPathSuffix:".ngfactory"},Qv=function(){function e(e,t){this._compiler=e,this._config=t||Gv}return e.prototype.load=function(e){return!Yb&&this._compiler instanceof ov?this.loadFactory(e):this.loadAndCompile(e)},e.prototype.loadAndCompile=function(e){var t=this,i=Object(r.f)(e.split("#"),2),a=i[0],o=i[1];return void 0===o&&(o="default"),n(529)(a).then((function(e){return e[o]})).then((function(e){return $v(e,a,o)})).then((function(e){return t._compiler.compileModuleAsync(e)}))},e.prototype.loadFactory=function(e){var t=Object(r.f)(e.split("#"),2),i=t[0],a=t[1],o="NgFactory";return void 0===a&&(a="default",o=""),n(529)(this._config.factoryPathPrefix+i+this._config.factoryPathSuffix).then((function(e){return e[a+o]})).then((function(e){return $v(e,i,a)}))},(e=Object(r.b)([Object(r.e)(1,k()),Object(r.d)("design:paramtypes",[ov,Wv])],e)).ɵfac=function(t){return new(t||e)(ye(ov),ye(Wv,8))},e.ɵprov=T({token:e,factory:function(t){return e.ɵfac(t)}}),e}();function $v(e,t,n){if(!e)throw new Error("Cannot find '"+n+"' in '"+t+"'");return e} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var Yv=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(r.c)(t,e),t}(Ks),Zv=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(r.c)(t,e),t}(Yv),Jv=function(e,t){this.name=e,this.callback=t},Xv=function(){function e(e,t,n){this.listeners=[],this.parent=null,this._debugContext=n,this.nativeNode=e,t&&t instanceof ek&&t.addChild(this)}return Object.defineProperty(e.prototype,"injector",{get:function(){return this._debugContext.injector},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"componentInstance",{get:function(){return this._debugContext.component},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"context",{get:function(){return this._debugContext.context},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"references",{get:function(){return this._debugContext.references},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"providerTokens",{get:function(){return this._debugContext.providerTokens},enumerable:!0,configurable:!0}),e}(),ek=function(e){function t(t,n,r){var i=e.call(this,t,n,r)||this;return i.properties={},i.attributes={},i.classes={},i.styles={},i.childNodes=[],i.nativeElement=t,i}return Object(r.c)(t,e),t.prototype.addChild=function(e){e&&(this.childNodes.push(e),e.parent=this)},t.prototype.removeChild=function(e){var t=this.childNodes.indexOf(e);-1!==t&&(e.parent=null,this.childNodes.splice(t,1))},t.prototype.insertChildrenAfter=function(e,t){var n,i=this,a=this.childNodes.indexOf(e);-1!==a&&((n=this.childNodes).splice.apply(n,Object(r.g)([a+1,0],t)),t.forEach((function(t){t.parent&&t.parent.removeChild(t),e.parent=i})))},t.prototype.insertBefore=function(e,t){var n=this.childNodes.indexOf(e);-1===n?this.addChild(t):(t.parent&&t.parent.removeChild(t),t.parent=this,this.childNodes.splice(n,0,t))},t.prototype.query=function(e){return this.queryAll(e)[0]||null},t.prototype.queryAll=function(e){var t=[];return nk(this,e,t),t},t.prototype.queryAllNodes=function(e){var t=[];return rk(this,e,t),t},Object.defineProperty(t.prototype,"children",{get:function(){return this.childNodes.filter((function(e){return e instanceof t}))},enumerable:!0,configurable:!0}),t.prototype.triggerEventHandler=function(e,t){this.listeners.forEach((function(n){n.name==e&&n.callback(t)}))},t}(Xv);function tk(e){return e.map((function(e){return e.nativeElement}))}function nk(e,t,n){e.childNodes.forEach((function(e){e instanceof ek&&(t(e)&&n.push(e),nk(e,t,n))}))}function rk(e,t,n){e instanceof ek&&e.childNodes.forEach((function(e){t(e)&&n.push(e),e instanceof ek&&rk(e,t,n)}))}var ik=function(){function e(e){this.nativeNode=e}return Object.defineProperty(e.prototype,"parent",{get:function(){var e=this.nativeNode.parentNode;return e?new ak(e):null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"injector",{get:function(){return ah(this.nativeNode)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"componentInstance",{get:function(){var e=this.nativeNode;return e&&(th(e)||rh(e))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"context",{get:function(){return th(this.nativeNode)||nh(this.nativeNode)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"listeners",{get:function(){return ch(this.nativeNode).filter((function(e){return"dom"===e.type}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"references",{get:function(){return e=this.nativeNode,null===(t=sh(e,!1))?{}:(void 0===t.localRefs&&(t.localRefs=function(e,t){var n=e[1].data[t];if(n&&n.localNames){for(var r={},i=n.index+1,a=0;a1){for(var c=s[1],u=1;u0)c=m,Yk(m)||(u=m);else for(;c&&f===c.nodeIndex+c.childCount;){var v=c.parent;v&&(v.childFlags|=c.childFlags,v.childMatchedQueries|=c.childMatchedQueries),u=(c=v)&&Yk(c)?c.renderParent:c}}return{factory:null,nodeFlags:o,rootNodeFlags:s,nodeMatchedQueries:l,flags:e,nodes:t,updateDirectives:n||Up,updateRenderer:r||Up,handleEvent:function(e,n,r,i){return t[n].element.handleEvent(e,r,i)},bindingCount:i,outputCount:a,lastRenderRootNode:p}}function Yk(e){return 0!=(1&e.flags)&&null===e.element.name}function Zk(e,t,n){var r=t.element&&t.element.template;if(r){if(!r.lastRenderRootNode)throw new Error("Illegal State: Embedded templates without nodes are not allowed!");if(r.lastRenderRootNode&&16777216&r.lastRenderRootNode.flags)throw new Error("Illegal State: Last root node of a template can't have embedded views, at index "+t.nodeIndex+"!")}if(20224&t.flags&&0==(1&(e?e.flags:0)))throw new Error("Illegal State: StaticProvider/Directive nodes need to be children of elements or anchors, at index "+t.nodeIndex+"!");if(t.query){if(67108864&t.flags&&(!e||0==(16384&e.flags)))throw new Error("Illegal State: Content Query nodes need to be children of directives, at index "+t.nodeIndex+"!");if(134217728&t.flags&&e)throw new Error("Illegal State: View Query nodes have to be top level nodes, at index "+t.nodeIndex+"!")}if(t.childCount){var i=e?e.nodeIndex+e.childCount:n-1;if(t.nodeIndex<=i&&t.nodeIndex+t.childCount>i)throw new Error("Illegal State: childCount of node leads outside of parent, at index "+t.nodeIndex+"!")}}function Jk(e,t,n,r){var i=tw(e.root,e.renderer,e,t,n);return nw(i,e.component,r),rw(i),i}function Xk(e,t,n){var r=tw(e,e.renderer,null,null,t);return nw(r,n,n),rw(r),r}function ew(e,t,n,r){var i,a=t.element.componentRendererType;return i=a?e.root.rendererFactory.createRenderer(r,a):e.root.renderer,tw(e.root,i,e,t.element.componentProvider,n)}function tw(e,t,n,r,i){var a=new Array(i.nodes.length),o=i.outputCount?new Array(i.outputCount):null;return{def:i,parent:n,viewContainerParent:null,parentNodeDef:r,context:null,component:null,nodes:a,state:13,root:e,renderer:t,oldValues:new Array(i.bindingCount),disposables:o,initIndex:-1}}function nw(e,t,n){e.component=t,e.context=n}function rw(e){var t;if(rf(e)){var n=e.parentNodeDef;t=Rp(e.parent,n.parent.nodeIndex).renderElement}for(var r=e.def,i=e.nodes,a=0;a0&&Nk(e,t,0,n)&&(p=!0),h>1&&Nk(e,t,1,r)&&(p=!0),h>2&&Nk(e,t,2,i)&&(p=!0),h>3&&Nk(e,t,3,a)&&(p=!0),h>4&&Nk(e,t,4,o)&&(p=!0),h>5&&Nk(e,t,5,s)&&(p=!0),h>6&&Nk(e,t,6,l)&&(p=!0),h>7&&Nk(e,t,7,c)&&(p=!0),h>8&&Nk(e,t,8,u)&&(p=!0),h>9&&Nk(e,t,9,d)&&(p=!0),p}(e,t,n,r,i,a,o,s,l,c,u,d);case 2:return function(e,t,n,r,i,a,o,s,l,c,u,d){var h=!1,p=t.bindings,f=p.length;if(f>0&&$p(e,t,0,n)&&(h=!0),f>1&&$p(e,t,1,r)&&(h=!0),f>2&&$p(e,t,2,i)&&(h=!0),f>3&&$p(e,t,3,a)&&(h=!0),f>4&&$p(e,t,4,o)&&(h=!0),f>5&&$p(e,t,5,s)&&(h=!0),f>6&&$p(e,t,6,l)&&(h=!0),f>7&&$p(e,t,7,c)&&(h=!0),f>8&&$p(e,t,8,u)&&(h=!0),f>9&&$p(e,t,9,d)&&(h=!0),h){var m=t.text.prefix;f>0&&(m+=Qk(n,p[0])),f>1&&(m+=Qk(r,p[1])),f>2&&(m+=Qk(i,p[2])),f>3&&(m+=Qk(a,p[3])),f>4&&(m+=Qk(o,p[4])),f>5&&(m+=Qk(s,p[5])),f>6&&(m+=Qk(l,p[6])),f>7&&(m+=Qk(c,p[7])),f>8&&(m+=Qk(u,p[8])),f>9&&(m+=Qk(d,p[9]));var g=Pp(e,t.nodeIndex).renderText;e.renderer.setValue(g,m)}return h}(e,t,n,r,i,a,o,s,l,c,u,d);case 16384:return function(e,t,n,r,i,a,o,s,l,c,u,d){var h=Mp(e,t.nodeIndex),p=h.instance,f=!1,m=void 0,g=t.bindings.length;return g>0&&Qp(e,t,0,n)&&(f=!0,m=vm(e,h,t,0,n,m)),g>1&&Qp(e,t,1,r)&&(f=!0,m=vm(e,h,t,1,r,m)),g>2&&Qp(e,t,2,i)&&(f=!0,m=vm(e,h,t,2,i,m)),g>3&&Qp(e,t,3,a)&&(f=!0,m=vm(e,h,t,3,a,m)),g>4&&Qp(e,t,4,o)&&(f=!0,m=vm(e,h,t,4,o,m)),g>5&&Qp(e,t,5,s)&&(f=!0,m=vm(e,h,t,5,s,m)),g>6&&Qp(e,t,6,l)&&(f=!0,m=vm(e,h,t,6,l,m)),g>7&&Qp(e,t,7,c)&&(f=!0,m=vm(e,h,t,7,c,m)),g>8&&Qp(e,t,8,u)&&(f=!0,m=vm(e,h,t,8,u,m)),g>9&&Qp(e,t,9,d)&&(f=!0,m=vm(e,h,t,9,d,m)),m&&p.ngOnChanges(m),65536&t.flags&&Np(e,256,t.nodeIndex)&&p.ngOnInit(),262144&t.flags&&p.ngDoCheck(),f}(e,t,n,r,i,a,o,s,l,c,u,d);case 32:case 64:case 128:return function(e,t,n,r,i,a,o,s,l,c,u,d){var h=t.bindings,p=!1,f=h.length;if(f>0&&$p(e,t,0,n)&&(p=!0),f>1&&$p(e,t,1,r)&&(p=!0),f>2&&$p(e,t,2,i)&&(p=!0),f>3&&$p(e,t,3,a)&&(p=!0),f>4&&$p(e,t,4,o)&&(p=!0),f>5&&$p(e,t,5,s)&&(p=!0),f>6&&$p(e,t,6,l)&&(p=!0),f>7&&$p(e,t,7,c)&&(p=!0),f>8&&$p(e,t,8,u)&&(p=!0),f>9&&$p(e,t,9,d)&&(p=!0),p){var m=qp(e,t.nodeIndex),g=void 0;switch(201347067&t.flags){case 32:g=[],f>0&&g.push(n),f>1&&g.push(r),f>2&&g.push(i),f>3&&g.push(a),f>4&&g.push(o),f>5&&g.push(s),f>6&&g.push(l),f>7&&g.push(c),f>8&&g.push(u),f>9&&g.push(d);break;case 64:g={},f>0&&(g[h[0].name]=n),f>1&&(g[h[1].name]=r),f>2&&(g[h[2].name]=i),f>3&&(g[h[3].name]=a),f>4&&(g[h[4].name]=o),f>5&&(g[h[5].name]=s),f>6&&(g[h[6].name]=l),f>7&&(g[h[7].name]=c),f>8&&(g[h[8].name]=u),f>9&&(g[h[9].name]=d);break;case 128:var y=n;switch(f){case 1:g=y.transform(n);break;case 2:g=y.transform(r);break;case 3:g=y.transform(r,i);break;case 4:g=y.transform(r,i,a);break;case 5:g=y.transform(r,i,a,o);break;case 6:g=y.transform(r,i,a,o,s);break;case 7:g=y.transform(r,i,a,o,s,l);break;case 8:g=y.transform(r,i,a,o,s,l,c);break;case 9:g=y.transform(r,i,a,o,s,l,c,u);break;case 10:g=y.transform(r,i,a,o,s,l,c,u,d)}}m.value=g}return p}(e,t,n,r,i,a,o,s,l,c,u,d);default:throw"unreachable"}}(e,t,i,a,o,s,l,c,u,d,h,p):function(e,t,n){switch(201347067&t.flags){case 1:return function(e,t,n){for(var r=!1,i=0;i0&&Yp(e,t,0,n);h>1&&Yp(e,t,1,r);h>2&&Yp(e,t,2,i);h>3&&Yp(e,t,3,a);h>4&&Yp(e,t,4,o);h>5&&Yp(e,t,5,s);h>6&&Yp(e,t,6,l);h>7&&Yp(e,t,7,c);h>8&&Yp(e,t,8,u);h>9&&Yp(e,t,9,d)}(e,t,r,i,a,o,s,l,c,u,d,h):function(e,t,n){for(var r=0;r0){var a=new Set(e.modules);Ow.forEach((function(t,n){if(a.has(I(n).providedIn)){var i={token:n,flags:t.flags|(r?4096:0),deps:lf(t.deps),value:t.value,index:e.providers.length};e.providers.push(i),e.providersByKey[Hp(n)]=i}}))}}(e=e.factory((function(){return Up}))),e}(r))}var Cw,xw,Ew,Sw,Tw=new Map,Ow=new Map,zw=new Map;function Iw(e){var t;Tw.set(e.token,e),"function"==typeof e.token&&(t=I(e.token))&&"function"==typeof t.providedIn&&Ow.set(e.token,e)}function Dw(e,t){var n=df(Bf(t)),r=df(n.nodes[0].element.componentView);zw.set(e,r)}function Aw(){Tw.clear(),Ow.clear(),zw.clear()}function Nw(e){if(0===Tw.size)return e;var t=function(e){for(var t=[],n=null,r=0;r=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&Object.defineProperty(t,n,o),o}function s(e,t){return function(n,r){t(n,r,e)}}function l(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}Object.create;function c(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function u(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,a=n.call(e),o=[];try{for(;(void 0===t||t-- >0)&&!(r=a.next()).done;)o.push(r.value)}catch(s){i={error:s}}finally{try{r&&!r.done&&(n=a.return)&&n.call(a)}finally{if(i)throw i.error}}return o}function d(){for(var e=[],t=0;t0?t.substring(1):t},t.prototype.prepareExternalUrl=function(e){var t=g(this._baseHref,e);return t.length>0?"#"+t:t},t.prototype.pushState=function(e,t,n,r){var i=this.prepareExternalUrl(n+b(r));0==i.length&&(i=this._platformLocation.pathname),this._platformLocation.pushState(e,t,i)},t.prototype.replaceState=function(e,t,n,r){var i=this.prepareExternalUrl(n+b(r));0==i.length&&(i=this._platformLocation.pathname),this._platformLocation.replaceState(e,t,i)},t.prototype.forward=function(){this._platformLocation.forward()},t.prototype.back=function(){this._platformLocation.back()},(t=Object(r.b)([Object(r.e)(1,Object(i.Optional)()),Object(r.e)(1,Object(i.Inject)(w)),Object(r.d)("design:paramtypes",[u,String])],t)).ɵfac=function(e){return new(e||t)(i["ɵɵinject"](u),i["ɵɵinject"](w,8))},t.ɵprov=i["ɵɵdefineInjectable"]({token:t,factory:function(e){return t.ɵfac(e)}}),t}(v),C=function(){function e(e,t){var n=this;this._subject=new i.EventEmitter,this._urlChangeListeners=[],this._platformStrategy=e;var r=this._platformStrategy.getBaseHref();this._platformLocation=t,this._baseHref=y(E(r)),this._platformStrategy.onPopState((function(e){n._subject.emit({url:n.path(!0),pop:!0,state:e.state,type:e.type})}))}var t;return t=e,e.prototype.path=function(e){return void 0===e&&(e=!1),this.normalize(this._platformStrategy.path(e))},e.prototype.getState=function(){return this._platformLocation.getState()},e.prototype.isCurrentPathEqualTo=function(e,t){return void 0===t&&(t=""),this.path()==this.normalize(e+b(t))},e.prototype.normalize=function(e){return t.stripTrailingSlash(function(e,t){return e&&t.startsWith(e)?t.substring(e.length):t}(this._baseHref,E(e)))},e.prototype.prepareExternalUrl=function(e){return e&&"/"!==e[0]&&(e="/"+e),this._platformStrategy.prepareExternalUrl(e)},e.prototype.go=function(e,t,n){void 0===t&&(t=""),void 0===n&&(n=null),this._platformStrategy.pushState(n,"",e,t),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+b(t)),n)},e.prototype.replaceState=function(e,t,n){void 0===t&&(t=""),void 0===n&&(n=null),this._platformStrategy.replaceState(n,"",e,t),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+b(t)),n)},e.prototype.forward=function(){this._platformStrategy.forward()},e.prototype.back=function(){this._platformStrategy.back()},e.prototype.onUrlChange=function(e){var t=this;this._urlChangeListeners.push(e),this.subscribe((function(e){t._notifyUrlChangeListeners(e.url,e.state)}))},e.prototype._notifyUrlChangeListeners=function(e,t){void 0===e&&(e=""),this._urlChangeListeners.forEach((function(n){return n(e,t)}))},e.prototype.subscribe=function(e,t,n){return this._subject.subscribe({next:e,error:t,complete:n})},e.normalizeQueryParams=b,e.joinWithSlash=g,e.stripTrailingSlash=y,e.ɵprov=Object(i["ɵɵdefineInjectable"])({factory:x,token:e,providedIn:"root"}),(e=t=Object(r.b)([Object(r.d)("design:paramtypes",[v,u])],e)).ɵfac=function(t){return new(t||e)(i["ɵɵinject"](v),i["ɵɵinject"](u))},e}();function x(){return new C(Object(i["ɵɵinject"])(v),Object(i["ɵɵinject"])(u))}function E(e){return e.replace(/\/index.html$/,"")} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var S,T,O,z,I,D,A,N={ADP:[void 0,void 0,0],AFN:[void 0,void 0,0],ALL:[void 0,void 0,0],AMD:[void 0,void 0,2],AOA:[void 0,"Kz"],ARS:[void 0,"$"],AUD:["A$","$"],BAM:[void 0,"KM"],BBD:[void 0,"$"],BDT:[void 0,"৳"],BHD:[void 0,void 0,3],BIF:[void 0,void 0,0],BMD:[void 0,"$"],BND:[void 0,"$"],BOB:[void 0,"Bs"],BRL:["R$"],BSD:[void 0,"$"],BWP:[void 0,"P"],BYN:[void 0,"р.",2],BYR:[void 0,void 0,0],BZD:[void 0,"$"],CAD:["CA$","$",2],CHF:[void 0,void 0,2],CLF:[void 0,void 0,4],CLP:[void 0,"$",0],CNY:["CN¥","¥"],COP:[void 0,"$",2],CRC:[void 0,"₡",2],CUC:[void 0,"$"],CUP:[void 0,"$"],CZK:[void 0,"Kč",2],DJF:[void 0,void 0,0],DKK:[void 0,"kr",2],DOP:[void 0,"$"],EGP:[void 0,"E£"],ESP:[void 0,"₧",0],EUR:["€"],FJD:[void 0,"$"],FKP:[void 0,"£"],GBP:["£"],GEL:[void 0,"₾"],GIP:[void 0,"£"],GNF:[void 0,"FG",0],GTQ:[void 0,"Q"],GYD:[void 0,"$",2],HKD:["HK$","$"],HNL:[void 0,"L"],HRK:[void 0,"kn"],HUF:[void 0,"Ft",2],IDR:[void 0,"Rp",2],ILS:["₪"],INR:["₹"],IQD:[void 0,void 0,0],IRR:[void 0,void 0,0],ISK:[void 0,"kr",0],ITL:[void 0,void 0,0],JMD:[void 0,"$"],JOD:[void 0,void 0,3],JPY:["¥",void 0,0],KHR:[void 0,"៛"],KMF:[void 0,"CF",0],KPW:[void 0,"₩",0],KRW:["₩",void 0,0],KWD:[void 0,void 0,3],KYD:[void 0,"$"],KZT:[void 0,"₸"],LAK:[void 0,"₭",0],LBP:[void 0,"L£",0],LKR:[void 0,"Rs"],LRD:[void 0,"$"],LTL:[void 0,"Lt"],LUF:[void 0,void 0,0],LVL:[void 0,"Ls"],LYD:[void 0,void 0,3],MGA:[void 0,"Ar",0],MGF:[void 0,void 0,0],MMK:[void 0,"K",0],MNT:[void 0,"₮",2],MRO:[void 0,void 0,0],MUR:[void 0,"Rs",2],MXN:["MX$","$"],MYR:[void 0,"RM"],NAD:[void 0,"$"],NGN:[void 0,"₦"],NIO:[void 0,"C$"],NOK:[void 0,"kr",2],NPR:[void 0,"Rs"],NZD:["NZ$","$"],OMR:[void 0,void 0,3],PHP:[void 0,"₱"],PKR:[void 0,"Rs",2],PLN:[void 0,"zł"],PYG:[void 0,"₲",0],RON:[void 0,"lei"],RSD:[void 0,void 0,0],RUB:[void 0,"₽"],RUR:[void 0,"р."],RWF:[void 0,"RF",0],SBD:[void 0,"$"],SEK:[void 0,"kr",2],SGD:[void 0,"$"],SHP:[void 0,"£"],SLL:[void 0,void 0,0],SOS:[void 0,void 0,0],SRD:[void 0,"$"],SSP:[void 0,"£"],STD:[void 0,void 0,0],STN:[void 0,"Db"],SYP:[void 0,"£",0],THB:[void 0,"฿"],TMM:[void 0,void 0,0],TND:[void 0,void 0,3],TOP:[void 0,"T$"],TRL:[void 0,void 0,0],TRY:[void 0,"₺"],TTD:[void 0,"$"],TWD:["NT$","$",2],TZS:[void 0,void 0,2],UAH:[void 0,"₴"],UGX:[void 0,void 0,0],USD:["$"],UYI:[void 0,void 0,0],UYU:[void 0,"$"],UYW:[void 0,void 0,4],UZS:[void 0,void 0,2],VEF:[void 0,"Bs",2],VND:["₫",void 0,0],VUV:[void 0,void 0,0],XAF:["FCFA",void 0,0],XCD:["EC$","$"],XOF:["CFA",void 0,0],XPF:["CFPF",void 0,0],XXX:["¤"],YER:[void 0,void 0,0],ZAR:[void 0,"R"],ZMK:[void 0,void 0,0],ZMW:[void 0,"ZK"],ZWD:[void 0,void 0,0]}; +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function P(e){return Object(i["ɵfindLocaleData"])(e)[i["ɵLocaleDataIndex"].LocaleId]}function R(e,t,n){var r=Object(i["ɵfindLocaleData"])(e),a=te([r[i["ɵLocaleDataIndex"].DayPeriodsFormat],r[i["ɵLocaleDataIndex"].DayPeriodsStandalone]],t);return te(a,n)}function M(e,t,n){var r=Object(i["ɵfindLocaleData"])(e),a=te([r[i["ɵLocaleDataIndex"].DaysFormat],r[i["ɵLocaleDataIndex"].DaysStandalone]],t);return te(a,n)}function q(e,t,n){var r=Object(i["ɵfindLocaleData"])(e),a=te([r[i["ɵLocaleDataIndex"].MonthsFormat],r[i["ɵLocaleDataIndex"].MonthsStandalone]],t);return te(a,n)}function B(e,t){return te(Object(i["ɵfindLocaleData"])(e)[i["ɵLocaleDataIndex"].Eras],t)}function L(e){return Object(i["ɵfindLocaleData"])(e)[i["ɵLocaleDataIndex"].FirstDayOfWeek]}function F(e){return Object(i["ɵfindLocaleData"])(e)[i["ɵLocaleDataIndex"].WeekendRange]}function U(e,t){return te(Object(i["ɵfindLocaleData"])(e)[i["ɵLocaleDataIndex"].DateFormat],t)}function V(e,t){return te(Object(i["ɵfindLocaleData"])(e)[i["ɵLocaleDataIndex"].TimeFormat],t)}function H(e,t){return te(Object(i["ɵfindLocaleData"])(e)[i["ɵLocaleDataIndex"].DateTimeFormat],t)}function K(e,t){var n=Object(i["ɵfindLocaleData"])(e),r=n[i["ɵLocaleDataIndex"].NumberSymbols][t];if(void 0===r){if(t===D.CurrencyDecimal)return n[i["ɵLocaleDataIndex"].NumberSymbols][D.Decimal];if(t===D.CurrencyGroup)return n[i["ɵLocaleDataIndex"].NumberSymbols][D.Group]}return r}function W(e,t){return Object(i["ɵfindLocaleData"])(e)[i["ɵLocaleDataIndex"].NumberFormats][t]}function G(e){return Object(i["ɵfindLocaleData"])(e)[i["ɵLocaleDataIndex"].CurrencySymbol]||null}function Q(e){return Object(i["ɵfindLocaleData"])(e)[i["ɵLocaleDataIndex"].CurrencyName]||null}function $(e){return Object(i["ɵgetLocaleCurrencyCode"])(e)}!function(e){e[e.Decimal=0]="Decimal",e[e.Percent=1]="Percent",e[e.Currency=2]="Currency",e[e.Scientific=3]="Scientific"}(S||(S={})),function(e){e[e.Zero=0]="Zero",e[e.One=1]="One",e[e.Two=2]="Two",e[e.Few=3]="Few",e[e.Many=4]="Many",e[e.Other=5]="Other"}(T||(T={})),function(e){e[e.Format=0]="Format",e[e.Standalone=1]="Standalone"}(O||(O={})),function(e){e[e.Narrow=0]="Narrow",e[e.Abbreviated=1]="Abbreviated",e[e.Wide=2]="Wide",e[e.Short=3]="Short"}(z||(z={})),function(e){e[e.Short=0]="Short",e[e.Medium=1]="Medium",e[e.Long=2]="Long",e[e.Full=3]="Full"}(I||(I={})),function(e){e[e.Decimal=0]="Decimal",e[e.Group=1]="Group",e[e.List=2]="List",e[e.PercentSign=3]="PercentSign",e[e.PlusSign=4]="PlusSign",e[e.MinusSign=5]="MinusSign",e[e.Exponential=6]="Exponential",e[e.SuperscriptingExponent=7]="SuperscriptingExponent",e[e.PerMille=8]="PerMille",e[e[1/0]=9]="Infinity",e[e.NaN=10]="NaN",e[e.TimeSeparator=11]="TimeSeparator",e[e.CurrencyDecimal=12]="CurrencyDecimal",e[e.CurrencyGroup=13]="CurrencyGroup"}(D||(D={})),function(e){e[e.Sunday=0]="Sunday",e[e.Monday=1]="Monday",e[e.Tuesday=2]="Tuesday",e[e.Wednesday=3]="Wednesday",e[e.Thursday=4]="Thursday",e[e.Friday=5]="Friday",e[e.Saturday=6]="Saturday"}(A||(A={}));var Y=i["ɵgetLocalePluralCase"];function Z(e){if(!e[i["ɵLocaleDataIndex"].ExtraData])throw new Error('Missing extra locale data for the locale "'+e[i["ɵLocaleDataIndex"].LocaleId]+'". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.')}function J(e){var t=Object(i["ɵfindLocaleData"])(e);return Z(t),(t[i["ɵLocaleDataIndex"].ExtraData][2]||[]).map((function(e){return"string"==typeof e?ne(e):[ne(e[0]),ne(e[1])]}))}function X(e,t,n){var r=Object(i["ɵfindLocaleData"])(e);Z(r);var a=te([r[i["ɵLocaleDataIndex"].ExtraData][0],r[i["ɵLocaleDataIndex"].ExtraData][1]],t)||[];return te(a,n)||[]}function ee(e){return Object(i["ɵfindLocaleData"])(e)[i["ɵLocaleDataIndex"].Directionality]}function te(e,t){for(var n=t;n>-1;n--)if(void 0!==e[n])return e[n];throw new Error("Locale data API: locale data undefined")}function ne(e){var t=Object(r.f)(e.split(":"),2);return{hours:+t[0],minutes:+t[1]}}function re(e,t,n){void 0===n&&(n="en");var r=function(e){return Object(i["ɵfindLocaleData"])(e)[i["ɵLocaleDataIndex"].Currencies]}(n)[e]||N[e]||[],a=r[1];return"narrow"===t&&"string"==typeof a?a:r[0]||e}function ie(e){var t,n=N[e];return n&&(t=n[2]),"number"==typeof t?t:2} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var ae,oe,se,le=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,ce={},ue=/((?:[^GyMLwWdEabBhHmsSzZO']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;function de(e,t,n,i){var a=function(e){if(ke(e))return e;if("number"==typeof e&&!isNaN(e))return new Date(e);if("string"==typeof e){e=e.trim();var t=parseFloat(e);if(!isNaN(e-t))return new Date(t);if(/^(\d{4}-\d{1,2}-\d{1,2})$/.test(e)){var n=Object(r.f)(e.split("-").map((function(e){return+e})),3),i=n[0],a=n[1],o=n[2];return new Date(i,a-1,o)}var s;if(s=e.match(le))return function(e){var t=new Date(0),n=0,r=0,i=e[8]?t.setUTCFullYear:t.setFullYear,a=e[8]?t.setUTCHours:t.setHours;e[9]&&(n=Number(e[9]+e[10]),r=Number(e[9]+e[11]));i.call(t,Number(e[1]),Number(e[2])-1,Number(e[3]));var o=Number(e[4]||0)-n,s=Number(e[5]||0)-r,l=Number(e[6]||0),c=Math.round(1e3*parseFloat("0."+(e[7]||0)));return a.call(t,o,s,l,c),t}(s)}var l=new Date(e);if(!ke(l))throw new Error('Unable to convert "'+e+'" into a date');return l}(e);t=function e(t,n){var r=P(t);if(ce[r]=ce[r]||{},ce[r][n])return ce[r][n];var i="";switch(n){case"shortDate":i=U(t,I.Short);break;case"mediumDate":i=U(t,I.Medium);break;case"longDate":i=U(t,I.Long);break;case"fullDate":i=U(t,I.Full);break;case"shortTime":i=V(t,I.Short);break;case"mediumTime":i=V(t,I.Medium);break;case"longTime":i=V(t,I.Long);break;case"fullTime":i=V(t,I.Full);break;case"short":var a=e(t,"shortTime"),o=e(t,"shortDate");i=he(H(t,I.Short),[a,o]);break;case"medium":var s=e(t,"mediumTime"),l=e(t,"mediumDate");i=he(H(t,I.Medium),[s,l]);break;case"long":var c=e(t,"longTime"),u=e(t,"longDate");i=he(H(t,I.Long),[c,u]);break;case"full":var d=e(t,"fullTime"),h=e(t,"fullDate");i=he(H(t,I.Full),[d,h])}i&&(ce[r][n]=i);return i}(n,t)||t;for(var o,s=[];t;){if(!(o=ue.exec(t))){s.push(t);break}var l=(s=s.concat(o.slice(1))).pop();if(!l)break;t=l}var c=a.getTimezoneOffset();i&&(c=ve(i,c),a=function(e,t,n){var r=n?-1:1,i=e.getTimezoneOffset(),a=ve(t,i);return function(e,t){return(e=new Date(e.getTime())).setMinutes(e.getMinutes()+t),e}(e,r*(a-i))}(a,i,!0));var u="";return s.forEach((function(e){var t=function(e){if(be[e])return be[e];var t;switch(e){case"G":case"GG":case"GGG":t=me(se.Eras,z.Abbreviated);break;case"GGGG":t=me(se.Eras,z.Wide);break;case"GGGGG":t=me(se.Eras,z.Narrow);break;case"y":t=fe(oe.FullYear,1,0,!1,!0);break;case"yy":t=fe(oe.FullYear,2,0,!0,!0);break;case"yyy":t=fe(oe.FullYear,3,0,!1,!0);break;case"yyyy":t=fe(oe.FullYear,4,0,!1,!0);break;case"M":case"L":t=fe(oe.Month,1,1);break;case"MM":case"LL":t=fe(oe.Month,2,1);break;case"MMM":t=me(se.Months,z.Abbreviated);break;case"MMMM":t=me(se.Months,z.Wide);break;case"MMMMM":t=me(se.Months,z.Narrow);break;case"LLL":t=me(se.Months,z.Abbreviated,O.Standalone);break;case"LLLL":t=me(se.Months,z.Wide,O.Standalone);break;case"LLLLL":t=me(se.Months,z.Narrow,O.Standalone);break;case"w":t=ye(1);break;case"ww":t=ye(2);break;case"W":t=ye(1,!0);break;case"d":t=fe(oe.Date,1);break;case"dd":t=fe(oe.Date,2);break;case"E":case"EE":case"EEE":t=me(se.Days,z.Abbreviated);break;case"EEEE":t=me(se.Days,z.Wide);break;case"EEEEE":t=me(se.Days,z.Narrow);break;case"EEEEEE":t=me(se.Days,z.Short);break;case"a":case"aa":case"aaa":t=me(se.DayPeriods,z.Abbreviated);break;case"aaaa":t=me(se.DayPeriods,z.Wide);break;case"aaaaa":t=me(se.DayPeriods,z.Narrow);break;case"b":case"bb":case"bbb":t=me(se.DayPeriods,z.Abbreviated,O.Standalone,!0);break;case"bbbb":t=me(se.DayPeriods,z.Wide,O.Standalone,!0);break;case"bbbbb":t=me(se.DayPeriods,z.Narrow,O.Standalone,!0);break;case"B":case"BB":case"BBB":t=me(se.DayPeriods,z.Abbreviated,O.Format,!0);break;case"BBBB":t=me(se.DayPeriods,z.Wide,O.Format,!0);break;case"BBBBB":t=me(se.DayPeriods,z.Narrow,O.Format,!0);break;case"h":t=fe(oe.Hours,1,-12);break;case"hh":t=fe(oe.Hours,2,-12);break;case"H":t=fe(oe.Hours,1);break;case"HH":t=fe(oe.Hours,2);break;case"m":t=fe(oe.Minutes,1);break;case"mm":t=fe(oe.Minutes,2);break;case"s":t=fe(oe.Seconds,1);break;case"ss":t=fe(oe.Seconds,2);break;case"S":t=fe(oe.FractionalSeconds,1);break;case"SS":t=fe(oe.FractionalSeconds,2);break;case"SSS":t=fe(oe.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":t=ge(ae.Short);break;case"ZZZZZ":t=ge(ae.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":t=ge(ae.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":t=ge(ae.Long);break;default:return null}return be[e]=t,t}(e);u+=t?t(a,n,c):"''"===e?"'":e.replace(/(^'|'$)/g,"").replace(/''/g,"'")})),u}function he(e,t){return t&&(e=e.replace(/\{([^}]+)}/g,(function(e,n){return null!=t&&n in t?t[n]:e}))),e}function pe(e,t,n,r,i){void 0===n&&(n="-");var a="";(e<0||i&&e<=0)&&(i?e=1-e:(e=-e,a=n));for(var o=String(e);o.length0||l>-n)&&(l+=n),e===oe.Hours)0===l&&-12===n&&(l=12);else if(e===oe.FractionalSeconds)return s=t,pe(l,3).substr(0,s);var c=K(o,D.MinusSign);return pe(l,t,c,r,i)}}function me(e,t,n,r){return void 0===n&&(n=O.Format),void 0===r&&(r=!1),function(i,a){return function(e,t,n,r,i,a){switch(n){case se.Months:return q(t,i,r)[e.getMonth()];case se.Days:return M(t,i,r)[e.getDay()];case se.DayPeriods:var o=e.getHours(),s=e.getMinutes();if(a){var l,c=J(t),u=X(t,i,r);if(c.forEach((function(e,t){if(Array.isArray(e)){var n=e[0],r=n.hours,i=n.minutes,a=e[1],c=a.hours,d=a.minutes;o>=r&&s>=i&&(o0?Math.floor(i/60):Math.ceil(i/60);switch(e){case ae.Short:return(i>=0?"+":"")+pe(o,2,a)+pe(Math.abs(i%60),2,a);case ae.ShortGMT:return"GMT"+(i>=0?"+":"")+pe(o,1,a);case ae.Long:return"GMT"+(i>=0?"+":"")+pe(o,2,a)+":"+pe(Math.abs(i%60),2,a);case ae.Extended:return 0===r?"Z":(i>=0?"+":"")+pe(o,2,a)+":"+pe(Math.abs(i%60),2,a);default:throw new Error('Unknown zone width "'+e+'"')}}}!function(e){e[e.Short=0]="Short",e[e.ShortGMT=1]="ShortGMT",e[e.Long=2]="Long",e[e.Extended=3]="Extended"}(ae||(ae={})),function(e){e[e.FullYear=0]="FullYear",e[e.Month=1]="Month",e[e.Date=2]="Date",e[e.Hours=3]="Hours",e[e.Minutes=4]="Minutes",e[e.Seconds=5]="Seconds",e[e.FractionalSeconds=6]="FractionalSeconds",e[e.Day=7]="Day"}(oe||(oe={})),function(e){e[e.DayPeriods=0]="DayPeriods",e[e.Days=1]="Days",e[e.Months=2]="Months",e[e.Eras=3]="Eras"}(se||(se={}));function ye(e,t){return void 0===t&&(t=!1),function(n,r){var i,a,o,s;if(t){var l=new Date(n.getFullYear(),n.getMonth(),1).getDay()-1,c=n.getDate();i=1+Math.floor((c+l)/7)}else{var u=(o=n.getFullYear(),s=new Date(o,0,1).getDay(),new Date(o,0,1+(s<=4?4:11)-s)),d=(a=n,new Date(a.getFullYear(),a.getMonth(),a.getDate()+(4-a.getDay()))).getTime()-u.getTime();i=1+Math.round(d/6048e5)}return pe(i,e,K(r,D.MinusSign))}}var be={};function ve(e,t){e=e.replace(/:/g,"");var n=Date.parse("Jan 01, 1970 00:00:00 "+e)/6e4;return isNaN(n)?t:n}function ke(e){return e instanceof Date&&!isNaN(e.valueOf())} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var we=/^(\d+)?\.((\d+)(-(\d+))?)?$/;function _e(e,t,n,r,i,a,o){void 0===o&&(o=!1);var s="",l=!1;if(isFinite(e)){var c=function(e){var t,n,r,i,a,o=Math.abs(e)+"",s=0;(n=o.indexOf("."))>-1&&(o=o.replace(".",""));(r=o.search(/e/i))>0?(n<0&&(n=r),n+=+o.slice(r+1),o=o.substring(0,r)):n<0&&(n=o.length);for(r=0;"0"===o.charAt(r);r++);if(r===(a=o.length))t=[0],n=1;else{for(a--;"0"===o.charAt(a);)a--;for(n-=r,t=[],i=0;r<=a;r++,i++)t[i]=Number(o.charAt(r))}n>22&&(t=t.splice(0,21),s=n-1,n=1);return{digits:t,exponent:s,integerLen:n}}(e);o&&(c=function(e){if(0===e.digits[0])return e;var t=e.digits.length-e.integerLen;e.exponent?e.exponent+=2:(0===t?e.digits.push(0,0):1===t&&e.digits.push(0),e.integerLen+=2);return e}(c));var u=t.minInt,d=t.minFrac,h=t.maxFrac;if(a){var p=a.match(we);if(null===p)throw new Error(a+" is not a valid digit info");var f=p[1],m=p[3],g=p[5];null!=f&&(u=Se(f)),null!=m&&(d=Se(m)),null!=g?h=Se(g):null!=m&&d>h&&(h=d)}!function(e,t,n){if(t>n)throw new Error("The minimum number of digits after fraction ("+t+") is higher than the maximum ("+n+").");var r=e.digits,i=r.length-e.integerLen,a=Math.min(Math.max(t,i),n),o=a+e.integerLen,s=r[o];if(o>0){r.splice(Math.max(e.integerLen,o));for(var l=o;l=5)if(o-1<0){for(var u=0;u>o;u--)r.unshift(0),e.integerLen++;r.unshift(1),e.integerLen++}else r[o-1]++;for(;i=h?r.pop():d=!1),t>=10?1:0}),0);p&&(r.unshift(p),e.integerLen++)}(c,d,h);var y=c.digits,b=c.integerLen,v=c.exponent,k=[];for(l=y.every((function(e){return!e}));b0?k=y.splice(b,y.length):(k=y,y=[0]);var w=[];for(y.length>=t.lgSize&&w.unshift(y.splice(-t.lgSize,y.length).join(""));y.length>t.gSize;)w.unshift(y.splice(-t.gSize,y.length).join(""));y.length&&w.unshift(y.join("")),s=w.join(K(n,r)),k.length&&(s+=K(n,i)+k.join("")),v&&(s+=K(n,D.Exponential)+"+"+v)}else s=K(n,D.Infinity);return s=e<0&&!l?t.negPre+s+t.negSuf:t.posPre+s+t.posSuf}function je(e,t,n,r,i){var a=Ee(W(t,S.Currency),K(t,D.MinusSign));return a.minFrac=ie(r),a.maxFrac=a.minFrac,_e(e,a,t,D.CurrencyGroup,D.CurrencyDecimal,i).replace("¤",n).replace("¤","").trim()}function Ce(e,t,n){return _e(e,Ee(W(t,S.Percent),K(t,D.MinusSign)),t,D.Group,D.Decimal,n,!0).replace(new RegExp("%","g"),K(t,D.PercentSign))}function xe(e,t,n){return _e(e,Ee(W(t,S.Decimal),K(t,D.MinusSign)),t,D.Group,D.Decimal,n)}function Ee(e,t){void 0===t&&(t="-");var n={minInt:1,minFrac:0,maxFrac:0,posPre:"",posSuf:"",negPre:"",negSuf:"",gSize:0,lgSize:0},r=e.split(";"),i=r[0],a=r[1],o=-1!==i.indexOf(".")?i.split("."):[i.substring(0,i.lastIndexOf("0")+1),i.substring(i.lastIndexOf("0")+1)],s=o[0],l=o[1]||"";n.posPre=s.substr(0,s.indexOf("#"));for(var c=0;c-1)return i;if(i=n.getPluralCategory(e,r),t.indexOf(i)>-1)return i;if(t.indexOf("other")>-1)return"other";throw new Error('No plural message found for value "'+e+'"')}var ze=function(e){function t(t){var n=e.call(this)||this;return n.locale=t,n}return Object(r.c)(t,e),t.prototype.getPluralCategory=function(e,t){switch(Y(t||this.locale)(e)){case T.Zero:return"zero";case T.One:return"one";case T.Two:return"two";case T.Few:return"few";case T.Many:return"many";default:return"other"}},(t=Object(r.b)([Object(r.e)(0,Object(i.Inject)(i.LOCALE_ID)),Object(r.d)("design:paramtypes",[String])],t)).ɵfac=function(e){return new(e||t)(i["ɵɵinject"](i.LOCALE_ID))},t.ɵprov=i["ɵɵdefineInjectable"]({token:t,factory:function(e){return t.ɵfac(e)}}),t}(Te); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function Ie(e,t,n){return Object(i["ɵregisterLocaleData"])(e,t,n)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function De(e,t){var n,i;t=encodeURIComponent(t);try{for(var a=Object(r.h)(e.split(";")),o=a.next();!o.done;o=a.next()){var s=o.value,l=s.indexOf("="),c=Object(r.f)(-1==l?[s,""]:[s.slice(0,l),s.slice(l+1)],2),u=c[0],d=c[1];if(u.trim()===t)return decodeURIComponent(d)}}catch(h){n={error:h}}finally{try{o&&!o.done&&(i=a.return)&&i.call(a)}finally{if(n)throw n.error}}return null}var Ae=function(){function e(e,t,n,r){this._iterableDiffers=e,this._keyValueDiffers=t,this._ngEl=n,this._renderer=r,this._iterableDiffer=null,this._keyValueDiffer=null,this._initialClasses=[],this._rawClass=null}return Object.defineProperty(e.prototype,"klass",{set:function(e){this._removeClasses(this._initialClasses),this._initialClasses="string"==typeof e?e.split(/\s+/):[],this._applyClasses(this._initialClasses),this._applyClasses(this._rawClass)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ngClass",{set:function(e){this._removeClasses(this._rawClass),this._applyClasses(this._initialClasses),this._iterableDiffer=null,this._keyValueDiffer=null,this._rawClass="string"==typeof e?e.split(/\s+/):e,this._rawClass&&(Object(i["ɵisListLikeIterable"])(this._rawClass)?this._iterableDiffer=this._iterableDiffers.find(this._rawClass).create():this._keyValueDiffer=this._keyValueDiffers.find(this._rawClass).create())},enumerable:!0,configurable:!0}),e.prototype.ngDoCheck=function(){if(this._iterableDiffer){var e=this._iterableDiffer.diff(this._rawClass);e&&this._applyIterableChanges(e)}else if(this._keyValueDiffer){var t=this._keyValueDiffer.diff(this._rawClass);t&&this._applyKeyValueChanges(t)}},e.prototype._applyKeyValueChanges=function(e){var t=this;e.forEachAddedItem((function(e){return t._toggleClass(e.key,e.currentValue)})),e.forEachChangedItem((function(e){return t._toggleClass(e.key,e.currentValue)})),e.forEachRemovedItem((function(e){e.previousValue&&t._toggleClass(e.key,!1)}))},e.prototype._applyIterableChanges=function(e){var t=this;e.forEachAddedItem((function(e){if("string"!=typeof e.item)throw new Error("NgClass can only toggle CSS classes expressed as strings, got "+Object(i["ɵstringify"])(e.item));t._toggleClass(e.item,!0)})),e.forEachRemovedItem((function(e){return t._toggleClass(e.item,!1)}))},e.prototype._applyClasses=function(e){var t=this;e&&(Array.isArray(e)||e instanceof Set?e.forEach((function(e){return t._toggleClass(e,!0)})):Object.keys(e).forEach((function(n){return t._toggleClass(n,!!e[n])})))},e.prototype._removeClasses=function(e){var t=this;e&&(Array.isArray(e)||e instanceof Set?e.forEach((function(e){return t._toggleClass(e,!1)})):Object.keys(e).forEach((function(e){return t._toggleClass(e,!1)})))},e.prototype._toggleClass=function(e,t){var n=this;(e=e.trim())&&e.split(/\s+/g).forEach((function(e){t?n._renderer.addClass(n._ngEl.nativeElement,e):n._renderer.removeClass(n._ngEl.nativeElement,e)}))},Object(r.b)([Object(i.Input)("class"),Object(r.d)("design:type",String),Object(r.d)("design:paramtypes",[String])],e.prototype,"klass",null),Object(r.b)([Object(i.Input)("ngClass"),Object(r.d)("design:type",Object),Object(r.d)("design:paramtypes",[Object])],e.prototype,"ngClass",null),(e=Object(r.b)([Object(r.d)("design:paramtypes",[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2])],e)).ɵfac=function(t){return new(t||e)(i["ɵɵdirectiveInject"](i.IterableDiffers),i["ɵɵdirectiveInject"](i.KeyValueDiffers),i["ɵɵdirectiveInject"](i.ElementRef),i["ɵɵdirectiveInject"](i.Renderer2))},e.ɵdir=i["ɵɵdefineDirective"]({type:e,selectors:[["","ngClass",""]],inputs:{klass:["class","klass"],ngClass:"ngClass"}}),e}(),Ne=function(){function e(e){this._viewContainerRef=e,this._componentRef=null,this._moduleRef=null}return e.prototype.ngOnChanges=function(e){if(this._viewContainerRef.clear(),this._componentRef=null,this.ngComponentOutlet){var t=this.ngComponentOutletInjector||this._viewContainerRef.parentInjector;if(e.ngComponentOutletNgModuleFactory)if(this._moduleRef&&this._moduleRef.destroy(),this.ngComponentOutletNgModuleFactory){var n=t.get(i.NgModuleRef);this._moduleRef=this.ngComponentOutletNgModuleFactory.create(n.injector)}else this._moduleRef=null;var r=(this._moduleRef?this._moduleRef.componentFactoryResolver:t.get(i.ComponentFactoryResolver)).resolveComponentFactory(this.ngComponentOutlet);this._componentRef=this._viewContainerRef.createComponent(r,this._viewContainerRef.length,t,this.ngComponentOutletContent)}},e.prototype.ngOnDestroy=function(){this._moduleRef&&this._moduleRef.destroy()},Object(r.b)([Object(i.Input)(),Object(r.d)("design:type",i.Type)],e.prototype,"ngComponentOutlet",void 0),Object(r.b)([Object(i.Input)(),Object(r.d)("design:type",i.Injector)],e.prototype,"ngComponentOutletInjector",void 0),Object(r.b)([Object(i.Input)(),Object(r.d)("design:type",Array)],e.prototype,"ngComponentOutletContent",void 0),Object(r.b)([Object(i.Input)(),Object(r.d)("design:type",i.NgModuleFactory)],e.prototype,"ngComponentOutletNgModuleFactory",void 0),(e=Object(r.b)([Object(r.d)("design:paramtypes",[i.ViewContainerRef])],e)).ɵfac=function(t){return new(t||e)(i["ɵɵdirectiveInject"](i.ViewContainerRef))},e.ɵdir=i["ɵɵdefineDirective"]({type:e,selectors:[["","ngComponentOutlet",""]],inputs:{ngComponentOutlet:"ngComponentOutlet",ngComponentOutletInjector:"ngComponentOutletInjector",ngComponentOutletContent:"ngComponentOutletContent",ngComponentOutletNgModuleFactory:"ngComponentOutletNgModuleFactory"},features:[i["ɵɵNgOnChangesFeature"]]}),e}(),Pe=function(){function e(e,t,n,r){this.$implicit=e,this.ngForOf=t,this.index=n,this.count=r}return Object.defineProperty(e.prototype,"first",{get:function(){return 0===this.index},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"last",{get:function(){return this.index===this.count-1},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"even",{get:function(){return this.index%2==0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"odd",{get:function(){return!this.even},enumerable:!0,configurable:!0}),e}(),Re=function(){function e(e,t,n){this._viewContainer=e,this._template=t,this._differs=n,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}return Object.defineProperty(e.prototype,"ngForOf",{set:function(e){this._ngForOf=e,this._ngForOfDirty=!0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ngForTrackBy",{get:function(){return this._trackByFn},set:function(e){Object(i.isDevMode)()&&null!=e&&"function"!=typeof e&&console&&console.warn&&console.warn("trackBy must be a function, but received "+JSON.stringify(e)+". See https://angular.io/api/common/NgForOf#change-propagation for more information."),this._trackByFn=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ngForTemplate",{set:function(e){e&&(this._template=e)},enumerable:!0,configurable:!0}),e.prototype.ngDoCheck=function(){if(this._ngForOfDirty){this._ngForOfDirty=!1;var e=this._ngForOf;if(!this._differ&&e)try{this._differ=this._differs.find(e).create(this.ngForTrackBy)}catch(r){throw new Error("Cannot find a differ supporting object '"+e+"' of type '"+(((t=e).name||typeof t)+"'. NgFor only supports binding to Iterables such as Arrays."))}}var t; +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */if(this._differ){var n=this._differ.diff(this._ngForOf);n&&this._applyChanges(n)}},e.prototype._applyChanges=function(e){var t=this,n=[];e.forEachOperation((function(e,r,i){if(null==e.previousIndex){var a=t._viewContainer.createEmbeddedView(t._template,new Pe(null,t._ngForOf,-1,-1),null===i?void 0:i),o=new Me(e,a);n.push(o)}else if(null==i)t._viewContainer.remove(null===r?void 0:r);else if(null!==r){a=t._viewContainer.get(r);t._viewContainer.move(a,i);o=new Me(e,a);n.push(o)}}));for(var r=0;r0)for(var n=this.count>=this.total?this.total:this.count,r=this.ring,i=0;i=2;return function(r){return r.pipe(e?Object(O.a)((function(t,n){return e(t,n,r)})):F.a,I(1),n?q(t):N((function(){return new h})))}}var V=n(74);function H(e){return function(t){var n=new K(e),r=t.lift(n);return n.caught=r}}var K=function(){function e(e){this.selector=e}return e.prototype.call=function(e,t){return t.subscribe(new W(e,this.selector,this.caught))},e}(),W=function(e){function t(t,n,r){var i=e.call(this,t)||this;return i.selector=n,i.caught=r,i}return r.c(t,e),t.prototype.error=function(t){if(!this.isStopped){var n=void 0;try{n=this.selector(t,this.caught)}catch(a){return void e.prototype.error.call(this,a)}this._unsubscribeAndRecycle();var r=new V.a(this);this.add(r);var i=Object(V.c)(n,r);i!==r&&this.add(i)}},t}(V.b),G=n(743);function Q(e,t){var n=arguments.length>=2;return function(r){return r.pipe(e?Object(O.a)((function(t,n){return e(t,n,r)})):F.a,Object(G.a)(1),n?q(t):N((function(){return new h})))}}var $=n(306);var Y=function(){function e(e,t,n){this.predicate=e,this.thisArg=t,this.source=n}return e.prototype.call=function(e,t){return t.subscribe(new Z(e,this.predicate,this.thisArg,this.source))},e}(),Z=function(e){function t(t,n,r,i){var a=e.call(this,t)||this;return a.predicate=n,a.thisArg=r,a.source=i,a.index=0,a.thisArg=r||a,a}return r.c(t,e),t.prototype.notifyComplete=function(e){this.destination.next(e),this.destination.complete()},t.prototype._next=function(e){var t=!1;try{t=this.predicate.call(this.thisArg,e,this.index++,this.source)}catch(n){return void this.destination.error(n)}t||this.notifyComplete(!1)},t.prototype._complete=function(){this.notifyComplete(!0)},t}(m.a),J=n(1106),X=n(1107);function ee(e,t){var n=!1;return arguments.length>=2&&(n=!0),function(r){return r.lift(new te(e,t,n))}}var te=function(){function e(e,t,n){void 0===n&&(n=!1),this.accumulator=e,this.seed=t,this.hasSeed=n}return e.prototype.call=function(e,t){return t.subscribe(new ne(e,this.accumulator,this.seed,this.hasSeed))},e}(),ne=function(e){function t(t,n,r,i){var a=e.call(this,t)||this;return a.accumulator=n,a._seed=r,a.hasSeed=i,a.index=0,a}return r.c(t,e),Object.defineProperty(t.prototype,"seed",{get:function(){return this._seed},set:function(e){this.hasSeed=!0,this._seed=e},enumerable:!0,configurable:!0}),t.prototype._next=function(e){if(this.hasSeed)return this._tryNext(e);this.seed=e,this.destination.next(e)},t.prototype._tryNext=function(e){var t,n=this.index++;try{t=this.accumulator(this.seed,e,n)}catch(r){this.destination.error(r)}this.seed=t,this.destination.next(t)},t}(m.a);function re(e,t){return Object($.a)(e,t,1)}var ie=n(268);var ae=n(1108),oe=n(54);var se=function(){function e(e){this.callback=e}return e.prototype.call=function(e,t){return t.subscribe(new le(e,this.callback))},e}(),le=function(e){function t(t,n){var r=e.call(this,t)||this;return r.add(new oe.a(n)),r}return r.c(t,e),t}(m.a),ce=n(305);n.d(t,"ActivatedRoute",(function(){return vt})),n.d(t,"ActivatedRouteSnapshot",(function(){return wt})),n.d(t,"ActivationEnd",(function(){return xe})),n.d(t,"ActivationStart",(function(){return Ce})),n.d(t,"ChildActivationEnd",(function(){return je})),n.d(t,"ChildActivationStart",(function(){return _e})),n.d(t,"ChildrenOutletContexts",(function(){return Un})),n.d(t,"DefaultUrlSerializer",(function(){return Je})),n.d(t,"GuardsCheckEnd",(function(){return ye})),n.d(t,"GuardsCheckStart",(function(){return ge})),n.d(t,"NavigationCancel",(function(){return pe})),n.d(t,"NavigationEnd",(function(){return he})),n.d(t,"NavigationError",(function(){return fe})),n.d(t,"NavigationStart",(function(){return de})),n.d(t,"NoPreloading",(function(){return Gn})),n.d(t,"OutletContext",(function(){return Fn})),n.d(t,"PRIMARY_OUTLET",(function(){return Te})),n.d(t,"PreloadAllModules",(function(){return Wn})),n.d(t,"PreloadingStrategy",(function(){return Kn})),n.d(t,"ROUTER_CONFIGURATION",(function(){return Yn})),n.d(t,"ROUTER_INITIALIZER",(function(){return ur})),n.d(t,"ROUTES",(function(){return On})),n.d(t,"ResolveEnd",(function(){return ve})),n.d(t,"ResolveStart",(function(){return be})),n.d(t,"RouteConfigLoadEnd",(function(){return we})),n.d(t,"RouteConfigLoadStart",(function(){return ke})),n.d(t,"RouteReuseStrategy",(function(){return Sn})),n.d(t,"Router",(function(){return Rn})),n.d(t,"RouterEvent",(function(){return ue})),n.d(t,"RouterLink",(function(){return Mn})),n.d(t,"RouterLinkActive",(function(){return Ln})),n.d(t,"RouterLinkWithHref",(function(){return qn})),n.d(t,"RouterModule",(function(){return er})),n.d(t,"RouterOutlet",(function(){return Vn})),n.d(t,"RouterPreloader",(function(){return Qn})),n.d(t,"RouterState",(function(){return yt})),n.d(t,"RouterStateSnapshot",(function(){return _t})),n.d(t,"RoutesRecognized",(function(){return me})),n.d(t,"Scroll",(function(){return Ee})),n.d(t,"UrlHandlingStrategy",(function(){return In})),n.d(t,"UrlSegment",(function(){return Qe})),n.d(t,"UrlSegmentGroup",(function(){return Ge})),n.d(t,"UrlSerializer",(function(){return Ze})),n.d(t,"UrlTree",(function(){return We})),n.d(t,"VERSION",(function(){return hr})),n.d(t,"convertToParamMap",(function(){return ze})),n.d(t,"provideRoutes",(function(){return ir})),n.d(t,"ɵEmptyOutletComponent",(function(){return Se})),n.d(t,"ɵROUTER_PROVIDERS",(function(){return Jn})),n.d(t,"ɵangular_packages_router_router_a",(function(){return Zn})),n.d(t,"ɵangular_packages_router_router_b",(function(){return Xn})),n.d(t,"ɵangular_packages_router_router_c",(function(){return tr})),n.d(t,"ɵangular_packages_router_router_d",(function(){return nr})),n.d(t,"ɵangular_packages_router_router_e",(function(){return rr})),n.d(t,"ɵangular_packages_router_router_f",(function(){return ar})),n.d(t,"ɵangular_packages_router_router_g",(function(){return or})),n.d(t,"ɵangular_packages_router_router_h",(function(){return sr})),n.d(t,"ɵangular_packages_router_router_i",(function(){return lr})),n.d(t,"ɵangular_packages_router_router_j",(function(){return cr})),n.d(t,"ɵangular_packages_router_router_k",(function(){return dr})),n.d(t,"ɵangular_packages_router_router_l",(function(){return Se})),n.d(t,"ɵangular_packages_router_router_m",(function(){return ht})),n.d(t,"ɵangular_packages_router_router_n",(function(){return mt})),n.d(t,"ɵangular_packages_router_router_o",(function(){return $n})),n.d(t,"ɵflatten",(function(){return Le})); +/** + * @license Angular v9.1.12 + * (c) 2010-2020 Google LLC. https://angular.io/ + * License: MIT + */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +var ue=function(e,t){this.id=e,this.url=t},de=function(e){function t(t,n,r,i){void 0===r&&(r="imperative"),void 0===i&&(i=null);var a=e.call(this,t,n)||this;return a.navigationTrigger=r,a.restoredState=i,a}return Object(r.c)(t,e),t.prototype.toString=function(){return"NavigationStart(id: "+this.id+", url: '"+this.url+"')"},t}(ue),he=function(e){function t(t,n,r){var i=e.call(this,t,n)||this;return i.urlAfterRedirects=r,i}return Object(r.c)(t,e),t.prototype.toString=function(){return"NavigationEnd(id: "+this.id+", url: '"+this.url+"', urlAfterRedirects: '"+this.urlAfterRedirects+"')"},t}(ue),pe=function(e){function t(t,n,r){var i=e.call(this,t,n)||this;return i.reason=r,i}return Object(r.c)(t,e),t.prototype.toString=function(){return"NavigationCancel(id: "+this.id+", url: '"+this.url+"')"},t}(ue),fe=function(e){function t(t,n,r){var i=e.call(this,t,n)||this;return i.error=r,i}return Object(r.c)(t,e),t.prototype.toString=function(){return"NavigationError(id: "+this.id+", url: '"+this.url+"', error: "+this.error+")"},t}(ue),me=function(e){function t(t,n,r,i){var a=e.call(this,t,n)||this;return a.urlAfterRedirects=r,a.state=i,a}return Object(r.c)(t,e),t.prototype.toString=function(){return"RoutesRecognized(id: "+this.id+", url: '"+this.url+"', urlAfterRedirects: '"+this.urlAfterRedirects+"', state: "+this.state+")"},t}(ue),ge=function(e){function t(t,n,r,i){var a=e.call(this,t,n)||this;return a.urlAfterRedirects=r,a.state=i,a}return Object(r.c)(t,e),t.prototype.toString=function(){return"GuardsCheckStart(id: "+this.id+", url: '"+this.url+"', urlAfterRedirects: '"+this.urlAfterRedirects+"', state: "+this.state+")"},t}(ue),ye=function(e){function t(t,n,r,i,a){var o=e.call(this,t,n)||this;return o.urlAfterRedirects=r,o.state=i,o.shouldActivate=a,o}return Object(r.c)(t,e),t.prototype.toString=function(){return"GuardsCheckEnd(id: "+this.id+", url: '"+this.url+"', urlAfterRedirects: '"+this.urlAfterRedirects+"', state: "+this.state+", shouldActivate: "+this.shouldActivate+")"},t}(ue),be=function(e){function t(t,n,r,i){var a=e.call(this,t,n)||this;return a.urlAfterRedirects=r,a.state=i,a}return Object(r.c)(t,e),t.prototype.toString=function(){return"ResolveStart(id: "+this.id+", url: '"+this.url+"', urlAfterRedirects: '"+this.urlAfterRedirects+"', state: "+this.state+")"},t}(ue),ve=function(e){function t(t,n,r,i){var a=e.call(this,t,n)||this;return a.urlAfterRedirects=r,a.state=i,a}return Object(r.c)(t,e),t.prototype.toString=function(){return"ResolveEnd(id: "+this.id+", url: '"+this.url+"', urlAfterRedirects: '"+this.urlAfterRedirects+"', state: "+this.state+")"},t}(ue),ke=function(){function e(e){this.route=e}return e.prototype.toString=function(){return"RouteConfigLoadStart(path: "+this.route.path+")"},e}(),we=function(){function e(e){this.route=e}return e.prototype.toString=function(){return"RouteConfigLoadEnd(path: "+this.route.path+")"},e}(),_e=function(){function e(e){this.snapshot=e}return e.prototype.toString=function(){return"ChildActivationStart(path: '"+(this.snapshot.routeConfig&&this.snapshot.routeConfig.path||"")+"')"},e}(),je=function(){function e(e){this.snapshot=e}return e.prototype.toString=function(){return"ChildActivationEnd(path: '"+(this.snapshot.routeConfig&&this.snapshot.routeConfig.path||"")+"')"},e}(),Ce=function(){function e(e){this.snapshot=e}return e.prototype.toString=function(){return"ActivationStart(path: '"+(this.snapshot.routeConfig&&this.snapshot.routeConfig.path||"")+"')"},e}(),xe=function(){function e(e){this.snapshot=e}return e.prototype.toString=function(){return"ActivationEnd(path: '"+(this.snapshot.routeConfig&&this.snapshot.routeConfig.path||"")+"')"},e}(),Ee=function(){function e(e,t,n){this.routerEvent=e,this.position=t,this.anchor=n}return e.prototype.toString=function(){var e=this.position?this.position[0]+", "+this.position[1]:null;return"Scroll(anchor: '"+this.anchor+"', position: '"+e+"')"},e}(),Se=function(){function e(){}return e.ɵfac=function(t){return new(t||e)},e.ɵcmp=a["ɵɵdefineComponent"]({type:e,selectors:[["ng-component"]],decls:1,vars:0,template:function(e,t){1&e&&a["ɵɵelement"](0,"router-outlet")},directives:function(){return[Vn]},encapsulation:2}),e}(),Te="primary",Oe=function(){function e(e){this.params=e||{}}return e.prototype.has=function(e){return this.params.hasOwnProperty(e)},e.prototype.get=function(e){if(this.has(e)){var t=this.params[e];return Array.isArray(t)?t[0]:t}return null},e.prototype.getAll=function(e){if(this.has(e)){var t=this.params[e];return Array.isArray(t)?t:[t]}return[]},Object.defineProperty(e.prototype,"keys",{get:function(){return Object.keys(this.params)},enumerable:!0,configurable:!0}),e}();function ze(e){return new Oe(e)}function Ie(e){var t=Error("NavigationCancelingError: "+e);return t.ngNavigationCancelingError=!0,t}function De(e,t,n){var r=n.path.split("/");if(r.length>e.length)return null;if("full"===n.pathMatch&&(t.hasChildren()||r.length-1})):e===t}function Le(e){return Array.prototype.concat.apply([],e)}function Fe(e){return e.length>0?e[e.length-1]:null}function Ue(e,t){for(var n in e)e.hasOwnProperty(n)&&t(e[n],n)}function Ve(e){return Object(a["ɵisObservable"])(e)?e:Object(a["ɵisPromise"])(e)?Object(s.a)(Promise.resolve(e)):Object(o.a)(e)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function He(e,t,n){return n?function(e,t){return qe(e,t)}(e.queryParams,t.queryParams)&&function e(t,n){if(!$e(t.segments,n.segments))return!1;if(t.numberOfChildren!==n.numberOfChildren)return!1;for(var r in n.children){if(!t.children[r])return!1;if(!e(t.children[r],n.children[r]))return!1}return!0}(e.root,t.root):function(e,t){return Object.keys(t).length<=Object.keys(e).length&&Object.keys(t).every((function(n){return Be(e[n],t[n])}))}(e.queryParams,t.queryParams)&&Ke(e.root,t.root)}function Ke(e,t){return function e(t,n,r){if(t.segments.length>r.length)return!!$e(a=t.segments.slice(0,r.length),r)&&!n.hasChildren();if(t.segments.length===r.length){if(!$e(t.segments,r))return!1;for(var i in n.children){if(!t.children[i])return!1;if(!Ke(t.children[i],n.children[i]))return!1}return!0}var a=r.slice(0,t.segments.length),o=r.slice(t.segments.length);return!!$e(t.segments,a)&&(!!t.children[Te]&&e(t.children[Te],n,o))}(e,t,t.segments)}var We=function(){function e(e,t,n){this.root=e,this.queryParams=t,this.fragment=n}return Object.defineProperty(e.prototype,"queryParamMap",{get:function(){return this._queryParamMap||(this._queryParamMap=ze(this.queryParams)),this._queryParamMap},enumerable:!0,configurable:!0}),e.prototype.toString=function(){return Xe.serialize(this)},e}(),Ge=function(){function e(e,t){var n=this;this.segments=e,this.children=t,this.parent=null,Ue(t,(function(e,t){return e.parent=n}))}return e.prototype.hasChildren=function(){return this.numberOfChildren>0},Object.defineProperty(e.prototype,"numberOfChildren",{get:function(){return Object.keys(this.children).length},enumerable:!0,configurable:!0}),e.prototype.toString=function(){return et(this)},e}(),Qe=function(){function e(e,t){this.path=e,this.parameters=t}return Object.defineProperty(e.prototype,"parameterMap",{get:function(){return this._parameterMap||(this._parameterMap=ze(this.parameters)),this._parameterMap},enumerable:!0,configurable:!0}),e.prototype.toString=function(){return ot(this)},e}();function $e(e,t){return e.length===t.length&&e.every((function(e,n){return e.path===t[n].path}))}function Ye(e,t){var n=[];return Ue(e.children,(function(e,r){r===Te&&(n=n.concat(t(e,r)))})),Ue(e.children,(function(e,r){r!==Te&&(n=n.concat(t(e,r)))})),n}var Ze=function(){},Je=function(){function e(){}return e.prototype.parse=function(e){var t=new dt(e);return new We(t.parseRootSegment(),t.parseQueryParams(),t.parseFragment())},e.prototype.serialize=function(e){var t,n,r;return""+("/"+function e(t,n){if(!t.hasChildren())return et(t);if(n){var r=t.children[Te]?e(t.children[Te],!1):"",i=[];return Ue(t.children,(function(t,n){n!==Te&&i.push(n+":"+e(t,!1))})),i.length>0?r+"("+i.join("//")+")":r}var a=Ye(t,(function(n,r){return r===Te?[e(t.children[Te],!1)]:[r+":"+e(n,!1)]}));return et(t)+"/("+a.join("//")+")"}(e.root,!0))+(t=e.queryParams,(n=Object.keys(t).map((function(e){var n=t[e];return Array.isArray(n)?n.map((function(t){return nt(e)+"="+nt(t)})).join("&"):nt(e)+"="+nt(n)}))).length?"?"+n.join("&"):"")+("string"==typeof e.fragment?"#"+(r=e.fragment,encodeURI(r)):"")},e}(),Xe=new Je;function et(e){return e.segments.map((function(e){return ot(e)})).join("/")}function tt(e){return encodeURIComponent(e).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function nt(e){return tt(e).replace(/%3B/gi,";")}function rt(e){return tt(e).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function it(e){return decodeURIComponent(e)}function at(e){return it(e.replace(/\+/g,"%20"))}function ot(e){return""+rt(e.path)+(t=e.parameters,Object.keys(t).map((function(e){return";"+rt(e)+"="+rt(t[e])})).join(""));var t}var st=/^[^\/()?;=#]+/;function lt(e){var t=e.match(st);return t?t[0]:""}var ct=/^[^=?&#]+/;var ut=/^[^?&#]+/;var dt=function(){function e(e){this.url=e,this.remaining=e}return e.prototype.parseRootSegment=function(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new Ge([],{}):new Ge([],this.parseChildren())},e.prototype.parseQueryParams=function(){var e={};if(this.consumeOptional("?"))do{this.parseQueryParam(e)}while(this.consumeOptional("&"));return e},e.prototype.parseFragment=function(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null},e.prototype.parseChildren=function(){if(""===this.remaining)return{};this.consumeOptional("/");var e=[];for(this.peekStartsWith("(")||e.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),e.push(this.parseSegment());var t={};this.peekStartsWith("/(")&&(this.capture("/"),t=this.parseParens(!0));var n={};return this.peekStartsWith("(")&&(n=this.parseParens(!1)),(e.length>0||Object.keys(t).length>0)&&(n[Te]=new Ge(e,t)),n},e.prototype.parseSegment=function(){var e=lt(this.remaining);if(""===e&&this.peekStartsWith(";"))throw new Error("Empty path url segment cannot have parameters: '"+this.remaining+"'.");return this.capture(e),new Qe(it(e),this.parseMatrixParams())},e.prototype.parseMatrixParams=function(){for(var e={};this.consumeOptional(";");)this.parseParam(e);return e},e.prototype.parseParam=function(e){var t=lt(this.remaining);if(t){this.capture(t);var n="";if(this.consumeOptional("=")){var r=lt(this.remaining);r&&(n=r,this.capture(n))}e[it(t)]=it(n)}},e.prototype.parseQueryParam=function(e){var t=function(e){var t=e.match(ct);return t?t[0]:""}(this.remaining);if(t){this.capture(t);var n="";if(this.consumeOptional("=")){var r=function(e){var t=e.match(ut);return t?t[0]:""}(this.remaining);r&&(n=r,this.capture(n))}var i=at(t),a=at(n);if(e.hasOwnProperty(i)){var o=e[i];Array.isArray(o)||(o=[o],e[i]=o),o.push(a)}else e[i]=a}},e.prototype.parseParens=function(e){var t={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){var n=lt(this.remaining),r=this.remaining[n.length];if("/"!==r&&")"!==r&&";"!==r)throw new Error("Cannot parse url '"+this.url+"'");var i=void 0;n.indexOf(":")>-1?(i=n.substr(0,n.indexOf(":")),this.capture(i),this.capture(":")):e&&(i=Te);var a=this.parseChildren();t[i]=1===Object.keys(a).length?a[Te]:new Ge([],a),this.consumeOptional("//")}return t},e.prototype.peekStartsWith=function(e){return this.remaining.startsWith(e)},e.prototype.consumeOptional=function(e){return!!this.peekStartsWith(e)&&(this.remaining=this.remaining.substring(e.length),!0)},e.prototype.capture=function(e){if(!this.consumeOptional(e))throw new Error('Expected "'+e+'".')},e}(),ht=function(){function e(e){this._root=e}return Object.defineProperty(e.prototype,"root",{get:function(){return this._root.value},enumerable:!0,configurable:!0}),e.prototype.parent=function(e){var t=this.pathFromRoot(e);return t.length>1?t[t.length-2]:null},e.prototype.children=function(e){var t=pt(e,this._root);return t?t.children.map((function(e){return e.value})):[]},e.prototype.firstChild=function(e){var t=pt(e,this._root);return t&&t.children.length>0?t.children[0].value:null},e.prototype.siblings=function(e){var t=ft(e,this._root);return t.length<2?[]:t[t.length-2].children.map((function(e){return e.value})).filter((function(t){return t!==e}))},e.prototype.pathFromRoot=function(e){return ft(e,this._root).map((function(e){return e.value}))},e}(); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function pt(e,t){var n,i;if(e===t.value)return t;try{for(var a=Object(r.h)(t.children),o=a.next();!o.done;o=a.next()){var s=pt(e,o.value);if(s)return s}}catch(l){n={error:l}}finally{try{o&&!o.done&&(i=a.return)&&i.call(a)}finally{if(n)throw n.error}}return null}function ft(e,t){var n,i;if(e===t.value)return[t];try{for(var a=Object(r.h)(t.children),o=a.next();!o.done;o=a.next()){var s=ft(e,o.value);if(s.length)return s.unshift(t),s}}catch(l){n={error:l}}finally{try{o&&!o.done&&(i=a.return)&&i.call(a)}finally{if(n)throw n.error}}return[]}var mt=function(){function e(e,t){this.value=e,this.children=t}return e.prototype.toString=function(){return"TreeNode("+this.value+")"},e}();function gt(e){var t={};return e&&e.children.forEach((function(e){return t[e.value.outlet]=e})),t} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var yt=function(e){function t(t,n){var r=e.call(this,t)||this;return r.snapshot=n,jt(r,t),r}return Object(r.c)(t,e),t.prototype.toString=function(){return this.snapshot.toString()},t}(ht);function bt(e,t){var n=function(e,t){var n=new wt([],{},{},"",{},Te,t,null,e.root,-1,{});return new _t("",new mt(n,[]))}(e,t),r=new u([new Qe("",{})]),i=new u({}),a=new u({}),o=new u({}),s=new u(""),l=new vt(r,i,o,s,a,Te,t,n.root);return l.snapshot=n.root,new yt(new mt(l,[]),n)}var vt=function(){function e(e,t,n,r,i,a,o,s){this.url=e,this.params=t,this.queryParams=n,this.fragment=r,this.data=i,this.outlet=a,this.component=o,this._futureSnapshot=s}return Object.defineProperty(e.prototype,"routeConfig",{get:function(){return this._futureSnapshot.routeConfig},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"root",{get:function(){return this._routerState.root},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"parent",{get:function(){return this._routerState.parent(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"firstChild",{get:function(){return this._routerState.firstChild(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"children",{get:function(){return this._routerState.children(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pathFromRoot",{get:function(){return this._routerState.pathFromRoot(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"paramMap",{get:function(){return this._paramMap||(this._paramMap=this.params.pipe(Object(S.a)((function(e){return ze(e)})))),this._paramMap},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"queryParamMap",{get:function(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe(Object(S.a)((function(e){return ze(e)})))),this._queryParamMap},enumerable:!0,configurable:!0}),e.prototype.toString=function(){return this.snapshot?this.snapshot.toString():"Future("+this._futureSnapshot+")"},e}();function kt(e,t){void 0===t&&(t="emptyOnly");var n=e.pathFromRoot,i=0;if("always"!==t)for(i=n.length-1;i>=1;){var a=n[i],o=n[i-1];if(a.routeConfig&&""===a.routeConfig.path)i--;else{if(o.component)break;i--}}return function(e){return e.reduce((function(e,t){return{params:Object(r.a)(Object(r.a)({},e.params),t.params),data:Object(r.a)(Object(r.a)({},e.data),t.data),resolve:Object(r.a)(Object(r.a)({},e.resolve),t._resolvedData)}}),{params:{},data:{},resolve:{}})}(n.slice(i))}var wt=function(){function e(e,t,n,r,i,a,o,s,l,c,u){this.url=e,this.params=t,this.queryParams=n,this.fragment=r,this.data=i,this.outlet=a,this.component=o,this.routeConfig=s,this._urlSegment=l,this._lastPathIndex=c,this._resolve=u}return Object.defineProperty(e.prototype,"root",{get:function(){return this._routerState.root},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"parent",{get:function(){return this._routerState.parent(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"firstChild",{get:function(){return this._routerState.firstChild(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"children",{get:function(){return this._routerState.children(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pathFromRoot",{get:function(){return this._routerState.pathFromRoot(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"paramMap",{get:function(){return this._paramMap||(this._paramMap=ze(this.params)),this._paramMap},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"queryParamMap",{get:function(){return this._queryParamMap||(this._queryParamMap=ze(this.queryParams)),this._queryParamMap},enumerable:!0,configurable:!0}),e.prototype.toString=function(){return"Route(url:'"+this.url.map((function(e){return e.toString()})).join("/")+"', path:'"+(this.routeConfig?this.routeConfig.path:"")+"')"},e}(),_t=function(e){function t(t,n){var r=e.call(this,n)||this;return r.url=t,jt(r,n),r}return Object(r.c)(t,e),t.prototype.toString=function(){return Ct(this._root)},t}(ht);function jt(e,t){t.value._routerState=e,t.children.forEach((function(t){return jt(e,t)}))}function Ct(e){var t=e.children.length>0?" { "+e.children.map(Ct).join(", ")+" } ":"";return""+e.value+t}function xt(e){if(e.snapshot){var t=e.snapshot,n=e._futureSnapshot;e.snapshot=n,qe(t.queryParams,n.queryParams)||e.queryParams.next(n.queryParams),t.fragment!==n.fragment&&e.fragment.next(n.fragment),qe(t.params,n.params)||e.params.next(n.params),function(e,t){if(e.length!==t.length)return!1;for(var n=0;ni;){if(a-=i,!(r=r.parent))throw new Error("Invalid number of '../'");i=r.segments.length}return new Dt(r,!1,i-a)}(n.snapshot._urlSegment,i,e.numberOfDoubleDots)}(o,t,e),l=s.processChildren?Pt(s.segmentGroup,s.index,o.commands):Nt(s.segmentGroup,s.index,o.commands);return zt(s.segmentGroup,l,t,i,a)}function Ot(e){return"object"==typeof e&&null!=e&&!e.outlets&&!e.segmentPath}function zt(e,t,n,r,i){var a={};return r&&Ue(r,(function(e,t){a[t]=Array.isArray(e)?e.map((function(e){return""+e})):""+e})),n.root===e?new We(t,a,i):new We(function e(t,n,r){var i={};return Ue(t.children,(function(t,a){i[a]=t===n?r:e(t,n,r)})),new Ge(t.segments,i)}(n.root,e,t),a,i)}var It=function(){function e(e,t,n){if(this.isAbsolute=e,this.numberOfDoubleDots=t,this.commands=n,e&&n.length>0&&Ot(n[0]))throw new Error("Root segment cannot have matrix parameters");var r=n.find((function(e){return"object"==typeof e&&null!=e&&e.outlets}));if(r&&r!==Fe(n))throw new Error("{outlets:{}} has to be the last command")}return e.prototype.toRoot=function(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]},e}();var Dt=function(e,t,n){this.segmentGroup=e,this.processChildren=t,this.index=n};function At(e){return"object"==typeof e&&null!=e&&e.outlets?e.outlets[Te]:""+e}function Nt(e,t,n){if(e||(e=new Ge([],{})),0===e.segments.length&&e.hasChildren())return Pt(e,t,n);var r=function(e,t,n){var r=0,i=t,a={match:!1,pathIndex:0,commandIndex:0};for(;i=n.length)return a;var o=e.segments[i],s=At(n[r]),l=r0&&void 0===s)break;if(s&&l&&"object"==typeof l&&void 0===l.outlets){if(!Bt(s,l,o))return a;r+=2}else{if(!Bt(s,{},o))return a;r++}i++}return{match:!0,pathIndex:i,commandIndex:r}}(e,t,n),i=n.slice(r.commandIndex);if(r.match&&r.pathIndex0?new Ge([],((r={})[Te]=e,r)):e;return new We(i,t,n)},e.prototype.expandSegmentGroup=function(e,t,n,r){return 0===n.segments.length&&n.hasChildren()?this.expandChildren(e,t,n).pipe(Object(S.a)((function(e){return new Ge([],e)}))):this.expandSegment(e,n,t,n.segments,r,!0)},e.prototype.expandChildren=function(e,t,n){var r=this;return function(e,t){if(0===Object.keys(e).length)return Object(o.a)({});var n=[],r=[],i={};return Ue(e,(function(e,a){var o=t(a,e).pipe(Object(S.a)((function(e){return i[a]=e})));a===Te?n.push(o):r.push(o)})),o.a.apply(null,n.concat(r)).pipe(Object(T.a)(),U(),Object(S.a)((function(){return i})))}(n.children,(function(n,i){return r.expandSegmentGroup(e,t,i,n)}))},e.prototype.expandSegment=function(e,t,n,i,a,s){var l=this;return o.a.apply(void 0,Object(r.g)(n)).pipe(Object(S.a)((function(r){return l.expandSegmentAgainstRoute(e,t,n,r,i,a,s).pipe(H((function(e){if(e instanceof Ht)return Object(o.a)(null);throw e})))})),Object(T.a)(),Q((function(e){return!!e})),H((function(e,n){if(e instanceof h||"EmptyError"===e.name){if(l.noLeftoversInUrl(t,i,a))return Object(o.a)(new Ge([],{}));throw new Ht(t)}throw e})))},e.prototype.noLeftoversInUrl=function(e,t,n){return 0===t.length&&!e.children[n]},e.prototype.expandSegmentAgainstRoute=function(e,t,n,r,i,a,o){return Xt(r)!==a?Wt(t):void 0===r.redirectTo?this.matchSegmentAgainstRoute(e,t,r,i):o&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(e,t,n,r,i,a):Wt(t)},e.prototype.expandSegmentAgainstRouteUsingRedirect=function(e,t,n,r,i,a){return"**"===r.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(e,n,r,a):this.expandRegularSegmentAgainstRouteUsingRedirect(e,t,n,r,i,a)},e.prototype.expandWildCardWithParamsAgainstRouteUsingRedirect=function(e,t,n,r){var i=this,a=this.applyRedirectCommands([],n.redirectTo,{});return n.redirectTo.startsWith("/")?Gt(a):this.lineralizeSegments(n,a).pipe(Object($.a)((function(n){var a=new Ge(n,{});return i.expandSegment(e,a,t,n,r,!1)})))},e.prototype.expandRegularSegmentAgainstRouteUsingRedirect=function(e,t,n,r,i,a){var o=this,s=Yt(t,r,i),l=s.matched,c=s.consumedSegments,u=s.lastChild,d=s.positionalParamSegments;if(!l)return Wt(t);var h=this.applyRedirectCommands(c,r.redirectTo,d);return r.redirectTo.startsWith("/")?Gt(h):this.lineralizeSegments(r,h).pipe(Object($.a)((function(r){return o.expandSegment(e,t,n,r.concat(i.slice(u)),a,!1)})))},e.prototype.matchSegmentAgainstRoute=function(e,t,n,i){var a=this;if("**"===n.path)return n.loadChildren?this.configLoader.load(e.injector,n).pipe(Object(S.a)((function(e){return n._loadedConfig=e,new Ge(i,{})}))):Object(o.a)(new Ge(i,{}));var s=Yt(t,n,i),l=s.matched,c=s.consumedSegments,u=s.lastChild;if(!l)return Wt(t);var d=i.slice(u);return this.getChildConfig(e,n,i).pipe(Object($.a)((function(e){var n=e.module,i=e.routes,s=function(e,t,n,i){if(n.length>0&&function(e,t,n){return n.some((function(n){return Jt(e,t,n)&&Xt(n)!==Te}))}(e,n,i)){return{segmentGroup:Zt(new Ge(t,function(e,t){var n,i,a={};a[Te]=t;try{for(var o=Object(r.h)(e),s=o.next();!s.done;s=o.next()){var l=s.value;""===l.path&&Xt(l)!==Te&&(a[Xt(l)]=new Ge([],{}))}}catch(c){n={error:c}}finally{try{s&&!s.done&&(i=o.return)&&i.call(o)}finally{if(n)throw n.error}}return a}(i,new Ge(n,e.children)))),slicedSegments:[]}}if(0===n.length&&function(e,t,n){return n.some((function(n){return Jt(e,t,n)}))}(e,n,i)){return{segmentGroup:Zt(new Ge(e.segments,function(e,t,n,i){var a,o,s={};try{for(var l=Object(r.h)(n),c=l.next();!c.done;c=l.next()){var u=c.value;Jt(e,t,u)&&!i[Xt(u)]&&(s[Xt(u)]=new Ge([],{}))}}catch(d){a={error:d}}finally{try{c&&!c.done&&(o=l.return)&&o.call(l)}finally{if(a)throw a.error}}return Object(r.a)(Object(r.a)({},i),s)}(e,n,i,e.children))),slicedSegments:n}}return{segmentGroup:e,slicedSegments:n}}(t,c,d,i),l=s.segmentGroup,u=s.slicedSegments;return 0===u.length&&l.hasChildren()?a.expandChildren(n,i,l).pipe(Object(S.a)((function(e){return new Ge(c,e)}))):0===i.length&&0===u.length?Object(o.a)(new Ge(c,{})):a.expandSegment(n,l,i,u,Te,!0).pipe(Object(S.a)((function(e){return new Ge(c.concat(e.segments),e.children)})))})))},e.prototype.getChildConfig=function(e,t,n){var r=this;return t.children?Object(o.a)(new Ae(t.children,e)):t.loadChildren?void 0!==t._loadedConfig?Object(o.a)(t._loadedConfig):function(e,t,n){var r=t.canLoad;return r&&0!==r.length?Object(s.a)(r).pipe(Object(S.a)((function(r){var i,a=e.get(r);if(function(e){return e&&Ut(e.canLoad)}(a))i=a.canLoad(t,n);else{if(!Ut(a))throw new Error("Invalid CanLoad guard");i=a(t,n)}return Ve(i)}))).pipe(Object(T.a)(),function(e,t){return function(n){return n.lift(new Y(e,t,n))}}((function(e){return!0===e}))):Object(o.a)(!0)}(e.injector,t,n).pipe(Object($.a)((function(n){return n?r.configLoader.load(e.injector,t).pipe(Object(S.a)((function(e){return t._loadedConfig=e,e}))):function(e){return new d.a((function(t){return t.error(Ie("Cannot load children because the guard of the route \"path: '"+e.path+"'\" returned false"))}))}(t)}))):Object(o.a)(new Ae([],e))},e.prototype.lineralizeSegments=function(e,t){for(var n=[],r=t.root;;){if(n=n.concat(r.segments),0===r.numberOfChildren)return Object(o.a)(n);if(r.numberOfChildren>1||!r.children[Te])return Qt(e.redirectTo);r=r.children[Te]}},e.prototype.applyRedirectCommands=function(e,t,n){return this.applyRedirectCreatreUrlTree(t,this.urlSerializer.parse(t),e,n)},e.prototype.applyRedirectCreatreUrlTree=function(e,t,n,r){var i=this.createSegmentGroup(e,t.root,n,r);return new We(i,this.createQueryParams(t.queryParams,this.urlTree.queryParams),t.fragment)},e.prototype.createQueryParams=function(e,t){var n={};return Ue(e,(function(e,r){if("string"==typeof e&&e.startsWith(":")){var i=e.substring(1);n[r]=t[i]}else n[r]=e})),n},e.prototype.createSegmentGroup=function(e,t,n,r){var i=this,a=this.createSegments(e,t.segments,n,r),o={};return Ue(t.children,(function(t,a){o[a]=i.createSegmentGroup(e,t,n,r)})),new Ge(a,o)},e.prototype.createSegments=function(e,t,n,r){var i=this;return t.map((function(t){return t.path.startsWith(":")?i.findPosParam(e,t,r):i.findOrReturn(t,n)}))},e.prototype.findPosParam=function(e,t,n){var r=n[t.path.substring(1)];if(!r)throw new Error("Cannot redirect to '"+e+"'. Cannot find '"+t.path+"'.");return r},e.prototype.findOrReturn=function(e,t){var n,i,a=0;try{for(var o=Object(r.h)(t),s=o.next();!s.done;s=o.next()){var l=s.value;if(l.path===e.path)return t.splice(a),l;a++}}catch(c){n={error:c}}finally{try{s&&!s.done&&(i=o.return)&&i.call(o)}finally{if(n)throw n.error}}return e},e}();function Yt(e,t,n){if(""===t.path)return"full"===t.pathMatch&&(e.hasChildren()||n.length>0)?{matched:!1,consumedSegments:[],lastChild:0,positionalParamSegments:{}}:{matched:!0,consumedSegments:[],lastChild:0,positionalParamSegments:{}};var r=(t.matcher||De)(n,e,t);return r?{matched:!0,consumedSegments:r.consumed,lastChild:r.consumed.length,positionalParamSegments:r.posParams}:{matched:!1,consumedSegments:[],lastChild:0,positionalParamSegments:{}}}function Zt(e){if(1===e.numberOfChildren&&e.children[Te]){var t=e.children[Te];return new Ge(e.segments.concat(t.segments),t.children)}return e}function Jt(e,t,n){return(!(e.hasChildren()||t.length>0)||"full"!==n.pathMatch)&&(""===n.path&&void 0!==n.redirectTo)}function Xt(e){return e.outlet||Te} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function en(e,t,n,i){return function(a){return a.pipe(Object(J.a)((function(a){return function(e,t,n,r,i){return new $t(e,t,n,r,i).apply()}(e,t,n,a.extractedUrl,i).pipe(Object(S.a)((function(e){return Object(r.a)(Object(r.a)({},a),{urlAfterRedirects:e})})))})))}} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var tn=function(e){this.path=e,this.route=this.path[this.path.length-1]},nn=function(e,t){this.component=e,this.route=t};function rn(e,t,n){var r=function(e){if(!e)return null;for(var t=e.parent;t;t=t.parent){var n=t.routeConfig;if(n&&n._loadedConfig)return n._loadedConfig}return null}(t);return(r?r.module.injector:n).get(e)}function an(e,t,n,r,i){void 0===i&&(i={canDeactivateChecks:[],canActivateChecks:[]});var a=gt(t);return e.children.forEach((function(e){!function(e,t,n,r,i){void 0===i&&(i={canDeactivateChecks:[],canActivateChecks:[]});var a=e.value,o=t?t.value:null,s=n?n.getContext(e.value.outlet):null;if(o&&a.routeConfig===o.routeConfig){var l=function(e,t,n){if("function"==typeof n)return n(e,t);switch(n){case"pathParamsChange":return!$e(e.url,t.url);case"pathParamsOrQueryParamsChange":return!$e(e.url,t.url)||!qe(e.queryParams,t.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!Et(e,t)||!qe(e.queryParams,t.queryParams);case"paramsChange":default:return!Et(e,t)}}(o,a,a.routeConfig.runGuardsAndResolvers);if(l?i.canActivateChecks.push(new tn(r)):(a.data=o.data,a._resolvedData=o._resolvedData),a.component?an(e,t,s?s.children:null,r,i):an(e,t,n,r,i),l){var c=s&&s.outlet&&s.outlet.component||null;i.canDeactivateChecks.push(new nn(c,o))}}else o&&on(t,s,i),i.canActivateChecks.push(new tn(r)),a.component?an(e,null,s?s.children:null,r,i):an(e,null,n,r,i)}(e,a[e.value.outlet],n,r.concat([e.value]),i),delete a[e.value.outlet]})),Ue(a,(function(e,t){return on(e,n.getContext(t),i)})),i}function on(e,t,n){var r=gt(e),i=e.value;Ue(r,(function(e,r){i.component?on(e,t?t.children.getContext(r):null,n):on(e,t,n)})),i.component&&t&&t.outlet&&t.outlet.isActivated?n.canDeactivateChecks.push(new nn(t.outlet.component,i)):n.canDeactivateChecks.push(new nn(null,i))} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var sn=Symbol("INITIAL_VALUE");function ln(){return Object(J.a)((function(e){return _.apply(void 0,Object(r.g)(e.map((function(e){return e.pipe(Object(G.a)(1),Object(X.a)(sn))})))).pipe(ee((function(e,t){var n=!1;return t.reduce((function(e,r,i){if(e!==sn)return e;if(r===sn&&(n=!0),!n){if(!1===r)return r;if(i===t.length-1||Vt(r))return r}return e}),e)}),sn),Object(O.a)((function(e){return e!==sn})),Object(S.a)((function(e){return Vt(e)?e:!0===e})),Object(G.a)(1))}))} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function cn(e,t){return function(n){return n.pipe(Object($.a)((function(n){var i=n.targetSnapshot,a=n.currentSnapshot,l=n.guards,c=l.canActivateChecks,u=l.canDeactivateChecks;return 0===u.length&&0===c.length?Object(o.a)(Object(r.a)(Object(r.a)({},n),{guardsResult:!0})):function(e,t,n,r){return Object(s.a)(e).pipe(Object($.a)((function(e){return function(e,t,n,r,i){var a=t&&t.routeConfig?t.routeConfig.canDeactivate:null;if(!a||0===a.length)return Object(o.a)(!0);var s=a.map((function(a){var o,s=rn(a,t,i);if(function(e){return e&&Ut(e.canDeactivate)}(s))o=Ve(s.canDeactivate(e,t,n,r));else{if(!Ut(s))throw new Error("Invalid CanDeactivate guard");o=Ve(s(e,t,n,r))}return o.pipe(Q())}));return Object(o.a)(s).pipe(ln())} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */(e.component,e.route,n,t,r)})),Q((function(e){return!0!==e}),!0))}(u,i,a,e).pipe(Object($.a)((function(n){return n&&"boolean"==typeof n?function(e,t,n,r){return Object(s.a)(t).pipe(re((function(t){return Object(s.a)([dn(t.route.parent,r),un(t.route,r),pn(e,t.path,n),hn(e,t.route,n)]).pipe(Object(T.a)(),Q((function(e){return!0!==e}),!0))})),Q((function(e){return!0!==e}),!0))}(i,c,e,t):Object(o.a)(n)})),Object(S.a)((function(e){return Object(r.a)(Object(r.a)({},n),{guardsResult:e})})))})))}}function un(e,t){return null!==e&&t&&t(new Ce(e)),Object(o.a)(!0)}function dn(e,t){return null!==e&&t&&t(new _e(e)),Object(o.a)(!0)}function hn(e,t,n){var r=t.routeConfig?t.routeConfig.canActivate:null;if(!r||0===r.length)return Object(o.a)(!0);var i=r.map((function(r){return E((function(){var i,a=rn(r,t,n);if(function(e){return e&&Ut(e.canActivate)}(a))i=Ve(a.canActivate(t,e));else{if(!Ut(a))throw new Error("Invalid CanActivate guard");i=Ve(a(t,e))}return i.pipe(Q())}))}));return Object(o.a)(i).pipe(ln())}function pn(e,t,n){var r=t[t.length-1],i=t.slice(0,t.length-1).reverse().map((function(e){return function(e){var t=e.routeConfig?e.routeConfig.canActivateChild:null;return t&&0!==t.length?{node:e,guards:t}:null}(e)})).filter((function(e){return null!==e})).map((function(t){return E((function(){var i=t.guards.map((function(i){var a,o=rn(i,t.node,n);if(function(e){return e&&Ut(e.canActivateChild)}(o))a=Ve(o.canActivateChild(r,e));else{if(!Ut(o))throw new Error("Invalid CanActivateChild guard");a=Ve(o(r,e))}return a.pipe(Q())}));return Object(o.a)(i).pipe(ln())}))}));return Object(o.a)(i).pipe(ln())}var fn=function(){};var mn=function(){function e(e,t,n,r,i,a){this.rootComponentType=e,this.config=t,this.urlTree=n,this.url=r,this.paramsInheritanceStrategy=i,this.relativeLinkResolution=a}return e.prototype.recognize=function(){try{var e=bn(this.urlTree.root,[],[],this.config,this.relativeLinkResolution).segmentGroup,t=this.processSegmentGroup(this.config,e,Te),n=new wt([],Object.freeze({}),Object.freeze(Object(r.a)({},this.urlTree.queryParams)),this.urlTree.fragment,{},Te,this.rootComponentType,null,this.urlTree.root,-1,{}),i=new mt(n,t),a=new _t(this.url,i);return this.inheritParamsAndData(a._root),Object(o.a)(a)}catch(s){return new d.a((function(e){return e.error(s)}))}},e.prototype.inheritParamsAndData=function(e){var t=this,n=e.value,r=kt(n,this.paramsInheritanceStrategy);n.params=Object.freeze(r.params),n.data=Object.freeze(r.data),e.children.forEach((function(e){return t.inheritParamsAndData(e)}))},e.prototype.processSegmentGroup=function(e,t,n){return 0===t.segments.length&&t.hasChildren()?this.processChildren(e,t):this.processSegment(e,t,t.segments,n)},e.prototype.processChildren=function(e,t){var n,r=this,i=Ye(t,(function(t,n){return r.processSegmentGroup(e,t,n)}));return n={},i.forEach((function(e){var t=n[e.value.outlet];if(t){var r=t.url.map((function(e){return e.toString()})).join("/"),i=e.value.url.map((function(e){return e.toString()})).join("/");throw new Error("Two segments cannot have the same outlet name: '"+r+"' and '"+i+"'.")}n[e.value.outlet]=e.value})),function(e){e.sort((function(e,t){return e.value.outlet===Te?-1:t.value.outlet===Te?1:e.value.outlet.localeCompare(t.value.outlet)}))}(i),i},e.prototype.processSegment=function(e,t,n,i){var a,o;try{for(var s=Object(r.h)(e),l=s.next();!l.done;l=s.next()){var c=l.value;try{return this.processSegmentAgainstRoute(c,t,n,i)}catch(u){if(!(u instanceof fn))throw u}}}catch(d){a={error:d}}finally{try{l&&!l.done&&(o=s.return)&&o.call(s)}finally{if(a)throw a.error}}if(this.noLeftoversInUrl(t,n,i))return[];throw new fn},e.prototype.noLeftoversInUrl=function(e,t,n){return 0===t.length&&!e.children[n]},e.prototype.processSegmentAgainstRoute=function(e,t,n,i){if(e.redirectTo)throw new fn;if((e.outlet||Te)!==i)throw new fn;var a,o=[],s=[];if("**"===e.path){var l=n.length>0?Fe(n).parameters:{};a=new wt(n,l,Object.freeze(Object(r.a)({},this.urlTree.queryParams)),this.urlTree.fragment,wn(e),i,e.component,e,gn(t),yn(t)+n.length,_n(e))}else{var c=function(e,t,n){if(""===t.path){if("full"===t.pathMatch&&(e.hasChildren()||n.length>0))throw new fn;return{consumedSegments:[],lastChild:0,parameters:{}}}var i=(t.matcher||De)(n,e,t);if(!i)throw new fn;var a={};Ue(i.posParams,(function(e,t){a[t]=e.path}));var o=i.consumed.length>0?Object(r.a)(Object(r.a)({},a),i.consumed[i.consumed.length-1].parameters):a;return{consumedSegments:i.consumed,lastChild:i.consumed.length,parameters:o}}(t,e,n);o=c.consumedSegments,s=n.slice(c.lastChild),a=new wt(o,c.parameters,Object.freeze(Object(r.a)({},this.urlTree.queryParams)),this.urlTree.fragment,wn(e),i,e.component,e,gn(t),yn(t)+o.length,_n(e))}var u=function(e){if(e.children)return e.children;if(e.loadChildren)return e._loadedConfig.routes;return[]}(e),d=bn(t,o,s,u,this.relativeLinkResolution),h=d.segmentGroup,p=d.slicedSegments;if(0===p.length&&h.hasChildren()){var f=this.processChildren(u,h);return[new mt(a,f)]}if(0===u.length&&0===p.length)return[new mt(a,[])];var m=this.processSegment(u,h,p,Te);return[new mt(a,m)]},e}();function gn(e){for(var t=e;t._sourceSegment;)t=t._sourceSegment;return t}function yn(e){for(var t=e,n=t._segmentIndexShift?t._segmentIndexShift:0;t._sourceSegment;)n+=(t=t._sourceSegment)._segmentIndexShift?t._segmentIndexShift:0;return n-1}function bn(e,t,n,i,a){if(n.length>0&&function(e,t,n){return n.some((function(n){return vn(e,t,n)&&kn(n)!==Te}))}(e,n,i)){var o=new Ge(t,function(e,t,n,i){var a,o,s={};s[Te]=i,i._sourceSegment=e,i._segmentIndexShift=t.length;try{for(var l=Object(r.h)(n),c=l.next();!c.done;c=l.next()){var u=c.value;if(""===u.path&&kn(u)!==Te){var d=new Ge([],{});d._sourceSegment=e,d._segmentIndexShift=t.length,s[kn(u)]=d}}}catch(h){a={error:h}}finally{try{c&&!c.done&&(o=l.return)&&o.call(l)}finally{if(a)throw a.error}}return s}(e,t,i,new Ge(n,e.children)));return o._sourceSegment=e,o._segmentIndexShift=t.length,{segmentGroup:o,slicedSegments:[]}}if(0===n.length&&function(e,t,n){return n.some((function(n){return vn(e,t,n)}))}(e,n,i)){var s=new Ge(e.segments,function(e,t,n,i,a,o){var s,l,c={};try{for(var u=Object(r.h)(i),d=u.next();!d.done;d=u.next()){var h=d.value;if(vn(e,n,h)&&!a[kn(h)]){var p=new Ge([],{});p._sourceSegment=e,p._segmentIndexShift="legacy"===o?e.segments.length:t.length,c[kn(h)]=p}}}catch(f){s={error:f}}finally{try{d&&!d.done&&(l=u.return)&&l.call(u)}finally{if(s)throw s.error}}return Object(r.a)(Object(r.a)({},a),c)}(e,t,n,i,e.children,a));return s._sourceSegment=e,s._segmentIndexShift=t.length,{segmentGroup:s,slicedSegments:n}}var l=new Ge(e.segments,e.children);return l._sourceSegment=e,l._segmentIndexShift=t.length,{segmentGroup:l,slicedSegments:n}}function vn(e,t,n){return(!(e.hasChildren()||t.length>0)||"full"!==n.pathMatch)&&(""===n.path&&void 0===n.redirectTo)}function kn(e){return e.outlet||Te}function wn(e){return e.data||{}}function _n(e){return e.resolve||{}} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function jn(e,t,n,i,a){return function(o){return o.pipe(Object($.a)((function(o){return function(e,t,n,r,i,a){return void 0===i&&(i="emptyOnly"),void 0===a&&(a="legacy"),new mn(e,t,n,r,i,a).recognize()}(e,t,o.urlAfterRedirects,n(o.urlAfterRedirects),i,a).pipe(Object(S.a)((function(e){return Object(r.a)(Object(r.a)({},o),{targetSnapshot:e})})))})))}} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function Cn(e,t){return function(n){return n.pipe(Object($.a)((function(n){var i=n.targetSnapshot,a=n.guards.canActivateChecks;return a.length?Object(s.a)(a).pipe(re((function(n){return function(e,t,n,i){return function(e,t,n,r){var i=Object.keys(e);if(0===i.length)return Object(o.a)({});if(1===i.length){var a=i[0];return xn(e[a],t,n,r).pipe(Object(S.a)((function(e){var t;return(t={})[a]=e,t})))}var l={};return Object(s.a)(i).pipe(Object($.a)((function(i){return xn(e[i],t,n,r).pipe(Object(S.a)((function(e){return l[i]=e,e})))}))).pipe(U(),Object(S.a)((function(){return l})))}(e._resolve,e,t,i).pipe(Object(S.a)((function(t){return e._resolvedData=t,e.data=Object(r.a)(Object(r.a)({},e.data),kt(e,n).resolve),null})))}(n.route,i,e,t)})),function(e,t){return arguments.length>=2?function(n){return Object(ie.a)(ee(e,t),I(1),q(t))(n)}:function(t){return Object(ie.a)(ee((function(t,n,r){return e(t,n,r+1)})),I(1))(t)}}((function(e,t){return e})),Object(S.a)((function(e){return n}))):Object(o.a)(n)})))}}function xn(e,t,n,r){var i=rn(e,t,r);return i.resolve?Ve(i.resolve(t,n)):Ve(i(t,n))} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function En(e){return function(t){return t.pipe(Object(J.a)((function(t){var n=e(t);return n?Object(s.a)(n).pipe(Object(S.a)((function(){return t}))):Object(s.a)([t])})))}} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var Sn=function(){},Tn=function(){function e(){}return e.prototype.shouldDetach=function(e){return!1},e.prototype.store=function(e,t){},e.prototype.shouldAttach=function(e){return!1},e.prototype.retrieve=function(e){return null},e.prototype.shouldReuseRoute=function(e,t){return e.routeConfig===t.routeConfig},e}(),On=new a.InjectionToken("ROUTES"),zn=function(){function e(e,t,n,r){this.loader=e,this.compiler=t,this.onLoadStartListener=n,this.onLoadEndListener=r}return e.prototype.load=function(e,t){var n=this;return this.onLoadStartListener&&this.onLoadStartListener(t),this.loadModuleFactory(t.loadChildren).pipe(Object(S.a)((function(r){n.onLoadEndListener&&n.onLoadEndListener(t);var i=r.create(e);return new Ae(Le(i.injector.get(On)).map(Me),i)})))},e.prototype.loadModuleFactory=function(e){var t=this;return"string"==typeof e?Object(s.a)(this.loader.load(e)):Ve(e()).pipe(Object($.a)((function(e){return e instanceof a.NgModuleFactory?Object(o.a)(e):Object(s.a)(t.compiler.compileModuleAsync(e))})))},e}(),In=function(){},Dn=function(){function e(){}return e.prototype.shouldProcessUrl=function(e){return!0},e.prototype.extract=function(e){return e},e.prototype.merge=function(e,t){return e},e}(); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +function An(e){throw e}function Nn(e,t,n){return t.parse("/")}function Pn(e,t){return Object(o.a)(null)}var Rn=function(){function e(e,t,n,r,i,o,s,c){var d=this;this.rootComponentType=e,this.urlSerializer=t,this.rootContexts=n,this.location=r,this.config=c,this.lastSuccessfulNavigation=null,this.currentNavigation=null,this.navigationId=0,this.isNgZoneEnabled=!1,this.events=new l.a,this.errorHandler=An,this.malformedUriErrorHandler=Nn,this.navigated=!1,this.lastSuccessfulId=-1,this.hooks={beforePreactivation:Pn,afterPreactivation:Pn},this.urlHandlingStrategy=new Dn,this.routeReuseStrategy=new Tn,this.onSameUrlNavigation="ignore",this.paramsInheritanceStrategy="emptyOnly",this.urlUpdateStrategy="deferred",this.relativeLinkResolution="legacy";this.ngModule=i.get(a.NgModuleRef),this.console=i.get(a["ɵConsole"]);var h=i.get(a.NgZone);this.isNgZoneEnabled=h instanceof a.NgZone,this.resetConfig(c),this.currentUrlTree=new We(new Ge([],{}),{},null),this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.configLoader=new zn(o,s,(function(e){return d.triggerEvent(new ke(e))}),(function(e){return d.triggerEvent(new we(e))})),this.routerState=bt(this.currentUrlTree,this.rootComponentType),this.transitions=new u({id:0,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,extractedUrl:this.urlHandlingStrategy.extract(this.currentUrlTree),urlAfterRedirects:this.urlHandlingStrategy.extract(this.currentUrlTree),rawUrl:this.currentUrlTree,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:"imperative",restoredState:null,currentSnapshot:this.routerState.snapshot,targetSnapshot:null,currentRouterState:this.routerState,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.navigations=this.setupNavigations(this.transitions),this.processNavigations()}return e.prototype.setupNavigations=function(e){var t=this,n=this.events;return e.pipe(Object(O.a)((function(e){return 0!==e.id})),Object(S.a)((function(e){return Object(r.a)(Object(r.a)({},e),{extractedUrl:t.urlHandlingStrategy.extract(e.rawUrl)})})),Object(J.a)((function(e){var i,a,s,l,c=!1,u=!1;return Object(o.a)(e).pipe(Object(ae.a)((function(e){t.currentNavigation={id:e.id,initialUrl:e.currentRawUrl,extractedUrl:e.extractedUrl,trigger:e.source,extras:e.extras,previousNavigation:t.lastSuccessfulNavigation?Object(r.a)(Object(r.a)({},t.lastSuccessfulNavigation),{previousNavigation:null}):null}})),Object(J.a)((function(e){var i=!t.navigated||e.extractedUrl.toString()!==t.browserUrlTree.toString();if(("reload"===t.onSameUrlNavigation||i)&&t.urlHandlingStrategy.shouldProcessUrl(e.rawUrl))return Object(o.a)(e).pipe(Object(J.a)((function(e){var r=t.transitions.getValue();return n.next(new de(e.id,t.serializeUrl(e.extractedUrl),e.source,e.restoredState)),r!==t.transitions.getValue()?x.a:[e]})),Object(J.a)((function(e){return Promise.resolve(e)})),en(t.ngModule.injector,t.configLoader,t.urlSerializer,t.config),Object(ae.a)((function(e){t.currentNavigation=Object(r.a)(Object(r.a)({},t.currentNavigation),{finalUrl:e.urlAfterRedirects})})),jn(t.rootComponentType,t.config,(function(e){return t.serializeUrl(e)}),t.paramsInheritanceStrategy,t.relativeLinkResolution),Object(ae.a)((function(e){"eager"===t.urlUpdateStrategy&&(e.extras.skipLocationChange||t.setBrowserUrl(e.urlAfterRedirects,!!e.extras.replaceUrl,e.id,e.extras.state),t.browserUrlTree=e.urlAfterRedirects)})),Object(ae.a)((function(e){var r=new me(e.id,t.serializeUrl(e.extractedUrl),t.serializeUrl(e.urlAfterRedirects),e.targetSnapshot);n.next(r)})));if(i&&t.rawUrlTree&&t.urlHandlingStrategy.shouldProcessUrl(t.rawUrlTree)){var a=e.id,s=e.extractedUrl,l=e.source,c=e.restoredState,u=e.extras,d=new de(a,t.serializeUrl(s),l,c);n.next(d);var h=bt(s,t.rootComponentType).snapshot;return Object(o.a)(Object(r.a)(Object(r.a)({},e),{targetSnapshot:h,urlAfterRedirects:s,extras:Object(r.a)(Object(r.a)({},u),{skipLocationChange:!1,replaceUrl:!1})}))}return t.rawUrlTree=e.rawUrl,t.browserUrlTree=e.urlAfterRedirects,e.resolve(null),x.a})),En((function(e){var n=e.targetSnapshot,r=e.id,i=e.extractedUrl,a=e.rawUrl,o=e.extras,s=o.skipLocationChange,l=o.replaceUrl;return t.hooks.beforePreactivation(n,{navigationId:r,appliedUrlTree:i,rawUrlTree:a,skipLocationChange:!!s,replaceUrl:!!l})})),Object(ae.a)((function(e){var n=new ge(e.id,t.serializeUrl(e.extractedUrl),t.serializeUrl(e.urlAfterRedirects),e.targetSnapshot);t.triggerEvent(n)})),Object(S.a)((function(e){return Object(r.a)(Object(r.a)({},e),{guards:(n=e.targetSnapshot,i=e.currentSnapshot,a=t.rootContexts,o=n._root,an(o,i?i._root:null,a,[o.value]))});var n,i,a,o})),cn(t.ngModule.injector,(function(e){return t.triggerEvent(e)})),Object(ae.a)((function(e){if(Vt(e.guardsResult)){var n=Ie('Redirecting to "'+t.serializeUrl(e.guardsResult)+'"');throw n.url=e.guardsResult,n}})),Object(ae.a)((function(e){var n=new ye(e.id,t.serializeUrl(e.extractedUrl),t.serializeUrl(e.urlAfterRedirects),e.targetSnapshot,!!e.guardsResult);t.triggerEvent(n)})),Object(O.a)((function(e){if(!e.guardsResult){t.resetUrlToCurrentUrlTree();var r=new pe(e.id,t.serializeUrl(e.extractedUrl),"");return n.next(r),e.resolve(!1),!1}return!0})),En((function(e){if(e.guards.canActivateChecks.length)return Object(o.a)(e).pipe(Object(ae.a)((function(e){var n=new be(e.id,t.serializeUrl(e.extractedUrl),t.serializeUrl(e.urlAfterRedirects),e.targetSnapshot);t.triggerEvent(n)})),Cn(t.paramsInheritanceStrategy,t.ngModule.injector),Object(ae.a)((function(e){var n=new ve(e.id,t.serializeUrl(e.extractedUrl),t.serializeUrl(e.urlAfterRedirects),e.targetSnapshot);t.triggerEvent(n)})))})),En((function(e){var n=e.targetSnapshot,r=e.id,i=e.extractedUrl,a=e.rawUrl,o=e.extras,s=o.skipLocationChange,l=o.replaceUrl;return t.hooks.afterPreactivation(n,{navigationId:r,appliedUrlTree:i,rawUrlTree:a,skipLocationChange:!!s,replaceUrl:!!l})})),Object(S.a)((function(e){var n,i,a,o,s=(n=t.routeReuseStrategy,i=e.targetSnapshot,a=e.currentRouterState,o=St(n,i._root,a?a._root:void 0),new yt(o,i));return Object(r.a)(Object(r.a)({},e),{targetRouterState:s})})),Object(ae.a)((function(e){t.currentUrlTree=e.urlAfterRedirects,t.rawUrlTree=t.urlHandlingStrategy.merge(t.currentUrlTree,e.rawUrl),t.routerState=e.targetRouterState,"deferred"===t.urlUpdateStrategy&&(e.extras.skipLocationChange||t.setBrowserUrl(t.rawUrlTree,!!e.extras.replaceUrl,e.id,e.extras.state),t.browserUrlTree=e.urlAfterRedirects)})),(a=t.rootContexts,s=t.routeReuseStrategy,l=function(e){return t.triggerEvent(e)},Object(S.a)((function(e){return new Lt(s,e.targetRouterState,e.currentRouterState,l).activate(a),e}))),Object(ae.a)({next:function(){c=!0},complete:function(){c=!0}}),(i=function(){if(!c&&!u){t.resetUrlToCurrentUrlTree();var r=new pe(e.id,t.serializeUrl(e.extractedUrl),"Navigation ID "+e.id+" is not equal to the current navigation id "+t.navigationId);n.next(r),e.resolve(!1)}t.currentNavigation=null},function(e){return e.lift(new se(i))}),H((function(r){if(u=!0,(s=r)&&s.ngNavigationCancelingError){var i=Vt(r.url);i||(t.navigated=!0,t.resetStateAndUrl(e.currentRouterState,e.currentUrlTree,e.rawUrl));var a=new pe(e.id,t.serializeUrl(e.extractedUrl),r.message);n.next(a),i?setTimeout((function(){var n=t.urlHandlingStrategy.merge(r.url,t.rawUrlTree),i={skipLocationChange:e.extras.skipLocationChange,replaceUrl:"eager"===t.urlUpdateStrategy};return t.scheduleNavigation(n,"imperative",null,i,{resolve:e.resolve,reject:e.reject,promise:e.promise})}),0):e.resolve(!1)}else{t.resetStateAndUrl(e.currentRouterState,e.currentUrlTree,e.rawUrl);var o=new fe(e.id,t.serializeUrl(e.extractedUrl),r);n.next(o);try{e.resolve(t.errorHandler(r))}catch(l){e.reject(l)}}var s;return x.a})))})))},e.prototype.resetRootComponentType=function(e){this.rootComponentType=e,this.routerState.root.component=this.rootComponentType},e.prototype.getTransition=function(){var e=this.transitions.value;return e.urlAfterRedirects=this.browserUrlTree,e},e.prototype.setTransition=function(e){this.transitions.next(Object(r.a)(Object(r.a)({},this.getTransition()),e))},e.prototype.initialNavigation=function(){this.setUpLocationChangeListener(),0===this.navigationId&&this.navigateByUrl(this.location.path(!0),{replaceUrl:!0})},e.prototype.setUpLocationChangeListener=function(){var e=this;this.locationSubscription||(this.locationSubscription=this.location.subscribe((function(t){var n=e.parseUrl(t.url),r="popstate"===t.type?"popstate":"hashchange",i=t.state&&t.state.navigationId?t.state:null;setTimeout((function(){e.scheduleNavigation(n,r,i,{replaceUrl:!0})}),0)})))},Object.defineProperty(e.prototype,"url",{get:function(){return this.serializeUrl(this.currentUrlTree)},enumerable:!0,configurable:!0}),e.prototype.getCurrentNavigation=function(){return this.currentNavigation},e.prototype.triggerEvent=function(e){this.events.next(e)},e.prototype.resetConfig=function(e){Ne(e),this.config=e.map(Me),this.navigated=!1,this.lastSuccessfulId=-1},e.prototype.ngOnDestroy=function(){this.dispose()},e.prototype.dispose=function(){this.locationSubscription&&(this.locationSubscription.unsubscribe(),this.locationSubscription=null)},e.prototype.createUrlTree=function(e,t){void 0===t&&(t={});var n=t.relativeTo,i=t.queryParams,o=t.fragment,s=t.preserveQueryParams,l=t.queryParamsHandling,c=t.preserveFragment;Object(a.isDevMode)()&&s&&console&&console.warn&&console.warn("preserveQueryParams is deprecated, use queryParamsHandling instead.");var u=n||this.routerState.root,d=c?this.currentUrlTree.fragment:o,h=null;if(l)switch(l){case"merge":h=Object(r.a)(Object(r.a)({},this.currentUrlTree.queryParams),i);break;case"preserve":h=this.currentUrlTree.queryParams;break;default:h=i||null}else h=s?this.currentUrlTree.queryParams:i||null;return null!==h&&(h=this.removeEmptyProps(h)),Tt(u,this.currentUrlTree,e,h,d)},e.prototype.navigateByUrl=function(e,t){void 0===t&&(t={skipLocationChange:!1}),Object(a.isDevMode)()&&this.isNgZoneEnabled&&!a.NgZone.isInAngularZone()&&this.console.warn("Navigation triggered outside Angular zone, did you forget to call 'ngZone.run()'?");var n=Vt(e)?e:this.parseUrl(e),r=this.urlHandlingStrategy.merge(n,this.rawUrlTree);return this.scheduleNavigation(r,"imperative",null,t)},e.prototype.navigate=function(e,t){return void 0===t&&(t={skipLocationChange:!1}),function(e){for(var t=0;t=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&Object.defineProperty(t,n,o),o},f=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},m=function(){function e(e,t,n){this.sanitizer=e,this.componentFactoryResolver=t,this.changeDetectorRef=n,this.bodyOutputType=r,this.clickEvent=new i.EventEmitter}return e.prototype.ngOnInit=function(){this.toast.closeHtml&&(this.safeCloseHtml=this.sanitizer.bypassSecurityTrustHtml(this.toast.closeHtml)),this.toast.bodyOutputType===r.TrustedHtml&&(this.safeBodyHtml=this.sanitizer.bypassSecurityTrustHtml(this.toast.body))},e.prototype.ngAfterViewInit=function(){if(this.toast.bodyOutputType===this.bodyOutputType.Component){var e=this.componentFactoryResolver.resolveComponentFactory(this.toast.body);this.componentBody.createComponent(e,void 0,this.componentBody.injector).instance.toast=this.toast,this.changeDetectorRef.detectChanges()}},e.prototype.click=function(e,t){e.stopPropagation(),this.clickEvent.emit({value:{toast:t,isCloseButton:!0}})},p([Object(i.Input)(),f("design:type",Object)],e.prototype,"toast",void 0),p([Object(i.Input)(),f("design:type",String)],e.prototype,"iconClass",void 0),p([Object(i.Input)(),f("design:type",String)],e.prototype,"titleClass",void 0),p([Object(i.Input)(),f("design:type",String)],e.prototype,"messageClass",void 0),p([Object(i.ViewChild)("componentBody",{read:i.ViewContainerRef,static:!1}),f("design:type",i.ViewContainerRef)],e.prototype,"componentBody",void 0),p([Object(i.Output)(),f("design:type",Object)],e.prototype,"clickEvent",void 0),(e=p([f("design:paramtypes",[a.DomSanitizer,i.ComponentFactoryResolver,i.ChangeDetectorRef])],e)).ɵfac=function(t){return new(t||e)(i["ɵɵdirectiveInject"](a.DomSanitizer),i["ɵɵdirectiveInject"](i.ComponentFactoryResolver),i["ɵɵdirectiveInject"](i.ChangeDetectorRef))},e.ɵcmp=i["ɵɵdefineComponent"]({type:e,selectors:[["","toastComp",""]],viewQuery:function(e,t){var n;(1&e&&i["ɵɵviewQuery"](s,!0,i.ViewContainerRef),2&e)&&(i["ɵɵqueryRefresh"](n=i["ɵɵloadQuery"]())&&(t.componentBody=n.first))},inputs:{toast:"toast",iconClass:"iconClass",titleClass:"titleClass",messageClass:"messageClass"},outputs:{clickEvent:"clickEvent"},attrs:l,decls:19,vars:9,consts:[[1,"toaster-icon",3,"ngClass"],[1,"toast-content"],[3,"ngClass"],[3,"ngClass","ngSwitch"],[4,"ngSwitchCase"],[3,"innerHTML",4,"ngSwitchCase"],["class","toast-close-button",3,"innerHTML","click",4,"ngIf"],["componentBody",""],[3,"innerHTML"],[1,"toast-close-button",3,"innerHTML","click"]],template:function(e,t){1&e&&(i["ɵɵtext"](0,"\n "),i["ɵɵelement"](1,"i",0),i["ɵɵtext"](2,"\n "),i["ɵɵelementStart"](3,"div",1),i["ɵɵtext"](4,"\n "),i["ɵɵelementStart"](5,"div",2),i["ɵɵtext"](6),i["ɵɵelementEnd"](),i["ɵɵtext"](7,"\n "),i["ɵɵelementStart"](8,"div",3),i["ɵɵtext"](9,"\n "),i["ɵɵtemplate"](10,c,2,0,"div",4),i["ɵɵtext"](11,"\n "),i["ɵɵtemplate"](12,u,1,1,"div",5),i["ɵɵtext"](13,"\n "),i["ɵɵtemplate"](14,d,2,1,"div",4),i["ɵɵtext"](15,"\n "),i["ɵɵelementEnd"](),i["ɵɵtext"](16,"\n "),i["ɵɵelementEnd"](),i["ɵɵtext"](17,"\n "),i["ɵɵtemplate"](18,h,2,1,"div",6)),2&e&&(i["ɵɵadvance"](1),i["ɵɵproperty"]("ngClass",t.iconClass),i["ɵɵadvance"](4),i["ɵɵproperty"]("ngClass",t.titleClass),i["ɵɵadvance"](1),i["ɵɵtextInterpolate"](t.toast.title),i["ɵɵadvance"](2),i["ɵɵproperty"]("ngClass",t.messageClass)("ngSwitch",t.toast.bodyOutputType),i["ɵɵadvance"](2),i["ɵɵproperty"]("ngSwitchCase",t.bodyOutputType.Component),i["ɵɵadvance"](2),i["ɵɵproperty"]("ngSwitchCase",t.bodyOutputType.TrustedHtml),i["ɵɵadvance"](2),i["ɵɵproperty"]("ngSwitchCase",t.bodyOutputType.Default),i["ɵɵadvance"](4),i["ɵɵproperty"]("ngIf",t.toast.showCloseButton))},directives:[o.NgClass,o.NgSwitch,o.NgSwitchCase,o.NgIf],encapsulation:2}),e}(),g=n(12),y=function(e){e=e||{},this.limit=e.limit||null,this.tapToDismiss=null==e.tapToDismiss||e.tapToDismiss,this.showCloseButton=null!=e.showCloseButton&&e.showCloseButton,this.closeHtml=e.closeHtml||'',this.newestOnTop=null==e.newestOnTop||e.newestOnTop,this.timeout=null!=e.timeout?e.timeout:5e3,this.typeClasses=e.typeClasses||{error:"toast-error",info:"toast-info",wait:"toast-wait",success:"toast-success",warning:"toast-warning"},this.iconClasses=e.iconClasses||{error:"icon-error",info:"icon-info",wait:"icon-wait",success:"icon-success",warning:"icon-warning"},this.bodyOutputType=e.bodyOutputType||r.Default,this.bodyTemplate=e.bodyTemplate||"toasterBodyTmpl.html",this.defaultTypeClass=e.defaultTypeClass||"toast-info",this.positionClass=e.positionClass||"toast-top-right",this.titleClass=e.titleClass||"toast-title",this.messageClass=e.messageClass||"toast-message",this.animation=e.animation||"",this.preventDuplicates=null!=e.preventDuplicates&&e.preventDuplicates,this.mouseoverTimerStop=null!=e.mouseoverTimerStop&&e.mouseoverTimerStop,this.toastContainerId=null!=e.toastContainerId?e.toastContainerId:null},b=n(32),v=n(147),k=n(1104),w=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&Object.defineProperty(t,n,o),o},_=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},j=function(){function e(){}return e.newGuid=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}))},e}(),C=function(){function e(){var e=this;this.addToast=new b.a((function(t){return e._addToast=t})).pipe(Object(k.a)()),this.clearToasts=new b.a((function(t){return e._clearToasts=t})).pipe(Object(k.a)()),this._removeToastSubject=new v.a,this.removeToast=this._removeToastSubject.pipe(Object(k.a)())}return e.prototype.pop=function(e,t,n){var r="string"==typeof e?{type:e,title:t,body:n}:e;if(r.toastId||(r.toastId=j.newGuid()),!this._addToast)throw new Error("No Toaster Containers have been initialized to receive toasts.");return this._addToast.next(r),r},e.prototype.popAsync=function(e,t,n){var r=this;return setTimeout((function(){r.pop(e,t,n)}),0),this.addToast},e.prototype.clear=function(e,t){var n={toastId:e,toastContainerId:t};this._clearToasts.next(n)},(e=w([_("design:paramtypes",[])],e)).ɵfac=function(t){return new(t||e)},e.ɵprov=i["ɵɵdefineInjectable"]({token:e,factory:function(t){return e.ɵfac(t)}}),e}();function x(e,t){if(1&e){var n=i["ɵɵgetCurrentView"]();i["ɵɵelementStart"](0,"div",2),i["ɵɵlistener"]("click",(function(){i["ɵɵrestoreView"](n);var e=t.$implicit;return i["ɵɵnextContext"]().click(e)}))("clickEvent",(function(e){return i["ɵɵrestoreView"](n),i["ɵɵnextContext"]().childClick(e)}))("mouseover",(function(){i["ɵɵrestoreView"](n);var e=t.$implicit;return i["ɵɵnextContext"]().stopTimer(e)}))("mouseout",(function(){i["ɵɵrestoreView"](n);var e=t.$implicit;return i["ɵɵnextContext"]().restartTimer(e)})),i["ɵɵtext"](1,"\n "),i["ɵɵelementEnd"]()}if(2&e){var r=t.$implicit,a=i["ɵɵnextContext"]();i["ɵɵproperty"]("toast",r)("@toastState",a.toasterconfig.animation)("iconClass",a.toasterconfig.iconClasses[r.type])("titleClass",a.toasterconfig.titleClass)("messageClass",a.toasterconfig.messageClass)("ngClass",a.toasterconfig.typeClasses[r.type])}}var E=function(e){return[e]},S=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&Object.defineProperty(t,n,o),o},T=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},O=function(){function e(e,t,n){this.ref=t,this.ngZone=n,this.timeoutIds=new Map,this.toasts=[],this.toasterService=e}return e.prototype.ngOnInit=function(){this.registerSubscribers(),this.isNullOrUndefined(this.toasterconfig)&&(this.toasterconfig=new y)},e.prototype.click=function(e,t){if(this.toasterconfig.tapToDismiss||e.showCloseButton&&t){var n=!0;if(e.clickHandler){if("function"!=typeof e.clickHandler)return console.log("The toast click handler is not a callable function."),!1;n=e.clickHandler(e,t)}n&&this.removeToast(e)}},e.prototype.childClick=function(e){this.click(e.value.toast,e.value.isCloseButton)},e.prototype.stopTimer=function(e){if(this.toasterconfig.mouseoverTimerStop){var t=this.toastIdOrDefault(e),n=this.timeoutIds.get(t);n&&(window.clearTimeout(n),this.timeoutIds.delete(t))}},e.prototype.restartTimer=function(e){var t=this.timeoutIds.get(this.toastIdOrDefault(e));this.toasterconfig.mouseoverTimerStop?t||this.configureTimer(e):0!==e.timeout&&!t&&this.toasterconfig.timeout&&this.removeToast(e)},e.prototype.registerSubscribers=function(){var e=this;this.addToastSubscriber=this.toasterService.addToast.subscribe((function(t){e.addToast(t)})),this.clearToastsSubscriber=this.toasterService.clearToasts.subscribe((function(t){e.clearToasts(t)}))},e.prototype.addToast=function(e){if(!e.toastContainerId||!this.toasterconfig.toastContainerId||e.toastContainerId===this.toasterconfig.toastContainerId){if(e.type||(e.type=this.toasterconfig.defaultTypeClass),this.toasterconfig.preventDuplicates&&this.toasts.length>0){if(e.toastId&&this.toasts.some((function(t){return t.toastId===e.toastId})))return;if(this.toasts.some((function(t){return t.body===e.body})))return}this.isNullOrUndefined(e.showCloseButton)&&("object"==typeof this.toasterconfig.showCloseButton?e.showCloseButton=this.toasterconfig.showCloseButton[e.type]:"boolean"==typeof this.toasterconfig.showCloseButton&&(e.showCloseButton=this.toasterconfig.showCloseButton)),e.showCloseButton&&(e.closeHtml=e.closeHtml||this.toasterconfig.closeHtml),e.bodyOutputType=e.bodyOutputType||this.toasterconfig.bodyOutputType,this.configureTimer(e),this.toasterconfig.newestOnTop?(this.toasts.unshift(e),this.isLimitExceeded()&&this.toasts.pop()):(this.toasts.push(e),this.isLimitExceeded()&&this.toasts.shift()),e.onShowCallback&&e.onShowCallback(e)}},e.prototype.configureTimer=function(e){var t=this,n="number"==typeof e.timeout?e.timeout:this.toasterconfig.timeout;"object"==typeof n&&(n=n[e.type]),n>0&&this.ngZone.runOutsideAngular((function(){var r=window.setTimeout((function(){t.ngZone.run((function(){t.ref.markForCheck(),t.removeToast(e)}))}),n);t.timeoutIds.set(t.toastIdOrDefault(e),r)}))},e.prototype.isLimitExceeded=function(){return this.toasterconfig.limit&&this.toasts.length>this.toasterconfig.limit},e.prototype.removeToast=function(e){var t=this.toasts.indexOf(e);if(!(t<0)){var n=this.toastIdOrDefault(e),r=this.timeoutIds.get(n);this.toasts.splice(t,1),r&&(window.clearTimeout(r),this.timeoutIds.delete(n)),e.onHideCallback&&e.onHideCallback(e),this.toasterService._removeToastSubject.next({toastId:n,toastContainerId:e.toastContainerId})}},e.prototype.removeAllToasts=function(){for(var e=this.toasts.length-1;e>=0;e--)this.removeToast(this.toasts[e])},e.prototype.clearToasts=function(e){var t=e.toastId,n=e.toastContainerId;(this.isNullOrUndefined(n)||n===this.toasterconfig.toastContainerId)&&this.clearToastsAction(t)},e.prototype.clearToastsAction=function(e){e?this.removeToast(this.toasts.filter((function(t){return t.toastId===e}))[0]):this.removeAllToasts()},e.prototype.toastIdOrDefault=function(e){return e.toastId||""},e.prototype.isNullOrUndefined=function(e){return null==e},e.prototype.ngOnDestroy=function(){this.addToastSubscriber&&this.addToastSubscriber.unsubscribe(),this.clearToastsSubscriber&&this.clearToastsSubscriber.unsubscribe()},S([Object(i.Input)(),T("design:type",y)],e.prototype,"toasterconfig",void 0),(e=S([T("design:paramtypes",[C,i.ChangeDetectorRef,i.NgZone])],e)).ɵfac=function(t){return new(t||e)(i["ɵɵdirectiveInject"](C),i["ɵɵdirectiveInject"](i.ChangeDetectorRef),i["ɵɵdirectiveInject"](i.NgZone))},e.ɵcmp=i["ɵɵdefineComponent"]({type:e,selectors:[["toaster-container"]],inputs:{toasterconfig:"toasterconfig"},decls:6,vars:4,consts:[["id","toast-container",3,"ngClass"],["toastComp","","class","toast",3,"toast","iconClass","titleClass","messageClass","ngClass","click","clickEvent","mouseover","mouseout",4,"ngFor","ngForOf"],["toastComp","",1,"toast",3,"toast","iconClass","titleClass","messageClass","ngClass","click","clickEvent","mouseover","mouseout"]],template:function(e,t){1&e&&(i["ɵɵtext"](0,"\n "),i["ɵɵelementStart"](1,"div",0),i["ɵɵtext"](2,"\n "),i["ɵɵtemplate"](3,x,2,6,"div",1),i["ɵɵtext"](4,"\n "),i["ɵɵelementEnd"](),i["ɵɵtext"](5,"\n ")),2&e&&(i["ɵɵadvance"](1),i["ɵɵproperty"]("ngClass",i["ɵɵpureFunction1"](2,E,t.toasterconfig.positionClass)),i["ɵɵadvance"](2),i["ɵɵproperty"]("ngForOf",t.toasts))},directives:[o.NgClass,o.NgForOf,m],encapsulation:2,data:{animation:[Object(g.j)("toastState",[Object(g.g)("flyRight, flyLeft, slideDown, slideUp, fade",Object(g.h)({opacity:1,transform:"translate(0,0)"})),Object(g.i)("void => flyRight",[Object(g.h)({opacity:0,transform:"translateX(100%)"}),Object(g.e)("0.25s ease-in")]),Object(g.i)("flyRight => void",[Object(g.e)("0.25s 10ms ease-out",Object(g.h)({opacity:0,transform:"translateX(100%)"}))]),Object(g.i)("void => flyLeft",[Object(g.h)({opacity:0,transform:"translateX(-100%)"}),Object(g.e)("0.25s ease-in")]),Object(g.i)("flyLeft => void",[Object(g.e)("0.25s 10ms ease-out",Object(g.h)({opacity:0,transform:"translateX(-100%)"}))]),Object(g.i)("void => slideDown",[Object(g.h)({opacity:0,transform:"translateY(-200%)"}),Object(g.e)("0.3s ease-in")]),Object(g.i)("slideDown => void",[Object(g.e)("0.3s 10ms ease-out",Object(g.h)({opacity:0,transform:"translateY(200%)"}))]),Object(g.i)("void => slideUp",[Object(g.h)({opacity:0,transform:"translateY(200%)"}),Object(g.e)("0.3s ease-in")]),Object(g.i)("slideUp => void",[Object(g.e)("0.3s 10ms ease-out",Object(g.h)({opacity:0,transform:"translateY(-200%)"}))]),Object(g.i)("void => fade",[Object(g.h)({opacity:0}),Object(g.e)("0.3s ease-in")]),Object(g.i)("fade => void",[Object(g.e)("0.3s 10ms ease-out",Object(g.h)({opacity:0}))])])]}}),e}(),z=function(){function e(){}var t;return t=e,e.forRoot=function(){return{ngModule:t,providers:[C,O]}},e.forChild=function(){return{ngModule:t,providers:[O]}},e.ɵmod=i["ɵɵdefineNgModule"]({type:e}),e.ɵinj=i["ɵɵdefineInjector"]({factory:function(t){return new(t||e)},imports:[[o.CommonModule]]}),("undefined"==typeof ngJitMode||ngJitMode)&&i["ɵɵsetNgModuleScope"](e,{declarations:function(){return[m,O]},imports:function(){return[o.CommonModule]},exports:function(){return[O,m]}}),e}();n.d(t,"ToastComponent",(function(){return m})),n.d(t,"ToasterContainerComponent",(function(){return O})),n.d(t,"ToasterService",(function(){return C})),n.d(t,"ToasterConfig",(function(){return y})),n.d(t,"BodyOutputType",(function(){return r})),n.d(t,"ToasterModule",(function(){return z}))},,function(e,t,n){"use strict";var r;n.d(t,"a",(function(){return r})),function(e){e[e.Trace=0]="Trace",e[e.Debug=1]="Debug",e[e.Information=2]="Information",e[e.Warning=3]="Warning",e[e.Error=4]="Error",e[e.Critical=5]="Critical",e[e.None=6]="None"}(r||(r={}))},function(e,t,n){"use strict";n.d(t,"a",(function(){return a})),n.d(t,"b",(function(){return r})),n.d(t,"c",(function(){return i})),n.d(t,"d",(function(){return p})),n.d(t,"e",(function(){return s})),n.d(t,"f",(function(){return l})),n.d(t,"g",(function(){return u})),n.d(t,"h",(function(){return c})),n.d(t,"i",(function(){return d})),n.d(t,"j",(function(){return o})),n.d(t,"k",(function(){return f})),n.d(t,"l",(function(){return m})); +/** + * @license Angular v9.1.12 + * (c) 2010-2020 Google LLC. https://angular.io/ + * License: MIT + */ +var r=function(){},i=function(){},a="*";function o(e,t){return{type:7,name:e,definitions:t,options:{}}}function s(e,t){return void 0===t&&(t=null),{type:4,styles:t,timings:e}}function l(e,t){return void 0===t&&(t=null),{type:2,steps:e,options:t}}function c(e){return{type:6,styles:e,offset:null}}function u(e,t,n){return{type:0,name:e,styles:t,options:n}}function d(e,t,n){return void 0===n&&(n=null),{type:1,expr:e,animation:t,options:n}} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +function h(e){Promise.resolve(null).then(e)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var p=function(){function e(e,t){void 0===e&&(e=0),void 0===t&&(t=0),this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this.parentPlayer=null,this.totalTime=e+t}return e.prototype._onFinish=function(){this._finished||(this._finished=!0,this._onDoneFns.forEach((function(e){return e()})),this._onDoneFns=[])},e.prototype.onStart=function(e){this._onStartFns.push(e)},e.prototype.onDone=function(e){this._onDoneFns.push(e)},e.prototype.onDestroy=function(e){this._onDestroyFns.push(e)},e.prototype.hasStarted=function(){return this._started},e.prototype.init=function(){},e.prototype.play=function(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0},e.prototype.triggerMicrotask=function(){var e=this;h((function(){return e._onFinish()}))},e.prototype._onStart=function(){this._onStartFns.forEach((function(e){return e()})),this._onStartFns=[]},e.prototype.pause=function(){},e.prototype.restart=function(){},e.prototype.finish=function(){this._onFinish()},e.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach((function(e){return e()})),this._onDestroyFns=[])},e.prototype.reset=function(){},e.prototype.setPosition=function(e){},e.prototype.getPosition=function(){return 0},e.prototype.triggerCallback=function(e){var t="start"==e?this._onStartFns:this._onDoneFns;t.forEach((function(e){return e()})),t.length=0},e}(),f=function(){function e(e){var t=this;this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=e;var n=0,r=0,i=0,a=this.players.length;0==a?h((function(){return t._onFinish()})):this.players.forEach((function(e){e.onDone((function(){++n==a&&t._onFinish()})),e.onDestroy((function(){++r==a&&t._onDestroy()})),e.onStart((function(){++i==a&&t._onStart()}))})),this.totalTime=this.players.reduce((function(e,t){return Math.max(e,t.totalTime)}),0)}return e.prototype._onFinish=function(){this._finished||(this._finished=!0,this._onDoneFns.forEach((function(e){return e()})),this._onDoneFns=[])},e.prototype.init=function(){this.players.forEach((function(e){return e.init()}))},e.prototype.onStart=function(e){this._onStartFns.push(e)},e.prototype._onStart=function(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach((function(e){return e()})),this._onStartFns=[])},e.prototype.onDone=function(e){this._onDoneFns.push(e)},e.prototype.onDestroy=function(e){this._onDestroyFns.push(e)},e.prototype.hasStarted=function(){return this._started},e.prototype.play=function(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach((function(e){return e.play()}))},e.prototype.pause=function(){this.players.forEach((function(e){return e.pause()}))},e.prototype.restart=function(){this.players.forEach((function(e){return e.restart()}))},e.prototype.finish=function(){this._onFinish(),this.players.forEach((function(e){return e.finish()}))},e.prototype.destroy=function(){this._onDestroy()},e.prototype._onDestroy=function(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach((function(e){return e.destroy()})),this._onDestroyFns.forEach((function(e){return e()})),this._onDestroyFns=[])},e.prototype.reset=function(){this.players.forEach((function(e){return e.reset()})),this._destroyed=!1,this._finished=!1,this._started=!1},e.prototype.setPosition=function(e){var t=e*this.totalTime;this.players.forEach((function(e){var n=e.totalTime?Math.min(1,t/e.totalTime):1;e.setPosition(n)}))},e.prototype.getPosition=function(){var e=0;return this.players.forEach((function(t){var n=t.getPosition();e=Math.min(n,e)})),e},e.prototype.beforeDestroy=function(){this.players.forEach((function(e){e.beforeDestroy&&e.beforeDestroy()}))},e.prototype.triggerCallback=function(e){var t="start"==e?this._onStartFns:this._onDoneFns;t.forEach((function(e){return e()})),t.length=0},e}(),m="!"; +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */},function(e,t,n){"use strict";n.r(t);var r=n(1),i=n(0),a=n(4),o=n(32),s=n(121),l=n(164),c=n(215),u=n(166);function d(e,t){return new o.a((function(n){var r=e.length;if(0!==r)for(var i=new Array(r),a=0,o=0,s=function(s){var l=Object(u.a)(e[s]),c=!1;n.add(l.subscribe({next:function(e){c||(c=!0,o++),i[s]=e},error:function(e){return n.error(e)},complete:function(){++a!==r&&c||(o===r&&n.next(t?t.reduce((function(e,t,n){return e[t]=i[n],e}),{}):i),n.complete())}}))},l=0;le?{max:{max:e,actual:t.value}}:null}},e.required=function(e){return E(e.value)?{required:!0}:null},e.requiredTrue=function(e){return!0===e.value?null:{required:!0}},e.email=function(e){return E(e.value)||O.test(e.value)?null:{email:!0}},e.minLength=function(e){return function(t){if(E(t.value))return null;var n=t.value?t.value.length:0;return ne?{maxlength:{requiredLength:e,actualLength:n}}:null}},e.pattern=function(t){return t?("string"==typeof t?(r="","^"!==t.charAt(0)&&(r+="^"),r+=t,"$"!==t.charAt(t.length-1)&&(r+="$"),n=new RegExp(r)):(r=t.toString(),n=t),function(e){if(E(e.value))return null;var t=e.value;return n.test(t)?null:{pattern:{requiredPattern:r,actualValue:t}}}):e.nullValidator;var n,r},e.nullValidator=function(e){return null},e.compose=function(e){if(!e)return null;var t=e.filter(I);return 0==t.length?null:function(e){return A(function(e,t){return t.map((function(t){return t(e)}))}(e,t))}},e.composeAsync=function(e){if(!e)return null;var t=e.filter(I);return 0==t.length?null:function(e){return function(){for(var e=[],t=0;t=0;--t)if(this._accessors[t][1]===e)return void this._accessors.splice(t,1)},e.prototype.select=function(e){var t=this;this._accessors.forEach((function(n){t._isSameGroup(n,e)&&n[1]!==e&&n[1].fireUncheck(e.value)}))},e.prototype._isSameGroup=function(e,t){return!!e[0].control&&(e[0]._parent===t._control._parent&&e[1].name===t.name)},e.ɵfac=function(t){return new(t||e)},e.ɵprov=i["ɵɵdefineInjectable"]({token:e,factory:function(t){return e.ɵfac(t)}}),e}(),L=function(){function e(e,t,n,r){this._renderer=e,this._elementRef=t,this._registry=n,this._injector=r,this.onChange=function(){},this.onTouched=function(){}}return e.prototype.ngOnInit=function(){this._control=this._injector.get(w),this._checkName(),this._registry.add(this._control,this)},e.prototype.ngOnDestroy=function(){this._registry.remove(this)},e.prototype.writeValue=function(e){this._state=e===this.value,this._renderer.setProperty(this._elementRef.nativeElement,"checked",this._state)},e.prototype.registerOnChange=function(e){var t=this;this._fn=e,this.onChange=function(){e(t.value),t._registry.select(t)}},e.prototype.fireUncheck=function(e){this.writeValue(e)},e.prototype.registerOnTouched=function(e){this.onTouched=e},e.prototype.setDisabledState=function(e){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",e)},e.prototype._checkName=function(){this.name&&this.formControlName&&this.name!==this.formControlName&&this._throwNameError(),!this.name&&this.formControlName&&(this.name=this.formControlName)},e.prototype._throwNameError=function(){throw new Error('\n If you define both a name and a formControlName attribute on your radio button, their values\n must match. Ex: \n ')},Object(r.b)([Object(i.Input)(),Object(r.d)("design:type",String)],e.prototype,"name",void 0),Object(r.b)([Object(i.Input)(),Object(r.d)("design:type",String)],e.prototype,"formControlName",void 0),Object(r.b)([Object(i.Input)(),Object(r.d)("design:type",Object)],e.prototype,"value",void 0),(e=Object(r.b)([Object(r.d)("design:paramtypes",[i.Renderer2,i.ElementRef,B,i.Injector])],e)).ɵfac=function(t){return new(t||e)(i["ɵɵdirectiveInject"](i.Renderer2),i["ɵɵdirectiveInject"](i.ElementRef),i["ɵɵdirectiveInject"](B),i["ɵɵdirectiveInject"](i.Injector))},e.ɵdir=i["ɵɵdefineDirective"]({type:e,selectors:[["input","type","radio","formControlName",""],["input","type","radio","formControl",""],["input","type","radio","ngModel",""]],hostBindings:function(e,t){1&e&&i["ɵɵlistener"]("change",(function(){return t.onChange()}))("blur",(function(){return t.onTouched()}))},inputs:{name:"name",formControlName:"formControlName",value:"value"},features:[i["ɵɵProvidersFeature"]([q])]}),e}(),F={provide:h,useExisting:Object(i.forwardRef)((function(){return U})),multi:!0},U=function(){function e(e,t){this._renderer=e,this._elementRef=t,this.onChange=function(e){},this.onTouched=function(){}}return e.prototype.writeValue=function(e){this._renderer.setProperty(this._elementRef.nativeElement,"value",parseFloat(e))},e.prototype.registerOnChange=function(e){this.onChange=function(t){e(""==t?null:parseFloat(t))}},e.prototype.registerOnTouched=function(e){this.onTouched=e},e.prototype.setDisabledState=function(e){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",e)},(e=Object(r.b)([Object(r.d)("design:paramtypes",[i.Renderer2,i.ElementRef])],e)).ɵfac=function(t){return new(t||e)(i["ɵɵdirectiveInject"](i.Renderer2),i["ɵɵdirectiveInject"](i.ElementRef))},e.ɵdir=i["ɵɵdefineDirective"]({type:e,selectors:[["input","type","range","formControlName",""],["input","type","range","formControl",""],["input","type","range","ngModel",""]],hostBindings:function(e,t){1&e&&i["ɵɵlistener"]("change",(function(e){return t.onChange(e.target.value)}))("input",(function(e){return t.onChange(e.target.value)}))("blur",(function(){return t.onTouched()}))},features:[i["ɵɵProvidersFeature"]([F])]}),e}(),V='\n

\n \n
\n\n In your class:\n\n this.myGroup = new FormGroup({\n firstName: new FormControl()\n });',H='\n
\n
\n \n
\n
\n\n In your class:\n\n this.myGroup = new FormGroup({\n person: new FormGroup({ firstName: new FormControl() })\n });',K='\n
\n
\n
\n \n
\n
\n
\n\n In your class:\n\n this.cityArray = new FormArray([new FormControl(\'SF\')]);\n this.myGroup = new FormGroup({\n cities: this.cityArray\n });',W='\n
\n
\n \n
\n
',G='\n
\n \n \n
\n ',Q=function(){function e(){}return e.controlParentException=function(){throw new Error("formControlName must be used with a parent formGroup directive. You'll want to add a formGroup\n directive and pass it an existing FormGroup instance (you can create one in your class).\n\n Example:\n\n "+V)},e.ngModelGroupException=function(){throw new Error('formControlName cannot be used with an ngModelGroup parent. It is only compatible with parents\n that also have a "form" prefix: formGroupName, formArrayName, or formGroup.\n\n Option 1: Update the parent to be formGroupName (reactive form strategy)\n\n '+H+"\n\n Option 2: Use ngModel instead of formControlName (template-driven strategy)\n\n "+W)},e.missingFormException=function(){throw new Error("formGroup expects a FormGroup instance. Please pass one in.\n\n Example:\n\n "+V)},e.groupParentException=function(){throw new Error("formGroupName must be used with a parent formGroup directive. You'll want to add a formGroup\n directive and pass it an existing FormGroup instance (you can create one in your class).\n\n Example:\n\n "+H)},e.arrayParentException=function(){throw new Error("formArrayName must be used with a parent formGroup directive. You'll want to add a formGroup\n directive and pass it an existing FormGroup instance (you can create one in your class).\n\n Example:\n\n "+K)},e.disabledAttrWarning=function(){console.warn("\n It looks like you're using the disabled attribute with a reactive form directive. If you set disabled to true\n when you set up this control in your component class, the disabled attribute will actually be set in the DOM for\n you. We recommend using this approach to avoid 'changed after checked' errors.\n \n Example: \n form = new FormGroup({\n first: new FormControl({value: 'Nancy', disabled: true}, Validators.required),\n last: new FormControl('Drew', Validators.required)\n });\n ")},e.ngModelWarning=function(e){console.warn("\n It looks like you're using ngModel on the same form field as "+e+". \n Support for using the ngModel input property and ngModelChange event with \n reactive form directives has been deprecated in Angular v6 and will be removed \n in Angular v7.\n \n For more information on this, see our API docs here:\n https://angular.io/api/forms/"+("formControl"===e?"FormControlDirective":"FormControlName")+"#use-with-ngmodel\n ")},e}(),$={provide:h,useExisting:Object(i.forwardRef)((function(){return Z})),multi:!0};function Y(e,t){return null==e?""+t:(t&&"object"==typeof t&&(t="Object"),(e+": "+t).slice(0,50))}var Z=function(){function e(e,t){this._renderer=e,this._elementRef=t,this._optionMap=new Map,this._idCounter=0,this.onChange=function(e){},this.onTouched=function(){},this._compareWith=i["ɵlooseIdentical"]}return Object.defineProperty(e.prototype,"compareWith",{set:function(e){if("function"!=typeof e)throw new Error("compareWith must be a function, but received "+JSON.stringify(e));this._compareWith=e},enumerable:!0,configurable:!0}),e.prototype.writeValue=function(e){this.value=e;var t=this._getOptionId(e);null==t&&this._renderer.setProperty(this._elementRef.nativeElement,"selectedIndex",-1);var n=Y(t,e);this._renderer.setProperty(this._elementRef.nativeElement,"value",n)},e.prototype.registerOnChange=function(e){var t=this;this.onChange=function(n){t.value=t._getOptionValue(n),e(t.value)}},e.prototype.registerOnTouched=function(e){this.onTouched=e},e.prototype.setDisabledState=function(e){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",e)},e.prototype._registerOption=function(){return(this._idCounter++).toString()},e.prototype._getOptionId=function(e){var t,n;try{for(var i=Object(r.h)(Array.from(this._optionMap.keys())),a=i.next();!a.done;a=i.next()){var o=a.value;if(this._compareWith(this._optionMap.get(o),e))return o}}catch(s){t={error:s}}finally{try{a&&!a.done&&(n=i.return)&&n.call(i)}finally{if(t)throw t.error}}return null},e.prototype._getOptionValue=function(e){var t=function(e){return e.split(":")[0]}(e);return this._optionMap.has(t)?this._optionMap.get(t):e},Object(r.b)([Object(i.Input)(),Object(r.d)("design:type",Function),Object(r.d)("design:paramtypes",[Function])],e.prototype,"compareWith",null),(e=Object(r.b)([Object(r.d)("design:paramtypes",[i.Renderer2,i.ElementRef])],e)).ɵfac=function(t){return new(t||e)(i["ɵɵdirectiveInject"](i.Renderer2),i["ɵɵdirectiveInject"](i.ElementRef))},e.ɵdir=i["ɵɵdefineDirective"]({type:e,selectors:[["select","formControlName","",3,"multiple",""],["select","formControl","",3,"multiple",""],["select","ngModel","",3,"multiple",""]],hostBindings:function(e,t){1&e&&i["ɵɵlistener"]("change",(function(e){return t.onChange(e.target.value)}))("blur",(function(){return t.onTouched()}))},inputs:{compareWith:"compareWith"},features:[i["ɵɵProvidersFeature"]([$])]}),e}(),J=function(){function e(e,t,n){this._element=e,this._renderer=t,this._select=n,this._select&&(this.id=this._select._registerOption())}return Object.defineProperty(e.prototype,"ngValue",{set:function(e){null!=this._select&&(this._select._optionMap.set(this.id,e),this._setElementValue(Y(this.id,e)),this._select.writeValue(this._select.value))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"value",{set:function(e){this._setElementValue(e),this._select&&this._select.writeValue(this._select.value)},enumerable:!0,configurable:!0}),e.prototype._setElementValue=function(e){this._renderer.setProperty(this._element.nativeElement,"value",e)},e.prototype.ngOnDestroy=function(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))},Object(r.b)([Object(i.Input)("ngValue"),Object(r.d)("design:type",Object),Object(r.d)("design:paramtypes",[Object])],e.prototype,"ngValue",null),Object(r.b)([Object(i.Input)("value"),Object(r.d)("design:type",Object),Object(r.d)("design:paramtypes",[Object])],e.prototype,"value",null),(e=Object(r.b)([Object(r.e)(2,Object(i.Optional)()),Object(r.e)(2,Object(i.Host)()),Object(r.d)("design:paramtypes",[i.ElementRef,i.Renderer2,Z])],e)).ɵfac=function(t){return new(t||e)(i["ɵɵdirectiveInject"](i.ElementRef),i["ɵɵdirectiveInject"](i.Renderer2),i["ɵɵdirectiveInject"](Z,9))},e.ɵdir=i["ɵɵdefineDirective"]({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}}),e}(),X={provide:h,useExisting:Object(i.forwardRef)((function(){return te})),multi:!0};function ee(e,t){return null==e?""+t:("string"==typeof t&&(t="'"+t+"'"),t&&"object"==typeof t&&(t="Object"),(e+": "+t).slice(0,50))}var te=function(){function e(e,t){this._renderer=e,this._elementRef=t,this._optionMap=new Map,this._idCounter=0,this.onChange=function(e){},this.onTouched=function(){},this._compareWith=i["ɵlooseIdentical"]}return Object.defineProperty(e.prototype,"compareWith",{set:function(e){if("function"!=typeof e)throw new Error("compareWith must be a function, but received "+JSON.stringify(e));this._compareWith=e},enumerable:!0,configurable:!0}),e.prototype.writeValue=function(e){var t,n=this;if(this.value=e,Array.isArray(e)){var r=e.map((function(e){return n._getOptionId(e)}));t=function(e,t){e._setSelected(r.indexOf(t.toString())>-1)}}else t=function(e,t){e._setSelected(!1)};this._optionMap.forEach(t)},e.prototype.registerOnChange=function(e){var t=this;this.onChange=function(n){var r=[];if(n.hasOwnProperty("selectedOptions"))for(var i=n.selectedOptions,a=0;a1?"path: '"+e.path.join(" -> ")+"'":e.path[0]?"name: '"+e.path+"'":"unspecified name attribute",new Error(t+" "+n)}function ce(e){return null!=e?z.compose(e.map(N)):null}function ue(e){return null!=e?z.composeAsync(e.map(P)):null}function de(e,t){if(!e.hasOwnProperty("model"))return!1;var n=e.model;return!!n.isFirstChange()||!Object(i["ɵlooseIdentical"])(t,n.currentValue)}var he=[f,U,M,Z,te,L];function pe(e,t){e._syncPendingControls(),t.forEach((function(e){var t=e.control;"submit"===t.updateOn&&t._pendingChange&&(e.viewToModelUpdate(t._pendingValue),t._pendingChange=!1)}))}function fe(e,t){if(!t)return null;Array.isArray(t)||le(e,"Value accessor was not provided as an array for form control with");var n=void 0,r=void 0,i=void 0;return t.forEach((function(t){var a;t.constructor===y?n=t:(a=t,he.some((function(e){return a.constructor===e}))?(r&&le(e,"More than one built-in value accessor matches form control with"),r=t):(i&&le(e,"More than one custom value accessor matches form control with"),i=t))})),i||(r||(n||(le(e,"No valid value accessor for form control with"),null)))}function me(e,t){var n=e.indexOf(t);n>-1&&e.splice(n,1)}function ge(e,t,n,r){Object(i.isDevMode)()&&"never"!==r&&((null!==r&&"once"!==r||t._ngModelWarningSentOnce)&&("always"!==r||n._ngModelWarningSent)||(Q.ngModelWarning(e),t._ngModelWarningSentOnce=!0,n._ngModelWarningSent=!0))} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function ye(e){var t=ve(e)?e.validators:e;return Array.isArray(t)?ce(t):t||null}function be(e,t){var n=ve(t)?t.asyncValidators:e;return Array.isArray(n)?ue(n):n||null}function ve(e){return null!=e&&!Array.isArray(e)&&"object"==typeof e}var ke=function(){function e(e,t){this.validator=e,this.asyncValidator=t,this._onCollectionChange=function(){},this.pristine=!0,this.touched=!1,this._onDisabledChange=[]}return Object.defineProperty(e.prototype,"parent",{get:function(){return this._parent},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"valid",{get:function(){return"VALID"===this.status},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"invalid",{get:function(){return"INVALID"===this.status},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pending",{get:function(){return"PENDING"==this.status},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{get:function(){return"DISABLED"===this.status},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"enabled",{get:function(){return"DISABLED"!==this.status},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dirty",{get:function(){return!this.pristine},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"untouched",{get:function(){return!this.touched},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"updateOn",{get:function(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"},enumerable:!0,configurable:!0}),e.prototype.setValidators=function(e){this.validator=ye(e)},e.prototype.setAsyncValidators=function(e){this.asyncValidator=be(e)},e.prototype.clearValidators=function(){this.validator=null},e.prototype.clearAsyncValidators=function(){this.asyncValidator=null},e.prototype.markAsTouched=function(e){void 0===e&&(e={}),this.touched=!0,this._parent&&!e.onlySelf&&this._parent.markAsTouched(e)},e.prototype.markAllAsTouched=function(){this.markAsTouched({onlySelf:!0}),this._forEachChild((function(e){return e.markAllAsTouched()}))},e.prototype.markAsUntouched=function(e){void 0===e&&(e={}),this.touched=!1,this._pendingTouched=!1,this._forEachChild((function(e){e.markAsUntouched({onlySelf:!0})})),this._parent&&!e.onlySelf&&this._parent._updateTouched(e)},e.prototype.markAsDirty=function(e){void 0===e&&(e={}),this.pristine=!1,this._parent&&!e.onlySelf&&this._parent.markAsDirty(e)},e.prototype.markAsPristine=function(e){void 0===e&&(e={}),this.pristine=!0,this._pendingDirty=!1,this._forEachChild((function(e){e.markAsPristine({onlySelf:!0})})),this._parent&&!e.onlySelf&&this._parent._updatePristine(e)},e.prototype.markAsPending=function(e){void 0===e&&(e={}),this.status="PENDING",!1!==e.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!e.onlySelf&&this._parent.markAsPending(e)},e.prototype.disable=function(e){void 0===e&&(e={});var t=this._parentMarkedDirty(e.onlySelf);this.status="DISABLED",this.errors=null,this._forEachChild((function(t){t.disable(Object(r.a)(Object(r.a)({},e),{onlySelf:!0}))})),this._updateValue(),!1!==e.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(Object(r.a)(Object(r.a)({},e),{skipPristineCheck:t})),this._onDisabledChange.forEach((function(e){return e(!0)}))},e.prototype.enable=function(e){void 0===e&&(e={});var t=this._parentMarkedDirty(e.onlySelf);this.status="VALID",this._forEachChild((function(t){t.enable(Object(r.a)(Object(r.a)({},e),{onlySelf:!0}))})),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent}),this._updateAncestors(Object(r.a)(Object(r.a)({},e),{skipPristineCheck:t})),this._onDisabledChange.forEach((function(e){return e(!1)}))},e.prototype._updateAncestors=function(e){this._parent&&!e.onlySelf&&(this._parent.updateValueAndValidity(e),e.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())},e.prototype.setParent=function(e){this._parent=e},e.prototype.updateValueAndValidity=function(e){void 0===e&&(e={}),this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),"VALID"!==this.status&&"PENDING"!==this.status||this._runAsyncValidator(e.emitEvent)),!1!==e.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!e.onlySelf&&this._parent.updateValueAndValidity(e)},e.prototype._updateTreeValidity=function(e){void 0===e&&(e={emitEvent:!0}),this._forEachChild((function(t){return t._updateTreeValidity(e)})),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent})},e.prototype._setInitialStatus=function(){this.status=this._allControlsDisabled()?"DISABLED":"VALID"},e.prototype._runValidator=function(){return this.validator?this.validator(this):null},e.prototype._runAsyncValidator=function(e){var t=this;if(this.asyncValidator){this.status="PENDING";var n=D(this.asyncValidator(this));this._asyncValidationSubscription=n.subscribe((function(n){return t.setErrors(n,{emitEvent:e})}))}},e.prototype._cancelExistingSubscription=function(){this._asyncValidationSubscription&&this._asyncValidationSubscription.unsubscribe()},e.prototype.setErrors=function(e,t){void 0===t&&(t={}),this.errors=e,this._updateControlsErrors(!1!==t.emitEvent)},e.prototype.get=function(e){return function(e,t,n){if(null==t)return null;if(Array.isArray(t)||(t=t.split(n)),Array.isArray(t)&&0===t.length)return null;var r=e;return t.forEach((function(e){r=r instanceof _e?r.controls.hasOwnProperty(e)?r.controls[e]:null:r instanceof je&&r.at(e)||null})),r}(this,e,".")},e.prototype.getError=function(e,t){var n=t?this.get(t):this;return n&&n.errors?n.errors[e]:null},e.prototype.hasError=function(e,t){return!!this.getError(e,t)},Object.defineProperty(e.prototype,"root",{get:function(){for(var e=this;e._parent;)e=e._parent;return e},enumerable:!0,configurable:!0}),e.prototype._updateControlsErrors=function(e){this.status=this._calculateStatus(),e&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(e)},e.prototype._initObservables=function(){this.valueChanges=new i.EventEmitter,this.statusChanges=new i.EventEmitter},e.prototype._calculateStatus=function(){return this._allControlsDisabled()?"DISABLED":this.errors?"INVALID":this._anyControlsHaveStatus("PENDING")?"PENDING":this._anyControlsHaveStatus("INVALID")?"INVALID":"VALID"},e.prototype._anyControlsHaveStatus=function(e){return this._anyControls((function(t){return t.status===e}))},e.prototype._anyControlsDirty=function(){return this._anyControls((function(e){return e.dirty}))},e.prototype._anyControlsTouched=function(){return this._anyControls((function(e){return e.touched}))},e.prototype._updatePristine=function(e){void 0===e&&(e={}),this.pristine=!this._anyControlsDirty(),this._parent&&!e.onlySelf&&this._parent._updatePristine(e)},e.prototype._updateTouched=function(e){void 0===e&&(e={}),this.touched=this._anyControlsTouched(),this._parent&&!e.onlySelf&&this._parent._updateTouched(e)},e.prototype._isBoxedValue=function(e){return"object"==typeof e&&null!==e&&2===Object.keys(e).length&&"value"in e&&"disabled"in e},e.prototype._registerOnCollectionChange=function(e){this._onCollectionChange=e},e.prototype._setUpdateStrategy=function(e){ve(e)&&null!=e.updateOn&&(this._updateOn=e.updateOn)},e.prototype._parentMarkedDirty=function(e){var t=this._parent&&this._parent.dirty;return!e&&t&&!this._parent._anyControlsDirty()},e}(),we=function(e){function t(t,n,r){void 0===t&&(t=null);var i=e.call(this,ye(n),be(r,n))||this;return i._onChange=[],i._applyFormState(t),i._setUpdateStrategy(n),i.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),i._initObservables(),i}return Object(r.c)(t,e),t.prototype.setValue=function(e,t){var n=this;void 0===t&&(t={}),this.value=this._pendingValue=e,this._onChange.length&&!1!==t.emitModelToViewChange&&this._onChange.forEach((function(e){return e(n.value,!1!==t.emitViewToModelChange)})),this.updateValueAndValidity(t)},t.prototype.patchValue=function(e,t){void 0===t&&(t={}),this.setValue(e,t)},t.prototype.reset=function(e,t){void 0===e&&(e=null),void 0===t&&(t={}),this._applyFormState(e),this.markAsPristine(t),this.markAsUntouched(t),this.setValue(this.value,t),this._pendingChange=!1},t.prototype._updateValue=function(){},t.prototype._anyControls=function(e){return!1},t.prototype._allControlsDisabled=function(){return this.disabled},t.prototype.registerOnChange=function(e){this._onChange.push(e)},t.prototype._clearChangeFns=function(){this._onChange=[],this._onDisabledChange=[],this._onCollectionChange=function(){}},t.prototype.registerOnDisabledChange=function(e){this._onDisabledChange.push(e)},t.prototype._forEachChild=function(e){},t.prototype._syncPendingControls=function(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange))&&(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),!0)},t.prototype._applyFormState=function(e){this._isBoxedValue(e)?(this.value=this._pendingValue=e.value,e.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=e},t}(ke),_e=function(e){function t(t,n,r){var i=e.call(this,ye(n),be(r,n))||this;return i.controls=t,i._initObservables(),i._setUpdateStrategy(n),i._setUpControls(),i.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),i}return Object(r.c)(t,e),t.prototype.registerControl=function(e,t){return this.controls[e]?this.controls[e]:(this.controls[e]=t,t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange),t)},t.prototype.addControl=function(e,t){this.registerControl(e,t),this.updateValueAndValidity(),this._onCollectionChange()},t.prototype.removeControl=function(e){this.controls[e]&&this.controls[e]._registerOnCollectionChange((function(){})),delete this.controls[e],this.updateValueAndValidity(),this._onCollectionChange()},t.prototype.setControl=function(e,t){this.controls[e]&&this.controls[e]._registerOnCollectionChange((function(){})),delete this.controls[e],t&&this.registerControl(e,t),this.updateValueAndValidity(),this._onCollectionChange()},t.prototype.contains=function(e){return this.controls.hasOwnProperty(e)&&this.controls[e].enabled},t.prototype.setValue=function(e,t){var n=this;void 0===t&&(t={}),this._checkAllValuesPresent(e),Object.keys(e).forEach((function(r){n._throwIfControlMissing(r),n.controls[r].setValue(e[r],{onlySelf:!0,emitEvent:t.emitEvent})})),this.updateValueAndValidity(t)},t.prototype.patchValue=function(e,t){var n=this;void 0===t&&(t={}),Object.keys(e).forEach((function(r){n.controls[r]&&n.controls[r].patchValue(e[r],{onlySelf:!0,emitEvent:t.emitEvent})})),this.updateValueAndValidity(t)},t.prototype.reset=function(e,t){void 0===e&&(e={}),void 0===t&&(t={}),this._forEachChild((function(n,r){n.reset(e[r],{onlySelf:!0,emitEvent:t.emitEvent})})),this._updatePristine(t),this._updateTouched(t),this.updateValueAndValidity(t)},t.prototype.getRawValue=function(){return this._reduceChildren({},(function(e,t,n){return e[n]=t instanceof we?t.value:t.getRawValue(),e}))},t.prototype._syncPendingControls=function(){var e=this._reduceChildren(!1,(function(e,t){return!!t._syncPendingControls()||e}));return e&&this.updateValueAndValidity({onlySelf:!0}),e},t.prototype._throwIfControlMissing=function(e){if(!Object.keys(this.controls).length)throw new Error("\n There are no form controls registered with this group yet. If you're using ngModel,\n you may want to check next tick (e.g. use setTimeout).\n ");if(!this.controls[e])throw new Error("Cannot find form control with name: "+e+".")},t.prototype._forEachChild=function(e){var t=this;Object.keys(this.controls).forEach((function(n){return e(t.controls[n],n)}))},t.prototype._setUpControls=function(){var e=this;this._forEachChild((function(t){t.setParent(e),t._registerOnCollectionChange(e._onCollectionChange)}))},t.prototype._updateValue=function(){this.value=this._reduceValue()},t.prototype._anyControls=function(e){var t=this,n=!1;return this._forEachChild((function(r,i){n=n||t.contains(i)&&e(r)})),n},t.prototype._reduceValue=function(){var e=this;return this._reduceChildren({},(function(t,n,r){return(n.enabled||e.disabled)&&(t[r]=n.value),t}))},t.prototype._reduceChildren=function(e,t){var n=e;return this._forEachChild((function(e,r){n=t(n,e,r)})),n},t.prototype._allControlsDisabled=function(){var e,t;try{for(var n=Object(r.h)(Object.keys(this.controls)),i=n.next();!i.done;i=n.next()){var a=i.value;if(this.controls[a].enabled)return!1}}catch(o){e={error:o}}finally{try{i&&!i.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}return Object.keys(this.controls).length>0||this.disabled},t.prototype._checkAllValuesPresent=function(e){this._forEachChild((function(t,n){if(void 0===e[n])throw new Error("Must supply a value for form control with name: '"+n+"'.")}))},t}(ke),je=function(e){function t(t,n,r){var i=e.call(this,ye(n),be(r,n))||this;return i.controls=t,i._initObservables(),i._setUpdateStrategy(n),i._setUpControls(),i.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),i}return Object(r.c)(t,e),t.prototype.at=function(e){return this.controls[e]},t.prototype.push=function(e){this.controls.push(e),this._registerControl(e),this.updateValueAndValidity(),this._onCollectionChange()},t.prototype.insert=function(e,t){this.controls.splice(e,0,t),this._registerControl(t),this.updateValueAndValidity()},t.prototype.removeAt=function(e){this.controls[e]&&this.controls[e]._registerOnCollectionChange((function(){})),this.controls.splice(e,1),this.updateValueAndValidity()},t.prototype.setControl=function(e,t){this.controls[e]&&this.controls[e]._registerOnCollectionChange((function(){})),this.controls.splice(e,1),t&&(this.controls.splice(e,0,t),this._registerControl(t)),this.updateValueAndValidity(),this._onCollectionChange()},Object.defineProperty(t.prototype,"length",{get:function(){return this.controls.length},enumerable:!0,configurable:!0}),t.prototype.setValue=function(e,t){var n=this;void 0===t&&(t={}),this._checkAllValuesPresent(e),e.forEach((function(e,r){n._throwIfControlMissing(r),n.at(r).setValue(e,{onlySelf:!0,emitEvent:t.emitEvent})})),this.updateValueAndValidity(t)},t.prototype.patchValue=function(e,t){var n=this;void 0===t&&(t={}),e.forEach((function(e,r){n.at(r)&&n.at(r).patchValue(e,{onlySelf:!0,emitEvent:t.emitEvent})})),this.updateValueAndValidity(t)},t.prototype.reset=function(e,t){void 0===e&&(e=[]),void 0===t&&(t={}),this._forEachChild((function(n,r){n.reset(e[r],{onlySelf:!0,emitEvent:t.emitEvent})})),this._updatePristine(t),this._updateTouched(t),this.updateValueAndValidity(t)},t.prototype.getRawValue=function(){return this.controls.map((function(e){return e instanceof we?e.value:e.getRawValue()}))},t.prototype.clear=function(){this.controls.length<1||(this._forEachChild((function(e){return e._registerOnCollectionChange((function(){}))})),this.controls.splice(0),this.updateValueAndValidity())},t.prototype._syncPendingControls=function(){var e=this.controls.reduce((function(e,t){return!!t._syncPendingControls()||e}),!1);return e&&this.updateValueAndValidity({onlySelf:!0}),e},t.prototype._throwIfControlMissing=function(e){if(!this.controls.length)throw new Error("\n There are no form controls registered with this array yet. If you're using ngModel,\n you may want to check next tick (e.g. use setTimeout).\n ");if(!this.at(e))throw new Error("Cannot find form control at index "+e)},t.prototype._forEachChild=function(e){this.controls.forEach((function(t,n){e(t,n)}))},t.prototype._updateValue=function(){var e=this;this.value=this.controls.filter((function(t){return t.enabled||e.disabled})).map((function(e){return e.value}))},t.prototype._anyControls=function(e){return this.controls.some((function(t){return t.enabled&&e(t)}))},t.prototype._setUpControls=function(){var e=this;this._forEachChild((function(t){return e._registerControl(t)}))},t.prototype._checkAllValuesPresent=function(e){this._forEachChild((function(t,n){if(void 0===e[n])throw new Error("Must supply a value for form control at index: "+n+".")}))},t.prototype._allControlsDisabled=function(){var e,t;try{for(var n=Object(r.h)(this.controls),i=n.next();!i.done;i=n.next()){if(i.value.enabled)return!1}}catch(a){e={error:a}}finally{try{i&&!i.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}return this.controls.length>0||this.disabled},t.prototype._registerControl=function(e){e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange)},t}(ke),Ce={provide:v,useExisting:Object(i.forwardRef)((function(){return Ee}))},xe=Promise.resolve(null),Ee=function(e){function t(t,n){var r=e.call(this)||this;return r.submitted=!1,r._directives=[],r.ngSubmit=new i.EventEmitter,r.form=new _e({},ce(t),ue(n)),r}return Object(r.c)(t,e),t.prototype.ngAfterViewInit=function(){this._setUpdateStrategy()},Object.defineProperty(t.prototype,"formDirective",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"controls",{get:function(){return this.form.controls},enumerable:!0,configurable:!0}),t.prototype.addControl=function(e){var t=this;xe.then((function(){var n=t._findContainer(e.path);e.control=n.registerControl(e.name,e.control),ie(e.control,e),e.control.updateValueAndValidity({emitEvent:!1}),t._directives.push(e)}))},t.prototype.getControl=function(e){return this.form.get(e.path)},t.prototype.removeControl=function(e){var t=this;xe.then((function(){var n=t._findContainer(e.path);n&&n.removeControl(e.name),me(t._directives,e)}))},t.prototype.addFormGroup=function(e){var t=this;xe.then((function(){var n=t._findContainer(e.path),r=new _e({});oe(r,e),n.registerControl(e.name,r),r.updateValueAndValidity({emitEvent:!1})}))},t.prototype.removeFormGroup=function(e){var t=this;xe.then((function(){var n=t._findContainer(e.path);n&&n.removeControl(e.name)}))},t.prototype.getFormGroup=function(e){return this.form.get(e.path)},t.prototype.updateModel=function(e,t){var n=this;xe.then((function(){n.form.get(e.path).setValue(t)}))},t.prototype.setValue=function(e){this.control.setValue(e)},t.prototype.onSubmit=function(e){return this.submitted=!0,pe(this.form,this._directives),this.ngSubmit.emit(e),!1},t.prototype.onReset=function(){this.resetForm()},t.prototype.resetForm=function(e){void 0===e&&(e=void 0),this.form.reset(e),this.submitted=!1},t.prototype._setUpdateStrategy=function(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)},t.prototype._findContainer=function(e){return e.pop(),e.length?this.form.get(e):this.form},Object(r.b)([Object(i.Input)("ngFormOptions"),Object(r.d)("design:type",Object)],t.prototype,"options",void 0),(t=Object(r.b)([Object(r.e)(0,Object(i.Optional)()),Object(r.e)(0,Object(i.Self)()),Object(r.e)(0,Object(i.Inject)(S)),Object(r.e)(1,Object(i.Optional)()),Object(r.e)(1,Object(i.Self)()),Object(r.e)(1,Object(i.Inject)(T)),Object(r.d)("design:paramtypes",[Array,Array])],t)).ɵfac=function(e){return new(e||t)(i["ɵɵdirectiveInject"](S,10),i["ɵɵdirectiveInject"](T,10))},t.ɵdir=i["ɵɵdefineDirective"]({type:t,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(e,t){1&e&&i["ɵɵlistener"]("submit",(function(e){return t.onSubmit(e)}))("reset",(function(){return t.onReset()}))},inputs:{options:["ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[i["ɵɵProvidersFeature"]([Ce]),i["ɵɵInheritDefinitionFeature"]]}),t}(v),Se=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}Object(r.c)(t,e),t.prototype.ngOnInit=function(){this._checkParentType(),this.formDirective.addFormGroup(this)},t.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeFormGroup(this)},Object.defineProperty(t.prototype,"control",{get:function(){return this.formDirective.getFormGroup(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"path",{get:function(){return re(null==this.name?this.name:this.name.toString(),this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"validator",{get:function(){return ce(this._validators)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"asyncValidator",{get:function(){return ue(this._asyncValidators)},enumerable:!0,configurable:!0}),t.prototype._checkParentType=function(){},t.ɵfac=function(e){return n(e||t)},t.ɵdir=i["ɵɵdefineDirective"]({type:t,features:[i["ɵɵInheritDefinitionFeature"]]});var n=i["ɵɵgetInheritedFactory"](t);return t}(v),Te=function(){function e(){}return e.modelParentException=function(){throw new Error('\n ngModel cannot be used to register form controls with a parent formGroup directive. Try using\n formGroup\'s partner directive "formControlName" instead. Example:\n\n '+V+"\n\n Or, if you'd like to avoid registering this form control, indicate that it's standalone in ngModelOptions:\n\n Example:\n\n "+G)},e.formGroupNameException=function(){throw new Error("\n ngModel cannot be used to register form controls with a parent formGroupName or formArrayName directive.\n\n Option 1: Use formControlName instead of ngModel (reactive strategy):\n\n "+H+"\n\n Option 2: Update ngModel's parent be ngModelGroup (template-driven strategy):\n\n "+W)},e.missingNameException=function(){throw new Error('If ngModel is used within a form tag, either the name attribute must be set or the form\n control must be defined as \'standalone\' in ngModelOptions.\n\n Example 1: \n Example 2: ')},e.modelGroupParentException=function(){throw new Error("\n ngModelGroup cannot be used with a parent formGroup directive.\n\n Option 1: Use formGroupName instead of ngModelGroup (reactive strategy):\n\n "+H+"\n\n Option 2: Use a regular form tag instead of the formGroup directive (template-driven strategy):\n\n "+W)},e}(),Oe={provide:v,useExisting:Object(i.forwardRef)((function(){return ze}))},ze=function(e){function t(t,n,r){var i=e.call(this)||this;return i._parent=t,i._validators=n,i._asyncValidators=r,i}var n;return Object(r.c)(t,e),n=t,t.prototype._checkParentType=function(){this._parent instanceof n||this._parent instanceof Ee||Te.modelGroupParentException()},Object(r.b)([Object(i.Input)("ngModelGroup"),Object(r.d)("design:type",String)],t.prototype,"name",void 0),(t=n=Object(r.b)([Object(r.e)(0,Object(i.Host)()),Object(r.e)(0,Object(i.SkipSelf)()),Object(r.e)(1,Object(i.Optional)()),Object(r.e)(1,Object(i.Self)()),Object(r.e)(1,Object(i.Inject)(S)),Object(r.e)(2,Object(i.Optional)()),Object(r.e)(2,Object(i.Self)()),Object(r.e)(2,Object(i.Inject)(T)),Object(r.d)("design:paramtypes",[v,Array,Array])],t)).ɵfac=function(e){return new(e||t)(i["ɵɵdirectiveInject"](v,5),i["ɵɵdirectiveInject"](S,10),i["ɵɵdirectiveInject"](T,10))},t.ɵdir=i["ɵɵdefineDirective"]({type:t,selectors:[["","ngModelGroup",""]],inputs:{name:["ngModelGroup","name"]},exportAs:["ngModelGroup"],features:[i["ɵɵProvidersFeature"]([Oe]),i["ɵɵInheritDefinitionFeature"]]}),t}(Se),Ie={provide:w,useExisting:Object(i.forwardRef)((function(){return Ae}))},De=Promise.resolve(null),Ae=function(e){function t(t,n,r,a){var o=e.call(this)||this;return o.control=new we,o._registered=!1,o.update=new i.EventEmitter,o._parent=t,o._rawValidators=n||[],o._rawAsyncValidators=r||[],o.valueAccessor=fe(o,a),o}return Object(r.c)(t,e),t.prototype.ngOnChanges=function(e){this._checkForErrors(),this._registered||this._setUpControl(),"isDisabled"in e&&this._updateDisabled(e),de(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)},t.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeControl(this)},Object.defineProperty(t.prototype,"path",{get:function(){return this._parent?re(this.name,this._parent):[this.name]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"validator",{get:function(){return ce(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"asyncValidator",{get:function(){return ue(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),t.prototype.viewToModelUpdate=function(e){this.viewModel=e,this.update.emit(e)},t.prototype._setUpControl=function(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0},t.prototype._setUpdateStrategy=function(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)},t.prototype._isStandalone=function(){return!this._parent||!(!this.options||!this.options.standalone)},t.prototype._setUpStandalone=function(){ie(this.control,this),this.control.updateValueAndValidity({emitEvent:!1})},t.prototype._checkForErrors=function(){this._isStandalone()||this._checkParentType(),this._checkName()},t.prototype._checkParentType=function(){!(this._parent instanceof ze)&&this._parent instanceof Se?Te.formGroupNameException():this._parent instanceof ze||this._parent instanceof Ee||Te.modelParentException()},t.prototype._checkName=function(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()||this.name||Te.missingNameException()},t.prototype._updateValue=function(e){var t=this;De.then((function(){t.control.setValue(e,{emitViewToModelChange:!1})}))},t.prototype._updateDisabled=function(e){var t=this,n=e.isDisabled.currentValue,r=""===n||n&&"false"!==n;De.then((function(){r&&!t.control.disabled?t.control.disable():!r&&t.control.disabled&&t.control.enable()}))},Object(r.b)([Object(i.Input)(),Object(r.d)("design:type",String)],t.prototype,"name",void 0),Object(r.b)([Object(i.Input)("disabled"),Object(r.d)("design:type",Boolean)],t.prototype,"isDisabled",void 0),Object(r.b)([Object(i.Input)("ngModel"),Object(r.d)("design:type",Object)],t.prototype,"model",void 0),Object(r.b)([Object(i.Input)("ngModelOptions"),Object(r.d)("design:type",Object)],t.prototype,"options",void 0),Object(r.b)([Object(i.Output)("ngModelChange"),Object(r.d)("design:type",Object)],t.prototype,"update",void 0),(t=Object(r.b)([Object(r.e)(0,Object(i.Optional)()),Object(r.e)(0,Object(i.Host)()),Object(r.e)(1,Object(i.Optional)()),Object(r.e)(1,Object(i.Self)()),Object(r.e)(1,Object(i.Inject)(S)),Object(r.e)(2,Object(i.Optional)()),Object(r.e)(2,Object(i.Self)()),Object(r.e)(2,Object(i.Inject)(T)),Object(r.e)(3,Object(i.Optional)()),Object(r.e)(3,Object(i.Self)()),Object(r.e)(3,Object(i.Inject)(h)),Object(r.d)("design:paramtypes",[v,Array,Array,Array])],t)).ɵfac=function(e){return new(e||t)(i["ɵɵdirectiveInject"](v,9),i["ɵɵdirectiveInject"](S,10),i["ɵɵdirectiveInject"](T,10),i["ɵɵdirectiveInject"](h,10))},t.ɵdir=i["ɵɵdefineDirective"]({type:t,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:["disabled","isDisabled"],model:["ngModel","model"],options:["ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[i["ɵɵProvidersFeature"]([Ie]),i["ɵɵInheritDefinitionFeature"],i["ɵɵNgOnChangesFeature"]]}),t}(w),Ne=function(){function e(){}return e.ɵfac=function(t){return new(t||e)},e.ɵdir=i["ɵɵdefineDirective"]({type:e,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]}),e}(),Pe=new i.InjectionToken("NgModelWithFormControlWarning"),Re={provide:w,useExisting:Object(i.forwardRef)((function(){return Me}))},Me=function(e){function t(t,n,r,a){var o=e.call(this)||this;return o._ngModelWarningConfig=a,o.update=new i.EventEmitter,o._ngModelWarningSent=!1,o._rawValidators=t||[],o._rawAsyncValidators=n||[],o.valueAccessor=fe(o,r),o}var n;return Object(r.c)(t,e),n=t,Object.defineProperty(t.prototype,"isDisabled",{set:function(e){Q.disabledAttrWarning()},enumerable:!0,configurable:!0}),t.prototype.ngOnChanges=function(e){this._isControlChanged(e)&&(ie(this.form,this),this.control.disabled&&this.valueAccessor.setDisabledState&&this.valueAccessor.setDisabledState(!0),this.form.updateValueAndValidity({emitEvent:!1})),de(e,this.viewModel)&&(ge("formControl",n,this,this._ngModelWarningConfig),this.form.setValue(this.model),this.viewModel=this.model)},Object.defineProperty(t.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"validator",{get:function(){return ce(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"asyncValidator",{get:function(){return ue(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),t.prototype.viewToModelUpdate=function(e){this.viewModel=e,this.update.emit(e)},t.prototype._isControlChanged=function(e){return e.hasOwnProperty("form")},t._ngModelWarningSentOnce=!1,Object(r.b)([Object(i.Input)("formControl"),Object(r.d)("design:type",we)],t.prototype,"form",void 0),Object(r.b)([Object(i.Input)("disabled"),Object(r.d)("design:type",Boolean),Object(r.d)("design:paramtypes",[Boolean])],t.prototype,"isDisabled",null),Object(r.b)([Object(i.Input)("ngModel"),Object(r.d)("design:type",Object)],t.prototype,"model",void 0),Object(r.b)([Object(i.Output)("ngModelChange"),Object(r.d)("design:type",Object)],t.prototype,"update",void 0),(t=n=Object(r.b)([Object(r.e)(0,Object(i.Optional)()),Object(r.e)(0,Object(i.Self)()),Object(r.e)(0,Object(i.Inject)(S)),Object(r.e)(1,Object(i.Optional)()),Object(r.e)(1,Object(i.Self)()),Object(r.e)(1,Object(i.Inject)(T)),Object(r.e)(2,Object(i.Optional)()),Object(r.e)(2,Object(i.Self)()),Object(r.e)(2,Object(i.Inject)(h)),Object(r.e)(3,Object(i.Optional)()),Object(r.e)(3,Object(i.Inject)(Pe)),Object(r.d)("design:paramtypes",[Array,Array,Array,Object])],t)).ɵfac=function(e){return new(e||t)(i["ɵɵdirectiveInject"](S,10),i["ɵɵdirectiveInject"](T,10),i["ɵɵdirectiveInject"](h,10),i["ɵɵdirectiveInject"](Pe,8))},t.ɵdir=i["ɵɵdefineDirective"]({type:t,selectors:[["","formControl",""]],inputs:{isDisabled:["disabled","isDisabled"],form:["formControl","form"],model:["ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],features:[i["ɵɵProvidersFeature"]([Re]),i["ɵɵInheritDefinitionFeature"],i["ɵɵNgOnChangesFeature"]]}),t}(w),qe={provide:v,useExisting:Object(i.forwardRef)((function(){return Be}))},Be=function(e){function t(t,n){var r=e.call(this)||this;return r._validators=t,r._asyncValidators=n,r.submitted=!1,r.directives=[],r.form=null,r.ngSubmit=new i.EventEmitter,r}return Object(r.c)(t,e),t.prototype.ngOnChanges=function(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations())},Object.defineProperty(t.prototype,"formDirective",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),t.prototype.addControl=function(e){var t=this.form.get(e.path);return ie(t,e),t.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),t},t.prototype.getControl=function(e){return this.form.get(e.path)},t.prototype.removeControl=function(e){me(this.directives,e)},t.prototype.addFormGroup=function(e){var t=this.form.get(e.path);oe(t,e),t.updateValueAndValidity({emitEvent:!1})},t.prototype.removeFormGroup=function(e){},t.prototype.getFormGroup=function(e){return this.form.get(e.path)},t.prototype.addFormArray=function(e){var t=this.form.get(e.path);oe(t,e),t.updateValueAndValidity({emitEvent:!1})},t.prototype.removeFormArray=function(e){},t.prototype.getFormArray=function(e){return this.form.get(e.path)},t.prototype.updateModel=function(e,t){this.form.get(e.path).setValue(t)},t.prototype.onSubmit=function(e){return this.submitted=!0,pe(this.form,this.directives),this.ngSubmit.emit(e),!1},t.prototype.onReset=function(){this.resetForm()},t.prototype.resetForm=function(e){void 0===e&&(e=void 0),this.form.reset(e),this.submitted=!1},t.prototype._updateDomValue=function(){var e=this;this.directives.forEach((function(t){var n=e.form.get(t.path);t.control!==n&&(!function(e,t){t.valueAccessor.registerOnChange((function(){return se(t)})),t.valueAccessor.registerOnTouched((function(){return se(t)})),t._rawValidators.forEach((function(e){e.registerOnValidatorChange&&e.registerOnValidatorChange(null)})),t._rawAsyncValidators.forEach((function(e){e.registerOnValidatorChange&&e.registerOnValidatorChange(null)})),e&&e._clearChangeFns()}(t.control,t),n&&ie(n,t),t.control=n)})),this.form._updateTreeValidity({emitEvent:!1})},t.prototype._updateRegistrations=function(){var e=this;this.form._registerOnCollectionChange((function(){return e._updateDomValue()})),this._oldForm&&this._oldForm._registerOnCollectionChange((function(){})),this._oldForm=this.form},t.prototype._updateValidators=function(){var e=ce(this._validators);this.form.validator=z.compose([this.form.validator,e]);var t=ue(this._asyncValidators);this.form.asyncValidator=z.composeAsync([this.form.asyncValidator,t])},t.prototype._checkFormPresent=function(){this.form||Q.missingFormException()},Object(r.b)([Object(i.Input)("formGroup"),Object(r.d)("design:type",_e)],t.prototype,"form",void 0),Object(r.b)([Object(i.Output)(),Object(r.d)("design:type",Object)],t.prototype,"ngSubmit",void 0),(t=Object(r.b)([Object(r.e)(0,Object(i.Optional)()),Object(r.e)(0,Object(i.Self)()),Object(r.e)(0,Object(i.Inject)(S)),Object(r.e)(1,Object(i.Optional)()),Object(r.e)(1,Object(i.Self)()),Object(r.e)(1,Object(i.Inject)(T)),Object(r.d)("design:paramtypes",[Array,Array])],t)).ɵfac=function(e){return new(e||t)(i["ɵɵdirectiveInject"](S,10),i["ɵɵdirectiveInject"](T,10))},t.ɵdir=i["ɵɵdefineDirective"]({type:t,selectors:[["","formGroup",""]],hostBindings:function(e,t){1&e&&i["ɵɵlistener"]("submit",(function(e){return t.onSubmit(e)}))("reset",(function(){return t.onReset()}))},inputs:{form:["formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[i["ɵɵProvidersFeature"]([qe]),i["ɵɵInheritDefinitionFeature"],i["ɵɵNgOnChangesFeature"]]}),t}(v),Le={provide:v,useExisting:Object(i.forwardRef)((function(){return Fe}))},Fe=function(e){function t(t,n,r){var i=e.call(this)||this;return i._parent=t,i._validators=n,i._asyncValidators=r,i}return Object(r.c)(t,e),t.prototype._checkParentType=function(){He(this._parent)&&Q.groupParentException()},Object(r.b)([Object(i.Input)("formGroupName"),Object(r.d)("design:type",Object)],t.prototype,"name",void 0),(t=Object(r.b)([Object(r.e)(0,Object(i.Optional)()),Object(r.e)(0,Object(i.Host)()),Object(r.e)(0,Object(i.SkipSelf)()),Object(r.e)(1,Object(i.Optional)()),Object(r.e)(1,Object(i.Self)()),Object(r.e)(1,Object(i.Inject)(S)),Object(r.e)(2,Object(i.Optional)()),Object(r.e)(2,Object(i.Self)()),Object(r.e)(2,Object(i.Inject)(T)),Object(r.d)("design:paramtypes",[v,Array,Array])],t)).ɵfac=function(e){return new(e||t)(i["ɵɵdirectiveInject"](v,13),i["ɵɵdirectiveInject"](S,10),i["ɵɵdirectiveInject"](T,10))},t.ɵdir=i["ɵɵdefineDirective"]({type:t,selectors:[["","formGroupName",""]],inputs:{name:["formGroupName","name"]},features:[i["ɵɵProvidersFeature"]([Le]),i["ɵɵInheritDefinitionFeature"]]}),t}(Se),Ue={provide:v,useExisting:Object(i.forwardRef)((function(){return Ve}))},Ve=function(e){function t(t,n,r){var i=e.call(this)||this;return i._parent=t,i._validators=n,i._asyncValidators=r,i}return Object(r.c)(t,e),t.prototype.ngOnInit=function(){this._checkParentType(),this.formDirective.addFormArray(this)},t.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeFormArray(this)},Object.defineProperty(t.prototype,"control",{get:function(){return this.formDirective.getFormArray(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"path",{get:function(){return re(null==this.name?this.name:this.name.toString(),this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"validator",{get:function(){return ce(this._validators)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"asyncValidator",{get:function(){return ue(this._asyncValidators)},enumerable:!0,configurable:!0}),t.prototype._checkParentType=function(){He(this._parent)&&Q.arrayParentException()},Object(r.b)([Object(i.Input)("formArrayName"),Object(r.d)("design:type",Object)],t.prototype,"name",void 0),(t=Object(r.b)([Object(r.e)(0,Object(i.Optional)()),Object(r.e)(0,Object(i.Host)()),Object(r.e)(0,Object(i.SkipSelf)()),Object(r.e)(1,Object(i.Optional)()),Object(r.e)(1,Object(i.Self)()),Object(r.e)(1,Object(i.Inject)(S)),Object(r.e)(2,Object(i.Optional)()),Object(r.e)(2,Object(i.Self)()),Object(r.e)(2,Object(i.Inject)(T)),Object(r.d)("design:paramtypes",[v,Array,Array])],t)).ɵfac=function(e){return new(e||t)(i["ɵɵdirectiveInject"](v,13),i["ɵɵdirectiveInject"](S,10),i["ɵɵdirectiveInject"](T,10))},t.ɵdir=i["ɵɵdefineDirective"]({type:t,selectors:[["","formArrayName",""]],inputs:{name:["formArrayName","name"]},features:[i["ɵɵProvidersFeature"]([Ue]),i["ɵɵInheritDefinitionFeature"]]}),t}(v);function He(e){return!(e instanceof Fe||e instanceof Be||e instanceof Ve)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var Ke={provide:w,useExisting:Object(i.forwardRef)((function(){return We}))},We=function(e){function t(t,n,r,a,o){var s=e.call(this)||this;return s._ngModelWarningConfig=o,s._added=!1,s.update=new i.EventEmitter,s._ngModelWarningSent=!1,s._parent=t,s._rawValidators=n||[],s._rawAsyncValidators=r||[],s.valueAccessor=fe(s,a),s}var n;return Object(r.c)(t,e),n=t,Object.defineProperty(t.prototype,"isDisabled",{set:function(e){Q.disabledAttrWarning()},enumerable:!0,configurable:!0}),t.prototype.ngOnChanges=function(e){this._added||this._setUpControl(),de(e,this.viewModel)&&(ge("formControlName",n,this,this._ngModelWarningConfig),this.viewModel=this.model,this.formDirective.updateModel(this,this.model))},t.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeControl(this)},t.prototype.viewToModelUpdate=function(e){this.viewModel=e,this.update.emit(e)},Object.defineProperty(t.prototype,"path",{get:function(){return re(null==this.name?this.name:this.name.toString(),this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"validator",{get:function(){return ce(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"asyncValidator",{get:function(){return ue(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),t.prototype._checkParentType=function(){!(this._parent instanceof Fe)&&this._parent instanceof Se?Q.ngModelGroupException():this._parent instanceof Fe||this._parent instanceof Be||this._parent instanceof Ve||Q.controlParentException()},t.prototype._setUpControl=function(){this._checkParentType(),this.control=this.formDirective.addControl(this),this.control.disabled&&this.valueAccessor.setDisabledState&&this.valueAccessor.setDisabledState(!0),this._added=!0},t._ngModelWarningSentOnce=!1,Object(r.b)([Object(i.Input)("formControlName"),Object(r.d)("design:type",Object)],t.prototype,"name",void 0),Object(r.b)([Object(i.Input)("disabled"),Object(r.d)("design:type",Boolean),Object(r.d)("design:paramtypes",[Boolean])],t.prototype,"isDisabled",null),Object(r.b)([Object(i.Input)("ngModel"),Object(r.d)("design:type",Object)],t.prototype,"model",void 0),Object(r.b)([Object(i.Output)("ngModelChange"),Object(r.d)("design:type",Object)],t.prototype,"update",void 0),(t=n=Object(r.b)([Object(r.e)(0,Object(i.Optional)()),Object(r.e)(0,Object(i.Host)()),Object(r.e)(0,Object(i.SkipSelf)()),Object(r.e)(1,Object(i.Optional)()),Object(r.e)(1,Object(i.Self)()),Object(r.e)(1,Object(i.Inject)(S)),Object(r.e)(2,Object(i.Optional)()),Object(r.e)(2,Object(i.Self)()),Object(r.e)(2,Object(i.Inject)(T)),Object(r.e)(3,Object(i.Optional)()),Object(r.e)(3,Object(i.Self)()),Object(r.e)(3,Object(i.Inject)(h)),Object(r.e)(4,Object(i.Optional)()),Object(r.e)(4,Object(i.Inject)(Pe)),Object(r.d)("design:paramtypes",[v,Array,Array,Array,Object])],t)).ɵfac=function(e){return new(e||t)(i["ɵɵdirectiveInject"](v,13),i["ɵɵdirectiveInject"](S,10),i["ɵɵdirectiveInject"](T,10),i["ɵɵdirectiveInject"](h,10),i["ɵɵdirectiveInject"](Pe,8))},t.ɵdir=i["ɵɵdefineDirective"]({type:t,selectors:[["","formControlName",""]],inputs:{isDisabled:["disabled","isDisabled"],name:["formControlName","name"],model:["ngModel","model"]},outputs:{update:"ngModelChange"},features:[i["ɵɵProvidersFeature"]([Ke]),i["ɵɵInheritDefinitionFeature"],i["ɵɵNgOnChangesFeature"]]}),t}(w),Ge={provide:S,useExisting:Object(i.forwardRef)((function(){return $e})),multi:!0},Qe={provide:S,useExisting:Object(i.forwardRef)((function(){return Ye})),multi:!0},$e=function(){function e(){}return Object.defineProperty(e.prototype,"required",{get:function(){return this._required},set:function(e){this._required=null!=e&&!1!==e&&""+e!="false",this._onChange&&this._onChange()},enumerable:!0,configurable:!0}),e.prototype.validate=function(e){return this.required?z.required(e):null},e.prototype.registerOnValidatorChange=function(e){this._onChange=e},Object(r.b)([Object(i.Input)(),Object(r.d)("design:type",Object),Object(r.d)("design:paramtypes",[Object])],e.prototype,"required",null),e.ɵfac=function(t){return new(t||e)},e.ɵdir=i["ɵɵdefineDirective"]({type:e,selectors:[["","required","","formControlName","",3,"type","checkbox"],["","required","","formControl","",3,"type","checkbox"],["","required","","ngModel","",3,"type","checkbox"]],hostVars:1,hostBindings:function(e,t){2&e&&i["ɵɵattribute"]("required",t.required?"":null)},inputs:{required:"required"},features:[i["ɵɵProvidersFeature"]([Ge])]}),e}(),Ye=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}Object(r.c)(t,e),t.prototype.validate=function(e){return this.required?z.requiredTrue(e):null},t.ɵfac=function(e){return n(e||t)},t.ɵdir=i["ɵɵdefineDirective"]({type:t,selectors:[["input","type","checkbox","required","","formControlName",""],["input","type","checkbox","required","","formControl",""],["input","type","checkbox","required","","ngModel",""]],hostVars:1,hostBindings:function(e,t){2&e&&i["ɵɵattribute"]("required",t.required?"":null)},features:[i["ɵɵProvidersFeature"]([Qe]),i["ɵɵInheritDefinitionFeature"]]});var n=i["ɵɵgetInheritedFactory"](t);return t}($e),Ze={provide:S,useExisting:Object(i.forwardRef)((function(){return Je})),multi:!0},Je=function(){function e(){}return Object.defineProperty(e.prototype,"email",{set:function(e){this._enabled=""===e||!0===e||"true"===e,this._onChange&&this._onChange()},enumerable:!0,configurable:!0}),e.prototype.validate=function(e){return this._enabled?z.email(e):null},e.prototype.registerOnValidatorChange=function(e){this._onChange=e},Object(r.b)([Object(i.Input)(),Object(r.d)("design:type",Object),Object(r.d)("design:paramtypes",[Object])],e.prototype,"email",null),e.ɵfac=function(t){return new(t||e)},e.ɵdir=i["ɵɵdefineDirective"]({type:e,selectors:[["","email","","formControlName",""],["","email","","formControl",""],["","email","","ngModel",""]],inputs:{email:"email"},features:[i["ɵɵProvidersFeature"]([Ze])]}),e}(),Xe={provide:S,useExisting:Object(i.forwardRef)((function(){return et})),multi:!0},et=function(){function e(){}return e.prototype.ngOnChanges=function(e){"minlength"in e&&(this._createValidator(),this._onChange&&this._onChange())},e.prototype.validate=function(e){return null==this.minlength?null:this._validator(e)},e.prototype.registerOnValidatorChange=function(e){this._onChange=e},e.prototype._createValidator=function(){this._validator=z.minLength("number"==typeof this.minlength?this.minlength:parseInt(this.minlength,10))},Object(r.b)([Object(i.Input)(),Object(r.d)("design:type",Object)],e.prototype,"minlength",void 0),e.ɵfac=function(t){return new(t||e)},e.ɵdir=i["ɵɵdefineDirective"]({type:e,selectors:[["","minlength","","formControlName",""],["","minlength","","formControl",""],["","minlength","","ngModel",""]],hostVars:1,hostBindings:function(e,t){2&e&&i["ɵɵattribute"]("minlength",t.minlength?t.minlength:null)},inputs:{minlength:"minlength"},features:[i["ɵɵProvidersFeature"]([Xe]),i["ɵɵNgOnChangesFeature"]]}),e}(),tt={provide:S,useExisting:Object(i.forwardRef)((function(){return nt})),multi:!0},nt=function(){function e(){}return e.prototype.ngOnChanges=function(e){"maxlength"in e&&(this._createValidator(),this._onChange&&this._onChange())},e.prototype.validate=function(e){return null!=this.maxlength?this._validator(e):null},e.prototype.registerOnValidatorChange=function(e){this._onChange=e},e.prototype._createValidator=function(){this._validator=z.maxLength("number"==typeof this.maxlength?this.maxlength:parseInt(this.maxlength,10))},Object(r.b)([Object(i.Input)(),Object(r.d)("design:type",Object)],e.prototype,"maxlength",void 0),e.ɵfac=function(t){return new(t||e)},e.ɵdir=i["ɵɵdefineDirective"]({type:e,selectors:[["","maxlength","","formControlName",""],["","maxlength","","formControl",""],["","maxlength","","ngModel",""]],hostVars:1,hostBindings:function(e,t){2&e&&i["ɵɵattribute"]("maxlength",t.maxlength?t.maxlength:null)},inputs:{maxlength:"maxlength"},features:[i["ɵɵProvidersFeature"]([tt]),i["ɵɵNgOnChangesFeature"]]}),e}(),rt={provide:S,useExisting:Object(i.forwardRef)((function(){return it})),multi:!0},it=function(){function e(){}return e.prototype.ngOnChanges=function(e){"pattern"in e&&(this._createValidator(),this._onChange&&this._onChange())},e.prototype.validate=function(e){return this._validator(e)},e.prototype.registerOnValidatorChange=function(e){this._onChange=e},e.prototype._createValidator=function(){this._validator=z.pattern(this.pattern)},Object(r.b)([Object(i.Input)(),Object(r.d)("design:type",Object)],e.prototype,"pattern",void 0),e.ɵfac=function(t){return new(t||e)},e.ɵdir=i["ɵɵdefineDirective"]({type:e,selectors:[["","pattern","","formControlName",""],["","pattern","","formControl",""],["","pattern","","ngModel",""]],hostVars:1,hostBindings:function(e,t){2&e&&i["ɵɵattribute"]("pattern",t.pattern?t.pattern:null)},inputs:{pattern:"pattern"},features:[i["ɵɵProvidersFeature"]([rt]),i["ɵɵNgOnChangesFeature"]]}),e}(),at=[Ne,J,ne,y,M,U,f,Z,te,L,C,x,$e,et,nt,it,Ye,Je],ot=[Ae,ze,Ee],st=[Me,Be,We,Fe,Ve],lt=function(){function e(){}return e.ɵmod=i["ɵɵdefineNgModule"]({type:e}),e.ɵinj=i["ɵɵdefineInjector"]({factory:function(t){return new(t||e)}}),("undefined"==typeof ngJitMode||ngJitMode)&&i["ɵɵsetNgModuleScope"](e,{declarations:[Ne,J,ne,y,M,U,f,Z,te,L,C,x,$e,et,nt,it,Ye,Je],exports:[Ne,J,ne,y,M,U,f,Z,te,L,C,x,$e,et,nt,it,Ye,Je]}),e}();var ct=function(){function e(){}return e.prototype.group=function(e,t){void 0===t&&(t=null);var n=this._reduceControls(e),r=null,i=null,a=void 0;return null!=t&&(! +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +function(e){return void 0!==e.asyncValidators||void 0!==e.validators||void 0!==e.updateOn}(t)?(r=null!=t.validator?t.validator:null,i=null!=t.asyncValidator?t.asyncValidator:null):(r=null!=t.validators?t.validators:null,i=null!=t.asyncValidators?t.asyncValidators:null,a=null!=t.updateOn?t.updateOn:void 0)),new _e(n,{asyncValidators:i,updateOn:a,validators:r})},e.prototype.control=function(e,t,n){return new we(e,t,n)},e.prototype.array=function(e,t,n){var r=this,i=e.map((function(e){return r._createControl(e)}));return new je(i,t,n)},e.prototype._reduceControls=function(e){var t=this,n={};return Object.keys(e).forEach((function(r){n[r]=t._createControl(e[r])})),n},e.prototype._createControl=function(e){if(e instanceof we||e instanceof _e||e instanceof je)return e;if(Array.isArray(e)){var t=e[0],n=e.length>1?e[1]:null,r=e.length>2?e[2]:null;return this.control(t,n,r)}return this.control(e)},e.ɵfac=function(t){return new(t||e)},e.ɵprov=i["ɵɵdefineInjectable"]({token:e,factory:function(t){return e.ɵfac(t)}}),e}(),ut=new i.Version("9.1.12"),dt=function(){function e(){}return e.ɵmod=i["ɵɵdefineNgModule"]({type:e}),e.ɵinj=i["ɵɵdefineInjector"]({factory:function(t){return new(t||e)},providers:[B],imports:[lt]}),("undefined"==typeof ngJitMode||ngJitMode)&&i["ɵɵsetNgModuleScope"](e,{declarations:[Ae,ze,Ee],exports:[lt,Ae,ze,Ee]}),e}(),ht=function(){function e(){}var t;return t=e,e.withConfig=function(e){return{ngModule:t,providers:[{provide:Pe,useValue:e.warnOnNgModelWithFormControl}]}},e.ɵmod=i["ɵɵdefineNgModule"]({type:e}),e.ɵinj=i["ɵɵdefineInjector"]({factory:function(t){return new(t||e)},providers:[ct,B],imports:[lt]}),("undefined"==typeof ngJitMode||ngJitMode)&&i["ɵɵsetNgModuleScope"](e,{declarations:[Me,Be,We,Fe,Ve],exports:[lt,Me,Be,We,Fe,Ve]}),e}(); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */},,function(e,t,n){var r=n(22);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},,,,,function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t){e.exports=function(e){try{return!!e()}catch(t){return!0}}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},,,,,function(e,t,n){var r=n(131)("wks"),i=n(89),a=n(20).Symbol,o="function"==typeof a;(e.exports=function(e){return r[e]||(r[e]=o&&a[e]||(o?a:i)("Symbol."+e))}).store=r},function(e,t,n){"use strict";n.d(t,"a",(function(){return u}));var r=n(1),i=n(146),a=n(219),o=n(54),s=n(197),l=n(108),c=n(149),u=function(e){function t(n,r,i){var o=e.call(this)||this;switch(o.syncErrorValue=null,o.syncErrorThrown=!1,o.syncErrorThrowable=!1,o.isStopped=!1,arguments.length){case 0:o.destination=a.a;break;case 1:if(!n){o.destination=a.a;break}if("object"==typeof n){n instanceof t?(o.syncErrorThrowable=n.syncErrorThrowable,o.destination=n,n.add(o)):(o.syncErrorThrowable=!0,o.destination=new d(o,n));break}default:o.syncErrorThrowable=!0,o.destination=new d(o,n,r,i)}return o}return r.c(t,e),t.prototype[s.a]=function(){return this},t.create=function(e,n,r){var i=new t(e,n,r);return i.syncErrorThrowable=!1,i},t.prototype.next=function(e){this.isStopped||this._next(e)},t.prototype.error=function(e){this.isStopped||(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this))},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){this.destination.error(e),this.unsubscribe()},t.prototype._complete=function(){this.destination.complete(),this.unsubscribe()},t.prototype._unsubscribeAndRecycle=function(){var e=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this},t}(o.a),d=function(e){function t(t,n,r,o){var s,l=e.call(this)||this;l._parentSubscriber=t;var c=l;return Object(i.a)(n)?s=n:n&&(s=n.next,r=n.error,o=n.complete,n!==a.a&&(c=Object.create(n),Object(i.a)(c.unsubscribe)&&l.add(c.unsubscribe.bind(c)),c.unsubscribe=l.unsubscribe.bind(l))),l._context=c,l._next=s,l._error=r,l._complete=o,l}return r.c(t,e),t.prototype.next=function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;l.a.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}},t.prototype.error=function(e){if(!this.isStopped){var t=this._parentSubscriber,n=l.a.useDeprecatedSynchronousErrorHandling;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):Object(c.a)(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;Object(c.a)(e)}}},t.prototype.complete=function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var n=function(){return e._complete.call(e._context)};l.a.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}},t.prototype.__tryOrUnsub=function(e,t){try{e.call(this._context,t)}catch(n){if(this.unsubscribe(),l.a.useDeprecatedSynchronousErrorHandling)throw n;Object(c.a)(n)}},t.prototype.__tryOrSetError=function(e,t,n){if(!l.a.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{t.call(this._context,n)}catch(r){return l.a.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=r,e.syncErrorThrown=!0,!0):(Object(c.a)(r),!0)}return!1},t.prototype._unsubscribe=function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()},t}(u)},function(e,t,n){"use strict";n.d(t,"a",(function(){return s})),n.d(t,"c",(function(){return l})),n.d(t,"f",(function(){return c})),n.d(t,"g",(function(){return u})),n.d(t,"h",(function(){return d})),n.d(t,"e",(function(){return h})),n.d(t,"d",(function(){return p})),n.d(t,"b",(function(){return f}));var r=n(11),i=n(161),a=function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{l(r.next(e))}catch(t){a(t)}}function s(e){try{l(r.throw(e))}catch(t){a(t)}}function l(e){e.done?i(e.value):new n((function(t){t(e.value)})).then(o,s)}l((r=r.apply(e,t||[])).next())}))},o=function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==a[0]&&2!==a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]-1&&this.subject.observers.splice(e,1),0===this.subject.observers.length&&this.subject.cancelCallback&&this.subject.cancelCallback().catch((function(e){}))},e}(),f=function(){function e(e){this.minimumLogLevel=e,this.outputConsole=console}return e.prototype.log=function(e,t){if(e>=this.minimumLogLevel)switch(e){case r.a.Critical:case r.a.Error:this.outputConsole.error("["+(new Date).toISOString()+"] "+r.a[e]+": "+t);break;case r.a.Warning:this.outputConsole.warn("["+(new Date).toISOString()+"] "+r.a[e]+": "+t);break;case r.a.Information:this.outputConsole.info("["+(new Date).toISOString()+"] "+r.a[e]+": "+t);break;default:this.outputConsole.log("["+(new Date).toISOString()+"] "+r.a[e]+": "+t)}},e}()},,function(e,t,n){var r=n(63),i=Math.min;e.exports=function(e){return e>0?i(r(e),9007199254740991):0}},function(e,t,n){"use strict";var r=n(28);var i=n(197),a=n(219);var o=n(129),s=n(268),l=n(108);n.d(t,"a",(function(){return c}));var c=function(){function e(e){this._isScalar=!1,e&&(this._subscribe=e)}return e.prototype.lift=function(t){var n=new e;return n.source=this,n.operator=t,n},e.prototype.subscribe=function(e,t,n){var o=this.operator,s=function(e,t,n){if(e){if(e instanceof r.a)return e;if(e[i.a])return e[i.a]()}return e||t||n?new r.a(e,t,n):new r.a(a.a)}(e,t,n);if(o?s.add(o.call(s,this.source)):s.add(this.source||l.a.useDeprecatedSynchronousErrorHandling&&!s.syncErrorThrowable?this._subscribe(s):this._trySubscribe(s)),l.a.useDeprecatedSynchronousErrorHandling&&s.syncErrorThrowable&&(s.syncErrorThrowable=!1,s.syncErrorThrown))throw s.syncErrorValue;return s},e.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){l.a.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),!function(e){for(;e;){var t=e,n=t.closed,i=t.destination,a=t.isStopped;if(n||a)return!1;e=i&&i instanceof r.a?i:null}return!0}(e)?console.warn(t):e.error(t)}},e.prototype.forEach=function(e,t){var n=this;return new(t=u(t))((function(t,r){var i;i=n.subscribe((function(t){try{e(t)}catch(n){r(n),i&&i.unsubscribe()}}),r,t)}))},e.prototype._subscribe=function(e){var t=this.source;return t&&t.subscribe(e)},e.prototype[o.a]=function(){return this},e.prototype.pipe=function(){for(var e=[],t=0;t15?(i=Date.now(),s(e)):(n.push(e),1===n.length&&o.setAttribute("a",a=!a))}}l.nextTick=l.setImmediate}(),l.isNodejs=void 0!==t&&t.versions&&t.versions.node,l.globalScope=l.isNodejs?i:"undefined"==typeof self?window:self,l.isArray=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},l.isArrayBuffer=function(e){return"undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer},l.isArrayBufferView=function(e){return e&&l.isArrayBuffer(e.buffer)&&void 0!==e.byteLength},l.ByteBuffer=u,l.ByteStringBuffer=u;l.ByteStringBuffer.prototype._optimizeConstructedString=function(e){this._constructedStringLength+=e,this._constructedStringLength>4096&&(this.data.substr(0,1),this._constructedStringLength=0)},l.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read},l.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0},l.ByteStringBuffer.prototype.putByte=function(e){return this.putBytes(String.fromCharCode(e))},l.ByteStringBuffer.prototype.fillWithByte=function(e,t){e=String.fromCharCode(e);for(var n=this.data;t>0;)1&t&&(n+=e),(t>>>=1)>0&&(e+=e);return this.data=n,this._optimizeConstructedString(t),this},l.ByteStringBuffer.prototype.putBytes=function(e){return this.data+=e,this._optimizeConstructedString(e.length),this},l.ByteStringBuffer.prototype.putString=function(e){return this.putBytes(l.encodeUtf8(e))},l.ByteStringBuffer.prototype.putInt16=function(e){return this.putBytes(String.fromCharCode(e>>8&255)+String.fromCharCode(255&e))},l.ByteStringBuffer.prototype.putInt24=function(e){return this.putBytes(String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(255&e))},l.ByteStringBuffer.prototype.putInt32=function(e){return this.putBytes(String.fromCharCode(e>>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(255&e))},l.ByteStringBuffer.prototype.putInt16Le=function(e){return this.putBytes(String.fromCharCode(255&e)+String.fromCharCode(e>>8&255))},l.ByteStringBuffer.prototype.putInt24Le=function(e){return this.putBytes(String.fromCharCode(255&e)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255))},l.ByteStringBuffer.prototype.putInt32Le=function(e){return this.putBytes(String.fromCharCode(255&e)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>24&255))},l.ByteStringBuffer.prototype.putInt=function(e,t){c(t);var n="";do{t-=8,n+=String.fromCharCode(e>>t&255)}while(t>0);return this.putBytes(n)},l.ByteStringBuffer.prototype.putSignedInt=function(e,t){return e<0&&(e+=2<0);return t},l.ByteStringBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),n=2<=n&&(t-=n<<1),t},l.ByteStringBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):0===e?t="":(t=0===this.read?this.data:this.data.slice(this.read),this.clear()),t},l.ByteStringBuffer.prototype.bytes=function(e){return void 0===e?this.data.slice(this.read):this.data.slice(this.read,this.read+e)},l.ByteStringBuffer.prototype.at=function(e){return this.data.charCodeAt(this.read+e)},l.ByteStringBuffer.prototype.setAt=function(e,t){return this.data=this.data.substr(0,this.read+e)+String.fromCharCode(t)+this.data.substr(this.read+e+1),this},l.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)},l.ByteStringBuffer.prototype.copy=function(){var e=l.createBuffer(this.data);return e.read=this.read,e},l.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this},l.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this},l.ByteStringBuffer.prototype.truncate=function(e){var t=Math.max(0,this.length()-e);return this.data=this.data.substr(this.read,t),this.read=0,this},l.ByteStringBuffer.prototype.toHex=function(){for(var e="",t=this.read;t=e)return this;t=Math.max(t||this.growSize,e);var n=new Uint8Array(this.data.buffer,this.data.byteOffset,this.data.byteLength),r=new Uint8Array(this.length()+t);return r.set(n),this.data=new DataView(r.buffer),this},l.DataBuffer.prototype.putByte=function(e){return this.accommodate(1),this.data.setUint8(this.write++,e),this},l.DataBuffer.prototype.fillWithByte=function(e,t){this.accommodate(t);for(var n=0;n>8&65535),this.data.setInt8(this.write,e>>16&255),this.write+=3,this},l.DataBuffer.prototype.putInt32=function(e){return this.accommodate(4),this.data.setInt32(this.write,e),this.write+=4,this},l.DataBuffer.prototype.putInt16Le=function(e){return this.accommodate(2),this.data.setInt16(this.write,e,!0),this.write+=2,this},l.DataBuffer.prototype.putInt24Le=function(e){return this.accommodate(3),this.data.setInt8(this.write,e>>16&255),this.data.setInt16(this.write,e>>8&65535,!0),this.write+=3,this},l.DataBuffer.prototype.putInt32Le=function(e){return this.accommodate(4),this.data.setInt32(this.write,e,!0),this.write+=4,this},l.DataBuffer.prototype.putInt=function(e,t){c(t),this.accommodate(t/8);do{t-=8,this.data.setInt8(this.write++,e>>t&255)}while(t>0);return this},l.DataBuffer.prototype.putSignedInt=function(e,t){return c(t),this.accommodate(t/8),e<0&&(e+=2<0);return t},l.DataBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),n=2<=n&&(t-=n<<1),t},l.DataBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):0===e?t="":(t=0===this.read?this.data:this.data.slice(this.read),this.clear()),t},l.DataBuffer.prototype.bytes=function(e){return void 0===e?this.data.slice(this.read):this.data.slice(this.read,this.read+e)},l.DataBuffer.prototype.at=function(e){return this.data.getUint8(this.read+e)},l.DataBuffer.prototype.setAt=function(e,t){return this.data.setUint8(e,t),this},l.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)},l.DataBuffer.prototype.copy=function(){return new l.DataBuffer(this)},l.DataBuffer.prototype.compact=function(){if(this.read>0){var e=new Uint8Array(this.data.buffer,this.read),t=new Uint8Array(e.byteLength);t.set(e),this.data=new DataView(t),this.write-=this.read,this.read=0}return this},l.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this},l.DataBuffer.prototype.truncate=function(e){return this.write=Math.max(0,this.length()-e),this.read=Math.min(this.read,this.write),this},l.DataBuffer.prototype.toHex=function(){for(var e="",t=this.read;t0;)1&t&&(n+=e),(t>>>=1)>0&&(e+=e);return n},l.xorBytes=function(e,t,n){for(var r="",i="",a="",o=0,s=0;n>0;--n,++o)i=e.charCodeAt(o)^t.charCodeAt(o),s>=10&&(r+=a,a="",s=0),a+=String.fromCharCode(i),++s;return r+=a},l.hexToBytes=function(e){var t="",n=0;for(!0&e.length&&(n=1,t+=String.fromCharCode(parseInt(e[0],16)));n>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(255&e)};var d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",h=[62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,64,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],p="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";l.encode64=function(e,t){for(var n,r,i,a="",o="",s=0;s>2),a+=d.charAt((3&n)<<4|r>>4),isNaN(r)?a+="==":(a+=d.charAt((15&r)<<2|i>>6),a+=isNaN(i)?"=":d.charAt(63&i)),t&&a.length>t&&(o+=a.substr(0,t)+"\r\n",a=a.substr(t));return o+=a},l.decode64=function(e){e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var t,n,r,i,a="",o=0;o>4),64!==r&&(a+=String.fromCharCode((15&n)<<4|r>>2),64!==i&&(a+=String.fromCharCode((3&r)<<6|i)));return a},l.encodeUtf8=function(e){return unescape(encodeURIComponent(e))},l.decodeUtf8=function(e){return decodeURIComponent(escape(e))},l.binary={raw:{},hex:{},base64:{},base58:{},baseN:{encode:s.encode,decode:s.decode}},l.binary.raw.encode=function(e){return String.fromCharCode.apply(null,e)},l.binary.raw.decode=function(e,t,n){var r=t;r||(r=new Uint8Array(e.length));for(var i=n=n||0,a=0;a>2),a+=d.charAt((3&n)<<4|r>>4),isNaN(r)?a+="==":(a+=d.charAt((15&r)<<2|i>>6),a+=isNaN(i)?"=":d.charAt(63&i)),t&&a.length>t&&(o+=a.substr(0,t)+"\r\n",a=a.substr(t));return o+=a},l.binary.base64.decode=function(e,t,n){var r,i,a,o,s=t;s||(s=new Uint8Array(3*Math.ceil(e.length/4))),e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var l=0,c=n=n||0;l>4,64!==a&&(s[c++]=(15&i)<<4|a>>2,64!==o&&(s[c++]=(3&a)<<6|o));return t?c-n:s.subarray(0,c)},l.binary.base58.encode=function(e,t){return l.binary.baseN.encode(e,p,t)},l.binary.base58.decode=function(e,t){return l.binary.baseN.decode(e,p,t)},l.text={utf8:{},utf16:{}},l.text.utf8.encode=function(e,t,n){e=l.encodeUtf8(e);var r=t;r||(r=new Uint8Array(e.length));for(var i=n=n||0,a=0;a0?(i=n[r].substring(0,o),a=n[r].substring(o+1)):(i=n[r],a=null),i in t||(t[i]=[]),i in Object.prototype||null===a||t[i].push(unescape(a))}return t};return void 0===e?(null===w&&(w="undefined"!=typeof window&&window.location&&window.location.search?n(window.location.search.substring(1)):{}),t=w):t=n(e),t},l.parseFragment=function(e){var t=e,n="",r=e.indexOf("?");r>0&&(t=e.substring(0,r),n=e.substring(r+1));var i=t.split("/");return i.length>0&&""===i[0]&&i.shift(),{pathString:t,queryString:n,path:i,query:""===n?{}:l.getQueryVariables(n)}},l.makeRequest=function(e){var t=l.parseFragment(e),n={path:t.pathString,query:t.queryString,getPath:function(e){return void 0===e?t.path:t.path[e]},getQuery:function(e,n){var r;return void 0===e?r=t.query:(r=t.query[e])&&void 0!==n&&(r=r[n]),r},getQueryLast:function(e,t){var r=n.getQuery(e);return r?r[r.length-1]:t}};return n},l.makeLink=function(e,t,n){e=jQuery.isArray(e)?e.join("/"):e;var r=jQuery.param(t||{});return n=n||"",e+(r.length>0?"?"+r:"")+(n.length>0?"#"+n:"")},l.isEmpty=function(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0},l.format=function(e){for(var t,n,r=/%./g,i=0,a=[],o=0;t=r.exec(e);){(n=e.substring(o,r.lastIndex-2)).length>0&&a.push(n),o=r.lastIndex;var s=t[0][1];switch(s){case"s":case"o":i");break;case"%":a.push("%");break;default:a.push("<%"+s+"?>")}}return a.push(e.substring(o)),a.join("")},l.formatNumber=function(e,t,n,r){var i=e,a=isNaN(t=Math.abs(t))?2:t,o=void 0===n?",":n,s=void 0===r?".":r,l=i<0?"-":"",c=parseInt(i=Math.abs(+i||0).toFixed(a),10)+"",u=c.length>3?c.length%3:0;return l+(u?c.substr(0,u)+s:"")+c.substr(u).replace(/(\d{3})(?=\d)/g,"$1"+s)+(a?o+Math.abs(i-c).toFixed(a).slice(2):"")},l.formatSize=function(e){return e=e>=1073741824?l.formatNumber(e/1073741824,2,".","")+" GiB":e>=1048576?l.formatNumber(e/1048576,2,".","")+" MiB":e>=1024?l.formatNumber(e/1024,0)+" KiB":l.formatNumber(e,0)+" bytes"},l.bytesFromIP=function(e){return-1!==e.indexOf(".")?l.bytesFromIPv4(e):-1!==e.indexOf(":")?l.bytesFromIPv6(e):null},l.bytesFromIPv4=function(e){if(4!==(e=e.split(".")).length)return null;for(var t=l.createBuffer(),n=0;nn[r].end-n[r].start&&(r=n.length-1)):n.push({start:s,end:s})}t.push(a)}if(n.length>0){var c=n[r];c.end-c.start>0&&(t.splice(c.start,c.end-c.start+1,""),0===c.start&&t.unshift(""),7===c.end&&t.push(""))}return t.join(":")},l.estimateCores=function(e,t){if("function"==typeof e&&(t=e,e={}),e=e||{},"cores"in l&&!e.update)return t(null,l.cores);if("undefined"!=typeof navigator&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return l.cores=navigator.hardwareConcurrency,t(null,l.cores);if("undefined"==typeof Worker)return l.cores=1,t(null,l.cores);if("undefined"==typeof Blob)return l.cores=2,t(null,l.cores);var n=URL.createObjectURL(new Blob(["(",function(){self.addEventListener("message",(function(e){for(var t=Date.now(),n=t+4;Date.now()s.st&&i.sti.st&&s.st=200&&i.status<300?n(new o.b(i.status,i.statusText,i.response||i.responseText)):r(new a.b(i.statusText,i.status))},i.onerror=function(){t.logger.log(l.a.Warning,"Error from HTTP request. "+i.status+": "+i.statusText+"."),r(new a.b(i.statusText,i.status))},i.ontimeout=function(){t.logger.log(l.a.Warning,"Timeout from HTTP request."),r(new a.c)},i.send(e.content||"")})):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))},t}(o.a),d=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),h=function(e){function t(t){var n=e.call(this)||this;return"undefined"!=typeof XMLHttpRequest?n.httpClient=new u(t):n.httpClient=new s.a(t),n}return d(t,e),t.prototype.send=function(e){return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new a.a):e.method?e.url?this.httpClient.send(e):Promise.reject(new Error("No url defined.")):Promise.reject(new Error("No method defined."))},t.prototype.getCookieString=function(e){return this.httpClient.getCookieString(e)},t}(o.a),p=n(745);!function(e){e[e.Invocation=1]="Invocation",e[e.StreamItem=2]="StreamItem",e[e.Completion=3]="Completion",e[e.StreamInvocation=4]="StreamInvocation",e[e.CancelInvocation=5]="CancelInvocation",e[e.Ping=6]="Ping",e[e.Close=7]="Close"}(i||(i={}));var f,m=n(29),g=function(){function e(){this.observers=[]}return e.prototype.next=function(e){for(var t=0,n=this.observers;t0&&i[i.length-1])||6!==a[0]&&2!==a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])||6!==a[0]&&2!==a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])||6!==a[0]&&2!==a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])||6!==a[0]&&2!==a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])||6!==a[0]&&2!==a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0?[2,Promise.reject(new Error("Unable to connect to the server with any of the available transports. "+a.join(" ")))]:[2,Promise.reject(new Error("None of the transports supported by the client are supported by the server."))]}}))}))},e.prototype.constructTransport=function(e){switch(e){case v.WebSockets:if(!this.options.WebSocket)throw new Error("'WebSocket' is not supported in your environment.");return new A(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.WebSocket);case v.ServerSentEvents:if(!this.options.EventSource)throw new Error("'EventSource' is not supported in your environment.");return new z(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1,this.options.EventSource);case v.LongPolling:return new S(this.httpClient,this.accessTokenFactory,this.logger,this.options.logMessageContent||!1);default:throw new Error("Unknown transport: "+e+".")}},e.prototype.startTransport=function(e,t){var n=this;return this.transport.onreceive=this.onreceive,this.transport.onclose=function(e){return n.stopConnection(e)},this.transport.connect(e,t)},e.prototype.resolveTransportOrError=function(e,t,n){var r=v[e.transport];if(null==r)return this.logger.log(l.a.Debug,"Skipping transport '"+e.transport+"' because it is not supported by this client."),new Error("Skipping transport '"+e.transport+"' because it is not supported by this client.");if(!function(e,t){return!e||0!=(t&e)}(t,r))return this.logger.log(l.a.Debug,"Skipping transport '"+v[r]+"' because it was disabled by the client."),new Error("'"+v[r]+"' is disabled by the client.");if(!(e.transferFormats.map((function(e){return k[e]})).indexOf(n)>=0))return this.logger.log(l.a.Debug,"Skipping transport '"+v[r]+"' because it does not support the requested transfer format '"+k[n]+"'."),new Error("'"+v[r]+"' does not support "+k[n]+".");if(r===v.WebSockets&&!this.options.WebSocket||r===v.ServerSentEvents&&!this.options.EventSource)return this.logger.log(l.a.Debug,"Skipping transport '"+v[r]+"' because it is not supported in your environment.'"),new Error("'"+v[r]+"' is not supported in your environment.");this.logger.log(l.a.Debug,"Selecting transport '"+v[r]+"'.");try{return this.constructTransport(r)}catch(i){return i}},e.prototype.isITransport=function(e){return e&&"object"==typeof e&&"connect"in e},e.prototype.stopConnection=function(e){var t=this;if(this.logger.log(l.a.Debug,"HttpConnection.stopConnection("+e+") called while in state "+this.connectionState+"."),this.transport=void 0,e=this.stopError||e,this.stopError=void 0,"Disconnected"!==this.connectionState)if("Connecting "!==this.connectionState){if("Disconnecting"===this.connectionState&&this.stopPromiseResolver(),e?this.logger.log(l.a.Error,"Connection disconnected with error '"+e+"'."):this.logger.log(l.a.Information,"Connection disconnected."),this.sendQueue&&(this.sendQueue.stop().catch((function(e){t.logger.log(l.a.Error,"TransportSendQueue.stop() threw error '"+e+"'.")})),this.sendQueue=void 0),this.connectionId=void 0,this.connectionState="Disconnected",this.connectionStarted){this.connectionStarted=!1;try{this.onclose&&this.onclose(e)}catch(n){this.logger.log(l.a.Error,"HttpConnection.onclose("+e+") threw error '"+n+"'.")}}}else this.logger.log(l.a.Warning,"Call to HttpConnection.stopConnection("+e+") was ignored because the connection hasn't yet left the in the connecting state.");else this.logger.log(l.a.Debug,"Call to HttpConnection.stopConnection("+e+") was ignored because the connection is already in the disconnected state.")},e.prototype.resolveUrl=function(e){if(0===e.lastIndexOf("https://",0)||0===e.lastIndexOf("http://",0))return e;if(!m.c.isBrowser||!window.document)throw new Error("Cannot resolve '"+e+"'.");var t=window.document.createElement("a");return t.href=e,this.logger.log(l.a.Information,"Normalizing '"+e+"' to '"+t.href+"'."),t.href},e.prototype.resolveNegotiateUrl=function(e){var t=e.indexOf("?"),n=e.substring(0,-1===t?e.length:t);return"/"!==n[n.length-1]&&(n+="/"),n+="negotiate",-1===(n+=-1===t?"":e.substring(t)).indexOf("negotiateVersion")&&(n+=-1===t?"?":"&",n+="negotiateVersion="+this.negotiateVersion),n},e}();var L=function(){function e(e){this.transport=e,this.buffer=[],this.executing=!0,this.sendBufferedData=new F,this.transportResult=new F,this.sendLoopPromise=this.sendLoop()}return e.prototype.send=function(e){return this.bufferData(e),this.transportResult||(this.transportResult=new F),this.transportResult.promise},e.prototype.stop=function(){return this.executing=!1,this.sendBufferedData.resolve(),this.sendLoopPromise},e.prototype.bufferData=function(e){if(this.buffer.length&&typeof this.buffer[0]!=typeof e)throw new Error("Expected data to be of type "+typeof this.buffer+" but was of type "+typeof e);this.buffer.push(e),this.sendBufferedData.resolve()},e.prototype.sendLoop=function(){return N(this,void 0,void 0,(function(){var t,n,r;return P(this,(function(i){switch(i.label){case 0:return[4,this.sendBufferedData.promise];case 1:if(i.sent(),!this.executing)return this.transportResult&&this.transportResult.reject("Connection stopped."),[3,6];this.sendBufferedData=new F,t=this.transportResult,this.transportResult=void 0,n="string"==typeof this.buffer[0]?this.buffer.join(""):e.concatBuffers(this.buffer),this.buffer.length=0,i.label=2;case 2:return i.trys.push([2,4,,5]),[4,this.transport.send(n)];case 3:return i.sent(),t.resolve(),[3,5];case 4:return r=i.sent(),t.reject(r),[3,5];case 5:return[3,0];case 6:return[2]}}))}))},e.concatBuffers=function(e){for(var t=e.map((function(e){return e.byteLength})).reduce((function(e,t){return e+t})),n=new Uint8Array(t),r=0,i=0,a=e;i"+i+""};e.exports=function(e,t){var n={};n[e]=t(s),r(r.P+r.F*i((function(){var t=""[e]('"');return t!==t.toLowerCase()||t.split('"').length>3})),"String",n)}},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){var r=n(20),i=n(56),a=n(50),o=n(89)("src"),s=Function.toString,l=(""+s).split("toString");n(55).inspectSource=function(e){return s.call(e)},(e.exports=function(e,t,n,s){var c="function"==typeof n;c&&(a(n,"name")||i(n,"name",t)),e[t]!==n&&(c&&(a(n,o)||i(n,o,e[t]?""+e[t]:l.join(String(t)))),e===r?e[t]=n:s?e[t]?e[t]=n:i(e,t,n):(delete e[t],i(e,t,n)))})(Function.prototype,"toString",(function(){return"function"==typeof this&&this[o]||s.call(this)}))},function(e,t,n){var r=n(115),i=n(76);e.exports=function(e){return r(i(e))}},,function(e,t,n){"use strict";var r=n(121),i=n(215),a=n(146),o=function(){function e(e){return Error.call(this),this.message=e?e.length+" errors occurred during unsubscription:\n"+e.map((function(e,t){return t+1+") "+e.toString()})).join("\n "):"",this.name="UnsubscriptionError",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}();n.d(t,"a",(function(){return s}));var s=function(){function e(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._ctorUnsubscribe=!0,this._unsubscribe=e)}var t;return e.prototype.unsubscribe=function(){var t;if(!this.closed){var n=this._parentOrParents,s=this._ctorUnsubscribe,c=this._unsubscribe,u=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof e)n.remove(this);else if(null!==n)for(var d=0;d0?r:n)(e)}},,,function(e,t,n){"use strict";(function(e){n.d(t,"a",(function(){return E})),n.d(t,"b",(function(){return Ke})),n.d(t,"c",(function(){return be})),n.d(t,"d",(function(){return at})),n.d(t,"e",(function(){return x})),n.d(t,"f",(function(){return st})),n.d(t,"g",(function(){return ve})),n.d(t,"h",(function(){return lt}));var r=n(1),i=n(12),a=n(0);function o(){return void 0!==e&&"[object process]"==={}.toString.call(e)}function s(e){switch(e.length){case 0:return new i.d;case 1:return e[0];default:return new i.k(e)}}function l(e,t,n,r,a,o){void 0===a&&(a={}),void 0===o&&(o={});var s=[],l=[],c=-1,u=null;if(r.forEach((function(e){var n=e.offset,r=n==c,d=r&&u||{};Object.keys(e).forEach((function(n){var r=n,l=e[n];if("offset"!==n)switch(r=t.normalizePropertyName(r,s),l){case i.l:l=a[n];break;case i.a:l=o[n];break;default:l=t.normalizeStyleValue(n,r,l,s)}d[r]=l})),r||l.push(d),u=d,c=n})),s.length){throw new Error("Unable to animate due to the following errors:\n - "+s.join("\n - "))}return l}function c(e,t,n,r){switch(t){case"start":e.onStart((function(){return r(n&&u(n,"start",e))}));break;case"done":e.onDone((function(){return r(n&&u(n,"done",e))}));break;case"destroy":e.onDestroy((function(){return r(n&&u(n,"destroy",e))}))}}function u(e,t,n){var r=n.totalTime,i=!!n.disabled,a=d(e.element,e.triggerName,e.fromState,e.toState,t||e.phaseName,null==r?e.totalTime:r,i),o=e._data;return null!=o&&(a._data=o),a}function d(e,t,n,r,i,a,o){return void 0===i&&(i=""),void 0===a&&(a=0),{element:e,triggerName:t,fromState:n,toState:r,phaseName:i,totalTime:a,disabled:!!o}}function h(e,t,n){var r;return e instanceof Map?(r=e.get(t))||e.set(t,r=n):(r=e[t])||(r=e[t]=n),r}function p(e){var t=e.indexOf(":");return[e.substring(1,t),e.substr(t+1)]}var f=function(e,t){return!1},m=function(e,t){return!1},g=function(e,t,n){return[]},y=o();(y||"undefined"!=typeof Element)&&(f=function(e,t){return e.contains(t)},m=function(){if(y||Element.prototype.matches)return function(e,t){return e.matches(t)};var e=Element.prototype,t=e.matchesSelector||e.mozMatchesSelector||e.msMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector;return t?function(e,n){return t.apply(e,[n])}:m}(),g=function(e,t,n){var i=[];if(n)i.push.apply(i,Object(r.g)(e.querySelectorAll(t)));else{var a=e.querySelector(t);a&&i.push(a)}return i});var b=null,v=!1;function k(e){b||(b=function(){if("undefined"!=typeof document)return document.body;return null}()||{},v=!!b.style&&"WebkitAppearance"in b.style);var t=!0;b.style&&!function(e){return"ebkit"==e.substring(1,6)}(e)&&(!(t=e in b.style)&&v&&(t="Webkit"+e.charAt(0).toUpperCase()+e.substr(1)in b.style));return t}var w=m,_=f,j=g;function C(e){var t={};return Object.keys(e).forEach((function(n){var r=n.replace(/([a-z])([A-Z])/g,"$1-$2");t[r]=e[n]})),t}var x=function(){function e(){}return e.prototype.validateStyleProperty=function(e){return k(e)},e.prototype.matchesElement=function(e,t){return w(e,t)},e.prototype.containsElement=function(e,t){return _(e,t)},e.prototype.query=function(e,t,n){return j(e,t,n)},e.prototype.computeStyle=function(e,t,n){return n||""},e.prototype.animate=function(e,t,n,r,a,o,s){return void 0===o&&(o=[]),new i.d(n,r)},e.ɵfac=function(t){return new(t||e)},e.ɵprov=a["ɵɵdefineInjectable"]({token:e,factory:function(t){return e.ɵfac(t)}}),e}(),E=function(){function e(){}return e.NOOP=new x,e}();function S(e){if("number"==typeof e)return e;var t=e.match(/^(-?[\.\d]+)(m?s)/);return!t||t.length<2?0:T(parseFloat(t[1]),t[2])}function T(e,t){switch(t){case"s":return 1e3*e;default:return e}}function O(e,t,n){return e.hasOwnProperty("duration")?e:function(e,t,n){var r,i=0,a="";if("string"==typeof e){var o=e.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===o)return t.push('The provided timing value "'+e+'" is invalid.'),{duration:0,delay:0,easing:""};r=T(parseFloat(o[1]),o[2]);var s=o[3];null!=s&&(i=T(parseFloat(s),o[4]));var l=o[5];l&&(a=l)}else r=e;if(!n){var c=!1,u=t.length;r<0&&(t.push("Duration values below 0 are not allowed for this animation step."),c=!0),i<0&&(t.push("Delay values below 0 are not allowed for this animation step."),c=!0),c&&t.splice(u,0,'The provided timing value "'+e+'" is invalid.')}return{duration:r,delay:i,easing:a}}(e,t,n)}function z(e,t){return void 0===t&&(t={}),Object.keys(e).forEach((function(n){t[n]=e[n]})),t}function I(e){var t={};return Array.isArray(e)?e.forEach((function(e){return D(e,!1,t)})):D(e,!1,t),t}function D(e,t,n){if(void 0===n&&(n={}),t)for(var r in e)n[r]=e[r];else z(e,n);return n}function A(e,t,n){return n?t+":"+n+";":""}function N(e){for(var t="",n=0;n *";case":leave":return"* => void";case":increment":return function(e,t){return parseFloat(t)>parseFloat(e)};case":decrement":return function(e,t){return parseFloat(t) *"}}(e,n);if("function"==typeof r)return void t.push(r);e=r}var i=e.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==i||i.length<4)return n.push('The provided transition expression "'+e+'" is not supported'),t;var a=i[1],o=i[2],s=i[3];t.push(Z(a,s));var l="*"==a&&"*"==s;"<"!=o[0]||l||t.push(Z(s,a))}(e,n,t)})):n.push(e),n}var $=new Set(["true","1"]),Y=new Set(["false","0"]);function Z(e,t){var n=$.has(e)||Y.has(e),r=$.has(t)||Y.has(t);return function(i,a){var o="*"==e||e==i,s="*"==t||t==a;return!o&&n&&"boolean"==typeof i&&(o=i?$.has(e):Y.has(e)),!s&&r&&"boolean"==typeof a&&(s=a?$.has(t):Y.has(t)),o&&s}}var J=new RegExp("s*:selfs*,?","g");function X(e,t,n){return new ee(e).build(t,n)}var ee=function(){function e(e){this._driver=e}return e.prototype.build=function(e,t){var n=new te(t);return this._resetContextStyleTimingState(n),W(this,M(e),n)},e.prototype._resetContextStyleTimingState=function(e){e.currentQuerySelector="",e.collectedStyles={},e.collectedStyles[""]={},e.currentTime=0},e.prototype.visitTrigger=function(e,t){var n=this,r=t.queryCount=0,i=t.depCount=0,a=[],o=[];return"@"==e.name.charAt(0)&&t.errors.push("animation triggers cannot be prefixed with an `@` sign (e.g. trigger('@foo', [...]))"),e.definitions.forEach((function(e){if(n._resetContextStyleTimingState(t),0==e.type){var s=e,l=s.name;l.toString().split(/\s*,\s*/).forEach((function(e){s.name=e,a.push(n.visitState(s,t))})),s.name=l}else if(1==e.type){var c=n.visitTransition(e,t);r+=c.queryCount,i+=c.depCount,o.push(c)}else t.errors.push("only state() and transition() definitions can sit inside of a trigger()")})),{type:7,name:e.name,states:a,transitions:o,queryCount:r,depCount:i,options:null}},e.prototype.visitState=function(e,t){var n=this.visitStyle(e.styles,t),r=e.options&&e.options.params||null;if(n.containsDynamicStyles){var i=new Set,a=r||{};if(n.styles.forEach((function(e){if(ne(e)){var t=e;Object.keys(t).forEach((function(e){B(t[e]).forEach((function(e){a.hasOwnProperty(e)||i.add(e)}))}))}})),i.size){var o=F(i.values());t.errors.push('state("'+e.name+'", ...) must define default values for all the following style substitutions: '+o.join(", "))}}return{type:0,name:e.name,style:n,options:r?{params:r}:null}},e.prototype.visitTransition=function(e,t){t.queryCount=0,t.depCount=0;var n=W(this,M(e.animation),t);return{type:1,matchers:Q(e.expr,t.errors),animation:n,queryCount:t.queryCount,depCount:t.depCount,options:re(e.options)}},e.prototype.visitSequence=function(e,t){var n=this;return{type:2,steps:e.steps.map((function(e){return W(n,e,t)})),options:re(e.options)}},e.prototype.visitGroup=function(e,t){var n=this,r=t.currentTime,i=0,a=e.steps.map((function(e){t.currentTime=r;var a=W(n,e,t);return i=Math.max(i,t.currentTime),a}));return t.currentTime=i,{type:3,steps:a,options:re(e.options)}},e.prototype.visitAnimate=function(e,t){var n,r=function(e,t){var n=null;if(e.hasOwnProperty("duration"))n=e;else if("number"==typeof e){return ie(O(e,t).duration,0,"")}var r=e;if(r.split(/\s+/).some((function(e){return"{"==e.charAt(0)&&"{"==e.charAt(1)}))){var i=ie(0,0,"");return i.dynamic=!0,i.strValue=r,i}return ie((n=n||O(r,t)).duration,n.delay,n.easing)}(e.timings,t.errors);t.currentAnimateTimings=r;var a=e.styles?e.styles:Object(i.h)({});if(5==a.type)n=this.visitKeyframes(a,t);else{var o=e.styles,s=!1;if(!o){s=!0;var l={};r.easing&&(l.easing=r.easing),o=Object(i.h)(l)}t.currentTime+=r.duration+r.delay;var c=this.visitStyle(o,t);c.isEmptyStep=s,n=c}return t.currentAnimateTimings=null,{type:4,timings:r,style:n,options:null}},e.prototype.visitStyle=function(e,t){var n=this._makeStyleAst(e,t);return this._validateStyleAst(n,t),n},e.prototype._makeStyleAst=function(e,t){var n=[];Array.isArray(e.styles)?e.styles.forEach((function(e){"string"==typeof e?e==i.a?n.push(e):t.errors.push("The provided style string value "+e+" is not allowed."):n.push(e)})):n.push(e.styles);var r=!1,a=null;return n.forEach((function(e){if(ne(e)){var t=e,n=t.easing;if(n&&(a=n,delete t.easing),!r)for(var i in t){if(t[i].toString().indexOf("{{")>=0){r=!0;break}}}})),{type:6,styles:n,easing:a,offset:e.offset,containsDynamicStyles:r,options:null}},e.prototype._validateStyleAst=function(e,t){var n=this,r=t.currentAnimateTimings,i=t.currentTime,a=t.currentTime;r&&a>0&&(a-=r.duration+r.delay),e.styles.forEach((function(e){"string"!=typeof e&&Object.keys(e).forEach((function(r){if(n._driver.validateStyleProperty(r)){var o,s,l,c,u,d=t.collectedStyles[t.currentQuerySelector],h=d[r],p=!0;h&&(a!=i&&a>=h.startTime&&i<=h.endTime&&(t.errors.push('The CSS property "'+r+'" that exists between the times of "'+h.startTime+'ms" and "'+h.endTime+'ms" is also being animated in a parallel animation between the times of "'+a+'ms" and "'+i+'ms"'),p=!1),a=h.startTime),p&&(d[r]={startTime:a,endTime:i}),t.options&&(o=e[r],s=t.options,l=t.errors,c=s.params||{},(u=B(o)).length&&u.forEach((function(e){c.hasOwnProperty(e)||l.push("Unable to resolve the local animation param "+e+" in the given list of values")})))}else t.errors.push('The provided animation property "'+r+'" is not a supported CSS property for animations')}))}))},e.prototype.visitKeyframes=function(e,t){var n=this,r={type:5,styles:[],options:null};if(!t.currentAnimateTimings)return t.errors.push("keyframes() must be placed inside of a call to animate()"),r;var i=0,a=[],o=!1,s=!1,l=0,c=e.steps.map((function(e){var r=n._makeStyleAst(e,t),c=null!=r.offset?r.offset:function(e){if("string"==typeof e)return null;var t=null;if(Array.isArray(e))e.forEach((function(e){if(ne(e)&&e.hasOwnProperty("offset")){var n=e;t=parseFloat(n.offset),delete n.offset}}));else if(ne(e)&&e.hasOwnProperty("offset")){var n=e;t=parseFloat(n.offset),delete n.offset}return t}(r.styles),u=0;return null!=c&&(i++,u=r.offset=c),s=s||u<0||u>1,o=o||u0&&i0?i==h?1:d*i:a[i],s=o*m;t.currentTime=p+f.delay+s,f.duration=s,n._validateStyleAst(e,t),e.offset=o,r.styles.push(e)})),r},e.prototype.visitReference=function(e,t){return{type:8,animation:W(this,M(e.animation),t),options:re(e.options)}},e.prototype.visitAnimateChild=function(e,t){return t.depCount++,{type:9,options:re(e.options)}},e.prototype.visitAnimateRef=function(e,t){return{type:10,animation:this.visitReference(e.animation,t),options:re(e.options)}},e.prototype.visitQuery=function(e,t){var n=t.currentQuerySelector,i=e.options||{};t.queryCount++,t.currentQuery=e;var a=Object(r.f)(function(e){var t=!!e.split(/\s*,\s*/).find((function(e){return":self"==e}));t&&(e=e.replace(J,""));return[e=e.replace(/@\*/g,".ng-trigger").replace(/@\w+/g,(function(e){return".ng-trigger-"+e.substr(1)})).replace(/:animating/g,".ng-animating"),t]}(e.selector),2),o=a[0],s=a[1];t.currentQuerySelector=n.length?n+" "+o:o,h(t.collectedStyles,t.currentQuerySelector,{});var l=W(this,M(e.animation),t);return t.currentQuery=null,t.currentQuerySelector=n,{type:11,selector:o,limit:i.limit||0,optional:!!i.optional,includeSelf:s,animation:l,originalSelector:e.selector,options:re(e.options)}},e.prototype.visitStagger=function(e,t){t.currentQuery||t.errors.push("stagger() can only be used inside of query()");var n="full"===e.timings?{duration:0,delay:0,easing:"full"}:O(e.timings,t.errors,!0);return{type:12,animation:W(this,M(e.animation),t),timings:n,options:null}},e}();var te=function(e){this.errors=e,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles={},this.options=null};function ne(e){return!Array.isArray(e)&&"object"==typeof e}function re(e){var t;return e?(e=z(e)).params&&(e.params=(t=e.params)?z(t):null):e={},e}function ie(e,t,n){return{duration:e,delay:t,easing:n}}function ae(e,t,n,r,i,a,o,s){return void 0===o&&(o=null),void 0===s&&(s=!1),{type:1,element:e,keyframes:t,preStyleProps:n,postStyleProps:r,duration:i,delay:a,totalTime:i+a,easing:o,subTimeline:s}}var oe=function(){function e(){this._map=new Map}return e.prototype.consume=function(e){var t=this._map.get(e);return t?this._map.delete(e):t=[],t},e.prototype.append=function(e,t){var n=this._map.get(e);n||this._map.set(e,n=[]),n.push.apply(n,Object(r.g)(t))},e.prototype.has=function(e){return this._map.has(e)},e.prototype.clear=function(){this._map.clear()},e}(),se=new RegExp(":enter","g"),le=new RegExp(":leave","g");function ce(e,t,n,r,i,a,o,s,l,c){return void 0===a&&(a={}),void 0===o&&(o={}),void 0===c&&(c=[]),(new ue).buildKeyframes(e,t,n,r,i,a,o,s,l,c)}var ue=function(){function e(){}return e.prototype.buildKeyframes=function(e,t,n,r,i,a,o,s,l,c){void 0===c&&(c=[]),l=l||new oe;var u=new he(e,t,l,r,i,c,[]);u.options=s,u.currentTimeline.setStyles([a],null,u.errors,s),W(this,n,u);var d=u.timelines.filter((function(e){return e.containsAnimation()}));if(d.length&&Object.keys(o).length){var h=d[d.length-1];h.allowOnlyTimelineStyles()||h.setStyles([o],null,u.errors,s)}return d.length?d.map((function(e){return e.buildKeyframes()})):[ae(t,[],[],[],0,0,"",!1)]},e.prototype.visitTrigger=function(e,t){},e.prototype.visitState=function(e,t){},e.prototype.visitTransition=function(e,t){},e.prototype.visitAnimateChild=function(e,t){var n=t.subInstructions.consume(t.element);if(n){var r=t.createSubContext(e.options),i=t.currentTimeline.currentTime,a=this._visitSubInstructions(n,r,r.options);i!=a&&t.transformIntoNewTimeline(a)}t.previousNode=e},e.prototype.visitAnimateRef=function(e,t){var n=t.createSubContext(e.options);n.transformIntoNewTimeline(),this.visitReference(e.animation,n),t.transformIntoNewTimeline(n.currentTimeline.currentTime),t.previousNode=e},e.prototype._visitSubInstructions=function(e,t,n){var r=t.currentTimeline.currentTime,i=null!=n.duration?S(n.duration):null,a=null!=n.delay?S(n.delay):null;return 0!==i&&e.forEach((function(e){var n=t.appendInstructionToTimeline(e,i,a);r=Math.max(r,n.duration+n.delay)})),r},e.prototype.visitReference=function(e,t){t.updateOptions(e.options,!0),W(this,e.animation,t),t.previousNode=e},e.prototype.visitSequence=function(e,t){var n=this,r=t.subContextCount,i=t,a=e.options;if(a&&(a.params||a.delay)&&((i=t.createSubContext(a)).transformIntoNewTimeline(),null!=a.delay)){6==i.previousNode.type&&(i.currentTimeline.snapshotCurrentStyles(),i.previousNode=de);var o=S(a.delay);i.delayNextStep(o)}e.steps.length&&(e.steps.forEach((function(e){return W(n,e,i)})),i.currentTimeline.applyStylesToKeyframe(),i.subContextCount>r&&i.transformIntoNewTimeline()),t.previousNode=e},e.prototype.visitGroup=function(e,t){var n=this,r=[],i=t.currentTimeline.currentTime,a=e.options&&e.options.delay?S(e.options.delay):0;e.steps.forEach((function(o){var s=t.createSubContext(e.options);a&&s.delayNextStep(a),W(n,o,s),i=Math.max(i,s.currentTimeline.currentTime),r.push(s.currentTimeline)})),r.forEach((function(e){return t.currentTimeline.mergeTimelineCollectedStyles(e)})),t.transformIntoNewTimeline(i),t.previousNode=e},e.prototype._visitTiming=function(e,t){if(e.dynamic){var n=e.strValue;return O(t.params?L(n,t.params,t.errors):n,t.errors)}return{duration:e.duration,delay:e.delay,easing:e.easing}},e.prototype.visitAnimate=function(e,t){var n=t.currentAnimateTimings=this._visitTiming(e.timings,t),r=t.currentTimeline;n.delay&&(t.incrementTime(n.delay),r.snapshotCurrentStyles());var i=e.style;5==i.type?this.visitKeyframes(i,t):(t.incrementTime(n.duration),this.visitStyle(i,t),r.applyStylesToKeyframe()),t.currentAnimateTimings=null,t.previousNode=e},e.prototype.visitStyle=function(e,t){var n=t.currentTimeline,r=t.currentAnimateTimings;!r&&n.getCurrentStyleProperties().length&&n.forwardFrame();var i=r&&r.easing||e.easing;e.isEmptyStep?n.applyEmptyStep(i):n.setStyles(e.styles,i,t.errors,t.options),t.previousNode=e},e.prototype.visitKeyframes=function(e,t){var n=t.currentAnimateTimings,r=t.currentTimeline.duration,i=n.duration,a=t.createSubContext().currentTimeline;a.easing=n.easing,e.styles.forEach((function(e){var n=e.offset||0;a.forwardTime(n*i),a.setStyles(e.styles,e.easing,t.errors,t.options),a.applyStylesToKeyframe()})),t.currentTimeline.mergeTimelineCollectedStyles(a),t.transformIntoNewTimeline(r+i),t.previousNode=e},e.prototype.visitQuery=function(e,t){var n=this,r=t.currentTimeline.currentTime,i=e.options||{},a=i.delay?S(i.delay):0;a&&(6===t.previousNode.type||0==r&&t.currentTimeline.getCurrentStyleProperties().length)&&(t.currentTimeline.snapshotCurrentStyles(),t.previousNode=de);var o=r,s=t.invokeQuery(e.selector,e.originalSelector,e.limit,e.includeSelf,!!i.optional,t.errors);t.currentQueryTotal=s.length;var l=null;s.forEach((function(r,i){t.currentQueryIndex=i;var s=t.createSubContext(e.options,r);a&&s.delayNextStep(a),r===t.element&&(l=s.currentTimeline),W(n,e.animation,s),s.currentTimeline.applyStylesToKeyframe();var c=s.currentTimeline.currentTime;o=Math.max(o,c)})),t.currentQueryIndex=0,t.currentQueryTotal=0,t.transformIntoNewTimeline(o),l&&(t.currentTimeline.mergeTimelineCollectedStyles(l),t.currentTimeline.snapshotCurrentStyles()),t.previousNode=e},e.prototype.visitStagger=function(e,t){var n=t.parentContext,r=t.currentTimeline,i=e.timings,a=Math.abs(i.duration),o=a*(t.currentQueryTotal-1),s=a*t.currentQueryIndex;switch(i.duration<0?"reverse":i.easing){case"reverse":s=o-s;break;case"full":s=n.currentStaggerTime}var l=t.currentTimeline;s&&l.delayNextStep(s);var c=l.currentTime;W(this,e.animation,t),t.previousNode=e,n.currentStaggerTime=r.currentTime-c+(r.startTime-n.currentTimeline.startTime)},e}(),de={},he=function(){function e(e,t,n,r,i,a,o,s){this._driver=e,this.element=t,this.subInstructions=n,this._enterClassName=r,this._leaveClassName=i,this.errors=a,this.timelines=o,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=de,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=s||new pe(this._driver,t,0),o.push(this.currentTimeline)}return Object.defineProperty(e.prototype,"params",{get:function(){return this.options.params},enumerable:!0,configurable:!0}),e.prototype.updateOptions=function(e,t){var n=this;if(e){var r=e,i=this.options;null!=r.duration&&(i.duration=S(r.duration)),null!=r.delay&&(i.delay=S(r.delay));var a=r.params;if(a){var o=i.params;o||(o=this.options.params={}),Object.keys(a).forEach((function(e){t&&o.hasOwnProperty(e)||(o[e]=L(a[e],o,n.errors))}))}}},e.prototype._copyOptions=function(){var e={};if(this.options){var t=this.options.params;if(t){var n=e.params={};Object.keys(t).forEach((function(e){n[e]=t[e]}))}}return e},e.prototype.createSubContext=function(t,n,r){void 0===t&&(t=null);var i=n||this.element,a=new e(this._driver,i,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(i,r||0));return a.previousNode=this.previousNode,a.currentAnimateTimings=this.currentAnimateTimings,a.options=this._copyOptions(),a.updateOptions(t),a.currentQueryIndex=this.currentQueryIndex,a.currentQueryTotal=this.currentQueryTotal,a.parentContext=this,this.subContextCount++,a},e.prototype.transformIntoNewTimeline=function(e){return this.previousNode=de,this.currentTimeline=this.currentTimeline.fork(this.element,e),this.timelines.push(this.currentTimeline),this.currentTimeline},e.prototype.appendInstructionToTimeline=function(e,t,n){var r={duration:null!=t?t:e.duration,delay:this.currentTimeline.currentTime+(null!=n?n:0)+e.delay,easing:""},i=new fe(this._driver,e.element,e.keyframes,e.preStyleProps,e.postStyleProps,r,e.stretchStartingKeyframe);return this.timelines.push(i),r},e.prototype.incrementTime=function(e){this.currentTimeline.forwardTime(this.currentTimeline.duration+e)},e.prototype.delayNextStep=function(e){e>0&&this.currentTimeline.delayNextStep(e)},e.prototype.invokeQuery=function(e,t,n,i,a,o){var s=[];if(i&&s.push(this.element),e.length>0){e=(e=e.replace(se,"."+this._enterClassName)).replace(le,"."+this._leaveClassName);var l=1!=n,c=this._driver.query(this.element,e,l);0!==n&&(c=n<0?c.slice(c.length+n,c.length):c.slice(0,n)),s.push.apply(s,Object(r.g)(c))}return a||0!=s.length||o.push('`query("'+t+'")` returned zero elements. (Use `query("'+t+'", { optional: true })` if you wish to allow this.)'),s},e}(),pe=function(){function e(e,t,n,r){this._driver=e,this.element=t,this.startTime=n,this._elementTimelineStylesLookup=r,this.duration=0,this._previousKeyframe={},this._currentKeyframe={},this._keyframes=new Map,this._styleSummary={},this._pendingStyles={},this._backFill={},this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._localTimelineStyles=Object.create(this._backFill,{}),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(t),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(t,this._localTimelineStyles)),this._loadKeyframe()}return e.prototype.containsAnimation=function(){switch(this._keyframes.size){case 0:return!1;case 1:return this.getCurrentStyleProperties().length>0;default:return!0}},e.prototype.getCurrentStyleProperties=function(){return Object.keys(this._currentKeyframe)},Object.defineProperty(e.prototype,"currentTime",{get:function(){return this.startTime+this.duration},enumerable:!0,configurable:!0}),e.prototype.delayNextStep=function(e){var t=1==this._keyframes.size&&Object.keys(this._pendingStyles).length;this.duration||t?(this.forwardTime(this.currentTime+e),t&&this.snapshotCurrentStyles()):this.startTime+=e},e.prototype.fork=function(t,n){return this.applyStylesToKeyframe(),new e(this._driver,t,n||this.currentTime,this._elementTimelineStylesLookup)},e.prototype._loadKeyframe=function(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=Object.create(this._backFill,{}),this._keyframes.set(this.duration,this._currentKeyframe))},e.prototype.forwardFrame=function(){this.duration+=1,this._loadKeyframe()},e.prototype.forwardTime=function(e){this.applyStylesToKeyframe(),this.duration=e,this._loadKeyframe()},e.prototype._updateStyle=function(e,t){this._localTimelineStyles[e]=t,this._globalTimelineStyles[e]=t,this._styleSummary[e]={time:this.currentTime,value:t}},e.prototype.allowOnlyTimelineStyles=function(){return this._currentEmptyStepKeyframe!==this._currentKeyframe},e.prototype.applyEmptyStep=function(e){var t=this;e&&(this._previousKeyframe.easing=e),Object.keys(this._globalTimelineStyles).forEach((function(e){t._backFill[e]=t._globalTimelineStyles[e]||i.a,t._currentKeyframe[e]=i.a})),this._currentEmptyStepKeyframe=this._currentKeyframe},e.prototype.setStyles=function(e,t,n,r){var a=this;t&&(this._previousKeyframe.easing=t);var o=r&&r.params||{},s=function(e,t){var n,r={};return e.forEach((function(e){"*"===e?(n=n||Object.keys(t)).forEach((function(e){r[e]=i.a})):D(e,!1,r)})),r}(e,this._globalTimelineStyles);Object.keys(s).forEach((function(e){var t=L(s[e],o,n);a._pendingStyles[e]=t,a._localTimelineStyles.hasOwnProperty(e)||(a._backFill[e]=a._globalTimelineStyles.hasOwnProperty(e)?a._globalTimelineStyles[e]:i.a),a._updateStyle(e,t)}))},e.prototype.applyStylesToKeyframe=function(){var e=this,t=this._pendingStyles,n=Object.keys(t);0!=n.length&&(this._pendingStyles={},n.forEach((function(n){var r=t[n];e._currentKeyframe[n]=r})),Object.keys(this._localTimelineStyles).forEach((function(t){e._currentKeyframe.hasOwnProperty(t)||(e._currentKeyframe[t]=e._localTimelineStyles[t])})))},e.prototype.snapshotCurrentStyles=function(){var e=this;Object.keys(this._localTimelineStyles).forEach((function(t){var n=e._localTimelineStyles[t];e._pendingStyles[t]=n,e._updateStyle(t,n)}))},e.prototype.getFinalKeyframe=function(){return this._keyframes.get(this.duration)},Object.defineProperty(e.prototype,"properties",{get:function(){var e=[];for(var t in this._currentKeyframe)e.push(t);return e},enumerable:!0,configurable:!0}),e.prototype.mergeTimelineCollectedStyles=function(e){var t=this;Object.keys(e._styleSummary).forEach((function(n){var r=t._styleSummary[n],i=e._styleSummary[n];(!r||i.time>r.time)&&t._updateStyle(n,i.value)}))},e.prototype.buildKeyframes=function(){var e=this;this.applyStylesToKeyframe();var t=new Set,n=new Set,r=1===this._keyframes.size&&0===this.duration,a=[];this._keyframes.forEach((function(o,s){var l=D(o,!0);Object.keys(l).forEach((function(e){var r=l[e];r==i.l?t.add(e):r==i.a&&n.add(e)})),r||(l.offset=s/e.duration),a.push(l)}));var o=t.size?F(t.values()):[],s=n.size?F(n.values()):[];if(r){var l=a[0],c=z(l);l.offset=0,c.offset=1,a=[l,c]}return ae(this.element,a,o,s,this.duration,this.startTime,this.easing,!1)},e}(),fe=function(e){function t(t,n,r,i,a,o,s){void 0===s&&(s=!1);var l=e.call(this,t,n,o.delay)||this;return l.element=n,l.keyframes=r,l.preStyleProps=i,l.postStyleProps=a,l._stretchStartingKeyframe=s,l.timings={duration:o.duration,delay:o.delay,easing:o.easing},l}return Object(r.c)(t,e),t.prototype.containsAnimation=function(){return this.keyframes.length>1},t.prototype.buildKeyframes=function(){var e=this.keyframes,t=this.timings,n=t.delay,r=t.duration,i=t.easing;if(this._stretchStartingKeyframe&&n){var a=[],o=r+n,s=n/o,l=D(e[0],!1);l.offset=0,a.push(l);var c=D(e[0],!1);c.offset=me(s),a.push(c);for(var u=e.length-1,d=1;d<=u;d++){var h=D(e[d],!1),p=n+h.offset*r;h.offset=me(p/o),a.push(h)}r=o,n=0,i="",e=a}return ae(this.element,e,this.preStyleProps,this.postStyleProps,r,n,i,!0)},t}(pe);function me(e,t){void 0===t&&(t=3);var n=Math.pow(10,t-1);return Math.round(e*n)/n}!function(){function e(e,t){this._driver=e;var n=[],r=X(e,t,n);if(n.length){var i="animation validation failed:\n"+n.join("\n");throw new Error(i)}this._animationAst=r}e.prototype.buildTimelines=function(e,t,n,r,i){var a=Array.isArray(t)?I(t):t,o=Array.isArray(n)?I(n):n,s=[];i=i||new oe;var l=ce(this._driver,e,this._animationAst,"ng-enter","ng-leave",a,o,r,i,s);if(s.length){var c="animation building failed:\n"+s.join("\n");throw new Error(c)}return l}}(); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var ge,ye,be=function(){},ve=(function(){function e(){}e.prototype.normalizePropertyName=function(e,t){return e},e.prototype.normalizeStyleValue=function(e,t,n,r){return n}}(),function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(r.c)(t,e),t.prototype.normalizePropertyName=function(e,t){return V(e)},t.prototype.normalizeStyleValue=function(e,t,n,r){var i="",a=n.toString().trim();if(ke[t]&&0!==n&&"0"!==n)if("number"==typeof n)i="px";else{var o=n.match(/^[+-]?[\d\.]+([a-z]*)$/);o&&0==o[1].length&&r.push("Please provide a CSS unit value for "+e+":"+n)}return a+i},t}(be)),ke=(ge="width,height,minWidth,minHeight,maxWidth,maxHeight,left,top,bottom,right,fontSize,outlineWidth,outlineOffset,paddingTop,paddingLeft,paddingBottom,paddingRight,marginTop,marginLeft,marginBottom,marginRight,borderRadius,borderWidth,borderTopWidth,borderLeftWidth,borderRightWidth,borderBottomWidth,textIndent,perspective".split(","),ye={},ge.forEach((function(e){return ye[e]=!0})),ye);function we(e,t,n,r,i,a,o,s,l,c,u,d,h){return{type:0,element:e,triggerName:t,isRemovalTransition:i,fromState:n,fromStyles:a,toState:r,toStyles:o,timelines:s,queriedElements:l,preStyleProps:c,postStyleProps:u,totalTime:d,errors:h}}var _e={},je=function(){function e(e,t,n){this._triggerName=e,this.ast=t,this._stateStyles=n}return e.prototype.match=function(e,t,n,r){return function(e,t,n,r,i){return e.some((function(e){return e(t,n,r,i)}))}(this.ast.matchers,e,t,n,r)},e.prototype.buildStyles=function(e,t,n){var r=this._stateStyles["*"],i=this._stateStyles[e],a=r?r.buildStyles(t,n):{};return i?i.buildStyles(t,n):a},e.prototype.build=function(e,t,n,i,a,o,s,l,c,u){var d=[],p=this.ast.options&&this.ast.options.params||_e,f=s&&s.params||_e,m=this.buildStyles(n,f,d),g=l&&l.params||_e,y=this.buildStyles(i,g,d),b=new Set,v=new Map,k=new Map,w="void"===i,_={params:Object(r.a)(Object(r.a)({},p),g)},j=u?[]:ce(e,t,this.ast.animation,a,o,m,y,_,c,d),C=0;if(j.forEach((function(e){C=Math.max(e.duration+e.delay,C)})),d.length)return we(t,this._triggerName,n,i,w,m,y,[],[],v,k,C,d);j.forEach((function(e){var n=e.element,r=h(v,n,{});e.preStyleProps.forEach((function(e){return r[e]=!0}));var i=h(k,n,{});e.postStyleProps.forEach((function(e){return i[e]=!0})),n!==t&&b.add(n)}));var x=F(b.values());return we(t,this._triggerName,n,i,w,m,y,j,x,v,k,C)},e}();var Ce=function(){function e(e,t){this.styles=e,this.defaultParams=t}return e.prototype.buildStyles=function(e,t){var n={},r=z(this.defaultParams);return Object.keys(e).forEach((function(t){var n=e[t];null!=n&&(r[t]=n)})),this.styles.styles.forEach((function(e){if("string"!=typeof e){var i=e;Object.keys(i).forEach((function(e){var a=i[e];a.length>1&&(a=L(a,r,t)),n[e]=a}))}})),n},e}();var xe=function(){function e(e,t){var n,r,i=this;this.name=e,this.ast=t,this.transitionFactories=[],this.states={},t.states.forEach((function(e){var t=e.options&&e.options.params||{};i.states[e.name]=new Ce(e.style,t)})),Ee(this.states,"true","1"),Ee(this.states,"false","0"),t.transitions.forEach((function(t){i.transitionFactories.push(new je(e,t,i.states))})),this.fallbackTransition=(n=e,r=this.states,new je(n,{type:1,animation:{type:2,steps:[],options:null},matchers:[function(e,t){return!0}],options:null,queryCount:0,depCount:0},r))}return Object.defineProperty(e.prototype,"containsQueries",{get:function(){return this.ast.queryCount>0},enumerable:!0,configurable:!0}),e.prototype.matchTransition=function(e,t,n,r){return this.transitionFactories.find((function(i){return i.match(e,t,n,r)}))||null},e.prototype.matchStyles=function(e,t,n){return this.fallbackTransition.buildStyles(e,t,n)},e}();function Ee(e,t,n){e.hasOwnProperty(t)?e.hasOwnProperty(n)||(e[n]=e[t]):e.hasOwnProperty(n)&&(e[t]=e[n])} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var Se=new oe,Te=function(){function e(e,t,n){this.bodyNode=e,this._driver=t,this._normalizer=n,this._animations={},this._playersById={},this.players=[]}return e.prototype.register=function(e,t){var n=[],r=X(this._driver,t,n);if(n.length)throw new Error("Unable to build the animation due to the following errors: "+n.join("\n"));this._animations[e]=r},e.prototype._buildPlayer=function(e,t,n){var r=e.element,i=l(this._driver,this._normalizer,0,e.keyframes,t,n);return this._driver.animate(r,i,e.duration,e.delay,e.easing,[],!0)},e.prototype.create=function(e,t,n){var r=this;void 0===n&&(n={});var a,o=[],l=this._animations[e],c=new Map;if(l?(a=ce(this._driver,t,l,"ng-enter","ng-leave",{},{},n,Se,o)).forEach((function(e){var t=h(c,e.element,{});e.postStyleProps.forEach((function(e){return t[e]=null}))})):(o.push("The requested animation doesn't exist or has already been destroyed"),a=[]),o.length)throw new Error("Unable to create the animation due to the following errors: "+o.join("\n"));c.forEach((function(e,t){Object.keys(e).forEach((function(n){e[n]=r._driver.computeStyle(t,n,i.a)}))}));var u=s(a.map((function(e){var t=c.get(e.element);return r._buildPlayer(e,{},t)})));return this._playersById[e]=u,u.onDestroy((function(){return r.destroy(e)})),this.players.push(u),u},e.prototype.destroy=function(e){var t=this._getPlayer(e);t.destroy(),delete this._playersById[e];var n=this.players.indexOf(t);n>=0&&this.players.splice(n,1)},e.prototype._getPlayer=function(e){var t=this._playersById[e];if(!t)throw new Error("Unable to find the timeline player referenced by "+e);return t},e.prototype.listen=function(e,t,n,r){var i=d(t,"","","");return c(this._getPlayer(e),n,i,r),function(){}},e.prototype.command=function(e,t,n,r){if("register"!=n)if("create"!=n){var i=this._getPlayer(e);switch(n){case"play":i.play();break;case"pause":i.pause();break;case"reset":i.reset();break;case"restart":i.restart();break;case"finish":i.finish();break;case"init":i.init();break;case"setPosition":i.setPosition(parseFloat(r[0]));break;case"destroy":this.destroy(e)}}else{var a=r[0]||{};this.create(e,t,a)}else this.register(e,r[0])},e}(),Oe=[],ze={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},Ie={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},De=function(){function e(e,t){void 0===t&&(t=""),this.namespaceId=t;var n=e&&e.hasOwnProperty("value"),r=n?e.value:e;if(this.value=function(e){return null!=e?e:null}(r),n){var i=z(e);delete i.value,this.options=i}else this.options={};this.options.params||(this.options.params={})}return Object.defineProperty(e.prototype,"params",{get:function(){return this.options.params},enumerable:!0,configurable:!0}),e.prototype.absorbOptions=function(e){var t=e.params;if(t){var n=this.options.params;Object.keys(t).forEach((function(e){null==n[e]&&(n[e]=t[e])}))}},e}(),Ae=new De("void"),Ne=function(){function e(e,t,n){this.id=e,this.hostElement=t,this._engine=n,this.players=[],this._triggers={},this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+e,Fe(t,this._hostClassName)}return e.prototype.listen=function(e,t,n,r){var i,a=this;if(!this._triggers.hasOwnProperty(t))throw new Error('Unable to listen on the animation trigger event "'+n+'" because the animation trigger "'+t+"\" doesn't exist!");if(null==n||0==n.length)throw new Error('Unable to listen on the animation trigger "'+t+'" because the provided event is undefined!');if("start"!=(i=n)&&"done"!=i)throw new Error('The provided animation trigger event "'+n+'" for the animation trigger "'+t+'" is not supported!');var o=h(this._elementListeners,e,[]),s={name:t,phase:n,callback:r};o.push(s);var l=h(this._engine.statesByElement,e,{});return l.hasOwnProperty(t)||(Fe(e,"ng-trigger"),Fe(e,"ng-trigger-"+t),l[t]=Ae),function(){a._engine.afterFlush((function(){var e=o.indexOf(s);e>=0&&o.splice(e,1),a._triggers[t]||delete l[t]}))}},e.prototype.register=function(e,t){return!this._triggers[e]&&(this._triggers[e]=t,!0)},e.prototype._getTrigger=function(e){var t=this._triggers[e];if(!t)throw new Error('The provided animation trigger "'+e+'" has not been registered!');return t},e.prototype.trigger=function(e,t,n,r){var i=this;void 0===r&&(r=!0);var a=this._getTrigger(t),o=new Re(this.id,t,e),s=this._engine.statesByElement.get(e);s||(Fe(e,"ng-trigger"),Fe(e,"ng-trigger-"+t),this._engine.statesByElement.set(e,s={}));var l=s[t],c=new De(n,this.id);if(!(n&&n.hasOwnProperty("value"))&&l&&c.absorbOptions(l.options),s[t]=c,l||(l=Ae),"void"===c.value||l.value!==c.value){var u=h(this._engine.playersByElement,e,[]);u.forEach((function(e){e.namespaceId==i.id&&e.triggerName==t&&e.queued&&e.destroy()}));var d=a.matchTransition(l.value,c.value,e,c.params),p=!1;if(!d){if(!r)return;d=a.fallbackTransition,p=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:t,transition:d,fromState:l,toState:c,player:o,isFallbackTransition:p}),p||(Fe(e,"ng-animate-queued"),o.onStart((function(){Ue(e,"ng-animate-queued")}))),o.onDone((function(){var t=i.players.indexOf(o);t>=0&&i.players.splice(t,1);var n=i._engine.playersByElement.get(e);if(n){var r=n.indexOf(o);r>=0&&n.splice(r,1)}})),this.players.push(o),u.push(o),o}if(!function(e,t){var n=Object.keys(e),r=Object.keys(t);if(n.length!=r.length)return!1;for(var i=0;i=0){for(var r=!1,i=n;i>=0;i--){var a=this._namespaceList[i];if(this.driver.containsElement(a.hostElement,t)){this._namespaceList.splice(i+1,0,e),r=!0;break}}r||this._namespaceList.splice(0,0,e)}else this._namespaceList.push(e);return this.namespacesByHostElement.set(t,e),e},e.prototype.register=function(e,t){var n=this._namespaceLookup[e];return n||(n=this.createNamespace(e,t)),n},e.prototype.registerTrigger=function(e,t,n){var r=this._namespaceLookup[e];r&&r.register(t,n)&&this.totalAnimations++},e.prototype.destroy=function(e,t){var n=this;if(e){var r=this._fetchNamespace(e);this.afterFlush((function(){n.namespacesByHostElement.delete(r.hostElement),delete n._namespaceLookup[e];var t=n._namespaceList.indexOf(r);t>=0&&n._namespaceList.splice(t,1)})),this.afterFlushAnimationsDone((function(){return r.destroy(t)}))}},e.prototype._fetchNamespace=function(e){return this._namespaceLookup[e]},e.prototype.fetchNamespacesByElement=function(e){var t=new Set,n=this.statesByElement.get(e);if(n)for(var r=Object.keys(n),i=0;i=0&&this.collectedLeaveElements.splice(a,1)}if(e){var o=this._fetchNamespace(e);o&&o.insertNode(t,n)}r&&this.collectEnterElement(t)}},e.prototype.collectEnterElement=function(e){this.collectedEnterElements.push(e)},e.prototype.markElementAsDisabled=function(e,t){t?this.disabledNodes.has(e)||(this.disabledNodes.add(e),Fe(e,"ng-animate-disabled")):this.disabledNodes.has(e)&&(this.disabledNodes.delete(e),Ue(e,"ng-animate-disabled"))},e.prototype.removeNode=function(e,t,n,r){if(Me(t)){var i=e?this._fetchNamespace(e):null;if(i?i.removeNode(t,r):this.markElementAsRemoved(e,t,!1,r),n){var a=this.namespacesByHostElement.get(t);a&&a.id!==e&&a.removeNode(t,r)}}else this._onRemovalComplete(t,r)},e.prototype.markElementAsRemoved=function(e,t,n,r){this.collectedLeaveElements.push(t),t.__ng_removed={namespaceId:e,setForRemoval:r,hasAnimation:n,removedBeforeQueried:!1}},e.prototype.listen=function(e,t,n,r,i){return Me(t)?this._fetchNamespace(e).listen(t,n,r,i):function(){}},e.prototype._buildInstruction=function(e,t,n,r,i){return e.transition.build(this.driver,e.element,e.fromState.value,e.toState.value,n,r,e.fromState.options,e.toState.options,t,i)},e.prototype.destroyInnerAnimations=function(e){var t=this,n=this.driver.query(e,".ng-trigger",!0);n.forEach((function(e){return t.destroyActiveAnimationsForElement(e)})),0!=this.playersByQueriedElement.size&&(n=this.driver.query(e,".ng-animating",!0)).forEach((function(e){return t.finishActiveQueriedAnimationOnElement(e)}))},e.prototype.destroyActiveAnimationsForElement=function(e){var t=this.playersByElement.get(e);t&&t.forEach((function(e){e.queued?e.markedForDestroy=!0:e.destroy()}))},e.prototype.finishActiveQueriedAnimationOnElement=function(e){var t=this.playersByQueriedElement.get(e);t&&t.forEach((function(e){return e.finish()}))},e.prototype.whenRenderingDone=function(){var e=this;return new Promise((function(t){if(e.players.length)return s(e.players).onDone((function(){return t()}));t()}))},e.prototype.processLeaveNode=function(e){var t=this,n=e.__ng_removed;if(n&&n.setForRemoval){if(e.__ng_removed=ze,n.namespaceId){this.destroyInnerAnimations(e);var r=this._fetchNamespace(n.namespaceId);r&&r.clearElementCache(e)}this._onRemovalComplete(e,n.setForRemoval)}this.driver.matchesElement(e,".ng-animate-disabled")&&this.markElementAsDisabled(e,!1),this.driver.query(e,".ng-animate-disabled",!0).forEach((function(e){t.markElementAsDisabled(e,!1)}))},e.prototype.flush=function(e){var t=this;void 0===e&&(e=-1);var n=[];if(this.newHostElements.size&&(this.newHostElements.forEach((function(e,n){return t._balanceNamespaceList(e,n)})),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(var r=0;r=0;T--){this._namespaceList[T].drainQueuedTransitions(t).forEach((function(e){var t=e.player,r=e.element;if(E.push(t),n.collectedEnterElements.length){var i=r.__ng_removed;if(i&&i.setForMove)return void t.destroy()}var s=!m||!n.driver.containsElement(m,r),l=C.get(r),f=b.get(r),g=n._buildInstruction(e,a,f,l,s);if(g.errors&&g.errors.length)S.push(g);else{if(s)return t.onStart((function(){return R(r,g.fromStyles)})),t.onDestroy((function(){return P(r,g.toStyles)})),void o.push(t);if(e.isFallbackTransition)return t.onStart((function(){return R(r,g.fromStyles)})),t.onDestroy((function(){return P(r,g.toStyles)})),void o.push(t);g.timelines.forEach((function(e){return e.stretchStartingKeyframe=!0})),a.append(r,g.timelines);var y={instruction:g,player:t,element:r};c.push(y),g.queriedElements.forEach((function(e){return h(u,e,[]).push(t)})),g.preStyleProps.forEach((function(e,t){var n=Object.keys(e);if(n.length){var r=d.get(t);r||d.set(t,r=new Set),n.forEach((function(e){return r.add(e)}))}})),g.postStyleProps.forEach((function(e,t){var n=Object.keys(e),r=p.get(t);r||p.set(t,r=new Set),n.forEach((function(e){return r.add(e)}))}))}}))}if(S.length){var O=[];S.forEach((function(e){O.push("@"+e.triggerName+" has failed due to:\n"),e.errors.forEach((function(e){return O.push("- "+e+"\n")}))})),E.forEach((function(e){return e.destroy()})),this.reportError(O)}var z=new Map,I=new Map;c.forEach((function(e){var t=e.element;a.has(t)&&(I.set(t,t),n._beforeAnimationBuild(e.player.namespaceId,e.instruction,z))})),o.forEach((function(e){var t=e.element;n._getPreviousPlayers(t,!1,e.namespaceId,e.triggerName,null).forEach((function(e){h(z,t,[]).push(e),e.destroy()}))}));var D=k.filter((function(e){return He(e,d,p)})),A=new Map;Be(A,this.driver,_,p,i.a).forEach((function(e){He(e,d,p)&&D.push(e)}));var N=new Map;y.forEach((function(e,t){Be(N,n.driver,new Set(e),d,i.l)})),D.forEach((function(e){var t=A.get(e),n=N.get(e);A.set(e,Object(r.a)(Object(r.a)({},t),n))}));var M=[],q=[],B={};c.forEach((function(e){var t=e.element,r=e.player,i=e.instruction;if(a.has(t)){if(f.has(t))return r.onDestroy((function(){return P(t,i.toStyles)})),r.disabled=!0,r.overrideTotalTime(i.totalTime),void o.push(r);var c=B;if(I.size>1){for(var u=t,d=[];u=u.parentNode;){var h=I.get(u);if(h){c=h;break}d.push(u)}d.forEach((function(e){return I.set(e,c)}))}var p=n._buildAnimation(r.namespaceId,i,z,l,N,A);if(r.setRealPlayer(p),c===B)M.push(r);else{var m=n.playersByElement.get(c);m&&m.length&&(r.parentPlayer=s(m)),o.push(r)}}else R(t,i.fromStyles),r.onDestroy((function(){return P(t,i.toStyles)})),q.push(r),f.has(t)&&o.push(r)})),q.forEach((function(e){var t=l.get(e.element);if(t&&t.length){var n=s(t);e.setRealPlayer(n)}})),o.forEach((function(e){e.parentPlayer?e.syncPlayerEvents(e.parentPlayer):e.destroy()}));for(var L=0;L0?this.driver.animate(e.element,t,e.duration,e.delay,e.easing,n):new i.d(e.duration,e.delay)},e}(),Re=function(){function e(e,t,n){this.namespaceId=e,this.triggerName=t,this.element=n,this._player=new i.d,this._containsRealPlayer=!1,this._queuedCallbacks={},this.destroyed=!1,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}return e.prototype.setRealPlayer=function(e){var t=this;this._containsRealPlayer||(this._player=e,Object.keys(this._queuedCallbacks).forEach((function(n){t._queuedCallbacks[n].forEach((function(t){return c(e,n,void 0,t)}))})),this._queuedCallbacks={},this._containsRealPlayer=!0,this.overrideTotalTime(e.totalTime),this.queued=!1)},e.prototype.getRealPlayer=function(){return this._player},e.prototype.overrideTotalTime=function(e){this.totalTime=e},e.prototype.syncPlayerEvents=function(e){var t=this,n=this._player;n.triggerCallback&&e.onStart((function(){return n.triggerCallback("start")})),e.onDone((function(){return t.finish()})),e.onDestroy((function(){return t.destroy()}))},e.prototype._queueEvent=function(e,t){h(this._queuedCallbacks,e,[]).push(t)},e.prototype.onDone=function(e){this.queued&&this._queueEvent("done",e),this._player.onDone(e)},e.prototype.onStart=function(e){this.queued&&this._queueEvent("start",e),this._player.onStart(e)},e.prototype.onDestroy=function(e){this.queued&&this._queueEvent("destroy",e),this._player.onDestroy(e)},e.prototype.init=function(){this._player.init()},e.prototype.hasStarted=function(){return!this.queued&&this._player.hasStarted()},e.prototype.play=function(){!this.queued&&this._player.play()},e.prototype.pause=function(){!this.queued&&this._player.pause()},e.prototype.restart=function(){!this.queued&&this._player.restart()},e.prototype.finish=function(){this._player.finish()},e.prototype.destroy=function(){this.destroyed=!0,this._player.destroy()},e.prototype.reset=function(){!this.queued&&this._player.reset()},e.prototype.setPosition=function(e){this.queued||this._player.setPosition(e)},e.prototype.getPosition=function(){return this.queued?0:this._player.getPosition()},e.prototype.triggerCallback=function(e){var t=this._player;t.triggerCallback&&t.triggerCallback(e)},e}();function Me(e){return e&&1===e.nodeType}function qe(e,t){var n=e.style.display;return e.style.display=null!=t?t:"none",n}function Be(e,t,n,r,i){var a=[];n.forEach((function(e){return a.push(qe(e))}));var o=[];r.forEach((function(n,r){var a={};n.forEach((function(e){var n=a[e]=t.computeStyle(r,e,i);n&&0!=n.length||(r.__ng_removed=Ie,o.push(r))})),e.set(r,a)}));var s=0;return n.forEach((function(e){return qe(e,a[s++])})),o}function Le(e,t){var n=new Map;if(e.forEach((function(e){return n.set(e,[])})),0==t.length)return n;var r=new Set(t),i=new Map;return t.forEach((function(e){var t=function e(t){if(!t)return 1;var a=i.get(t);if(a)return a;var o=t.parentNode;return a=n.has(o)?o:r.has(o)?1:e(o),i.set(t,a),a}(e);1!==t&&n.get(t).push(e)})),n}function Fe(e,t){if(e.classList)e.classList.add(t);else{var n=e.$$classes;n||(n=e.$$classes={}),n[t]=!0}}function Ue(e,t){if(e.classList)e.classList.remove(t);else{var n=e.$$classes;n&&delete n[t]}}function Ve(e,t,n){s(n).onDone((function(){return e.processLeaveNode(t)}))}function He(e,t,n){var r=n.get(e);if(!r)return!1;var i=t.get(e);return i?r.forEach((function(e){return i.add(e)})):t.set(e,r),n.delete(e),!0}var Ke=function(){function e(e,t,n){var r=this;this.bodyNode=e,this._driver=t,this._triggerCache={},this.onRemovalComplete=function(e,t){},this._transitionEngine=new Pe(e,t,n),this._timelineEngine=new Te(e,t,n),this._transitionEngine.onRemovalComplete=function(e,t){return r.onRemovalComplete(e,t)}}return e.prototype.registerTrigger=function(e,t,n,r,i){var a=e+"-"+r,o=this._triggerCache[a];if(!o){var s=[],l=X(this._driver,i,s);if(s.length)throw new Error('The animation trigger "'+r+'" has failed to build due to the following errors:\n - '+s.join("\n - "));o=function(e,t){return new xe(e,t)}(r,l),this._triggerCache[a]=o}this._transitionEngine.registerTrigger(t,r,o)},e.prototype.register=function(e,t){this._transitionEngine.register(e,t)},e.prototype.destroy=function(e,t){this._transitionEngine.destroy(e,t)},e.prototype.onInsert=function(e,t,n,r){this._transitionEngine.insertNode(e,t,n,r)},e.prototype.onRemove=function(e,t,n,r){this._transitionEngine.removeNode(e,t,r||!1,n)},e.prototype.disableAnimations=function(e,t){this._transitionEngine.markElementAsDisabled(e,t)},e.prototype.process=function(e,t,n,i){if("@"==n.charAt(0)){var a=Object(r.f)(p(n),2),o=a[0],s=a[1],l=i;this._timelineEngine.command(o,t,s,l)}else this._transitionEngine.trigger(e,t,n,i)},e.prototype.listen=function(e,t,n,i,a){if("@"==n.charAt(0)){var o=Object(r.f)(p(n),2),s=o[0],l=o[1];return this._timelineEngine.listen(s,t,l,a)}return this._transitionEngine.listen(e,t,n,i,a)},e.prototype.flush=function(e){void 0===e&&(e=-1),this._transitionEngine.flush(e)},Object.defineProperty(e.prototype,"players",{get:function(){return this._transitionEngine.players.concat(this._timelineEngine.players)},enumerable:!0,configurable:!0}),e.prototype.whenRenderingDone=function(){return this._transitionEngine.whenRenderingDone()},e}(); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function We(e,t){var n=null,r=null;return Array.isArray(t)&&t.length?(n=Qe(t[0]),t.length>1&&(r=Qe(t[t.length-1]))):t&&(n=Qe(t)),n||r?new Ge(e,n,r):null}var Ge=function(){function e(t,n,r){this._element=t,this._startStyles=n,this._endStyles=r,this._state=0;var i=e.initialStylesByElement.get(t);i||e.initialStylesByElement.set(t,i={}),this._initialStyles=i}return e.prototype.start=function(){this._state<1&&(this._startStyles&&P(this._element,this._startStyles,this._initialStyles),this._state=1)},e.prototype.finish=function(){this.start(),this._state<2&&(P(this._element,this._initialStyles),this._endStyles&&(P(this._element,this._endStyles),this._endStyles=null),this._state=1)},e.prototype.destroy=function(){this.finish(),this._state<3&&(e.initialStylesByElement.delete(this._element),this._startStyles&&(R(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(R(this._element,this._endStyles),this._endStyles=null),P(this._element,this._initialStyles),this._state=3)},e.initialStylesByElement=new WeakMap,e}();function Qe(e){for(var t=null,n=Object.keys(e),r=0;r=this._delay&&n>=this._duration&&this.finish()},e.prototype.finish=function(){this._finished||(this._finished=!0,this._onDoneFn(),et(this._element,this._eventFn,!0))},e.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.finish(),function(e,t){var n=nt(e,"").split(","),r=Xe(n,t);if(r>=0){n.splice(r,1);var i=n.join(",");tt(e,"",i)}}(this._element,this._name))},e}();function Ze(e,t,n){tt(e,"PlayState",n,Je(e,t))}function Je(e,t){var n=nt(e,"");return n.indexOf(",")>0?Xe(n.split(","),t):Xe([n],t)}function Xe(e,t){for(var n=0;n=0)return n;return-1}function et(e,t,n){n?e.removeEventListener("animationend",t):e.addEventListener("animationend",t)}function tt(e,t,n,r){var i="animation"+t;if(null!=r){var a=e.style[i];if(a.length){var o=a.split(",");o[r]=n,n=o.join(",")}}e.style[i]=n}function nt(e,t){return e.style["animation"+t]}var rt=function(){function e(e,t,n,r,i,a,o,s){this.element=e,this.keyframes=t,this.animationName=n,this._duration=r,this._delay=i,this._finalStyles=o,this._specialStyles=s,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._started=!1,this.currentSnapshot={},this._state=0,this.easing=a||"linear",this.totalTime=r+i,this._buildStyler()}return e.prototype.onStart=function(e){this._onStartFns.push(e)},e.prototype.onDone=function(e){this._onDoneFns.push(e)},e.prototype.onDestroy=function(e){this._onDestroyFns.push(e)},e.prototype.destroy=function(){this.init(),this._state>=4||(this._state=4,this._styler.destroy(),this._flushStartFns(),this._flushDoneFns(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach((function(e){return e()})),this._onDestroyFns=[])},e.prototype._flushDoneFns=function(){this._onDoneFns.forEach((function(e){return e()})),this._onDoneFns=[]},e.prototype._flushStartFns=function(){this._onStartFns.forEach((function(e){return e()})),this._onStartFns=[]},e.prototype.finish=function(){this.init(),this._state>=3||(this._state=3,this._styler.finish(),this._flushStartFns(),this._specialStyles&&this._specialStyles.finish(),this._flushDoneFns())},e.prototype.setPosition=function(e){this._styler.setPosition(e)},e.prototype.getPosition=function(){return this._styler.getPosition()},e.prototype.hasStarted=function(){return this._state>=2},e.prototype.init=function(){if(!(this._state>=1)){this._state=1;this.element;this._styler.apply(),this._delay&&this._styler.pause()}},e.prototype.play=function(){this.init(),this.hasStarted()||(this._flushStartFns(),this._state=2,this._specialStyles&&this._specialStyles.start()),this._styler.resume()},e.prototype.pause=function(){this.init(),this._styler.pause()},e.prototype.restart=function(){this.reset(),this.play()},e.prototype.reset=function(){this._styler.destroy(),this._buildStyler(),this._styler.apply()},e.prototype._buildStyler=function(){var e=this;this._styler=new Ye(this.element,this.animationName,this._duration,this._delay,this.easing,"forwards",(function(){return e.finish()}))},e.prototype.triggerCallback=function(e){var t="start"==e?this._onStartFns:this._onDoneFns;t.forEach((function(e){return e()})),t.length=0},e.prototype.beforeDestroy=function(){var e=this;this.init();var t={};if(this.hasStarted()){var n=this._state>=3;Object.keys(this._finalStyles).forEach((function(r){"offset"!=r&&(t[r]=n?e._finalStyles[r]:G(e.element,r))}))}this.currentSnapshot=t},e}(),it=function(e){function t(t,n){var r=e.call(this)||this;return r.element=t,r._startingStyles={},r.__initialized=!1,r._styles=C(n),r}return Object(r.c)(t,e),t.prototype.init=function(){var t=this;!this.__initialized&&this._startingStyles&&(this.__initialized=!0,Object.keys(this._styles).forEach((function(e){t._startingStyles[e]=t.element.style[e]})),e.prototype.init.call(this))},t.prototype.play=function(){var t=this;this._startingStyles&&(this.init(),Object.keys(this._styles).forEach((function(e){return t.element.style.setProperty(e,t._styles[e])})),e.prototype.play.call(this))},t.prototype.destroy=function(){var t=this;this._startingStyles&&(Object.keys(this._startingStyles).forEach((function(e){var n=t._startingStyles[e];n?t.element.style.setProperty(e,n):t.element.style.removeProperty(e)})),this._startingStyles=null,e.prototype.destroy.call(this))},t}(i.d),at=function(){function e(){this._count=0,this._head=document.querySelector("head"),this._warningIssued=!1}return e.prototype.validateStyleProperty=function(e){return k(e)},e.prototype.matchesElement=function(e,t){return w(e,t)},e.prototype.containsElement=function(e,t){return _(e,t)},e.prototype.query=function(e,t,n){return j(e,t,n)},e.prototype.computeStyle=function(e,t,n){return window.getComputedStyle(e)[t]},e.prototype.buildKeyframeElement=function(e,t,n){n=n.map((function(e){return C(e)}));var r="@keyframes "+t+" {\n",i="";n.forEach((function(e){i=" ";var t=parseFloat(e.offset);r+=""+i+100*t+"% {\n",i+=" ",Object.keys(e).forEach((function(t){var n=e[t];switch(t){case"offset":return;case"easing":return void(n&&(r+=i+"animation-timing-function: "+n+";\n"));default:return void(r+=""+i+t+": "+n+";\n")}})),r+=i+"}\n"})),r+="}\n";var a=document.createElement("style");return a.innerHTML=r,a},e.prototype.animate=function(e,t,n,r,i,a,o){void 0===a&&(a=[]),o&&this._notifyFaultyScrubber();var s=a.filter((function(e){return e instanceof rt})),l={};H(n,r)&&s.forEach((function(e){var t=e.currentSnapshot;Object.keys(t).forEach((function(e){return l[e]=t[e]}))}));var c=function(e){var t={};if(e){(Array.isArray(e)?e:[e]).forEach((function(e){Object.keys(e).forEach((function(n){"offset"!=n&&"easing"!=n&&(t[n]=e[n])}))}))}return t}(t=K(e,t,l));if(0==n)return new it(e,c);var u="gen_css_kf_"+this._count++,d=this.buildKeyframeElement(e,u,t);document.querySelector("head").appendChild(d);var h=We(e,t),p=new rt(e,t,u,n,r,i,c,h);return p.onDestroy((function(){var e;(e=d).parentNode.removeChild(e)})),p},e.prototype._notifyFaultyScrubber=function(){this._warningIssued||(console.warn("@angular/animations: please load the web-animations.js polyfill to allow programmatic access...\n"," visit http://bit.ly/IWukam to learn more about using the web-animation-js polyfill."),this._warningIssued=!0)},e}();var ot=function(){function e(e,t,n,r){this.element=e,this.keyframes=t,this.options=n,this._specialStyles=r,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this.time=0,this.parentPlayer=null,this.currentSnapshot={},this._duration=n.duration,this._delay=n.delay||0,this.time=this._duration+this._delay}return e.prototype._onFinish=function(){this._finished||(this._finished=!0,this._onDoneFns.forEach((function(e){return e()})),this._onDoneFns=[])},e.prototype.init=function(){this._buildPlayer(),this._preparePlayerBeforeStart()},e.prototype._buildPlayer=function(){var e=this;if(!this._initialized){this._initialized=!0;var t=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,t,this.options),this._finalKeyframe=t.length?t[t.length-1]:{},this.domPlayer.addEventListener("finish",(function(){return e._onFinish()}))}},e.prototype._preparePlayerBeforeStart=function(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()},e.prototype._triggerWebAnimation=function(e,t,n){return e.animate(t,n)},e.prototype.onStart=function(e){this._onStartFns.push(e)},e.prototype.onDone=function(e){this._onDoneFns.push(e)},e.prototype.onDestroy=function(e){this._onDestroyFns.push(e)},e.prototype.play=function(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach((function(e){return e()})),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()},e.prototype.pause=function(){this.init(),this.domPlayer.pause()},e.prototype.finish=function(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()},e.prototype.reset=function(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1},e.prototype._resetDomPlayerState=function(){this.domPlayer&&this.domPlayer.cancel()},e.prototype.restart=function(){this.reset(),this.play()},e.prototype.hasStarted=function(){return this._started},e.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach((function(e){return e()})),this._onDestroyFns=[])},e.prototype.setPosition=function(e){this.domPlayer.currentTime=e*this.time},e.prototype.getPosition=function(){return this.domPlayer.currentTime/this.time},Object.defineProperty(e.prototype,"totalTime",{get:function(){return this._delay+this._duration},enumerable:!0,configurable:!0}),e.prototype.beforeDestroy=function(){var e=this,t={};this.hasStarted()&&Object.keys(this._finalKeyframe).forEach((function(n){"offset"!=n&&(t[n]=e._finished?e._finalKeyframe[n]:G(e.element,n))})),this.currentSnapshot=t},e.prototype.triggerCallback=function(e){var t="start"==e?this._onStartFns:this._onDoneFns;t.forEach((function(e){return e()})),t.length=0},e}(),st=function(){function e(){this._isNativeImpl=/\{\s*\[native\s+code\]\s*\}/.test(ct().toString()),this._cssKeyframesDriver=new at}return e.prototype.validateStyleProperty=function(e){return k(e)},e.prototype.matchesElement=function(e,t){return w(e,t)},e.prototype.containsElement=function(e,t){return _(e,t)},e.prototype.query=function(e,t,n){return j(e,t,n)},e.prototype.computeStyle=function(e,t,n){return window.getComputedStyle(e)[t]},e.prototype.overrideWebAnimationsSupport=function(e){this._isNativeImpl=e},e.prototype.animate=function(e,t,n,r,i,a,o){if(void 0===a&&(a=[]),!o&&!this._isNativeImpl)return this._cssKeyframesDriver.animate(e,t,n,r,i,a);var s={duration:n,delay:r,fill:0==r?"both":"forwards"};i&&(s.easing=i);var l={},c=a.filter((function(e){return e instanceof ot}));H(n,r)&&c.forEach((function(e){var t=e.currentSnapshot;Object.keys(t).forEach((function(e){return l[e]=t[e]}))}));var u=We(e,t=K(e,t=t.map((function(e){return D(e,!1)})),l));return new ot(e,t,s,u)},e}();function lt(){return"function"==typeof ct()}function ct(){return"undefined"!=typeof window&&void 0!==window.document&&Element.prototype.animate||{}} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */}).call(this,n(126))},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){var r=n(2),i=n(55),a=n(21);e.exports=function(e,t){var n=(i.Object||{})[e]||Object[e],o={};o[e]=t(n),r(r.S+r.F*a((function(){n(1)})),"Object",o)}},function(e,t,n){var r=n(62),i=n(115),a=n(42),o=n(31),s=n(234);e.exports=function(e,t){var n=1==e,l=2==e,c=3==e,u=4==e,d=6==e,h=5==e||d,p=t||s;return function(t,s,f){for(var m,g,y=a(t),b=i(y),v=r(s,f,3),k=o(b.length),w=0,_=n?p(t,k):l?p(t,0):void 0;k>w;w++)if((h||w in b)&&(g=v(m=b[w],w,y),e))if(n)_[w]=g;else if(g)switch(e){case 3:return!0;case 5:return m;case 6:return w;case 2:_.push(m)}else if(u)return!1;return d?-1:c||u?u:_}}},,,function(e,t,n){"use strict";n.r(t),n.d(t,"BrowserModule",(function(){return fe})),n.d(t,"BrowserTransferStateModule",(function(){return Te})),n.d(t,"By",(function(){return Oe})),n.d(t,"DomSanitizer",(function(){return ne})),n.d(t,"EVENT_MANAGER_PLUGINS",(function(){return w})),n.d(t,"EventManager",(function(){return _})),n.d(t,"HAMMER_GESTURE_CONFIG",(function(){return V})),n.d(t,"HAMMER_LOADER",(function(){return H})),n.d(t,"HammerGestureConfig",(function(){return K})),n.d(t,"HammerModule",(function(){return Y})),n.d(t,"Meta",(function(){return ge})),n.d(t,"Title",(function(){return be})),n.d(t,"TransferState",(function(){return Ee})),n.d(t,"VERSION",(function(){return ze})),n.d(t,"disableDebugTools",(function(){return je})),n.d(t,"enableDebugTools",(function(){return _e})),n.d(t,"makeStateKey",(function(){return xe})),n.d(t,"platformBrowser",(function(){return he})),n.d(t,"ɵBROWSER_SANITIZATION_PROVIDERS",(function(){return de})),n.d(t,"ɵBROWSER_SANITIZATION_PROVIDERS__POST_R3__",(function(){return ue})),n.d(t,"ɵBrowserDomAdapter",(function(){return l})),n.d(t,"ɵBrowserGetTestability",(function(){return p})),n.d(t,"ɵDomEventsPlugin",(function(){return F})),n.d(t,"ɵDomRendererFactory2",(function(){return P})),n.d(t,"ɵDomSanitizerImpl",(function(){return ie})),n.d(t,"ɵDomSharedStylesHost",(function(){return x})),n.d(t,"ɵELEMENT_PROBE_PROVIDERS",(function(){return k})),n.d(t,"ɵELEMENT_PROBE_PROVIDERS__POST_R3__",(function(){return b})),n.d(t,"ɵHAMMER_PROVIDERS__POST_R3__",(function(){return G})),n.d(t,"ɵHammerGesturesPlugin",(function(){return W})),n.d(t,"ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS",(function(){return ce})),n.d(t,"ɵKeyEventsPlugin",(function(){return te})),n.d(t,"ɵNAMESPACE_URIS",(function(){return E})),n.d(t,"ɵSharedStylesHost",(function(){return C})),n.d(t,"ɵTRANSITION_ID",(function(){return u})),n.d(t,"ɵangular_packages_platform_browser_platform_browser_a",(function(){return oe})),n.d(t,"ɵangular_packages_platform_browser_platform_browser_b",(function(){return se})),n.d(t,"ɵangular_packages_platform_browser_platform_browser_c",(function(){return pe})),n.d(t,"ɵangular_packages_platform_browser_platform_browser_d",(function(){return me})),n.d(t,"ɵangular_packages_platform_browser_platform_browser_e",(function(){return ye})),n.d(t,"ɵangular_packages_platform_browser_platform_browser_f",(function(){return Se})),n.d(t,"ɵangular_packages_platform_browser_platform_browser_g",(function(){return j})),n.d(t,"ɵangular_packages_platform_browser_platform_browser_h",(function(){return Q})),n.d(t,"ɵangular_packages_platform_browser_platform_browser_i",(function(){return $})),n.d(t,"ɵangular_packages_platform_browser_platform_browser_j",(function(){return re})),n.d(t,"ɵangular_packages_platform_browser_platform_browser_k",(function(){return d})),n.d(t,"ɵangular_packages_platform_browser_platform_browser_l",(function(){return h})),n.d(t,"ɵangular_packages_platform_browser_platform_browser_m",(function(){return y})),n.d(t,"ɵangular_packages_platform_browser_platform_browser_n",(function(){return v})),n.d(t,"ɵangular_packages_platform_browser_platform_browser_o",(function(){return s})),n.d(t,"ɵescapeHtml",(function(){return Ce})),n.d(t,"ɵflattenStyles",(function(){return A})),n.d(t,"ɵinitDomAdapter",(function(){return ae})),n.d(t,"ɵshimContentAttribute",(function(){return I})),n.d(t,"ɵshimHostAttribute",(function(){return D}));var r=n(1),i=n(4),a=n(0);n.d(t,"ɵgetDOM",(function(){return i["ɵgetDOM"]})); +/** + * @license Angular v9.1.12 + * (c) 2010-2020 Google LLC. https://angular.io/ + * License: MIT + */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +var o,s=function(e){function t(){return e.call(this)||this}return Object(r.c)(t,e),t.prototype.supportsDOMEvents=function(){return!0},t}(i["ɵDomAdapter"]),l=(function(){if(a["ɵglobal"].Node)a["ɵglobal"].Node.prototype.contains}(),function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(r.c)(t,e),t.makeCurrent=function(){Object(i["ɵsetRootDomAdapter"])(new t)},t.prototype.getProperty=function(e,t){return e[t]},t.prototype.log=function(e){window.console&&window.console.log&&window.console.log(e)},t.prototype.logGroup=function(e){window.console&&window.console.group&&window.console.group(e)},t.prototype.logGroupEnd=function(){window.console&&window.console.groupEnd&&window.console.groupEnd()},t.prototype.onAndCancel=function(e,t,n){return e.addEventListener(t,n,!1),function(){e.removeEventListener(t,n,!1)}},t.prototype.dispatchEvent=function(e,t){e.dispatchEvent(t)},t.prototype.remove=function(e){return e.parentNode&&e.parentNode.removeChild(e),e},t.prototype.getValue=function(e){return e.value},t.prototype.createElement=function(e,t){return(t=t||this.getDefaultDocument()).createElement(e)},t.prototype.createHtmlDocument=function(){return document.implementation.createHTMLDocument("fakeTitle")},t.prototype.getDefaultDocument=function(){return document},t.prototype.isElementNode=function(e){return e.nodeType===Node.ELEMENT_NODE},t.prototype.isShadowRoot=function(e){return e instanceof DocumentFragment},t.prototype.getGlobalEventTarget=function(e,t){return"window"===t?window:"document"===t?e:"body"===t?e.body:null},t.prototype.getHistory=function(){return window.history},t.prototype.getLocation=function(){return window.location},t.prototype.getBaseHref=function(e){var t=function(){if(!c&&!(c=document.querySelector("base")))return null;return c.getAttribute("href")}();return null==t?null:function(e){o||(o=document.createElement("a"));return o.setAttribute("href",e),"/"===o.pathname.charAt(0)?o.pathname:"/"+o.pathname} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */(t)},t.prototype.resetBaseElement=function(){c=null},t.prototype.getUserAgent=function(){return window.navigator.userAgent},t.prototype.performanceNow=function(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()},t.prototype.supportsCookies=function(){return!0},t.prototype.getCookie=function(e){return Object(i["ɵparseCookieValue"])(document.cookie,e)},t}(s)),c=null; +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var u=new a.InjectionToken("TRANSITION_ID");function d(e,t,n){return function(){n.get(a.ApplicationInitStatus).donePromise.then((function(){var n=Object(i["ɵgetDOM"])();Array.prototype.slice.apply(t.querySelectorAll("style[ng-transition]")).filter((function(t){return t.getAttribute("ng-transition")===e})).forEach((function(e){return n.remove(e)}))}))}}var h=[{provide:a.APP_INITIALIZER,useFactory:d,deps:[u,i.DOCUMENT,a.Injector],multi:!0}],p=function(){function e(){}return e.init=function(){Object(a.setTestabilityGetter)(new e)},e.prototype.addToWindow=function(e){a["ɵglobal"].getAngularTestability=function(t,n){void 0===n&&(n=!0);var r=e.findTestabilityInTree(t,n);if(null==r)throw new Error("Could not find testability for element.");return r},a["ɵglobal"].getAllAngularTestabilities=function(){return e.getAllTestabilities()},a["ɵglobal"].getAllAngularRootElements=function(){return e.getAllRootElements()};a["ɵglobal"].frameworkStabilizers||(a["ɵglobal"].frameworkStabilizers=[]),a["ɵglobal"].frameworkStabilizers.push((function(e){var t=a["ɵglobal"].getAllAngularTestabilities(),n=t.length,r=!1,i=function(t){r=r||t,0==--n&&e(r)};t.forEach((function(e){e.whenStable(i)}))}))},e.prototype.findTestabilityInTree=function(e,t,n){if(null==t)return null;var r=e.getTestability(t);return null!=r?r:n?Object(i["ɵgetDOM"])().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null},e}(); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function f(e,t){"undefined"!=typeof COMPILED&&COMPILED||((a["ɵglobal"].ng=a["ɵglobal"].ng||{})[e]=t)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var m={ApplicationRef:a.ApplicationRef,NgZone:a.NgZone};function g(e){return Object(a["ɵgetDebugNodeR2"])(e)}function y(e){return f("probe",g),f("coreTokens",Object(r.a)(Object(r.a)({},m),(e||[]).reduce((function(e,t){return e[t.name]=t.token,e}),{}))),function(){return g}}var b=[],v=[{provide:a.APP_INITIALIZER,useFactory:y,deps:[[a.NgProbeToken,new a.Optional]],multi:!0}],k=b,w=new a.InjectionToken("EventManagerPlugins"),_=function(){function e(e,t){var n=this;this._zone=t,this._eventNameToPlugin=new Map,e.forEach((function(e){return e.manager=n})),this._plugins=e.slice().reverse()}return e.prototype.addEventListener=function(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)},e.prototype.addGlobalEventListener=function(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)},e.prototype.getZone=function(){return this._zone},e.prototype._findPluginFor=function(e){var t=this._eventNameToPlugin.get(e);if(t)return t;for(var n=this._plugins,r=0;r-1},(t=Object(r.b)([Object(r.e)(0,Object(a.Inject)(i.DOCUMENT)),Object(r.e)(1,Object(a.Inject)(V)),Object(r.e)(3,Object(a.Optional)()),Object(r.e)(3,Object(a.Inject)(H)),Object(r.d)("design:paramtypes",[Object,K,a["ɵConsole"],Object])],t)).ɵfac=function(e){return new(e||t)(a["ɵɵinject"](i.DOCUMENT),a["ɵɵinject"](V),a["ɵɵinject"](a["ɵConsole"]),a["ɵɵinject"](H,8))},t.ɵprov=a["ɵɵdefineInjectable"]({token:t,factory:function(e){return t.ɵfac(e)}}),t}(j),G=[],Q=[{provide:w,useClass:W,multi:!0,deps:[i.DOCUMENT,V,a["ɵConsole"],[new a.Optional,H]]},{provide:V,useClass:K,deps:[]}],$=G,Y=function(){function e(){}return e.ɵmod=a["ɵɵdefineNgModule"]({type:e}),e.ɵinj=a["ɵɵdefineInjector"]({factory:function(t){return new(t||e)},providers:Q}),e}(),Z=["alt","control","meta","shift"],J={"\b":"Backspace","\t":"Tab","":"Delete","":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},X={A:"1",B:"2",C:"3",D:"4",E:"5",F:"6",G:"7",H:"8",I:"9",J:"*",K:"+",M:"-",N:".",O:"/","`":"0","":"NumLock"},ee={alt:function(e){return e.altKey},control:function(e){return e.ctrlKey},meta:function(e){return e.metaKey},shift:function(e){return e.shiftKey}},te=function(e){function t(t){return e.call(this,t)||this}var n;return Object(r.c)(t,e),n=t,t.prototype.supports=function(e){return null!=n.parseEventName(e)},t.prototype.addEventListener=function(e,t,r){var a=n.parseEventName(t),o=n.eventCallback(a.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular((function(){return Object(i["ɵgetDOM"])().onAndCancel(e,a.domEventName,o)}))},t.parseEventName=function(e){var t=e.toLowerCase().split("."),r=t.shift();if(0===t.length||"keydown"!==r&&"keyup"!==r)return null;var i=n._normalizeKey(t.pop()),a="";if(Z.forEach((function(e){var n=t.indexOf(e);n>-1&&(t.splice(n,1),a+=e+".")})),a+=i,0!=t.length||0===i.length)return null;var o={};return o.domEventName=r,o.fullKey=a,o},t.getEventFullKey=function(e){var t="",n=function(e){var t=e.key;if(null==t){if(null==(t=e.keyIdentifier))return"Unidentified";t.startsWith("U+")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&X.hasOwnProperty(t)&&(t=X[t]))}return J[t]||t}(e);return" "===(n=n.toLowerCase())?n="space":"."===n&&(n="dot"),Z.forEach((function(r){r!=n&&((0,ee[r])(e)&&(t+=r+"."))})),t+=n},t.eventCallback=function(e,t,r){return function(i){n.getEventFullKey(i)===e&&r.runGuarded((function(){return t(i)}))}},t._normalizeKey=function(e){switch(e){case"esc":return"escape";default:return e}},(t=n=Object(r.b)([Object(r.e)(0,Object(a.Inject)(i.DOCUMENT)),Object(r.d)("design:paramtypes",[Object])],t)).ɵfac=function(e){return new(e||t)(a["ɵɵinject"](i.DOCUMENT))},t.ɵprov=a["ɵɵdefineInjectable"]({token:t,factory:function(e){return t.ɵfac(e)}}),t}(j);var ne=function(){function e(){}return e.ɵprov=Object(a["ɵɵdefineInjectable"])({factory:function(){return Object(a["ɵɵinject"])(ie)},token:e,providedIn:"root"}),e.ɵfac=function(t){return new(t||e)},e}();function re(e){return new ie(e.get(i.DOCUMENT))}var ie=function(e){function t(t){var n=e.call(this)||this;return n._doc=t,n}return Object(r.c)(t,e),t.prototype.sanitize=function(e,t){if(null==t)return null;switch(e){case a.SecurityContext.NONE:return t;case a.SecurityContext.HTML:return Object(a["ɵallowSanitizationBypassAndThrow"])(t,"HTML")?Object(a["ɵunwrapSafeValue"])(t):Object(a["ɵ_sanitizeHtml"])(this._doc,String(t));case a.SecurityContext.STYLE:return Object(a["ɵallowSanitizationBypassAndThrow"])(t,"Style")?Object(a["ɵunwrapSafeValue"])(t):Object(a["ɵ_sanitizeStyle"])(t);case a.SecurityContext.SCRIPT:if(Object(a["ɵallowSanitizationBypassAndThrow"])(t,"Script"))return Object(a["ɵunwrapSafeValue"])(t);throw new Error("unsafe value used in a script context");case a.SecurityContext.URL:Object(a["ɵgetSanitizationBypassType"])(t);return Object(a["ɵallowSanitizationBypassAndThrow"])(t,"URL")?Object(a["ɵunwrapSafeValue"])(t):Object(a["ɵ_sanitizeUrl"])(String(t));case a.SecurityContext.RESOURCE_URL:if(Object(a["ɵallowSanitizationBypassAndThrow"])(t,"ResourceURL"))return Object(a["ɵunwrapSafeValue"])(t);throw new Error("unsafe value used in a resource URL context (see http://g.co/ng/security#xss)");default:throw new Error("Unexpected SecurityContext "+e+" (see http://g.co/ng/security#xss)")}},t.prototype.bypassSecurityTrustHtml=function(e){return Object(a["ɵbypassSanitizationTrustHtml"])(e)},t.prototype.bypassSecurityTrustStyle=function(e){return Object(a["ɵbypassSanitizationTrustStyle"])(e)},t.prototype.bypassSecurityTrustScript=function(e){return Object(a["ɵbypassSanitizationTrustScript"])(e)},t.prototype.bypassSecurityTrustUrl=function(e){return Object(a["ɵbypassSanitizationTrustUrl"])(e)},t.prototype.bypassSecurityTrustResourceUrl=function(e){return Object(a["ɵbypassSanitizationTrustResourceUrl"])(e)},t.ɵprov=Object(a["ɵɵdefineInjectable"])({factory:function(){return re(Object(a["ɵɵinject"])(a.INJECTOR))},token:t,providedIn:"root"}),(t=Object(r.b)([Object(r.e)(0,Object(a.Inject)(i.DOCUMENT)),Object(r.d)("design:paramtypes",[Object])],t)).ɵfac=function(e){return new(e||t)(a["ɵɵinject"](i.DOCUMENT))},t}(ne); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function ae(){l.makeCurrent(),p.init()}function oe(){return new a.ErrorHandler}function se(){return Object(a["ɵsetDocument"])(document),document}var le=i["ɵPLATFORM_BROWSER_ID"],ce=[{provide:a.PLATFORM_ID,useValue:le},{provide:a.PLATFORM_INITIALIZER,useValue:ae,multi:!0},{provide:i.DOCUMENT,useFactory:se,deps:[]}],ue=(a.Sanitizer,i.DOCUMENT,[]),de=ue,he=Object(a.createPlatformFactory)(a.platformCore,"browser",ce),pe=[de,{provide:a["ɵINJECTOR_SCOPE"],useValue:"root"},{provide:a.ErrorHandler,useFactory:oe,deps:[]},{provide:w,useClass:F,multi:!0,deps:[i.DOCUMENT,a.NgZone,a.PLATFORM_ID]},{provide:w,useClass:te,multi:!0,deps:[i.DOCUMENT]},$,{provide:P,useClass:P,deps:[_,x,a.APP_ID]},{provide:a.RendererFactory2,useExisting:P},{provide:C,useExisting:x},{provide:x,useClass:x,deps:[i.DOCUMENT]},{provide:a.Testability,useClass:a.Testability,deps:[a.NgZone]},{provide:_,useClass:_,deps:[w,a.NgZone]},k],fe=function(){function e(e){if(e)throw new Error("BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.")}var t;return t=e,e.withServerTransition=function(e){return{ngModule:t,providers:[{provide:a.APP_ID,useValue:e.appId},{provide:u,useExisting:a.APP_ID},h]}},(e=t=Object(r.b)([Object(r.e)(0,Object(a.Optional)()),Object(r.e)(0,Object(a.SkipSelf)()),Object(r.e)(0,Object(a.Inject)(t)),Object(r.d)("design:paramtypes",[Object])],e)).ɵmod=a["ɵɵdefineNgModule"]({type:e}),e.ɵinj=a["ɵɵdefineInjector"]({factory:function(n){return new(n||e)(a["ɵɵinject"](t,12))},providers:pe,imports:[i.CommonModule,a.ApplicationModule]}),("undefined"==typeof ngJitMode||ngJitMode)&&a["ɵɵsetNgModuleScope"](e,{exports:function(){return[i.CommonModule,a.ApplicationModule]}}),e}();function me(){return new ge(Object(a["ɵɵinject"])(i.DOCUMENT))}var ge=function(){function e(e){this._doc=e,this._dom=Object(i["ɵgetDOM"])()}return e.prototype.addTag=function(e,t){return void 0===t&&(t=!1),e?this._getOrCreateElement(e,t):null},e.prototype.addTags=function(e,t){var n=this;return void 0===t&&(t=!1),e?e.reduce((function(e,r){return r&&e.push(n._getOrCreateElement(r,t)),e}),[]):[]},e.prototype.getTag=function(e){return e&&this._doc.querySelector("meta["+e+"]")||null},e.prototype.getTags=function(e){if(!e)return[];var t=this._doc.querySelectorAll("meta["+e+"]");return t?[].slice.call(t):[]},e.prototype.updateTag=function(e,t){if(!e)return null;t=t||this._parseSelector(e);var n=this.getTag(t);return n?this._setMetaElementAttributes(e,n):this._getOrCreateElement(e,!0)},e.prototype.removeTag=function(e){this.removeTagElement(this.getTag(e))},e.prototype.removeTagElement=function(e){e&&this._dom.remove(e)},e.prototype._getOrCreateElement=function(e,t){if(void 0===t&&(t=!1),!t){var n=this._parseSelector(e),r=this.getTag(n);if(r&&this._containsAttributes(e,r))return r}var i=this._dom.createElement("meta");return this._setMetaElementAttributes(e,i),this._doc.getElementsByTagName("head")[0].appendChild(i),i},e.prototype._setMetaElementAttributes=function(e,t){return Object.keys(e).forEach((function(n){return t.setAttribute(n,e[n])})),t},e.prototype._parseSelector=function(e){var t=e.name?"name":"property";return t+'="'+e[t]+'"'},e.prototype._containsAttributes=function(e,t){return Object.keys(e).every((function(n){return t.getAttribute(n)===e[n]}))},e.ɵprov=Object(a["ɵɵdefineInjectable"])({factory:me,token:e,providedIn:"root"}),(e=Object(r.b)([Object(r.e)(0,Object(a.Inject)(i.DOCUMENT)),Object(r.d)("design:paramtypes",[Object])],e)).ɵfac=function(t){return new(t||e)(a["ɵɵinject"](i.DOCUMENT))},e}();function ye(){return new be(Object(a["ɵɵinject"])(i.DOCUMENT))}var be=function(){function e(e){this._doc=e}return e.prototype.getTitle=function(){return this._doc.title},e.prototype.setTitle=function(e){this._doc.title=e||""},e.ɵprov=Object(a["ɵɵdefineInjectable"])({factory:ye,token:e,providedIn:"root"}),(e=Object(r.b)([Object(r.e)(0,Object(a.Inject)(i.DOCUMENT)),Object(r.d)("design:paramtypes",[Object])],e)).ɵfac=function(t){return new(t||e)(a["ɵɵinject"](i.DOCUMENT))},e}(),ve="undefined"!=typeof window&&window||{},ke=function(e,t){this.msPerTick=e,this.numTicks=t},we=function(){function e(e){this.appRef=e.injector.get(a.ApplicationRef)}return e.prototype.timeChangeDetection=function(e){var t=e&&e.record,n=null!=ve.console.profile;t&&n&&ve.console.profile("Change Detection");for(var r=Object(i["ɵgetDOM"])().performanceNow(),a=0;a<5||Object(i["ɵgetDOM"])().performanceNow()-r<500;)this.appRef.tick(),a++;var o=Object(i["ɵgetDOM"])().performanceNow();t&&n&&ve.console.profileEnd("Change Detection");var s=(o-r)/a;return ve.console.log("ran "+a+" change detection cycles"),ve.console.log(s.toFixed(2)+" ms per check"),new ke(s,a)},e}(); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function _e(e){return f("profiler",new we(e)),e}function je(){f("profiler",null)} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function Ce(e){var t={"&":"&a;",'"':"&q;","'":"&s;","<":"&l;",">":"&g;"};return e.replace(/[&"'<>]/g,(function(e){return t[e]}))}function xe(e){return e}var Ee=function(){function e(){this.store={},this.onSerializeCallbacks={}}var t;return t=e,e.init=function(e){var n=new t;return n.store=e,n},e.prototype.get=function(e,t){return void 0!==this.store[e]?this.store[e]:t},e.prototype.set=function(e,t){this.store[e]=t},e.prototype.remove=function(e){delete this.store[e]},e.prototype.hasKey=function(e){return this.store.hasOwnProperty(e)},e.prototype.onSerialize=function(e,t){this.onSerializeCallbacks[e]=t},e.prototype.toJson=function(){for(var e in this.onSerializeCallbacks)if(this.onSerializeCallbacks.hasOwnProperty(e))try{this.store[e]=this.onSerializeCallbacks[e]()}catch(t){console.warn("Exception in onSerialize callback: ",t)}return JSON.stringify(this.store)},e.ɵfac=function(t){return new(t||e)},e.ɵprov=a["ɵɵdefineInjectable"]({token:e,factory:function(t){return e.ɵfac(t)}}),e}();function Se(e,t){var n,r,i=e.getElementById(t+"-state"),a={};if(i&&i.textContent)try{a=JSON.parse((n=i.textContent,r={"&a;":"&","&q;":'"',"&s;":"'","&l;":"<","&g;":">"},n.replace(/&[^;]+;/g,(function(e){return r[e]}))))}catch(o){console.warn("Exception while restoring TransferState for app "+t,o)}return Ee.init(a)}var Te=function(){function e(){}return e.ɵmod=a["ɵɵdefineNgModule"]({type:e}),e.ɵinj=a["ɵɵdefineInjector"]({factory:function(t){return new(t||e)},providers:[{provide:Ee,useFactory:Se,deps:[i.DOCUMENT,a.APP_ID]}]}),e}(),Oe=function(){function e(){}return e.all=function(){return function(){return!0}},e.css=function(e){return function(t){return null!=t.nativeElement&&function(e,t){if(Object(i["ɵgetDOM"])().isElementNode(e))return e.matches&&e.matches(t)||e.msMatchesSelector&&e.msMatchesSelector(t)||e.webkitMatchesSelector&&e.webkitMatchesSelector(t);return!1} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */(t.nativeElement,e)}},e.directive=function(e){return function(t){return-1!==t.providerTokens.indexOf(e)}},e}(); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var ze=new a.Version("9.1.12"); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */},function(e,t,n){"use strict";n.d(t,"b",(function(){return a})),n.d(t,"c",(function(){return o})),n.d(t,"a",(function(){return s}));var r,i=(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=function(e){function t(t,n){var r=this,i=this.constructor.prototype;return(r=e.call(this,t)||this).statusCode=n,r.__proto__=i,r}return i(t,e),t}(Error),o=function(e){function t(t){void 0===t&&(t="A timeout occurred.");var n=this,r=this.constructor.prototype;return(n=e.call(this,t)||this).__proto__=r,n}return i(t,e),t}(Error),s=function(e){function t(t){void 0===t&&(t="An abort occurred.");var n=this,r=this.constructor.prototype;return(n=e.call(this,t)||this).__proto__=r,n}return i(t,e),t}(Error)},function(e,t,n){"use strict";n.d(t,"a",(function(){return s})),n.d(t,"b",(function(){return l})),n.d(t,"c",(function(){return c}));var r=n(1),i=n(28),a=n(32),o=n(218),s=function(e){function t(t){var n=e.call(this)||this;return n.parent=t,n}return r.c(t,e),t.prototype._next=function(e){this.parent.notifyNext(e)},t.prototype._error=function(e){this.parent.notifyError(e),this.unsubscribe()},t.prototype._complete=function(){this.parent.notifyComplete(),this.unsubscribe()},t}(i.a),l=(i.a,function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.c(t,e),t.prototype.notifyNext=function(e){this.destination.next(e)},t.prototype.notifyError=function(e){this.destination.error(e)},t.prototype.notifyComplete=function(){this.destination.complete()},t}(i.a));i.a;function c(e,t){if(!t.closed)return e instanceof a.a?e.subscribe(t):Object(o.a)(e)(t)}},function(e,t,n){var r=n(22);e.exports=function(e,t){if(!r(e))return e;var n,i;if(t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;if("function"==typeof(n=e.valueOf)&&!r(i=n.call(e)))return i;if(!t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;throw TypeError("Can't convert object to primitive value")}},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){"use strict";if(n(35)){var r=n(86),i=n(20),a=n(21),o=n(2),s=n(138),l=n(187),c=n(62),u=n(99),d=n(85),h=n(56),p=n(101),f=n(63),m=n(31),g=n(245),y=n(91),b=n(75),v=n(50),k=n(96),w=n(22),_=n(42),j=n(183),C=n(83),x=n(57),E=n(92).f,S=n(133),T=n(89),O=n(27),z=n(69),I=n(150),D=n(125),A=n(204),N=n(110),P=n(134),R=n(98),M=n(184),q=n(236),B=n(33),L=n(59),F=B.f,U=L.f,V=i.RangeError,H=i.TypeError,K=i.Uint8Array,W=Array.prototype,G=l.ArrayBuffer,Q=l.DataView,$=z(0),Y=z(2),Z=z(3),J=z(4),X=z(5),ee=z(6),te=I(!0),ne=I(!1),re=A.values,ie=A.keys,ae=A.entries,oe=W.lastIndexOf,se=W.reduce,le=W.reduceRight,ce=W.join,ue=W.sort,de=W.slice,he=W.toString,pe=W.toLocaleString,fe=O("iterator"),me=O("toStringTag"),ge=T("typed_constructor"),ye=T("def_constructor"),be=s.CONSTR,ve=s.TYPED,ke=s.VIEW,we=z(1,(function(e,t){return Ee(D(e,e[ye]),t)})),_e=a((function(){return 1===new K(new Uint16Array([1]).buffer)[0]})),je=!!K&&!!K.prototype.set&&a((function(){new K(1).set({})})),Ce=function(e,t){var n=f(e);if(n<0||n%t)throw V("Wrong offset!");return n},xe=function(e){if(w(e)&&ve in e)return e;throw H(e+" is not a typed array!")},Ee=function(e,t){if(!w(e)||!(ge in e))throw H("It is not a typed array constructor!");return new e(t)},Se=function(e,t){return Te(D(e,e[ye]),t)},Te=function(e,t){for(var n=0,r=t.length,i=Ee(e,r);r>n;)i[n]=t[n++];return i},Oe=function(e,t,n){F(e,t,{get:function(){return this._d[n]}})},ze=function(e){var t,n,r,i,a,o,s=_(e),l=arguments.length,u=l>1?arguments[1]:void 0,d=void 0!==u,h=S(s);if(null!=h&&!j(h)){for(o=h.call(s),r=[],t=0;!(a=o.next()).done;t++)r.push(a.value);s=r}for(d&&l>2&&(u=c(u,arguments[2],2)),t=0,n=m(s.length),i=Ee(this,n);n>t;t++)i[t]=d?u(s[t],t):s[t];return i},Ie=function(){for(var e=0,t=arguments.length,n=Ee(this,t);t>e;)n[e]=arguments[e++];return n},De=!!K&&a((function(){pe.call(new K(1))})),Ae=function(){return pe.apply(De?de.call(xe(this)):xe(this),arguments)},Ne={copyWithin:function(e,t){return q.call(xe(this),e,t,arguments.length>2?arguments[2]:void 0)},every:function(e){return J(xe(this),e,arguments.length>1?arguments[1]:void 0)},fill:function(e){return M.apply(xe(this),arguments)},filter:function(e){return Se(this,Y(xe(this),e,arguments.length>1?arguments[1]:void 0))},find:function(e){return X(xe(this),e,arguments.length>1?arguments[1]:void 0)},findIndex:function(e){return ee(xe(this),e,arguments.length>1?arguments[1]:void 0)},forEach:function(e){$(xe(this),e,arguments.length>1?arguments[1]:void 0)},indexOf:function(e){return ne(xe(this),e,arguments.length>1?arguments[1]:void 0)},includes:function(e){return te(xe(this),e,arguments.length>1?arguments[1]:void 0)},join:function(e){return ce.apply(xe(this),arguments)},lastIndexOf:function(e){return oe.apply(xe(this),arguments)},map:function(e){return we(xe(this),e,arguments.length>1?arguments[1]:void 0)},reduce:function(e){return se.apply(xe(this),arguments)},reduceRight:function(e){return le.apply(xe(this),arguments)},reverse:function(){for(var e,t=xe(this).length,n=Math.floor(t/2),r=0;r1?arguments[1]:void 0)},sort:function(e){return ue.call(xe(this),e)},subarray:function(e,t){var n=xe(this),r=n.length,i=y(e,r);return new(D(n,n[ye]))(n.buffer,n.byteOffset+i*n.BYTES_PER_ELEMENT,m((void 0===t?r:y(t,r))-i))}},Pe=function(e,t){return Se(this,de.call(xe(this),e,t))},Re=function(e){xe(this);var t=Ce(arguments[1],1),n=this.length,r=_(e),i=m(r.length),a=0;if(i+t>n)throw V("Wrong length!");for(;a255?255:255&r),i.v[p](n*t+i.o,r,_e)}(this,n,e)},enumerable:!0})};v?(f=n((function(e,n,r,i){u(e,f,c,"_d");var a,o,s,l,d=0,p=0;if(w(n)){if(!(n instanceof G||"ArrayBuffer"==(l=k(n))||"SharedArrayBuffer"==l))return ve in n?Te(f,n):ze.call(f,n);a=n,p=Ce(r,t);var y=n.byteLength;if(void 0===i){if(y%t)throw V("Wrong length!");if((o=y-p)<0)throw V("Wrong length!")}else if((o=m(i)*t)+p>y)throw V("Wrong length!");s=o/t}else s=g(n),a=new G(o=s*t);for(h(e,"_d",{b:a,o:p,l:o,e:s,v:new Q(a)});ddocument.F=Object<\/script>"),e.close(),l=e.F;r--;)delete l.prototype[a[r]];return l()};e.exports=Object.create||function(e,t){var n;return null!==e?(s.prototype=r(e),n=new s,s.prototype=null,n[o]=e):n=l(),void 0===t?n:i(n,t)}},,function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t){e.exports=!1},,,function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t,n){var r=n(223),i=n(173);e.exports=Object.keys||function(e){return r(e,i)}},function(e,t,n){var r=n(63),i=Math.max,a=Math.min;e.exports=function(e,t){return(e=r(e))<0?i(e+t,0):a(e,t)}},function(e,t,n){var r=n(223),i=n(173).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,i)}},,,function(e,t,n){"use strict";(function(e){ +/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ +var r=n(824),i=n(825),a=n(542);function o(){return l.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(o()=o())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o().toString(16)+" bytes");return 0|e}function f(e,t){if(l.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return L(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return F(e).length;default:if(r)return L(e).length;t=(""+t).toLowerCase(),r=!0}}function m(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return O(this,t,n);case"utf8":case"utf-8":return E(this,t,n);case"ascii":return S(this,t,n);case"latin1":case"binary":return T(this,t,n);case"base64":return x(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return z(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function g(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function y(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=l.from(t,r)),l.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,i);if("number"==typeof t)return t&=255,l.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,i){var a,o=1,s=e.length,l=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;o=2,s/=2,l/=2,n/=2}function c(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(i){var u=-1;for(a=n;as&&(n=s-l),a=n;a>=0;a--){for(var d=!0,h=0;hi&&(r=i):r=i;var a=t.length;if(a%2!=0)throw new TypeError("Invalid hex string");r>a/2&&(r=a/2);for(var o=0;o>8,i=n%256,a.push(i),a.push(r);return a}(t,e.length-n),e,n,r)}function x(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function E(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i239?4:c>223?3:c>191?2:1;if(i+d<=n)switch(d){case 1:c<128&&(u=c);break;case 2:128==(192&(a=e[i+1]))&&(l=(31&c)<<6|63&a)>127&&(u=l);break;case 3:a=e[i+1],o=e[i+2],128==(192&a)&&128==(192&o)&&(l=(15&c)<<12|(63&a)<<6|63&o)>2047&&(l<55296||l>57343)&&(u=l);break;case 4:a=e[i+1],o=e[i+2],s=e[i+3],128==(192&a)&&128==(192&o)&&128==(192&s)&&(l=(15&c)<<18|(63&a)<<12|(63&o)<<6|63&s)>65535&&l<1114112&&(u=l)}null===u?(u=65533,d=1):u>65535&&(u-=65536,r.push(u>>>10&1023|55296),u=56320|1023&u),r.push(u),i+=d}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},l.prototype.compare=function(e,t,n,r,i){if(!l.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(this===e)return 0;for(var a=(i>>>=0)-(r>>>=0),o=(n>>>=0)-(t>>>=0),s=Math.min(a,o),c=this.slice(r,i),u=e.slice(t,n),d=0;di)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var a=!1;;)switch(r){case"hex":return v(this,e,t,n);case"utf8":case"utf-8":return k(this,e,t,n);case"ascii":return w(this,e,t,n);case"latin1":case"binary":return _(this,e,t,n);case"base64":return j(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,e,t,n);default:if(a)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),a=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function S(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;ir)&&(n=r);for(var i="",a=t;an)throw new RangeError("Trying to access beyond buffer length")}function D(e,t,n,r,i,a){if(!l.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function A(e,t,n,r){t<0&&(t=65535+t+1);for(var i=0,a=Math.min(e.length-n,2);i>>8*(r?i:1-i)}function N(e,t,n,r){t<0&&(t=4294967295+t+1);for(var i=0,a=Math.min(e.length-n,4);i>>8*(r?i:3-i)&255}function P(e,t,n,r,i,a){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function R(e,t,n,r,a){return a||P(e,0,n,4),i.write(e,t,n,r,23,4),n+4}function M(e,t,n,r,a){return a||P(e,0,n,8),i.write(e,t,n,r,52,8),n+8}l.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(i*=256);)r+=this[e+--t]*i;return r},l.prototype.readUInt8=function(e,t){return t||I(e,1,this.length),this[e]},l.prototype.readUInt16LE=function(e,t){return t||I(e,2,this.length),this[e]|this[e+1]<<8},l.prototype.readUInt16BE=function(e,t){return t||I(e,2,this.length),this[e]<<8|this[e+1]},l.prototype.readUInt32LE=function(e,t){return t||I(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},l.prototype.readUInt32BE=function(e,t){return t||I(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},l.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||I(e,t,this.length);for(var r=this[e],i=1,a=0;++a=(i*=128)&&(r-=Math.pow(2,8*t)),r},l.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||I(e,t,this.length);for(var r=t,i=1,a=this[e+--r];r>0&&(i*=256);)a+=this[e+--r]*i;return a>=(i*=128)&&(a-=Math.pow(2,8*t)),a},l.prototype.readInt8=function(e,t){return t||I(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},l.prototype.readInt16LE=function(e,t){t||I(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt16BE=function(e,t){t||I(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt32LE=function(e,t){return t||I(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},l.prototype.readInt32BE=function(e,t){return t||I(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},l.prototype.readFloatLE=function(e,t){return t||I(e,4,this.length),i.read(this,e,!0,23,4)},l.prototype.readFloatBE=function(e,t){return t||I(e,4,this.length),i.read(this,e,!1,23,4)},l.prototype.readDoubleLE=function(e,t){return t||I(e,8,this.length),i.read(this,e,!0,52,8)},l.prototype.readDoubleBE=function(e,t){return t||I(e,8,this.length),i.read(this,e,!1,52,8)},l.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||D(this,e,t,n,Math.pow(2,8*n)-1,0);var i=1,a=0;for(this[t]=255&e;++a=0&&(a*=256);)this[t+i]=e/a&255;return t+n},l.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,1,255,0),l.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},l.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,65535,0),l.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):A(this,e,t,!0),t+2},l.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,65535,0),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):A(this,e,t,!1),t+2},l.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,4294967295,0),l.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):N(this,e,t,!0),t+4},l.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,4294967295,0),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):N(this,e,t,!1),t+4},l.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);D(this,e,t,n,i-1,-i)}var a=0,o=1,s=0;for(this[t]=255&e;++a>0)-s&255;return t+n},l.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);D(this,e,t,n,i-1,-i)}var a=n-1,o=1,s=0;for(this[t+a]=255&e;--a>=0&&(o*=256);)e<0&&0===s&&0!==this[t+a+1]&&(s=1),this[t+a]=(e/o>>0)-s&255;return t+n},l.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,1,127,-128),l.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},l.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,32767,-32768),l.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):A(this,e,t,!0),t+2},l.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,32767,-32768),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):A(this,e,t,!1),t+2},l.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,2147483647,-2147483648),l.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):N(this,e,t,!0),t+4},l.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):N(this,e,t,!1),t+4},l.prototype.writeFloatLE=function(e,t,n){return R(this,e,t,!0,n)},l.prototype.writeFloatBE=function(e,t,n){return R(this,e,t,!1,n)},l.prototype.writeDoubleLE=function(e,t,n){return M(this,e,t,!0,n)},l.prototype.writeDoubleBE=function(e,t,n){return M(this,e,t,!1,n)},l.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--i)e[i+t]=this[i+n];else if(a<1e3||!l.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(a=t;a55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&a.push(239,191,189);continue}if(o+1===r){(t-=3)>-1&&a.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&a.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&a.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;a.push(n)}else if(n<2048){if((t-=2)<0)break;a.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;a.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return a}function F(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(q,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function U(e,t,n,r){for(var i=0;i=t.length||i>=e.length);++i)t[i+n]=e[i];return i}}).call(this,n(102))},function(e,t,n){var r=n(67),i=n(27)("toStringTag"),a="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,o;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(n){}}(t=Object(e),i))?n:a?r(t):"Object"==(o=r(t))&&"function"==typeof t.callee?"Arguments":o}},function(e,t,n){var r=n(27)("unscopables"),i=Array.prototype;null==i[r]&&n(56)(i,r,{}),e.exports=function(e){i[r][e]=!0}},function(e,t,n){"use strict";var r=n(20),i=n(33),a=n(35),o=n(27)("species");e.exports=function(e){var t=r[e];a&&t&&!t[o]&&i.f(t,o,{configurable:!0,get:function(){return this}})}},function(e,t){e.exports=function(e,t,n,r){if(!(e instanceof t)||void 0!==r&&r in e)throw TypeError(n+": incorrect invocation!");return e}},function(e,t,n){var r=n(62),i=n(233),a=n(183),o=n(15),s=n(31),l=n(133),c={},u={};(t=e.exports=function(e,t,n,d,h){var p,f,m,g,y=h?function(){return e}:l(e),b=r(n,d,t?2:1),v=0;if("function"!=typeof y)throw TypeError(e+" is not iterable!");if(a(y)){for(p=s(e.length);p>v;v++)if((g=t?b(o(f=e[v])[0],f[1]):b(e[v]))===c||g===u)return g}else for(m=y.call(e);!(f=m.next()).done;)if((g=i(m,b,f.value,t))===c||g===u)return g}).BREAK=c,t.RETURN=u},function(e,t,n){var r=n(51);e.exports=function(e,t,n){for(var i in t)r(e,i,t[i],n);return e}},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(r){"object"==typeof window&&(n=window)}e.exports=n},,,,,,function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=!1,i={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){e&&(new Error).stack;r=e},get useDeprecatedSynchronousErrorHandling(){return r}}},function(e,t,n){var r=n(33).f,i=n(50),a=n(27)("toStringTag");e.exports=function(e,t,n){e&&!i(e=n?e:e.prototype,a)&&r(e,a,{configurable:!0,value:t})}},function(e,t){e.exports={}},function(e,t,n){var r=n(22);e.exports=function(e,t){if(!r(e)||e._t!==t)throw TypeError("Incompatible receiver, "+t+" required!");return e}},,,,function(e,t,n){var r=n(67);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},function(e,t,n){var r=n(2),i=n(76),a=n(21),o=n(176),s="["+o+"]",l=RegExp("^"+s+s+"*"),c=RegExp(s+s+"*$"),u=function(e,t,n){var i={},s=a((function(){return!!o[e]()||"​…"!="​…"[e]()})),l=i[e]=s?t(d):o[e];n&&(i[n]=l),r(r.P+r.F*s,"String",i)},d=u.trim=function(e,t){return e=String(i(e)),1&t&&(e=e.replace(l,"")),2&t&&(e=e.replace(c,"")),e};e.exports=u},,,function(e,t,n){var r=n(34);n(194),n(731),n(732),n(44),r.random&&r.random.getBytes?e.exports=r.random:function(t){var n={},i=new Array(4),a=r.util.createBuffer();function o(){var e=r.prng.create(n);return e.getBytes=function(t,n){return e.generate(t,n)},e.getBytesSync=function(t){return e.generate(t)},e}n.formatKey=function(e){var t=r.util.createBuffer(e);return(e=new Array(4))[0]=t.getInt32(),e[1]=t.getInt32(),e[2]=t.getInt32(),e[3]=t.getInt32(),r.aes._expandKey(e,!1)},n.formatSeed=function(e){var t=r.util.createBuffer(e);return(e=new Array(4))[0]=t.getInt32(),e[1]=t.getInt32(),e[2]=t.getInt32(),e[3]=t.getInt32(),e},n.cipher=function(e,t){return r.aes._updateBlock(e,t,i,!1),a.putInt32(i[0]),a.putInt32(i[1]),a.putInt32(i[2]),a.putInt32(i[3]),a.getBytes()},n.increment=function(e){return++e[3],e},n.md=r.md.sha256;var s=o(),l=null,c=r.util.globalScope,u=c.crypto||c.msCrypto;if(u&&u.getRandomValues&&(l=function(e){return u.getRandomValues(e)}),r.options.usePureJavaScript||!r.util.isNodejs&&!l){if("undefined"==typeof window||window.document,s.collectInt(+new Date,32),"undefined"!=typeof navigator){var d="";for(var h in navigator)try{"string"==typeof navigator[h]&&(d+=navigator[h])}catch(p){}s.collect(d),d=null}t&&(t().mousemove((function(e){s.collectInt(e.clientX,16),s.collectInt(e.clientY,16)})),t().keypress((function(e){s.collectInt(e.charCode,8)})))}if(r.random)for(var h in s)r.random[h]=s[h];else r.random=s;r.random.createInstance=o,e.exports=r.random}("undefined"!=typeof jQuery?jQuery:null)},function(e,t,n){"use strict";n.d(t,"b",(function(){return i})),n.d(t,"a",(function(){return a}));var r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n1)for(var n=1;nt){var r=new Error("Too few bytes to parse DER.");throw r.available=e.length(),r.remaining=t,r.requested=n,r}}i.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192},i.Type={NONE:0,BOOLEAN:1,INTEGER:2,BITSTRING:3,OCTETSTRING:4,NULL:5,OID:6,ODESC:7,EXTERNAL:8,REAL:9,ENUMERATED:10,EMBEDDED:11,UTF8:12,ROID:13,SEQUENCE:16,SET:17,PRINTABLESTRING:19,IA5STRING:22,UTCTIME:23,GENERALIZEDTIME:24,BMPSTRING:30},i.create=function(e,t,n,a,o){if(r.util.isArray(a)){for(var s=[],l=0;ln){if(o.strict){var f=new Error("Too few bytes to read ASN.1 value.");throw f.available=t.length(),f.remaining=n,f.requested=p,f}p=n}var m=32==(32&l);if(m)if(d=[],void 0===p)for(;;){if(a(t,n,2),t.bytes(2)===String.fromCharCode(0,0)){t.getBytes(2),n-=2;break}s=t.length(),d.push(e(t,n,r+1,o)),n-=s-t.length()}else for(;p>0;)s=t.length(),d.push(e(t,p,r+1,o)),n-=s-t.length(),p-=s-t.length();void 0===d&&c===i.Class.UNIVERSAL&&u===i.Type.BITSTRING&&(h=t.bytes(p));if(void 0===d&&o.decodeBitStrings&&c===i.Class.UNIVERSAL&&u===i.Type.BITSTRING&&p>1){var g=t.read,y=n,b=0;if(u===i.Type.BITSTRING&&(a(t,n,1),b=t.getByte(),n--),0===b)try{s=t.length();var v={verbose:o.verbose,strict:!0,decodeBitStrings:!0},k=e(t,n,r+1,v),w=s-t.length();n-=w,u==i.Type.BITSTRING&&w++;var _=k.tagClass;w!==p||_!==i.Class.UNIVERSAL&&_!==i.Class.CONTEXT_SPECIFIC||(d=[k])}catch(C){}void 0===d&&(t.read=g,n=y)}if(void 0===d){if(void 0===p){if(o.strict)throw new Error("Non-constructed ASN.1 object of indefinite length.");p=n}if(u===i.Type.BMPSTRING)for(d="";p>0;p-=2)a(t,n,2),d+=String.fromCharCode(t.getInt16()),n-=2;else d=t.getBytes(p)}var j=void 0===h?null:{bitStringContents:h};return i.create(c,u,m,d,j)}(e,e.length(),0,t)},i.toDer=function(e){var t=r.util.createBuffer(),n=e.tagClass|e.type,a=r.util.createBuffer(),o=!1;if("bitStringContents"in e&&(o=!0,e.original&&(o=i.equals(e,e.original))),o)a.putBytes(e.bitStringContents);else if(e.composed){e.constructed?n|=32:a.putByte(0);for(var s=0;s1&&(0===e.value.charCodeAt(0)&&0==(128&e.value.charCodeAt(1))||255===e.value.charCodeAt(0)&&128==(128&e.value.charCodeAt(1)))?a.putBytes(e.value.substr(1)):a.putBytes(e.value);if(t.putByte(n),a.length()<=127)t.putByte(127&a.length());else{var l=a.length(),c="";do{c+=String.fromCharCode(255&l),l>>>=8}while(l>0);t.putByte(128|c.length);for(s=c.length-1;s>=0;--s)t.putByte(c.charCodeAt(s))}return t.putBuffer(a),t},i.oidToDer=function(e){var t,n,i,a,o=e.split("."),s=r.util.createBuffer();s.putByte(40*parseInt(o[0],10)+parseInt(o[1],10));for(var l=2;l>>=7,t||(a|=128),n.push(a),t=!1}while(i>0);for(var c=n.length-1;c>=0;--c)s.putByte(n[c])}return s},i.derToOid=function(e){var t;"string"==typeof e&&(e=r.util.createBuffer(e));var n=e.getByte();t=Math.floor(n/40)+"."+n%40;for(var i=0;e.length()>0;)i<<=7,128&(n=e.getByte())?i+=127&n:(t+="."+(i+n),i=0);return t},i.utcTimeToDate=function(e){var t=new Date,n=parseInt(e.substr(0,2),10);n=n>=50?1900+n:2e3+n;var r=parseInt(e.substr(2,2),10)-1,i=parseInt(e.substr(4,2),10),a=parseInt(e.substr(6,2),10),o=parseInt(e.substr(8,2),10),s=0;if(e.length>11){var l=e.charAt(10),c=10;"+"!==l&&"-"!==l&&(s=parseInt(e.substr(10,2),10),c+=2)}if(t.setUTCFullYear(n,r,i),t.setUTCHours(a,o,s,0),c&&("+"===(l=e.charAt(c))||"-"===l)){var u=60*parseInt(e.substr(c+1,2),10)+parseInt(e.substr(c+4,2),10);u*=6e4,"+"===l?t.setTime(+t-u):t.setTime(+t+u)}return t},i.generalizedTimeToDate=function(e){var t=new Date,n=parseInt(e.substr(0,4),10),r=parseInt(e.substr(4,2),10)-1,i=parseInt(e.substr(6,2),10),a=parseInt(e.substr(8,2),10),o=parseInt(e.substr(10,2),10),s=parseInt(e.substr(12,2),10),l=0,c=0,u=!1;"Z"===e.charAt(e.length-1)&&(u=!0);var d=e.length-5,h=e.charAt(d);"+"!==h&&"-"!==h||(c=60*parseInt(e.substr(d+1,2),10)+parseInt(e.substr(d+4,2),10),c*=6e4,"+"===h&&(c*=-1),u=!0);return"."===e.charAt(14)&&(l=1e3*parseFloat(e.substr(14),10)),u?(t.setUTCFullYear(n,r,i),t.setUTCHours(a,o,s,l),t.setTime(+t+c)):(t.setFullYear(n,r,i),t.setHours(a,o,s,l)),t},i.dateToUtcTime=function(e){if("string"==typeof e)return e;var t="",n=[];n.push((""+e.getUTCFullYear()).substr(2)),n.push(""+(e.getUTCMonth()+1)),n.push(""+e.getUTCDate()),n.push(""+e.getUTCHours()),n.push(""+e.getUTCMinutes()),n.push(""+e.getUTCSeconds());for(var r=0;r=-128&&e<128)return t.putSignedInt(e,8);if(e>=-32768&&e<32768)return t.putSignedInt(e,16);if(e>=-8388608&&e<8388608)return t.putSignedInt(e,24);if(e>=-2147483648&&e<2147483648)return t.putSignedInt(e,32);var n=new Error("Integer too large; max is 32-bits.");throw n.integer=e,n},i.derToInteger=function(e){"string"==typeof e&&(e=r.util.createBuffer(e));var t=8*e.length();if(t>32)throw new Error("Integer too large; max is 32-bits.");return e.getSignedInt(t)},i.validate=function(e,t,n,a){var o=!1;if(e.tagClass!==t.tagClass&&void 0!==t.tagClass||e.type!==t.type&&void 0!==t.type)a&&(e.tagClass!==t.tagClass&&a.push("["+t.name+'] Expected tag class "'+t.tagClass+'", got "'+e.tagClass+'"'),e.type!==t.type&&a.push("["+t.name+'] Expected type "'+t.type+'", got "'+e.type+'"'));else if(e.constructed===t.constructed||void 0===t.constructed){if(o=!0,t.value&&r.util.isArray(t.value))for(var s=0,l=0;o&&l0&&(a+="\n");for(var s="",l=0;l1?a+="0x"+r.util.bytesToHex(e.value.slice(1)):a+="(none)",e.value.length>0){var h=e.value.charCodeAt(0);1==h?a+=" (1 unused bit shown)":h>1&&(a+=" ("+h+" unused bits shown)")}}else e.type===i.Type.OCTETSTRING?(o.test(e.value)||(a+="("+e.value+") "),a+="0x"+r.util.bytesToHex(e.value)):e.type===i.Type.UTF8?a+=r.util.decodeUtf8(e.value):e.type===i.Type.PRINTABLESTRING||e.type===i.Type.IA5String?a+=e.value:o.test(e.value)?a+="0x"+r.util.bytesToHex(e.value):0===e.value.length?a+="[null]":a+=e.value}return a}},function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var r=function(){return"function"==typeof Symbol&&Symbol.observable||"@@observable"}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var r=function(){function e(){return Error.call(this),this.message="object unsubscribed",this.name="ObjectUnsubscribedError",this}return e.prototype=Object.create(Error.prototype),e}()},function(e,t,n){var r=n(55),i=n(20),a=i["__core-js_shared__"]||(i["__core-js_shared__"]={});(e.exports=function(e,t){return a[e]||(a[e]=void 0!==t?t:{})})("versions",[]).push({version:r.version,mode:n(86)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,n){var r=n(96),i=n(27)("iterator"),a=n(110);e.exports=n(55).getIteratorMethod=function(e){if(null!=e)return e[i]||e["@@iterator"]||a[r(e)]}},function(e,t,n){var r=n(27)("iterator"),i=!1;try{var a=[7][r]();a.return=function(){i=!0},Array.from(a,(function(){throw 2}))}catch(o){}e.exports=function(e,t){if(!t&&!i)return!1;var n=!1;try{var a=[7],s=a[r]();s.next=function(){return{done:n=!0}},a[r]=function(){return s},e(a)}catch(o){}return n}},function(e,t,n){"use strict";var r=n(96),i=RegExp.prototype.exec;e.exports=function(e,t){var n=e.exec;if("function"==typeof n){var a=n.call(e,t);if("object"!=typeof a)throw new TypeError("RegExp exec method returned something other than an Object or null");return a}if("RegExp"!==r(e))throw new TypeError("RegExp#exec called on incompatible receiver");return i.call(e,t)}},function(e,t,n){"use strict";n(237);var r=n(51),i=n(56),a=n(21),o=n(76),s=n(27),l=n(185),c=s("species"),u=!a((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$
")})),d=function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2===n.length&&"a"===n[0]&&"b"===n[1]}();e.exports=function(e,t,n){var h=s(e),p=!a((function(){var t={};return t[h]=function(){return 7},7!=""[e](t)})),f=p?!a((function(){var t=!1,n=/a/;return n.exec=function(){return t=!0,null},"split"===e&&(n.constructor={},n.constructor[c]=function(){return n}),n[h](""),!t})):void 0;if(!p||!f||"replace"===e&&!u||"split"===e&&!d){var m=/./[h],g=n(o,h,""[e],(function(e,t,n,r,i){return t.exec===l?p&&!i?{done:!0,value:m.call(t,n,r)}:{done:!0,value:e.call(n,t,r)}:{done:!1}})),y=g[0],b=g[1];r(String.prototype,e,y),i(RegExp.prototype,h,2==t?function(e,t){return b.call(e,this,t)}:function(e){return b.call(e,this)})}}},function(e,t,n){"use strict";var r=n(20),i=n(2),a=n(51),o=n(101),s=n(82),l=n(100),c=n(99),u=n(22),d=n(21),h=n(134),p=n(109),f=n(177);e.exports=function(e,t,n,m,g,y){var b=r[e],v=b,k=g?"set":"add",w=v&&v.prototype,_={},j=function(e){var t=w[e];a(w,e,"delete"==e||"has"==e?function(e){return!(y&&!u(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return y&&!u(e)?void 0:t.call(this,0===e?0:e)}:"add"==e?function(e){return t.call(this,0===e?0:e),this}:function(e,n){return t.call(this,0===e?0:e,n),this})};if("function"==typeof v&&(y||w.forEach&&!d((function(){(new v).entries().next()})))){var C=new v,x=C[k](y?{}:-0,1)!=C,E=d((function(){C.has(1)})),S=h((function(e){new v(e)})),T=!y&&d((function(){for(var e=new v,t=5;t--;)e[k](t,t);return!e.has(-0)}));S||((v=t((function(t,n){c(t,v,e);var r=f(new b,t,v);return null!=n&&l(n,g,r[k],r),r}))).prototype=w,w.constructor=v),(E||T)&&(j("delete"),j("has"),g&&j("get")),(T||x)&&j(k),y&&w.clear&&delete w.clear}else v=m.getConstructor(t,e,g,k),o(v.prototype,n),s.NEED=!0;return p(v,e),_[e]=v,i(i.G+i.W+i.F*(v!=b),_),y||m.setStrong(v,e,g),v}},function(e,t,n){for(var r,i=n(20),a=n(56),o=n(89),s=o("typed_array"),l=o("view"),c=!(!i.ArrayBuffer||!i.DataView),u=c,d=0,h="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");d<9;)(r=i[h[d++]])?(a(r.prototype,s,!0),a(r.prototype,l,!0)):u=!1;e.exports={ABV:c,CONSTR:u,TYPED:s,VIEW:l}},,,,,,,function(e,t,n){var r=n(34);e.exports=r.md=r.md||{},r.md.algorithms=r.md.algorithms||{}},function(e,t,n){"use strict";function r(e){return"function"==typeof e}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";n.d(t,"b",(function(){return u})),n.d(t,"a",(function(){return d}));var r=n(1),i=n(32),a=n(28),o=n(54),s=n(130),l=n(304),c=n(197),u=function(e){function t(t){var n=e.call(this,t)||this;return n.destination=t,n}return r.c(t,e),t}(a.a),d=function(e){function t(){var t=e.call(this)||this;return t.observers=[],t.closed=!1,t.isStopped=!1,t.hasError=!1,t.thrownError=null,t}return r.c(t,e),t.prototype[c.a]=function(){return new u(this)},t.prototype.lift=function(e){var t=new h(this,this);return t.operator=e,t},t.prototype.next=function(e){if(this.closed)throw new s.a;if(!this.isStopped)for(var t=this.observers,n=t.length,r=t.slice(),i=0;iu;)if((s=l[u++])!=s)return!0}else for(;c>u;u++)if((e||u in l)&&l[u]===n)return e||u||0;return!e&&-1}}},function(e,t,n){var r=n(67);e.exports=Array.isArray||function(e){return"Array"==r(e)}},function(e,t,n){var r=n(63),i=n(76);e.exports=function(e){return function(t,n){var a,o,s=String(i(t)),l=r(n),c=s.length;return l<0||l>=c?e?"":void 0:(a=s.charCodeAt(l))<55296||a>56319||l+1===c||(o=s.charCodeAt(l+1))<56320||o>57343?e?s.charAt(l):a:e?s.slice(l,l+2):o-56320+(a-55296<<10)+65536}}},function(e,t,n){"use strict";var r=n(86),i=n(2),a=n(51),o=n(56),s=n(110),l=n(180),c=n(109),u=n(57),d=n(27)("iterator"),h=!([].keys&&"next"in[].keys()),p=function(){return this};e.exports=function(e,t,n,f,m,g,y){l(n,t,f);var b,v,k,w=function(e){if(!h&&e in x)return x[e];switch(e){case"keys":case"values":return function(){return new n(this,e)}}return function(){return new n(this,e)}},_=t+" Iterator",j="values"==m,C=!1,x=e.prototype,E=x[d]||x["@@iterator"]||m&&x[m],S=E||w(m),T=m?j?w("entries"):S:void 0,O="Array"==t&&x.entries||E;if(O&&(k=u(O.call(new e)))!==Object.prototype&&k.next&&(c(k,_,!0),r||"function"==typeof k[d]||o(k,d,p)),j&&E&&"values"!==E.name&&(C=!0,S=function(){return E.call(this)}),r&&!y||!h&&!C&&x[d]||o(x,d,S),s[t]=S,s[_]=p,m)if(b={values:j?S:w("values"),keys:g?S:w("keys"),entries:T},y)for(v in b)v in x||a(x,v,b[v]);else i(i.P+i.F*(h||C),t,b);return b}},function(e,t,n){var r=n(22),i=n(67),a=n(27)("match");e.exports=function(e){var t;return r(e)&&(void 0!==(t=e[a])?!!t:"RegExp"==i(e))}},,,,,,,function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var r=function(){function e(){}return e.prototype.log=function(e,t){},e.instance=new e,e}()},function(e,t,n){"use strict";function r(e){return e}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";function r(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}n.d(t,"a",(function(){return i}));var i=r()},function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r=n(1),i=n(28);function a(e,t){return function(n){if("function"!=typeof e)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return n.lift(new o(e,t))}}var o=function(){function e(e,t){this.project=e,this.thisArg=t}return e.prototype.call=function(e,t){return t.subscribe(new s(e,this.project,this.thisArg))},e}(),s=function(e){function t(t,n,r){var i=e.call(this,t)||this;return i.project=n,i.count=0,i.thisArg=r||i,i}return r.c(t,e),t.prototype._next=function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)},t}(i.a)},function(e,t,n){"use strict";n.d(t,"a",(function(){return i})),n.d(t,"b",(function(){return a}));var r=n(32),i=new r.a((function(e){return e.complete()}));function a(e){return e?function(e){return new r.a((function(t){return e.schedule((function(){return t.complete()}))}))}(e):i}},function(e,t,n){"use strict";var r=n(32),i=n(218),a=n(54),o=n(129);var s=n(216),l=n(163);var c=n(309),u=n(307);function d(e,t){if(null!=e){if(function(e){return e&&"function"==typeof e[o.a]}(e))return function(e,t){return new r.a((function(n){var r=new a.a;return r.add(t.schedule((function(){var i=e[o.a]();r.add(i.subscribe({next:function(e){r.add(t.schedule((function(){return n.next(e)})))},error:function(e){r.add(t.schedule((function(){return n.error(e)})))},complete:function(){r.add(t.schedule((function(){return n.complete()})))}}))}))),r}))}(e,t);if(Object(c.a)(e))return function(e,t){return new r.a((function(n){var r=new a.a;return r.add(t.schedule((function(){return e.then((function(e){r.add(t.schedule((function(){n.next(e),r.add(t.schedule((function(){return n.complete()})))})))}),(function(e){r.add(t.schedule((function(){return n.error(e)})))}))}))),r}))}(e,t);if(Object(u.a)(e))return Object(s.a)(e,t);if(function(e){return e&&"function"==typeof e[l.a]}(e)||"string"==typeof e)return function(e,t){if(!e)throw new Error("Iterable cannot be null");return new r.a((function(n){var r,i=new a.a;return i.add((function(){r&&"function"==typeof r.return&&r.return()})),i.add(t.schedule((function(){r=e[l.a](),i.add(t.schedule((function(){if(!n.closed){var e,t;try{var i=r.next();e=i.value,t=i.done}catch(a){return void n.error(a)}t?n.complete():(n.next(e),this.schedule())}})))}))),i}))}(e,t)}throw new TypeError((null!==e&&typeof e||e)+" is not observable")}function h(e,t){return t?d(e,t):e instanceof r.a?e:new r.a(Object(i.a)(e))}n.d(t,"a",(function(){return h}))},function(e,t,n){"use strict";var r=n(1),i=function(){function e(t,n){void 0===n&&(n=e.now),this.SchedulerAction=t,this.now=n}return e.prototype.schedule=function(e,t,n){return void 0===t&&(t=0),new this.SchedulerAction(this,e).schedule(n,t)},e.now=function(){return Date.now()},e}();n.d(t,"a",(function(){return a}));var a=function(e){function t(n,r){void 0===r&&(r=i.now);var a=e.call(this,n,(function(){return t.delegate&&t.delegate!==a?t.delegate.now():r()}))||this;return a.actions=[],a.active=!1,a.scheduled=void 0,a}return r.c(t,e),t.prototype.schedule=function(n,r,i){return void 0===r&&(r=0),t.delegate&&t.delegate!==this?t.delegate.schedule(n,r,i):e.prototype.schedule.call(this,n,r,i)},t.prototype.flush=function(e){var t=this.actions;if(this.active)t.push(e);else{var n;this.active=!0;do{if(n=e.execute(e.state,e.delay))break}while(e=t.shift());if(this.active=!1,n){for(;e=t.shift();)e.unsubscribe();throw n}}},t}(i)},function(e,t,n){"use strict";var r=n(1),i=function(e){function t(t,n){return e.call(this)||this}return r.c(t,e),t.prototype.schedule=function(e,t){return void 0===t&&(t=0),this},t}(n(54).a);n.d(t,"a",(function(){return a}));var a=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.scheduler=t,r.work=n,r.pending=!1,r}return r.c(t,e),t.prototype.schedule=function(e,t){if(void 0===t&&(t=0),this.closed)return this;this.state=e;var n=this.id,r=this.scheduler;return null!=n&&(this.id=this.recycleAsyncId(r,n,t)),this.pending=!0,this.delay=t,this.id=this.id||this.requestAsyncId(r,this.id,t),this},t.prototype.requestAsyncId=function(e,t,n){return void 0===n&&(n=0),setInterval(e.flush.bind(e,this),n)},t.prototype.recycleAsyncId=function(e,t,n){if(void 0===n&&(n=0),null!==n&&this.delay===n&&!1===this.pending)return t;clearInterval(t)},t.prototype.execute=function(e,t){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var n=this._execute(e,t);if(n)return n;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},t.prototype._execute=function(e,t){var n=!1,r=void 0;try{this.work(e)}catch(i){n=!0,r=!!i&&i||new Error(i)}if(n)return this.unsubscribe(),r},t.prototype._unsubscribe=function(){var e=this.id,t=this.scheduler,n=t.actions,r=n.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==r&&n.splice(r,1),null!=e&&(this.id=this.recycleAsyncId(t,e,null)),this.delay=null},t}(i)},function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var r=function(){function e(){}return e.write=function(t){return""+t+e.RecordSeparator},e.parse=function(t){if(t[t.length-1]!==e.RecordSeparator)throw new Error("Message is incomplete.");var n=t.split(e.RecordSeparator);return n.pop(),n},e.RecordSeparatorCode=30,e.RecordSeparator=String.fromCharCode(e.RecordSeparatorCode),e}()},,function(e,t,n){var r=n(22),i=n(20).document,a=r(i)&&r(i.createElement);e.exports=function(e){return a?i.createElement(e):{}}},function(e,t,n){var r=n(131)("keys"),i=n(89);e.exports=function(e){return r[e]||(r[e]=i(e))}},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,n){var r=n(20).document;e.exports=r&&r.documentElement},function(e,t,n){var r=n(22),i=n(15),a=function(e,t){if(i(e),!r(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,r){try{(r=n(62)(Function.call,n(59).f(Object.prototype,"__proto__").set,2))(e,[]),t=!(e instanceof Array)}catch(i){t=!0}return function(e,n){return a(e,n),t?e.__proto__=n:r(e,n),e}}({},!1):void 0),check:a}},function(e,t){e.exports="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff"},function(e,t,n){var r=n(22),i=n(175).set;e.exports=function(e,t,n){var a,o=t.constructor;return o!==n&&"function"==typeof o&&(a=o.prototype)!==n.prototype&&r(a)&&i&&i(e,a),e}},function(e,t){e.exports=Math.sign||function(e){return 0==(e=+e)||e!=e?e:e<0?-1:1}},function(e,t){var n=Math.expm1;e.exports=!n||n(10)>22025.465794806718||n(10)<22025.465794806718||-2e-17!=n(-2e-17)?function(e){return 0==(e=+e)?e:e>-1e-6&&e<1e-6?e+e*e/2:Math.exp(e)-1}:n},function(e,t,n){"use strict";var r=n(83),i=n(85),a=n(109),o={};n(56)(o,n(27)("iterator"),(function(){return this})),e.exports=function(e,t,n){e.prototype=r(o,{next:i(1,n)}),a(e,t+" Iterator")}},function(e,t,n){var r=n(154),i=n(76);e.exports=function(e,t,n){if(r(t))throw TypeError("String#"+n+" doesn't accept regex!");return String(i(e))}},function(e,t,n){var r=n(27)("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[r]=!1,!"/./"[e](t)}catch(i){}}return!0}},function(e,t,n){var r=n(110),i=n(27)("iterator"),a=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||a[i]===e)}},function(e,t,n){"use strict";var r=n(42),i=n(91),a=n(31);e.exports=function(e){for(var t=r(this),n=a(t.length),o=arguments.length,s=i(o>1?arguments[1]:void 0,n),l=o>2?arguments[2]:void 0,c=void 0===l?n:i(l,n);c>s;)t[s++]=e;return t}},function(e,t,n){"use strict";var r,i,a=n(124),o=RegExp.prototype.exec,s=String.prototype.replace,l=o,c=(r=/a/,i=/b*/g,o.call(r,"a"),o.call(i,"a"),0!==r.lastIndex||0!==i.lastIndex),u=void 0!==/()??/.exec("")[1];(c||u)&&(l=function(e){var t,n,r,i,l=this;return u&&(n=new RegExp("^"+l.source+"$(?!\\s)",a.call(l))),c&&(t=l.lastIndex),r=o.call(l,e),c&&r&&(l.lastIndex=l.global?r.index+r[0].length:t),u&&r&&r.length>1&&s.call(r[0],n,(function(){for(i=1;i>1,u=23===t?x(2,-24)-x(2,-77):0,d=0,h=e<0||0===e&&1/e<0?1:0;for((e=C(e))!=e||e===_?(i=e!=e?1:0,r=l):(r=E(S(e)/T),e*(a=x(2,-r))<1&&(r--,a*=2),(e+=r+c>=1?u/a:u*x(2,1-c))*a>=2&&(r++,a/=2),r+c>=l?(i=0,r=l):r+c>=1?(i=(e*a-1)*x(2,t),r+=c):(i=e*x(2,c-1)*x(2,t),r=0));t>=8;o[d++]=255&i,i/=256,t-=8);for(r=r<0;o[d++]=255&r,r/=256,s-=8);return o[--d]|=128*h,o}function A(e,t,n){var r,i=8*n-t-1,a=(1<>1,s=i-7,l=n-1,c=e[l--],u=127&c;for(c>>=7;s>0;u=256*u+e[l],l--,s-=8);for(r=u&(1<<-s)-1,u>>=-s,s+=t;s>0;r=256*r+e[l],l--,s-=8);if(0===u)u=1-o;else{if(u===a)return r?NaN:c?-_:_;r+=x(2,t),u-=o}return(c?-1:1)*r*x(2,u-t)}function N(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]}function P(e){return[255&e]}function R(e){return[255&e,e>>8&255]}function M(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]}function q(e){return D(e,52,8)}function B(e){return D(e,23,4)}function L(e,t,n){m(e.prototype,t,{get:function(){return this[n]}})}function F(e,t,n,r){var i=p(+n);if(i+t>e[z])throw w("Wrong index!");var a=e[O]._b,o=i+e[I],s=a.slice(o,o+t);return r?s:s.reverse()}function U(e,t,n,r,i,a){var o=p(+n);if(o+t>e[z])throw w("Wrong index!");for(var s=e[O]._b,l=o+e[I],c=r(+i),u=0;uW;)(V=K[W++])in b||s(b,V,j[V]);a||(H.constructor=b)}var G=new v(new b(2)),Q=v.prototype.setInt8;G.setInt8(0,2147483648),G.setInt8(1,2147483649),!G.getInt8(0)&&G.getInt8(1)||l(v.prototype,{setInt8:function(e,t){Q.call(this,e,t<<24>>24)},setUint8:function(e,t){Q.call(this,e,t<<24>>24)}},!0)}else b=function(e){u(this,b,"ArrayBuffer");var t=p(e);this._b=g.call(new Array(t),0),this[z]=t},v=function(e,t,n){u(this,v,"DataView"),u(e,b,"DataView");var r=e[z],i=d(t);if(i<0||i>r)throw w("Wrong offset!");if(i+(n=void 0===n?r-i:h(n))>r)throw w("Wrong length!");this[O]=e,this[I]=i,this[z]=n},i&&(L(b,"byteLength","_l"),L(v,"buffer","_b"),L(v,"byteLength","_l"),L(v,"byteOffset","_o")),l(v.prototype,{getInt8:function(e){return F(this,1,e)[0]<<24>>24},getUint8:function(e){return F(this,1,e)[0]},getInt16:function(e){var t=F(this,2,e,arguments[1]);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=F(this,2,e,arguments[1]);return t[1]<<8|t[0]},getInt32:function(e){return N(F(this,4,e,arguments[1]))},getUint32:function(e){return N(F(this,4,e,arguments[1]))>>>0},getFloat32:function(e){return A(F(this,4,e,arguments[1]),23,4)},getFloat64:function(e){return A(F(this,8,e,arguments[1]),52,8)},setInt8:function(e,t){U(this,1,e,P,t)},setUint8:function(e,t){U(this,1,e,P,t)},setInt16:function(e,t){U(this,2,e,R,t,arguments[2])},setUint16:function(e,t){U(this,2,e,R,t,arguments[2])},setInt32:function(e,t){U(this,4,e,M,t,arguments[2])},setUint32:function(e,t){U(this,4,e,M,t,arguments[2])},setFloat32:function(e,t){U(this,4,e,B,t,arguments[2])},setFloat64:function(e,t){U(this,8,e,q,t,arguments[2])}});y(b,"ArrayBuffer"),y(v,"DataView"),s(v.prototype,o.VIEW,!0),t.ArrayBuffer=b,t.DataView=v},,,,,function(e,t,n){var r=n(95),i=r.Buffer;function a(e,t){for(var n in e)t[n]=e[n]}function o(e,t,n){return i(e,t,n)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=r:(a(r,t),t.Buffer=o),a(i,o),o.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,n)},o.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=i(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r.SlowBuffer(e)}},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},function(e,t,n){var r=n(34);function i(e,t){r.cipher.registerAlgorithm(e,(function(){return new r.aes.Algorithm(e,t)}))}n(519),n(727),n(44),e.exports=r.aes=r.aes||{},r.aes.startEncrypting=function(e,t,n,r){var i=f({key:e,output:n,decrypt:!1,mode:r});return i.start(t),i},r.aes.createEncryptionCipher=function(e,t){return f({key:e,output:null,decrypt:!1,mode:t})},r.aes.startDecrypting=function(e,t,n,r){var i=f({key:e,output:n,decrypt:!0,mode:r});return i.start(t),i},r.aes.createDecryptionCipher=function(e,t){return f({key:e,output:null,decrypt:!0,mode:t})},r.aes.Algorithm=function(e,t){u||d();var n=this;n.name=e,n.mode=new t({blockSize:16,cipher:{encrypt:function(e,t){return p(n._w,e,t,!1)},decrypt:function(e,t){return p(n._w,e,t,!0)}}}),n._init=!1},r.aes.Algorithm.prototype.initialize=function(e){if(!this._init){var t,n=e.key;if("string"!=typeof n||16!==n.length&&24!==n.length&&32!==n.length){if(r.util.isArray(n)&&(16===n.length||24===n.length||32===n.length)){t=n,n=r.util.createBuffer();for(var i=0;i>>=2;for(i=0;i>8^255&d^99,a[m]=d,o[d]=m,p=(h=e[d])<<24^d<<16^d<<8^d^h,f=((n=e[m])^(r=e[n])^(i=e[r]))<<24^(m^i)<<16^(m^r^i)<<8^m^n^i;for(var y=0;y<4;++y)l[y][m]=p,c[y][d]=f,p=p<<24|p>>>8,f=f<<24|f>>>8;0===m?m=g=1:(m=n^e[e[e[n^i]]],g^=e[e[g]])}}function h(e,t){for(var n,r=e.slice(0),i=1,o=r.length,l=4*(o+6+1),u=o;u>>16&255]<<24^a[n>>>8&255]<<16^a[255&n]<<8^a[n>>>24]^s[i]<<24,i++):o>6&&u%o==4&&(n=a[n>>>24]<<24^a[n>>>16&255]<<16^a[n>>>8&255]<<8^a[255&n]),r[u]=r[u-o]^n;if(t){for(var d,h=c[0],p=c[1],f=c[2],m=c[3],g=r.slice(0),y=(u=0,(l=r.length)-4);u>>24]]^p[a[d>>>16&255]]^f[a[d>>>8&255]]^m[a[255&d]];r=g}return r}function p(e,t,n,r){var i,s,u,d,h,p,f,m,g,y,b,v,k=e.length/4-1;r?(i=c[0],s=c[1],u=c[2],d=c[3],h=o):(i=l[0],s=l[1],u=l[2],d=l[3],h=a),p=t[0]^e[0],f=t[r?3:1]^e[1],m=t[2]^e[2],g=t[r?1:3]^e[3];for(var w=3,_=1;_>>24]^s[f>>>16&255]^u[m>>>8&255]^d[255&g]^e[++w],b=i[f>>>24]^s[m>>>16&255]^u[g>>>8&255]^d[255&p]^e[++w],v=i[m>>>24]^s[g>>>16&255]^u[p>>>8&255]^d[255&f]^e[++w],g=i[g>>>24]^s[p>>>16&255]^u[f>>>8&255]^d[255&m]^e[++w],p=y,f=b,m=v;n[0]=h[p>>>24]<<24^h[f>>>16&255]<<16^h[m>>>8&255]<<8^h[255&g]^e[++w],n[r?3:1]=h[f>>>24]<<24^h[m>>>16&255]<<16^h[g>>>8&255]<<8^h[255&p]^e[++w],n[2]=h[m>>>24]<<24^h[g>>>16&255]<<16^h[p>>>8&255]<<8^h[255&f]^e[++w],n[r?1:3]=h[g>>>24]<<24^h[p>>>16&255]<<16^h[f>>>8&255]<<8^h[255&m]^e[++w]}function f(e){var t,n="AES-"+((e=e||{}).mode||"CBC").toUpperCase(),i=(t=e.decrypt?r.cipher.createDecipher(n,e.key):r.cipher.createCipher(n,e.key)).start;return t.start=function(e,n){var a=null;n instanceof r.util.ByteBuffer&&(a=n,n={}),(n=n||{}).output=a,n.iv=e,i.call(t,n)},t}},function(e,t,n){var r=n(34);r.pki=r.pki||{};var i=e.exports=r.pki.oids=r.oids=r.oids||{};function a(e,t){i[e]=t,i[t]=e}function o(e,t){i[e]=t}a("1.2.840.113549.1.1.1","rsaEncryption"),a("1.2.840.113549.1.1.4","md5WithRSAEncryption"),a("1.2.840.113549.1.1.5","sha1WithRSAEncryption"),a("1.2.840.113549.1.1.7","RSAES-OAEP"),a("1.2.840.113549.1.1.8","mgf1"),a("1.2.840.113549.1.1.9","pSpecified"),a("1.2.840.113549.1.1.10","RSASSA-PSS"),a("1.2.840.113549.1.1.11","sha256WithRSAEncryption"),a("1.2.840.113549.1.1.12","sha384WithRSAEncryption"),a("1.2.840.113549.1.1.13","sha512WithRSAEncryption"),a("1.3.101.112","EdDSA25519"),a("1.2.840.10040.4.3","dsa-with-sha1"),a("1.3.14.3.2.7","desCBC"),a("1.3.14.3.2.26","sha1"),a("2.16.840.1.101.3.4.2.1","sha256"),a("2.16.840.1.101.3.4.2.2","sha384"),a("2.16.840.1.101.3.4.2.3","sha512"),a("1.2.840.113549.2.5","md5"),a("1.2.840.113549.1.7.1","data"),a("1.2.840.113549.1.7.2","signedData"),a("1.2.840.113549.1.7.3","envelopedData"),a("1.2.840.113549.1.7.4","signedAndEnvelopedData"),a("1.2.840.113549.1.7.5","digestedData"),a("1.2.840.113549.1.7.6","encryptedData"),a("1.2.840.113549.1.9.1","emailAddress"),a("1.2.840.113549.1.9.2","unstructuredName"),a("1.2.840.113549.1.9.3","contentType"),a("1.2.840.113549.1.9.4","messageDigest"),a("1.2.840.113549.1.9.5","signingTime"),a("1.2.840.113549.1.9.6","counterSignature"),a("1.2.840.113549.1.9.7","challengePassword"),a("1.2.840.113549.1.9.8","unstructuredAddress"),a("1.2.840.113549.1.9.14","extensionRequest"),a("1.2.840.113549.1.9.20","friendlyName"),a("1.2.840.113549.1.9.21","localKeyId"),a("1.2.840.113549.1.9.22.1","x509Certificate"),a("1.2.840.113549.1.12.10.1.1","keyBag"),a("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag"),a("1.2.840.113549.1.12.10.1.3","certBag"),a("1.2.840.113549.1.12.10.1.4","crlBag"),a("1.2.840.113549.1.12.10.1.5","secretBag"),a("1.2.840.113549.1.12.10.1.6","safeContentsBag"),a("1.2.840.113549.1.5.13","pkcs5PBES2"),a("1.2.840.113549.1.5.12","pkcs5PBKDF2"),a("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4"),a("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4"),a("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC"),a("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC"),a("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC"),a("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC"),a("1.2.840.113549.2.7","hmacWithSHA1"),a("1.2.840.113549.2.8","hmacWithSHA224"),a("1.2.840.113549.2.9","hmacWithSHA256"),a("1.2.840.113549.2.10","hmacWithSHA384"),a("1.2.840.113549.2.11","hmacWithSHA512"),a("1.2.840.113549.3.7","des-EDE3-CBC"),a("2.16.840.1.101.3.4.1.2","aes128-CBC"),a("2.16.840.1.101.3.4.1.22","aes192-CBC"),a("2.16.840.1.101.3.4.1.42","aes256-CBC"),a("2.5.4.3","commonName"),a("2.5.4.5","serialName"),a("2.5.4.6","countryName"),a("2.5.4.7","localityName"),a("2.5.4.8","stateOrProvinceName"),a("2.5.4.9","streetAddress"),a("2.5.4.10","organizationName"),a("2.5.4.11","organizationalUnitName"),a("2.5.4.13","description"),a("2.5.4.15","businessCategory"),a("2.5.4.17","postalCode"),a("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName"),a("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName"),a("2.16.840.1.113730.1.1","nsCertType"),a("2.16.840.1.113730.1.13","nsComment"),o("2.5.29.1","authorityKeyIdentifier"),o("2.5.29.2","keyAttributes"),o("2.5.29.3","certificatePolicies"),o("2.5.29.4","keyUsageRestriction"),o("2.5.29.5","policyMapping"),o("2.5.29.6","subtreesConstraint"),o("2.5.29.7","subjectAltName"),o("2.5.29.8","issuerAltName"),o("2.5.29.9","subjectDirectoryAttributes"),o("2.5.29.10","basicConstraints"),o("2.5.29.11","nameConstraints"),o("2.5.29.12","policyConstraints"),o("2.5.29.13","basicConstraints"),a("2.5.29.14","subjectKeyIdentifier"),a("2.5.29.15","keyUsage"),o("2.5.29.16","privateKeyUsagePeriod"),a("2.5.29.17","subjectAltName"),a("2.5.29.18","issuerAltName"),a("2.5.29.19","basicConstraints"),o("2.5.29.20","cRLNumber"),o("2.5.29.21","cRLReason"),o("2.5.29.22","expirationDate"),o("2.5.29.23","instructionCode"),o("2.5.29.24","invalidityDate"),o("2.5.29.25","cRLDistributionPoints"),o("2.5.29.26","issuingDistributionPoint"),o("2.5.29.27","deltaCRLIndicator"),o("2.5.29.28","issuingDistributionPoint"),o("2.5.29.29","certificateIssuer"),o("2.5.29.30","nameConstraints"),a("2.5.29.31","cRLDistributionPoints"),a("2.5.29.32","certificatePolicies"),o("2.5.29.33","policyMappings"),o("2.5.29.34","policyConstraints"),a("2.5.29.35","authorityKeyIdentifier"),o("2.5.29.36","policyConstraints"),a("2.5.29.37","extKeyUsage"),o("2.5.29.46","freshestCRL"),o("2.5.29.54","inhibitAnyPolicy"),a("1.3.6.1.4.1.11129.2.4.2","timestampList"),a("1.3.6.1.5.5.7.1.1","authorityInfoAccess"),a("1.3.6.1.5.5.7.3.1","serverAuth"),a("1.3.6.1.5.5.7.3.2","clientAuth"),a("1.3.6.1.5.5.7.3.3","codeSigning"),a("1.3.6.1.5.5.7.3.4","emailProtection"),a("1.3.6.1.5.5.7.3.8","timeStamping")},,function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var r=function(){return"function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random()}()},function(e,t,n){"use strict";var r=n(192).Buffer,i=n(1032),a=n(299),o=n(1040),s=n(1041),l=n(1042);e.exports=function(e){var t=[],n=[];return{encode:l(t,(e=e||{forceFloat64:!1,compatibilityMode:!1,disableTimestampEncoding:!1,protoAction:"error"}).forceFloat64,e.compatibilityMode,e.disableTimestampEncoding),decode:s(n,e),register:function(e,t,n,o){return i(t,"must have a constructor"),i(n,"must have an encode function"),i(e>=0,"must have a non-negative type"),i(o,"must have a decode function"),this.registerEncoder((function(e){return e instanceof t}),(function(t){var i=a(),o=r.allocUnsafe(1);return o.writeInt8(e,0),i.append(o),i.append(n(t)),i})),this.registerDecoder(e,o),this},registerEncoder:function(e,n){return i(e,"must have an encode function"),i(n,"must have an encode function"),t.push({check:e,encode:n}),this},registerDecoder:function(e,t){return i(e>=0,"must have a non-negative type"),i(t,"must have a decode function"),n.push({type:e,decode:t}),this},encoder:o.encoder,decoder:o.decoder,buffer:!0,type:"msgpack5",IncompleteBufferError:s.IncompleteBufferError}}},,function(e,t,n){"use strict";var r=n(90),i=n(132),a=n(123),o=n(42),s=n(115),l=Object.assign;e.exports=!l||n(21)((function(){var e={},t={},n=Symbol(),r="abcdefghijklmnopqrst";return e[n]=7,r.split("").forEach((function(e){t[e]=e})),7!=l({},e)[n]||Object.keys(l({},t)).join("")!=r}))?function(e,t){for(var n=o(e),l=arguments.length,c=1,u=i.f,d=a.f;l>c;)for(var h,p=s(arguments[c++]),f=u?r(p).concat(u(p)):r(p),m=f.length,g=0;m>g;)d.call(p,h=f[g++])&&(n[h]=p[h]);return n}:l},function(e,t){e.exports=function(e,t,n){var r=void 0===n;switch(t.length){case 0:return r?e():e.call(n);case 1:return r?e(t[0]):e.call(n,t[0]);case 2:return r?e(t[0],t[1]):e.call(n,t[0],t[1]);case 3:return r?e(t[0],t[1],t[2]):e.call(n,t[0],t[1],t[2]);case 4:return r?e(t[0],t[1],t[2],t[3]):e.call(n,t[0],t[1],t[2],t[3])}return e.apply(n,t)}},function(e,t,n){"use strict";var r=n(63),i=n(76);e.exports=function(e){var t=String(i(this)),n="",a=r(e);if(a<0||a==1/0)throw RangeError("Count can't be negative");for(;a>0;(a>>>=1)&&(t+=t))1&a&&(n+=t);return n}},function(e,t,n){"use strict";var r=n(33),i=n(85);e.exports=function(e,t,n){t in e?r.f(e,t,i(0,n)):e[t]=n}},function(e,t,n){"use strict";var r=n(97),i=n(205),a=n(110),o=n(52);e.exports=n(153)(Array,"Array",(function(e,t){this._t=o(e),this._i=0,this._k=t}),(function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,i(1)):i(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]])}),"values"),a.Arguments=a.Array,r("keys"),r("values"),r("entries")},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){var r,i,a,o=n(62),s=n(201),l=n(174),c=n(171),u=n(20),d=u.process,h=u.setImmediate,p=u.clearImmediate,f=u.MessageChannel,m=u.Dispatch,g=0,y={},b=function(){var e=+this;if(y.hasOwnProperty(e)){var t=y[e];delete y[e],t()}},v=function(e){b.call(e.data)};h&&p||(h=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return y[++g]=function(){s("function"==typeof e?e:Function(e),t)},r(g),g},p=function(e){delete y[e]},"process"==n(67)(d)?r=function(e){d.nextTick(o(b,e,1))}:m&&m.now?r=function(e){m.now(o(b,e,1))}:f?(a=(i=new f).port2,i.port1.onmessage=v,r=o(a.postMessage,a,1)):u.addEventListener&&"function"==typeof postMessage&&!u.importScripts?(r=function(e){u.postMessage(e+"","*")},u.addEventListener("message",v,!1)):r="onreadystatechange"in c("script")?function(e){l.appendChild(c("script")).onreadystatechange=function(){l.removeChild(this),b.call(e)}}:function(e){setTimeout(o(b,e,1),0)}),e.exports={set:h,clear:p}},function(e,t,n){"use strict";var r=n(47);function i(e){var t,n;this.promise=new e((function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=r})),this.resolve=r(t),this.reject=r(n)}e.exports.f=function(e){return new i(e)}},function(e,t,n){var r=n(20).navigator;e.exports=r&&r.userAgent||""},,,,function(e,t,n){"use strict";var r=n(300),i=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=d;var a=n(264);a.inherits=n(193);var o=n(718),s=n(722);a.inherits(d,o);for(var l=i(s.prototype),c=0;c65&&-1!==o){var s=t[o];","===s?(++o,t=t.substr(0,o)+"\r\n "+t.substr(o)):t=t.substr(0,o)+"\r\n"+s+t.substr(o+1),a=i-o-1,o=-1,++i}else" "!==t[i]&&"\t"!==t[i]&&","!==t[i]||(o=i);return t}function o(e){return e.replace(/^\s+/,"")}i.encode=function(e,t){t=t||{};var n,i="-----BEGIN "+e.type+"-----\r\n";if(e.procType&&(i+=a(n={name:"Proc-Type",values:[String(e.procType.version),e.procType.type]})),e.contentDomain&&(i+=a(n={name:"Content-Domain",values:[e.contentDomain]})),e.dekInfo&&(n={name:"DEK-Info",values:[e.dekInfo.algorithm]},e.dekInfo.parameters&&n.values.push(e.dekInfo.parameters),i+=a(n)),e.headers)for(var o=0;ol;)r(s,n=t[l++])&&(~a(c,n)||c.push(n));return c}},function(e,t,n){var r=n(33),i=n(15),a=n(90);e.exports=n(35)?Object.defineProperties:function(e,t){i(e);for(var n,o=a(t),s=o.length,l=0;s>l;)r.f(e,n=o[l++],t[n]);return e}},function(e,t,n){var r=n(52),i=n(92).f,a={}.toString,o="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return o&&"[object Window]"==a.call(e)?function(e){try{return i(e)}catch(t){return o.slice()}}(e):i(r(e))}},function(e,t){e.exports=Object.is||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}},function(e,t,n){"use strict";var r=n(47),i=n(22),a=n(201),o=[].slice,s={},l=function(e,t,n){if(!(t in s)){for(var r=[],i=0;i>>0||(o.test(n)?16:10))}:r},function(e,t,n){var r=n(20).parseFloat,i=n(116).trim;e.exports=1/r(n(176)+"-0")!=-1/0?function(e){var t=i(String(e),3),n=r(t);return 0===n&&"-"==t.charAt(0)?-0:n}:r},function(e,t,n){var r=n(67);e.exports=function(e,t){if("number"!=typeof e&&"Number"!=r(e))throw TypeError(t);return+e}},function(e,t,n){var r=n(22),i=Math.floor;e.exports=function(e){return!r(e)&&isFinite(e)&&i(e)===e}},function(e,t){e.exports=Math.log1p||function(e){return(e=+e)>-1e-8&&e<1e-8?e-e*e/2:Math.log(1+e)}},function(e,t,n){var r=n(15);e.exports=function(e,t,n,i){try{return i?t(r(n)[0],n[1]):t(n)}catch(o){var a=e.return;throw void 0!==a&&r(a.call(e)),o}}},function(e,t,n){var r=n(402);e.exports=function(e,t){return new(r(e))(t)}},function(e,t,n){var r=n(47),i=n(42),a=n(115),o=n(31);e.exports=function(e,t,n,s,l){r(t);var c=i(e),u=a(c),d=o(c.length),h=l?d-1:0,p=l?-1:1;if(n<2)for(;;){if(h in u){s=u[h],h+=p;break}if(h+=p,l?h<0:d<=h)throw TypeError("Reduce of empty array with no initial value")}for(;l?h>=0:d>h;h+=p)h in u&&(s=t(s,u[h],h,c));return s}},function(e,t,n){"use strict";var r=n(42),i=n(91),a=n(31);e.exports=[].copyWithin||function(e,t){var n=r(this),o=a(n.length),s=i(e,o),l=i(t,o),c=arguments.length>2?arguments[2]:void 0,u=Math.min((void 0===c?o:i(c,o))-l,o-s),d=1;for(l0;)l in n?n[s]=n[l]:delete n[s],s+=d,l+=d;return n}},function(e,t,n){"use strict";var r=n(185);n(2)({target:"RegExp",proto:!0,forced:r!==/./.exec},{exec:r})},function(e,t,n){n(35)&&"g"!=/./g.flags&&n(33).f(RegExp.prototype,"flags",{configurable:!0,get:n(124)})},function(e,t,n){var r=n(20),i=n(206).set,a=r.MutationObserver||r.WebKitMutationObserver,o=r.process,s=r.Promise,l="process"==n(67)(o);e.exports=function(){var e,t,n,c=function(){var r,i;for(l&&(r=o.domain)&&r.exit();e;){i=e.fn,e=e.next;try{i()}catch(a){throw e?n():t=void 0,a}}t=void 0,r&&r.enter()};if(l)n=function(){o.nextTick(c)};else if(!a||r.navigator&&r.navigator.standalone)if(s&&s.resolve){var u=s.resolve(void 0);n=function(){u.then(c)}}else n=function(){i.call(r,c)};else{var d=!0,h=document.createTextNode("");new a(c).observe(h,{characterData:!0}),n=function(){h.data=d=!d}}return function(r){var i={fn:r,next:void 0};t&&(t.next=i),e||(e=i,n()),t=i}}},function(e,t,n){"use strict";var r=n(241),i=n(111);e.exports=n(137)("Map",(function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}}),{get:function(e){var t=r.getEntry(i(this,"Map"),e);return t&&t.v},set:function(e,t){return r.def(i(this,"Map"),0===e?0:e,t)}},r,!0)},function(e,t,n){"use strict";var r=n(33).f,i=n(83),a=n(101),o=n(62),s=n(99),l=n(100),c=n(153),u=n(205),d=n(98),h=n(35),p=n(82).fastKey,f=n(111),m=h?"_s":"size",g=function(e,t){var n,r=p(t);if("F"!==r)return e._i[r];for(n=e._f;n;n=n.n)if(n.k==t)return n};e.exports={getConstructor:function(e,t,n,c){var u=e((function(e,r){s(e,u,t,"_i"),e._t=t,e._i=i(null),e._f=void 0,e._l=void 0,e[m]=0,null!=r&&l(r,n,e[c],e)}));return a(u.prototype,{clear:function(){for(var e=f(this,t),n=e._i,r=e._f;r;r=r.n)r.r=!0,r.p&&(r.p=r.p.n=void 0),delete n[r.i];e._f=e._l=void 0,e[m]=0},delete:function(e){var n=f(this,t),r=g(n,e);if(r){var i=r.n,a=r.p;delete n._i[r.i],r.r=!0,a&&(a.n=i),i&&(i.p=a),n._f==r&&(n._f=i),n._l==r&&(n._l=a),n[m]--}return!!r},forEach:function(e){f(this,t);for(var n,r=o(e,arguments.length>1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(r(n.v,n.k,this);n&&n.r;)n=n.p},has:function(e){return!!g(f(this,t),e)}}),h&&r(u.prototype,"size",{get:function(){return f(this,t)[m]}}),u},def:function(e,t,n){var r,i,a=g(e,t);return a?a.v=n:(e._l=a={i:i=p(t,!0),k:t,v:n,p:r=e._l,n:void 0,r:!1},e._f||(e._f=a),r&&(r.n=a),e[m]++,"F"!==i&&(e._i[i]=a)),e},getEntry:g,setStrong:function(e,t,n){c(e,t,(function(e,n){this._t=f(e,t),this._k=n,this._l=void 0}),(function(){for(var e=this._k,t=this._l;t&&t.r;)t=t.p;return this._t&&(this._l=t=t?t.n:this._t._f)?u(0,"keys"==e?t.k:"values"==e?t.v:[t.k,t.v]):(this._t=void 0,u(1))}),n?"entries":"values",!n,!0),d(t)}}},function(e,t,n){"use strict";var r=n(241),i=n(111);e.exports=n(137)("Set",(function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}}),{add:function(e){return r.def(i(this,"Set"),e=0===e?0:e,e)}},r)},function(e,t,n){"use strict";var r,i=n(69)(0),a=n(51),o=n(82),s=n(200),l=n(244),c=n(22),u=n(21),d=n(111),h=o.getWeak,p=Object.isExtensible,f=l.ufstore,m={},g=function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},y={get:function(e){if(c(e)){var t=h(e);return!0===t?f(d(this,"WeakMap")).get(e):t?t[this._i]:void 0}},set:function(e,t){return l.def(d(this,"WeakMap"),e,t)}},b=e.exports=n(137)("WeakMap",g,y,l,!0,!0);u((function(){return 7!=(new b).set((Object.freeze||Object)(m),7).get(m)}))&&(s((r=l.getConstructor(g,"WeakMap")).prototype,y),o.NEED=!0,i(["delete","has","get","set"],(function(e){var t=b.prototype,n=t[e];a(t,e,(function(t,i){if(c(t)&&!p(t)){this._f||(this._f=new r);var a=this._f[e](t,i);return"set"==e?this:a}return n.call(this,t,i)}))})))},function(e,t,n){"use strict";var r=n(101),i=n(82).getWeak,a=n(15),o=n(22),s=n(99),l=n(100),c=n(69),u=n(50),d=n(111),h=c(5),p=c(6),f=0,m=function(e){return e._l||(e._l=new g)},g=function(){this.a=[]},y=function(e,t){return h(e.a,(function(e){return e[0]===t}))};g.prototype={get:function(e){var t=y(this,e);if(t)return t[1]},has:function(e){return!!y(this,e)},set:function(e,t){var n=y(this,e);n?n[1]=t:this.a.push([e,t])},delete:function(e){var t=p(this.a,(function(t){return t[0]===e}));return~t&&this.a.splice(t,1),!!~t}},e.exports={getConstructor:function(e,t,n,a){var c=e((function(e,r){s(e,c,t,"_i"),e._t=t,e._i=f++,e._l=void 0,null!=r&&l(r,n,e[a],e)}));return r(c.prototype,{delete:function(e){if(!o(e))return!1;var n=i(e);return!0===n?m(d(this,t)).delete(e):n&&u(n,this._i)&&delete n[this._i]},has:function(e){if(!o(e))return!1;var n=i(e);return!0===n?m(d(this,t)).has(e):n&&u(n,this._i)}}),c},def:function(e,t,n){var r=i(a(t),!0);return!0===r?m(e).set(t,n):r[e._i]=n,e},ufstore:m}},function(e,t,n){var r=n(63),i=n(31);e.exports=function(e){if(void 0===e)return 0;var t=r(e),n=i(t);if(t!==n)throw RangeError("Wrong length!");return n}},function(e,t,n){var r=n(92),i=n(132),a=n(15),o=n(20).Reflect;e.exports=o&&o.ownKeys||function(e){var t=r.f(a(e)),n=i.f;return n?t.concat(n(e)):t}},,,,,,,,,,,,,,,,,,function(e,t,n){(function(e){function n(e){return Object.prototype.toString.call(e)}t.isArray=function(e){return Array.isArray?Array.isArray(e):"[object Array]"===n(e)},t.isBoolean=function(e){return"boolean"==typeof e},t.isNull=function(e){return null===e},t.isNullOrUndefined=function(e){return null==e},t.isNumber=function(e){return"number"==typeof e},t.isString=function(e){return"string"==typeof e},t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=function(e){return void 0===e},t.isRegExp=function(e){return"[object RegExp]"===n(e)},t.isObject=function(e){return"object"==typeof e&&null!==e},t.isDate=function(e){return"[object Date]"===n(e)},t.isError=function(e){return"[object Error]"===n(e)||e instanceof Error},t.isFunction=function(e){return"function"==typeof e},t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=e.isBuffer}).call(this,n(95).Buffer)},function(e,t,n){var r=n(34);n(145),n(44),(e.exports=r.hmac=r.hmac||{}).create=function(){var e=null,t=null,n=null,i=null,a={start:function(a,o){if(null!==a)if("string"==typeof a){if(!((a=a.toLowerCase())in r.md.algorithms))throw new Error('Unknown hash algorithm "'+a+'"');t=r.md.algorithms[a].create()}else t=a;if(null===o)o=e;else{if("string"==typeof o)o=r.util.createBuffer(o);else if(r.util.isArray(o)){var s=o;o=r.util.createBuffer();for(var l=0;lt.blockLength&&(t.start(),t.update(o.bytes()),o=t.digest()),n=r.util.createBuffer(),i=r.util.createBuffer(),c=o.length();for(l=0;l>>0,l>>>0];for(var c=i.fullMessageLength.length-1;c>=0;--c)i.fullMessageLength[c]+=l[1],l[1]=l[0]+(i.fullMessageLength[c]/4294967296>>>0),i.fullMessageLength[c]=i.fullMessageLength[c]>>>0,l[0]=l[1]/4294967296>>>0;return t.putBytes(a),s(e,n,t),(t.read>2048||0===t.length())&&t.compact(),i},i.digest=function(){var o=r.util.createBuffer();o.putBytes(t.bytes());var l,c=i.fullMessageLength[i.fullMessageLength.length-1]+i.messageLengthSize&i.blockLength-1;o.putBytes(a.substr(0,i.blockLength-c));for(var u=8*i.fullMessageLength[0],d=0;d>>0,o.putInt32(u>>>0),u=l>>>0;o.putInt32(u);var h={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4};s(h,n,o);var p=r.util.createBuffer();return p.putInt32(h.h0),p.putInt32(h.h1),p.putInt32(h.h2),p.putInt32(h.h3),p.putInt32(h.h4),p},i};var a=null,o=!1;function s(e,t,n){for(var r,i,a,o,s,l,c,u=n.length();u>=64;){for(i=e.h0,a=e.h1,o=e.h2,s=e.h3,l=e.h4,c=0;c<16;++c)r=n.getInt32(),t[c]=r,r=(i<<5|i>>>27)+(s^a&(o^s))+l+1518500249+r,l=s,s=o,o=(a<<30|a>>>2)>>>0,a=i,i=r;for(;c<20;++c)r=(r=t[c-3]^t[c-8]^t[c-14]^t[c-16])<<1|r>>>31,t[c]=r,r=(i<<5|i>>>27)+(s^a&(o^s))+l+1518500249+r,l=s,s=o,o=(a<<30|a>>>2)>>>0,a=i,i=r;for(;c<32;++c)r=(r=t[c-3]^t[c-8]^t[c-14]^t[c-16])<<1|r>>>31,t[c]=r,r=(i<<5|i>>>27)+(a^o^s)+l+1859775393+r,l=s,s=o,o=(a<<30|a>>>2)>>>0,a=i,i=r;for(;c<40;++c)r=(r=t[c-6]^t[c-16]^t[c-28]^t[c-32])<<2|r>>>30,t[c]=r,r=(i<<5|i>>>27)+(a^o^s)+l+1859775393+r,l=s,s=o,o=(a<<30|a>>>2)>>>0,a=i,i=r;for(;c<60;++c)r=(r=t[c-6]^t[c-16]^t[c-28]^t[c-32])<<2|r>>>30,t[c]=r,r=(i<<5|i>>>27)+(a&o|s&(a^o))+l+2400959708+r,l=s,s=o,o=(a<<30|a>>>2)>>>0,a=i,i=r;for(;c<80;++c)r=(r=t[c-6]^t[c-16]^t[c-28]^t[c-32])<<2|r>>>30,t[c]=r,r=(i<<5|i>>>27)+(a^o^s)+l+3395469782+r,l=s,s=o,o=(a<<30|a>>>2)>>>0,a=i,i=r;e.h0=e.h0+i|0,e.h1=e.h1+a|0,e.h2=e.h2+o|0,e.h3=e.h3+s|0,e.h4=e.h4+l|0,u-=64}}},function(e,t,n){"use strict";n.r(t);var r=n(0),i=n(4); +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +function a(e){return null!=e&&""+e!="false"} +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function o(e,t){return void 0===t&&(t=0),function(e){return!isNaN(parseFloat(e))&&!isNaN(Number(e))} +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */(e)?Number(e):t} +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +function s(e){return e instanceof r.ElementRef?e.nativeElement:e} +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var l=n(147),c=n(310),u=n(32),d=n(1105),h=n(1103),p=n(1),f=n(168),m=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.scheduler=t,r.work=n,r}return p.c(t,e),t.prototype.requestAsyncId=function(t,n,r){return void 0===r&&(r=0),null!==r&&r>0?e.prototype.requestAsyncId.call(this,t,n,r):(t.actions.push(this),t.scheduled||(t.scheduled=requestAnimationFrame((function(){return t.flush(null)}))))},t.prototype.recycleAsyncId=function(t,n,r){if(void 0===r&&(r=0),null!==r&&r>0||null===r&&this.delay>0)return e.prototype.recycleAsyncId.call(this,t,n,r);0===t.actions.length&&(cancelAnimationFrame(n),t.scheduled=void 0)},t}(f.a),g=n(167),y=new(function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return p.c(t,e),t.prototype.flush=function(e){this.active=!0,this.scheduled=void 0;var t,n=this.actions,r=-1,i=n.length;e=e||n.shift();do{if(t=e.execute(e.state,e.delay))break}while(++r0?e.prototype.requestAsyncId.call(this,t,n,r):(t.actions.push(this),t.scheduled||(t.scheduled=_(t.flush.bind(t,null))))},t.prototype.recycleAsyncId=function(t,n,r){if(void 0===r&&(r=0),null!==r&&r>0||null===r&&this.delay>0)return e.prototype.recycleAsyncId.call(this,t,n,r);0===t.actions.length&&(j(n),t.scheduled=void 0)},t}(f.a),x=new(function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return p.c(t,e),t.prototype.flush=function(e){this.active=!0,this.scheduled=void 0;var t,n=this.actions,r=-1,i=n.length;e=e||n.shift();do{if(t=e.execute(e.state,e.delay))break}while(++r=0}var M=n(122);function q(e){var t=e.index,n=e.period,r=e.subscriber;if(r.next(t),!r.closed){if(-1===n)return r.complete();e.index=t+1,this.schedule(e,n)}}function B(e,t){return void 0===t&&(t=I.a),n=function(){return function(e,t,n){void 0===e&&(e=0);var r=-1;return R(t)?r=Number(t)<1?1:Number(t):Object(M.a)(t)&&(n=t),Object(M.a)(n)||(n=I.a),new u.a((function(t){var i=R(e)?e:+e-n.now();return n.schedule(q,i,{index:0,period:r,subscriber:t})}))}(e,t)},function(e){return e.lift(new A(n))};var n}var L=n(311);function F(e){return function(t){return t.lift(new U(e))}}var U=function(){function e(e){this.notifier=e}return e.prototype.call=function(e,t){var n=new V(e),r=Object(D.c)(this.notifier,new D.a(n));return r&&!n.seenValue?(n.add(r),t.subscribe(n)):n},e}(),V=function(e){function t(t){var n=e.call(this,t)||this;return n.seenValue=!1,n}return p.c(t,e),t.prototype.notifyNext=function(){this.seenValue=!0,this.complete()},t.prototype.notifyComplete=function(){},t}(D.b),H=n(1107);var K,W=function(){function e(){}return e.prototype.call=function(e,t){return t.subscribe(new G(e))},e}(),G=function(e){function t(t){var n=e.call(this,t)||this;return n.hasPrev=!1,n}return p.c(t,e),t.prototype._next=function(e){var t;this.hasPrev?t=[this.prev,e]:this.hasPrev=!0,this.prev=e,t&&this.destination.next(t)},t}(T.a),Q=n(1106),$=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.scheduler=t,r.work=n,r}return p.c(t,e),t.prototype.schedule=function(t,n){return void 0===n&&(n=0),n>0?e.prototype.schedule.call(this,t,n):(this.delay=n,this.state=t,this.scheduler.flush(this),this)},t.prototype.execute=function(t,n){return n>0||this.closed?e.prototype.execute.call(this,t,n):this._execute(t,n)},t.prototype.requestAsyncId=function(t,n,r){return void 0===r&&(r=0),null!==r&&r>0||null===r&&this.delay>0?e.prototype.requestAsyncId.call(this,t,n,r):t.flush(this)},t}(f.a),Y=new(function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return p.c(t,e),t}(g.a))($),Z=n(165);function J(e){var t=e.error;e.subscriber.error(t)}K||(K={});var X=function(){function e(e,t,n){this.kind=e,this.value=t,this.error=n,this.hasValue="N"===e}return e.prototype.observe=function(e){switch(this.kind){case"N":return e.next&&e.next(this.value);case"E":return e.error&&e.error(this.error);case"C":return e.complete&&e.complete()}},e.prototype.do=function(e,t,n){switch(this.kind){case"N":return e&&e(this.value);case"E":return t&&t(this.error);case"C":return n&&n()}},e.prototype.accept=function(e,t,n){return e&&"function"==typeof e.next?this.observe(e):this.do(e,t,n)},e.prototype.toObservable=function(){var e,t;switch(this.kind){case"N":return Object(c.a)(this.value);case"E":return e=this.error,t?new u.a((function(n){return t.schedule(J,0,{error:e,subscriber:n})})):new u.a((function(t){return t.error(e)}));case"C":return Object(Z.b)()}throw new Error("unexpected notification kind value")},e.createNext=function(t){return void 0!==t?new e("N",t):e.undefinedValueNotification},e.createError=function(t){return new e("E",void 0,t)},e.createComplete=function(){return e.completeNotification},e.completeNotification=new e("C"),e.undefinedValueNotification=new e("N",void 0),e}();var ee,te=function(e){function t(t,n,r){void 0===r&&(r=0);var i=e.call(this,t)||this;return i.scheduler=n,i.delay=r,i}return p.c(t,e),t.dispatch=function(e){var t=e.notification,n=e.destination;t.observe(n),this.unsubscribe()},t.prototype.scheduleMessage=function(e){this.destination.add(this.scheduler.schedule(t.dispatch,this.delay,new ne(e,this.destination)))},t.prototype._next=function(e){this.scheduleMessage(X.createNext(e))},t.prototype._error=function(e){this.scheduleMessage(X.createError(e)),this.unsubscribe()},t.prototype._complete=function(){this.scheduleMessage(X.createComplete()),this.unsubscribe()},t}(T.a),ne=function(){return function(e,t){this.notification=e,this.destination=t}}(),re=n(130),ie=n(304),ae=function(e){function t(t,n,r){void 0===t&&(t=Number.POSITIVE_INFINITY),void 0===n&&(n=Number.POSITIVE_INFINITY);var i=e.call(this)||this;return i.scheduler=r,i._events=[],i._infiniteTimeWindow=!1,i._bufferSize=t<1?1:t,i._windowTime=n<1?1:n,n===Number.POSITIVE_INFINITY?(i._infiniteTimeWindow=!0,i.next=i.nextInfiniteTimeWindow):i.next=i.nextTimeWindow,i}return p.c(t,e),t.prototype.nextInfiniteTimeWindow=function(t){var n=this._events;n.push(t),n.length>this._bufferSize&&n.shift(),e.prototype.next.call(this,t)},t.prototype.nextTimeWindow=function(t){this._events.push(new oe(this._getNow(),t)),this._trimBufferThenGetEvents(),e.prototype.next.call(this,t)},t.prototype._subscribe=function(e){var t,n=this._infiniteTimeWindow,r=n?this._events:this._trimBufferThenGetEvents(),i=this.scheduler,a=r.length;if(this.closed)throw new re.a;if(this.isStopped||this.hasError?t=E.a.EMPTY:(this.observers.push(e),t=new ie.a(this,e)),i&&e.add(e=new te(e,i)),n)for(var o=0;ot&&(a=Math.max(a,i-t)),a>0&&r.splice(0,a),r},t}(l.a),oe=function(){return function(e,t){this.time=e,this.value=t}}();function se(e,t,n){var r;return r=e&&"object"==typeof e?e:{bufferSize:e,windowTime:t,refCount:!1,scheduler:n},function(e){return e.lift(function(e){var t,n,r=e.bufferSize,i=void 0===r?Number.POSITIVE_INFINITY:r,a=e.windowTime,o=void 0===a?Number.POSITIVE_INFINITY:a,s=e.refCount,l=e.scheduler,c=0,u=!1,d=!1;return function(e){var r;c++,!t||u?(u=!1,t=new ae(i,o,l),r=t.subscribe(this),n=e.subscribe({next:function(e){t.next(e)},error:function(e){u=!0,t.error(e)},complete:function(){d=!0,n=void 0,t.complete()}})):r=t.subscribe(this),this.add((function(){c--,r.unsubscribe(),n&&!d&&s&&0===c&&(n.unsubscribe(),n=void 0,t=void 0)}))}} +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */(r))}}try{ee="undefined"!=typeof Intl&&Intl.v8BreakIterator}catch(It){ee=!1}var le,ce,ue,de=function(){function e(e){this._platformId=e,this.isBrowser=this._platformId?Object(i.isPlatformBrowser)(this._platformId):"object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!ee)&&"undefined"!=typeof CSS&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window),this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}return e.ctorParameters=function(){return[{type:Object,decorators:[{type:r.Optional},{type:r.Inject,args:[r.PLATFORM_ID]}]}]},e.ɵprov=Object(r["ɵɵdefineInjectable"])({factory:function(){return new e(Object(r["ɵɵinject"])(r.PLATFORM_ID,8))},token:e,providedIn:"root"}),e.ɵfac=function(t){return new(t||e)(r["ɵɵinject"](r.PLATFORM_ID,8))},e}(),he=function(){function e(){}return e.ɵmod=r["ɵɵdefineNgModule"]({type:e}),e.ɵinj=r["ɵɵdefineInjector"]({factory:function(t){return new(t||e)}}),e}(); +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function pe(e){return function(){if(null==le&&"undefined"!=typeof window)try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:function(){return le=!0}}))}finally{le=le||!1}return le}()?e:!!e.capture} +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function fe(){if("object"!=typeof document||!document)return 0;if(null==ce){var e=document.createElement("div"),t=e.style;e.dir="rtl",t.height="1px",t.width="1px",t.overflow="auto",t.visibility="hidden",t.pointerEvents="none",t.position="absolute";var n=document.createElement("div"),r=n.style;r.width="2px",r.height="1px",e.appendChild(n),document.body.appendChild(e),ce=0,0===e.scrollLeft&&(e.scrollLeft=1,ce=0===e.scrollLeft?1:2),e.parentNode.removeChild(e)}return ce} +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function me(e){if(function(){if(null==ue){var e="undefined"!=typeof document?document.head:null;ue=!(!e||!e.createShadowRoot&&!e.attachShadow)}return ue}()){var t=e.getRootNode?e.getRootNode():null;if("undefined"!=typeof ShadowRoot&&ShadowRoot&&t instanceof ShadowRoot)return t}return null} +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var ge=new r.InjectionToken("cdk-dir-doc",{providedIn:"root",factory:function(){return Object(r.inject)(i.DOCUMENT)} +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */});var ye=function(){function e(e){if(this.value="ltr",this.change=new r.EventEmitter,e){var t=e.body?e.body.dir:null,n=e.documentElement?e.documentElement.dir:null,i=t||n;this.value="ltr"===i||"rtl"===i?i:"ltr"}}return e.prototype.ngOnDestroy=function(){this.change.complete()},e.ctorParameters=function(){return[{type:void 0,decorators:[{type:r.Optional},{type:r.Inject,args:[ge]}]}]},e.ɵprov=Object(r["ɵɵdefineInjectable"])({factory:function(){return new e(Object(r["ɵɵinject"])(ge,8))},token:e,providedIn:"root"}),e.ɵfac=function(t){return new(t||e)(r["ɵɵinject"](ge,8))},e}(),be=function(){function e(){this._dir="ltr",this._isInitialized=!1,this.change=new r.EventEmitter}return Object.defineProperty(e.prototype,"dir",{get:function(){return this._dir},set:function(e){var t=this._dir,n=e?e.toLowerCase():e;this._rawDir=e,this._dir="ltr"===n||"rtl"===n?n:"ltr",t!==this._dir&&this._isInitialized&&this.change.emit(this._dir)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"value",{get:function(){return this.dir},enumerable:!0,configurable:!0}),e.prototype.ngAfterContentInit=function(){this._isInitialized=!0},e.prototype.ngOnDestroy=function(){this.change.complete()},e.propDecorators={change:[{type:r.Output,args:["dirChange"]}],dir:[{type:r.Input}]},e.ɵfac=function(t){return new(t||e)},e.ɵdir=r["ɵɵdefineDirective"]({type:e,selectors:[["","dir",""]],hostVars:1,hostBindings:function(e,t){2&e&&r["ɵɵattribute"]("dir",t._rawDir)},inputs:{dir:"dir"},outputs:{change:"dirChange"},exportAs:["dir"],features:[r["ɵɵProvidersFeature"]([{provide:ye,useExisting:e}])]}),e}(),ve=function(){function e(){}return e.ɵmod=r["ɵɵdefineNgModule"]({type:e}),e.ɵinj=r["ɵɵdefineInjector"]({factory:function(t){return new(t||e)}}),("undefined"==typeof ngJitMode||ngJitMode)&&r["ɵɵsetNgModuleScope"](e,{declarations:[be],exports:[be]}),e}(); +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +var ke=function(e){function t(t){var n=e.call(this)||this;return n._data=t,n}return Object(p.c)(t,e),t.prototype.connect=function(){return S(this._data)?this._data:Object(c.a)(this._data)},t.prototype.disconnect=function(){},t}((function(){})); +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */!function(){function e(e,t,n){var r=this;void 0===e&&(e=!1),void 0===n&&(n=!0),this._multiple=e,this._emitChanges=n,this._selection=new Set,this._deselectedToEmit=[],this._selectedToEmit=[],this.changed=new l.a,t&&t.length&&(e?t.forEach((function(e){return r._markSelected(e)})):this._markSelected(t[0]),this._selectedToEmit.length=0)}Object.defineProperty(e.prototype,"selected",{get:function(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected},enumerable:!0,configurable:!0}),e.prototype.select=function(){for(var e=this,t=[],n=0;n1&&!this._multiple)throw Error("Cannot pass multiple values into SelectionModel with single-value mode.")}}();!function(){function e(){this._listeners=[]}e.prototype.notify=function(e,t){var n,r;try{for(var i=Object(p.h)(this._listeners),a=i.next();!a.done;a=i.next()){(0,a.value)(e,t)}}catch(o){n={error:o}}finally{try{a&&!a.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}},e.prototype.listen=function(e){var t=this;return this._listeners.push(e),function(){t._listeners=t._listeners.filter((function(t){return e!==t}))}},e.prototype.ngOnDestroy=function(){this._listeners=[]},e.ɵprov=Object(r["ɵɵdefineInjectable"])({factory:function(){return new e},token:e,providedIn:"root"}),e.ɵfac=function(t){return new(t||e)}}(); +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var we=["contentWrapper"],_e=["*"],je=new r.InjectionToken("VIRTUAL_SCROLL_STRATEGY"),Ce=function(){function e(e,t,n){var r,i;this._scrolledIndexChange=new l.a,this.scrolledIndexChange=this._scrolledIndexChange.pipe((function(e){return e.lift(new O(r,i))})),this._viewport=null,this._itemSize=e,this._minBufferPx=t,this._maxBufferPx=n}return e.prototype.attach=function(e){this._viewport=e,this._updateTotalContentSize(),this._updateRenderedRange()},e.prototype.detach=function(){this._scrolledIndexChange.complete(),this._viewport=null},e.prototype.updateItemAndBufferSize=function(e,t,n){if(n0&&(r.end=Math.min(a,r.end+c),r.start=Math.max(0,Math.floor(t-this._minBufferPx/this._itemSize)))}}this._viewport.setRenderedRange(r),this._viewport.setRenderedContentOffset(this._itemSize*r.start),this._scrolledIndexChange.next(Math.floor(t))}},e}();function xe(e){return e._scrollStrategy}var Ee=function(){function e(){this._itemSize=20,this._minBufferPx=100,this._maxBufferPx=200,this._scrollStrategy=new Ce(this.itemSize,this.minBufferPx,this.maxBufferPx)}return Object.defineProperty(e.prototype,"itemSize",{get:function(){return this._itemSize},set:function(e){this._itemSize=o(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"minBufferPx",{get:function(){return this._minBufferPx},set:function(e){this._minBufferPx=o(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxBufferPx",{get:function(){return this._maxBufferPx},set:function(e){this._maxBufferPx=o(e)},enumerable:!0,configurable:!0}),e.prototype.ngOnChanges=function(){this._scrollStrategy.updateItemAndBufferSize(this.itemSize,this.minBufferPx,this.maxBufferPx)},e.propDecorators={itemSize:[{type:r.Input}],minBufferPx:[{type:r.Input}],maxBufferPx:[{type:r.Input}]},e.ɵfac=function(t){return new(t||e)},e.ɵdir=r["ɵɵdefineDirective"]({type:e,selectors:[["cdk-virtual-scroll-viewport","itemSize",""]],inputs:{itemSize:"itemSize",minBufferPx:"minBufferPx",maxBufferPx:"maxBufferPx"},features:[r["ɵɵProvidersFeature"]([{provide:je,useFactory:xe,deps:[Object(r.forwardRef)((function(){return e}))]}]),r["ɵɵNgOnChangesFeature"]]}),e}(),Se=function(){function e(e,t,n){this._ngZone=e,this._platform=t,this._scrolled=new l.a,this._globalSubscription=null,this._scrolledCount=0,this.scrollContainers=new Map,this._document=n}return e.prototype.register=function(e){var t=this;this.scrollContainers.has(e)||this.scrollContainers.set(e,e.elementScrolled().subscribe((function(){return t._scrolled.next(e)})))},e.prototype.deregister=function(e){var t=this.scrollContainers.get(e);t&&(t.unsubscribe(),this.scrollContainers.delete(e))},e.prototype.scrolled=function(e){var t=this;return void 0===e&&(e=20),this._platform.isBrowser?new u.a((function(n){t._globalSubscription||t._addGlobalListener();var r=e>0?t._scrolled.pipe(B(e)).subscribe(n):t._scrolled.subscribe(n);return t._scrolledCount++,function(){r.unsubscribe(),t._scrolledCount--,t._scrolledCount||t._removeGlobalListener()}})):Object(c.a)()},e.prototype.ngOnDestroy=function(){var e=this;this._removeGlobalListener(),this.scrollContainers.forEach((function(t,n){return e.deregister(n)})),this._scrolled.complete()},e.prototype.ancestorScrolled=function(e,t){var n=this.getAncestorScrollContainers(e);return this.scrolled(t).pipe(Object(L.a)((function(e){return!e||n.indexOf(e)>-1})))},e.prototype.getAncestorScrollContainers=function(e){var t=this,n=[];return this.scrollContainers.forEach((function(r,i){t._scrollableContainsElement(i,e)&&n.push(i)})),n},e.prototype._getDocument=function(){return this._document||document},e.prototype._getWindow=function(){return this._getDocument().defaultView||window},e.prototype._scrollableContainsElement=function(e,t){var n=t.nativeElement,r=e.getElementRef().nativeElement;do{if(n==r)return!0}while(n=n.parentElement);return!1},e.prototype._addGlobalListener=function(){var e=this;this._globalSubscription=this._ngZone.runOutsideAngular((function(){var t=e._getWindow();return Object(d.a)(t.document,"scroll").subscribe((function(){return e._scrolled.next()}))}))},e.prototype._removeGlobalListener=function(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)},e.ctorParameters=function(){return[{type:r.NgZone},{type:de},{type:void 0,decorators:[{type:r.Optional},{type:r.Inject,args:[i.DOCUMENT]}]}]},e.ɵprov=Object(r["ɵɵdefineInjectable"])({factory:function(){return new e(Object(r["ɵɵinject"])(r.NgZone),Object(r["ɵɵinject"])(de),Object(r["ɵɵinject"])(i.DOCUMENT,8))},token:e,providedIn:"root"}),e.ɵfac=function(t){return new(t||e)(r["ɵɵinject"](r.NgZone),r["ɵɵinject"](de),r["ɵɵinject"](i.DOCUMENT,8))},e}(),Te=function(){function e(e,t,n,r){var i=this;this.elementRef=e,this.scrollDispatcher=t,this.ngZone=n,this.dir=r,this._destroyed=new l.a,this._elementScrolled=new u.a((function(e){return i.ngZone.runOutsideAngular((function(){return Object(d.a)(i.elementRef.nativeElement,"scroll").pipe(F(i._destroyed)).subscribe(e)}))}))}return e.prototype.ngOnInit=function(){this.scrollDispatcher.register(this)},e.prototype.ngOnDestroy=function(){this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()},e.prototype.elementScrolled=function(){return this._elementScrolled},e.prototype.getElementRef=function(){return this.elementRef},e.prototype.scrollTo=function(e){var t=this.elementRef.nativeElement,n=this.dir&&"rtl"==this.dir.value;null==e.left&&(e.left=n?e.end:e.start),null==e.right&&(e.right=n?e.start:e.end),null!=e.bottom&&(e.top=t.scrollHeight-t.clientHeight-e.bottom),n&&0!=fe()?(null!=e.left&&(e.right=t.scrollWidth-t.clientWidth-e.left),2==fe()?e.left=e.right:1==fe()&&(e.left=e.right?-e.right:e.right)):null!=e.right&&(e.left=t.scrollWidth-t.clientWidth-e.right),this._applyScrollToOptions(e)},e.prototype._applyScrollToOptions=function(e){var t=this.elementRef.nativeElement;"object"==typeof document&&"scrollBehavior"in document.documentElement.style?t.scrollTo(e):(null!=e.top&&(t.scrollTop=e.top),null!=e.left&&(t.scrollLeft=e.left))},e.prototype.measureScrollOffset=function(e){var t=this.elementRef.nativeElement;if("top"==e)return t.scrollTop;if("bottom"==e)return t.scrollHeight-t.clientHeight-t.scrollTop;var n=this.dir&&"rtl"==this.dir.value;return"start"==e?e=n?"right":"left":"end"==e&&(e=n?"left":"right"),n&&2==fe()?"left"==e?t.scrollWidth-t.clientWidth-t.scrollLeft:t.scrollLeft:n&&1==fe()?"left"==e?t.scrollLeft+t.scrollWidth-t.clientWidth:-t.scrollLeft:"left"==e?t.scrollLeft:t.scrollWidth-t.clientWidth-t.scrollLeft},e.ctorParameters=function(){return[{type:r.ElementRef},{type:Se},{type:r.NgZone},{type:ye,decorators:[{type:r.Optional}]}]},e.ɵfac=function(t){return new(t||e)(r["ɵɵdirectiveInject"](r.ElementRef),r["ɵɵdirectiveInject"](Se),r["ɵɵdirectiveInject"](r.NgZone),r["ɵɵdirectiveInject"](ye,8))},e.ɵdir=r["ɵɵdefineDirective"]({type:e,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]]}),e}(),Oe=function(){function e(e,t,n){var r=this;this._platform=e,this._document=n,t.runOutsideAngular((function(){var t=r._getWindow();r._change=e.isBrowser?Object(h.a)(Object(d.a)(t,"resize"),Object(d.a)(t,"orientationchange")):Object(c.a)(),r._invalidateCache=r.change().subscribe((function(){return r._updateViewportSize()}))}))}return e.prototype.ngOnDestroy=function(){this._invalidateCache.unsubscribe()},e.prototype.getViewportSize=function(){this._viewportSize||this._updateViewportSize();var e={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),e},e.prototype.getViewportRect=function(){var e=this.getViewportScrollPosition(),t=this.getViewportSize(),n=t.width,r=t.height;return{top:e.top,left:e.left,bottom:e.top+r,right:e.left+n,height:r,width:n}},e.prototype.getViewportScrollPosition=function(){if(!this._platform.isBrowser)return{top:0,left:0};var e=this._getDocument(),t=this._getWindow(),n=e.documentElement,r=n.getBoundingClientRect();return{top:-r.top||e.body.scrollTop||t.scrollY||n.scrollTop||0,left:-r.left||e.body.scrollLeft||t.scrollX||n.scrollLeft||0}},e.prototype.change=function(e){return void 0===e&&(e=20),e>0?this._change.pipe(B(e)):this._change},e.prototype._getDocument=function(){return this._document||document},e.prototype._getWindow=function(){return this._getDocument().defaultView||window},e.prototype._updateViewportSize=function(){var e=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:e.innerWidth,height:e.innerHeight}:{width:0,height:0}},e.ctorParameters=function(){return[{type:de},{type:r.NgZone},{type:void 0,decorators:[{type:r.Optional},{type:r.Inject,args:[i.DOCUMENT]}]}]},e.ɵprov=Object(r["ɵɵdefineInjectable"])({factory:function(){return new e(Object(r["ɵɵinject"])(de),Object(r["ɵɵinject"])(r.NgZone),Object(r["ɵɵinject"])(i.DOCUMENT,8))},token:e,providedIn:"root"}),e.ɵfac=function(t){return new(t||e)(r["ɵɵinject"](de),r["ɵɵinject"](r.NgZone),r["ɵɵinject"](i.DOCUMENT,8))},e}(); +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var ze="undefined"!=typeof requestAnimationFrame?y:x,Ie=function(e){function t(t,n,r,i,a,o,s){var c=e.call(this,t,o,r,a)||this;if(c.elementRef=t,c._changeDetectorRef=n,c._scrollStrategy=i,c._detachedSubject=new l.a,c._renderedRangeSubject=new l.a,c._orientation="vertical",c.scrolledIndexChange=new u.a((function(e){return c._scrollStrategy.scrolledIndexChange.subscribe((function(t){return Promise.resolve().then((function(){return c.ngZone.run((function(){return e.next(t)}))}))}))})),c.renderedRangeStream=c._renderedRangeSubject.asObservable(),c._totalContentSize=0,c._totalContentWidth="",c._totalContentHeight="",c._renderedRange={start:0,end:0},c._dataLength=0,c._viewportSize=0,c._renderedContentOffset=0,c._renderedContentOffsetNeedsRewrite=!1,c._isChangeDetectionPending=!1,c._runAfterChangeDetection=[],c._viewportChanges=E.a.EMPTY,!i)throw Error('Error: cdk-virtual-scroll-viewport requires the "itemSize" property to be set.');return s&&(c._viewportChanges=s.change().subscribe((function(){c.checkViewportSize()}))),c}return Object(p.c)(t,e),Object.defineProperty(t.prototype,"orientation",{get:function(){return this._orientation},set:function(e){this._orientation!==e&&(this._orientation=e,this._calculateSpacerSize())},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){var t=this;e.prototype.ngOnInit.call(this),this.ngZone.runOutsideAngular((function(){return Promise.resolve().then((function(){t._measureViewportSize(),t._scrollStrategy.attach(t),t.elementScrolled().pipe(Object(H.a)(null),B(0,ze)).subscribe((function(){return t._scrollStrategy.onContentScrolled()})),t._markChangeDetectionNeeded()}))}))},t.prototype.ngOnDestroy=function(){this.detach(),this._scrollStrategy.detach(),this._renderedRangeSubject.complete(),this._detachedSubject.complete(),this._viewportChanges.unsubscribe(),e.prototype.ngOnDestroy.call(this)},t.prototype.attach=function(e){var t=this;if(this._forOf)throw Error("CdkVirtualScrollViewport is already attached.");this.ngZone.runOutsideAngular((function(){t._forOf=e,t._forOf.dataStream.pipe(F(t._detachedSubject)).subscribe((function(e){var n=e.length;n!==t._dataLength&&(t._dataLength=n,t._scrollStrategy.onDataLengthChanged()),t._doChangeDetection()}))}))},t.prototype.detach=function(){this._forOf=null,this._detachedSubject.next()},t.prototype.getDataLength=function(){return this._dataLength},t.prototype.getViewportSize=function(){return this._viewportSize},t.prototype.getRenderedRange=function(){return this._renderedRange},t.prototype.setTotalContentSize=function(e){this._totalContentSize!==e&&(this._totalContentSize=e,this._calculateSpacerSize(),this._markChangeDetectionNeeded())},t.prototype.setRenderedRange=function(e){var t,n,r=this;t=this._renderedRange,n=e,(t.start!=n.start||t.end!=n.end)&&(this._renderedRangeSubject.next(this._renderedRange=e),this._markChangeDetectionNeeded((function(){return r._scrollStrategy.onContentRendered()})))},t.prototype.getOffsetToRenderedContentStart=function(){return this._renderedContentOffsetNeedsRewrite?null:this._renderedContentOffset},t.prototype.setRenderedContentOffset=function(e,t){var n=this;void 0===t&&(t="to-start");var r=this.dir&&"rtl"==this.dir.value,i="horizontal"==this.orientation,a=i?"X":"Y",o="translate"+a+"("+Number((i&&r?-1:1)*e)+"px)";this._renderedContentOffset=e,"to-end"===t&&(o+=" translate"+a+"(-100%)",this._renderedContentOffsetNeedsRewrite=!0),this._renderedContentTransform!=o&&(this._renderedContentTransform=o,this._markChangeDetectionNeeded((function(){n._renderedContentOffsetNeedsRewrite?(n._renderedContentOffset-=n.measureRenderedContentSize(),n._renderedContentOffsetNeedsRewrite=!1,n.setRenderedContentOffset(n._renderedContentOffset)):n._scrollStrategy.onRenderedOffsetChanged()})))},t.prototype.scrollToOffset=function(e,t){void 0===t&&(t="auto");var n={behavior:t};"horizontal"===this.orientation?n.start=e:n.top=e,this.scrollTo(n)},t.prototype.scrollToIndex=function(e,t){void 0===t&&(t="auto"),this._scrollStrategy.scrollToIndex(e,t)},t.prototype.measureScrollOffset=function(t){return t?e.prototype.measureScrollOffset.call(this,t):e.prototype.measureScrollOffset.call(this,"horizontal"===this.orientation?"start":"top")},t.prototype.measureRenderedContentSize=function(){var e=this._contentWrapper.nativeElement;return"horizontal"===this.orientation?e.offsetWidth:e.offsetHeight},t.prototype.measureRangeSize=function(e){return this._forOf?this._forOf.measureRangeSize(e,this.orientation):0},t.prototype.checkViewportSize=function(){this._measureViewportSize(),this._scrollStrategy.onDataLengthChanged()},t.prototype._measureViewportSize=function(){var e=this.elementRef.nativeElement;this._viewportSize="horizontal"===this.orientation?e.clientWidth:e.clientHeight},t.prototype._markChangeDetectionNeeded=function(e){var t=this;e&&this._runAfterChangeDetection.push(e),this._isChangeDetectionPending||(this._isChangeDetectionPending=!0,this.ngZone.runOutsideAngular((function(){return Promise.resolve().then((function(){t._doChangeDetection()}))})))},t.prototype._doChangeDetection=function(){var e,t,n=this;this._isChangeDetectionPending=!1,this._contentWrapper.nativeElement.style.transform=this._renderedContentTransform,this.ngZone.run((function(){return n._changeDetectorRef.markForCheck()}));var r=this._runAfterChangeDetection;this._runAfterChangeDetection=[];try{for(var i=Object(p.h)(r),a=i.next();!a.done;a=i.next()){(0,a.value)()}}catch(o){e={error:o}}finally{try{a&&!a.done&&(t=i.return)&&t.call(i)}finally{if(e)throw e.error}}},t.prototype._calculateSpacerSize=function(){this._totalContentHeight="horizontal"===this.orientation?"":this._totalContentSize+"px",this._totalContentWidth="horizontal"===this.orientation?this._totalContentSize+"px":""},t.ctorParameters=function(){return[{type:r.ElementRef},{type:r.ChangeDetectorRef},{type:r.NgZone},{type:void 0,decorators:[{type:r.Optional},{type:r.Inject,args:[je]}]},{type:ye,decorators:[{type:r.Optional}]},{type:Se},{type:Oe,decorators:[{type:r.Optional}]}]},t.propDecorators={orientation:[{type:r.Input}],scrolledIndexChange:[{type:r.Output}],_contentWrapper:[{type:r.ViewChild,args:["contentWrapper",{static:!0}]}]},t.ɵfac=function(e){return new(e||t)(r["ɵɵdirectiveInject"](r.ElementRef),r["ɵɵdirectiveInject"](r.ChangeDetectorRef),r["ɵɵdirectiveInject"](r.NgZone),r["ɵɵdirectiveInject"](je,8),r["ɵɵdirectiveInject"](ye,8),r["ɵɵdirectiveInject"](Se),r["ɵɵdirectiveInject"](Oe,8))},t.ɵcmp=r["ɵɵdefineComponent"]({type:t,selectors:[["cdk-virtual-scroll-viewport"]],viewQuery:function(e,t){var n;(1&e&&r["ɵɵstaticViewQuery"](we,!0),2&e)&&(r["ɵɵqueryRefresh"](n=r["ɵɵloadQuery"]())&&(t._contentWrapper=n.first))},hostAttrs:[1,"cdk-virtual-scroll-viewport"],hostVars:4,hostBindings:function(e,t){2&e&&r["ɵɵclassProp"]("cdk-virtual-scroll-orientation-horizontal","horizontal"===t.orientation)("cdk-virtual-scroll-orientation-vertical","horizontal"!==t.orientation)},inputs:{orientation:"orientation"},outputs:{scrolledIndexChange:"scrolledIndexChange"},features:[r["ɵɵProvidersFeature"]([{provide:Te,useExisting:t}]),r["ɵɵInheritDefinitionFeature"]],ngContentSelectors:_e,decls:10,vars:4,consts:[[1,"cdk-virtual-scroll-content-wrapper"],["contentWrapper",""],[1,"cdk-virtual-scroll-spacer"]],template:function(e,t){1&e&&(r["ɵɵprojectionDef"](),r["ɵɵtext"](0,"\n"),r["ɵɵelementStart"](1,"div",0,1),r["ɵɵtext"](3,"\n "),r["ɵɵprojection"](4),r["ɵɵtext"](5,"\n"),r["ɵɵelementEnd"](),r["ɵɵtext"](6,"\n"),r["ɵɵtext"](7,"\n"),r["ɵɵelement"](8,"div",2),r["ɵɵtext"](9,"\n")),2&e&&(r["ɵɵadvance"](8),r["ɵɵstyleProp"]("width",t._totalContentWidth)("height",t._totalContentHeight))},styles:["cdk-virtual-scroll-viewport{display:block;position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{position:absolute;top:0;left:0;height:1px;width:1px;transform-origin:0 0}[dir=rtl] .cdk-virtual-scroll-spacer{right:0;left:auto;transform-origin:100% 0}\n"],encapsulation:2,changeDetection:0}),t}(Te); +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +function De(e,t){var n=t;if(!n.getBoundingClientRect)return 0;var r=n.getBoundingClientRect();return"horizontal"==e?r.width:r.height}var Ae=function(){function e(e,t,n,r,i){var a=this;this._viewContainerRef=e,this._template=t,this._differs=n,this._viewport=r,this.viewChange=new l.a,this._dataSourceChanges=new l.a,this.cdkVirtualForTemplateCacheSize=20,this.dataStream=this._dataSourceChanges.pipe(Object(H.a)(null),(function(e){return e.lift(new W)}),Object(Q.a)((function(e){var t=Object(p.f)(e,2),n=t[0],r=t[1];return a._changeDataSource(n,r)})),se(1)),this._differ=null,this._templateCache=[],this._needsUpdate=!1,this._destroyed=new l.a,this.dataStream.subscribe((function(e){a._data=e,a._onRenderedDataChange()})),this._viewport.renderedRangeStream.pipe(F(this._destroyed)).subscribe((function(e){a._renderedRange=e,i.run((function(){return a.viewChange.next(a._renderedRange)})),a._onRenderedDataChange()})),this._viewport.attach(this)}return Object.defineProperty(e.prototype,"cdkVirtualForOf",{get:function(){return this._cdkVirtualForOf},set:function(e){this._cdkVirtualForOf=e,!function(e){return e&&"function"==typeof e.connect}(e)?this._dataSourceChanges.next(new ke(S(e)?e:Array.prototype.slice.call(e||[]))):this._dataSourceChanges.next(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"cdkVirtualForTrackBy",{get:function(){return this._cdkVirtualForTrackBy},set:function(e){var t=this;this._needsUpdate=!0,this._cdkVirtualForTrackBy=e?function(n,r){return e(n+(t._renderedRange?t._renderedRange.start:0),r)}:void 0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"cdkVirtualForTemplate",{set:function(e){e&&(this._needsUpdate=!0,this._template=e)},enumerable:!0,configurable:!0}),e.prototype.measureRangeSize=function(e,t){if(e.start>=e.end)return 0;if(e.startthis._renderedRange.end)throw Error("Error: attempted to measure an item that isn't rendered.");for(var n=e.start-this._renderedRange.start,r=0,i=e.end-e.start;i--;)for(var a=this._viewContainerRef.get(i+n),o=a?a.rootNodes.length:0;o--;)r+=De(t,a.rootNodes[o]);return r},e.prototype.ngDoCheck=function(){if(this._differ&&this._needsUpdate){var e=this._differ.diff(this._renderedItems);e?this._applyChanges(e):this._updateContext(),this._needsUpdate=!1}},e.prototype.ngOnDestroy=function(){var e,t;this._viewport.detach(),this._dataSourceChanges.next(),this._dataSourceChanges.complete(),this.viewChange.complete(),this._destroyed.next(),this._destroyed.complete();try{for(var n=Object(p.h)(this._templateCache),r=n.next();!r.done;r=n.next()){r.value.destroy()}}catch(i){e={error:i}}finally{try{r&&!r.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}},e.prototype._onRenderedDataChange=function(){this._renderedRange&&(this._renderedItems=this._data.slice(this._renderedRange.start,this._renderedRange.end),this._differ||(this._differ=this._differs.find(this._renderedItems).create(this.cdkVirtualForTrackBy)),this._needsUpdate=!0)},e.prototype._changeDataSource=function(e,t){return e&&e.disconnect(this),this._needsUpdate=!0,t?t.connect(this):Object(c.a)()},e.prototype._updateContext=function(){for(var e=this._data.length,t=this._viewContainerRef.length;t--;){var n=this._viewContainerRef.get(t);n.context.index=this._renderedRange.start+t,n.context.count=e,this._updateComputedContextProperties(n.context),n.detectChanges()}},e.prototype._applyChanges=function(e){var t=this;e.forEachOperation((function(e,n,r){if(null==e.previousIndex)(i=t._insertViewForNewItem(r)).context.$implicit=e.item;else if(null==r)t._cacheView(t._detachView(n));else{var i=t._viewContainerRef.get(n);t._viewContainerRef.move(i,r),i.context.$implicit=e.item}})),e.forEachIdentityChange((function(e){t._viewContainerRef.get(e.currentIndex).context.$implicit=e.item}));for(var n=this._data.length,r=this._viewContainerRef.length;r--;){var i=this._viewContainerRef.get(r);i.context.index=this._renderedRange.start+r,i.context.count=n,this._updateComputedContextProperties(i.context)}},e.prototype._cacheView=function(e){if(this._templateCache.length-1?1:1e3;return parseFloat(e)*t}function Ue(e,t){return e.getPropertyValue(t).split(",").map((function(e){return e.trim()}))} +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function Ve(e){var t=e.getBoundingClientRect();return{top:t.top,right:t.right,bottom:t.bottom,left:t.left,width:t.width,height:t.height}}function He(e,t,n){var r=e.top,i=e.bottom,a=e.left,o=e.right;return n>=r&&n<=i&&t>=a&&t<=o}function Ke(e,t,n){e.top+=t,e.bottom=e.top+e.height,e.left+=n,e.right=e.left+e.width}function We(e,t,n,r){var i=e.top,a=e.right,o=e.bottom,s=e.left,l=e.width*t,c=e.height*t;return r>i-c&&rs-l&&n=o._config.dragStartThreshold){if(!(Date.now()>=o._dragStartTime+o._getDragStartDelay(e)))return void o._endDragSequence(e);o._dropContainer&&o._dropContainer.isDragging()||(o._hasStartedDragging=!0,o._ngZone.run((function(){return o._startDragSequence(e)})))}}},this._pointerUp=function(e){o._endDragSequence(e)},this.withRootElement(e),this._parentPositions=new Ge(n,i),a.registerDragItem(this)}return Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled||!(!this._dropContainer||!this._dropContainer.disabled)},set:function(e){var t=a(e);t!==this._disabled&&(this._disabled=t,this._toggleNativeDragInteractions())},enumerable:!0,configurable:!0}),e.prototype.getPlaceholderElement=function(){return this._placeholder},e.prototype.getRootElement=function(){return this._rootElement},e.prototype.getVisibleElement=function(){return this.isDragging()?this.getPlaceholderElement():this.getRootElement()},e.prototype.withHandles=function(e){return this._handles=e.map((function(e){return s(e)})),this._handles.forEach((function(e){return Le(e,!1)})),this._toggleNativeDragInteractions(),this},e.prototype.withPreviewTemplate=function(e){return this._previewTemplate=e,this},e.prototype.withPlaceholderTemplate=function(e){return this._placeholderTemplate=e,this},e.prototype.withRootElement=function(e){var t=this,n=s(e);return n!==this._rootElement&&(this._rootElement&&this._removeRootElementListeners(this._rootElement),this._ngZone.runOutsideAngular((function(){n.addEventListener("mousedown",t._pointerDown,$e),n.addEventListener("touchstart",t._pointerDown,Qe)})),this._initialTransform=void 0,this._rootElement=n),this},e.prototype.withBoundaryElement=function(e){var t=this;return this._boundaryElement=e?s(e):null,this._resizeSubscription.unsubscribe(),e&&(this._resizeSubscription=this._viewportRuler.change(10).subscribe((function(){return t._containInsideBoundaryOnResize()}))),this},e.prototype.dispose=function(){this._removeRootElementListeners(this._rootElement),this.isDragging()&&et(this._rootElement),et(this._anchor),this._destroyPreview(),this._destroyPlaceholder(),this._dragDropRegistry.removeDragItem(this),this._removeSubscriptions(),this.beforeStarted.complete(),this.started.complete(),this.released.complete(),this.ended.complete(),this.entered.complete(),this.exited.complete(),this.dropped.complete(),this._moveEvents.complete(),this._handles=[],this._disabledHandles.clear(),this._dropContainer=void 0,this._resizeSubscription.unsubscribe(),this._parentPositions.clear(),this._boundaryElement=this._rootElement=this._placeholderTemplate=this._previewTemplate=this._anchor=null},e.prototype.isDragging=function(){return this._hasStartedDragging&&this._dragDropRegistry.isDragging(this)},e.prototype.reset=function(){this._rootElement.style.transform=this._initialTransform||"",this._activeTransform={x:0,y:0},this._passiveTransform={x:0,y:0}},e.prototype.disableHandle=function(e){this._handles.indexOf(e)>-1&&this._disabledHandles.add(e)},e.prototype.enableHandle=function(e){this._disabledHandles.delete(e)},e.prototype.withDirection=function(e){return this._direction=e,this},e.prototype._withDropContainer=function(e){this._dropContainer=e},e.prototype.getFreeDragPosition=function(){var e=this.isDragging()?this._activeTransform:this._passiveTransform;return{x:e.x,y:e.y}},e.prototype.setFreeDragPosition=function(e){return this._activeTransform={x:0,y:0},this._passiveTransform.x=e.x,this._passiveTransform.y=e.y,this._dropContainer||this._applyRootElementTransform(e.x,e.y),this},e.prototype._sortFromLastPointerPosition=function(){var e=this._pointerPositionAtLastDirectionChange;e&&this._dropContainer&&this._updateActiveDropContainer(this._getConstrainedPointerPosition(e))},e.prototype._removeSubscriptions=function(){this._pointerMoveSubscription.unsubscribe(),this._pointerUpSubscription.unsubscribe(),this._scrollSubscription.unsubscribe()},e.prototype._destroyPreview=function(){this._preview&&et(this._preview),this._previewRef&&this._previewRef.destroy(),this._preview=this._previewRef=null},e.prototype._destroyPlaceholder=function(){this._placeholder&&et(this._placeholder),this._placeholderRef&&this._placeholderRef.destroy(),this._placeholder=this._placeholderRef=null},e.prototype._endDragSequence=function(e){var t=this;this._dragDropRegistry.isDragging(this)&&(this._removeSubscriptions(),this._dragDropRegistry.stopDragging(this),this._toggleNativeDragInteractions(),this._handles&&(this._rootElement.style.webkitTapHighlightColor=this._rootElementTapHighlight),this._hasStartedDragging&&(this.released.next({source:this}),this._dropContainer?(this._dropContainer._stopScrolling(),this._animatePreviewToPlaceholder().then((function(){t._cleanupDragArtifacts(e),t._cleanupCachedDimensions(),t._dragDropRegistry.stopDragging(t)}))):(this._passiveTransform.x=this._activeTransform.x,this._passiveTransform.y=this._activeTransform.y,this._ngZone.run((function(){t.ended.next({source:t,distance:t._getDragDistance(t._getPointerPositionOnPage(e))})})),this._cleanupCachedDimensions(),this._dragDropRegistry.stopDragging(this))))},e.prototype._startDragSequence=function(e){this.started.next({source:this}),tt(e)&&(this._lastTouchEventTime=Date.now()),this._toggleNativeDragInteractions();var t,n=this._dropContainer;if(n){var r=this._rootElement,i=r.parentNode,a=this._preview=this._createPreviewElement(),o=this._placeholder=this._createPlaceholderElement(),s=this._anchor=this._anchor||this._document.createComment("");i.insertBefore(s,r),r.style.display="none",this._document.body.appendChild(i.replaceChild(o,r)),(t=this._document,t.fullscreenElement||t.webkitFullscreenElement||t.mozFullScreenElement||t.msFullscreenElement||t.body).appendChild(a),n.start(),this._initialContainer=n,this._initialIndex=n.getItemIndex(this)}else this._initialContainer=this._initialIndex=void 0;this._parentPositions.cache(n?n.getScrollableParents():[])},e.prototype._initializeDragSequence=function(e,t){var n=this;t.stopPropagation();var r=this.isDragging(),i=tt(t),a=!i&&0!==t.button,o=this._rootElement,s=!i&&this._lastTouchEventTime&&this._lastTouchEventTime+800>Date.now();if(t.target&&t.target.draggable&&"mousedown"===t.type&&t.preventDefault(),!(r||a||s)){this._handles.length&&(this._rootElementTapHighlight=o.style.webkitTapHighlightColor,o.style.webkitTapHighlightColor="transparent"),this._hasStartedDragging=this._hasMoved=!1,this._removeSubscriptions(),this._pointerMoveSubscription=this._dragDropRegistry.pointerMove.subscribe(this._pointerMove),this._pointerUpSubscription=this._dragDropRegistry.pointerUp.subscribe(this._pointerUp),this._scrollSubscription=this._dragDropRegistry.scroll.subscribe((function(e){n._updateOnScroll(e)})),this._boundaryElement&&(this._boundaryRect=Ve(this._boundaryElement));var l=this._previewTemplate;this._pickupPositionInElement=l&&l.template&&!l.matchSize?{x:0,y:0}:this._getPointerPositionInElement(e,t);var c=this._pickupPositionOnPage=this._getPointerPositionOnPage(t);this._pointerDirectionDelta={x:0,y:0},this._pointerPositionAtLastDirectionChange={x:c.x,y:c.y},this._dragStartTime=Date.now(),this._dragDropRegistry.startDragging(this,t)}},e.prototype._cleanupDragArtifacts=function(e){var t=this;this._rootElement.style.display="",this._anchor.parentNode.replaceChild(this._rootElement,this._anchor),this._destroyPreview(),this._destroyPlaceholder(),this._boundaryRect=this._previewRect=void 0,this._ngZone.run((function(){var n=t._dropContainer,r=n.getItemIndex(t),i=t._getPointerPositionOnPage(e),a=t._getDragDistance(t._getPointerPositionOnPage(e)),o=n._isOverContainer(i.x,i.y);t.ended.next({source:t,distance:a}),t.dropped.next({item:t,currentIndex:r,previousIndex:t._initialIndex,container:n,previousContainer:t._initialContainer,isPointerOverContainer:o,distance:a}),n.drop(t,r,t._initialContainer,o,a,t._initialIndex),t._dropContainer=t._initialContainer}))},e.prototype._updateActiveDropContainer=function(e){var t=this,n=e.x,r=e.y,i=this._initialContainer._getSiblingContainerFromPosition(this,n,r);!i&&this._dropContainer!==this._initialContainer&&this._initialContainer._isOverContainer(n,r)&&(i=this._initialContainer),i&&i!==this._dropContainer&&this._ngZone.run((function(){t.exited.next({item:t,container:t._dropContainer}),t._dropContainer.exit(t),t._dropContainer=i,t._dropContainer.enter(t,n,r,i===t._initialContainer&&i.sortingDisabled?t._initialIndex:void 0),t.entered.next({item:t,container:i,currentIndex:i.getItemIndex(t)})})),this._dropContainer._startScrollingIfNecessary(n,r),this._dropContainer._sortItem(this,n,r,this._pointerDirectionDelta),this._preview.style.transform=Ze(n-this._pickupPositionInElement.x,r-this._pickupPositionInElement.y)},e.prototype._createPreviewElement=function(){var e,t=this._previewTemplate,n=this.previewClass,r=t?t.template:null;if(r&&t){var i=t.matchSize?this._rootElement.getBoundingClientRect():null,a=t.viewContainer.createEmbeddedView(r,t.context);a.detectChanges(),e=nt(a,this._document),this._previewRef=a,t.matchSize?rt(e,i):e.style.transform=Ze(this._pickupPositionOnPage.x,this._pickupPositionOnPage.y)}else{var o=this._rootElement;rt(e=Je(o),o.getBoundingClientRect())}return Be(e.style,{pointerEvents:"none",margin:"0",position:"fixed",top:"0",left:"0",zIndex:""+(this._config.zIndex||1e3)}),Le(e,!1),e.classList.add("cdk-drag-preview"),e.setAttribute("dir",this._direction),n&&(Array.isArray(n)?n.forEach((function(t){return e.classList.add(t)})):e.classList.add(n)),e},e.prototype._animatePreviewToPlaceholder=function(){var e=this;if(!this._hasMoved)return Promise.resolve();var t=this._placeholder.getBoundingClientRect();this._preview.classList.add("cdk-drag-animating"),this._preview.style.transform=Ze(t.left,t.top);var n=function(e){var t=getComputedStyle(e),n=Ue(t,"transition-property"),r=n.find((function(e){return"transform"===e||"all"===e}));if(!r)return 0;var i=n.indexOf(r),a=Ue(t,"transition-duration"),o=Ue(t,"transition-delay");return Fe(a[i])+Fe(o[i])}(this._preview);return 0===n?Promise.resolve():this._ngZone.runOutsideAngular((function(){return new Promise((function(t){var r=function(n){(!n||n.target===e._preview&&"transform"===n.propertyName)&&(e._preview.removeEventListener("transitionend",r),t(),clearTimeout(i))},i=setTimeout(r,1.5*n);e._preview.addEventListener("transitionend",r)}))}))},e.prototype._createPlaceholderElement=function(){var e,t=this._placeholderTemplate,n=t?t.template:null;return n?(this._placeholderRef=t.viewContainer.createEmbeddedView(n,t.context),this._placeholderRef.detectChanges(),e=nt(this._placeholderRef,this._document)):e=Je(this._rootElement),e.classList.add("cdk-drag-placeholder"),e},e.prototype._getPointerPositionInElement=function(e,t){var n=this._rootElement.getBoundingClientRect(),r=e===this._rootElement?null:e,i=r?r.getBoundingClientRect():n,a=tt(t)?t.targetTouches[0]:t,o=this._getViewportScrollPosition(),s=a.pageX-i.left-o.left,l=a.pageY-i.top-o.top;return{x:i.left-n.left+s,y:i.top-n.top+l}},e.prototype._getPointerPositionOnPage=function(e){var t=tt(e)?e.touches[0]||e.changedTouches[0]:e,n=this._getViewportScrollPosition();return{x:t.pageX-n.left,y:t.pageY-n.top}},e.prototype._getConstrainedPointerPosition=function(e){var t=this.constrainPosition?this.constrainPosition(e,this):e,n=this._dropContainer?this._dropContainer.lockAxis:null;if("x"===this.lockAxis||"x"===n?t.y=this._pickupPositionOnPage.y:"y"!==this.lockAxis&&"y"!==n||(t.x=this._pickupPositionOnPage.x),this._boundaryRect){var r=this._pickupPositionInElement,i=r.x,a=r.y,o=this._boundaryRect,s=this._previewRect,l=o.top+a,c=o.bottom-(s.height-a),u=o.left+i,d=o.right-(s.width-i);t.x=Xe(t.x,u,d),t.y=Xe(t.y,l,c)}return t},e.prototype._updatePointerDirectionDelta=function(e){var t=e.x,n=e.y,r=this._pointerDirectionDelta,i=this._pointerPositionAtLastDirectionChange,a=Math.abs(t-i.x),o=Math.abs(n-i.y);return a>this._config.pointerDirectionChangeThreshold&&(r.x=t>i.x?1:-1,i.x=t),o>this._config.pointerDirectionChangeThreshold&&(r.y=n>i.y?1:-1,i.y=n),r},e.prototype._toggleNativeDragInteractions=function(){if(this._rootElement&&this._handles){var e=this._handles.length>0||!this.isDragging();e!==this._nativeInteractionsEnabled&&(this._nativeInteractionsEnabled=e,Le(this._rootElement,e))}},e.prototype._removeRootElementListeners=function(e){e.removeEventListener("mousedown",this._pointerDown,$e),e.removeEventListener("touchstart",this._pointerDown,Qe)},e.prototype._applyRootElementTransform=function(e,t){var n=Ze(e,t);null==this._initialTransform&&(this._initialTransform=this._rootElement.style.transform||""),this._rootElement.style.transform=this._initialTransform?n+" "+this._initialTransform:n},e.prototype._getDragDistance=function(e){var t=this._pickupPositionOnPage;return t?{x:e.x-t.x,y:e.y-t.y}:{x:0,y:0}},e.prototype._cleanupCachedDimensions=function(){this._boundaryRect=this._previewRect=void 0,this._parentPositions.clear()},e.prototype._containInsideBoundaryOnResize=function(){var e=this._passiveTransform,t=e.x,n=e.y;if(!(0===t&&0===n||this.isDragging())&&this._boundaryElement){var r=this._boundaryElement.getBoundingClientRect(),i=this._rootElement.getBoundingClientRect();if(!(0===r.width&&0===r.height||0===i.width&&0===i.height)){var a=r.left-i.left,o=i.right-r.right,s=r.top-i.top,l=i.bottom-r.bottom;r.width>i.width?(a>0&&(t+=a),o>0&&(t-=o)):t=0,r.height>i.height?(s>0&&(n+=s),l>0&&(n-=l)):n=0,t===this._passiveTransform.x&&n===this._passiveTransform.y||this.setFreeDragPosition({y:n,x:t})}}},e.prototype._getDragStartDelay=function(e){var t=this.dragStartDelay;return"number"==typeof t?t:tt(e)?t.touch:t?t.mouse:0},e.prototype._updateOnScroll=function(e){var t=this._parentPositions.handleScroll(e);this._boundaryRect&&t&&Ke(this._boundaryRect,t.top,t.left)},e.prototype._getViewportScrollPosition=function(){var e=this._parentPositions.positions.get(this._document);return e?e.scrollPosition:this._viewportRuler.getViewportScrollPosition()},e}(); +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */function Ze(e,t){return"translate3d("+Math.round(e)+"px, "+Math.round(t)+"px, 0)"}function Je(e){var t=e.cloneNode(!0),n=t.querySelectorAll("[id]"),r=e.querySelectorAll("canvas");t.removeAttribute("id");for(var i=0;i-1&&a.splice(o,1),c&&!this._dragDropRegistry.isDragging(c)){(u=c.getRootElement()).parentElement.insertBefore(l,u),a.splice(i,0,e)}else{var u=s(this.element);this._shouldEnterAsFirstChild(t,n)?(u.insertBefore(l,a[0].getRootElement()),a.unshift(e)):(u.appendChild(l),a.push(e))}l.style.transform="",this._cacheItemPositions(),this._cacheParentPositions(),this.entered.next({item:e,container:this,currentIndex:this.getItemIndex(e)})},e.prototype.exit=function(e){this._reset(),this.exited.next({item:e,container:this})},e.prototype.drop=function(e,t,n,r,i,a){this._reset(),null==a&&(a=n.getItemIndex(e)),this.dropped.next({item:e,currentIndex:t,previousIndex:a,container:this,previousContainer:n,isPointerOverContainer:r,distance:i})},e.prototype.withItems=function(e){var t=this,n=this._draggables;(this._draggables=e,e.forEach((function(e){return e._withDropContainer(t)})),this.isDragging())&&(n.filter((function(e){return e.isDragging()})).every((function(t){return-1===e.indexOf(t)}))?this._reset():this._cacheItems());return this},e.prototype.withDirection=function(e){return this._direction=e,this},e.prototype.connectedTo=function(e){return this._siblings=e.slice(),this},e.prototype.withOrientation=function(e){return this._orientation=e,this},e.prototype.withScrollableParents=function(e){var t=s(this.element);return this._scrollableElements=-1===e.indexOf(t)?Object(p.g)([t],e):e.slice(),this},e.prototype.getScrollableParents=function(){return this._scrollableElements},e.prototype.getItemIndex=function(e){return this._isDragging?ct("horizontal"===this._orientation&&"rtl"===this._direction?this._itemPositions.slice().reverse():this._itemPositions,(function(t){return t.drag===e})):this._draggables.indexOf(e)},e.prototype.isReceiving=function(){return this._activeSiblings.size>0},e.prototype._sortItem=function(e,t,n,r){if(!this.sortingDisabled&&We(this._clientRect,.05,t,n)){var i=this._itemPositions,a=this._getItemIndexFromPointerPosition(e,t,n,r);if(!(-1===a&&i.length>0)){var o="horizontal"===this._orientation,s=ct(i,(function(t){return t.drag===e})),l=i[a],c=i[s].clientRect,u=l.clientRect,d=s>a?1:-1;this._previousSwap.drag=l.drag,this._previousSwap.delta=o?r.x:r.y;var h=this._getItemOffsetPx(c,u,d),p=this._getSiblingOffsetPx(s,i,d),f=i.slice();it(i,s,a),this.sorted.next({previousIndex:s,currentIndex:a,container:this,item:e}),i.forEach((function(t,n){if(f[n]!==t){var r=t.drag===e,i=r?h:p,a=r?e.getPlaceholderElement():t.drag.getRootElement();t.offset+=i,o?(a.style.transform="translate3d("+Math.round(t.offset)+"px, 0, 0)",Ke(t.clientRect,0,i)):(a.style.transform="translate3d(0, "+Math.round(t.offset)+"px, 0)",Ke(t.clientRect,i,0))}}))}}},e.prototype._startScrollingIfNecessary=function(e,t){var n=this;if(!this.autoScrollDisabled){var r,i=0,a=0;if(this._parentPositions.positions.forEach((function(o,s){var l;s!==n._document&&o.clientRect&&!r&&We(o.clientRect,.05,e,t)&&(l=Object(p.f)(function(e,t,n,r){var i=ht(t,r),a=pt(t,n),o=0,s=0;if(i){var l=e.scrollTop;1===i?l>0&&(o=1):e.scrollHeight-l>e.clientHeight&&(o=2)}if(a){var c=e.scrollLeft;1===a?c>0&&(s=1):e.scrollWidth-c>e.clientWidth&&(s=2)}return[o,s]} +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */(s,o.clientRect,e,t),2),i=l[0],a=l[1],(i||a)&&(r=s))})),!i&&!a){var o=this._viewportRuler.getViewportSize(),s=o.width,l=o.height,c={width:s,height:l,top:0,right:s,bottom:l,left:0};i=ht(c,t),a=pt(c,e),r=window}!r||i===this._verticalScrollDirection&&a===this._horizontalScrollDirection&&r===this._scrollNode||(this._verticalScrollDirection=i,this._horizontalScrollDirection=a,this._scrollNode=r,(i||a)&&r?this._ngZone.runOutsideAngular(this._startScrollInterval):this._stopScrolling())}},e.prototype._stopScrolling=function(){this._stopScrollTimers.next()},e.prototype._cacheParentPositions=function(){var e=s(this.element);this._parentPositions.cache(this._scrollableElements),this._clientRect=this._parentPositions.positions.get(e).clientRect},e.prototype._cacheItemPositions=function(){var e="horizontal"===this._orientation;this._itemPositions=this._activeDraggables.map((function(e){var t=e.getVisibleElement();return{drag:e,offset:0,clientRect:Ve(t)}})).sort((function(t,n){return e?t.clientRect.left-n.clientRect.left:t.clientRect.top-n.clientRect.top}))},e.prototype._reset=function(){var e=this;this._isDragging=!1;var t=s(this.element).style;t.scrollSnapType=t.msScrollSnapType=this._initialScrollSnap,this._activeDraggables.forEach((function(e){var t=e.getRootElement();t&&(t.style.transform="")})),this._siblings.forEach((function(t){return t._stopReceiving(e)})),this._activeDraggables=[],this._itemPositions=[],this._previousSwap.drag=null,this._previousSwap.delta=0,this._stopScrolling(),this._viewportScrollSubscription.unsubscribe(),this._parentPositions.clear()},e.prototype._getSiblingOffsetPx=function(e,t,n){var r="horizontal"===this._orientation,i=t[e].clientRect,a=t[e+-1*n],o=i[r?"width":"height"]*n;if(a){var s=r?"left":"top",l=r?"right":"bottom";-1===n?o-=a.clientRect[s]-i[l]:o+=i[s]-a.clientRect[l]}return o},e.prototype._getItemOffsetPx=function(e,t,n){var r="horizontal"===this._orientation,i=r?t.left-e.left:t.top-e.top;return-1===n&&(i+=r?t.width-e.width:t.height-e.height),i},e.prototype._shouldEnterAsFirstChild=function(e,t){if(!this._activeDraggables.length)return!1;var n=this._itemPositions,r="horizontal"===this._orientation;if(n[0].drag!==this._activeDraggables[0]){var i=n[n.length-1].clientRect;return r?e>=i.right:t>=i.bottom}var a=n[0].clientRect;return r?e<=a.left:t<=a.top},e.prototype._getItemIndexFromPointerPosition=function(e,t,n,r){var i=this,a="horizontal"===this._orientation;return ct(this._itemPositions,(function(o,s,l){var c=o.drag,u=o.clientRect;if(c===e)return l.length<2;if(r){var d=a?r.x:r.y;if(c===i._previousSwap.drag&&d===i._previousSwap.delta)return!1}return a?t>=Math.floor(u.left)&&t=Math.floor(u.top)&&n=n-i&&t<=n+i?1:t>=r-i&&t<=r+i?2:0}function pt(e,t){var n=e.left,r=e.right,i=.05*e.width;return t>=n-i&&t<=n+i?1:t>=r-i&&t<=r+i?2:0}var ft=pe({passive:!1,capture:!0}),mt=function(){function e(e,t){var n=this;this._ngZone=e,this._dropInstances=new Set,this._dragInstances=new Set,this._activeDragInstances=new Set,this._globalListeners=new Map,this.pointerMove=new l.a,this.pointerUp=new l.a,this.scroll=new l.a,this._preventDefaultWhileDragging=function(e){n._activeDragInstances.size&&e.preventDefault()},this._document=t}return e.prototype.registerDropContainer=function(e){this._dropInstances.has(e)||this._dropInstances.add(e)},e.prototype.registerDragItem=function(e){var t=this;this._dragInstances.add(e),1===this._dragInstances.size&&this._ngZone.runOutsideAngular((function(){t._document.addEventListener("touchmove",t._preventDefaultWhileDragging,ft)}))},e.prototype.removeDropContainer=function(e){this._dropInstances.delete(e)},e.prototype.removeDragItem=function(e){this._dragInstances.delete(e),this.stopDragging(e),0===this._dragInstances.size&&this._document.removeEventListener("touchmove",this._preventDefaultWhileDragging,ft)},e.prototype.startDragging=function(e,t){var n=this;if(!this._activeDragInstances.has(e)&&(this._activeDragInstances.add(e),1===this._activeDragInstances.size)){var r=t.type.startsWith("touch"),i=r?"touchmove":"mousemove",a=r?"touchend":"mouseup";this._globalListeners.set(i,{handler:function(e){return n.pointerMove.next(e)},options:ft}).set(a,{handler:function(e){return n.pointerUp.next(e)},options:!0}).set("scroll",{handler:function(e){return n.scroll.next(e)},options:!0}).set("selectstart",{handler:this._preventDefaultWhileDragging,options:ft}),this._ngZone.runOutsideAngular((function(){n._globalListeners.forEach((function(e,t){n._document.addEventListener(t,e.handler,e.options)}))}))}},e.prototype.stopDragging=function(e){this._activeDragInstances.delete(e),0===this._activeDragInstances.size&&this._clearGlobalListeners()},e.prototype.isDragging=function(e){return this._activeDragInstances.has(e)},e.prototype.ngOnDestroy=function(){var e=this;this._dragInstances.forEach((function(t){return e.removeDragItem(t)})),this._dropInstances.forEach((function(t){return e.removeDropContainer(t)})),this._clearGlobalListeners(),this.pointerMove.complete(),this.pointerUp.complete()},e.prototype._clearGlobalListeners=function(){var e=this;this._globalListeners.forEach((function(t,n){e._document.removeEventListener(n,t.handler,t.options)})),this._globalListeners.clear()},e.ctorParameters=function(){return[{type:r.NgZone},{type:void 0,decorators:[{type:r.Inject,args:[i.DOCUMENT]}]}]},e.ɵprov=Object(r["ɵɵdefineInjectable"])({factory:function(){return new e(Object(r["ɵɵinject"])(r.NgZone),Object(r["ɵɵinject"])(i.DOCUMENT))},token:e,providedIn:"root"}),e.ɵfac=function(t){return new(t||e)(r["ɵɵinject"](r.NgZone),r["ɵɵinject"](i.DOCUMENT))},e}(),gt={dragStartThreshold:5,pointerDirectionChangeThreshold:5},yt=function(){function e(e,t,n,r){this._document=e,this._ngZone=t,this._viewportRuler=n,this._dragDropRegistry=r}return e.prototype.createDrag=function(e,t){return void 0===t&&(t=gt),new Ye(e,t,this._document,this._ngZone,this._viewportRuler,this._dragDropRegistry)},e.prototype.createDropList=function(e){return new lt(e,this._dragDropRegistry,this._document,this._ngZone,this._viewportRuler)},e.ctorParameters=function(){return[{type:void 0,decorators:[{type:r.Inject,args:[i.DOCUMENT]}]},{type:r.NgZone},{type:Oe},{type:mt}]},e.ɵprov=Object(r["ɵɵdefineInjectable"])({factory:function(){return new e(Object(r["ɵɵinject"])(i.DOCUMENT),Object(r["ɵɵinject"])(r.NgZone),Object(r["ɵɵinject"])(Oe),Object(r["ɵɵinject"])(mt))},token:e,providedIn:"root"}),e.ɵfac=function(t){return new(t||e)(r["ɵɵinject"](i.DOCUMENT),r["ɵɵinject"](r.NgZone),r["ɵɵinject"](Oe),r["ɵɵinject"](mt))},e}(),bt=new r.InjectionToken("CDK_DRAG_PARENT"),vt=function(){function e(e,t){this.element=e,this._stateChanges=new l.a,this._disabled=!1,this._parentDrag=t,Le(e.nativeElement,!1)}return Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled},set:function(e){this._disabled=a(e),this._stateChanges.next(this)},enumerable:!0,configurable:!0}),e.prototype.ngOnDestroy=function(){this._stateChanges.complete()},e.ctorParameters=function(){return[{type:r.ElementRef},{type:void 0,decorators:[{type:r.Inject,args:[bt]},{type:r.Optional}]}]},e.propDecorators={disabled:[{type:r.Input,args:["cdkDragHandleDisabled"]}]},e.ɵfac=function(t){return new(t||e)(r["ɵɵdirectiveInject"](r.ElementRef),r["ɵɵdirectiveInject"](bt,8))},e.ɵdir=r["ɵɵdefineDirective"]({type:e,selectors:[["","cdkDragHandle",""]],hostAttrs:[1,"cdk-drag-handle"],inputs:{disabled:["cdkDragHandleDisabled","disabled"]}}),e}(),kt=function(){function e(e){this.templateRef=e}return e.ctorParameters=function(){return[{type:r.TemplateRef}]},e.propDecorators={data:[{type:r.Input}]},e.ɵfac=function(t){return new(t||e)(r["ɵɵdirectiveInject"](r.TemplateRef))},e.ɵdir=r["ɵɵdefineDirective"]({type:e,selectors:[["ng-template","cdkDragPlaceholder",""]],inputs:{data:"data"}}),e}(),wt=function(){function e(e){this.templateRef=e,this._matchSize=!1}return Object.defineProperty(e.prototype,"matchSize",{get:function(){return this._matchSize},set:function(e){this._matchSize=a(e)},enumerable:!0,configurable:!0}),e.ctorParameters=function(){return[{type:r.TemplateRef}]},e.propDecorators={data:[{type:r.Input}],matchSize:[{type:r.Input}]},e.ɵfac=function(t){return new(t||e)(r["ɵɵdirectiveInject"](r.TemplateRef))},e.ɵdir=r["ɵɵdefineDirective"]({type:e,selectors:[["ng-template","cdkDragPreview",""]],inputs:{matchSize:"matchSize",data:"data"}}),e}(),_t=new r.InjectionToken("CDK_DRAG_CONFIG");function jt(){return{dragStartThreshold:5,pointerDirectionChangeThreshold:5}} +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var Ct=new r.InjectionToken("CDK_DROP_LIST"),xt=function(){function e(e,t,n,i,a,o,s,c,d){var h=this;this.element=e,this.dropContainer=t,this._document=n,this._ngZone=i,this._viewContainerRef=a,this._dir=s,this._changeDetectorRef=d,this._destroyed=new l.a,this.started=new r.EventEmitter,this.released=new r.EventEmitter,this.ended=new r.EventEmitter,this.entered=new r.EventEmitter,this.exited=new r.EventEmitter,this.dropped=new r.EventEmitter,this.moved=new u.a((function(e){var t=h._dragRef.moved.pipe(Object(Re.a)((function(e){return{source:h,pointerPosition:e.pointerPosition,event:e.event,delta:e.delta,distance:e.distance}}))).subscribe(e);return function(){t.unsubscribe()}})),this._dragRef=c.createDrag(e,{dragStartThreshold:o&&null!=o.dragStartThreshold?o.dragStartThreshold:5,pointerDirectionChangeThreshold:o&&null!=o.pointerDirectionChangeThreshold?o.pointerDirectionChangeThreshold:5,zIndex:null==o?void 0:o.zIndex}),this._dragRef.data=this,o&&this._assignDefaults(o),t&&(this._dragRef._withDropContainer(t._dropListRef),t.addItem(this)),this._syncInputs(this._dragRef),this._handleEvents(this._dragRef)}return Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled||this.dropContainer&&this.dropContainer.disabled},set:function(e){this._disabled=a(e),this._dragRef.disabled=this._disabled},enumerable:!0,configurable:!0}),e.prototype.getPlaceholderElement=function(){return this._dragRef.getPlaceholderElement()},e.prototype.getRootElement=function(){return this._dragRef.getRootElement()},e.prototype.reset=function(){this._dragRef.reset()},e.prototype.getFreeDragPosition=function(){return this._dragRef.getFreeDragPosition()},e.prototype.ngAfterViewInit=function(){var e=this;this._ngZone.onStable.asObservable().pipe(Object(Me.a)(1),F(this._destroyed)).subscribe((function(){e._updateRootElement(),e._handles.changes.pipe(Object(H.a)(e._handles),Object(qe.a)((function(t){var n=t.filter((function(t){return t._parentDrag===e})).map((function(e){return e.element}));e._dragRef.withHandles(n)})),Object(Q.a)((function(e){return h.a.apply(void 0,Object(p.g)(e.map((function(e){return e._stateChanges.pipe(Object(H.a)(e))}))))})),F(e._destroyed)).subscribe((function(t){var n=e._dragRef,r=t.element.nativeElement;t.disabled?n.disableHandle(r):n.enableHandle(r)})),e.freeDragPosition&&e._dragRef.setFreeDragPosition(e.freeDragPosition)}))},e.prototype.ngOnChanges=function(e){var t=e.rootElementSelector,n=e.freeDragPosition;t&&!t.firstChange&&this._updateRootElement(),n&&!n.firstChange&&this.freeDragPosition&&this._dragRef.setFreeDragPosition(this.freeDragPosition)},e.prototype.ngOnDestroy=function(){this.dropContainer&&this.dropContainer.removeItem(this),this._destroyed.next(),this._destroyed.complete(),this._dragRef.dispose()},e.prototype._updateRootElement=function(){var e=this.element.nativeElement,t=this.rootElementSelector?Et(e,this.rootElementSelector):e;if(t&&t.nodeType!==this._document.ELEMENT_NODE)throw Error('cdkDrag must be attached to an element node. Currently attached to "'+t.nodeName+'".');this._dragRef.withRootElement(t||e)},e.prototype._getBoundaryElement=function(){var e=this.boundaryElement;if(!e)return null;if("string"==typeof e)return Et(this.element.nativeElement,e);var t=s(e);if(Object(r.isDevMode)()&&!t.contains(this.element.nativeElement))throw Error("Draggable element is not inside of the node passed into cdkDragBoundary.");return t},e.prototype._syncInputs=function(e){var t=this;e.beforeStarted.subscribe((function(){if(!e.isDragging()){var n=t._dir,r=t.dragStartDelay,i=t._placeholderTemplate?{template:t._placeholderTemplate.templateRef,context:t._placeholderTemplate.data,viewContainer:t._viewContainerRef}:null,a=t._previewTemplate?{template:t._previewTemplate.templateRef,context:t._previewTemplate.data,matchSize:t._previewTemplate.matchSize,viewContainer:t._viewContainerRef}:null;e.disabled=t.disabled,e.lockAxis=t.lockAxis,e.dragStartDelay="object"==typeof r&&r?r:o(r),e.constrainPosition=t.constrainPosition,e.previewClass=t.previewClass,e.withBoundaryElement(t._getBoundaryElement()).withPlaceholderTemplate(i).withPreviewTemplate(a),n&&e.withDirection(n.value)}}))},e.prototype._handleEvents=function(e){var t=this;e.started.subscribe((function(){t.started.emit({source:t}),t._changeDetectorRef.markForCheck()})),e.released.subscribe((function(){t.released.emit({source:t})})),e.ended.subscribe((function(e){t.ended.emit({source:t,distance:e.distance}),t._changeDetectorRef.markForCheck()})),e.entered.subscribe((function(e){t.entered.emit({container:e.container.data,item:t,currentIndex:e.currentIndex})})),e.exited.subscribe((function(e){t.exited.emit({container:e.container.data,item:t})})),e.dropped.subscribe((function(e){t.dropped.emit({previousIndex:e.previousIndex,currentIndex:e.currentIndex,previousContainer:e.previousContainer.data,container:e.container.data,isPointerOverContainer:e.isPointerOverContainer,item:t,distance:e.distance})}))},e.prototype._assignDefaults=function(e){var t=e.lockAxis,n=e.dragStartDelay,r=e.constrainPosition,i=e.previewClass,a=e.boundaryElement,o=e.draggingDisabled,s=e.rootElementSelector;this.disabled=null!=o&&o,this.dragStartDelay=n||0,t&&(this.lockAxis=t),r&&(this.constrainPosition=r),i&&(this.previewClass=i),a&&(this.boundaryElement=a),s&&(this.rootElementSelector=s)},e.ctorParameters=function(){return[{type:r.ElementRef},{type:void 0,decorators:[{type:r.Inject,args:[Ct]},{type:r.Optional},{type:r.SkipSelf}]},{type:void 0,decorators:[{type:r.Inject,args:[i.DOCUMENT]}]},{type:r.NgZone},{type:r.ViewContainerRef},{type:void 0,decorators:[{type:r.Optional},{type:r.Inject,args:[_t]}]},{type:ye,decorators:[{type:r.Optional}]},{type:yt},{type:r.ChangeDetectorRef}]},e.propDecorators={_handles:[{type:r.ContentChildren,args:[vt,{descendants:!0}]}],_previewTemplate:[{type:r.ContentChild,args:[wt]}],_placeholderTemplate:[{type:r.ContentChild,args:[kt]}],data:[{type:r.Input,args:["cdkDragData"]}],lockAxis:[{type:r.Input,args:["cdkDragLockAxis"]}],rootElementSelector:[{type:r.Input,args:["cdkDragRootElement"]}],boundaryElement:[{type:r.Input,args:["cdkDragBoundary"]}],dragStartDelay:[{type:r.Input,args:["cdkDragStartDelay"]}],freeDragPosition:[{type:r.Input,args:["cdkDragFreeDragPosition"]}],disabled:[{type:r.Input,args:["cdkDragDisabled"]}],constrainPosition:[{type:r.Input,args:["cdkDragConstrainPosition"]}],previewClass:[{type:r.Input,args:["cdkDragPreviewClass"]}],started:[{type:r.Output,args:["cdkDragStarted"]}],released:[{type:r.Output,args:["cdkDragReleased"]}],ended:[{type:r.Output,args:["cdkDragEnded"]}],entered:[{type:r.Output,args:["cdkDragEntered"]}],exited:[{type:r.Output,args:["cdkDragExited"]}],dropped:[{type:r.Output,args:["cdkDragDropped"]}],moved:[{type:r.Output,args:["cdkDragMoved"]}]},e.ɵfac=function(t){return new(t||e)(r["ɵɵdirectiveInject"](r.ElementRef),r["ɵɵdirectiveInject"](Ct,12),r["ɵɵdirectiveInject"](i.DOCUMENT),r["ɵɵdirectiveInject"](r.NgZone),r["ɵɵdirectiveInject"](r.ViewContainerRef),r["ɵɵdirectiveInject"](_t,8),r["ɵɵdirectiveInject"](ye,8),r["ɵɵdirectiveInject"](yt),r["ɵɵdirectiveInject"](r.ChangeDetectorRef))},e.ɵdir=r["ɵɵdefineDirective"]({type:e,selectors:[["","cdkDrag",""]],contentQueries:function(e,t,n){var i;(1&e&&(r["ɵɵcontentQuery"](n,wt,!0),r["ɵɵcontentQuery"](n,kt,!0),r["ɵɵcontentQuery"](n,vt,!0)),2&e)&&(r["ɵɵqueryRefresh"](i=r["ɵɵloadQuery"]())&&(t._previewTemplate=i.first),r["ɵɵqueryRefresh"](i=r["ɵɵloadQuery"]())&&(t._placeholderTemplate=i.first),r["ɵɵqueryRefresh"](i=r["ɵɵloadQuery"]())&&(t._handles=i))},hostAttrs:[1,"cdk-drag"],hostVars:4,hostBindings:function(e,t){2&e&&r["ɵɵclassProp"]("cdk-drag-disabled",t.disabled)("cdk-drag-dragging",t._dragRef.isDragging())},inputs:{disabled:["cdkDragDisabled","disabled"],dragStartDelay:["cdkDragStartDelay","dragStartDelay"],lockAxis:["cdkDragLockAxis","lockAxis"],constrainPosition:["cdkDragConstrainPosition","constrainPosition"],previewClass:["cdkDragPreviewClass","previewClass"],boundaryElement:["cdkDragBoundary","boundaryElement"],rootElementSelector:["cdkDragRootElement","rootElementSelector"],data:["cdkDragData","data"],freeDragPosition:["cdkDragFreeDragPosition","freeDragPosition"]},outputs:{started:"cdkDragStarted",released:"cdkDragReleased",ended:"cdkDragEnded",entered:"cdkDragEntered",exited:"cdkDragExited",dropped:"cdkDragDropped",moved:"cdkDragMoved"},exportAs:["cdkDrag"],features:[r["ɵɵProvidersFeature"]([{provide:bt,useExisting:e}]),r["ɵɵNgOnChangesFeature"]]}),e}();function Et(e,t){for(var n=e.parentElement;n;){if(n.matches?n.matches(t):n.msMatchesSelector(t))return n;n=n.parentElement}return null} +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */var St=function(){function e(){this._items=new Set,this._disabled=!1}return Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled},set:function(e){this._disabled=a(e)},enumerable:!0,configurable:!0}),e.prototype.ngOnDestroy=function(){this._items.clear()},e.propDecorators={disabled:[{type:r.Input,args:["cdkDropListGroupDisabled"]}]},e.ɵfac=function(t){return new(t||e)},e.ɵdir=r["ɵɵdefineDirective"]({type:e,selectors:[["","cdkDropListGroup",""]],inputs:{disabled:["cdkDropListGroupDisabled","disabled"]},exportAs:["cdkDropListGroup"]}),e}(),Tt=0,Ot=function(){function e(t,n,i,a,o,s,c){var u=this;this.element=t,this._changeDetectorRef=i,this._dir=a,this._group=o,this._scrollDispatcher=s,this._destroyed=new l.a,this.connectedTo=[],this.id="cdk-drop-list-"+Tt++,this.enterPredicate=function(){return!0},this.dropped=new r.EventEmitter,this.entered=new r.EventEmitter,this.exited=new r.EventEmitter,this.sorted=new r.EventEmitter,this._unsortedItems=new Set,this._dropListRef=n.createDropList(t),this._dropListRef.data=this,c&&this._assignDefaults(c),this._dropListRef.enterPredicate=function(e,t){return u.enterPredicate(e.data,t.data)},this._setupInputSyncSubscription(this._dropListRef),this._handleEvents(this._dropListRef),e._dropLists.push(this),o&&o._items.add(this)}return Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled||!!this._group&&this._group.disabled},set:function(e){this._dropListRef.disabled=this._disabled=a(e)},enumerable:!0,configurable:!0}),e.prototype.addItem=function(e){this._unsortedItems.add(e),this._dropListRef.isDragging()&&this._syncItemsWithRef()},e.prototype.removeItem=function(e){this._unsortedItems.delete(e),this._dropListRef.isDragging()&&this._syncItemsWithRef()},e.prototype.getSortedItems=function(){return Array.from(this._unsortedItems).sort((function(e,t){return e._dragRef.getVisibleElement().compareDocumentPosition(t._dragRef.getVisibleElement())&Node.DOCUMENT_POSITION_FOLLOWING?-1:1}))},e.prototype.ngOnDestroy=function(){var t=e._dropLists.indexOf(this);t>-1&&e._dropLists.splice(t,1),this._group&&this._group._items.delete(this),this._unsortedItems.clear(),this._dropListRef.dispose(),this._destroyed.next(),this._destroyed.complete()},e.prototype.start=function(){this._dropListRef.start()},e.prototype.drop=function(e,t,n,r){this._dropListRef.drop(e._dragRef,t,n._dropListRef,r,{x:0,y:0})},e.prototype.enter=function(e,t,n){this._dropListRef.enter(e._dragRef,t,n)},e.prototype.exit=function(e){this._dropListRef.exit(e._dragRef)},e.prototype.getItemIndex=function(e){return this._dropListRef.getItemIndex(e._dragRef)},e.prototype._setupInputSyncSubscription=function(t){var n=this;this._dir&&this._dir.change.pipe(Object(H.a)(this._dir.value),F(this._destroyed)).subscribe((function(e){return t.withDirection(e)})),t.beforeStarted.subscribe((function(){var r,i=(r=n.connectedTo,Array.isArray(r)?r:[r]).map((function(t){return"string"==typeof t?e._dropLists.find((function(e){return e.id===t})):t}));if(n._group&&n._group._items.forEach((function(e){-1===i.indexOf(e)&&i.push(e)})),!n._scrollableParentsResolved&&n._scrollDispatcher){var o=n._scrollDispatcher.getAncestorScrollContainers(n.element).map((function(e){return e.getElementRef().nativeElement}));n._dropListRef.withScrollableParents(o),n._scrollableParentsResolved=!0}t.disabled=n.disabled,t.lockAxis=n.lockAxis,t.sortingDisabled=a(n.sortingDisabled),t.autoScrollDisabled=a(n.autoScrollDisabled),t.connectedTo(i.filter((function(e){return e&&e!==n})).map((function(e){return e._dropListRef}))).withOrientation(n.orientation)}))},e.prototype._handleEvents=function(e){var t=this;e.beforeStarted.subscribe((function(){t._syncItemsWithRef(),t._changeDetectorRef.markForCheck()})),e.entered.subscribe((function(e){t.entered.emit({container:t,item:e.item.data,currentIndex:e.currentIndex})})),e.exited.subscribe((function(e){t.exited.emit({container:t,item:e.item.data}),t._changeDetectorRef.markForCheck()})),e.sorted.subscribe((function(e){t.sorted.emit({previousIndex:e.previousIndex,currentIndex:e.currentIndex,container:t,item:e.item.data})})),e.dropped.subscribe((function(e){t.dropped.emit({previousIndex:e.previousIndex,currentIndex:e.currentIndex,previousContainer:e.previousContainer.data,container:e.container.data,item:e.item.data,isPointerOverContainer:e.isPointerOverContainer,distance:e.distance}),t._changeDetectorRef.markForCheck()}))},e.prototype._assignDefaults=function(e){var t=e.lockAxis,n=e.draggingDisabled,r=e.sortingDisabled,i=e.listAutoScrollDisabled,a=e.listOrientation;this.disabled=null!=n&&n,this.sortingDisabled=null!=r&&r,this.autoScrollDisabled=null!=i&&i,this.orientation=a||"vertical",t&&(this.lockAxis=t)},e.prototype._syncItemsWithRef=function(){this._dropListRef.withItems(this.getSortedItems().map((function(e){return e._dragRef})))},e._dropLists=[],e.ctorParameters=function(){return[{type:r.ElementRef},{type:yt},{type:r.ChangeDetectorRef},{type:ye,decorators:[{type:r.Optional}]},{type:St,decorators:[{type:r.Optional},{type:r.SkipSelf}]},{type:Se},{type:void 0,decorators:[{type:r.Optional},{type:r.Inject,args:[_t]}]}]},e.propDecorators={connectedTo:[{type:r.Input,args:["cdkDropListConnectedTo"]}],data:[{type:r.Input,args:["cdkDropListData"]}],orientation:[{type:r.Input,args:["cdkDropListOrientation"]}],id:[{type:r.Input}],lockAxis:[{type:r.Input,args:["cdkDropListLockAxis"]}],disabled:[{type:r.Input,args:["cdkDropListDisabled"]}],sortingDisabled:[{type:r.Input,args:["cdkDropListSortingDisabled"]}],enterPredicate:[{type:r.Input,args:["cdkDropListEnterPredicate"]}],autoScrollDisabled:[{type:r.Input,args:["cdkDropListAutoScrollDisabled"]}],dropped:[{type:r.Output,args:["cdkDropListDropped"]}],entered:[{type:r.Output,args:["cdkDropListEntered"]}],exited:[{type:r.Output,args:["cdkDropListExited"]}],sorted:[{type:r.Output,args:["cdkDropListSorted"]}]},e.ɵfac=function(t){return new(t||e)(r["ɵɵdirectiveInject"](r.ElementRef),r["ɵɵdirectiveInject"](yt),r["ɵɵdirectiveInject"](r.ChangeDetectorRef),r["ɵɵdirectiveInject"](ye,8),r["ɵɵdirectiveInject"](St,12),r["ɵɵdirectiveInject"](Se),r["ɵɵdirectiveInject"](_t,8))},e.ɵdir=r["ɵɵdefineDirective"]({type:e,selectors:[["","cdkDropList",""],["cdk-drop-list"]],hostAttrs:[1,"cdk-drop-list"],hostVars:7,hostBindings:function(e,t){2&e&&(r["ɵɵhostProperty"]("id",t.id),r["ɵɵclassProp"]("cdk-drop-list-disabled",t.disabled)("cdk-drop-list-dragging",t._dropListRef.isDragging())("cdk-drop-list-receiving",t._dropListRef.isReceiving()))},inputs:{connectedTo:["cdkDropListConnectedTo","connectedTo"],id:"id",enterPredicate:["cdkDropListEnterPredicate","enterPredicate"],disabled:["cdkDropListDisabled","disabled"],sortingDisabled:["cdkDropListSortingDisabled","sortingDisabled"],autoScrollDisabled:["cdkDropListAutoScrollDisabled","autoScrollDisabled"],orientation:["cdkDropListOrientation","orientation"],lockAxis:["cdkDropListLockAxis","lockAxis"],data:["cdkDropListData","data"]},outputs:{dropped:"cdkDropListDropped",entered:"cdkDropListEntered",exited:"cdkDropListExited",sorted:"cdkDropListSorted"},exportAs:["cdkDropList"],features:[r["ɵɵProvidersFeature"]([{provide:St,useValue:void 0},{provide:Ct,useExisting:e}])]}),e}(),zt=function(){function e(){}return e.ɵmod=r["ɵɵdefineNgModule"]({type:e}),e.ɵinj=r["ɵɵdefineInjector"]({factory:function(t){return new(t||e)},providers:[yt],imports:[Ne]}),("undefined"==typeof ngJitMode||ngJitMode)&&r["ɵɵsetNgModuleScope"](e,{declarations:function(){return[Ot,St,xt,vt,wt,kt]},exports:function(){return[Ne,Ot,St,xt,vt,wt,kt]}}),e}(); +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */},function(e,t,n){"use strict";n.d(t,"a",(function(){return i})),n.d(t,"b",(function(){return a}));var r=n(162);function i(){for(var e=[],t=0;ts||n!=n?c*(1/0):c*n}},function(e,t){e.exports=function(e){try{return{e:!1,v:e()}}catch(t){return{e:!0,v:t}}}},function(e,t,n){var r=n(15),i=n(22),a=n(207);e.exports=function(e,t){if(r(e),i(t)&&t.constructor===e)return t;var n=a.f(e);return(0,n.resolve)(t),n.promise}},function(e,t,n){var r=n(100);e.exports=function(e,t){var n=[];return r(e,!1,n.push,n,t),n}},function(e,t,n){var r; +/*! + * jQuery JavaScript Library v3.6.0 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2021-03-02T17:08Z + */!function(t,n){"use strict";"object"==typeof e.exports?e.exports=t.document?n(t,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return n(e)}:n(t)}("undefined"!=typeof window?window:this,(function(n,i){"use strict";var a=[],o=Object.getPrototypeOf,s=a.slice,l=a.flat?function(e){return a.flat.call(e)}:function(e){return a.concat.apply([],e)},c=a.push,u=a.indexOf,d={},h=d.toString,p=d.hasOwnProperty,f=p.toString,m=f.call(Object),g={},y=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},b=function(e){return null!=e&&e===e.window},v=n.document,k={type:!0,src:!0,nonce:!0,noModule:!0};function w(e,t,n){var r,i,a=(n=n||v).createElement("script");if(a.text=e,t)for(r in k)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&a.setAttribute(r,i);n.head.appendChild(a).parentNode.removeChild(a)}function _(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?d[h.call(e)]||"object":typeof e}var j=function(e,t){return new j.fn.init(e,t)};function C(e){var t=!!e&&"length"in e&&e.length,n=_(e);return!y(e)&&!b(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}j.fn=j.prototype={jquery:"3.6.0",constructor:j,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=j.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return j.each(this,e)},map:function(e){return this.pushStack(j.map(this,(function(t,n){return e.call(t,n,t)})))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(j.grep(this,(function(e,t){return(t+1)%2})))},odd:function(){return this.pushStack(j.grep(this,(function(e,t){return t%2})))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n+~]|"+M+")"+M+"*"),K=new RegExp(M+"|>"),W=new RegExp(L),G=new RegExp("^"+q+"$"),Q={ID:new RegExp("^#("+q+")"),CLASS:new RegExp("^\\.("+q+")"),TAG:new RegExp("^("+q+"|[*])"),ATTR:new RegExp("^"+B),PSEUDO:new RegExp("^"+L),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},$=/HTML$/i,Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,J=/^[^{]+\{\s*\[native \w/,X=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},ae=function(){h()},oe=ke((function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()}),{dir:"parentNode",next:"legend"});try{A.apply(z=N.call(w.childNodes),w.childNodes),z[w.childNodes.length].nodeType}catch(xe){A={apply:z.length?function(e,t){D.apply(e,N.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function se(e,t,r,i){var a,s,c,u,d,f,y,b=t&&t.ownerDocument,w=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==w&&9!==w&&11!==w)return r;if(!i&&(h(t),t=t||p,m)){if(11!==w&&(d=X.exec(e)))if(a=d[1]){if(9===w){if(!(c=t.getElementById(a)))return r;if(c.id===a)return r.push(c),r}else if(b&&(c=b.getElementById(a))&&v(t,c)&&c.id===a)return r.push(c),r}else{if(d[2])return A.apply(r,t.getElementsByTagName(e)),r;if((a=d[3])&&n.getElementsByClassName&&t.getElementsByClassName)return A.apply(r,t.getElementsByClassName(a)),r}if(n.qsa&&!S[e+" "]&&(!g||!g.test(e))&&(1!==w||"object"!==t.nodeName.toLowerCase())){if(y=e,b=t,1===w&&(K.test(e)||H.test(e))){for((b=ee.test(e)&&ye(t.parentNode)||t)===t&&n.scope||((u=t.getAttribute("id"))?u=u.replace(re,ie):t.setAttribute("id",u=k)),s=(f=o(e)).length;s--;)f[s]=(u?"#"+u:":scope")+" "+ve(f[s]);y=f.join(",")}try{return A.apply(r,b.querySelectorAll(y)),r}catch(_){S(e,!0)}finally{u===k&&t.removeAttribute("id")}}}return l(e.replace(U,"$1"),t,r,i)}function le(){var e=[];return function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}}function ce(e){return e[k]=!0,e}function ue(e){var t=p.createElement("fieldset");try{return!!e(t)}catch(xe){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function de(e,t){for(var n=e.split("|"),i=n.length;i--;)r.attrHandle[n[i]]=t}function he(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function pe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function fe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function me(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&oe(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function ge(e){return ce((function(t){return t=+t,ce((function(n,r){for(var i,a=e([],n.length,t),o=a.length;o--;)n[i=a[o]]&&(n[i]=!(r[i]=n[i]))}))}))}function ye(e){return e&&void 0!==e.getElementsByTagName&&e}for(t in n=se.support={},a=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!$.test(t||n&&n.nodeName||"HTML")},h=se.setDocument=function(e){var t,i,o=e?e.ownerDocument||e:w;return o!=p&&9===o.nodeType&&o.documentElement?(f=(p=o).documentElement,m=!a(p),w!=p&&(i=p.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",ae,!1):i.attachEvent&&i.attachEvent("onunload",ae)),n.scope=ue((function(e){return f.appendChild(e).appendChild(p.createElement("div")),void 0!==e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length})),n.attributes=ue((function(e){return e.className="i",!e.getAttribute("className")})),n.getElementsByTagName=ue((function(e){return e.appendChild(p.createComment("")),!e.getElementsByTagName("*").length})),n.getElementsByClassName=J.test(p.getElementsByClassName),n.getById=ue((function(e){return f.appendChild(e).id=k,!p.getElementsByName||!p.getElementsByName(k).length})),n.getById?(r.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if(void 0!==t.getElementById&&m){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(te,ne);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if(void 0!==t.getElementById&&m){var n,r,i,a=t.getElementById(e);if(a){if((n=a.getAttributeNode("id"))&&n.value===e)return[a];for(i=t.getElementsByName(e),r=0;a=i[r++];)if((n=a.getAttributeNode("id"))&&n.value===e)return[a]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,a=t.getElementsByTagName(e);if("*"===e){for(;n=a[i++];)1===n.nodeType&&r.push(n);return r}return a},r.find.CLASS=n.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&m)return t.getElementsByClassName(e)},y=[],g=[],(n.qsa=J.test(p.querySelectorAll))&&(ue((function(e){var t;f.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&g.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||g.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||g.push("~="),(t=p.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||g.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||g.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||g.push(".#.+[+~]"),e.querySelectorAll("\\\f"),g.push("[\\r\\n\\f]")})),ue((function(e){e.innerHTML="";var t=p.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&g.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&g.push(":enabled",":disabled"),f.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")}))),(n.matchesSelector=J.test(b=f.matches||f.webkitMatchesSelector||f.mozMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&&ue((function(e){n.disconnectedMatch=b.call(e,"*"),b.call(e,"[s!='']:x"),y.push("!=",L)})),g=g.length&&new RegExp(g.join("|")),y=y.length&&new RegExp(y.join("|")),t=J.test(f.compareDocumentPosition),v=t||J.test(f.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},T=t?function(e,t){if(e===t)return d=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e==p||e.ownerDocument==w&&v(w,e)?-1:t==p||t.ownerDocument==w&&v(w,t)?1:u?P(u,e)-P(u,t):0:4&r?-1:1)}:function(e,t){if(e===t)return d=!0,0;var n,r=0,i=e.parentNode,a=t.parentNode,o=[e],s=[t];if(!i||!a)return e==p?-1:t==p?1:i?-1:a?1:u?P(u,e)-P(u,t):0;if(i===a)return he(e,t);for(n=e;n=n.parentNode;)o.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;o[r]===s[r];)r++;return r?he(o[r],s[r]):o[r]==w?-1:s[r]==w?1:0},p):p},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(h(e),n.matchesSelector&&m&&!S[t+" "]&&(!y||!y.test(t))&&(!g||!g.test(t)))try{var r=b.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(xe){S(t,!0)}return se(t,p,null,[e]).length>0},se.contains=function(e,t){return(e.ownerDocument||e)!=p&&h(e),v(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=p&&h(e);var i=r.attrHandle[t.toLowerCase()],a=i&&O.call(r.attrHandle,t.toLowerCase())?i(e,t,!m):void 0;return void 0!==a?a:n.attributes||!m?e.getAttribute(t):(a=e.getAttributeNode(t))&&a.specified?a.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,r=[],i=0,a=0;if(d=!n.detectDuplicates,u=!n.sortStable&&e.slice(0),e.sort(T),d){for(;t=e[a++];)t===e[a]&&(i=r.push(a));for(;i--;)e.splice(r[i],1)}return u=null,e},i=se.getText=function(e){var t,n="",r=0,a=e.nodeType;if(a){if(1===a||9===a||11===a){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===a||4===a)return e.nodeValue}else for(;t=e[r++];)n+=i(t);return n},(r=se.selectors={cacheLength:50,createPseudo:ce,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&W.test(n)&&(t=o(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=C[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&C(e,(function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")}))},ATTR:function(e,t,n){return function(r){var i=se.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace(F," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var a="nth"!==e.slice(0,3),o="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var c,u,d,h,p,f,m=a!==o?"nextSibling":"previousSibling",g=t.parentNode,y=s&&t.nodeName.toLowerCase(),b=!l&&!s,v=!1;if(g){if(a){for(;m;){for(h=t;h=h[m];)if(s?h.nodeName.toLowerCase()===y:1===h.nodeType)return!1;f=m="only"===e&&!f&&"nextSibling"}return!0}if(f=[o?g.firstChild:g.lastChild],o&&b){for(v=(p=(c=(u=(d=(h=g)[k]||(h[k]={}))[h.uniqueID]||(d[h.uniqueID]={}))[e]||[])[0]===_&&c[1])&&c[2],h=p&&g.childNodes[p];h=++p&&h&&h[m]||(v=p=0)||f.pop();)if(1===h.nodeType&&++v&&h===t){u[e]=[_,p,v];break}}else if(b&&(v=p=(c=(u=(d=(h=t)[k]||(h[k]={}))[h.uniqueID]||(d[h.uniqueID]={}))[e]||[])[0]===_&&c[1]),!1===v)for(;(h=++p&&h&&h[m]||(v=p=0)||f.pop())&&((s?h.nodeName.toLowerCase()!==y:1!==h.nodeType)||!++v||(b&&((u=(d=h[k]||(h[k]={}))[h.uniqueID]||(d[h.uniqueID]={}))[e]=[_,v]),h!==t)););return(v-=i)===r||v%r==0&&v/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return i[k]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?ce((function(e,n){for(var r,a=i(e,t),o=a.length;o--;)e[r=P(e,a[o])]=!(n[r]=a[o])})):function(e){return i(e,0,n)}):i}},pseudos:{not:ce((function(e){var t=[],n=[],r=s(e.replace(U,"$1"));return r[k]?ce((function(e,t,n,i){for(var a,o=r(e,null,i,[]),s=e.length;s--;)(a=o[s])&&(e[s]=!(t[s]=a))})):function(e,i,a){return t[0]=e,r(t,null,a,n),t[0]=null,!n.pop()}})),has:ce((function(e){return function(t){return se(e,t).length>0}})),contains:ce((function(e){return e=e.replace(te,ne),function(t){return(t.textContent||i(t)).indexOf(e)>-1}})),lang:ce((function(e){return G.test(e||"")||se.error("unsupported lang: "+e),e=e.replace(te,ne).toLowerCase(),function(t){var n;do{if(n=m?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}})),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===f},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:me(!1),disabled:me(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Z.test(e.nodeName)},input:function(e){return Y.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ge((function(){return[0]})),last:ge((function(e,t){return[t-1]})),eq:ge((function(e,t,n){return[n<0?n+t:n]})),even:ge((function(e,t){for(var n=0;nt?t:n;--r>=0;)e.push(r);return e})),gt:ge((function(e,t,n){for(var r=n<0?n+t:n;++r1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function _e(e,t,n,r,i){for(var a,o=[],s=0,l=e.length,c=null!=t;s-1&&(a[c]=!(o[c]=d))}}else y=_e(y===o?y.splice(f,y.length):y),i?i(null,o,y,l):A.apply(o,y)}))}function Ce(e){for(var t,n,i,a=e.length,o=r.relative[e[0].type],s=o||r.relative[" "],l=o?1:0,u=ke((function(e){return e===t}),s,!0),d=ke((function(e){return P(t,e)>-1}),s,!0),h=[function(e,n,r){var i=!o&&(r||n!==c)||((t=n).nodeType?u(e,n,r):d(e,n,r));return t=null,i}];l1&&we(h),l>1&&ve(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(U,"$1"),n,l0,i=e.length>0,a=function(a,o,s,l,u){var d,f,g,y=0,b="0",v=a&&[],k=[],w=c,j=a||i&&r.find.TAG("*",u),C=_+=null==w?1:Math.random()||.1,x=j.length;for(u&&(c=o==p||o||u);b!==x&&null!=(d=j[b]);b++){if(i&&d){for(f=0,o||d.ownerDocument==p||(h(d),s=!m);g=e[f++];)if(g(d,o||p,s)){l.push(d);break}u&&(_=C)}n&&((d=!g&&d)&&y--,a&&v.push(d))}if(y+=b,n&&b!==y){for(f=0;g=t[f++];)g(v,k,o,s);if(a){if(y>0)for(;b--;)v[b]||k[b]||(k[b]=I.call(l));k=_e(k)}A.apply(l,k),u&&!a&&k.length>0&&y+t.length>1&&se.uniqueSort(l)}return u&&(_=C,c=w),v};return n?ce(a):a}(a,i))).selector=e}return s},l=se.select=function(e,t,n,i){var a,l,c,u,d,h="function"==typeof e&&e,p=!i&&o(e=h.selector||e);if(n=n||[],1===p.length){if((l=p[0]=p[0].slice(0)).length>2&&"ID"===(c=l[0]).type&&9===t.nodeType&&m&&r.relative[l[1].type]){if(!(t=(r.find.ID(c.matches[0].replace(te,ne),t)||[])[0]))return n;h&&(t=t.parentNode),e=e.slice(l.shift().value.length)}for(a=Q.needsContext.test(e)?0:l.length;a--&&(c=l[a],!r.relative[u=c.type]);)if((d=r.find[u])&&(i=d(c.matches[0].replace(te,ne),ee.test(l[0].type)&&ye(t.parentNode)||t))){if(l.splice(a,1),!(e=i.length&&ve(l)))return A.apply(n,i),n;break}}return(h||s(e,p))(i,t,!m,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},n.sortStable=k.split("").sort(T).join("")===k,n.detectDuplicates=!!d,h(),n.sortDetached=ue((function(e){return 1&e.compareDocumentPosition(p.createElement("fieldset"))})),ue((function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")}))||de("type|href|height|width",(function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)})),n.attributes&&ue((function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")}))||de("value",(function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue})),ue((function(e){return null==e.getAttribute("disabled")}))||de(R,(function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null})),se}(n);j.find=x,j.expr=x.selectors,j.expr[":"]=j.expr.pseudos,j.uniqueSort=j.unique=x.uniqueSort,j.text=x.getText,j.isXMLDoc=x.isXML,j.contains=x.contains,j.escapeSelector=x.escape;var E=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&j(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},T=j.expr.match.needsContext;function O(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var z=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function I(e,t,n){return y(t)?j.grep(e,(function(e,r){return!!t.call(e,r,e)!==n})):t.nodeType?j.grep(e,(function(e){return e===t!==n})):"string"!=typeof t?j.grep(e,(function(e){return u.call(t,e)>-1!==n})):j.filter(t,e,n)}j.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?j.find.matchesSelector(r,e)?[r]:[]:j.find.matches(e,j.grep(t,(function(e){return 1===e.nodeType})))},j.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(j(e).filter((function(){for(t=0;t1?j.uniqueSort(n):n},filter:function(e){return this.pushStack(I(this,e||[],!1))},not:function(e){return this.pushStack(I(this,e||[],!0))},is:function(e){return!!I(this,"string"==typeof e&&T.test(e)?j(e):e||[],!1).length}});var D,A=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(j.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:A.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof j?t[0]:t,j.merge(this,j.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:v,!0)),z.test(r[1])&&j.isPlainObject(t))for(r in t)y(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=v.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):y(e)?void 0!==n.ready?n.ready(e):e(j):j.makeArray(e,this)}).prototype=j.fn,D=j(v);var N=/^(?:parents|prev(?:Until|All))/,P={children:!0,contents:!0,next:!0,prev:!0};function R(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}j.fn.extend({has:function(e){var t=j(e,this),n=t.length;return this.filter((function(){for(var e=0;e-1:1===n.nodeType&&j.find.matchesSelector(n,e))){a.push(n);break}return this.pushStack(a.length>1?j.uniqueSort(a):a)},index:function(e){return e?"string"==typeof e?u.call(j(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(j.uniqueSort(j.merge(this.get(),j(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),j.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return E(e,"parentNode")},parentsUntil:function(e,t,n){return E(e,"parentNode",n)},next:function(e){return R(e,"nextSibling")},prev:function(e){return R(e,"previousSibling")},nextAll:function(e){return E(e,"nextSibling")},prevAll:function(e){return E(e,"previousSibling")},nextUntil:function(e,t,n){return E(e,"nextSibling",n)},prevUntil:function(e,t,n){return E(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return null!=e.contentDocument&&o(e.contentDocument)?e.contentDocument:(O(e,"template")&&(e=e.content||e),j.merge([],e.childNodes))}},(function(e,t){j.fn[e]=function(n,r){var i=j.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=j.filter(r,i)),this.length>1&&(P[e]||j.uniqueSort(i),N.test(e)&&i.reverse()),this.pushStack(i)}}));var M=/[^\x20\t\r\n\f]+/g;function q(e){return e}function B(e){throw e}function L(e,t,n,r){var i;try{e&&y(i=e.promise)?i.call(e).done(t).fail(n):e&&y(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}j.Callbacks=function(e){e="string"==typeof e?function(e){var t={};return j.each(e.match(M)||[],(function(e,n){t[n]=!0})),t}(e):j.extend({},e);var t,n,r,i,a=[],o=[],s=-1,l=function(){for(i=i||e.once,r=t=!0;o.length;s=-1)for(n=o.shift();++s-1;)a.splice(n,1),n<=s&&s--})),this},has:function(e){return e?j.inArray(e,a)>-1:a.length>0},empty:function(){return a&&(a=[]),this},disable:function(){return i=o=[],a=n="",this},disabled:function(){return!a},lock:function(){return i=o=[],n||t||(a=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],o.push(n),t||l()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},j.extend({Deferred:function(e){var t=[["notify","progress",j.Callbacks("memory"),j.Callbacks("memory"),2],["resolve","done",j.Callbacks("once memory"),j.Callbacks("once memory"),0,"resolved"],["reject","fail",j.Callbacks("once memory"),j.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return a.done(arguments).fail(arguments),this},catch:function(e){return i.then(null,e)},pipe:function(){var e=arguments;return j.Deferred((function(n){j.each(t,(function(t,r){var i=y(e[r[4]])&&e[r[4]];a[r[1]]((function(){var e=i&&i.apply(this,arguments);e&&y(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[r[0]+"With"](this,i?[e]:arguments)}))})),e=null})).promise()},then:function(e,r,i){var a=0;function o(e,t,r,i){return function(){var s=this,l=arguments,c=function(){var n,c;if(!(e=a&&(r!==B&&(s=void 0,l=[n]),t.rejectWith(s,l))}};e?u():(j.Deferred.getStackHook&&(u.stackTrace=j.Deferred.getStackHook()),n.setTimeout(u))}}return j.Deferred((function(n){t[0][3].add(o(0,n,y(i)?i:q,n.notifyWith)),t[1][3].add(o(0,n,y(e)?e:q)),t[2][3].add(o(0,n,y(r)?r:B))})).promise()},promise:function(e){return null!=e?j.extend(e,i):i}},a={};return j.each(t,(function(e,n){var o=n[2],s=n[5];i[n[1]]=o.add,s&&o.add((function(){r=s}),t[3-e][2].disable,t[3-e][3].disable,t[0][2].lock,t[0][3].lock),o.add(n[3].fire),a[n[0]]=function(){return a[n[0]+"With"](this===a?void 0:this,arguments),this},a[n[0]+"With"]=o.fireWith})),i.promise(a),e&&e.call(a,a),a},when:function(e){var t=arguments.length,n=t,r=Array(n),i=s.call(arguments),a=j.Deferred(),o=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?s.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&(L(e,a.done(o(n)).resolve,a.reject,!t),"pending"===a.state()||y(i[n]&&i[n].then)))return a.then();for(;n--;)L(i[n],o(n),a.reject);return a.promise()}});var F=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;j.Deferred.exceptionHook=function(e,t){n.console&&n.console.warn&&e&&F.test(e.name)&&n.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},j.readyException=function(e){n.setTimeout((function(){throw e}))};var U=j.Deferred();function V(){v.removeEventListener("DOMContentLoaded",V),n.removeEventListener("load",V),j.ready()}j.fn.ready=function(e){return U.then(e).catch((function(e){j.readyException(e)})),this},j.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--j.readyWait:j.isReady)||(j.isReady=!0,!0!==e&&--j.readyWait>0||U.resolveWith(v,[j]))}}),j.ready.then=U.then,"complete"===v.readyState||"loading"!==v.readyState&&!v.documentElement.doScroll?n.setTimeout(j.ready):(v.addEventListener("DOMContentLoaded",V),n.addEventListener("load",V));var H=function(e,t,n,r,i,a,o){var s=0,l=e.length,c=null==n;if("object"===_(n))for(s in i=!0,n)H(e,t,s,n[s],!0,a,o);else if(void 0!==r&&(i=!0,y(r)||(o=!0),c&&(o?(t.call(e,r),t=null):(c=t,t=function(e,t,n){return c.call(j(e),n)})),t))for(;s1,null,!0)},removeData:function(e){return this.each((function(){J.remove(this,e)}))}}),j.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Z.get(e,t),n&&(!r||Array.isArray(n)?r=Z.access(e,t,j.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=j.queue(e,t),r=n.length,i=n.shift(),a=j._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete a.stop,i.call(e,(function(){j.dequeue(e,t)}),a)),!r&&a&&a.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Z.get(e,n)||Z.access(e,n,{empty:j.Callbacks("once memory").add((function(){Z.remove(e,[t+"queue",n])}))})}}),j.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]*)/i,ye=/^$|^module$|\/(?:java|ecma)script/i;pe=v.createDocumentFragment().appendChild(v.createElement("div")),(fe=v.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),pe.appendChild(fe),g.checkClone=pe.cloneNode(!0).cloneNode(!0).lastChild.checked,pe.innerHTML="",g.noCloneChecked=!!pe.cloneNode(!0).lastChild.defaultValue,pe.innerHTML="",g.option=!!pe.lastChild;var be={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&O(e,t)?j.merge([e],n):n}function ke(e,t){for(var n=0,r=e.length;n",""]);var we=/<|&#?\w+;/;function _e(e,t,n,r,i){for(var a,o,s,l,c,u,d=t.createDocumentFragment(),h=[],p=0,f=e.length;p-1)i&&i.push(a);else if(c=oe(a),o=ve(d.appendChild(a),"script"),c&&ke(o),n)for(u=0;a=o[u++];)ye.test(a.type||"")&&n.push(a);return d}var je=/^([^.]*)(?:\.(.+)|)/;function Ce(){return!0}function xe(){return!1}function Ee(e,t){return e===function(){try{return v.activeElement}catch(e){}}()==("focus"===t)}function Se(e,t,n,r,i,a){var o,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Se(e,s,n,r,t[s],a);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=xe;else if(!i)return e;return 1===a&&(o=i,(i=function(e){return j().off(e),o.apply(this,arguments)}).guid=o.guid||(o.guid=j.guid++)),e.each((function(){j.event.add(this,t,i,r,n)}))}function Te(e,t,n){n?(Z.set(e,t,!1),j.event.add(e,t,{namespace:!1,handler:function(e){var r,i,a=Z.get(this,t);if(1&e.isTrigger&&this[t]){if(a.length)(j.event.special[t]||{}).delegateType&&e.stopPropagation();else if(a=s.call(arguments),Z.set(this,t,a),r=n(this,t),this[t](),a!==(i=Z.get(this,t))||r?Z.set(this,t,!1):i={},a!==i)return e.stopImmediatePropagation(),e.preventDefault(),i&&i.value}else a.length&&(Z.set(this,t,{value:j.event.trigger(j.extend(a[0],j.Event.prototype),a.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Z.get(e,t)&&j.event.add(e,t,Ce)}j.event={global:{},add:function(e,t,n,r,i){var a,o,s,l,c,u,d,h,p,f,m,g=Z.get(e);if($(e))for(n.handler&&(n=(a=n).handler,i=a.selector),i&&j.find.matchesSelector(ae,i),n.guid||(n.guid=j.guid++),(l=g.events)||(l=g.events=Object.create(null)),(o=g.handle)||(o=g.handle=function(t){return void 0!==j&&j.event.triggered!==t.type?j.event.dispatch.apply(e,arguments):void 0}),c=(t=(t||"").match(M)||[""]).length;c--;)p=m=(s=je.exec(t[c])||[])[1],f=(s[2]||"").split(".").sort(),p&&(d=j.event.special[p]||{},p=(i?d.delegateType:d.bindType)||p,d=j.event.special[p]||{},u=j.extend({type:p,origType:m,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&j.expr.match.needsContext.test(i),namespace:f.join(".")},a),(h=l[p])||((h=l[p]=[]).delegateCount=0,d.setup&&!1!==d.setup.call(e,r,f,o)||e.addEventListener&&e.addEventListener(p,o)),d.add&&(d.add.call(e,u),u.handler.guid||(u.handler.guid=n.guid)),i?h.splice(h.delegateCount++,0,u):h.push(u),j.event.global[p]=!0)},remove:function(e,t,n,r,i){var a,o,s,l,c,u,d,h,p,f,m,g=Z.hasData(e)&&Z.get(e);if(g&&(l=g.events)){for(c=(t=(t||"").match(M)||[""]).length;c--;)if(p=m=(s=je.exec(t[c])||[])[1],f=(s[2]||"").split(".").sort(),p){for(d=j.event.special[p]||{},h=l[p=(r?d.delegateType:d.bindType)||p]||[],s=s[2]&&new RegExp("(^|\\.)"+f.join("\\.(?:.*\\.|)")+"(\\.|$)"),o=a=h.length;a--;)u=h[a],!i&&m!==u.origType||n&&n.guid!==u.guid||s&&!s.test(u.namespace)||r&&r!==u.selector&&("**"!==r||!u.selector)||(h.splice(a,1),u.selector&&h.delegateCount--,d.remove&&d.remove.call(e,u));o&&!h.length&&(d.teardown&&!1!==d.teardown.call(e,f,g.handle)||j.removeEvent(e,p,g.handle),delete l[p])}else for(p in l)j.event.remove(e,p+t[c],n,r,!0);j.isEmptyObject(l)&&Z.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,a,o,s=new Array(arguments.length),l=j.event.fix(e),c=(Z.get(this,"events")||Object.create(null))[l.type]||[],u=j.event.special[l.type]||{};for(s[0]=l,t=1;t=1))for(;c!==this;c=c.parentNode||this)if(1===c.nodeType&&("click"!==e.type||!0!==c.disabled)){for(a=[],o={},n=0;n-1:j.find(i,this,null,[c]).length),o[i]&&a.push(r);a.length&&s.push({elem:c,handlers:a})}return c=this,l\s*$/g;function De(e,t){return O(e,"table")&&O(11!==t.nodeType?t:t.firstChild,"tr")&&j(e).children("tbody")[0]||e}function Ae(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Ne(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Pe(e,t){var n,r,i,a,o,s;if(1===t.nodeType){if(Z.hasData(e)&&(s=Z.get(e).events))for(i in Z.remove(t,"handle events"),s)for(n=0,r=s[i].length;n1&&"string"==typeof f&&!g.checkClone&&ze.test(f))return e.each((function(i){var a=e.eq(i);m&&(t[0]=f.call(this,i,a.html())),Me(a,t,n,r)}));if(h&&(a=(i=_e(t,e[0].ownerDocument,!1,e,r)).firstChild,1===i.childNodes.length&&(i=a),a||r)){for(s=(o=j.map(ve(i,"script"),Ae)).length;d0&&ke(o,!l&&ve(e,"script")),s},cleanData:function(e){for(var t,n,r,i=j.event.special,a=0;void 0!==(n=e[a]);a++)if($(n)){if(t=n[Z.expando]){if(t.events)for(r in t.events)i[r]?j.event.remove(n,r):j.removeEvent(n,r,t.handle);n[Z.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),j.fn.extend({detach:function(e){return qe(this,e,!0)},remove:function(e){return qe(this,e)},text:function(e){return H(this,(function(e){return void 0===e?j.text(this):this.empty().each((function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)}))}),null,e,arguments.length)},append:function(){return Me(this,arguments,(function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||De(this,e).appendChild(e)}))},prepend:function(){return Me(this,arguments,(function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=De(this,e);t.insertBefore(e,t.firstChild)}}))},before:function(){return Me(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this)}))},after:function(){return Me(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)}))},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(j.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map((function(){return j.clone(this,e,t)}))},html:function(e){return H(this,(function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Oe.test(e)&&!be[(ge.exec(e)||["",""])[1].toLowerCase()]){e=j.htmlPrefilter(e);try{for(;n=0&&(l+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-a-l-s-.5))||0),l}function tt(e,t,n){var r=Le(e),i=(!g.boxSizingReliable()||n)&&"border-box"===j.css(e,"boxSizing",!1,r),a=i,o=Ve(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Be.test(o)){if(!n)return o;o="auto"}return(!g.boxSizingReliable()&&i||!g.reliableTrDimensions()&&O(e,"tr")||"auto"===o||!parseFloat(o)&&"inline"===j.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===j.css(e,"boxSizing",!1,r),(a=s in e)&&(o=e[s])),(o=parseFloat(o)||0)+et(e,t,n||(i?"border":"content"),a,r,o)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}j.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Ve(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,a,o,s=Q(t),l=Ye.test(t),c=e.style;if(l||(t=Qe(s)),o=j.cssHooks[t]||j.cssHooks[s],void 0===n)return o&&"get"in o&&void 0!==(i=o.get(e,!1,r))?i:c[t];"string"===(a=typeof n)&&(i=re.exec(n))&&i[1]&&(n=ce(e,t,i),a="number"),null!=n&&n==n&&("number"!==a||l||(n+=i&&i[3]||(j.cssNumber[s]?"":"px")),g.clearCloneStyle||""!==n||0!==t.indexOf("background")||(c[t]="inherit"),o&&"set"in o&&void 0===(n=o.set(e,n,r))||(l?c.setProperty(t,n):c[t]=n))}},css:function(e,t,n,r){var i,a,o,s=Q(t);return Ye.test(t)||(t=Qe(s)),(o=j.cssHooks[t]||j.cssHooks[s])&&"get"in o&&(i=o.get(e,!0,n)),void 0===i&&(i=Ve(e,t,r)),"normal"===i&&t in Je&&(i=Je[t]),""===n||n?(a=parseFloat(i),!0===n||isFinite(a)?a||0:i):i}}),j.each(["height","width"],(function(e,t){j.cssHooks[t]={get:function(e,n,r){if(n)return!$e.test(j.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,t,r):Fe(e,Ze,(function(){return tt(e,t,r)}))},set:function(e,n,r){var i,a=Le(e),o=!g.scrollboxSize()&&"absolute"===a.position,s=(o||r)&&"border-box"===j.css(e,"boxSizing",!1,a),l=r?et(e,t,r,s,a):0;return s&&o&&(l-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(a[t])-et(e,t,"border",!1,a)-.5)),l&&(i=re.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=j.css(e,t)),Xe(0,n,l)}}})),j.cssHooks.marginLeft=He(g.reliableMarginLeft,(function(e,t){if(t)return(parseFloat(Ve(e,"marginLeft"))||e.getBoundingClientRect().left-Fe(e,{marginLeft:0},(function(){return e.getBoundingClientRect().left})))+"px"})),j.each({margin:"",padding:"",border:"Width"},(function(e,t){j.cssHooks[e+t]={expand:function(n){for(var r=0,i={},a="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+ie[r]+t]=a[r]||a[r-2]||a[0];return i}},"margin"!==e&&(j.cssHooks[e+t].set=Xe)})),j.fn.extend({css:function(e,t){return H(this,(function(e,t,n){var r,i,a={},o=0;if(Array.isArray(t)){for(r=Le(e),i=t.length;o1)}}),j.Tween=nt,nt.prototype={constructor:nt,init:function(e,t,n,r,i,a){this.elem=e,this.prop=n,this.easing=i||j.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=a||(j.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=j.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}},nt.prototype.init.prototype=nt.prototype,nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=j.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){j.fx.step[e.prop]?j.fx.step[e.prop](e):1!==e.elem.nodeType||!j.cssHooks[e.prop]&&null==e.elem.style[Qe(e.prop)]?e.elem[e.prop]=e.now:j.style(e.elem,e.prop,e.now+e.unit)}}},nt.propHooks.scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},j.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},j.fx=nt.prototype.init,j.fx.step={};var rt,it,at=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function st(){it&&(!1===v.hidden&&n.requestAnimationFrame?n.requestAnimationFrame(st):n.setTimeout(st,j.fx.interval),j.fx.tick())}function lt(){return n.setTimeout((function(){rt=void 0})),rt=Date.now()}function ct(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ie[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ut(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),a=0,o=i.length;a1)},removeAttr:function(e){return this.each((function(){j.removeAttr(this,e)}))}}),j.extend({attr:function(e,t,n){var r,i,a=e.nodeType;if(3!==a&&8!==a&&2!==a)return void 0===e.getAttribute?j.prop(e,t,n):(1===a&&j.isXMLDoc(e)||(i=j.attrHooks[t.toLowerCase()]||(j.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void j.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=j.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!g.radioValue&&"radio"===t&&O(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)for(;n=i[r++];)e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?j.removeAttr(e,n):e.setAttribute(n,n),n}},j.each(j.expr.match.bool.source.match(/\w+/g),(function(e,t){var n=pt[t]||j.find.attr;pt[t]=function(e,t,r){var i,a,o=t.toLowerCase();return r||(a=pt[o],pt[o]=i,i=null!=n(e,t,r)?o:null,pt[o]=a),i}}));var ft=/^(?:input|select|textarea|button)$/i,mt=/^(?:a|area)$/i;function gt(e){return(e.match(M)||[]).join(" ")}function yt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(M)||[]}j.fn.extend({prop:function(e,t){return H(this,j.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each((function(){delete this[j.propFix[e]||e]}))}}),j.extend({prop:function(e,t,n){var r,i,a=e.nodeType;if(3!==a&&8!==a&&2!==a)return 1===a&&j.isXMLDoc(e)||(t=j.propFix[t]||t,i=j.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=j.find.attr(e,"tabindex");return t?parseInt(t,10):ft.test(e.nodeName)||mt.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),g.optSelected||(j.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),j.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],(function(){j.propFix[this.toLowerCase()]=this})),j.fn.extend({addClass:function(e){var t,n,r,i,a,o,s,l=0;if(y(e))return this.each((function(t){j(this).addClass(e.call(this,t,yt(this)))}));if((t=bt(e)).length)for(;n=this[l++];)if(i=yt(n),r=1===n.nodeType&&" "+gt(i)+" "){for(o=0;a=t[o++];)r.indexOf(" "+a+" ")<0&&(r+=a+" ");i!==(s=gt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,a,o,s,l=0;if(y(e))return this.each((function(t){j(this).removeClass(e.call(this,t,yt(this)))}));if(!arguments.length)return this.attr("class","");if((t=bt(e)).length)for(;n=this[l++];)if(i=yt(n),r=1===n.nodeType&&" "+gt(i)+" "){for(o=0;a=t[o++];)for(;r.indexOf(" "+a+" ")>-1;)r=r.replace(" "+a+" "," ");i!==(s=gt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):y(e)?this.each((function(n){j(this).toggleClass(e.call(this,n,yt(this),t),t)})):this.each((function(){var t,i,a,o;if(r)for(i=0,a=j(this),o=bt(e);t=o[i++];)a.hasClass(t)?a.removeClass(t):a.addClass(t);else void 0!==e&&"boolean"!==n||((t=yt(this))&&Z.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":Z.get(this,"__className__")||""))}))},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+gt(yt(n))+" ").indexOf(t)>-1)return!0;return!1}});var vt=/\r/g;j.fn.extend({val:function(e){var t,n,r,i=this[0];return arguments.length?(r=y(e),this.each((function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,j(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=j.map(i,(function(e){return null==e?"":e+""}))),(t=j.valHooks[this.type]||j.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))}))):i?(t=j.valHooks[i.type]||j.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(vt,""):null==n?"":n:void 0}}),j.extend({valHooks:{option:{get:function(e){var t=j.find.attr(e,"value");return null!=t?t:gt(j.text(e))}},select:{get:function(e){var t,n,r,i=e.options,a=e.selectedIndex,o="select-one"===e.type,s=o?null:[],l=o?a+1:i.length;for(r=a<0?l:o?a:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),a}}}}),j.each(["radio","checkbox"],(function(){j.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=j.inArray(j(e).val(),t)>-1}},g.checkOn||(j.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})})),g.focusin="onfocusin"in n;var kt=/^(?:focusinfocus|focusoutblur)$/,wt=function(e){e.stopPropagation()};j.extend(j.event,{trigger:function(e,t,r,i){var a,o,s,l,c,u,d,h,f=[r||v],m=p.call(e,"type")?e.type:e,g=p.call(e,"namespace")?e.namespace.split("."):[];if(o=h=s=r=r||v,3!==r.nodeType&&8!==r.nodeType&&!kt.test(m+j.event.triggered)&&(m.indexOf(".")>-1&&(g=m.split("."),m=g.shift(),g.sort()),c=m.indexOf(":")<0&&"on"+m,(e=e[j.expando]?e:new j.Event(m,"object"==typeof e&&e)).isTrigger=i?2:3,e.namespace=g.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=r),t=null==t?[e]:j.makeArray(t,[e]),d=j.event.special[m]||{},i||!d.trigger||!1!==d.trigger.apply(r,t))){if(!i&&!d.noBubble&&!b(r)){for(l=d.delegateType||m,kt.test(l+m)||(o=o.parentNode);o;o=o.parentNode)f.push(o),s=o;s===(r.ownerDocument||v)&&f.push(s.defaultView||s.parentWindow||n)}for(a=0;(o=f[a++])&&!e.isPropagationStopped();)h=o,e.type=a>1?l:d.bindType||m,(u=(Z.get(o,"events")||Object.create(null))[e.type]&&Z.get(o,"handle"))&&u.apply(o,t),(u=c&&o[c])&&u.apply&&$(o)&&(e.result=u.apply(o,t),!1===e.result&&e.preventDefault());return e.type=m,i||e.isDefaultPrevented()||d._default&&!1!==d._default.apply(f.pop(),t)||!$(r)||c&&y(r[m])&&!b(r)&&((s=r[c])&&(r[c]=null),j.event.triggered=m,e.isPropagationStopped()&&h.addEventListener(m,wt),r[m](),e.isPropagationStopped()&&h.removeEventListener(m,wt),j.event.triggered=void 0,s&&(r[c]=s)),e.result}},simulate:function(e,t,n){var r=j.extend(new j.Event,n,{type:e,isSimulated:!0});j.event.trigger(r,null,t)}}),j.fn.extend({trigger:function(e,t){return this.each((function(){j.event.trigger(e,t,this)}))},triggerHandler:function(e,t){var n=this[0];if(n)return j.event.trigger(e,t,n,!0)}}),g.focusin||j.each({focus:"focusin",blur:"focusout"},(function(e,t){var n=function(e){j.event.simulate(t,e.target,j.event.fix(e))};j.event.special[t]={setup:function(){var r=this.ownerDocument||this.document||this,i=Z.access(r,t);i||r.addEventListener(e,n,!0),Z.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this.document||this,i=Z.access(r,t)-1;i?Z.access(r,t,i):(r.removeEventListener(e,n,!0),Z.remove(r,t))}}}));var _t=n.location,jt={guid:Date.now()},Ct=/\?/;j.parseXML=function(e){var t,r;if(!e||"string"!=typeof e)return null;try{t=(new n.DOMParser).parseFromString(e,"text/xml")}catch(i){}return r=t&&t.getElementsByTagName("parsererror")[0],t&&!r||j.error("Invalid XML: "+(r?j.map(r.childNodes,(function(e){return e.textContent})).join("\n"):e)),t};var xt=/\[\]$/,Et=/\r?\n/g,St=/^(?:submit|button|image|reset|file)$/i,Tt=/^(?:input|select|textarea|keygen)/i;function Ot(e,t,n,r){var i;if(Array.isArray(t))j.each(t,(function(t,i){n||xt.test(e)?r(e,i):Ot(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)}));else if(n||"object"!==_(t))r(e,t);else for(i in t)Ot(e+"["+i+"]",t[i],n,r)}j.param=function(e,t){var n,r=[],i=function(e,t){var n=y(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!j.isPlainObject(e))j.each(e,(function(){i(this.name,this.value)}));else for(n in e)Ot(n,e[n],t,i);return r.join("&")},j.fn.extend({serialize:function(){return j.param(this.serializeArray())},serializeArray:function(){return this.map((function(){var e=j.prop(this,"elements");return e?j.makeArray(e):this})).filter((function(){var e=this.type;return this.name&&!j(this).is(":disabled")&&Tt.test(this.nodeName)&&!St.test(e)&&(this.checked||!me.test(e))})).map((function(e,t){var n=j(this).val();return null==n?null:Array.isArray(n)?j.map(n,(function(e){return{name:t.name,value:e.replace(Et,"\r\n")}})):{name:t.name,value:n.replace(Et,"\r\n")}})).get()}});var zt=/%20/g,It=/#.*$/,Dt=/([?&])_=[^&]*/,At=/^(.*?):[ \t]*([^\r\n]*)$/gm,Nt=/^(?:GET|HEAD)$/,Pt=/^\/\//,Rt={},Mt={},qt="*/".concat("*"),Bt=v.createElement("a");function Lt(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,a=t.toLowerCase().match(M)||[];if(y(n))for(;r=a[i++];)"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function Ft(e,t,n,r){var i={},a=e===Mt;function o(s){var l;return i[s]=!0,j.each(e[s]||[],(function(e,s){var c=s(t,n,r);return"string"!=typeof c||a||i[c]?a?!(l=c):void 0:(t.dataTypes.unshift(c),o(c),!1)})),l}return o(t.dataTypes[0])||!i["*"]&&o("*")}function Ut(e,t){var n,r,i=j.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&j.extend(!0,e,r),e}Bt.href=_t.href,j.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:_t.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(_t.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":qt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":j.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Ut(Ut(e,j.ajaxSettings),t):Ut(j.ajaxSettings,e)},ajaxPrefilter:Lt(Rt),ajaxTransport:Lt(Mt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var r,i,a,o,s,l,c,u,d,h,p=j.ajaxSetup({},t),f=p.context||p,m=p.context&&(f.nodeType||f.jquery)?j(f):j.event,g=j.Deferred(),y=j.Callbacks("once memory"),b=p.statusCode||{},k={},w={},_="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(c){if(!o)for(o={};t=At.exec(a);)o[t[1].toLowerCase()+" "]=(o[t[1].toLowerCase()+" "]||[]).concat(t[2]);t=o[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=w[e.toLowerCase()]=w[e.toLowerCase()]||e,k[e]=t),this},overrideMimeType:function(e){return null==c&&(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)C.always(e[C.status]);else for(t in e)b[t]=[b[t],e[t]];return this},abort:function(e){var t=e||_;return r&&r.abort(t),x(0,t),this}};if(g.promise(C),p.url=((e||p.url||_t.href)+"").replace(Pt,_t.protocol+"//"),p.type=t.method||t.type||p.method||p.type,p.dataTypes=(p.dataType||"*").toLowerCase().match(M)||[""],null==p.crossDomain){l=v.createElement("a");try{l.href=p.url,l.href=l.href,p.crossDomain=Bt.protocol+"//"+Bt.host!=l.protocol+"//"+l.host}catch(E){p.crossDomain=!0}}if(p.data&&p.processData&&"string"!=typeof p.data&&(p.data=j.param(p.data,p.traditional)),Ft(Rt,p,t,C),c)return C;for(d in(u=j.event&&p.global)&&0==j.active++&&j.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Nt.test(p.type),i=p.url.replace(It,""),p.hasContent?p.data&&p.processData&&0===(p.contentType||"").indexOf("application/x-www-form-urlencoded")&&(p.data=p.data.replace(zt,"+")):(h=p.url.slice(i.length),p.data&&(p.processData||"string"==typeof p.data)&&(i+=(Ct.test(i)?"&":"?")+p.data,delete p.data),!1===p.cache&&(i=i.replace(Dt,"$1"),h=(Ct.test(i)?"&":"?")+"_="+jt.guid+++h),p.url=i+h),p.ifModified&&(j.lastModified[i]&&C.setRequestHeader("If-Modified-Since",j.lastModified[i]),j.etag[i]&&C.setRequestHeader("If-None-Match",j.etag[i])),(p.data&&p.hasContent&&!1!==p.contentType||t.contentType)&&C.setRequestHeader("Content-Type",p.contentType),C.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+qt+"; q=0.01":""):p.accepts["*"]),p.headers)C.setRequestHeader(d,p.headers[d]);if(p.beforeSend&&(!1===p.beforeSend.call(f,C,p)||c))return C.abort();if(_="abort",y.add(p.complete),C.done(p.success),C.fail(p.error),r=Ft(Mt,p,t,C)){if(C.readyState=1,u&&m.trigger("ajaxSend",[C,p]),c)return C;p.async&&p.timeout>0&&(s=n.setTimeout((function(){C.abort("timeout")}),p.timeout));try{c=!1,r.send(k,x)}catch(E){if(c)throw E;x(-1,E)}}else x(-1,"No Transport");function x(e,t,o,l){var d,h,v,k,w,_=t;c||(c=!0,s&&n.clearTimeout(s),r=void 0,a=l||"",C.readyState=e>0?4:0,d=e>=200&&e<300||304===e,o&&(k=function(e,t,n){for(var r,i,a,o,s=e.contents,l=e.dataTypes;"*"===l[0];)l.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){l.unshift(i);break}if(l[0]in n)a=l[0];else{for(i in n){if(!l[0]||e.converters[i+" "+l[0]]){a=i;break}o||(o=i)}a=a||o}if(a)return a!==l[0]&&l.unshift(a),n[a]}(p,C,o)),!d&&j.inArray("script",p.dataTypes)>-1&&j.inArray("json",p.dataTypes)<0&&(p.converters["text script"]=function(){}),k=function(e,t,n,r){var i,a,o,s,l,c={},u=e.dataTypes.slice();if(u[1])for(o in e.converters)c[o.toLowerCase()]=e.converters[o];for(a=u.shift();a;)if(e.responseFields[a]&&(n[e.responseFields[a]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=a,a=u.shift())if("*"===a)a=l;else if("*"!==l&&l!==a){if(!(o=c[l+" "+a]||c["* "+a]))for(i in c)if((s=i.split(" "))[1]===a&&(o=c[l+" "+s[0]]||c["* "+s[0]])){!0===o?o=c[i]:!0!==c[i]&&(a=s[0],u.unshift(s[1]));break}if(!0!==o)if(o&&e.throws)t=o(t);else try{t=o(t)}catch(E){return{state:"parsererror",error:o?E:"No conversion from "+l+" to "+a}}}return{state:"success",data:t}}(p,k,C,d),d?(p.ifModified&&((w=C.getResponseHeader("Last-Modified"))&&(j.lastModified[i]=w),(w=C.getResponseHeader("etag"))&&(j.etag[i]=w)),204===e||"HEAD"===p.type?_="nocontent":304===e?_="notmodified":(_=k.state,h=k.data,d=!(v=k.error))):(v=_,!e&&_||(_="error",e<0&&(e=0))),C.status=e,C.statusText=(t||_)+"",d?g.resolveWith(f,[h,_,C]):g.rejectWith(f,[C,_,v]),C.statusCode(b),b=void 0,u&&m.trigger(d?"ajaxSuccess":"ajaxError",[C,p,d?h:v]),y.fireWith(f,[C,_]),u&&(m.trigger("ajaxComplete",[C,p]),--j.active||j.event.trigger("ajaxStop")))}return C},getJSON:function(e,t,n){return j.get(e,t,n,"json")},getScript:function(e,t){return j.get(e,void 0,t,"script")}}),j.each(["get","post"],(function(e,t){j[t]=function(e,n,r,i){return y(n)&&(i=i||r,r=n,n=void 0),j.ajax(j.extend({url:e,type:t,dataType:i,data:n,success:r},j.isPlainObject(e)&&e))}})),j.ajaxPrefilter((function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")})),j._evalUrl=function(e,t,n){return j.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){j.globalEval(e,t,n)}})},j.fn.extend({wrapAll:function(e){var t;return this[0]&&(y(e)&&(e=e.call(this[0])),t=j(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map((function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e})).append(this)),this},wrapInner:function(e){return y(e)?this.each((function(t){j(this).wrapInner(e.call(this,t))})):this.each((function(){var t=j(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)}))},wrap:function(e){var t=y(e);return this.each((function(n){j(this).wrapAll(t?e.call(this,n):e)}))},unwrap:function(e){return this.parent(e).not("body").each((function(){j(this).replaceWith(this.childNodes)})),this}}),j.expr.pseudos.hidden=function(e){return!j.expr.pseudos.visible(e)},j.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},j.ajaxSettings.xhr=function(){try{return new n.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Ht=j.ajaxSettings.xhr();g.cors=!!Ht&&"withCredentials"in Ht,g.ajax=Ht=!!Ht,j.ajaxTransport((function(e){var t,r;if(g.cors||Ht&&!e.crossDomain)return{send:function(i,a){var o,s=e.xhr();if(s.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(o in e.xhrFields)s[o]=e.xhrFields[o];for(o in e.mimeType&&s.overrideMimeType&&s.overrideMimeType(e.mimeType),e.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest"),i)s.setRequestHeader(o,i[o]);t=function(e){return function(){t&&(t=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?a(0,"error"):a(s.status,s.statusText):a(Vt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=t(),r=s.onerror=s.ontimeout=t("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&n.setTimeout((function(){t&&r()}))},t=t("abort");try{s.send(e.hasContent&&e.data||null)}catch(l){if(t)throw l}},abort:function(){t&&t()}}})),j.ajaxPrefilter((function(e){e.crossDomain&&(e.contents.script=!1)})),j.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return j.globalEval(e),e}}}),j.ajaxPrefilter("script",(function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")})),j.ajaxTransport("script",(function(e){var t,n;if(e.crossDomain||e.scriptAttrs)return{send:function(r,i){t=j(" + diff --git a/images/4.png b/images/4.png deleted file mode 100644 index ae7d7b55..00000000 Binary files a/images/4.png and /dev/null differ diff --git a/images/7.png b/images/7.png new file mode 100644 index 00000000..7098e4c7 Binary files /dev/null and b/images/7.png differ diff --git a/images/two-factor/7.png b/images/two-factor/7.png new file mode 100644 index 00000000..7098e4c7 Binary files /dev/null and b/images/two-factor/7.png differ diff --git a/index.html b/index.html index d81e3aa6..4664452a 100644 --- a/index.html +++ b/index.html @@ -13,7 +13,7 @@ - + @@ -26,6 +26,6 @@ - + diff --git a/locales/af/messages.json b/locales/af/messages.json index dcff8077..1cb4efd7 100644 --- a/locales/af/messages.json +++ b/locales/af/messages.json @@ -725,6 +725,15 @@ "u2fTitle": { "message": "FIDO U2F Security Key" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "Email" }, @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "NFC Support" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "Are you sure you want to remove this security key?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Read Key" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "There was a problem reading the security key. Try again." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Your Bitwarden two-step login recovery code" }, @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "Unable to verify your email. Try sending a new verification email." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Werk Blaaier By" }, @@ -3389,6 +3422,9 @@ "removePasswordConfirmation": { "message": "Are you sure you want to remove the password?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "Disable this Send so that no one can access it.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -3608,6 +3644,28 @@ "message": "Due to an enterprise policy, you are only able to delete an existing Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "modifiedPolicyId": { "message": "Modified policy $ID$.", "placeholders": { @@ -3662,6 +3720,9 @@ "manageUsers": { "message": "Bestuur gebruikers" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "You must manually disable the Single Sign-On Authentication policy before this policy can be disabled." }, @@ -3748,6 +3809,10 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { "message": "The expiration date provided is not valid." }, @@ -3762,5 +3827,68 @@ }, "dateParsingError": { "message": "There was an error saving your deletion and expiration dates." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/be/messages.json b/locales/be/messages.json index 926becb1..b558e3ed 100644 --- a/locales/be/messages.json +++ b/locales/be/messages.json @@ -725,6 +725,15 @@ "u2fTitle": { "message": "Ключ бяспекі FIDO U2F" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "Электронная пошта" }, @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "NFC Support" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "Are you sure you want to remove this security key?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Read Key" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "There was a problem reading the security key. Try again." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Your Bitwarden two-step login recovery code" }, @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "Unable to verify your email. Try sending a new verification email." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Update Browser" }, @@ -3389,6 +3422,9 @@ "removePasswordConfirmation": { "message": "Are you sure you want to remove the password?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "Disable this Send so that no one can access it.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -3608,6 +3644,28 @@ "message": "Due to an enterprise policy, you are only able to delete an existing Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "modifiedPolicyId": { "message": "Modified policy $ID$.", "placeholders": { @@ -3662,6 +3720,9 @@ "manageUsers": { "message": "Manage Users" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "You must manually disable the Single Sign-On Authentication policy before this policy can be disabled." }, @@ -3748,6 +3809,10 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { "message": "The expiration date provided is not valid." }, @@ -3762,5 +3827,68 @@ }, "dateParsingError": { "message": "There was an error saving your deletion and expiration dates." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/bg/messages.json b/locales/bg/messages.json index 5eeb6037..9b12f98b 100644 --- a/locales/bg/messages.json +++ b/locales/bg/messages.json @@ -725,6 +725,15 @@ "u2fTitle": { "message": "Устройство FIDO U2F" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "Електронна поща" }, @@ -800,10 +809,10 @@ "message": "Данните от трезора ви ще се изнесат в незащитен формат. Не го пращайте по незащитени канали като електронна поща. Изтрийте файла незабавно след като свършите работата си с него." }, "encExportKeyWarningDesc": { - "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + "message": "При изнасяне данните се шифрират с ключа ви. Ако го смените, ще трябва наново да ги изнесете, защото няма да може да дешифрирате настоящия файл." }, "encExportAccountWarningDesc": { - "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + "message": "Ключовете за шифриране са уникални за всеки потребител, затова не може да внесете шифрирани данни от един потребител в регистрацията на друг." }, "exportMasterPassword": { "message": "Въведете главната парола, за да изнесете данните." @@ -1004,16 +1013,16 @@ "message": "Внасяне на данни" }, "importError": { - "message": "Import Error" + "message": "Грешка при внасянето" }, "importErrorDesc": { - "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + "message": "Има проблем с данните, които внасяте. Поправете грешките посочени по-долу и пробвайте отново." }, "importSuccess": { "message": "Данните са внесени успешно в трезора ви." }, "importWarning": { - "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "message": "Внасяте данни към организацията „$ORGANIZATION$“. Данните могат да бъдат споделени с членовете ѝ. Сигурни ли сте, че искате да продължите?", "placeholders": { "organization": { "content": "$1", @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "Поддръжка на NFC" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "Сигурни ли сте, че искате да изтриете този ключ за сигурност?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Прочитане на ключ" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "Проблем при изчитането на ключа за сигурност. Пробвайте отново." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Код за възстановяване на достъпа до Битуорден при двустепенна идентификация" }, @@ -1584,7 +1611,7 @@ "message": "Двустепенно удостоверяване чрез YubiKey, FIDO U2F и Duo." }, "premiumSignUpEmergency": { - "message": "Emergency Access" + "message": "Авариен достъп" }, "premiumSignUpReports": { "message": "Проверки в списъците с публикувани пароли, проверка на регистрациите и доклади за изтекли данни, което спомага трезорът ви да е допълнително защитен." @@ -2517,7 +2544,7 @@ } }, "unlinkedSsoUser": { - "message": "Unlinked SSO for user $ID$.", + "message": "Самоличността $ID$ е извадено от еднократното вписване.", "placeholders": { "id": { "content": "$1", @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "Адресът на електронната ви поща не е потвърден. Пробвайте да изпратите ново писмо за потвърждение." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Обновяване на браузъра" }, @@ -2628,7 +2661,7 @@ "message": "Ще имате достъп до организацията, след като администраторът ѝ потвърди членството ви. Ще ви изпратим електронно писмо, когато това се случи." }, "inviteAcceptFailed": { - "message": "Поканата не може да бъде приета. Помолете администратора на организацията да ви прати нова покана." + "message": "Поканата не може да бъде приета. Помолете администратора на организацията да ви прати нова." }, "inviteAcceptFailedShort": { "message": "Поканата не може да бъде приета. $DESCRIPTION$", @@ -2829,7 +2862,7 @@ "message": "След смяната на ключа за шифриране ще трябва да се отпишете и след това да се впишете в регистрацията си във всички приложения на Битуорден, които ползвате (като мобилното приложение и разширенията за браузъри). Ако не се отпишете и впишете повторно (за да получите достъп до новия ключ), рискувате да повредите записите си. Сега ще се пробва да бъдете отписани автоматично, това обаче може да се забави." }, "updateEncryptionKeyExportWarning": { - "message": "Any encrypted exports that you have saved will also become invalid." + "message": "Всички шифрирани вече изнесени данни ще станат безполезни." }, "subscription": { "message": "Абонамент" @@ -3239,7 +3272,7 @@ "message": "Еднократна идентификация (SSO)" }, "ssoHandOff": { - "message": "You may now close this tab and continue in the extension." + "message": "Вече може да затворите подпрозореца и да продължите в разширението." }, "businessPortal": { "message": "Бизнес портал", @@ -3267,37 +3300,37 @@ "message": "Свързване на еднократна идентификация" }, "webPoliciesDeprecationWarning": { - "message": "Policy configuration has been moved, and this page will soon be deprecated. Please click below to use the Business Portal policies page instead." + "message": "Настройките на политиките са преместени и скоро тази страница ще бъдат махната. Натиснете по-долу, за да преминете към страницата за политиките в бизнес портала." }, "singleOrg": { "message": "Една организация" }, "singleOrgDesc": { - "message": "Restrict users from being able to join any other organizations." + "message": "Потребителите да не може да са членове на друга организация." }, "singleOrgBlockCreateMessage": { "message": "Вашата настояща организация има политика, която не позволява да участвате в повече от една организация. Моля свържете се с администратора на организацията или се впишете с друг Bitwarden потребител." }, "singleOrgPolicyWarning": { - "message": "Organization members who are not Owners or Administrators and are already a member of another organization will be removed from your organization." + "message": "Членовете, които не са собственици или администратори и са членове на други организации ще бъдат премахнати от тази организация." }, "requireSso": { - "message": "Single Sign-On Authentication" + "message": "Еднократна идентификация" }, "requireSsoPolicyDesc": { - "message": "Require users to log in with the Enterprise Single Sign-On method." + "message": "Изискване на потребителите да ползват еднократна идентификация." }, "prerequisite": { "message": "Предпоставкa" }, "requireSsoPolicyReq": { - "message": "The Single Organization enterprise policy must be enabled before activating this policy." + "message": "За да включите тази политика, първо трябва ръчно да включите политиката за еднократна идентификация." }, "requireSsoPolicyReqError": { - "message": "Single Organization policy not enabled." + "message": "Политиката за единствена организация не е включена." }, "requireSsoExemption": { - "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + "message": "Тази политика не се прилага към собствениците и администраторите на организацията." }, "sendTypeFile": { "message": "Файл" @@ -3306,195 +3339,198 @@ "message": "Текст" }, "createSend": { - "message": "Create New Send", + "message": "Създаване на изпращане", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "editSend": { - "message": "Edit Send", + "message": "Редактиране на изпращане", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "createdSend": { - "message": "Created Send", + "message": "Създадено изпращане", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "editedSend": { - "message": "Edited Send", + "message": "Редактирано изпращане", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deletedSend": { - "message": "Deleted Send", + "message": "Изтрито изпращане", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deleteSend": { - "message": "Delete Send", + "message": "Изтриване на изпращане", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deleteSendConfirmation": { - "message": "Are you sure you want to delete this Send?", + "message": "Сигурни ли сте, че искате да изтриете това изпращане?", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "whatTypeOfSend": { - "message": "What type of Send is this?", + "message": "Вид на изпратеното", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deletionDate": { - "message": "Deletion Date" + "message": "Дата на изтриване" }, "deletionDateDesc": { - "message": "The Send will be permanently deleted on the specified date and time.", + "message": "Изпращането ще бъде окончателно изтрито на зададената дата и време.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "expirationDate": { "message": "Срок на валидност" }, "expirationDateDesc": { - "message": "If set, access to this Send will expire on the specified date and time.", + "message": "При задаване — това изпращане ще се изключи на зададената дата и време.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "maxAccessCount": { - "message": "Maximum Access Count" + "message": "Максимален брой достъпвания" }, "maxAccessCountDesc": { - "message": "If set, users will no longer be able to access this send once the maximum access count is reached.", + "message": "При задаване — това изпращане ще се изключи след определен брой достъпвания.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "currentAccessCount": { - "message": "Current Access Count" + "message": "Текущ брой на достъпванията" }, "sendPasswordDesc": { - "message": "Optionally require a password for users to access this Send.", + "message": "Изискване на парола за достъп до това изпращане.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNotesDesc": { - "message": "Private notes about this Send.", + "message": "Скрити бележки за това изпращане.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disabled": { "message": "Изключено" }, "sendLink": { - "message": "Send link", + "message": "Изпращане на връзката", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "copySendLink": { - "message": "Copy Send Link", + "message": "Копиране на връзката към изпратеното", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "removePassword": { "message": "Премахване на парола" }, "removedPassword": { - "message": "Removed Password" + "message": "Паролата е премахната" }, "removePasswordConfirmation": { - "message": "Are you sure you want to remove the password?" + "message": "Сигурни ли сте, че искате да премахнете паролата?" + }, + "hideEmail": { + "message": "Hide my email address from recipients." }, "disableThisSend": { - "message": "Disable this Send so that no one can access it.", + "message": "Пълно спиране на това изпращане — никой няма да има достъп.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "allSends": { - "message": "All Sends" + "message": "Всички изпращания" }, "maxAccessCountReached": { - "message": "Max access count reached" + "message": "Достигнат е максималният брой достъпвания" }, "pendingDeletion": { - "message": "Pending deletion" + "message": "Предстои изтриване" }, "expired": { "message": "Изтекъл" }, "searchSends": { - "message": "Search Sends", + "message": "Търсене в изпратените", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendProtectedPassword": { - "message": "This Send is protected with a password. Please type the password below to continue.", + "message": "Изпратеното е защитено с парола. За да продължите, въведете паролата по-долу,.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendProtectedPasswordDontKnow": { - "message": "Don't know the password? Ask the Sender for the password needed to access this Send.", + "message": "Ако не знаете паролата, поискайте от изпращача да ви я даде.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendHiddenByDefault": { - "message": "This send is hidden by default. You can toggle its visibility using the button below.", + "message": "Стандартно изпращането е скрито. Може да промените това като натиснете бутона по-долу.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "downloadFile": { "message": "Изтеглете файл" }, "sendAccessUnavailable": { - "message": "The Send you are trying to access does not exist or is no longer available.", + "message": "Изпращането, което се опитвате да достъпите, е изтрито или вече не е налично.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "missingSendFile": { - "message": "The file associated with this Send could not be found.", + "message": "Файлът за това изпращане липсва.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "noSendsInList": { - "message": "There are no Sends to list.", + "message": "Няма изпращания за показване.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "emergencyAccess": { - "message": "Emergency Access" + "message": "Авариен достъп" }, "emergencyAccessDesc": { - "message": "Grant and manage emergency access for trusted contacts. Trusted contacts may request access to either View or Takeover your account in case of an emergency. Visit our help page for more information and details into how zero knowledge sharing works." + "message": "Даване и управление на извънредния достъп от страна на доверените контакти. Доверените контакти могат да заявят достъп за преглед или пълно поемане в извънредни случаи. Посетете страниците с помощта за повече информация как работи споделянето с нулева информация." }, "emergencyAccessOwnerWarning": { - "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + "message": "Вие сте собственик в една или повече организации. Ако дадете достъп за поемане на регистрацията ви в извънредни случаи, поелият ще може да ползва всичките ви права като собственик." }, "trustedEmergencyContacts": { - "message": "Trusted emergency contacts" + "message": "Доверени извънредни контакти" }, "noTrustedContacts": { - "message": "You have not added any emergency contacts yet, invite a trusted contact to get started." + "message": "Все още не сте добавили извънредни контакти. За да почнете, поканете доверено лице." }, "addEmergencyContact": { - "message": "Add emergency contact" + "message": "Добавяне на извънредни контакти" }, "designatedEmergencyContacts": { - "message": "Designated as emergency contact" + "message": "Указан като извънреден контакт" }, "noGrantedAccess": { - "message": "You have not been designated as an emergency contact for anyone yet." + "message": "Все още на никой не сте задали извънреден контакт." }, "inviteEmergencyContact": { - "message": "Invite emergency contact" + "message": "Покана на извънреден контакт" }, "editEmergencyContact": { - "message": "Edit emergency contact" + "message": "Редактиране на извънреден контакт" }, "inviteEmergencyContactDesc": { - "message": "Invite a new emergency contact by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + "message": "Може да поканите потребител да стане извънреден контакт като попълните адреса му за електронна поща, с който е регистриран в Битуорден, по-долу. В случай, че потребителят не е регистриран, той автоматично ще получи покана и да се регистрира." }, "emergencyAccessRecoveryInitiated": { - "message": "Emergency Access Initiated" + "message": "Начало на извънреден достъп" }, "emergencyAccessRecoveryApproved": { - "message": "Emergency Access Approved" + "message": "Извънредният достъп е одобрен" }, "viewDesc": { - "message": "Can view all items in your own vault." + "message": "Може да вижда всички записи в трезора ви." }, "takeover": { - "message": "Takeover" + "message": "Поемане" }, "takeoverDesc": { - "message": "Can reset your account with a new master password." + "message": "Можете да изчистите регистрацията си с нова главна парола." }, "waitTime": { - "message": "Wait Time" + "message": "Време за изчакване" }, "waitTimeDesc": { - "message": "Time required before automatically granting access." + "message": "Време преди автоматичното даване на достъп." }, "oneDay": { - "message": "1 day" + "message": "1 ден" }, "days": { - "message": "$DAYS$ days", + "message": "$DAYS$ ден/дни", "placeholders": { "days": { "content": "$1", @@ -3503,16 +3539,16 @@ } }, "invitedUser": { - "message": "Invited user." + "message": "Поканен потребител." }, "acceptEmergencyAccess": { - "message": "You've been invited to become an emergency contact for the user listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + "message": "Поканени сте да бъдете извънреден контакт за потребителя по-горе. За да приемете, ще трябва да се впишете в абонамента си към Битуорден. Ако нямате такъв, ще трябва да създадете безплатен абонамент и след това да се впишете в него." }, "emergencyInviteAcceptFailed": { - "message": "Unable to accept invitation. Ask the user to send a new invitation." + "message": "Поканата не може да бъде приета. Помолете потребителя да ви прати нова." }, "emergencyInviteAcceptFailedShort": { - "message": "Unable to accept invitation. $DESCRIPTION$", + "message": "Поканата не може да бъде приета. $DESCRIPTION$", "placeholders": { "description": { "content": "$1", @@ -3521,13 +3557,13 @@ } }, "emergencyInviteAcceptedDesc": { - "message": "You can access the emergency options for this user after your identity has been confirmed. We'll send you an email when that happens." + "message": "Ще може да достъпите възможностите за извънредно поемане на регистрация след потвърждаване на самоличността ви. Ще ви пратим е-писмо, когато това стане." }, "requestAccess": { - "message": "Request Access" + "message": "Заявка за достъп" }, "requestAccessConfirmation": { - "message": "Are you sure you want to request emergency access? You will be provided access after $WAITTIME$ day(s) or whenever the user manually approves the request.", + "message": "Сигурни ли сте, че искате да заявите извънреден достъп? Ще го получите след $WAITTIME$ дни или след като потребителят лично одобри заявката.", "placeholders": { "waittime": { "content": "$1", @@ -3536,7 +3572,7 @@ } }, "requestSent": { - "message": "Emergency access requested for $USER$. We'll notify you by email when it's possible to continue.", + "message": "Заявен е извънреден достъп до трезора на $USER$. Ще ви пратим е-писмо, когато може да продължите.", "placeholders": { "user": { "content": "$1", @@ -3545,13 +3581,13 @@ } }, "approve": { - "message": "Approve" + "message": "Одобряване" }, "reject": { - "message": "Reject" + "message": "Отказ" }, "approveAccessConfirmation": { - "message": "Are you sure you want to approve emergency access? This will allow $USER$ to $ACTION$ your account.", + "message": "Сигурни ли сте, че искате да одобрите извънредния достъп? Това ще позволи на $USER$ да $ACTION$ вашия трезор.", "placeholders": { "user": { "content": "$1", @@ -3564,13 +3600,13 @@ } }, "emergencyApproved": { - "message": "Emergency access approved." + "message": "Извънредният достъп е одобрен." }, "emergencyRejected": { - "message": "Emergency access rejected" + "message": "Извънредният достъп е отказан." }, "passwordResetFor": { - "message": "Password reset for $USER$. You can now login using the new password.", + "message": "Паролата на потребителя $USER$ е сменена и той може вече да влезе с новата.", "placeholders": { "user": { "content": "$1", @@ -3579,37 +3615,59 @@ } }, "personalOwnership": { - "message": "Personal Ownership" + "message": "Индивидуално притежание" }, "personalOwnershipPolicyDesc": { - "message": "Require users to save vault items to an organization by removing the personal ownership option." + "message": "Изискване потребителите да запазват записите в трезора на организацията като забраните възможността за индивидуално притежание." }, "personalOwnershipExemption": { - "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + "message": "Тази политика не се прилага към собствениците и администраторите на организацията." }, "personalOwnershipSubmitError": { "message": "Заради някоя политика за голяма организация не може да запазвате елементи в собствения си трезор. Променете собствеността да е на организация и изберете от наличните колекции." }, "disableSend": { - "message": "Disable Send" + "message": "Без изпращане" }, "disableSendPolicyDesc": { - "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "message": "Потребителите да не могат да създават ново или да изтриват съществуващо изпращане по Битуорден. Изтриването на съществуващо изпращане продължава да е възможно.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disableSendExemption": { - "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + "message": "Потребителите в организацията, които имат права да управляват политиките ѝ, не са ограничени от тази политика." }, "sendDisabled": { - "message": "Send disabled", + "message": "Изпращането е изключено", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { - "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "message": "Поради политика на организация, може само да изтривате съществуващи изпращания.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "modifiedPolicyId": { - "message": "Modified policy $ID$.", + "message": "Редактирана политика № $ID$.", "placeholders": { "id": { "content": "$1", @@ -3618,129 +3676,132 @@ } }, "planPrice": { - "message": "Plan price" + "message": "Цена на плана" }, "estimatedTax": { - "message": "Estimated tax" + "message": "Приблизителен данък" }, "custom": { - "message": "Custom" + "message": "По избор" }, "customDesc": { - "message": "Allows more granular control of user permissions for advanced configurations." + "message": "По-специфичен контрол на правата на потребителите при по-сложни варианти." }, "permissions": { "message": "Права" }, "accessBusinessPortal": { - "message": "Access Business Portal" + "message": "Достъп до бизнес портала" }, "accessEventLogs": { - "message": "Access Event Logs" + "message": "Достъп до журналите" }, "accessImportExport": { - "message": "Access Import/Export" + "message": "Достъп до в/изнасянията" }, "accessReports": { - "message": "Access Reports" + "message": "Достъп до отчетите" }, "manageAllCollections": { - "message": "Manage All Collections" + "message": "Управление на всички колекции" }, "manageAssignedCollections": { - "message": "Manage Assigned Collections" + "message": "Управление на възложените колекции" }, "manageGroups": { - "message": "Manage Groups" + "message": "Управление на групи" }, "managePolicies": { - "message": "Manage Policies" + "message": "Управление на политиките" }, "manageSso": { - "message": "Manage SSO" + "message": "Управление на еднократната идентификация (SSO)" }, "manageUsers": { - "message": "Manage Users" + "message": "Управление на потребителите" + }, + "manageResetPassword": { + "message": "Manage Password Reset" }, "disableRequireSsoError": { - "message": "You must manually disable the Single Sign-On Authentication policy before this policy can be disabled." + "message": "За да изключите тази политика, първо трябва ръчно да изключите политиката за еднократна идентификация." }, "personalOwnershipPolicyInEffect": { "message": "Политика от някоя организация влияе на вариантите за собственост." }, "personalOwnershipCheckboxDesc": { - "message": "Disable personal ownership for organization users" + "message": "Изключване на индивидуалното притежание за потребителите в организацията" }, "textHiddenByDefault": { - "message": "When accessing the Send, hide the text by default", + "message": "При достъп до изпращането стандартно текстът да се скрива", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNameDesc": { - "message": "A friendly name to describe this Send.", + "message": "Описателно име за това изпращане.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTextDesc": { - "message": "The text you want to send." + "message": "Текст за изпращане." }, "sendFileDesc": { - "message": "The file you want to send." + "message": "Файл за изпращане." }, "copySendLinkOnSave": { - "message": "Copy the link to share this Send to my clipboard upon save." + "message": "Копиране на връзката към изпращането при запазването му за лесно споделяне." }, "sendLinkLabel": { - "message": "Send link", + "message": "Изпращане на връзката", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "send": { - "message": "Send", + "message": "Изпращане", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineProductDesc": { - "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "message": "С изпращането през Битуорден може лесно и защитено да споделяте, включително и временно, информация с други потребители.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineLearnMore": { - "message": "Learn more about", + "message": "Още за", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" }, "sendVaultCardProductDesc": { - "message": "Share text or files directly with anyone." + "message": "Директно споделяне на текст и файлове с който и да е." }, "sendVaultCardLearnMore": { - "message": "Learn more", + "message": "Научете повече", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" }, "sendVaultCardSee": { - "message": "see", + "message": "вижте", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" }, "sendVaultCardHowItWorks": { - "message": "how it works", + "message": "как това работи", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" }, "sendVaultCardOr": { - "message": "or", + "message": "или", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" }, "sendVaultCardTryItNow": { - "message": "try it now", + "message": "пробвайте още сега", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" }, "sendAccessTaglineOr": { - "message": "or", + "message": "или", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" }, "sendAccessTaglineSignUp": { - "message": "sign up", + "message": "се регистрирайте,", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" }, "sendAccessTaglineTryToday": { - "message": "to try it today.", + "message": "за да го пробвате още днес.", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" }, "sendCreatorIdentifier": { - "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "message": "Потребителят на Битуорден — $USER_IDENTIFIER$, сподели следното с вас", "placeholders": { "user_identifier": { "content": "$1", @@ -3748,19 +3809,86 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { - "message": "The expiration date provided is not valid." + "message": "Неправилна дата на валидност." }, "deletionDateIsInvalid": { - "message": "The deletion date provided is not valid." + "message": "Неправилна дата на изтриване." }, "expirationDateAndTimeRequired": { - "message": "An expiration date and time are required." + "message": "Необходими са дата и време на валидност." }, "deletionDateAndTimeRequired": { - "message": "A deletion date and time are required." + "message": "Необходима е дата на изтриване." }, "dateParsingError": { - "message": "There was an error saving your deletion and expiration dates." + "message": "Грешка при запазване на датата на валидност и изтриване." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/bn/messages.json b/locales/bn/messages.json index 07c743b8..3b6d7fc8 100644 --- a/locales/bn/messages.json +++ b/locales/bn/messages.json @@ -725,6 +725,15 @@ "u2fTitle": { "message": "FIDO U2F সুরক্ষা কী" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "Email" }, @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "NFC Support" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "Are you sure you want to remove this security key?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Read Key" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "There was a problem reading the security key. Try again." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Your Bitwarden two-step login recovery code" }, @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "Unable to verify your email. Try sending a new verification email." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Update Browser" }, @@ -3389,6 +3422,9 @@ "removePasswordConfirmation": { "message": "Are you sure you want to remove the password?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "Disable this Send so that no one can access it.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -3608,6 +3644,28 @@ "message": "Due to an enterprise policy, you are only able to delete an existing Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "modifiedPolicyId": { "message": "Modified policy $ID$.", "placeholders": { @@ -3662,6 +3720,9 @@ "manageUsers": { "message": "Manage Users" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "You must manually disable the Single Sign-On Authentication policy before this policy can be disabled." }, @@ -3748,6 +3809,10 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { "message": "The expiration date provided is not valid." }, @@ -3762,5 +3827,68 @@ }, "dateParsingError": { "message": "There was an error saving your deletion and expiration dates." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/ca/messages.json b/locales/ca/messages.json index 5a045b82..aa792678 100644 --- a/locales/ca/messages.json +++ b/locales/ca/messages.json @@ -725,6 +725,15 @@ "u2fTitle": { "message": "Clau de seguretat FIDO U2F" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "Correu electrònic" }, @@ -800,10 +809,10 @@ "message": "Aquesta exportació conté les dades de la vostra caixa forta en un format no xifrat. No hauríeu d'emmagatzemar o enviar el fitxer exportat a través de canals no segurs (com ara el correu electrònic). Elimineu-lo immediatament després d'haver acabat d'usar-lo." }, "encExportKeyWarningDesc": { - "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + "message": "Aquesta exportació xifra les vostres dades mitjançant la vostra clau de xifratge. Si alguna vegada gireu eixa clau, hauríeu d'exportar de nou, ja que no podreu desxifrar aquest fitxer d'exportació." }, "encExportAccountWarningDesc": { - "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + "message": "Les claus de xifratge són exclusives de cada compte d'usuari Bitwarden, de manera que no podeu importar una exportació xifrada a un compte diferent." }, "exportMasterPassword": { "message": "Introduïu la contrasenya mestra per exportar les dades de la caixa forta." @@ -1004,16 +1013,16 @@ "message": "Importa dades" }, "importError": { - "message": "Import Error" + "message": "Error d'importació" }, "importErrorDesc": { - "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + "message": "Hi ha hagut un problema amb les dades que heu intentat importar. Resoleu els errors que es mostren a continuació al fitxer font i torneu-ho a provar." }, "importSuccess": { "message": "Les dades s'han importat amb èxit a la vostra caixa forta." }, "importWarning": { - "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "message": "Esteu important dades a $ORGANIZATION$. Les vostres dades es poden compartir amb membres d'aquesta organització. Voleu continuar?", "placeholders": { "organization": { "content": "$1", @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "Suport NFC" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "Segur que voleu suprimir aquesta clau de seguretat?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Llegeix la clau" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "Hi ha hagut un problema en llegir la clau de seguretat. Torneu-ho a provar." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "El codi de recuperació d'inici de sessió en dues passes de Bitwarden" }, @@ -1584,7 +1611,7 @@ "message": "Opcions addicionals d'inici de sessió en dues passes com ara YubiKey, FIDO U2F i Duo." }, "premiumSignUpEmergency": { - "message": "Emergency Access" + "message": "Accés d’emergència" }, "premiumSignUpReports": { "message": "Requisits d'higiene de la contrasenya, salut del compte i informe d'infraccions de dades per mantenir la seguretat de la vostra caixa forta." @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "No es pot verificar el vostre correu electrònic. Proveu d'enviar un nou correu electrònic de verificació." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Actualitza el navegador" }, @@ -3389,6 +3422,9 @@ "removePasswordConfirmation": { "message": "Esteu segur que voleu suprimir la contrasenya?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "Desactiveu aquest enviament perquè ningú no hi puga accedir.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -3429,7 +3465,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "missingSendFile": { - "message": "The file associated with this Send could not be found.", + "message": "No s'ha pogut trobar el fitxer associat a aquest Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "noSendsInList": { @@ -3440,10 +3476,10 @@ "message": "Accés d’emergència" }, "emergencyAccessDesc": { - "message": "Concediu i gestioneu l'accés d'emergència per a contactes de confiança. Els contactes de confiança poden sol·licitar accés per Visualitzar o Adquirir el vostre compte en cas d’emergència. Visiteu la nostra pàgina d’ajuda per obtenir més informació i detalls sobre com funciona l’intercanvi de coneixement zero." + "message": "Concediu i gestioneu l'accés d'emergència per a contactes de confiança. Els contactes de confiança poden sol·licitar accés per Visualitzar o Prendre possessió del vostre compte en cas d’emergència. Visiteu la nostra pàgina d’ajuda per obtenir més informació i detalls sobre com funciona l’intercanvi de coneixement zero." }, "emergencyAccessOwnerWarning": { - "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + "message": "Sou propietari d'una o més organitzacions. Si doneu accés a la presa de possessió a un contacte d’emergència, podrà utilitzar tots els vostres permisos com a propietari després." }, "trustedEmergencyContacts": { "message": "Contactes d’emergència de confiança" @@ -3591,21 +3627,43 @@ "message": "A causa d'una política empresarial, no podeu guardar elements a la vostra caixa forta personal. Canvieu l'opció Propietat en organització i trieu entre les col·leccions disponibles." }, "disableSend": { - "message": "Disable Send" + "message": "Desactiva Send" }, "disableSendPolicyDesc": { - "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "message": "No permeteu als usuaris crear o editar un Send Bitwarden. Es permet suprimir un Send existent.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disableSendExemption": { - "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + "message": "Els usuaris de l’organització que poden gestionar les polítiques d'aquesta, estan exempts de la seua aplicació." }, "sendDisabled": { - "message": "Send disabled", + "message": "Send desactivat", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { - "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "message": "A causa d'una política empresarial, només podeu suprimir un Send existent.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "modifiedPolicyId": { @@ -3662,6 +3720,9 @@ "manageUsers": { "message": "Administra usuaris" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "Per desactivar aquesta política, primer heu de desactivar manualment la política d’autenticació d’inici de sessió únic (SSO)." }, @@ -3676,20 +3737,20 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNameDesc": { - "message": "A friendly name to describe this Send.", + "message": "Un nom apropiat per descriure aquest Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTextDesc": { - "message": "The text you want to send." + "message": "El text que voleu enviar." }, "sendFileDesc": { - "message": "The file you want to send." + "message": "El fitxer que voleu enviar." }, "copySendLinkOnSave": { - "message": "Copy the link to share this Send to my clipboard upon save." + "message": "Copie l'enllaç per compartir aquest Send al meu porta-retalls després de guardar-lo." }, "sendLinkLabel": { - "message": "Send link", + "message": "Enllaç Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "send": { @@ -3697,50 +3758,50 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineProductDesc": { - "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "message": "Bitwarden Send transmet informació confidencial i temporal a altres persones de forma fàcil i segura.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineLearnMore": { - "message": "Learn more about", + "message": "Més informació sobre", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" }, "sendVaultCardProductDesc": { - "message": "Share text or files directly with anyone." + "message": "Comparteix text o fitxers directament amb qualsevol persona." }, "sendVaultCardLearnMore": { - "message": "Learn more", + "message": "Més informació", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" }, "sendVaultCardSee": { - "message": "see", + "message": "veure", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" }, "sendVaultCardHowItWorks": { - "message": "how it works", + "message": "com funciona", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" }, "sendVaultCardOr": { - "message": "or", + "message": "o", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" }, "sendVaultCardTryItNow": { - "message": "try it now", + "message": "prova-ho ara", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" }, "sendAccessTaglineOr": { - "message": "or", + "message": "o", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" }, "sendAccessTaglineSignUp": { - "message": "sign up", + "message": "registra't", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" }, "sendAccessTaglineTryToday": { - "message": "to try it today.", + "message": "per provar-ho hui.", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" }, "sendCreatorIdentifier": { - "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "message": "L'usuari bitwarden $USER_IDENTIFIER$ ha compartit el següent amb vosaltres", "placeholders": { "user_identifier": { "content": "$1", @@ -3748,19 +3809,86 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { - "message": "The expiration date provided is not valid." + "message": "La data de caducitat proporcionada no és vàlida." }, "deletionDateIsInvalid": { - "message": "The deletion date provided is not valid." + "message": "La data de supressió proporcionada no és vàlida." }, "expirationDateAndTimeRequired": { - "message": "An expiration date and time are required." + "message": "Requereix una data i hora de caducitat." }, "deletionDateAndTimeRequired": { - "message": "A deletion date and time are required." + "message": "Requereix una data i hora de supressió." }, "dateParsingError": { - "message": "There was an error saving your deletion and expiration dates." + "message": "S'ha produït un error en guardar les dates de supressió i caducitat." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/cs/messages.json b/locales/cs/messages.json index ced9b383..383b249c 100644 --- a/locales/cs/messages.json +++ b/locales/cs/messages.json @@ -725,6 +725,15 @@ "u2fTitle": { "message": "FIDO U2F bezpečnostní klíč" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "E-mail" }, @@ -800,10 +809,10 @@ "message": "Tento export obsahuje data vašeho trezoru v nezašifrovaném formátu. Soubor exportu byste neměli ukládat ani odesílat přes nezabezpečené kanály (např. e-mailem). Odstraňte jej okamžitě po jeho použití." }, "encExportKeyWarningDesc": { - "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + "message": "Tento export šifruje vaše data pomocí šifrovacího klíče vašeho účtu. Pokud někdy pozměníte šifrovací klíč svého účtu, měli byste data exportovat znovu, protože tento exportovaný soubor nebudete moci dešifrovat." }, "encExportAccountWarningDesc": { - "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + "message": "Šifrovací klíče účtu jsou jedinečné pro každý uživatelský účet Bitwarden, není proto možné importovat šifrovaný export do jiného účtu." }, "exportMasterPassword": { "message": "Zadejte své hlavní heslo pro export dat." @@ -1004,16 +1013,16 @@ "message": "Import dat" }, "importError": { - "message": "Import Error" + "message": "Chyba importu" }, "importErrorDesc": { - "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + "message": "Vyskytl se problém s daty, které jste se pokusili importovat. Prosím, vyřešte níže uvedené chyby ve zdrojovém souboru a zkuste to znovu." }, "importSuccess": { "message": "Data byla úspěšně importována" }, "importWarning": { - "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "message": "Importujete data do organizace $ORGANIZATION$. Vaše data mohou být sdílena s členy této organizace. Chcete pokračovat?", "placeholders": { "organization": { "content": "$1", @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "Podpora NFC" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "Opravdu chcete odebrat tento bezpečnostní klíč?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Přečíst klíč" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "Při čtení bezpečnostního klíče došlo k potížím. Zkuste to znovu." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Váše kód pro obnovení dvoufázového přihlášení" }, @@ -1584,7 +1611,7 @@ "message": "Další možnosti dvoufázového přihlášení, jako je například YubiKey, FIDO U2F a Duo." }, "premiumSignUpEmergency": { - "message": "Emergency Access" + "message": "Nouzový přístup" }, "premiumSignUpReports": { "message": "Reporty o hygieně vašich hesel, zdraví účtu a narušeních bezpečnosti." @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "Váš e-mail se nepodařilo ověřit. Zkuste odeslat nový ověřovací e-mail." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Aktualizace prohlížeče" }, @@ -3341,14 +3374,14 @@ "message": "Datum odstranění" }, "deletionDateDesc": { - "message": "Send bude trvale odstraněno v určené datumu a čase.", + "message": "Send bude trvale odstraněn v určený datum a čas.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "expirationDate": { "message": "Datum expirace" }, "expirationDateDesc": { - "message": "Je-li nastaveno, přístup k tomuto Send vyprší v určeném datumu a času.", + "message": "Je-li nastaveno, přístup k tomuto Send vyprší v určené datum a čas.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "maxAccessCount": { @@ -3389,6 +3422,9 @@ "removePasswordConfirmation": { "message": "Jste si jisti, že chcete odstranit heslo?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "Zakažte tento Send, aby k němu nikdo neměl přístup.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -3429,7 +3465,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "missingSendFile": { - "message": "The file associated with this Send could not be found.", + "message": "Soubor přidružený tomuto Send nebyl nalezen.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "noSendsInList": { @@ -3443,7 +3479,7 @@ "message": "Udělit a spravovat nouzový přístup důvěryhodným kontaktům. Důvěryhodné kontakty mohou požádat o přístup k zobrazení nebo převzetí vašeho účtu v případě nouze. Navštivte naši stránku nápovědy pro více informací a podrobností o tom, jak funguje nulové sdílení znalostí." }, "emergencyAccessOwnerWarning": { - "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + "message": "Jste vlastníkem jedné nebo více organizací. Pokud dáte přístup k převzetí nouzovému kontaktu, bude moci po převzetí použít všechna vaše oprávnění jako vlastník." }, "trustedEmergencyContacts": { "message": "Důvěryhodné nouzové kontakty" @@ -3591,21 +3627,43 @@ "message": "Vzhledem k podnikovým zásadám je zakázáno ukládat položky do vašeho osobního trezoru. Změňte možnost vlastnictví na organizaci a vyberte z dostupných kolekcí." }, "disableSend": { - "message": "Disable Send" + "message": "Deaktivovat Send" }, "disableSendPolicyDesc": { - "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "message": "Nedovolit uživatelům vytvářet nebo upravovat Bitwarden Send. Smazání existujícího Send je stále povoleno.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disableSendExemption": { - "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + "message": "Uživatelé organizace, kteří mohou spravovat zásady organizace, jsou osvobozeni od vynucování těchto zásad." }, "sendDisabled": { - "message": "Send disabled", + "message": "Send deaktivován", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { - "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "message": "Kvůli zásadám podniku můžete odstranit pouze existující Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "modifiedPolicyId": { @@ -3662,6 +3720,9 @@ "manageUsers": { "message": "Spravovat uživatele" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "Před vypnutím této zásady musíte ručně zakázat jednotné přihlášení (SSO)." }, @@ -3676,20 +3737,20 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNameDesc": { - "message": "A friendly name to describe this Send.", + "message": "Přátelský název pro popis tohoto Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTextDesc": { - "message": "The text you want to send." + "message": "Text, který chcete odeslat." }, "sendFileDesc": { - "message": "The file you want to send." + "message": "Soubor, který chcete odeslat." }, "copySendLinkOnSave": { - "message": "Copy the link to share this Send to my clipboard upon save." + "message": "Zkopírovat odkaz tohoto Send do mé schránky při uložení." }, "sendLinkLabel": { - "message": "Send link", + "message": "Odkaz tohoto Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "send": { @@ -3697,50 +3758,50 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineProductDesc": { - "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "message": "Bitwarden Send odesílá citlivé, dočasné informace ostatním snadno a bezpečně.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineLearnMore": { - "message": "Learn more about", + "message": "Zjistěte více o", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" }, "sendVaultCardProductDesc": { - "message": "Share text or files directly with anyone." + "message": "Sdílejte text či soubory s kýmkoliv." }, "sendVaultCardLearnMore": { - "message": "Learn more", + "message": "Zjistěte více", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" }, "sendVaultCardSee": { - "message": "see", + "message": "podívejte", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" }, "sendVaultCardHowItWorks": { - "message": "how it works", + "message": "jak to funguje", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" }, "sendVaultCardOr": { - "message": "or", + "message": "nebo", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" }, "sendVaultCardTryItNow": { - "message": "try it now", + "message": "to vyzkoušejte teď", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" }, "sendAccessTaglineOr": { - "message": "or", + "message": "nebo", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" }, "sendAccessTaglineSignUp": { - "message": "sign up", + "message": "se zaregistrujte", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" }, "sendAccessTaglineTryToday": { - "message": "to try it today.", + "message": "abyste to vyzkoušeli již dnes.", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" }, "sendCreatorIdentifier": { - "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "message": "Uživatel Bitwarden $USER_IDENTIFIER$ s vámi sdílel následující", "placeholders": { "user_identifier": { "content": "$1", @@ -3748,19 +3809,86 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { - "message": "The expiration date provided is not valid." + "message": "Uvedené datum vypršení platnosti není platné." }, "deletionDateIsInvalid": { - "message": "The deletion date provided is not valid." + "message": "Uvedené datum odstranění není platné." }, "expirationDateAndTimeRequired": { - "message": "An expiration date and time are required." + "message": "Je vyžadováno datum a čas vypršení platnosti." }, "deletionDateAndTimeRequired": { - "message": "A deletion date and time are required." + "message": "Je vyžadováno datum a čas odstranění." }, "dateParsingError": { - "message": "There was an error saving your deletion and expiration dates." + "message": "Došlo k chybě při ukládání dat odstranění a vypršení platnosti." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/da/messages.json b/locales/da/messages.json index 46452ef3..c4736cbb 100644 --- a/locales/da/messages.json +++ b/locales/da/messages.json @@ -725,6 +725,15 @@ "u2fTitle": { "message": "FIDO U2F sikkerhedsnøgle" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "E-mail" }, @@ -800,10 +809,10 @@ "message": "Denne eksport indeholder dine boksdata i ukrypteret form. Du bør ikke gemme eller sende den eksporterede fil over usikre kanaler (f.eks. e-mail). Slet den straks efter at du er færdig med at bruge den." }, "encExportKeyWarningDesc": { - "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + "message": "Denne eksport krypterer dine data vha. din kontos krypteringsnøgle. Roterer du på et tidspunkt denne kontokrypteringsnøgle, skal du eksportere igen, da du ikke vil kunne dekryptere denne eksportfil." }, "encExportAccountWarningDesc": { - "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + "message": "Kontokrypteringsnøgler er unikke for hver Bitwarden-brugerkonto, så du kan ikke importere en krypteret eksport til en anden konto." }, "exportMasterPassword": { "message": "Indtast din hovedadgangskode for at eksportere dine data fra boksen." @@ -1004,16 +1013,16 @@ "message": "Importér data" }, "importError": { - "message": "Import Error" + "message": "Importfejl" }, "importErrorDesc": { - "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + "message": "Der var et problem med de data, du forsøgte at importere. Ret nedenstående fejl i din kildefil, og prøv igen." }, "importSuccess": { "message": "Data er blevet importeret til din boks med success." }, "importWarning": { - "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "message": "Du importerer data til $ORGANIZATION$. Dine data kan blive delt med medlemmer af denne organisation. Vil du fortsætte?", "placeholders": { "organization": { "content": "$1", @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "NFC understøttelse" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "Er du sikker på, at du vil fjerne denne sikkerhedsnøgle?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Læs nøgle" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "Der opstod et problem med at læse sikkerhedsnøglen. Prøv igen." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Din Bitwarden to-trins-login gendannelseskode" }, @@ -1382,7 +1409,7 @@ "message": "Logins uden 2FA fundet" }, "inactive2faFoundDesc": { - "message": "Vi har fundet $COUNT$ hjemmeside(r) i din boks, der muligvis ikke er konfigureret med to-faktor autentificering (ifølge twofactorauth.org). For at beskytte disse konti yderligere bør du aktivere to-faktor autentificering.", + "message": "Vi fandt $COUNT$ websted(er) i din boks, der muligvis ikke er konfigureret med to-faktor autentificering (ifølge 2fa.directory). For yderligere at beskytte disse konti bør du aktivere to-faktor autentificering.", "placeholders": { "count": { "content": "$1", @@ -1584,7 +1611,7 @@ "message": "Yderligere to-trins-loginmuligheder såsom YubiKey, FIDO U2F og Duo." }, "premiumSignUpEmergency": { - "message": "Emergency Access" + "message": "Nødadgang" }, "premiumSignUpReports": { "message": "Adgangskodehygiejne, kontosundhed og rapporter om datalæk til at holde din boks sikker." @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "Kan ikke bekræfte din e-mail. Prøv at sende en ny verifikations-email." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Opdatér browser" }, @@ -3389,6 +3422,9 @@ "removePasswordConfirmation": { "message": "Er du sikker på, at du vil fjerne adgangskoden?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "Deaktivér denne Send så ingen kan tilgå den.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -3429,7 +3465,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "missingSendFile": { - "message": "The file associated with this Send could not be found.", + "message": "Filen, der er knyttet til denne Send, blev ikke fundet.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "noSendsInList": { @@ -3440,10 +3476,10 @@ "message": "Nødadgang" }, "emergencyAccessDesc": { - "message": "Tildel og håndter nødadgang for betroede kontakter. Betroede kontakter kan anmode om adgang til enten at vise eller overtage din konto i nødstilfælde. Besøg vores hjælpeside for yderligere oplysninger om, hvordan nul-vidensdeling fungerer." + "message": "Tildel og håndtér nødadgang for betroede kontakter. Betroede kontakter kan anmode om adgang til enten at se eller overtage din konto i nødstilfælde. Besøg vores hjælpeside for mere information og detaljer om, hvordan nul-videndeling fungerer." }, "emergencyAccessOwnerWarning": { - "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + "message": "Du er ejer af en eller flere organisationer. Hvis du tildeler overtagelsesadgang til en nødkontakt, kan de bruge alle dine tilladelser som ejer efter en overtagelse." }, "trustedEmergencyContacts": { "message": "Betroede nødkontakter" @@ -3588,24 +3624,46 @@ "message": "Organisationsejere og administratorer er undtaget fra denne politik." }, "personalOwnershipSubmitError": { - "message": "En virksomhedspolitik forhindrer dig i at gemme emner i din personlige boks. Skift indstillingen Ejerskab til en organisation, og vælg fra de tilgængelige samlinger." + "message": "Grundet en virksomhedspolitik kan du ikke gemme emner i din personlige boks. Skift ejerskabsindstillingen til en organisation, og vælg fra de tilgængelige samlinger." }, "disableSend": { - "message": "Disable Send" + "message": "Deaktivér Send" }, "disableSendPolicyDesc": { - "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "message": "Tillad ikke brugere at oprette eller redigere en Bitwarden Send. Sletning af en eksisterende Send er stadig tilladt.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disableSendExemption": { - "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + "message": "Organisationsbrugere, der kan håndtere organisationens politikker, er undtaget fra denne politiks håndhævelse." }, "sendDisabled": { - "message": "Send disabled", + "message": "Send deaktiveret", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { - "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "message": "Du kan grundet en virksomhedspolitik kun slette en eksisterende Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "modifiedPolicyId": { @@ -3662,6 +3720,9 @@ "manageUsers": { "message": "Håndtér brugere" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "Single Sign-On godkendelsespolitikken skal manuelt deaktiveres, før denne politik kan deaktiveres." }, @@ -3676,17 +3737,17 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNameDesc": { - "message": "A friendly name to describe this Send.", + "message": "Et venligt navn til at beskrive denne Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTextDesc": { - "message": "The text you want to send." + "message": "Den tekst, du vil sende." }, "sendFileDesc": { - "message": "The file you want to send." + "message": "Den fil, du vil sende." }, "copySendLinkOnSave": { - "message": "Copy the link to share this Send to my clipboard upon save." + "message": "Kopier linket for at dele denne Send til min udklipsholder ved gem." }, "sendLinkLabel": { "message": "Send link", @@ -3697,50 +3758,50 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineProductDesc": { - "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "message": "Bitwarden Send overfører nemt og sikkert følsomme, midlertidige oplysninger til andre.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineLearnMore": { - "message": "Learn more about", + "message": "Få mere at vide om", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" }, "sendVaultCardProductDesc": { - "message": "Share text or files directly with anyone." + "message": "Del tekst eller filer direkte med nogen." }, "sendVaultCardLearnMore": { - "message": "Learn more", + "message": "Få mere at vide", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" }, "sendVaultCardSee": { - "message": "see", + "message": "se", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" }, "sendVaultCardHowItWorks": { - "message": "how it works", + "message": "hvordan det fungerer", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" }, "sendVaultCardOr": { - "message": "or", + "message": "eller", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" }, "sendVaultCardTryItNow": { - "message": "try it now", + "message": "prøv det nu", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" }, "sendAccessTaglineOr": { - "message": "or", + "message": "eller", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" }, "sendAccessTaglineSignUp": { - "message": "sign up", + "message": "tilmeld dig", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" }, "sendAccessTaglineTryToday": { - "message": "to try it today.", + "message": "for at prøve det i dag.", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" }, "sendCreatorIdentifier": { - "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "message": "Bitwarden bruger $USER_IDENTIFIER$ delte følgende med dig", "placeholders": { "user_identifier": { "content": "$1", @@ -3748,19 +3809,86 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { - "message": "The expiration date provided is not valid." + "message": "Den angivne udløbsdato er ugyldig." }, "deletionDateIsInvalid": { - "message": "The deletion date provided is not valid." + "message": "Den angivne sletningsdato er ugyldig." }, "expirationDateAndTimeRequired": { - "message": "An expiration date and time are required." + "message": "Der kræves en udløbsdato og -tid." }, "deletionDateAndTimeRequired": { - "message": "A deletion date and time are required." + "message": "En sletningsdato og -tid er påkrævet." }, "dateParsingError": { - "message": "There was an error saving your deletion and expiration dates." + "message": "Der opstod en fejl under forsøget på at gemme dine sletnings- og udløbsdatoer." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/de/messages.json b/locales/de/messages.json index 7aa7b831..b546582c 100644 --- a/locales/de/messages.json +++ b/locales/de/messages.json @@ -467,10 +467,10 @@ "message": "Soll dieser Eintrag wirklich gelöscht werden?" }, "deletedItem": { - "message": "Eintrag in Papierkorb verschoben" + "message": "Element gelöscht" }, "deletedItems": { - "message": "In Papierkorb verschobene Einträge" + "message": "Elemente gelöscht" }, "movedItems": { "message": "Verschobene Einträge" @@ -725,6 +725,15 @@ "u2fTitle": { "message": "FIDO U2F Sicherheitsschlüssel" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "E-Mail" }, @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "NFC-Unterstützung" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "Sind Sie sich sicher, dass Sie diesen Sicherheitsschlüssel entfernen möchten?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Schlüssel erfassen" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "Es gab ein Problem beim lesen des Sicherheitsschlüssels, bitte erneut versuchen." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Ihr Wiederherstellungsschlüssel für die Zwei-Faktor-Anmeldung in Bitwarden" }, @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "Ihre E-Mail kann nicht verifiziert werden. Versuchen Sie eine neue Bestätigungs-E-Mail zu senden." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Browser aktualisieren" }, @@ -3318,11 +3351,11 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "editedSend": { - "message": "Bearbeitetes Send", + "message": "Send bearbeitet", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deletedSend": { - "message": "Gelöschtes Send", + "message": "Send gelöscht", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deleteSend": { @@ -3389,6 +3422,9 @@ "removePasswordConfirmation": { "message": "Sind Sie sicher, dass Sie das Passwort entfernen möchten?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "Dieses Send deaktivieren, damit niemand darauf zugreifen kann.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -3443,7 +3479,7 @@ "message": "Gewähren und verwalten Sie einen Notfallzugriff für vertrauenswürdige Kontakte. Vertrauenswürdige Kontakte können im Notfall Zugriff verlangen, um Ihr Konto entweder einzusehen oder es zu übernehmen. Besuchen Sie unsere Hilfeseite für weitere Informationen und Details, wie der Austausch über Zero-Knowledge funktioniert." }, "emergencyAccessOwnerWarning": { - "message": "Sie sind Eigentümer einer oder mehrerer Organisationen. Wenn Sie dem Übernahmezugang zu einem Notfallkontakt gewähren, können diese nach einer Übernahme alle Ihre Berechtigungen als Eigentümer nutzen." + "message": "Sie sind Eigentümer einer oder mehrerer Organisationen. Wenn Sie einem Notfallkontakt Übernahmezugang gewähren, kann dieser nach einer Übernahme alle Ihre Berechtigungen als Eigentümer nutzen." }, "trustedEmergencyContacts": { "message": "Vertrauenswürdige Notfallkontakte" @@ -3598,14 +3634,36 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disableSendExemption": { - "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + "message": "Benutzer der Organisation, die die Richtlinien der Organisation verwalten können, sind von der Durchsetzung dieser Richtlinie ausgenommen." }, "sendDisabled": { - "message": "Send disabled", + "message": "Send deaktiviert", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { - "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "message": "Aufgrund einer Unternehmensrichtlinie können Sie nur ein bestehendes Send löschen.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "modifiedPolicyId": { @@ -3662,6 +3720,9 @@ "manageUsers": { "message": "Benutzer verwalten" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "Sie müssen die Single Sign-On Authentifizierungsrichtlinie manuell deaktivieren, bevor diese Richtlinie deaktiviert werden kann." }, @@ -3676,20 +3737,20 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNameDesc": { - "message": "A friendly name to describe this Send.", + "message": "Ein eigener Name, um dieses Send zu beschreiben.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTextDesc": { - "message": "The text you want to send." + "message": "Der Text, den Sie senden möchten." }, "sendFileDesc": { - "message": "The file you want to send." + "message": "Die Datei, die Sie senden möchten." }, "copySendLinkOnSave": { - "message": "Copy the link to share this Send to my clipboard upon save." + "message": "Den Link zum Teilen dieses Sends beim Speichern in meine Zwischenablage kopieren." }, "sendLinkLabel": { - "message": "Send link", + "message": "Send-Link", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "send": { @@ -3697,50 +3758,50 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineProductDesc": { - "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "message": "Bitwarden Send überträgt einfach und sicher sensible, temporäre Informationen an andere.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineLearnMore": { - "message": "Learn more about", + "message": "Mehr erfahren über", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" }, "sendVaultCardProductDesc": { - "message": "Share text or files directly with anyone." + "message": "Teile Text oder Dateien direkt mit jedermann." }, "sendVaultCardLearnMore": { - "message": "Learn more", + "message": "Mehr erfahren", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" }, "sendVaultCardSee": { - "message": "see", + "message": "sehen", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" }, "sendVaultCardHowItWorks": { - "message": "how it works", + "message": "wie es funktioniert", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" }, "sendVaultCardOr": { - "message": "or", + "message": "oder", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" }, "sendVaultCardTryItNow": { - "message": "try it now", + "message": "probieren Sie es aus", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" }, "sendAccessTaglineOr": { - "message": "or", + "message": "oder", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" }, "sendAccessTaglineSignUp": { - "message": "sign up", + "message": "registrieren Sie sich", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" }, "sendAccessTaglineTryToday": { - "message": "to try it today.", + "message": "um es heute auszuprobieren.", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" }, "sendCreatorIdentifier": { - "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "message": "Bitwarden Benutzer $USER_IDENTIFIER$ hat Folgendes mit Ihnen geteilt", "placeholders": { "user_identifier": { "content": "$1", @@ -3748,19 +3809,86 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { - "message": "The expiration date provided is not valid." + "message": "Das angegebene Verfallsdatum ist nicht gültig." }, "deletionDateIsInvalid": { - "message": "The deletion date provided is not valid." + "message": "Das angegebene Löschdatum ist nicht gültig." }, "expirationDateAndTimeRequired": { - "message": "An expiration date and time are required." + "message": "Ein Verfallsdatum und eine Zeit sind erforderlich." }, "deletionDateAndTimeRequired": { - "message": "A deletion date and time are required." + "message": "Ein Löschdatum und eine Zeit sind erforderlich." }, "dateParsingError": { - "message": "There was an error saving your deletion and expiration dates." + "message": "Es gab einen Fehler beim Speichern Ihrer Lösch- und Verfallsdaten." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/el/messages.json b/locales/el/messages.json index 96777537..8d059e18 100644 --- a/locales/el/messages.json +++ b/locales/el/messages.json @@ -725,6 +725,15 @@ "u2fTitle": { "message": "Κλειδί Aσφαλείας FIDO U2F" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "Email" }, @@ -800,10 +809,10 @@ "message": "Αυτή η εξαγωγή περιέχει τα δεδομένα σε μη κρυπτογραφημένη μορφή. Δεν πρέπει να αποθηκεύετε ή να στείλετε το εξαγόμενο αρχείο μέσω μη ασφαλών τρόπων (όπως μέσω email). Διαγράψτε το αμέσως μόλις τελειώσετε με τη χρήση του." }, "encExportKeyWarningDesc": { - "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + "message": "Αυτή η εξαγωγή κρυπτογραφεί τα δεδομένα σας χρησιμοποιώντας το κλειδί κρυπτογράφησης του λογαριασμού σας. Εάν ποτέ περιστρέψετε το κλειδί κρυπτογράφησης του λογαριασμού σας, θα πρέπει να κάνετε εξαγωγή ξανά, καθώς δεν θα μπορείτε να αποκρυπτογραφήσετε αυτό το αρχείο εξαγωγής." }, "encExportAccountWarningDesc": { - "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + "message": "Τα κλειδιά κρυπτογράφησης λογαριασμού είναι μοναδικά για κάθε λογαριασμό χρήστη Bitwarden, οπότε δεν μπορείτε να εισάγετε μια κρυπτογραφημένη εξαγωγή σε διαφορετικό λογαριασμό." }, "exportMasterPassword": { "message": "Πληκτρολογήστε τον κύριο κωδικό για εξαγωγή των δεδομένων vault." @@ -1004,16 +1013,16 @@ "message": "Εισαγωγή Δεδομένων" }, "importError": { - "message": "Import Error" + "message": "Σφάλμα Εισαγωγής" }, "importErrorDesc": { - "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + "message": "Παρουσιάστηκε πρόβλημα με τα δεδομένα που επιχειρήσατε να εισαγάγετε. Παρακαλώ επιλύστε τα σφάλματα που αναφέρονται παρακάτω στο αρχείο προέλευσης και προσπαθήστε ξανά." }, "importSuccess": { "message": "Τα δεδομένα έχουν εισαχθεί με επιτυχία στο vault σας." }, "importWarning": { - "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "message": "Εισάγετε δεδομένα στο $ORGANIZATION$. Τα δεδομένα σας μπορεί να μοιραστούν με μέλη αυτού του οργανισμού. Θέλετε να προχωρήσετε;", "placeholders": { "organization": { "content": "$1", @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "Υποστήριξη NFC" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "Είστε βέβαιοι ότι θέλετε να καταργήσετε αυτό το κλειδί ασφαλείας;" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Ανάγνωση Κλειδιού" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "Παρουσιάστηκε πρόβλημα κατά την ανάγνωση του κλειδιού ασφαλείας. Προσπάθησε ξανά." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Ο Bitwarden κωδικός ανάκτησης, εισόδου δύο βημάτων" }, @@ -1584,7 +1611,7 @@ "message": "Πρόσθετες επιλογές σύνδεσης δύο παραγόντων, όπως το YubiKey, το FIDO U2F και το Duo." }, "premiumSignUpEmergency": { - "message": "Emergency Access" + "message": "Πρόσβαση Έκτακτης Ανάγκης" }, "premiumSignUpReports": { "message": "Ασφάλεια κωδικών, υγεία λογαριασμού και αναφορές διαρροής δεδομένων, προκειμένου να διατηρήσετε ασφαλές το vault σας." @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "Δεν είναι δυνατή η επαλήθευση του email σας. Δοκιμάστε να στείλετε νέο email επαλήθευσης." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Ενημερώστε τον Browser" }, @@ -3389,6 +3422,9 @@ "removePasswordConfirmation": { "message": "Είστε βέβαιοι ότι θέλετε να καταργήσετε τον κωδικό πρόσβασης;" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "Απενεργοποιήστε αυτό το Send έτσι ώστε κανείς να μην μπορεί να έχει πρόσβαση σε αυτό.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -3429,7 +3465,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "missingSendFile": { - "message": "The file associated with this Send could not be found.", + "message": "Το αρχείο που σχετίζεται με αυτό το Send δεν βρέθηκε.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "noSendsInList": { @@ -3443,7 +3479,7 @@ "message": "Εκχώρηση και διαχείριση πρόσβασης έκτακτης ανάγκης για αξιόπιστες επαφές. Οι επαφές εμπίστευσης μπορούν να ζητήσουν πρόσβαση είτε στην Προβολή είτε στην ανάληψη του λογαριασμού σας σε περίπτωση έκτακτης ανάγκης. Επισκεφθείτε τη σελίδα βοήθειας μας για περισσότερες πληροφορίες και λεπτομέρειες σχετικά με το πώς λειτουργεί o μηδενικός διαμοιρασμός πληροφοριών." }, "emergencyAccessOwnerWarning": { - "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + "message": "Είστε ιδιοκτήτης ενός ή περισσότερων οργανισμών. Αν δώσετε πρόσβαση σε μια επαφή έκτακτης ανάγκης, θα είναι σε θέση να χρησιμοποιήσουν όλα τα δικαιώματά σας ως Ιδιοκτήτη μετά από μια εξαγορά." }, "trustedEmergencyContacts": { "message": "Έμπιστες επαφές έκτακτης ανάγκης" @@ -3591,21 +3627,43 @@ "message": "Λόγω μιας Πολιτικής Επιχειρήσεων, δεν επιτρέπεται η αποθήκευση στοιχείων στο προσωπικό σας vault. Αλλάξτε την επιλογή Ιδιοκτησίας σε έναν οργανισμό και επιλέξτε από τις διαθέσιμες Συλλογές." }, "disableSend": { - "message": "Disable Send" + "message": "Απενεργοποίηση Αποστολής" }, "disableSendPolicyDesc": { - "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "message": "Μην επιτρέπετε στους χρήστες να δημιουργήσουν ή να επεξεργαστούν μια Αποστολή Bitwarden. Η διαγραφή μιας υπάρχουσας Αποστολής εξακολουθεί να επιτρέπεται.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disableSendExemption": { - "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + "message": "Οι χρήστες του οργανισμού που μπορούν να διαχειριστούν τις πολιτικές του οργανισμού εξαιρούνται από την εφαρμογή αυτής της πολιτικής." }, "sendDisabled": { - "message": "Send disabled", + "message": "Send Απενεργοποιημένο", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { - "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "message": "Λόγω μιας επιχειρηματικής πολιτικής, είστε σε θέση να διαγράψετε μόνο ένα υπάρχον Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "modifiedPolicyId": { @@ -3662,6 +3720,9 @@ "manageUsers": { "message": "Διαχείριση Χρηστών" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "Πρέπει να απενεργοποιήσετε χειροκίνητα την πολιτική ελέγχου ταυτότητας μιας σύνδεσης πριν αυτή η πολιτική μπορεί να απενεργοποιηθεί." }, @@ -3676,20 +3737,20 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNameDesc": { - "message": "A friendly name to describe this Send.", + "message": "Ένα φιλικό όνομα για την περιγραφή αυτού του Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTextDesc": { - "message": "The text you want to send." + "message": "Το κείμενο που θέλετε να στείλετε." }, "sendFileDesc": { - "message": "The file you want to send." + "message": "Το αρχείο που θέλετε να στείλετε." }, "copySendLinkOnSave": { - "message": "Copy the link to share this Send to my clipboard upon save." + "message": "Αντιγράψτε το σύνδεσμο, για να μοιραστείτε αυτό το Send στο πρόχειρο μου, κατά την αποθήκευση." }, "sendLinkLabel": { - "message": "Send link", + "message": "Σύνδεσμος Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "send": { @@ -3697,50 +3758,50 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineProductDesc": { - "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "message": "Το Bitwarden Send μεταδίδει ευαίσθητες, προσωρινές πληροφορίες σε άλλους, εύκολα και με ασφάλεια.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineLearnMore": { - "message": "Learn more about", + "message": "Περισσότερες πληροφορίες για", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" }, "sendVaultCardProductDesc": { - "message": "Share text or files directly with anyone." + "message": "Κοινή χρήση κειμένου ή αρχείων απευθείας με οποιονδήποτε." }, "sendVaultCardLearnMore": { - "message": "Learn more", + "message": "Μάθετε περισσότερα", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" }, "sendVaultCardSee": { - "message": "see", + "message": "δείτε", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" }, "sendVaultCardHowItWorks": { - "message": "how it works", + "message": "πώς λειτουργεί", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" }, "sendVaultCardOr": { - "message": "or", + "message": "ή", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" }, "sendVaultCardTryItNow": { - "message": "try it now", + "message": "δοκιμάστε το τώρα", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" }, "sendAccessTaglineOr": { - "message": "or", + "message": "ή", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" }, "sendAccessTaglineSignUp": { - "message": "sign up", + "message": "εγγραφείτε", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" }, "sendAccessTaglineTryToday": { - "message": "to try it today.", + "message": "για να το δοκιμάσετε σήμερα.", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" }, "sendCreatorIdentifier": { - "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "message": "Ο χρήστης Bitwarden $USER_IDENTIFIER$ κοινοποίησε τα ακόλουθα μαζί σας", "placeholders": { "user_identifier": { "content": "$1", @@ -3748,19 +3809,86 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { - "message": "The expiration date provided is not valid." + "message": "Η ημερομηνία λήξης που δόθηκε δεν είναι έγκυρη." }, "deletionDateIsInvalid": { - "message": "The deletion date provided is not valid." + "message": "Η ημερομηνία διαγραφής που δόθηκε δεν είναι έγκυρη." }, "expirationDateAndTimeRequired": { - "message": "An expiration date and time are required." + "message": "Απαιτείται ημερομηνία και ώρα λήξης." }, "deletionDateAndTimeRequired": { - "message": "A deletion date and time are required." + "message": "Απαιτείται ημερομηνία και ώρα διαγραφής." }, "dateParsingError": { - "message": "There was an error saving your deletion and expiration dates." + "message": "Παρουσιάστηκε σφάλμα κατά την αποθήκευση των ημερομηνιών διαγραφής και λήξης." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/en/messages.json b/locales/en/messages.json index 7f88d2b8..064aee50 100644 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -437,7 +437,7 @@ "message": "Select a file." }, "maxFileSize": { - "message": "Maximum file size is 100 MB." + "message": "Maximum file size is 500 MB." }, "updateKey": { "message": "You cannot use this feature until you update your encryption key." @@ -725,6 +725,15 @@ "u2fTitle": { "message": "FIDO U2F Security Key" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "Email" }, @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "NFC Support" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "Are you sure you want to remove this security key?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Read Key" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "There was a problem reading the security key. Try again." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Your Bitwarden two-step login recovery code" }, @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "Unable to verify your email. Try sending a new verification email." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Update Browser" }, @@ -3389,6 +3422,9 @@ "removePasswordConfirmation": { "message": "Are you sure you want to remove the password?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "Disable this Send so that no one can access it.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -3608,6 +3644,28 @@ "message": "Due to an enterprise policy, you are only able to delete an existing Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "modifiedPolicyId": { "message": "Modified policy $ID$.", "placeholders": { @@ -3662,6 +3720,9 @@ "manageUsers": { "message": "Manage Users" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "You must manually disable the Single Sign-On Authentication policy before this policy can be disabled." }, @@ -3748,6 +3809,10 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { "message": "The expiration date provided is not valid." }, @@ -3762,5 +3827,59 @@ }, "dateParsingError": { "message": "There was an error saving your deletion and expiration dates." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." } } diff --git a/locales/en_GB/messages.json b/locales/en_GB/messages.json index fa0dc16e..b43a7003 100644 --- a/locales/en_GB/messages.json +++ b/locales/en_GB/messages.json @@ -725,6 +725,15 @@ "u2fTitle": { "message": "FIDO U2F security key" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "Email" }, @@ -1013,7 +1022,7 @@ "message": "Data has been successfully imported into your vault." }, "importWarning": { - "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organisation. Do you want to proceed?", "placeholders": { "organization": { "content": "$1", @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "NFC support" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "Are you sure you want to remove this security key?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Read key" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "There was a problem reading the security key. Try again." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Your Bitwarden two-step login recovery code" }, @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "Unable to verify your email. Try sending a new verification email." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Update browser" }, @@ -3389,6 +3422,9 @@ "removePasswordConfirmation": { "message": "Are you sure you want to remove the password?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "Disable this Send so that no one can access it.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -3443,7 +3479,7 @@ "message": "Grant and manage emergency access for trusted contacts. Trusted contacts may request access to either View or Takeover your account in case of a emergency. Visit our help page for more information and details into how zero knowledge sharing works." }, "emergencyAccessOwnerWarning": { - "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + "message": "You are an Owner of one or more organisations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." }, "trustedEmergencyContacts": { "message": "Trusted emergency contacts" @@ -3598,7 +3634,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disableSendExemption": { - "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + "message": "Organisation users that can manage the organisation's policies are exempt from this policy's enforcement." }, "sendDisabled": { "message": "Send disabled", @@ -3608,6 +3644,28 @@ "message": "Due to an enterprise policy, you are only able to delete an existing Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "modifiedPolicyId": { "message": "Modified policy $ID$.", "placeholders": { @@ -3662,6 +3720,9 @@ "manageUsers": { "message": "Manage Users" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "You must manually disable the Single Sign-On Authentication policy before this policy can be disabled." }, @@ -3748,6 +3809,10 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { "message": "The expiration date provided is not valid." }, @@ -3762,5 +3827,68 @@ }, "dateParsingError": { "message": "There was an error saving your deletion and expiration dates." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/en_IN/messages.json b/locales/en_IN/messages.json index ed3dd46b..16b94b75 100644 --- a/locales/en_IN/messages.json +++ b/locales/en_IN/messages.json @@ -725,6 +725,15 @@ "u2fTitle": { "message": "FIDO U2F security key" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "Email" }, @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "NFC support" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "Are you sure you want to remove this security key?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Read key" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "There was a problem reading the security key. Try again." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Your Bitwarden two-step login recovery code" }, @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "Unable to verify your email. Try sending a new verification email." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Update browser" }, @@ -3389,6 +3422,9 @@ "removePasswordConfirmation": { "message": "Are you sure you want to remove the password?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "Disable this Send so that no one can access it.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -3608,6 +3644,28 @@ "message": "Due to an enterprise policy, you are only able to delete an existing Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "modifiedPolicyId": { "message": "Modified policy $ID$.", "placeholders": { @@ -3662,6 +3720,9 @@ "manageUsers": { "message": "Manage Users" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "You must manually disable the Single Sign-On Authentication policy before this policy can be disabled." }, @@ -3748,6 +3809,10 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { "message": "The expiration date provided is not valid." }, @@ -3762,5 +3827,68 @@ }, "dateParsingError": { "message": "There was an error saving your deletion and expiration dates." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/eo/messages.json b/locales/eo/messages.json index bbe3e5e9..2e422a3c 100644 --- a/locales/eo/messages.json +++ b/locales/eo/messages.json @@ -10,7 +10,7 @@ } }, "whatTypeOfItem": { - "message": "Kiu tipo de ero estas ĉi tio?" + "message": "Kia speco de ero estas ĉi tio?" }, "name": { "message": "Nomo" @@ -38,34 +38,34 @@ "message": "Pasvorto" }, "newPassword": { - "message": "New Password" + "message": "Nova pasvorto" }, "passphrase": { - "message": "Sekreta frazo" + "message": "Pasfrazo" }, "notes": { "message": "Notoj" }, "customFields": { - "message": "Kutimo Kampoj" + "message": "Propraj Kampoj" }, "cardholderName": { - "message": "Nomposedanto de Karto" + "message": "Nomo de Kartposedanto" }, "number": { "message": "Numero" }, "brand": { - "message": "Varomarko" + "message": "Marko" }, "expiration": { - "message": "Eksvalidiĝo" + "message": "Finiĝo" }, "securityCode": { - "message": "Sekuriga kodo (CVV)" + "message": "Sekureca Kodo (CVV)" }, "identityName": { - "message": "Identeco" + "message": "Identeca Nomo" }, "company": { "message": "Kompanio" @@ -74,10 +74,10 @@ "message": "Socia Sekureca Numero" }, "passportNumber": { - "message": "Pasporta Nombro" + "message": "Pasporta Numero" }, "licenseNumber": { - "message": "License Number" + "message": "Permesila Numero" }, "email": { "message": "Retpoŝto" @@ -125,7 +125,7 @@ "message": "Titolo" }, "mr": { - "message": "Sinjoro" + "message": "S-ro" }, "mrs": { "message": "Sinjorino" @@ -137,13 +137,13 @@ "message": "Dr" }, "expirationMonth": { - "message": "Expiration Month" + "message": "Finiĝa Monato" }, "expirationYear": { - "message": "Expiration Year" + "message": "Finiĝa Jaro" }, "authenticatorKeyTotp": { - "message": "Authenticator Key (TOTP)" + "message": "Aŭtentiga Ŝlosilo (TOTP)" }, "folder": { "message": "Dosierujo" @@ -170,10 +170,10 @@ "message": "Forigi" }, "unassigned": { - "message": "Ne asignita" + "message": "Neasignita" }, "noneFolder": { - "message": "Neniu Dosierujo", + "message": "Neniu dosierujo", "description": "This is the folder for uncategorized items" }, "addFolder": { @@ -183,48 +183,48 @@ "message": "Redakti dosierujon" }, "baseDomain": { - "message": "Base domain" + "message": "Baza domajno" }, "host": { "message": "Gastiganto", "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." }, "exact": { - "message": "Ekzakta" + "message": "Ĝusta" }, "startsWith": { - "message": "Starts with" + "message": "Komencas per" }, "regEx": { - "message": "Regular expression", + "message": "Regula esprimo", "description": "A programming term, also known as 'RegEx'." }, "matchDetection": { - "message": "Match Detection", + "message": "Match Match", "description": "URI match detection for auto-fill." }, "defaultMatchDetection": { - "message": "Default match detection", + "message": "Defaŭlta kongrua detekto", "description": "Default URI match detection for auto-fill." }, "never": { "message": "Neniam" }, "toggleVisibility": { - "message": "Toggle Visibility" + "message": "Baskuli videblecon" }, "toggleCollapse": { - "message": "Toggle Collapse", + "message": "Baskuli Fali", "description": "Toggling an expand/collapse state." }, "generatePassword": { "message": "Generi Pasvorton" }, "checkPassword": { - "message": "Check if password has been exposed." + "message": "Kontrolu ĉu pasvorto estis elmontrita." }, "passwordExposed": { - "message": "This password has been exposed $VALUE$ time(s) in data breaches. You should change it.", + "message": "Ĉi tiu pasvorto estis elmontrita $VALUE$ tempo (j) en datumaj rompoj. Vi devas ŝanĝi ĝin.", "placeholders": { "value": { "content": "$1", @@ -233,56 +233,56 @@ } }, "passwordSafe": { - "message": "This password was not found in any known data breaches. It should be safe to use." + "message": "Ĉi tiu pasvorto ne troviĝis en iuj konataj rompo de datumoj. Ĝi estu sekure uzebla." }, "save": { - "message": "Savi" + "message": "Konservi" }, "cancel": { "message": "Nuligi" }, "canceled": { - "message": "Canceled" + "message": "Nuligita" }, "close": { - "message": "Close" + "message": "Fermi" }, "delete": { - "message": "Delete" + "message": "Forigi" }, "favorite": { - "message": "Favorite" + "message": "Plej ŝatata" }, "unfavorite": { - "message": "Unfavorite" + "message": "Malfavoras" }, "edit": { - "message": "Edit" + "message": "Redakti" }, "searchCollection": { - "message": "Search Collection" + "message": "Serĉi Kolekton" }, "searchFolder": { - "message": "Search Folder" + "message": "Serĉi dosierujon" }, "searchFavorites": { - "message": "Search Favorites" + "message": "Serĉi Favoratojn" }, "searchType": { - "message": "Search Type", + "message": "Serĉspeco", "description": "Search item type" }, "searchVault": { - "message": "Search Vault" + "message": "Serĉi Volbon" }, "allItems": { - "message": "All Items" + "message": "Ĉiuj Eroj" }, "favorites": { - "message": "Preferataj" + "message": "Ŝatataj" }, "types": { - "message": "Tipo" + "message": "Tipoj" }, "typeLogin": { "message": "Ensaluti" @@ -291,25 +291,25 @@ "message": "Karto" }, "typeIdentity": { - "message": "Idento" + "message": "Identeco" }, "typeSecureNote": { - "message": "Secure Note" + "message": "Sekura Noto" }, "folders": { "message": "Dosierujoj" }, "collections": { - "message": "Collections" + "message": "Kolektoj" }, "firstName": { - "message": "Familinomo" + "message": "Antaŭnomo" }, "middleName": { - "message": "Meza Nomo" + "message": "Meza nomo" }, "lastName": { - "message": "Familia nomo" + "message": "Lasta nomo" }, "address1": { "message": "Adreso 1" @@ -321,19 +321,19 @@ "message": "Adreso 3" }, "cityTown": { - "message": "Urbo / Vilaĝo" + "message": "Urbo / Urbo" }, "stateProvince": { "message": "Ŝtato / Provinco" }, "zipPostalCode": { - "message": "Poŝto" + "message": "Poŝtkodo / Poŝtkodo" }, "country": { "message": "Lando" }, "shared": { - "message": "Dividita" + "message": "Kunhavigita" }, "attachments": { "message": "Aldonaĵoj" @@ -342,26 +342,26 @@ "message": "Elektu" }, "addItem": { - "message": "Aldoni eron" + "message": "Aldoni Artikolon" }, "editItem": { - "message": "Edit Item" + "message": "Redakti Artikolon" }, "viewItem": { - "message": "View Item" + "message": "Vidigi Artikolon" }, "ex": { - "message": "ekx.", + "message": "ekz.", "description": "Short abbreviation for 'example'." }, "other": { - "message": "Alia" + "message": "Aliaj" }, "share": { "message": "Kunhavigi" }, "valueCopied": { - "message": "$VALUE$ copied", + "message": "$VALUE$ kopiita", "description": "Value has been copied to the clipboard.", "placeholders": { "value": { @@ -371,136 +371,136 @@ } }, "copyValue": { - "message": "Copy Value", + "message": "Kopii valoron", "description": "Copy value to clipboard" }, "copyPassword": { - "message": "Copy Password", + "message": "Kopii pasvorton", "description": "Copy password to clipboard" }, "copyUsername": { - "message": "Copy Username", + "message": "Kopii uzantnomon", "description": "Copy username to clipboard" }, "copyNumber": { - "message": "Kopii Nombron", + "message": "Kopii Numeron", "description": "Copy credit card number" }, "copySecurityCode": { - "message": "Copy Security Code", + "message": "Kopiu Sekureckodon", "description": "Copy credit card security code (CVV)" }, "copyUri": { - "message": "Copy URI", + "message": "Kopii URI", "description": "Copy URI to clipboard" }, "myVault": { - "message": "My Vault" + "message": "Mia Volbo" }, "vault": { "message": "Volbo" }, "shareSelected": { - "message": "Share Selected" + "message": "Kunhavigi elektitajn" }, "deleteSelected": { - "message": "Delete Selected" + "message": "Forigi Elektitajn" }, "moveSelected": { - "message": "Move Selected" + "message": "Movi Elektitan" }, "selectAll": { "message": "Elekti ĉiujn" }, "unselectAll": { - "message": "Malelekti ĉion" + "message": "Malelekti ĉiujn" }, "launch": { - "message": "Lanĉu" + "message": "Lanĉo" }, "newAttachment": { - "message": "Add New Attachment" + "message": "Aldoni Novan Aldonaĵon" }, "deletedAttachment": { - "message": "Deleted attachment" + "message": "Forigita aldonaĵo" }, "deleteAttachmentConfirmation": { - "message": "Are you sure you want to delete this attachment?" + "message": "Ĉu vi certe volas forigi ĉi tiun aldonaĵon?" }, "attachmentSaved": { - "message": "The attachment has been saved." + "message": "La aldonaĵo estas konservita." }, "file": { "message": "Dosiero" }, "selectFile": { - "message": "Select a file." + "message": "Elektu dosieron." }, "maxFileSize": { - "message": "Maximum file size is 100 MB." + "message": "Maksimuma dosiergrandeco estas 100 MB." }, "updateKey": { - "message": "You cannot use this feature until you update your encryption key." + "message": "Vi ne povas uzi ĉi tiun funkcion antaŭ ol vi ĝisdatigos vian ĉifran ŝlosilon." }, "addedItem": { - "message": "Added item" + "message": "Aldonita ero" }, "editedItem": { - "message": "Edited item" + "message": "Redaktita ero" }, "sharedItem": { - "message": "Dividita ero" + "message": "Komuna ero" }, "sharedItems": { - "message": "Kunhavitaj eroj" + "message": "Komunaj eroj" }, "deleteItem": { - "message": "Forigu objekton" + "message": "Forigi Artikolon" }, "deleteFolder": { "message": "Forigi dosierujon" }, "deleteAttachment": { - "message": "Delete Attachment" + "message": "Forigi Aldonaĵon" }, "deleteItemConfirmation": { - "message": "Ĉu vi certas, ke vi volas forigi ĉi tiun eron?" + "message": "Ĉu vi vere volas sendi al la rubujo?" }, "deletedItem": { - "message": "Item sent to trash" + "message": "Artikolo sendita al rubujo" }, "deletedItems": { - "message": "Items sent to trash" + "message": "Eroj senditaj al rubujo" }, "movedItems": { - "message": "Movi elementojn" + "message": "Movitaj eroj" }, "overwritePasswordConfirmation": { - "message": "Are you sure you want to overwrite the current password?" + "message": "Ĉu vi certe volas anstataŭigi la nunan pasvorton?" }, "editedFolder": { "message": "Redaktita dosierujo" }, "addedFolder": { - "message": "Aldonita Dosierujo" + "message": "Aldonita dosierujo" }, "deleteFolderConfirmation": { - "message": "Are you sure you want to delete this folder?" + "message": "Ĉu vi certe volas forigi ĉi tiun dosierujon?" }, "deletedFolder": { "message": "Forigita dosierujo" }, "loggedOut": { - "message": "Elsaluti" + "message": "Elsalutita" }, "loginExpired": { - "message": "Your login session has expired." + "message": "Via ensaluta kunsido eksvalidiĝis." }, "logOutConfirmation": { - "message": "Are you sure you want to log out?" + "message": "Ĉu vi certe volas elsaluti?" }, "logOut": { - "message": "Elsaluti" + "message": "Eliri" }, "ok": { "message": "Bone" @@ -512,91 +512,91 @@ "message": "Ne" }, "loginOrCreateNewAccount": { - "message": "Log in or create a new account to access your secure vault." + "message": "Ensalutu aŭ kreu novan konton por aliri vian sekuran trezorejon." }, "createAccount": { - "message": "Create Account" + "message": "Krei konton" }, "logIn": { "message": "Ensaluti" }, "submit": { - "message": "Sendi" + "message": "Sendu" }, "emailAddressDesc": { - "message": "You'll use your email address to log in." + "message": "Vi uzos vian retpoŝtan adreson por ensaluti." }, "yourName": { "message": "Via nomo" }, "yourNameDesc": { - "message": "What should we call you?" + "message": "Kiel ni nomu vin?" }, "masterPass": { - "message": "Majstro Pasvorto" + "message": "Majstra Pasvorto" }, "masterPassDesc": { - "message": "The master password is the password you use to access your vault. It is very important that you do not forget your master password. There is no way to recover the password in the event that you forget it." + "message": "La ĉefa pasvorto estas la pasvorto, kiun vi uzas por aliri vian trezorejon. Tre gravas, ke vi ne forgesu vian ĉefan pasvorton. Ne eblas retrovi la pasvorton, se vi forgesos ĝin." }, "masterPassHintDesc": { - "message": "A master password hint can help you remember your password if you forget it." + "message": "Majstra pasvorta sugesto povas helpi vin memori vian pasvorton se vi forgesas ĝin." }, "reTypeMasterPass": { - "message": "Re-type Master Password" + "message": "Retajpu Majstran Pasvorton" }, "masterPassHint": { - "message": "Master Password Hint (optional)" + "message": "Majstra Pasvorta Konsilo (nedeviga)" }, "masterPassHintLabel": { - "message": "Master Password Hint" + "message": "Majstra Pasvorta Konsilo" }, "settings": { "message": "Agordoj" }, "passwordHint": { - "message": "Pasvorta konsileto" + "message": "Pasvorta Konsilo" }, "enterEmailToGetHint": { - "message": "Enter your account email address to receive your master password hint." + "message": "Enigu vian retpoŝtadreson por ricevi vian ĉefan pasvortan aludon." }, "getMasterPasswordHint": { - "message": "Get master password hint" + "message": "Akiru ĉefan pasvortan sugeston" }, "emailRequired": { - "message": "Email address is required." + "message": "Retpoŝta adreso estas bezonata." }, "invalidEmail": { - "message": "Invalid email address." + "message": "Nevalida retpoŝta adreso." }, "masterPassRequired": { - "message": "Master password is required." + "message": "Majstra pasvorto necesas." }, "masterPassLength": { - "message": "Master password must be at least 8 characters long." + "message": "Majstra pasvorto devas havi almenaŭ 8 signojn." }, "masterPassDoesntMatch": { - "message": "Master password confirmation does not match." + "message": "Majstra pasvorta konfirmo ne kongruas." }, "newAccountCreated": { - "message": "Your new account has been created! You may now log in." + "message": "Via nova konto kreiĝis! Vi nun povas ensaluti." }, "masterPassSent": { - "message": "We've sent you an email with your master password hint." + "message": "Ni sendis al vi retpoŝton kun via ĉefa pasvorta sugesto." }, "unexpectedError": { - "message": "An unexpected error has occurred." + "message": "Neatendita eraro okazis." }, "emailAddress": { - "message": "Retpoŝtadreso" + "message": "Retpoŝta Adreso" }, "yourVaultIsLocked": { - "message": "Your vault is locked. Verify your master password to continue." + "message": "Via trezorejo estas ŝlosita. Kontrolu vian ĉefan pasvorton por daŭrigi." }, "unlock": { "message": "Malŝlosi" }, "loggedInAsEmailOn": { - "message": "Logged in as $EMAIL$ on $HOSTNAME$.", + "message": "Ensalutinta kiel $EMAIL$ ĉe $HOSTNAME $.", "placeholders": { "email": { "content": "$1", @@ -609,34 +609,34 @@ } }, "invalidMasterPassword": { - "message": "Invalid master password" + "message": "Nevalida majstra pasvorto" }, "lockNow": { "message": "Ŝlosi Nun" }, "noItemsInList": { - "message": "There are no items to list." + "message": "Ne estas listigendaj eroj." }, "noCollectionsInList": { - "message": "There are no collections to list." + "message": "Estas neniuj kolektoj listigeblaj." }, "noGroupsInList": { - "message": "There are no groups to list." + "message": "Estas neniuj grupoj listigeblaj." }, "noUsersInList": { - "message": "There are no users to list." + "message": "Estas neniuj uzantoj listigeblaj." }, "noEventsInList": { - "message": "There are no events to list." + "message": "Ne estas eventoj listigeblaj." }, "newOrganization": { - "message": "New Organization" + "message": "Nova Organizo" }, "noOrganizationsList": { - "message": "You do not belong to any organizations. Organizations allow you to securely share items with other users." + "message": "Vi ne apartenas al iuj organizoj. Organizoj permesas al vi sekure dividi erojn kun aliaj uzantoj." }, "versionNumber": { - "message": "Version $VERSION_NUMBER$", + "message": "Versio $VERSION_NUMBER $", "placeholders": { "version_number": { "content": "$1", @@ -645,10 +645,10 @@ } }, "enterVerificationCodeApp": { - "message": "Enter the 6 digit verification code from your authenticator app." + "message": "Enigu la 6-ciferan konfirmkodon de via aŭtentikiga programo." }, "enterVerificationCodeEmail": { - "message": "Enter the 6 digit verification code that was emailed to $EMAIL$.", + "message": "Enigu la 6-ciferan konfirmkodon, kiu estis retpoŝta al $EMAIL$.", "placeholders": { "email": { "content": "$1", @@ -657,7 +657,7 @@ } }, "verificationCodeEmailSent": { - "message": "Verification email sent to $EMAIL$.", + "message": "Kontrola retpoŝto sendita al $EMAIL$.", "placeholders": { "email": { "content": "$1", @@ -666,73 +666,82 @@ } }, "rememberMe": { - "message": "Memori min" + "message": "Memoru min" }, "sendVerificationCodeEmailAgain": { - "message": "Send verification code email again" + "message": "Sendu retpoŝtan kontrol-kodon denove" }, "useAnotherTwoStepMethod": { - "message": "Use another two-step login method" + "message": "Uzu alian du-paŝan ensalutan metodon" }, "insertYubiKey": { - "message": "Insert your YubiKey into your computer's USB port, then touch its button." + "message": "Enmetu vian YubiKey en la USB-havenon de via komputilo, tiam tuŝu ĝian butonon." }, "insertU2f": { - "message": "Insert your security key into your computer's USB port. If it has a button, touch it." + "message": "Enmetu vian sekurecan ŝlosilon en la USB-havenon de via komputilo. Se ĝi havas butonon, tuŝu ĝin." }, "loginUnavailable": { - "message": "Login Unavailable" + "message": "Ensaluto Neatingebla" }, "noTwoStepProviders": { - "message": "This account has two-step login enabled, however, none of the configured two-step providers are supported by this web browser." + "message": "Ĉi tiu konto havas du-paŝan ensaluton ebligita, tamen neniu el la agorditaj du-paŝaj provizantoj estas subtenata de ĉi tiu retumilo." }, "noTwoStepProviders2": { - "message": "Please use a supported web browser (such as Chrome) and/or add additional providers that are better supported across web browsers (such as an authenticator app)." + "message": "Bonvolu uzi subtenatan tTT-legilon (kiel Chrome) kaj / aŭ aldoni pliajn provizantojn pli bone subtenatajn tra tTT-legiloj (kiel aŭtentikiga programo)." }, "twoStepOptions": { - "message": "Two-step Login Options" + "message": "Duŝtupaj Ensalutaj Elektoj" }, "recoveryCodeDesc": { - "message": "Lost access to all of your two-factor providers? Use your recovery code to disable all two-factor providers from your account." + "message": "Ĉu vi perdis aliron al ĉiuj viaj du-faktoraj provizantoj? Uzu vian reakiran kodon por malŝalti ĉiujn du-faktorajn provizantojn de via konto." }, "recoveryCodeTitle": { - "message": "Recovery Code" + "message": "Rekuperiga Kodo" }, "authenticatorAppTitle": { - "message": "Authenticator App" + "message": "Aŭtentiga Programo" }, "authenticatorAppDesc": { - "message": "Use an authenticator app (such as Authy or Google Authenticator) to generate time-based verification codes.", + "message": "Uzu aŭtentikan programon (kiel Authy aŭ Google Authenticator) por generi tempokontrolajn kodojn.", "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." }, "yubiKeyTitle": { - "message": "YubiKey OTP Security Key" + "message": "Sekureca Ŝlosilo de YubiKey OTP" }, "yubiKeyDesc": { - "message": "Use a YubiKey to access your account. Works with YubiKey 4 series, 5 series, and NEO devices." + "message": "Uzu YubiKey por aliri vian konton. Funkcias kun YubiKey 4-serio, 5-serio kaj NEO-aparatoj." }, "duoDesc": { - "message": "Verify with Duo Security using the Duo Mobile app, SMS, phone call, or U2F security key.", + "message": "Kontrolu per Duo-Sekureco per la Duo Mobile-programo, SMS, telefona alvoko aŭ U2F-sekureca ŝlosilo.", "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." }, "duoOrganizationDesc": { - "message": "Verify with Duo Security for your organization using the Duo Mobile app, SMS, phone call, or U2F security key.", + "message": "Kontrolu kun Duo Security por via organizo per la Duo Mobile-programo, SMS, telefona alvoko aŭ U2F-sekureca ŝlosilo.", "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." }, "u2fDesc": { - "message": "Use any FIDO U2F enabled security key to access your account." + "message": "Uzu iun ajn sekurecan ŝlosilon FIDO U2F por aliri vian konton." }, "u2fTitle": { - "message": "FIDO U2F Security Key" + "message": "Sekureca Ŝlosilo FIDO U2F" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" }, "emailTitle": { "message": "Retpoŝto" }, "emailDesc": { - "message": "Verification codes will be emailed to you." + "message": "Kontrolaj kodoj estos retpoŝtigitaj al vi." }, "continue": { - "message": "Daŭrigu" + "message": "Daŭrigi" }, "organization": { "message": "Organizo" @@ -741,16 +750,16 @@ "message": "Organizoj" }, "shareDesc": { - "message": "Choose an organization that you wish to share this item with. Sharing transfers ownership of the item to the organization. You will no longer be the direct owner of this item once it has been shared." + "message": "Elektu organizon kun kiu vi volas dividi ĉi tiun eron. Dividado transdonas posedon de la ero al la organizo. Vi ne plu estos la rekta posedanto de ĉi tiu ero post kiam ĝi estos dividita." }, "shareManyDesc": { - "message": "Choose an organization that you wish to share these items with. Sharing transfers ownership of the items to the organization. You will no longer be the direct owner of these items once they have been shared." + "message": "Elektu organizon kun kiu vi volas dividi ĉi tiujn erojn. Dividado transdonas posedon de la eroj al la organizo. Vi ne plu estos la rekta posedanto de ĉi tiuj eroj post kiam ili estos dividitaj." }, "collectionsDesc": { - "message": "Edit the collections that this item is being shared with. Only organization users with access to these collections will be able to see this item." + "message": "Redaktu la kolektojn kun kiuj ĉi tiu ero estas dividita. Nur organizaj uzantoj kun aliro al ĉi tiuj kolektoj povos vidi ĉi tiun eron." }, "deleteSelectedItemsDesc": { - "message": "You have selected $COUNT$ item(s) to delete. Are you sure you want to delete all of these items?", + "message": "Vi elektis $COUNT $eron (j) por forigi. Ĉu vi certe volas forigi ĉiujn ĉi tiujn erojn?", "placeholders": { "count": { "content": "$1", @@ -759,7 +768,7 @@ } }, "moveSelectedItemsDesc": { - "message": "Choose a folder that you would like to move the $COUNT$ selected item(s) to.", + "message": "Elektu dosierujon al kiu vi ŝatus movi la elektitajn erojn $COUNT$.", "placeholders": { "count": { "content": "$1", @@ -768,7 +777,7 @@ } }, "shareSelectedItemsCountDesc": { - "message": "You have selected $COUNT$ item(s). $SHAREABLE_COUNT$ items are sharable, $NONSHAREABLE_COUNT$ are not.", + "message": "Vi elektis $COUNT$ eron (j). $SHAREABLE_COUNT$ eroj estas kompareblaj, $NONSHAREABLE_COUNT$ ne.", "placeholders": { "count": { "content": "$1", @@ -785,97 +794,97 @@ } }, "verificationCodeTotp": { - "message": "Verification Code (TOTP)" + "message": "Kontrola Kodo (TOTP)" }, "copyVerificationCode": { - "message": "Copy Verification Code" + "message": "Kopii Konfirman Kodon" }, "warning": { - "message": "Warning" + "message": "Averto" }, "confirmVaultExport": { - "message": "Confirm Vault Export" + "message": "Konfirmi Volbon-Eksportadon" }, "exportWarningDesc": { - "message": "This export contains your vault data in an unencrypted format. You should not store or send the exported file over unsecure channels (such as email). Delete it immediately after you are done using it." + "message": "Ĉi tiu eksportado enhavas viajn volbajn datumojn en neĉifrita formato. Vi ne devas stoki aŭ sendi la eksportitan dosieron per nesekuraj kanaloj (kiel retpoŝto). Forigu ĝin tuj post kiam vi finuzos ĝin." }, "encExportKeyWarningDesc": { - "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + "message": "Ĉi tiu eksporto ĉifras viajn datumojn per la ĉifra ŝlosilo de via konto. Se vi iam turnos la ĉifran ŝlosilon de via konto, vi devas eksporti denove, ĉar vi ne povos deĉifri ĉi tiun eksportan dosieron." }, "encExportAccountWarningDesc": { - "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + "message": "Kontaj ĉifraj ŝlosiloj estas unikaj por ĉiu Bitwarden-uzanto-konto, do vi ne povas importi ĉifritan eksportadon en alian konton." }, "exportMasterPassword": { - "message": "Enter your master password to export your vault data." + "message": "Enigu vian ĉefan pasvorton por eksporti viajn volbajn datumojn." }, "exportVault": { - "message": "Export Vault" + "message": "Eksporti Volbon" }, "fileFormat": { - "message": "File Format" + "message": "Dosierformato" }, "exportSuccess": { - "message": "Your vault data has been exported." + "message": "Viaj volbaj datumoj estis eksportitaj." }, "passwordGenerator": { - "message": "Password Generator" + "message": "Pasvorta Generilo" }, "minComplexityScore": { - "message": "Minimum Complexity Score" + "message": "Minimuma Komplekseca Poentaro" }, "minNumbers": { - "message": "Minimum Numbers" + "message": "Minimumaj Nombroj" }, "minSpecial": { - "message": "Minimum Special", + "message": "Minimuma Specialaĵo", "description": "Minimum Special Characters" }, "ambiguous": { - "message": "Avoid Ambiguous Characters" + "message": "Evitu Dusignajn Karakterojn" }, "regeneratePassword": { - "message": "Regenerate Password" + "message": "Regeneri Pasvorton" }, "length": { - "message": "Length" + "message": "Longo" }, "numWords": { - "message": "Number of Words" + "message": "Nombro de Vortoj" }, "wordSeparator": { - "message": "Word Separator" + "message": "Vortdisigilo" }, "capitalize": { - "message": "Capitalize", + "message": "Majuskligi", "description": "Make the first letter of a work uppercase." }, "includeNumber": { - "message": "Include Number" + "message": "Inkluzivi numeron" }, "passwordHistory": { - "message": "Password History" + "message": "Pasvorta Historio" }, "noPasswordsInList": { - "message": "There are no passwords to list." + "message": "Ne estas listigitaj pasvortoj." }, "clear": { - "message": "Clear", + "message": "Malplenigi", "description": "To clear something out. example: To clear browser history." }, "accountUpdated": { - "message": "Konto Ĝisdatigita" + "message": "Konto ĝisdatigita" }, "changeEmail": { - "message": "Ŝanĝu Retpoŝton" + "message": "Ŝanĝi retpoŝton" }, "newEmail": { - "message": "Nova Retpoŝtadreso" + "message": "Nova retpoŝto" }, "code": { "message": "Kodo" }, "changeEmailDesc": { - "message": "We have emailed a verification code to $EMAIL$. Please check your email for this code and enter it below to finalize the email address change.", + "message": "Ni sendis retpoŝtan kontrolkodon al $EMAIL$. Bonvolu kontroli vian retpoŝton pri ĉi tiu kodo kaj enigu ĝin sube por fini la retpoŝtan adresŝanĝon.", "placeholders": { "email": { "content": "$1", @@ -884,43 +893,43 @@ } }, "loggedOutWarning": { - "message": "Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + "message": "Daŭrigi vin elsalutos de via nuna sesio, postulante vin denove ensaluti. Aktivaj sesioj sur aliaj aparatoj povas daŭre resti aktivaj ĝis unu horo." }, "emailChanged": { - "message": "Email Changed" + "message": "Retpoŝto Ŝanĝis" }, "logBackIn": { - "message": "Please log back in." + "message": "Bonvolu ensaluti denove." }, "logBackInOthersToo": { - "message": "Please log back in. If you are using other Bitwarden applications log out and back in to those as well." + "message": "Bonvolu ensaluti. Se vi uzas aliajn Bitwarden-programojn, elsalutu kaj reen al tiuj ankaŭ." }, "changeMasterPassword": { - "message": "Change Master Password" + "message": "Ŝanĝi Majstran Pasvorton" }, "masterPasswordChanged": { - "message": "Master Password Changed" + "message": "Majstra pasvorto ŝanĝita" }, "currentMasterPass": { - "message": "Aktuala Majstra Pasvorto" + "message": "Nuna Majstra Pasvorto" }, "newMasterPass": { - "message": "Nova Majstro Pasvorto" + "message": "Nova Majstra Pasvorto" }, "confirmNewMasterPass": { - "message": "Konfirmu Novan Majstran Pasvorton" + "message": "Konfirmi Novan Majstran Pasvorton" }, "encKeySettings": { - "message": "Encryption Key Settings" + "message": "Agordoj de Ĉifroklavo" }, "kdfAlgorithm": { - "message": "KDF Algorithm" + "message": "KDF-Algoritmo" }, "kdfIterations": { - "message": "KDF Iterations" + "message": "KDF-Ripetoj" }, "kdfIterationsDesc": { - "message": "Higher KDF iterations can help protect your master password from being brute forced by an attacker. We recommend a value of $VALUE$ or more.", + "message": "Pli altaj KDF-ripetoj povas helpi protekti vian ĉefan pasvorton kontraŭ malpura devigo de atakanto. Ni rekomendas valoron de $VALUE$ aŭ pli.", "placeholders": { "value": { "content": "$1", @@ -929,7 +938,7 @@ } }, "kdfIterationsWarning": { - "message": "Setting your KDF iterations too high could result in poor performance when logging into (and unlocking) Bitwarden on devices with slower CPUs. We recommend that you increase the value in increments of $INCREMENT$ and then test all of your devices.", + "message": "Agordi viajn KDF-ripetojn tro alte povus rezultigi malbonan rendimenton kiam vi ensalutas (kaj malŝlosas) Bitwarden sur aparatoj kun pli malrapidaj CPUoj. Ni rekomendas, ke vi pliigu la valoron en pliigoj de $INCREMENT$ kaj poste provu ĉiujn viajn aparatojn. . ", "placeholders": { "increment": { "content": "$1", @@ -938,61 +947,61 @@ } }, "changeKdf": { - "message": "Change KDF" + "message": "Ŝanĝi KDF" }, "encKeySettingsChanged": { - "message": "Encryption Key Settings Changed" + "message": "Ŝanĝaj Ŝlosilaj Agordoj Ŝanĝiĝis" }, "dangerZone": { - "message": "Danger Zone" + "message": "Danĝera Zono" }, "dangerZoneDesc": { - "message": "Careful, these actions are not reversible!" + "message": "Atentu, ĉi tiuj agoj ne estas reigeblaj!" }, "deauthorizeSessions": { - "message": "Deauthorize Sessions" + "message": "Senrajtigi Sesiojn" }, "deauthorizeSessionsDesc": { - "message": "Concerned your account is logged in on another device? Proceed below to deauthorize all computers or devices that you have previously used. This security step is recommended if you previously used a public computer or accidentally saved your password on a device that isn't yours. This step will also clear all previously remembered two-step login sessions." + "message": "Ĉu vi zorgas pri tio, ke via konto estas ensalutinta sur alia aparato? Sekvu sube por senrajtigi ĉiujn komputilojn aŭ aparatojn, kiujn vi antaŭe uzis. Ĉi tiu sekureca paŝo rekomendas se vi antaŭe uzis publikan komputilon aŭ hazarde konservis vian pasvorton sur aparato, kiu ne estas via. Ĉi tiu paŝo ankaŭ malplenigos ĉiujn antaŭe memoritajn du-paŝajn ensalutajn sesiojn. " }, "deauthorizeSessionsWarning": { - "message": "Proceeding will also log you out of your current session, requiring you to log back in. You will also be prompted for two-step login again, if enabled. Active sessions on other devices may continue to remain active for up to one hour." + "message": "La daŭrigo ankaŭ elsalutos vin de via nuna sesio, postulante vin denove ensaluti. Oni ankaŭ petos vin du-ŝtupa ensaluto, se ĝi estas ebligita. Aktivaj sesioj sur aliaj aparatoj povas daŭre resti aktivaj ĝis ĝis unu horo. " }, "sessionsDeauthorized": { - "message": "All Sessions Deauthorized" + "message": "Ĉiuj Sesioj Neaŭtorizitaj" }, "purgeVault": { - "message": "Purge Vault" + "message": "Purigi Volbon" }, "purgedOrganizationVault": { - "message": "Purged organization vault." + "message": "Purigita organizo-volbo." }, "purgeVaultDesc": { - "message": "Proceed below to delete all items and folders in your vault. Items that belong to an organization that you share with will not be deleted." + "message": "Sekvu sube por forigi ĉiujn erojn kaj dosierujojn en via trezorejo. Eroj apartenantaj al organizo kun kiu vi dividas ne estos forigitaj." }, "purgeOrgVaultDesc": { - "message": "Proceed below to delete all items in the organization's vault." + "message": "Sekvu sube por forigi ĉiujn erojn en la trezorejo de la organizo." }, "purgeVaultWarning": { - "message": "Purging your vault is permanent. It cannot be undone." + "message": "Purigi vian trezorejon estas konstanta. Ĝi ne povas esti malfarita." }, "vaultPurged": { - "message": "Your vault has been purged." + "message": "Via trezorejo estis elpurigita." }, "deleteAccount": { - "message": "Delete Account" + "message": "Forigi konton" }, "deleteAccountDesc": { - "message": "Proceed below to delete your account and all associated data." + "message": "Sekvu sube por forigi vian konton kaj ĉiujn rilatajn datumojn." }, "deleteAccountWarning": { - "message": "Deleting your account is permanent. It cannot be undone." + "message": "Forigi vian konton estas konstanta. Ĝi ne povas esti malfarita." }, "accountDeleted": { - "message": "Account Deleted" + "message": "Konto Forigita" }, "accountDeletedDesc": { - "message": "Your account has been closed and all associated data has been deleted." + "message": "Via konto estis fermita kaj ĉiuj rilataj datumoj estis forigitaj." }, "myAccount": { "message": "Mia Konto" @@ -1004,16 +1013,16 @@ "message": "Importi Datumojn" }, "importError": { - "message": "Import Error" + "message": "Importa Eraro" }, "importErrorDesc": { - "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + "message": "Estis problemo pri la datumoj, kiujn vi provis importi. Bonvolu solvi la erarojn listigitajn sube en via fontdosiero kaj reprovi." }, "importSuccess": { - "message": "Data has been successfully imported into your vault." + "message": "Datumoj sukcese importiĝis en vian trezorejon." }, "importWarning": { - "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "message": "Vi importas datumojn al $ORGANIZATION$. Viaj datumoj povas esti dividitaj kun membroj de ĉi tiu organizo. Ĉu vi volas daŭrigi?", "placeholders": { "organization": { "content": "$1", @@ -1022,22 +1031,22 @@ } }, "importFormatError": { - "message": "Data is not formatted correctly. Please check your import file and try again." + "message": "Datumoj ne estas ĝuste formatitaj. Bonvolu kontroli vian importan dosieron kaj reprovi." }, "importNothingError": { - "message": "Nothing was imported." + "message": "Nenio estis importita." }, "selectFormat": { - "message": "Select the format of the import file" + "message": "Elektu la formaton de la importa dosiero" }, "selectImportFile": { - "message": "Select the import file" + "message": "Elektu la importan dosieron" }, "orCopyPasteFileContents": { - "message": "or copy/paste the import file contents" + "message": "aŭ kopii / alglui la importan dosieron enhavon" }, "instructionsFor": { - "message": "$NAME$ Instructions", + "message": "Instrukcioj pri $NAME$", "description": "The title for the import tool instructions.", "placeholders": { "name": { @@ -1050,69 +1059,69 @@ "message": "Opcioj" }, "optionsDesc": { - "message": "Customize your web vault experience." + "message": "Agordu vian sperton pri retejo." }, "optionsUpdated": { - "message": "Options updated" + "message": "Opcioj ĝisdatigitaj" }, "language": { "message": "Lingvo" }, "languageDesc": { - "message": "Change the language used by the web vault." + "message": "Ŝanĝi la lingvon uzatan de la retejo-volbo." }, "disableIcons": { - "message": "Disable Website Icons" + "message": "Malebligi retejajn piktogramojn" }, "disableIconsDesc": { - "message": "Website Icons provide a recognizable image next to each login item in your vault." + "message": "Retejaj piktogramoj donas rekoneblan bildon apud ĉiu ensaluta ero en via trezorejo." }, "enableGravatars": { - "message": "Enable Gravatars", + "message": "Ebligi Gravatars", "description": "'Gravatar' is the name of a service. See www.gravatar.com" }, "enableGravatarsDesc": { - "message": "Use avatar images loaded from gravatar.com." + "message": "Uzu avatarajn bildojn ŝarĝitajn de gravatar.com." }, "enableFullWidth": { - "message": "Enable Full Width Layout", + "message": "Ebligi plenan larĝan aranĝon", "description": "Allows scaling the web vault UI's width" }, "enableFullWidthDesc": { - "message": "Allow the web vault to expand the full width of the browser window." + "message": "Permesu al la arka volbo pligrandigi la tutan larĝon de la retumila fenestro." }, "default": { - "message": "Defaŭta" + "message": "Apriora" }, "domainRules": { - "message": "Domain Rules" + "message": "Regaj Reguloj" }, "domainRulesDesc": { - "message": "If you have the same login across multiple different website domains, you can mark the website as \"equivalent\". \"Global\" domains are ones already created for you by Bitwarden." + "message": "Se vi havas la saman ensaluton tra multaj malsamaj retejaj domajnoj, vi povas marki la retejon kiel \" ekvivalenta \". \" Tutmondaj \" domajnoj estas jam kreitaj por vi de Bitwarden." }, "globalEqDomains": { - "message": "Global Equivalent Domains" + "message": "Tutmondaj Ekvivalentaj Domajnoj" }, "customEqDomains": { - "message": "Custom Equivalent Domains" + "message": "Propraj Ekvivalentaj Domajnoj" }, "exclude": { - "message": "Exclude" + "message": "Ekskludi" }, "include": { - "message": "Include" + "message": "Inkluzivi" }, "customize": { - "message": "Customize" + "message": "Agordi" }, "newCustomDomain": { - "message": "New Custom Domain" + "message": "Nova Propra Domajno" }, "newCustomDomainDesc": { - "message": "Enter a list of domains separated by commas. Only \"base\" domains are allowed. Do not enter subdomains. For example, enter \"google.com\" instead of \"www.google.com\". You can also enter \"androidapp://package.name\" to associate an android app with other website domains." + "message": "Enmetu liston de domajnoj apartigitaj per komoj. Nur domajnoj \" bazaj \" estas permesataj. Ne enmetu subdomajnojn. Ekzemple enigu \" google.com \"anstataŭ \" www.google.com \". Vi ankaŭ povas enigi \" androidapp: //package.name \"por asocii android-programon kun aliaj retejaj domajnoj." }, "customDomainX": { - "message": "Custom Domain $INDEX$", + "message": "Propra Domajno $INDEX$", "placeholders": { "index": { "content": "$1", @@ -1121,126 +1130,126 @@ } }, "domainsUpdated": { - "message": "Domains updated" + "message": "Domajnoj ĝisdatigitaj" }, "twoStepLogin": { - "message": "Two-step Login" + "message": "Du-ŝtupa ensaluto" }, "twoStepLoginDesc": { - "message": "Secure your account by requiring an additional step when logging in." + "message": "Sekurigu vian konton postulante plian paŝon kiam vi ensalutas." }, "twoStepLoginOrganizationDesc": { - "message": "Require two-step login for your organization's users by configuring providers at the organization level." + "message": "Postuli du-paŝan ensaluton por la uzantoj de via organizo per agordo de provizantoj je la organiza nivelo." }, "twoStepLoginRecoveryWarning": { - "message": "Enabling two-step login can permanently lock you out of your Bitwarden account. A recovery code allows you to access your account in the event that you can no longer use your normal two-step login provider (ex. you lose your device). Bitwarden support will not be able to assist you if you lose access to your account. We recommend you write down or print the recovery code and keep it in a safe place." + "message": "Ebligi du-paŝan ensaluton povas konstante elŝlosi vin el via Bitwarden-konto. Rekuperiga kodo permesas vin aliri vian konton, se vi ne plu povas uzi vian normalan du-paŝan ensalutan provizanton (ekz. vi perdas Bitwarden-subteno ne povos helpi vin se vi perdos aliron al via konto. Ni rekomendas al vi skribi aŭ presi la reakiran kodon kaj konservi ĝin en sekura loko. " }, "viewRecoveryCode": { - "message": "View Recovery Code" + "message": "Rigardi Rekuperan Kodon" }, "providers": { - "message": "Providers", + "message": "Provizantoj", "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." }, "enable": { - "message": "Ŝalti" + "message": "Ebligi" }, "enabled": { - "message": "Ebligita" + "message": "Enŝaltita" }, "premium": { "message": "Premium", "description": "Premium Membership" }, "premiumMembership": { - "message": "Premium Membership" + "message": "Altkvalita Membreco" }, "premiumRequired": { - "message": "Premium Required" + "message": "Supra Postulo" }, "premiumRequiredDesc": { - "message": "A premium membership is required to use this feature." + "message": "Altkvalita membreco necesas por uzi ĉi tiun funkcion." }, "youHavePremiumAccess": { - "message": "You have premium access" + "message": "Vi havas superan aliron" }, "alreadyPremiumFromOrg": { - "message": "You already have access to premium features because of an organization you are a member of." + "message": "Vi jam havas aliron al superaj funkcioj pro organizo, en kiu vi membras." }, "manage": { "message": "Administri" }, "disable": { - "message": "Malŝalti" + "message": "Malebligi" }, "twoStepLoginProviderEnabled": { - "message": "This two-step login provider is enabled on your account." + "message": "Ĉi tiu du-ŝtupa ensaluta provizanto estas ebligita en via konto." }, "twoStepLoginAuthDesc": { - "message": "Enter your master password to modify two-step login settings." + "message": "Enigu vian ĉefan pasvorton por modifi du-paŝajn ensalutajn agordojn." }, "twoStepAuthenticatorDesc": { - "message": "Follow these steps to set up two-step login with an authenticator app:" + "message": "Sekvu ĉi tiujn paŝojn por agordi du-paŝan ensaluton per aŭtentikiga programo:" }, "twoStepAuthenticatorDownloadApp": { - "message": "Download a two-step authenticator app" + "message": "Elŝuti du-paŝan aŭtentikigan programon" }, "twoStepAuthenticatorNeedApp": { - "message": "Need a two-step authenticator app? Download one of the following" + "message": "Ĉu vi bezonas du-paŝan aŭtentikigan programon? Elŝutu unu el la jenaj" }, "iosDevices": { - "message": "iOS devices" + "message": "iOS-aparatoj" }, "androidDevices": { - "message": "Android devices" + "message": "Android-aparatoj" }, "windowsDevices": { - "message": "Windows devices" + "message": "Vindozaj aparatoj" }, "twoStepAuthenticatorAppsRecommended": { - "message": "These apps are recommended, however, other authenticator apps will also work." + "message": "Ĉi tiuj programoj estas rekomendindaj, tamen ankaŭ aliaj aŭtentikigaj programoj funkcios." }, "twoStepAuthenticatorScanCode": { - "message": "Scan this QR code with your authenticator app" + "message": "Skani ĉi tiun QR-kodon per via aŭtentikiga programo" }, "key": { "message": "Ŝlosilo" }, "twoStepAuthenticatorEnterCode": { - "message": "Enter the resulting 6 digit verification code from the app" + "message": "Enigu la rezultan 6-ciferan konfirmkodon de la programo" }, "twoStepAuthenticatorReaddDesc": { - "message": "In case you need to add it to another device, below is the QR code (or key) required by your authenticator app." + "message": "Se vi bezonas aldoni ĝin al alia aparato, sube estas la QR-kodo (aŭ ŝlosilo) postulita de via aŭtentikiga programo." }, "twoStepDisableDesc": { - "message": "Are you sure you want to disable this two-step login provider?" + "message": "Ĉu vi certas, ke vi volas malŝalti ĉi tiun du-paŝan ensalutan provizanton?" }, "twoStepDisabled": { - "message": "Two-step login provider disabled." + "message": "Du-ŝtupa ensaluta provizanto malŝaltita." }, "twoFactorYubikeyAdd": { - "message": "Add a new YubiKey to your account" + "message": "Aldoni novan YubiKey al via konto" }, "twoFactorYubikeyPlugIn": { - "message": "Plug the YubiKey into your computer's USB port." + "message": "Enŝovu la YubiKey en la USB-havenon de via komputilo." }, "twoFactorYubikeySelectKey": { - "message": "Select the first empty YubiKey input field below." + "message": "Elektu la unuan malplenan enigan kampon YubiKey sube." }, "twoFactorYubikeyTouchButton": { - "message": "Touch the YubiKey's button." + "message": "Tuŝu la butonon de YubiKey." }, "twoFactorYubikeySaveForm": { - "message": "Save the form." + "message": "Konservu la formularon." }, "twoFactorYubikeyWarning": { - "message": "Due to platform limitations, YubiKeys cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when YubiKeys cannot be used. Supported platforms:" + "message": "Pro platformaj limigoj, YubiKeys ne povas esti uzata en ĉiuj Bitwarden-aplikaĵoj. Vi rajtigu alian du-paŝan ensalutan provizanton, por ke vi povu aliri vian konton kiam YubiKeys ne povas esti uzata. Subtenitaj platformoj:" }, "twoFactorYubikeySupportUsb": { - "message": "Web vault, desktop application, CLI, and all browser extensions on a device with a USB port that can accept your YubiKey." + "message": "TTT-volbo, labortabla aplikaĵo, CLI kaj ĉiuj retumilaj etendaĵoj sur aparato kun USBa haveno, kiu povas akcepti vian YubiKey." }, "twoFactorYubikeySupportMobile": { - "message": "Mobile apps on a device with NFC capabilities or a USB port that can accept your YubiKey." + "message": "Poŝtelefonaj programoj sur aparato kun NFC-kapabloj aŭ datuma haveno, kiu povas akcepti vian YubiKey." }, "yubikeyX": { "message": "YubiKey $INDEX$", @@ -1252,7 +1261,16 @@ } }, "u2fkeyX": { - "message": "U2F Key $INDEX$", + "message": "U2F-Ŝlosilo $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", "placeholders": { "index": { "content": "$1", @@ -1261,107 +1279,116 @@ } }, "nfcSupport": { - "message": "NFC Support" + "message": "NFC-Subteno" }, "twoFactorYubikeySupportsNfc": { - "message": "One of my keys supports NFC." + "message": "Unu el miaj klavoj subtenas NFC." }, "twoFactorYubikeySupportsNfcDesc": { - "message": "If one of your YubiKeys supports NFC (such as a YubiKey NEO), you will be prompted on mobile devices whenever NFC availability is detected." + "message": "Se unu el viaj YubiKeys subtenas NFC (kiel YubiKey NEO), vi estos instigita per poŝtelefonoj kiam ajn NFC-havebleco estas detektita." }, "yubikeysUpdated": { - "message": "YubiKeys updated" + "message": "YubiKeys ĝisdatigis" }, "disableAllKeys": { - "message": "Disable All Keys" + "message": "Malebligi ĉiujn ŝlosilojn" }, "twoFactorDuoDesc": { - "message": "Enter the Bitwarden application information from your Duo Admin panel." + "message": "Enmetu la informojn pri Bitwarden-aplikaĵo de via panelo de Duo Admin." }, "twoFactorDuoIntegrationKey": { - "message": "Integration Key" + "message": "Integriĝa Ŝlosilo" }, "twoFactorDuoSecretKey": { - "message": "Secret Key" + "message": "Sekreta Ŝlosilo" }, "twoFactorDuoApiHostname": { - "message": "API Hostname" + "message": "API Gastiganta Nomo" }, "twoFactorEmailDesc": { - "message": "Follow these steps to set up two-step login with email:" + "message": "Sekvu ĉi tiujn paŝojn por agordi du-paŝan ensaluton per retpoŝto:" }, "twoFactorEmailEnterEmail": { - "message": "Enter the email that you wish to receive verification codes" + "message": "Enigu la retpoŝton, ke vi volas ricevi kontrolajn kodojn" }, "twoFactorEmailEnterCode": { - "message": "Enter the resulting 6 digit verification code from the email" + "message": "Enigu la rezultan 6-ciferan konfirmkodon el la retpoŝto" }, "sendEmail": { - "message": "Send Email" + "message": "Sendi retpoŝton" }, "twoFactorU2fAdd": { - "message": "Add a FIDO U2F security key to your account" + "message": "Aldonu sekurecan ŝlosilon FIDO U2F al via konto" }, "removeU2fConfirmation": { - "message": "Are you sure you want to remove this security key?" + "message": "Ĉu vi certe volas forigi ĉi tiun sekurecan ŝlosilon?" + }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" }, "readKey": { - "message": "Read Key" + "message": "Legi Ŝlosilon" }, "keyCompromised": { - "message": "Key is compromised." + "message": "Ŝlosilo estas kompromitita." }, "twoFactorU2fGiveName": { - "message": "Give the security key a friendly name to identify it." + "message": "Donu al la sekureca ŝlosilo amikan nomon por identigi ĝin." }, "twoFactorU2fPlugInReadKey": { - "message": "Plug the security key into your computer's USB port and click the \"Read Key\" button." + "message": "Enŝovu la sekurecan ŝlosilon en la USB-havenon de via komputilo kaj alklaku la butonon \" Legu Ŝlosilon \"." }, "twoFactorU2fTouchButton": { - "message": "If the security key has a button, touch it." + "message": "Se la sekureca ŝlosilo havas butonon, tuŝu ĝin." }, "twoFactorU2fSaveForm": { - "message": "Save the form." + "message": "Konservu la formularon." }, "twoFactorU2fWarning": { - "message": "Due to platform limitations, FIDO U2F cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when FIDO U2F cannot be used. Supported platforms:" + "message": "Pro platformaj limigoj, FIDO U2F ne povas esti uzata en ĉiuj Bitwarden-aplikaĵoj. Vi rajtigu alian du-paŝan ensalutan provizanton, por ke vi povu aliri vian konton kiam FIDO U2F ne povas esti uzata. Subtenitaj platformoj:" }, "twoFactorU2fSupportWeb": { - "message": "Web vault and browser extensions on a desktop/laptop with a U2F enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + "message": "Reta volbo kaj retumilaj etendaĵoj sur labortablo / tekkomputilo kun U2F-ebligita retumilo (Chrome, Opera, Vivaldi aŭ Firefox kun FIDO U2F ebligita)." }, "twoFactorU2fWaiting": { - "message": "Waiting for you to touch the button on your security key" + "message": "Atendante, ke vi tuŝu la butonon de via sekureca ŝlosilo" }, "twoFactorU2fClickSave": { - "message": "Click the \"Save\" button below to enable this security key for two-step login." + "message": "Alklaku la suban butonon \" Konservi \"por ebligi ĉi tiun sekurecan ŝlosilon por du-ŝtupa ensaluto." }, "twoFactorU2fProblemReadingTryAgain": { "message": "There was a problem reading the security key. Try again." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { - "message": "Your Bitwarden two-step login recovery code" + "message": "Via Bitwarden-du-ŝtupa ensaluta reakiro-kodo" }, "twoFactorRecoveryNoCode": { - "message": "You have not enabled any two-step login providers yet. After you have enabled a two-step login provider you can check back here for your recovery code." + "message": "Vi ankoraŭ ne ebligis du-paŝajn ensalutajn provizantojn. Post kiam vi ebligis du-ŝtupan ensalut-provizanton, vi povas kontroli ĉi tie vian reakiran kodon." }, "printCode": { - "message": "Print Code", + "message": "Presi Kodon", "description": "Print 2FA recovery code" }, "reports": { "message": "Raportoj" }, "unsecuredWebsitesReport": { - "message": "Unsecured Websites Report" + "message": "Raporto pri Nesekurigitaj Retejoj" }, "unsecuredWebsitesReportDesc": { - "message": "Using unsecured websites with the http:// scheme can be dangerous. If the website allows, you should always access it using the https:// scheme so that your connection is encrypted." + "message": "Uzi nesekurigitajn retejojn kun la http: // skemo povas esti danĝera. Se la retejo permesas, vi ĉiam devas aliri ĝin per la skemo https: // tiel ke via konekto estas ĉifrita." }, "unsecuredWebsitesFound": { - "message": "Unsecured Websites Found" + "message": "Trovitaj Nesekurigitaj Retejoj" }, "unsecuredWebsitesFoundDesc": { - "message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:// if the website allows it.", + "message": "Ni trovis $COUNT$ erojn en via trezorejo kun nesekurigitaj URI-oj. Vi devas ŝanĝi ilian URI-skemon al https: // se la retejo permesas ĝin.", "placeholders": { "count": { "content": "$1", @@ -1373,16 +1400,16 @@ "message": "No items in your vault have unsecured URIs." }, "inactive2faReport": { - "message": "Inactive 2FA Report" + "message": "Raporto 2FA neaktiva" }, "inactive2faReportDesc": { - "message": "Two-factor authentication (2FA) is an important security setting that helps secure your accounts. If the website offers it, you should always enable two-factor authentication." + "message": "Dufakta aŭtentokontrolo (2FA) estas grava sekureca agordo, kiu helpas sekurigi viajn kontojn. Se la retejo ofertas ĝin, vi devas ĉiam ebligi dufakturan aŭtentikigon." }, "inactive2faFound": { - "message": "Logins Without 2FA Found" + "message": "Ensalutoj Sen 2FA Trovitaj" }, "inactive2faFoundDesc": { - "message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to 2fa.directory). To further protect these accounts, you should enable two-factor authentication.", + "message": "Ni trovis $COUNT$ retejon (j) en via trezorejo, kiu eble ne estas agordita kun dufakta aŭtentokontrolo (laŭ 2fa.directory). Por plue protekti ĉi tiujn kontojn, vi devas ebligi dufaktoran aŭtentikigon.", "placeholders": { "count": { "content": "$1", @@ -1391,22 +1418,22 @@ } }, "noInactive2fa": { - "message": "No websites were found in your vault with a missing two-factor authentication configuration." + "message": "Neniuj retejoj troviĝis en via trezorejo kun mankanta dufakta aŭtentiga agordo." }, "instructions": { "message": "Instrukcioj" }, "exposedPasswordsReport": { - "message": "Exposed Passwords Report" + "message": "Raporto pri Malkaŝitaj Pasvortoj" }, "exposedPasswordsReportDesc": { - "message": "Exposed passwords are passwords that have been uncovered in known data breaches that were released publicly or sold on the dark web by hackers." + "message": "Malkaŝitaj pasvortoj estas pasvortoj malkovritaj en konataj datumrompoj publikigitaj aŭ venditaj en la malluma retejo de retpiratoj." }, "exposedPasswordsFound": { - "message": "Exposed Passwords Found" + "message": "Trovitaj Pasvortoj Trovitaj" }, "exposedPasswordsFoundDesc": { - "message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.", + "message": "Ni trovis $COUNT$ erojn en via trezorejo, kiuj havas pasvortojn elmontritajn en konataj rompo de datumoj. Vi devas ŝanĝi ilin por uzi novan pasvorton.", "placeholders": { "count": { "content": "$1", @@ -1415,13 +1442,13 @@ } }, "noExposedPasswords": { - "message": "No items in your vault have passwords that have been exposed in known data breaches." + "message": "Neniuj eroj en via trezorejo havas pasvortojn elmontritajn en konataj rompo de datumoj." }, "checkExposedPasswords": { - "message": "Check Exposed Passwords" + "message": "Kontroli Malkaŝitajn Pasvortojn" }, "exposedXTimes": { - "message": "Exposed $COUNT$ time(s)", + "message": "Elmontritaj $COUNT$ tempo (j)", "placeholders": { "count": { "content": "$1", @@ -1430,16 +1457,16 @@ } }, "weakPasswordsReport": { - "message": "Weak Passwords Report" + "message": "Raporto pri Malfortaj Pasvortoj" }, "weakPasswordsReportDesc": { - "message": "Weak passwords can easily be guessed by hackers and automated tools that are used to crack passwords. The Bitwarden password generator can help you create strong passwords." + "message": "Malfortaj pasvortoj facile diveneblas per retpiratoj kaj aŭtomataj iloj, kiuj estas uzataj por rompi pasvortojn. La Bitwarden-pasvorta generatoro povas helpi vin krei fortajn pasvortojn." }, "weakPasswordsFound": { - "message": "Weak Passwords Found" + "message": "Malfortaj Pasvortoj Trovitaj" }, "weakPasswordsFoundDesc": { - "message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.", + "message": "Ni trovis $COUNT$ erojn en via trezorejo kun pasvortoj ne fortaj. Vi devas ĝisdatigi ilin por uzi pli fortajn pasvortojn.", "placeholders": { "count": { "content": "$1", @@ -1448,19 +1475,19 @@ } }, "noWeakPasswords": { - "message": "No items in your vault have weak passwords." + "message": "Neniuj eroj en via trezorejo havas malfortajn pasvortojn." }, "reusedPasswordsReport": { - "message": "Reused Passwords Report" + "message": "Raporto pri recikligitaj pasvortoj" }, "reusedPasswordsReportDesc": { - "message": "If a service that you use is compromised, reusing the same password elsewhere can allow hackers to easily gain access to more of your online accounts. You should use a unique password for every account or service." + "message": "Se servo, kiun vi uzas, estas kompromitita, reuzi la saman pasvorton aliloke povas permesi al retpiratoj facile aliri al pli da viaj retaj kontoj. Vi devas uzi unikan pasvorton por ĉiu konto aŭ servo." }, "reusedPasswordsFound": { - "message": "Reused Passwords Found" + "message": "Reuzitaj Pasvortoj Trovitaj" }, "reusedPasswordsFoundDesc": { - "message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.", + "message": "Ni trovis $COUNT$ pasvortojn reuzatajn en via trezorejo. Vi devas ŝanĝi ilin al unika valoro.", "placeholders": { "count": { "content": "$1", @@ -1469,10 +1496,10 @@ } }, "noReusedPasswords": { - "message": "No logins in your vault have passwords that are being reused." + "message": "Neniuj ensalutoj en via trezorejo havas pasvortojn reuzatajn." }, "reusedXTimes": { - "message": "Reused $COUNT$ times", + "message": "Reuzita $COUNT$ fojojn", "placeholders": { "count": { "content": "$1", @@ -1481,19 +1508,19 @@ } }, "dataBreachReport": { - "message": "Data Breach Report" + "message": "Raporto pri Malobservo de Datumoj" }, "breachDesc": { - "message": "A \"breach\" is an incident where a site's data has been illegally accessed by hackers and then released publicly. Review the types of data that were compromised (email addresses, passwords, credit cards etc.) and take appropriate action, such as changing passwords." + "message": "\" breĉo \"estas okazaĵo, kie la datumoj de retejo estis kontraŭleĝe aliritaj de retpiratoj kaj poste publikigitaj publike. Revizii la tipojn de datumoj kompromititaj (retpoŝtadresoj, pasvortoj, kreditkartoj ktp.) taŭga ago, kiel ŝanĝi pasvortojn. " }, "breachCheckUsernameEmail": { - "message": "Check any usernames or email addresses that you use." + "message": "Kontrolu iujn ajn uzantnomojn aŭ retpoŝtadresojn, kiujn vi uzas." }, "checkBreaches": { - "message": "Check Breaches" + "message": "Kontroli breĉojn" }, "breachUsernameNotFound": { - "message": "$USERNAME$ was not found in any known data breaches.", + "message": "$USERNAME$ ne estis trovita en iuj konataj rompo de datumoj.", "placeholders": { "username": { "content": "$1", @@ -1502,11 +1529,11 @@ } }, "goodNews": { - "message": "Good News", + "message": "Bonaj Novaĵoj", "description": "ex. Good News, No Breached Accounts Found!" }, "breachUsernameFound": { - "message": "$USERNAME$ was found in $COUNT$ different data breaches online.", + "message": "$USERNAME$ estis trovita en $COUNT$ malsamaj datumaj rompoj interrete.", "placeholders": { "username": { "content": "$1", @@ -1519,87 +1546,87 @@ } }, "breachFound": { - "message": "Breached Accounts Found" + "message": "Malobservitaj Kontoj Trovitaj" }, "compromisedData": { - "message": "Compromised data" + "message": "Kompromisitaj datumoj" }, "website": { "message": "Retejo" }, "affectedUsers": { - "message": "Affected Users" + "message": "Afektitaj Uzantoj" }, "breachOccurred": { - "message": "Breach Occurred" + "message": "Malobservo Okazis" }, "breachReported": { - "message": "Breach Reported" + "message": "Malobservo raportita" }, "reportError": { - "message": "An error occurred trying to load the report. Try again" + "message": "Eraro okazis provante ŝarĝi la raporton. Provu denove" }, "billing": { - "message": "Abono" + "message": "Fakturado" }, "accountCredit": { - "message": "Account Credit", + "message": "Kredita Konto", "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." }, "accountBalance": { - "message": "Konto Saldo", + "message": "Konta Bilanco", "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." }, "addCredit": { - "message": "Aldonu Kredito", + "message": "Aldoni Krediton", "description": "Add more credit to your account's balance." }, "amount": { - "message": "Sumo", + "message": "Kvanto", "description": "Dollar amount, or quantity." }, "creditDelayed": { - "message": "Aldonita kredito aperos en via konto post kiam la pago estas plene prilaborita. Iuj pagaj metodoj prokrastas kaj povas daŭri pli da tempo por procesi ol aliaj." + "message": "Aldonita kredito aperos en via konto post kiam la pago estos plene prilaborita. Iuj pagmanieroj malfruas kaj povas daŭri pli longe ol aliaj." }, "makeSureEnoughCredit": { - "message": "Please make sure that your account has enough credit available for this purchase. If your account does not have enough credit available, your default payment method on file will be used for the difference. You can add credit to your account from the Billing page." + "message": "Bonvolu certigi, ke via konto havas sufiĉe da kredito havebla por ĉi tiu aĉeto. Se via konto ne havas sufiĉe da kredito havebla, via defaŭlta pagmaniero uzata por la diferenco. Vi povas aldoni krediton al via konto de la Faktura paĝo. " }, "creditAppliedDesc": { - "message": "Your account's credit can be used to make purchases. Any available credit will be automatically applied towards invoices generated for this account." + "message": "La kredito de via konto povas esti uzata por aĉeti. Ĉiu havebla kredito aŭtomate aplikiĝos al fakturoj generitaj por ĉi tiu konto." }, "goPremium": { "message": "Iru Premium", "description": "Another way of saying \"Get a premium membership\"" }, "premiumUpdated": { - "message": "You've upgraded to premium." + "message": "Vi ĝisdatigis al premio." }, "premiumUpgradeUnlockFeatures": { - "message": "Upgrade your account to a premium membership and unlock some great additional features." + "message": "Altgradigu vian konton al supera membreco kaj malŝlosu iujn bonegajn aldonajn funkciojn." }, "premiumSignUpStorage": { - "message": "1 GB encrypted storage for file attachments." + "message": "1 GB ĉifrita stokado por dosieraj aldonaĵoj." }, "premiumSignUpTwoStep": { - "message": "Additional two-step login options such as YubiKey, FIDO U2F, and Duo." + "message": "Pliaj du-paŝaj ensalutaj opcioj kiel YubiKey, FIDO U2F kaj Duo." }, "premiumSignUpEmergency": { - "message": "Emergency Access" + "message": "Kriza Aliro" }, "premiumSignUpReports": { - "message": "Password hygiene, account health, and data breach reports to keep your vault safe." + "message": "Raportoj pri pasvorta higieno, sanstato de kontoj kaj rompo de datumoj por protekti vian trezorejon." }, "premiumSignUpTotp": { - "message": "TOTP verification code (2FA) generator for logins in your vault." + "message": "Generilo de TOTP-kontrola kodo (2FA) por ensalutoj en via trezorejo." }, "premiumSignUpSupport": { - "message": "Priority customer support." + "message": "Prioritata klienta subteno." }, "premiumSignUpFuture": { - "message": "All future premium features. More coming soon!" + "message": "Ĉiuj estontaj premiaj funkcioj. Pli baldaŭ!" }, "premiumPrice": { - "message": "All for just $PRICE$ /year!", + "message": "Ĉio kontraŭ nur $PRICE$ / jaro!", "placeholders": { "price": { "content": "$1", @@ -1611,10 +1638,10 @@ "message": "Aldonaĵoj" }, "premiumAccess": { - "message": "Premium Access" + "message": "Altkvalita Aliro" }, "premiumAccessDesc": { - "message": "You can add premium access to all members of your organization for $PRICE$ /$INTERVAL$.", + "message": "Vi povas aldoni altkvalitan aliron al ĉiuj membroj de via organizo kontraŭ $PRICE$ / $INTERVAL$.", "placeholders": { "price": { "content": "$1", @@ -1627,13 +1654,13 @@ } }, "additionalStorageGb": { - "message": "Additional Storage (GB)" + "message": "Aldona Stokado (GB)" }, "additionalStorageGbDesc": { - "message": "# of additional GB" + "message": "Nombro da pliaj GB" }, "additionalStorageIntervalDesc": { - "message": "Your plan comes with $SIZE$ of encrypted file storage. You can add additional storage for $PRICE$ per GB /$INTERVAL$.", + "message": "Via plano venas kun $SIZE$ da ĉifrita dosier-stokado. Vi povas aldoni plian stokadon kontraŭ $PRICE$ po GB / $INTERVAL$.", "placeholders": { "size": { "content": "$1", @@ -1650,10 +1677,10 @@ } }, "summary": { - "message": "Enhavo" + "message": "Resumo" }, "total": { - "message": "Tuto" + "message": "Entute" }, "year": { "message": "jaro" @@ -1666,10 +1693,10 @@ "description": "Short abbreviation for 'month'" }, "paymentChargedAnnually": { - "message": "Via pago-metodo estos akuzita tuj kaj tiam laŭ recita jaro ĉiujare. Vi povas nuligi en ajna momento." + "message": "Via pagmaniero estos ŝargita tuj kaj poste ripetiĝante ĉiujare. Vi rajtas nuligi iam ajn." }, "paymentCharged": { - "message": "Your payment method will be charged immediately and then on a recurring basis each $INTERVAL$. You may cancel at any time.", + "message": "Via pagmaniero tuj estos ŝargita kaj poste ripetiĝante ĉiu $INTERVAL$. Vi rajtas nuligi iam ajn.", "placeholders": { "interval": { "content": "$1", @@ -1678,7 +1705,7 @@ } }, "paymentChargedWithTrial": { - "message": "Via plano venas kun senpaga 7-taga provo. Via pago-metodo ne estos ŝargita ĝis la proceso finiĝos. Fakturado okazos laŭkalkule ĉiun $INTERVAL$. Vi povas nuligi en ajna momento.", + "message": "Via plano venas kun senpaga 7-taga provado. Via pagmaniero ne estos ŝargita ĝis la proceso finiĝos. Fakturado okazos ĉiufoje $INTERVAL$. Vi rajtas nuligi iam ajn.", "placeholders": { "interval": { "content": "$1", @@ -1687,43 +1714,43 @@ } }, "paymentInformation": { - "message": "Informoj pri Pago" + "message": "Pagaj Informoj" }, "billingInformation": { - "message": "Billing Information" + "message": "Fakturaj Informoj" }, "creditCard": { - "message": "Credit Card" + "message": "Kreditkarto" }, "paypalClickSubmit": { - "message": "Click the PayPal button to log into your PayPal account, then click the Submit button below to continue." + "message": "Alklaku la butonon PayPal por ensaluti vian konton PayPal, poste alklaku la butonon Sendu sube por daŭrigi." }, "cancelSubscription": { - "message": "Cancel Subscription" + "message": "Nuligi Abonon" }, "subscriptionCanceled": { - "message": "The subscription has been canceled." + "message": "La abono estis nuligita." }, "pendingCancellation": { - "message": "Pending Cancellation" + "message": "Atendanta Nuligo" }, "subscriptionPendingCanceled": { - "message": "The subscription has been marked for cancellation at the end of the current billing period." + "message": "La abono estis markita por nuligo ĉe la fino de la nuna faktura periodo." }, "reinstateSubscription": { - "message": "Reinstate Subscription" + "message": "Reinstali Abonon" }, "reinstateConfirmation": { - "message": "Are you sure you want to remove the pending cancellation request and reinstate your subscription?" + "message": "Ĉu vi certe volas forigi la pritraktatan nuligan peton kaj reinstali vian abonon?" }, "reinstated": { - "message": "The subscription has been reinstated." + "message": "La abono estis reinstalita." }, "cancelConfirmation": { - "message": "Are you sure you want to cancel? You will lose access to all of this subscription's features at the end of this billing cycle." + "message": "Ĉu vi certas, ke vi volas nuligi? Vi perdos aliron al ĉiuj funkcioj de ĉi tiu abono fine de ĉi tiu faktura ciklo." }, "canceledSubscription": { - "message": "The subscription has been canceled." + "message": "La abono estis nuligita." }, "neverExpires": { "message": "Never Expires" @@ -1732,34 +1759,34 @@ "message": "Stato" }, "nextCharge": { - "message": "Next Charge" + "message": "Sekva Akuzo" }, "details": { "message": "Detaloj" }, "downloadLicense": { - "message": "Download License" + "message": "Elŝuti Permesilon" }, "updateLicense": { - "message": "Update License" + "message": "Ĝisdatigi Permesilon" }, "updatedLicense": { - "message": "Updated license" + "message": "Ĝisdatigita permesilo" }, "manageSubscription": { - "message": "Manage Subscription" + "message": "Administri Abonon" }, "storage": { "message": "Stokado" }, "addStorage": { - "message": "Add Storage" + "message": "Aldoni Stokadon" }, "removeStorage": { - "message": "Remove Storage" + "message": "Forigi Stokadon" }, "subscriptionStorage": { - "message": "Your subscription has a total of $MAX_STORAGE$ GB of encrypted file storage. You are currently using $USED_STORAGE$.", + "message": "Via abono havas entute $MAX_STORAGE$ GB da ĉifrita dosier-stokado. Vi nun uzas $USED_STORAGE$.", "placeholders": { "max_storage": { "content": "$1", @@ -1775,45 +1802,45 @@ "message": "Pagmaniero" }, "noPaymentMethod": { - "message": "No payment method on file." + "message": "Neniu pagmaniero registrita." }, "addPaymentMethod": { - "message": "Add Payment Method" + "message": "Aldoni Pagmanieron" }, "changePaymentMethod": { - "message": "Change Payment Method" + "message": "Ŝanĝi Pagmanieron" }, "invoices": { "message": "Fakturoj" }, "noInvoices": { - "message": "No invoices." + "message": "Neniuj fakturoj." }, "paid": { "message": "Pagita", "description": "Past tense status of an invoice. ex. Paid or unpaid." }, "unpaid": { - "message": "Senpaga", + "message": "Sensalajra", "description": "Past tense status of an invoice. ex. Paid or unpaid." }, "transactions": { - "message": "Transactions", + "message": "Transakcioj", "description": "Payment/credit transactions." }, "noTransactions": { - "message": "Neniu spezoj." + "message": "Sen transakcioj." }, "chargeNoun": { - "message": "Charge", + "message": "Akuzo", "description": "Noun. A charge from a payment method." }, "refundNoun": { - "message": "Rifondado", + "message": "Repago", "description": "Noun. A refunded payment that was charged." }, "chargesStatement": { - "message": "Any charges will appear on your statement as $STATEMENT_NAME$.", + "message": "Ĉiuj akuzoj aperos en via deklaro kiel $STATEMENT_NAME$.", "placeholders": { "statement_name": { "content": "$1", @@ -1822,19 +1849,19 @@ } }, "gbStorageAdd": { - "message": "GB of Storage To Add" + "message": "Aldoni GB-Stokadon" }, "gbStorageRemove": { - "message": "GB of Storage To Remove" + "message": "Forigi GB-Stokadon" }, "storageAddNote": { - "message": "Adding storage will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + "message": "Aldonado de stokado rezultigos ĝustigojn al viaj fakturaj sumoj kaj tuj ŝargos vian pagmanieron en dosiero. La unua ŝarĝo estos proporciigita por la resto de la aktuala faktura ciklo." }, "storageRemoveNote": { - "message": "Removing storage will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + "message": "Forigi stokadon rezultigos ĝustigojn al viaj fakturaj sumoj, kiuj estos proratigitaj kiel kreditoj al via sekva faktura ŝarĝo." }, "adjustedStorage": { - "message": "Adjusted $AMOUNT$ GB of storage.", + "message": "Ĝustigita $AMOUNT$ GB da stokado.", "placeholders": { "amount": { "content": "$1", @@ -1843,19 +1870,19 @@ } }, "contactSupport": { - "message": "Contact Customer Support" + "message": "Kontakti Klientan Subtenon" }, "updatedPaymentMethod": { - "message": "Updated payment method." + "message": "Ĝisdatigita pagmaniero." }, "purchasePremium": { - "message": "Purchase Premium" + "message": "Aĉetu Superpagon" }, "licenseFile": { - "message": "License File" + "message": "Permesila Dosiero" }, "licenseFileDesc": { - "message": "Your license file will be named something like $FILE_NAME$", + "message": "Via licenca dosiero nomiĝos kiel $FILE_NAME$", "placeholders": { "file_name": { "content": "$1", @@ -1864,49 +1891,49 @@ } }, "uploadLicenseFilePremium": { - "message": "To upgrade your account to a premium membership you need to upload a valid license file." + "message": "Por ĝisdatigi vian konton al altkvalita membreco vi devas alŝuti validan licencdosieron." }, "uploadLicenseFileOrg": { - "message": "To create an on-premises hosted organization you need to upload a valid license file." + "message": "Por krei lokan gastigitan organizon, vi devas alŝuti validan licencdosieron." }, "accountEmailMustBeVerified": { - "message": "Your account's email address must be verified." + "message": "La retpoŝta adreso de via konto devas esti kontrolita." }, "newOrganizationDesc": { - "message": "Organizations allow you to share parts of your vault with others as well as manage related users for a specific entity such as a family, small team, or large company." + "message": "Organizoj permesas al vi dividi partojn de via trezorejo kun aliaj kaj administri rilatajn uzantojn por specifa ento kiel familio, malgranda teamo aŭ granda kompanio." }, "generalInformation": { - "message": "Ĝeneralaj informoj" + "message": "Ĝeneralaj Informoj" }, "organizationName": { - "message": "Nomo de la organizo" + "message": "Organiza nomo" }, "accountOwnedBusiness": { - "message": "This account is owned by a business." + "message": "Ĉi tiu konto estas posedata de kompanio." }, "billingEmail": { - "message": "Billing Email" + "message": "Faktura Retpoŝto" }, "businessName": { - "message": "Business Name" + "message": "Komerca nomo" }, "chooseYourPlan": { - "message": "Choose Your Plan" + "message": "Elektu Vian Planon" }, "users": { "message": "Uzantoj" }, "userSeats": { - "message": "User Seats" + "message": "Uzantaj Sidlokoj" }, "additionalUserSeats": { - "message": "Additional User Seats" + "message": "Pliaj Uzaj Lokoj" }, "userSeatsDesc": { - "message": "# of user seats" + "message": "Nombro de uzantaj lokoj" }, "userSeatsAdditionalDesc": { - "message": "Your plan comes with $BASE_SEATS$ user seats. You can add additional users for $SEAT_PRICE$ per user /month.", + "message": "Via plano venas kun $BASE_SEATS$ uzanto-seĝoj. Vi povas aldoni pliajn uzantojn kontraŭ $SEAT_PRICE$ po uzanto / monato.", "placeholders": { "base_seats": { "content": "$1", @@ -1919,14 +1946,14 @@ } }, "userSeatsHowManyDesc": { - "message": "How many user seats do you need? You can also add additional seats later if needed." + "message": "Kiom da uzantaj seĝoj vi bezonas? Vi ankaŭ povas aldoni pliajn seĝojn poste se necese." }, "planNameFree": { "message": "Senpaga", "description": "Free as in 'free beer'." }, "planDescFree": { - "message": "For testing or personal users to share with $COUNT$ other user.", + "message": "Por testado aŭ personaj uzantoj dividi kun $COUNT$ alia uzanto.", "placeholders": { "count": { "content": "$1", @@ -1938,25 +1965,25 @@ "message": "Familioj" }, "planDescFamilies": { - "message": "For personal use, to share with family & friends." + "message": "Por persona uzo, dividi kun familio kaj amikoj." }, "planNameTeams": { "message": "Teamoj" }, "planDescTeams": { - "message": "For businesses and other team organizations." + "message": "Por entreprenoj kaj aliaj teamaj organizoj." }, "planNameEnterprise": { "message": "Entrepreno" }, "planDescEnterprise": { - "message": "For businesses and other large organizations." + "message": "Por entreprenoj kaj aliaj grandaj organizoj." }, "freeForever": { - "message": "Senpaga Por ĉiam" + "message": "Senpaga Eterne" }, "includesXUsers": { - "message": "includes $COUNT$ users", + "message": "inkluzivas $COUN$ uzantojn", "placeholders": { "count": { "content": "$1", @@ -1965,10 +1992,10 @@ } }, "additionalUsers": { - "message": "Additional Users" + "message": "Pliaj Uzantoj" }, "costPerUser": { - "message": "$COST$ per user", + "message": "$COST$ por uzanto", "placeholders": { "cost": { "content": "$1", @@ -1977,7 +2004,7 @@ } }, "limitedUsers": { - "message": "Limited to $COUNT$ users (including you)", + "message": "Limigita al $COUNT$ uzantoj (inkluzive de vi)", "placeholders": { "count": { "content": "$1", @@ -1986,7 +2013,7 @@ } }, "limitedCollections": { - "message": "Limited to $COUNT$ collections", + "message": "Limigita al $COUNT$ -kolektoj", "placeholders": { "count": { "content": "$1", @@ -1995,7 +2022,7 @@ } }, "addShareLimitedUsers": { - "message": "Add and share with up to $COUNT$ users", + "message": "Aldoni kaj dividi kun ĝis $COUNT$ uzantoj", "placeholders": { "count": { "content": "$1", @@ -2004,13 +2031,13 @@ } }, "addShareUnlimitedUsers": { - "message": "Add and share with unlimited users" + "message": "Aldoni kaj dividi kun senlimaj uzantoj" }, "createUnlimitedCollections": { - "message": "Create unlimited Collections" + "message": "Krei senlimajn Kolektojn" }, "gbEncryptedFileStorage": { - "message": "$SIZE$ encrypted file storage", + "message": "$SIZE$ ĉifrita dosier-stokado", "placeholders": { "size": { "content": "$1", @@ -2019,28 +2046,28 @@ } }, "onPremHostingOptional": { - "message": "On-premise hosting (optional)" + "message": "Surloka gastigado (nedeviga)" }, "usersGetPremium": { - "message": "Users get access to Premium Features" + "message": "Uzantoj ricevas aliron al Premiaj Trajtoj" }, "controlAccessWithGroups": { - "message": "Control user access with Groups" + "message": "Kontroli la aliron de uzanto per Grupoj" }, "syncUsersFromDirectory": { - "message": "Sync your users and Groups from a directory" + "message": "Sinkronigu viajn uzantojn kaj grupojn de dosierujo" }, "trackAuditLogs": { - "message": "Track user actions with audit logs" + "message": "Spuri agojn de uzanto per kontrolaj protokoloj" }, "enforce2faDuo": { - "message": "Enforce 2FA with Duo" + "message": "Devigi 2FA kun Duo" }, "priorityCustomerSupport": { - "message": "Priority customer support" + "message": "Prioritata klienta subteno" }, "xDayFreeTrial": { - "message": "$COUNT$ day free trial, cancel anytime", + "message": "$COUNT$ taga senpaga provo, nuligu iam ajn", "placeholders": { "count": { "content": "$1", @@ -2049,115 +2076,115 @@ } }, "monthly": { - "message": "Ĉiumonate" + "message": "Monata" }, "annually": { - "message": "Ĉiujara" + "message": "Ĉiujare" }, "basePrice": { - "message": "Baze Prezo" + "message": "Baza Prezo" }, "organizationCreated": { - "message": "Organizo Kreita" + "message": "Organizo kreita" }, "organizationReadyToGo": { - "message": "Your new organization is ready to go!" + "message": "Via nova organizo pretas!" }, "organizationUpgraded": { - "message": "Your organization has been upgraded." + "message": "Via organizo estis plibonigita." }, "leave": { - "message": "Lasu" + "message": "Foriri" }, "leaveOrganizationConfirmation": { - "message": "Ĉu vi certe volas forlasi ĉi tiun grupon?" + "message": "Ĉu vi certe volas forlasi ĉi tiun organizon?" }, "leftOrganization": { - "message": "You have left the organization." + "message": "Vi forlasis la organizon." }, "defaultCollection": { - "message": "Default Collection" + "message": "Apriora Kolekto" }, "getHelp": { - "message": "Serĉi Helpo" + "message": "Akiri Helpon" }, "getApps": { - "message": "Get the Apps" + "message": "Akiru la Programojn" }, "loggedInAs": { - "message": "Logged in as" + "message": "Ensalutinta kiel" }, "eventLogs": { - "message": "Event Logs" + "message": "Eventaj Registroj" }, "people": { - "message": "People" + "message": "Homoj" }, "policies": { "message": "Politikoj" }, "editPolicy": { - "message": "Edit Policy" + "message": "Redakti politikon" }, "groups": { "message": "Grupoj" }, "newGroup": { - "message": "Nova grupo" + "message": "Nova Grupo" }, "addGroup": { - "message": "Aldoni Grupon" + "message": "Aldoni grupon" }, "editGroup": { - "message": "Redakti Grupon" + "message": "Redakti grupon" }, "deleteGroupConfirmation": { - "message": "Ĉu vi certas, ke vi volas forigi ĉi tiun grupon?" + "message": "Ĉu vi certe volas forigi ĉi tiun grupon?" }, "removeUserConfirmation": { - "message": "Ĉu vi certas, ke vi volas forigi ĉi tiun grupon?" + "message": "Ĉu vi certe volas forigi ĉi tiun uzanton?" }, "externalId": { - "message": "External Id" + "message": "Ekstera identigilo" }, "externalIdDesc": { - "message": "The external id can be used as a reference or to link this resource to an external system such as a user directory." + "message": "La ekstera identigilo povas esti uzata kiel referenco aŭ por ligi ĉi tiun rimedon al ekstera sistemo kiel uzantdosierujo." }, "accessControl": { - "message": "Access Control" + "message": "Alirkontrolo" }, "groupAccessAllItems": { - "message": "This group can access and modify all items." + "message": "Ĉi tiu grupo povas aliri kaj modifi ĉiujn erojn." }, "groupAccessSelectedCollections": { - "message": "This group can access only the selected collections." + "message": "Ĉi tiu grupo povas aliri nur la elektitajn kolektojn." }, "readOnly": { - "message": "Read Only" + "message": "Nurlegebla" }, "newCollection": { "message": "Nova Kolekto" }, "addCollection": { - "message": "Nova Kolekto" + "message": "Aldoni Kolekton" }, "editCollection": { "message": "Redakti Kolekton" }, "deleteCollectionConfirmation": { - "message": "Ĉu vi certas, ke vi volas forigi ĉi tiun grupon?" + "message": "Ĉu vi certe volas forigi ĉi tiun kolekton?" }, "editUser": { - "message": "Redakti Uzanton" + "message": "Redakti uzanton" }, "inviteUser": { - "message": "Inviti Uzanton" + "message": "Inviti uzanton" }, "inviteUserDesc": { - "message": "Invite a new user to your organization by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + "message": "Invitu novan uzanton al via organizo enigante ĉi-sube sian retpoŝtan adreson Bitwarden. Se ili ne havas Bitwarden-konton jam, ili estos petataj krei novan konton." }, "inviteMultipleEmailDesc": { - "message": "You can invite up to $COUNT$ users at a time by comma separating a list of email addresses.", + "message": "Vi povas inviti ĝis $COUNT$ uzantojn samtempe per komo apartigante liston de retpoŝtadresoj.", "placeholders": { "count": { "content": "$1", @@ -2166,13 +2193,13 @@ } }, "userUsingTwoStep": { - "message": "This user is using two-step login to protect their account." + "message": "Ĉi tiu uzanto uzas du-paŝan ensaluton por protekti sian konton." }, "userAccessAllItems": { - "message": "This user can access and modify all items." + "message": "Ĉi tiu uzanto povas aliri kaj modifi ĉiujn erojn." }, "userAccessSelectedCollections": { - "message": "This user can access only the selected collections." + "message": "Ĉi tiu uzanto povas aliri nur la elektitajn kolektojn." }, "search": { "message": "Serĉi" @@ -2187,37 +2214,37 @@ "message": "Konfirmita" }, "owner": { - "message": "Mastro" + "message": "Posedanto" }, "ownerDesc": { - "message": "The highest access user that can manage all aspects of your organization." + "message": "La plej alt-alira uzanto, kiu povas administri ĉiujn aspektojn de via organizo." }, "admin": { "message": "Administranto" }, "adminDesc": { - "message": "Admins can access and manage all items, collections and users in your organization." + "message": "Administrantoj povas aliri kaj administri ĉiujn erojn, kolektojn kaj uzantojn en via organizo." }, "user": { "message": "Uzanto" }, "userDesc": { - "message": "A regular user with access to assigned collections in your organization." + "message": "Regula uzanto kun aliro al asignitaj kolektoj en via organizo." }, "manager": { - "message": "Direktisto" + "message": "Administranto" }, "managerDesc": { - "message": "Managers can access and manage assigned collections in your organization." + "message": "Administrantoj povas aliri kaj administri asignitajn kolektojn en via organizo." }, "all": { "message": "Ĉiuj" }, "refresh": { - "message": "Refreŝigu" + "message": "Refreŝigi" }, "timestamp": { - "message": "Tempindiko" + "message": "Horstampo" }, "event": { "message": "Evento" @@ -2226,18 +2253,18 @@ "message": "Nekonata" }, "loadMore": { - "message": "Load More" + "message": "Ŝargi Pli" }, "mobile": { "message": "Poŝtelefono", "description": "Mobile app" }, "extension": { - "message": "Etendo", + "message": "Etendaĵo", "description": "Browser extension/addon" }, "desktop": { - "message": "Surtabla", + "message": "Labortablo", "description": "Desktop app" }, "webVault": { @@ -2247,34 +2274,34 @@ "message": "Ensalutinta." }, "changedPassword": { - "message": "Ŝanĝi pasvorton de konto." + "message": "Ŝanĝis pasvorton de konto." }, "enabledUpdated2fa": { - "message": "Enabled/updated two-step login." + "message": "Ebligita / ĝisdatigita du-ŝtupa ensaluto." }, "disabled2fa": { - "message": "Disabled two-step login." + "message": "Malebligita du-ŝtupa ensaluto." }, "recovered2fa": { - "message": "Recovered account from two-step login." + "message": "Rekuperita konto post du-ŝtupa ensaluto." }, "failedLogin": { - "message": "Login attempt failed with incorrect password." + "message": "Ensaluta provo malsukcesis kun malĝusta pasvorto." }, "failedLogin2fa": { - "message": "Login attempt failed with incorrect two-step login." + "message": "Ensaluta provo malsukcesis kun malĝusta du-ŝtupa ensaluto." }, "exportedVault": { - "message": "Exported vault." + "message": "Eksportita trezorejo." }, "exportedOrganizationVault": { - "message": "Exported organization vault." + "message": "Eksportita organizo-volbo." }, "editedOrgSettings": { - "message": "Edited organization settings." + "message": "Redaktitaj organizaj agordoj." }, "createdItemId": { - "message": "Created item $ID$.", + "message": "Kreita ero $ID$.", "placeholders": { "id": { "content": "$1", @@ -2283,7 +2310,7 @@ } }, "editedItemId": { - "message": "Edited item $ID$.", + "message": "Redaktita ero $ID $.", "placeholders": { "id": { "content": "$1", @@ -2292,7 +2319,7 @@ } }, "deletedItemId": { - "message": "Sent item $ID$ to trash.", + "message": "Sendita ero $ID $al rubujo.", "placeholders": { "id": { "content": "$1", @@ -2301,7 +2328,7 @@ } }, "sharedItemId": { - "message": "Shared item $ID$.", + "message": "Komuna ero $ID $.", "placeholders": { "id": { "content": "$1", @@ -2310,7 +2337,7 @@ } }, "viewedItemId": { - "message": "Viewed item $ID$.", + "message": "Vidita ero $ID $.", "placeholders": { "id": { "content": "$1", @@ -2319,7 +2346,7 @@ } }, "viewedPasswordItemId": { - "message": "Viewed password for item $ID$.", + "message": "Vidita pasvorto por ero $ID $.", "placeholders": { "id": { "content": "$1", @@ -2328,7 +2355,7 @@ } }, "viewedHiddenFieldItemId": { - "message": "Viewed hidden field for item $ID$.", + "message": "Vidita kaŝita kampo por ero $ID $.", "placeholders": { "id": { "content": "$1", @@ -2337,7 +2364,7 @@ } }, "viewedSecurityCodeItemId": { - "message": "Viewed security code for item $ID$.", + "message": "Vidita sekureca kodo por ero $ID $.", "placeholders": { "id": { "content": "$1", @@ -2346,7 +2373,7 @@ } }, "copiedPasswordItemId": { - "message": "Copied password for item $ID$.", + "message": "Kopiita pasvorto por ero $ID $.", "placeholders": { "id": { "content": "$1", @@ -2355,7 +2382,7 @@ } }, "copiedHiddenFieldItemId": { - "message": "Copied hidden field for item $ID$.", + "message": "Kopiita kaŝita kampo por ero $ID $.", "placeholders": { "id": { "content": "$1", @@ -2364,7 +2391,7 @@ } }, "copiedSecurityCodeItemId": { - "message": "Copied security code for item $ID$.", + "message": "Kopiita sekureca kodo por ero $ID $.", "placeholders": { "id": { "content": "$1", @@ -2373,7 +2400,7 @@ } }, "autofilledItemId": { - "message": "Auto-filled item $ID$.", + "message": "Aŭtomate plenigita ero $ID $.", "placeholders": { "id": { "content": "$1", @@ -2382,7 +2409,7 @@ } }, "createdCollectionId": { - "message": "Created collection $ID$.", + "message": "Kreita kolekto $ID $.", "placeholders": { "id": { "content": "$1", @@ -2391,7 +2418,7 @@ } }, "editedCollectionId": { - "message": "Edited collection $ID$.", + "message": "Redaktita kolekto $ID $.", "placeholders": { "id": { "content": "$1", @@ -2400,7 +2427,7 @@ } }, "deletedCollectionId": { - "message": "Deleted collection $ID$.", + "message": "Forigita kolekto $ID $.", "placeholders": { "id": { "content": "$1", @@ -2409,7 +2436,7 @@ } }, "editedPolicyId": { - "message": "Edited policy $ID$.", + "message": "Redaktita politiko $ID $.", "placeholders": { "id": { "content": "$1", @@ -2418,7 +2445,7 @@ } }, "createdGroupId": { - "message": "Created group $ID$.", + "message": "Kreita grupo $ID $.", "placeholders": { "id": { "content": "$1", @@ -2427,7 +2454,7 @@ } }, "editedGroupId": { - "message": "Edited group $ID$.", + "message": "Redaktita grupo $ID $.", "placeholders": { "id": { "content": "$1", @@ -2436,7 +2463,7 @@ } }, "deletedGroupId": { - "message": "Deleted group $ID$.", + "message": "Forigita grupo $ID $.", "placeholders": { "id": { "content": "$1", @@ -2445,7 +2472,7 @@ } }, "removedUserId": { - "message": "Removed user $ID$.", + "message": "Forigita uzanto $ID $.", "placeholders": { "id": { "content": "$1", @@ -2454,7 +2481,7 @@ } }, "createdAttachmentForItem": { - "message": "Created attachment for item $ID$.", + "message": "Kreita aldonaĵo por ero $ID $.", "placeholders": { "id": { "content": "$1", @@ -2463,7 +2490,7 @@ } }, "deletedAttachmentForItem": { - "message": "Deleted attachment for item $ID$.", + "message": "Forigita aldonaĵo por ero $ID $.", "placeholders": { "id": { "content": "$1", @@ -2472,7 +2499,7 @@ } }, "editedCollectionsForItem": { - "message": "Edited collections for item $ID$.", + "message": "Redaktitaj kolektoj por ero $ID $.", "placeholders": { "id": { "content": "$1", @@ -2481,7 +2508,7 @@ } }, "invitedUserId": { - "message": "Invited user $ID$.", + "message": "Invitita uzanto $ID $.", "placeholders": { "id": { "content": "$1", @@ -2490,7 +2517,7 @@ } }, "confirmedUserId": { - "message": "Confirmed user $ID$.", + "message": "Konfirmita uzanto $ID $.", "placeholders": { "id": { "content": "$1", @@ -2499,7 +2526,7 @@ } }, "editedUserId": { - "message": "Edited user $ID$.", + "message": "Redaktita uzanto $ID $.", "placeholders": { "id": { "content": "$1", @@ -2508,7 +2535,7 @@ } }, "editedGroupsForUser": { - "message": "Edited groups for user $ID$.", + "message": "Redaktitaj grupoj por uzanto $ID $.", "placeholders": { "id": { "content": "$1", @@ -2517,7 +2544,7 @@ } }, "unlinkedSsoUser": { - "message": "Unlinked SSO for user $ID$.", + "message": "Senligita SSO por uzanto $ID $.", "placeholders": { "id": { "content": "$1", @@ -2529,34 +2556,34 @@ "message": "Aparato" }, "view": { - "message": "Rigardu" + "message": "Vidigi" }, "invalidDateRange": { - "message": "Invalid date range." + "message": "Nevalida datintervalo." }, "errorOccurred": { - "message": "An error has occurred." + "message": "Eraro okazis." }, "userAccess": { - "message": "User Access" + "message": "Uzanto-Aliro" }, "userType": { - "message": "User Type" + "message": "Uzanto-Tipo" }, "groupAccess": { - "message": "Aliro de grupo" + "message": "Grupaliro" }, "groupAccessUserDesc": { - "message": "Edit the groups that this user belongs to." + "message": "Redaktu la grupojn al kiuj apartenas ĉi tiu uzanto." }, "invitedUsers": { - "message": "Invited user(s)." + "message": "Invititaj uzantoj." }, "resendInvitation": { - "message": "Resend Invitation" + "message": "Resendi Inviton" }, "hasBeenReinvited": { - "message": "$USER$ has been reinvited.", + "message": "$USER$ estis reenvitita.", "placeholders": { "user": { "content": "$1", @@ -2568,10 +2595,10 @@ "message": "Konfirmi" }, "confirmUser": { - "message": "Confirm User" + "message": "Konfirmi uzanton" }, "hasBeenConfirmed": { - "message": "$USER$ has been confirmed.", + "message": "$USER$ estas konfirmita.", "placeholders": { "user": { "content": "$1", @@ -2580,58 +2607,64 @@ } }, "confirmUsers": { - "message": "Confirm Users" + "message": "Konfirmi Uzantojn" }, "usersNeedConfirmed": { - "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the organization until they are confirmed." + "message": "Vi havas uzantojn, kiuj akceptis sian inviton, sed tamen devas esti konfirmitaj. Uzantoj ne havos aliron al la organizo antaŭ ol ili estos konfirmitaj." }, "startDate": { - "message": "Komencdato" + "message": "Komenca dato" }, "endDate": { "message": "Fina dato" }, "verifyEmail": { - "message": "Verify Email" + "message": "Kontroli retpoŝton" }, "verifyEmailDesc": { - "message": "Verify your account's email address to unlock access to all features." + "message": "Kontrolu la retpoŝtadreson de via konto por malŝlosi aliron al ĉiuj funkcioj." }, "verifyEmailFirst": { - "message": "Your account's email address first must be verified." + "message": "La retpoŝta adreso de via konto unue devas esti kontrolita." }, "checkInboxForVerification": { - "message": "Check your email inbox for a verification link." + "message": "Kontrolu vian retpoŝtan enirkeston por kontroli ligon." }, "emailVerified": { - "message": "Your email has been verified." + "message": "Via retpoŝto estis kontrolita." }, "emailVerifiedFailed": { - "message": "Unable to verify your email. Try sending a new verification email." + "message": "Ne eblas kontroli vian retpoŝton. Provu sendi novan kontrolan retpoŝton." + }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." }, "updateBrowser": { - "message": "Update Browser" + "message": "Ĝisdatigi retumilon" }, "updateBrowserDesc": { - "message": "You are using an unsupported web browser. The web vault may not function properly." + "message": "Vi uzas nesubtenatan tTT-legilon. La ttt-volbo eble ne funkcias ĝuste." }, "joinOrganization": { - "message": "Aliĝu al Organizo" + "message": "Aliĝi al Organizo" }, "joinOrganizationDesc": { - "message": "You've been invited to join the organization listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + "message": "Vi estis invitita aliĝi al la organizo supre listigita. Por akcepti la inviton, vi devas ensaluti aŭ krei novan Bitwarden-konton." }, "inviteAccepted": { - "message": "Invitation Accepted" + "message": "Invito Akceptita" }, "inviteAcceptedDesc": { - "message": "You can access this organization once an administrator confirms your membership. We'll send you an email when that happens." + "message": "Vi povas aliri ĉi tiun organizon post kiam administranto konfirmos vian membrecon. Ni sendos al vi retpoŝton kiam tio okazos." }, "inviteAcceptFailed": { - "message": "Unable to accept invitation. Ask an organization admin to send a new invitation." + "message": "Ne eblas akcepti inviton. Petu administranton de organizo sendi novan inviton." }, "inviteAcceptFailedShort": { - "message": "Unable to accept invitation. $DESCRIPTION$", + "message": "Ne eblas akcepti inviton. $DESCRIPTION $", "placeholders": { "description": { "content": "$1", @@ -2640,28 +2673,28 @@ } }, "rememberEmail": { - "message": "Memori retpoŝto" + "message": "Memoru retpoŝton" }, "recoverAccountTwoStepDesc": { - "message": "If you cannot access your account through your normal two-step login methods, you can use your two-step login recovery code to disable all two-step providers on your account." + "message": "Se vi ne povas aliri vian konton per viaj normalaj du-ŝtupaj ensalutaj metodoj, vi povas uzi vian du-ŝtupan ensalutan rekuperan kodon por malŝalti ĉiujn du-ŝtupajn provizantojn en via konto." }, "recoverAccountTwoStep": { - "message": "Recover Account Two-Step Login" + "message": "Rekuperi Ensaluton Du-Paŝan" }, "twoStepRecoverDisabled": { - "message": "Two-step login has been disabled on your account." + "message": "Du-ŝtupa ensaluto estas malŝaltita en via konto." }, "learnMore": { - "message": "Lerni pli" + "message": "Lernu pli" }, "deleteRecoverDesc": { - "message": "Enter your email address below to recover and delete your account." + "message": "Enigu vian retpoŝtan adreson sube por rekuperi kaj forigi vian konton." }, "deleteRecoverEmailSent": { - "message": "If your account exists, we've sent you an email with further instructions." + "message": "Se via konto ekzistas, ni sendis al vi retpoŝton kun pliaj instrukcioj." }, "deleteRecoverConfirmDesc": { - "message": "You have requested to delete your Bitwarden account. Click the button below to confirm." + "message": "Vi petis forigi vian Bitwarden-konton. Alklaku la butonon sube por konfirmi." }, "myOrganization": { "message": "Mia Organizo" @@ -2670,44 +2703,44 @@ "message": "Forigi Organizon" }, "deleteOrganizationDesc": { - "message": "Proceed below to delete this organization and all associated data. Individual user accounts will remain, though they will not be associated to this organization anymore. " + "message": "Sekvu sube por forigi ĉi tiun organizon kaj ĉiujn rilatajn datumojn. Individuaj kontoj de uzanto restos, kvankam ili ne plu estos asociitaj al ĉi tiu organizo." }, "deleteOrganizationWarning": { - "message": "Deleting the organization is permanent. It cannot be undone." + "message": "Forigi la organizon estas konstanta. Ĝi ne povas esti malfarita." }, "organizationDeleted": { - "message": "Organization Deleted" + "message": "Organizo Forigita" }, "organizationDeletedDesc": { - "message": "The organization and all associated data has been deleted." + "message": "La organizo kaj ĉiuj rilataj datumoj estis forigitaj." }, "organizationUpdated": { - "message": "Organization updated" + "message": "Organizo ĝisdatigita" }, "taxInformation": { - "message": "Tax Information" + "message": "Impostaj Informoj" }, "taxInformationDesc": { - "message": "For customers within the US, ZIP code is required to satisfy sales tax requirements, for other countries you may optionally provide a tax identification number (VAT/GST) and/or address to appear on your invoices." + "message": "Por klientoj en Usono, poŝtkodo necesas por plenumi vendimpostajn postulojn, por aliaj landoj vi rajtas laŭvole doni impostan identigan numeron (VAT / GST) kaj / aŭ adreson por aperi sur viaj fakturoj." }, "billingPlan": { - "message": "Plano", + "message": "Plani", "description": "A billing plan/package. For example: families, teams, enterprise, etc." }, "changeBillingPlan": { - "message": "Change Plan", + "message": "Ŝanĝi Planon", "description": "A billing plan/package. For example: families, teams, enterprise, etc." }, "changeBillingPlanUpgrade": { - "message": "Upgrade your account to another plan be providing the information below. Please ensure that you have an active payment method added to the account.", + "message": "Ĝisdatigu vian konton al alia plano donante la informojn sube. Bonvolu certigi, ke vi havas aktivan pagmanieron aldonitan al la konto.", "description": "A billing plan/package. For example: families, teams, enterprise, etc." }, "changeBillingPlanDesc": { - "message": "Contact customer support if you would like to change your plan. Please ensure that you have an active payment method added to the account.", + "message": "Kontaktu klientan subtenon se vi ŝatus ŝanĝi vian planon. Bonvolu certigi, ke vi havas aktivan pagmanieron aldonitan al la konto.", "description": "A billing plan/package. For example: families, teams, enterprise, etc." }, "invoiceNumber": { - "message": "Invoice #$NUMBER$", + "message": "Fakturo # $NUMBER$", "description": "ex. Invoice #79C66F0-0001", "placeholders": { "number": { @@ -2717,28 +2750,28 @@ } }, "viewInvoice": { - "message": "View Invoice" + "message": "Vidi Fakturon" }, "downloadInvoice": { - "message": "Download Invoice" + "message": "Elŝuti Fakturon" }, "verifyBankAccount": { - "message": "Verify Bank Account" + "message": "Kontroli bankan konton" }, "verifyBankAccountDesc": { - "message": "We have made two micro-deposits to your bank account (it may take 1-2 business days to show up). Enter these amounts to verify the bank account." + "message": "Ni faris du mikrodeponejojn al via banka konto (ĝi povas daŭri 1-2 labortagojn por aperi). Enigu ĉi tiujn sumojn por kontroli la bankan konton." }, "verifyBankAccountInitialDesc": { - "message": "Payment with a bank account is only available to customers in the United States. You will be required to verify your bank account. We will make two micro-deposits within the next 1-2 business days. Enter these amounts on the organization's billing page to verify the bank account." + "message": "Pago per banka konto disponeblas nur al klientoj en Usono. Vi devos kontroli vian bankan konton. Ni faros du mikro-deponejojn en la venontaj 1-2 labortagoj. Enigu ĉi tiujn sumojn en la faktura paĝo de la organizo por kontroli la bankan konton. " }, "verifyBankAccountFailureWarning": { - "message": "Failure to verify the bank account will result in a missed payment and your subscription being disabled." + "message": "Malsukceso kontroli la bankan konton rezultigos mankan pagon kaj via abono malŝaltita." }, "verifiedBankAccount": { - "message": "Bank account has been verified." + "message": "Banka konto estas kontrolita." }, "bankAccount": { - "message": "Bankokonto" + "message": "Banka Konto" }, "amountX": { "message": "Amount $COUNT$", @@ -2751,37 +2784,37 @@ } }, "routingNumber": { - "message": "Enrutiga Nombro", + "message": "Numero de Vojo", "description": "Bank account routing number" }, "accountNumber": { - "message": "Kontonumero" + "message": "Konta Numero" }, "accountHolderName": { - "message": "Nomo Konto-posedanto" + "message": "Nomo de Konto-Posedanto" }, "bankAccountType": { - "message": "Account Type" + "message": "Kontospeco" }, "bankAccountTypeCompany": { - "message": "Company (Business)" + "message": "Kompanio (Komerco)" }, "bankAccountTypeIndividual": { - "message": "Individual (Personal)" + "message": "Individua (Persona)" }, "enterInstallationId": { - "message": "Enter your installation id" + "message": "Enigu vian instalan identigilon" }, "addSeats": { - "message": "Add Seats", + "message": "Aldoni Sidlokojn", "description": "Seat = User Seat" }, "removeSeats": { - "message": "Remove Seats", + "message": "Forigi Sidlokojn", "description": "Seat = User Seat" }, "subscriptionUserSeats": { - "message": "Your subscription allows for a total of $COUNT$ users.", + "message": "Via abono permesas entute $COUNT$ uzantojn.", "placeholders": { "count": { "content": "$1", @@ -2790,19 +2823,19 @@ } }, "seatsToAdd": { - "message": "Seats To Add" + "message": "Aldonaj Seĝoj" }, "seatsToRemove": { - "message": "Seats To Remove" + "message": "Forigeblaj Seĝoj" }, "seatsAddNote": { - "message": "Adding user seats will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + "message": "Aldoni uzantajn seĝojn rezultigos ĝustigojn al viaj fakturaj sumoj kaj tuj ŝargos vian pagmanieron en dosiero. La unua ŝarĝo estos proporciigita por la resto de la aktuala faktura ciklo." }, "seatsRemoveNote": { - "message": "Removing user seats will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + "message": "Forigi uzantajn seĝojn rezultigos ĝustigojn al viaj fakturaj sumoj, kiuj estos proratigitaj kiel kreditoj al via sekva faktura kosto." }, "adjustedSeats": { - "message": "Adjusted $AMOUNT$ user seats.", + "message": "Ĝustigitaj $AMOUNT$ uzanto-seĝoj.", "placeholders": { "amount": { "content": "$1", @@ -2811,25 +2844,25 @@ } }, "keyUpdated": { - "message": "Key Updated" + "message": "Ŝlosilo ĝisdatigita" }, "updateKeyTitle": { - "message": "Update Key" + "message": "Ĝisdatiga Ŝlosilo" }, "updateEncryptionKey": { - "message": "Update Encryption Key" + "message": "Ĝisdatigi Ĉifran Ŝlosilon" }, "updateEncryptionKeyShortDesc": { - "message": "You are currently using an outdated encryption scheme." + "message": "Vi nun uzas malmodernan ĉifran skemon." }, "updateEncryptionKeyDesc": { - "message": "We've moved to larger encryption keys that provide better security and access to newer features. Updating your encryption key is quick and easy. Just type your master password below. This update will eventually become mandatory." + "message": "Ni transloĝiĝis al pli grandaj ĉifraj ŝlosiloj, kiuj donas pli bonan sekurecon kaj aliron al pli novaj funkcioj. Ĝisdatigi vian ĉifran ŝlosilon estas rapide kaj facile. Simple tajpu vian ĉefan pasvorton sube. Ĉi tiu ĝisdatigo fine fariĝos deviga." }, "updateEncryptionKeyWarning": { - "message": "After updating your encryption key, you are required to log out and back in to all Bitwarden applications that you are currently using (such as the mobile app or browser extensions). Failure to log out and back in (which downloads your new encryption key) may result in data corruption. We will attempt to log you out automatically, however, it may be delayed." + "message": "Post ĝisdatigi vian ĉifradan ŝlosilon, vi devas elsaluti kaj reeniri al ĉiuj Bitwarden-aplikaĵoj, kiujn vi nun uzas (kiel la poŝtelefona programo aŭ retumila etendaĵoj). Malsukceso elsaluti kaj reeniri (kiu elŝutas via nova ĉifra ŝlosilo) povas rezultigi korupton de datumoj. Ni provos elsaluti vin aŭtomate, tamen ĝi eble prokrastos. " }, "updateEncryptionKeyExportWarning": { - "message": "Any encrypted exports that you have saved will also become invalid." + "message": "Ĉiuj ĉifritaj eksportaĵoj, kiujn vi konservis, ankaŭ malvalidiĝos." }, "subscription": { "message": "Abono" @@ -2838,34 +2871,34 @@ "message": "Ŝarĝante" }, "upgrade": { - "message": "Altgradigon" + "message": "Ĝisdatigi" }, "upgradeOrganization": { - "message": "Upgrade Organization" + "message": "Altgradiga Organizo" }, "upgradeOrganizationDesc": { - "message": "This feature is not available for free organizations. Switch to a paid plan to unlock more features." + "message": "Ĉi tiu funkcio ne haveblas por senpagaj organizoj. Ŝanĝu al pagita plano por malŝlosi pli da funkcioj." }, "createOrganizationStep1": { - "message": "Create Organization: Step 1" + "message": "Krei Organizon: Paŝo 1" }, "createOrganizationCreatePersonalAccount": { - "message": "Before creating your organization, you first need to create a free personal account." + "message": "Antaŭ ol krei vian organizon, vi unue devas krei senpagan personan konton." }, "refunded": { "message": "Repagita" }, "nothingSelected": { - "message": "You have not selected anything." + "message": "Vi elektis nenion." }, "acceptPolicies": { - "message": "By checking this box you agree to the following:" + "message": "Markante ĉi tiun keston vi konsentas pri jeno:" }, "acceptPoliciesError": { - "message": "Terms of Service and Privacy Policy have not been acknowledged." + "message": "Kondiĉoj pri Servo kaj Privateca Politiko ne estis agnoskitaj." }, "termsOfService": { - "message": "Kondiĉoj de Servado" + "message": "Kondiĉoj por Servo" }, "privacyPolicy": { "message": "Privateca Politiko" @@ -2874,10 +2907,10 @@ "message": "Filtriloj" }, "vaultTimeout": { - "message": "Vault Timeout" + "message": "Tempomezuro de Volbo" }, "vaultTimeoutDesc": { - "message": "Choose when your vault will timeout and perform the selected action." + "message": "Elektu kiam via trezorejo eksvalidiĝos kaj plenumos la elektitan agon." }, "oneMinute": { "message": "1 minuto" @@ -2898,36 +2931,36 @@ "message": "4 horoj" }, "onRefresh": { - "message": "On Browser Refresh" + "message": "Sur Retumila Aktualigo" }, "dateUpdated": { "message": "Ĝisdatigita", "description": "ex. Date this item was updated" }, "datePasswordUpdated": { - "message": "Password Updated", + "message": "Pasvorto Ĝisdatigita", "description": "ex. Date this password was updated" }, "organizationIsDisabled": { - "message": "Organization is disabled." + "message": "Organizo estas malŝaltita." }, "licenseIsExpired": { - "message": "License is expired." + "message": "Licenco eksvalidiĝis." }, "updatedUsers": { - "message": "Updated users" + "message": "Ĝisdatigitaj uzantoj" }, "selected": { - "message": "Selektita" + "message": "Elektita" }, "ownership": { - "message": "Posedado" + "message": "Posedo" }, "whoOwnsThisItem": { - "message": "Who owns this item?" + "message": "Kiu posedas ĉi tiun eron?" }, "strong": { - "message": "Fortika", + "message": "Forta", "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" }, "good": { @@ -2939,47 +2972,47 @@ "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" }, "veryWeak": { - "message": "Tre malforta", + "message": "Tre Malforta", "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" }, "weakMasterPassword": { "message": "Malforta Majstra Pasvorto" }, "weakMasterPasswordDesc": { - "message": "The master password you have chosen is weak. You should use a strong master password (or a passphrase) to properly protect your Bitwarden account. Are you sure you want to use this master password?" + "message": "La majstra pasvorto, kiun vi elektis, estas malforta. Vi devas uzi fortan majstran pasvorton (aŭ pasfrazon) por ĝuste protekti vian Bitwarden-konton. Ĉu vi certe volas uzi ĉi tiun ĉefan pasvorton?" }, "rotateAccountEncKey": { - "message": "Also rotate my account's encryption key" + "message": "Ankaŭ turnu la ĉifran ŝlosilon de mia konto" }, "rotateEncKeyTitle": { - "message": "Rotate Encryption Key" + "message": "Rotacii Ĉifran Ŝlosilon" }, "rotateEncKeyConfirmation": { - "message": "Are you sure you want to rotate your account's encryption key?" + "message": "Ĉu vi certe volas turni la ĉifran ŝlosilon de via konto?" }, "attachmentsNeedFix": { - "message": "This item has old file attachments that need to be fixed." + "message": "Ĉi tiu ero havas malnovajn dosierajn aldonaĵojn, kiujn necesas ripari." }, "attachmentFixDesc": { - "message": "This is an old file attachment the needs to be fixed. Click to learn more." + "message": "Ĉi tio estas malnova riparenda dosiero, kiun necesas ripari. Alklaku por lerni pli." }, "fix": { - "message": "Fix", + "message": "Ripari", "description": "This is a verb. ex. 'Fix The Car'" }, "oldAttachmentsNeedFixDesc": { - "message": "There are old file attachments in your vault that need to be fixed before you can rotate your account's encryption key." + "message": "Estas malnovaj dosieraj aldonaĵoj en via trezorejo, kiuj devas esti riparitaj antaŭ ol vi povas turni la ĉifran ŝlosilon de via konto." }, "yourAccountsFingerprint": { - "message": "Your account's fingerprint phrase", + "message": "Fingrospuro de via konto", "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." }, "fingerprintEnsureIntegrityVerify": { - "message": "To ensure the integrity of your encryption keys, please verify the user's fingerprint phrase before continuing.", + "message": "Por certigi la integrecon de viaj ĉifradaj ŝlosiloj, bonvolu kontroli la fingrospuran frazon de la uzanto antaŭ ol daŭrigi.", "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." }, "dontAskFingerprintAgain": { - "message": "Don't ask to verify fingerprint phrase again", + "message": "Ne petu kontroli denove fingrospuran frazon", "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." }, "free": { @@ -2987,77 +3020,77 @@ "description": "Free, as in 'Free beer'" }, "apiKey": { - "message": "API Key" + "message": "API-Ŝlosilo" }, "apiKeyDesc": { - "message": "Your API key can be used to authenticate to the Bitwarden public API." + "message": "Via API-ŝlosilo povas esti uzata por aŭtentikigi al la publika API de Bitwarden." }, "apiKeyRotateDesc": { - "message": "Rotating the API key will invalidate the previous key. You can rotate your API key if you believe that the current key is no longer safe to use." + "message": "Rotacii la API-ŝlosilon nuligos la antaŭan ŝlosilon. Vi povas turni vian API-ŝlosilon se vi kredas, ke la nuna ŝlosilo ne plu estas sekura uzi." }, "apiKeyWarning": { - "message": "Your API key has full access to the organization. It should be kept secret." + "message": "Via API-ŝlosilo havas plenan aliron al la organizo. Ĝi estu tenata sekreta." }, "userApiKeyDesc": { - "message": "Your API key can be used to authenticate in the Bitwarden CLI." + "message": "Via API-ŝlosilo povas esti uzata por aŭtentikigi en la Bitwarden CLI." }, "userApiKeyWarning": { - "message": "Your API key is an alternative authentication mechanism. It should be kept secret." + "message": "Via API-ŝlosilo estas alternativa aŭtentikiga me mechanismanismo. Ĝi devas esti sekretigita." }, "oauth2ClientCredentials": { - "message": "OAuth 2.0 Client Credentials", + "message": "Klientaj Atestiloj de OAuth 2.0", "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." }, "viewApiKey": { - "message": "View API Key" + "message": "Vidi API-Ŝlosilon" }, "rotateApiKey": { - "message": "Rotate API Key" + "message": "Rotacii API-Ŝlosilon" }, "selectOneCollection": { - "message": "You must select at least one collection." + "message": "Vi devas elekti almenaŭ unu kolekton." }, "couldNotChargeCardPayInvoice": { - "message": "We were not able to charge your card. Please view and pay the unpaid invoice listed below." + "message": "Ni ne povis ŝargi vian karton. Bonvolu vidi kaj pagi la senpagitan fakturon listigitan sube." }, "inAppPurchase": { - "message": "En-app-aĉeto" + "message": "En-aĉeta aĉeto" }, "cannotPerformInAppPurchase": { - "message": "You cannot perform this action while using an in-app purchase payment method." + "message": "Vi ne povas plenumi ĉi tiun agon dum vi uzas en-programan aĉetan pagmanieron." }, "manageSubscriptionFromStore": { - "message": "You must manage your subscription from the store where your in-app purchase was made." + "message": "Vi devas administri vian abonon de la butiko, kie via aĉeta aĉeto estis farita." }, "minLength": { - "message": "Minimum Length" + "message": "Minimuma longeco" }, "clone": { "message": "Kloni" }, "masterPassPolicyDesc": { - "message": "Set minimum requirements for master password strength." + "message": "Agordi minimumajn postulojn por majstra pasvorta forto." }, "twoStepLoginPolicyDesc": { - "message": "Require users to set up two-step login on their personal accounts." + "message": "Postuli uzantojn agordi du-ŝtupan ensaluton en siaj personaj kontoj." }, "twoStepLoginPolicyWarning": { - "message": "Organization members who are not Owners or Administrators and do not have two-step login enabled for their personal account will be removed from the organization and will receive an email notifying them about the change." + "message": "Organizaj membroj, kiuj ne estas Posedantoj aŭ Administrantoj kaj ne havas du-paŝan ensaluton ebligita por sia persona konto, estos forigitaj de la organizo kaj ricevos retpoŝton sciigantan ilin pri la ŝanĝo." }, "twoStepLoginPolicyUserWarning": { - "message": "Vi estas membro de organizo, kiu postulas dupaŝan ensaluton esti ebligita en via uzantokonto. Se vi malebligas ĉiujn dupaŝajn ensalutajn provizantojn, vi estos aŭtomate forigita el ĉi tiuj organizoj." + "message": "Vi estas membro de organizo, kiu bezonas du-paŝan ensaluton por esti ebligita en via uzantokonto. Se vi malŝaltas ĉiujn du-paŝajn ensalutajn provizantojn, vi aŭtomate estos forigita de ĉi tiuj organizoj." }, "passwordGeneratorPolicyDesc": { - "message": "Set minimum requirements for password generator configuration." + "message": "Agordi minimumajn postulojn por agordi pasvortan generilon." }, "passwordGeneratorPolicyInEffect": { - "message": "One or more organization policies are affecting your generator settings." + "message": "Unu aŭ pluraj organizaj politikoj influas viajn generatorajn agordojn." }, "masterPasswordPolicyInEffect": { - "message": "One or more organization policies require your master password to meet the following requirements:" + "message": "Unu aŭ pluraj organizaj politikoj postulas vian ĉefan pasvorton por plenumi la jenajn postulojn:" }, "policyInEffectMinComplexity": { - "message": "Minimum complexity score of $SCORE$", + "message": "Minimuma kompleksa poentaro de $SCORE$", "placeholders": { "score": { "content": "$1", @@ -3066,7 +3099,7 @@ } }, "policyInEffectMinLength": { - "message": "Minimum length of $LENGTH$", + "message": "Minimuma longo de $LENGTH$", "placeholders": { "length": { "content": "$1", @@ -3075,16 +3108,16 @@ } }, "policyInEffectUppercase": { - "message": "Contain one or more uppercase characters" + "message": "Enhavas unu aŭ plurajn majusklajn literojn" }, "policyInEffectLowercase": { - "message": "Contain one or more lowercase characters" + "message": "Enhavas unu aŭ plurajn minusklojn" }, "policyInEffectNumbers": { - "message": "Contain one or more numbers" + "message": "Enhavas unu aŭ plurajn numerojn" }, "policyInEffectSpecial": { - "message": "Contain one or more of the following special characters $CHARS$", + "message": "Enhavas unu aŭ pli el la jenaj specialaj signoj $CHARS$", "placeholders": { "chars": { "content": "$1", @@ -3093,28 +3126,28 @@ } }, "masterPasswordPolicyRequirementsNotMet": { - "message": "Your new master password does not meet the policy requirements." + "message": "Via nova majstra pasvorto ne plenumas la politikajn postulojn." }, "minimumNumberOfWords": { - "message": "Minimum Number of Words" + "message": "Minimuma Nombro de Vortoj" }, "defaultType": { - "message": "Default Type" + "message": "Apriora Tipo" }, "userPreference": { - "message": "User Preference" + "message": "Uzanta Prefero" }, "vaultTimeoutAction": { - "message": "Vault Timeout Action" + "message": "Volta Tempolima Ago" }, "vaultTimeoutActionLockDesc": { - "message": "A locked vault requires that you re-enter your master password to access it again." + "message": "Ŝlosita trezorejo postulas, ke vi reenmetu vian ĉefan pasvorton por aliri ĝin denove." }, "vaultTimeoutActionLogOutDesc": { - "message": "A logged out vault requires that you re-authenticate to access it again." + "message": "Ensalutita volbo postulas, ke vi denove aŭtentikigu por aliri ĝin denove." }, "lock": { - "message": "Lock", + "message": "Ŝlosi", "description": "Verb form: to make secure or inaccesible by" }, "trash": { @@ -3122,28 +3155,28 @@ "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" }, "searchTrash": { - "message": "Search Trash" + "message": "Serĉi rubujon" }, "permanentlyDelete": { - "message": "Permanently Delete" + "message": "Konstante Forigi" }, "permanentlyDeleteSelected": { "message": "Permanently Delete Selected" }, "permanentlyDeleteItem": { - "message": "Permanently Delete Item" + "message": "Konstante Forigi Artikolon" }, "permanentlyDeleteItemConfirmation": { - "message": "Ĉu vi certas, ke vi volas porĉiame forigi ĉi tiun ero?" + "message": "Ĉu vi certe volas konstante forigi ĉi tiun eron?" }, "permanentlyDeletedItem": { - "message": "Permanently Deleted item" + "message": "Konstante forigita ero" }, "permanentlyDeletedItems": { - "message": "Permanently Deleted items" + "message": "Konstante Forigitaj Eroj" }, "permanentlyDeleteSelectedItemsDesc": { - "message": "You have selected $COUNT$ item(s) to permanently delete. Are you sure you want to permanently delete all of these items?", + "message": "Vi elektis $COUNT$ eron (j) por konstante forigi. Ĉu vi certas, ke vi volas forigi konstante ĉiujn ĉi tiujn erojn?", "placeholders": { "count": { "content": "$1", @@ -3152,7 +3185,7 @@ } }, "permanentlyDeletedItemId": { - "message": "Permanently Deleted item $ID$.", + "message": "Konstante Forigita ero $ID $.", "placeholders": { "id": { "content": "$1", @@ -3164,25 +3197,25 @@ "message": "Restarigi" }, "restoreSelected": { - "message": "Restore Selected" + "message": "Restarigi elektitajn" }, "restoreItem": { - "message": "Restore Item" + "message": "Restarigi Artikolon" }, "restoredItem": { - "message": "Restored Item" + "message": "Restarigita elemento" }, "restoredItems": { - "message": "Restored Items" + "message": "Restarigitaj Eroj" }, "restoreItemConfirmation": { - "message": "Are you sure you want to restore this item?" + "message": "Ĉu vi certe volas restarigi ĉi tiun eron?" }, "restoreItems": { - "message": "Restore items" + "message": "Restarigi erojn" }, "restoreSelectedItemsDesc": { - "message": "You have selected $COUNT$ item(s) to restore. Are you sure you want to restore all of these items?", + "message": "Vi elektis $COUNT$ eron (j) por restarigi. Ĉu vi certe volas restarigi ĉiujn ĉi tiujn erojn?", "placeholders": { "count": { "content": "$1", @@ -3200,301 +3233,304 @@ } }, "vaultTimeoutLogOutConfirmation": { - "message": "Logging out will remove all access to your vault and requires online authentication after the timeout period. Are you sure you want to use this setting?" + "message": "Elsaluti forigos ĉian aliron al via trezorejo kaj postulas interretan aŭtentikigon post la limtempo. Ĉu vi certas, ke vi volas uzi ĉi tiun agordon?" }, "vaultTimeoutLogOutConfirmationTitle": { - "message": "Timeout Action Confirmation" + "message": "Konfirmado de Tempolima Ago" }, "hidePasswords": { - "message": "Hide Passwords" + "message": "Kaŝi Pasvortojn" }, "countryPostalCodeRequiredDesc": { - "message": "We require this information for calculating sales tax and financial reporting only." + "message": "Ni postulas ĉi tiujn informojn nur por kalkuli vendimposton kaj financan raportadon." }, "includeVAT": { - "message": "Include VAT/GST Information (optional)" + "message": "Inkluzivi informojn pri VAT / GST (nedeviga)" }, "taxIdNumber": { - "message": "VAT/GST Tax ID" + "message": "Imposta ID de VAT / GST" }, "taxInfoUpdated": { - "message": "Tax information updated." + "message": "Impostaj informoj ĝisdatigitaj." }, "setMasterPassword": { - "message": "Set Master Password" + "message": "Agordi Majstran Pasvorton" }, "ssoCompleteRegistration": { - "message": "In order to complete logging in with SSO, please set a master password to access and protect your vault." + "message": "Por kompletigi ensalutadon per SSO, bonvolu agordi ĉefan pasvorton por aliri kaj protekti vian trezorejon." }, "identifier": { - "message": "Identifier" + "message": "Identigilo" }, "organizationIdentifier": { - "message": "Organization Identifier" + "message": "Organiza Identigilo" }, "ssoLogInWithOrgIdentifier": { - "message": "Log in using your organization's single sign-on portal. Please enter your organization's identifier to begin." + "message": "Ensalutu per la unika ensaluta portalo de via organizo. Bonvolu enigi la identigilon de via organizo por komenci." }, "enterpriseSingleSignOn": { - "message": "Enterprise Single Sign-On" + "message": "Entreprena Ununura Ensaluto" }, "ssoHandOff": { - "message": "You may now close this tab and continue in the extension." + "message": "Vi povas nun fermi ĉi tiun langeton kaj daŭrigi en la etendaĵo." }, "businessPortal": { - "message": "Business Portal", + "message": "Komerca Portalo", "description": "The web portal used by business organizations for configuring certain features." }, "includeAllTeamsFeatures": { - "message": "All Teams features, plus:" + "message": "Ĉiuj funkcioj de teamoj, plus:" }, "includeSsoAuthentication": { - "message": "SSO Authentication via SAML2.0 and OpenID Connect" + "message": "SSO-Aŭtentikigo per SAML2.0 kaj OpenID Connect" }, "includeEnterprisePolicies": { - "message": "Enterprise Policies" + "message": "Entreprenaj Politikoj" }, "ssoValidationFailed": { - "message": "SSO Validation Failed" + "message": "SSO-Validado Malsukcesis" }, "ssoIdentifierRequired": { - "message": "Organization Identifier is required." + "message": "Organiza Identigilo necesas." }, "unlinkSso": { - "message": "Unlink SSO" + "message": "Malkonekti SSO" }, "linkSso": { - "message": "Link SSO" + "message": "Ligi SSO" }, "webPoliciesDeprecationWarning": { - "message": "Policy configuration has been moved, and this page will soon be deprecated. Please click below to use the Business Portal policies page instead." + "message": "Politika agordo estis movita, kaj ĉi tiu paĝo baldaŭ malrekomendiĝos. Bonvolu alklaki sube por uzi la paĝon pri politikoj pri Komerca Portalo anstataŭe." }, "singleOrg": { - "message": "Single Organization" + "message": "Ununura Organizo" }, "singleOrgDesc": { - "message": "Restrict users from being able to join any other organizations." + "message": "Limigi uzantojn povi aliĝi al iuj aliaj organizoj." }, "singleOrgBlockCreateMessage": { - "message": "Your current organization has a policy that does not allow you to join more than one organization. Please contact your organization admins or sign up from a different Bitwarden account." + "message": "Via nuna organizo havas politikon, kiu ne permesas vin aliĝi al pli ol unu organizo. Bonvolu kontakti administrantojn de via organizo aŭ registriĝi de alia Bitwarden-konto." }, "singleOrgPolicyWarning": { - "message": "Organization members who are not Owners or Administrators and are already a member of another organization will be removed from your organization." + "message": "Organizaj membroj, kiuj ne estas Posedantoj aŭ Administrantoj kaj jam estas membro de alia organizo, estos forigitaj de via organizo." }, "requireSso": { - "message": "Single Sign-On Authentication" + "message": "Ununura Ensaluta Aŭtentikigo" }, "requireSsoPolicyDesc": { - "message": "Require users to log in with the Enterprise Single Sign-On method." + "message": "Postuli uzantojn ensaluti per la entrepreno pri sola ensaluto." }, "prerequisite": { - "message": "Prerequisite" + "message": "Antaŭkondiĉo" }, "requireSsoPolicyReq": { - "message": "The Single Organization enterprise policy must be enabled before activating this policy." + "message": "La entreprena politiko pri Ununura Organizo devas esti ebligita antaŭ ol aktivigi ĉi tiun politikon." }, "requireSsoPolicyReqError": { - "message": "Single Organization policy not enabled." + "message": "Politiko pri Ununura Organizo ne ebligita." }, "requireSsoExemption": { - "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + "message": "Organizaj Posedantoj kaj Administrantoj estas esceptitaj de la apliko de ĉi tiu politiko." }, "sendTypeFile": { - "message": "File" + "message": "Dosiero" }, "sendTypeText": { - "message": "Text" + "message": "Teksto" }, "createSend": { - "message": "Create New Send", + "message": "Krei novan sendon", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "editSend": { - "message": "Edit Send", + "message": "Redakti Sendu", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "createdSend": { - "message": "Created Send", + "message": "Kreita Sendo", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "editedSend": { - "message": "Edited Send", + "message": "Redaktita Sendo", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deletedSend": { - "message": "Deleted Send", + "message": "Forigita Sendo", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deleteSend": { - "message": "Delete Send", + "message": "Forigi Sendu", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deleteSendConfirmation": { - "message": "Are you sure you want to delete this Send?", + "message": "Ĉu vi certe volas forigi ĉi tiun Sendon?", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "whatTypeOfSend": { - "message": "What type of Send is this?", + "message": "Kia Sendo estas ĉi tio?", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deletionDate": { - "message": "Deletion Date" + "message": "Dato de Forigo" }, "deletionDateDesc": { - "message": "The Send will be permanently deleted on the specified date and time.", + "message": "La Sendo estos definitive forigita en la specifaj dato kaj horo.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "expirationDate": { - "message": "Expiration Date" + "message": "Findato" }, "expirationDateDesc": { - "message": "If set, access to this Send will expire on the specified date and time.", + "message": "Se agordita, aliro al ĉi tiu Sendo eksvalidiĝos je la specifaj dato kaj horo.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "maxAccessCount": { - "message": "Maximum Access Count" + "message": "Maksimuma Aliro-Kalkulo" }, "maxAccessCountDesc": { - "message": "If set, users will no longer be able to access this send once the maximum access count is reached.", + "message": "Se agordite, uzantoj ne plu povos aliri ĉi tiun sendon post kiam la maksimuma alira kalkulo estos atingita.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "currentAccessCount": { - "message": "Current Access Count" + "message": "Nuna Alira Kalkulo" }, "sendPasswordDesc": { - "message": "Optionally require a password for users to access this Send.", + "message": "Laŭvole postulas pasvorton por uzantoj aliri ĉi tiun Sendon.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNotesDesc": { - "message": "Private notes about this Send.", + "message": "Privataj notoj pri ĉi tiu Sendo.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disabled": { - "message": "Disabled" + "message": "Malebligita" }, "sendLink": { - "message": "Send link", + "message": "Sendi ligon", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "copySendLink": { - "message": "Copy Send Link", + "message": "Kopii Sendu Ligilon", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "removePassword": { - "message": "Remove Password" + "message": "Forigi pasvorton" }, "removedPassword": { - "message": "Removed Password" + "message": "Forigita Pasvorto" }, "removePasswordConfirmation": { - "message": "Are you sure you want to remove the password?" + "message": "Ĉu vi certe volas forigi la pasvorton?" + }, + "hideEmail": { + "message": "Hide my email address from recipients." }, "disableThisSend": { - "message": "Disable this Send so that no one can access it.", + "message": "Malŝalti ĉi tiun Sendon por ke neniu povu aliri ĝin.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "allSends": { - "message": "All Sends" + "message": "Ĉiuj Sendoj" }, "maxAccessCountReached": { - "message": "Max access count reached" + "message": "Maksimuma alirnombro atingis" }, "pendingDeletion": { - "message": "Pending deletion" + "message": "Atendanta forigo" }, "expired": { - "message": "Expired" + "message": "Eksvalidiĝis" }, "searchSends": { - "message": "Search Sends", + "message": "Serĉaj Sendoj", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendProtectedPassword": { - "message": "This Send is protected with a password. Please type the password below to continue.", + "message": "Ĉi tiu Sendo estas protektita per pasvorto. Bonvolu tajpi la pasvorton sube por daŭrigi.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendProtectedPasswordDontKnow": { - "message": "Don't know the password? Ask the Sender for the password needed to access this Send.", + "message": "Ĉu vi ne scias la pasvorton? Petu al la Sendinto la pasvorton bezonatan por aliri ĉi tiun Sendon.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendHiddenByDefault": { - "message": "This send is hidden by default. You can toggle its visibility using the button below.", + "message": "Ĉi tiu sendado estas kaŝita defaŭlte. Vi povas ŝalti ĝian videblecon per la suba butono.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "downloadFile": { - "message": "Download File" + "message": "Elŝuti dosieron" }, "sendAccessUnavailable": { - "message": "The Send you are trying to access does not exist or is no longer available.", + "message": "La Sendo, kiun vi provas aliri, ne ekzistas aŭ ne plu haveblas.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "missingSendFile": { - "message": "The file associated with this Send could not be found.", + "message": "La dosiero asociita kun ĉi tiu Sendo ne estis trovebla.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "noSendsInList": { - "message": "There are no Sends to list.", + "message": "Estas neniuj Sendoj por listigi.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "emergencyAccess": { - "message": "Emergency Access" + "message": "Kriza Aliro" }, "emergencyAccessDesc": { - "message": "Grant and manage emergency access for trusted contacts. Trusted contacts may request access to either View or Takeover your account in case of an emergency. Visit our help page for more information and details into how zero knowledge sharing works." + "message": "Donu kaj administru krizan aliron por fidindaj kontaktoj. Fidindaj kontaktoj povas peti aliron al aŭ Vidi aŭ Transpreni vian konton en kazo de krizo. Vizitu nian helpopaĝon por pliaj informoj kaj detaloj pri kiel funkcias nula scio-dividado." }, "emergencyAccessOwnerWarning": { - "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + "message": "Vi estas Posedanto de unu aŭ pluraj organizoj. Se vi donas transprenan aliron al urĝa kontakto, ili povos uzi ĉiujn viajn permesojn kiel Posedanto post transpreno." }, "trustedEmergencyContacts": { - "message": "Trusted emergency contacts" + "message": "Fidindaj krizaj kontaktoj" }, "noTrustedContacts": { - "message": "You have not added any emergency contacts yet, invite a trusted contact to get started." + "message": "Vi ankoraŭ ne aldonis krizajn kontaktojn, invitu fidindan kontakton por komenci." }, "addEmergencyContact": { - "message": "Add emergency contact" + "message": "Aldoni krizan kontakton" }, "designatedEmergencyContacts": { - "message": "Designated as emergency contact" + "message": "Elektita kiel kriz-kontakto" }, "noGrantedAccess": { - "message": "You have not been designated as an emergency contact for anyone yet." + "message": "Vi ankoraŭ ne estis nomumita kiel urĝa kontakto por iu ajn." }, "inviteEmergencyContact": { - "message": "Invite emergency contact" + "message": "Inviti krizan kontakton" }, "editEmergencyContact": { - "message": "Edit emergency contact" + "message": "Redakti krizan kontakton" }, "inviteEmergencyContactDesc": { - "message": "Invite a new emergency contact by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + "message": "Invitu novan krizan kontakton enigante sube sian retpoŝtan adreson Bitwarden. Se ili ne havas Bitwarden-konton jam, ili estos petataj krei novan konton." }, "emergencyAccessRecoveryInitiated": { - "message": "Emergency Access Initiated" + "message": "Kriza Aliro Komencita" }, "emergencyAccessRecoveryApproved": { - "message": "Emergency Access Approved" + "message": "Akutaliro aprobita" }, "viewDesc": { - "message": "Can view all items in your own vault." + "message": "Povas vidi ĉiujn erojn en via propra trezorejo." }, "takeover": { - "message": "Takeover" + "message": "Transpreno" }, "takeoverDesc": { - "message": "Can reset your account with a new master password." + "message": "Povas reagordi vian konton per nova majstra pasvorto." }, "waitTime": { - "message": "Wait Time" + "message": "Atendotempo" }, "waitTimeDesc": { - "message": "Time required before automatically granting access." + "message": "Tempo bezonata antaŭ ol aŭtomate doni aliron." }, "oneDay": { - "message": "1 day" + "message": "1 tago" }, "days": { - "message": "$DAYS$ days", + "message": "$TAGOJ$ tagoj", "placeholders": { "days": { "content": "$1", @@ -3503,16 +3539,16 @@ } }, "invitedUser": { - "message": "Invited user." + "message": "Invitita uzanto." }, "acceptEmergencyAccess": { - "message": "You've been invited to become an emergency contact for the user listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + "message": "Vi estis invitita fariĝi urĝa kontakto por la supre listigita uzanto. Por akcepti la inviton, vi devas ensaluti aŭ krei novan Bitwarden-konton." }, "emergencyInviteAcceptFailed": { - "message": "Unable to accept invitation. Ask the user to send a new invitation." + "message": "Ne eblas akcepti inviton. Petu la uzanton sendi novan inviton." }, "emergencyInviteAcceptFailedShort": { - "message": "Unable to accept invitation. $DESCRIPTION$", + "message": "Ne eblas akcepti inviton. $DESCRIPTION $", "placeholders": { "description": { "content": "$1", @@ -3521,13 +3557,13 @@ } }, "emergencyInviteAcceptedDesc": { - "message": "You can access the emergency options for this user after your identity has been confirmed. We'll send you an email when that happens." + "message": "Vi povas aliri la krizajn eblojn por ĉi tiu uzanto post kiam via identeco estis konfirmita. Ni sendos al vi retpoŝton kiam tio okazos." }, "requestAccess": { - "message": "Request Access" + "message": "Peti Aliron" }, "requestAccessConfirmation": { - "message": "Are you sure you want to request emergency access? You will be provided access after $WAITTIME$ day(s) or whenever the user manually approves the request.", + "message": "Ĉu vi certe volas peti krizan aliron? Vi ricevos aliron post $WAITTIME$ tago (j) aŭ kiam la uzanto mane aprobos la peton.", "placeholders": { "waittime": { "content": "$1", @@ -3536,7 +3572,7 @@ } }, "requestSent": { - "message": "Emergency access requested for $USER$. We'll notify you by email when it's possible to continue.", + "message": "Kriza aliro petita por $USER $. Ni sciigos vin per retpoŝto kiam eblas daŭrigi.", "placeholders": { "user": { "content": "$1", @@ -3545,13 +3581,13 @@ } }, "approve": { - "message": "Approve" + "message": "Aprovi" }, "reject": { - "message": "Reject" + "message": "Malakcepti" }, "approveAccessConfirmation": { - "message": "Are you sure you want to approve emergency access? This will allow $USER$ to $ACTION$ your account.", + "message": "Ĉu vi certe volas aprobi krizan aliron? Ĉi tio permesos $USER$ al $ACTION$ via konto.", "placeholders": { "user": { "content": "$1", @@ -3564,13 +3600,13 @@ } }, "emergencyApproved": { - "message": "Emergency access approved." + "message": "Akutaliro aprobita." }, "emergencyRejected": { - "message": "Emergency access rejected" + "message": "Krizaliro malakceptita" }, "passwordResetFor": { - "message": "Password reset for $USER$. You can now login using the new password.", + "message": "Pasvorta restarigo por $USER $. Vi nun povas ensaluti per la nova pasvorto.", "placeholders": { "user": { "content": "$1", @@ -3579,37 +3615,59 @@ } }, "personalOwnership": { - "message": "Personal Ownership" + "message": "Persona Posedo" }, "personalOwnershipPolicyDesc": { - "message": "Require users to save vault items to an organization by removing the personal ownership option." + "message": "Postuli uzantojn konservi trezorejojn al organizo forigante la opcion pri persona posedo." }, "personalOwnershipExemption": { - "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + "message": "Organizaj Posedantoj kaj Administrantoj estas esceptitaj de la apliko de ĉi tiu politiko." }, "personalOwnershipSubmitError": { - "message": "Due to an enterprise policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections." + "message": "Pro entreprena politiko, vi ne rajtas konservi artikolojn al via persona trezorejo. Ŝanĝu la opcion Proprieto al organizo kaj elektu el disponeblaj Kolektoj." }, "disableSend": { - "message": "Disable Send" + "message": "Malebligi Sendi" }, "disableSendPolicyDesc": { - "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "message": "Ne permesu al uzantoj krei aŭ redakti Bitwarden Sendon. Forigi ekzistantan Sendon estas ankoraŭ permesita.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disableSendExemption": { - "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + "message": "Organizaj uzantoj, kiuj povas administri la politikojn de la organizo, estas esceptitaj de la devigo de ĉi tiu politiko." }, "sendDisabled": { - "message": "Send disabled", + "message": "Sendu malebligita", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { - "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "message": "Pro entreprena politiko, vi nur povas forigi ekzistantan Sendon.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "modifiedPolicyId": { - "message": "Modified policy $ID$.", + "message": "Modifita politiko $ID $.", "placeholders": { "id": { "content": "$1", @@ -3618,129 +3676,132 @@ } }, "planPrice": { - "message": "Plan price" + "message": "Plana prezo" }, "estimatedTax": { - "message": "Estimated tax" + "message": "Taksita imposto" }, "custom": { - "message": "Custom" + "message": "Propra" }, "customDesc": { - "message": "Allows more granular control of user permissions for advanced configurations." + "message": "Permesas pli detalan kontrolon de uzaj permesoj por progresintaj agordoj." }, "permissions": { - "message": "Permissions" + "message": "Permesoj" }, "accessBusinessPortal": { - "message": "Access Business Portal" + "message": "Aliri Komercan Portalon" }, "accessEventLogs": { - "message": "Access Event Logs" + "message": "Aliri Eventajn Registrojn" }, "accessImportExport": { - "message": "Access Import/Export" + "message": "Aliri Importi / Eksporti" }, "accessReports": { - "message": "Access Reports" + "message": "Aliraj Raportoj" }, "manageAllCollections": { - "message": "Manage All Collections" + "message": "Administri ĉiujn kolektojn" }, "manageAssignedCollections": { - "message": "Manage Assigned Collections" + "message": "Administri Asignitajn Kolektojn" }, "manageGroups": { - "message": "Manage Groups" + "message": "Administri Grupojn" }, "managePolicies": { - "message": "Manage Policies" + "message": "Administri Politikojn" }, "manageSso": { - "message": "Manage SSO" + "message": "Administri SSO" }, "manageUsers": { - "message": "Manage Users" + "message": "Administri Uzantojn" + }, + "manageResetPassword": { + "message": "Manage Password Reset" }, "disableRequireSsoError": { - "message": "You must manually disable the Single Sign-On Authentication policy before this policy can be disabled." + "message": "Vi devas permane malŝalti la politikon pri sola ensaluta aŭtentokontrolo antaŭ ol ĉi tiu politiko povas esti malebligita." }, "personalOwnershipPolicyInEffect": { - "message": "An organization policy is affecting your ownership options." + "message": "Organiza politiko influas viajn posedopciojn." }, "personalOwnershipCheckboxDesc": { - "message": "Disable personal ownership for organization users" + "message": "Malebligi personan posedon por organizaj uzantoj" }, "textHiddenByDefault": { - "message": "When accessing the Send, hide the text by default", + "message": "Alirante la Sendon, kaŝu la tekston defaŭlte", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNameDesc": { - "message": "A friendly name to describe this Send.", + "message": "Amika nomo por priskribi ĉi tiun Sendon.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTextDesc": { - "message": "The text you want to send." + "message": "La teksto, kiun vi volas sendi." }, "sendFileDesc": { - "message": "The file you want to send." + "message": "La dosiero, kiun vi volas sendi." }, "copySendLinkOnSave": { - "message": "Copy the link to share this Send to my clipboard upon save." + "message": "Kopiu la ligon por dividi ĉi tion Sendu al mia tondujo post konservado." }, "sendLinkLabel": { - "message": "Send link", + "message": "Sendi ligon", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "send": { - "message": "Send", + "message": "Sendi", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineProductDesc": { - "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "message": "Bitwarden Send transdonas sentemajn provizorajn informojn al aliaj facile kaj sekure.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineLearnMore": { - "message": "Learn more about", + "message": "Lernu pli pri", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" }, "sendVaultCardProductDesc": { - "message": "Share text or files directly with anyone." + "message": "Kunhavigi tekston aŭ dosierojn rekte kun iu ajn." }, "sendVaultCardLearnMore": { - "message": "Learn more", + "message": "Lernu pli", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" }, "sendVaultCardSee": { - "message": "see", + "message": "vidu", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" }, "sendVaultCardHowItWorks": { - "message": "how it works", + "message": "kiel ĝi funkcias", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" }, "sendVaultCardOr": { - "message": "or", + "message": "aŭ", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" }, "sendVaultCardTryItNow": { - "message": "try it now", + "message": "provu ĝin nun", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" }, "sendAccessTaglineOr": { - "message": "or", + "message": "aŭ", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" }, "sendAccessTaglineSignUp": { - "message": "sign up", + "message": "aliĝi", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" }, "sendAccessTaglineTryToday": { - "message": "to try it today.", + "message": "provi ĝin hodiaŭ.", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" }, "sendCreatorIdentifier": { - "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "message": "Bitwarden-uzanto $USER_IDENTIFIER$ dividis la jenon kun vi", "placeholders": { "user_identifier": { "content": "$1", @@ -3748,19 +3809,86 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { - "message": "The expiration date provided is not valid." + "message": "La donita eksvalidiĝa dato ne validas." }, "deletionDateIsInvalid": { - "message": "The deletion date provided is not valid." + "message": "La forigita dato donita ne validas." }, "expirationDateAndTimeRequired": { - "message": "An expiration date and time are required." + "message": "Eksvalidiĝa dato kaj horo necesas." }, "deletionDateAndTimeRequired": { - "message": "A deletion date and time are required." + "message": "Forigo de dato kaj horo estas bezonataj." }, "dateParsingError": { - "message": "There was an error saving your deletion and expiration dates." + "message": "Estis eraro konservante viajn forigajn kaj eksvalidajn datojn." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/es/messages.json b/locales/es/messages.json index d13f0dd5..c35f8ef0 100644 --- a/locales/es/messages.json +++ b/locales/es/messages.json @@ -725,6 +725,15 @@ "u2fTitle": { "message": "Llave de seguridad FIDO U2F" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "Correo electrónico" }, @@ -1004,7 +1013,7 @@ "message": "Importar datos" }, "importError": { - "message": "Import Error" + "message": "Error al importar" }, "importErrorDesc": { "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." @@ -1013,7 +1022,7 @@ "message": "La información ha sido importada correctamente en tu caja fuerte." }, "importWarning": { - "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "message": "Estás importando datos a $ORGANIZATION$. Tus datos pueden ser compartidos con miembros de esta organización. ¿Quieres continuar?", "placeholders": { "organization": { "content": "$1", @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "Soporte NFC" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "¿Estás seguro de que quieres eliminar esta clave de seguridad?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Leer llave" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "Hubo un problema al leer la llave de seguridad. Inténtalo de nuevo." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Tu código de recuperación de inicio de sesión de dos pasos de Bitwarden" }, @@ -1584,7 +1611,7 @@ "message": "Opciones adicionales de inicio de sesión de dos pasos como YubiKey, Fido U2F y Duo." }, "premiumSignUpEmergency": { - "message": "Emergency Access" + "message": "Acceso de emergencia" }, "premiumSignUpReports": { "message": "Higiene de contraseña, salud de la cuenta e informes de violaciones de datos para mantener su caja fuerte segura." @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "No se ha podido verificar tu cuenta de correo electrónico. Prueba a enviar un nuevo correo de verificación." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Actualizar navegador" }, @@ -3389,6 +3422,9 @@ "removePasswordConfirmation": { "message": "¿Está seguro que desea eliminar la contraseña?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "Deshabilita este envío para que nadie pueda acceder a él.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -3452,28 +3488,28 @@ "message": "You have not added any emergency contacts yet, invite a trusted contact to get started." }, "addEmergencyContact": { - "message": "Add emergency contact" + "message": "Añadir contacto de emergencia" }, "designatedEmergencyContacts": { - "message": "Designated as emergency contact" + "message": "Diseñado como contacto de emergencia" }, "noGrantedAccess": { "message": "You have not been designated as an emergency contact for anyone yet." }, "inviteEmergencyContact": { - "message": "Invite emergency contact" + "message": "Invitar contacto de emergencia" }, "editEmergencyContact": { - "message": "Edit emergency contact" + "message": "Editar contacto de emergencia" }, "inviteEmergencyContactDesc": { "message": "Invite a new emergency contact by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." }, "emergencyAccessRecoveryInitiated": { - "message": "Emergency Access Initiated" + "message": "Acceso de emergencia iniciado" }, "emergencyAccessRecoveryApproved": { - "message": "Emergency Access Approved" + "message": "Acceso de emergencia aprobado" }, "viewDesc": { "message": "Can view all items in your own vault." @@ -3482,19 +3518,19 @@ "message": "Takeover" }, "takeoverDesc": { - "message": "Can reset your account with a new master password." + "message": "Puede restablecer su cuenta con una nueva contraseña maestra." }, "waitTime": { - "message": "Wait Time" + "message": "Tiempo de espera" }, "waitTimeDesc": { - "message": "Time required before automatically granting access." + "message": "Tiempo requerido antes de conceder el acceso automáticamente." }, "oneDay": { - "message": "1 day" + "message": "1 día" }, "days": { - "message": "$DAYS$ days", + "message": "$DAYS$ días", "placeholders": { "days": { "content": "$1", @@ -3503,7 +3539,7 @@ } }, "invitedUser": { - "message": "Invited user." + "message": "Usuario invitado." }, "acceptEmergencyAccess": { "message": "You've been invited to become an emergency contact for the user listed above. To accept the invitation, you need to log in or create a new Bitwarden account." @@ -3512,7 +3548,7 @@ "message": "Unable to accept invitation. Ask the user to send a new invitation." }, "emergencyInviteAcceptFailedShort": { - "message": "Unable to accept invitation. $DESCRIPTION$", + "message": "No se puede aceptar la invitación. $DESCRIPTION$", "placeholders": { "description": { "content": "$1", @@ -3524,7 +3560,7 @@ "message": "You can access the emergency options for this user after your identity has been confirmed. We'll send you an email when that happens." }, "requestAccess": { - "message": "Request Access" + "message": "Solicitar acceso" }, "requestAccessConfirmation": { "message": "Are you sure you want to request emergency access? You will be provided access after $WAITTIME$ day(s) or whenever the user manually approves the request.", @@ -3545,10 +3581,10 @@ } }, "approve": { - "message": "Approve" + "message": "Aprobar" }, "reject": { - "message": "Reject" + "message": "Rechazar" }, "approveAccessConfirmation": { "message": "Are you sure you want to approve emergency access? This will allow $USER$ to $ACTION$ your account.", @@ -3564,10 +3600,10 @@ } }, "emergencyApproved": { - "message": "Emergency access approved." + "message": "Acceso de emergencia aprobado." }, "emergencyRejected": { - "message": "Emergency access rejected" + "message": "Acceso de emergencia rechazado" }, "passwordResetFor": { "message": "Password reset for $USER$. You can now login using the new password.", @@ -3579,7 +3615,7 @@ } }, "personalOwnership": { - "message": "Personal Ownership" + "message": "Propiedad personal" }, "personalOwnershipPolicyDesc": { "message": "Require users to save vault items to an organization by removing the personal ownership option." @@ -3591,7 +3627,7 @@ "message": "Due to an enterprise policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections." }, "disableSend": { - "message": "Disable Send" + "message": "Desactivar envío" }, "disableSendPolicyDesc": { "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", @@ -3601,15 +3637,37 @@ "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." }, "sendDisabled": { - "message": "Send disabled", + "message": "Enviar desactivado", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { "message": "Due to an enterprise policy, you are only able to delete an existing Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "modifiedPolicyId": { - "message": "Modified policy $ID$.", + "message": "Política modificada $ID$.", "placeholders": { "id": { "content": "$1", @@ -3618,49 +3676,52 @@ } }, "planPrice": { - "message": "Plan price" + "message": "Precio del plan" }, "estimatedTax": { - "message": "Estimated tax" + "message": "Impuesto estimado" }, "custom": { - "message": "Custom" + "message": "Personalizado" }, "customDesc": { "message": "Allows more granular control of user permissions for advanced configurations." }, "permissions": { - "message": "Permissions" + "message": "Permisos" }, "accessBusinessPortal": { - "message": "Access Business Portal" + "message": "Acceso al Portal de Negocios" }, "accessEventLogs": { - "message": "Access Event Logs" + "message": "Acceder a los registros de eventos" }, "accessImportExport": { - "message": "Access Import/Export" + "message": "Acceso importar/exportar" }, "accessReports": { - "message": "Access Reports" + "message": "Informes de acceso" }, "manageAllCollections": { - "message": "Manage All Collections" + "message": "Administrar todas las colecciones" }, "manageAssignedCollections": { - "message": "Manage Assigned Collections" + "message": "Administrar colecciones asignadas" }, "manageGroups": { - "message": "Manage Groups" + "message": "Administrar grupos" }, "managePolicies": { - "message": "Manage Policies" + "message": "Administrar políticas" }, "manageSso": { - "message": "Manage SSO" + "message": "Gestionar SSO" }, "manageUsers": { - "message": "Manage Users" + "message": "Administrar usuarios" + }, + "manageResetPassword": { + "message": "Manage Password Reset" }, "disableRequireSsoError": { "message": "You must manually disable the Single Sign-On Authentication policy before this policy can be disabled." @@ -3672,28 +3733,28 @@ "message": "Disable personal ownership for organization users" }, "textHiddenByDefault": { - "message": "When accessing the Send, hide the text by default", + "message": "Al acceder al Enviar, oculta el texto por defecto", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNameDesc": { - "message": "A friendly name to describe this Send.", + "message": "Un nombre amigable para describir este Envío.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTextDesc": { - "message": "The text you want to send." + "message": "El texto que desea enviar." }, "sendFileDesc": { - "message": "The file you want to send." + "message": "El archivo que desea enviar." }, "copySendLinkOnSave": { - "message": "Copy the link to share this Send to my clipboard upon save." + "message": "Copia el enlace para compartir este envío a mi portapapeles al guardar." }, "sendLinkLabel": { - "message": "Send link", + "message": "Enviar enlace", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "send": { - "message": "Send", + "message": "Enviar", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineProductDesc": { @@ -3701,46 +3762,46 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineLearnMore": { - "message": "Learn more about", + "message": "Aprende más sobre", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" }, "sendVaultCardProductDesc": { - "message": "Share text or files directly with anyone." + "message": "Compartir texto o archivos directamente con cualquiera." }, "sendVaultCardLearnMore": { - "message": "Learn more", + "message": "Aprende más", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" }, "sendVaultCardSee": { - "message": "see", + "message": "ver", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" }, "sendVaultCardHowItWorks": { - "message": "how it works", + "message": "cómo funciona", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" }, "sendVaultCardOr": { - "message": "or", + "message": "o", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" }, "sendVaultCardTryItNow": { - "message": "try it now", + "message": "pruébalo ahora", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" }, "sendAccessTaglineOr": { - "message": "or", + "message": "o", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" }, "sendAccessTaglineSignUp": { - "message": "sign up", + "message": "registrarse", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" }, "sendAccessTaglineTryToday": { - "message": "to try it today.", + "message": "pruébalo hoy.", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" }, "sendCreatorIdentifier": { - "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "message": "Usuario $USER_IDENTIFIER$ de Bitwarden compartió contigo", "placeholders": { "user_identifier": { "content": "$1", @@ -3748,6 +3809,10 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { "message": "The expiration date provided is not valid." }, @@ -3758,9 +3823,72 @@ "message": "An expiration date and time are required." }, "deletionDateAndTimeRequired": { - "message": "A deletion date and time are required." + "message": "Se requiere una fecha y hora de eliminación." }, "dateParsingError": { "message": "There was an error saving your deletion and expiration dates." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/et/messages.json b/locales/et/messages.json index af00e7be..0081eac3 100644 --- a/locales/et/messages.json +++ b/locales/et/messages.json @@ -725,6 +725,15 @@ "u2fTitle": { "message": "FIDO U2F Turvaline võti" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "E-post" }, @@ -800,10 +809,10 @@ "message": "Eksporditav fail on krüpteeringuta ja sisaldab hoidla sisu. Seda faili ei tohiks kaua käidelda ning mitte mingil juhul ebaturvaliselt saata (näiteks e-postiga). Kustuta see koheselt pärast kasutamist." }, "encExportKeyWarningDesc": { - "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + "message": "Eksporditavate andmete krüpteerimiseks kasutatakse kontol olevat krüpteerimisvõtit. Kui sa peaksid seda krüpteerimise võtit roteerima, ei saa sa järgnevalt eksporditavaid andmeid enam dekrüpteerida." }, "encExportAccountWarningDesc": { - "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + "message": "Iga Bitwardeni kasutaja krüpteerimisvõti on unikaalne. Eksporditud andmeid ei saa importida teise Bitwardeni kasutajakontosse." }, "exportMasterPassword": { "message": "Hoidlas olevate andmete eksportimiseks on vajalik ülemparooli sisestamine." @@ -1004,16 +1013,16 @@ "message": "Andmete importimine" }, "importError": { - "message": "Import Error" + "message": "Viga importimisel" }, "importErrorDesc": { - "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + "message": "Andmete importimisel ilmnes tõrge. Paranda originaalfailis olevad vead (kuvatud all) ning proovi uuesti." }, "importSuccess": { "message": "Andmed on edukalt hoidlasse imporditud." }, "importWarning": { - "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "message": "Impordid andmeid organisatsiooni $ORGANIZATION$. Imporditavaid andmeid võidakse jagada teiste organisatsiooni liikmetega. Soovid jätkata?", "placeholders": { "organization": { "content": "$1", @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "NFC tugi" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "Oled kindel, et soovid selle turvavõtme eemaldada?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Loe võtit" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "Turvavõtme lugemisel tekkis tõrge. Proovi uuesti." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Bitwardeni kaheastmelise logimise varukood" }, @@ -1584,7 +1611,7 @@ "message": "Lisavõimalused kaheastmeliseks kinnitamiseks, näiteks YubiKey, FIDO U2F ja Duo." }, "premiumSignUpEmergency": { - "message": "Emergency Access" + "message": "Hädaolukorra ligipääs" }, "premiumSignUpReports": { "message": "Parooli hügieen, konto seisukord ja andmelekete raportid aitavad hoidlat turvalisena hoida." @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "E-posti kinnitamine nurjus. Proovi uut kinnituskirja saata." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Uuenda brauserit" }, @@ -3314,7 +3347,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "createdSend": { - "message": "Lõi Sendi", + "message": "Send on loodud", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "editedSend": { @@ -3348,21 +3381,21 @@ "message": "Aegumiskuupäev" }, "expirationDateDesc": { - "message": "Seadistamisel ei pääse sellele Sendile enam pärast määratud kuupäeva ligi.", + "message": "Selle valimisel ei pääse sellele Sendile enam pärast määratud kuupäeva ligi.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "maxAccessCount": { "message": "Maksimaalne ligipääsude arv" }, "maxAccessCountDesc": { - "message": "Seadistamisel ei saa kasutajad pärast maksimaalse ligipääsude arvu saavutamist sellele Sendile enam ligi.", + "message": "Selle valimisel ei saa kasutajad pärast maksimaalse ligipääsude arvu saavutamist sellele Sendile enam ligi.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "currentAccessCount": { "message": "Hetkeline ligipääsude arv" }, "sendPasswordDesc": { - "message": "Mittekohustuslik parooli küsimine, et Sendile ligi pääseda.", + "message": "Soovi korral nõua parooli, millega Sendile ligi pääseb.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNotesDesc": { @@ -3389,6 +3422,9 @@ "removePasswordConfirmation": { "message": "Soovid kindlasti selle parooli eemaldada?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "Keela see Send, et keegi ei pääseks sellele ligi.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -3429,7 +3465,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "missingSendFile": { - "message": "The file associated with this Send could not be found.", + "message": "Sendiga seotud faili ei suudetud leida.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "noSendsInList": { @@ -3443,7 +3479,7 @@ "message": "Siin saad hallata ning seadistada usaldusväärseid kontakte, kes saavad hädaolukorral sinu Hoidla sisu kas Vaadata või Üle võtta. Rohkema info saamiseks vaata meie abilehekülge. Tegemist on turvalise ja „zero-knowledge“ lahendusega." }, "emergencyAccessOwnerWarning": { - "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + "message": "Oled ühe või enama organisatsiooni omanik. Andes ligipääsu hädaolukorra kontaktile, saab ta pärast konto ülevõtmist ka neid õiguseid kasutada." }, "trustedEmergencyContacts": { "message": "Usaldusväärsed hädaolukorra kontaktid" @@ -3591,21 +3627,43 @@ "message": "Ettevõtte poliitika tõttu ei saa sa andmeid oma personaalsesse Hoidlasse salvestada. Vali Omanikuks organisatsioon ja vali mõni saadavaolevatest Kogumikest." }, "disableSend": { - "message": "Disable Send" + "message": "Keela Send" }, "disableSendPolicyDesc": { - "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "message": "Ära võimalda kasutajatel Bitwardeni Sende luua või muuta. Olemasolevate Sendide kustutamise võimalikkus säilib.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disableSendExemption": { - "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + "message": "Neid organisatsiooni liikmeid, kes saavad hallata organisatsiooni poliitikaid, see muudatus ei mõjuta." }, "sendDisabled": { - "message": "Send disabled", + "message": "Send on väljalülitatud", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { - "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "message": "Ettevõtte poliitika kohaselt saad ainult olemasolevat Sendi kustutada.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "modifiedPolicyId": { @@ -3662,6 +3720,9 @@ "manageUsers": { "message": "Kasutajate haldamine" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "Enne selle poliitika keelamist pead Single Sign-On autentimise käsitsi välja lülitama." }, @@ -3676,20 +3737,20 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNameDesc": { - "message": "A friendly name to describe this Send.", + "message": "Sisesta Sendi nimi.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTextDesc": { - "message": "The text you want to send." + "message": "Tekst, mida soovid saata." }, "sendFileDesc": { - "message": "The file you want to send." + "message": "Fail, mida soovid saata." }, "copySendLinkOnSave": { - "message": "Copy the link to share this Send to my clipboard upon save." + "message": "Salvestamisel kopeeri Sendi jagamise link lõikepuhvrisse." }, "sendLinkLabel": { - "message": "Send link", + "message": "Sendi link", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "send": { @@ -3697,50 +3758,50 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineProductDesc": { - "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "message": "Bitwardeni Send võimaldab sensitiivset, ajutist informatsiooni hõlpsasti ning turvaliselt edastada.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineLearnMore": { - "message": "Learn more about", + "message": "Rohkem infot", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" }, "sendVaultCardProductDesc": { - "message": "Share text or files directly with anyone." + "message": "Jaga tekste või faile ükskõik kellega." }, "sendVaultCardLearnMore": { - "message": "Learn more", + "message": "Rohkem infot", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" }, "sendVaultCardSee": { - "message": "see", + "message": "vaata", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" }, "sendVaultCardHowItWorks": { - "message": "how it works", + "message": "kuidas see töötab", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" }, "sendVaultCardOr": { - "message": "or", + "message": "või", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" }, "sendVaultCardTryItNow": { - "message": "try it now", + "message": "proovi seda ise", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" }, "sendAccessTaglineOr": { - "message": "or", + "message": "või", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" }, "sendAccessTaglineSignUp": { - "message": "sign up", + "message": "loo konto,", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" }, "sendAccessTaglineTryToday": { - "message": "to try it today.", + "message": "et seda ise proovida.", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" }, "sendCreatorIdentifier": { - "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "message": "Bitwardeni kasutaja $USER_IDENTIFIER$ jagas sinuga järgnevat", "placeholders": { "user_identifier": { "content": "$1", @@ -3748,19 +3809,86 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { - "message": "The expiration date provided is not valid." + "message": "Valitud aegumiskuupäev ei ole õige." }, "deletionDateIsInvalid": { - "message": "The deletion date provided is not valid." + "message": "Valitud kustutamise kuupäev ei ole õige." }, "expirationDateAndTimeRequired": { - "message": "An expiration date and time are required." + "message": "Nõutav on aegumiskuupäev ja kellaaeg." }, "deletionDateAndTimeRequired": { - "message": "A deletion date and time are required." + "message": "Nõutav on kustutamise kuupäev ja kellaaeg." }, "dateParsingError": { - "message": "There was an error saving your deletion and expiration dates." + "message": "Kustutamis- ja aegumiskuupäevade salvestamisel ilmnes tõrge." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/fi/messages.json b/locales/fi/messages.json index bfdb6717..5d6ad0af 100644 --- a/locales/fi/messages.json +++ b/locales/fi/messages.json @@ -155,7 +155,7 @@ "message": "Arvo" }, "dragToSort": { - "message": "Järjestä raahaamalla" + "message": "Järjestele raahaamalla" }, "cfTypeText": { "message": "Teksti" @@ -224,7 +224,7 @@ "message": "Tarkasta, onko salasana paljastunut." }, "passwordExposed": { - "message": "Salasana on paljastunut $VALUE$ tietovuodossa. Se tulisi vaihtaa.", + "message": "Salasana on paljastunut $VALUE$ tietovuodossa ja se tulisi vaihtaa.", "placeholders": { "value": { "content": "$1", @@ -233,7 +233,7 @@ } }, "passwordSafe": { - "message": "Salasanaa ei löytynyt tunnetuista tietovuodoista. Sen pitäisi olla turvallinen." + "message": "Salasanaa ei löytynyt tunnetuista tietovuodoista ja sen pitäisi olla turvallinen." }, "save": { "message": "Tallenna" @@ -449,10 +449,10 @@ "message": "Muokattiin kohdetta" }, "sharedItem": { - "message": "Jaettu kohde" + "message": "Jaettiin kohde" }, "sharedItems": { - "message": "Jaetut kohteet" + "message": "Jaettiin kohteet" }, "deleteItem": { "message": "Poista kohde" @@ -491,10 +491,10 @@ "message": "Poistettiin kansio" }, "loggedOut": { - "message": "Kirjauduttu ulos" + "message": "Kirjauduttiin ulos" }, "loginExpired": { - "message": "Kirjautumisesi on vanhentunut." + "message": "Kirjautumisistuntosi on erääntynyt." }, "logOutConfirmation": { "message": "Haluatko varmasti kirjautua ulos?" @@ -725,6 +725,15 @@ "u2fTitle": { "message": "FIDO U2F ‑todennuslaite" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "Sähköpostiosoite" }, @@ -800,10 +809,10 @@ "message": "Tämä vienti sisältää holvisi tiedot salaamattomassa muodossa. Sinun ei tulisi säilyttää tai lähettää vietyä tiedostoa suojaamattomien kanavien (kuten sähköpostin) välityksellä. Poista se välittömästi kun sille ei enää ole käyttöä." }, "encExportKeyWarningDesc": { - "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + "message": "Tämä vienti salaa tietosi käyttäen tilisi salausavainta. Jos joskus uudistat tilisi salausavaimen, tulisi vienti suorittaa uudelleen, koska et voi enää purkaa nyt viedyn tiedoston salausta." }, "encExportAccountWarningDesc": { - "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + "message": "Tilin salausavaimet ovat ainutlaatuisia jokaiselle Bitwarden-käyttäjätilille, joten et voi tuoda salattua vientitiedostoa toiselle tilille." }, "exportMasterPassword": { "message": "Syötä pääsalasanasi viedäksesi holvisi tiedot." @@ -887,7 +896,7 @@ "message": "Jatkamalla kirjaudut ulos nykyisestä istunnostasi ja joudut kirjautumaan uudelleen. Aktiiviset istunnot toisilla laitteilla saattavat pysyä aktiivisina vielä tunnin ajan." }, "emailChanged": { - "message": "Sähköposti vaihdettiin" + "message": "Sähköpostiosoite vaihdettiin" }, "logBackIn": { "message": "Kirjaudu sisään uudelleen." @@ -1004,16 +1013,16 @@ "message": "Tuo tiedot" }, "importError": { - "message": "Import Error" + "message": "Tuontivirhe" }, "importErrorDesc": { - "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + "message": "Tiedoissa, joita yritit tuoda, havaittiin ongelma. Korjaa alla listatut virheet lähdetiedostosta ja yritä uudelleen." }, "importSuccess": { "message": "Tietojen tuonti holviisi onnistui." }, "importWarning": { - "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "message": "Olet tuomassa tietoja organisaatioon $ORGANIZATION$. Tietojasi saatetaan jakaa organisaation jäsenten kesken. Haluatko jatkaa?", "placeholders": { "organization": { "content": "$1", @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "NFC-tuki" }, @@ -1285,7 +1303,7 @@ "message": "Secret Key" }, "twoFactorDuoApiHostname": { - "message": "API hostname" + "message": "API Hostname" }, "twoFactorEmailDesc": { "message": "Seuraa näitä vaiheita ottaaksesi käyttöön kaksivaiheisen kirjautumisen todennuksen sähköpostitse:" @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "Haluatko varmasti poistaa todennuslaitteen?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Lue todennuslaite" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "Todennuslaittetta luettaessa havaittiin ongelma. Yritä uudelleen." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Bitwardenin kaksivaiheisen kirjautumisen palautuskoodisi" }, @@ -1373,7 +1400,7 @@ "message": "Holviisi tallennetuista kirjautumistiedoista ei löydetty suojaamattomia URI-osoitteita." }, "inactive2faReport": { - "message": "Tunnusten 2FA tila" + "message": "Tunnusten 2FA-tila" }, "inactive2faReportDesc": { "message": "Kaksivaiheinen kirjautuminen (2FA) on tärkeä suojausasetus, joka auttaa käyttäjätiliesi suojauksessa. Jos sivusto tarjoaa mahdollisuuden kaksivaiheisen kirjautmisen käyttöön, sinun tulisi aina ottaa se käyttöön." @@ -1382,7 +1409,7 @@ "message": "Löydettiin tunnuksia ilman kaksivaiheista kirjautumista" }, "inactive2faFoundDesc": { - "message": "Löysimme holvistasi $COUNT$ sivustoa, joita ei ehkä ole määritetty käyttämään kaksivaiheista kirjautumista (twofactorauth.org-sivuston mukaan). Suojataksesi nämä tilit paremmin, sinun tulisi ottaa kaksivaiheinen kirjautuminen käyttöön.", + "message": "Löysimme holvistasi $COUNT$ sivustoa, joita ei ehkä ole määritetty käyttämään kaksivaiheista kirjautumista (2fa.directory -sivuston mukaan). Suojataksesi nämä tilit paremmin, sinun tulisi ottaa kaksivaiheinen kirjautuminen käyttöön.", "placeholders": { "count": { "content": "$1", @@ -1572,10 +1599,10 @@ "description": "Another way of saying \"Get a premium membership\"" }, "premiumUpdated": { - "message": "Olet päivittänyt Premiumiin" + "message": "Olet päivittänyt Premiumiin." }, "premiumUpgradeUnlockFeatures": { - "message": "Päivitä tilisi Premium-jäsenyyteen ja avaa joitakin hienoja lisätoimintoja." + "message": "Päivitä tilisi Premium-jäsenyyteen ja avaa joitakin hienoja lisäominaisuuksia." }, "premiumSignUpStorage": { "message": "1 Gt salattua tallennustilaa tiedostoliitteille." @@ -1584,7 +1611,7 @@ "message": "Muita kaksivaiheisen kirjautumisen todennusmenetelmiä kuten YubiKey, FIDO U2F ja Duo Security." }, "premiumSignUpEmergency": { - "message": "Emergency Access" + "message": "Hätäyhteys" }, "premiumSignUpReports": { "message": "Salasanahygienian, tilin terveyden ja tietovuotojen raportointitoiminnot pitävät holvisi turvassa." @@ -1596,7 +1623,7 @@ "message": "Ensisijainen asiakastuki." }, "premiumSignUpFuture": { - "message": "Kaikki tulossa olevat Premium-toiminnot. Lisää tulossa pian!" + "message": "Kaikki tulossa olevat Premium-ominaisuudet. Lisää tulossa pian!" }, "premiumPrice": { "message": "Kaikki tämä vain $PRICE$/vuosi!", @@ -1630,7 +1657,7 @@ "message": "Lisättävä tallennustila, Gt" }, "additionalStorageGbDesc": { - "message": "# vapaana olevista gigatavuista" + "message": "Gigatavujen määrä" }, "additionalStorageIntervalDesc": { "message": "Tilaukseesi sisältyy $SIZE$ salattua tallennustilaa. Voit saada lisätilaa $PRICE$ per Gt/$INTERVAL$.", @@ -1903,7 +1930,7 @@ "message": "Lisättävät käyttäjäpaikat" }, "userSeatsDesc": { - "message": "# käyttäjäpaikkaa" + "message": "Käyttäjäpaikkojen määrä" }, "userSeatsAdditionalDesc": { "message": "Tilaukseesi kuuluu $BASE_SEATS$ käyttäjäpaikkaa. Voit lisätä käyttäjäpaikkoja hintaan $SEAT_PRICE$ per käyttäjä/kuukausi.", @@ -2022,7 +2049,7 @@ "message": "Suoritus omassa palvelinympäristössä (valinnainen)" }, "usersGetPremium": { - "message": "Käyttäjät saavat käyttöoikeuden Premium-toimintoihin" + "message": "Käyttäjät saavat käyttöoikeuden Premium-ominaisuuksiin" }, "controlAccessWithGroups": { "message": "Hallitse käyttäjien oikeuksia ryhmillä" @@ -2250,13 +2277,13 @@ "message": "Tilin salasana vaihdettiin." }, "enabledUpdated2fa": { - "message": "Kaksivaiheinen kirjautuminen on otettu käyttöön/päivitetty." + "message": "Kaksivaiheinen kirjautuminen otettiin käyttöön/päivitettiin." }, "disabled2fa": { - "message": "Kaksivaiheinen kirjautuminen on poistettu käytöstä." + "message": "Kaksivaiheinen kirjautuminen poistettiin käytöstä." }, "recovered2fa": { - "message": "Tili on vapautettu kaksivaiheisesta kirjautumisesta." + "message": "Tili vapautettiin kaksivaiheisesta kirjautumisesta." }, "failedLogin": { "message": "Sisäänkirjautumisyritys epäonnistui väärän salasanan vuoksi." @@ -2301,7 +2328,7 @@ } }, "sharedItemId": { - "message": "Kohde $ID$ jaettiin.", + "message": "Jaettiin kohde $ID$.", "placeholders": { "id": { "content": "$1", @@ -2346,7 +2373,7 @@ } }, "copiedPasswordItemId": { - "message": "Kohteen $ID$ salasana kopioitiin.", + "message": "Kopioitiin kohteen $ID$ salasana.", "placeholders": { "id": { "content": "$1", @@ -2355,7 +2382,7 @@ } }, "copiedHiddenFieldItemId": { - "message": "Kohteen $ID$ piilotettu kenttä kopioitiin.", + "message": "Kopioitiin kohteen $ID$ piilotettu kenttä.", "placeholders": { "id": { "content": "$1", @@ -2364,7 +2391,7 @@ } }, "copiedSecurityCodeItemId": { - "message": "Kohteen $ID$ turvakoodi kopioitiin.", + "message": "Kopioitiin kohteen $ID$ turvakoodi.", "placeholders": { "id": { "content": "$1", @@ -2517,7 +2544,7 @@ } }, "unlinkedSsoUser": { - "message": "Poistettu yrityksen kertakirjautuminen (SSO) käyttäjältä $ID$.", + "message": "Poistettiin yrityksen kertakirjautuminen (SSO) käyttäjältä $ID$.", "placeholders": { "id": { "content": "$1", @@ -2538,7 +2565,7 @@ "message": "Tapahtui virhe." }, "userAccess": { - "message": "Käyttäjän käyttöoikeus" + "message": "Käyttäjän käyttöoikeudet" }, "userType": { "message": "Käyttäjän tyyppi" @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "Sähköpostiosoitteesi vahvistus ei onnistunut. Yritä lähettää uusi vahvistussähköposti." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Päivitä selain" }, @@ -2640,7 +2673,7 @@ } }, "rememberEmail": { - "message": "Muista sähköposti" + "message": "Muista sähköpostiosoite" }, "recoverAccountTwoStepDesc": { "message": "Jos et pääse tilillesi käyttämilläsi kaksivaiheisen kirjautumisen todennusmenetelmillä, voit kaksivaiheisen kirjautumisen palautuskoodia käyttäen kytkeä kaikki tilillesi määritetyt todennusmenetelmät pois käytöstä." @@ -2912,7 +2945,7 @@ "message": "Organisaatio on poistettu käytöstä." }, "licenseIsExpired": { - "message": "Lisenssi on vanhentunut." + "message": "Lisenssi on erääntynyt." }, "updatedUsers": { "message": "Päivitetyt käyttäjät" @@ -2996,7 +3029,7 @@ "message": "API-avaimen kierrättäminen mitätöi edellisen avaimen. Voit kierrättää API-avaimen, jos uskot, ettei nykyisen avaimen käyttö ole enää turvallista." }, "apiKeyWarning": { - "message": "API-avaimellasi on täysi käyttöoikeus organisaatioon. Avain tulee pitää turvassa." + "message": "API-avaimellasi on täysi käyttöoikeus organisaatioon ja se tulee pitää turvassa." }, "userApiKeyDesc": { "message": "API-avaintasi voi käyttää tunnistautumiseen Bitwardenin komentokehotteessa (CLI)." @@ -3212,10 +3245,10 @@ "message": "Tarvitsemme näitä tietoja ainoastaan liikevaihtoveroa ja tilinpäätöstä varten." }, "includeVAT": { - "message": "Sisällytä VAT/GST -tiedot (valinnainen)" + "message": "Sisällytä ALV/GST-tiedot (valinnainen)" }, "taxIdNumber": { - "message": "ALV/GST -verotus tunniste" + "message": "ALV/GST-verotustunniste" }, "taxInfoUpdated": { "message": "Verotiedot päivitettiin." @@ -3246,7 +3279,7 @@ "description": "The web portal used by business organizations for configuring certain features." }, "includeAllTeamsFeatures": { - "message": "Kaikki \"Tiimit\" -tilauksen ominaisuudet, sekä:" + "message": "Kaikki Tiimit-tilauksen ominaisuudet, sekä:" }, "includeSsoAuthentication": { "message": "Kertakirjautumisen (SSO) todennus SAML2.0 ja OpenID Connect -standardeilla" @@ -3348,36 +3381,36 @@ "message": "Erääntymispäivä" }, "expirationDateDesc": { - "message": "Jos määritetty, Send vanhenee määritettynä ajankohtana.", + "message": "Jos määritetty, Send erääntyy määritettynä ajankohtana.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "maxAccessCount": { - "message": "Käyttöoikeuksien enimmäismäärä" + "message": "Käyttökertojen enimmäismäärä" }, "maxAccessCountDesc": { - "message": "Kun asetettu, käyttäjät eivät voi avata Sendiä käyttökertojen enimmäismäärän täytyttyä.", + "message": "Jos määritetty, käyttäjät eivät voi avata Sendiä käyttökertojen enimmäismäärän täytyttyä.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "currentAccessCount": { - "message": "Nykyinen käyttömäärä" + "message": "Nykyinen käyttökertojen määrä" }, "sendPasswordDesc": { "message": "Halutessasi, vaadi käyttäjiä syöttämään salasana Sendin avaamiseksi.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNotesDesc": { - "message": "Yksityiset muistiot tästä Sendistä.", + "message": "Yksityiset muistiinpanot tästä Sendistä.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disabled": { - "message": "Ei käytössä" + "message": "Poistettu käytöstä" }, "sendLink": { "message": "Send-linkki", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "copySendLink": { - "message": "Kopioi Send-linkki", + "message": "Kopioi Sendin linkki", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "removePassword": { @@ -3389,6 +3422,9 @@ "removePasswordConfirmation": { "message": "Haluatko varmasti poistaa salasanan?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "Poista Send käytöstä, jottei kukaan voi avata sitä.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -3403,7 +3439,7 @@ "message": "Odottaa poistoa" }, "expired": { - "message": "Vanhentunut" + "message": "Erääntynyt" }, "searchSends": { "message": "Hae Sendeistä", @@ -3429,7 +3465,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "missingSendFile": { - "message": "The file associated with this Send could not be found.", + "message": "Sendiin liittyvää tiedostoa ei löytynyt.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "noSendsInList": { @@ -3440,10 +3476,10 @@ "message": "Hätäyhteys" }, "emergencyAccessDesc": { - "message": "Myönnä ja hallitse luotettujen kontaktien hätäkäyttöoikeuksia. Luotetut kontaktit voivat anoa oikeutta tilisi tarkasteluun tai hallintaan hätätilanteessa. Käy ohjesivullamme saadaksesi lisätietoja ja tarkempia tietoja siitä, miten tiedon nollajako toimii." + "message": "Myönnä ja hallitse luotettujen kontaktien hätäkäyttöoikeuksia. Luotetut kontaktit voivat anoa oikeutta tilisi tarkasteluun tai hallintaan hätätilanteessa. Käy ohjesivullamme saadaksesi lisätietoja ja tarkempia tietoja siitä, miten nollatiedon jako toimii." }, "emergencyAccessOwnerWarning": { - "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + "message": "Olet yhden tai useamman organisaation omistaja. Jos myönnät hätäkontaktille hallintaoikeuden, on heillä haltuunoton jälkeen samat oikeudet." }, "trustedEmergencyContacts": { "message": "Luotetut hätäkontaktit" @@ -3591,21 +3627,43 @@ "message": "Yrityksen asettaman käytännön johdosta kohteiden tallennus omaan holviisi ei ole mahdollista. Muuta omistusasetus organisaatiolle ja valitse käytettävissä olevista kokoelmista." }, "disableSend": { - "message": "Disable Send" + "message": "Poista Send käytöstä" }, "disableSendPolicyDesc": { - "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "message": "Älä salli käyttäjien luoda tai muokata Bitwarden Sendejä. Olemassa olevan Sendin poisto sallitaan edelleen.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disableSendExemption": { - "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + "message": "Käytäntöä ei pakoteta käyttöön niille organisaation käyttäjille, joilla on organisaation käytäntöjen hallintaoikeudet." }, "sendDisabled": { - "message": "Send disabled", + "message": "Send on poistettu käytöstä", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { - "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "message": "Yrityksen käytännön vuoksi voit poistaa vain olemassa olevan Sendin.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "modifiedPolicyId": { @@ -3636,7 +3694,7 @@ "message": "Yritysportaalin käyttö" }, "accessEventLogs": { - "message": "Tutki tapahtumalokeja" + "message": "Tapahtumalokien käyttö" }, "accessImportExport": { "message": "Tuonnin/viennin käyttö" @@ -3645,22 +3703,25 @@ "message": "Raporttien käyttö" }, "manageAllCollections": { - "message": "Hallinnoi kaikkia kokoelmia" + "message": "Kaikkien kokoelmien hallinta" }, "manageAssignedCollections": { - "message": "Hallinnoi määritettyjä kokoelmia" + "message": "Määritettyjen kokoelmien hallinta" }, "manageGroups": { - "message": "Hallitse ryhmiä" + "message": "Ryhmien hallinta" }, "managePolicies": { - "message": "Hallitse käytäntöjä" + "message": "Käytäntöjen hallinta" }, "manageSso": { - "message": "Hallinnoi yrityksen kertakirjautumista (SSO)" + "message": "Kertakirjautumisen (SSO) hallinta" }, "manageUsers": { - "message": "Hallinnoi käyttäjiä" + "message": "Käyttäjien hallinta" + }, + "manageResetPassword": { + "message": "Manage Password Reset" }, "disableRequireSsoError": { "message": "Yrityksen kertakirjautuminen (SSO) on poistettava käytöstä manuaalisesti ennen kuin tämän käytännön voi poistaa käytöstä." @@ -3672,24 +3733,24 @@ "message": "Poista henkilökohtaisen omistajuuden valinta käytöstä organisaation käyttäjiltä" }, "textHiddenByDefault": { - "message": "Piilota teksti avattaessa Send", + "message": "Piilota teksti oletuksena kun Send avataan", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNameDesc": { - "message": "A friendly name to describe this Send.", + "message": "Kuvaava nimi Sendille.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTextDesc": { - "message": "The text you want to send." + "message": "Teksti, jonka haluat lähettää." }, "sendFileDesc": { - "message": "The file you want to send." + "message": "Tiedosto, jonka haluat lähettää." }, "copySendLinkOnSave": { - "message": "Copy the link to share this Send to my clipboard upon save." + "message": "Kopioi Sendin linkki leikepöydälle tallennettaessa." }, "sendLinkLabel": { - "message": "Send link", + "message": "Send-linkki", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "send": { @@ -3697,50 +3758,50 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineProductDesc": { - "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "message": "Bitwarden Send lähettää arkaluonteisia, väliaikaisia tietoja muille helposti ja turvallisesti.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineLearnMore": { - "message": "Learn more about", + "message": "Lue lisää", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" }, "sendVaultCardProductDesc": { - "message": "Share text or files directly with anyone." + "message": "Jaa tekstiä tai tiedostoja suoraan kenen tahansa kanssa." }, "sendVaultCardLearnMore": { - "message": "Learn more", + "message": "Lue lisää", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" }, "sendVaultCardSee": { - "message": "see", + "message": "näe", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" }, "sendVaultCardHowItWorks": { - "message": "how it works", + "message": "miten se toimii", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" }, "sendVaultCardOr": { - "message": "or", + "message": "tai", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" }, "sendVaultCardTryItNow": { - "message": "try it now", + "message": "kokeile sitä nyt", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" }, "sendAccessTaglineOr": { - "message": "or", + "message": "tai", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" }, "sendAccessTaglineSignUp": { - "message": "sign up", + "message": "liity", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" }, "sendAccessTaglineTryToday": { - "message": "to try it today.", + "message": "kokeillaksesi sitä tänään.", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" }, "sendCreatorIdentifier": { - "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "message": "Bitwarden-käyttäjä $USER_IDENTIFIER$ jakoi kanssasi seuraavat", "placeholders": { "user_identifier": { "content": "$1", @@ -3748,19 +3809,86 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { - "message": "The expiration date provided is not valid." + "message": "Asetettu erääntymispäivä on virhellinen." }, "deletionDateIsInvalid": { - "message": "The deletion date provided is not valid." + "message": "Asetettu poistopäivä on virheellinen." }, "expirationDateAndTimeRequired": { - "message": "An expiration date and time are required." + "message": "Viimeinen voimassaolopäivä ja aika vaaditaan." }, "deletionDateAndTimeRequired": { - "message": "A deletion date and time are required." + "message": "Poistopäivä ja -aika vaaditaan." }, "dateParsingError": { - "message": "There was an error saving your deletion and expiration dates." + "message": "Tapahtui virhe tallennettaessa poisto- ja erääntymispäiviä." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/fr/messages.json b/locales/fr/messages.json index 2f11cb73..b720cdbf 100644 --- a/locales/fr/messages.json +++ b/locales/fr/messages.json @@ -725,6 +725,15 @@ "u2fTitle": { "message": "Clé de sécurité FIDO U2F" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "E-mail" }, @@ -1028,7 +1037,7 @@ "message": "Rien à importer." }, "selectFormat": { - "message": "Sélectionnez le format du fichier importé" + "message": "Sélectionnez le format du fichier à importer" }, "selectImportFile": { "message": "Sélectionnez le fichier à importer" @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "Support du NFC" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "Êtes-vous sûr de vouloir supprimer cette clé de sécurité ?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Lire la clé" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "Un problème est survenu lors de la lecture de la clé de sécurité. Veuillez réessayer." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Votre code de récupération de connexion en deux étapes Bitwarden" }, @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "Impossible de vérifier votre adresse e-mail. Essayez de renvoyer un nouvel e-mail de vérification." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Mettre à jour le navigateur" }, @@ -3389,6 +3422,9 @@ "removePasswordConfirmation": { "message": "Êtes-vous sûr de vouloir supprimer le mot de passe ?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "Désactiver ce Send pour que personne ne puisse y accéder.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -3608,6 +3644,28 @@ "message": "En raison d'une politique d'entreprise, vous ne pouvez que supprimer un Send existant.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "modifiedPolicyId": { "message": "Politique $ID$ modifiée.", "placeholders": { @@ -3662,6 +3720,9 @@ "manageUsers": { "message": "Gérer les utilisateurs" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "Vous devez désactiver manuellement la politique d'authentification unique (SSO) avant que cette politique ne puisse être désactivée." }, @@ -3748,6 +3809,10 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { "message": "La date d'expiration indiquée n'est pas valide." }, @@ -3762,5 +3827,68 @@ }, "dateParsingError": { "message": "Une erreur s'est produite lors de l'enregistrement de vos dates de suppression et d'expiration." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/he/messages.json b/locales/he/messages.json index 45d5eccb..5bfbe041 100644 --- a/locales/he/messages.json +++ b/locales/he/messages.json @@ -725,6 +725,15 @@ "u2fTitle": { "message": "מפתח אבטחה FIDO U2F" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "אימייל" }, @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "תמיכה ב-NFC" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "האם אתה בטוח שברצונך למחוק מפתח אבטחה זה?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "קרא מפתח" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "היתה בעיה בקריאת מפתח האבטחה. נסה בשנית." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "קוד השחזור שלך עבור כניסה דו שלבית לBitwarden" }, @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "לא ניתן לאמת את האימייל שלך. נסה לשלוח מייל אימות חדש." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "עדכן דפדפן" }, @@ -3389,6 +3422,9 @@ "removePasswordConfirmation": { "message": "האם אתה בטוח שברצונך להסיר את הסיסמה?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "Disable this Send so that no one can access it.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -3608,6 +3644,28 @@ "message": "Due to an enterprise policy, you are only able to delete an existing Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "modifiedPolicyId": { "message": "Modified policy $ID$.", "placeholders": { @@ -3662,6 +3720,9 @@ "manageUsers": { "message": "Manage Users" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "You must manually disable the Single Sign-On Authentication policy before this policy can be disabled." }, @@ -3748,6 +3809,10 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { "message": "The expiration date provided is not valid." }, @@ -3762,5 +3827,68 @@ }, "dateParsingError": { "message": "There was an error saving your deletion and expiration dates." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/hr/messages.json b/locales/hr/messages.json index 17c24a4d..66324f11 100644 --- a/locales/hr/messages.json +++ b/locales/hr/messages.json @@ -13,7 +13,7 @@ "message": "Koja je ovo vrsta stavke?" }, "name": { - "message": "Ime" + "message": "Naziv" }, "uri": { "message": "URI" @@ -725,6 +725,15 @@ "u2fTitle": { "message": "FIDO U2F sigurnosni ključ" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "E-pošta" }, @@ -800,10 +809,10 @@ "message": "Ovaj izvoz sadrži podatke trezora u nešifriranom obliku! Izvezenu datoteku se ne bi smjelo pohranjivati ili slati putem nesigurnih kanala (npr. e-poštom). Izbriši ju odmah nakon završetka korištenja." }, "encExportKeyWarningDesc": { - "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + "message": "Ovaj izvoz šifrira tvoje podatke koristeći ključ za šifriranje. Promijeniš li naknadno ključ za šifriranje, potrebno je ponovno napraviti izvoz jer nećeš moći dešifrirati ovu izvezenu datoteku." }, "encExportAccountWarningDesc": { - "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + "message": "Ključ za šifriranje jedinstven je za svakog Bitwarden korisnika, kako bi se šifrirani izvoz mogao uvesti u drugi korisnički račun." }, "exportMasterPassword": { "message": "Unesi glavnu lozinku za izvoz podataka iz trezora." @@ -1004,16 +1013,16 @@ "message": "Uvezi podatke" }, "importError": { - "message": "Import Error" + "message": "Greška prilikom uvoza" }, "importErrorDesc": { - "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + "message": "Postoji problem s podacima za uvoz. Potrebno je razriješiti doljenavedene greške u izvornoj datoteci i pokušati ponovno." }, "importSuccess": { "message": "Uvoz podataka u trezor je uspjelo." }, "importWarning": { - "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "message": "Uvoziš podatke u $ORGANIZATION$. Tvoji podaci možda će biti podijeljeni s članovima ove organizacije. Želiš li svejedno uvesti podatke?", "placeholders": { "organization": { "content": "$1", @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "NFC podrška" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "Sigurno želiš ukloniti ovaj sigurnosni ključ?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Očitaj ključ" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "Došlo je do pogreške kod očitavanja sigurnosnog ključa. Pokušaj ponovno." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Tvoj kôd za oporavak Bitwarden prijave u dva koraka" }, @@ -1584,7 +1611,7 @@ "message": "Dodatne mogućnosti za prijavu u dva koraka kao što su YubiKey, FIDO U2F i Duo." }, "premiumSignUpEmergency": { - "message": "Emergency Access" + "message": "Pristup u nuždi" }, "premiumSignUpReports": { "message": "Higijenu lozinki, zdravlje računa i izvještaje o krađi podatak radi zaštite svojeg trezora." @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "Ne možeš potvrditi svoju e-poštu? Pošalji novu poruku." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Ažuriraj preglednik" }, @@ -3306,78 +3339,78 @@ "message": "Tekst" }, "createSend": { - "message": "Stvori novi „Send”", + "message": "Stvori novi Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "editSend": { - "message": "Uredi „Send”", + "message": "Uredi Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "createdSend": { - "message": "„Send” stvoren", + "message": "Send stvoren", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "editedSend": { - "message": "„Send” uređen", + "message": "Send uređen", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deletedSend": { - "message": "„Send” izbrisan", + "message": "Send izbrisan", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deleteSend": { - "message": "Izbriši „Send”", + "message": "Izbriši Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deleteSendConfirmation": { - "message": "Sigurno želiš izbrisati ovaj „Send”?", + "message": "Sigurno želiš izbrisati ovaj Send?", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "whatTypeOfSend": { - "message": "Koja je ovo vrsta „Send-a”?", + "message": "Koja je ovo vrsta Send-a?", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deletionDate": { "message": "Datum brisanja" }, "deletionDateDesc": { - "message": "„Send” će biti trajno izbrisan specificiranog datuma.", + "message": "Send će biti trajno izbrisan navedenog datuma.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "expirationDate": { "message": "Datum isteka" }, "expirationDateDesc": { - "message": "Ako je određen, pristup ovom „Send-u” će isteći specificranog datuma.", + "message": "Ako je određeno, pristup ovom Sendu će isteći navedenog dana u navedeno vrijeme.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "maxAccessCount": { "message": "Najveći proj pristupanja" }, "maxAccessCountDesc": { - "message": "Ako je određen, korisnici neće moći pristupiti ovom „Send-u” nakon što se postigne najveći broj pristupanja.", + "message": "Ako je određen, korisnici neće moći pristupiti ovom Sendu nakon što se postigne najveći broj pristupanja.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "currentAccessCount": { "message": "Trenutni broj pristupanja" }, "sendPasswordDesc": { - "message": "Neobavezno zahtijevaj korisnika lozinku za pristup ovom „Send-u”.", + "message": "Neobavezno zahtijevaj korisnika lozinku za pristup ovom Sendu.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNotesDesc": { - "message": "Privatne bilješne o „Send-u”.", + "message": "Privatne bilješke o Sendu.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disabled": { "message": "Onemogućeno" }, "sendLink": { - "message": "Pošalji vezu", + "message": "Veza na Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "copySendLink": { - "message": "Kopiraj poslanu vezu", + "message": "Kopiraj vezu na Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "removePassword": { @@ -3389,12 +3422,15 @@ "removePasswordConfirmation": { "message": "Sigurno želiš ukloniti lozinku?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { - "message": "Disable this Send so that no one can access it.", + "message": "Onemogući ovaj Send da mu nitko ne može pristupiti.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "allSends": { - "message": "Svi „Send-ovi”" + "message": "Svi Sendovi" }, "maxAccessCountReached": { "message": "Dostignut najveći broj pristupanja" @@ -3406,34 +3442,34 @@ "message": "Isteklo" }, "searchSends": { - "message": "Pretraži „Send-ove”", + "message": "Pretraži Sendove", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendProtectedPassword": { - "message": "Ovaj „Send” je zaštićen lozinkom. Unesi lozinku za nastavak.", + "message": "Ovaj Send je zaštićen lozinkom. Unesi lozinku za nastavak.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendProtectedPasswordDontKnow": { - "message": "Ne znaš lozinku? Upitaj pošiljatelja za lozinku za pristup ovom „Send-u”.", + "message": "Ne znaš lozinku? Upitaj pošiljatelja za lozinku za pristup ovom Sendu.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendHiddenByDefault": { - "message": "Ovaj je „Send” zadano skriven. Moguće mu je promijeniti vidljivost.", + "message": "Ovaj je Send zadano skriven. Moguće mu je promijeniti vidljivost.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "downloadFile": { "message": "Preuzmi datoteku" }, "sendAccessUnavailable": { - "message": "„Send” kojem pokušavaš pristupiti više ne postoji ili više nije dostupan.", + "message": "Send kojem pokušavaš pristupiti više ne postoji ili više nije dostupan.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "missingSendFile": { - "message": "The file associated with this Send could not be found.", + "message": "Datoteka povezana s ovim Sendom nije pronađena.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "noSendsInList": { - "message": "Nema „Send-ova”.", + "message": "Nema Sendova.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "emergencyAccess": { @@ -3443,7 +3479,7 @@ "message": "Odobri i upravljaj pristupu u nuždi za pouzdane kontakte. Oni, u slučaju nužde, mogu vidjeti ili preuzeti tvoj račun. Posjeti našu stranicu pomoći za više detalja kako funkcionira dijeljene na principu nula-znanja." }, "emergencyAccessOwnerWarning": { - "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + "message": "Vlasnik si jedne ili više organizacija. Ako dozvoliš preuzimanje računa kontaktu u nuždi, moći će koristiti sva tvoja dopuštenja kao Vlasnika nakon preuzimanja." }, "trustedEmergencyContacts": { "message": "Pouzdani kontakti u nuždi" @@ -3591,21 +3627,43 @@ "message": "Pravila tvrtke onemogućuju spremanje stavki u osobni trezor. Promijeni vlasništvo stavke na tvrtku i odaberi dostupnu Zbirku." }, "disableSend": { - "message": "Disable Send" + "message": "Onemogući Send" }, "disableSendPolicyDesc": { - "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "message": "Ne dozvoli korisnicima stvaranje ili uređivanje Sendova. Brisanje postojećeg Senda je dozvoljeno.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disableSendExemption": { - "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + "message": "Organizacijski korisnici koji mogu mijenjati pravila tvrtke nisu obuhvaćeni za provedbu ovog pravila." }, "sendDisabled": { - "message": "Send disabled", + "message": "Send onemogućen", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { - "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "message": "Pravila tvrtke omogućuju brisanje samo postojećeg Senda.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "modifiedPolicyId": { @@ -3662,6 +3720,9 @@ "manageUsers": { "message": "Upravljanje korisnicima" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "Pravilo SSO autentifikacije mora biti isključeno prije deaktivacije ovog pravila." }, @@ -3672,24 +3733,24 @@ "message": "Onemogući osobno vlasnišvo za organizacijske korisnike" }, "textHiddenByDefault": { - "message": "Zadano sakrij tekst pri pristupanju „Send-u”", + "message": "Zadano sakrij tekst pri pristupanju Sendu", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNameDesc": { - "message": "A friendly name to describe this Send.", + "message": "Nadimak za ovaj Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTextDesc": { - "message": "The text you want to send." + "message": "Tekst kojeg želiš poslati." }, "sendFileDesc": { - "message": "The file you want to send." + "message": "Datoteka koju želiš poslati." }, "copySendLinkOnSave": { - "message": "Copy the link to share this Send to my clipboard upon save." + "message": "Kopiraj vezu za dijeljenje ovog Senda nakon spremanja." }, "sendLinkLabel": { - "message": "Send link", + "message": "Veza na Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "send": { @@ -3697,50 +3758,50 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineProductDesc": { - "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "message": "Pomoću Bitwarden Send jednostavno i sigurno pošalji osjetljive, privremene podatke.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineLearnMore": { - "message": "Learn more about", + "message": "Saznaj više o", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" }, "sendVaultCardProductDesc": { - "message": "Share text or files directly with anyone." + "message": "Dijeli tekst ili datoteke s bilo kim." }, "sendVaultCardLearnMore": { - "message": "Learn more", + "message": "Saznaj više", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" }, "sendVaultCardSee": { - "message": "see", + "message": "pogledaj", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" }, "sendVaultCardHowItWorks": { - "message": "how it works", + "message": "kako funkcionira", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" }, "sendVaultCardOr": { - "message": "or", + "message": "ili", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" }, "sendVaultCardTryItNow": { - "message": "try it now", + "message": "isprobaj odmah", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" }, "sendAccessTaglineOr": { - "message": "or", + "message": "ili", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" }, "sendAccessTaglineSignUp": { - "message": "sign up", + "message": "registriraj se", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" }, "sendAccessTaglineTryToday": { - "message": "to try it today.", + "message": "za isprobavanje.", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" }, "sendCreatorIdentifier": { - "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "message": "Bitwarden korisnik $USER_IDENTIFIER$ je s tobom podijelio", "placeholders": { "user_identifier": { "content": "$1", @@ -3748,19 +3809,86 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { - "message": "The expiration date provided is not valid." + "message": "Navedeni rok isteka nije valjan." }, "deletionDateIsInvalid": { - "message": "The deletion date provided is not valid." + "message": "Navedeni datum brisanja nije valjan." }, "expirationDateAndTimeRequired": { - "message": "An expiration date and time are required." + "message": "Potrebno je unijeti datum i vrijeme isteka." }, "deletionDateAndTimeRequired": { - "message": "A deletion date and time are required." + "message": "Potrebno je unijeti datum i vrijeme brisanja." }, "dateParsingError": { - "message": "There was an error saving your deletion and expiration dates." + "message": "Došlo je do greške kod spremanja vaših datuma isteka i brisanja." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/hu/messages.json b/locales/hu/messages.json index d17a4845..25fac950 100644 --- a/locales/hu/messages.json +++ b/locales/hu/messages.json @@ -725,6 +725,15 @@ "u2fTitle": { "message": "FIDO U2F Biztonsági kulcs" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "Email cím" }, @@ -800,10 +809,10 @@ "message": "Ez az exportálás titkosítás nélkül tartalmazza a széfadatokat.Nem célszerű az exportált fájlt nem biztonságos csatornákon tárolni és továbbküldeni (például emailben). A felhasználás után erősen ajánlott a törlés." }, "encExportKeyWarningDesc": { - "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + "message": "Ez az exportálás titkosítja az adatokat a fiók titkosítási kulcsával. Ha valaha a diók forgatási kulcsa más lesz, akkor újra exportálni kell, mert nem lehet visszafejteni ezt az exportálási fájlt." }, "encExportAccountWarningDesc": { - "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + "message": "A fiók titkosítási kulcsai minden Bitwarden felhasználói fiókhoz egyediek, ezért nem importálhatunk titkosított exportálást egy másik fiókba." }, "exportMasterPassword": { "message": "A mesterjelszó megadása a széfadatok exportálásához." @@ -1004,16 +1013,16 @@ "message": "Adatok importálása" }, "importError": { - "message": "Import Error" + "message": "Importálási hiba" }, "importErrorDesc": { - "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + "message": "Hiba történt az importálni próbált adatokkal. Javítsuk a felsorolt hibákat a forrásfájlban és próbáljuk újra." }, "importSuccess": { "message": "Az adatok sikeresen importálásra kerültek a széfbe." }, "importWarning": { - "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "message": "Adatokat importálunk $ORGANIZATION$ mappába. Az adatok megoszthatók a szervezet tagjaival. Folytatjuk?", "placeholders": { "organization": { "content": "$1", @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "NFC támogatás" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "Biztosan eltávolításra kerüljön a biztonsági kulcs?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Kulcs beolvasása" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "Probléma lépett fel a biztonsági kulcs olvasásakor. Próbáljuk újra." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Bitwarden kétlépcsős bejelentkezés helyreállító kód" }, @@ -1382,7 +1409,7 @@ "message": "2FA nélküli bejelentkezések találhatók." }, "inactive2faFoundDesc": { - "message": "$COUNT$ olyan webhely van a széfben, amely nincs kétlépcsős hitelesítéssel konfigurálva (a twofactorauth.org alapján). Ezen fiókok további védelme érdekében, javasolt lenne a kétlépcsős hitelesítés használata.", + "message": "$COUNT$ olyan webhelyet találtunk széfben, amely nincs kétlépcsős hitelesítéssel konfigurálva (a 2fa.directory adatbázisa alapján). Ezen fiókok további védelme érdekében, javasolt a kétlépcsős hitelesítés használata.", "placeholders": { "count": { "content": "$1", @@ -1584,7 +1611,7 @@ "message": "További olyan kétlépcsős bejelentkezési opciók mint a YubiKey, FIDO U2F és Duo." }, "premiumSignUpEmergency": { - "message": "Emergency Access" + "message": "Sürgősségi hozzáférés" }, "premiumSignUpReports": { "message": "Jelszó higiénia, felhasználói fiók biztonsága, és adatszivárgási jelentések a széf biztonsága érdekében." @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "Nem sikerült az email cím ellenőrzése. Új ellenőrző email küldése." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Böngésző frissítése" }, @@ -3373,7 +3406,7 @@ "message": "Letiltva" }, "sendLink": { - "message": "Hivatkozás küldése", + "message": "Send link", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "copySendLink": { @@ -3389,6 +3422,9 @@ "removePasswordConfirmation": { "message": "Biztosan eltávolításra kerüljön ez a jelszó?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "A Küldés letiltásával mindenki hozzáférése megvonható.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -3429,7 +3465,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "missingSendFile": { - "message": "The file associated with this Send could not be found.", + "message": "A Küldéshez társított fájl nem található.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "noSendsInList": { @@ -3440,10 +3476,10 @@ "message": "Sürgősségi hozzáférés" }, "emergencyAccessDesc": { - "message": "Sürgősségi hozzáférés kezelése és megadása megbízható kapcsolatoknál. A megbízható kapcsolatok sürgősségi helyzet esetén hozzáférést kérhetnek a fiókhoz vagy azt átvehetik. A súgó oldalon további információkat és kezdőknek szóló megosztási munkákat kapunk." + "message": "Sürgősségi hozzáférés kezelése és megadása megbízható kapcsolatoknak. A megbízható kapcsolatok sürgősségi helyzet esetén hozzáférést kérhetnek a fiókhoz vagy átvehetik azt. További információkat a funkció működésével kapcsolatban a súgó oldalon találhatsz." }, "emergencyAccessOwnerWarning": { - "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + "message": "Jelnleg egy vagy több szervezet tulajdonosa vagyunk. Ha átvételi hozzáférést adunk egy vészhelyzeti kapcsolattartónak, akkor az átvételt követően tulajdonosként használhatják az összes engedélyt." }, "trustedEmergencyContacts": { "message": "Megbízható sürgősségi kapcsolatok" @@ -3588,24 +3624,46 @@ "message": "A szervezet tulajdonosai és adminisztrátorai mentesek az irányelv végrehajtása alól." }, "personalOwnershipSubmitError": { - "message": "Egy vállalati házirend miatt korlátozásra került az elemek személyes tárolóba történő mentése. Módosítsuk a Tulajdon opciót egy szervezetre és válasszunk az elérhető gyűjtemények közül." + "message": "Egy vállalati házirend miatt korlátozásra került az elemek személyes tárolóba történő mentése. Módosítsa a Tulajdon opciót egy szervezetre és válasszon az elérhető gyűjtemények közül." }, "disableSend": { - "message": "Disable Send" + "message": "Küdlés letiltása" }, "disableSendPolicyDesc": { - "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "message": "Ne engedjük a felhasználóknak a Bitwarden Küldés létrehozását vagy szerkesztését. A meglévő küldés törlése továbbra is megengedett.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disableSendExemption": { - "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + "message": "A szervezet házirendjét kezeő szervezeti felhasználók, mentesülnek az irányelvek végrehajtása alól." }, "sendDisabled": { - "message": "Send disabled", + "message": "A küldés kikapcsolásra került", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { - "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "message": "A vállalati házirend miatt csak egy meglévő Küldés törölhető.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "modifiedPolicyId": { @@ -3662,6 +3720,9 @@ "manageUsers": { "message": "Felhasználók kezelése" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "Manuálisan le kell tiltani az egyszeri bejelentkezés hitelesítési házirendjét mielőtt ez a házirend letiltásra kerülhet." }, @@ -3676,71 +3737,71 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNameDesc": { - "message": "A friendly name to describe this Send.", + "message": "Barátságos név a Küldés leírására.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTextDesc": { - "message": "The text you want to send." + "message": "A küldendő szöveg." }, "sendFileDesc": { - "message": "The file you want to send." + "message": "A küldendő fájl." }, "copySendLinkOnSave": { - "message": "Copy the link to share this Send to my clipboard upon save." + "message": "A hivatkozás másolása a Küldés megosztásához a vágólapra mentéskor." }, "sendLinkLabel": { - "message": "Send link", + "message": "Hivatkozás küldése", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "send": { - "message": "Send", + "message": "Küldés", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineProductDesc": { - "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "message": "A Bitwarden Küldés könnyen és biztonságosan továbbítja az érzékeny, ideiglenes információkat másoknak.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineLearnMore": { - "message": "Learn more about", + "message": "Bővebben erről", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" }, "sendVaultCardProductDesc": { - "message": "Share text or files directly with anyone." + "message": "Szöveg és fájlok közvetlen megosztása bárkivel." }, "sendVaultCardLearnMore": { - "message": "Learn more", + "message": "További információ", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" }, "sendVaultCardSee": { - "message": "see", + "message": "nézzük", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" }, "sendVaultCardHowItWorks": { - "message": "how it works", + "message": "Hogyan működik?", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" }, "sendVaultCardOr": { - "message": "or", + "message": "vagy", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" }, "sendVaultCardTryItNow": { - "message": "try it now", + "message": "próbáljuk ki most", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" }, "sendAccessTaglineOr": { - "message": "or", + "message": "vagy", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" }, "sendAccessTaglineSignUp": { - "message": "sign up", + "message": "regisztráció", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" }, "sendAccessTaglineTryToday": { - "message": "to try it today.", + "message": "próbáljuk ki még ma.", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" }, "sendCreatorIdentifier": { - "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "message": "$USER_IDENTIFIER$ Bitwarden felhasználó megosztotta a következőket", "placeholders": { "user_identifier": { "content": "$1", @@ -3748,19 +3809,86 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { - "message": "The expiration date provided is not valid." + "message": "A megadott lejárati idő nem érvényes." }, "deletionDateIsInvalid": { - "message": "The deletion date provided is not valid." + "message": "A megadot törlési dátum nem érvényes." }, "expirationDateAndTimeRequired": { - "message": "An expiration date and time are required." + "message": "Lejárati dátum és idő megadása szükséges." }, "deletionDateAndTimeRequired": { - "message": "A deletion date and time are required." + "message": "Törlési dátum és idő megadása szükséges." }, "dateParsingError": { - "message": "There was an error saving your deletion and expiration dates." + "message": "Hiba történt a törlés és a lejárati dátum mentésekor." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/id/messages.json b/locales/id/messages.json index be7aba5a..b19e8c21 100644 --- a/locales/id/messages.json +++ b/locales/id/messages.json @@ -725,6 +725,15 @@ "u2fTitle": { "message": "Kunci Keamanan FIDO U2F" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "Surel" }, @@ -800,10 +809,10 @@ "message": "Ekspor ini berisi data vault Anda dalam format yang tidak dienkripsi. Anda tidak boleh menyimpan atau mengirim file yang diekspor melalui saluran yang tidak aman (seperti email). Hapus segera setelah Anda selesai menggunakannya." }, "encExportKeyWarningDesc": { - "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + "message": "Ekspor ini mengenkripsi data Anda menggunakan kunci enkripsi akun Anda. Jika Anda pernah memutar kunci enkripsi akun Anda, Anda harus mengekspor lagi karena Anda tidak akan dapat mendekripsi file ekspor ini." }, "encExportAccountWarningDesc": { - "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + "message": "Kunci enkripsi akun adalah unik untuk setiap akun pengguna Bitwarden, sehingga Anda tidak dapat mengimpor ekspor terenkripsi ke akun yang berbeda." }, "exportMasterPassword": { "message": "Masukkan kata sandi utama Anda untuk mengekspor data brankas Anda." @@ -1004,16 +1013,16 @@ "message": "Impor Data" }, "importError": { - "message": "Import Error" + "message": "Impor Kesalahan" }, "importErrorDesc": { - "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + "message": "Ada masalah dengan data yang Anda coba impor. Harap selesaikan kesalahan yang tercantum di bawah ini di file sumber Anda dan coba lagi." }, "importSuccess": { "message": "Data telah berhasil diimpor ke lemari besi Anda." }, "importWarning": { - "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "message": "Anda mengimpor data ke $ORGANIZATION$. Data Anda dapat dibagikan dengan anggota organisasi ini. Apakah Anda ingin melanjutkan?", "placeholders": { "organization": { "content": "$1", @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "Dukungan NFC" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "Anda yakin ingin menghapus kunci keamanan ini?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Baca Kunci" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "Ada masalah saat membaca kunci keamanan. Coba lagi." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Kode pemulihan masuk dua langkah Bitwarden Anda" }, @@ -1584,7 +1611,7 @@ "message": "Opsi login dua langkah tambahan seperti YubiKey, FIDO U2F, dan Duo." }, "premiumSignUpEmergency": { - "message": "Emergency Access" + "message": "Akses darurat" }, "premiumSignUpReports": { "message": "Kebersihan kata sandi, kesehatan akun, dan laporan pelanggaran data untuk menjaga brankas Anda tetap aman." @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "Tidak dapat memverifikasi email Anda. Coba kirim email verifikasi baru." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Perbarui Browser" }, @@ -3389,6 +3422,9 @@ "removePasswordConfirmation": { "message": "Anda yakin ingin menghapus kata sandi?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "Nonaktifkan Pengiriman ini sehingga tidak ada yang dapat mengaksesnya.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -3429,7 +3465,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "missingSendFile": { - "message": "The file associated with this Send could not be found.", + "message": "File yang terkait dengan kirim ini tidak dapat ditemukan.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "noSendsInList": { @@ -3443,7 +3479,7 @@ "message": "Berikan dan kelola akses darurat untuk kontak tepercaya. Kontak tepercaya dapat meminta akses ke Lihat atau Ambil alih akun Anda jika terjadi keadaan darurat. Kunjungi halaman bantuan kami untuk informasi lebih lanjut dan detail tentang cara kerja zero knowledge sharing." }, "emergencyAccessOwnerWarning": { - "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + "message": "Anda adalah pemilik satu atau lebih organisasi. Jika Anda memberikan pengambilalihan akses ke kontak darurat, mereka akan dapat menggunakan semua izin Anda sebagai pemilik setelah pengambilalihan." }, "trustedEmergencyContacts": { "message": "Kontak darurat tepercaya" @@ -3591,21 +3627,43 @@ "message": "Karena Kebijakan Perusahaan, Anda dilarang menyimpan item ke lemari besi pribadi Anda. Ubah opsi Kepemilikan ke organisasi dan pilih dari Koleksi yang tersedia." }, "disableSend": { - "message": "Disable Send" + "message": "Nonaktifkan Kirim" }, "disableSendPolicyDesc": { - "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "message": "Jangan izinkan pengguna membuat atau mengedit Kirim Bitwarden. Menghapus kirim yang ada masih diperbolehkan.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disableSendExemption": { - "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + "message": "Pengguna organisasi yang dapat mengelola kebijakan organisasi dibebaskan dari penegakan kebijakan ini." }, "sendDisabled": { - "message": "Send disabled", + "message": "Kirim Dinonaktifkan", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { - "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "message": "Karena kebijakan perusahaan, Anda hanya dapat menghapus kirim yang sudah ada.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "modifiedPolicyId": { @@ -3662,6 +3720,9 @@ "manageUsers": { "message": "Kelola Pengguna" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "Anda harus secara manual menonaktifkan kebijakan Autentikasi Sistem Masuk Tunggal sebelum kebijakan ini dapat dinonaktifkan." }, @@ -3676,71 +3737,71 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNameDesc": { - "message": "A friendly name to describe this Send.", + "message": "Nama yang ramah untuk menggambarkan kirim ini.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTextDesc": { - "message": "The text you want to send." + "message": "Teks yang ingin Anda kirim." }, "sendFileDesc": { - "message": "The file you want to send." + "message": "File yang ingin Anda kirim." }, "copySendLinkOnSave": { - "message": "Copy the link to share this Send to my clipboard upon save." + "message": "Salin tautan untuk membagikan kirim ini ke clipboard saya saat menyimpan." }, "sendLinkLabel": { - "message": "Send link", + "message": "Kirim tautan", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "send": { - "message": "Send", + "message": "Kirim", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineProductDesc": { - "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "message": "Bitwarden mengirim mentransmisikan informasi sementara yang sensitif kepada orang lain dengan mudah dan aman.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineLearnMore": { - "message": "Learn more about", + "message": "Belajar lebih tentang", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" }, "sendVaultCardProductDesc": { - "message": "Share text or files directly with anyone." + "message": "Bagikan teks atau file secara langsung dengan siapa pun." }, "sendVaultCardLearnMore": { - "message": "Learn more", + "message": "Belajarlah lagi", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" }, "sendVaultCardSee": { - "message": "see", + "message": "lihat", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" }, "sendVaultCardHowItWorks": { - "message": "how it works", + "message": "bagaimana itu bekerja", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" }, "sendVaultCardOr": { - "message": "or", + "message": "atau", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" }, "sendVaultCardTryItNow": { - "message": "try it now", + "message": "coba sekarang", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" }, "sendAccessTaglineOr": { - "message": "or", + "message": "atau", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" }, "sendAccessTaglineSignUp": { - "message": "sign up", + "message": "daftar", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" }, "sendAccessTaglineTryToday": { - "message": "to try it today.", + "message": "untuk mencobanya hari ini.", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" }, "sendCreatorIdentifier": { - "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "message": "Pengguna Bitwarden $USER_IDENTIFIER$ berbagi yang berikut dengan Anda", "placeholders": { "user_identifier": { "content": "$1", @@ -3748,19 +3809,86 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { - "message": "The expiration date provided is not valid." + "message": "Tanggal kedaluwarsa yang disediakan tidak valid." }, "deletionDateIsInvalid": { - "message": "The deletion date provided is not valid." + "message": "Tanggal penghapusan yang disediakan tidak valid." }, "expirationDateAndTimeRequired": { - "message": "An expiration date and time are required." + "message": "Diperlukan tanggal dan waktu kedaluwarsa." }, "deletionDateAndTimeRequired": { - "message": "A deletion date and time are required." + "message": "Diperlukan tanggal dan waktu penghapusan." }, "dateParsingError": { - "message": "There was an error saving your deletion and expiration dates." + "message": "Ada kesalahan menyimpan penghapusan dan tanggal kedaluwarsa Anda." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/it/messages.json b/locales/it/messages.json index 7e5030fc..700a8985 100644 --- a/locales/it/messages.json +++ b/locales/it/messages.json @@ -1,6 +1,6 @@ { "pageTitle": { - "message": "$APP_NAME$ Cassaforte Web", + "message": "Cassaforte web di $APP_NAME$", "description": "The title of the website in the browser window.", "placeholders": { "app_name": { @@ -32,13 +32,13 @@ "message": "Nuovo URI" }, "username": { - "message": "Nome Utente" + "message": "Nome utente" }, "password": { "message": "Password" }, "newPassword": { - "message": "Nuova Password" + "message": "Nuova password" }, "passphrase": { "message": "Frase segreta" @@ -47,7 +47,7 @@ "message": "Note" }, "customFields": { - "message": "Campi Personalizzati" + "message": "Campi personalizzati" }, "cardholderName": { "message": "Titolare della carta" @@ -65,7 +65,7 @@ "message": "Codice di sicurezza (CVV)" }, "identityName": { - "message": "Nome identità" + "message": "Nome dell'identità" }, "company": { "message": "Azienda" @@ -77,7 +77,7 @@ "message": "Numero del passaporto" }, "licenseNumber": { - "message": "Numero patente" + "message": "Numero della patente" }, "email": { "message": "Email" @@ -134,7 +134,7 @@ "message": "Sig.na" }, "dr": { - "message": "Dottore" + "message": "Dott." }, "expirationMonth": { "message": "Mese di scadenza" @@ -224,7 +224,7 @@ "message": "Verifica se la password è stata esposta." }, "passwordExposed": { - "message": "Questa password è stata esposta $VALUE$ volta(e) in dati violati. Dovresti cambiarla.", + "message": "Questa password è presente $VALUE$ volta/e in database di violazioni. Dovresti cambiarla.", "placeholders": { "value": { "content": "$1", @@ -233,7 +233,7 @@ } }, "passwordSafe": { - "message": "Questa password non è stata trovata in dati violati noti. Dovrebbe essere sicura da usare." + "message": "Questa password non è stata trovata in database di violazioni noti. Dovrebbe essere sicura da usare." }, "save": { "message": "Salva" @@ -300,7 +300,7 @@ "message": "Cartelle" }, "collections": { - "message": "Collezioni" + "message": "Raccolte" }, "firstName": { "message": "Nome" @@ -321,10 +321,10 @@ "message": "Indirizzo 3" }, "cityTown": { - "message": "Comune" + "message": "Città / Comune" }, "stateProvince": { - "message": "Provincia" + "message": "Stato / Provincia" }, "zipPostalCode": { "message": "CAP" @@ -395,7 +395,7 @@ "description": "Copy URI to clipboard" }, "myVault": { - "message": "Cassaforte" + "message": "La mia cassaforte" }, "vault": { "message": "Cassaforte" @@ -407,7 +407,7 @@ "message": "Elimina selezionati" }, "moveSelected": { - "message": "Sposta Selezionati" + "message": "Sposta selezionati" }, "selectAll": { "message": "Seleziona tutto" @@ -422,7 +422,7 @@ "message": "Aggiungi nuovo allegato" }, "deletedAttachment": { - "message": "Elimina Allegato" + "message": "Allegato eliminato" }, "deleteAttachmentConfirmation": { "message": "Sei sicuro di voler eliminare questo allegato?" @@ -440,7 +440,7 @@ "message": "La dimensione massima del file è di 100 MB." }, "updateKey": { - "message": "Non puoi utilizzare questa funzione finché non aggiorni la tua chiave crittografica." + "message": "Non puoi utilizzare questa funzione finché non aggiorni la tua chiave di cifratura." }, "addedItem": { "message": "Elemento aggiunto" @@ -467,10 +467,10 @@ "message": "Sei sicuro di voler eliminare questo elemento?" }, "deletedItem": { - "message": "Elemento eliminato" + "message": "Elemento cestinato" }, "deletedItems": { - "message": "Elementi eliminati" + "message": "Elementi cestinati" }, "movedItems": { "message": "Elementi spostati" @@ -512,10 +512,10 @@ "message": "No" }, "loginOrCreateNewAccount": { - "message": "Accedi in o crea un nuovo account per accedere alla tua cassaforte." + "message": "Accedi o crea un nuovo account per accedere alla tua cassaforte." }, "createAccount": { - "message": "Crea Account" + "message": "Crea account" }, "logIn": { "message": "Accedi" @@ -533,7 +533,7 @@ "message": "Come dovremmo chiamarti?" }, "masterPass": { - "message": "Password Principale" + "message": "Password principale" }, "masterPassDesc": { "message": "La password principale è la password che utilizzi per accedere alla tua cassaforte. È molto importante che tu non la dimentichi. Non c'è modo di recuperare questa password nel caso che tu la dimenticassi." @@ -542,7 +542,7 @@ "message": "Un suggerimento che può aiutarti a ricordare la tua password principale se la dimentichi." }, "reTypeMasterPass": { - "message": "Ri-digita la Password Principale" + "message": "Digita nuovamente la password principale" }, "masterPassHint": { "message": "Suggerimento per la password principale (facoltativo)" @@ -618,22 +618,22 @@ "message": "Non ci sono elementi da mostrare." }, "noCollectionsInList": { - "message": "Nessuna collezione da visualizzare." + "message": "Nessuna raccolta da visualizzare." }, "noGroupsInList": { - "message": "Non ci sono gruppi da mostrare." + "message": "Non ci sono gruppi da elencare." }, "noUsersInList": { - "message": "Non ci sono utenti da visualizzare." + "message": "Non ci sono utenti da elencare." }, "noEventsInList": { - "message": "Non ci sono eventi da visualizzare." + "message": "Non ci sono eventi da elencare." }, "newOrganization": { - "message": "Crea organizzazione" + "message": "Nuova organizzazione" }, "noOrganizationsList": { - "message": "Tu non appartieni ad alcuna organizzazione. Le organizzazioni ti consentono di condividere oggetti in modo sicuro con altri utenti." + "message": "Non appartieni ad alcuna organizzazione. Le organizzazioni ti consentono di condividere oggetti in modo sicuro con altri utenti." }, "versionNumber": { "message": "Versione $VERSION_NUMBER$", @@ -675,13 +675,13 @@ "message": "Usa un altro metodo di verifica in due passaggi" }, "insertYubiKey": { - "message": "Inserisci la tua YubiKey nella porta USB del computer, poi premi il suo bottone." + "message": "Inserisci la tua YubiKey nella porta USB del computer, poi premi il suo pulsante." }, "insertU2f": { - "message": "Inserisci la tua security key nella porta USB del tuo computer. Se dispone di un pulsante, premilo." + "message": "Inserisci la tua chiave di sicurezza nella porta USB del tuo computer. Se dispone di un pulsante, premilo." }, "loginUnavailable": { - "message": "Login non disponibile" + "message": "Accesso non disponibile" }, "noTwoStepProviders": { "message": "La verifica in due passaggi è abilitata su questo account, ma nessuno dei metodi configurati è supportato da questo browser." @@ -690,7 +690,7 @@ "message": "Utilizza un browser supportato (come Chrome) e/o aggiungi altri metodi per la verifica in due passaggi che sono supportati meglio dai browser (come un'applicazione di autenticazione)." }, "twoStepOptions": { - "message": "Opzioni di verifica in due passaggi" + "message": "Opzioni verifica in due passaggi" }, "recoveryCodeDesc": { "message": "Hai perso l'accesso a tutti i tuoi metodi di verifica in due passaggi? Usa il tuo codice di recupero per disattivare tutti i metodi di verifica sul tuo account." @@ -699,7 +699,7 @@ "message": "Codice di recupero" }, "authenticatorAppTitle": { - "message": "App di autenticazione" + "message": "Applicazione di autenticazione" }, "authenticatorAppDesc": { "message": "Usa un'applicazione di autenticazione (come Authy o Google Authenticator) per generare codici di verifica a tempo.", @@ -709,7 +709,7 @@ "message": "Chiave di sicurezza YubiKey OTP" }, "yubiKeyDesc": { - "message": "Utilizzate una YubiKey per accedere al vostro conto. Funziona con dispositivi YubiKey serie 4, serie 5 e NEO." + "message": "Utilizza una YubiKey per accedere al tuo account. Funziona con dispositivi YubiKey serie 4, serie 5 e NEO." }, "duoDesc": { "message": "Verifica con Duo Security usando l'applicazione Duo Mobile, SMS, chiamata telefonica, o chiave di sicurezza U2F.", @@ -723,7 +723,16 @@ "message": "Usa una chiave di sicurezza compatibile con FIDO U2F per accedere al tuo account." }, "u2fTitle": { - "message": "Security key FIDO U2F" + "message": "Chiave di sicurezza FIDO U2F" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" }, "emailTitle": { "message": "Email" @@ -797,13 +806,13 @@ "message": "Conferma esportazione della cassaforte" }, "exportWarningDesc": { - "message": "Questa esportazione contiene i dati della tua cassaforte in un formato non criptato. Non salvare o inviare il file esportato su canali non protetti (come la posta elettronica). Eliminalo immediatamente dopo l'utilizzo." + "message": "Questa esportazione contiene i dati della tua cassaforte in un formato non cifrato. Non salvare o inviare il file esportato su canali non protetti (come la posta elettronica). Eliminalo immediatamente dopo l'utilizzo." }, "encExportKeyWarningDesc": { - "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + "message": "Questa esportazione cifra i tuoi dati utilizzando la chiave di cifratura del tuo account. Se cambi la chiave di cifratura del tuo account, non sarai più in grado di decifrare il file esportato e sarà necessario eseguire una nuova esportazione." }, "encExportAccountWarningDesc": { - "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + "message": "Le chiavi di cifratura dell'account sono uniche per ogni account utente Bitwarden, quindi non è possibile importare un'esportazione cifrata in un account diverso." }, "exportMasterPassword": { "message": "Inserisci la tua password principale per esportare i dati della tua cassaforte." @@ -856,10 +865,10 @@ "message": "Cronologia delle password" }, "noPasswordsInList": { - "message": "Non ci sono password da mostrare." + "message": "Non ci sono password da elencare." }, "clear": { - "message": "Elimina", + "message": "Cancella", "description": "To clear something out. example: To clear browser history." }, "accountUpdated": { @@ -869,13 +878,13 @@ "message": "Cambia indirizzo email" }, "newEmail": { - "message": "Nuova Email" + "message": "Nuova email" }, "code": { "message": "Codice" }, "changeEmailDesc": { - "message": "Abbiamo inviato un codice di verifica all'indirizzo $EMAIL$. Per favore controlla la tua email ed inserisci il codice qui sotto per confermare la modifica al tuo indirizzo email.", + "message": "Abbiamo inviato un codice di verifica all'indirizzo $EMAIL$. Controlla la tua email e inserisci il codice qui sotto per confermare la modifica al tuo indirizzo email.", "placeholders": { "email": { "content": "$1", @@ -890,19 +899,19 @@ "message": "Email modificata" }, "logBackIn": { - "message": "Per favore accedi nuovamente." + "message": "Accedi nuovamente." }, "logBackInOthersToo": { - "message": "Per favore accedi nuovamente. Se ci sono altre sessioni di Bitwarden attive, ripeti l'accesso anche su quei dispositivi." + "message": "Accedi nuovamente. Se ci sono altre sessioni di Bitwarden attive, ripeti l'accesso anche su quei dispositivi." }, "changeMasterPassword": { - "message": "Cambia Password Principale" + "message": "Cambia password principale" }, "masterPasswordChanged": { - "message": "Password Principale Cambiata" + "message": "Password principale cambiata" }, "currentMasterPass": { - "message": "Password Principale Attuale" + "message": "Password principale attuale" }, "newMasterPass": { "message": "Nuova password principale" @@ -911,7 +920,7 @@ "message": "Conferma nuova password principale" }, "encKeySettings": { - "message": "Impostazioni chiave di crittografia" + "message": "Impostazioni chiave di cifratura" }, "kdfAlgorithm": { "message": "Algoritmo KDF" @@ -920,7 +929,7 @@ "message": "Iterazioni KDF" }, "kdfIterationsDesc": { - "message": "Le iterazioni KDF più elevate possono aiutare a proteggere la tua password master dall'essere forzata da un utente malintenzionato. Consigliamo un valore di $VALUE$ o più.", + "message": "Un numero di iterazioni KDF più elevato può aiutare a proteggere la tua password principale dall'essere forzata da un utente malintenzionato. Consigliamo un valore di $VALUE$ o più.", "placeholders": { "value": { "content": "$1", @@ -929,7 +938,7 @@ } }, "kdfIterationsWarning": { - "message": "L'impostazione delle iterazioni KDF troppo elevata potrebbe comportare prestazioni scadenti durante l'accesso (e lo sblocco) di Bitwarden su dispositivi con CPU lente. Ti consigliamo di aumentare il valore in incrementi di $INCREMENT$ e poi testare tutti i tuoi dispositivi.", + "message": "Impostare un numero troppo elevato di iterazioni KDF potrebbe comportare prestazioni scadenti durante l'accesso (e lo sblocco) di Bitwarden su dispositivi con CPU lente. Ti consigliamo di aumentare il valore con incrementi di $INCREMENT$ e poi provare tutti i tuoi dispositivi.", "placeholders": { "increment": { "content": "$1", @@ -941,19 +950,19 @@ "message": "Cambia KDF" }, "encKeySettingsChanged": { - "message": "Impostazioni chiave di crittografia modificate" + "message": "Impostazioni chiave di cifratura modificate" }, "dangerZone": { - "message": "Zona Pericolosa" + "message": "Zona pericolosa" }, "dangerZoneDesc": { "message": "Attento, queste azioni non sono reversibili!" }, "deauthorizeSessions": { - "message": "Annulla Autorizzazione Sessioni" + "message": "Annulla autorizzazione sessioni" }, "deauthorizeSessionsDesc": { - "message": "Preoccupato che il tuo account sia connesso su un altro dispositivo? Procedere di seguito per rimuovere l'autorizzazione a tutti i computer o dispositivi precedentemente utilizzati. Questo passaggio di sicurezza è consigliato se in precedenza hai utilizzato un PC pubblico o hai salvato per errore la tua password su un dispositivo che non è tuo. Questo passaggio cancellerà anche tutte le sessioni di verifica in due passaggi precedentemente salvate." + "message": "Preoccupato che il tuo account sia connesso su un altro dispositivo? Procedi di seguito per rimuovere l'autorizzazione a tutti i computer o dispositivi precedentemente utilizzati. Questo passaggio di sicurezza è consigliato se in precedenza hai utilizzato un PC pubblico o hai salvato per errore la tua password su un dispositivo che non è tuo. Questo passaggio cancellerà anche tutte le sessioni di verifica in due passaggi precedentemente salvate." }, "deauthorizeSessionsWarning": { "message": "La procedura ti consentirà inoltre di disconnetterti dalla sessione corrente, richiedendoti di accedere di nuovo. Se abilitato, ti verrà richiesta nuovamente la verifica in due passaggi. Le sessioni attive su altri dispositivi possono continuare a rimanere attive per un massimo di un'ora." @@ -962,25 +971,25 @@ "message": "Tutte le sessioni sono state annullate" }, "purgeVault": { - "message": "Svuota Cassaforte" + "message": "Svuota cassaforte" }, "purgedOrganizationVault": { - "message": "Purifica il caveau dell'organizzazione." + "message": "Cassaforte dell'organizzazione svuotata." }, "purgeVaultDesc": { - "message": "Procedi in basso per eliminare tutti gli elementi e le cartelle nel Vault. Gli elementi che appartengono a un'organizzazione con cui condividi non verranno eliminati." + "message": "Procedi in basso per eliminare tutti gli elementi e le cartelle nella cassaforte. Gli elementi che appartengono a un'organizzazione con cui condividi non saranno eliminati." }, "purgeOrgVaultDesc": { - "message": "Procedi sotto per eliminare tutti gli elementi nel caveau dell'organizzazione." + "message": "Procedi sotto per eliminare tutti gli elementi nella cassaforte dell'organizzazione." }, "purgeVaultWarning": { - "message": "Svuotare la tua cassaforte è permanente. Questa azione non è reversibile." + "message": "Lo svuotamento della cassaforte è permanente. Questa azione non è reversibile." }, "vaultPurged": { "message": "La tua cassaforte è stata svuotata." }, "deleteAccount": { - "message": "Elimina Account" + "message": "Elimina account" }, "deleteAccountDesc": { "message": "Procedi qui sotto per eliminare il tuo account e tutti i dati ad esso associati." @@ -995,7 +1004,7 @@ "message": "Il tuo account è stato eliminato e tutti i dati associati sono stati rimossi." }, "myAccount": { - "message": "Il mio Account" + "message": "Il mio account" }, "tools": { "message": "Strumenti" @@ -1004,16 +1013,16 @@ "message": "Importa dati" }, "importError": { - "message": "Import Error" + "message": "Errore di importazione" }, "importErrorDesc": { - "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + "message": "Si è verificato un problema con i dati che hai provato ad importare. Risolvi gli errori elencati di seguito nel file importato e riprova." }, "importSuccess": { - "message": "I dati sono stati importati con successo nella tua cassaforte." + "message": "I dati sono stati importati correttamente nella tua cassaforte." }, "importWarning": { - "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "message": "Stai importando dati in $ORGANIZATION$. I tuoi dati potrebbero essere condivisi con i membri di questa organizzazione. Vuoi procedere?", "placeholders": { "organization": { "content": "$1", @@ -1022,7 +1031,7 @@ } }, "importFormatError": { - "message": "I dati non sono formattati correttamente. Si prega di ricontrollare il file da importare." + "message": "I dati non sono formattati correttamente. Ricontrolla il file da importare." }, "importNothingError": { "message": "Non è stato importato nulla." @@ -1065,7 +1074,7 @@ "message": "Disabilita icone dei siti web" }, "disableIconsDesc": { - "message": "Le icone dei siti web forniscono un'immagine riconoscibile accanto ad ogni elemento di login." + "message": "Le icone dei siti web forniscono un'immagine riconoscibile accanto ad ogni elemento di accesso." }, "enableGravatars": { "message": "Abilita Gravatar", @@ -1075,11 +1084,11 @@ "message": "Usa immagine profilo caricata da gravatar.com." }, "enableFullWidth": { - "message": "Abilita Layout a Larghezza Piena", + "message": "Abilita disposizione a larghezza piena", "description": "Allows scaling the web vault UI's width" }, "enableFullWidthDesc": { - "message": "Consentire al web vault di sfruttare tutta la larghezza della finestra del browser." + "message": "Consentire alla cassaforte web di sfruttare tutta la larghezza della finestra del browser." }, "default": { "message": "Predefinito" @@ -1109,7 +1118,7 @@ "message": "Nuovo dominio personalizzato" }, "newCustomDomainDesc": { - "message": "Inserisci una lista di domini separati da virgola. Sono permessi solo domini \"base\". Non inserire sottodomini. Per esempio, inserisci \"google.com\" invece di \"www.google.com\". Puoi inserire anche \"androidapp://package.name\" per associare un'applicazione android con altri domini." + "message": "Inserisci un elenco di domini separati da virgola. Sono permessi solo domini \"base\". Non inserire sottodomini. Per esempio, inserisci \"google.com\" invece di \"www.google.com\". Puoi inserire anche \"androidapp://package.name\" per associare un'applicazione android con altri domini." }, "customDomainX": { "message": "Dominio personalizzato $INDEX$", @@ -1133,10 +1142,10 @@ "message": "Richiedi la verifica in due passaggi per gli utenti della tua organizzazione configurando dei metodi a livello di organizzazione." }, "twoStepLoginRecoveryWarning": { - "message": "Con la verifica in due passaggi potresti bloccare permanentemente il tuo account di Bitwarden. Un codice di recupero ti permette di accedere al tuo account nel caso in cui non fossi più in grado di utilizzare il tuo solito metodo di verifica (ad esempio se perdi il tuo telefono). L'assistenza di Bitwarden non sarà in grado di aiutarti qualora dovessi perdere l'accesso al tuo account. Ti raccomandiamo di scrivere o stampare il tuo codice di recupero e di conservarlo in un luogo sicuro." + "message": "Con la verifica in due passaggi potresti bloccare permanentemente il tuo account di Bitwarden. Un codice di recupero ti permette di accedere al tuo account nel caso in cui non fossi più in grado di utilizzare il tuo solito metodo di verifica (ad esempio se perdi il tuo telefono). L'assistenza di Bitwarden non sarà in grado di aiutarti qualora dovessi perdere l'accesso al tuo account. Ti consigliamo di scrivere o stampare il tuo codice di recupero e di conservarlo in un luogo sicuro." }, "viewRecoveryCode": { - "message": "Mostra il codice di recupero" + "message": "Visualizza codice di recupero" }, "providers": { "message": "Metodi", @@ -1153,7 +1162,7 @@ "description": "Premium Membership" }, "premiumMembership": { - "message": "Abbonamento Premium" + "message": "Abbonamento premium" }, "premiumRequired": { "message": "Abbonamento Premium richiesto" @@ -1198,7 +1207,7 @@ "message": "Dispositivi Windows" }, "twoStepAuthenticatorAppsRecommended": { - "message": "Queste applicazioni sono raccomandate, tuttavia funzioneranno anche altre applicazioni di autenticazione." + "message": "Queste applicazioni sono consigliate, tuttavia funzioneranno anche altre applicazioni di autenticazione." }, "twoStepAuthenticatorScanCode": { "message": "Scansione questo QR code con la tua applicazione di autenticazione" @@ -1234,10 +1243,10 @@ "message": "Salva il modulo." }, "twoFactorYubikeyWarning": { - "message": "A causa di limitazioni della piattaforma, YubiKey non può essere utilizzato su tutte le applicazioni Bitwarden. Si consiglia di abilitare un altro metodo di verifica in due passaggi in modo da poter accedere al tuo account anche dove YubiKeys non può essere usato. Piattaforme supportate:" + "message": "A causa di limitazioni della piattaforma, YubiKey non può essere utilizzato su tutte le applicazioni Bitwarden. Dovresti abilitare un altro metodo di verifica in due passaggi in modo da poter accedere al tuo account anche dove YubiKeys non può essere usato. Piattaforme supportate:" }, "twoFactorYubikeySupportUsb": { - "message": "La cassaforte Web, l'applicazione desktop, la CLI e tutte le estensioni per browser su un dispositivo con una porta USB in grado di accettare la tua YubiKey." + "message": "La cassaforte web, l'applicazione desktop, la CLI e tutte le estensioni per browser su un dispositivo con una porta USB in grado di accettare la tua YubiKey." }, "twoFactorYubikeySupportMobile": { "message": "Le applicazioni su un dispositivo con NFC o una porta USB in grado di accettare la tua YubiKey." @@ -1260,14 +1269,23 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { - "message": "Supporto per NFC" + "message": "Supporto NFC" }, "twoFactorYubikeySupportsNfc": { "message": "Una delle mie chiavi supporta NFC." }, "twoFactorYubikeySupportsNfcDesc": { - "message": "Se una delle tue YubiKey supporta NFC (come la Yubikey NEO), verrà richiesto dal dispostivo mobile nel caso la disponibilità NFC venga rilevata." + "message": "Se una delle tue YubiKey supporta NFC (come la Yubikey NEO), sarà richiesto dal dispositivo mobile nel caso la disponibilità NFC venga rilevata." }, "yubikeysUpdated": { "message": "Yubikey aggiornate" @@ -1285,7 +1303,7 @@ "message": "Chiave segreta" }, "twoFactorDuoApiHostname": { - "message": "Hostname API" + "message": "Nome host API" }, "twoFactorEmailDesc": { "message": "Segui questi passi per impostare la verifica in due passaggi con l'email:" @@ -1305,8 +1323,11 @@ "removeU2fConfirmation": { "message": "Sei sicuro di voler rimuovere questa chiave di sicurezza?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { - "message": "Leggi chiave" + "message": "Leggi la chiave" }, "keyCompromised": { "message": "La chiave è compromessa." @@ -1315,7 +1336,7 @@ "message": "Assegna alla chiave di sicurezza un nome descrittivo per identificarla." }, "twoFactorU2fPlugInReadKey": { - "message": "Inserire la chiave di sicurezza nella porta USB del tuo computer e clicca sul pulsante \"Leggi chiave\"." + "message": "Inserisci la chiave di sicurezza nella porta USB del tuo computer e fai clic sul pulsante \"Leggi chiave\"." }, "twoFactorU2fTouchButton": { "message": "Se la chiave di protezione dispone di un pulsante, premilo." @@ -1324,20 +1345,26 @@ "message": "Salva il modulo." }, "twoFactorU2fWarning": { - "message": "A causa di limitazioni della piattaforma, FIDO U2F non può essere utilizzato su tutte le applicazioni Bitwarden. Si consiglia di abilitare un altro metodo di verifica in due passaggi in modo da poter accedere al tuo account anche dove FIDO U2F non può essere usato. Piattaforme supportate:" + "message": "A causa di limitazioni della piattaforma, FIDO U2F non può essere utilizzato su tutte le applicazioni Bitwarden. Dovresti abilitare un altro metodo di verifica in due passaggi in modo da poter accedere al tuo account anche dove FIDO U2F non può essere usato. Piattaforme supportate:" }, "twoFactorU2fSupportWeb": { - "message": "Cassaforte Web ed estensione per il browser desktop/laptop con un U2F browser abilitato (Chrome, Opera, Vivaldi o Firefox con FIDO U2F abilitato)." + "message": "Cassaforte web ed estensione per il browser desktop/laptop con un U2F browser abilitato (Chrome, Opera, Vivaldi o Firefox con FIDO U2F abilitato)." }, "twoFactorU2fWaiting": { "message": "In attesa che venga premuto il pulsante della tua chiave di sicurezza" }, "twoFactorU2fClickSave": { - "message": "Clicca sul pulsante \"Salva\" qui sotto per abilitare questa chiave di sicurezza per la verifica in due passaggi." + "message": "Fai clic sul pulsante \"Salva\" qui sotto per abilitare questa chiave di sicurezza per la verifica in due passaggi." }, "twoFactorU2fProblemReadingTryAgain": { "message": "Si è verificato un problema durante la lettura della chiave di sicurezza. Riprova." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Il tuo codice di recupero Bitwarden per la verifica in due passaggi" }, @@ -1349,16 +1376,16 @@ "description": "Print 2FA recovery code" }, "reports": { - "message": "Rapporti" + "message": "Resoconti" }, "unsecuredWebsitesReport": { - "message": "Rapporto sui siti Web non protetti" + "message": "Resoconto sui siti web non protetti" }, "unsecuredWebsitesReportDesc": { - "message": "L'utilizzo di siti Web non protetti con lo schema http:// può essere pericoloso. Se il sito Web lo consente, devi sempre accedervi utilizzando lo schema https:// in modo che la connessione sia crittografata." + "message": "L'utilizzo di siti web non protetti con lo schema http:// può essere pericoloso. Se il sito web lo consente, devi sempre accedervi utilizzando lo schema https:// in modo che la connessione sia cifrata." }, "unsecuredWebsitesFound": { - "message": "Siti Web non protetti trovati" + "message": "Trovati siti web non protetti" }, "unsecuredWebsitesFoundDesc": { "message": "Abbiamo trovato $COUNT$ elementi nella tua cassaforte con URI non protetti. Dovresti cambiare il loro schema URL in https:// se il sito lo consente.", @@ -1373,16 +1400,16 @@ "message": "Nessun elemento nella tua cassaforte ha URI non protetti." }, "inactive2faReport": { - "message": "Rapporto 2FA inattivo" + "message": "Resoconto 2FA inattivi" }, "inactive2faReportDesc": { - "message": "L'autenticazione a due fattori (2FA) è un'impostazione di sicurezza importante che consente di proteggere i tuoi account. Se il sito Web lo offre, devi sempre abilitare l'autenticazione a due fattori." + "message": "L'autenticazione a due fattori (2FA) è un'impostazione di sicurezza importante che consente di proteggere i tuoi account. Se il sito web lo offre, dovresti sempre abilitare l'autenticazione a due fattori." }, "inactive2faFound": { - "message": "Login senza 2FA trovato" + "message": "Accessi senza 2FA trovati" }, "inactive2faFoundDesc": { - "message": "Abbiamo trovato $COUNT$ sito(i) Web nella tua cassaforte che potrebbero non essere configurati con l'autenticazione a due fattori (secondo twofactorauth.org). Per proteggere ulteriormente questi account, è necessario abilitare l'autenticazione a due fattori.", + "message": "Abbiamo trovato $COUNT$ siti web nella tua cassaforte che potrebbero non essere configurati con l'autenticazione a due fattori (secondo twofactorauth.org). Per proteggere ulteriormente questi account, è necessario abilitare l'autenticazione a due fattori.", "placeholders": { "count": { "content": "$1", @@ -1391,22 +1418,22 @@ } }, "noInactive2fa": { - "message": "Nessun sito Web è stato trovato nella cassaforte con una configurazione di autenticazione a due fattori mancante." + "message": "Nessun sito web è stato trovato nella cassaforte con una configurazione di autenticazione a due fattori mancante." }, "instructions": { "message": "Istruzioni" }, "exposedPasswordsReport": { - "message": "Rapporto password esposte" + "message": "Resoconto password esposte" }, "exposedPasswordsReportDesc": { - "message": "Exposed passwords are passwords have been uncovered in known data breaches that were released publicly or sold on the dark web by hackers." + "message": "Le password esposte sono password che sono state scoperte in violazioni di dati note che sono state rilasciate pubblicamente o vendute sul dark web dagli hacker." }, "exposedPasswordsFound": { "message": "Trovate password esposte" }, "exposedPasswordsFoundDesc": { - "message": "Abbiamo trovato $COUNT$ elementi nella tua cassaforte che hanno password che sono state esposte a violazioni di dati noti. Dovresti cambiarli per usare una nuova password.", + "message": "Abbiamo trovato $COUNT$ elementi nella tua cassaforte che hanno password che sono state esposte a violazioni di dati note. Dovresti modificarli per usare una nuova password.", "placeholders": { "count": { "content": "$1", @@ -1418,10 +1445,10 @@ "message": "Nessun elemento nella tua cassaforte ha password che sono state esposte a violazioni note dei dati." }, "checkExposedPasswords": { - "message": "Controlla le password esposte" + "message": "Controlla password esposte" }, "exposedXTimes": { - "message": "Esposto $COUNT$ volta(e)", + "message": "Esposto $COUNT$ volte", "placeholders": { "count": { "content": "$1", @@ -1430,16 +1457,16 @@ } }, "weakPasswordsReport": { - "message": "Rapporto sulle password deboli" + "message": "Resoconto sulle password deboli" }, "weakPasswordsReportDesc": { - "message": "Le password deboli possono essere facilmente intuite dagli hacker e dagli strumenti automatici utilizzati per decifrare le password. Il generatore di password di Bitwarden può aiutarti a creare password complesse." + "message": "Le password deboli possono essere facilmente intuite dagli hacker e dagli strumenti automatici utilizzati per decifrare le password. Il generatore di password di Bitwarden può aiutarti a creare password robuste." }, "weakPasswordsFound": { "message": "Trovate password deboli" }, "weakPasswordsFoundDesc": { - "message": "Abbiamo trovato $COUNT$ elementi nella tua cassaforte con password che non sono forti. Dovresti aggiornarli per usare password più forti.", + "message": "Abbiamo trovato $COUNT$ elementi nella tua cassaforte con password non robuste. Dovresti aggiornarli per usare password più robuste.", "placeholders": { "count": { "content": "$1", @@ -1451,7 +1478,7 @@ "message": "Nessun elemento nella tua cassaforte ha password deboli." }, "reusedPasswordsReport": { - "message": "Rapporto sulle password riutilizzate" + "message": "Resoconto sulle password riutilizzate" }, "reusedPasswordsReportDesc": { "message": "Se un servizio che usi è compromesso, riutilizzare la stessa password altrove può consentire agli hacker di accedere facilmente a più account online. È necessario utilizzare una password univoca per ogni account o servizio." @@ -1460,7 +1487,7 @@ "message": "Trovate password riutilizzate" }, "reusedPasswordsFoundDesc": { - "message": "Abbiamo trovato $COUNT$ password che vengono riutilizzate nella tua cassaforte. Dovresti cambiarli in un valore univoco.", + "message": "Abbiamo trovato $COUNT$ password che sono riutilizzate nella tua cassaforte. Dovresti cambiarle in un valore univoco.", "placeholders": { "count": { "content": "$1", @@ -1472,7 +1499,7 @@ "message": "Nessun login nella tua cassaforte ha password che vengono riutilizzate." }, "reusedXTimes": { - "message": "Riutilizzato $COUNT$ volte", + "message": "Riutilizzata $COUNT$ volte", "placeholders": { "count": { "content": "$1", @@ -1481,10 +1508,10 @@ } }, "dataBreachReport": { - "message": "Rapporto di violazione dei dati" + "message": "Resoconto di violazione dei dati" }, "breachDesc": { - "message": "Una \"violazione\" è un incidente dove i dati di un sito sono stati illegalmente accessi dagli hacker e poi rilasciati pubblicamente. Esaminare i tipi di dati che sono stati compromessi (indirizzi e-mail, password, carte di credito ecc.) e adottare azioni appropriate, ad esempio la modifica delle password." + "message": "Una \"violazione\" è un incidente dove i dati di un sito sono stati illegalmente accessi dagli hacker e poi rilasciati pubblicamente. Esaminare i tipi di dati che sono stati compromessi (indirizzi email, password, carte di credito ecc.) e adottare azioni appropriate, ad esempio la modifica delle password." }, "breachCheckUsernameEmail": { "message": "Controlla ogni nome utente o indirizzi email che usi." @@ -1525,7 +1552,7 @@ "message": "Dati compromessi" }, "website": { - "message": "Sito Web" + "message": "Sito web" }, "affectedUsers": { "message": "Utenti interessati" @@ -1537,7 +1564,7 @@ "message": "Violazione segnalata" }, "reportError": { - "message": "Errore durante il tentativo di caricare il report. Riprova" + "message": "Si è verificato un errore durante il tentativo di caricare il resoconto. Riprova" }, "billing": { "message": "Fatturazione" @@ -1575,28 +1602,28 @@ "message": "Hai effettuato l'aggiornamento a Premium." }, "premiumUpgradeUnlockFeatures": { - "message": "Aggiornare il tuo account per un abbonamento premium e sbloccare alcune funzioni aggiuntive." + "message": "Aggiorna il tuo account per un abbonamento premium e sblocca alcune funzioni aggiuntive." }, "premiumSignUpStorage": { - "message": "1 GB di spazio di archiviazione crittografato." + "message": "1 GB di spazio di archiviazione cifrato per gli allegati." }, "premiumSignUpTwoStep": { - "message": "Opzioni di verifica in due passaggi addizionali come YubiKey, FIDO U2F, e Duo." + "message": "Opzioni di verifica in due passaggi aggiuntivi come YubiKey, FIDO U2F, e Duo." }, "premiumSignUpEmergency": { - "message": "Emergency Access" + "message": "Accesso di emergenza" }, "premiumSignUpReports": { "message": "Sicurezza delle password, integrità dell'account e rapporti sulla violazione dei dati per mantenere sicura la tua cassaforte." }, "premiumSignUpTotp": { - "message": "Generatore di codice (2FA) di verifica di TOTP per gli account di accesso nel tuo vault." + "message": "Generatore di codice (2FA) di verifica di TOTP per i login della tua cassaforte." }, "premiumSignUpSupport": { "message": "Supporto clienti prioritario." }, "premiumSignUpFuture": { - "message": "Tutte le funzioni Premium. Nuove in arrivo!" + "message": "Tutte le funzioni premium. Nuove in arrivo!" }, "premiumPrice": { "message": "Il tutto per solo $PRICE$ all'anno!", @@ -1633,7 +1660,7 @@ "message": "# di GB aggiuntivi" }, "additionalStorageIntervalDesc": { - "message": "Il tuo piano viene fornito con $SIZE$ di archiviazione crittografata. Puoi aggiungere ulteriore spazio di archiviazione per $PRICE$ per GB /$INTERVAL$.", + "message": "Il tuo piano viene fornito con $SIZE$ di archiviazione cifrata. Puoi aggiungere ulteriore spazio di archiviazione per $PRICE$ per GB /$INTERVAL$.", "placeholders": { "size": { "content": "$1", @@ -1662,14 +1689,14 @@ "message": "mese" }, "monthAbbr": { - "message": "mese.", + "message": "mese", "description": "Short abbreviation for 'month'" }, "paymentChargedAnnually": { "message": "Il tuo metodo di pagamento verrà addebitato immediatamente e su base ricorrente ogni anno. È possibile annullare in qualsiasi momento." }, "paymentCharged": { - "message": "Il tuo metodo di pagamento verrà addebitato immediatamente e poi su base ricorrente ogni $INTERVAL$. Puoi annullare in qualsiasi momento.", + "message": "Il tuo metodo di pagamento sarà addebitato immediatamente e poi su base ricorrente ogni $INTERVAL$. Puoi annullare in qualsiasi momento.", "placeholders": { "interval": { "content": "$1", @@ -1696,25 +1723,25 @@ "message": "Carta di credito" }, "paypalClickSubmit": { - "message": "Fare clic sul pulsante di PayPal per accedere al tuo account PayPal, quindi fare clic sul pulsante Invia per continuare." + "message": "Fai clic sul pulsante di PayPal per accedere al tuo account PayPal, quindi fai clic sul pulsante Invia per continuare." }, "cancelSubscription": { "message": "Annulla abbonamento" }, "subscriptionCanceled": { - "message": "L'abbonamento è stato cancellato." + "message": "L'abbonamento è stato annullato." }, "pendingCancellation": { - "message": "In attesa di cancellazione" + "message": "In attesa di annullamento" }, "subscriptionPendingCanceled": { "message": "L'abbonamento è stato contrassegnato per l'annullamento alla fine del periodo di fatturazione corrente." }, "reinstateSubscription": { - "message": "Ripristina iscrizione" + "message": "Ripristina abbonamento" }, "reinstateConfirmation": { - "message": "Sei sicuro di voler rimuovere la richiesta di cancellazione in sospeso e ripristinare l'abbonamento?" + "message": "Sei sicuro di voler rimuovere la richiesta di annullamento in sospeso e ripristinare l'abbonamento?" }, "reinstated": { "message": "L'abbonamento è stato ripristinato." @@ -1723,7 +1750,7 @@ "message": "Sei sicuro di voler annullare il tuo abbonamento? Alla fine di questo ciclo di fatturazione perderai l'accesso a tutte le funzionalità aggiuntive date dall'abbonamento." }, "canceledSubscription": { - "message": "L'abbonamento è stato cancellato." + "message": "L'abbonamento è stato annullato." }, "neverExpires": { "message": "Nessuna scadenza" @@ -1738,13 +1765,13 @@ "message": "Dettagli" }, "downloadLicense": { - "message": "Scarica Licenza" + "message": "Scarica licenza" }, "updateLicense": { - "message": "Aggiorna Licenza" + "message": "Aggiorna licenza" }, "updatedLicense": { - "message": "Licenza aggionata" + "message": "Licenza aggiornata" }, "manageSubscription": { "message": "Gestisci abbonamento" @@ -1759,7 +1786,7 @@ "message": "Rimuovi spazio di archiviazione" }, "subscriptionStorage": { - "message": "Il tuo abbonamento ha un totale di $MAX_STORAGE$ GB di spazio di archiviazione crittografato. Stai usando $USED_STORAGE$ GB di spazio.", + "message": "Il tuo abbonamento ha un totale di $MAX_STORAGE$ GB di spazio di archiviazione cifrato. Stai usando $USED_STORAGE$ GB di spazio.", "placeholders": { "max_storage": { "content": "$1", @@ -1852,7 +1879,7 @@ "message": "Acquista Premium" }, "licenseFile": { - "message": "File di Licenza" + "message": "File di licenza" }, "licenseFileDesc": { "message": "Il tuo file di licenza sarà chiamato ad esempio $FILE_NAME$", @@ -1879,13 +1906,13 @@ "message": "Informazioni generali" }, "organizationName": { - "message": "Nome dell'Organizzazione" + "message": "Nome organizzazione" }, "accountOwnedBusiness": { - "message": "Questo account è di proprietà di un'impresa." + "message": "Questo account è di proprietà di un'azienda." }, "billingEmail": { - "message": "Email per la Fatturazione" + "message": "Email di fatturazione" }, "businessName": { "message": "Ragione sociale" @@ -1900,7 +1927,7 @@ "message": "Postazioni utente" }, "additionalUserSeats": { - "message": "Postazioni utenti aggiuntive" + "message": "Postazioni utente aggiuntive" }, "userSeatsDesc": { "message": "# di postazioni utente" @@ -1947,7 +1974,7 @@ "message": "Per le imprese e altre organizzazioni di gruppi." }, "planNameEnterprise": { - "message": "Imprese" + "message": "Aziendale" }, "planDescEnterprise": { "message": "Per le aziende e altre organizzazioni di grandi dimensioni." @@ -1995,7 +2022,7 @@ } }, "addShareLimitedUsers": { - "message": "Aggiungere e condividere con un massimo di $COUNT$ utenti", + "message": "Aggiungi e condividi con un massimo di $COUNT$ utenti", "placeholders": { "count": { "content": "$1", @@ -2010,7 +2037,7 @@ "message": "Crea raccolte illimitate" }, "gbEncryptedFileStorage": { - "message": "$SIZE$ di spazio di archiviazione crittografato", + "message": "$SIZE$ di spazio di archiviazione cifrato", "placeholders": { "size": { "content": "$1", @@ -2031,10 +2058,10 @@ "message": "Sincronizzare gli utenti e gruppi da una directory" }, "trackAuditLogs": { - "message": "Tenere traccia delle azioni di utente con i registri di controllo" + "message": "Tieni traccia delle azioni di utente con i registri di controllo" }, "enforce2faDuo": { - "message": "Applicare 2FA con Duo" + "message": "Applica 2FA con Duo" }, "priorityCustomerSupport": { "message": "Assistenza clienti prioritaria" @@ -2124,7 +2151,7 @@ "message": "L'id esterno può essere usato come un riferimento o per collegare questa risorsa ad un sistema esterno come ad esempio una directory utente." }, "accessControl": { - "message": "Controllo accesso" + "message": "Controllo di accesso" }, "groupAccessAllItems": { "message": "Questo gruppo può accedere e modificare tutti gli elementi." @@ -2145,10 +2172,10 @@ "message": "Modifica raccolta" }, "deleteCollectionConfirmation": { - "message": "Sei sicuro di voler eliminare questa collezione?" + "message": "Sei sicuro di voler eliminare questa raccolta?" }, "editUser": { - "message": "Modificare utente" + "message": "Modifica utente" }, "inviteUser": { "message": "Invita utente" @@ -2157,7 +2184,7 @@ "message": "Invita un nuovo utente alla tua organizzazione inserendo il suo indirizzo email dell'account Bitwarden di seguito. Se non hanno già un account Bitwarden, verrà richiesto di creare un nuovo account." }, "inviteMultipleEmailDesc": { - "message": "Puoi invitare fino a $COUNT$ utenti alla volta inserendo una lista di email separate da una virgola.", + "message": "Puoi invitare fino a $COUNT$ utenti alla volta inserendo un elenco di indirizzi email separati da una virgola.", "placeholders": { "count": { "content": "$1", @@ -2172,7 +2199,7 @@ "message": "Questo utente può accedere e modificare tutti gli elementi." }, "userAccessSelectedCollections": { - "message": "Questo utente può accedere solo alle collezzioni selezionate." + "message": "Questo utente può accedere solo alle raccolte selezionate." }, "search": { "message": "Cerca" @@ -2205,10 +2232,10 @@ "message": "User normale con accesso alle raccolte della tua organizzazione." }, "manager": { - "message": "Manager" + "message": "Responsabile" }, "managerDesc": { - "message": "I manager possono accedere e gestire le raccolte assegnate nella propria organizzazione." + "message": "I responsabili possono accedere e gestire le raccolte assegnate nella propria organizzazione." }, "all": { "message": "Tutti" @@ -2226,7 +2253,7 @@ "message": "Sconosciuto" }, "loadMore": { - "message": "Carica Altro" + "message": "Carica altro" }, "mobile": { "message": "Mobile", @@ -2241,7 +2268,7 @@ "description": "Desktop app" }, "webVault": { - "message": "Web Vault" + "message": "Cassaforte web" }, "loggedIn": { "message": "Accesso effettuato." @@ -2259,10 +2286,10 @@ "message": "Account ripristinato dalla verifica in due passaggi." }, "failedLogin": { - "message": "Tentativo di accesso fallito. Password errata." + "message": "Tentativo di accesso non riuscito. Password errata." }, "failedLogin2fa": { - "message": "Tentativo di accesso fallito. Verifica in due passaggi non riuscita." + "message": "Tentativo di accesso non riuscito. Verifica in due passaggi non riuscita." }, "exportedVault": { "message": "Cassaforte esportata." @@ -2382,7 +2409,7 @@ } }, "createdCollectionId": { - "message": "Collezione $ID$ creata.", + "message": "Raccolta $ID$ creata.", "placeholders": { "id": { "content": "$1", @@ -2391,7 +2418,7 @@ } }, "editedCollectionId": { - "message": "Collezione $ID$ modificata.", + "message": "Raccolta $ID$ modificata.", "placeholders": { "id": { "content": "$1", @@ -2400,7 +2427,7 @@ } }, "deletedCollectionId": { - "message": "Collezione $ID$ eliminata.", + "message": "Raccolta $ID$ eliminata.", "placeholders": { "id": { "content": "$1", @@ -2472,7 +2499,7 @@ } }, "editedCollectionsForItem": { - "message": "Modificate collezioni per elemento $ID$.", + "message": "Raccolte per elemento $ID$ modificate.", "placeholders": { "id": { "content": "$1", @@ -2499,7 +2526,7 @@ } }, "editedUserId": { - "message": "Modificato utente $ID$.", + "message": "Utente $ID$ modificato.", "placeholders": { "id": { "content": "$1", @@ -2508,7 +2535,7 @@ } }, "editedGroupsForUser": { - "message": "Modificati gruppi per utente $ID$.", + "message": "Modificati gruppi per l'utente $ID$.", "placeholders": { "id": { "content": "$1", @@ -2550,7 +2577,7 @@ "message": "Modificare i gruppi a cui appartiene questo utente." }, "invitedUsers": { - "message": "Invitato/i utente/i." + "message": "Utenti invitati." }, "resendInvitation": { "message": "Invia nuovamente l'invito" @@ -2592,7 +2619,7 @@ "message": "Data di fine" }, "verifyEmail": { - "message": "Verifica la tua email" + "message": "Verifica email" }, "verifyEmailDesc": { "message": "Verificare l'indirizzo email del tuo account per sbloccare l'accesso a tutte le funzionalità." @@ -2601,7 +2628,7 @@ "message": "L'indirizzo email del tuo account deve essere prima verificato." }, "checkInboxForVerification": { - "message": "Controlla la tua casella di posta per il link di verifica." + "message": "Controlla la tua casella di posta per il collegamenti di verifica." }, "emailVerified": { "message": "Il tuo indirizzo email è stato verificato." @@ -2609,11 +2636,17 @@ "emailVerifiedFailed": { "message": "Impossibile verificare il tuo indirizzo email. Prova a inviare una nuova email di verifica." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Aggiorna il browser" }, "updateBrowserDesc": { - "message": "Si utilizza un browser non supportato. Il vault web potrebbe non funzionare correttamente." + "message": "Stai utilizzando un browser non supportato. La cassaforte web potrebbe non funzionare correttamente." }, "joinOrganization": { "message": "Unisciti all'organizzazione" @@ -2652,7 +2685,7 @@ "message": "La verifica in due passaggi è stata disabilitata sul tuo account." }, "learnMore": { - "message": "Altre informazioni" + "message": "Ulteriori informazioni" }, "deleteRecoverDesc": { "message": "Inserisci la tua email sotto per recuperare ed eliminare il tuo account." @@ -2661,7 +2694,7 @@ "message": "Se il tuo account è già esistente, ti invieremo una email con maggiori informazioni." }, "deleteRecoverConfirmDesc": { - "message": "Hai richiesto di eliminare il tuo account Bitwarden. Clicca il pulsante pe confermare." + "message": "Hai richiesto di eliminare il tuo account Bitwarden. Fai clic sul pulsante per confermare." }, "myOrganization": { "message": "La mia organizzazione" @@ -2695,7 +2728,7 @@ "description": "A billing plan/package. For example: families, teams, enterprise, etc." }, "changeBillingPlan": { - "message": "Cambia Piano", + "message": "Cambia piano", "description": "A billing plan/package. For example: families, teams, enterprise, etc." }, "changeBillingPlanUpgrade": { @@ -2703,7 +2736,7 @@ "description": "A billing plan/package. For example: families, teams, enterprise, etc." }, "changeBillingPlanDesc": { - "message": "Contattare il servizio clienti se si desidera modificare il proprio piano tariffario. Assicurarsi di avere un metodo di pagamento attivo.", + "message": "Contatta il servizio clienti se desideri modificare il tuo piano tariffario. Assicurati di avere un metodo di pagamento attivo.", "description": "A billing plan/package. For example: families, teams, enterprise, etc." }, "invoiceNumber": { @@ -2726,13 +2759,13 @@ "message": "Verifica conto bancario" }, "verifyBankAccountDesc": { - "message": "Abbiamo fatto due micro-depositi sul tuo conto bancario (potrebbe richiedere 1-2 giorni lavorativi per presentarsi). Immettere questi importi per verificare il conto bancario." + "message": "Abbiamo fatto due micro-depositi sul tuo conto bancario (potrebbe richiedere 1-2 giorni lavorativi per presentarsi). Immetti questi importi per verificare il conto bancario." }, "verifyBankAccountInitialDesc": { "message": "Il pagamento con un conto in banca è disponibile solo per i clienti negli Stati Uniti. Sarà necessario verificare il tuo conto in banca. Faremo due micro-depositi entro i prossimi 1-2 giorni lavorativi. Immettere questi importi nella pagina di fatturazione dell'organizzazione per verificare il conto bancario." }, "verifyBankAccountFailureWarning": { - "message": "Mancata verifica del conto in banca si tradurrà in un mancato pagamento e l'abbonamento viene disattivato." + "message": "La mancata verifica del conto bancario si tradurrà in un mancato pagamento e l'abbonamento sarà disattivato." }, "verifiedBankAccount": { "message": "Il conto bancario è stato verificato." @@ -2764,7 +2797,7 @@ "message": "Tipo di conto" }, "bankAccountTypeCompany": { - "message": "Azienda (Impresa)" + "message": "Azienda (Lavoro)" }, "bankAccountTypeIndividual": { "message": "Individuale (Personale)" @@ -2773,7 +2806,7 @@ "message": "Inserisci il tuo id di installazione" }, "addSeats": { - "message": "Aggiungere postazioni", + "message": "Aggiungi postazioni", "description": "Seat = User Seat" }, "removeSeats": { @@ -2817,16 +2850,16 @@ "message": "Aggiorna chiave" }, "updateEncryptionKey": { - "message": "Aggiornamento della chiave di crittografia" + "message": "Aggiorna chiave di cifratura" }, "updateEncryptionKeyShortDesc": { - "message": "Stai utilizzando uno schema di crittografia obsoleto." + "message": "Stai utilizzando uno schema di cifratura obsoleto." }, "updateEncryptionKeyDesc": { - "message": "Ci siamo spostati alle più grandi chiavi di crittografia che forniscono maggiore sicurezza e accesso alle funzionalità più recenti. Aggiornare la chiave di crittografia è semplice e veloce. Basta digitare la password principale qui sotto. Questo aggiornamento eventualmente diventerà obbligatorio." + "message": "Siamo passati a chiavi di cifratura più grandi che forniscono maggiore sicurezza e accesso alle funzionalità più recenti. Aggiornare la chiave di cifratura è semplice e veloce. Basta digitare la password principale qui sotto. Questo aggiornamento diventerà obbligatorio in futuro." }, "updateEncryptionKeyWarning": { - "message": "Dopo aver aggiornato la chiave di crittografia, verrà richiesto di disconnettersi e connettersi in tutte le applicazioni Bitwarden che stai utilizzando (come l'applicazione mobile o l'estensione del browser). Non effettuando la disconnessione e la riconnessione (per scaricare la nuova chiave di crittografia) potrà risultare in dati corrotti, Cercheremo di disconnetterti automaticamente, ma potrà esserci un ritardo." + "message": "Dopo aver aggiornato la chiave di cifratura, ti sarà richiesto di disconnetterti e connetterti in tutte le applicazioni Bitwarden che stai utilizzando (come l'applicazione mobile o l'estensione del browser). Non effettuando la disconnessione e la riconnessione (per scaricare la nuova chiave di cifratura) potrà risultare in dati danneggiati, Cercheremo di disconnetterti automaticamente, ma potrà esserci un ritardo." }, "updateEncryptionKeyExportWarning": { "message": "Anche le esportazioni cifrate che hai salvato non saranno più valide." @@ -2847,10 +2880,10 @@ "message": "Questa funzionalità non è disponibile per le organizzazioni con il piano base. Passa ad un piano a pagamento per sbloccare più funzioni." }, "createOrganizationStep1": { - "message": "Crea Organizzazione: Passo 1" + "message": "Crea organizzazione: Passo 1" }, "createOrganizationCreatePersonalAccount": { - "message": "Prima di creare la propria organizzazione, è necessario innanzitutto creare un account personale gratuito." + "message": "Prima di creare la propria organizzazione, devi innanzitutto creare un account personale gratuito." }, "refunded": { "message": "Rimborsato" @@ -2909,7 +2942,7 @@ "description": "ex. Date this password was updated" }, "organizationIsDisabled": { - "message": "L'Organizzazione è disabilitata." + "message": "L'organizzazione è disabilitata." }, "licenseIsExpired": { "message": "La licenza è scaduta." @@ -2931,7 +2964,7 @@ "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" }, "good": { - "message": "Buono", + "message": "Buona", "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" }, "weak": { @@ -2946,36 +2979,36 @@ "message": "Password principale debole" }, "weakMasterPasswordDesc": { - "message": "La password principale che hai scelto è debole. È necessario utilizzare una password principale forte (o una passphrase) per proteggere adeguatamente il tuo account Bitwarden. Sei sicuro di voler utilizzare questa password principale?" + "message": "La password principale che hai scelto è debole. È necessario utilizzare una password principale robusta (o una frase segreta) per proteggere adeguatamente il tuo account Bitwarden. Sei sicuro di voler utilizzare questa password principale?" }, "rotateAccountEncKey": { - "message": "Ruota anche la chiave di crittografia del mio account" + "message": "Ruota anche la chiave di cifratura del mio account" }, "rotateEncKeyTitle": { - "message": "Ruota la chiave di crittografia" + "message": "Ruota la chiave di cifratura" }, "rotateEncKeyConfirmation": { - "message": "Sei sicuro di voler ruotare la chiave di crittografia del tuo account?" + "message": "Sei sicuro di voler ruotare la chiave di cifratura del tuo account?" }, "attachmentsNeedFix": { "message": "Questo elemento ha vecchi file allegati che devono essere corretti." }, "attachmentFixDesc": { - "message": "Questo è un vecchio file allegato che deve essere corretto. Clicca per saperne di più." + "message": "Questo è un vecchio file allegato che deve essere corretto. Fai clic per saperne di più." }, "fix": { - "message": "Fix", + "message": "Correggi", "description": "This is a verb. ex. 'Fix The Car'" }, "oldAttachmentsNeedFixDesc": { - "message": "Ci sono vecchi file allegati nella tua cassaforte che devono essere corretti prima di poter ruotare la chiave di crittografia del tuo account." + "message": "Ci sono vecchi file allegati nella tua cassaforte che devono essere corretti prima di poter ruotare la chiave di cifratura del tuo account." }, "yourAccountsFingerprint": { "message": "Frase impronta del tuo account", "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." }, "fingerprintEnsureIntegrityVerify": { - "message": "Per garantire l'integrità delle tue chiavi di crittografia, verifica la frase impronta dell'utente prima di continuare.", + "message": "Per garantire l'integrità delle tue chiavi di cifratura, verifica la frase impronta dell'utente prima di continuare.", "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." }, "dontAskFingerprintAgain": { @@ -3018,10 +3051,10 @@ "message": "Devi selezionare almeno una raccolta." }, "couldNotChargeCardPayInvoice": { - "message": "Non siamo stati in grado di addebitare sulla tua carta. Per favore, visualizza e paga la fattura non pagata presente qui sotto." + "message": "Non siamo stati in grado di addebitare sulla tua carta. Visualizza e paga la fattura non pagata presente qui sotto." }, "inAppPurchase": { - "message": "Acquisto in-App" + "message": "Acquisto in-app" }, "cannotPerformInAppPurchase": { "message": "Non puoi eseguire questa azione mentre utilizzi un metodo di pagamento in-app." @@ -3036,13 +3069,13 @@ "message": "Clona" }, "masterPassPolicyDesc": { - "message": "Fissa i requisiti minimi di complessità della password principale." + "message": "Imposta i requisiti minimi di complessità della password principale." }, "twoStepLoginPolicyDesc": { - "message": "Obbliga gli utenti ad impostare l'autenticazione a due fattori sul loro account personale." + "message": "Obbliga gli utenti a impostare l'autenticazione a due fattori sul loro account personale." }, "twoStepLoginPolicyWarning": { - "message": "I membri dell'organizzazione che non hanno attivato l'autenticazione a due fattori per il proprio account personale saranno espulsi dall'organizzazione e riceveranno a tale proposito una e-mail di notifica." + "message": "I membri dell'organizzazione che non hanno attivato l'autenticazione a due fattori per il proprio account personale saranno espulsi dall'organizzazione e riceveranno a tale proposito un'email di notifica." }, "twoStepLoginPolicyUserWarning": { "message": "Sei membro di una organizzazione che richiede che sugli account personali sia attiva l'autenticazione a due fattori. Se disabiliti tutti i secondi fattori di autenticazione, sarai automaticamente espulso dall'organizzazione." @@ -3057,7 +3090,7 @@ "message": "La password principale deve avere i seguenti requisiti, stabiliti da una o più regole dell'organizzazione:" }, "policyInEffectMinComplexity": { - "message": "Punteggio minimo di complessità $SCORE$", + "message": "Punteggio minimo di complessità di $SCORE$", "placeholders": { "score": { "content": "$1", @@ -3066,7 +3099,7 @@ } }, "policyInEffectMinLength": { - "message": "Lunghezza minima $LENGTH$", + "message": "Lunghezza minima di $LENGTH$", "placeholders": { "length": { "content": "$1", @@ -3137,10 +3170,10 @@ "message": "Sei sicuro di voler eliminare definitivamente questo elemento?" }, "permanentlyDeletedItem": { - "message": "Elimina definitivamente l'elemento" + "message": "Elemento eliminato definitivamente" }, "permanentlyDeletedItems": { - "message": "Elimina definitivamente gli elementi" + "message": "Elementi eliminati definitivamente" }, "permanentlyDeleteSelectedItemsDesc": { "message": "Hai selezionato $COUNT$ elemento/i da eliminare definitivamente. Sei sicuro di voler eliminare definitivamente tutti gli elementi selezionati?", @@ -3152,7 +3185,7 @@ } }, "permanentlyDeletedItemId": { - "message": "Elemento definitivamente eliminato $ID$.", + "message": "Elemento $ID$ definitivamente eliminato.", "placeholders": { "id": { "content": "$1", @@ -3164,7 +3197,7 @@ "message": "Ripristina" }, "restoreSelected": { - "message": "Ripristina selezionato" + "message": "Ripristina selezionati" }, "restoreItem": { "message": "Ripristina elemento" @@ -3173,7 +3206,7 @@ "message": "Elemento ripristinato" }, "restoredItems": { - "message": "Elementi Ripristinati" + "message": "Elementi ripristinati" }, "restoreItemConfirmation": { "message": "Sei sicuro di voler ripristinare questo elemento?" @@ -3191,7 +3224,7 @@ } }, "restoredItemId": { - "message": "Elemento ripristinato $ID$.", + "message": "Elemento $ID$ ripristinato.", "placeholders": { "id": { "content": "$1", @@ -3206,7 +3239,7 @@ "message": "Conferma azione di timeout" }, "hidePasswords": { - "message": "Nascondi Password" + "message": "Nascondi password" }, "countryPostalCodeRequiredDesc": { "message": "Informazioni richieste esclusivamente per il calcolo dell'IVA e rendicontazione finanziaria." @@ -3221,10 +3254,10 @@ "message": "Dati fiscali aggiornati." }, "setMasterPassword": { - "message": "Imposta la password principale" + "message": "Imposta password principale" }, "ssoCompleteRegistration": { - "message": "Per completare il login con SSO, si prega di impostare una password principale per accedere e proteggere la cassaforte." + "message": "Per completare l'accesso con SSO, imposta una password principale per accedere e proteggere la cassaforte." }, "identifier": { "message": "Identificativo" @@ -3236,7 +3269,7 @@ "message": "Accedi usando il portale di accesso Single Sign-On della tua organizzazione. Inserisci l'identificativo della tua organizzazione per iniziare." }, "enterpriseSingleSignOn": { - "message": "Accesso con il portale dell'organizzazione (SSO)" + "message": "Single Sign-On aziendale" }, "ssoHandOff": { "message": "Puoi chiudere questa scheda e continuare nell'estensione." @@ -3255,7 +3288,7 @@ "message": "Policy aziendali" }, "ssoValidationFailed": { - "message": "Verifica SSO fallita" + "message": "Convalida SSO non riuscita" }, "ssoIdentifierRequired": { "message": "L'identificativo dell'organizzazione è obbligatorio." @@ -3267,7 +3300,7 @@ "message": "Collega SSO" }, "webPoliciesDeprecationWarning": { - "message": "La configurazione delle policy è stata spostata, e questa pagina sarà presto deprecata. Per favore, clicca sotto per utilizzare la configurazione delle policy del portale aziendale." + "message": "La configurazione delle policy è stata spostata, e questa pagina sarà presto deprecata. Fai clic sotto per utilizzare la configurazione delle policy del portale aziendale." }, "singleOrg": { "message": "Organizzazione unica" @@ -3276,7 +3309,7 @@ "message": "Impedisci agli utenti di unirsi dalle altre organizzazioni." }, "singleOrgBlockCreateMessage": { - "message": "La tua attuale organizzazione ha una policy che non ti permette di unirti ad altre organizzazioni. Per favore, contatta gli amministratori della tua organizzazione o registrati da un altro account Bitwarden." + "message": "La tua attuale organizzazione ha una policy che non ti consente di unirti ad altre organizzazioni. Contatta gli amministratori della tua organizzazione o registrati da un altro account Bitwarden." }, "singleOrgPolicyWarning": { "message": "I membri dell'organizzazione che non sono proprietari o amministratori e sono già membri di un'altra organizzazione saranno rimossi dalla tua organizzazione." @@ -3285,7 +3318,7 @@ "message": "Autenticazione Single Sign-On" }, "requireSsoPolicyDesc": { - "message": "Richiedi agli utenti di accedere con Enterprise Single Sign-On." + "message": "Richiedi agli utenti di accedere con il metodo di Single Sign-On aziendale." }, "prerequisite": { "message": "Prerequisito" @@ -3306,7 +3339,7 @@ "message": "Testo" }, "createSend": { - "message": "Crea Nuovo Send", + "message": "Crea nuovo Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "editSend": { @@ -3314,7 +3347,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "createdSend": { - "message": "Send Creato", + "message": "Send creato", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "editedSend": { @@ -3330,7 +3363,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deleteSendConfirmation": { - "message": "Sei sicuro di eliminare questo Send?", + "message": "Sei sicuro di voler eliminare questo Send?", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "whatTypeOfSend": { @@ -3359,38 +3392,41 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "currentAccessCount": { - "message": "Conteggio accessi corrente" + "message": "Numero di accessi corrente" }, "sendPasswordDesc": { "message": "Facoltativamente, richiedi una password agli utenti per accedere al Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNotesDesc": { - "message": "Note private sul Send.", + "message": "Note private su questo Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disabled": { - "message": "Disattivo" + "message": "Disabilitato" }, "sendLink": { - "message": "Send Link", + "message": "Collegamento del Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "copySendLink": { - "message": "Copia Send Link", + "message": "Copia collegamento Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "removePassword": { - "message": "Rimuovi Password" + "message": "Rimuovi password" }, "removedPassword": { - "message": "Password Rimossa" + "message": "Password rimossa" }, "removePasswordConfirmation": { "message": "Sei sicuro di voler rimuovere la password?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { - "message": "Disabilità il Send per renderlo inaccessibile.", + "message": "Disabilita il Send per renderlo inaccessibile.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "allSends": { @@ -3410,7 +3446,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendProtectedPassword": { - "message": "Il Send è protetto da password. Per favore, digita la password sotto per continuare.", + "message": "Il Send è protetto da password. Digita la password sotto per continuare.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendProtectedPasswordDontKnow": { @@ -3422,28 +3458,28 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "downloadFile": { - "message": "Scarica File" + "message": "Scarica file" }, "sendAccessUnavailable": { "message": "Il Send a cui stai provando ad accedere non esiste o non è più disponibile.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "missingSendFile": { - "message": "The file associated with this Send could not be found.", + "message": "Il file associato a questo Send non è stato trovato.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "noSendsInList": { - "message": "Non ci sono Sends da elencare.", + "message": "Non ci sono Send da elencare.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "emergencyAccess": { - "message": "Accesso di Emergenza" + "message": "Accesso di emergenza" }, "emergencyAccessDesc": { "message": "Concedi e gestisci l'accesso di emergenza per un contatto fidato. I contatti fidati possono richiede di ereditare l'account o accedere in sola lettura in caso di emergenza. Visita la nostra pagina di aiuto per maggiori informazioni e dettagli." }, "emergencyAccessOwnerWarning": { - "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + "message": "Sei proprietario di una o più organizzazioni. Se trasferisci la proprietà ad un contatto di emergenza, sarà in grado di utilizzare tutti i permessi del proprietario." }, "trustedEmergencyContacts": { "message": "Contatti di emergenza fidati" @@ -3536,7 +3572,7 @@ } }, "requestSent": { - "message": "Accesso di emergenza richiesto per $USER$. Verrai notificato via mail quando sarà possibile proseguire.", + "message": "Accesso di emergenza richiesto per $USER$. Verrai notificato tramite email quando sarà possibile proseguire.", "placeholders": { "user": { "content": "$1", @@ -3579,7 +3615,7 @@ } }, "personalOwnership": { - "message": "Poprietà personale" + "message": "Proprietà personale" }, "personalOwnershipPolicyDesc": { "message": "Richiede agli utenti di salvare gli elementi della cassaforte in un'organizzazione rimuovendo l'opzione di proprietà personale." @@ -3591,25 +3627,47 @@ "message": "A causa di una policy aziendale, non è possibile salvare elementi nella tua cassaforte personale. Cambia l'opzione proprietà in un'organizzazione e scegli tra le raccolte disponibili." }, "disableSend": { - "message": "Disable Send" + "message": "Disabilita Send" }, "disableSendPolicyDesc": { - "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "message": "Non consentire agli utenti di creare o modificare un Send Bitwarden. L'eliminazione di un Send già creato è ancora permessa.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disableSendExemption": { - "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + "message": "Gli utenti dell'organizzazione che possono gestire le policy dell'organizzazione sono esenti dall'applicazione di questa impostazione." }, "sendDisabled": { - "message": "Send disabled", + "message": "Send disabilitato", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { - "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "message": "A causa di una policy aziendale, è possibile eliminare solo un Send esistente.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "modifiedPolicyId": { - "message": "Policy modificata $ID$.", + "message": "Policy $ID$ modificata.", "placeholders": { "id": { "content": "$1", @@ -3630,7 +3688,7 @@ "message": "Consente un controllo più granulare delle autorizzazioni utente per le configurazioni avanzate." }, "permissions": { - "message": "Autorizzazioni" + "message": "Permessi" }, "accessBusinessPortal": { "message": "Accedi al portale aziendale" @@ -3660,7 +3718,10 @@ "message": "Gestisci SSO" }, "manageUsers": { - "message": "Gestione utenti" + "message": "Gestisci gli utenti" + }, + "manageResetPassword": { + "message": "Manage Password Reset" }, "disableRequireSsoError": { "message": "Devi disabilitare manualmente la policy relativa all'autenticazione SSO prima di disabilitare questa policy." @@ -3676,20 +3737,20 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNameDesc": { - "message": "A friendly name to describe this Send.", + "message": "Un nome intuitivo per descrivere il Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTextDesc": { - "message": "The text you want to send." + "message": "Il testo che desideri inviare." }, "sendFileDesc": { - "message": "The file you want to send." + "message": "Il file che desideri inviare." }, "copySendLinkOnSave": { - "message": "Copy the link to share this Send to my clipboard upon save." + "message": "Copia il link per condividere questo Send nei miei appunti al momento del salvataggio." }, "sendLinkLabel": { - "message": "Send link", + "message": "Collegamento del Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "send": { @@ -3697,50 +3758,50 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineProductDesc": { - "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "message": "Con Bitwarden Send trasmetti informazioni sensibili e temporanee agli altri in maniera facile e sicura.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineLearnMore": { - "message": "Learn more about", + "message": "Per saperne di più", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" }, "sendVaultCardProductDesc": { - "message": "Share text or files directly with anyone." + "message": "Condividi testi e file direttamente con chiunque." }, "sendVaultCardLearnMore": { - "message": "Learn more", + "message": "Per saperne di più", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" }, "sendVaultCardSee": { - "message": "see", + "message": "vedi", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" }, "sendVaultCardHowItWorks": { - "message": "how it works", + "message": "come funziona", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" }, "sendVaultCardOr": { - "message": "or", + "message": "o", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" }, "sendVaultCardTryItNow": { - "message": "try it now", + "message": "provalo adesso", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" }, "sendAccessTaglineOr": { - "message": "or", + "message": "o", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" }, "sendAccessTaglineSignUp": { - "message": "sign up", + "message": "iscriviti", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" }, "sendAccessTaglineTryToday": { - "message": "to try it today.", + "message": "per provarlo oggi.", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" }, "sendCreatorIdentifier": { - "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "message": "L'utente Bitwarden$USER_IDENTIFIER$ ha condiviso questo con te", "placeholders": { "user_identifier": { "content": "$1", @@ -3748,19 +3809,86 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { - "message": "The expiration date provided is not valid." + "message": "La data di scadenza fornita non è valida." }, "deletionDateIsInvalid": { - "message": "The deletion date provided is not valid." + "message": "La data di eliminazione fornita non è valida." }, "expirationDateAndTimeRequired": { - "message": "An expiration date and time are required." + "message": "È necessario inserire data e ora di scadenza." }, "deletionDateAndTimeRequired": { - "message": "A deletion date and time are required." + "message": "È necessario inserire data e ora di eliminazione." }, "dateParsingError": { - "message": "There was an error saving your deletion and expiration dates." + "message": "Si è verificato un errore durante il salvataggio delle date di eliminazione e scadenza." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/ja/messages.json b/locales/ja/messages.json index 669441e8..1644a826 100644 --- a/locales/ja/messages.json +++ b/locales/ja/messages.json @@ -38,7 +38,7 @@ "message": "パスワード" }, "newPassword": { - "message": "New Password" + "message": "新しいパスワード" }, "passphrase": { "message": "パスフレーズ" @@ -348,7 +348,7 @@ "message": "アイテムの編集" }, "viewItem": { - "message": "View Item" + "message": "アイテムの表示" }, "ex": { "message": "例:", @@ -725,6 +725,15 @@ "u2fTitle": { "message": "FIDO U2F セキュリティキー" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "メールアドレス" }, @@ -794,16 +803,16 @@ "message": "注意" }, "confirmVaultExport": { - "message": "Confirm Vault Export" + "message": "保管庫のエクスポートの確認" }, "exportWarningDesc": { "message": "このエクスポートデータは暗号化されていない形式の保管庫データを含んでいます。メールなどのセキュリティ保護されていない方法で共有したり保管したりしないでください。使用した後はすぐに削除してください。" }, "encExportKeyWarningDesc": { - "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + "message": "このエクスポートは、アカウントの暗号化キーを使用してデータを暗号化します。 暗号化キーをローテーションした場合は、このエクスポートファイルを復号することはできなくなるため、もう一度エクスポートする必要があります。" }, "encExportAccountWarningDesc": { - "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + "message": "アカウント暗号化キーは各 Bitwarden ユーザーアカウントに固有であるため、暗号化されたエクスポートを別のアカウントにインポートすることはできません。" }, "exportMasterPassword": { "message": "保管庫のデータをエクスポートするにはマスターパスワードを入力してください。" @@ -1004,16 +1013,16 @@ "message": "データをインポート" }, "importError": { - "message": "Import Error" + "message": "インポートエラー" }, "importErrorDesc": { - "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + "message": "インポートしようとしたデータに問題がありました。以下のエラーをソースファイルで解決し、もう一度やり直してください。" }, "importSuccess": { "message": "データを保管庫にインポートしました。" }, "importWarning": { - "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "message": "$ORGANIZATION$にデータをインポートしています。データはこの組織のメンバーと共有される可能性があります。続行しますか?", "placeholders": { "organization": { "content": "$1", @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "NFC対応" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "本当にこのセキュリティキーを削除しますか?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "読み取りキー" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "セキュリティキーの読み取り中に問題が発生しました。もう一度やり直して下さい。" }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "二段階認証のリカバリーコード" }, @@ -1584,7 +1611,7 @@ "message": "YubiKey、FIDO U2F、Duoなどの追加の2段階認証ログインオプション" }, "premiumSignUpEmergency": { - "message": "Emergency Access" + "message": "緊急アクセス" }, "premiumSignUpReports": { "message": "保管庫を安全に保つための、パスワードやアカウントの健全性、データ侵害に関するレポート" @@ -1690,7 +1717,7 @@ "message": "お支払い情報" }, "billingInformation": { - "message": "Billing Information" + "message": "請求情報" }, "creditCard": { "message": "クレジットカード" @@ -2517,7 +2544,7 @@ } }, "unlinkedSsoUser": { - "message": "Unlinked SSO for user $ID$.", + "message": "ユーザー $ID$ にリンクされていない SSO", "placeholders": { "id": { "content": "$1", @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "メールアドレスを確認できませんでした。確認メールを再送信してください。" }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "ブラウザを更新" }, @@ -2829,7 +2862,7 @@ "message": "暗号化キーの更新後は、モバイルアプリやブラウザ拡張機能など現在利用中のすべてのBitwardenアプリで再ログインが必要となります。再ログインしないと(新しい暗号化キーをダウンロードすると)データが破損する可能性があります。自動的にログアウトを試みますが、遅延することがあります。" }, "updateEncryptionKeyExportWarning": { - "message": "Any encrypted exports that you have saved will also become invalid." + "message": "保存済みの暗号化されたエクスポートも無効になります。" }, "subscription": { "message": "契約" @@ -2859,10 +2892,10 @@ "message": "何も選択されていません。" }, "acceptPolicies": { - "message": "By checking this box you agree to the following:" + "message": "以下に同意しチェックします:" }, "acceptPoliciesError": { - "message": "Terms of Service and Privacy Policy have not been acknowledged." + "message": "利用規約とプライバシーポリシーを確認してください。" }, "termsOfService": { "message": "利用規約" @@ -2999,10 +3032,10 @@ "message": "API キーは組織へのフルアクセス権限を持っています。漏れないよう秘密にしてください。" }, "userApiKeyDesc": { - "message": "Your API key can be used to authenticate in the Bitwarden CLI." + "message": "API キーは、Bitwarden CLI で認証するために使用されます。" }, "userApiKeyWarning": { - "message": "Your API key is an alternative authentication mechanism. It should be kept secret." + "message": "API キーは代替認証メカニズムです。秘密にする必要があります。" }, "oauth2ClientCredentials": { "message": "OAuth 2.0 クライアント資格情報", @@ -3239,7 +3272,7 @@ "message": "組織のシングルサインオン" }, "ssoHandOff": { - "message": "You may now close this tab and continue in the extension." + "message": "このタブを閉じて拡張機能で続けられます。" }, "businessPortal": { "message": "ビジネスポータル", @@ -3267,146 +3300,149 @@ "message": "SSO をリンク" }, "webPoliciesDeprecationWarning": { - "message": "Policy configuration has been moved, and this page will soon be deprecated. Please click below to use the Business Portal policies page instead." + "message": "ポリシー設定が移動されました。このページは間もなく廃止されます。代わりにビジネスポータルポリシーページを使用するには、以下をクリックしてください。" }, "singleOrg": { - "message": "Single Organization" + "message": "単一組織" }, "singleOrgDesc": { - "message": "Restrict users from being able to join any other organizations." + "message": "ユーザーが他の組織に参加できないように制限します。" }, "singleOrgBlockCreateMessage": { - "message": "Your current organization has a policy that does not allow you to join more than one organization. Please contact your organization admins or sign up from a different Bitwarden account." + "message": "現在の組織には、複数の組織に参加することを許可していないポリシーがあります。 組織の管理者に連絡するか、別の Bitwarden アカウントから登録してください。" }, "singleOrgPolicyWarning": { - "message": "Organization members who are not Owners or Administrators and are already a member of another organization will be removed from your organization." + "message": "オーナーまたは管理者でなく、すでに他の組織のメンバーであるメンバーは組織から削除されます。" }, "requireSso": { - "message": "Single Sign-On Authentication" + "message": "シングルサインオン認証" }, "requireSsoPolicyDesc": { - "message": "Require users to log in with the Enterprise Single Sign-On method." + "message": "組織のシングルサインオン認証でログインする必要があります。" }, "prerequisite": { - "message": "Prerequisite" + "message": "前提条件" }, "requireSsoPolicyReq": { - "message": "The Single Organization enterprise policy must be enabled before activating this policy." + "message": "このポリシーを有効にするには、単一組織のエンタープライズポリシーを有効にする必要があります。" }, "requireSsoPolicyReqError": { - "message": "Single Organization policy not enabled." + "message": "単一組織ポリシーが有効になっていません。" }, "requireSsoExemption": { - "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + "message": "組織の所有者および管理者は、このポリシーの執行から除外されます。" }, "sendTypeFile": { - "message": "File" + "message": "ファイル" }, "sendTypeText": { - "message": "Text" + "message": "テキスト" }, "createSend": { - "message": "Create New Send", + "message": "新しい Send を作成", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "editSend": { - "message": "Edit Send", + "message": "Send を編集", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "createdSend": { - "message": "Created Send", + "message": "作成した Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "editedSend": { - "message": "Edited Send", + "message": "編集済みの Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deletedSend": { - "message": "Deleted Send", + "message": "削除した Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deleteSend": { - "message": "Delete Send", + "message": "Send を削除", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deleteSendConfirmation": { - "message": "Are you sure you want to delete this Send?", + "message": "この Send を削除してもよろしいですか?", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "whatTypeOfSend": { - "message": "What type of Send is this?", + "message": "この Send の種類は何ですか?", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deletionDate": { - "message": "Deletion Date" + "message": "削除日時" }, "deletionDateDesc": { - "message": "The Send will be permanently deleted on the specified date and time.", + "message": "Send は指定された日時に完全に削除されます。", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "expirationDate": { - "message": "Expiration Date" + "message": "有効期限" }, "expirationDateDesc": { - "message": "If set, access to this Send will expire on the specified date and time.", + "message": "設定されている場合、この Send へのアクセスは指定された日時に失効します。", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "maxAccessCount": { - "message": "Maximum Access Count" + "message": "最大アクセス数" }, "maxAccessCountDesc": { - "message": "If set, users will no longer be able to access this send once the maximum access count is reached.", + "message": "設定されている場合、最大アクセス数に達するとユーザーはこの Send にアクセスできなくなります。", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "currentAccessCount": { - "message": "Current Access Count" + "message": "現在のアクセス数" }, "sendPasswordDesc": { - "message": "Optionally require a password for users to access this Send.", + "message": "必要に応じて、ユーザーがこの Send にアクセスするためのパスワードを要求します。", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNotesDesc": { - "message": "Private notes about this Send.", + "message": "この Send に関するプライベートメモ", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disabled": { - "message": "Disabled" + "message": "無効" }, "sendLink": { - "message": "Send link", + "message": "Send リンク", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "copySendLink": { - "message": "Copy Send Link", + "message": "Send リンクをコピー", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "removePassword": { - "message": "Remove Password" + "message": "パスワードを削除" }, "removedPassword": { - "message": "Removed Password" + "message": "パスワードを削除" }, "removePasswordConfirmation": { - "message": "Are you sure you want to remove the password?" + "message": "パスワードを削除してもよろしいですか?" + }, + "hideEmail": { + "message": "Hide my email address from recipients." }, "disableThisSend": { - "message": "Disable this Send so that no one can access it.", + "message": "誰もアクセスできないように、この Send を無効にします。", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "allSends": { - "message": "All Sends" + "message": "すべての Send" }, "maxAccessCountReached": { - "message": "Max access count reached" + "message": "最大アクセス数に達しました" }, "pendingDeletion": { - "message": "Pending deletion" + "message": "保留中の削除" }, "expired": { - "message": "Expired" + "message": "期限切れ" }, "searchSends": { - "message": "Search Sends", + "message": "Sendを検索", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendProtectedPassword": { @@ -3414,36 +3450,36 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendProtectedPasswordDontKnow": { - "message": "Don't know the password? Ask the Sender for the password needed to access this Send.", + "message": "パスワードがわかりませんか?このSendにアクセスするには送信者にパスワードをご確認ください。", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendHiddenByDefault": { - "message": "This send is hidden by default. You can toggle its visibility using the button below.", + "message": "このSendはデフォルトでは非表示になっています。下のボタンで表示・非表示が切り替え可能です。", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "downloadFile": { - "message": "Download File" + "message": "ファイルをダウンロード" }, "sendAccessUnavailable": { - "message": "The Send you are trying to access does not exist or is no longer available.", + "message": "アクセスしようとしているSendは存在しないか、利用できません。", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "missingSendFile": { - "message": "The file associated with this Send could not be found.", + "message": "この Send に関連付けられたファイルが見つかりませんでした。", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "noSendsInList": { - "message": "There are no Sends to list.", + "message": "表示するSendがありません", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "emergencyAccess": { - "message": "Emergency Access" + "message": "緊急アクセス" }, "emergencyAccessDesc": { "message": "Grant and manage emergency access for trusted contacts. Trusted contacts may request access to either View or Takeover your account in case of an emergency. Visit our help page for more information and details into how zero knowledge sharing works." }, "emergencyAccessOwnerWarning": { - "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + "message": "あなたは1つ以上の組織の所有者です。 緊急連絡先に引き継ぎアクセスを与えると、引き継ぎ後に所有者としてすべての権限を使用できるようになります。" }, "trustedEmergencyContacts": { "message": "Trusted emergency contacts" @@ -3452,7 +3488,7 @@ "message": "You have not added any emergency contacts yet, invite a trusted contact to get started." }, "addEmergencyContact": { - "message": "Add emergency contact" + "message": "緊急連絡先を追加" }, "designatedEmergencyContacts": { "message": "Designated as emergency contact" @@ -3491,10 +3527,10 @@ "message": "Time required before automatically granting access." }, "oneDay": { - "message": "1 day" + "message": "1日" }, "days": { - "message": "$DAYS$ days", + "message": "$DAYS$日", "placeholders": { "days": { "content": "$1", @@ -3591,21 +3627,43 @@ "message": "Due to an enterprise policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections." }, "disableSend": { - "message": "Disable Send" + "message": "Send を無効化" }, "disableSendPolicyDesc": { - "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "message": "Bitwarden Send の作成や編集を許可しません。既存の Send を削除することはできます。", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disableSendExemption": { - "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + "message": "組織のポリシーを管理できる組織ユーザーは、このポリシーの適用から除外されます。" }, "sendDisabled": { - "message": "Send disabled", + "message": "Send 無効", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { - "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "message": "組織のポリシーにより、既存の Send のみを削除できます。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "modifiedPolicyId": { @@ -3627,69 +3685,72 @@ "message": "Custom" }, "customDesc": { - "message": "Allows more granular control of user permissions for advanced configurations." + "message": "ユーザー権限をより詳細に制御できます。" }, "permissions": { - "message": "Permissions" + "message": "権限" }, "accessBusinessPortal": { - "message": "Access Business Portal" + "message": "ビジネスポータルにアクセス" }, "accessEventLogs": { - "message": "Access Event Logs" + "message": "イベントログにアクセス" }, "accessImportExport": { - "message": "Access Import/Export" + "message": "インポート/エクスポートにアクセス" }, "accessReports": { - "message": "Access Reports" + "message": "レポートにアクセス" }, "manageAllCollections": { - "message": "Manage All Collections" + "message": "すべてのコレクションを管理" }, "manageAssignedCollections": { - "message": "Manage Assigned Collections" + "message": "割り当てられたコレクションの管理" }, "manageGroups": { - "message": "Manage Groups" + "message": "グループを管理" }, "managePolicies": { - "message": "Manage Policies" + "message": "ポリシーの管理" }, "manageSso": { - "message": "Manage SSO" + "message": "SSO を管理" }, "manageUsers": { - "message": "Manage Users" + "message": "ユーザーを管理" + }, + "manageResetPassword": { + "message": "Manage Password Reset" }, "disableRequireSsoError": { - "message": "You must manually disable the Single Sign-On Authentication policy before this policy can be disabled." + "message": "このポリシーを無効にするには、シングルサインオン認証ポリシーを手動で無効にする必要があります。" }, "personalOwnershipPolicyInEffect": { - "message": "An organization policy is affecting your ownership options." + "message": "組織のポリシーが所有者のオプションに影響を与えています。" }, "personalOwnershipCheckboxDesc": { - "message": "Disable personal ownership for organization users" + "message": "組織ユーザーの個人所有権を無効にする" }, "textHiddenByDefault": { - "message": "When accessing the Send, hide the text by default", + "message": "Send へのアクセス時に既定でテキストを非表示にする", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNameDesc": { - "message": "A friendly name to describe this Send.", + "message": "この Send を説明するわかりやすい名前", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTextDesc": { - "message": "The text you want to send." + "message": "送信したいテキスト" }, "sendFileDesc": { - "message": "The file you want to send." + "message": "送信するファイル" }, "copySendLinkOnSave": { - "message": "Copy the link to share this Send to my clipboard upon save." + "message": "Send の保存時にクリップボードへリンクをコピーします。" }, "sendLinkLabel": { - "message": "Send link", + "message": "Send リンク", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "send": { @@ -3697,50 +3758,50 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineProductDesc": { - "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "message": "Bitwarden Send を使うと機密性の高い情報を他の人に簡単かつ安全に送信できます。", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineLearnMore": { - "message": "Learn more about", + "message": "今すぐ", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" }, "sendVaultCardProductDesc": { - "message": "Share text or files directly with anyone." + "message": "テキストやファイルを誰とでも直接共有できます。" }, "sendVaultCardLearnMore": { - "message": "Learn more", + "message": "今すぐ", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" }, "sendVaultCardSee": { - "message": "see", + "message": "詳細", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" }, "sendVaultCardHowItWorks": { - "message": "how it works", + "message": "を確認", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" }, "sendVaultCardOr": { - "message": "or", + "message": "または", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" }, "sendVaultCardTryItNow": { - "message": "try it now", + "message": "試してみてください", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" }, "sendAccessTaglineOr": { - "message": "or", + "message": "または", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" }, "sendAccessTaglineSignUp": { - "message": "sign up", + "message": "登録して", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" }, "sendAccessTaglineTryToday": { - "message": "to try it today.", + "message": "試してみてください", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" }, "sendCreatorIdentifier": { - "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "message": "Bitwarden ユーザー $USER_IDENTIFIER$ が共有しました", "placeholders": { "user_identifier": { "content": "$1", @@ -3748,19 +3809,86 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { - "message": "The expiration date provided is not valid." + "message": "入力された有効期限は正しくありません。" }, "deletionDateIsInvalid": { - "message": "The deletion date provided is not valid." + "message": "入力された削除日時は正しくありません。" }, "expirationDateAndTimeRequired": { - "message": "An expiration date and time are required." + "message": "有効期限は必須です。" }, "deletionDateAndTimeRequired": { - "message": "A deletion date and time are required." + "message": "削除日時は必須です。" }, "dateParsingError": { - "message": "There was an error saving your deletion and expiration dates." + "message": "削除と有効期限の保存中にエラーが発生しました。" + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/ko/messages.json b/locales/ko/messages.json index 27f8120d..dd307914 100644 --- a/locales/ko/messages.json +++ b/locales/ko/messages.json @@ -725,6 +725,15 @@ "u2fTitle": { "message": "FIDO U2F 보안 키" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "이메일" }, @@ -800,10 +809,10 @@ "message": "내보내기는 보관함 데이터가 암호화되지 않은 형식으로 포함됩니다. 내보낸 파일을 안전하지 않은 채널(예: 이메일)을 통해 저장하거나 보내지 마십시오. 사용이 끝난 후에는 즉시 삭제하십시오." }, "encExportKeyWarningDesc": { - "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + "message": "이 내보내기는 계정의 암호화 키를 사용하여 데이터를 암호화합니다. 추후 계정의 암호화 키를 교체할 경우 다시 내보내기를 진행해야 합니다. 그러지 않을 경우 이 내보내기 파일을 해독할 수 없게 됩니다." }, "encExportAccountWarningDesc": { - "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + "message": "모든 Bitwarden 사용자 계정은 고유한 계정 암호화 키를 가지고 있습니다. 따라서, 다른 계정에서는 암호화된 내보내기를 가져올 수 없습니다." }, "exportMasterPassword": { "message": "보관함 데이터를 내보내려면 마스터 비밀번호를 입력하세요." @@ -1004,16 +1013,16 @@ "message": "데이터 가져오기" }, "importError": { - "message": "Import Error" + "message": "가져오기 오류" }, "importErrorDesc": { - "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + "message": "가져오려고 하는 데이터에 문제가 있습니다. 아래에 표시된 파일의 오류를 해결한 뒤 다시 시도해 주세요." }, "importSuccess": { "message": "데이터를 보관함으로 성공적으로 불러왔습니다." }, "importWarning": { - "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "message": "$ORGANIZATION$ 조직으로 데이터를 가져오려고 합니다. 데이터가 이 조직의 구성원과 공유될 수 있습니다. 계속하시겠습니까?", "placeholders": { "organization": { "content": "$1", @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "NFC 지원" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "정말로 이 보안 키를 제거하시겠습니까?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "키 읽기" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "보안 키를 읽어오는데 문제가 발생했습니다. 다시 시도해보십시오." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Bitwarden 2단계 로그인 복구 코드" }, @@ -1584,7 +1611,7 @@ "message": "YubiKey나 FIDO U2F, Duo 등의 추가적인 2단계 인증 옵션." }, "premiumSignUpEmergency": { - "message": "Emergency Access" + "message": "긴급 접근" }, "premiumSignUpReports": { "message": "보관함을 안전하게 유지하기 위한 암호 위생, 계정 상태, 데이터 유출 보고서" @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "이메일을 인증할 수 없습니다. 새로운 인증을 이메일로 전송하십시오." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "브라우저 업데이트" }, @@ -3338,7 +3371,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deletionDate": { - "message": "삭제일" + "message": "삭제 날짜" }, "deletionDateDesc": { "message": "이 Send가 정해진 일시에 영구적으로 삭제됩니다.", @@ -3389,6 +3422,9 @@ "removePasswordConfirmation": { "message": "비밀번호를 제거하시겠습니까?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "이 Send를 비활성화하여 아무도 접근할 수 없게 합니다.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -3429,7 +3465,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "missingSendFile": { - "message": "The file associated with this Send could not be found.", + "message": "이 Send와 연관된 파일을 찾을 수 없습니다.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "noSendsInList": { @@ -3443,7 +3479,7 @@ "message": "신뢰할 수 있는 연락처에 긴급 접근 권한을 부여하고 관리합니다. 신뢰할 수 있는 연락처는 보관함 내용을 보거나 계정을 넘겨받기 위해 권한을 요청할 수도 있습니다. 도움말 페이지를 방문하여 영지식 증명을 통한 공유의 작동 방식에 대해 더 자세히 알아보세요." }, "emergencyAccessOwnerWarning": { - "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + "message": "현재 하나 이상의 조직의 소유자입니다. 긴급 연락처에 넘겨받기 권한을 부여할 경우, 해당 연락처가 계정을 넘겨받은 뒤에는 소유자로서의 당신의 권한을 모두 행사할 수 있게 됩니다." }, "trustedEmergencyContacts": { "message": "신뢰할 수 있는 긴급 연락처" @@ -3591,21 +3627,43 @@ "message": "엔터프라이즈 정책으로 인해 개인 보관함에 항목을 저장할 수 없습니다. 조직에서 소유권 설정을 변경한 다음, 사용 가능한 컬렉션 중에서 선택해주세요." }, "disableSend": { - "message": "Disable Send" + "message": "Send 비활성화" }, "disableSendPolicyDesc": { - "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "message": "사용자가 Bitwarden Send를 생성하거나 수정할 수 없게 합니다. 이미 생성된 Send를 삭제하는 것은 계속 허용됩니다.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disableSendExemption": { - "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + "message": "조직의 정책을 관리할 수 있는 사용자는 이 정책의 영향을 받지 않습니다." }, "sendDisabled": { - "message": "Send disabled", + "message": "Send 비활성화됨", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { - "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "message": "엔터프라이즈 정책으로 인해 이미 생성된 Send를 삭제하는 것만 허용됩니다.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "modifiedPolicyId": { @@ -3662,6 +3720,9 @@ "manageUsers": { "message": "사용자 관리" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "이 정책을 비활성화하려면 먼저 SSO 인증 정책을 수동으로 비활성화해야 합니다." }, @@ -3676,20 +3737,20 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNameDesc": { - "message": "A friendly name to describe this Send.", + "message": "이 Send의 이름", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTextDesc": { - "message": "The text you want to send." + "message": "전송하려는 텍스트" }, "sendFileDesc": { - "message": "The file you want to send." + "message": "전송하려는 파일" }, "copySendLinkOnSave": { - "message": "Copy the link to share this Send to my clipboard upon save." + "message": "저장할 때 이 Send를 공유하기 위한 링크를 클립보드에 복사합니다." }, "sendLinkLabel": { - "message": "Send link", + "message": "Send 링크", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "send": { @@ -3697,50 +3758,50 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineProductDesc": { - "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "message": "Bitwarden Send는 민감하고 일시적인 정보를 다른 사람들에게 쉽고 안전하게 보낼 수 있게 해줍니다.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineLearnMore": { - "message": "Learn more about", + "message": "오늘", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" }, "sendVaultCardProductDesc": { - "message": "Share text or files directly with anyone." + "message": "다른 사람에게 텍스트 또는 파일을 공유하세요." }, "sendVaultCardLearnMore": { - "message": "Learn more", + "message": "자세히 알아보고", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" }, "sendVaultCardSee": { - "message": "see", + "message": "어떻게", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" }, "sendVaultCardHowItWorks": { - "message": "how it works", + "message": "작동하는지 확인하거나", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" }, "sendVaultCardOr": { - "message": "or", + "message": "지금", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" }, "sendVaultCardTryItNow": { - "message": "try it now", + "message": "체험해보세요", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" }, "sendAccessTaglineOr": { - "message": "or", + "message": "에 대해서 알아보거나", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" }, "sendAccessTaglineSignUp": { - "message": "sign up", + "message": "가입을", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" }, "sendAccessTaglineTryToday": { - "message": "to try it today.", + "message": "해서 체험해보세요.", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" }, "sendCreatorIdentifier": { - "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "message": "Bitwarden의 $USER_IDENTIFIER$ 사용자가 다음 내용을 당신과 공유했습니다", "placeholders": { "user_identifier": { "content": "$1", @@ -3748,19 +3809,86 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { - "message": "The expiration date provided is not valid." + "message": "제공된 만료 날짜가 유효하지 않습니다." }, "deletionDateIsInvalid": { - "message": "The deletion date provided is not valid." + "message": "제공된 삭제 날짜가 유효하지 않습니다." }, "expirationDateAndTimeRequired": { - "message": "An expiration date and time are required." + "message": "만료 날짜와 시간은 반드시 입력해야 합니다." }, "deletionDateAndTimeRequired": { - "message": "A deletion date and time are required." + "message": "삭제 날짜와 시간은 반드시 입력해야 합니다." }, "dateParsingError": { - "message": "There was an error saving your deletion and expiration dates." + "message": "삭제 날짜와 만료 날짜를 저장하는 도중 오류가 발생했습니다." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/lv/messages.json b/locales/lv/messages.json index 6eda86e2..0979c0c7 100644 --- a/locales/lv/messages.json +++ b/locales/lv/messages.json @@ -725,6 +725,15 @@ "u2fTitle": { "message": "FIDO U2F drošības atslēga" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "E-pasts" }, @@ -800,10 +809,10 @@ "message": "Šī datu izdošana satur glabātavas datus nešifrētā veidā. Izdoto datni nevajadzētu glabāt vai sūtīt nedrošos veidos (piemēram, e-pastā). Izdzēst to uzreiz pēc izmantošanas." }, "encExportKeyWarningDesc": { - "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + "message": "Šī izvade šifrē datus ar konta šifrēšanas atslēgu. Ja tā jebkad tiks mainīta, izvadi vajadzētu veikt vēlreiz, jo vairs nebūs iespējams atšifrēt šo datni." }, "encExportAccountWarningDesc": { - "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + "message": "Katram kontam ir neatkārtojamas šifrēšanas atslēgas, tādēļ nav iespējams ievietot šifrētas izdošanas datnes saturu citā kontā." }, "exportMasterPassword": { "message": "Ievadīt galveno paroli, lai izdotu glabātavas saturu." @@ -1004,16 +1013,16 @@ "message": "Ievietot datus" }, "importError": { - "message": "Import Error" + "message": "Ievietošanas kļūda" }, "importErrorDesc": { - "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + "message": "Ir nepilnības ievietojamajos datos. Lūgums novērst zemāk uzskaitītās kļūdas avota datnē un mēģināt vēlreiz." }, "importSuccess": { "message": "Dati ir veiksmīgi ievietoti glabātavā." }, "importWarning": { - "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "message": "Dati tiks ievietoti $ORGANIZATION$. Tie var tikt kopīgoti ar citiem apvienības dalībniekiem. Vai turpināt?", "placeholders": { "organization": { "content": "$1", @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "NFC atbalsts" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "Vai tiešām noņemt šo drošības atslēgu?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Nolasīt atslēgu" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "Radās sarežģījumi, nolasot drošības atslēgu. Jāmēģina vēlreiz." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Bitwarden divpakāpju pierakstīšanās atkopšanas kods" }, @@ -1537,7 +1564,7 @@ "message": "Par datu pārkāpumu ir ziņots" }, "reportError": { - "message": "Radās kļūda, mēģinot ielādēt pārskatu. Lūgums mēģināt vēlreiz" + "message": "Radusies kļūda pārskata lādēšanā. Lūgums mēģināt vēlreiz" }, "billing": { "message": "Norēķini" @@ -1584,7 +1611,7 @@ "message": "Tādas papildus divpakāpju pierakstīšanās iespējas kā YubiKey, FIDO U2F un Duo." }, "premiumSignUpEmergency": { - "message": "Emergency Access" + "message": "Ārkārtas piekļuve" }, "premiumSignUpReports": { "message": "Paroļu higiēnas, kontu veselības un datu pārkāpumu atskaites, lai uzturētu glabātavu drošu." @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "Nevarēja apstiprināt e-pasta adresi. Var mēģināt sūtīt atkārtotu apstiprinājuma e-pasta ziņojumu." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Atjaunināt pārlūku" }, @@ -2912,7 +2945,7 @@ "message": "Apvienība ir atspējota." }, "licenseIsExpired": { - "message": "Licences derīguma termiņš ir beidzies." + "message": "Ir beidzies licences izmantošanas laiks." }, "updatedUsers": { "message": "Lietotāji atjaunināti" @@ -3345,7 +3378,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "expirationDate": { - "message": "Derīguma termiņš" + "message": "Derīguma beigu datums" }, "expirationDateDesc": { "message": "Ja uzstādīts, piekļuve šim \"Send\" beigsies norādītajā dienā un laikā.", @@ -3389,6 +3422,9 @@ "removePasswordConfirmation": { "message": "Vai tiešām noņemt paroli?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "Atspējot šo \"Send\", lai neviens tam nevarētu piekļūt.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -3403,7 +3439,7 @@ "message": "Gaida dzēšanu" }, "expired": { - "message": "Beidzies derīguma termiņš" + "message": "Beidzies izmantošanas laiks" }, "searchSends": { "message": "Meklēt \"Send\"", @@ -3429,7 +3465,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "missingSendFile": { - "message": "The file associated with this Send could not be found.", + "message": "Ar šo \"Send\" saistīto datni nevarēja atrast.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "noSendsInList": { @@ -3443,7 +3479,7 @@ "message": "Nodrošināt un pārvaldīt ārkārtas piekļuvi uzticamām kontaktpersonām. Tās var pieprasīt piekļuvi vai nu skatīt, vai arī pārņemt kontu ārkārtas gadījumā. Mūsu palīdzības lapā var uzzināt vairāk par to, kā darbojas bezzināšanu kopīgošana." }, "emergencyAccessOwnerWarning": { - "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + "message": "Tu esi vienas vai vairāku apvienību īpašnieks. Ja sniegsi pārņemšanas piekļuvi ārkārtas kontaktpersonām, tās arī varēs izmantot visas īpašnieka tiesības pēc pārņemšanas." }, "trustedEmergencyContacts": { "message": "Uzticamas ārkārtas kontaktpersonas" @@ -3591,21 +3627,43 @@ "message": "Uzņēmuma nosacījumi liedz saglabāt vienumus privātajā glabātavā. Ir jānorāda piederība apvienībai un jāizvēlas kāds no pieejamajiem krājumiem." }, "disableSend": { - "message": "Disable Send" + "message": "Atspējot \"Send\"" }, "disableSendPolicyDesc": { - "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "message": "Neļaut lietotājiem izveidot vai labot Bitwarden \"Send\". Esošu \"Send\" dzēšana joprojām ir iespējama.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disableSendExemption": { - "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + "message": "Apvienību lietotāji, kas var pārvaldīt apvienības nosacījumu kopas, nav pakļauti šīs nosacījumu kopas piemērošanai." }, "sendDisabled": { - "message": "Send disabled", + "message": "\"Send\" atspējots", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { - "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "message": "Uzņēmuma nosacījumu kopas dēļ ir tikai iespējams dzēst esošu \"Send\".", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "modifiedPolicyId": { @@ -3662,6 +3720,9 @@ "manageUsers": { "message": "Pārvaldīt lietotājus" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "Vispirms ir pašrocīgi jātspējo vienotās pieteikšanās nosacījumu kopa, pirms šī var tikt atspējota." }, @@ -3676,71 +3737,71 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNameDesc": { - "message": "A friendly name to describe this Send.", + "message": "Lasāms nosaukums, kas apraksta šo \"Send\".", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTextDesc": { - "message": "The text you want to send." + "message": "Teksts, kuru ir vēlme nosūtīt." }, "sendFileDesc": { - "message": "The file you want to send." + "message": "Datne, kuru ir vēlme nosūtīt." }, "copySendLinkOnSave": { - "message": "Copy the link to share this Send to my clipboard upon save." + "message": "Saglabājot ievietot šī \"Send\" saiti starpliktuvē." }, "sendLinkLabel": { - "message": "Send link", + "message": "\"Send\" saite", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "send": { - "message": "Send", + "message": "\"Send\"", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineProductDesc": { - "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "message": "Bitwarden \"Send\" vienkārši un droši pārsūta citiem slepenu un īslaicīgu informāciju.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineLearnMore": { - "message": "Learn more about", + "message": "Uzzināt vairāk par", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" }, "sendVaultCardProductDesc": { - "message": "Share text or files directly with anyone." + "message": "Tieša teksta vai datņu kopīgošana ar jebkuru." }, "sendVaultCardLearnMore": { - "message": "Learn more", + "message": "Uzzināt vairāk", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" }, "sendVaultCardSee": { - "message": "see", + "message": "skatīt", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" }, "sendVaultCardHowItWorks": { - "message": "how it works", + "message": ", kā tas darbojas", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" }, "sendVaultCardOr": { - "message": "or", + "message": "vai", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" }, "sendVaultCardTryItNow": { - "message": "try it now", + "message": "izmēģināt tagad", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" }, "sendAccessTaglineOr": { - "message": "or", + "message": "vai", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" }, "sendAccessTaglineSignUp": { - "message": "sign up", + "message": "pieteikties", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" }, "sendAccessTaglineTryToday": { - "message": "to try it today.", + "message": "izmēģinātu šodien.", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" }, "sendCreatorIdentifier": { - "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "message": "Bitwarden lietotājs $USER_IDENTIFIER$ kopīgoja sekojošo", "placeholders": { "user_identifier": { "content": "$1", @@ -3748,19 +3809,86 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { - "message": "The expiration date provided is not valid." + "message": "Norādītais derīguma beigu datums nav derīgs." }, "deletionDateIsInvalid": { - "message": "The deletion date provided is not valid." + "message": "Norādītais dzēšanas datums nav derīgs." }, "expirationDateAndTimeRequired": { - "message": "An expiration date and time are required." + "message": "Ir jānorāda derīguma beigu datums un laiks." }, "deletionDateAndTimeRequired": { - "message": "A deletion date and time are required." + "message": "Ir jānorāda dzēšanas datums un laiks." }, "dateParsingError": { - "message": "There was an error saving your deletion and expiration dates." + "message": "Atgadījās kļūda, saglabājot dzēšanas un derīguma beigu datumus." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/ml/messages.json b/locales/ml/messages.json index 1301665b..8cda0dea 100644 --- a/locales/ml/messages.json +++ b/locales/ml/messages.json @@ -725,6 +725,15 @@ "u2fTitle": { "message": "FIDO U2F സുരക്ഷാ കീ" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "ഇമെയിൽ" }, @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "NFC Support" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "Are you sure you want to remove this security key?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Read Key" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "There was a problem reading the security key. Try again." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Your Bitwarden two-step login recovery code" }, @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "നിങ്ങളുടെ ഇമെയിൽ പരിശോധിച്ചുറപ്പിക്കാനായില്ല. ഒരു പുതിയ സ്ഥിരീകരണ ഇമെയിൽ അയയ്‌ക്കാൻ ശ്രമിക്കുക." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "ബ്രൌസർ അപ്‌ഡേറ്റുചെയ്യുക" }, @@ -3389,6 +3422,9 @@ "removePasswordConfirmation": { "message": "പാസ്‌വേഡ് നീക്കംചെയ്യണമെന്ന് നിങ്ങൾക്ക് ഉറപ്പാണോ?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "Disable this Send so that no one can access it.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -3608,6 +3644,28 @@ "message": "Due to an enterprise policy, you are only able to delete an existing Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "modifiedPolicyId": { "message": "Modified policy $ID$.", "placeholders": { @@ -3662,6 +3720,9 @@ "manageUsers": { "message": "ഉപയോക്താക്കളെ നിയന്ത്രിക്കുക" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "You must manually disable the Single Sign-On Authentication policy before this policy can be disabled." }, @@ -3748,6 +3809,10 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { "message": "The expiration date provided is not valid." }, @@ -3762,5 +3827,68 @@ }, "dateParsingError": { "message": "There was an error saving your deletion and expiration dates." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/nb/messages.json b/locales/nb/messages.json index d0387d10..e58338b1 100644 --- a/locales/nb/messages.json +++ b/locales/nb/messages.json @@ -725,6 +725,15 @@ "u2fTitle": { "message": "FIDO U2F-sikkerhetsnøkkel" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "E-post" }, @@ -800,10 +809,10 @@ "message": "Eksporten inneholder dine hvelvdataer i et ukryptert format. Du burde ikke lagre eller sende den eksporterte filen over usikre tjenester (f.eks. E-post). Slett det umiddelbart etter at du er ferdig med å bruke dem." }, "encExportKeyWarningDesc": { - "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + "message": "Denne eksporten krypterer dataene dine ved hjelp av kontoen din sin krypteringsnøkkel. Hvis du noen gang endrer krypteringsnøkkelen til kontoen din, bør du eksportere dataene igjen, ettersom du da ikke vil kunne dekryptere denne eksportfilen." }, "encExportAccountWarningDesc": { - "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + "message": "Kontokrypteringsnøkler er unike for hver Bitwarden sin brukerkonto, og du kan ikke importere en kryptert eksport til en annen konto." }, "exportMasterPassword": { "message": "Skriv inn ditt superpassord for å eksportere dine hvelvdataer." @@ -1004,16 +1013,16 @@ "message": "Importer data" }, "importError": { - "message": "Import Error" + "message": "Importer feil" }, "importErrorDesc": { - "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + "message": "Det oppstod et problem med dataene du prøvde å importere. Vennligst løs feilene listet nedenfor i kildefilen og prøv på nytt." }, "importSuccess": { "message": "Dataene har blitt vellykket importert inn i hvelvet ditt." }, "importWarning": { - "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "message": "Du importerer data til $ORGANIZATION$. Dataene kan deles med medlemmer av denne organisasjonen. Vil du fortsette?", "placeholders": { "organization": { "content": "$1", @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "NFC-støtte" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "Er du sikker på at du vil fjerne denne sikkerhetsnøkkelen?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Les nøkkel" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "Det oppsto et problem med å lese sikkerhetsnøkkelen. Prøv igjen." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Din 2-trinnsinnloggingsgjenopprettingskode for Bitwarden" }, @@ -1584,7 +1611,7 @@ "message": "Ytterligere 2-trinnsinnloggingsmuligheter, slik som YubiKey, FIDO U2F, og Duo." }, "premiumSignUpEmergency": { - "message": "Emergency Access" + "message": "Nødtilgang" }, "premiumSignUpReports": { "message": "Passordhygiene, kontohelse, og databruddsrapporter som holder hvelvet ditt trygt." @@ -2517,7 +2544,7 @@ } }, "unlinkedSsoUser": { - "message": "Unlinked SSO for user $ID$.", + "message": "Koblet fra SSO for brukeren $ID$.", "placeholders": { "id": { "content": "$1", @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "Klarte ikke å bekrefte E-postadressen din. Prøv å sende en ny bekreftelses-E-post." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Oppdater nettleseren" }, @@ -2829,7 +2862,7 @@ "message": "Etter å ha oppdatert krypteringsnøkkelen din, er du påkrevd å logge av og på på alle Bitwarden-appene og -programmene som du bruker for øyeblikket (deriblant mobilappen og nettleserutvidelsene). Å ikke logge av og på igjen (noe som vil laste ned din nye krypteringsnøkkel) kan føre til datakorrumpering. Vi vil forsøke å logge deg av automatisk, men det kan kanskje bli forsinket." }, "updateEncryptionKeyExportWarning": { - "message": "Any encrypted exports that you have saved will also become invalid." + "message": "Eventuelle krypterte eksporter som du har lagret blir også ugyldig." }, "subscription": { "message": "Abonnement" @@ -3224,7 +3257,7 @@ "message": "Angi hovedpassord" }, "ssoCompleteRegistration": { - "message": "In order to complete logging in with SSO, please set a master password to access and protect your vault." + "message": "For å fullføre innloggingen med SSO, angi et superpassord for å få tilgang til og beskytte hvelvet ditt." }, "identifier": { "message": "Identifikator" @@ -3236,7 +3269,7 @@ "message": "Log in using your organization's single sign-on portal. Please enter your organization's identifier to begin." }, "enterpriseSingleSignOn": { - "message": "Enterprise Single Sign-On" + "message": "Bedriftsinnlogging (SSO)" }, "ssoHandOff": { "message": "Du kan nå lukke denne fanen og fortsette i utvidelsen." @@ -3267,16 +3300,16 @@ "message": "Link SSO" }, "webPoliciesDeprecationWarning": { - "message": "Policy configuration has been moved, and this page will soon be deprecated. Please click below to use the Business Portal policies page instead." + "message": "Policy konfigurasjon er flyttet, og denne siden vil snart bli avvist. Klikk nedenfor for å bruke Business Portal policyer siden i stedet." }, "singleOrg": { - "message": "Single Organization" + "message": "Enkel organisasjon" }, "singleOrgDesc": { - "message": "Restrict users from being able to join any other organizations." + "message": "Begrense brukere fra å kunne bli med i andre organisasjoner." }, "singleOrgBlockCreateMessage": { - "message": "Your current organization has a policy that does not allow you to join more than one organization. Please contact your organization admins or sign up from a different Bitwarden account." + "message": "Din nåværende organisasjon har en policy som ikke lar deg bli med i mer enn én organisasjon. Kontakt din organisasjons admins eller registrer deg fra en annen Bitwarden-konto." }, "singleOrgPolicyWarning": { "message": "Organization members who are not Owners or Administrators and are already a member of another organization will be removed from your organization." @@ -3389,6 +3422,9 @@ "removePasswordConfirmation": { "message": "Er du sikker på at du vil fjerne passordet?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "Deaktiver denne Send-en, slik at ingen får tilgang til den.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -3397,7 +3433,7 @@ "message": "Alle Send-er" }, "maxAccessCountReached": { - "message": "Max access count reached" + "message": "Maksimalt antall tilganger nådd" }, "pendingDeletion": { "message": "Venter på sletting" @@ -3410,26 +3446,26 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendProtectedPassword": { - "message": "This Send is protected with a password. Please type the password below to continue.", + "message": "Send er beskyttet med et passord. Skriv inn passordet nedenfor for å fortsette.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendProtectedPasswordDontKnow": { - "message": "Don't know the password? Ask the Sender for the password needed to access this Send.", + "message": "Vet du ikke passordet? Be avsender om nødvendig tilgang til denne Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendHiddenByDefault": { - "message": "This send is hidden by default. You can toggle its visibility using the button below.", + "message": "Denne sendingen er skjult som standard. Du kan velge å vise den ved å bruke knappen nedenfor.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "downloadFile": { "message": "Last ned fil" }, "sendAccessUnavailable": { - "message": "The Send you are trying to access does not exist or is no longer available.", + "message": "Sende du prøver å få tilgang eksisterer ikke, eller er ikke lenger tilgjengelig.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "missingSendFile": { - "message": "The file associated with this Send could not be found.", + "message": "Filen knyttet til sendingen ble ikke funnet.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "noSendsInList": { @@ -3579,19 +3615,19 @@ } }, "personalOwnership": { - "message": "Personal Ownership" + "message": "Personlig eierskap" }, "personalOwnershipPolicyDesc": { - "message": "Require users to save vault items to an organization by removing the personal ownership option." + "message": "Krev at brukere lagrer hvelvgjenstander i en organisasjon ved å fjerne den personlige eierskapsmodulen." }, "personalOwnershipExemption": { - "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + "message": "Organisasjonens eiere og administratorer er unntatt fra denne policyens håndheving." }, "personalOwnershipSubmitError": { "message": "Due to an enterprise policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections." }, "disableSend": { - "message": "Disable Send" + "message": "Deaktiver Send" }, "disableSendPolicyDesc": { "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", @@ -3601,13 +3637,35 @@ "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." }, "sendDisabled": { - "message": "Send disabled", + "message": "Send deaktivert", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { "message": "Due to an enterprise policy, you are only able to delete an existing Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "modifiedPolicyId": { "message": "Modified policy $ID$.", "placeholders": { @@ -3630,7 +3688,7 @@ "message": "Allows more granular control of user permissions for advanced configurations." }, "permissions": { - "message": "Permissions" + "message": "Rettigheter" }, "accessBusinessPortal": { "message": "Access Business Portal" @@ -3662,6 +3720,9 @@ "manageUsers": { "message": "Administrer brukere" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "You must manually disable the Single Sign-On Authentication policy before this policy can be disabled." }, @@ -3689,7 +3750,7 @@ "message": "Copy the link to share this Send to my clipboard upon save." }, "sendLinkLabel": { - "message": "Send link", + "message": "Send lenke", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "send": { @@ -3697,50 +3758,50 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineProductDesc": { - "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "message": "Bitwarden Send sender sensitiv, midlertidig informasjon til andre enkelt og sikkert.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineLearnMore": { - "message": "Learn more about", + "message": "Lær mer om", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" }, "sendVaultCardProductDesc": { - "message": "Share text or files directly with anyone." + "message": "Del tekst eller filer direkte med hvem som helst." }, "sendVaultCardLearnMore": { - "message": "Learn more", + "message": "Lær mer", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" }, "sendVaultCardSee": { - "message": "see", + "message": "se", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" }, "sendVaultCardHowItWorks": { - "message": "how it works", + "message": "hvordan det fungerer", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" }, "sendVaultCardOr": { - "message": "or", + "message": "eller", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" }, "sendVaultCardTryItNow": { - "message": "try it now", + "message": "prøv det nå", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" }, "sendAccessTaglineOr": { - "message": "or", + "message": "eller", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" }, "sendAccessTaglineSignUp": { - "message": "sign up", + "message": "registrer deg", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" }, "sendAccessTaglineTryToday": { - "message": "to try it today.", + "message": "for å prøve det i dag.", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" }, "sendCreatorIdentifier": { - "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "message": "Bitwarden-bruker $USER_IDENTIFIER$ delte følgende med deg", "placeholders": { "user_identifier": { "content": "$1", @@ -3748,19 +3809,86 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { - "message": "The expiration date provided is not valid." + "message": "Utløpsdatoen angitt er ikke gyldig." }, "deletionDateIsInvalid": { - "message": "The deletion date provided is not valid." + "message": "Slettingsdatoen som er gitt er ikke gyldig." }, "expirationDateAndTimeRequired": { - "message": "An expiration date and time are required." + "message": "Utløps dato og tid er påkrevd." }, "deletionDateAndTimeRequired": { - "message": "A deletion date and time are required." + "message": "Det kreves en slettingsdato og -tid." }, "dateParsingError": { - "message": "There was an error saving your deletion and expiration dates." + "message": "Det oppstod en feil ved lagring av slettingen og utløpsdatoene." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/nl/messages.json b/locales/nl/messages.json index 7610fcef..d646dc6d 100644 --- a/locales/nl/messages.json +++ b/locales/nl/messages.json @@ -725,6 +725,15 @@ "u2fTitle": { "message": "FIDO U2F-beveiligingssleutel" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "E-mailadres" }, @@ -800,10 +809,10 @@ "message": "Deze export bevat jouw kluisgegevens in een niet-versleutelde opmaak. Je moet het geëxporteerde bestand niet opslaan of verzenden over onbeveiligde kanalen (zoals e-mail). Verwijder het exportbestand direct na gebruik." }, "encExportKeyWarningDesc": { - "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + "message": "Deze export versleutelt je gegevens met de encryptiesleutel van je account. Als je je encryptiesleutel verandert moet je opnieuw exporteren, omdat je deze export dan niet meer kunt ontcijferen." }, "encExportAccountWarningDesc": { - "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + "message": "Encryptiesleutels zijn uniek voor elk Bitwarden-gebruikersaccount, je kun kunt een versleutelde niet in een ander account importeren." }, "exportMasterPassword": { "message": "Voer je hoofdwachtwoord in om de kluisgegevens te exporteren." @@ -1004,16 +1013,16 @@ "message": "Gegevens importeren" }, "importError": { - "message": "Import Error" + "message": "Fout bij importeren" }, "importErrorDesc": { - "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + "message": "Er was een probleem met de data die je probeerde te importeren. Los de onderstaande fouten op in het bronbestand en probeer het opnieuw." }, "importSuccess": { "message": "De gegevens zijn in je kluis geïmporteerd." }, "importWarning": { - "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "message": "Je importeert gegevens naar $ORGANIZATION$. Je gegevens kunnen gedeeld worden met de leden van deze organisatie. Wil je doorgaan?", "placeholders": { "organization": { "content": "$1", @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "NFC-ondersteuning" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "Weet je zeker dat je deze beveiligingssleutel wilt verwijderen?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Sleutel lezen" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "Er was een probleem met het lezen van de beveiligingssleutel. Probeer het nogmaals." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Je herstelcode voor Bitwarden-tweestapsaanmelding" }, @@ -1382,7 +1409,7 @@ "message": "Logins zonder 2FA gevonden" }, "inactive2faFoundDesc": { - "message": "We hebben $COUNT$ website(s) in je kluis gevonden waar je tweestapsaanmelding nog kunt configureren (volgens twofactorauth.org). Om deze accounts verder te beschermen, zou je tweestapsaanmelding moeten inschakelen.", + "message": "We hebben $COUNT$ website(s) in je kluis gevonden waar je (volgens 2fa.directory) nog tweestapsaanmelding kunt instellen. Om deze accounts beter te beschermen, zou je tweestapsaanmelding moeten inschakelen.", "placeholders": { "count": { "content": "$1", @@ -1584,7 +1611,7 @@ "message": "Extra tweestapsaanmeldingsopties zoals YubiKey, FIDO U2F en Duo." }, "premiumSignUpEmergency": { - "message": "Emergency Access" + "message": "Noodtoegang" }, "premiumSignUpReports": { "message": "Rapportages op wachtwoordhygiëne, gezondheid van je account en datalekken om je kluis veilig te houden." @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "Je e-mailadres kon niet worden geverifieerd. Probeer een nieuwe e-mail met verificatielink te versturen." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Webbrowser bijwerken" }, @@ -3362,7 +3395,7 @@ "message": "Huidige toegangsaantal" }, "sendPasswordDesc": { - "message": "Vereis een wachtwoord voor gebruikers om deze Send te benaderen (optioneel).", + "message": "Vereis optioneel een wachtwoord voor gebruikers om toegang te krijgen tot deze Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNotesDesc": { @@ -3389,6 +3422,9 @@ "removePasswordConfirmation": { "message": "Weet je zeker dat je dit wachtwoord wilt verwijderen?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "Schakel deze Send uit zodat niemand hem kan benaderen.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -3429,7 +3465,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "missingSendFile": { - "message": "The file associated with this Send could not be found.", + "message": "Het aan deze Send gekoppelde bestand kon niet gevonden worden.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "noSendsInList": { @@ -3440,10 +3476,10 @@ "message": "Noodtoegang" }, "emergencyAccessDesc": { - "message": "Verleen en beheer noodtoegang voor vertrouwde contacten. Vertrouwde contacten kunnen in noodgevallen toegang vragen tot het bekijken of overnemen van je account. Bezoek onze helppagina voor meer informatie en details over de werking van \"zero knowledge sharing\"." + "message": "Verleen en beheer noodtoegang voor vertrouwde contacten. Vertrouwde contacten kunnen in noodgevallen toegang vragen om je account te bekijken of overnemen. Bezoek onze helppagina voor meer informatie en details over de werking van \"zero knowledge sharing\"." }, "emergencyAccessOwnerWarning": { - "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + "message": "Je bent eigenaar van een of meer organisaties. Als je toegang tot overname geeft aan een noodcontact, kan deze na een overname jouw toegangsrechten als eigenaar gebruiken." }, "trustedEmergencyContacts": { "message": "Vertrouwde noodcontacten" @@ -3591,21 +3627,43 @@ "message": "Wegens bedrijfsbeleid mag je geen wachtwoorden opslaan in je persoonlijke kluis. Verander het eigenaarschap naar een organisatie en kies uit een van de beschikbare collecties." }, "disableSend": { - "message": "Disable Send" + "message": "Send uitschakelen" }, "disableSendPolicyDesc": { - "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "message": "Gebruikers mogen geen Bitwarden Send maken of bewerken. Het verwijderen van een bestaande Send is nog steeds toegestaan.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disableSendExemption": { - "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + "message": "Gebruikers in de organisatie die het beleid van de organisatie kunnen beheren, zijn vrijgesteld van de handhaving van dit beleid." }, "sendDisabled": { - "message": "Send disabled", + "message": "Send uitgeschakeld", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { - "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "message": "Als gevolg van een ondernemingsbeleid kun je alleen een bestaande Send verwijderen.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "modifiedPolicyId": { @@ -3662,6 +3720,9 @@ "manageUsers": { "message": "Gebruikers beheren" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "Je moet handmatig het Single Sign-On-verificatiebeleid uitschakelen voordat je dit beleid kunt uitgeschakeld." }, @@ -3676,20 +3737,20 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNameDesc": { - "message": "A friendly name to describe this Send.", + "message": "Een vriendelijke naam om deze Send te beschrijven.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTextDesc": { - "message": "The text you want to send." + "message": "De tekst die je wilt versturen." }, "sendFileDesc": { - "message": "The file you want to send." + "message": "Het bestand dat je wilt versturen." }, "copySendLinkOnSave": { - "message": "Copy the link to share this Send to my clipboard upon save." + "message": "Kopieer de link om deze Send te delen bij opslaan naar mijn klembord." }, "sendLinkLabel": { - "message": "Send link", + "message": "Send-link", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "send": { @@ -3697,50 +3758,50 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineProductDesc": { - "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "message": "Bitwarden Send verstuurt gevoelige, tijdelijke informatie naar anderen op een gemakkelijke en veilige manier.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineLearnMore": { - "message": "Learn more about", + "message": "Leer meer over", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" }, "sendVaultCardProductDesc": { - "message": "Share text or files directly with anyone." + "message": "Deel tekst of bestanden met wie je maar wilt." }, "sendVaultCardLearnMore": { - "message": "Learn more", + "message": "Meer informatie", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" }, "sendVaultCardSee": { - "message": "see", + "message": "zien", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" }, "sendVaultCardHowItWorks": { - "message": "how it works", + "message": "hoe het werkt", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" }, "sendVaultCardOr": { - "message": "or", + "message": "of", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" }, "sendVaultCardTryItNow": { - "message": "try it now", + "message": "probeer het nu", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" }, "sendAccessTaglineOr": { - "message": "or", + "message": "of", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" }, "sendAccessTaglineSignUp": { - "message": "sign up", + "message": "meld je aan", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" }, "sendAccessTaglineTryToday": { - "message": "to try it today.", + "message": "om het vandaag te proberen.", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" }, "sendCreatorIdentifier": { - "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "message": "Bitwarden-gebruiker $USER_IDENTIFIER$ heeft het volgende met je gedeeld", "placeholders": { "user_identifier": { "content": "$1", @@ -3748,19 +3809,86 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { - "message": "The expiration date provided is not valid." + "message": "De opgegeven vervaldatum is niet geldig." }, "deletionDateIsInvalid": { - "message": "The deletion date provided is not valid." + "message": "De opgegeven verwijderdatum is niet geldig." }, "expirationDateAndTimeRequired": { - "message": "An expiration date and time are required." + "message": "Een vervaldatum en -tijd zijn vereist." }, "deletionDateAndTimeRequired": { - "message": "A deletion date and time are required." + "message": "Een verwijderingsdatum en -tijd zijn vereist." }, "dateParsingError": { - "message": "There was an error saving your deletion and expiration dates." + "message": "Er is een fout opgetreden bij het opslaan van je verwijder- en vervaldatum." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/pl/messages.json b/locales/pl/messages.json index 27a5c933..22812fe1 100644 --- a/locales/pl/messages.json +++ b/locales/pl/messages.json @@ -725,6 +725,15 @@ "u2fTitle": { "message": "Klucz bezpieczeństwa FIDO U2F" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "Adres e-mail" }, @@ -800,10 +809,10 @@ "message": "Plik zawiera dane sejfu w niezaszyfrowanym formacie. Nie powinieneś go przechowywać, ani przesyłać poprzez niezabezpieczone kanały (takie jak poczta e-mail). Skasuj go natychmiast po użyciu." }, "encExportKeyWarningDesc": { - "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + "message": "Dane eksportu zostaną zaszyfrowane za pomocą klucza szyfrowania konta. Jeśli kiedykolwiek zmienisz ten klucz, wyeksportuj dane ponownie, ponieważ nie będziesz w stanie odszyfrować tego pliku." }, "encExportAccountWarningDesc": { - "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + "message": "Klucze szyfrowania konta są unikalne dla każdego użytkownika Bitwarden, więc nie możesz zaimportować zaszyfrowanego pliku eksportu na inne konto." }, "exportMasterPassword": { "message": "Wpisz hasło główne, aby wyeksportować dane z sejfu." @@ -1004,16 +1013,16 @@ "message": "Importuj dane" }, "importError": { - "message": "Import Error" + "message": "Wystąpił błąd podczas importowania" }, "importErrorDesc": { - "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + "message": "Wystąpił problem z danymi, które chcesz zaimportować. Rozwiąż poniższe problemy w Twoim pliku i spróbuj ponownie." }, "importSuccess": { "message": "Dane zostały zaimportowane do sejfu." }, "importWarning": { - "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "message": "Importujesz dane do organizacji $ORGANIZATION$. Dane mogą zostać udostępnione członkom organizacji. Czy chcesz kontynuować?", "placeholders": { "organization": { "content": "$1", @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "Obsługa NFC" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "Czy na pewno chcesz usunąć ten klucz bezpieczeństwa?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Odczytaj klucz" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "Wystąpił problem z odczytem klucza bezpieczeństwa. Spróbuj ponownie." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Kod odzyskiwania konta Bitwarden" }, @@ -1382,7 +1409,7 @@ "message": "Znaleźliśmy elementy bez włączonej opcji logowania dwustopniowego" }, "inactive2faFoundDesc": { - "message": "Znaleźliśmy witryny w sejfie, które mogą nie korzystać z opcji logowania dwustopniowego (według twofactorauth.org). Włącz logowanie dwustopniowe, aby dodatkowo zabezpieczyć te konta.", + "message": "Znaleźliśmy witryny w sejfie, które mogą nie korzystać z opcji logowania dwustopniowego (według 2fa.directory). Włącz logowanie dwustopniowe, aby dodatkowo zabezpieczyć te konta.", "placeholders": { "count": { "content": "$1", @@ -1584,7 +1611,7 @@ "message": "Dodatkowe opcje logowania dwustopniowego, takie jak klucze YubiKey, FIDO U2F oraz Duo." }, "premiumSignUpEmergency": { - "message": "Emergency Access" + "message": "Dostęp awaryjny" }, "premiumSignUpReports": { "message": "Raporty bezpieczeństwa haseł, stanu konta i raporty wycieków danych, aby Twoje dane były bezpieczne." @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "Nie możemy zweryfikować Twojego adresu e-mail. Spróbuj ponownie wysłać wiadomość weryfikacyjną." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Aktualizuj przeglądarkę" }, @@ -2829,7 +2862,7 @@ "message": "Po zaktualizowaniu klucza szyfrowania, musisz ponownie zalogować się do wszystkich aplikacji Bitwarden, z których obecnie korzystasz (na przykład aplikacje mobilne lub rozszerzenia przeglądarki). Niepowodzenie logowania (podczas którego pobierany jest nowy klucz szyfrowania) może spowodować uszkodzenie danych. Postaramy się wylogować Ciebie automatycznie, jednak może to chwilę potrwać." }, "updateEncryptionKeyExportWarning": { - "message": "Wszystkie zaszyfrowane eksporty, które wcześniej zapisałeś, staną się nieprawidłowe." + "message": "Wszystkie zaszyfrowane pliki eksportu, które wcześniej zapisałeś, staną się nieprawidłowe." }, "subscription": { "message": "Subskrypcja" @@ -3334,7 +3367,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "whatTypeOfSend": { - "message": "Jakie typu jest to wysyłka?", + "message": "Jakiego typu jest to wysyłka?", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deletionDate": { @@ -3362,7 +3395,7 @@ "message": "Obecna liczba dostępów" }, "sendPasswordDesc": { - "message": "Wpisz opcjonalnie hasło, aby uzyskać dostęp do wysyłki.", + "message": "Opcjonalne hasło dla użytkownika, aby uzyskać dostęp do wysyłki.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNotesDesc": { @@ -3389,6 +3422,9 @@ "removePasswordConfirmation": { "message": "Czy na pewno chcesz usunąć hasło?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "Wyłącz tę wysyłkę, aby nikt nie miał do niej dostępu.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -3429,7 +3465,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "missingSendFile": { - "message": "The file associated with this Send could not be found.", + "message": "Plik powiązany z wysyłką nie został znaleziony.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "noSendsInList": { @@ -3440,10 +3476,10 @@ "message": "Dostęp awaryjny" }, "emergencyAccessDesc": { - "message": "Zarządzaj dostępem awaryjnym dla zaufanych kontaktów. Zaufane kontakty mogą poprosić Cię o przejęcie Twojego konta lub uzyskania dostępu do jego odczytu w awaryjnych przypadkach. Odwiedź naszą stronę pomocy, aby dowiedzieć się więcej jak działa funkcja dostępu awaryjnego." + "message": "Zarządzaj dostępem awaryjnym dla zaufanych kontaktów. Zaufane kontakty mogą poprosić Cię o przejęcie Twojego konta lub uzyskania dostępu do jego odczytu w awaryjnych przypadkach. Odwiedź naszą stronę pomocy, aby dowiedzieć się jak działa funkcja dostępu awaryjnego." }, "emergencyAccessOwnerWarning": { - "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + "message": "Jesteś właścicielem co najmniej jednej organizacji. Jeśli kontaktowi awaryjnemu przyznasz dostęp do swojego konta, będzie mógł użyć wszystkich Twoich uprawnień." }, "trustedEmergencyContacts": { "message": "Zaufane kontakty awaryjne" @@ -3458,7 +3494,7 @@ "message": "Wyznaczone kontakty awaryjne" }, "noGrantedAccess": { - "message": "Nie zostałeś ustawiony jako kontakt awaryjny dla kogokolwiek." + "message": "Nie zostałeś ustawiony jako kontakt awaryjny dla żadnego użytkownika." }, "inviteEmergencyContact": { "message": "Zaproś kontakt awaryjny" @@ -3467,7 +3503,7 @@ "message": "Edytuj kontakt awaryjny" }, "inviteEmergencyContactDesc": { - "message": "Zaproś nowy kontakt awaryjny poprzez wprowadzenie jego adresu e-mail poniżej. Jeśli nie posiada on jeszcze konta Bitwarden, zostanie poproszony o jego utworzenie." + "message": "Zaproś nowy kontakt awaryjny poprzez wpisanie jego adresu e-mail poniżej. Jeśli nie posiada on jeszcze konta Bitwarden, zostanie poproszony o jego utworzenie." }, "emergencyAccessRecoveryInitiated": { "message": "Dostęp awaryjny został zainicjowany" @@ -3479,7 +3515,7 @@ "message": "Może zobaczyć wszystkie elementy w Twoim sejfie." }, "takeover": { - "message": "Przejęte" + "message": "Przejęcie" }, "takeoverDesc": { "message": "Może zresetować Twoje konto za pomocą nowego hasła głównego." @@ -3506,7 +3542,7 @@ "message": "Użytkownik został zaproszony." }, "acceptEmergencyAccess": { - "message": "Zostałeś zaproszony przez poniższego użytkownika do zostania jego kontaktem awaryjnym. Aby zaakceptować zaproszenie, musisz się zalogować lub utworzyć nowe konto Bitwarden." + "message": "Zostałeś zaproszony przez powyższego użytkownika do zostania jego kontaktem awaryjnym. Aby zaakceptować zaproszenie, musisz zalogować się lub utworzyć nowe konto Bitwarden." }, "emergencyInviteAcceptFailed": { "message": "Nie można zaakceptować zaproszenia. Poproś użytkownika o wysłanie nowego zaproszenia." @@ -3521,7 +3557,7 @@ } }, "emergencyInviteAcceptedDesc": { - "message": "Dostęp do tego użytkownika otrzymasz po potwierdzeniu swojej tożsamości. Dostaniesz wtedy wiadomość e-mail." + "message": "Dostęp do konta tego użytkownika otrzymasz po potwierdzeniu swojej tożsamości. Dostaniesz wtedy wiadomość e-mail." }, "requestAccess": { "message": "Poproś o dostęp" @@ -3588,24 +3624,46 @@ "message": "Właściciele i administratorzy organizacji są zwolnieni z przestrzegania wymagań zasad." }, "personalOwnershipSubmitError": { - "message": "Ze względu na zasadę przedsiębiorstwa nie możesz zapisywać elementów w osobistym sejfie. Zmień właściciela elementu na organizację i wybierz jedną z dostępnych kolekcji." + "message": "Ze względu na zasadę przedsiębiorstwa, nie możesz zapisywać elementów w osobistym sejfie. Zmień właściciela elementu na organizację i wybierz jedną z dostępnych kolekcji." }, "disableSend": { - "message": "Disable Send" + "message": "Wyłącz wysyłkę" }, "disableSendPolicyDesc": { - "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "message": "Nie zezwalaj użytkownikom na tworzenie i edytowanie wysyłek. Usunięcie obecnej wysyłki nadal jest dozwolone.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disableSendExemption": { - "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + "message": "Użytkownicy organizacji, którzy mogą zarządzać zasadami organizacji są zwolnieni z przestrzegania wymagań zasad." }, "sendDisabled": { - "message": "Send disabled", + "message": "Wysyłka została wyłączona", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { - "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "message": "Ze względu na zasadę przedsiębiorstwa, tylko Ty możesz usunąć obecną wysyłkę.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "modifiedPolicyId": { @@ -3624,7 +3682,7 @@ "message": "Podatek" }, "custom": { - "message": "Niestandardowy" + "message": "Niestandardowa" }, "customDesc": { "message": "Umożliwia zaawansowaną kontrolę uprawnień użytkownika." @@ -3662,6 +3720,9 @@ "manageUsers": { "message": "Zarządzaj użytkownikami" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "Musisz wyłączyć zasadę uwierzytelniania logowaniem jednokrotnym przed wyłączeniem tej zasady." }, @@ -3672,75 +3733,75 @@ "message": "Wyłącz opcję własności osobistej dla użytkowników organizacji" }, "textHiddenByDefault": { - "message": "Ukryj tekst podczas dostępu do wysyłki", + "message": "Ukryj domyślnie tekst wysyłki", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNameDesc": { - "message": "A friendly name to describe this Send.", + "message": "Nazwa wysyłki.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTextDesc": { - "message": "The text you want to send." + "message": "Tekst, który chcesz wysłać." }, "sendFileDesc": { - "message": "The file you want to send." + "message": "Plik, który chcesz wysłać." }, "copySendLinkOnSave": { - "message": "Copy the link to share this Send to my clipboard upon save." + "message": "Po zapisaniu wysyłki, skopiuj link do schowka." }, "sendLinkLabel": { - "message": "Send link", + "message": "Link wysyłki", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "send": { - "message": "Send", + "message": "Wyślij", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineProductDesc": { - "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "message": "Wysyłaj wrażliwe i krótkotrwałe informacje w łatwy i bezpieczny sposób.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineLearnMore": { - "message": "Learn more about", + "message": "Dowiedz się więcej o funkcji", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" }, "sendVaultCardProductDesc": { - "message": "Share text or files directly with anyone." + "message": "Udostępniaj teksty i pliki." }, "sendVaultCardLearnMore": { - "message": "Learn more", + "message": "Dowiedz się więcej", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" }, "sendVaultCardSee": { - "message": "see", + "message": "zobacz", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" }, "sendVaultCardHowItWorks": { - "message": "how it works", + "message": "jak to działa", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" }, "sendVaultCardOr": { - "message": "or", + "message": "lub", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" }, "sendVaultCardTryItNow": { - "message": "try it now", + "message": "wypróbuj teraz", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" }, "sendAccessTaglineOr": { - "message": "or", + "message": "lub", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" }, "sendAccessTaglineSignUp": { - "message": "sign up", + "message": "zarejestruj się", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" }, "sendAccessTaglineTryToday": { - "message": "to try it today.", + "message": ", aby ją wypróbować.", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" }, "sendCreatorIdentifier": { - "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "message": "Użytkownik Bitwarden $USER_IDENTIFIER$ udostępnił Tobie", "placeholders": { "user_identifier": { "content": "$1", @@ -3748,19 +3809,86 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { - "message": "The expiration date provided is not valid." + "message": "Data wygaśnięcia nie jest prawidłowa." }, "deletionDateIsInvalid": { - "message": "The deletion date provided is not valid." + "message": "Data usunięcia nie jest prawidłowa." }, "expirationDateAndTimeRequired": { - "message": "An expiration date and time are required." + "message": "Data i czas wygaśnięcia są wymagane." }, "deletionDateAndTimeRequired": { - "message": "A deletion date and time are required." + "message": "Data i czas usunięcia są wymagane." }, "dateParsingError": { - "message": "There was an error saving your deletion and expiration dates." + "message": "Wystąpił błąd podczas zapisywania dat usunięcia i wygaśnięcia." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/pt_BR/messages.json b/locales/pt_BR/messages.json index 7f3d9c39..6fa1eca4 100644 --- a/locales/pt_BR/messages.json +++ b/locales/pt_BR/messages.json @@ -725,6 +725,15 @@ "u2fTitle": { "message": "Chave de Segurança FIDO U2F" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "E-mail" }, @@ -800,10 +809,10 @@ "message": "Esta exportação contém os dados do seu cofre em um formato não criptografado. Você não deve armazenar ou enviar o arquivo exportado por canais inseguros (como e-mail). Exclua o arquivo imediatamente após terminar de usá-lo." }, "encExportKeyWarningDesc": { - "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + "message": "Esta exportação criptografa seus dados usando a chave de criptografia da sua conta. Se você rotacionar a chave de criptografia da sua conta, você deve exportar novamente, já que você não será capaz de descriptografar este arquivo de exportação." }, "encExportAccountWarningDesc": { - "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + "message": "Chaves de criptografia da conta são únicas para cada conta de usuário do Bitwarden, então você não pode importar uma exportação criptografada para uma conta diferente." }, "exportMasterPassword": { "message": "Insira a sua senha mestra para exportar os dados do seu cofre." @@ -1004,16 +1013,16 @@ "message": "Importar dados" }, "importError": { - "message": "Import Error" + "message": "Erro de Importação" }, "importErrorDesc": { - "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + "message": "Houve um problema com os dados que você tentou importar. Por favor, resolva os erros listados abaixo em seu arquivo de origem e tente novamente." }, "importSuccess": { "message": "Os dados foram importados com sucesso para o seu cofre." }, "importWarning": { - "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "message": "Você está importando dados para $ORGANIZATION$. Seus dados podem ser compartilhados com membros desta organização. Você deseja continuar?", "placeholders": { "organization": { "content": "$1", @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "Suporte a NFC" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "Tem certeza que deseja remover esta chave de segurança?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Chave de Leitura" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "Houve um problema ao ler a chave de segurança. Tente novamente." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Seu código de recuperação de login em duas etapas do Bitwarden" }, @@ -1584,7 +1611,7 @@ "message": "Opções adicionais de login em duas etapas, como YubiKey, FIDO U2F e Duo." }, "premiumSignUpEmergency": { - "message": "Emergency Access" + "message": "Acesso de Emergência" }, "premiumSignUpReports": { "message": "Higiene de senha, saúde da conta, e relatórios sobre violação de dados para manter o seu cofre seguro." @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "Não é possível confirmar o seu e-mail. Tente enviar um novo e-mail de verificação." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Atualizar Navegador" }, @@ -3389,6 +3422,9 @@ "removePasswordConfirmation": { "message": "Você tem certeza que deseja remover a senha?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "Desabilite este Send para que ninguém possa acessá-lo.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -3429,7 +3465,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "missingSendFile": { - "message": "The file associated with this Send could not be found.", + "message": "O arquivo associado a este Send não foi encontrado.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "noSendsInList": { @@ -3443,7 +3479,7 @@ "message": "Conceda e gerencie o acesso de emergência para contatos confiáveis. Contatos confiáveis podem solicitar acesso a Visualizar ou Assumir o Controle da sua conta em caso de emergência. Visite a nossa página de ajuda para obter mais informações e detalhes sobre como o compartilhamento de conhecimento zero funciona." }, "emergencyAccessOwnerWarning": { - "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + "message": "Você é o Proprietário de uma ou mais organizações. Se você conceder acesso a um contato de emergência, eles serão capazes de usar todas as suas permissões como Proprietário após uma concessão." }, "trustedEmergencyContacts": { "message": "Contatos de emergência confiáveis" @@ -3591,21 +3627,43 @@ "message": "Devido a uma Política Empresarial, você está restrito de salvar itens para seu cofre pessoal. Altere a opção de propriedade para uma organização e escolha entre as Coleções disponíveis." }, "disableSend": { - "message": "Disable Send" + "message": "Desabilitar Send" }, "disableSendPolicyDesc": { - "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "message": "Não permite que usuários criem ou editem um Send no Bitwarden. Excluir um Send existente ainda é permitido.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disableSendExemption": { - "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + "message": "Os usuários da organização que podem gerenciar as políticas da organização estão isentos da aplicação desta política." }, "sendDisabled": { - "message": "Send disabled", + "message": "Send desabilitado", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { - "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "message": "Devido a uma política corporativa, você só é capaz de excluir um Send existente.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "modifiedPolicyId": { @@ -3662,6 +3720,9 @@ "manageUsers": { "message": "Gerenciar Usuários" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "Você deve desativar manualmente a política de autenticação de logon único antes que esta política possa ser desativada." }, @@ -3676,20 +3737,20 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNameDesc": { - "message": "A friendly name to describe this Send.", + "message": "Um nome amigável para descrever este Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTextDesc": { - "message": "The text you want to send." + "message": "O texto que você deseja enviar." }, "sendFileDesc": { - "message": "The file you want to send." + "message": "O arquivo que você deseja enviar." }, "copySendLinkOnSave": { - "message": "Copy the link to share this Send to my clipboard upon save." + "message": "Copie o link para compartilhar este Send para minha área de transferência depois de salvar." }, "sendLinkLabel": { - "message": "Send link", + "message": "Link do Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "send": { @@ -3697,50 +3758,50 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineProductDesc": { - "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "message": "O Bitwarden Send transmite informações sensíveis e temporárias para outras pessoas de forma fácil e segura.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineLearnMore": { - "message": "Learn more about", + "message": "Saiba mais", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" }, "sendVaultCardProductDesc": { - "message": "Share text or files directly with anyone." + "message": "Compartilhe texto ou arquivos diretamente com qualquer um." }, "sendVaultCardLearnMore": { - "message": "Learn more", + "message": "Saiba mais", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" }, "sendVaultCardSee": { - "message": "see", + "message": "veja", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" }, "sendVaultCardHowItWorks": { - "message": "how it works", + "message": "como funciona", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" }, "sendVaultCardOr": { - "message": "or", + "message": "ou", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" }, "sendVaultCardTryItNow": { - "message": "try it now", + "message": "teste agora", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" }, "sendAccessTaglineOr": { - "message": "or", + "message": "ou", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" }, "sendAccessTaglineSignUp": { - "message": "sign up", + "message": "registre-se", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" }, "sendAccessTaglineTryToday": { - "message": "to try it today.", + "message": "para testar hoje mesmo.", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" }, "sendCreatorIdentifier": { - "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "message": "O usuário $USER_IDENTIFIER$ do Bitwarden compartilhou o seguinte com você", "placeholders": { "user_identifier": { "content": "$1", @@ -3748,19 +3809,86 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { - "message": "The expiration date provided is not valid." + "message": "A data de validade fornecida não é válida." }, "deletionDateIsInvalid": { - "message": "The deletion date provided is not valid." + "message": "A data de exclusão fornecida não é válida." }, "expirationDateAndTimeRequired": { - "message": "An expiration date and time are required." + "message": "Uma data e hora de expiração são obrigatórias." }, "deletionDateAndTimeRequired": { - "message": "A deletion date and time are required." + "message": "Uma data e hora de exclusão são obrigatórias." }, "dateParsingError": { - "message": "There was an error saving your deletion and expiration dates." + "message": "Ocorreu um erro ao salvar as suas datas de exclusão e validade." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/pt_PT/messages.json b/locales/pt_PT/messages.json index 878905f1..93483718 100644 --- a/locales/pt_PT/messages.json +++ b/locales/pt_PT/messages.json @@ -725,6 +725,15 @@ "u2fTitle": { "message": "Chave de segurança FIDO U2F" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "Email" }, @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "Suporte NFC" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "Tem a certeza de que pretende remover esta chave de segurança?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Ler chave" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "Ocorreu um problema ao ler a chave de segurança. Tente novamente." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "O seu código Bitwarden de recuperação de início de sessão de dois passos" }, @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "Não foi possível verificar o seu email. Tente enviar um novo email de verificação." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Atualizar navegador" }, @@ -3389,6 +3422,9 @@ "removePasswordConfirmation": { "message": "Are you sure you want to remove the password?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "Disable this Send so that no one can access it.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -3608,6 +3644,28 @@ "message": "Due to an enterprise policy, you are only able to delete an existing Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "modifiedPolicyId": { "message": "Modified policy $ID$.", "placeholders": { @@ -3662,6 +3720,9 @@ "manageUsers": { "message": "Manage Users" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "You must manually disable the Single Sign-On Authentication policy before this policy can be disabled." }, @@ -3748,6 +3809,10 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { "message": "The expiration date provided is not valid." }, @@ -3762,5 +3827,68 @@ }, "dateParsingError": { "message": "There was an error saving your deletion and expiration dates." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/ro/messages.json b/locales/ro/messages.json index 3042173c..10203e0f 100644 --- a/locales/ro/messages.json +++ b/locales/ro/messages.json @@ -725,6 +725,15 @@ "u2fTitle": { "message": "Cheie de securitate FIDO U2F" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "E-mail" }, @@ -800,10 +809,10 @@ "message": "Acest export conține datele dvs. din seif în format necriptat. Nu ar trebui să stocați sau să trimiteți fișierul pe canale nesecurizate (cum ar fi e-mail). Ștergeți-l imediat după ce nu îl mai folosiți." }, "encExportKeyWarningDesc": { - "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + "message": "Acest export criptează datele, utilizând cheia de criptare a contului. Dacă revocați vreodată cheia de criptare a contului dvs., ar trebui să exportați din nou, deoarece nu veți putea decripta acest fișier de export." }, "encExportAccountWarningDesc": { - "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + "message": "Cheile de criptare a contului sunt unice fiecărui cont de utilizator Bitwarden, astfel încât nu puteți importa un export criptat într-un cont diferit." }, "exportMasterPassword": { "message": "Introducere parolă principală pentru exportarea datelor seifului." @@ -1004,16 +1013,16 @@ "message": "Import de date" }, "importError": { - "message": "Import Error" + "message": "Eroare de import" }, "importErrorDesc": { - "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + "message": "A apărut o problemă cu datele pe care ați încercat să le importați. Vă rugăm să rezolvați erorile enumerate mai jos în fișierul sursă și să încercați din nou." }, "importSuccess": { "message": "Datele au fost importate cu succes în seiful dvs." }, "importWarning": { - "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "message": "Importați date în $ORGANIZATION$. Datele dvs. pot fi partajate cu membrii acestei organizații. Doriți să continuați?", "placeholders": { "organization": { "content": "$1", @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "Suport NFC" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "Sigur doriți să eliminați această cheie de securitate?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Citire cheie" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "A apărut o problemă la citirea cheii de securitate. Încercați din nou." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Codul dvs. Bitwarden de recuperare a autentificării în două etape" }, @@ -1382,7 +1409,7 @@ "message": "S-au găsit conectări fără 2FA" }, "inactive2faFoundDesc": { - "message": "Am găsit $COUNT$ sait(uri) în seiful dvs., care probabil nu au fost configurate cu autentificarea cu doi factori (conform twofactorauth.org). Pentru a proteja în continuare aceste conturi, ar trebui să activați autentificarea cu doi factori.", + "message": "Am găsit $COUNT$ sait(uri) web în seiful dvs. care s-ar putea să nu fie configurate cu autentificarea cu doi factori (conform cu 2fa.directory). Pentru a proteja în continuare aceste conturi, ar trebui să activați autentificarea cu doi factori.", "placeholders": { "count": { "content": "$1", @@ -1584,7 +1611,7 @@ "message": "Opțiuni suplimentare de conectare în două etape, cum ar fi YubiKey, FIDO U2F și Duo." }, "premiumSignUpEmergency": { - "message": "Emergency Access" + "message": "Acces de urgență" }, "premiumSignUpReports": { "message": "Rapoarte privind igiena parolelor, sănătatea contului și breșele de date pentru a vă păstra seiful în siguranță." @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "E-mailul dvs. nu a putut fi verificat. Încercați să trimiteți un nou e-mail de verificare." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Actualizare browser" }, @@ -3373,7 +3406,7 @@ "message": "Dezactivat" }, "sendLink": { - "message": "Linkul Send-ului", + "message": "Link Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "copySendLink": { @@ -3389,6 +3422,9 @@ "removePasswordConfirmation": { "message": "Sigur doriți să eliminați parola?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "Dezactivați acest Send astfel încât nimeni să nu îl poată accesa.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -3429,7 +3465,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "missingSendFile": { - "message": "The file associated with this Send could not be found.", + "message": "Fișierul asociat cu acest Send nu a putut fi găsit.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "noSendsInList": { @@ -3440,10 +3476,10 @@ "message": "Acces de urgență" }, "emergencyAccessDesc": { - "message": "Acordă și gestionează accesul de urgență contactelor de încredere. Contactele de încredere pot solicita accesul fie la vizualizarea fie la preluarea controlului contului dvs. în caz de urgență. Vizitați-ne pagina de ajutor pentru detalii privind modul cum funcționează schimbul zero de cunoștințe." + "message": "Acordă și gestionează accesul de urgență, contactelor de încredere. Contactele de încredere, pot solicita accesul, fie la vizualizarea, fie la preluarea controlului contului dvs. în caz de urgență. Vizitați-ne pagina de ajutor, pentru detalii privind modul cum funcționează schimbul zero de cunoștințe." }, "emergencyAccessOwnerWarning": { - "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + "message": "Sunteți proprietarul uneia sau mai multor organizații. Dacă permiteți preluarea controlului de către un contact de urgență, acesta va putea utiliza toate permisiunile dvs. ca proprietar, după preluarea controlului." }, "trustedEmergencyContacts": { "message": "Contacte de urgență de încredere" @@ -3591,21 +3627,43 @@ "message": "Datorită unei politici pentru întreprinderi, vă este restricționată salvarea de articole în seiful dvs. personal. Schimbați opțiunea de proprietate la o organizație și alegeți dintre colecțiile disponibile." }, "disableSend": { - "message": "Disable Send" + "message": "Dezactivare Send" }, "disableSendPolicyDesc": { - "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "message": "Nu permiteți utilizatorilor să creeze sau să editeze un Send Bitwarden. Ștergerea unui Send existent este încă permisă.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disableSendExemption": { - "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + "message": "Utilizatorii organizației care pot gestiona politicile organizației sunt exceptați de la aplicarea acestei politici." }, "sendDisabled": { - "message": "Send disabled", + "message": "Send dezactivat", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { - "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "message": "Datorită unei politici de întreprindere, puteți șterge numai un Send existent.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "modifiedPolicyId": { @@ -3662,6 +3720,9 @@ "manageUsers": { "message": "Gestionați utilizatorii" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "Politica de autentificare la conectare unică (SSO) trebuie dezactivată manual înainte ca această politică să poată fi dezactivată." }, @@ -3676,20 +3737,20 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNameDesc": { - "message": "A friendly name to describe this Send.", + "message": "Un nume prietenos pentru a descrie acest Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTextDesc": { - "message": "The text you want to send." + "message": "Textul pe care doriți să-l trimiteți." }, "sendFileDesc": { - "message": "The file you want to send." + "message": "Fișierul pe care doriți să-l trimiteți." }, "copySendLinkOnSave": { - "message": "Copy the link to share this Send to my clipboard upon save." + "message": "Copiați linkul pentru a partaja acest Send în clipboard-ul meu la salvare." }, "sendLinkLabel": { - "message": "Send link", + "message": "Link Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "send": { @@ -3697,50 +3758,50 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineProductDesc": { - "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "message": "Bitwarden Send transmite celorlalți informații sensibile, temporare, cu ușurință și în siguranță.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineLearnMore": { - "message": "Learn more about", + "message": "Aflați mai multe despre", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" }, "sendVaultCardProductDesc": { - "message": "Share text or files directly with anyone." + "message": "Partajați text sau fișiere direct cu oricine." }, "sendVaultCardLearnMore": { - "message": "Learn more", + "message": "Aflați mai multe", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" }, "sendVaultCardSee": { - "message": "see", + "message": "vedeți", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" }, "sendVaultCardHowItWorks": { - "message": "how it works", + "message": "cum funcționează", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" }, "sendVaultCardOr": { - "message": "or", + "message": "sau", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" }, "sendVaultCardTryItNow": { - "message": "try it now", + "message": "încercați-l acum", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" }, "sendAccessTaglineOr": { - "message": "or", + "message": "sau", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" }, "sendAccessTaglineSignUp": { - "message": "sign up", + "message": "înregistrați-vă", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" }, "sendAccessTaglineTryToday": { - "message": "to try it today.", + "message": "pentru a-l încerca astăzi.", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" }, "sendCreatorIdentifier": { - "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "message": "Utilizatorul Bitwarden $USER_IDENTIFIER$ a partajat următoarele cu dvs.", "placeholders": { "user_identifier": { "content": "$1", @@ -3748,19 +3809,86 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { - "message": "The expiration date provided is not valid." + "message": "Data de expirare furnizată nu este validă." }, "deletionDateIsInvalid": { - "message": "The deletion date provided is not valid." + "message": "Data de ștergere furnizată nu este validă." }, "expirationDateAndTimeRequired": { - "message": "An expiration date and time are required." + "message": "Sunt necesare o dată și o oră de expirare." }, "deletionDateAndTimeRequired": { - "message": "A deletion date and time are required." + "message": "Sunt necesare o dată și o oră de ștergere." }, "dateParsingError": { - "message": "There was an error saving your deletion and expiration dates." + "message": "A survenit o eroare la salvarea datelor de ștergere și de expirare." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/ru/messages.json b/locales/ru/messages.json index 01a61d94..aa1c865a 100644 --- a/locales/ru/messages.json +++ b/locales/ru/messages.json @@ -291,7 +291,7 @@ "message": "Карта" }, "typeIdentity": { - "message": "Личные данные" + "message": "Личная информация" }, "typeSecureNote": { "message": "Защищенная заметка" @@ -395,7 +395,7 @@ "description": "Copy URI to clipboard" }, "myVault": { - "message": "Хранилище" + "message": "Мое хранилище" }, "vault": { "message": "Хранилище" @@ -536,7 +536,7 @@ "message": "Мастер-пароль" }, "masterPassDesc": { - "message": "Мастер-пароль это ключ к вашему защищенному хранилищу. Он очень важен, поэтому не забывайте его. Восстановить мастер-пароль невозможно." + "message": "Мастер-пароль – это ключ к вашему защищенному хранилищу. Он очень важен, поэтому не забывайте его. Восстановить мастер-пароль невозможно." }, "masterPassHintDesc": { "message": "Подсказка к мастер-паролю может помочь вам его вспомнить." @@ -584,7 +584,7 @@ "message": "Мы отправили вам email с подсказкой к мастер-паролю." }, "unexpectedError": { - "message": "Произошла неожиданная ошибка." + "message": "Произошла непредвиденная ошибка." }, "emailAddress": { "message": "Адрес email" @@ -612,7 +612,7 @@ "message": "Неверный мастер-пароль" }, "lockNow": { - "message": "Заблокировать" + "message": "Заблокировать сейчас" }, "noItemsInList": { "message": "Нет элементов для отображения." @@ -725,6 +725,15 @@ "u2fTitle": { "message": "Ключ безопасности FIDO U2F" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "Email" }, @@ -800,10 +809,10 @@ "message": "Экспортируемый файл содержит данные вашего хранилища в незашифрованном формате. Его не следует хранить или отправлять по небезопасным каналам (например по электронной почте). Удалите его сразу после использования." }, "encExportKeyWarningDesc": { - "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + "message": "При экспорте данные шифруются при помощи ключа шифрования учетной записи. Если вы решите сменить ключ шифрования, вам следует экспортировать данные повторно, поскольку вы не сможете расшифровать этот файл экспорта." }, "encExportAccountWarningDesc": { - "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + "message": "Ключи шифрования уникальны для каждой учетной записи Bitwarden, поэтому нельзя импортировать зашифрованное хранилище в другой аккаунт." }, "exportMasterPassword": { "message": "Введите мастер-пароль для экспорта данных из хранилища." @@ -850,7 +859,7 @@ "description": "Make the first letter of a work uppercase." }, "includeNumber": { - "message": "Включить цифру" + "message": "Добавить цифру" }, "passwordHistory": { "message": "История паролей" @@ -1004,16 +1013,16 @@ "message": "Импорт данных" }, "importError": { - "message": "Import Error" + "message": "Ошибка импорта" }, "importErrorDesc": { - "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + "message": "Возникла проблема с данными, которые вы пытались импортировать. Пожалуйста, исправьте ошибки, перечисленные ниже в вашем исходном файле и попробуйте еще раз." }, "importSuccess": { "message": "Данные были успешно импортированы в ваше хранилище." }, "importWarning": { - "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "message": "Вы импортируете данные в $ORGANIZATION$. Члены этой организации могут получить доступ к вашим данным. Хотите продолжить?", "placeholders": { "organization": { "content": "$1", @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "Поддержка NFC" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "Вы действительно хотите удалить этот ключ безопасности?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Читать ключ" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "Не удалось прочитать ключ безопасности. Попробуйте снова." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Ваш код восстановления двухфакторной аутентификации Bitwarden" }, @@ -1382,7 +1409,7 @@ "message": "Найдены логины без 2ФА" }, "inactive2faFoundDesc": { - "message": "В хранилище обнаружены сайты ($COUNT$ шт.), у которых может быть не настроена двухфакторная аутентификация (согласно twofactorauth.org). Для дополнительной защиты этих аккаунтов следует включить двухфакторную аутентификацию.", + "message": "В хранилище обнаружены сайты ($COUNT$ шт.), у которых может быть не настроена двухфакторная аутентификация (согласно 2fa.directory). Для дополнительной защиты этих аккаунтов следует включить двухфакторную аутентификацию.", "placeholders": { "count": { "content": "$1", @@ -1584,7 +1611,7 @@ "message": "Дополнительные варианты двухфакторной аутентификации, такие как YubiKey, FIDO U2F и Duo." }, "premiumSignUpEmergency": { - "message": "Emergency Access" + "message": "Экстренный доступ" }, "premiumSignUpReports": { "message": "Гигиена паролей, здоровье аккаунта и отчеты об утечках данных для обеспечения безопасности вашего хранилища." @@ -1846,7 +1873,7 @@ "message": "Обратиться в службу поддержки" }, "updatedPaymentMethod": { - "message": "Обновленный способ оплаты." + "message": "Способ оплаты обновлен." }, "purchasePremium": { "message": "Купить Премиум" @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "Не удалось подтвердить ваш email. Попробуйте отправить новое письмо с подтверждением." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Обновить браузер" }, @@ -2628,7 +2661,7 @@ "message": "Вы получите доступ к этой организации, как только администратор подтвердит ваше членство. Когда это произойдет, мы отправим вам email." }, "inviteAcceptFailed": { - "message": "Невозможно принять приглашение. Попросите администратора организации отправить новое приглашение." + "message": "Не удается принять приглашение. Попросите администратора организации выслать новое." }, "inviteAcceptFailedShort": { "message": "Невозможно принять приглашение. $DESCRIPTION$", @@ -2859,7 +2892,7 @@ "message": "Вы ничего не выбрали." }, "acceptPolicies": { - "message": "Устанавливая этот флажок, вы соглашаетесь со следующим:" + "message": "Отметив этот флажок, вы соглашаетесь со следующим:" }, "acceptPoliciesError": { "message": "Условия предоставления услуг и Политика конфиденциальности не были подтверждены." @@ -2949,13 +2982,13 @@ "message": "Вы выбрали слабый мастер-пароль. Для надежной защиты аккаунта Bitwarden следует использовать сильный мастер-пароль (или парольную фразу). Вы действительно хотите использовать этот мастер-пароль?" }, "rotateAccountEncKey": { - "message": "Также повернуть ключ шифрования моего аккаунта" + "message": "Также изменить ключ шифрования моего аккаунта" }, "rotateEncKeyTitle": { - "message": "Поворот ключа шифрования" + "message": "Изменить ключ шифрования" }, "rotateEncKeyConfirmation": { - "message": "Вы уверены, что хотите повернуть ключ шифрования вашей учетной записи?" + "message": "Вы уверены, что хотите изменить ключ шифрования вашей учетной записи?" }, "attachmentsNeedFix": { "message": "К этому элементу прикреплены старые вложения, которые необходимо исправить." @@ -2968,7 +3001,7 @@ "description": "This is a verb. ex. 'Fix The Car'" }, "oldAttachmentsNeedFixDesc": { - "message": "В вашем хранилище есть старые вложения, которые необходимо исправить, прежде чем вы сможете повернуть ключ шифрования вашего аккаунта." + "message": "В вашем хранилище есть старые вложения файлов, которые необходимо исправить, прежде чем вы сможете изменить ключ шифрования вашего аккаунта." }, "yourAccountsFingerprint": { "message": "Фраза отпечатка вашего аккаунта", @@ -2993,7 +3026,7 @@ "message": "Ваш ключ API может быть использован для аутентификации в публичном API Bitwarden." }, "apiKeyRotateDesc": { - "message": "Поворот ключа API приведет к аннулированию предыдущего ключа. Вы можете повернуть ключ API, если считаете, что текущий ключ больше не безопасен для использования." + "message": "Изменение ключа API приведет к аннулированию предыдущего ключа. Вы можете изменить свой ключ API, если считаете, что текущий ключ больше не безопасен для использования." }, "apiKeyWarning": { "message": "Ваш ключ API имеет полный доступ к организации. Это должно храниться в секрете." @@ -3012,7 +3045,7 @@ "message": "Показать ключ API" }, "rotateApiKey": { - "message": "Повернуть ключ API" + "message": "Изменить ключ API" }, "selectOneCollection": { "message": "Необходимо выбрать хотя бы одну коллекцию." @@ -3282,13 +3315,13 @@ "message": "Члены организации, которые не являются владельцами или администраторами и уже входят в другую организацию, будут удалены из вашей организации." }, "requireSso": { - "message": "Аутентификация по единому входу" + "message": "Авторизация через единый вход (SSO)" }, "requireSsoPolicyDesc": { "message": "Требовать от пользователей авторизацию с помощью единого корпоративного входа." }, "prerequisite": { - "message": "Предварительное условие" + "message": "Обязательное условие" }, "requireSsoPolicyReq": { "message": "Перед активацией этой политики необходимо активировать корпоративную политику 'Одна организация'." @@ -3318,7 +3351,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "editedSend": { - "message": "Измененная отправка", + "message": "Измененная Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deletedSend": { @@ -3330,22 +3363,22 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deleteSendConfirmation": { - "message": "Вы действительно хотите удалить Send?", + "message": "Вы действительно хотите удалить эту Send?", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "whatTypeOfSend": { - "message": "Выберите тип Send?", + "message": "Выберите тип Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deletionDate": { - "message": "Дата удаления" + "message": "Срок удаления" }, "deletionDateDesc": { "message": "Эта Send будет окончательно удалена в указанные дату и время.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "expirationDate": { - "message": "Дата истечения" + "message": "Срок истечения" }, "expirationDateDesc": { "message": "Если задано, доступ к этой Send истечет в указанные дату и время.", @@ -3362,7 +3395,7 @@ "message": "Текущих обращений" }, "sendPasswordDesc": { - "message": "Опционально запрашивать у пользователей пароль для доступа к этой Send.", + "message": "По возможности запрашивать у пользователей пароль для доступа к этой Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNotesDesc": { @@ -3389,12 +3422,15 @@ "removePasswordConfirmation": { "message": "Вы уверены, что хотите удалить пароль?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "Отключить эту Send, чтобы никто не мог получить к ней доступ.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "allSends": { - "message": "Все Sends" + "message": "Все Send’ы" }, "maxAccessCountReached": { "message": "Достигнут максимум обращений" @@ -3403,10 +3439,10 @@ "message": "Ожидание удаления" }, "expired": { - "message": "Истекло" + "message": "Срок истек" }, "searchSends": { - "message": "Поиск Sends", + "message": "Поиск Send’ов", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendProtectedPassword": { @@ -3429,11 +3465,11 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "missingSendFile": { - "message": "The file associated with this Send could not be found.", + "message": "Не удалось найти файл, связанный с этой Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "noSendsInList": { - "message": "В списке нет Sends.", + "message": "В списке нет Send’ов.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "emergencyAccess": { @@ -3443,7 +3479,7 @@ "message": "Предоставляйте экстренный доступ доверенным контактам и управляйте им. Доверенные контакты могут получить доступ для просмотра или передачи владения вашей учетной записью в экстренных ситуациях. Посетите нашу страницу помощи для детального ознакомления о том, как работает доступ нулевого уровня." }, "emergencyAccessOwnerWarning": { - "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + "message": "Вы являетесь владельцем одной или нескольких организаций. Если передать владение контакту для экстренных ситуаций, он будет наделен всеми полномочиями в качестве полноправного владельца." }, "trustedEmergencyContacts": { "message": "Надежные контакты для экстренных ситуаций" @@ -3509,7 +3545,7 @@ "message": "Вы были приглашены в качестве контакта на случай экстренной ситуации для пользователя, указанного выше. Чтобы принять приглашение, необходимо авторизоваться или создать новый аккаунт Bitwarden." }, "emergencyInviteAcceptFailed": { - "message": "Не могу принять приглашение. Попросите пользователя отправить новое приглашение." + "message": "Не удается принять приглашение. Попросите пользователя выслать новое." }, "emergencyInviteAcceptFailedShort": { "message": "Невозможно принять приглашение. $DESCRIPTION$", @@ -3579,7 +3615,7 @@ } }, "personalOwnership": { - "message": "Личная владение" + "message": "Личное владение" }, "personalOwnershipPolicyDesc": { "message": "Требовать от пользователей сохранения элементов хранилища в организации, удалив опцию личного владения." @@ -3591,21 +3627,43 @@ "message": "В соответствии с корпоративной политикой вам запрещено сохранять элементы в личном хранилище. Измените владельца на организацию и выберите из доступных Коллекций." }, "disableSend": { - "message": "Disable Send" + "message": "Отключить Send" }, "disableSendPolicyDesc": { - "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "message": "Не разрешать пользователям создавать или редактировать Bitwarden Send. Удаление существующей Send по-прежнему разрешено.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disableSendExemption": { - "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + "message": "Политики не распространяются на пользователей организации, которые могут ими управлять." }, "sendDisabled": { - "message": "Send disabled", + "message": "Send отключена", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { - "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "message": "В соответствии с корпоративной политикой вы можете удалить только существующую Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "modifiedPolicyId": { @@ -3624,7 +3682,7 @@ "message": "Предполагаемый налог" }, "custom": { - "message": "Пользовательский" + "message": "Другой" }, "customDesc": { "message": "Позволяет более гибко контролировать права пользователей для расширенных конфигураций." @@ -3662,6 +3720,9 @@ "manageUsers": { "message": "Управление пользователями" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "Перед отключением этой политики необходимо вручную отключить политику проверки подлинности SSO." }, @@ -3676,20 +3737,20 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNameDesc": { - "message": "A friendly name to describe this Send.", + "message": "Понятное имя для описания этой Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTextDesc": { - "message": "The text you want to send." + "message": "Текст, который вы хотите отправить." }, "sendFileDesc": { - "message": "The file you want to send." + "message": "Файл, который вы хотите отправить." }, "copySendLinkOnSave": { - "message": "Copy the link to share this Send to my clipboard upon save." + "message": "Скопировать ссылку в буфер обмена после сохранения, чтобы поделиться этой Send." }, "sendLinkLabel": { - "message": "Send link", + "message": "Ссылка на Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "send": { @@ -3697,50 +3758,50 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineProductDesc": { - "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "message": "Bitwarden Send передает конфиденциальную, временную информацию другим легко и безопасно.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineLearnMore": { - "message": "Learn more about", + "message": "Узнать больше о", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" }, "sendVaultCardProductDesc": { - "message": "Share text or files directly with anyone." + "message": "Делитесь текстом или файлами напрямую с кем угодно." }, "sendVaultCardLearnMore": { - "message": "Learn more", + "message": "Узнайте больше", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" }, "sendVaultCardSee": { - "message": "see", + "message": "посмотрите", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" }, "sendVaultCardHowItWorks": { - "message": "how it works", + "message": "как это работает", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" }, "sendVaultCardOr": { - "message": "or", + "message": "или", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" }, "sendVaultCardTryItNow": { - "message": "try it now", + "message": "попробуйте прямо сейчас", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" }, "sendAccessTaglineOr": { - "message": "or", + "message": "или", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" }, "sendAccessTaglineSignUp": { - "message": "sign up", + "message": "зарегистрируйтесь", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" }, "sendAccessTaglineTryToday": { - "message": "to try it today.", + "message": "чтобы попробовать уже сегодня.", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" }, "sendCreatorIdentifier": { - "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "message": "Пользователь Bitwarden $USER_IDENTIFIER$ поделился с вами следующим", "placeholders": { "user_identifier": { "content": "$1", @@ -3748,19 +3809,86 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { - "message": "The expiration date provided is not valid." + "message": "Срок истечения указан некорректно." }, "deletionDateIsInvalid": { - "message": "The deletion date provided is not valid." + "message": "Срок удаления указан некорректно." }, "expirationDateAndTimeRequired": { - "message": "An expiration date and time are required." + "message": "Необходимо указать дату и время срока истечения." }, "deletionDateAndTimeRequired": { - "message": "A deletion date and time are required." + "message": "Необходимо указать дату и время срока удаления." }, "dateParsingError": { - "message": "There was an error saving your deletion and expiration dates." + "message": "Произошла ошибка при сохранении данных о сроках удаления и истечения." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/si/messages.json b/locales/si/messages.json index 6fb6f8d6..67498f0c 100644 --- a/locales/si/messages.json +++ b/locales/si/messages.json @@ -437,7 +437,7 @@ "message": "Select a file." }, "maxFileSize": { - "message": "Maximum file size is 100 MB." + "message": "Maximum file size is 500 MB." }, "updateKey": { "message": "You cannot use this feature until you update your encryption key." @@ -725,6 +725,15 @@ "u2fTitle": { "message": "FIDO U2F Security Key" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "Email" }, @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "NFC Support" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "Are you sure you want to remove this security key?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Read Key" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "There was a problem reading the security key. Try again." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Your Bitwarden two-step login recovery code" }, @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "Unable to verify your email. Try sending a new verification email." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Update Browser" }, @@ -3389,6 +3422,9 @@ "removePasswordConfirmation": { "message": "Are you sure you want to remove the password?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "Disable this Send so that no one can access it.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -3608,6 +3644,28 @@ "message": "Due to an enterprise policy, you are only able to delete an existing Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "modifiedPolicyId": { "message": "Modified policy $ID$.", "placeholders": { @@ -3662,6 +3720,9 @@ "manageUsers": { "message": "Manage Users" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "You must manually disable the Single Sign-On Authentication policy before this policy can be disabled." }, @@ -3748,6 +3809,10 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { "message": "The expiration date provided is not valid." }, @@ -3762,5 +3827,68 @@ }, "dateParsingError": { "message": "There was an error saving your deletion and expiration dates." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/sk/messages.json b/locales/sk/messages.json index dd40217c..d0599b98 100644 --- a/locales/sk/messages.json +++ b/locales/sk/messages.json @@ -725,6 +725,15 @@ "u2fTitle": { "message": "FIDO U2F bezpečnostný kľúč" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "Email" }, @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "Podpora NFC" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "Naozaj chcete odstrániť tento bezpečnostný kľúč?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Načítať kľúč" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "Problém pri čítaní bezpečnostného kľúča. Skúste to znova." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Váš Bitwarden záchranný kód pre dvojstupňové overovanie" }, @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "Overovanie zlyhalo. Skúste si odoslať nový verifikačný e-mail." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Aktualizovať prehliadač" }, @@ -3389,6 +3422,9 @@ "removePasswordConfirmation": { "message": "Naozaj chcete odstrániť heslo?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "Vypnúť toto Odoslanie, aby k nemu nikto nemal prístup.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -3608,6 +3644,28 @@ "message": "Z dôvodu podnikovej politiky môžete odstrániť iba existujúci Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "modifiedPolicyId": { "message": "Upravená politika $ID$.", "placeholders": { @@ -3662,6 +3720,9 @@ "manageUsers": { "message": "Spravovať používateľov" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "Predtým, ako bude možné túto politiku deaktivovať, musíte manuálne vypnúť politiku overovania jediným prihlásením." }, @@ -3748,6 +3809,10 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { "message": "Uvedený dátum exspirácie nie je platný." }, @@ -3762,5 +3827,68 @@ }, "dateParsingError": { "message": "Pri ukladaní dátumov odstránenia a vypršania platnosti sa vyskytla chyba." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/sl/messages.json b/locales/sl/messages.json index c8b945c2..1241e306 100644 --- a/locales/sl/messages.json +++ b/locales/sl/messages.json @@ -725,6 +725,15 @@ "u2fTitle": { "message": "FIDO U2F Security Key" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "E-pošta" }, @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "NFC Support" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "Are you sure you want to remove this security key?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Read Key" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "There was a problem reading the security key. Try again." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Your Bitwarden two-step login recovery code" }, @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "Unable to verify your email. Try sending a new verification email." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Update Browser" }, @@ -3389,6 +3422,9 @@ "removePasswordConfirmation": { "message": "Are you sure you want to remove the password?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "Disable this Send so that no one can access it.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -3608,6 +3644,28 @@ "message": "Due to an enterprise policy, you are only able to delete an existing Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "modifiedPolicyId": { "message": "Modified policy $ID$.", "placeholders": { @@ -3662,6 +3720,9 @@ "manageUsers": { "message": "Manage Users" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "You must manually disable the Single Sign-On Authentication policy before this policy can be disabled." }, @@ -3748,6 +3809,10 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { "message": "The expiration date provided is not valid." }, @@ -3762,5 +3827,68 @@ }, "dateParsingError": { "message": "There was an error saving your deletion and expiration dates." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/sr/messages.json b/locales/sr/messages.json index 83497b01..1b326207 100644 --- a/locales/sr/messages.json +++ b/locales/sr/messages.json @@ -361,7 +361,7 @@ "message": "Подели" }, "valueCopied": { - "message": "$VALUE$ копирано", + "message": "$VALUE$ копиран(а/о)", "description": "Value has been copied to the clipboard.", "placeholders": { "value": { @@ -725,6 +725,15 @@ "u2fTitle": { "message": "FIDO U2F сигурносни кључ" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "Е-пошта" }, @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "NFC подршка" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "Да ли сте сигурни да желите да уклоните овај сигурносни кључ?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Читај кључ" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "Догодила се грешка приликом читања безбедносног кључа. Покушајте поново." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Ваш Bitwarden код за опоравак пријаве у два корака" }, @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "Није могуће верификовати ваш имејл. Покушајте да пошаљете нову поруку за верификацију." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Ажурирајте Претраживач" }, @@ -3338,14 +3371,14 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deletionDate": { - "message": "Датум брисања" + "message": "Брисање после" }, "deletionDateDesc": { "message": "„The Send“ ће бити трајно избрисан наведеног датума и времена.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "expirationDate": { - "message": "Датум истека" + "message": "Рок употребе" }, "expirationDateDesc": { "message": "Ако је постављено, приступ овом „Send“ истиче на наведени датум и време.", @@ -3389,6 +3422,9 @@ "removePasswordConfirmation": { "message": "Да ли сте сигурни да желите уклонити лозинку?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "Онемогућите овај „Send“ да нико не би могао да му приступи.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -3608,6 +3644,28 @@ "message": "Због полисе компаније, можеш само да бришеш постојећа слања.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "modifiedPolicyId": { "message": "Политика $ID$ промењена.", "placeholders": { @@ -3624,7 +3682,7 @@ "message": "Процењен ПДВ" }, "custom": { - "message": "Прилагођен" + "message": "Друго" }, "customDesc": { "message": "Омогућава детаљнију контролу корисничких дозвола за напредне конфигурације." @@ -3662,6 +3720,9 @@ "manageUsers": { "message": "Управљај корисницима" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "Морате ручно да онемогућите аутентификацију јединствене пријаве пре него што ова политика може да се онемогући." }, @@ -3748,6 +3809,10 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { "message": "Наведени датум истицања није исправан." }, @@ -3762,5 +3827,68 @@ }, "dateParsingError": { "message": "Појавила се грешка при снимању датума брисања и истицања." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/sv/messages.json b/locales/sv/messages.json index fb62f535..8901125e 100644 --- a/locales/sv/messages.json +++ b/locales/sv/messages.json @@ -725,6 +725,15 @@ "u2fTitle": { "message": "FIDO U2F-säkerhetsnyckel" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "E-post" }, @@ -800,10 +809,10 @@ "message": "Denna export innehåller ditt valv i ett okrypterat format. Du bör inte lagra eller skicka den exporterade filen över osäkra kanaler (t.ex. e-post). Radera den omedelbart när du är färdig med den." }, "encExportKeyWarningDesc": { - "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + "message": "Denna export krypterar dina data med kontots krypteringsnyckel. Om du någonsin roterar kontots krypteringsnyckel bör du exportera igen eftersom du inte kommer att kunna dekryptera denna exportfil." }, "encExportAccountWarningDesc": { - "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + "message": "Kypteringsnycklar är unika för varje Bitwarden-konto, så du kan inte importera en krypterad export till ett annat konto." }, "exportMasterPassword": { "message": "Ange ditt huvudlösenord för att exportera ditt valv." @@ -1004,16 +1013,16 @@ "message": "Importera data" }, "importError": { - "message": "Import Error" + "message": "Fel vid import" }, "importErrorDesc": { - "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + "message": "Det uppstod ett problem med datan du försökte importera. Lös nedanstående fel i källfilen och försök igen." }, "importSuccess": { "message": "Data har importerats till ditt valv." }, "importWarning": { - "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "message": "Du importerar data till $ORGANIZATION$. Din data kan komma att delas med medlemmar i den här organisationen. Vill du fortsätta?", "placeholders": { "organization": { "content": "$1", @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "NFC-stöd" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "Är du säker på att du vill ta bort denna säkerhetsnyckel?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Läs nyckel" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "Det gick inte att läsa säkerhetsnyckeln. Försök igen." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Din återställningskod för tvåstegsverifiering" }, @@ -1382,7 +1409,7 @@ "message": "Inloggningar utan 2FA hittades" }, "inactive2faFoundDesc": { - "message": "Vi hittade $COUNT$ webbplats(er) i ditt valv som kanske inte har tvåstegsverifiering konfigurerat (enligt twofactorauth.org). För att skydda dessa konton ytterligare bör du aktivera tvåstegsverifiering.", + "message": "Vi hittade $COUNT$ webbplats(er) i ditt valv som kanske inte har tvåstegsverifiering konfigurerat (enligt 2fa.directory). För att skydda dessa konton ytterligare bör du aktivera tvåstegsverifiering.", "placeholders": { "count": { "content": "$1", @@ -1584,7 +1611,7 @@ "message": "Ytterligare alternativ för tvåstegsverifiering såsom YubiKey, FIDO U2F och Duo." }, "premiumSignUpEmergency": { - "message": "Emergency Access" + "message": "Nödåtkomst" }, "premiumSignUpReports": { "message": "Lösenordshygien, kontohälsa och dataintrångsrapporter för att skydda ditt valv." @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "Det gick inte att verifiera din e-postadress. Prova att skicka ett nytt verifieringsmeddelande." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Uppdatera webbläsaren" }, @@ -3334,28 +3367,28 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "whatTypeOfSend": { - "message": "Vilken typ av försändelse är detta?", + "message": "Vilken typ av försändelse är det här?", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deletionDate": { "message": "Raderingsdatum" }, "deletionDateDesc": { - "message": "Försändelsen kommer att raderas permanent på den angivna tiden, det angivna datumet.", + "message": "Försändelsen kommer att raderas permanent på angivet datum och tid.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "expirationDate": { "message": "Utgångsdatum" }, "expirationDateDesc": { - "message": "Om angivet kommer åtkomst till denna försändelse upphöra på det angivna datumet, den angivna tiden.", + "message": "Om angivet kommer åtkomst till denna försändelse upphöra på angivet datum och tid.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "maxAccessCount": { "message": "Maximalt antal åtkomster" }, "maxAccessCountDesc": { - "message": "Om angivet kommer användare inte längre komma åt denna försändelse när den maximala antalet åtkomster har uppnåtts.", + "message": "Om angivet kommer användare inte längre komma åt denna försändelse när det maximala antalet åtkomster har uppnåtts.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "currentAccessCount": { @@ -3389,6 +3422,9 @@ "removePasswordConfirmation": { "message": "Är du säker på att du vill ta bort lösenordet?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "Inaktivera denna försändelse så att ingen kan komma åt den.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -3429,7 +3465,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "missingSendFile": { - "message": "The file associated with this Send could not be found.", + "message": "Den här försändelsens associerade fil kunde inte hittas.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "noSendsInList": { @@ -3443,7 +3479,7 @@ "message": "Bevilja och hantera åtkomst för betrodda kontakter i nödsituationer. Betrodda kontakter kan begära att antingen visa eller ta över ditt konto vid en nödsituation. Besök vår hjälpsida för mer information och information om hur delning utan kännedom fungerar." }, "emergencyAccessOwnerWarning": { - "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + "message": "Du är ägare till en eller flera organisationer. Om du ger tillgång till en nödkontakt kommer de att kunna använda alla dina behörigheter som ägare efter ett övertagande." }, "trustedEmergencyContacts": { "message": "Betrodda nödkontakter" @@ -3591,21 +3627,43 @@ "message": "På grund av en av företagets policyer är du begränsad från att spara objekt till ditt personliga valv. Ändra ägarskap till en organisation och välj från tillgängliga samlingar." }, "disableSend": { - "message": "Disable Send" + "message": "Inaktivera försändelser" }, "disableSendPolicyDesc": { - "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "message": "Tillåt inte användare att skapa eller redigera försändelser. Att radera existerande försändelser kommer fortfarande vara tillåtet.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disableSendExemption": { - "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + "message": "Användare som kan hantera organisationens policyer är berörs inte av den här policyn." }, "sendDisabled": { - "message": "Send disabled", + "message": "Försändelser inaktiverade", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { - "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "message": "På grund av en företagspolicy kan du bara radera befintliga försändelser.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "modifiedPolicyId": { @@ -3662,6 +3720,9 @@ "manageUsers": { "message": "Hantera användare" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "Du måste inaktivera policyn \"Autentisering med Single Sign-On\" manuellt innan denna policy kan inaktiveras." }, @@ -3676,71 +3737,71 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNameDesc": { - "message": "A friendly name to describe this Send.", + "message": "Ett användarvänligt namn för att beskriva denna försändelse.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTextDesc": { - "message": "The text you want to send." + "message": "Texten du vill skicka." }, "sendFileDesc": { - "message": "The file you want to send." + "message": "Filen du vill skicka." }, "copySendLinkOnSave": { - "message": "Copy the link to share this Send to my clipboard upon save." + "message": "Kopiera länken för att dela den här försändelsen när den har sparats." }, "sendLinkLabel": { - "message": "Send link", + "message": "Försändelselänk", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "send": { - "message": "Send", + "message": "Försändelse", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineProductDesc": { - "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "message": "Försändelser överför känslig, tillfällig information till andra på ett enkelt och säkert sätt.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineLearnMore": { - "message": "Learn more about", + "message": "Läs mer om", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" }, "sendVaultCardProductDesc": { - "message": "Share text or files directly with anyone." + "message": "Dela text eller filer direkt med vem som helst." }, "sendVaultCardLearnMore": { - "message": "Learn more", + "message": "Läs mer", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" }, "sendVaultCardSee": { - "message": "see", + "message": "se", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" }, "sendVaultCardHowItWorks": { - "message": "how it works", + "message": "hur det fungerar", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" }, "sendVaultCardOr": { - "message": "or", + "message": "eller", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" }, "sendVaultCardTryItNow": { - "message": "try it now", + "message": "prova det nu", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" }, "sendAccessTaglineOr": { - "message": "or", + "message": "eller", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" }, "sendAccessTaglineSignUp": { - "message": "sign up", + "message": "registrera dig", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" }, "sendAccessTaglineTryToday": { - "message": "to try it today.", + "message": "att prova det idag.", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" }, "sendCreatorIdentifier": { - "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "message": "Bitwarden-användaren $USER_IDENTIFIER$ delade följande med dig", "placeholders": { "user_identifier": { "content": "$1", @@ -3748,19 +3809,86 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { - "message": "The expiration date provided is not valid." + "message": "Det angivna utgångsdatumet är inte giltigt." }, "deletionDateIsInvalid": { - "message": "The deletion date provided is not valid." + "message": "Det angivna raderingsdatumet är inte giltigt." }, "expirationDateAndTimeRequired": { - "message": "An expiration date and time are required." + "message": "Ett utgångsdatum och tid krävs." }, "deletionDateAndTimeRequired": { - "message": "A deletion date and time are required." + "message": "Ett raderingsdatum och tid krävs." }, "dateParsingError": { - "message": "There was an error saving your deletion and expiration dates." + "message": "Det gick inte att spara raderings- och utgångsdatum." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/tr/messages.json b/locales/tr/messages.json index dc82caf5..e161c275 100644 --- a/locales/tr/messages.json +++ b/locales/tr/messages.json @@ -709,10 +709,10 @@ "message": "YubiKey OTP güvenlik anahtarı" }, "yubiKeyDesc": { - "message": "Hesabınıza erişmek için bir YubiKey kullanın. YubiKey 4 serisi, 5 serisi ve NEO cihazlarıyla çalışır." + "message": "Hesabınıza erişmek için YubiKey kullanabilirsiniz. YubiKey 4 serisi, 5 serisi ve NEO cihazlarıyla çalışır." }, "duoDesc": { - "message": "Duo Security ile doğrulama için Duo Mobile uygulaması, SMS, telefon görüşmesi veya U2F güvenlik anahtarını kullanın.", + "message": "Duo Security ile doğrulama için Duo Mobile uygulaması, SMS, telefon araması veya U2F güvenlik anahtarını kullanın.", "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." }, "duoOrganizationDesc": { @@ -725,6 +725,15 @@ "u2fTitle": { "message": "FIDO U2F güvenlik anahtarı" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "E-posta" }, @@ -744,13 +753,13 @@ "message": "Bu kaydı paylaşmak istediğiniz kuruluşu seçin. Paylaştığınız kaydın sahipliği seçtiğiniz kuruluşa aktarılacak. Artık bu kaydın doğrudan sahibi olmayacaksınız." }, "shareManyDesc": { - "message": "Choose an organization that you wish to share these items with. Sharing transfers ownership of the items to the organization. You will no longer be the direct owner of these items once they have been shared." + "message": "Bu kayıtları paylaşmak istediğiniz kuruluşu seçin. Paylaştığınız kayıtların sahipliği seçtiğiniz kuruluşa aktarılacak. Artık bu kayıtların doğrudan sahibi olmayacaksınız." }, "collectionsDesc": { - "message": "Edit the collections that this item is being shared with. Only organization users with access to these collections will be able to see this item." + "message": "Bu nesnenin şu anda paylaşıldığı koleksiyonları düzenler. Kurumdaki kullanıcılardan yalnızca bu koleksiyonlara erişimi olanlar bu nesneyi görebilirler." }, "deleteSelectedItemsDesc": { - "message": "Silmek için $COUNT$ öge seçtiniz. Bu ögelerin tamamını silmek istediğinize emin misiniz?", + "message": "Silinmek üzere $COUNT$ kayıt seçtiniz. Bu kayıtların hepsini silmek istediğinizden emin misiniz?", "placeholders": { "count": { "content": "$1", @@ -759,7 +768,7 @@ } }, "moveSelectedItemsDesc": { - "message": "$COUNT$ seçili ögeyi taşımak istediğiniz klasörü seçin.", + "message": "Seçtiğiniz $COUNT$ kaydı taşımak istediğiniz klasörü seçin.", "placeholders": { "count": { "content": "$1", @@ -768,7 +777,7 @@ } }, "shareSelectedItemsCountDesc": { - "message": "$COUNT$ öge seçtiniz. $SHAREABLE_COUNT$ öge paylaşılabilir, $NONSHAREABLE_COUNT$ paylaşılamaz.", + "message": "$COUNT$ kayıt seçtiniz. Bunlardan $SHAREABLE_COUNT$ tanesi paylaşılabilir, $NONSHAREABLE_COUNT$ tanesi paylaşılamaz.", "placeholders": { "count": { "content": "$1", @@ -800,10 +809,10 @@ "message": "Dışa aktarılan dosyadaki verileriniz şifrelenmemiş olacak. Bu dosyayı güvensiz yöntemlerle (örn. e-posta) göndermemeli ve saklamamalısınız. İşiniz bittikten sonra dosyayı hemen silin." }, "encExportKeyWarningDesc": { - "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + "message": "Dışa aktardığınız bu dosyadaki verileriniz, hesabınızın şifreleme anahtarıyla şifrelenir. Hesabınızın şifreleme anahtarını değiştirirseniz bu dosyanın şifresi çözülemez hale gelir, dolayısıyla dosyayı yeniden dışa aktarmanız gerekir." }, "encExportAccountWarningDesc": { - "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + "message": "Hesap şifreleme anahtarları her Bitwarden kullanıcı hesabı için farklıdır. Dolayısıyla şifrelenmiş bir dışa aktarmayı başka bir hesapta içe aktaramazsınız." }, "exportMasterPassword": { "message": "Kasadaki verilerinizi dışa aktarmak için ana parolanızı girin." @@ -875,7 +884,7 @@ "message": "Kod" }, "changeEmailDesc": { - "message": "$EMAIL$ adresine doğrulama kodu gönderdik. Kod için E-postanızı kontrol edin ve E-posta değişikliğini tamamlamak için aşağıya girin.", + "message": "$EMAIL$ adresine bir doğrulama kodu gönderdik. E-posta adresi değişikliğinizi tamamlamak için lütfen gönderdiğimiz kodu aşağıya yazın.", "placeholders": { "email": { "content": "$1", @@ -884,7 +893,7 @@ } }, "loggedOutWarning": { - "message": "Devam etmek geçerli oturumunuzu sonlandıracaktır, bu da tekrar oturum açmanızı gerektirecektir. Diğer cihazlardaki aktif oturumlar bir saat kadar aktif kalmaya devam edebilir." + "message": "Devam ederseniz geçerli oturumunuz sonlanacak ve yeniden oturum açmanız gerekecek. Diğer cihazlardaki aktif oturumlar bir saate kadar aktif kalabilir." }, "emailChanged": { "message": "E-posta değiştirildi" @@ -893,7 +902,7 @@ "message": "Lütfen yeniden giriş yapın." }, "logBackInOthersToo": { - "message": "Lütfen tekrar giriş yapın. Diğer Bitwarden uygulamalarını kullanıyorsanız oturumu kapatın ve tekrar giriş yapın." + "message": "Lütfen yeniden oturum açın. Diğer Bitwarden uygulamalarını kullanıyorsanız onlarda da oturumunuzu kapatıp yeniden açın." }, "changeMasterPassword": { "message": "Ana parolayı değiştir" @@ -917,10 +926,10 @@ "message": "KDF algoritması" }, "kdfIterations": { - "message": "KDF Yinelemesi" + "message": "KDF iterasyonu" }, "kdfIterationsDesc": { - "message": "Daha yüksek KDF yinelemeleri, ana şifrenizin saldırgan tarafından sürekli denenerek kırılmasından korunmaya yardımcı olabilir. $VALUE$ veya üzeri bir değer tavsiye ediyoruz.", + "message": "KDF iterasyonunun daha yüksek olması ana parolanızın kaba kuvvet yoluyla kırılmasını önleyebilir. $VALUE$ veya üzeri bir değer tavsiye ediyoruz.", "placeholders": { "value": { "content": "$1", @@ -929,7 +938,7 @@ } }, "kdfIterationsWarning": { - "message": "KDF yinelemelerinizi çok yüksek ayarlamak, daha yavaş CPU'ya sahip cihazlarda Bitwarden'e giriş yaparken (ve kilidi açarken) düşük performansa neden olabilir. Değeri $INCREMENT$ artışlarla artırmanızı ve ardından tüm cihazlarınızı test etmenizi tavsiye ediyoruz.", + "message": "KDF iterasyonunu çok yüksek ayarlamak, işlemcisi yavaş olan cihazlardan Bitwarden'a giriş yaparken (ve kilidi açarken) düşük performansa neden olabilir. Değeri $INCREMENT$ ve katları halinde artırmanızı ve ardından tüm cihazlarınızda test etmenizi öneririz.", "placeholders": { "increment": { "content": "$1", @@ -938,19 +947,19 @@ } }, "changeKdf": { - "message": "KDF'yi değiştir" + "message": "KDF'i değiştir" }, "encKeySettingsChanged": { - "message": "Şifreleme Anahtarı Ayarları Değişti" + "message": "Şifreleme anahtarı ayarları değişti" }, "dangerZone": { - "message": "Tehlikeli Alan" + "message": "Tehlikeli Bölge" }, "dangerZoneDesc": { - "message": "Dikkatli olun, bu eylemler geri alınamaz!" + "message": "Dikkatli olun, bu işlemleri geri alamazsınız!" }, "deauthorizeSessions": { - "message": "Oturumları Kapat" + "message": "Oturumları kapat" }, "deauthorizeSessionsDesc": { "message": "Başka bir cihazda oturum açtığınızdan endişeli misiniz? Daha önce kullandığınız tüm cihazlardan oturumu kapatmak için aşağıdan ilerleyin. Bu özellik halka açık bilgisayar kullanırsanız ya da sahibi olmadığınız cihazda giriş yaparsanız önerilir. Önceden iki aşamalı giriş ile oturum açılan hesaplar da kapatılacaktır." @@ -971,7 +980,7 @@ "message": "Kasanızdaki tüm ögeleri ve klasörleri silmek için aşağıdan ilerleyin. Kuruluş ile paylaştığınız ögeler silinmez." }, "purgeOrgVaultDesc": { - "message": "Kuruluş kasasındaki tüm ögeleri silmek için aşağıdan ilerleyin." + "message": "Kuruluş kasasındaki tüm kayıtları silmek için aşağıdaki adımları izleyin." }, "purgeVaultWarning": { "message": "Kasanızı silmek kalıcıdır. Bu işlem geri alınamaz." @@ -980,16 +989,16 @@ "message": "Kasanız silindi." }, "deleteAccount": { - "message": "Hesabı Sil" + "message": "Hesabı sil" }, "deleteAccountDesc": { - "message": "Hesabınızı ve ilişkili tüm verileri silmek için aşağıya devam edin." + "message": "Hesabınızı ve tüm ilişkili verileri silmek için aşağıdan devam edin." }, "deleteAccountWarning": { "message": "Hesabınızı silmek kalıcıdır. Geri alınamaz." }, "accountDeleted": { - "message": "Hesap Silindi" + "message": "Hesap silindi" }, "accountDeletedDesc": { "message": "Hesabınız kapatıldı ve ilişkili tüm veriler silindi." @@ -1004,16 +1013,16 @@ "message": "Verileri içe aktar" }, "importError": { - "message": "Import Error" + "message": "İçe aktarma hatası" }, "importErrorDesc": { - "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + "message": "İçe aktarmaya çalıştığınız verilerle ilgili bir problem var. Lütfen kaynak dosyanızdaki aşağıda belirtilen hataları çözüp tekrar deneyin." }, "importSuccess": { "message": "Veriler kasanıza başarıyla aktarıldı." }, "importWarning": { - "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "message": "$ORGANIZATION$ kuruluşuna veri aktarıyorsunuz. Verileriniz bu kuruluşun üyeleriyle paylaşılabilir. Devam etmek istiyor musunuz?", "placeholders": { "organization": { "content": "$1", @@ -1028,13 +1037,13 @@ "message": "Hiçbir şey içe aktarılmadı." }, "selectFormat": { - "message": "İçe aktarma dosyasının formatını seçin" + "message": "İçe aktarma dosyasının biçimini seçin" }, "selectImportFile": { "message": "İçe aktarma dosyasını seçin" }, "orCopyPasteFileContents": { - "message": "ya da içe aktarma dosyasının içeriğini kopyala/yapıştırın" + "message": "veya içe aktarma dosyasının içeriğini kopyalayıp yapıştırın" }, "instructionsFor": { "message": "$NAME$ Talimatları", @@ -1059,27 +1068,27 @@ "message": "Dil" }, "languageDesc": { - "message": "Web kasası tarafından kullanılan dili değiştirin." + "message": "Web kasasında kullanılan dili değiştirin." }, "disableIcons": { "message": "Site simgelerini devre dışı bırak" }, "disableIconsDesc": { - "message": "Web Sitesi Simgeleri, kasanızdaki her giriş bilgisinin yanında o siteyi tanımanıza yardımcı olacak bir simge gösterir." + "message": "Web sitesi simgeleri, kasanızdaki her kaydın yanında o siteyi tanımanıza yardımcı olan bir resim sunar." }, "enableGravatars": { "message": "Gravatar'ı etkinleştir", "description": "'Gravatar' is the name of a service. See www.gravatar.com" }, "enableGravatarsDesc": { - "message": "gravatar.com adresinden yüklenen avatarları kullanın." + "message": "gravatar.com adresinden yüklenen avatarları kullan." }, "enableFullWidth": { - "message": "Tam Genişlik Düzenini Etkinleştir", + "message": "Tam genişlik görünümünü etkinleştir", "description": "Allows scaling the web vault UI's width" }, "enableFullWidthDesc": { - "message": "Web kasasının tarayıcı penceresini tam genişliğinde kullanmasına izin verin." + "message": "Web kasasının tarayıcı penceresi genişliğinin tamamını kullanmasına izin ver." }, "default": { "message": "Varsayılan" @@ -1091,10 +1100,10 @@ "message": "Birden fazla farklı web sitesi alan adında aynı giriş bilgisine sahipseniz, web sitesini \"eşdeğer\" olarak işaretleyebilirsiniz. \"Global\" alan adları, sizin için Bitwarden tarafından oluşturulmuş olanlardır." }, "globalEqDomains": { - "message": "Global Eşdeğer Alan Adları" + "message": "Global eşdeğer alan adları" }, "customEqDomains": { - "message": "Özel Eşdeğer Alan Adları" + "message": "Özel eşdeğer alan adları" }, "exclude": { "message": "Hariç tut" @@ -1127,10 +1136,10 @@ "message": "İki aşamalı giriş" }, "twoStepLoginDesc": { - "message": "Oturum açarken ek bir adım talep ederek hesabınızı güvenceye alın." + "message": "Oturum açarken ek bir adım talep ederek hesabınızı güvenceye alabilirsiniz." }, "twoStepLoginOrganizationDesc": { - "message": "Require two-step login for your organization's users by configuring providers at the organization level." + "message": "Kurum düzeyinde sağlayıcıları düzenleyerek kurumuzun kullanıcılarına iki aşamalı girişi zorunlu kılın." }, "twoStepLoginRecoveryWarning": { "message": "İki aşamalı girişi etkinleştirmek, Bitwarden hesabınızı kalıcı olarak kilitleyebilir. Kurtarma kodunuz, iki aşamalı giriş sağlayıcınızı kullanamamanız durumunda hesabınıza erişmenize olanak sağlar (ör. cihazınızı kaybedersiniz). Hesabınıza erişiminizi kaybederseniz Bitwarden desteği size yardımcı olamaz. Kurtarma kodunu yazmanızı veya yazdırmanızı ve güvenli bir yerde saklamanızı öneririz." @@ -1165,7 +1174,7 @@ "message": "Premium erişiminiz var" }, "alreadyPremiumFromOrg": { - "message": "Üyesi olduğunuz bir organizasyon nedeniyle premium özelliklere zaten erişiminiz var." + "message": "Üyesi olduğunuz kuruluş sayesinde premium özelliklere zaten erişiminiz var." }, "manage": { "message": "Yönet" @@ -1174,19 +1183,19 @@ "message": "Devre dışı bırak" }, "twoStepLoginProviderEnabled": { - "message": "Bu iki adımlı giriş sağlayıcısı hesabınızda etkin durumda." + "message": "Bu iki aşamalı giriş sağlayıcısı hesabınızda etkin durumda." }, "twoStepLoginAuthDesc": { "message": "İki aşamalı giriş ayarlarını değiştirmek için ana parolanızı girin." }, "twoStepAuthenticatorDesc": { - "message": "Kimlik doğrulayıcı bir uygulamayla iki adımlı oturum açmayı ayarlamak için şu adımları izleyin:" + "message": "Kimlik doğrulama uygulamasıyla iki aşamalı girişi ayarlamak için aşağıdaki adımları izleyin:" }, "twoStepAuthenticatorDownloadApp": { - "message": "İki adımlı bir kimlik doğrulama uygulaması indirin" + "message": "İki aşamalı kimlik doğrulama uygulamalarından birini indirin" }, "twoStepAuthenticatorNeedApp": { - "message": "İki adımlı bir kimlik doğrulama uygulamasına mı ihtiyacınız var? Aşağıdakilerden birini indirin" + "message": "Kimlik doğrulama uygulamasına mı ihtiyacınız var? Aşağıdakilerden birini indirebilirsiniz" }, "iosDevices": { "message": "iOS cihazları" @@ -1198,7 +1207,7 @@ "message": "Windows cihazları" }, "twoStepAuthenticatorAppsRecommended": { - "message": "Bu uygulamalar önerilir, ancak diğer kimlik doğrulayıcı uygulamalar da çalışacaktır." + "message": "Bunlar bizim önerdiğimiz uygulamalar ama farklı kimlik doğrulama uygulamaları da kullanabilirsiniz." }, "twoStepAuthenticatorScanCode": { "message": "Bu QR kodunu kimlik doğrulama uygulamanızla tarayın" @@ -1207,16 +1216,16 @@ "message": "Anahtar" }, "twoStepAuthenticatorEnterCode": { - "message": "Uygulamadan gelen 6 basamaklı doğrulama kodunu girin" + "message": "Uygulamanın verdiği 6 basamaklı doğrulama kodunu girin" }, "twoStepAuthenticatorReaddDesc": { "message": "Başka bir cihaza eklemeniz gerekirse, aşağıda kimlik doğrulama uygulamanızın gerektirdiği QR kodu (veya anahtarı) verilmiştir." }, "twoStepDisableDesc": { - "message": "Bu iki adımlı giriş sağlayıcısını devre dışı bırakmak istediğinize emin misiniz?" + "message": "Bu iki aşamalı giriş sağlayıcısını devre dışı bırakmak istediğinize emin misiniz?" }, "twoStepDisabled": { - "message": "İki adım oturum açma sağlayıcısı devre dışı." + "message": "İki aşamalı giriş sağlayıcısı devre dışı." }, "twoFactorYubikeyAdd": { "message": "Hesabıma yeni bir YubiKey ekle" @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "NFC desteği" }, @@ -1285,16 +1303,16 @@ "message": "Gizli anahtar" }, "twoFactorDuoApiHostname": { - "message": "API Hostname" + "message": "API sunucusu" }, "twoFactorEmailDesc": { - "message": "E-posta ile iki adımlı oturum açmayı ayarlamak için şu adımları izleyin:" + "message": "E-posta ile iki aşamalı girişi kurmak için aşağıdaki adımları izleyin:" }, "twoFactorEmailEnterEmail": { "message": "Doğrulama kodlarını almak istediğiniz e-posta adresini girin" }, "twoFactorEmailEnterCode": { - "message": "E-posta adresine gelen 6 basamaklı doğrulama kodunu girin" + "message": "E-postadaki 6 basamaklı doğrulama kodunu girin" }, "sendEmail": { "message": "E-posta gönder" @@ -1305,8 +1323,11 @@ "removeU2fConfirmation": { "message": "Bu güvenlik anahtarını kaldırmak istediğinizden emin misiniz?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { - "message": "Anahtarı Oku" + "message": "Anahtarı oku" }, "keyCompromised": { "message": "Anahtar ele geçirilmiş." @@ -1315,7 +1336,7 @@ "message": "Güvenlik anahtarını tanımlamak için kolay bir isim verin." }, "twoFactorU2fPlugInReadKey": { - "message": "Güvenlik anahtarını bilgisayarınızın USB portuna takın ve \"Anahtarı Oku\" düğmesine tıklayın." + "message": "Güvenlik anahtarını bilgisayarınızın USB portuna takıp \"Anahtarı oku\" düğmesine tıklayın." }, "twoFactorU2fTouchButton": { "message": "Güvenlik anahtarının düğmesi varsa düğmeye dokunun." @@ -1333,11 +1354,17 @@ "message": "Güvenlik anahtarınızdaki düğmeye dokunmanız bekleniyor" }, "twoFactorU2fClickSave": { - "message": "İki adımlı giriş için bu güvenlik anahtarını etkinleştirmek için aşağıdaki \"Kaydet\" butonuna tıklayın." + "message": "Bu güvenlik anahtarıyla iki aşamalı girişi etkinleştirmek için aşağıdaki \"Kaydet\" düğmesine tıklayın." }, "twoFactorU2fProblemReadingTryAgain": { "message": "Güvenlik anahtarını okurken bir sorun oluştu. Tekrar deneyin." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Bitwarden iki aşamalı giriş kurtarma kodunuz" }, @@ -1352,13 +1379,13 @@ "message": "Raporlar" }, "unsecuredWebsitesReport": { - "message": "Güvenli Olmayan Web Siteler Raporu" + "message": "Güvensiz Web Siteler Raporu" }, "unsecuredWebsitesReportDesc": { "message": "http:// şemasına sahip güvenli olmayan web sitelerini kullanmak tehlikeli olabilir. Web sitesi izin veriyorsa, bağlantınızın şifrelenmesi için her zaman https:// şemasını kullanarak erişmelisiniz." }, "unsecuredWebsitesFound": { - "message": "Güvenli Olmayan Web Siteler Bulundu" + "message": "Güvensiz web siteleri bulundu" }, "unsecuredWebsitesFoundDesc": { "message": "Kasanızda güvenli olmayan URI'ye sahip $COUNT$ öge bulduk. Web sitesi izin veriyorsa, URI şemasını https:// olarak değiştirmelisiniz.", @@ -1436,7 +1463,7 @@ "message": "Zayıf parolalar bilgisayar korsanları ve onları kırmak için kullanılan otomatik araçlar tarafından kolayca tahmin edilebilir. Bitwarden şifre üreticisi, güçlü şifreler oluşturmanıza yardımcı olabilir." }, "weakPasswordsFound": { - "message": "Zayıf Parolalar Bulundu" + "message": "Zayıf parolalar pulundu" }, "weakPasswordsFoundDesc": { "message": "Kasanızda güçlü olmayan parolalara sahip $COUNT$ öge bulduk. Daha güçlü şifreler kullanmaları için bunları güncellemelisiniz.", @@ -1448,7 +1475,7 @@ } }, "noWeakPasswords": { - "message": "Kasanızdaki hiçbir ögenin zayıf şifresi yoktur." + "message": "Kasanızdaki hiçbir kaydın parolası zayıf değil." }, "reusedPasswordsReport": { "message": "Yeniden Kullanılmış Parolalar Raporu" @@ -1472,7 +1499,7 @@ "message": "Kasanızdaki hiçbir hesap, yeniden kullanılmakta olan parolalara sahip değildir." }, "reusedXTimes": { - "message": "$COUNT$ defa yeniden kullanıldı", + "message": "$COUNT$ kere yeniden kullanılmış", "placeholders": { "count": { "content": "$1", @@ -1490,7 +1517,7 @@ "message": "Kullandığınız kullanıcı adlarını veya e-posta adreslerini kontrol edin." }, "checkBreaches": { - "message": "İhlalleri Kontrol Et" + "message": "İhlalleri denetle" }, "breachUsernameNotFound": { "message": "$USERNAME$ bilinen veri ihlallerinde bulunamadı.", @@ -1502,7 +1529,7 @@ } }, "goodNews": { - "message": "İyi Haber", + "message": "Haberler iyi", "description": "ex. Good News, No Breached Accounts Found!" }, "breachUsernameFound": { @@ -1568,7 +1595,7 @@ "message": "Hesabınızın kredisi, satın almalarda kullanılabilir. Kullanılabilir herhangi bir kredi, bu hesap için oluşturulan faturalara otomatik olarak uygulanacaktır." }, "goPremium": { - "message": "Premium'a Geç", + "message": "Premium'a geçin", "description": "Another way of saying \"Get a premium membership\"" }, "premiumUpdated": { @@ -1578,13 +1605,13 @@ "message": "Hesabınızı premium üyeliğe yükseltin ve bazı harika ek özelliklerin kilidini açın." }, "premiumSignUpStorage": { - "message": "Dosyalarınız için 1GB şifreli depolama." + "message": "Dosya ekleri için 1 GB şifrelenmiş depolama." }, "premiumSignUpTwoStep": { - "message": "YubiKey, FIDO U2F ve Duo gibi ilave iki adımlı oturum açma seçenekleri." + "message": "YubiKey, FIDO U2F ve Duo gibi iki aşamalı giriş seçenekleri." }, "premiumSignUpEmergency": { - "message": "Emergency Access" + "message": "Acil durum erişimi" }, "premiumSignUpReports": { "message": "Kasanızı güvende tutmak için parola hijyeni, hesap sağlığı ve veri ihlali raporları." @@ -1690,7 +1717,7 @@ "message": "Ödeme Bilgileri" }, "billingInformation": { - "message": "Faturalandırma Bilgisi" + "message": "Fatura Bilgileri" }, "creditCard": { "message": "Kredi kartı" @@ -1723,7 +1750,7 @@ "message": "İptal etmek istediğinden emin misin? Bu faturalandırma döneminin sonunda bu aboneliğin tüm özelliklerine erişiminizi kaybedeceksiniz." }, "canceledSubscription": { - "message": "Abonelik İptal Edildi." + "message": "Abonelik iptal edildi." }, "neverExpires": { "message": "Asla Sona Ermez" @@ -1753,10 +1780,10 @@ "message": "Depolama" }, "addStorage": { - "message": "Depolama Ekle" + "message": "Depolama ekle" }, "removeStorage": { - "message": "Depolamayı Kaldır" + "message": "Depolama azalt" }, "subscriptionStorage": { "message": "\nAboneliğinizin toplam $MAX_STORAGE$ GB şifreli dosya depolama alanı var. Şu anda $USED_STORAGE $ kullanıyorsunuz.", @@ -1986,7 +2013,7 @@ } }, "limitedCollections": { - "message": "$COUNT$ koleksiyonla sınırlıdır", + "message": "$COUNT$ koleksiyonla sınırlı", "placeholders": { "count": { "content": "$1", @@ -2010,7 +2037,7 @@ "message": "Sınırsız koleksiyon oluştur" }, "gbEncryptedFileStorage": { - "message": "$SIZE$ şifreli dosya depolama", + "message": "$SIZE$ şifrelenmiş dosya depolama", "placeholders": { "size": { "content": "$1", @@ -2109,16 +2136,16 @@ "message": "Grup ekle" }, "editGroup": { - "message": "Grubu Düzenle" + "message": "Grubu düzenle" }, "deleteGroupConfirmation": { "message": "Bu grubu silmek isteğinizden emin misiniz?" }, "removeUserConfirmation": { - "message": "Bu kullanıcıyı kaldırmak için emin misiniz?" + "message": "Bu kullanıcıyı silmek istediğinizden emin misiniz?" }, "externalId": { - "message": "Harici Kimlik" + "message": "Harici kimlik" }, "externalIdDesc": { "message": "Harici kimlik, referans olarak veya bu kaynağı kullanıcı dizini gibi harici bir sisteme bağlamak için kullanılabilir." @@ -2136,22 +2163,22 @@ "message": "Salt Okunur" }, "newCollection": { - "message": "Yeni Koleksiyon" + "message": "Yeni koleksiyon" }, "addCollection": { - "message": "Koleksiyon Ekle" + "message": "Koleksiyon ekle" }, "editCollection": { - "message": "Koleksiyonu Düzenle" + "message": "Koleksiyonu düzenle" }, "deleteCollectionConfirmation": { "message": "Bu koleksiyonu silmek istediğinizden emin misiniz?" }, "editUser": { - "message": "Kullanıcı Düzenle" + "message": "Kullanıcıyı düzenle" }, "inviteUser": { - "message": "Kullanıcı Davet Et" + "message": "Kullanıcı davet et" }, "inviteUserDesc": { "message": "Invite a new user to your organization by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." @@ -2178,10 +2205,10 @@ "message": "Ara" }, "invited": { - "message": "Davetli" + "message": "Davet edildi" }, "accepted": { - "message": "Kadul Edildi" + "message": "Kabul etti" }, "confirmed": { "message": "Onaylandı" @@ -2526,7 +2553,7 @@ } }, "device": { - "message": "Aygıt" + "message": "Cihaz" }, "view": { "message": "Görüntüle" @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "E-posta hesabı doğrulanamadı. Yeniden doğrulama e-postası göndermeyi dene." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Tarayıcıyı güncelle" }, @@ -3306,67 +3339,67 @@ "message": "Metin" }, "createSend": { - "message": "Yeni Gönderi Oluştur", + "message": "Yeni Send oluştur", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "editSend": { - "message": "Göndermeyi Düzenle", + "message": "Send'i düzenle", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "createdSend": { - "message": "Gönderi Oluşturuldu", + "message": "Send oluşturuldu", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "editedSend": { - "message": "Gönderi Düzenlendi", + "message": "Send düzenlendi", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deletedSend": { - "message": "Gönderi Silindi", + "message": "Send silindi", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deleteSend": { - "message": "Gönderiyi Sil", + "message": "Send'i sil", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deleteSendConfirmation": { - "message": "Bu Gönderiyi silmek istediğinizden emin misiniz?", + "message": "Bu Send'i silmek istediğinizden emin misiniz?", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "whatTypeOfSend": { - "message": "Bu ne tür bir Gönderme?", + "message": "Bu ne tür bir Send?", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deletionDate": { - "message": "Silme Tarihi" + "message": "Silinme tarihi" }, "deletionDateDesc": { - "message": "Bu Send belirtilen tarih ve zamanda sonsuza dek silinecek.", + "message": "Bu Send belirtilen tarih ve saatte kalıcı olacak silinecek.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "expirationDate": { - "message": "Son Kullanma Tarihi" + "message": "Son kullanma tarihi" }, "expirationDateDesc": { - "message": "Eğer ayarlanırsa, bu Send'in belirtilen tarih ve zamanda süresi dolacak.", + "message": "Bunu ayarlarsanız belirtilen tarih ve saatten sonra bu Send'e erişilemeyecektir.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "maxAccessCount": { - "message": "Maksimum Gönderi Sayısı" + "message": "Maksimum erişim sayısı" }, "maxAccessCountDesc": { - "message": "Eğer ayarlanırsa, kullanıcılar maksimum erişim sayısına ulaşıldığında bu Send'e erişemeyecekler.", + "message": "Bunu ayarlarsanız maksimum erişim sayısına ulaşıldıktan sonra bu Send'e erişilemeyecektir.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "currentAccessCount": { - "message": "Mevcut Erişim Sayısı" + "message": "Mevcut erişim sayısı" }, "sendPasswordDesc": { - "message": "İsteğe bağlı olarak kullanıcıların bu Send'e erişmek için bir parola girmelerini zorunlu kıl.", + "message": "Kullanıcıların bu Send'e erişmek için parola girmelerini isteyebilirsiniz.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNotesDesc": { - "message": "Send hakkındaki özel notlar.", + "message": "Bu Send ile ilgili özel notlar.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disabled": { @@ -3389,6 +3422,9 @@ "removePasswordConfirmation": { "message": "Parolayı kaldırmak istediğinizden emin misiniz?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "Kimsenin erişememesi için bu Send'i devre dışı bırak.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -3429,7 +3465,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "missingSendFile": { - "message": "The file associated with this Send could not be found.", + "message": "Bu Send ile ilişkili dosya bulunamadı.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "noSendsInList": { @@ -3443,7 +3479,7 @@ "message": "Güvenilen kişiler için acil erişim izni ver ve yönet. Güvenilen kişiler acil bir durumda hesabınızı görmek veya devralmak için talepte bulunabilirler. Sıfır bilgi ispatı ile paylaşımının nasıl çalıştığı ile ilgili detaylar için yardım sayfamızı ziyaret edin." }, "emergencyAccessOwnerWarning": { - "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + "message": "Bir ya da birden fazla organizasyonun sahibisiniz. Acil durum kişisine hak devralma yetkisi verirseniz, devralma işleminden sonra sahip olduğunuz tüm hakları kullanabilir." }, "trustedEmergencyContacts": { "message": "Güvenilen acil durum kişileri" @@ -3591,21 +3627,43 @@ "message": "Bir Kurumsal Politika nedeniyle, kişisel kasanıza öğeleri kaydetmeniz kısıtlanmıştır. Sahiplik seçeneğini bir kuruluş olarak değiştirin ve mevcut Koleksiyonlar arasından seçim yapın." }, "disableSend": { - "message": "Disable Send" + "message": "Send'i devre dışı bırak" }, "disableSendPolicyDesc": { - "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "message": "Kullanıcıların bir Bitwarden Send oluşturmasını veya düzenlemesine izin verme. Varolan bir Send'i silmeye gene de izin verilir.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disableSendExemption": { - "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + "message": "Kurum ilkelerini yönetebilen kullanıcılar bu ilkenin uygulanmasından muaf tutulurlar." }, "sendDisabled": { - "message": "Send disabled", + "message": "Send devre dışı bırakıldı", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { - "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "message": "Bir kuruluş ilkesi nedeniyle yalnızca mevcut Send'leri silebilirsiniz.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "modifiedPolicyId": { @@ -3662,11 +3720,14 @@ "manageUsers": { "message": "Kullanıcıları Yönetme" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "Bu ilke devre dışı bırakılmadan önce Tek Giriş Kimlik Doğrulama ilkesini elle devre dışı bırakmanız gerekir." }, "personalOwnershipPolicyInEffect": { - "message": "Bir kurumsal politika sahiplik seçeneklerinizi etkiliyor." + "message": "Bir kuruluş ilkesi sahiplik seçeneklerinizi etkiliyor." }, "personalOwnershipCheckboxDesc": { "message": "Kurum kullanıcıları için kişisel sahipliği kapat" @@ -3676,20 +3737,20 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNameDesc": { - "message": "A friendly name to describe this Send.", + "message": "Bu Send'i açıklayan anlaşılır bir ad.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTextDesc": { - "message": "The text you want to send." + "message": "Göndermek istediğiniz metin." }, "sendFileDesc": { - "message": "The file you want to send." + "message": "Göndermek istediğiniz dosya." }, "copySendLinkOnSave": { - "message": "Copy the link to share this Send to my clipboard upon save." + "message": "Kaydettikten sonra bu Send'i paylaşma linkini panoya kopyala." }, "sendLinkLabel": { - "message": "Send link", + "message": "Send bağlantısı", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "send": { @@ -3697,50 +3758,50 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineProductDesc": { - "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "message": "Bitwarden Send geçici, hassas bilginin diğerlerine kolay ve güvenli iletimini sağlar.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineLearnMore": { - "message": "Learn more about", + "message": "Hakkında daha fazla öğren", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" }, "sendVaultCardProductDesc": { - "message": "Share text or files directly with anyone." + "message": "Herhangi biriyle doğrudan dosya veya yazı paylaşın." }, "sendVaultCardLearnMore": { - "message": "Learn more", + "message": "Daha fazla bilgi edinin", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" }, "sendVaultCardSee": { - "message": "see", + "message": "bkz", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" }, "sendVaultCardHowItWorks": { - "message": "how it works", + "message": "Nasıl çalışır", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" }, "sendVaultCardOr": { - "message": "or", + "message": "ya da", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" }, "sendVaultCardTryItNow": { - "message": "try it now", + "message": "Şimdi deneyin", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" }, "sendAccessTaglineOr": { - "message": "or", + "message": "ya da", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" }, "sendAccessTaglineSignUp": { - "message": "sign up", + "message": "Kaydol", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" }, "sendAccessTaglineTryToday": { - "message": "to try it today.", + "message": "hemen denemek için.", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" }, "sendCreatorIdentifier": { - "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "message": "Bitwarden kullanıcısı $USER_IDENTIFIER$ aşağıdakileri sizinle paylaştı", "placeholders": { "user_identifier": { "content": "$1", @@ -3748,19 +3809,86 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { - "message": "The expiration date provided is not valid." + "message": "Belirtilen son kullanma tarihi geçersiz." }, "deletionDateIsInvalid": { - "message": "The deletion date provided is not valid." + "message": "Belirtilen silinme tarihi geçersiz." }, "expirationDateAndTimeRequired": { - "message": "An expiration date and time are required." + "message": "Son kullanma tarihi ve saati gereklidir." }, "deletionDateAndTimeRequired": { - "message": "A deletion date and time are required." + "message": "Silinme tarihi ve saati gereklidir." }, "dateParsingError": { - "message": "There was an error saving your deletion and expiration dates." + "message": "Silinme ve son kullanma tarihleriniz kaydedilirken bir hata oluştu." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/uk/messages.json b/locales/uk/messages.json index 46656a5c..980c9aaf 100644 --- a/locales/uk/messages.json +++ b/locales/uk/messages.json @@ -725,6 +725,15 @@ "u2fTitle": { "message": "Ключ безпеки FIDO U2F" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "Е-пошта" }, @@ -800,10 +809,10 @@ "message": "Експортовані дані вашого сховища знаходяться в незашифрованому вигляді. Вам не слід зберігати чи надсилати їх через незахищені канали (наприклад, е-поштою). Після використання негайно видаліть їх." }, "encExportKeyWarningDesc": { - "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + "message": "Цей експорт шифрує ваші дані за допомогою ключа шифрування облікового запису. Якщо ви коли-небудь оновите ключ шифрування облікового запису, ви повинні виконати експорт знову, оскільки не зможете розшифрувати цей файл експорту." }, "encExportAccountWarningDesc": { - "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + "message": "Ключі шифрування унікальні для кожного облікового запису користувача Bitwarden, тому ви не можете імпортувати зашифрований експорт до іншого облікового запису." }, "exportMasterPassword": { "message": "Введіть головний пароль, щоб експортувати дані сховища." @@ -1004,16 +1013,16 @@ "message": "Імпорт даних" }, "importError": { - "message": "Import Error" + "message": "Помилка імпорту" }, "importErrorDesc": { - "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + "message": "При спробі імпорту ваших даних виникла проблема. Будь ласка, виправте вказані нижче помилки у вихідному файлі та спробуйте знову." }, "importSuccess": { "message": "Дані успішно імпортовано до вашого сховища." }, "importWarning": { - "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "message": "Ви імпортуєте дані до $ORGANIZATION$. Ваші дані можуть бути доступними учасникам цієї організації. Ви хочете продовжити?", "placeholders": { "organization": { "content": "$1", @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "Підтримка NFC" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "Ви впевнені, що хочете вилучити цей ключ безпеки?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Читати ключ" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "Сталася проблема при читанні ключа безпеки. Спробуйте знову." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Ваш код відновлення двоетапної перевірки Bitwarden" }, @@ -1382,7 +1409,7 @@ "message": "Знайдено записи без двоетапної перевірки" }, "inactive2faFoundDesc": { - "message": "Ми знайшли $COUNT$ вебсайтів у вашому сховищі, що можуть бути не налаштовані для двоетапної перевірки (за даними twofactorauth.org). Для захисту цих облікових записів вам слід активувати двоетапну перевірку.", + "message": "Ми знайшли $COUNT$ вебсайтів у вашому сховищі, що можуть бути не налаштовані для двоетапної перевірки (за даними 2fa.directory). Для захисту цих облікових записів вам слід активувати двоетапну перевірку.", "placeholders": { "count": { "content": "$1", @@ -1584,7 +1611,7 @@ "message": "Додаткові можливості двоетапної перевірки, наприклад, YubiKey, FIDO U2F та Duo." }, "premiumSignUpEmergency": { - "message": "Emergency Access" + "message": "Екстрений доступ" }, "premiumSignUpReports": { "message": "Гігієна паролів, здоров'я облікового запису, а також звіти про вразливості даних, щоб зберігати ваше сховище в безпеці." @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "Неможливо підтвердити вашу е-пошту. Спробуйте надіслати нове повідомлення для підтвердження." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Оновити браузер" }, @@ -3373,7 +3406,7 @@ "message": "Вимкнено" }, "sendLink": { - "message": "Надіслати посилання", + "message": "Посилання на відправлення", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "copySendLink": { @@ -3389,6 +3422,9 @@ "removePasswordConfirmation": { "message": "Ви дійсно хочете вилучити пароль?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "Деактивувати це відправлення для скасування доступу до нього.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -3429,7 +3465,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "missingSendFile": { - "message": "The file associated with this Send could not be found.", + "message": "Не вдається знайти файл, пов'язаний з цим відправленням.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "noSendsInList": { @@ -3443,7 +3479,7 @@ "message": "Надавайте екстрений доступ довіреним контактам і керуйте ним. Довірені контакти можуть отримати доступ для перегляду чи привласнення вашого облікового запису в екстрених ситуаціях. Відвідайте нашу сторінку допомоги для детального ознайомлення про те, як працює спільний доступ нульового рівня." }, "emergencyAccessOwnerWarning": { - "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + "message": "Ви володієте однією чи більше організаціями. Якщо ви надасте доступ для передачі власності екстреним контактам, то вони зможуть використовувати усі ваші повноваження власника після передачі." }, "trustedEmergencyContacts": { "message": "Довірені екстрені контакти" @@ -3591,21 +3627,43 @@ "message": "У зв'язку з корпоративною політикою, вам не дозволено зберігати записи до особистого сховища. Змініть налаштування власності на організацію та виберіть серед доступних збірок." }, "disableSend": { - "message": "Disable Send" + "message": "Вимкнути відправлення" }, "disableSendPolicyDesc": { - "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "message": "Не дозволяти користувачам створювати чи змінювати відправлення Bitwarden. Видалення наявних відправлень все ще дозволяється.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disableSendExemption": { - "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + "message": "Користувачі організації, які можуть керувати політиками організації, звільняються від дотримання цієї політики." }, "sendDisabled": { - "message": "Send disabled", + "message": "Відправлення вимкнено", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { - "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "message": "У зв'язку з політикою компанії, ви можете лише видалити наявне відправлення.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "modifiedPolicyId": { @@ -3662,6 +3720,9 @@ "manageUsers": { "message": "Керування користувачами" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "Для вимкнення цієї політики ви повинні вручну вимкнути політику ідентифікації єдиного входу (SSO)." }, @@ -3676,71 +3737,71 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNameDesc": { - "message": "A friendly name to describe this Send.", + "message": "Опис цього відправлення.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTextDesc": { - "message": "The text you want to send." + "message": "Текст, який ви хочете відправити." }, "sendFileDesc": { - "message": "The file you want to send." + "message": "Файл, який ви хочете відправити." }, "copySendLinkOnSave": { - "message": "Copy the link to share this Send to my clipboard upon save." + "message": "Копіювати посилання, щоб поділитися відправленням після збереження." }, "sendLinkLabel": { - "message": "Send link", + "message": "Посилання на відправлення", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "send": { - "message": "Send", + "message": "Відправлення", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineProductDesc": { - "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "message": "Відправлення Bitwarden легко та надійно передає вразливу, тимчасову інформацію іншим.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineLearnMore": { - "message": "Learn more about", + "message": "Дізнайтеся більше про", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" }, "sendVaultCardProductDesc": { - "message": "Share text or files directly with anyone." + "message": "Обмінюйтесь текстом чи файлами безпосередньо з іншими." }, "sendVaultCardLearnMore": { - "message": "Learn more", + "message": "Дізнайтеся більше", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" }, "sendVaultCardSee": { - "message": "see", + "message": "подивіться", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" }, "sendVaultCardHowItWorks": { - "message": "how it works", + "message": "як це працює", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" }, "sendVaultCardOr": { - "message": "or", + "message": "або", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" }, "sendVaultCardTryItNow": { - "message": "try it now", + "message": "спробуйте", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" }, "sendAccessTaglineOr": { - "message": "or", + "message": "або", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" }, "sendAccessTaglineSignUp": { - "message": "sign up", + "message": "зареєструйтеся", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" }, "sendAccessTaglineTryToday": { - "message": "to try it today.", + "message": "щоб спробувати.", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" }, "sendCreatorIdentifier": { - "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "message": "Користувач Bitwarden $USER_IDENTIFIER$ ділиться з вами таким", "placeholders": { "user_identifier": { "content": "$1", @@ -3748,19 +3809,86 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { - "message": "The expiration date provided is not valid." + "message": "Вказано недійсний термін дії." }, "deletionDateIsInvalid": { - "message": "The deletion date provided is not valid." + "message": "Вказано недійсну дату видалення." }, "expirationDateAndTimeRequired": { - "message": "An expiration date and time are required." + "message": "Необхідно вказати час і дату терміну дії." }, "deletionDateAndTimeRequired": { - "message": "A deletion date and time are required." + "message": "Необхідно вказати час і дату видалення." }, "dateParsingError": { - "message": "There was an error saving your deletion and expiration dates." + "message": "При збереженні дат видалення і терміну дії виникла помилка." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/vi/messages.json b/locales/vi/messages.json index 9511cd67..93f491d8 100644 --- a/locales/vi/messages.json +++ b/locales/vi/messages.json @@ -725,6 +725,15 @@ "u2fTitle": { "message": "Mật khẩu FIDO U2F" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "Email" }, @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "Hỗ trợ NFC" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "Bạn có chắc chắn muốn xóa khóa bảo mật này?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "Read Key" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "There was a problem reading the security key. Try again." }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "Your Bitwarden two-step login recovery code" }, @@ -1656,17 +1683,17 @@ "message": "Total" }, "year": { - "message": "year" + "message": "năm" }, "month": { - "message": "month" + "message": "tháng" }, "monthAbbr": { "message": "mo.", "description": "Short abbreviation for 'month'" }, "paymentChargedAnnually": { - "message": "Your payment method will be charged immediately and then on a recurring basis each year. You may cancel at any time." + "message": "Phương thức thanh toán của bạn sẽ được thu phí ngay lập tức và sau đó sẽ định kỳ thu phí mỗi năm. Bạn có thể hủy bỏ bất cứ lúc nào." }, "paymentCharged": { "message": "Your payment method will be charged immediately and then on a recurring basis each $INTERVAL$. You may cancel at any time.", @@ -1678,7 +1705,7 @@ } }, "paymentChargedWithTrial": { - "message": "Your plan comes with a free 7 day trial. Your payment method will not be charged until the trial has ended. Billing will occur on a recurring basis each $INTERVAL$. You may cancel at any time.", + "message": "Gói của bạn đi kèm với 7 ngày dùng thử miễn phí. Phương thức thanh toán của bạn sẽ không bị tính phí cho đến khi hết thời gian dùng thử. Việc thanh toán sẽ thực hiện định kỳ mỗi $INTERVAL$. Bạn có thể hủy bỏ bất cứ lúc nào.", "placeholders": { "interval": { "content": "$1", @@ -1687,16 +1714,16 @@ } }, "paymentInformation": { - "message": "Payment Information" + "message": "Thông Tin Thanh Toán" }, "billingInformation": { - "message": "Billing Information" + "message": "Thông Tin Hóa Đơn" }, "creditCard": { - "message": "Credit Card" + "message": "Thẻ Tín Dụng" }, "paypalClickSubmit": { - "message": "Click the PayPal button to log into your PayPal account, then click the Submit button below to continue." + "message": "Nhấn vào nút PayPal để đăng nhập vào tài khoản PayPal của bạn, sau đó nhấn vào nút Submit bên dưới để tiếp tục." }, "cancelSubscription": { "message": "Cancel Subscription" @@ -1729,7 +1756,7 @@ "message": "Never Expires" }, "status": { - "message": "Status" + "message": "Trạng Thái" }, "nextCharge": { "message": "Next Charge" @@ -1750,7 +1777,7 @@ "message": "Manage Subscription" }, "storage": { - "message": "Storage" + "message": "Lưu trữ" }, "addStorage": { "message": "Add Storage" @@ -1938,7 +1965,7 @@ "message": "Families" }, "planDescFamilies": { - "message": "For personal use, to share with family & friends." + "message": "Để sử dụng cá nhân, chia sẻ với gia đình và bạn bè." }, "planNameTeams": { "message": "Teams" @@ -1953,7 +1980,7 @@ "message": "For businesses and other large organizations." }, "freeForever": { - "message": "Free Forever" + "message": "Miễn Phí Mãi Mãi" }, "includesXUsers": { "message": "includes $COUNT$ users", @@ -2049,10 +2076,10 @@ } }, "monthly": { - "message": "Monthly" + "message": "Hàng tháng" }, "annually": { - "message": "Annually" + "message": "Hàng năm" }, "basePrice": { "message": "Base Price" @@ -2106,13 +2133,13 @@ "message": "New Group" }, "addGroup": { - "message": "Add Group" + "message": "Thêm Nhóm" }, "editGroup": { - "message": "Edit Group" + "message": "Chỉnh Sửa Nhóm" }, "deleteGroupConfirmation": { - "message": "Are you sure you want to delete this group?" + "message": "Bạn có chắc chắn muốn xóa nhóm này?" }, "removeUserConfirmation": { "message": "Are you sure you want to remove this user?" @@ -2253,7 +2280,7 @@ "message": "Enabled/updated two-step login." }, "disabled2fa": { - "message": "Disabled two-step login." + "message": "Đã tắt đăng nhập 2 bước." }, "recovered2fa": { "message": "Recovered account from two-step login." @@ -2526,7 +2553,7 @@ } }, "device": { - "message": "Device" + "message": "Thiết bị" }, "view": { "message": "View" @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "Unable to verify your email. Try sending a new verification email." }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "Update Browser" }, @@ -2652,16 +2685,16 @@ "message": "Two-step login has been disabled on your account." }, "learnMore": { - "message": "Learn more" + "message": "Tìm hiểu thêm" }, "deleteRecoverDesc": { - "message": "Enter your email address below to recover and delete your account." + "message": "Nhập địa chỉ email của bạn vào bên dưới để khôi phục và xóa tài khoản của bạn." }, "deleteRecoverEmailSent": { - "message": "If your account exists, we've sent you an email with further instructions." + "message": "Nếu tài khoản của bạn có tồn tại, chúng tôi đã gửi cho bạn một email với hướng dẫn chi tiết." }, "deleteRecoverConfirmDesc": { - "message": "You have requested to delete your Bitwarden account. Click the button below to confirm." + "message": "Bạn đã yêu cầu xóa tài khoản Bitwarden của mình. Nhấn vào nút bên dưới để xác nhận." }, "myOrganization": { "message": "My Organization" @@ -2685,17 +2718,17 @@ "message": "Organization updated" }, "taxInformation": { - "message": "Tax Information" + "message": "Thông Tin Thuế" }, "taxInformationDesc": { - "message": "For customers within the US, ZIP code is required to satisfy sales tax requirements, for other countries you may optionally provide a tax identification number (VAT/GST) and/or address to appear on your invoices." + "message": "Đối với các khách hàng ở Mỹ, mã ZIP là bắt buộc để đáp ứng các yêu cầu về thuế bán hàng, đối với các quốc gia khác, bạn có thể tùy chọn cung cấp mã số thuế (VAT / GST) và/hoặc địa chỉ để xuất hiện trên hóa đơn của mình." }, "billingPlan": { - "message": "Plan", + "message": "Gói", "description": "A billing plan/package. For example: families, teams, enterprise, etc." }, "changeBillingPlan": { - "message": "Change Plan", + "message": "Thay Đổi Gói", "description": "A billing plan/package. For example: families, teams, enterprise, etc." }, "changeBillingPlanUpgrade": { @@ -2703,11 +2736,11 @@ "description": "A billing plan/package. For example: families, teams, enterprise, etc." }, "changeBillingPlanDesc": { - "message": "Contact customer support if you would like to change your plan. Please ensure that you have an active payment method added to the account.", + "message": "Liên hệ với bộ phận hỗ trợ khách hàng nếu bạn muốn thay đổi gói của mình. Hãy chắc chắn là trong tài khoản của bạn đã có một phương thức thanh toán.", "description": "A billing plan/package. For example: families, teams, enterprise, etc." }, "invoiceNumber": { - "message": "Invoice #$NUMBER$", + "message": "Hóa đơn số #$NUMBER$", "description": "ex. Invoice #79C66F0-0001", "placeholders": { "number": { @@ -2717,13 +2750,13 @@ } }, "viewInvoice": { - "message": "View Invoice" + "message": "Xem Hóa đơn" }, "downloadInvoice": { - "message": "Download Invoice" + "message": "Tải Hóa đơn" }, "verifyBankAccount": { - "message": "Verify Bank Account" + "message": "Xác minh tài khoản ngân hàng" }, "verifyBankAccountDesc": { "message": "We have made two micro-deposits to your bank account (it may take 1-2 business days to show up). Enter these amounts to verify the bank account." @@ -2761,7 +2794,7 @@ "message": "Account Holder Name" }, "bankAccountType": { - "message": "Account Type" + "message": "Loại tài khoản" }, "bankAccountTypeCompany": { "message": "Company (Business)" @@ -2880,32 +2913,32 @@ "message": "Choose when your vault will timeout and perform the selected action." }, "oneMinute": { - "message": "1 minute" + "message": "1 phút" }, "fiveMinutes": { - "message": "5 minutes" + "message": "5 phút" }, "fifteenMinutes": { - "message": "15 minutes" + "message": "15 phút" }, "thirtyMinutes": { - "message": "30 minutes" + "message": "30 phút" }, "oneHour": { - "message": "1 hour" + "message": "1 giờ" }, "fourHours": { - "message": "4 hours" + "message": "4 giờ" }, "onRefresh": { - "message": "On Browser Refresh" + "message": "Mỗi khi khởi động lại trình duyệt" }, "dateUpdated": { "message": "Updated", "description": "ex. Date this item was updated" }, "datePasswordUpdated": { - "message": "Password Updated", + "message": "Mật khẩu đã cập nhật", "description": "ex. Date this password was updated" }, "organizationIsDisabled": { @@ -2935,11 +2968,11 @@ "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" }, "weak": { - "message": "Weak", + "message": "Yếu", "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" }, "veryWeak": { - "message": "Very Weak", + "message": "Rất Yếu", "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" }, "weakMasterPassword": { @@ -2983,7 +3016,7 @@ "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." }, "free": { - "message": "Free", + "message": "Miễn phí", "description": "Free, as in 'Free beer'" }, "apiKey": { @@ -3114,18 +3147,18 @@ "message": "A logged out vault requires that you re-authenticate to access it again." }, "lock": { - "message": "Lock", + "message": "Khóa", "description": "Verb form: to make secure or inaccesible by" }, "trash": { - "message": "Trash", + "message": "Thùng rác", "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" }, "searchTrash": { - "message": "Search Trash" + "message": "Tìm kiếm thùng rác" }, "permanentlyDelete": { - "message": "Permanently Delete" + "message": "Xóa Vĩnh Viễn" }, "permanentlyDeleteSelected": { "message": "Permanently Delete Selected" @@ -3134,7 +3167,7 @@ "message": "Permanently Delete Item" }, "permanentlyDeleteItemConfirmation": { - "message": "Are you sure you want to permanently delete this item?" + "message": "Bạn có chắc chắn muốn xóa vĩnh viễn mục này không?" }, "permanentlyDeletedItem": { "message": "Permanently Deleted item" @@ -3161,10 +3194,10 @@ } }, "restore": { - "message": "Restore" + "message": "Khôi phục" }, "restoreSelected": { - "message": "Restore Selected" + "message": "Khôi phục những mục đã chọn" }, "restoreItem": { "message": "Restore Item" @@ -3221,7 +3254,7 @@ "message": "Tax information updated." }, "setMasterPassword": { - "message": "Set Master Password" + "message": "Thiết lập mật khẩu chính" }, "ssoCompleteRegistration": { "message": "In order to complete logging in with SSO, please set a master password to access and protect your vault." @@ -3300,66 +3333,66 @@ "message": "Organization Owners and Administrators are exempt from this policy's enforcement." }, "sendTypeFile": { - "message": "File" + "message": "Tập tin" }, "sendTypeText": { - "message": "Text" + "message": "Văn bản" }, "createSend": { - "message": "Create New Send", + "message": "Tạo Send mới", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "editSend": { - "message": "Edit Send", + "message": "Chỉnh sửa Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "createdSend": { - "message": "Created Send", + "message": "Đã tạo Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "editedSend": { - "message": "Edited Send", + "message": "Đã chỉnh sửa Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deletedSend": { - "message": "Deleted Send", + "message": "Đã xóa Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deleteSend": { - "message": "Delete Send", + "message": "Xóa Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deleteSendConfirmation": { - "message": "Are you sure you want to delete this Send?", + "message": "Bạn có chắc chắn muốn xóa Send này?", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "whatTypeOfSend": { - "message": "What type of Send is this?", + "message": "Đây là loại Send gì?", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "deletionDate": { "message": "Deletion Date" }, "deletionDateDesc": { - "message": "The Send will be permanently deleted on the specified date and time.", + "message": "Send sẽ được xóa vĩnh viễn vào ngày và giờ được chỉ định.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "expirationDate": { "message": "Expiration Date" }, "expirationDateDesc": { - "message": "If set, access to this Send will expire on the specified date and time.", + "message": "Nếu được thiết lập, truy cập vào Send này sẽ hết hạn vào ngày và giờ được chỉ định.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "maxAccessCount": { "message": "Maximum Access Count" }, "maxAccessCountDesc": { - "message": "If set, users will no longer be able to access this send once the maximum access count is reached.", + "message": "Nếu được thiết lập, khi đã đạt tới số lượng truy cập tối đa, người dùng sẽ không thể truy cập Send này nữa.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "currentAccessCount": { - "message": "Current Access Count" + "message": "Số lượng truy cập hiện tại" }, "sendPasswordDesc": { "message": "Optionally require a password for users to access this Send.", @@ -3370,14 +3403,14 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disabled": { - "message": "Disabled" + "message": "Đã tắt" }, "sendLink": { - "message": "Send link", + "message": "Gửi liên kết", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "copySendLink": { - "message": "Copy Send Link", + "message": "Sao chép liên kết Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "removePassword": { @@ -3389,12 +3422,15 @@ "removePasswordConfirmation": { "message": "Are you sure you want to remove the password?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { "message": "Disable this Send so that no one can access it.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "allSends": { - "message": "All Sends" + "message": "Toàn bộ Send" }, "maxAccessCountReached": { "message": "Max access count reached" @@ -3406,11 +3442,11 @@ "message": "Expired" }, "searchSends": { - "message": "Search Sends", + "message": "Tìm kiếm Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendProtectedPassword": { - "message": "This Send is protected with a password. Please type the password below to continue.", + "message": "Send này được bảo vệ bằng mật khẩu. Hãy nhập mật khẩu vào bên dưới để tiếp tục.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendProtectedPasswordDontKnow": { @@ -3437,7 +3473,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "emergencyAccess": { - "message": "Emergency Access" + "message": "Truy Cập Khẩn Cấp" }, "emergencyAccessDesc": { "message": "Grant and manage emergency access for trusted contacts. Trusted contacts may request access to either View or Takeover your account in case of an emergency. Visit our help page for more information and details into how zero knowledge sharing works." @@ -3491,10 +3527,10 @@ "message": "Time required before automatically granting access." }, "oneDay": { - "message": "1 day" + "message": "1 ngày" }, "days": { - "message": "$DAYS$ days", + "message": "$DAYS$ ngày", "placeholders": { "days": { "content": "$1", @@ -3545,10 +3581,10 @@ } }, "approve": { - "message": "Approve" + "message": "Chấp nhận" }, "reject": { - "message": "Reject" + "message": "Từ chối" }, "approveAccessConfirmation": { "message": "Are you sure you want to approve emergency access? This will allow $USER$ to $ACTION$ your account.", @@ -3591,7 +3627,7 @@ "message": "Due to an enterprise policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections." }, "disableSend": { - "message": "Disable Send" + "message": "Tắt Send" }, "disableSendPolicyDesc": { "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", @@ -3601,11 +3637,33 @@ "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." }, "sendDisabled": { - "message": "Send disabled", + "message": "Đã tắt Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { - "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "message": "Do chính sách doanh nghiệp, bạn chỉ có thể xóa những Send hiện có.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "modifiedPolicyId": { @@ -3660,7 +3718,10 @@ "message": "Manage SSO" }, "manageUsers": { - "message": "Manage Users" + "message": "Quản Lý Người Dùng" + }, + "manageResetPassword": { + "message": "Manage Password Reset" }, "disableRequireSsoError": { "message": "You must manually disable the Single Sign-On Authentication policy before this policy can be disabled." @@ -3676,14 +3737,14 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNameDesc": { - "message": "A friendly name to describe this Send.", + "message": "Một tên gợi nhớ để mô tả về Send này.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTextDesc": { - "message": "The text you want to send." + "message": "Văn bản bạn muốn gửi." }, "sendFileDesc": { - "message": "The file you want to send." + "message": "Tập tin bạn muốn gửi." }, "copySendLinkOnSave": { "message": "Copy the link to share this Send to my clipboard upon save." @@ -3693,7 +3754,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "send": { - "message": "Send", + "message": "Chia sẻ", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineProductDesc": { @@ -3701,7 +3762,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineLearnMore": { - "message": "Learn more about", + "message": "Tìm hiểu thêm về", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" }, "sendVaultCardProductDesc": { @@ -3720,23 +3781,23 @@ "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" }, "sendVaultCardOr": { - "message": "or", + "message": "hoặc", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" }, "sendVaultCardTryItNow": { - "message": "try it now", + "message": "thử ngay", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" }, "sendAccessTaglineOr": { - "message": "or", + "message": "hoặc", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" }, "sendAccessTaglineSignUp": { - "message": "sign up", + "message": "đăng ký", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" }, "sendAccessTaglineTryToday": { - "message": "to try it today.", + "message": "thử ngay hôm nay.", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" }, "sendCreatorIdentifier": { @@ -3748,6 +3809,10 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { "message": "The expiration date provided is not valid." }, @@ -3762,5 +3827,68 @@ }, "dateParsingError": { "message": "There was an error saving your deletion and expiration dates." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/zh_CN/messages.json b/locales/zh_CN/messages.json index 41308ac3..0ec2b033 100644 --- a/locales/zh_CN/messages.json +++ b/locales/zh_CN/messages.json @@ -29,7 +29,7 @@ } }, "newUri": { - "message": "新 URI" + "message": "新增 URI" }, "username": { "message": "用户名" @@ -44,7 +44,7 @@ "message": "密码短语" }, "notes": { - "message": "笔记" + "message": "备注" }, "customFields": { "message": "自定义字段" @@ -59,7 +59,7 @@ "message": "品牌" }, "expiration": { - "message": "到期日" + "message": "过期日" }, "securityCode": { "message": "安全码 (CVV)" @@ -137,10 +137,10 @@ "message": "博士" }, "expirationMonth": { - "message": "到期月份" + "message": "过期月份" }, "expirationYear": { - "message": "到期年份" + "message": "过期年份" }, "authenticatorKeyTotp": { "message": "验证器密钥 (TOTP)" @@ -725,6 +725,15 @@ "u2fTitle": { "message": "FIDO U2F 安全钥匙" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "电子邮件" }, @@ -800,10 +809,10 @@ "message": "导出的密码库数据包含未加密格式。您不应该通过不安全的渠道(例如电子邮件)来存储或发送导出的文件。用完后请立即将其删除。" }, "encExportKeyWarningDesc": { - "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + "message": "此导出将使用您账户的加密密钥来加密您的数据。 如果您曾经轮换过账户的加密密钥,您应将其重新导出,否则您将无法解密导出的文件。" }, "encExportAccountWarningDesc": { - "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + "message": "账户加密密钥对每个 Bitwarden 用户账户都是唯一的,所以您不能将加密的导出导入到另一个账户。" }, "exportMasterPassword": { "message": "输入主密码来导出你的密码库数据。" @@ -831,7 +840,7 @@ "description": "Minimum Special Characters" }, "ambiguous": { - "message": "避免模棱两可" + "message": "避免易混淆的字符" }, "regeneratePassword": { "message": "重新生成密码" @@ -1004,16 +1013,16 @@ "message": "导入数据" }, "importError": { - "message": "Import Error" + "message": "导入错误" }, "importErrorDesc": { - "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + "message": "您尝试导入的数据有问题。请解决如下列出的源文件中的错误,然后重试。" }, "importSuccess": { "message": "数据已经成功导入到密码库" }, "importWarning": { - "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "message": "您正在将数据导入到 $ORGANIZATION$。您的数据可能会与此组织中的成员共享。是否继续?", "placeholders": { "organization": { "content": "$1", @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "NFC 支持" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "您确认要删除这个安全钥匙吗?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "读取钥匙" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "读取安全钥匙时出现问题,请再试一次。" }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "您的 Bitwarden 两步登录恢复代码" }, @@ -1382,7 +1409,7 @@ "message": "发现未使用双重身份验证的登录" }, "inactive2faFoundDesc": { - "message": "我们在您的密码库发现 $COUNT$ 个网站没有配置双重身份验证(通过 twofactorauth.org)。为了保护这些账户,您应该启用双重身份验证。", + "message": "我们在您的密码库中发现 $COUNT$ 个网站可能没有配置双重验证(通过 twofactorauth.org)。为了进一步保护这些账户,您应该启用双重验证。", "placeholders": { "count": { "content": "$1", @@ -1531,10 +1558,10 @@ "message": "受影响的用户" }, "breachOccurred": { - "message": "已发生泄漏" + "message": "泄漏发生于" }, "breachReported": { - "message": "泄漏已报告" + "message": "泄漏报告于" }, "reportError": { "message": "加载报告时发生错误,请重试。" @@ -1584,7 +1611,7 @@ "message": "额外的两步登录选项,如 YubiKey、FIDO U2F 和 Duo。" }, "premiumSignUpEmergency": { - "message": "Emergency Access" + "message": "紧急访问" }, "premiumSignUpReports": { "message": "密码健康、账户体检以及数据泄露报告,保障您的密码库安全。" @@ -1784,17 +1811,17 @@ "message": "更改支付方式" }, "invoices": { - "message": "发票" + "message": "账单" }, "noInvoices": { - "message": "无发票" + "message": "无账单。" }, "paid": { "message": "已支付", "description": "Past tense status of an invoice. ex. Paid or unpaid." }, "unpaid": { - "message": "未支付", + "message": "待支付", "description": "Past tense status of an invoice. ex. Paid or unpaid." }, "transactions": { @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "无法验证您的电子邮件。尝试发送新的验证电子邮件。" }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "更新浏览器" }, @@ -2688,7 +2721,7 @@ "message": "税务信息" }, "taxInformationDesc": { - "message": "对于美国境内的客户,需要提供邮政编码以满足销售税要求。 对于其他国家,您可以选择提供一个税号(VAT/GST) 和/或地址来显示在您的发票上。" + "message": "对于美国境内的客户,需要提供邮政编码以满足销售税要求。 对于其他国家,您可以选择提供一个税号(VAT/GST) 和/或地址来显示在您的账单上。" }, "billingPlan": { "message": "计划", @@ -2707,7 +2740,7 @@ "description": "A billing plan/package. For example: families, teams, enterprise, etc." }, "invoiceNumber": { - "message": "发票 #$NUMBER$", + "message": "账单 #$NUMBER$", "description": "ex. Invoice #79C66F0-0001", "placeholders": { "number": { @@ -2717,10 +2750,10 @@ } }, "viewInvoice": { - "message": "查看发票" + "message": "查看账单" }, "downloadInvoice": { - "message": "下载发票" + "message": "下载账单" }, "verifyBankAccount": { "message": "验证银行帐户" @@ -3018,7 +3051,7 @@ "message": "您必须至少选择一个集合。" }, "couldNotChargeCardPayInvoice": { - "message": "我们无法从您的支付卡中扣款。请查看并支付下面列出的未支付款项。" + "message": "我们无法从您的支付卡中扣款。请查看并支付下面列出的待支付账单。" }, "inAppPurchase": { "message": "应用内购买" @@ -3345,7 +3378,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "expirationDate": { - "message": "到期日期" + "message": "过期日期" }, "expirationDateDesc": { "message": "如果设置了,此 Send 的访问将在指定的日期和时间后过期。", @@ -3389,8 +3422,11 @@ "removePasswordConfirmation": { "message": "确定移除此密码?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { - "message": "禁用此 Send 则没有人能访问它。", + "message": "禁用此 Send 以阻止任何人访问它。", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "allSends": { @@ -3429,7 +3465,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "missingSendFile": { - "message": "The file associated with this Send could not be found.", + "message": "没有找到与此 Send 关联的文件。", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "noSendsInList": { @@ -3443,7 +3479,7 @@ "message": "授予和管理可信联系人的紧急访问权限。可信联系人可以在紧急情况下请求获取查看或接管您账户的权限。查阅我们的帮助页面以了解更多关于零知识共享的工作原理和细节。" }, "emergencyAccessOwnerWarning": { - "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + "message": "您是一个或多个组织的拥有者。如果您授予紧急联系人接管权限,他们在接管后可作为拥有者持有您的所有权限。" }, "trustedEmergencyContacts": { "message": "可信的紧急联系人" @@ -3591,21 +3627,43 @@ "message": "由于企业策略,您被限制为保存项目到您的个人密码库。将所有权选项更改为组织,并从可用的集合中选择。" }, "disableSend": { - "message": "Disable Send" + "message": "禁用 Send" }, "disableSendPolicyDesc": { - "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "message": "不允许用户创建和编辑 Bitwarden Send。仍允许删除现有的 Send。", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disableSendExemption": { - "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + "message": "可以管理组织策略的组织用户豁免此策略的执行。" }, "sendDisabled": { - "message": "Send disabled", + "message": "Send 已禁用", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { - "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "message": "由于企业策略,您只能删除现有的 Send。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "modifiedPolicyId": { @@ -3662,6 +3720,9 @@ "manageUsers": { "message": "管理用户" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { "message": "您必须手动禁用单点登录验证策略,然后才能禁用此策略。" }, @@ -3676,20 +3737,20 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNameDesc": { - "message": "A friendly name to describe this Send.", + "message": "用于描述此 Send 的友好名称。", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTextDesc": { - "message": "The text you want to send." + "message": "您想要发送的文本。" }, "sendFileDesc": { - "message": "The file you want to send." + "message": "您要发送的文件。" }, "copySendLinkOnSave": { - "message": "Copy the link to share this Send to my clipboard upon save." + "message": "保存时复制链接到剪贴板以便分享此 Send。" }, "sendLinkLabel": { - "message": "Send link", + "message": "Send 链接", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "send": { @@ -3697,50 +3758,50 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineProductDesc": { - "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "message": "Bitwarden Send 能轻松、安全地向他人传送敏感的临时信息。", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineLearnMore": { - "message": "Learn more about", + "message": "进一步了解", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" }, "sendVaultCardProductDesc": { - "message": "Share text or files directly with anyone." + "message": "直接与其他人分享文本或文件。" }, "sendVaultCardLearnMore": { - "message": "Learn more", + "message": "进一步了解", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" }, "sendVaultCardSee": { - "message": "see", + "message": "参见", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" }, "sendVaultCardHowItWorks": { - "message": "how it works", + "message": "工作原理", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" }, "sendVaultCardOr": { - "message": "or", + "message": "或", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" }, "sendVaultCardTryItNow": { - "message": "try it now", + "message": "立即体验", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" }, "sendAccessTaglineOr": { - "message": "or", + "message": "或", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" }, "sendAccessTaglineSignUp": { - "message": "sign up", + "message": "注册", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" }, "sendAccessTaglineTryToday": { - "message": "to try it today.", + "message": "来马上尝试。", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" }, "sendCreatorIdentifier": { - "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "message": "Bitwarden 用户 $USER_IDENTIFIER$ 与您分享了以下内容", "placeholders": { "user_identifier": { "content": "$1", @@ -3748,19 +3809,86 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { - "message": "The expiration date provided is not valid." + "message": "所提供的过期日期无效。" }, "deletionDateIsInvalid": { - "message": "The deletion date provided is not valid." + "message": "所提供的删除日期无效。" }, "expirationDateAndTimeRequired": { - "message": "An expiration date and time are required." + "message": "需要过期日期和时间。" }, "deletionDateAndTimeRequired": { - "message": "A deletion date and time are required." + "message": "需要删除日期和时间。" }, "dateParsingError": { - "message": "There was an error saving your deletion and expiration dates." + "message": "保存您的删除和过期日期时出错。" + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/locales/zh_TW/messages.json b/locales/zh_TW/messages.json index 8b6ffc5e..d1416a85 100644 --- a/locales/zh_TW/messages.json +++ b/locales/zh_TW/messages.json @@ -44,7 +44,7 @@ "message": "密碼短語" }, "notes": { - "message": "筆記" + "message": "備註" }, "customFields": { "message": "自訂欄位" @@ -56,7 +56,7 @@ "message": "號碼" }, "brand": { - "message": "品牌" + "message": "發卡組織" }, "expiration": { "message": "過期" @@ -173,7 +173,7 @@ "message": "未指派" }, "noneFolder": { - "message": "默認資料夾", + "message": "(未分類)", "description": "This is the folder for uncategorized items" }, "addFolder": { @@ -545,7 +545,7 @@ "message": "重新輸入主密碼" }, "masterPassHint": { - "message": "主密码提示(非必須)" + "message": "主密碼提示(選用)" }, "masterPassHintLabel": { "message": "主密碼提示" @@ -725,6 +725,15 @@ "u2fTitle": { "message": "FIDO U2F 安全鑰匙" }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, "emailTitle": { "message": "電子郵件" }, @@ -800,10 +809,10 @@ "message": "此匯出包含未加密格式的密碼庫檔案。您不應將它存放或經由不安全的方式(例如電子郵件)傳送。用完後請立即將它刪除。" }, "encExportKeyWarningDesc": { - "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + "message": "將使用您帳戶的加密金鑰來加密匯出資料,若您更新了帳戶的加密金鑰,請重新匯出,才有辦法解密匯出的檔案。" }, "encExportAccountWarningDesc": { - "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + "message": "每個 Bitwarden 使用者帳戶的帳戶加密金鑰都不同,因此無法將加密過的匯出檔案匯入到不同帳戶中。" }, "exportMasterPassword": { "message": "輸入您的主密碼以匯出密碼庫資料。" @@ -1004,16 +1013,16 @@ "message": "匯入資料" }, "importError": { - "message": "Import Error" + "message": "匯入錯誤" }, "importErrorDesc": { - "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + "message": "您嘗試匯入的資料有問題,請處理下方列出的來源檔案中的錯誤然後再試一次。" }, "importSuccess": { "message": "資料已經成功匯入至您的密碼庫中。" }, "importWarning": { - "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "message": "即將匯入資料到 $ORGANIZATION$。您的資料可能會與該組織中的成員共享,確定要繼續嗎?", "placeholders": { "organization": { "content": "$1", @@ -1260,6 +1269,15 @@ } } }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, "nfcSupport": { "message": "NFC 支援" }, @@ -1305,6 +1323,9 @@ "removeU2fConfirmation": { "message": "您確定要移除這把安全鑰匙嗎?" }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, "readKey": { "message": "讀取鑰匙" }, @@ -1338,6 +1359,12 @@ "twoFactorU2fProblemReadingTryAgain": { "message": "讀取安全鑰匙時發生問題。請重試。" }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, "twoFactorRecoveryYourCode": { "message": "您的 Bitwarden 兩步驟登入復原代碼" }, @@ -1382,7 +1409,7 @@ "message": "發現未啟用 2FA 的登入資料" }, "inactive2faFoundDesc": { - "message": "我們在您的密碼庫中找到 $COUNT$ 個可能未設定兩步驟認證的網站(根據 twofactorauth.org)。若要更加保護這些帳號,您應啟用兩步驟認證。", + "message": "我們在您的密碼庫中找到 $COUNT$ 個可能未設定兩步驟認證的網站(根據 twofactorauth.org)。若要進一步保護這些帳戶,您應啟用兩步驟認證。", "placeholders": { "count": { "content": "$1", @@ -1531,10 +1558,10 @@ "message": "受影響的使用者" }, "breachOccurred": { - "message": "已發生外洩" + "message": "外洩發生于" }, "breachReported": { - "message": "已回報外洩" + "message": "外洩回報于" }, "reportError": { "message": "嘗試載入報告時發生錯誤。請重試。" @@ -1565,7 +1592,7 @@ "message": "請確保你的帳戶有足夠的信用額度繳付此次購買,如果你的帳戶額度不足,則會以你預設的付款方式補足差額。你可以透過計費頁面向您的帳戶添加信用額度。" }, "creditAppliedDesc": { - "message": "您帳戶的信用額度可用於消費。任何可用的信用額度將用于自動支付此帳戶的帳單。" + "message": "您帳戶的信用額度可用於消費。任何可用的信用額度將用于自動繳付此帳戶的帳單。" }, "goPremium": { "message": "升級至進階版", @@ -1584,7 +1611,7 @@ "message": "YubiKey、FIDO U2F 和 Duo 等額外的兩步驟登入選項。" }, "premiumSignUpEmergency": { - "message": "Emergency Access" + "message": "緊急存取" }, "premiumSignUpReports": { "message": "密碼健康、帳戶體檢以及資料外洩報告,保障您的密碼庫安全。" @@ -1784,17 +1811,17 @@ "message": "變更付款方式" }, "invoices": { - "message": "發票" + "message": "帳單" }, "noInvoices": { - "message": "無發票" + "message": "無帳單。" }, "paid": { - "message": "已付款", + "message": "已繳付", "description": "Past tense status of an invoice. ex. Paid or unpaid." }, "unpaid": { - "message": "未付款", + "message": "待繳付", "description": "Past tense status of an invoice. ex. Paid or unpaid." }, "transactions": { @@ -2094,10 +2121,10 @@ "message": "人員" }, "policies": { - "message": "政策" + "message": "原則" }, "editPolicy": { - "message": "編輯策略" + "message": "編輯原則" }, "groups": { "message": "群組" @@ -2409,7 +2436,7 @@ } }, "editedPolicyId": { - "message": "已編輯策略 $ID$。", + "message": "已編輯原則 $ID$。", "placeholders": { "id": { "content": "$1", @@ -2609,6 +2636,12 @@ "emailVerifiedFailed": { "message": "無法驗證電子郵件。請嘗試傳送一封新的驗證電子郵件。" }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, "updateBrowser": { "message": "更新瀏覽器" }, @@ -2688,7 +2721,7 @@ "message": "稅務資訊" }, "taxInformationDesc": { - "message": "對於美國境內的客戶,需要使用郵遞區號來滿足銷售稅要求,對於其他國家,您可以選擇提供稅務識別號(VAT/GST)和/或地址以顯示在您的發票上。" + "message": "對於美國境內的客戶,需要使用郵遞區號來滿足銷售稅要求,對於其他國家,您可以選擇提供稅務識別號(VAT/GST)和/或地址以顯示在您的帳單上。" }, "billingPlan": { "message": "方案", @@ -2707,7 +2740,7 @@ "description": "A billing plan/package. For example: families, teams, enterprise, etc." }, "invoiceNumber": { - "message": "收據 #$NUMBER$", + "message": "帳單 #$NUMBER$", "description": "ex. Invoice #79C66F0-0001", "placeholders": { "number": { @@ -2717,10 +2750,10 @@ } }, "viewInvoice": { - "message": "檢視發票" + "message": "檢視帳單" }, "downloadInvoice": { - "message": "下載發票" + "message": "下載帳單" }, "verifyBankAccount": { "message": "驗證銀行帳戶" @@ -3051,10 +3084,10 @@ "message": "設定對密碼產生器配置的最低要求。" }, "passwordGeneratorPolicyInEffect": { - "message": "一個或多個組織策略正影響密碼產生器設定。" + "message": "一個或多個組原則正影響密碼產生器設定。" }, "masterPasswordPolicyInEffect": { - "message": "一個或多個組織策略要求您的主密碼須符合下列條件:" + "message": "一個或多個組織原則要求您的主密碼須符合下列條件:" }, "policyInEffectMinComplexity": { "message": "最小複雜度為 $SCORE$", @@ -3093,7 +3126,7 @@ } }, "masterPasswordPolicyRequirementsNotMet": { - "message": "您的新主密碼不符合策略要求。" + "message": "您的新主密碼不符合原則要求。" }, "minimumNumberOfWords": { "message": "最短字數" @@ -3252,7 +3285,7 @@ "message": "通過 SAML2.0 和 OpenID Connect 進行 SSO 身份認證" }, "includeEnterprisePolicies": { - "message": "企業策略" + "message": "企業原則" }, "ssoValidationFailed": { "message": "SSO 驗證失敗" @@ -3267,7 +3300,7 @@ "message": "連結 SSO" }, "webPoliciesDeprecationWarning": { - "message": "策略配置已轉移,此頁面將很快被弃用。請改用下方的「業務入口」策略頁面。" + "message": "原則配置已轉移,此頁面將很快被弃用。請改用下方的「業務入口」原則頁面。" }, "singleOrg": { "message": "單一組織" @@ -3276,7 +3309,7 @@ "message": "限制使用者加入任何其他組織。" }, "singleOrgBlockCreateMessage": { - "message": "當前組織的策略不允許您加入多個組織。請聯絡您的組織管理員或從其他 Bitwarden 帳戶注册。" + "message": "當前組織的原則不允許您加入多個組織。請聯絡您的組織管理員或從其他 Bitwarden 帳戶注册。" }, "singleOrgPolicyWarning": { "message": "不是擁有者或管理員並且已經是其他組織的成員的組織成員將從您的組織中移除。" @@ -3291,13 +3324,13 @@ "message": "先決條件" }, "requireSsoPolicyReq": { - "message": "必須先開啟單一組織企業策略,才能開啟此政策。" + "message": "必須先開啟單一組織企業原則,才能開啟此原則。" }, "requireSsoPolicyReqError": { - "message": "未開啟單一組織策略。" + "message": "未開啟單一組織原則。" }, "requireSsoExemption": { - "message": "組織的擁有者和管理員不受此策略的影響。" + "message": "組織的擁有者和管理員豁免此原則的執行。" }, "sendTypeFile": { "message": "檔案" @@ -3359,7 +3392,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "currentAccessCount": { - "message": "目前已存取次數" + "message": "目前存取次數" }, "sendPasswordDesc": { "message": "可選。使用者需提供密碼才能存取此 Send。", @@ -3389,8 +3422,11 @@ "removePasswordConfirmation": { "message": "您確定要移除密碼嗎?" }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, "disableThisSend": { - "message": "禁用此 Send 則沒有任何人能存取它。", + "message": "停用此 Send 以阻止任何人存取它。", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "allSends": { @@ -3429,7 +3465,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "missingSendFile": { - "message": "The file associated with this Send could not be found.", + "message": "未找到與此 Send 相關聯的檔案。", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "noSendsInList": { @@ -3443,7 +3479,7 @@ "message": "為受信任的聯絡人授予和管理緊急存取權限。在緊急情况下,受信任的聯絡人可以請求獲取查看或接管您的帳戶的權限。請訪問我們的幫助頁面,以獲取有關零知識共享工作原理的更多資訊和詳情。" }, "emergencyAccessOwnerWarning": { - "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + "message": "您是一個或多個組織的擁有者。如果您授予緊急聯繫人接管存取權限,那麼他們在接管後將能夠以擁有者的身份使用您的所有權限。" }, "trustedEmergencyContacts": { "message": "信任的緊急聯絡人" @@ -3585,31 +3621,53 @@ "message": "要求用戶透過移除個人擁有權選項將密碼庫項目儲存到組織。" }, "personalOwnershipExemption": { - "message": "組織的擁有者和管理員不受此策略的影響。" + "message": "組織的擁有者和管理員豁免此原則的執行。。" }, "personalOwnershipSubmitError": { - "message": "由於某個企業策略,您被限制為儲存項目到您的個人密碼庫。將擁有權改爲組織,並從可用的集合中選擇。" + "message": "由於某個企業原則,您被限制為儲存項目到您的個人密碼庫。將擁有權改爲組織,並從可用的集合中選擇。" }, "disableSend": { - "message": "Disable Send" + "message": "停用 Send" }, "disableSendPolicyDesc": { - "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "message": "不允許使用者創建或編輯 Bitwarden Send。但允許刪除現有的 Send。", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disableSendExemption": { - "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + "message": "可以管理組織原則的組織使用者豁免此原則的執行。" }, "sendDisabled": { - "message": "Send disabled", + "message": "Send 已停用", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { - "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "message": "由於某個企業原則,您只能刪除已有的 Send。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "modifiedPolicyId": { - "message": "策略 $ID$ 已修改。", + "message": "原則 $ID$ 已修改。", "placeholders": { "id": { "content": "$1", @@ -3654,7 +3712,7 @@ "message": "管理群組" }, "managePolicies": { - "message": "管理策略" + "message": "管理原則" }, "manageSso": { "message": "管理 SSO" @@ -3662,11 +3720,14 @@ "manageUsers": { "message": "管理使用者" }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, "disableRequireSsoError": { - "message": "您必須手動禁用單一登入認證策略,然後才能禁用此策略。" + "message": "您必須手動停用單一登入認證原則,然後才能停用此原則。" }, "personalOwnershipPolicyInEffect": { - "message": "一個組織策略正在影響您的擁有權選項。" + "message": "一個組織原則正在影響您的擁有權選項。" }, "personalOwnershipCheckboxDesc": { "message": "為組織使用者禁用個人擁有權。" @@ -3676,20 +3737,20 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNameDesc": { - "message": "A friendly name to describe this Send.", + "message": "用於描述此 Send 的友好名稱。", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTextDesc": { - "message": "The text you want to send." + "message": "您想要傳送的文字。" }, "sendFileDesc": { - "message": "The file you want to send." + "message": "您想要傳送的檔案。" }, "copySendLinkOnSave": { - "message": "Copy the link to share this Send to my clipboard upon save." + "message": "储存時複製連結到剪貼簿以便分享此 Send。" }, "sendLinkLabel": { - "message": "Send link", + "message": "Send 連結", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "send": { @@ -3697,50 +3758,50 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineProductDesc": { - "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "message": "Bitwarden Send可以輕鬆安全地向其他人傳輸敏感的臨時資訊。", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendAccessTaglineLearnMore": { - "message": "Learn more about", + "message": "了解更多", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" }, "sendVaultCardProductDesc": { - "message": "Share text or files directly with anyone." + "message": "與任何人直接共享文字或檔案。" }, "sendVaultCardLearnMore": { - "message": "Learn more", + "message": "了解更多", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" }, "sendVaultCardSee": { - "message": "see", + "message": "參閲", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" }, "sendVaultCardHowItWorks": { - "message": "how it works", + "message": "運作方式", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" }, "sendVaultCardOr": { - "message": "or", + "message": "或", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" }, "sendVaultCardTryItNow": { - "message": "try it now", + "message": "立刻體驗", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" }, "sendAccessTaglineOr": { - "message": "or", + "message": "或", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" }, "sendAccessTaglineSignUp": { - "message": "sign up", + "message": "註冊", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" }, "sendAccessTaglineTryToday": { - "message": "to try it today.", + "message": "今天就體驗。", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" }, "sendCreatorIdentifier": { - "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "message": "Bitwarden 使用者 $USER_IDENTIFIER$ 為您共享了如下資料", "placeholders": { "user_identifier": { "content": "$1", @@ -3748,19 +3809,86 @@ } } }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, "expirationDateIsInvalid": { - "message": "The expiration date provided is not valid." + "message": "指定的逾期日期無效。" }, "deletionDateIsInvalid": { - "message": "The deletion date provided is not valid." + "message": "指定的刪除日期無效。" }, "expirationDateAndTimeRequired": { - "message": "An expiration date and time are required." + "message": "要求指定逾期日期和時間。" }, "deletionDateAndTimeRequired": { - "message": "A deletion date and time are required." + "message": "要求指定刪除日期和時間。" }, "dateParsingError": { - "message": "There was an error saving your deletion and expiration dates." + "message": "儲存刪除日期和逾期日期時發生錯誤。" + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully!
You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "trashCleanupWarning": { + "message": "Ciphers that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Ciphers that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." } } diff --git a/sso-connector.html b/sso-connector.html index 612eee24..78eb1705 100644 --- a/sso-connector.html +++ b/sso-connector.html @@ -13,7 +13,7 @@ - +
@@ -26,6 +26,6 @@
- + diff --git a/u2f-connector.html b/u2f-connector.html index 3ba18363..48a4fbae 100644 --- a/u2f-connector.html +++ b/u2f-connector.html @@ -7,6 +7,6 @@ - + diff --git a/version.json b/version.json index bf5d912d..b1028cde 100644 --- a/version.json +++ b/version.json @@ -1 +1 @@ -{"version":"2.19.0"} \ No newline at end of file +{"version":"2.20.0"} \ No newline at end of file diff --git a/webauthn-connector.html b/webauthn-connector.html new file mode 100644 index 00000000..b0c803d8 --- /dev/null +++ b/webauthn-connector.html @@ -0,0 +1,16 @@ + + + + + + Bitwarden WebAuthn Connector + + + + +
+ +
+ + + diff --git a/webauthn-fallback-connector.html b/webauthn-fallback-connector.html new file mode 100644 index 00000000..a5572d3a --- /dev/null +++ b/webauthn-fallback-connector.html @@ -0,0 +1,36 @@ + + + + + + Bitwarden WebAuthn Connector + + + +
+
+
+ +
+

+ +

+
+
+
+

+
+ + +
+
+

+ +

+
+
+
+
+
+ +